diff options
Diffstat (limited to 'apps/plugins/mpegplayer/libmpeg2/vlc.h')
-rw-r--r-- | apps/plugins/mpegplayer/libmpeg2/vlc.h | 433 |
1 files changed, 433 insertions, 0 deletions
diff --git a/apps/plugins/mpegplayer/libmpeg2/vlc.h b/apps/plugins/mpegplayer/libmpeg2/vlc.h new file mode 100644 index 0000000000..d1b6a98cde --- /dev/null +++ b/apps/plugins/mpegplayer/libmpeg2/vlc.h | |||
@@ -0,0 +1,433 @@ | |||
1 | /* | ||
2 | * vlc.h | ||
3 | * Copyright (C) 2000-2003 Michel Lespinasse <walken@zoy.org> | ||
4 | * Copyright (C) 1999-2000 Aaron Holtzman <aholtzma@ess.engr.uvic.ca> | ||
5 | * | ||
6 | * This file is part of mpeg2dec, a free MPEG-2 video stream decoder. | ||
7 | * See http://libmpeg2.sourceforge.net/ for updates. | ||
8 | * | ||
9 | * mpeg2dec is free software; you can redistribute it and/or modify | ||
10 | * it under the terms of the GNU General Public License as published by | ||
11 | * the Free Software Foundation; either version 2 of the License, or | ||
12 | * (at your option) any later version. | ||
13 | * | ||
14 | * mpeg2dec is distributed in the hope that it will be useful, | ||
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
17 | * GNU General Public License for more details. | ||
18 | * | ||
19 | * You should have received a copy of the GNU General Public License | ||
20 | * along with this program; if not, write to the Free Software | ||
21 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
22 | * | ||
23 | * $Id$ | ||
24 | * libmpeg2 sync history: | ||
25 | * 2008-07-01 - CVS revision 1.12 | ||
26 | */ | ||
27 | |||
28 | #define GETWORD(bit_buf, shift, bit_ptr) \ | ||
29 | do { \ | ||
30 | bit_buf |= ((bit_ptr[0] << 8) | bit_ptr[1]) << (shift); \ | ||
31 | bit_ptr += 2; \ | ||
32 | } while (0) | ||
33 | |||
34 | static inline void bitstream_init (mpeg2_decoder_t * decoder, | ||
35 | const uint8_t * start) | ||
36 | { | ||
37 | decoder->bitstream_buf = | ||
38 | (start[0] << 24) | (start[1] << 16) | (start[2] << 8) | start[3]; | ||
39 | decoder->bitstream_ptr = start + 4; | ||
40 | decoder->bitstream_bits = -16; | ||
41 | } | ||
42 | |||
43 | /* make sure that there are at least 16 valid bits in bit_buf */ | ||
44 | #define NEEDBITS(bit_buf, bits, bit_ptr) \ | ||
45 | do { \ | ||
46 | if (unlikely (bits > 0)) { \ | ||
47 | GETWORD (bit_buf, bits, bit_ptr); \ | ||
48 | bits -= 16; \ | ||
49 | } \ | ||
50 | } while (0) | ||
51 | |||
52 | /* remove num valid bits from bit_buf */ | ||
53 | #define DUMPBITS(bit_buf, bits, num) \ | ||
54 | do { \ | ||
55 | bit_buf <<= (num); \ | ||
56 | bits += (num); \ | ||
57 | } while (0) | ||
58 | |||
59 | /* take num bits from the high part of bit_buf and zero extend them */ | ||
60 | #define UBITS(bit_buf,num) (((uint32_t)(bit_buf)) >> (32 - (num))) | ||
61 | |||
62 | /* take num bits from the high part of bit_buf and sign extend them */ | ||
63 | #define SBITS(bit_buf,num) (((int32_t)(bit_buf)) >> (32 - (num))) | ||
64 | |||
65 | typedef struct { | ||
66 | uint8_t modes; | ||
67 | uint8_t len; | ||
68 | } MBtab; | ||
69 | |||
70 | typedef struct { | ||
71 | uint8_t delta; | ||
72 | uint8_t len; | ||
73 | } MVtab; | ||
74 | |||
75 | typedef struct { | ||
76 | int8_t dmv; | ||
77 | uint8_t len; | ||
78 | } DMVtab; | ||
79 | |||
80 | typedef struct { | ||
81 | uint8_t cbp; | ||
82 | uint8_t len; | ||
83 | } CBPtab; | ||
84 | |||
85 | typedef struct { | ||
86 | uint8_t size; | ||
87 | uint8_t len; | ||
88 | } DCtab; | ||
89 | |||
90 | typedef struct { | ||
91 | uint8_t run; | ||
92 | uint8_t level; | ||
93 | uint8_t len; | ||
94 | } DCTtab; | ||
95 | |||
96 | typedef struct { | ||
97 | uint8_t mba; | ||
98 | uint8_t len; | ||
99 | } MBAtab; | ||
100 | |||
101 | |||
102 | #define INTRA MACROBLOCK_INTRA | ||
103 | #define QUANT MACROBLOCK_QUANT | ||
104 | |||
105 | static const MBtab MB_I [] ICONST_ATTR = { | ||
106 | {INTRA|QUANT, 2}, {INTRA, 1} | ||
107 | }; | ||
108 | |||
109 | #define MC MACROBLOCK_MOTION_FORWARD | ||
110 | #define CODED MACROBLOCK_PATTERN | ||
111 | |||
112 | static const MBtab MB_P [] ICONST_ATTR = { | ||
113 | {INTRA|QUANT, 6}, {CODED|QUANT, 5}, {MC|CODED|QUANT, 5}, {INTRA, 5}, | ||
114 | {MC, 3}, {MC, 3}, {MC, 3}, {MC, 3}, | ||
115 | {CODED, 2}, {CODED, 2}, {CODED, 2}, {CODED, 2}, | ||
116 | {CODED, 2}, {CODED, 2}, {CODED, 2}, {CODED, 2}, | ||
117 | {MC|CODED, 1}, {MC|CODED, 1}, {MC|CODED, 1}, {MC|CODED, 1}, | ||
118 | {MC|CODED, 1}, {MC|CODED, 1}, {MC|CODED, 1}, {MC|CODED, 1}, | ||
119 | {MC|CODED, 1}, {MC|CODED, 1}, {MC|CODED, 1}, {MC|CODED, 1}, | ||
120 | {MC|CODED, 1}, {MC|CODED, 1}, {MC|CODED, 1}, {MC|CODED, 1} | ||
121 | }; | ||
122 | |||
123 | #define FWD MACROBLOCK_MOTION_FORWARD | ||
124 | #define BWD MACROBLOCK_MOTION_BACKWARD | ||
125 | #define INTER MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD | ||
126 | |||
127 | static const MBtab MB_B [] ICONST_ATTR = { | ||
128 | {0, 6}, {INTRA|QUANT, 6}, | ||
129 | {BWD|CODED|QUANT, 6}, {FWD|CODED|QUANT, 6}, | ||
130 | {INTER|CODED|QUANT, 5}, {INTER|CODED|QUANT, 5}, | ||
131 | {INTRA, 5}, {INTRA, 5}, | ||
132 | {FWD, 4}, {FWD, 4}, {FWD, 4}, {FWD, 4}, | ||
133 | {FWD|CODED, 4}, {FWD|CODED, 4}, {FWD|CODED, 4}, {FWD|CODED, 4}, | ||
134 | {BWD, 3}, {BWD, 3}, {BWD, 3}, {BWD, 3}, | ||
135 | {BWD, 3}, {BWD, 3}, {BWD, 3}, {BWD, 3}, | ||
136 | {BWD|CODED, 3}, {BWD|CODED, 3}, {BWD|CODED, 3}, {BWD|CODED, 3}, | ||
137 | {BWD|CODED, 3}, {BWD|CODED, 3}, {BWD|CODED, 3}, {BWD|CODED, 3}, | ||
138 | {INTER, 2}, {INTER, 2}, {INTER, 2}, {INTER, 2}, | ||
139 | {INTER, 2}, {INTER, 2}, {INTER, 2}, {INTER, 2}, | ||
140 | {INTER, 2}, {INTER, 2}, {INTER, 2}, {INTER, 2}, | ||
141 | {INTER, 2}, {INTER, 2}, {INTER, 2}, {INTER, 2}, | ||
142 | {INTER|CODED, 2}, {INTER|CODED, 2}, {INTER|CODED, 2}, {INTER|CODED, 2}, | ||
143 | {INTER|CODED, 2}, {INTER|CODED, 2}, {INTER|CODED, 2}, {INTER|CODED, 2}, | ||
144 | {INTER|CODED, 2}, {INTER|CODED, 2}, {INTER|CODED, 2}, {INTER|CODED, 2}, | ||
145 | {INTER|CODED, 2}, {INTER|CODED, 2}, {INTER|CODED, 2}, {INTER|CODED, 2} | ||
146 | }; | ||
147 | |||
148 | #undef INTRA | ||
149 | #undef QUANT | ||
150 | #undef MC | ||
151 | #undef CODED | ||
152 | #undef FWD | ||
153 | #undef BWD | ||
154 | #undef INTER | ||
155 | |||
156 | |||
157 | static const MVtab MV_4 [] ICONST_ATTR = { | ||
158 | { 3, 6}, { 2, 4}, { 1, 3}, { 1, 3}, { 0, 2}, { 0, 2}, { 0, 2}, { 0, 2} | ||
159 | }; | ||
160 | |||
161 | static const MVtab MV_10 [] ICONST_ATTR = { | ||
162 | { 0,10}, { 0,10}, { 0,10}, { 0,10}, { 0,10}, { 0,10}, { 0,10}, { 0,10}, | ||
163 | { 0,10}, { 0,10}, { 0,10}, { 0,10}, {15,10}, {14,10}, {13,10}, {12,10}, | ||
164 | {11,10}, {10,10}, { 9, 9}, { 9, 9}, { 8, 9}, { 8, 9}, { 7, 9}, { 7, 9}, | ||
165 | { 6, 7}, { 6, 7}, { 6, 7}, { 6, 7}, { 6, 7}, { 6, 7}, { 6, 7}, { 6, 7}, | ||
166 | { 5, 7}, { 5, 7}, { 5, 7}, { 5, 7}, { 5, 7}, { 5, 7}, { 5, 7}, { 5, 7}, | ||
167 | { 4, 7}, { 4, 7}, { 4, 7}, { 4, 7}, { 4, 7}, { 4, 7}, { 4, 7}, { 4, 7} | ||
168 | }; | ||
169 | |||
170 | |||
171 | static const DMVtab DMV_2 [] ICONST_ATTR = { | ||
172 | { 0, 1}, { 0, 1}, { 1, 2}, {-1, 2} | ||
173 | }; | ||
174 | |||
175 | |||
176 | static const CBPtab CBP_7 [] ICONST_ATTR = { | ||
177 | {0x11, 7}, {0x12, 7}, {0x14, 7}, {0x18, 7}, | ||
178 | {0x21, 7}, {0x22, 7}, {0x24, 7}, {0x28, 7}, | ||
179 | {0x3f, 6}, {0x3f, 6}, {0x30, 6}, {0x30, 6}, | ||
180 | {0x09, 6}, {0x09, 6}, {0x06, 6}, {0x06, 6}, | ||
181 | {0x1f, 5}, {0x1f, 5}, {0x1f, 5}, {0x1f, 5}, | ||
182 | {0x10, 5}, {0x10, 5}, {0x10, 5}, {0x10, 5}, | ||
183 | {0x2f, 5}, {0x2f, 5}, {0x2f, 5}, {0x2f, 5}, | ||
184 | {0x20, 5}, {0x20, 5}, {0x20, 5}, {0x20, 5}, | ||
185 | {0x07, 5}, {0x07, 5}, {0x07, 5}, {0x07, 5}, | ||
186 | {0x0b, 5}, {0x0b, 5}, {0x0b, 5}, {0x0b, 5}, | ||
187 | {0x0d, 5}, {0x0d, 5}, {0x0d, 5}, {0x0d, 5}, | ||
188 | {0x0e, 5}, {0x0e, 5}, {0x0e, 5}, {0x0e, 5}, | ||
189 | {0x05, 5}, {0x05, 5}, {0x05, 5}, {0x05, 5}, | ||
190 | {0x0a, 5}, {0x0a, 5}, {0x0a, 5}, {0x0a, 5}, | ||
191 | {0x03, 5}, {0x03, 5}, {0x03, 5}, {0x03, 5}, | ||
192 | {0x0c, 5}, {0x0c, 5}, {0x0c, 5}, {0x0c, 5}, | ||
193 | {0x01, 4}, {0x01, 4}, {0x01, 4}, {0x01, 4}, | ||
194 | {0x01, 4}, {0x01, 4}, {0x01, 4}, {0x01, 4}, | ||
195 | {0x02, 4}, {0x02, 4}, {0x02, 4}, {0x02, 4}, | ||
196 | {0x02, 4}, {0x02, 4}, {0x02, 4}, {0x02, 4}, | ||
197 | {0x04, 4}, {0x04, 4}, {0x04, 4}, {0x04, 4}, | ||
198 | {0x04, 4}, {0x04, 4}, {0x04, 4}, {0x04, 4}, | ||
199 | {0x08, 4}, {0x08, 4}, {0x08, 4}, {0x08, 4}, | ||
200 | {0x08, 4}, {0x08, 4}, {0x08, 4}, {0x08, 4}, | ||
201 | {0x0f, 3}, {0x0f, 3}, {0x0f, 3}, {0x0f, 3}, | ||
202 | {0x0f, 3}, {0x0f, 3}, {0x0f, 3}, {0x0f, 3}, | ||
203 | {0x0f, 3}, {0x0f, 3}, {0x0f, 3}, {0x0f, 3}, | ||
204 | {0x0f, 3}, {0x0f, 3}, {0x0f, 3}, {0x0f, 3} | ||
205 | }; | ||
206 | |||
207 | static const CBPtab CBP_9 [] ICONST_ATTR = { | ||
208 | {0, 9}, {0x00, 9}, {0x39, 9}, {0x36, 9}, | ||
209 | {0x37, 9}, {0x3b, 9}, {0x3d, 9}, {0x3e, 9}, | ||
210 | {0x17, 8}, {0x17, 8}, {0x1b, 8}, {0x1b, 8}, | ||
211 | {0x1d, 8}, {0x1d, 8}, {0x1e, 8}, {0x1e, 8}, | ||
212 | {0x27, 8}, {0x27, 8}, {0x2b, 8}, {0x2b, 8}, | ||
213 | {0x2d, 8}, {0x2d, 8}, {0x2e, 8}, {0x2e, 8}, | ||
214 | {0x19, 8}, {0x19, 8}, {0x16, 8}, {0x16, 8}, | ||
215 | {0x29, 8}, {0x29, 8}, {0x26, 8}, {0x26, 8}, | ||
216 | {0x35, 8}, {0x35, 8}, {0x3a, 8}, {0x3a, 8}, | ||
217 | {0x33, 8}, {0x33, 8}, {0x3c, 8}, {0x3c, 8}, | ||
218 | {0x15, 8}, {0x15, 8}, {0x1a, 8}, {0x1a, 8}, | ||
219 | {0x13, 8}, {0x13, 8}, {0x1c, 8}, {0x1c, 8}, | ||
220 | {0x25, 8}, {0x25, 8}, {0x2a, 8}, {0x2a, 8}, | ||
221 | {0x23, 8}, {0x23, 8}, {0x2c, 8}, {0x2c, 8}, | ||
222 | {0x31, 8}, {0x31, 8}, {0x32, 8}, {0x32, 8}, | ||
223 | {0x34, 8}, {0x34, 8}, {0x38, 8}, {0x38, 8} | ||
224 | }; | ||
225 | |||
226 | |||
227 | static const DCtab DC_lum_5 [] ICONST_ATTR = { | ||
228 | {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, | ||
229 | {2, 2}, {2, 2}, {2, 2}, {2, 2}, {2, 2}, {2, 2}, {2, 2}, {2, 2}, | ||
230 | {0, 3}, {0, 3}, {0, 3}, {0, 3}, {3, 3}, {3, 3}, {3, 3}, {3, 3}, | ||
231 | {4, 3}, {4, 3}, {4, 3}, {4, 3}, {5, 4}, {5, 4}, {6, 5} | ||
232 | }; | ||
233 | |||
234 | static const DCtab DC_chrom_5 [] ICONST_ATTR = { | ||
235 | {0, 2}, {0, 2}, {0, 2}, {0, 2}, {0, 2}, {0, 2}, {0, 2}, {0, 2}, | ||
236 | {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, | ||
237 | {2, 2}, {2, 2}, {2, 2}, {2, 2}, {2, 2}, {2, 2}, {2, 2}, {2, 2}, | ||
238 | {3, 3}, {3, 3}, {3, 3}, {3, 3}, {4, 4}, {4, 4}, {5, 5} | ||
239 | }; | ||
240 | |||
241 | static const DCtab DC_long [] ICONST_ATTR = { | ||
242 | {6, 5}, {6, 5}, {6, 5}, {6, 5}, {6, 5}, {6, 5}, { 6, 5}, { 6, 5}, | ||
243 | {6, 5}, {6, 5}, {6, 5}, {6, 5}, {6, 5}, {6, 5}, { 6, 5}, { 6, 5}, | ||
244 | {7, 6}, {7, 6}, {7, 6}, {7, 6}, {7, 6}, {7, 6}, { 7, 6}, { 7, 6}, | ||
245 | {8, 7}, {8, 7}, {8, 7}, {8, 7}, {9, 8}, {9, 8}, {10, 9}, {11, 9} | ||
246 | }; | ||
247 | |||
248 | |||
249 | static const DCTtab DCT_16 [] ICONST_ATTR = { | ||
250 | {129, 0, 0}, {129, 0, 0}, {129, 0, 0}, {129, 0, 0}, | ||
251 | {129, 0, 0}, {129, 0, 0}, {129, 0, 0}, {129, 0, 0}, | ||
252 | {129, 0, 0}, {129, 0, 0}, {129, 0, 0}, {129, 0, 0}, | ||
253 | {129, 0, 0}, {129, 0, 0}, {129, 0, 0}, {129, 0, 0}, | ||
254 | { 2,18, 0}, { 2,17, 0}, { 2,16, 0}, { 2,15, 0}, | ||
255 | { 7, 3, 0}, { 17, 2, 0}, { 16, 2, 0}, { 15, 2, 0}, | ||
256 | { 14, 2, 0}, { 13, 2, 0}, { 12, 2, 0}, { 32, 1, 0}, | ||
257 | { 31, 1, 0}, { 30, 1, 0}, { 29, 1, 0}, { 28, 1, 0} | ||
258 | }; | ||
259 | |||
260 | static const DCTtab DCT_15 [] ICONST_ATTR = { | ||
261 | { 1,40,15}, { 1,39,15}, { 1,38,15}, { 1,37,15}, | ||
262 | { 1,36,15}, { 1,35,15}, { 1,34,15}, { 1,33,15}, | ||
263 | { 1,32,15}, { 2,14,15}, { 2,13,15}, { 2,12,15}, | ||
264 | { 2,11,15}, { 2,10,15}, { 2, 9,15}, { 2, 8,15}, | ||
265 | { 1,31,14}, { 1,31,14}, { 1,30,14}, { 1,30,14}, | ||
266 | { 1,29,14}, { 1,29,14}, { 1,28,14}, { 1,28,14}, | ||
267 | { 1,27,14}, { 1,27,14}, { 1,26,14}, { 1,26,14}, | ||
268 | { 1,25,14}, { 1,25,14}, { 1,24,14}, { 1,24,14}, | ||
269 | { 1,23,14}, { 1,23,14}, { 1,22,14}, { 1,22,14}, | ||
270 | { 1,21,14}, { 1,21,14}, { 1,20,14}, { 1,20,14}, | ||
271 | { 1,19,14}, { 1,19,14}, { 1,18,14}, { 1,18,14}, | ||
272 | { 1,17,14}, { 1,17,14}, { 1,16,14}, { 1,16,14} | ||
273 | }; | ||
274 | |||
275 | static const DCTtab DCT_13 [] ICONST_ATTR = { | ||
276 | { 11, 2,13}, { 10, 2,13}, { 6, 3,13}, { 4, 4,13}, | ||
277 | { 3, 5,13}, { 2, 7,13}, { 2, 6,13}, { 1,15,13}, | ||
278 | { 1,14,13}, { 1,13,13}, { 1,12,13}, { 27, 1,13}, | ||
279 | { 26, 1,13}, { 25, 1,13}, { 24, 1,13}, { 23, 1,13}, | ||
280 | { 1,11,12}, { 1,11,12}, { 9, 2,12}, { 9, 2,12}, | ||
281 | { 5, 3,12}, { 5, 3,12}, { 1,10,12}, { 1,10,12}, | ||
282 | { 3, 4,12}, { 3, 4,12}, { 8, 2,12}, { 8, 2,12}, | ||
283 | { 22, 1,12}, { 22, 1,12}, { 21, 1,12}, { 21, 1,12}, | ||
284 | { 1, 9,12}, { 1, 9,12}, { 20, 1,12}, { 20, 1,12}, | ||
285 | { 19, 1,12}, { 19, 1,12}, { 2, 5,12}, { 2, 5,12}, | ||
286 | { 4, 3,12}, { 4, 3,12}, { 1, 8,12}, { 1, 8,12}, | ||
287 | { 7, 2,12}, { 7, 2,12}, { 18, 1,12}, { 18, 1,12} | ||
288 | }; | ||
289 | |||
290 | static const DCTtab DCT_B14_10 [] ICONST_ATTR = { | ||
291 | { 17, 1,10}, { 6, 2,10}, { 1, 7,10}, { 3, 3,10}, | ||
292 | { 2, 4,10}, { 16, 1,10}, { 15, 1,10}, { 5, 2,10} | ||
293 | }; | ||
294 | |||
295 | static const DCTtab DCT_B14_8 [] ICONST_ATTR = { | ||
296 | { 65, 0, 12}, { 65, 0, 12}, { 65, 0, 12}, { 65, 0, 12}, | ||
297 | { 3, 2, 7}, { 3, 2, 7}, { 10, 1, 7}, { 10, 1, 7}, | ||
298 | { 1, 4, 7}, { 1, 4, 7}, { 9, 1, 7}, { 9, 1, 7}, | ||
299 | { 8, 1, 6}, { 8, 1, 6}, { 8, 1, 6}, { 8, 1, 6}, | ||
300 | { 7, 1, 6}, { 7, 1, 6}, { 7, 1, 6}, { 7, 1, 6}, | ||
301 | { 2, 2, 6}, { 2, 2, 6}, { 2, 2, 6}, { 2, 2, 6}, | ||
302 | { 6, 1, 6}, { 6, 1, 6}, { 6, 1, 6}, { 6, 1, 6}, | ||
303 | { 14, 1, 8}, { 1, 6, 8}, { 13, 1, 8}, { 12, 1, 8}, | ||
304 | { 4, 2, 8}, { 2, 3, 8}, { 1, 5, 8}, { 11, 1, 8} | ||
305 | }; | ||
306 | |||
307 | static const DCTtab DCT_B14AC_5 [] ICONST_ATTR = { | ||
308 | { 1, 3, 5}, { 5, 1, 5}, { 4, 1, 5}, | ||
309 | { 1, 2, 4}, { 1, 2, 4}, { 3, 1, 4}, { 3, 1, 4}, | ||
310 | { 2, 1, 3}, { 2, 1, 3}, { 2, 1, 3}, { 2, 1, 3}, | ||
311 | {129, 0, 2}, {129, 0, 2}, {129, 0, 2}, {129, 0, 2}, | ||
312 | {129, 0, 2}, {129, 0, 2}, {129, 0, 2}, {129, 0, 2}, | ||
313 | { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, | ||
314 | { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2} | ||
315 | }; | ||
316 | |||
317 | static const DCTtab DCT_B14DC_5 [] ICONST_ATTR = { | ||
318 | { 1, 3, 5}, { 5, 1, 5}, { 4, 1, 5}, | ||
319 | { 1, 2, 4}, { 1, 2, 4}, { 3, 1, 4}, { 3, 1, 4}, | ||
320 | { 2, 1, 3}, { 2, 1, 3}, { 2, 1, 3}, { 2, 1, 3}, | ||
321 | { 1, 1, 1}, { 1, 1, 1}, { 1, 1, 1}, { 1, 1, 1}, | ||
322 | { 1, 1, 1}, { 1, 1, 1}, { 1, 1, 1}, { 1, 1, 1}, | ||
323 | { 1, 1, 1}, { 1, 1, 1}, { 1, 1, 1}, { 1, 1, 1}, | ||
324 | { 1, 1, 1}, { 1, 1, 1}, { 1, 1, 1}, { 1, 1, 1} | ||
325 | }; | ||
326 | |||
327 | static const DCTtab DCT_B15_10 [] ICONST_ATTR = { | ||
328 | { 6, 2, 9}, { 6, 2, 9}, { 15, 1, 9}, { 15, 1, 9}, | ||
329 | { 3, 4,10}, { 17, 1,10}, { 16, 1, 9}, { 16, 1, 9} | ||
330 | }; | ||
331 | |||
332 | static const DCTtab DCT_B15_8 [] ICONST_ATTR = { | ||
333 | { 65, 0, 12}, { 65, 0, 12}, { 65, 0, 12}, { 65, 0, 12}, | ||
334 | { 8, 1, 7}, { 8, 1, 7}, { 9, 1, 7}, { 9, 1, 7}, | ||
335 | { 7, 1, 7}, { 7, 1, 7}, { 3, 2, 7}, { 3, 2, 7}, | ||
336 | { 1, 7, 6}, { 1, 7, 6}, { 1, 7, 6}, { 1, 7, 6}, | ||
337 | { 1, 6, 6}, { 1, 6, 6}, { 1, 6, 6}, { 1, 6, 6}, | ||
338 | { 5, 1, 6}, { 5, 1, 6}, { 5, 1, 6}, { 5, 1, 6}, | ||
339 | { 6, 1, 6}, { 6, 1, 6}, { 6, 1, 6}, { 6, 1, 6}, | ||
340 | { 2, 5, 8}, { 12, 1, 8}, { 1,11, 8}, { 1,10, 8}, | ||
341 | { 14, 1, 8}, { 13, 1, 8}, { 4, 2, 8}, { 2, 4, 8}, | ||
342 | { 3, 1, 5}, { 3, 1, 5}, { 3, 1, 5}, { 3, 1, 5}, | ||
343 | { 3, 1, 5}, { 3, 1, 5}, { 3, 1, 5}, { 3, 1, 5}, | ||
344 | { 2, 2, 5}, { 2, 2, 5}, { 2, 2, 5}, { 2, 2, 5}, | ||
345 | { 2, 2, 5}, { 2, 2, 5}, { 2, 2, 5}, { 2, 2, 5}, | ||
346 | { 4, 1, 5}, { 4, 1, 5}, { 4, 1, 5}, { 4, 1, 5}, | ||
347 | { 4, 1, 5}, { 4, 1, 5}, { 4, 1, 5}, { 4, 1, 5}, | ||
348 | { 2, 1, 3}, { 2, 1, 3}, { 2, 1, 3}, { 2, 1, 3}, | ||
349 | { 2, 1, 3}, { 2, 1, 3}, { 2, 1, 3}, { 2, 1, 3}, | ||
350 | { 2, 1, 3}, { 2, 1, 3}, { 2, 1, 3}, { 2, 1, 3}, | ||
351 | { 2, 1, 3}, { 2, 1, 3}, { 2, 1, 3}, { 2, 1, 3}, | ||
352 | { 2, 1, 3}, { 2, 1, 3}, { 2, 1, 3}, { 2, 1, 3}, | ||
353 | { 2, 1, 3}, { 2, 1, 3}, { 2, 1, 3}, { 2, 1, 3}, | ||
354 | { 2, 1, 3}, { 2, 1, 3}, { 2, 1, 3}, { 2, 1, 3}, | ||
355 | { 2, 1, 3}, { 2, 1, 3}, { 2, 1, 3}, { 2, 1, 3}, | ||
356 | {129, 0, 4}, {129, 0, 4}, {129, 0, 4}, {129, 0, 4}, | ||
357 | {129, 0, 4}, {129, 0, 4}, {129, 0, 4}, {129, 0, 4}, | ||
358 | {129, 0, 4}, {129, 0, 4}, {129, 0, 4}, {129, 0, 4}, | ||
359 | {129, 0, 4}, {129, 0, 4}, {129, 0, 4}, {129, 0, 4}, | ||
360 | { 1, 3, 4}, { 1, 3, 4}, { 1, 3, 4}, { 1, 3, 4}, | ||
361 | { 1, 3, 4}, { 1, 3, 4}, { 1, 3, 4}, { 1, 3, 4}, | ||
362 | { 1, 3, 4}, { 1, 3, 4}, { 1, 3, 4}, { 1, 3, 4}, | ||
363 | { 1, 3, 4}, { 1, 3, 4}, { 1, 3, 4}, { 1, 3, 4}, | ||
364 | { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, | ||
365 | { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, | ||
366 | { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, | ||
367 | { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, | ||
368 | { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, | ||
369 | { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, | ||
370 | { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, | ||
371 | { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, | ||
372 | { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, | ||
373 | { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, | ||
374 | { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, | ||
375 | { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, | ||
376 | { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, | ||
377 | { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, | ||
378 | { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, | ||
379 | { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, | ||
380 | { 1, 2, 3}, { 1, 2, 3}, { 1, 2, 3}, { 1, 2, 3}, | ||
381 | { 1, 2, 3}, { 1, 2, 3}, { 1, 2, 3}, { 1, 2, 3}, | ||
382 | { 1, 2, 3}, { 1, 2, 3}, { 1, 2, 3}, { 1, 2, 3}, | ||
383 | { 1, 2, 3}, { 1, 2, 3}, { 1, 2, 3}, { 1, 2, 3}, | ||
384 | { 1, 2, 3}, { 1, 2, 3}, { 1, 2, 3}, { 1, 2, 3}, | ||
385 | { 1, 2, 3}, { 1, 2, 3}, { 1, 2, 3}, { 1, 2, 3}, | ||
386 | { 1, 2, 3}, { 1, 2, 3}, { 1, 2, 3}, { 1, 2, 3}, | ||
387 | { 1, 2, 3}, { 1, 2, 3}, { 1, 2, 3}, { 1, 2, 3}, | ||
388 | { 1, 4, 5}, { 1, 4, 5}, { 1, 4, 5}, { 1, 4, 5}, | ||
389 | { 1, 4, 5}, { 1, 4, 5}, { 1, 4, 5}, { 1, 4, 5}, | ||
390 | { 1, 5, 5}, { 1, 5, 5}, { 1, 5, 5}, { 1, 5, 5}, | ||
391 | { 1, 5, 5}, { 1, 5, 5}, { 1, 5, 5}, { 1, 5, 5}, | ||
392 | { 10, 1, 7}, { 10, 1, 7}, { 2, 3, 7}, { 2, 3, 7}, | ||
393 | { 11, 1, 7}, { 11, 1, 7}, { 1, 8, 7}, { 1, 8, 7}, | ||
394 | { 1, 9, 7}, { 1, 9, 7}, { 1,12, 8}, { 1,13, 8}, | ||
395 | { 3, 3, 8}, { 5, 2, 8}, { 1,14, 8}, { 1,15, 8} | ||
396 | }; | ||
397 | |||
398 | |||
399 | static const MBAtab MBA_5 [] ICONST_ATTR = { | ||
400 | {6, 5}, {5, 5}, {4, 4}, {4, 4}, {3, 4}, {3, 4}, | ||
401 | {2, 3}, {2, 3}, {2, 3}, {2, 3}, {1, 3}, {1, 3}, {1, 3}, {1, 3}, | ||
402 | {0, 1}, {0, 1}, {0, 1}, {0, 1}, {0, 1}, {0, 1}, {0, 1}, {0, 1}, | ||
403 | {0, 1}, {0, 1}, {0, 1}, {0, 1}, {0, 1}, {0, 1}, {0, 1}, {0, 1} | ||
404 | }; | ||
405 | |||
406 | static const MBAtab MBA_11 [] ICONST_ATTR = { | ||
407 | {32, 11}, {31, 11}, {30, 11}, {29, 11}, | ||
408 | {28, 11}, {27, 11}, {26, 11}, {25, 11}, | ||
409 | {24, 11}, {23, 11}, {22, 11}, {21, 11}, | ||
410 | {20, 10}, {20, 10}, {19, 10}, {19, 10}, | ||
411 | {18, 10}, {18, 10}, {17, 10}, {17, 10}, | ||
412 | {16, 10}, {16, 10}, {15, 10}, {15, 10}, | ||
413 | {14, 8}, {14, 8}, {14, 8}, {14, 8}, | ||
414 | {14, 8}, {14, 8}, {14, 8}, {14, 8}, | ||
415 | {13, 8}, {13, 8}, {13, 8}, {13, 8}, | ||
416 | {13, 8}, {13, 8}, {13, 8}, {13, 8}, | ||
417 | {12, 8}, {12, 8}, {12, 8}, {12, 8}, | ||
418 | {12, 8}, {12, 8}, {12, 8}, {12, 8}, | ||
419 | {11, 8}, {11, 8}, {11, 8}, {11, 8}, | ||
420 | {11, 8}, {11, 8}, {11, 8}, {11, 8}, | ||
421 | {10, 8}, {10, 8}, {10, 8}, {10, 8}, | ||
422 | {10, 8}, {10, 8}, {10, 8}, {10, 8}, | ||
423 | { 9, 8}, { 9, 8}, { 9, 8}, { 9, 8}, | ||
424 | { 9, 8}, { 9, 8}, { 9, 8}, { 9, 8}, | ||
425 | { 8, 7}, { 8, 7}, { 8, 7}, { 8, 7}, | ||
426 | { 8, 7}, { 8, 7}, { 8, 7}, { 8, 7}, | ||
427 | { 8, 7}, { 8, 7}, { 8, 7}, { 8, 7}, | ||
428 | { 8, 7}, { 8, 7}, { 8, 7}, { 8, 7}, | ||
429 | { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, | ||
430 | { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, | ||
431 | { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, | ||
432 | { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7} | ||
433 | }; | ||