Statistics
| Branch: | Revision:

ffmpeg / libavcodec / mpeg4data.h @ 11e29a41

History | View | Annotate | Download (13.1 KB)

1 983e3246 Michael Niedermayer
/**
2
 * @file mpeg4data.h
3
 * mpeg4 tables.
4
 */
5
6 cc9ba006 Michael Niedermayer
// shapes
7
#define RECT_SHAPE       0
8
#define BIN_SHAPE        1
9
#define BIN_ONLY_SHAPE   2
10
#define GRAY_SHAPE       3
11
12 f8af5cb5 Michael Niedermayer
#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 1ff662cc Michael Niedermayer
20 cc9ba006 Michael Niedermayer
// aspect_ratio_info
21 1e209222 Juanjo
#define EXTENDED_PAR 15
22 cc9ba006 Michael Niedermayer
23
//vol_sprite_usage / sprite_enable
24
#define STATIC_SPRITE 1
25
#define GMC_SPRITE 2
26 de6d9b64 Fabrice Bellard
27 5bb6fbb3 Michael Niedermayer
#define MOTION_MARKER 0x1F001
28
#define DC_MARKER     0x6B001
29
30 4b0e52f6 Alex Beregszaszi
static const int mb_type_b_map[4]= {
31 7bc9090a Michael Niedermayer
    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 5bb6fbb3 Michael Niedermayer
37 41773b73 Michael Niedermayer
#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 de6d9b64 Fabrice Bellard
/* dc encoding for mpeg4 */
44 0c1a9eda Zdenek Kabelac
const uint8_t DCtab_lum[13][2] =
45 de6d9b64 Fabrice Bellard
{
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 0c1a9eda Zdenek Kabelac
const uint8_t DCtab_chrom[13][2] =
51 de6d9b64 Fabrice Bellard
{
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 0c1a9eda Zdenek Kabelac
const uint16_t intra_vlc[103][2] = {
57 de6d9b64 Fabrice Bellard
{ 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 0c1a9eda Zdenek Kabelac
const int8_t intra_level[102] = {
87 de6d9b64 Fabrice Bellard
  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 0c1a9eda Zdenek Kabelac
const int8_t intra_run[102] = {
103 de6d9b64 Fabrice Bellard
  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 73c8e514 Michael Niedermayer
126 a4e8b587 Michael Niedermayer
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 0c1a9eda Zdenek Kabelac
static const uint16_t sprite_trajectory_tab[15][2] = {
335 73c8e514 Michael Niedermayer
 {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 6f91bcd1 Michael Niedermayer
340 0c1a9eda Zdenek Kabelac
static const uint8_t mb_type_b_tab[4][2] = {
341 6f91bcd1 Michael Niedermayer
 {1, 1}, {1, 2}, {1, 3}, {1, 4},
342
};
343 84afee34 Michael Niedermayer
344 5ff85f1d Michael Niedermayer
static const AVRational pixel_aspect[16]={
345
 {0, 1},
346 84afee34 Michael Niedermayer
 {1, 1},
347
 {12, 11},
348
 {10, 11},
349
 {16, 11},
350
 {40, 33},
351 5ff85f1d Michael Niedermayer
 {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 84afee34 Michael Niedermayer
};
362 3bf43d42 Michael Niedermayer
363
/* these matrixes will be permuted for the idct */
364 0c1a9eda Zdenek Kabelac
const int16_t ff_mpeg4_default_intra_matrix[64] = {
365 3bf43d42 Michael Niedermayer
  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 0c1a9eda Zdenek Kabelac
const int16_t ff_mpeg4_default_non_intra_matrix[64] = {
376 3bf43d42 Michael Niedermayer
 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 0c1a9eda Zdenek Kabelac
uint8_t ff_mpeg4_y_dc_scale_table[32]={
387 8f8402e4 Michael Niedermayer
//  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 0c1a9eda Zdenek Kabelac
uint8_t ff_mpeg4_c_dc_scale_table[32]={
391 8f8402e4 Michael Niedermayer
//  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 0c1a9eda Zdenek Kabelac
const uint16_t ff_mpeg4_resync_prefix[8]={
396 4d2858de Michael Niedermayer
    0x7F00, 0x7E00, 0x7C00, 0x7800, 0x7000, 0x6000, 0x4000, 0x0000
397
};
398 34790165 Michael Niedermayer
399
static const uint8_t mpeg4_dc_threshold[8]={
400
    99, 13, 15, 17, 19, 21, 23, 0
401
};