FFmpeg
mpeg4data.h
Go to the documentation of this file.
1 /*
2  * copyright (c) 2000,2001 Fabrice Bellard
3  * H.263+ support
4  * copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at>
5  *
6  * This file is part of FFmpeg.
7  *
8  * FFmpeg is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public
10  * License as published by the Free Software Foundation; either
11  * version 2.1 of the License, or (at your option) any later version.
12  *
13  * FFmpeg is distributed in the hope that it will be useful,
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
19  * License along with FFmpeg; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21  */
22 
23 /**
24  * @file
25  * MPEG-4 tables.
26  */
27 
28 #ifndef AVCODEC_MPEG4DATA_H
29 #define AVCODEC_MPEG4DATA_H
30 
31 #include "mpeg4videodata.h"
32 
33 /* dc encoding for MPEG-4 */
34 const uint8_t ff_mpeg4_DCtab_lum[13][2] =
35 {
36  {3,3}, {3,2}, {2,2}, {2,3}, {1,3}, {1,4}, {1,5}, {1,6}, {1,7},
37  {1,8}, {1,9}, {1,10}, {1,11},
38 };
39 
40 const uint8_t ff_mpeg4_DCtab_chrom[13][2] =
41 {
42  {3,2}, {2,2}, {1,2}, {1,3}, {1,4}, {1,5}, {1,6}, {1,7}, {1,8},
43  {1,9}, {1,10}, {1,11}, {1,12},
44 };
45 
46 const uint16_t ff_mpeg4_intra_vlc[103][2] = {
47 { 0x2, 2 },
48 { 0x6, 3 },{ 0xf, 4 },{ 0xd, 5 },{ 0xc, 5 },
49 { 0x15, 6 },{ 0x13, 6 },{ 0x12, 6 },{ 0x17, 7 },
50 { 0x1f, 8 },{ 0x1e, 8 },{ 0x1d, 8 },{ 0x25, 9 },
51 { 0x24, 9 },{ 0x23, 9 },{ 0x21, 9 },{ 0x21, 10 },
52 { 0x20, 10 },{ 0xf, 10 },{ 0xe, 10 },{ 0x7, 11 },
53 { 0x6, 11 },{ 0x20, 11 },{ 0x21, 11 },{ 0x50, 12 },
54 { 0x51, 12 },{ 0x52, 12 },{ 0xe, 4 },{ 0x14, 6 },
55 { 0x16, 7 },{ 0x1c, 8 },{ 0x20, 9 },{ 0x1f, 9 },
56 { 0xd, 10 },{ 0x22, 11 },{ 0x53, 12 },{ 0x55, 12 },
57 { 0xb, 5 },{ 0x15, 7 },{ 0x1e, 9 },{ 0xc, 10 },
58 { 0x56, 12 },{ 0x11, 6 },{ 0x1b, 8 },{ 0x1d, 9 },
59 { 0xb, 10 },{ 0x10, 6 },{ 0x22, 9 },{ 0xa, 10 },
60 { 0xd, 6 },{ 0x1c, 9 },{ 0x8, 10 },{ 0x12, 7 },
61 { 0x1b, 9 },{ 0x54, 12 },{ 0x14, 7 },{ 0x1a, 9 },
62 { 0x57, 12 },{ 0x19, 8 },{ 0x9, 10 },{ 0x18, 8 },
63 { 0x23, 11 },{ 0x17, 8 },{ 0x19, 9 },{ 0x18, 9 },
64 { 0x7, 10 },{ 0x58, 12 },{ 0x7, 4 },{ 0xc, 6 },
65 { 0x16, 8 },{ 0x17, 9 },{ 0x6, 10 },{ 0x5, 11 },
66 { 0x4, 11 },{ 0x59, 12 },{ 0xf, 6 },{ 0x16, 9 },
67 { 0x5, 10 },{ 0xe, 6 },{ 0x4, 10 },{ 0x11, 7 },
68 { 0x24, 11 },{ 0x10, 7 },{ 0x25, 11 },{ 0x13, 7 },
69 { 0x5a, 12 },{ 0x15, 8 },{ 0x5b, 12 },{ 0x14, 8 },
70 { 0x13, 8 },{ 0x1a, 8 },{ 0x15, 9 },{ 0x14, 9 },
71 { 0x13, 9 },{ 0x12, 9 },{ 0x11, 9 },{ 0x26, 11 },
72 { 0x27, 11 },{ 0x5c, 12 },{ 0x5d, 12 },{ 0x5e, 12 },
73 { 0x5f, 12 },{ 0x3, 7 },
74 };
75 
76 const int8_t ff_mpeg4_intra_level[102] = {
77  1, 2, 3, 4, 5, 6, 7, 8,
78  9, 10, 11, 12, 13, 14, 15, 16,
79  17, 18, 19, 20, 21, 22, 23, 24,
80  25, 26, 27, 1, 2, 3, 4, 5,
81  6, 7, 8, 9, 10, 1, 2, 3,
82  4, 5, 1, 2, 3, 4, 1, 2,
83  3, 1, 2, 3, 1, 2, 3, 1,
84  2, 3, 1, 2, 1, 2, 1, 1,
85  1, 1, 1, 1, 2, 3, 4, 5,
86  6, 7, 8, 1, 2, 3, 1, 2,
87  1, 2, 1, 2, 1, 2, 1, 2,
88  1, 1, 1, 1, 1, 1, 1, 1,
89  1, 1, 1, 1, 1, 1,
90 };
91 
92 const int8_t ff_mpeg4_intra_run[102] = {
93  0, 0, 0, 0, 0, 0, 0, 0,
94  0, 0, 0, 0, 0, 0, 0, 0,
95  0, 0, 0, 0, 0, 0, 0, 0,
96  0, 0, 0, 1, 1, 1, 1, 1,
97  1, 1, 1, 1, 1, 2, 2, 2,
98  2, 2, 3, 3, 3, 3, 4, 4,
99  4, 5, 5, 5, 6, 6, 6, 7,
100  7, 7, 8, 8, 9, 9, 10, 11,
101  12, 13, 14, 0, 0, 0, 0, 0,
102  0, 0, 0, 1, 1, 1, 2, 2,
103  3, 3, 4, 4, 5, 5, 6, 6,
104  7, 8, 9, 10, 11, 12, 13, 14,
105  15, 16, 17, 18, 19, 20,
106 };
107 
109  102,
110  67,
114 };
115 
116 /* Note this is identical to the intra rvlc except that it is reordered. */
117 static const uint16_t inter_rvlc[170][2]={
118 {0x0006, 3},{0x0001, 4},{0x0004, 5},{0x001C, 7},
119 {0x003C, 8},{0x003D, 8},{0x007C, 9},{0x00FC, 10},
120 {0x00FD, 10},{0x01FC, 11},{0x01FD, 11},{0x03FC, 12},
121 {0x07FC, 13},{0x07FD, 13},{0x0BFC, 13},{0x0BFD, 13},
122 {0x0FFC, 14},{0x0FFD, 14},{0x1FFC, 15},{0x0007, 3},
123 {0x000C, 6},{0x005C, 8},{0x007D, 9},{0x017C, 10},
124 {0x02FC, 11},{0x03FD, 12},{0x0DFC, 13},{0x17FC, 14},
125 {0x17FD, 14},{0x000A, 4},{0x001D, 7},{0x00BC, 9},
126 {0x02FD, 11},{0x05FC, 12},{0x1BFC, 14},{0x1BFD, 14},
127 {0x0005, 5},{0x005D, 8},{0x017D, 10},{0x05FD, 12},
128 {0x0DFD, 13},{0x1DFC, 14},{0x1FFD, 15},{0x0008, 5},
129 {0x006C, 8},{0x037C, 11},{0x0EFC, 13},{0x2FFC, 15},
130 {0x0009, 5},{0x00BD, 9},{0x037D, 11},{0x0EFD, 13},
131 {0x000D, 6},{0x01BC, 10},{0x06FC, 12},{0x1DFD, 14},
132 {0x0014, 6},{0x01BD, 10},{0x06FD, 12},{0x2FFD, 15},
133 {0x0015, 6},{0x01DC, 10},{0x0F7C, 13},{0x002C, 7},
134 {0x01DD, 10},{0x1EFC, 14},{0x002D, 7},{0x03BC, 11},
135 {0x0034, 7},{0x077C, 12},{0x006D, 8},{0x0F7D, 13},
136 {0x0074, 8},{0x1EFD, 14},{0x0075, 8},{0x1F7C, 14},
137 {0x00DC, 9},{0x1F7D, 14},{0x00DD, 9},{0x1FBC, 14},
138 {0x00EC, 9},{0x37FC, 15},{0x01EC, 10},{0x01ED, 10},
139 {0x01F4, 10},{0x03BD, 11},{0x03DC, 11},{0x03DD, 11},
140 {0x03EC, 11},{0x03ED, 11},{0x03F4, 11},{0x077D, 12},
141 {0x07BC, 12},{0x07BD, 12},{0x0FBC, 13},{0x0FBD, 13},
142 {0x0FDC, 13},{0x0FDD, 13},{0x1FBD, 14},{0x1FDC, 14},
143 {0x1FDD, 14},{0x37FD, 15},{0x3BFC, 15},
144 {0x000B, 4},{0x0078, 8},{0x03F5, 11},{0x0FEC, 13},
145 {0x1FEC, 14},{0x0012, 5},{0x00ED, 9},{0x07DC, 12},
146 {0x1FED, 14},{0x3BFD, 15},{0x0013, 5},{0x03F8, 11},
147 {0x3DFC, 15},{0x0018, 6},{0x07DD, 12},{0x0019, 6},
148 {0x07EC, 12},{0x0022, 6},{0x0FED, 13},{0x0023, 6},
149 {0x0FF4, 13},{0x0035, 7},{0x0FF5, 13},{0x0038, 7},
150 {0x0FF8, 13},{0x0039, 7},{0x0FF9, 13},{0x0042, 7},
151 {0x1FF4, 14},{0x0043, 7},{0x1FF5, 14},{0x0079, 8},
152 {0x1FF8, 14},{0x0082, 8},{0x3DFD, 15},{0x0083, 8},
153 {0x00F4, 9},{0x00F5, 9},{0x00F8, 9},{0x00F9, 9},
154 {0x0102, 9},{0x0103, 9},{0x01F5, 10},{0x01F8, 10},
155 {0x01F9, 10},{0x0202, 10},{0x0203, 10},{0x03F9, 11},
156 {0x0402, 11},{0x0403, 11},{0x07ED, 12},{0x07F4, 12},
157 {0x07F5, 12},{0x07F8, 12},{0x07F9, 12},{0x0802, 12},
158 {0x0803, 12},{0x1002, 13},{0x1003, 13},{0x1FF9, 14},
159 {0x2002, 14},{0x2003, 14},{0x3EFC, 15},{0x3EFD, 15},
160 {0x3F7C, 15},{0x3F7D, 15},{0x0000, 4}
161 };
162 
163 static const int8_t inter_rvlc_run[169]={
164  0, 0, 0, 0, 0, 0, 0, 0,
165  0, 0, 0, 0, 0, 0, 0, 0,
166  0, 0, 0, 1, 1, 1, 1, 1,
167  1, 1, 1, 1, 1, 2, 2, 2,
168  2, 2, 2, 2, 3, 3, 3, 3,
169  3, 3, 3, 4, 4, 4, 4, 4,
170  5, 5, 5, 5, 6, 6, 6, 6,
171  7, 7, 7, 7, 8, 8, 8, 9,
172  9, 9, 10, 10, 11, 11, 12, 12,
173 13, 13, 14, 14, 15, 15, 16, 16,
174 17, 17, 18, 19, 20, 21, 22, 23,
175 24, 25, 26, 27, 28, 29, 30, 31,
176 32, 33, 34, 35, 36, 37, 38,
177  0, 0, 0, 0, 0, 1, 1, 1,
178  1, 1, 2, 2, 2, 3, 3, 4,
179  4, 5, 5, 6, 6, 7, 7, 8,
180  8, 9, 9, 10, 10, 11, 11, 12,
181 12, 13, 13, 14, 15, 16, 17, 18,
182 19, 20, 21, 22, 23, 24, 25, 26,
183 27, 28, 29, 30, 31, 32, 33, 34,
184 35, 36, 37, 38, 39, 40, 41, 42,
185 43, 44,
186 };
187 
188 static const int8_t inter_rvlc_level[169]={
189  1, 2, 3, 4, 5, 6, 7, 8,
190  9, 10, 11, 12, 13, 14, 15, 16,
191 17, 18, 19, 1, 2, 3, 4, 5,
192  6, 7, 8, 9, 10, 1, 2, 3,
193  4, 5, 6, 7, 1, 2, 3, 4,
194  5, 6, 7, 1, 2, 3, 4, 5,
195  1, 2, 3, 4, 1, 2, 3, 4,
196  1, 2, 3, 4, 1, 2, 3, 1,
197  2, 3, 1, 2, 1, 2, 1, 2,
198  1, 2, 1, 2, 1, 2, 1, 2,
199  1, 2, 1, 1, 1, 1, 1, 1,
200  1, 1, 1, 1, 1, 1, 1, 1,
201  1, 1, 1, 1, 1, 1, 1,
202  1, 2, 3, 4, 5, 1, 2, 3,
203  4, 5, 1, 2, 3, 1, 2, 1,
204  2, 1, 2, 1, 2, 1, 2, 1,
205  2, 1, 2, 1, 2, 1, 2, 1,
206  2, 1, 2, 1, 1, 1, 1, 1,
207  1, 1, 1, 1, 1, 1, 1, 1,
208  1, 1, 1, 1, 1, 1, 1, 1,
209  1, 1, 1, 1, 1, 1, 1, 1,
210  1, 1,
211 };
212 
214  169,
215  103,
216  inter_rvlc,
219 };
220 
221 static const uint16_t intra_rvlc[170][2]={
222 {0x0006, 3},{0x0007, 3},{0x000A, 4},{0x0009, 5},
223 {0x0014, 6},{0x0015, 6},{0x0034, 7},{0x0074, 8},
224 {0x0075, 8},{0x00DD, 9},{0x00EC, 9},{0x01EC, 10},
225 {0x01ED, 10},{0x01F4, 10},{0x03EC, 11},{0x03ED, 11},
226 {0x03F4, 11},{0x077D, 12},{0x07BC, 12},{0x0FBD, 13},
227 {0x0FDC, 13},{0x07BD, 12},{0x0FDD, 13},{0x1FBD, 14},
228 {0x1FDC, 14},{0x1FDD, 14},{0x1FFC, 15},{0x0001, 4},
229 {0x0008, 5},{0x002D, 7},{0x006C, 8},{0x006D, 8},
230 {0x00DC, 9},{0x01DD, 10},{0x03DC, 11},{0x03DD, 11},
231 {0x077C, 12},{0x0FBC, 13},{0x1F7D, 14},{0x1FBC, 14},
232 {0x0004, 5},{0x002C, 7},{0x00BC, 9},{0x01DC, 10},
233 {0x03BC, 11},{0x03BD, 11},{0x0EFD, 13},{0x0F7C, 13},
234 {0x0F7D, 13},{0x1EFD, 14},{0x1F7C, 14},{0x0005, 5},
235 {0x005C, 8},{0x00BD, 9},{0x037D, 11},{0x06FC, 12},
236 {0x0EFC, 13},{0x1DFD, 14},{0x1EFC, 14},{0x1FFD, 15},
237 {0x000C, 6},{0x005D, 8},{0x01BD, 10},{0x03FD, 12},
238 {0x06FD, 12},{0x1BFD, 14},{0x000D, 6},{0x007D, 9},
239 {0x02FC, 11},{0x05FC, 12},{0x1BFC, 14},{0x1DFC, 14},
240 {0x001C, 7},{0x017C, 10},{0x02FD, 11},{0x05FD, 12},
241 {0x2FFC, 15},{0x001D, 7},{0x017D, 10},{0x037C, 11},
242 {0x0DFD, 13},{0x2FFD, 15},{0x003C, 8},{0x01BC, 10},
243 {0x0BFD, 13},{0x17FD, 14},{0x003D, 8},{0x01FD, 11},
244 {0x0DFC, 13},{0x37FC, 15},{0x007C, 9},{0x03FC, 12},
245 {0x00FC, 10},{0x0BFC, 13},{0x00FD, 10},{0x37FD, 15},
246 {0x01FC, 11},{0x07FC, 13},{0x07FD, 13},{0x0FFC, 14},
247 {0x0FFD, 14},{0x17FC, 14},{0x3BFC, 15},
248 {0x000B, 4},{0x0078, 8},{0x03F5, 11},{0x0FEC, 13},
249 {0x1FEC, 14},{0x0012, 5},{0x00ED, 9},{0x07DC, 12},
250 {0x1FED, 14},{0x3BFD, 15},{0x0013, 5},{0x03F8, 11},
251 {0x3DFC, 15},{0x0018, 6},{0x07DD, 12},{0x0019, 6},
252 {0x07EC, 12},{0x0022, 6},{0x0FED, 13},{0x0023, 6},
253 {0x0FF4, 13},{0x0035, 7},{0x0FF5, 13},{0x0038, 7},
254 {0x0FF8, 13},{0x0039, 7},{0x0FF9, 13},{0x0042, 7},
255 {0x1FF4, 14},{0x0043, 7},{0x1FF5, 14},{0x0079, 8},
256 {0x1FF8, 14},{0x0082, 8},{0x3DFD, 15},{0x0083, 8},
257 {0x00F4, 9},{0x00F5, 9},{0x00F8, 9},{0x00F9, 9},
258 {0x0102, 9},{0x0103, 9},{0x01F5, 10},{0x01F8, 10},
259 {0x01F9, 10},{0x0202, 10},{0x0203, 10},{0x03F9, 11},
260 {0x0402, 11},{0x0403, 11},{0x07ED, 12},{0x07F4, 12},
261 {0x07F5, 12},{0x07F8, 12},{0x07F9, 12},{0x0802, 12},
262 {0x0803, 12},{0x1002, 13},{0x1003, 13},{0x1FF9, 14},
263 {0x2002, 14},{0x2003, 14},{0x3EFC, 15},{0x3EFD, 15},
264 {0x3F7C, 15},{0x3F7D, 15},{0x0000, 4}
265 };
266 
267 static const int8_t intra_rvlc_run[169]={
268  0, 0, 0, 0, 0, 0, 0, 0,
269  0, 0, 0, 0, 0, 0, 0, 0,
270  0, 0, 0, 0, 0, 0, 0, 0,
271  0, 0, 0, 1, 1, 1, 1, 1,
272  1, 1, 1, 1, 1, 1, 1, 1,
273  2, 2, 2, 2, 2, 2, 2, 2,
274  2, 2, 2, 3, 3, 3, 3, 3,
275  3, 3, 3, 3, 4, 4, 4, 4,
276  4, 4, 5, 5, 5, 5, 5, 5,
277  6, 6, 6, 6, 6, 7, 7, 7,
278  7, 7, 8, 8, 8, 8, 9, 9,
279  9, 9, 10, 10, 11, 11, 12, 12,
280 13, 14, 15, 16, 17, 18, 19,
281  0, 0, 0, 0, 0, 1, 1, 1,
282  1, 1, 2, 2, 2, 3, 3, 4,
283  4, 5, 5, 6, 6, 7, 7, 8,
284  8, 9, 9, 10, 10, 11, 11, 12,
285 12, 13, 13, 14, 15, 16, 17, 18,
286 19, 20, 21, 22, 23, 24, 25, 26,
287 27, 28, 29, 30, 31, 32, 33, 34,
288 35, 36, 37, 38, 39, 40, 41, 42,
289 43, 44,
290 };
291 
292 static const int8_t intra_rvlc_level[169]={
293  1, 2, 3, 4, 5, 6, 7, 8,
294  9, 10, 11, 12, 13, 14, 15, 16,
295 17, 18, 19, 20, 21, 22, 23, 24,
296 25, 26, 27, 1, 2, 3, 4, 5,
297  6, 7, 8, 9, 10, 11, 12, 13,
298  1, 2, 3, 4, 5, 6, 7, 8,
299  9, 10, 11, 1, 2, 3, 4, 5,
300  6, 7, 8, 9, 1, 2, 3, 4,
301  5, 6, 1, 2, 3, 4, 5, 6,
302  1, 2, 3, 4, 5, 1, 2, 3,
303  4, 5, 1, 2, 3, 4, 1, 2,
304  3, 4, 1, 2, 1, 2, 1, 2,
305  1, 1, 1, 1, 1, 1, 1,
306  1, 2, 3, 4, 5, 1, 2, 3,
307  4, 5, 1, 2, 3, 1, 2, 1,
308  2, 1, 2, 1, 2, 1, 2, 1,
309  2, 1, 2, 1, 2, 1, 2, 1,
310  2, 1, 2, 1, 1, 1, 1, 1,
311  1, 1, 1, 1, 1, 1, 1, 1,
312  1, 1, 1, 1, 1, 1, 1, 1,
313  1, 1, 1, 1, 1, 1, 1, 1,
314  1, 1,
315 };
316 
318  169,
319  103,
320  intra_rvlc,
323 };
324 
325 const uint8_t ff_sprite_trajectory_lens[15] = {
326  2, 3, 3, 3, 3, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
327 };
328 
329 const uint8_t ff_mb_type_b_tab[4][2] = {
330  {1, 1}, {1, 2}, {1, 3}, {1, 4},
331 };
332 
333 /* these matrixes will be permuted for the idct */
334 const int16_t ff_mpeg4_default_intra_matrix[64] = {
335  8, 17, 18, 19, 21, 23, 25, 27,
336  17, 18, 19, 21, 23, 25, 27, 28,
337  20, 21, 22, 23, 24, 26, 28, 30,
338  21, 22, 23, 24, 26, 28, 30, 32,
339  22, 23, 24, 26, 28, 30, 32, 35,
340  23, 24, 26, 28, 30, 32, 35, 38,
341  25, 26, 28, 30, 32, 35, 38, 41,
342  27, 28, 30, 32, 35, 38, 41, 45,
343 };
344 
346  16, 17, 18, 19, 20, 21, 22, 23,
347  17, 18, 19, 20, 21, 22, 23, 24,
348  18, 19, 20, 21, 22, 23, 24, 25,
349  19, 20, 21, 22, 23, 24, 26, 27,
350  20, 21, 22, 23, 25, 26, 27, 28,
351  21, 22, 23, 24, 26, 27, 28, 30,
352  22, 23, 24, 26, 27, 28, 30, 31,
353  23, 24, 25, 27, 28, 30, 31, 33,
354 };
355 
356 const uint8_t ff_mpeg4_y_dc_scale_table[32]={
357 // 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
358  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
359 };
360 const uint8_t ff_mpeg4_c_dc_scale_table[32]={
361 // 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
362  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
363 };
364 
365 const uint8_t ff_mpeg4_dc_threshold[8]={
366  99, 13, 15, 17, 19, 21, 23, 0
367 };
368 
369 /* Note these are different in studio mode */
370 const uint8_t ff_mpeg4_studio_dc_luma[19][2] = {
371  { 2, 4 }, { 10, 4 }, { 3, 4 }, { 1, 5 }, { 0, 6 }, { 11, 7 },
372  { 12, 8 }, { 13, 9 }, { 14, 10 }, { 15, 11 }, { 16, 12 }, { 17, 13 },
373  { 18, 13 }, { 7, 3 }, { 6, 3 }, { 8, 3 }, { 5, 3 }, { 9, 3 },
374  { 4, 3 },
375 };
376 
377 const uint8_t ff_mpeg4_studio_dc_chroma[19][2] = {
378  { 0, 4 }, { 8, 4 }, { 1, 4 }, { 9, 5 }, { 10, 6 }, { 11, 7 },
379  { 12, 8 }, { 13, 9 }, { 14, 10 }, { 15, 11 }, { 16, 12 }, { 17, 13 },
380  { 18, 13 }, { 5, 3 }, { 4, 3 }, { 6, 3 }, { 3, 3 }, { 7, 3 },
381  { 2, 3 },
382 };
383 
384 const uint8_t ff_mpeg4_studio_intra[12][24][2] = {
385  {
386  { 0, -6 }, { 21, 13 }, { 6, 13 }, { 5, 12 }, { 4, 11 }, { 20, 10 },
387  { 3, 9 }, { 12, 8 }, { 11, 7 }, { 10, 7 }, { 2, 7 }, { 19, 6 },
388  { 18, 6 }, { 9, 6 }, { 8, 5 }, { 17, 4 }, { 7, 4 }, { 1, 4 },
389  { 0, 4 }, { 16, 3 }, { 15, 3 }, { 14, 3 }, { 13, 2 },
390  },
391  {
392  { 0, -6 }, { 21, 8 }, { 20, 8 }, { 19, 7 }, { 18, 5 }, { 17, 4 },
393  { 16, 3 }, { 15, 2 }, { 14, 1 },
394  },
395  {
396  { 0, -6 }, { 0,-15 }, { 20, 15 }, { 19, 14 }, { 6, 14 }, { 5, 14 },
397  { 21, 13 }, { 18, 13 }, { 17, 11 }, { 12, 10 }, { 4, 9 }, { 16, 8 },
398  { 3, 7 }, { 15, 6 }, { 11, 6 }, { 2, 5 }, { 1, 5 }, { 10, 4 },
399  { 9, 4 }, { 14, 3 }, { 8, 3 }, { 7, 3 }, { 0, 3 }, { 13, 2 },
400  },
401  {
402  { 0, -6 }, { 20, 13 }, { 12, 13 }, { 6, 13 }, { 5, 13 }, { 21, 12 },
403  { 19, 12 }, { 18, 10 }, { 4, 9 }, { 11, 8 }, { 17, 7 }, { 16, 6 },
404  { 3, 6 }, { 15, 5 }, { 10, 5 }, { 2, 5 }, { 0, 5 }, { 9, 4 },
405  { 8, 4 }, { 1, 4 }, { 7, 3 }, { 14, 2 }, { 13, 2 },
406  },
407  {
408  { 0, -6 }, { 0,-15 }, { 12, 15 }, { 6, 14 }, { 21, 13 }, { 20, 13 },
409  { 5, 13 }, { 19, 11 }, { 11, 10 }, { 4, 9 }, { 18, 8 }, { 10, 7 },
410  { 3, 7 }, { 0, 7 }, { 17, 6 }, { 16, 6 }, { 9, 6 }, { 2, 5 },
411  { 8, 4 }, { 1, 4 }, { 15, 3 }, { 7, 3 }, { 14, 2 }, { 13, 2 },
412  },
413  {
414  { 0, -6 }, { 0,-15 }, { 20, 15 }, { 12, 14 }, { 11, 13 }, { 6, 13 },
415  { 5, 13 }, { 21, 12 }, { 4, 12 }, { 19, 11 }, { 10, 11 }, { 3, 10 },
416  { 0, 10 }, { 9, 8 }, { 18, 7 }, { 8, 7 }, { 2, 7 }, { 17, 6 },
417  { 7, 5 }, { 1, 5 }, { 16, 3 }, { 15, 2 }, { 14, 2 }, { 13, 2 },
418  },
419  {
420  { 0, -6 }, { 0,-15 }, { 12, 15 }, { 11, 14 }, { 6, 14 }, { 5, 14 },
421  { 21, 12 }, { 20, 12 }, { 10, 12 }, { 4, 11 }, { 0, 11 }, { 9, 10 },
422  { 3, 10 }, { 19, 8 }, { 8, 8 }, { 2, 8 }, { 18, 6 }, { 7, 6 },
423  { 1, 4 }, { 17, 3 }, { 14, 3 }, { 13, 3 }, { 16, 2 }, { 15, 2 },
424  },
425  {
426  { 0, -6 }, { 12, 12 }, { 6, 12 }, { 21, 11 }, { 11, 11 }, { 5, 11 },
427  { 20, 10 }, { 10, 10 }, { 9, 9 }, { 0, 9 }, { 8, 8 }, { 2, 8 },
428  { 19, 7 }, { 7, 7 }, { 4, 7 }, { 3, 7 }, { 18, 5 }, { 1, 5 },
429  { 14, 4 }, { 13, 4 }, { 17, 2 }, { 16, 2 }, { 15, 2 },
430  },
431  {
432  { 0, -6 }, { 12, 13 }, { 6, 13 }, { 21, 12 }, { 11, 12 }, { 5, 12 },
433  { 20, 11 }, { 3, 11 }, { 10, 10 }, { 9, 10 }, { 2, 10 }, { 0, 10 },
434  { 8, 9 }, { 7, 8 }, { 4, 8 }, { 19, 6 }, { 1, 6 }, { 13, 4 },
435  { 18, 3 }, { 15, 3 }, { 14, 3 }, { 17, 2 }, { 16, 2 },
436  },
437  {
438  { 0, -6 }, { 12, 12 }, { 11, 12 }, { 6, 12 }, { 0, 12 }, { 21, 10 },
439  { 10, 10 }, { 5, 10 }, { 20, 8 }, { 9, 8 }, { 2, 8 }, { 8, 7 },
440  { 7, 7 }, { 4, 6 }, { 3, 6 }, { 1, 6 }, { 13, 5 }, { 19, 4 },
441  { 14, 4 }, { 16, 3 }, { 15, 3 }, { 18, 2 }, { 17, 2 },
442  },
443  {
444  { 0, -6 }, { 12, 13 }, { 6, 13 }, { 5, 13 }, { 0, 13 }, { 4, 11 },
445  { 11, 10 }, { 21, 9 }, { 10, 9 }, { 9, 9 }, { 8, 8 }, { 2, 8 },
446  { 7, 7 }, { 1, 7 }, { 20, 6 }, { 14, 5 }, { 13, 5 }, { 15, 4 },
447  { 3, 4 }, { 17, 3 }, { 16, 3 }, { 19, 2 }, { 18, 2 },
448  },
449  {
450  { 0, -6 }, { 6, 11 }, { 5, 11 }, { 12, 10 }, { 11, 10 }, { 0, 10 },
451  { 21, 9 }, { 10, 9 }, { 4, 9 }, { 3, 9 }, { 9, 8 }, { 8, 6 },
452  { 2, 6 }, { 7, 5 }, { 1, 5 }, { 18, 4 }, { 17, 4 }, { 16, 4 },
453  { 15, 4 }, { 19, 3 }, { 14, 3 }, { 13, 3 }, { 20, 2 },
454  },
455 };
456 
457 #endif /* AVCODEC_MPEG4DATA_H */
ff_sprite_trajectory_lens
const uint8_t ff_sprite_trajectory_lens[15]
Definition: mpeg4data.h:325
intra_rvlc
static const uint16_t intra_rvlc[170][2]
Definition: mpeg4data.h:221
inter_rvlc_level
static const int8_t inter_rvlc_level[169]
Definition: mpeg4data.h:188
inter_rvlc_run
static const int8_t inter_rvlc_run[169]
Definition: mpeg4data.h:163
ff_mpeg4_intra_level
const int8_t ff_mpeg4_intra_level[102]
Definition: mpeg4data.h:76
ff_mpeg4_DCtab_chrom
const uint8_t ff_mpeg4_DCtab_chrom[13][2]
Definition: mpeg4data.h:40
ff_rvlc_rl_intra
RLTable ff_rvlc_rl_intra
Definition: mpeg4data.h:317
RLTable
RLTable.
Definition: rl.h:39
ff_rvlc_rl_inter
RLTable ff_rvlc_rl_inter
Definition: mpeg4data.h:213
ff_mpeg4_intra_run
const int8_t ff_mpeg4_intra_run[102]
Definition: mpeg4data.h:92
ff_mpeg4_rl_intra
RLTable ff_mpeg4_rl_intra
Definition: mpeg4data.h:108
ff_mpeg4_DCtab_lum
const uint8_t ff_mpeg4_DCtab_lum[13][2]
Definition: mpeg4data.h:34
ff_mpeg4_dc_threshold
const uint8_t ff_mpeg4_dc_threshold[8]
Definition: mpeg4data.h:365
ff_mpeg4_y_dc_scale_table
const uint8_t ff_mpeg4_y_dc_scale_table[32]
Definition: mpeg4data.h:356
ff_mpeg4_default_intra_matrix
const int16_t ff_mpeg4_default_intra_matrix[64]
Definition: mpeg4data.h:334
ff_mpeg4_default_non_intra_matrix
const int16_t ff_mpeg4_default_non_intra_matrix[64]
Definition: mpeg4data.h:345
intra_rvlc_level
static const int8_t intra_rvlc_level[169]
Definition: mpeg4data.h:292
ff_mpeg4_intra_vlc
const uint16_t ff_mpeg4_intra_vlc[103][2]
Definition: mpeg4data.h:46
ff_mpeg4_studio_dc_luma
const uint8_t ff_mpeg4_studio_dc_luma[19][2]
Definition: mpeg4data.h:370
ff_mpeg4_studio_dc_chroma
const uint8_t ff_mpeg4_studio_dc_chroma[19][2]
Definition: mpeg4data.h:377
ff_mb_type_b_tab
const uint8_t ff_mb_type_b_tab[4][2]
Definition: mpeg4data.h:329
intra_rvlc_run
static const int8_t intra_rvlc_run[169]
Definition: mpeg4data.h:267
ff_mpeg4_c_dc_scale_table
const uint8_t ff_mpeg4_c_dc_scale_table[32]
Definition: mpeg4data.h:360
mpeg4videodata.h
inter_rvlc
static const uint16_t inter_rvlc[170][2]
Definition: mpeg4data.h:117
ff_mpeg4_studio_intra
const uint8_t ff_mpeg4_studio_intra[12][24][2]
Definition: mpeg4data.h:384