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