Statistics
| Branch: | Revision:

ffmpeg / libavcodec / mpeg4data.h @ f8af5cb5

History | View | Annotate | Download (4.99 KB)

1
// shapes
2
#define RECT_SHAPE       0
3
#define BIN_SHAPE        1
4
#define BIN_ONLY_SHAPE   2
5
#define GRAY_SHAPE       3
6

    
7
#define SIMPLE_VO_TYPE             1
8
#define CORE_VO_TYPE               3
9
#define MAIN_VO_TYPE               4
10
#define NBIT_VO_TYPE               5
11
#define ARTS_VO_TYPE               10
12
#define ACE_VO_TYPE                12
13
#define ADV_SIMPLE_VO_TYPE         17
14

    
15
// aspect_ratio_info
16
#define EXTENDED_PAR 15
17

    
18
//vol_sprite_usage / sprite_enable
19
#define STATIC_SPRITE 1
20
#define GMC_SPRITE 2
21

    
22
#define MOTION_MARKER 0x1F001
23
#define DC_MARKER     0x6B001
24

    
25
#define MB_TYPE_B_DIRECT 0
26
#define MB_TYPE_B_BIDIR  1
27
#define MB_TYPE_B_BACKW  2
28
#define MB_TYPE_B_FORW   3
29

    
30
/* dc encoding for mpeg4 */
31
const UINT8 DCtab_lum[13][2] =
32
{
33
    {3,3}, {3,2}, {2,2}, {2,3}, {1,3}, {1,4}, {1,5}, {1,6}, {1,7},
34
    {1,8}, {1,9}, {1,10}, {1,11},
35
}; 
36

    
37
const UINT8 DCtab_chrom[13][2] =
38
{
39
    {3,2}, {2,2}, {1,2}, {1,3}, {1,4}, {1,5}, {1,6}, {1,7}, {1,8},
40
    {1,9}, {1,10}, {1,11}, {1,12},
41
}; 
42

    
43
const UINT16 intra_vlc[103][2] = {
44
{ 0x2, 2 },
45
{ 0x6, 3 },{ 0xf, 4 },{ 0xd, 5 },{ 0xc, 5 },
46
{ 0x15, 6 },{ 0x13, 6 },{ 0x12, 6 },{ 0x17, 7 },
47
{ 0x1f, 8 },{ 0x1e, 8 },{ 0x1d, 8 },{ 0x25, 9 },
48
{ 0x24, 9 },{ 0x23, 9 },{ 0x21, 9 },{ 0x21, 10 },
49
{ 0x20, 10 },{ 0xf, 10 },{ 0xe, 10 },{ 0x7, 11 },
50
{ 0x6, 11 },{ 0x20, 11 },{ 0x21, 11 },{ 0x50, 12 },
51
{ 0x51, 12 },{ 0x52, 12 },{ 0xe, 4 },{ 0x14, 6 },
52
{ 0x16, 7 },{ 0x1c, 8 },{ 0x20, 9 },{ 0x1f, 9 },
53
{ 0xd, 10 },{ 0x22, 11 },{ 0x53, 12 },{ 0x55, 12 },
54
{ 0xb, 5 },{ 0x15, 7 },{ 0x1e, 9 },{ 0xc, 10 },
55
{ 0x56, 12 },{ 0x11, 6 },{ 0x1b, 8 },{ 0x1d, 9 },
56
{ 0xb, 10 },{ 0x10, 6 },{ 0x22, 9 },{ 0xa, 10 },
57
{ 0xd, 6 },{ 0x1c, 9 },{ 0x8, 10 },{ 0x12, 7 },
58
{ 0x1b, 9 },{ 0x54, 12 },{ 0x14, 7 },{ 0x1a, 9 },
59
{ 0x57, 12 },{ 0x19, 8 },{ 0x9, 10 },{ 0x18, 8 },
60
{ 0x23, 11 },{ 0x17, 8 },{ 0x19, 9 },{ 0x18, 9 },
61
{ 0x7, 10 },{ 0x58, 12 },{ 0x7, 4 },{ 0xc, 6 },
62
{ 0x16, 8 },{ 0x17, 9 },{ 0x6, 10 },{ 0x5, 11 },
63
{ 0x4, 11 },{ 0x59, 12 },{ 0xf, 6 },{ 0x16, 9 },
64
{ 0x5, 10 },{ 0xe, 6 },{ 0x4, 10 },{ 0x11, 7 },
65
{ 0x24, 11 },{ 0x10, 7 },{ 0x25, 11 },{ 0x13, 7 },
66
{ 0x5a, 12 },{ 0x15, 8 },{ 0x5b, 12 },{ 0x14, 8 },
67
{ 0x13, 8 },{ 0x1a, 8 },{ 0x15, 9 },{ 0x14, 9 },
68
{ 0x13, 9 },{ 0x12, 9 },{ 0x11, 9 },{ 0x26, 11 },
69
{ 0x27, 11 },{ 0x5c, 12 },{ 0x5d, 12 },{ 0x5e, 12 },
70
{ 0x5f, 12 },{ 0x3, 7 },
71
};
72

    
73
const INT8 intra_level[102] = {
74
  1,  2,  3,  4,  5,  6,  7,  8,
75
  9, 10, 11, 12, 13, 14, 15, 16,
76
 17, 18, 19, 20, 21, 22, 23, 24,
77
 25, 26, 27,  1,  2,  3,  4,  5,
78
  6,  7,  8,  9, 10,  1,  2,  3,
79
  4,  5,  1,  2,  3,  4,  1,  2,
80
  3,  1,  2,  3,  1,  2,  3,  1,
81
  2,  3,  1,  2,  1,  2,  1,  1,
82
  1,  1,  1,  1,  2,  3,  4,  5,
83
  6,  7,  8,  1,  2,  3,  1,  2,
84
  1,  2,  1,  2,  1,  2,  1,  2,
85
  1,  1,  1,  1,  1,  1,  1,  1,
86
  1,  1,  1,  1,  1,  1,
87
};
88

    
89
const INT8 intra_run[102] = {
90
  0,  0,  0,  0,  0,  0,  0,  0,
91
  0,  0,  0,  0,  0,  0,  0,  0,
92
  0,  0,  0,  0,  0,  0,  0,  0,
93
  0,  0,  0,  1,  1,  1,  1,  1,
94
  1,  1,  1,  1,  1,  2,  2,  2,
95
  2,  2,  3,  3,  3,  3,  4,  4,
96
  4,  5,  5,  5,  6,  6,  6,  7,
97
  7,  7,  8,  8,  9,  9, 10, 11,
98
 12, 13, 14,  0,  0,  0,  0,  0,
99
  0,  0,  0,  1,  1,  1,  2,  2,
100
  3,  3,  4,  4,  5,  5,  6,  6,
101
  7,  8,  9, 10, 11, 12, 13, 14,
102
 15, 16, 17, 18, 19, 20,
103
};
104

    
105
static RLTable rl_intra = {
106
    102,
107
    67,
108
    intra_vlc,
109
    intra_run,
110
    intra_level,
111
};
112

    
113
static const UINT16 sprite_trajectory_tab[15][2] = {
114
 {0x00, 2}, {0x02, 3},  {0x03, 3},  {0x04, 3}, {0x05, 3}, {0x06, 3},
115
 {0x0E, 4}, {0x1E, 5},  {0x3E, 6},  {0x7E, 7}, {0xFE, 8}, 
116
 {0x1FE, 9},{0x3FE, 10},{0x7FE, 11},{0xFFE, 12},
117
};
118

    
119
static const UINT8 mb_type_b_tab[4][2] = {
120
 {1, 1}, {1, 2}, {1, 3}, {1, 4},
121
};
122

    
123
static const UINT16 pixel_aspect[16][2]={
124
 {0, 0},
125
 {1, 1},
126
 {12, 11},
127
 {10, 11},
128
 {16, 11},
129
 {40, 33},
130
 {0, 0},
131
 {0, 0},
132
 {0, 0},
133
 {0, 0},
134
 {0, 0},
135
 {0, 0},
136
 {0, 0},
137
 {0, 0},
138
 {0, 0},
139
 {0, 0},
140
};
141

    
142
/* these matrixes will be permuted for the idct */
143
const INT16 ff_mpeg4_default_intra_matrix[64] = {
144
  8, 17, 18, 19, 21, 23, 25, 27,
145
 17, 18, 19, 21, 23, 25, 27, 28,
146
 20, 21, 22, 23, 24, 26, 28, 30,
147
 21, 22, 23, 24, 26, 28, 30, 32,
148
 22, 23, 24, 26, 28, 30, 32, 35,
149
 23, 24, 26, 28, 30, 32, 35, 38,
150
 25, 26, 28, 30, 32, 35, 38, 41,
151
 27, 28, 30, 32, 35, 38, 41, 45, 
152
};
153

    
154
const INT16 ff_mpeg4_default_non_intra_matrix[64] = {
155
 16, 17, 18, 19, 20, 21, 22, 23,
156
 17, 18, 19, 20, 21, 22, 23, 24,
157
 18, 19, 20, 21, 22, 23, 24, 25,
158
 19, 20, 21, 22, 23, 24, 26, 27,
159
 20, 21, 22, 23, 25, 26, 27, 28,
160
 21, 22, 23, 24, 26, 27, 28, 30,
161
 22, 23, 24, 26, 27, 28, 30, 31,
162
 23, 24, 25, 27, 28, 30, 31, 33,
163
};
164

    
165
UINT8 ff_mpeg4_y_dc_scale_table[32]={
166
//  0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
167
    0, 8, 8, 8, 8,10,12,14,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,34,36,38,40,42,44,46
168
};
169
UINT8 ff_mpeg4_c_dc_scale_table[32]={
170
//  0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
171
    0, 8, 8, 8, 8, 9, 9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,19,20,21,22,23,24,25
172
};
173

    
174
const UINT16 ff_mpeg4_resync_prefix[8]={
175
    0x7F00, 0x7E00, 0x7C00, 0x7800, 0x7000, 0x6000, 0x4000, 0x0000
176
};