adding a few const
[ffmpeg.git] / libavcodec / mpeg4data.h
1 /**
2  * @file mpeg4data.h
3  * mpeg4 tables.
4  */
5
6 // shapes
7 #define RECT_SHAPE       0
8 #define BIN_SHAPE        1
9 #define BIN_ONLY_SHAPE   2
10 #define GRAY_SHAPE       3
11
12 #define SIMPLE_VO_TYPE             1
13 #define CORE_VO_TYPE               3
14 #define MAIN_VO_TYPE               4
15 #define NBIT_VO_TYPE               5
16 #define ARTS_VO_TYPE               10
17 #define ACE_VO_TYPE                12
18 #define ADV_SIMPLE_VO_TYPE         17
19
20 // aspect_ratio_info
21 #define EXTENDED_PAR 15
22
23 //vol_sprite_usage / sprite_enable
24 #define STATIC_SPRITE 1
25 #define GMC_SPRITE 2
26
27 #define MOTION_MARKER 0x1F001
28 #define DC_MARKER     0x6B001
29
30 static const int mb_type_b_map[4]= {
31     MB_TYPE_DIRECT2 | MB_TYPE_L0L1,
32     MB_TYPE_L0L1 | MB_TYPE_16x16,
33     MB_TYPE_L1 | MB_TYPE_16x16,
34     MB_TYPE_L0 | MB_TYPE_16x16,
35 };
36
37 #define VOS_STARTCODE        0x1B0
38 #define USER_DATA_STARTCODE  0x1B2
39 #define GOP_STARTCODE        0x1B3
40 #define VISUAL_OBJ_STARTCODE 0x1B5
41 #define VOP_STARTCODE        0x1B6
42
43 /* dc encoding for mpeg4 */
44 const uint8_t DCtab_lum[13][2] =
45 {
46     {3,3}, {3,2}, {2,2}, {2,3}, {1,3}, {1,4}, {1,5}, {1,6}, {1,7},
47     {1,8}, {1,9}, {1,10}, {1,11},
48 }; 
49
50 const uint8_t DCtab_chrom[13][2] =
51 {
52     {3,2}, {2,2}, {1,2}, {1,3}, {1,4}, {1,5}, {1,6}, {1,7}, {1,8},
53     {1,9}, {1,10}, {1,11}, {1,12},
54 }; 
55
56 const uint16_t intra_vlc[103][2] = {
57 { 0x2, 2 },
58 { 0x6, 3 },{ 0xf, 4 },{ 0xd, 5 },{ 0xc, 5 },
59 { 0x15, 6 },{ 0x13, 6 },{ 0x12, 6 },{ 0x17, 7 },
60 { 0x1f, 8 },{ 0x1e, 8 },{ 0x1d, 8 },{ 0x25, 9 },
61 { 0x24, 9 },{ 0x23, 9 },{ 0x21, 9 },{ 0x21, 10 },
62 { 0x20, 10 },{ 0xf, 10 },{ 0xe, 10 },{ 0x7, 11 },
63 { 0x6, 11 },{ 0x20, 11 },{ 0x21, 11 },{ 0x50, 12 },
64 { 0x51, 12 },{ 0x52, 12 },{ 0xe, 4 },{ 0x14, 6 },
65 { 0x16, 7 },{ 0x1c, 8 },{ 0x20, 9 },{ 0x1f, 9 },
66 { 0xd, 10 },{ 0x22, 11 },{ 0x53, 12 },{ 0x55, 12 },
67 { 0xb, 5 },{ 0x15, 7 },{ 0x1e, 9 },{ 0xc, 10 },
68 { 0x56, 12 },{ 0x11, 6 },{ 0x1b, 8 },{ 0x1d, 9 },
69 { 0xb, 10 },{ 0x10, 6 },{ 0x22, 9 },{ 0xa, 10 },
70 { 0xd, 6 },{ 0x1c, 9 },{ 0x8, 10 },{ 0x12, 7 },
71 { 0x1b, 9 },{ 0x54, 12 },{ 0x14, 7 },{ 0x1a, 9 },
72 { 0x57, 12 },{ 0x19, 8 },{ 0x9, 10 },{ 0x18, 8 },
73 { 0x23, 11 },{ 0x17, 8 },{ 0x19, 9 },{ 0x18, 9 },
74 { 0x7, 10 },{ 0x58, 12 },{ 0x7, 4 },{ 0xc, 6 },
75 { 0x16, 8 },{ 0x17, 9 },{ 0x6, 10 },{ 0x5, 11 },
76 { 0x4, 11 },{ 0x59, 12 },{ 0xf, 6 },{ 0x16, 9 },
77 { 0x5, 10 },{ 0xe, 6 },{ 0x4, 10 },{ 0x11, 7 },
78 { 0x24, 11 },{ 0x10, 7 },{ 0x25, 11 },{ 0x13, 7 },
79 { 0x5a, 12 },{ 0x15, 8 },{ 0x5b, 12 },{ 0x14, 8 },
80 { 0x13, 8 },{ 0x1a, 8 },{ 0x15, 9 },{ 0x14, 9 },
81 { 0x13, 9 },{ 0x12, 9 },{ 0x11, 9 },{ 0x26, 11 },
82 { 0x27, 11 },{ 0x5c, 12 },{ 0x5d, 12 },{ 0x5e, 12 },
83 { 0x5f, 12 },{ 0x3, 7 },
84 };
85
86 const int8_t intra_level[102] = {
87   1,  2,  3,  4,  5,  6,  7,  8,
88   9, 10, 11, 12, 13, 14, 15, 16,
89  17, 18, 19, 20, 21, 22, 23, 24,
90  25, 26, 27,  1,  2,  3,  4,  5,
91   6,  7,  8,  9, 10,  1,  2,  3,
92   4,  5,  1,  2,  3,  4,  1,  2,
93   3,  1,  2,  3,  1,  2,  3,  1,
94   2,  3,  1,  2,  1,  2,  1,  1,
95   1,  1,  1,  1,  2,  3,  4,  5,
96   6,  7,  8,  1,  2,  3,  1,  2,
97   1,  2,  1,  2,  1,  2,  1,  2,
98   1,  1,  1,  1,  1,  1,  1,  1,
99   1,  1,  1,  1,  1,  1,
100 };
101
102 const int8_t intra_run[102] = {
103   0,  0,  0,  0,  0,  0,  0,  0,
104   0,  0,  0,  0,  0,  0,  0,  0,
105   0,  0,  0,  0,  0,  0,  0,  0,
106   0,  0,  0,  1,  1,  1,  1,  1,
107   1,  1,  1,  1,  1,  2,  2,  2,
108   2,  2,  3,  3,  3,  3,  4,  4,
109   4,  5,  5,  5,  6,  6,  6,  7,
110   7,  7,  8,  8,  9,  9, 10, 11,
111  12, 13, 14,  0,  0,  0,  0,  0,
112   0,  0,  0,  1,  1,  1,  2,  2,
113   3,  3,  4,  4,  5,  5,  6,  6,
114   7,  8,  9, 10, 11, 12, 13, 14,
115  15, 16, 17, 18, 19, 20,
116 };
117
118 static RLTable rl_intra = {
119     102,
120     67,
121     intra_vlc,
122     intra_run,
123     intra_level,
124 };
125
126 static const uint16_t inter_rvlc[170][2]={ //note this is identical to the intra rvlc except that its reordered
127 {0x0006,  3},{0x0001,  4},{0x0004,  5},{0x001C,  7},
128 {0x003C,  8},{0x003D,  8},{0x007C,  9},{0x00FC, 10},
129 {0x00FD, 10},{0x01FC, 11},{0x01FD, 11},{0x03FC, 12},
130 {0x07FC, 13},{0x07FD, 13},{0x0BFC, 13},{0x0BFD, 13},
131 {0x0FFC, 14},{0x0FFD, 14},{0x1FFC, 15},{0x0007,  3},
132 {0x000C,  6},{0x005C,  8},{0x007D,  9},{0x017C, 10},
133 {0x02FC, 11},{0x03FD, 12},{0x0DFC, 13},{0x17FC, 14},
134 {0x17FD, 14},{0x000A,  4},{0x001D,  7},{0x00BC,  9},
135 {0x02FD, 11},{0x05FC, 12},{0x1BFC, 14},{0x1BFD, 14},
136 {0x0005,  5},{0x005D,  8},{0x017D, 10},{0x05FD, 12},
137 {0x0DFD, 13},{0x1DFC, 14},{0x1FFD, 15},{0x0008,  5},
138 {0x006C,  8},{0x037C, 11},{0x0EFC, 13},{0x2FFC, 15},
139 {0x0009,  5},{0x00BD,  9},{0x037D, 11},{0x0EFD, 13},
140 {0x000D,  6},{0x01BC, 10},{0x06FC, 12},{0x1DFD, 14},
141 {0x0014,  6},{0x01BD, 10},{0x06FD, 12},{0x2FFD, 15},
142 {0x0015,  6},{0x01DC, 10},{0x0F7C, 13},{0x002C,  7},
143 {0x01DD, 10},{0x1EFC, 14},{0x002D,  7},{0x03BC, 11},
144 {0x0034,  7},{0x077C, 12},{0x006D,  8},{0x0F7D, 13},
145 {0x0074,  8},{0x1EFD, 14},{0x0075,  8},{0x1F7C, 14},
146 {0x00DC,  9},{0x1F7D, 14},{0x00DD,  9},{0x1FBC, 14},
147 {0x00EC,  9},{0x37FC, 15},{0x01EC, 10},{0x01ED, 10},
148 {0x01F4, 10},{0x03BD, 11},{0x03DC, 11},{0x03DD, 11},
149 {0x03EC, 11},{0x03ED, 11},{0x03F4, 11},{0x077D, 12},
150 {0x07BC, 12},{0x07BD, 12},{0x0FBC, 13},{0x0FBD, 13},
151 {0x0FDC, 13},{0x0FDD, 13},{0x1FBD, 14},{0x1FDC, 14},
152 {0x1FDD, 14},{0x37FD, 15},{0x3BFC, 15},
153 {0x000B,  4},{0x0078,  8},{0x03F5, 11},{0x0FEC, 13},
154 {0x1FEC, 14},{0x0012,  5},{0x00ED,  9},{0x07DC, 12},
155 {0x1FED, 14},{0x3BFD, 15},{0x0013,  5},{0x03F8, 11},
156 {0x3DFC, 15},{0x0018,  6},{0x07DD, 12},{0x0019,  6},
157 {0x07EC, 12},{0x0022,  6},{0x0FED, 13},{0x0023,  6},
158 {0x0FF4, 13},{0x0035,  7},{0x0FF5, 13},{0x0038,  7},
159 {0x0FF8, 13},{0x0039,  7},{0x0FF9, 13},{0x0042,  7},
160 {0x1FF4, 14},{0x0043,  7},{0x1FF5, 14},{0x0079,  8},
161 {0x1FF8, 14},{0x0082,  8},{0x3DFD, 15},{0x0083,  8},
162 {0x00F4,  9},{0x00F5,  9},{0x00F8,  9},{0x00F9,  9},
163 {0x0102,  9},{0x0103,  9},{0x01F5, 10},{0x01F8, 10},
164 {0x01F9, 10},{0x0202, 10},{0x0203, 10},{0x03F9, 11},
165 {0x0402, 11},{0x0403, 11},{0x07ED, 12},{0x07F4, 12},
166 {0x07F5, 12},{0x07F8, 12},{0x07F9, 12},{0x0802, 12},
167 {0x0803, 12},{0x1002, 13},{0x1003, 13},{0x1FF9, 14},
168 {0x2002, 14},{0x2003, 14},{0x3EFC, 15},{0x3EFD, 15},
169 {0x3F7C, 15},{0x3F7D, 15},{0x0000, 4}
170 };
171
172 static const uint8_t inter_rvlc_run[169]={
173  0,  0,  0,  0,  0,  0,  0,  0, 
174  0,  0,  0,  0,  0,  0,  0,  0, 
175  0,  0,  0,  1,  1,  1,  1,  1, 
176  1,  1,  1,  1,  1,  2,  2,  2, 
177  2,  2,  2,  2,  3,  3,  3,  3, 
178  3,  3,  3,  4,  4,  4,  4,  4, 
179  5,  5,  5,  5,  6,  6,  6,  6, 
180  7,  7,  7,  7,  8,  8,  8,  9, 
181  9,  9, 10, 10, 11, 11, 12, 12, 
182 13, 13, 14, 14, 15, 15, 16, 16, 
183 17, 17, 18, 19, 20, 21, 22, 23, 
184 24, 25, 26, 27, 28, 29, 30, 31, 
185 32, 33, 34, 35, 36, 37, 38, 
186  0,  0,  0,  0,  0,  1,  1,  1, 
187  1,  1,  2,  2,  2,  3,  3,  4, 
188  4,  5,  5,  6,  6,  7,  7,  8, 
189  8,  9,  9, 10, 10, 11, 11, 12, 
190 12, 13, 13, 14, 15, 16, 17, 18, 
191 19, 20, 21, 22, 23, 24, 25, 26, 
192 27, 28, 29, 30, 31, 32, 33, 34, 
193 35, 36, 37, 38, 39, 40, 41, 42, 
194 43, 44,  
195 };
196
197 static const uint8_t inter_rvlc_level[169]={
198  1,  2,  3,  4,  5,  6,  7,  8, 
199  9, 10, 11, 12, 13, 14, 15, 16, 
200 17, 18, 19,  1,  2,  3,  4,  5, 
201  6,  7,  8,  9, 10,  1,  2,  3, 
202  4,  5,  6,  7,  1,  2,  3,  4, 
203  5,  6,  7,  1,  2,  3,  4,  5, 
204  1,  2,  3,  4,  1,  2,  3,  4, 
205  1,  2,  3,  4,  1,  2,  3,  1, 
206  2,  3,  1,  2,  1,  2,  1,  2, 
207  1,  2,  1,  2,  1,  2,  1,  2, 
208  1,  2,  1,  1,  1,  1,  1,  1, 
209  1,  1,  1,  1,  1,  1,  1,  1, 
210  1,  1,  1,  1,  1,  1,  1, 
211  1,  2,  3,  4,  5,  1,  2,  3, 
212  4,  5,  1,  2,  3,  1,  2,  1, 
213  2,  1,  2,  1,  2,  1,  2,  1, 
214  2,  1,  2,  1,  2,  1,  2,  1, 
215  2,  1,  2,  1,  1,  1,  1,  1, 
216  1,  1,  1,  1,  1,  1,  1,  1, 
217  1,  1,  1,  1,  1,  1,  1,  1, 
218  1,  1,  1,  1,  1,  1,  1,  1, 
219  1,  1, 
220 };
221
222 static RLTable rvlc_rl_inter = {
223     169,
224     103,
225     inter_rvlc,
226     inter_rvlc_run,
227     inter_rvlc_level,
228 };
229
230 static const uint16_t intra_rvlc[170][2]={
231 {0x0006,  3},{0x0007,  3},{0x000A,  4},{0x0009,  5},
232 {0x0014,  6},{0x0015,  6},{0x0034,  7},{0x0074,  8},
233 {0x0075,  8},{0x00DD,  9},{0x00EC,  9},{0x01EC, 10},
234 {0x01ED, 10},{0x01F4, 10},{0x03EC, 11},{0x03ED, 11},
235 {0x03F4, 11},{0x077D, 12},{0x07BC, 12},{0x0FBD, 13},
236 {0x0FDC, 13},{0x07BD, 12},{0x0FDD, 13},{0x1FBD, 14},
237 {0x1FDC, 14},{0x1FDD, 14},{0x1FFC, 15},{0x0001,  4},
238 {0x0008,  5},{0x002D,  7},{0x006C,  8},{0x006D,  8},
239 {0x00DC,  9},{0x01DD, 10},{0x03DC, 11},{0x03DD, 11},
240 {0x077C, 12},{0x0FBC, 13},{0x1F7D, 14},{0x1FBC, 14},
241 {0x0004,  5},{0x002C,  7},{0x00BC,  9},{0x01DC, 10},
242 {0x03BC, 11},{0x03BD, 11},{0x0EFD, 13},{0x0F7C, 13},
243 {0x0F7D, 13},{0x1EFD, 14},{0x1F7C, 14},{0x0005,  5},
244 {0x005C,  8},{0x00BD,  9},{0x037D, 11},{0x06FC, 12},
245 {0x0EFC, 13},{0x1DFD, 14},{0x1EFC, 14},{0x1FFD, 15},
246 {0x000C,  6},{0x005D,  8},{0x01BD, 10},{0x03FD, 12},
247 {0x06FD, 12},{0x1BFD, 14},{0x000D,  6},{0x007D,  9},
248 {0x02FC, 11},{0x05FC, 12},{0x1BFC, 14},{0x1DFC, 14},
249 {0x001C,  7},{0x017C, 10},{0x02FD, 11},{0x05FD, 12},
250 {0x2FFC, 15},{0x001D,  7},{0x017D, 10},{0x037C, 11},
251 {0x0DFD, 13},{0x2FFD, 15},{0x003C,  8},{0x01BC, 10},
252 {0x0BFD, 13},{0x17FD, 14},{0x003D,  8},{0x01FD, 11},
253 {0x0DFC, 13},{0x37FC, 15},{0x007C,  9},{0x03FC, 12},
254 {0x00FC, 10},{0x0BFC, 13},{0x00FD, 10},{0x37FD, 15},
255 {0x01FC, 11},{0x07FC, 13},{0x07FD, 13},{0x0FFC, 14},
256 {0x0FFD, 14},{0x17FC, 14},{0x3BFC, 15},
257 {0x000B,  4},{0x0078,  8},{0x03F5, 11},{0x0FEC, 13},
258 {0x1FEC, 14},{0x0012,  5},{0x00ED,  9},{0x07DC, 12},
259 {0x1FED, 14},{0x3BFD, 15},{0x0013,  5},{0x03F8, 11},
260 {0x3DFC, 15},{0x0018,  6},{0x07DD, 12},{0x0019,  6},
261 {0x07EC, 12},{0x0022,  6},{0x0FED, 13},{0x0023,  6},
262 {0x0FF4, 13},{0x0035,  7},{0x0FF5, 13},{0x0038,  7},
263 {0x0FF8, 13},{0x0039,  7},{0x0FF9, 13},{0x0042,  7},
264 {0x1FF4, 14},{0x0043,  7},{0x1FF5, 14},{0x0079,  8},
265 {0x1FF8, 14},{0x0082,  8},{0x3DFD, 15},{0x0083,  8},
266 {0x00F4,  9},{0x00F5,  9},{0x00F8,  9},{0x00F9,  9},
267 {0x0102,  9},{0x0103,  9},{0x01F5, 10},{0x01F8, 10},
268 {0x01F9, 10},{0x0202, 10},{0x0203, 10},{0x03F9, 11},
269 {0x0402, 11},{0x0403, 11},{0x07ED, 12},{0x07F4, 12},
270 {0x07F5, 12},{0x07F8, 12},{0x07F9, 12},{0x0802, 12},
271 {0x0803, 12},{0x1002, 13},{0x1003, 13},{0x1FF9, 14},
272 {0x2002, 14},{0x2003, 14},{0x3EFC, 15},{0x3EFD, 15},
273 {0x3F7C, 15},{0x3F7D, 15},{0x0000,  4}
274 };
275
276 static const uint8_t intra_rvlc_run[169]={
277  0,  0,  0,  0,  0,  0,  0,  0, 
278  0,  0,  0,  0,  0,  0,  0,  0, 
279  0,  0,  0,  0,  0,  0,  0,  0, 
280  0,  0,  0,  1,  1,  1,  1,  1, 
281  1,  1,  1,  1,  1,  1,  1,  1, 
282  2,  2,  2,  2,  2,  2,  2,  2, 
283  2,  2,  2,  3,  3,  3,  3,  3, 
284  3,  3,  3,  3,  4,  4,  4,  4, 
285  4,  4,  5,  5,  5,  5,  5,  5, 
286  6,  6,  6,  6,  6,  7,  7,  7, 
287  7,  7,  8,  8,  8,  8,  9,  9, 
288  9,  9, 10, 10, 11, 11, 12, 12, 
289 13, 14, 15, 16, 17, 18, 19, 
290  0,  0,  0,  0,  0,  1,  1,  1, 
291  1,  1,  2,  2,  2,  3,  3,  4, 
292  4,  5,  5,  6,  6,  7,  7,  8, 
293  8,  9,  9, 10, 10, 11, 11, 12, 
294 12, 13, 13, 14, 15, 16, 17, 18, 
295 19, 20, 21, 22, 23, 24, 25, 26, 
296 27, 28, 29, 30, 31, 32, 33, 34, 
297 35, 36, 37, 38, 39, 40, 41, 42, 
298 43, 44, 
299 };
300
301 static const uint8_t intra_rvlc_level[169]={
302  1,  2,  3,  4,  5,  6,  7,  8, 
303  9, 10, 11, 12, 13, 14, 15, 16, 
304 17, 18, 19, 20, 21, 22, 23, 24, 
305 25, 26, 27,  1,  2,  3,  4,  5, 
306  6,  7,  8,  9, 10, 11, 12, 13, 
307  1,  2,  3,  4,  5,  6,  7,  8, 
308  9, 10, 11,  1,  2,  3,  4,  5, 
309  6,  7,  8,  9,  1,  2,  3,  4, 
310  5,  6,  1,  2,  3,  4,  5,  6, 
311  1,  2,  3,  4,  5,  1,  2,  3, 
312  4,  5,  1,  2,  3,  4,  1,  2, 
313  3,  4,  1,  2,  1,  2,  1,  2, 
314  1,  1,  1,  1,  1,  1,  1,  
315  1,  2,  3,  4,  5,  1,  2,  3, 
316  4,  5,  1,  2,  3,  1,  2,  1, 
317  2,  1,  2,  1,  2,  1,  2,  1, 
318  2,  1,  2,  1,  2,  1,  2,  1, 
319  2,  1,  2,  1,  1,  1,  1,  1, 
320  1,  1,  1,  1,  1,  1,  1,  1, 
321  1,  1,  1,  1,  1,  1,  1,  1, 
322  1,  1,  1,  1,  1,  1,  1,  1, 
323  1,  1, 
324 };
325
326 static RLTable rvlc_rl_intra = {
327     169,
328     103,
329     intra_rvlc,
330     intra_rvlc_run,
331     intra_rvlc_level,
332 };
333
334 static const uint16_t sprite_trajectory_tab[15][2] = {
335  {0x00, 2}, {0x02, 3},  {0x03, 3},  {0x04, 3}, {0x05, 3}, {0x06, 3},
336  {0x0E, 4}, {0x1E, 5},  {0x3E, 6},  {0x7E, 7}, {0xFE, 8}, 
337  {0x1FE, 9},{0x3FE, 10},{0x7FE, 11},{0xFFE, 12},
338 };
339
340 static const uint8_t mb_type_b_tab[4][2] = {
341  {1, 1}, {1, 2}, {1, 3}, {1, 4},
342 };
343
344 static const AVRational pixel_aspect[16]={
345  {0, 1},
346  {1, 1},
347  {12, 11},
348  {10, 11},
349  {16, 11},
350  {40, 33},
351  {0, 1},
352  {0, 1},
353  {0, 1},
354  {0, 1},
355  {0, 1},
356  {0, 1},
357  {0, 1},
358  {0, 1},
359  {0, 1},
360  {0, 1},
361 };
362
363 /* these matrixes will be permuted for the idct */
364 const int16_t ff_mpeg4_default_intra_matrix[64] = {
365   8, 17, 18, 19, 21, 23, 25, 27,
366  17, 18, 19, 21, 23, 25, 27, 28,
367  20, 21, 22, 23, 24, 26, 28, 30,
368  21, 22, 23, 24, 26, 28, 30, 32,
369  22, 23, 24, 26, 28, 30, 32, 35,
370  23, 24, 26, 28, 30, 32, 35, 38,
371  25, 26, 28, 30, 32, 35, 38, 41,
372  27, 28, 30, 32, 35, 38, 41, 45, 
373 };
374
375 const int16_t ff_mpeg4_default_non_intra_matrix[64] = {
376  16, 17, 18, 19, 20, 21, 22, 23,
377  17, 18, 19, 20, 21, 22, 23, 24,
378  18, 19, 20, 21, 22, 23, 24, 25,
379  19, 20, 21, 22, 23, 24, 26, 27,
380  20, 21, 22, 23, 25, 26, 27, 28,
381  21, 22, 23, 24, 26, 27, 28, 30,
382  22, 23, 24, 26, 27, 28, 30, 31,
383  23, 24, 25, 27, 28, 30, 31, 33,
384 };
385
386 const uint8_t ff_mpeg4_y_dc_scale_table[32]={
387 //  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
388     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
389 };
390 const uint8_t ff_mpeg4_c_dc_scale_table[32]={
391 //  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
392     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
393 };
394
395 const uint16_t ff_mpeg4_resync_prefix[8]={
396     0x7F00, 0x7E00, 0x7C00, 0x7800, 0x7000, 0x6000, 0x4000, 0x0000
397 };
398
399 static const uint8_t mpeg4_dc_threshold[8]={
400     99, 13, 15, 17, 19, 21, 23, 0
401 };