~ubuntu-branches/ubuntu/intrepid/gstreamer0.10-ffmpeg/intrepid

« back to all changes in this revision

Viewing changes to gst-libs/ext/ffmpeg/libavcodec/mpeg4data.h

  • Committer: Bazaar Package Importer
  • Author(s): Sebastien Bacher
  • Date: 2005-12-17 23:59:34 UTC
  • Revision ID: james.westby@ubuntu.com-20051217235934-qu7f84arvb9r3id3
Tags: upstream-0.10.0
ImportĀ upstreamĀ versionĀ 0.10.0

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
};