Revision 9a9b2b5d

View differences:

libavcodec/mpegaudiodectab.h
1

  
2
const UINT16 mpa_bitrate_tab[2][3][15] = {
3
    { {0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448 },
4
      {0, 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384 },
5
      {0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320 } },
6
    { {0, 32, 48, 56, 64, 80, 96, 112, 128, 144, 160, 176, 192, 224, 256},
7
      {0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160},
8
      {0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160}
9
    }
10
};
11

  
12
const UINT16 mpa_freq_tab[3] = { 44100, 48000, 32000 };
13

  
14
/*******************************************************/
15
/* half mpeg encoding window (full precision) */
16
const INT32 mpa_enwindow[257] = {
17
     0,    -1,    -1,    -1,    -1,    -1,    -1,    -2,
18
    -2,    -2,    -2,    -3,    -3,    -4,    -4,    -5,
19
    -5,    -6,    -7,    -7,    -8,    -9,   -10,   -11,
20
   -13,   -14,   -16,   -17,   -19,   -21,   -24,   -26,
21
   -29,   -31,   -35,   -38,   -41,   -45,   -49,   -53,
22
   -58,   -63,   -68,   -73,   -79,   -85,   -91,   -97,
23
  -104,  -111,  -117,  -125,  -132,  -139,  -147,  -154,
24
  -161,  -169,  -176,  -183,  -190,  -196,  -202,  -208,
25
   213,   218,   222,   225,   227,   228,   228,   227,
26
   224,   221,   215,   208,   200,   189,   177,   163,
27
   146,   127,   106,    83,    57,    29,    -2,   -36,
28
   -72,  -111,  -153,  -197,  -244,  -294,  -347,  -401,
29
  -459,  -519,  -581,  -645,  -711,  -779,  -848,  -919,
30
  -991, -1064, -1137, -1210, -1283, -1356, -1428, -1498,
31
 -1567, -1634, -1698, -1759, -1817, -1870, -1919, -1962,
32
 -2001, -2032, -2057, -2075, -2085, -2087, -2080, -2063,
33
  2037,  2000,  1952,  1893,  1822,  1739,  1644,  1535,
34
  1414,  1280,  1131,   970,   794,   605,   402,   185,
35
   -45,  -288,  -545,  -814, -1095, -1388, -1692, -2006,
36
 -2330, -2663, -3004, -3351, -3705, -4063, -4425, -4788,
37
 -5153, -5517, -5879, -6237, -6589, -6935, -7271, -7597,
38
 -7910, -8209, -8491, -8755, -8998, -9219, -9416, -9585,
39
 -9727, -9838, -9916, -9959, -9966, -9935, -9863, -9750,
40
 -9592, -9389, -9139, -8840, -8492, -8092, -7640, -7134,
41
  6574,  5959,  5288,  4561,  3776,  2935,  2037,  1082,
42
    70,  -998, -2122, -3300, -4533, -5818, -7154, -8540,
43
 -9975,-11455,-12980,-14548,-16155,-17799,-19478,-21189,
44
-22929,-24694,-26482,-28289,-30112,-31947,-33791,-35640,
45
-37489,-39336,-41176,-43006,-44821,-46617,-48390,-50137,
46
-51853,-53534,-55178,-56778,-58333,-59838,-61289,-62684,
47
-64019,-65290,-66494,-67629,-68692,-69679,-70590,-71420,
48
-72169,-72835,-73415,-73908,-74313,-74630,-74856,-74992,
49
 75038,
50
};
51

  
52
/*******************************************************/
53
/* layer 2 tables */
54

  
55
const int sblimit_table[5] = { 27 , 30 , 8, 12 , 30 };
56

  
57
const int quant_steps[17] = {
58
    3,     5,    7,    9,    15,
59
    31,    63,  127,  255,   511,
60
    1023,  2047, 4095, 8191, 16383,
61
    32767, 65535
62
};
63

  
64
/* we use a negative value if grouped */
65
const int quant_bits[17] = {
66
    -5,  -7,  3, -10, 4, 
67
     5,  6,  7,  8,  9,
68
    10, 11, 12, 13, 14,
69
    15, 16 
70
};
71

  
72
/* encoding tables which give the quantization index. Note how it is
73
   possible to store them efficiently ! */
74
static const unsigned char alloc_table_0[] = {
75
 4,  0,  2,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16, 
76
 4,  0,  2,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16, 
77
 4,  0,  2,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16, 
78
 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 16, 
79
 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 16, 
80
 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 16, 
81
 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 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
 3,  0,  1,  2,  3,  4,  5, 16, 
87
 3,  0,  1,  2,  3,  4,  5, 16, 
88
 3,  0,  1,  2,  3,  4,  5, 16, 
89
 3,  0,  1,  2,  3,  4,  5, 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
 2,  0,  1, 16, 
99
 2,  0,  1, 16, 
100
 2,  0,  1, 16, 
101
 2,  0,  1, 16, 
102
};
103

  
104
static const unsigned char alloc_table_1[] = {
105
 4,  0,  2,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16, 
106
 4,  0,  2,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16, 
107
 4,  0,  2,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16, 
108
 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 16, 
109
 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 16, 
110
 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 16, 
111
 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 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
 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, 
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
 2,  0,  1, 16, 
129
 2,  0,  1, 16, 
130
 2,  0,  1, 16, 
131
 2,  0,  1, 16, 
132
 2,  0,  1, 16, 
133
 2,  0,  1, 16, 
134
 2,  0,  1, 16, 
135
};
136

  
137
static const unsigned char alloc_table_2[] = {
138
 4,  0,  1,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 
139
 4,  0,  1,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 
140
 3,  0,  1,  3,  4,  5,  6,  7, 
141
 3,  0,  1,  3,  4,  5,  6,  7, 
142
 3,  0,  1,  3,  4,  5,  6,  7, 
143
 3,  0,  1,  3,  4,  5,  6,  7, 
144
 3,  0,  1,  3,  4,  5,  6,  7, 
145
 3,  0,  1,  3,  4,  5,  6,  7, 
146
};
147

  
148
static const unsigned char alloc_table_3[] = {
149
 4,  0,  1,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 
150
 4,  0,  1,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 
151
 3,  0,  1,  3,  4,  5,  6,  7, 
152
 3,  0,  1,  3,  4,  5,  6,  7, 
153
 3,  0,  1,  3,  4,  5,  6,  7, 
154
 3,  0,  1,  3,  4,  5,  6,  7, 
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
};
162

  
163
static const unsigned char alloc_table_4[] = {
164
 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14,
165
 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 
166
 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 
167
 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 
168
 3,  0,  1,  3,  4,  5,  6,  7, 
169
 3,  0,  1,  3,  4,  5,  6,  7, 
170
 3,  0,  1,  3,  4,  5,  6,  7, 
171
 3,  0,  1,  3,  4,  5,  6,  7, 
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
 2,  0,  1,  3, 
176
 2,  0,  1,  3, 
177
 2,  0,  1,  3, 
178
 2,  0,  1,  3, 
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
};
195

  
196
const unsigned char *alloc_tables[5] = 
197
{ alloc_table_0, alloc_table_1, alloc_table_2, alloc_table_3, alloc_table_4, };
198

  
199
/*******************************************************/
200
/* layer 3 tables */
201

  
202
/* layer3 scale factor size */
203
static const UINT8 slen_table[2][16] = {
204
    { 0, 0, 0, 0, 3, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4 },
205
    { 0, 1, 2, 3, 0, 1, 2, 3, 1, 2, 3, 1, 2, 3, 2, 3 },
206
};
207

  
208
/* number of lsf scale factors for a given size */
209
static const UINT8 lsf_nsf_table[6][3][4] = {
210
    { {  6,  5,  5, 5 }, {  9,  9,  9, 9 }, {  6,  9,  9, 9 } },
211
    { {  6,  5,  7, 3 }, {  9,  9, 12, 6 }, {  6,  9, 12, 6 } },
212
    { { 11, 10,  0, 0 }, { 18, 18,  0, 0 }, { 15, 18,  0, 0 } },
213
    { {  7,  7,  7, 0 }, { 12, 12, 12, 0 }, {  6, 15, 12, 0 } }, 
214
    { {  6,  6,  6, 3 }, { 12,  9,  9, 6 }, {  6, 12,  9, 6 } },
215
    { {  8,  8,  5, 0 }, { 15, 12,  9, 0 }, {  6, 18,  9, 0 } },
216
};
217

  
218
/* mpegaudio layer 3 huffman tables */
219

  
220
const UINT16 mpa_huffcodes_1[4] = {
221
 0x0001, 0x0001, 0x0001, 0x0000,
222
};
223

  
224
const UINT8 mpa_huffbits_1[4] = {
225
  1,  3,  2,  3,
226
};
227

  
228
const UINT16 mpa_huffcodes_2[9] = {
229
 0x0001, 0x0002, 0x0001, 0x0003, 0x0001, 0x0001, 0x0003, 0x0002,
230
 0x0000,
231
};
232

  
233
const UINT8 mpa_huffbits_2[9] = {
234
  1,  3,  6,  3,  3,  5,  5,  5,
235
  6,
236
};
237

  
238
const UINT16 mpa_huffcodes_3[9] = {
239
 0x0003, 0x0002, 0x0001, 0x0001, 0x0001, 0x0001, 0x0003, 0x0002,
240
 0x0000,
241
};
242

  
243
const UINT8 mpa_huffbits_3[9] = {
244
  2,  2,  6,  3,  2,  5,  5,  5,
245
  6,
246
};
247

  
248
const UINT16 mpa_huffcodes_5[16] = {
249
 0x0001, 0x0002, 0x0006, 0x0005, 0x0003, 0x0001, 0x0004, 0x0004,
250
 0x0007, 0x0005, 0x0007, 0x0001, 0x0006, 0x0001, 0x0001, 0x0000,
251
};
252

  
253
const UINT8 mpa_huffbits_5[16] = {
254
  1,  3,  6,  7,  3,  3,  6,  7,
255
  6,  6,  7,  8,  7,  6,  7,  8,
256
};
257

  
258
const UINT16 mpa_huffcodes_6[16] = {
259
 0x0007, 0x0003, 0x0005, 0x0001, 0x0006, 0x0002, 0x0003, 0x0002,
260
 0x0005, 0x0004, 0x0004, 0x0001, 0x0003, 0x0003, 0x0002, 0x0000,
261
};
262

  
263
const UINT8 mpa_huffbits_6[16] = {
264
  3,  3,  5,  7,  3,  2,  4,  5,
265
  4,  4,  5,  6,  6,  5,  6,  7,
266
};
267

  
268
const UINT16 mpa_huffcodes_7[36] = {
269
 0x0001, 0x0002, 0x000a, 0x0013, 0x0010, 0x000a, 0x0003, 0x0003,
270
 0x0007, 0x000a, 0x0005, 0x0003, 0x000b, 0x0004, 0x000d, 0x0011,
271
 0x0008, 0x0004, 0x000c, 0x000b, 0x0012, 0x000f, 0x000b, 0x0002,
272
 0x0007, 0x0006, 0x0009, 0x000e, 0x0003, 0x0001, 0x0006, 0x0004,
273
 0x0005, 0x0003, 0x0002, 0x0000,
274
};
275

  
276
const UINT8 mpa_huffbits_7[36] = {
277
  1,  3,  6,  8,  8,  9,  3,  4,
278
  6,  7,  7,  8,  6,  5,  7,  8,
279
  8,  9,  7,  7,  8,  9,  9,  9,
280
  7,  7,  8,  9,  9, 10,  8,  8,
281
  9, 10, 10, 10,
282
};
283

  
284
const UINT16 mpa_huffcodes_8[36] = {
285
 0x0003, 0x0004, 0x0006, 0x0012, 0x000c, 0x0005, 0x0005, 0x0001,
286
 0x0002, 0x0010, 0x0009, 0x0003, 0x0007, 0x0003, 0x0005, 0x000e,
287
 0x0007, 0x0003, 0x0013, 0x0011, 0x000f, 0x000d, 0x000a, 0x0004,
288
 0x000d, 0x0005, 0x0008, 0x000b, 0x0005, 0x0001, 0x000c, 0x0004,
289
 0x0004, 0x0001, 0x0001, 0x0000,
290
};
291

  
292
const UINT8 mpa_huffbits_8[36] = {
293
  2,  3,  6,  8,  8,  9,  3,  2,
294
  4,  8,  8,  8,  6,  4,  6,  8,
295
  8,  9,  8,  8,  8,  9,  9, 10,
296
  8,  7,  8,  9, 10, 10,  9,  8,
297
  9,  9, 11, 11,
298
};
299

  
300
const UINT16 mpa_huffcodes_9[36] = {
301
 0x0007, 0x0005, 0x0009, 0x000e, 0x000f, 0x0007, 0x0006, 0x0004,
302
 0x0005, 0x0005, 0x0006, 0x0007, 0x0007, 0x0006, 0x0008, 0x0008,
303
 0x0008, 0x0005, 0x000f, 0x0006, 0x0009, 0x000a, 0x0005, 0x0001,
304
 0x000b, 0x0007, 0x0009, 0x0006, 0x0004, 0x0001, 0x000e, 0x0004,
305
 0x0006, 0x0002, 0x0006, 0x0000,
306
};
307

  
308
const UINT8 mpa_huffbits_9[36] = {
309
  3,  3,  5,  6,  8,  9,  3,  3,
310
  4,  5,  6,  8,  4,  4,  5,  6,
311
  7,  8,  6,  5,  6,  7,  7,  8,
312
  7,  6,  7,  7,  8,  9,  8,  7,
313
  8,  8,  9,  9,
314
};
315

  
316
const UINT16 mpa_huffcodes_10[64] = {
317
 0x0001, 0x0002, 0x000a, 0x0017, 0x0023, 0x001e, 0x000c, 0x0011,
318
 0x0003, 0x0003, 0x0008, 0x000c, 0x0012, 0x0015, 0x000c, 0x0007,
319
 0x000b, 0x0009, 0x000f, 0x0015, 0x0020, 0x0028, 0x0013, 0x0006,
320
 0x000e, 0x000d, 0x0016, 0x0022, 0x002e, 0x0017, 0x0012, 0x0007,
321
 0x0014, 0x0013, 0x0021, 0x002f, 0x001b, 0x0016, 0x0009, 0x0003,
322
 0x001f, 0x0016, 0x0029, 0x001a, 0x0015, 0x0014, 0x0005, 0x0003,
323
 0x000e, 0x000d, 0x000a, 0x000b, 0x0010, 0x0006, 0x0005, 0x0001,
324
 0x0009, 0x0008, 0x0007, 0x0008, 0x0004, 0x0004, 0x0002, 0x0000,
325
};
326

  
327
const UINT8 mpa_huffbits_10[64] = {
328
  1,  3,  6,  8,  9,  9,  9, 10,
329
  3,  4,  6,  7,  8,  9,  8,  8,
330
  6,  6,  7,  8,  9, 10,  9,  9,
331
  7,  7,  8,  9, 10, 10,  9, 10,
332
  8,  8,  9, 10, 10, 10, 10, 10,
333
  9,  9, 10, 10, 11, 11, 10, 11,
334
  8,  8,  9, 10, 10, 10, 11, 11,
335
  9,  8,  9, 10, 10, 11, 11, 11,
336
};
337

  
338
const UINT16 mpa_huffcodes_11[64] = {
339
 0x0003, 0x0004, 0x000a, 0x0018, 0x0022, 0x0021, 0x0015, 0x000f,
340
 0x0005, 0x0003, 0x0004, 0x000a, 0x0020, 0x0011, 0x000b, 0x000a,
341
 0x000b, 0x0007, 0x000d, 0x0012, 0x001e, 0x001f, 0x0014, 0x0005,
342
 0x0019, 0x000b, 0x0013, 0x003b, 0x001b, 0x0012, 0x000c, 0x0005,
343
 0x0023, 0x0021, 0x001f, 0x003a, 0x001e, 0x0010, 0x0007, 0x0005,
344
 0x001c, 0x001a, 0x0020, 0x0013, 0x0011, 0x000f, 0x0008, 0x000e,
345
 0x000e, 0x000c, 0x0009, 0x000d, 0x000e, 0x0009, 0x0004, 0x0001,
346
 0x000b, 0x0004, 0x0006, 0x0006, 0x0006, 0x0003, 0x0002, 0x0000,
347
};
348

  
349
const UINT8 mpa_huffbits_11[64] = {
350
  2,  3,  5,  7,  8,  9,  8,  9,
351
  3,  3,  4,  6,  8,  8,  7,  8,
352
  5,  5,  6,  7,  8,  9,  8,  8,
353
  7,  6,  7,  9,  8, 10,  8,  9,
354
  8,  8,  8,  9,  9, 10,  9, 10,
355
  8,  8,  9, 10, 10, 11, 10, 11,
356
  8,  7,  7,  8,  9, 10, 10, 10,
357
  8,  7,  8,  9, 10, 10, 10, 10,
358
};
359

  
360
const UINT16 mpa_huffcodes_12[64] = {
361
 0x0009, 0x0006, 0x0010, 0x0021, 0x0029, 0x0027, 0x0026, 0x001a,
362
 0x0007, 0x0005, 0x0006, 0x0009, 0x0017, 0x0010, 0x001a, 0x000b,
363
 0x0011, 0x0007, 0x000b, 0x000e, 0x0015, 0x001e, 0x000a, 0x0007,
364
 0x0011, 0x000a, 0x000f, 0x000c, 0x0012, 0x001c, 0x000e, 0x0005,
365
 0x0020, 0x000d, 0x0016, 0x0013, 0x0012, 0x0010, 0x0009, 0x0005,
366
 0x0028, 0x0011, 0x001f, 0x001d, 0x0011, 0x000d, 0x0004, 0x0002,
367
 0x001b, 0x000c, 0x000b, 0x000f, 0x000a, 0x0007, 0x0004, 0x0001,
368
 0x001b, 0x000c, 0x0008, 0x000c, 0x0006, 0x0003, 0x0001, 0x0000,
369
};
370

  
371
const UINT8 mpa_huffbits_12[64] = {
372
  4,  3,  5,  7,  8,  9,  9,  9,
373
  3,  3,  4,  5,  7,  7,  8,  8,
374
  5,  4,  5,  6,  7,  8,  7,  8,
375
  6,  5,  6,  6,  7,  8,  8,  8,
376
  7,  6,  7,  7,  8,  8,  8,  9,
377
  8,  7,  8,  8,  8,  9,  8,  9,
378
  8,  7,  7,  8,  8,  9,  9, 10,
379
  9,  8,  8,  9,  9,  9,  9, 10,
380
};
381

  
382
const UINT16 mpa_huffcodes_13[256] = {
383
 0x0001, 0x0005, 0x000e, 0x0015, 0x0022, 0x0033, 0x002e, 0x0047,
384
 0x002a, 0x0034, 0x0044, 0x0034, 0x0043, 0x002c, 0x002b, 0x0013,
385
 0x0003, 0x0004, 0x000c, 0x0013, 0x001f, 0x001a, 0x002c, 0x0021,
386
 0x001f, 0x0018, 0x0020, 0x0018, 0x001f, 0x0023, 0x0016, 0x000e,
387
 0x000f, 0x000d, 0x0017, 0x0024, 0x003b, 0x0031, 0x004d, 0x0041,
388
 0x001d, 0x0028, 0x001e, 0x0028, 0x001b, 0x0021, 0x002a, 0x0010,
389
 0x0016, 0x0014, 0x0025, 0x003d, 0x0038, 0x004f, 0x0049, 0x0040,
390
 0x002b, 0x004c, 0x0038, 0x0025, 0x001a, 0x001f, 0x0019, 0x000e,
391
 0x0023, 0x0010, 0x003c, 0x0039, 0x0061, 0x004b, 0x0072, 0x005b,
392
 0x0036, 0x0049, 0x0037, 0x0029, 0x0030, 0x0035, 0x0017, 0x0018,
393
 0x003a, 0x001b, 0x0032, 0x0060, 0x004c, 0x0046, 0x005d, 0x0054,
394
 0x004d, 0x003a, 0x004f, 0x001d, 0x004a, 0x0031, 0x0029, 0x0011,
395
 0x002f, 0x002d, 0x004e, 0x004a, 0x0073, 0x005e, 0x005a, 0x004f,
396
 0x0045, 0x0053, 0x0047, 0x0032, 0x003b, 0x0026, 0x0024, 0x000f,
397
 0x0048, 0x0022, 0x0038, 0x005f, 0x005c, 0x0055, 0x005b, 0x005a,
398
 0x0056, 0x0049, 0x004d, 0x0041, 0x0033, 0x002c, 0x002b, 0x002a,
399
 0x002b, 0x0014, 0x001e, 0x002c, 0x0037, 0x004e, 0x0048, 0x0057,
400
 0x004e, 0x003d, 0x002e, 0x0036, 0x0025, 0x001e, 0x0014, 0x0010,
401
 0x0035, 0x0019, 0x0029, 0x0025, 0x002c, 0x003b, 0x0036, 0x0051,
402
 0x0042, 0x004c, 0x0039, 0x0036, 0x0025, 0x0012, 0x0027, 0x000b,
403
 0x0023, 0x0021, 0x001f, 0x0039, 0x002a, 0x0052, 0x0048, 0x0050,
404
 0x002f, 0x003a, 0x0037, 0x0015, 0x0016, 0x001a, 0x0026, 0x0016,
405
 0x0035, 0x0019, 0x0017, 0x0026, 0x0046, 0x003c, 0x0033, 0x0024,
406
 0x0037, 0x001a, 0x0022, 0x0017, 0x001b, 0x000e, 0x0009, 0x0007,
407
 0x0022, 0x0020, 0x001c, 0x0027, 0x0031, 0x004b, 0x001e, 0x0034,
408
 0x0030, 0x0028, 0x0034, 0x001c, 0x0012, 0x0011, 0x0009, 0x0005,
409
 0x002d, 0x0015, 0x0022, 0x0040, 0x0038, 0x0032, 0x0031, 0x002d,
410
 0x001f, 0x0013, 0x000c, 0x000f, 0x000a, 0x0007, 0x0006, 0x0003,
411
 0x0030, 0x0017, 0x0014, 0x0027, 0x0024, 0x0023, 0x0035, 0x0015,
412
 0x0010, 0x0017, 0x000d, 0x000a, 0x0006, 0x0001, 0x0004, 0x0002,
413
 0x0010, 0x000f, 0x0011, 0x001b, 0x0019, 0x0014, 0x001d, 0x000b,
414
 0x0011, 0x000c, 0x0010, 0x0008, 0x0001, 0x0001, 0x0000, 0x0001,
415
};
416

  
417
const UINT8 mpa_huffbits_13[256] = {
418
  1,  4,  6,  7,  8,  9,  9, 10,
419
  9, 10, 11, 11, 12, 12, 13, 13,
420
  3,  4,  6,  7,  8,  8,  9,  9,
421
  9,  9, 10, 10, 11, 12, 12, 12,
422
  6,  6,  7,  8,  9,  9, 10, 10,
423
  9, 10, 10, 11, 11, 12, 13, 13,
424
  7,  7,  8,  9,  9, 10, 10, 10,
425
 10, 11, 11, 11, 11, 12, 13, 13,
426
  8,  7,  9,  9, 10, 10, 11, 11,
427
 10, 11, 11, 12, 12, 13, 13, 14,
428
  9,  8,  9, 10, 10, 10, 11, 11,
429
 11, 11, 12, 11, 13, 13, 14, 14,
430
  9,  9, 10, 10, 11, 11, 11, 11,
431
 11, 12, 12, 12, 13, 13, 14, 14,
432
 10,  9, 10, 11, 11, 11, 12, 12,
433
 12, 12, 13, 13, 13, 14, 16, 16,
434
  9,  8,  9, 10, 10, 11, 11, 12,
435
 12, 12, 12, 13, 13, 14, 15, 15,
436
 10,  9, 10, 10, 11, 11, 11, 13,
437
 12, 13, 13, 14, 14, 14, 16, 15,
438
 10, 10, 10, 11, 11, 12, 12, 13,
439
 12, 13, 14, 13, 14, 15, 16, 17,
440
 11, 10, 10, 11, 12, 12, 12, 12,
441
 13, 13, 13, 14, 15, 15, 15, 16,
442
 11, 11, 11, 12, 12, 13, 12, 13,
443
 14, 14, 15, 15, 15, 16, 16, 16,
444
 12, 11, 12, 13, 13, 13, 14, 14,
445
 14, 14, 14, 15, 16, 15, 16, 16,
446
 13, 12, 12, 13, 13, 13, 15, 14,
447
 14, 17, 15, 15, 15, 17, 16, 16,
448
 12, 12, 13, 14, 14, 14, 15, 14,
449
 15, 15, 16, 16, 19, 18, 19, 16,
450
};
451

  
452
const UINT16 mpa_huffcodes_15[256] = {
453
 0x0007, 0x000c, 0x0012, 0x0035, 0x002f, 0x004c, 0x007c, 0x006c,
454
 0x0059, 0x007b, 0x006c, 0x0077, 0x006b, 0x0051, 0x007a, 0x003f,
455
 0x000d, 0x0005, 0x0010, 0x001b, 0x002e, 0x0024, 0x003d, 0x0033,
456
 0x002a, 0x0046, 0x0034, 0x0053, 0x0041, 0x0029, 0x003b, 0x0024,
457
 0x0013, 0x0011, 0x000f, 0x0018, 0x0029, 0x0022, 0x003b, 0x0030,
458
 0x0028, 0x0040, 0x0032, 0x004e, 0x003e, 0x0050, 0x0038, 0x0021,
459
 0x001d, 0x001c, 0x0019, 0x002b, 0x0027, 0x003f, 0x0037, 0x005d,
460
 0x004c, 0x003b, 0x005d, 0x0048, 0x0036, 0x004b, 0x0032, 0x001d,
461
 0x0034, 0x0016, 0x002a, 0x0028, 0x0043, 0x0039, 0x005f, 0x004f,
462
 0x0048, 0x0039, 0x0059, 0x0045, 0x0031, 0x0042, 0x002e, 0x001b,
463
 0x004d, 0x0025, 0x0023, 0x0042, 0x003a, 0x0034, 0x005b, 0x004a,
464
 0x003e, 0x0030, 0x004f, 0x003f, 0x005a, 0x003e, 0x0028, 0x0026,
465
 0x007d, 0x0020, 0x003c, 0x0038, 0x0032, 0x005c, 0x004e, 0x0041,
466
 0x0037, 0x0057, 0x0047, 0x0033, 0x0049, 0x0033, 0x0046, 0x001e,
467
 0x006d, 0x0035, 0x0031, 0x005e, 0x0058, 0x004b, 0x0042, 0x007a,
468
 0x005b, 0x0049, 0x0038, 0x002a, 0x0040, 0x002c, 0x0015, 0x0019,
469
 0x005a, 0x002b, 0x0029, 0x004d, 0x0049, 0x003f, 0x0038, 0x005c,
470
 0x004d, 0x0042, 0x002f, 0x0043, 0x0030, 0x0035, 0x0024, 0x0014,
471
 0x0047, 0x0022, 0x0043, 0x003c, 0x003a, 0x0031, 0x0058, 0x004c,
472
 0x0043, 0x006a, 0x0047, 0x0036, 0x0026, 0x0027, 0x0017, 0x000f,
473
 0x006d, 0x0035, 0x0033, 0x002f, 0x005a, 0x0052, 0x003a, 0x0039,
474
 0x0030, 0x0048, 0x0039, 0x0029, 0x0017, 0x001b, 0x003e, 0x0009,
475
 0x0056, 0x002a, 0x0028, 0x0025, 0x0046, 0x0040, 0x0034, 0x002b,
476
 0x0046, 0x0037, 0x002a, 0x0019, 0x001d, 0x0012, 0x000b, 0x000b,
477
 0x0076, 0x0044, 0x001e, 0x0037, 0x0032, 0x002e, 0x004a, 0x0041,
478
 0x0031, 0x0027, 0x0018, 0x0010, 0x0016, 0x000d, 0x000e, 0x0007,
479
 0x005b, 0x002c, 0x0027, 0x0026, 0x0022, 0x003f, 0x0034, 0x002d,
480
 0x001f, 0x0034, 0x001c, 0x0013, 0x000e, 0x0008, 0x0009, 0x0003,
481
 0x007b, 0x003c, 0x003a, 0x0035, 0x002f, 0x002b, 0x0020, 0x0016,
482
 0x0025, 0x0018, 0x0011, 0x000c, 0x000f, 0x000a, 0x0002, 0x0001,
483
 0x0047, 0x0025, 0x0022, 0x001e, 0x001c, 0x0014, 0x0011, 0x001a,
484
 0x0015, 0x0010, 0x000a, 0x0006, 0x0008, 0x0006, 0x0002, 0x0000,
485
};
486

  
487
const UINT8 mpa_huffbits_15[256] = {
488
  3,  4,  5,  7,  7,  8,  9,  9,
489
  9, 10, 10, 11, 11, 11, 12, 13,
490
  4,  3,  5,  6,  7,  7,  8,  8,
491
  8,  9,  9, 10, 10, 10, 11, 11,
492
  5,  5,  5,  6,  7,  7,  8,  8,
493
  8,  9,  9, 10, 10, 11, 11, 11,
494
  6,  6,  6,  7,  7,  8,  8,  9,
495
  9,  9, 10, 10, 10, 11, 11, 11,
496
  7,  6,  7,  7,  8,  8,  9,  9,
497
  9,  9, 10, 10, 10, 11, 11, 11,
498
  8,  7,  7,  8,  8,  8,  9,  9,
499
  9,  9, 10, 10, 11, 11, 11, 12,
500
  9,  7,  8,  8,  8,  9,  9,  9,
501
  9, 10, 10, 10, 11, 11, 12, 12,
502
  9,  8,  8,  9,  9,  9,  9, 10,
503
 10, 10, 10, 10, 11, 11, 11, 12,
504
  9,  8,  8,  9,  9,  9,  9, 10,
505
 10, 10, 10, 11, 11, 12, 12, 12,
506
  9,  8,  9,  9,  9,  9, 10, 10,
507
 10, 11, 11, 11, 11, 12, 12, 12,
508
 10,  9,  9,  9, 10, 10, 10, 10,
509
 10, 11, 11, 11, 11, 12, 13, 12,
510
 10,  9,  9,  9, 10, 10, 10, 10,
511
 11, 11, 11, 11, 12, 12, 12, 13,
512
 11, 10,  9, 10, 10, 10, 11, 11,
513
 11, 11, 11, 11, 12, 12, 13, 13,
514
 11, 10, 10, 10, 10, 11, 11, 11,
515
 11, 12, 12, 12, 12, 12, 13, 13,
516
 12, 11, 11, 11, 11, 11, 11, 11,
517
 12, 12, 12, 12, 13, 13, 12, 13,
518
 12, 11, 11, 11, 11, 11, 11, 12,
519
 12, 12, 12, 12, 13, 13, 13, 13,
520
};
521

  
522
const UINT16 mpa_huffcodes_16[256] = {
523
 0x0001, 0x0005, 0x000e, 0x002c, 0x004a, 0x003f, 0x006e, 0x005d,
524
 0x00ac, 0x0095, 0x008a, 0x00f2, 0x00e1, 0x00c3, 0x0178, 0x0011,
525
 0x0003, 0x0004, 0x000c, 0x0014, 0x0023, 0x003e, 0x0035, 0x002f,
526
 0x0053, 0x004b, 0x0044, 0x0077, 0x00c9, 0x006b, 0x00cf, 0x0009,
527
 0x000f, 0x000d, 0x0017, 0x0026, 0x0043, 0x003a, 0x0067, 0x005a,
528
 0x00a1, 0x0048, 0x007f, 0x0075, 0x006e, 0x00d1, 0x00ce, 0x0010,
529
 0x002d, 0x0015, 0x0027, 0x0045, 0x0040, 0x0072, 0x0063, 0x0057,
530
 0x009e, 0x008c, 0x00fc, 0x00d4, 0x00c7, 0x0183, 0x016d, 0x001a,
531
 0x004b, 0x0024, 0x0044, 0x0041, 0x0073, 0x0065, 0x00b3, 0x00a4,
532
 0x009b, 0x0108, 0x00f6, 0x00e2, 0x018b, 0x017e, 0x016a, 0x0009,
533
 0x0042, 0x001e, 0x003b, 0x0038, 0x0066, 0x00b9, 0x00ad, 0x0109,
534
 0x008e, 0x00fd, 0x00e8, 0x0190, 0x0184, 0x017a, 0x01bd, 0x0010,
535
 0x006f, 0x0036, 0x0034, 0x0064, 0x00b8, 0x00b2, 0x00a0, 0x0085,
536
 0x0101, 0x00f4, 0x00e4, 0x00d9, 0x0181, 0x016e, 0x02cb, 0x000a,
537
 0x0062, 0x0030, 0x005b, 0x0058, 0x00a5, 0x009d, 0x0094, 0x0105,
538
 0x00f8, 0x0197, 0x018d, 0x0174, 0x017c, 0x0379, 0x0374, 0x0008,
539
 0x0055, 0x0054, 0x0051, 0x009f, 0x009c, 0x008f, 0x0104, 0x00f9,
540
 0x01ab, 0x0191, 0x0188, 0x017f, 0x02d7, 0x02c9, 0x02c4, 0x0007,
541
 0x009a, 0x004c, 0x0049, 0x008d, 0x0083, 0x0100, 0x00f5, 0x01aa,
542
 0x0196, 0x018a, 0x0180, 0x02df, 0x0167, 0x02c6, 0x0160, 0x000b,
543
 0x008b, 0x0081, 0x0043, 0x007d, 0x00f7, 0x00e9, 0x00e5, 0x00db,
544
 0x0189, 0x02e7, 0x02e1, 0x02d0, 0x0375, 0x0372, 0x01b7, 0x0004,
545
 0x00f3, 0x0078, 0x0076, 0x0073, 0x00e3, 0x00df, 0x018c, 0x02ea,
546
 0x02e6, 0x02e0, 0x02d1, 0x02c8, 0x02c2, 0x00df, 0x01b4, 0x0006,
547
 0x00ca, 0x00e0, 0x00de, 0x00da, 0x00d8, 0x0185, 0x0182, 0x017d,
548
 0x016c, 0x0378, 0x01bb, 0x02c3, 0x01b8, 0x01b5, 0x06c0, 0x0004,
549
 0x02eb, 0x00d3, 0x00d2, 0x00d0, 0x0172, 0x017b, 0x02de, 0x02d3,
550
 0x02ca, 0x06c7, 0x0373, 0x036d, 0x036c, 0x0d83, 0x0361, 0x0002,
551
 0x0179, 0x0171, 0x0066, 0x00bb, 0x02d6, 0x02d2, 0x0166, 0x02c7,
552
 0x02c5, 0x0362, 0x06c6, 0x0367, 0x0d82, 0x0366, 0x01b2, 0x0000,
553
 0x000c, 0x000a, 0x0007, 0x000b, 0x000a, 0x0011, 0x000b, 0x0009,
554
 0x000d, 0x000c, 0x000a, 0x0007, 0x0005, 0x0003, 0x0001, 0x0003,
555
};
556

  
557
const UINT8 mpa_huffbits_16[256] = {
558
  1,  4,  6,  8,  9,  9, 10, 10,
559
 11, 11, 11, 12, 12, 12, 13,  9,
560
  3,  4,  6,  7,  8,  9,  9,  9,
561
 10, 10, 10, 11, 12, 11, 12,  8,
562
  6,  6,  7,  8,  9,  9, 10, 10,
563
 11, 10, 11, 11, 11, 12, 12,  9,
564
  8,  7,  8,  9,  9, 10, 10, 10,
565
 11, 11, 12, 12, 12, 13, 13, 10,
566
  9,  8,  9,  9, 10, 10, 11, 11,
567
 11, 12, 12, 12, 13, 13, 13,  9,
568
  9,  8,  9,  9, 10, 11, 11, 12,
569
 11, 12, 12, 13, 13, 13, 14, 10,
570
 10,  9,  9, 10, 11, 11, 11, 11,
571
 12, 12, 12, 12, 13, 13, 14, 10,
572
 10,  9, 10, 10, 11, 11, 11, 12,
573
 12, 13, 13, 13, 13, 15, 15, 10,
574
 10, 10, 10, 11, 11, 11, 12, 12,
575
 13, 13, 13, 13, 14, 14, 14, 10,
576
 11, 10, 10, 11, 11, 12, 12, 13,
577
 13, 13, 13, 14, 13, 14, 13, 11,
578
 11, 11, 10, 11, 12, 12, 12, 12,
579
 13, 14, 14, 14, 15, 15, 14, 10,
580
 12, 11, 11, 11, 12, 12, 13, 14,
581
 14, 14, 14, 14, 14, 13, 14, 11,
582
 12, 12, 12, 12, 12, 13, 13, 13,
583
 13, 15, 14, 14, 14, 14, 16, 11,
584
 14, 12, 12, 12, 13, 13, 14, 14,
585
 14, 16, 15, 15, 15, 17, 15, 11,
586
 13, 13, 11, 12, 14, 14, 13, 14,
587
 14, 15, 16, 15, 17, 15, 14, 11,
588
  9,  8,  8,  9,  9, 10, 10, 10,
589
 11, 11, 11, 11, 11, 11, 11,  8,
590
};
591

  
592
const UINT16 mpa_huffcodes_24[256] = {
593
 0x000f, 0x000d, 0x002e, 0x0050, 0x0092, 0x0106, 0x00f8, 0x01b2,
594
 0x01aa, 0x029d, 0x028d, 0x0289, 0x026d, 0x0205, 0x0408, 0x0058,
595
 0x000e, 0x000c, 0x0015, 0x0026, 0x0047, 0x0082, 0x007a, 0x00d8,
596
 0x00d1, 0x00c6, 0x0147, 0x0159, 0x013f, 0x0129, 0x0117, 0x002a,
597
 0x002f, 0x0016, 0x0029, 0x004a, 0x0044, 0x0080, 0x0078, 0x00dd,
598
 0x00cf, 0x00c2, 0x00b6, 0x0154, 0x013b, 0x0127, 0x021d, 0x0012,
599
 0x0051, 0x0027, 0x004b, 0x0046, 0x0086, 0x007d, 0x0074, 0x00dc,
600
 0x00cc, 0x00be, 0x00b2, 0x0145, 0x0137, 0x0125, 0x010f, 0x0010,
601
 0x0093, 0x0048, 0x0045, 0x0087, 0x007f, 0x0076, 0x0070, 0x00d2,
602
 0x00c8, 0x00bc, 0x0160, 0x0143, 0x0132, 0x011d, 0x021c, 0x000e,
603
 0x0107, 0x0042, 0x0081, 0x007e, 0x0077, 0x0072, 0x00d6, 0x00ca,
604
 0x00c0, 0x00b4, 0x0155, 0x013d, 0x012d, 0x0119, 0x0106, 0x000c,
605
 0x00f9, 0x007b, 0x0079, 0x0075, 0x0071, 0x00d7, 0x00ce, 0x00c3,
606
 0x00b9, 0x015b, 0x014a, 0x0134, 0x0123, 0x0110, 0x0208, 0x000a,
607
 0x01b3, 0x0073, 0x006f, 0x006d, 0x00d3, 0x00cb, 0x00c4, 0x00bb,
608
 0x0161, 0x014c, 0x0139, 0x012a, 0x011b, 0x0213, 0x017d, 0x0011,
609
 0x01ab, 0x00d4, 0x00d0, 0x00cd, 0x00c9, 0x00c1, 0x00ba, 0x00b1,
610
 0x00a9, 0x0140, 0x012f, 0x011e, 0x010c, 0x0202, 0x0179, 0x0010,
611
 0x014f, 0x00c7, 0x00c5, 0x00bf, 0x00bd, 0x00b5, 0x00ae, 0x014d,
612
 0x0141, 0x0131, 0x0121, 0x0113, 0x0209, 0x017b, 0x0173, 0x000b,
613
 0x029c, 0x00b8, 0x00b7, 0x00b3, 0x00af, 0x0158, 0x014b, 0x013a,
614
 0x0130, 0x0122, 0x0115, 0x0212, 0x017f, 0x0175, 0x016e, 0x000a,
615
 0x028c, 0x015a, 0x00ab, 0x00a8, 0x00a4, 0x013e, 0x0135, 0x012b,
616
 0x011f, 0x0114, 0x0107, 0x0201, 0x0177, 0x0170, 0x016a, 0x0006,
617
 0x0288, 0x0142, 0x013c, 0x0138, 0x0133, 0x012e, 0x0124, 0x011c,
618
 0x010d, 0x0105, 0x0200, 0x0178, 0x0172, 0x016c, 0x0167, 0x0004,
619
 0x026c, 0x012c, 0x0128, 0x0126, 0x0120, 0x011a, 0x0111, 0x010a,
620
 0x0203, 0x017c, 0x0176, 0x0171, 0x016d, 0x0169, 0x0165, 0x0002,
621
 0x0409, 0x0118, 0x0116, 0x0112, 0x010b, 0x0108, 0x0103, 0x017e,
622
 0x017a, 0x0174, 0x016f, 0x016b, 0x0168, 0x0166, 0x0164, 0x0000,
623
 0x002b, 0x0014, 0x0013, 0x0011, 0x000f, 0x000d, 0x000b, 0x0009,
624
 0x0007, 0x0006, 0x0004, 0x0007, 0x0005, 0x0003, 0x0001, 0x0003,
625
};
626

  
627
const UINT8 mpa_huffbits_24[256] = {
628
  4,  4,  6,  7,  8,  9,  9, 10,
629
 10, 11, 11, 11, 11, 11, 12,  9,
630
  4,  4,  5,  6,  7,  8,  8,  9,
631
  9,  9, 10, 10, 10, 10, 10,  8,
632
  6,  5,  6,  7,  7,  8,  8,  9,
633
  9,  9,  9, 10, 10, 10, 11,  7,
634
  7,  6,  7,  7,  8,  8,  8,  9,
635
  9,  9,  9, 10, 10, 10, 10,  7,
636
  8,  7,  7,  8,  8,  8,  8,  9,
637
  9,  9, 10, 10, 10, 10, 11,  7,
638
  9,  7,  8,  8,  8,  8,  9,  9,
639
  9,  9, 10, 10, 10, 10, 10,  7,
640
  9,  8,  8,  8,  8,  9,  9,  9,
641
  9, 10, 10, 10, 10, 10, 11,  7,
642
 10,  8,  8,  8,  9,  9,  9,  9,
643
 10, 10, 10, 10, 10, 11, 11,  8,
644
 10,  9,  9,  9,  9,  9,  9,  9,
645
  9, 10, 10, 10, 10, 11, 11,  8,
646
 10,  9,  9,  9,  9,  9,  9, 10,
647
 10, 10, 10, 10, 11, 11, 11,  8,
648
 11,  9,  9,  9,  9, 10, 10, 10,
649
 10, 10, 10, 11, 11, 11, 11,  8,
650
 11, 10,  9,  9,  9, 10, 10, 10,
651
 10, 10, 10, 11, 11, 11, 11,  8,
652
 11, 10, 10, 10, 10, 10, 10, 10,
653
 10, 10, 11, 11, 11, 11, 11,  8,
654
 11, 10, 10, 10, 10, 10, 10, 10,
655
 11, 11, 11, 11, 11, 11, 11,  8,
656
 12, 10, 10, 10, 10, 10, 10, 11,
657
 11, 11, 11, 11, 11, 11, 11,  8,
658
  8,  7,  7,  7,  7,  7,  7,  7,
659
  7,  7,  7,  8,  8,  8,  8,  4,
660
};
661

  
662
const HuffTable mpa_huff_tables[16] = {
663
{ 1, NULL, NULL },
664
{ 2, mpa_huffbits_1, mpa_huffcodes_1 },
665
{ 3, mpa_huffbits_2, mpa_huffcodes_2 },
666
{ 3, mpa_huffbits_3, mpa_huffcodes_3 },
667
{ 4, mpa_huffbits_5, mpa_huffcodes_5 },
668
{ 4, mpa_huffbits_6, mpa_huffcodes_6 },
669
{ 6, mpa_huffbits_7, mpa_huffcodes_7 },
670
{ 6, mpa_huffbits_8, mpa_huffcodes_8 },
671
{ 6, mpa_huffbits_9, mpa_huffcodes_9 },
672
{ 8, mpa_huffbits_10, mpa_huffcodes_10 },
673
{ 8, mpa_huffbits_11, mpa_huffcodes_11 },
674
{ 8, mpa_huffbits_12, mpa_huffcodes_12 },
675
{ 16, mpa_huffbits_13, mpa_huffcodes_13 },
676
{ 16, mpa_huffbits_15, mpa_huffcodes_15 },
677
{ 16, mpa_huffbits_16, mpa_huffcodes_16 },
678
{ 16, mpa_huffbits_24, mpa_huffcodes_24 },
679
};
680

  
681
const UINT8 mpa_huff_data[32][2] = {
682
{ 0, 0 },
683
{ 1, 0 },
684
{ 2, 0 },
685
{ 3, 0 },
686
{ 0, 0 },
687
{ 4, 0 },
688
{ 5, 0 },
689
{ 6, 0 },
690
{ 7, 0 },
691
{ 8, 0 },
692
{ 9, 0 },
693
{ 10, 0 },
694
{ 11, 0 },
695
{ 12, 0 },
696
{ 0, 0 },
697
{ 13, 0 },
698
{ 14, 1 },
699
{ 14, 2 },
700
{ 14, 3 },
701
{ 14, 4 },
702
{ 14, 6 },
703
{ 14, 8 },
704
{ 14, 10 },
705
{ 14, 13 },
706
{ 15, 4 },
707
{ 15, 5 },
708
{ 15, 6 },
709
{ 15, 7 },
710
{ 15, 8 },
711
{ 15, 9 },
712
{ 15, 11 },
713
{ 15, 13 },
714
};
715

  
716

  
717
/* huffman tables for quadrules */
718
static UINT8 mpa_quad_codes[2][16] = {
719
    {  1,  5,  4,  5,  6,  5,  4,  4, 7,  3,  6,  0,  7,  2,  3,  1, },
720
    { 15, 14, 13, 12, 11, 10,  9,  8, 7,  6,  5,  4,  3,  2,  1,  0, },
721
};
722

  
723
static UINT8 mpa_quad_bits[2][16] = {
724
    { 1, 4, 4, 5, 4, 6, 5, 6, 4, 5, 5, 6, 5, 6, 6, 6, },
725
    { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, },
726
};
727

  
728
/* band size tables */
729
const UINT8 band_size_long[9][22] = {
730
{ 4, 4, 4, 4, 4, 4, 6, 6, 8, 8, 10,
731
  12, 16, 20, 24, 28, 34, 42, 50, 54, 76, 158, }, /* 44100 */
732
{ 4, 4, 4, 4, 4, 4, 6, 6, 6, 8, 10,
733
  12, 16, 18, 22, 28, 34, 40, 46, 54, 54, 192, }, /* 48000 */
734
{ 4, 4, 4, 4, 4, 4, 6, 6, 8, 10, 12,
735
  16, 20, 24, 30, 38, 46, 56, 68, 84, 102, 26, }, /* 32000 */
736
{ 6, 6, 6, 6, 6, 6, 8, 10, 12, 14, 16,
737
  20, 24, 28, 32, 38, 46, 52, 60, 68, 58, 54, }, /* 22050 */
738
{ 6, 6, 6, 6, 6, 6, 8, 10, 12, 14, 16,
739
  18, 22, 26, 32, 38, 46, 52, 64, 70, 76, 36, }, /* 24000 */
740
{ 6, 6, 6, 6, 6, 6, 8, 10, 12, 14, 16,
741
  20, 24, 28, 32, 38, 46, 52, 60, 68, 58, 54, }, /* 16000 */
742
{ 6, 6, 6, 6, 6, 6, 8, 10, 12, 14, 16,
743
  20, 24, 28, 32, 38, 46, 52, 60, 68, 58, 54, }, /* 11025 */
744
{ 6, 6, 6, 6, 6, 6, 8, 10, 12, 14, 16,
745
  20, 24, 28, 32, 38, 46, 52, 60, 68, 58, 54, }, /* 12000 */
746
{ 12, 12, 12, 12, 12, 12, 16, 20, 24, 28, 32,
747
  40, 48, 56, 64, 76, 90, 2, 2, 2, 2, 2, }, /* 8000 */
748
};
749

  
750
const UINT8 band_size_short[9][13] = {
751
{ 4, 4, 4, 4, 6, 8, 10, 12, 14, 18, 22, 30, 56, }, /* 44100 */
752
{ 4, 4, 4, 4, 6, 6, 10, 12, 14, 16, 20, 26, 66, }, /* 48000 */
753
{ 4, 4, 4, 4, 6, 8, 12, 16, 20, 26, 34, 42, 12, }, /* 32000 */
754
{ 4, 4, 4, 6, 6, 8, 10, 14, 18, 26, 32, 42, 18, }, /* 22050 */
755
{ 4, 4, 4, 6, 8, 10, 12, 14, 18, 24, 32, 44, 12, }, /* 24000 */
756
{ 4, 4, 4, 6, 8, 10, 12, 14, 18, 24, 30, 40, 18, }, /* 16000 */
757
{ 4, 4, 4, 6, 8, 10, 12, 14, 18, 24, 30, 40, 18, }, /* 11025 */
758
{ 4, 4, 4, 6, 8, 10, 12, 14, 18, 24, 30, 40, 18, }, /* 12000 */
759
{ 8, 8, 8, 12, 16, 20, 24, 28, 36, 2, 2, 2, 26, }, /* 8000 */
760
};
761

  
762
const UINT8 mpa_pretab[2][22] = {
763
    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
764
    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 3, 3, 3, 2, 0 },
765
};
766

  
767
/* table for alias reduction (XXX: store it as integer !) */
768
const float ci_table[8] = {
769
    -0.6, -0.535, -0.33, -0.185, -0.095, -0.041, -0.0142, -0.0037,
770
};

Also available in: Unified diff