VirtualBox

source: vbox/trunk/src/libs/ffmpeg-20060710/libavcodec/mpegaudiodectab.h@ 9441

Last change on this file since 9441 was 5776, checked in by vboxsync, 17 years ago

ffmpeg: exported to OSE

File size: 29.1 KB
Line 
1/**
2 * @file mpegaudiodectab.h
3 * mpeg audio layer decoder tables.
4 */
5
6const uint16_t mpa_bitrate_tab[2][3][15] = {
7 { {0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448 },
8 {0, 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384 },
9 {0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320 } },
10 { {0, 32, 48, 56, 64, 80, 96, 112, 128, 144, 160, 176, 192, 224, 256},
11 {0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160},
12 {0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160}
13 }
14};
15
16const uint16_t mpa_freq_tab[3] = { 44100, 48000, 32000 };
17
18/*******************************************************/
19/* half mpeg encoding window (full precision) */
20const int32_t mpa_enwindow[257] = {
21 0, -1, -1, -1, -1, -1, -1, -2,
22 -2, -2, -2, -3, -3, -4, -4, -5,
23 -5, -6, -7, -7, -8, -9, -10, -11,
24 -13, -14, -16, -17, -19, -21, -24, -26,
25 -29, -31, -35, -38, -41, -45, -49, -53,
26 -58, -63, -68, -73, -79, -85, -91, -97,
27 -104, -111, -117, -125, -132, -139, -147, -154,
28 -161, -169, -176, -183, -190, -196, -202, -208,
29 213, 218, 222, 225, 227, 228, 228, 227,
30 224, 221, 215, 208, 200, 189, 177, 163,
31 146, 127, 106, 83, 57, 29, -2, -36,
32 -72, -111, -153, -197, -244, -294, -347, -401,
33 -459, -519, -581, -645, -711, -779, -848, -919,
34 -991, -1064, -1137, -1210, -1283, -1356, -1428, -1498,
35 -1567, -1634, -1698, -1759, -1817, -1870, -1919, -1962,
36 -2001, -2032, -2057, -2075, -2085, -2087, -2080, -2063,
37 2037, 2000, 1952, 1893, 1822, 1739, 1644, 1535,
38 1414, 1280, 1131, 970, 794, 605, 402, 185,
39 -45, -288, -545, -814, -1095, -1388, -1692, -2006,
40 -2330, -2663, -3004, -3351, -3705, -4063, -4425, -4788,
41 -5153, -5517, -5879, -6237, -6589, -6935, -7271, -7597,
42 -7910, -8209, -8491, -8755, -8998, -9219, -9416, -9585,
43 -9727, -9838, -9916, -9959, -9966, -9935, -9863, -9750,
44 -9592, -9389, -9139, -8840, -8492, -8092, -7640, -7134,
45 6574, 5959, 5288, 4561, 3776, 2935, 2037, 1082,
46 70, -998, -2122, -3300, -4533, -5818, -7154, -8540,
47 -9975,-11455,-12980,-14548,-16155,-17799,-19478,-21189,
48-22929,-24694,-26482,-28289,-30112,-31947,-33791,-35640,
49-37489,-39336,-41176,-43006,-44821,-46617,-48390,-50137,
50-51853,-53534,-55178,-56778,-58333,-59838,-61289,-62684,
51-64019,-65290,-66494,-67629,-68692,-69679,-70590,-71420,
52-72169,-72835,-73415,-73908,-74313,-74630,-74856,-74992,
53 75038,
54};
55
56/*******************************************************/
57/* layer 2 tables */
58
59const int sblimit_table[5] = { 27 , 30 , 8, 12 , 30 };
60
61const int quant_steps[17] = {
62 3, 5, 7, 9, 15,
63 31, 63, 127, 255, 511,
64 1023, 2047, 4095, 8191, 16383,
65 32767, 65535
66};
67
68/* we use a negative value if grouped */
69const int quant_bits[17] = {
70 -5, -7, 3, -10, 4,
71 5, 6, 7, 8, 9,
72 10, 11, 12, 13, 14,
73 15, 16
74};
75
76/* encoding tables which give the quantization index. Note how it is
77 possible to store them efficiently ! */
78static const unsigned char alloc_table_0[] = {
79 4, 0, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
80 4, 0, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
81 4, 0, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
82 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16,
83 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16,
84 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16,
85 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16,
86 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16,
87 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16,
88 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16,
89 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16,
90 3, 0, 1, 2, 3, 4, 5, 16,
91 3, 0, 1, 2, 3, 4, 5, 16,
92 3, 0, 1, 2, 3, 4, 5, 16,
93 3, 0, 1, 2, 3, 4, 5, 16,
94 3, 0, 1, 2, 3, 4, 5, 16,
95 3, 0, 1, 2, 3, 4, 5, 16,
96 3, 0, 1, 2, 3, 4, 5, 16,
97 3, 0, 1, 2, 3, 4, 5, 16,
98 3, 0, 1, 2, 3, 4, 5, 16,
99 3, 0, 1, 2, 3, 4, 5, 16,
100 3, 0, 1, 2, 3, 4, 5, 16,
101 3, 0, 1, 2, 3, 4, 5, 16,
102 2, 0, 1, 16,
103 2, 0, 1, 16,
104 2, 0, 1, 16,
105 2, 0, 1, 16,
106};
107
108static const unsigned char alloc_table_1[] = {
109 4, 0, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
110 4, 0, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
111 4, 0, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
112 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16,
113 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16,
114 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16,
115 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16,
116 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16,
117 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16,
118 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16,
119 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16,
120 3, 0, 1, 2, 3, 4, 5, 16,
121 3, 0, 1, 2, 3, 4, 5, 16,
122 3, 0, 1, 2, 3, 4, 5, 16,
123 3, 0, 1, 2, 3, 4, 5, 16,
124 3, 0, 1, 2, 3, 4, 5, 16,
125 3, 0, 1, 2, 3, 4, 5, 16,
126 3, 0, 1, 2, 3, 4, 5, 16,
127 3, 0, 1, 2, 3, 4, 5, 16,
128 3, 0, 1, 2, 3, 4, 5, 16,
129 3, 0, 1, 2, 3, 4, 5, 16,
130 3, 0, 1, 2, 3, 4, 5, 16,
131 3, 0, 1, 2, 3, 4, 5, 16,
132 2, 0, 1, 16,
133 2, 0, 1, 16,
134 2, 0, 1, 16,
135 2, 0, 1, 16,
136 2, 0, 1, 16,
137 2, 0, 1, 16,
138 2, 0, 1, 16,
139};
140
141static const unsigned char alloc_table_2[] = {
142 4, 0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
143 4, 0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
144 3, 0, 1, 3, 4, 5, 6, 7,
145 3, 0, 1, 3, 4, 5, 6, 7,
146 3, 0, 1, 3, 4, 5, 6, 7,
147 3, 0, 1, 3, 4, 5, 6, 7,
148 3, 0, 1, 3, 4, 5, 6, 7,
149 3, 0, 1, 3, 4, 5, 6, 7,
150};
151
152static const unsigned char alloc_table_3[] = {
153 4, 0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
154 4, 0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
155 3, 0, 1, 3, 4, 5, 6, 7,
156 3, 0, 1, 3, 4, 5, 6, 7,
157 3, 0, 1, 3, 4, 5, 6, 7,
158 3, 0, 1, 3, 4, 5, 6, 7,
159 3, 0, 1, 3, 4, 5, 6, 7,
160 3, 0, 1, 3, 4, 5, 6, 7,
161 3, 0, 1, 3, 4, 5, 6, 7,
162 3, 0, 1, 3, 4, 5, 6, 7,
163 3, 0, 1, 3, 4, 5, 6, 7,
164 3, 0, 1, 3, 4, 5, 6, 7,
165};
166
167static const unsigned char alloc_table_4[] = {
168 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
169 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
170 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
171 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
172 3, 0, 1, 3, 4, 5, 6, 7,
173 3, 0, 1, 3, 4, 5, 6, 7,
174 3, 0, 1, 3, 4, 5, 6, 7,
175 3, 0, 1, 3, 4, 5, 6, 7,
176 3, 0, 1, 3, 4, 5, 6, 7,
177 3, 0, 1, 3, 4, 5, 6, 7,
178 3, 0, 1, 3, 4, 5, 6, 7,
179 2, 0, 1, 3,
180 2, 0, 1, 3,
181 2, 0, 1, 3,
182 2, 0, 1, 3,
183 2, 0, 1, 3,
184 2, 0, 1, 3,
185 2, 0, 1, 3,
186 2, 0, 1, 3,
187 2, 0, 1, 3,
188 2, 0, 1, 3,
189 2, 0, 1, 3,
190 2, 0, 1, 3,
191 2, 0, 1, 3,
192 2, 0, 1, 3,
193 2, 0, 1, 3,
194 2, 0, 1, 3,
195 2, 0, 1, 3,
196 2, 0, 1, 3,
197 2, 0, 1, 3,
198};
199
200const unsigned char *alloc_tables[5] =
201{ alloc_table_0, alloc_table_1, alloc_table_2, alloc_table_3, alloc_table_4, };
202
203/*******************************************************/
204/* layer 3 tables */
205
206/* layer3 scale factor size */
207static const uint8_t slen_table[2][16] = {
208 { 0, 0, 0, 0, 3, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4 },
209 { 0, 1, 2, 3, 0, 1, 2, 3, 1, 2, 3, 1, 2, 3, 2, 3 },
210};
211
212/* number of lsf scale factors for a given size */
213static const uint8_t lsf_nsf_table[6][3][4] = {
214 { { 6, 5, 5, 5 }, { 9, 9, 9, 9 }, { 6, 9, 9, 9 } },
215 { { 6, 5, 7, 3 }, { 9, 9, 12, 6 }, { 6, 9, 12, 6 } },
216 { { 11, 10, 0, 0 }, { 18, 18, 0, 0 }, { 15, 18, 0, 0 } },
217 { { 7, 7, 7, 0 }, { 12, 12, 12, 0 }, { 6, 15, 12, 0 } },
218 { { 6, 6, 6, 3 }, { 12, 9, 9, 6 }, { 6, 12, 9, 6 } },
219 { { 8, 8, 5, 0 }, { 15, 12, 9, 0 }, { 6, 18, 9, 0 } },
220};
221
222/* mpegaudio layer 3 huffman tables */
223
224const uint16_t mpa_huffcodes_1[4] = {
225 0x0001, 0x0001, 0x0001, 0x0000,
226};
227
228const uint8_t mpa_huffbits_1[4] = {
229 1, 3, 2, 3,
230};
231
232const uint16_t mpa_huffcodes_2[9] = {
233 0x0001, 0x0002, 0x0001, 0x0003, 0x0001, 0x0001, 0x0003, 0x0002,
234 0x0000,
235};
236
237const uint8_t mpa_huffbits_2[9] = {
238 1, 3, 6, 3, 3, 5, 5, 5,
239 6,
240};
241
242const uint16_t mpa_huffcodes_3[9] = {
243 0x0003, 0x0002, 0x0001, 0x0001, 0x0001, 0x0001, 0x0003, 0x0002,
244 0x0000,
245};
246
247const uint8_t mpa_huffbits_3[9] = {
248 2, 2, 6, 3, 2, 5, 5, 5,
249 6,
250};
251
252const uint16_t mpa_huffcodes_5[16] = {
253 0x0001, 0x0002, 0x0006, 0x0005, 0x0003, 0x0001, 0x0004, 0x0004,
254 0x0007, 0x0005, 0x0007, 0x0001, 0x0006, 0x0001, 0x0001, 0x0000,
255};
256
257const uint8_t mpa_huffbits_5[16] = {
258 1, 3, 6, 7, 3, 3, 6, 7,
259 6, 6, 7, 8, 7, 6, 7, 8,
260};
261
262const uint16_t mpa_huffcodes_6[16] = {
263 0x0007, 0x0003, 0x0005, 0x0001, 0x0006, 0x0002, 0x0003, 0x0002,
264 0x0005, 0x0004, 0x0004, 0x0001, 0x0003, 0x0003, 0x0002, 0x0000,
265};
266
267const uint8_t mpa_huffbits_6[16] = {
268 3, 3, 5, 7, 3, 2, 4, 5,
269 4, 4, 5, 6, 6, 5, 6, 7,
270};
271
272const uint16_t mpa_huffcodes_7[36] = {
273 0x0001, 0x0002, 0x000a, 0x0013, 0x0010, 0x000a, 0x0003, 0x0003,
274 0x0007, 0x000a, 0x0005, 0x0003, 0x000b, 0x0004, 0x000d, 0x0011,
275 0x0008, 0x0004, 0x000c, 0x000b, 0x0012, 0x000f, 0x000b, 0x0002,
276 0x0007, 0x0006, 0x0009, 0x000e, 0x0003, 0x0001, 0x0006, 0x0004,
277 0x0005, 0x0003, 0x0002, 0x0000,
278};
279
280const uint8_t mpa_huffbits_7[36] = {
281 1, 3, 6, 8, 8, 9, 3, 4,
282 6, 7, 7, 8, 6, 5, 7, 8,
283 8, 9, 7, 7, 8, 9, 9, 9,
284 7, 7, 8, 9, 9, 10, 8, 8,
285 9, 10, 10, 10,
286};
287
288const uint16_t mpa_huffcodes_8[36] = {
289 0x0003, 0x0004, 0x0006, 0x0012, 0x000c, 0x0005, 0x0005, 0x0001,
290 0x0002, 0x0010, 0x0009, 0x0003, 0x0007, 0x0003, 0x0005, 0x000e,
291 0x0007, 0x0003, 0x0013, 0x0011, 0x000f, 0x000d, 0x000a, 0x0004,
292 0x000d, 0x0005, 0x0008, 0x000b, 0x0005, 0x0001, 0x000c, 0x0004,
293 0x0004, 0x0001, 0x0001, 0x0000,
294};
295
296const uint8_t mpa_huffbits_8[36] = {
297 2, 3, 6, 8, 8, 9, 3, 2,
298 4, 8, 8, 8, 6, 4, 6, 8,
299 8, 9, 8, 8, 8, 9, 9, 10,
300 8, 7, 8, 9, 10, 10, 9, 8,
301 9, 9, 11, 11,
302};
303
304const uint16_t mpa_huffcodes_9[36] = {
305 0x0007, 0x0005, 0x0009, 0x000e, 0x000f, 0x0007, 0x0006, 0x0004,
306 0x0005, 0x0005, 0x0006, 0x0007, 0x0007, 0x0006, 0x0008, 0x0008,
307 0x0008, 0x0005, 0x000f, 0x0006, 0x0009, 0x000a, 0x0005, 0x0001,
308 0x000b, 0x0007, 0x0009, 0x0006, 0x0004, 0x0001, 0x000e, 0x0004,
309 0x0006, 0x0002, 0x0006, 0x0000,
310};
311
312const uint8_t mpa_huffbits_9[36] = {
313 3, 3, 5, 6, 8, 9, 3, 3,
314 4, 5, 6, 8, 4, 4, 5, 6,
315 7, 8, 6, 5, 6, 7, 7, 8,
316 7, 6, 7, 7, 8, 9, 8, 7,
317 8, 8, 9, 9,
318};
319
320const uint16_t mpa_huffcodes_10[64] = {
321 0x0001, 0x0002, 0x000a, 0x0017, 0x0023, 0x001e, 0x000c, 0x0011,
322 0x0003, 0x0003, 0x0008, 0x000c, 0x0012, 0x0015, 0x000c, 0x0007,
323 0x000b, 0x0009, 0x000f, 0x0015, 0x0020, 0x0028, 0x0013, 0x0006,
324 0x000e, 0x000d, 0x0016, 0x0022, 0x002e, 0x0017, 0x0012, 0x0007,
325 0x0014, 0x0013, 0x0021, 0x002f, 0x001b, 0x0016, 0x0009, 0x0003,
326 0x001f, 0x0016, 0x0029, 0x001a, 0x0015, 0x0014, 0x0005, 0x0003,
327 0x000e, 0x000d, 0x000a, 0x000b, 0x0010, 0x0006, 0x0005, 0x0001,
328 0x0009, 0x0008, 0x0007, 0x0008, 0x0004, 0x0004, 0x0002, 0x0000,
329};
330
331const uint8_t mpa_huffbits_10[64] = {
332 1, 3, 6, 8, 9, 9, 9, 10,
333 3, 4, 6, 7, 8, 9, 8, 8,
334 6, 6, 7, 8, 9, 10, 9, 9,
335 7, 7, 8, 9, 10, 10, 9, 10,
336 8, 8, 9, 10, 10, 10, 10, 10,
337 9, 9, 10, 10, 11, 11, 10, 11,
338 8, 8, 9, 10, 10, 10, 11, 11,
339 9, 8, 9, 10, 10, 11, 11, 11,
340};
341
342const uint16_t mpa_huffcodes_11[64] = {
343 0x0003, 0x0004, 0x000a, 0x0018, 0x0022, 0x0021, 0x0015, 0x000f,
344 0x0005, 0x0003, 0x0004, 0x000a, 0x0020, 0x0011, 0x000b, 0x000a,
345 0x000b, 0x0007, 0x000d, 0x0012, 0x001e, 0x001f, 0x0014, 0x0005,
346 0x0019, 0x000b, 0x0013, 0x003b, 0x001b, 0x0012, 0x000c, 0x0005,
347 0x0023, 0x0021, 0x001f, 0x003a, 0x001e, 0x0010, 0x0007, 0x0005,
348 0x001c, 0x001a, 0x0020, 0x0013, 0x0011, 0x000f, 0x0008, 0x000e,
349 0x000e, 0x000c, 0x0009, 0x000d, 0x000e, 0x0009, 0x0004, 0x0001,
350 0x000b, 0x0004, 0x0006, 0x0006, 0x0006, 0x0003, 0x0002, 0x0000,
351};
352
353const uint8_t mpa_huffbits_11[64] = {
354 2, 3, 5, 7, 8, 9, 8, 9,
355 3, 3, 4, 6, 8, 8, 7, 8,
356 5, 5, 6, 7, 8, 9, 8, 8,
357 7, 6, 7, 9, 8, 10, 8, 9,
358 8, 8, 8, 9, 9, 10, 9, 10,
359 8, 8, 9, 10, 10, 11, 10, 11,
360 8, 7, 7, 8, 9, 10, 10, 10,
361 8, 7, 8, 9, 10, 10, 10, 10,
362};
363
364const uint16_t mpa_huffcodes_12[64] = {
365 0x0009, 0x0006, 0x0010, 0x0021, 0x0029, 0x0027, 0x0026, 0x001a,
366 0x0007, 0x0005, 0x0006, 0x0009, 0x0017, 0x0010, 0x001a, 0x000b,
367 0x0011, 0x0007, 0x000b, 0x000e, 0x0015, 0x001e, 0x000a, 0x0007,
368 0x0011, 0x000a, 0x000f, 0x000c, 0x0012, 0x001c, 0x000e, 0x0005,
369 0x0020, 0x000d, 0x0016, 0x0013, 0x0012, 0x0010, 0x0009, 0x0005,
370 0x0028, 0x0011, 0x001f, 0x001d, 0x0011, 0x000d, 0x0004, 0x0002,
371 0x001b, 0x000c, 0x000b, 0x000f, 0x000a, 0x0007, 0x0004, 0x0001,
372 0x001b, 0x000c, 0x0008, 0x000c, 0x0006, 0x0003, 0x0001, 0x0000,
373};
374
375const uint8_t mpa_huffbits_12[64] = {
376 4, 3, 5, 7, 8, 9, 9, 9,
377 3, 3, 4, 5, 7, 7, 8, 8,
378 5, 4, 5, 6, 7, 8, 7, 8,
379 6, 5, 6, 6, 7, 8, 8, 8,
380 7, 6, 7, 7, 8, 8, 8, 9,
381 8, 7, 8, 8, 8, 9, 8, 9,
382 8, 7, 7, 8, 8, 9, 9, 10,
383 9, 8, 8, 9, 9, 9, 9, 10,
384};
385
386const uint16_t mpa_huffcodes_13[256] = {
387 0x0001, 0x0005, 0x000e, 0x0015, 0x0022, 0x0033, 0x002e, 0x0047,
388 0x002a, 0x0034, 0x0044, 0x0034, 0x0043, 0x002c, 0x002b, 0x0013,
389 0x0003, 0x0004, 0x000c, 0x0013, 0x001f, 0x001a, 0x002c, 0x0021,
390 0x001f, 0x0018, 0x0020, 0x0018, 0x001f, 0x0023, 0x0016, 0x000e,
391 0x000f, 0x000d, 0x0017, 0x0024, 0x003b, 0x0031, 0x004d, 0x0041,
392 0x001d, 0x0028, 0x001e, 0x0028, 0x001b, 0x0021, 0x002a, 0x0010,
393 0x0016, 0x0014, 0x0025, 0x003d, 0x0038, 0x004f, 0x0049, 0x0040,
394 0x002b, 0x004c, 0x0038, 0x0025, 0x001a, 0x001f, 0x0019, 0x000e,
395 0x0023, 0x0010, 0x003c, 0x0039, 0x0061, 0x004b, 0x0072, 0x005b,
396 0x0036, 0x0049, 0x0037, 0x0029, 0x0030, 0x0035, 0x0017, 0x0018,
397 0x003a, 0x001b, 0x0032, 0x0060, 0x004c, 0x0046, 0x005d, 0x0054,
398 0x004d, 0x003a, 0x004f, 0x001d, 0x004a, 0x0031, 0x0029, 0x0011,
399 0x002f, 0x002d, 0x004e, 0x004a, 0x0073, 0x005e, 0x005a, 0x004f,
400 0x0045, 0x0053, 0x0047, 0x0032, 0x003b, 0x0026, 0x0024, 0x000f,
401 0x0048, 0x0022, 0x0038, 0x005f, 0x005c, 0x0055, 0x005b, 0x005a,
402 0x0056, 0x0049, 0x004d, 0x0041, 0x0033, 0x002c, 0x002b, 0x002a,
403 0x002b, 0x0014, 0x001e, 0x002c, 0x0037, 0x004e, 0x0048, 0x0057,
404 0x004e, 0x003d, 0x002e, 0x0036, 0x0025, 0x001e, 0x0014, 0x0010,
405 0x0035, 0x0019, 0x0029, 0x0025, 0x002c, 0x003b, 0x0036, 0x0051,
406 0x0042, 0x004c, 0x0039, 0x0036, 0x0025, 0x0012, 0x0027, 0x000b,
407 0x0023, 0x0021, 0x001f, 0x0039, 0x002a, 0x0052, 0x0048, 0x0050,
408 0x002f, 0x003a, 0x0037, 0x0015, 0x0016, 0x001a, 0x0026, 0x0016,
409 0x0035, 0x0019, 0x0017, 0x0026, 0x0046, 0x003c, 0x0033, 0x0024,
410 0x0037, 0x001a, 0x0022, 0x0017, 0x001b, 0x000e, 0x0009, 0x0007,
411 0x0022, 0x0020, 0x001c, 0x0027, 0x0031, 0x004b, 0x001e, 0x0034,
412 0x0030, 0x0028, 0x0034, 0x001c, 0x0012, 0x0011, 0x0009, 0x0005,
413 0x002d, 0x0015, 0x0022, 0x0040, 0x0038, 0x0032, 0x0031, 0x002d,
414 0x001f, 0x0013, 0x000c, 0x000f, 0x000a, 0x0007, 0x0006, 0x0003,
415 0x0030, 0x0017, 0x0014, 0x0027, 0x0024, 0x0023, 0x0035, 0x0015,
416 0x0010, 0x0017, 0x000d, 0x000a, 0x0006, 0x0001, 0x0004, 0x0002,
417 0x0010, 0x000f, 0x0011, 0x001b, 0x0019, 0x0014, 0x001d, 0x000b,
418 0x0011, 0x000c, 0x0010, 0x0008, 0x0001, 0x0001, 0x0000, 0x0001,
419};
420
421const uint8_t mpa_huffbits_13[256] = {
422 1, 4, 6, 7, 8, 9, 9, 10,
423 9, 10, 11, 11, 12, 12, 13, 13,
424 3, 4, 6, 7, 8, 8, 9, 9,
425 9, 9, 10, 10, 11, 12, 12, 12,
426 6, 6, 7, 8, 9, 9, 10, 10,
427 9, 10, 10, 11, 11, 12, 13, 13,
428 7, 7, 8, 9, 9, 10, 10, 10,
429 10, 11, 11, 11, 11, 12, 13, 13,
430 8, 7, 9, 9, 10, 10, 11, 11,
431 10, 11, 11, 12, 12, 13, 13, 14,
432 9, 8, 9, 10, 10, 10, 11, 11,
433 11, 11, 12, 11, 13, 13, 14, 14,
434 9, 9, 10, 10, 11, 11, 11, 11,
435 11, 12, 12, 12, 13, 13, 14, 14,
436 10, 9, 10, 11, 11, 11, 12, 12,
437 12, 12, 13, 13, 13, 14, 16, 16,
438 9, 8, 9, 10, 10, 11, 11, 12,
439 12, 12, 12, 13, 13, 14, 15, 15,
440 10, 9, 10, 10, 11, 11, 11, 13,
441 12, 13, 13, 14, 14, 14, 16, 15,
442 10, 10, 10, 11, 11, 12, 12, 13,
443 12, 13, 14, 13, 14, 15, 16, 17,
444 11, 10, 10, 11, 12, 12, 12, 12,
445 13, 13, 13, 14, 15, 15, 15, 16,
446 11, 11, 11, 12, 12, 13, 12, 13,
447 14, 14, 15, 15, 15, 16, 16, 16,
448 12, 11, 12, 13, 13, 13, 14, 14,
449 14, 14, 14, 15, 16, 15, 16, 16,
450 13, 12, 12, 13, 13, 13, 15, 14,
451 14, 17, 15, 15, 15, 17, 16, 16,
452 12, 12, 13, 14, 14, 14, 15, 14,
453 15, 15, 16, 16, 19, 18, 19, 16,
454};
455
456const uint16_t mpa_huffcodes_15[256] = {
457 0x0007, 0x000c, 0x0012, 0x0035, 0x002f, 0x004c, 0x007c, 0x006c,
458 0x0059, 0x007b, 0x006c, 0x0077, 0x006b, 0x0051, 0x007a, 0x003f,
459 0x000d, 0x0005, 0x0010, 0x001b, 0x002e, 0x0024, 0x003d, 0x0033,
460 0x002a, 0x0046, 0x0034, 0x0053, 0x0041, 0x0029, 0x003b, 0x0024,
461 0x0013, 0x0011, 0x000f, 0x0018, 0x0029, 0x0022, 0x003b, 0x0030,
462 0x0028, 0x0040, 0x0032, 0x004e, 0x003e, 0x0050, 0x0038, 0x0021,
463 0x001d, 0x001c, 0x0019, 0x002b, 0x0027, 0x003f, 0x0037, 0x005d,
464 0x004c, 0x003b, 0x005d, 0x0048, 0x0036, 0x004b, 0x0032, 0x001d,
465 0x0034, 0x0016, 0x002a, 0x0028, 0x0043, 0x0039, 0x005f, 0x004f,
466 0x0048, 0x0039, 0x0059, 0x0045, 0x0031, 0x0042, 0x002e, 0x001b,
467 0x004d, 0x0025, 0x0023, 0x0042, 0x003a, 0x0034, 0x005b, 0x004a,
468 0x003e, 0x0030, 0x004f, 0x003f, 0x005a, 0x003e, 0x0028, 0x0026,
469 0x007d, 0x0020, 0x003c, 0x0038, 0x0032, 0x005c, 0x004e, 0x0041,
470 0x0037, 0x0057, 0x0047, 0x0033, 0x0049, 0x0033, 0x0046, 0x001e,
471 0x006d, 0x0035, 0x0031, 0x005e, 0x0058, 0x004b, 0x0042, 0x007a,
472 0x005b, 0x0049, 0x0038, 0x002a, 0x0040, 0x002c, 0x0015, 0x0019,
473 0x005a, 0x002b, 0x0029, 0x004d, 0x0049, 0x003f, 0x0038, 0x005c,
474 0x004d, 0x0042, 0x002f, 0x0043, 0x0030, 0x0035, 0x0024, 0x0014,
475 0x0047, 0x0022, 0x0043, 0x003c, 0x003a, 0x0031, 0x0058, 0x004c,
476 0x0043, 0x006a, 0x0047, 0x0036, 0x0026, 0x0027, 0x0017, 0x000f,
477 0x006d, 0x0035, 0x0033, 0x002f, 0x005a, 0x0052, 0x003a, 0x0039,
478 0x0030, 0x0048, 0x0039, 0x0029, 0x0017, 0x001b, 0x003e, 0x0009,
479 0x0056, 0x002a, 0x0028, 0x0025, 0x0046, 0x0040, 0x0034, 0x002b,
480 0x0046, 0x0037, 0x002a, 0x0019, 0x001d, 0x0012, 0x000b, 0x000b,
481 0x0076, 0x0044, 0x001e, 0x0037, 0x0032, 0x002e, 0x004a, 0x0041,
482 0x0031, 0x0027, 0x0018, 0x0010, 0x0016, 0x000d, 0x000e, 0x0007,
483 0x005b, 0x002c, 0x0027, 0x0026, 0x0022, 0x003f, 0x0034, 0x002d,
484 0x001f, 0x0034, 0x001c, 0x0013, 0x000e, 0x0008, 0x0009, 0x0003,
485 0x007b, 0x003c, 0x003a, 0x0035, 0x002f, 0x002b, 0x0020, 0x0016,
486 0x0025, 0x0018, 0x0011, 0x000c, 0x000f, 0x000a, 0x0002, 0x0001,
487 0x0047, 0x0025, 0x0022, 0x001e, 0x001c, 0x0014, 0x0011, 0x001a,
488 0x0015, 0x0010, 0x000a, 0x0006, 0x0008, 0x0006, 0x0002, 0x0000,
489};
490
491const uint8_t mpa_huffbits_15[256] = {
492 3, 4, 5, 7, 7, 8, 9, 9,
493 9, 10, 10, 11, 11, 11, 12, 13,
494 4, 3, 5, 6, 7, 7, 8, 8,
495 8, 9, 9, 10, 10, 10, 11, 11,
496 5, 5, 5, 6, 7, 7, 8, 8,
497 8, 9, 9, 10, 10, 11, 11, 11,
498 6, 6, 6, 7, 7, 8, 8, 9,
499 9, 9, 10, 10, 10, 11, 11, 11,
500 7, 6, 7, 7, 8, 8, 9, 9,
501 9, 9, 10, 10, 10, 11, 11, 11,
502 8, 7, 7, 8, 8, 8, 9, 9,
503 9, 9, 10, 10, 11, 11, 11, 12,
504 9, 7, 8, 8, 8, 9, 9, 9,
505 9, 10, 10, 10, 11, 11, 12, 12,
506 9, 8, 8, 9, 9, 9, 9, 10,
507 10, 10, 10, 10, 11, 11, 11, 12,
508 9, 8, 8, 9, 9, 9, 9, 10,
509 10, 10, 10, 11, 11, 12, 12, 12,
510 9, 8, 9, 9, 9, 9, 10, 10,
511 10, 11, 11, 11, 11, 12, 12, 12,
512 10, 9, 9, 9, 10, 10, 10, 10,
513 10, 11, 11, 11, 11, 12, 13, 12,
514 10, 9, 9, 9, 10, 10, 10, 10,
515 11, 11, 11, 11, 12, 12, 12, 13,
516 11, 10, 9, 10, 10, 10, 11, 11,
517 11, 11, 11, 11, 12, 12, 13, 13,
518 11, 10, 10, 10, 10, 11, 11, 11,
519 11, 12, 12, 12, 12, 12, 13, 13,
520 12, 11, 11, 11, 11, 11, 11, 11,
521 12, 12, 12, 12, 13, 13, 12, 13,
522 12, 11, 11, 11, 11, 11, 11, 12,
523 12, 12, 12, 12, 13, 13, 13, 13,
524};
525
526const uint16_t mpa_huffcodes_16[256] = {
527 0x0001, 0x0005, 0x000e, 0x002c, 0x004a, 0x003f, 0x006e, 0x005d,
528 0x00ac, 0x0095, 0x008a, 0x00f2, 0x00e1, 0x00c3, 0x0178, 0x0011,
529 0x0003, 0x0004, 0x000c, 0x0014, 0x0023, 0x003e, 0x0035, 0x002f,
530 0x0053, 0x004b, 0x0044, 0x0077, 0x00c9, 0x006b, 0x00cf, 0x0009,
531 0x000f, 0x000d, 0x0017, 0x0026, 0x0043, 0x003a, 0x0067, 0x005a,
532 0x00a1, 0x0048, 0x007f, 0x0075, 0x006e, 0x00d1, 0x00ce, 0x0010,
533 0x002d, 0x0015, 0x0027, 0x0045, 0x0040, 0x0072, 0x0063, 0x0057,
534 0x009e, 0x008c, 0x00fc, 0x00d4, 0x00c7, 0x0183, 0x016d, 0x001a,
535 0x004b, 0x0024, 0x0044, 0x0041, 0x0073, 0x0065, 0x00b3, 0x00a4,
536 0x009b, 0x0108, 0x00f6, 0x00e2, 0x018b, 0x017e, 0x016a, 0x0009,
537 0x0042, 0x001e, 0x003b, 0x0038, 0x0066, 0x00b9, 0x00ad, 0x0109,
538 0x008e, 0x00fd, 0x00e8, 0x0190, 0x0184, 0x017a, 0x01bd, 0x0010,
539 0x006f, 0x0036, 0x0034, 0x0064, 0x00b8, 0x00b2, 0x00a0, 0x0085,
540 0x0101, 0x00f4, 0x00e4, 0x00d9, 0x0181, 0x016e, 0x02cb, 0x000a,
541 0x0062, 0x0030, 0x005b, 0x0058, 0x00a5, 0x009d, 0x0094, 0x0105,
542 0x00f8, 0x0197, 0x018d, 0x0174, 0x017c, 0x0379, 0x0374, 0x0008,
543 0x0055, 0x0054, 0x0051, 0x009f, 0x009c, 0x008f, 0x0104, 0x00f9,
544 0x01ab, 0x0191, 0x0188, 0x017f, 0x02d7, 0x02c9, 0x02c4, 0x0007,
545 0x009a, 0x004c, 0x0049, 0x008d, 0x0083, 0x0100, 0x00f5, 0x01aa,
546 0x0196, 0x018a, 0x0180, 0x02df, 0x0167, 0x02c6, 0x0160, 0x000b,
547 0x008b, 0x0081, 0x0043, 0x007d, 0x00f7, 0x00e9, 0x00e5, 0x00db,
548 0x0189, 0x02e7, 0x02e1, 0x02d0, 0x0375, 0x0372, 0x01b7, 0x0004,
549 0x00f3, 0x0078, 0x0076, 0x0073, 0x00e3, 0x00df, 0x018c, 0x02ea,
550 0x02e6, 0x02e0, 0x02d1, 0x02c8, 0x02c2, 0x00df, 0x01b4, 0x0006,
551 0x00ca, 0x00e0, 0x00de, 0x00da, 0x00d8, 0x0185, 0x0182, 0x017d,
552 0x016c, 0x0378, 0x01bb, 0x02c3, 0x01b8, 0x01b5, 0x06c0, 0x0004,
553 0x02eb, 0x00d3, 0x00d2, 0x00d0, 0x0172, 0x017b, 0x02de, 0x02d3,
554 0x02ca, 0x06c7, 0x0373, 0x036d, 0x036c, 0x0d83, 0x0361, 0x0002,
555 0x0179, 0x0171, 0x0066, 0x00bb, 0x02d6, 0x02d2, 0x0166, 0x02c7,
556 0x02c5, 0x0362, 0x06c6, 0x0367, 0x0d82, 0x0366, 0x01b2, 0x0000,
557 0x000c, 0x000a, 0x0007, 0x000b, 0x000a, 0x0011, 0x000b, 0x0009,
558 0x000d, 0x000c, 0x000a, 0x0007, 0x0005, 0x0003, 0x0001, 0x0003,
559};
560
561const uint8_t mpa_huffbits_16[256] = {
562 1, 4, 6, 8, 9, 9, 10, 10,
563 11, 11, 11, 12, 12, 12, 13, 9,
564 3, 4, 6, 7, 8, 9, 9, 9,
565 10, 10, 10, 11, 12, 11, 12, 8,
566 6, 6, 7, 8, 9, 9, 10, 10,
567 11, 10, 11, 11, 11, 12, 12, 9,
568 8, 7, 8, 9, 9, 10, 10, 10,
569 11, 11, 12, 12, 12, 13, 13, 10,
570 9, 8, 9, 9, 10, 10, 11, 11,
571 11, 12, 12, 12, 13, 13, 13, 9,
572 9, 8, 9, 9, 10, 11, 11, 12,
573 11, 12, 12, 13, 13, 13, 14, 10,
574 10, 9, 9, 10, 11, 11, 11, 11,
575 12, 12, 12, 12, 13, 13, 14, 10,
576 10, 9, 10, 10, 11, 11, 11, 12,
577 12, 13, 13, 13, 13, 15, 15, 10,
578 10, 10, 10, 11, 11, 11, 12, 12,
579 13, 13, 13, 13, 14, 14, 14, 10,
580 11, 10, 10, 11, 11, 12, 12, 13,
581 13, 13, 13, 14, 13, 14, 13, 11,
582 11, 11, 10, 11, 12, 12, 12, 12,
583 13, 14, 14, 14, 15, 15, 14, 10,
584 12, 11, 11, 11, 12, 12, 13, 14,
585 14, 14, 14, 14, 14, 13, 14, 11,
586 12, 12, 12, 12, 12, 13, 13, 13,
587 13, 15, 14, 14, 14, 14, 16, 11,
588 14, 12, 12, 12, 13, 13, 14, 14,
589 14, 16, 15, 15, 15, 17, 15, 11,
590 13, 13, 11, 12, 14, 14, 13, 14,
591 14, 15, 16, 15, 17, 15, 14, 11,
592 9, 8, 8, 9, 9, 10, 10, 10,
593 11, 11, 11, 11, 11, 11, 11, 8,
594};
595
596const uint16_t mpa_huffcodes_24[256] = {
597 0x000f, 0x000d, 0x002e, 0x0050, 0x0092, 0x0106, 0x00f8, 0x01b2,
598 0x01aa, 0x029d, 0x028d, 0x0289, 0x026d, 0x0205, 0x0408, 0x0058,
599 0x000e, 0x000c, 0x0015, 0x0026, 0x0047, 0x0082, 0x007a, 0x00d8,
600 0x00d1, 0x00c6, 0x0147, 0x0159, 0x013f, 0x0129, 0x0117, 0x002a,
601 0x002f, 0x0016, 0x0029, 0x004a, 0x0044, 0x0080, 0x0078, 0x00dd,
602 0x00cf, 0x00c2, 0x00b6, 0x0154, 0x013b, 0x0127, 0x021d, 0x0012,
603 0x0051, 0x0027, 0x004b, 0x0046, 0x0086, 0x007d, 0x0074, 0x00dc,
604 0x00cc, 0x00be, 0x00b2, 0x0145, 0x0137, 0x0125, 0x010f, 0x0010,
605 0x0093, 0x0048, 0x0045, 0x0087, 0x007f, 0x0076, 0x0070, 0x00d2,
606 0x00c8, 0x00bc, 0x0160, 0x0143, 0x0132, 0x011d, 0x021c, 0x000e,
607 0x0107, 0x0042, 0x0081, 0x007e, 0x0077, 0x0072, 0x00d6, 0x00ca,
608 0x00c0, 0x00b4, 0x0155, 0x013d, 0x012d, 0x0119, 0x0106, 0x000c,
609 0x00f9, 0x007b, 0x0079, 0x0075, 0x0071, 0x00d7, 0x00ce, 0x00c3,
610 0x00b9, 0x015b, 0x014a, 0x0134, 0x0123, 0x0110, 0x0208, 0x000a,
611 0x01b3, 0x0073, 0x006f, 0x006d, 0x00d3, 0x00cb, 0x00c4, 0x00bb,
612 0x0161, 0x014c, 0x0139, 0x012a, 0x011b, 0x0213, 0x017d, 0x0011,
613 0x01ab, 0x00d4, 0x00d0, 0x00cd, 0x00c9, 0x00c1, 0x00ba, 0x00b1,
614 0x00a9, 0x0140, 0x012f, 0x011e, 0x010c, 0x0202, 0x0179, 0x0010,
615 0x014f, 0x00c7, 0x00c5, 0x00bf, 0x00bd, 0x00b5, 0x00ae, 0x014d,
616 0x0141, 0x0131, 0x0121, 0x0113, 0x0209, 0x017b, 0x0173, 0x000b,
617 0x029c, 0x00b8, 0x00b7, 0x00b3, 0x00af, 0x0158, 0x014b, 0x013a,
618 0x0130, 0x0122, 0x0115, 0x0212, 0x017f, 0x0175, 0x016e, 0x000a,
619 0x028c, 0x015a, 0x00ab, 0x00a8, 0x00a4, 0x013e, 0x0135, 0x012b,
620 0x011f, 0x0114, 0x0107, 0x0201, 0x0177, 0x0170, 0x016a, 0x0006,
621 0x0288, 0x0142, 0x013c, 0x0138, 0x0133, 0x012e, 0x0124, 0x011c,
622 0x010d, 0x0105, 0x0200, 0x0178, 0x0172, 0x016c, 0x0167, 0x0004,
623 0x026c, 0x012c, 0x0128, 0x0126, 0x0120, 0x011a, 0x0111, 0x010a,
624 0x0203, 0x017c, 0x0176, 0x0171, 0x016d, 0x0169, 0x0165, 0x0002,
625 0x0409, 0x0118, 0x0116, 0x0112, 0x010b, 0x0108, 0x0103, 0x017e,
626 0x017a, 0x0174, 0x016f, 0x016b, 0x0168, 0x0166, 0x0164, 0x0000,
627 0x002b, 0x0014, 0x0013, 0x0011, 0x000f, 0x000d, 0x000b, 0x0009,
628 0x0007, 0x0006, 0x0004, 0x0007, 0x0005, 0x0003, 0x0001, 0x0003,
629};
630
631const uint8_t mpa_huffbits_24[256] = {
632 4, 4, 6, 7, 8, 9, 9, 10,
633 10, 11, 11, 11, 11, 11, 12, 9,
634 4, 4, 5, 6, 7, 8, 8, 9,
635 9, 9, 10, 10, 10, 10, 10, 8,
636 6, 5, 6, 7, 7, 8, 8, 9,
637 9, 9, 9, 10, 10, 10, 11, 7,
638 7, 6, 7, 7, 8, 8, 8, 9,
639 9, 9, 9, 10, 10, 10, 10, 7,
640 8, 7, 7, 8, 8, 8, 8, 9,
641 9, 9, 10, 10, 10, 10, 11, 7,
642 9, 7, 8, 8, 8, 8, 9, 9,
643 9, 9, 10, 10, 10, 10, 10, 7,
644 9, 8, 8, 8, 8, 9, 9, 9,
645 9, 10, 10, 10, 10, 10, 11, 7,
646 10, 8, 8, 8, 9, 9, 9, 9,
647 10, 10, 10, 10, 10, 11, 11, 8,
648 10, 9, 9, 9, 9, 9, 9, 9,
649 9, 10, 10, 10, 10, 11, 11, 8,
650 10, 9, 9, 9, 9, 9, 9, 10,
651 10, 10, 10, 10, 11, 11, 11, 8,
652 11, 9, 9, 9, 9, 10, 10, 10,
653 10, 10, 10, 11, 11, 11, 11, 8,
654 11, 10, 9, 9, 9, 10, 10, 10,
655 10, 10, 10, 11, 11, 11, 11, 8,
656 11, 10, 10, 10, 10, 10, 10, 10,
657 10, 10, 11, 11, 11, 11, 11, 8,
658 11, 10, 10, 10, 10, 10, 10, 10,
659 11, 11, 11, 11, 11, 11, 11, 8,
660 12, 10, 10, 10, 10, 10, 10, 11,
661 11, 11, 11, 11, 11, 11, 11, 8,
662 8, 7, 7, 7, 7, 7, 7, 7,
663 7, 7, 7, 8, 8, 8, 8, 4,
664};
665
666const HuffTable mpa_huff_tables[16] = {
667{ 1, NULL, NULL },
668{ 2, mpa_huffbits_1, mpa_huffcodes_1 },
669{ 3, mpa_huffbits_2, mpa_huffcodes_2 },
670{ 3, mpa_huffbits_3, mpa_huffcodes_3 },
671{ 4, mpa_huffbits_5, mpa_huffcodes_5 },
672{ 4, mpa_huffbits_6, mpa_huffcodes_6 },
673{ 6, mpa_huffbits_7, mpa_huffcodes_7 },
674{ 6, mpa_huffbits_8, mpa_huffcodes_8 },
675{ 6, mpa_huffbits_9, mpa_huffcodes_9 },
676{ 8, mpa_huffbits_10, mpa_huffcodes_10 },
677{ 8, mpa_huffbits_11, mpa_huffcodes_11 },
678{ 8, mpa_huffbits_12, mpa_huffcodes_12 },
679{ 16, mpa_huffbits_13, mpa_huffcodes_13 },
680{ 16, mpa_huffbits_15, mpa_huffcodes_15 },
681{ 16, mpa_huffbits_16, mpa_huffcodes_16 },
682{ 16, mpa_huffbits_24, mpa_huffcodes_24 },
683};
684
685const uint8_t mpa_huff_data[32][2] = {
686{ 0, 0 },
687{ 1, 0 },
688{ 2, 0 },
689{ 3, 0 },
690{ 0, 0 },
691{ 4, 0 },
692{ 5, 0 },
693{ 6, 0 },
694{ 7, 0 },
695{ 8, 0 },
696{ 9, 0 },
697{ 10, 0 },
698{ 11, 0 },
699{ 12, 0 },
700{ 0, 0 },
701{ 13, 0 },
702{ 14, 1 },
703{ 14, 2 },
704{ 14, 3 },
705{ 14, 4 },
706{ 14, 6 },
707{ 14, 8 },
708{ 14, 10 },
709{ 14, 13 },
710{ 15, 4 },
711{ 15, 5 },
712{ 15, 6 },
713{ 15, 7 },
714{ 15, 8 },
715{ 15, 9 },
716{ 15, 11 },
717{ 15, 13 },
718};
719
720
721/* huffman tables for quadrules */
722static const uint8_t mpa_quad_codes[2][16] = {
723 { 1, 5, 4, 5, 6, 5, 4, 4, 7, 3, 6, 0, 7, 2, 3, 1, },
724 { 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, },
725};
726
727static const uint8_t mpa_quad_bits[2][16] = {
728 { 1, 4, 4, 5, 4, 6, 5, 6, 4, 5, 5, 6, 5, 6, 6, 6, },
729 { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, },
730};
731
732/* band size tables */
733const uint8_t band_size_long[9][22] = {
734{ 4, 4, 4, 4, 4, 4, 6, 6, 8, 8, 10,
735 12, 16, 20, 24, 28, 34, 42, 50, 54, 76, 158, }, /* 44100 */
736{ 4, 4, 4, 4, 4, 4, 6, 6, 6, 8, 10,
737 12, 16, 18, 22, 28, 34, 40, 46, 54, 54, 192, }, /* 48000 */
738{ 4, 4, 4, 4, 4, 4, 6, 6, 8, 10, 12,
739 16, 20, 24, 30, 38, 46, 56, 68, 84, 102, 26, }, /* 32000 */
740{ 6, 6, 6, 6, 6, 6, 8, 10, 12, 14, 16,
741 20, 24, 28, 32, 38, 46, 52, 60, 68, 58, 54, }, /* 22050 */
742{ 6, 6, 6, 6, 6, 6, 8, 10, 12, 14, 16,
743 18, 22, 26, 32, 38, 46, 52, 64, 70, 76, 36, }, /* 24000 */
744{ 6, 6, 6, 6, 6, 6, 8, 10, 12, 14, 16,
745 20, 24, 28, 32, 38, 46, 52, 60, 68, 58, 54, }, /* 16000 */
746{ 6, 6, 6, 6, 6, 6, 8, 10, 12, 14, 16,
747 20, 24, 28, 32, 38, 46, 52, 60, 68, 58, 54, }, /* 11025 */
748{ 6, 6, 6, 6, 6, 6, 8, 10, 12, 14, 16,
749 20, 24, 28, 32, 38, 46, 52, 60, 68, 58, 54, }, /* 12000 */
750{ 12, 12, 12, 12, 12, 12, 16, 20, 24, 28, 32,
751 40, 48, 56, 64, 76, 90, 2, 2, 2, 2, 2, }, /* 8000 */
752};
753
754const uint8_t band_size_short[9][13] = {
755{ 4, 4, 4, 4, 6, 8, 10, 12, 14, 18, 22, 30, 56, }, /* 44100 */
756{ 4, 4, 4, 4, 6, 6, 10, 12, 14, 16, 20, 26, 66, }, /* 48000 */
757{ 4, 4, 4, 4, 6, 8, 12, 16, 20, 26, 34, 42, 12, }, /* 32000 */
758{ 4, 4, 4, 6, 6, 8, 10, 14, 18, 26, 32, 42, 18, }, /* 22050 */
759{ 4, 4, 4, 6, 8, 10, 12, 14, 18, 24, 32, 44, 12, }, /* 24000 */
760{ 4, 4, 4, 6, 8, 10, 12, 14, 18, 24, 30, 40, 18, }, /* 16000 */
761{ 4, 4, 4, 6, 8, 10, 12, 14, 18, 24, 30, 40, 18, }, /* 11025 */
762{ 4, 4, 4, 6, 8, 10, 12, 14, 18, 24, 30, 40, 18, }, /* 12000 */
763{ 8, 8, 8, 12, 16, 20, 24, 28, 36, 2, 2, 2, 26, }, /* 8000 */
764};
765
766const uint8_t mpa_pretab[2][22] = {
767 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
768 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 3, 3, 3, 2, 0 },
769};
770
771/* table for alias reduction (XXX: store it as integer !) */
772const float ci_table[8] = {
773 -0.6, -0.535, -0.33, -0.185, -0.095, -0.041, -0.0142, -0.0037,
774};
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette