Statistics
| Branch: | Revision:

ffmpeg / libavcodec / mpegaudiodectab.h @ 5509bffa

History | View | Annotate | Download (29.1 KB)

1 983e3246 Michael Niedermayer
/**
2
 * @file mpegaudiodectab.h
3 115329f1 Diego Biurrun
 * mpeg audio layer decoder tables.
4 983e3246 Michael Niedermayer
 */
5 9a9b2b5d Fabrice Bellard
6 0c1a9eda Zdenek Kabelac
const uint16_t mpa_bitrate_tab[2][3][15] = {
7 9a9b2b5d Fabrice Bellard
    { {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
16 0c1a9eda Zdenek Kabelac
const uint16_t mpa_freq_tab[3] = { 44100, 48000, 32000 };
17 9a9b2b5d Fabrice Bellard
18
/*******************************************************/
19
/* half mpeg encoding window (full precision) */
20 0c1a9eda Zdenek Kabelac
const int32_t mpa_enwindow[257] = {
21 9a9b2b5d Fabrice Bellard
     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
59
const int sblimit_table[5] = { 27 , 30 , 8, 12 , 30 };
60
61
const 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 */
69
const int quant_bits[17] = {
70 115329f1 Diego Biurrun
    -5,  -7,  3, -10, 4,
71 9a9b2b5d Fabrice Bellard
     5,  6,  7,  8,  9,
72
    10, 11, 12, 13, 14,
73 115329f1 Diego Biurrun
    15, 16
74 9a9b2b5d Fabrice Bellard
};
75
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 115329f1 Diego Biurrun
 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 9a9b2b5d Fabrice Bellard
};
107
108
static const unsigned char alloc_table_1[] = {
109 115329f1 Diego Biurrun
 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 9a9b2b5d Fabrice Bellard
};
140
141
static const unsigned char alloc_table_2[] = {
142 115329f1 Diego Biurrun
 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 9a9b2b5d Fabrice Bellard
};
151
152
static const unsigned char alloc_table_3[] = {
153 115329f1 Diego Biurrun
 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 9a9b2b5d Fabrice Bellard
};
166
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 115329f1 Diego Biurrun
 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 9a9b2b5d Fabrice Bellard
};
199
200 115329f1 Diego Biurrun
const unsigned char *alloc_tables[5] =
201 9a9b2b5d Fabrice Bellard
{ 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 */
207 0c1a9eda Zdenek Kabelac
static const uint8_t slen_table[2][16] = {
208 9a9b2b5d Fabrice Bellard
    { 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 */
213 0c1a9eda Zdenek Kabelac
static const uint8_t lsf_nsf_table[6][3][4] = {
214 9a9b2b5d Fabrice Bellard
    { {  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 115329f1 Diego Biurrun
    { {  7,  7,  7, 0 }, { 12, 12, 12, 0 }, {  6, 15, 12, 0 } },
218 9a9b2b5d Fabrice Bellard
    { {  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
224 0c1a9eda Zdenek Kabelac
const uint16_t mpa_huffcodes_1[4] = {
225 9a9b2b5d Fabrice Bellard
 0x0001, 0x0001, 0x0001, 0x0000,
226
};
227
228 0c1a9eda Zdenek Kabelac
const uint8_t mpa_huffbits_1[4] = {
229 9a9b2b5d Fabrice Bellard
  1,  3,  2,  3,
230
};
231
232 0c1a9eda Zdenek Kabelac
const uint16_t mpa_huffcodes_2[9] = {
233 9a9b2b5d Fabrice Bellard
 0x0001, 0x0002, 0x0001, 0x0003, 0x0001, 0x0001, 0x0003, 0x0002,
234
 0x0000,
235
};
236
237 0c1a9eda Zdenek Kabelac
const uint8_t mpa_huffbits_2[9] = {
238 9a9b2b5d Fabrice Bellard
  1,  3,  6,  3,  3,  5,  5,  5,
239
  6,
240
};
241
242 0c1a9eda Zdenek Kabelac
const uint16_t mpa_huffcodes_3[9] = {
243 9a9b2b5d Fabrice Bellard
 0x0003, 0x0002, 0x0001, 0x0001, 0x0001, 0x0001, 0x0003, 0x0002,
244
 0x0000,
245
};
246
247 0c1a9eda Zdenek Kabelac
const uint8_t mpa_huffbits_3[9] = {
248 9a9b2b5d Fabrice Bellard
  2,  2,  6,  3,  2,  5,  5,  5,
249
  6,
250
};
251
252 0c1a9eda Zdenek Kabelac
const uint16_t mpa_huffcodes_5[16] = {
253 9a9b2b5d Fabrice Bellard
 0x0001, 0x0002, 0x0006, 0x0005, 0x0003, 0x0001, 0x0004, 0x0004,
254
 0x0007, 0x0005, 0x0007, 0x0001, 0x0006, 0x0001, 0x0001, 0x0000,
255
};
256
257 0c1a9eda Zdenek Kabelac
const uint8_t mpa_huffbits_5[16] = {
258 9a9b2b5d Fabrice Bellard
  1,  3,  6,  7,  3,  3,  6,  7,
259
  6,  6,  7,  8,  7,  6,  7,  8,
260
};
261
262 0c1a9eda Zdenek Kabelac
const uint16_t mpa_huffcodes_6[16] = {
263 9a9b2b5d Fabrice Bellard
 0x0007, 0x0003, 0x0005, 0x0001, 0x0006, 0x0002, 0x0003, 0x0002,
264
 0x0005, 0x0004, 0x0004, 0x0001, 0x0003, 0x0003, 0x0002, 0x0000,
265
};
266
267 0c1a9eda Zdenek Kabelac
const uint8_t mpa_huffbits_6[16] = {
268 9a9b2b5d Fabrice Bellard
  3,  3,  5,  7,  3,  2,  4,  5,
269
  4,  4,  5,  6,  6,  5,  6,  7,
270
};
271
272 0c1a9eda Zdenek Kabelac
const uint16_t mpa_huffcodes_7[36] = {
273 9a9b2b5d Fabrice Bellard
 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
280 0c1a9eda Zdenek Kabelac
const uint8_t mpa_huffbits_7[36] = {
281 9a9b2b5d Fabrice Bellard
  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
288 0c1a9eda Zdenek Kabelac
const uint16_t mpa_huffcodes_8[36] = {
289 9a9b2b5d Fabrice Bellard
 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
296 0c1a9eda Zdenek Kabelac
const uint8_t mpa_huffbits_8[36] = {
297 9a9b2b5d Fabrice Bellard
  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
304 0c1a9eda Zdenek Kabelac
const uint16_t mpa_huffcodes_9[36] = {
305 9a9b2b5d Fabrice Bellard
 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
312 0c1a9eda Zdenek Kabelac
const uint8_t mpa_huffbits_9[36] = {
313 9a9b2b5d Fabrice Bellard
  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
320 0c1a9eda Zdenek Kabelac
const uint16_t mpa_huffcodes_10[64] = {
321 9a9b2b5d Fabrice Bellard
 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
331 0c1a9eda Zdenek Kabelac
const uint8_t mpa_huffbits_10[64] = {
332 9a9b2b5d Fabrice Bellard
  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
342 0c1a9eda Zdenek Kabelac
const uint16_t mpa_huffcodes_11[64] = {
343 9a9b2b5d Fabrice Bellard
 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
353 0c1a9eda Zdenek Kabelac
const uint8_t mpa_huffbits_11[64] = {
354 9a9b2b5d Fabrice Bellard
  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
364 0c1a9eda Zdenek Kabelac
const uint16_t mpa_huffcodes_12[64] = {
365 9a9b2b5d Fabrice Bellard
 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
375 0c1a9eda Zdenek Kabelac
const uint8_t mpa_huffbits_12[64] = {
376 9a9b2b5d Fabrice Bellard
  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
386 0c1a9eda Zdenek Kabelac
const uint16_t mpa_huffcodes_13[256] = {
387 9a9b2b5d Fabrice Bellard
 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
421 0c1a9eda Zdenek Kabelac
const uint8_t mpa_huffbits_13[256] = {
422 9a9b2b5d Fabrice Bellard
  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
456 0c1a9eda Zdenek Kabelac
const uint16_t mpa_huffcodes_15[256] = {
457 9a9b2b5d Fabrice Bellard
 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
491 0c1a9eda Zdenek Kabelac
const uint8_t mpa_huffbits_15[256] = {
492 9a9b2b5d Fabrice Bellard
  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
526 0c1a9eda Zdenek Kabelac
const uint16_t mpa_huffcodes_16[256] = {
527 9a9b2b5d Fabrice Bellard
 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
561 0c1a9eda Zdenek Kabelac
const uint8_t mpa_huffbits_16[256] = {
562 9a9b2b5d Fabrice Bellard
  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
596 0c1a9eda Zdenek Kabelac
const uint16_t mpa_huffcodes_24[256] = {
597 9a9b2b5d Fabrice Bellard
 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
631 0c1a9eda Zdenek Kabelac
const uint8_t mpa_huffbits_24[256] = {
632 9a9b2b5d Fabrice Bellard
  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
666
const 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
685 0c1a9eda Zdenek Kabelac
const uint8_t mpa_huff_data[32][2] = {
686 9a9b2b5d Fabrice Bellard
{ 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 */
722 c26ae41d Michael Niedermayer
static const uint8_t mpa_quad_codes[2][16] = {
723 9a9b2b5d Fabrice Bellard
    {  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
727 c26ae41d Michael Niedermayer
static const uint8_t mpa_quad_bits[2][16] = {
728 9a9b2b5d Fabrice Bellard
    { 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 */
733 0c1a9eda Zdenek Kabelac
const uint8_t band_size_long[9][22] = {
734 9a9b2b5d Fabrice Bellard
{ 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
754 0c1a9eda Zdenek Kabelac
const uint8_t band_size_short[9][13] = {
755 9a9b2b5d Fabrice Bellard
{ 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
766 0c1a9eda Zdenek Kabelac
const uint8_t mpa_pretab[2][22] = {
767 9a9b2b5d Fabrice Bellard
    { 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 !) */
772
const float ci_table[8] = {
773
    -0.6, -0.535, -0.33, -0.185, -0.095, -0.041, -0.0142, -0.0037,
774
};