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