2 * @file mpegaudiodectab.h
3 * mpeg audio layer decoder tables.
6 const 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}
16 const uint16_t mpa_freq_tab[3] = { 44100, 48000, 32000 };
18 /*******************************************************/
19 /* half mpeg encoding window (full precision) */
20 const 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,
56 /*******************************************************/
59 const int sblimit_table[5] = { 27 , 30 , 8, 12 , 30 };
61 const int quant_steps[17] = {
63 31, 63, 127, 255, 511,
64 1023, 2047, 4095, 8191, 16383,
68 /* we use a negative value if grouped */
69 const int quant_bits[17] = {
76 /* encoding tables which give the quantization index. Note how it is
77 possible to store them efficiently ! */
78 static 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,
108 static 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,
141 static 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,
152 static 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,
167 static 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,
200 const unsigned char *alloc_tables[5] =
201 { alloc_table_0, alloc_table_1, alloc_table_2, alloc_table_3, alloc_table_4, };
203 /*******************************************************/
206 /* layer3 scale factor size */
207 static 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 },
212 /* number of lsf scale factors for a given size */
213 static 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 } },
222 /* mpegaudio layer 3 huffman tables */
224 const uint16_t mpa_huffcodes_1[4] = {
225 0x0001, 0x0001, 0x0001, 0x0000,
228 const uint8_t mpa_huffbits_1[4] = {
232 const uint16_t mpa_huffcodes_2[9] = {
233 0x0001, 0x0002, 0x0001, 0x0003, 0x0001, 0x0001, 0x0003, 0x0002,
237 const uint8_t mpa_huffbits_2[9] = {
238 1, 3, 6, 3, 3, 5, 5, 5,
242 const uint16_t mpa_huffcodes_3[9] = {
243 0x0003, 0x0002, 0x0001, 0x0001, 0x0001, 0x0001, 0x0003, 0x0002,
247 const uint8_t mpa_huffbits_3[9] = {
248 2, 2, 6, 3, 2, 5, 5, 5,
252 const uint16_t mpa_huffcodes_5[16] = {
253 0x0001, 0x0002, 0x0006, 0x0005, 0x0003, 0x0001, 0x0004, 0x0004,
254 0x0007, 0x0005, 0x0007, 0x0001, 0x0006, 0x0001, 0x0001, 0x0000,
257 const uint8_t mpa_huffbits_5[16] = {
258 1, 3, 6, 7, 3, 3, 6, 7,
259 6, 6, 7, 8, 7, 6, 7, 8,
262 const uint16_t mpa_huffcodes_6[16] = {
263 0x0007, 0x0003, 0x0005, 0x0001, 0x0006, 0x0002, 0x0003, 0x0002,
264 0x0005, 0x0004, 0x0004, 0x0001, 0x0003, 0x0003, 0x0002, 0x0000,
267 const uint8_t mpa_huffbits_6[16] = {
268 3, 3, 5, 7, 3, 2, 4, 5,
269 4, 4, 5, 6, 6, 5, 6, 7,
272 const 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,
280 const 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,
288 const 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,
296 const 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,
304 const 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,
312 const 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,
320 const 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,
331 const 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,
342 const 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,
353 const 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,
364 const 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,
375 const 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,
386 const 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,
421 const 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,
456 const 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,
491 const 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,
526 const 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,
561 const 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,
596 const 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,
631 const 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,
666 const HuffTable mpa_huff_tables[16] = {
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 },
685 const uint8_t mpa_huff_data[32][2] = {
721 /* huffman tables for quadrules */
722 static 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, },
727 static 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, },
732 /* band size tables */
733 const 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 */
754 const 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 */
766 const 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 },
771 /* table for alias reduction (XXX: store it as integer !) */
772 const float ci_table[8] = {
773 -0.6, -0.535, -0.33, -0.185, -0.095, -0.041, -0.0142, -0.0037,