add multiple inclusion guards to headers
[libav.git] / libavcodec / mpeg4data.h
CommitLineData
04d7f601
DB
1/*
2 * copyright (c) 2000,2001 Fabrice Bellard
3 * H263+ support
4 * copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at>
5 *
b78e7197
DB
6 * This file is part of FFmpeg.
7 *
8 * FFmpeg is free software; you can redistribute it and/or
04d7f601
DB
9 * modify it under the terms of the GNU Lesser General Public
10 * License as published by the Free Software Foundation; either
b78e7197 11 * version 2.1 of the License, or (at your option) any later version.
04d7f601 12 *
b78e7197 13 * FFmpeg is distributed in the hope that it will be useful,
04d7f601
DB
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Lesser General Public License for more details.
17 *
18 * You should have received a copy of the GNU Lesser General Public
b78e7197 19 * License along with FFmpeg; if not, write to the Free Software
04d7f601
DB
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21 */
22
983e3246
MN
23/**
24 * @file mpeg4data.h
25 * mpeg4 tables.
26 */
27
699b3f99
MR
28#ifndef AVCODEC_MPEG4DATA_H
29#define AVCODEC_MPEG4DATA_H
30
99545457
MR
31#include <stdint.h>
32#include "mpegvideo.h"
33
cc9ba006
MN
34// shapes
35#define RECT_SHAPE 0
36#define BIN_SHAPE 1
37#define BIN_ONLY_SHAPE 2
38#define GRAY_SHAPE 3
39
f8af5cb5
MN
40#define SIMPLE_VO_TYPE 1
41#define CORE_VO_TYPE 3
42#define MAIN_VO_TYPE 4
43#define NBIT_VO_TYPE 5
44#define ARTS_VO_TYPE 10
45#define ACE_VO_TYPE 12
46#define ADV_SIMPLE_VO_TYPE 17
1ff662cc 47
cc9ba006 48// aspect_ratio_info
1e209222 49#define EXTENDED_PAR 15
cc9ba006
MN
50
51//vol_sprite_usage / sprite_enable
52#define STATIC_SPRITE 1
53#define GMC_SPRITE 2
de6d9b64 54
5bb6fbb3
MN
55#define MOTION_MARKER 0x1F001
56#define DC_MARKER 0x6B001
57
4b0e52f6 58static const int mb_type_b_map[4]= {
7bc9090a
MN
59 MB_TYPE_DIRECT2 | MB_TYPE_L0L1,
60 MB_TYPE_L0L1 | MB_TYPE_16x16,
61 MB_TYPE_L1 | MB_TYPE_16x16,
62 MB_TYPE_L0 | MB_TYPE_16x16,
63};
5bb6fbb3 64
41773b73
MN
65#define VOS_STARTCODE 0x1B0
66#define USER_DATA_STARTCODE 0x1B2
67#define GOP_STARTCODE 0x1B3
68#define VISUAL_OBJ_STARTCODE 0x1B5
69#define VOP_STARTCODE 0x1B6
70
de6d9b64 71/* dc encoding for mpeg4 */
0c1a9eda 72const uint8_t DCtab_lum[13][2] =
de6d9b64
FB
73{
74 {3,3}, {3,2}, {2,2}, {2,3}, {1,3}, {1,4}, {1,5}, {1,6}, {1,7},
75 {1,8}, {1,9}, {1,10}, {1,11},
115329f1 76};
de6d9b64 77
0c1a9eda 78const uint8_t DCtab_chrom[13][2] =
de6d9b64
FB
79{
80 {3,2}, {2,2}, {1,2}, {1,3}, {1,4}, {1,5}, {1,6}, {1,7}, {1,8},
81 {1,9}, {1,10}, {1,11}, {1,12},
115329f1 82};
de6d9b64 83
0c1a9eda 84const uint16_t intra_vlc[103][2] = {
de6d9b64
FB
85{ 0x2, 2 },
86{ 0x6, 3 },{ 0xf, 4 },{ 0xd, 5 },{ 0xc, 5 },
87{ 0x15, 6 },{ 0x13, 6 },{ 0x12, 6 },{ 0x17, 7 },
88{ 0x1f, 8 },{ 0x1e, 8 },{ 0x1d, 8 },{ 0x25, 9 },
89{ 0x24, 9 },{ 0x23, 9 },{ 0x21, 9 },{ 0x21, 10 },
90{ 0x20, 10 },{ 0xf, 10 },{ 0xe, 10 },{ 0x7, 11 },
91{ 0x6, 11 },{ 0x20, 11 },{ 0x21, 11 },{ 0x50, 12 },
92{ 0x51, 12 },{ 0x52, 12 },{ 0xe, 4 },{ 0x14, 6 },
93{ 0x16, 7 },{ 0x1c, 8 },{ 0x20, 9 },{ 0x1f, 9 },
94{ 0xd, 10 },{ 0x22, 11 },{ 0x53, 12 },{ 0x55, 12 },
95{ 0xb, 5 },{ 0x15, 7 },{ 0x1e, 9 },{ 0xc, 10 },
96{ 0x56, 12 },{ 0x11, 6 },{ 0x1b, 8 },{ 0x1d, 9 },
97{ 0xb, 10 },{ 0x10, 6 },{ 0x22, 9 },{ 0xa, 10 },
98{ 0xd, 6 },{ 0x1c, 9 },{ 0x8, 10 },{ 0x12, 7 },
99{ 0x1b, 9 },{ 0x54, 12 },{ 0x14, 7 },{ 0x1a, 9 },
100{ 0x57, 12 },{ 0x19, 8 },{ 0x9, 10 },{ 0x18, 8 },
101{ 0x23, 11 },{ 0x17, 8 },{ 0x19, 9 },{ 0x18, 9 },
102{ 0x7, 10 },{ 0x58, 12 },{ 0x7, 4 },{ 0xc, 6 },
103{ 0x16, 8 },{ 0x17, 9 },{ 0x6, 10 },{ 0x5, 11 },
104{ 0x4, 11 },{ 0x59, 12 },{ 0xf, 6 },{ 0x16, 9 },
105{ 0x5, 10 },{ 0xe, 6 },{ 0x4, 10 },{ 0x11, 7 },
106{ 0x24, 11 },{ 0x10, 7 },{ 0x25, 11 },{ 0x13, 7 },
107{ 0x5a, 12 },{ 0x15, 8 },{ 0x5b, 12 },{ 0x14, 8 },
108{ 0x13, 8 },{ 0x1a, 8 },{ 0x15, 9 },{ 0x14, 9 },
109{ 0x13, 9 },{ 0x12, 9 },{ 0x11, 9 },{ 0x26, 11 },
110{ 0x27, 11 },{ 0x5c, 12 },{ 0x5d, 12 },{ 0x5e, 12 },
111{ 0x5f, 12 },{ 0x3, 7 },
112};
113
0c1a9eda 114const int8_t intra_level[102] = {
de6d9b64
FB
115 1, 2, 3, 4, 5, 6, 7, 8,
116 9, 10, 11, 12, 13, 14, 15, 16,
117 17, 18, 19, 20, 21, 22, 23, 24,
118 25, 26, 27, 1, 2, 3, 4, 5,
119 6, 7, 8, 9, 10, 1, 2, 3,
120 4, 5, 1, 2, 3, 4, 1, 2,
121 3, 1, 2, 3, 1, 2, 3, 1,
122 2, 3, 1, 2, 1, 2, 1, 1,
123 1, 1, 1, 1, 2, 3, 4, 5,
124 6, 7, 8, 1, 2, 3, 1, 2,
125 1, 2, 1, 2, 1, 2, 1, 2,
126 1, 1, 1, 1, 1, 1, 1, 1,
127 1, 1, 1, 1, 1, 1,
128};
129
0c1a9eda 130const int8_t intra_run[102] = {
de6d9b64
FB
131 0, 0, 0, 0, 0, 0, 0, 0,
132 0, 0, 0, 0, 0, 0, 0, 0,
133 0, 0, 0, 0, 0, 0, 0, 0,
134 0, 0, 0, 1, 1, 1, 1, 1,
135 1, 1, 1, 1, 1, 2, 2, 2,
136 2, 2, 3, 3, 3, 3, 4, 4,
137 4, 5, 5, 5, 6, 6, 6, 7,
138 7, 7, 8, 8, 9, 9, 10, 11,
139 12, 13, 14, 0, 0, 0, 0, 0,
140 0, 0, 0, 1, 1, 1, 2, 2,
141 3, 3, 4, 4, 5, 5, 6, 6,
142 7, 8, 9, 10, 11, 12, 13, 14,
143 15, 16, 17, 18, 19, 20,
144};
145
146static RLTable rl_intra = {
147 102,
148 67,
149 intra_vlc,
150 intra_run,
151 intra_level,
152};
73c8e514 153
90b5b51e
DB
154/* Note this is identical to the intra rvlc except that it is reordered. */
155static const uint16_t inter_rvlc[170][2]={
a4e8b587
MN
156{0x0006, 3},{0x0001, 4},{0x0004, 5},{0x001C, 7},
157{0x003C, 8},{0x003D, 8},{0x007C, 9},{0x00FC, 10},
158{0x00FD, 10},{0x01FC, 11},{0x01FD, 11},{0x03FC, 12},
159{0x07FC, 13},{0x07FD, 13},{0x0BFC, 13},{0x0BFD, 13},
160{0x0FFC, 14},{0x0FFD, 14},{0x1FFC, 15},{0x0007, 3},
161{0x000C, 6},{0x005C, 8},{0x007D, 9},{0x017C, 10},
162{0x02FC, 11},{0x03FD, 12},{0x0DFC, 13},{0x17FC, 14},
163{0x17FD, 14},{0x000A, 4},{0x001D, 7},{0x00BC, 9},
164{0x02FD, 11},{0x05FC, 12},{0x1BFC, 14},{0x1BFD, 14},
165{0x0005, 5},{0x005D, 8},{0x017D, 10},{0x05FD, 12},
166{0x0DFD, 13},{0x1DFC, 14},{0x1FFD, 15},{0x0008, 5},
167{0x006C, 8},{0x037C, 11},{0x0EFC, 13},{0x2FFC, 15},
168{0x0009, 5},{0x00BD, 9},{0x037D, 11},{0x0EFD, 13},
169{0x000D, 6},{0x01BC, 10},{0x06FC, 12},{0x1DFD, 14},
170{0x0014, 6},{0x01BD, 10},{0x06FD, 12},{0x2FFD, 15},
171{0x0015, 6},{0x01DC, 10},{0x0F7C, 13},{0x002C, 7},
172{0x01DD, 10},{0x1EFC, 14},{0x002D, 7},{0x03BC, 11},
173{0x0034, 7},{0x077C, 12},{0x006D, 8},{0x0F7D, 13},
174{0x0074, 8},{0x1EFD, 14},{0x0075, 8},{0x1F7C, 14},
175{0x00DC, 9},{0x1F7D, 14},{0x00DD, 9},{0x1FBC, 14},
176{0x00EC, 9},{0x37FC, 15},{0x01EC, 10},{0x01ED, 10},
177{0x01F4, 10},{0x03BD, 11},{0x03DC, 11},{0x03DD, 11},
178{0x03EC, 11},{0x03ED, 11},{0x03F4, 11},{0x077D, 12},
179{0x07BC, 12},{0x07BD, 12},{0x0FBC, 13},{0x0FBD, 13},
180{0x0FDC, 13},{0x0FDD, 13},{0x1FBD, 14},{0x1FDC, 14},
181{0x1FDD, 14},{0x37FD, 15},{0x3BFC, 15},
182{0x000B, 4},{0x0078, 8},{0x03F5, 11},{0x0FEC, 13},
183{0x1FEC, 14},{0x0012, 5},{0x00ED, 9},{0x07DC, 12},
184{0x1FED, 14},{0x3BFD, 15},{0x0013, 5},{0x03F8, 11},
185{0x3DFC, 15},{0x0018, 6},{0x07DD, 12},{0x0019, 6},
186{0x07EC, 12},{0x0022, 6},{0x0FED, 13},{0x0023, 6},
187{0x0FF4, 13},{0x0035, 7},{0x0FF5, 13},{0x0038, 7},
188{0x0FF8, 13},{0x0039, 7},{0x0FF9, 13},{0x0042, 7},
189{0x1FF4, 14},{0x0043, 7},{0x1FF5, 14},{0x0079, 8},
190{0x1FF8, 14},{0x0082, 8},{0x3DFD, 15},{0x0083, 8},
191{0x00F4, 9},{0x00F5, 9},{0x00F8, 9},{0x00F9, 9},
192{0x0102, 9},{0x0103, 9},{0x01F5, 10},{0x01F8, 10},
193{0x01F9, 10},{0x0202, 10},{0x0203, 10},{0x03F9, 11},
194{0x0402, 11},{0x0403, 11},{0x07ED, 12},{0x07F4, 12},
195{0x07F5, 12},{0x07F8, 12},{0x07F9, 12},{0x0802, 12},
196{0x0803, 12},{0x1002, 13},{0x1003, 13},{0x1FF9, 14},
197{0x2002, 14},{0x2003, 14},{0x3EFC, 15},{0x3EFD, 15},
198{0x3F7C, 15},{0x3F7D, 15},{0x0000, 4}
199};
200
f038fe8b 201static const int8_t inter_rvlc_run[169]={
115329f1
DB
202 0, 0, 0, 0, 0, 0, 0, 0,
203 0, 0, 0, 0, 0, 0, 0, 0,
204 0, 0, 0, 1, 1, 1, 1, 1,
205 1, 1, 1, 1, 1, 2, 2, 2,
206 2, 2, 2, 2, 3, 3, 3, 3,
207 3, 3, 3, 4, 4, 4, 4, 4,
208 5, 5, 5, 5, 6, 6, 6, 6,
209 7, 7, 7, 7, 8, 8, 8, 9,
210 9, 9, 10, 10, 11, 11, 12, 12,
21113, 13, 14, 14, 15, 15, 16, 16,
21217, 17, 18, 19, 20, 21, 22, 23,
21324, 25, 26, 27, 28, 29, 30, 31,
21432, 33, 34, 35, 36, 37, 38,
215 0, 0, 0, 0, 0, 1, 1, 1,
216 1, 1, 2, 2, 2, 3, 3, 4,
217 4, 5, 5, 6, 6, 7, 7, 8,
218 8, 9, 9, 10, 10, 11, 11, 12,
21912, 13, 13, 14, 15, 16, 17, 18,
22019, 20, 21, 22, 23, 24, 25, 26,
22127, 28, 29, 30, 31, 32, 33, 34,
22235, 36, 37, 38, 39, 40, 41, 42,
22343, 44,
a4e8b587
MN
224};
225
f038fe8b 226static const int8_t inter_rvlc_level[169]={
115329f1
DB
227 1, 2, 3, 4, 5, 6, 7, 8,
228 9, 10, 11, 12, 13, 14, 15, 16,
22917, 18, 19, 1, 2, 3, 4, 5,
230 6, 7, 8, 9, 10, 1, 2, 3,
231 4, 5, 6, 7, 1, 2, 3, 4,
232 5, 6, 7, 1, 2, 3, 4, 5,
233 1, 2, 3, 4, 1, 2, 3, 4,
234 1, 2, 3, 4, 1, 2, 3, 1,
235 2, 3, 1, 2, 1, 2, 1, 2,
236 1, 2, 1, 2, 1, 2, 1, 2,
237 1, 2, 1, 1, 1, 1, 1, 1,
238 1, 1, 1, 1, 1, 1, 1, 1,
239 1, 1, 1, 1, 1, 1, 1,
240 1, 2, 3, 4, 5, 1, 2, 3,
241 4, 5, 1, 2, 3, 1, 2, 1,
242 2, 1, 2, 1, 2, 1, 2, 1,
243 2, 1, 2, 1, 2, 1, 2, 1,
244 2, 1, 2, 1, 1, 1, 1, 1,
245 1, 1, 1, 1, 1, 1, 1, 1,
246 1, 1, 1, 1, 1, 1, 1, 1,
247 1, 1, 1, 1, 1, 1, 1, 1,
248 1, 1,
a4e8b587
MN
249};
250
251static RLTable rvlc_rl_inter = {
252 169,
253 103,
254 inter_rvlc,
255 inter_rvlc_run,
256 inter_rvlc_level,
257};
258
259static const uint16_t intra_rvlc[170][2]={
260{0x0006, 3},{0x0007, 3},{0x000A, 4},{0x0009, 5},
261{0x0014, 6},{0x0015, 6},{0x0034, 7},{0x0074, 8},
262{0x0075, 8},{0x00DD, 9},{0x00EC, 9},{0x01EC, 10},
263{0x01ED, 10},{0x01F4, 10},{0x03EC, 11},{0x03ED, 11},
264{0x03F4, 11},{0x077D, 12},{0x07BC, 12},{0x0FBD, 13},
265{0x0FDC, 13},{0x07BD, 12},{0x0FDD, 13},{0x1FBD, 14},
266{0x1FDC, 14},{0x1FDD, 14},{0x1FFC, 15},{0x0001, 4},
267{0x0008, 5},{0x002D, 7},{0x006C, 8},{0x006D, 8},
268{0x00DC, 9},{0x01DD, 10},{0x03DC, 11},{0x03DD, 11},
269{0x077C, 12},{0x0FBC, 13},{0x1F7D, 14},{0x1FBC, 14},
270{0x0004, 5},{0x002C, 7},{0x00BC, 9},{0x01DC, 10},
271{0x03BC, 11},{0x03BD, 11},{0x0EFD, 13},{0x0F7C, 13},
272{0x0F7D, 13},{0x1EFD, 14},{0x1F7C, 14},{0x0005, 5},
273{0x005C, 8},{0x00BD, 9},{0x037D, 11},{0x06FC, 12},
274{0x0EFC, 13},{0x1DFD, 14},{0x1EFC, 14},{0x1FFD, 15},
275{0x000C, 6},{0x005D, 8},{0x01BD, 10},{0x03FD, 12},
276{0x06FD, 12},{0x1BFD, 14},{0x000D, 6},{0x007D, 9},
277{0x02FC, 11},{0x05FC, 12},{0x1BFC, 14},{0x1DFC, 14},
278{0x001C, 7},{0x017C, 10},{0x02FD, 11},{0x05FD, 12},
279{0x2FFC, 15},{0x001D, 7},{0x017D, 10},{0x037C, 11},
280{0x0DFD, 13},{0x2FFD, 15},{0x003C, 8},{0x01BC, 10},
281{0x0BFD, 13},{0x17FD, 14},{0x003D, 8},{0x01FD, 11},
282{0x0DFC, 13},{0x37FC, 15},{0x007C, 9},{0x03FC, 12},
283{0x00FC, 10},{0x0BFC, 13},{0x00FD, 10},{0x37FD, 15},
284{0x01FC, 11},{0x07FC, 13},{0x07FD, 13},{0x0FFC, 14},
285{0x0FFD, 14},{0x17FC, 14},{0x3BFC, 15},
286{0x000B, 4},{0x0078, 8},{0x03F5, 11},{0x0FEC, 13},
287{0x1FEC, 14},{0x0012, 5},{0x00ED, 9},{0x07DC, 12},
288{0x1FED, 14},{0x3BFD, 15},{0x0013, 5},{0x03F8, 11},
289{0x3DFC, 15},{0x0018, 6},{0x07DD, 12},{0x0019, 6},
290{0x07EC, 12},{0x0022, 6},{0x0FED, 13},{0x0023, 6},
291{0x0FF4, 13},{0x0035, 7},{0x0FF5, 13},{0x0038, 7},
292{0x0FF8, 13},{0x0039, 7},{0x0FF9, 13},{0x0042, 7},
293{0x1FF4, 14},{0x0043, 7},{0x1FF5, 14},{0x0079, 8},
294{0x1FF8, 14},{0x0082, 8},{0x3DFD, 15},{0x0083, 8},
295{0x00F4, 9},{0x00F5, 9},{0x00F8, 9},{0x00F9, 9},
296{0x0102, 9},{0x0103, 9},{0x01F5, 10},{0x01F8, 10},
297{0x01F9, 10},{0x0202, 10},{0x0203, 10},{0x03F9, 11},
298{0x0402, 11},{0x0403, 11},{0x07ED, 12},{0x07F4, 12},
299{0x07F5, 12},{0x07F8, 12},{0x07F9, 12},{0x0802, 12},
300{0x0803, 12},{0x1002, 13},{0x1003, 13},{0x1FF9, 14},
301{0x2002, 14},{0x2003, 14},{0x3EFC, 15},{0x3EFD, 15},
302{0x3F7C, 15},{0x3F7D, 15},{0x0000, 4}
303};
304
f038fe8b 305static const int8_t intra_rvlc_run[169]={
115329f1
DB
306 0, 0, 0, 0, 0, 0, 0, 0,
307 0, 0, 0, 0, 0, 0, 0, 0,
308 0, 0, 0, 0, 0, 0, 0, 0,
309 0, 0, 0, 1, 1, 1, 1, 1,
310 1, 1, 1, 1, 1, 1, 1, 1,
311 2, 2, 2, 2, 2, 2, 2, 2,
312 2, 2, 2, 3, 3, 3, 3, 3,
313 3, 3, 3, 3, 4, 4, 4, 4,
314 4, 4, 5, 5, 5, 5, 5, 5,
315 6, 6, 6, 6, 6, 7, 7, 7,
316 7, 7, 8, 8, 8, 8, 9, 9,
317 9, 9, 10, 10, 11, 11, 12, 12,
31813, 14, 15, 16, 17, 18, 19,
319 0, 0, 0, 0, 0, 1, 1, 1,
320 1, 1, 2, 2, 2, 3, 3, 4,
321 4, 5, 5, 6, 6, 7, 7, 8,
322 8, 9, 9, 10, 10, 11, 11, 12,
32312, 13, 13, 14, 15, 16, 17, 18,
32419, 20, 21, 22, 23, 24, 25, 26,
32527, 28, 29, 30, 31, 32, 33, 34,
32635, 36, 37, 38, 39, 40, 41, 42,
32743, 44,
a4e8b587
MN
328};
329
f038fe8b 330static const int8_t intra_rvlc_level[169]={
115329f1
DB
331 1, 2, 3, 4, 5, 6, 7, 8,
332 9, 10, 11, 12, 13, 14, 15, 16,
33317, 18, 19, 20, 21, 22, 23, 24,
33425, 26, 27, 1, 2, 3, 4, 5,
335 6, 7, 8, 9, 10, 11, 12, 13,
336 1, 2, 3, 4, 5, 6, 7, 8,
337 9, 10, 11, 1, 2, 3, 4, 5,
338 6, 7, 8, 9, 1, 2, 3, 4,
339 5, 6, 1, 2, 3, 4, 5, 6,
340 1, 2, 3, 4, 5, 1, 2, 3,
341 4, 5, 1, 2, 3, 4, 1, 2,
342 3, 4, 1, 2, 1, 2, 1, 2,
343 1, 1, 1, 1, 1, 1, 1,
344 1, 2, 3, 4, 5, 1, 2, 3,
345 4, 5, 1, 2, 3, 1, 2, 1,
346 2, 1, 2, 1, 2, 1, 2, 1,
347 2, 1, 2, 1, 2, 1, 2, 1,
348 2, 1, 2, 1, 1, 1, 1, 1,
349 1, 1, 1, 1, 1, 1, 1, 1,
350 1, 1, 1, 1, 1, 1, 1, 1,
351 1, 1, 1, 1, 1, 1, 1, 1,
352 1, 1,
a4e8b587
MN
353};
354
355static RLTable rvlc_rl_intra = {
356 169,
357 103,
358 intra_rvlc,
359 intra_rvlc_run,
360 intra_rvlc_level,
361};
362
0c1a9eda 363static const uint16_t sprite_trajectory_tab[15][2] = {
73c8e514 364 {0x00, 2}, {0x02, 3}, {0x03, 3}, {0x04, 3}, {0x05, 3}, {0x06, 3},
115329f1 365 {0x0E, 4}, {0x1E, 5}, {0x3E, 6}, {0x7E, 7}, {0xFE, 8},
73c8e514
MN
366 {0x1FE, 9},{0x3FE, 10},{0x7FE, 11},{0xFFE, 12},
367};
6f91bcd1 368
0c1a9eda 369static const uint8_t mb_type_b_tab[4][2] = {
6f91bcd1
MN
370 {1, 1}, {1, 2}, {1, 3}, {1, 4},
371};
84afee34 372
5ff85f1d
MN
373static const AVRational pixel_aspect[16]={
374 {0, 1},
84afee34
MN
375 {1, 1},
376 {12, 11},
377 {10, 11},
378 {16, 11},
379 {40, 33},
5ff85f1d
MN
380 {0, 1},
381 {0, 1},
382 {0, 1},
383 {0, 1},
384 {0, 1},
385 {0, 1},
386 {0, 1},
387 {0, 1},
388 {0, 1},
389 {0, 1},
84afee34 390};
3bf43d42
MN
391
392/* these matrixes will be permuted for the idct */
0c1a9eda 393const int16_t ff_mpeg4_default_intra_matrix[64] = {
3bf43d42
MN
394 8, 17, 18, 19, 21, 23, 25, 27,
395 17, 18, 19, 21, 23, 25, 27, 28,
396 20, 21, 22, 23, 24, 26, 28, 30,
397 21, 22, 23, 24, 26, 28, 30, 32,
398 22, 23, 24, 26, 28, 30, 32, 35,
399 23, 24, 26, 28, 30, 32, 35, 38,
400 25, 26, 28, 30, 32, 35, 38, 41,
115329f1 401 27, 28, 30, 32, 35, 38, 41, 45,
3bf43d42
MN
402};
403
0c1a9eda 404const int16_t ff_mpeg4_default_non_intra_matrix[64] = {
3bf43d42
MN
405 16, 17, 18, 19, 20, 21, 22, 23,
406 17, 18, 19, 20, 21, 22, 23, 24,
407 18, 19, 20, 21, 22, 23, 24, 25,
408 19, 20, 21, 22, 23, 24, 26, 27,
409 20, 21, 22, 23, 25, 26, 27, 28,
410 21, 22, 23, 24, 26, 27, 28, 30,
411 22, 23, 24, 26, 27, 28, 30, 31,
412 23, 24, 25, 27, 28, 30, 31, 33,
413};
414
c26ae41d 415const uint8_t ff_mpeg4_y_dc_scale_table[32]={
8f8402e4
MN
416// 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
417 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
418};
c26ae41d 419const uint8_t ff_mpeg4_c_dc_scale_table[32]={
8f8402e4
MN
420// 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
421 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
422};
423
0c1a9eda 424const uint16_t ff_mpeg4_resync_prefix[8]={
4d2858de
MN
425 0x7F00, 0x7E00, 0x7C00, 0x7800, 0x7000, 0x6000, 0x4000, 0x0000
426};
34790165
MN
427
428static const uint8_t mpeg4_dc_threshold[8]={
429 99, 13, 15, 17, 19, 21, 23, 0
430};
699b3f99
MR
431
432#endif