AVRational
[libav.git] / libavcodec / mpeg4data.h
CommitLineData
983e3246
MN
1/**
2 * @file mpeg4data.h
3 * mpeg4 tables.
4 */
5
cc9ba006
MN
6// shapes
7#define RECT_SHAPE 0
8#define BIN_SHAPE 1
9#define BIN_ONLY_SHAPE 2
10#define GRAY_SHAPE 3
11
f8af5cb5
MN
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
1ff662cc 19
cc9ba006 20// aspect_ratio_info
1e209222 21#define EXTENDED_PAR 15
cc9ba006
MN
22
23//vol_sprite_usage / sprite_enable
24#define STATIC_SPRITE 1
25#define GMC_SPRITE 2
de6d9b64 26
5bb6fbb3
MN
27#define MOTION_MARKER 0x1F001
28#define DC_MARKER 0x6B001
29
4b0e52f6 30static const int mb_type_b_map[4]= {
7bc9090a
MN
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};
5bb6fbb3 36
41773b73
MN
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
de6d9b64 43/* dc encoding for mpeg4 */
0c1a9eda 44const uint8_t DCtab_lum[13][2] =
de6d9b64
FB
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
0c1a9eda 50const uint8_t DCtab_chrom[13][2] =
de6d9b64
FB
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
0c1a9eda 56const uint16_t intra_vlc[103][2] = {
de6d9b64
FB
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
0c1a9eda 86const int8_t intra_level[102] = {
de6d9b64
FB
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
0c1a9eda 102const int8_t intra_run[102] = {
de6d9b64
FB
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
118static RLTable rl_intra = {
119 102,
120 67,
121 intra_vlc,
122 intra_run,
123 intra_level,
124};
73c8e514 125
a4e8b587
MN
126static 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
172static 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,
18213, 13, 14, 14, 15, 15, 16, 16,
18317, 17, 18, 19, 20, 21, 22, 23,
18424, 25, 26, 27, 28, 29, 30, 31,
18532, 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,
19012, 13, 13, 14, 15, 16, 17, 18,
19119, 20, 21, 22, 23, 24, 25, 26,
19227, 28, 29, 30, 31, 32, 33, 34,
19335, 36, 37, 38, 39, 40, 41, 42,
19443, 44,
195};
196
197static 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,
20017, 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
222static RLTable rvlc_rl_inter = {
223 169,
224 103,
225 inter_rvlc,
226 inter_rvlc_run,
227 inter_rvlc_level,
228};
229
230static 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
276static 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,
28913, 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,
29412, 13, 13, 14, 15, 16, 17, 18,
29519, 20, 21, 22, 23, 24, 25, 26,
29627, 28, 29, 30, 31, 32, 33, 34,
29735, 36, 37, 38, 39, 40, 41, 42,
29843, 44,
299};
300
301static 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,
30417, 18, 19, 20, 21, 22, 23, 24,
30525, 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
326static RLTable rvlc_rl_intra = {
327 169,
328 103,
329 intra_rvlc,
330 intra_rvlc_run,
331 intra_rvlc_level,
332};
333
0c1a9eda 334static const uint16_t sprite_trajectory_tab[15][2] = {
73c8e514
MN
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};
6f91bcd1 339
0c1a9eda 340static const uint8_t mb_type_b_tab[4][2] = {
6f91bcd1
MN
341 {1, 1}, {1, 2}, {1, 3}, {1, 4},
342};
84afee34 343
5ff85f1d
MN
344static const AVRational pixel_aspect[16]={
345 {0, 1},
84afee34
MN
346 {1, 1},
347 {12, 11},
348 {10, 11},
349 {16, 11},
350 {40, 33},
5ff85f1d
MN
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},
84afee34 361};
3bf43d42
MN
362
363/* these matrixes will be permuted for the idct */
0c1a9eda 364const int16_t ff_mpeg4_default_intra_matrix[64] = {
3bf43d42
MN
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
0c1a9eda 375const int16_t ff_mpeg4_default_non_intra_matrix[64] = {
3bf43d42
MN
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
0c1a9eda 386uint8_t ff_mpeg4_y_dc_scale_table[32]={
8f8402e4
MN
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};
0c1a9eda 390uint8_t ff_mpeg4_c_dc_scale_table[32]={
8f8402e4
MN
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
0c1a9eda 395const uint16_t ff_mpeg4_resync_prefix[8]={
4d2858de
MN
396 0x7F00, 0x7E00, 0x7C00, 0x7800, 0x7000, 0x6000, 0x4000, 0x0000
397};
34790165
MN
398
399static const uint8_t mpeg4_dc_threshold[8]={
400 99, 13, 15, 17, 19, 21, 23, 0
401};