~ubuntu-branches/ubuntu/feisty/avidemux/feisty

« back to all changes in this revision

Viewing changes to adm_lavcodec/mpeg4data.h

  • Committer: Bazaar Package Importer
  • Author(s): Daniel T Chen
  • Date: 2006-12-15 17:13:20 UTC
  • mfrom: (1.1.6 upstream)
  • Revision ID: james.westby@ubuntu.com-20061215171320-w79pvpehxx2fr217
Tags: 1:2.3.0-0.0ubuntu1
* Merge from debian-multimedia.org, remaining Ubuntu change:
  - desktop file,
  - no support for ccache and make -j.
* Closes Ubuntu: #69614.

Show diffs side-by-side

added added

removed removed

Lines of Context:
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
 
};