00001
00006 const uint16_t mpa_bitrate_tab[2][3][15] = {
00007 { {0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448 },
00008 {0, 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384 },
00009 {0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320 } },
00010 { {0, 32, 48, 56, 64, 80, 96, 112, 128, 144, 160, 176, 192, 224, 256},
00011 {0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160},
00012 {0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160}
00013 }
00014 };
00015
00016 const uint16_t mpa_freq_tab[3] = { 44100, 48000, 32000 };
00017
00018
00019
00020 const int32_t mpa_enwindow[257] = {
00021 0, -1, -1, -1, -1, -1, -1, -2,
00022 -2, -2, -2, -3, -3, -4, -4, -5,
00023 -5, -6, -7, -7, -8, -9, -10, -11,
00024 -13, -14, -16, -17, -19, -21, -24, -26,
00025 -29, -31, -35, -38, -41, -45, -49, -53,
00026 -58, -63, -68, -73, -79, -85, -91, -97,
00027 -104, -111, -117, -125, -132, -139, -147, -154,
00028 -161, -169, -176, -183, -190, -196, -202, -208,
00029 213, 218, 222, 225, 227, 228, 228, 227,
00030 224, 221, 215, 208, 200, 189, 177, 163,
00031 146, 127, 106, 83, 57, 29, -2, -36,
00032 -72, -111, -153, -197, -244, -294, -347, -401,
00033 -459, -519, -581, -645, -711, -779, -848, -919,
00034 -991, -1064, -1137, -1210, -1283, -1356, -1428, -1498,
00035 -1567, -1634, -1698, -1759, -1817, -1870, -1919, -1962,
00036 -2001, -2032, -2057, -2075, -2085, -2087, -2080, -2063,
00037 2037, 2000, 1952, 1893, 1822, 1739, 1644, 1535,
00038 1414, 1280, 1131, 970, 794, 605, 402, 185,
00039 -45, -288, -545, -814, -1095, -1388, -1692, -2006,
00040 -2330, -2663, -3004, -3351, -3705, -4063, -4425, -4788,
00041 -5153, -5517, -5879, -6237, -6589, -6935, -7271, -7597,
00042 -7910, -8209, -8491, -8755, -8998, -9219, -9416, -9585,
00043 -9727, -9838, -9916, -9959, -9966, -9935, -9863, -9750,
00044 -9592, -9389, -9139, -8840, -8492, -8092, -7640, -7134,
00045 6574, 5959, 5288, 4561, 3776, 2935, 2037, 1082,
00046 70, -998, -2122, -3300, -4533, -5818, -7154, -8540,
00047 -9975,-11455,-12980,-14548,-16155,-17799,-19478,-21189,
00048 -22929,-24694,-26482,-28289,-30112,-31947,-33791,-35640,
00049 -37489,-39336,-41176,-43006,-44821,-46617,-48390,-50137,
00050 -51853,-53534,-55178,-56778,-58333,-59838,-61289,-62684,
00051 -64019,-65290,-66494,-67629,-68692,-69679,-70590,-71420,
00052 -72169,-72835,-73415,-73908,-74313,-74630,-74856,-74992,
00053 75038,
00054 };
00055
00056
00057
00058
00059 const int sblimit_table[5] = { 27 , 30 , 8, 12 , 30 };
00060
00061 const int quant_steps[17] = {
00062 3, 5, 7, 9, 15,
00063 31, 63, 127, 255, 511,
00064 1023, 2047, 4095, 8191, 16383,
00065 32767, 65535
00066 };
00067
00068
00069 const int quant_bits[17] = {
00070 -5, -7, 3, -10, 4,
00071 5, 6, 7, 8, 9,
00072 10, 11, 12, 13, 14,
00073 15, 16
00074 };
00075
00076
00077
00078 static const unsigned char alloc_table_0[] = {
00079 4, 0, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
00080 4, 0, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
00081 4, 0, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
00082 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16,
00083 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16,
00084 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16,
00085 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16,
00086 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16,
00087 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16,
00088 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16,
00089 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16,
00090 3, 0, 1, 2, 3, 4, 5, 16,
00091 3, 0, 1, 2, 3, 4, 5, 16,
00092 3, 0, 1, 2, 3, 4, 5, 16,
00093 3, 0, 1, 2, 3, 4, 5, 16,
00094 3, 0, 1, 2, 3, 4, 5, 16,
00095 3, 0, 1, 2, 3, 4, 5, 16,
00096 3, 0, 1, 2, 3, 4, 5, 16,
00097 3, 0, 1, 2, 3, 4, 5, 16,
00098 3, 0, 1, 2, 3, 4, 5, 16,
00099 3, 0, 1, 2, 3, 4, 5, 16,
00100 3, 0, 1, 2, 3, 4, 5, 16,
00101 3, 0, 1, 2, 3, 4, 5, 16,
00102 2, 0, 1, 16,
00103 2, 0, 1, 16,
00104 2, 0, 1, 16,
00105 2, 0, 1, 16,
00106 };
00107
00108 static const unsigned char alloc_table_1[] = {
00109 4, 0, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
00110 4, 0, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
00111 4, 0, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
00112 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16,
00113 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16,
00114 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16,
00115 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16,
00116 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16,
00117 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16,
00118 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16,
00119 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16,
00120 3, 0, 1, 2, 3, 4, 5, 16,
00121 3, 0, 1, 2, 3, 4, 5, 16,
00122 3, 0, 1, 2, 3, 4, 5, 16,
00123 3, 0, 1, 2, 3, 4, 5, 16,
00124 3, 0, 1, 2, 3, 4, 5, 16,
00125 3, 0, 1, 2, 3, 4, 5, 16,
00126 3, 0, 1, 2, 3, 4, 5, 16,
00127 3, 0, 1, 2, 3, 4, 5, 16,
00128 3, 0, 1, 2, 3, 4, 5, 16,
00129 3, 0, 1, 2, 3, 4, 5, 16,
00130 3, 0, 1, 2, 3, 4, 5, 16,
00131 3, 0, 1, 2, 3, 4, 5, 16,
00132 2, 0, 1, 16,
00133 2, 0, 1, 16,
00134 2, 0, 1, 16,
00135 2, 0, 1, 16,
00136 2, 0, 1, 16,
00137 2, 0, 1, 16,
00138 2, 0, 1, 16,
00139 };
00140
00141 static const unsigned char alloc_table_2[] = {
00142 4, 0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
00143 4, 0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
00144 3, 0, 1, 3, 4, 5, 6, 7,
00145 3, 0, 1, 3, 4, 5, 6, 7,
00146 3, 0, 1, 3, 4, 5, 6, 7,
00147 3, 0, 1, 3, 4, 5, 6, 7,
00148 3, 0, 1, 3, 4, 5, 6, 7,
00149 3, 0, 1, 3, 4, 5, 6, 7,
00150 };
00151
00152 static const unsigned char alloc_table_3[] = {
00153 4, 0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
00154 4, 0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
00155 3, 0, 1, 3, 4, 5, 6, 7,
00156 3, 0, 1, 3, 4, 5, 6, 7,
00157 3, 0, 1, 3, 4, 5, 6, 7,
00158 3, 0, 1, 3, 4, 5, 6, 7,
00159 3, 0, 1, 3, 4, 5, 6, 7,
00160 3, 0, 1, 3, 4, 5, 6, 7,
00161 3, 0, 1, 3, 4, 5, 6, 7,
00162 3, 0, 1, 3, 4, 5, 6, 7,
00163 3, 0, 1, 3, 4, 5, 6, 7,
00164 3, 0, 1, 3, 4, 5, 6, 7,
00165 };
00166
00167 static const unsigned char alloc_table_4[] = {
00168 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
00169 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
00170 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
00171 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
00172 3, 0, 1, 3, 4, 5, 6, 7,
00173 3, 0, 1, 3, 4, 5, 6, 7,
00174 3, 0, 1, 3, 4, 5, 6, 7,
00175 3, 0, 1, 3, 4, 5, 6, 7,
00176 3, 0, 1, 3, 4, 5, 6, 7,
00177 3, 0, 1, 3, 4, 5, 6, 7,
00178 3, 0, 1, 3, 4, 5, 6, 7,
00179 2, 0, 1, 3,
00180 2, 0, 1, 3,
00181 2, 0, 1, 3,
00182 2, 0, 1, 3,
00183 2, 0, 1, 3,
00184 2, 0, 1, 3,
00185 2, 0, 1, 3,
00186 2, 0, 1, 3,
00187 2, 0, 1, 3,
00188 2, 0, 1, 3,
00189 2, 0, 1, 3,
00190 2, 0, 1, 3,
00191 2, 0, 1, 3,
00192 2, 0, 1, 3,
00193 2, 0, 1, 3,
00194 2, 0, 1, 3,
00195 2, 0, 1, 3,
00196 2, 0, 1, 3,
00197 2, 0, 1, 3,
00198 };
00199
00200 const unsigned char *alloc_tables[5] =
00201 { alloc_table_0, alloc_table_1, alloc_table_2, alloc_table_3, alloc_table_4, };
00202
00203
00204
00205
00206
00207 static const uint8_t slen_table[2][16] = {
00208 { 0, 0, 0, 0, 3, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4 },
00209 { 0, 1, 2, 3, 0, 1, 2, 3, 1, 2, 3, 1, 2, 3, 2, 3 },
00210 };
00211
00212
00213 static const uint8_t lsf_nsf_table[6][3][4] = {
00214 { { 6, 5, 5, 5 }, { 9, 9, 9, 9 }, { 6, 9, 9, 9 } },
00215 { { 6, 5, 7, 3 }, { 9, 9, 12, 6 }, { 6, 9, 12, 6 } },
00216 { { 11, 10, 0, 0 }, { 18, 18, 0, 0 }, { 15, 18, 0, 0 } },
00217 { { 7, 7, 7, 0 }, { 12, 12, 12, 0 }, { 6, 15, 12, 0 } },
00218 { { 6, 6, 6, 3 }, { 12, 9, 9, 6 }, { 6, 12, 9, 6 } },
00219 { { 8, 8, 5, 0 }, { 15, 12, 9, 0 }, { 6, 18, 9, 0 } },
00220 };
00221
00222
00223
00224 const uint16_t mpa_huffcodes_1[4] = {
00225 0x0001, 0x0001, 0x0001, 0x0000,
00226 };
00227
00228 const uint8_t mpa_huffbits_1[4] = {
00229 1, 3, 2, 3,
00230 };
00231
00232 const uint16_t mpa_huffcodes_2[9] = {
00233 0x0001, 0x0002, 0x0001, 0x0003, 0x0001, 0x0001, 0x0003, 0x0002,
00234 0x0000,
00235 };
00236
00237 const uint8_t mpa_huffbits_2[9] = {
00238 1, 3, 6, 3, 3, 5, 5, 5,
00239 6,
00240 };
00241
00242 const uint16_t mpa_huffcodes_3[9] = {
00243 0x0003, 0x0002, 0x0001, 0x0001, 0x0001, 0x0001, 0x0003, 0x0002,
00244 0x0000,
00245 };
00246
00247 const uint8_t mpa_huffbits_3[9] = {
00248 2, 2, 6, 3, 2, 5, 5, 5,
00249 6,
00250 };
00251
00252 const uint16_t mpa_huffcodes_5[16] = {
00253 0x0001, 0x0002, 0x0006, 0x0005, 0x0003, 0x0001, 0x0004, 0x0004,
00254 0x0007, 0x0005, 0x0007, 0x0001, 0x0006, 0x0001, 0x0001, 0x0000,
00255 };
00256
00257 const uint8_t mpa_huffbits_5[16] = {
00258 1, 3, 6, 7, 3, 3, 6, 7,
00259 6, 6, 7, 8, 7, 6, 7, 8,
00260 };
00261
00262 const uint16_t mpa_huffcodes_6[16] = {
00263 0x0007, 0x0003, 0x0005, 0x0001, 0x0006, 0x0002, 0x0003, 0x0002,
00264 0x0005, 0x0004, 0x0004, 0x0001, 0x0003, 0x0003, 0x0002, 0x0000,
00265 };
00266
00267 const uint8_t mpa_huffbits_6[16] = {
00268 3, 3, 5, 7, 3, 2, 4, 5,
00269 4, 4, 5, 6, 6, 5, 6, 7,
00270 };
00271
00272 const uint16_t mpa_huffcodes_7[36] = {
00273 0x0001, 0x0002, 0x000a, 0x0013, 0x0010, 0x000a, 0x0003, 0x0003,
00274 0x0007, 0x000a, 0x0005, 0x0003, 0x000b, 0x0004, 0x000d, 0x0011,
00275 0x0008, 0x0004, 0x000c, 0x000b, 0x0012, 0x000f, 0x000b, 0x0002,
00276 0x0007, 0x0006, 0x0009, 0x000e, 0x0003, 0x0001, 0x0006, 0x0004,
00277 0x0005, 0x0003, 0x0002, 0x0000,
00278 };
00279
00280 const uint8_t mpa_huffbits_7[36] = {
00281 1, 3, 6, 8, 8, 9, 3, 4,
00282 6, 7, 7, 8, 6, 5, 7, 8,
00283 8, 9, 7, 7, 8, 9, 9, 9,
00284 7, 7, 8, 9, 9, 10, 8, 8,
00285 9, 10, 10, 10,
00286 };
00287
00288 const uint16_t mpa_huffcodes_8[36] = {
00289 0x0003, 0x0004, 0x0006, 0x0012, 0x000c, 0x0005, 0x0005, 0x0001,
00290 0x0002, 0x0010, 0x0009, 0x0003, 0x0007, 0x0003, 0x0005, 0x000e,
00291 0x0007, 0x0003, 0x0013, 0x0011, 0x000f, 0x000d, 0x000a, 0x0004,
00292 0x000d, 0x0005, 0x0008, 0x000b, 0x0005, 0x0001, 0x000c, 0x0004,
00293 0x0004, 0x0001, 0x0001, 0x0000,
00294 };
00295
00296 const uint8_t mpa_huffbits_8[36] = {
00297 2, 3, 6, 8, 8, 9, 3, 2,
00298 4, 8, 8, 8, 6, 4, 6, 8,
00299 8, 9, 8, 8, 8, 9, 9, 10,
00300 8, 7, 8, 9, 10, 10, 9, 8,
00301 9, 9, 11, 11,
00302 };
00303
00304 const uint16_t mpa_huffcodes_9[36] = {
00305 0x0007, 0x0005, 0x0009, 0x000e, 0x000f, 0x0007, 0x0006, 0x0004,
00306 0x0005, 0x0005, 0x0006, 0x0007, 0x0007, 0x0006, 0x0008, 0x0008,
00307 0x0008, 0x0005, 0x000f, 0x0006, 0x0009, 0x000a, 0x0005, 0x0001,
00308 0x000b, 0x0007, 0x0009, 0x0006, 0x0004, 0x0001, 0x000e, 0x0004,
00309 0x0006, 0x0002, 0x0006, 0x0000,
00310 };
00311
00312 const uint8_t mpa_huffbits_9[36] = {
00313 3, 3, 5, 6, 8, 9, 3, 3,
00314 4, 5, 6, 8, 4, 4, 5, 6,
00315 7, 8, 6, 5, 6, 7, 7, 8,
00316 7, 6, 7, 7, 8, 9, 8, 7,
00317 8, 8, 9, 9,
00318 };
00319
00320 const uint16_t mpa_huffcodes_10[64] = {
00321 0x0001, 0x0002, 0x000a, 0x0017, 0x0023, 0x001e, 0x000c, 0x0011,
00322 0x0003, 0x0003, 0x0008, 0x000c, 0x0012, 0x0015, 0x000c, 0x0007,
00323 0x000b, 0x0009, 0x000f, 0x0015, 0x0020, 0x0028, 0x0013, 0x0006,
00324 0x000e, 0x000d, 0x0016, 0x0022, 0x002e, 0x0017, 0x0012, 0x0007,
00325 0x0014, 0x0013, 0x0021, 0x002f, 0x001b, 0x0016, 0x0009, 0x0003,
00326 0x001f, 0x0016, 0x0029, 0x001a, 0x0015, 0x0014, 0x0005, 0x0003,
00327 0x000e, 0x000d, 0x000a, 0x000b, 0x0010, 0x0006, 0x0005, 0x0001,
00328 0x0009, 0x0008, 0x0007, 0x0008, 0x0004, 0x0004, 0x0002, 0x0000,
00329 };
00330
00331 const uint8_t mpa_huffbits_10[64] = {
00332 1, 3, 6, 8, 9, 9, 9, 10,
00333 3, 4, 6, 7, 8, 9, 8, 8,
00334 6, 6, 7, 8, 9, 10, 9, 9,
00335 7, 7, 8, 9, 10, 10, 9, 10,
00336 8, 8, 9, 10, 10, 10, 10, 10,
00337 9, 9, 10, 10, 11, 11, 10, 11,
00338 8, 8, 9, 10, 10, 10, 11, 11,
00339 9, 8, 9, 10, 10, 11, 11, 11,
00340 };
00341
00342 const uint16_t mpa_huffcodes_11[64] = {
00343 0x0003, 0x0004, 0x000a, 0x0018, 0x0022, 0x0021, 0x0015, 0x000f,
00344 0x0005, 0x0003, 0x0004, 0x000a, 0x0020, 0x0011, 0x000b, 0x000a,
00345 0x000b, 0x0007, 0x000d, 0x0012, 0x001e, 0x001f, 0x0014, 0x0005,
00346 0x0019, 0x000b, 0x0013, 0x003b, 0x001b, 0x0012, 0x000c, 0x0005,
00347 0x0023, 0x0021, 0x001f, 0x003a, 0x001e, 0x0010, 0x0007, 0x0005,
00348 0x001c, 0x001a, 0x0020, 0x0013, 0x0011, 0x000f, 0x0008, 0x000e,
00349 0x000e, 0x000c, 0x0009, 0x000d, 0x000e, 0x0009, 0x0004, 0x0001,
00350 0x000b, 0x0004, 0x0006, 0x0006, 0x0006, 0x0003, 0x0002, 0x0000,
00351 };
00352
00353 const uint8_t mpa_huffbits_11[64] = {
00354 2, 3, 5, 7, 8, 9, 8, 9,
00355 3, 3, 4, 6, 8, 8, 7, 8,
00356 5, 5, 6, 7, 8, 9, 8, 8,
00357 7, 6, 7, 9, 8, 10, 8, 9,
00358 8, 8, 8, 9, 9, 10, 9, 10,
00359 8, 8, 9, 10, 10, 11, 10, 11,
00360 8, 7, 7, 8, 9, 10, 10, 10,
00361 8, 7, 8, 9, 10, 10, 10, 10,
00362 };
00363
00364 const uint16_t mpa_huffcodes_12[64] = {
00365 0x0009, 0x0006, 0x0010, 0x0021, 0x0029, 0x0027, 0x0026, 0x001a,
00366 0x0007, 0x0005, 0x0006, 0x0009, 0x0017, 0x0010, 0x001a, 0x000b,
00367 0x0011, 0x0007, 0x000b, 0x000e, 0x0015, 0x001e, 0x000a, 0x0007,
00368 0x0011, 0x000a, 0x000f, 0x000c, 0x0012, 0x001c, 0x000e, 0x0005,
00369 0x0020, 0x000d, 0x0016, 0x0013, 0x0012, 0x0010, 0x0009, 0x0005,
00370 0x0028, 0x0011, 0x001f, 0x001d, 0x0011, 0x000d, 0x0004, 0x0002,
00371 0x001b, 0x000c, 0x000b, 0x000f, 0x000a, 0x0007, 0x0004, 0x0001,
00372 0x001b, 0x000c, 0x0008, 0x000c, 0x0006, 0x0003, 0x0001, 0x0000,
00373 };
00374
00375 const uint8_t mpa_huffbits_12[64] = {
00376 4, 3, 5, 7, 8, 9, 9, 9,
00377 3, 3, 4, 5, 7, 7, 8, 8,
00378 5, 4, 5, 6, 7, 8, 7, 8,
00379 6, 5, 6, 6, 7, 8, 8, 8,
00380 7, 6, 7, 7, 8, 8, 8, 9,
00381 8, 7, 8, 8, 8, 9, 8, 9,
00382 8, 7, 7, 8, 8, 9, 9, 10,
00383 9, 8, 8, 9, 9, 9, 9, 10,
00384 };
00385
00386 const uint16_t mpa_huffcodes_13[256] = {
00387 0x0001, 0x0005, 0x000e, 0x0015, 0x0022, 0x0033, 0x002e, 0x0047,
00388 0x002a, 0x0034, 0x0044, 0x0034, 0x0043, 0x002c, 0x002b, 0x0013,
00389 0x0003, 0x0004, 0x000c, 0x0013, 0x001f, 0x001a, 0x002c, 0x0021,
00390 0x001f, 0x0018, 0x0020, 0x0018, 0x001f, 0x0023, 0x0016, 0x000e,
00391 0x000f, 0x000d, 0x0017, 0x0024, 0x003b, 0x0031, 0x004d, 0x0041,
00392 0x001d, 0x0028, 0x001e, 0x0028, 0x001b, 0x0021, 0x002a, 0x0010,
00393 0x0016, 0x0014, 0x0025, 0x003d, 0x0038, 0x004f, 0x0049, 0x0040,
00394 0x002b, 0x004c, 0x0038, 0x0025, 0x001a, 0x001f, 0x0019, 0x000e,
00395 0x0023, 0x0010, 0x003c, 0x0039, 0x0061, 0x004b, 0x0072, 0x005b,
00396 0x0036, 0x0049, 0x0037, 0x0029, 0x0030, 0x0035, 0x0017, 0x0018,
00397 0x003a, 0x001b, 0x0032, 0x0060, 0x004c, 0x0046, 0x005d, 0x0054,
00398 0x004d, 0x003a, 0x004f, 0x001d, 0x004a, 0x0031, 0x0029, 0x0011,
00399 0x002f, 0x002d, 0x004e, 0x004a, 0x0073, 0x005e, 0x005a, 0x004f,
00400 0x0045, 0x0053, 0x0047, 0x0032, 0x003b, 0x0026, 0x0024, 0x000f,
00401 0x0048, 0x0022, 0x0038, 0x005f, 0x005c, 0x0055, 0x005b, 0x005a,
00402 0x0056, 0x0049, 0x004d, 0x0041, 0x0033, 0x002c, 0x002b, 0x002a,
00403 0x002b, 0x0014, 0x001e, 0x002c, 0x0037, 0x004e, 0x0048, 0x0057,
00404 0x004e, 0x003d, 0x002e, 0x0036, 0x0025, 0x001e, 0x0014, 0x0010,
00405 0x0035, 0x0019, 0x0029, 0x0025, 0x002c, 0x003b, 0x0036, 0x0051,
00406 0x0042, 0x004c, 0x0039, 0x0036, 0x0025, 0x0012, 0x0027, 0x000b,
00407 0x0023, 0x0021, 0x001f, 0x0039, 0x002a, 0x0052, 0x0048, 0x0050,
00408 0x002f, 0x003a, 0x0037, 0x0015, 0x0016, 0x001a, 0x0026, 0x0016,
00409 0x0035, 0x0019, 0x0017, 0x0026, 0x0046, 0x003c, 0x0033, 0x0024,
00410 0x0037, 0x001a, 0x0022, 0x0017, 0x001b, 0x000e, 0x0009, 0x0007,
00411 0x0022, 0x0020, 0x001c, 0x0027, 0x0031, 0x004b, 0x001e, 0x0034,
00412 0x0030, 0x0028, 0x0034, 0x001c, 0x0012, 0x0011, 0x0009, 0x0005,
00413 0x002d, 0x0015, 0x0022, 0x0040, 0x0038, 0x0032, 0x0031, 0x002d,
00414 0x001f, 0x0013, 0x000c, 0x000f, 0x000a, 0x0007, 0x0006, 0x0003,
00415 0x0030, 0x0017, 0x0014, 0x0027, 0x0024, 0x0023, 0x0035, 0x0015,
00416 0x0010, 0x0017, 0x000d, 0x000a, 0x0006, 0x0001, 0x0004, 0x0002,
00417 0x0010, 0x000f, 0x0011, 0x001b, 0x0019, 0x0014, 0x001d, 0x000b,
00418 0x0011, 0x000c, 0x0010, 0x0008, 0x0001, 0x0001, 0x0000, 0x0001,
00419 };
00420
00421 const uint8_t mpa_huffbits_13[256] = {
00422 1, 4, 6, 7, 8, 9, 9, 10,
00423 9, 10, 11, 11, 12, 12, 13, 13,
00424 3, 4, 6, 7, 8, 8, 9, 9,
00425 9, 9, 10, 10, 11, 12, 12, 12,
00426 6, 6, 7, 8, 9, 9, 10, 10,
00427 9, 10, 10, 11, 11, 12, 13, 13,
00428 7, 7, 8, 9, 9, 10, 10, 10,
00429 10, 11, 11, 11, 11, 12, 13, 13,
00430 8, 7, 9, 9, 10, 10, 11, 11,
00431 10, 11, 11, 12, 12, 13, 13, 14,
00432 9, 8, 9, 10, 10, 10, 11, 11,
00433 11, 11, 12, 11, 13, 13, 14, 14,
00434 9, 9, 10, 10, 11, 11, 11, 11,
00435 11, 12, 12, 12, 13, 13, 14, 14,
00436 10, 9, 10, 11, 11, 11, 12, 12,
00437 12, 12, 13, 13, 13, 14, 16, 16,
00438 9, 8, 9, 10, 10, 11, 11, 12,
00439 12, 12, 12, 13, 13, 14, 15, 15,
00440 10, 9, 10, 10, 11, 11, 11, 13,
00441 12, 13, 13, 14, 14, 14, 16, 15,
00442 10, 10, 10, 11, 11, 12, 12, 13,
00443 12, 13, 14, 13, 14, 15, 16, 17,
00444 11, 10, 10, 11, 12, 12, 12, 12,
00445 13, 13, 13, 14, 15, 15, 15, 16,
00446 11, 11, 11, 12, 12, 13, 12, 13,
00447 14, 14, 15, 15, 15, 16, 16, 16,
00448 12, 11, 12, 13, 13, 13, 14, 14,
00449 14, 14, 14, 15, 16, 15, 16, 16,
00450 13, 12, 12, 13, 13, 13, 15, 14,
00451 14, 17, 15, 15, 15, 17, 16, 16,
00452 12, 12, 13, 14, 14, 14, 15, 14,
00453 15, 15, 16, 16, 19, 18, 19, 16,
00454 };
00455
00456 const uint16_t mpa_huffcodes_15[256] = {
00457 0x0007, 0x000c, 0x0012, 0x0035, 0x002f, 0x004c, 0x007c, 0x006c,
00458 0x0059, 0x007b, 0x006c, 0x0077, 0x006b, 0x0051, 0x007a, 0x003f,
00459 0x000d, 0x0005, 0x0010, 0x001b, 0x002e, 0x0024, 0x003d, 0x0033,
00460 0x002a, 0x0046, 0x0034, 0x0053, 0x0041, 0x0029, 0x003b, 0x0024,
00461 0x0013, 0x0011, 0x000f, 0x0018, 0x0029, 0x0022, 0x003b, 0x0030,
00462 0x0028, 0x0040, 0x0032, 0x004e, 0x003e, 0x0050, 0x0038, 0x0021,
00463 0x001d, 0x001c, 0x0019, 0x002b, 0x0027, 0x003f, 0x0037, 0x005d,
00464 0x004c, 0x003b, 0x005d, 0x0048, 0x0036, 0x004b, 0x0032, 0x001d,
00465 0x0034, 0x0016, 0x002a, 0x0028, 0x0043, 0x0039, 0x005f, 0x004f,
00466 0x0048, 0x0039, 0x0059, 0x0045, 0x0031, 0x0042, 0x002e, 0x001b,
00467 0x004d, 0x0025, 0x0023, 0x0042, 0x003a, 0x0034, 0x005b, 0x004a,
00468 0x003e, 0x0030, 0x004f, 0x003f, 0x005a, 0x003e, 0x0028, 0x0026,
00469 0x007d, 0x0020, 0x003c, 0x0038, 0x0032, 0x005c, 0x004e, 0x0041,
00470 0x0037, 0x0057, 0x0047, 0x0033, 0x0049, 0x0033, 0x0046, 0x001e,
00471 0x006d, 0x0035, 0x0031, 0x005e, 0x0058, 0x004b, 0x0042, 0x007a,
00472 0x005b, 0x0049, 0x0038, 0x002a, 0x0040, 0x002c, 0x0015, 0x0019,
00473 0x005a, 0x002b, 0x0029, 0x004d, 0x0049, 0x003f, 0x0038, 0x005c,
00474 0x004d, 0x0042, 0x002f, 0x0043, 0x0030, 0x0035, 0x0024, 0x0014,
00475 0x0047, 0x0022, 0x0043, 0x003c, 0x003a, 0x0031, 0x0058, 0x004c,
00476 0x0043, 0x006a, 0x0047, 0x0036, 0x0026, 0x0027, 0x0017, 0x000f,
00477 0x006d, 0x0035, 0x0033, 0x002f, 0x005a, 0x0052, 0x003a, 0x0039,
00478 0x0030, 0x0048, 0x0039, 0x0029, 0x0017, 0x001b, 0x003e, 0x0009,
00479 0x0056, 0x002a, 0x0028, 0x0025, 0x0046, 0x0040, 0x0034, 0x002b,
00480 0x0046, 0x0037, 0x002a, 0x0019, 0x001d, 0x0012, 0x000b, 0x000b,
00481 0x0076, 0x0044, 0x001e, 0x0037, 0x0032, 0x002e, 0x004a, 0x0041,
00482 0x0031, 0x0027, 0x0018, 0x0010, 0x0016, 0x000d, 0x000e, 0x0007,
00483 0x005b, 0x002c, 0x0027, 0x0026, 0x0022, 0x003f, 0x0034, 0x002d,
00484 0x001f, 0x0034, 0x001c, 0x0013, 0x000e, 0x0008, 0x0009, 0x0003,
00485 0x007b, 0x003c, 0x003a, 0x0035, 0x002f, 0x002b, 0x0020, 0x0016,
00486 0x0025, 0x0018, 0x0011, 0x000c, 0x000f, 0x000a, 0x0002, 0x0001,
00487 0x0047, 0x0025, 0x0022, 0x001e, 0x001c, 0x0014, 0x0011, 0x001a,
00488 0x0015, 0x0010, 0x000a, 0x0006, 0x0008, 0x0006, 0x0002, 0x0000,
00489 };
00490
00491 const uint8_t mpa_huffbits_15[256] = {
00492 3, 4, 5, 7, 7, 8, 9, 9,
00493 9, 10, 10, 11, 11, 11, 12, 13,
00494 4, 3, 5, 6, 7, 7, 8, 8,
00495 8, 9, 9, 10, 10, 10, 11, 11,
00496 5, 5, 5, 6, 7, 7, 8, 8,
00497 8, 9, 9, 10, 10, 11, 11, 11,
00498 6, 6, 6, 7, 7, 8, 8, 9,
00499 9, 9, 10, 10, 10, 11, 11, 11,
00500 7, 6, 7, 7, 8, 8, 9, 9,
00501 9, 9, 10, 10, 10, 11, 11, 11,
00502 8, 7, 7, 8, 8, 8, 9, 9,
00503 9, 9, 10, 10, 11, 11, 11, 12,
00504 9, 7, 8, 8, 8, 9, 9, 9,
00505 9, 10, 10, 10, 11, 11, 12, 12,
00506 9, 8, 8, 9, 9, 9, 9, 10,
00507 10, 10, 10, 10, 11, 11, 11, 12,
00508 9, 8, 8, 9, 9, 9, 9, 10,
00509 10, 10, 10, 11, 11, 12, 12, 12,
00510 9, 8, 9, 9, 9, 9, 10, 10,
00511 10, 11, 11, 11, 11, 12, 12, 12,
00512 10, 9, 9, 9, 10, 10, 10, 10,
00513 10, 11, 11, 11, 11, 12, 13, 12,
00514 10, 9, 9, 9, 10, 10, 10, 10,
00515 11, 11, 11, 11, 12, 12, 12, 13,
00516 11, 10, 9, 10, 10, 10, 11, 11,
00517 11, 11, 11, 11, 12, 12, 13, 13,
00518 11, 10, 10, 10, 10, 11, 11, 11,
00519 11, 12, 12, 12, 12, 12, 13, 13,
00520 12, 11, 11, 11, 11, 11, 11, 11,
00521 12, 12, 12, 12, 13, 13, 12, 13,
00522 12, 11, 11, 11, 11, 11, 11, 12,
00523 12, 12, 12, 12, 13, 13, 13, 13,
00524 };
00525
00526 const uint16_t mpa_huffcodes_16[256] = {
00527 0x0001, 0x0005, 0x000e, 0x002c, 0x004a, 0x003f, 0x006e, 0x005d,
00528 0x00ac, 0x0095, 0x008a, 0x00f2, 0x00e1, 0x00c3, 0x0178, 0x0011,
00529 0x0003, 0x0004, 0x000c, 0x0014, 0x0023, 0x003e, 0x0035, 0x002f,
00530 0x0053, 0x004b, 0x0044, 0x0077, 0x00c9, 0x006b, 0x00cf, 0x0009,
00531 0x000f, 0x000d, 0x0017, 0x0026, 0x0043, 0x003a, 0x0067, 0x005a,
00532 0x00a1, 0x0048, 0x007f, 0x0075, 0x006e, 0x00d1, 0x00ce, 0x0010,
00533 0x002d, 0x0015, 0x0027, 0x0045, 0x0040, 0x0072, 0x0063, 0x0057,
00534 0x009e, 0x008c, 0x00fc, 0x00d4, 0x00c7, 0x0183, 0x016d, 0x001a,
00535 0x004b, 0x0024, 0x0044, 0x0041, 0x0073, 0x0065, 0x00b3, 0x00a4,
00536 0x009b, 0x0108, 0x00f6, 0x00e2, 0x018b, 0x017e, 0x016a, 0x0009,
00537 0x0042, 0x001e, 0x003b, 0x0038, 0x0066, 0x00b9, 0x00ad, 0x0109,
00538 0x008e, 0x00fd, 0x00e8, 0x0190, 0x0184, 0x017a, 0x01bd, 0x0010,
00539 0x006f, 0x0036, 0x0034, 0x0064, 0x00b8, 0x00b2, 0x00a0, 0x0085,
00540 0x0101, 0x00f4, 0x00e4, 0x00d9, 0x0181, 0x016e, 0x02cb, 0x000a,
00541 0x0062, 0x0030, 0x005b, 0x0058, 0x00a5, 0x009d, 0x0094, 0x0105,
00542 0x00f8, 0x0197, 0x018d, 0x0174, 0x017c, 0x0379, 0x0374, 0x0008,
00543 0x0055, 0x0054, 0x0051, 0x009f, 0x009c, 0x008f, 0x0104, 0x00f9,
00544 0x01ab, 0x0191, 0x0188, 0x017f, 0x02d7, 0x02c9, 0x02c4, 0x0007,
00545 0x009a, 0x004c, 0x0049, 0x008d, 0x0083, 0x0100, 0x00f5, 0x01aa,
00546 0x0196, 0x018a, 0x0180, 0x02df, 0x0167, 0x02c6, 0x0160, 0x000b,
00547 0x008b, 0x0081, 0x0043, 0x007d, 0x00f7, 0x00e9, 0x00e5, 0x00db,
00548 0x0189, 0x02e7, 0x02e1, 0x02d0, 0x0375, 0x0372, 0x01b7, 0x0004,
00549 0x00f3, 0x0078, 0x0076, 0x0073, 0x00e3, 0x00df, 0x018c, 0x02ea,
00550 0x02e6, 0x02e0, 0x02d1, 0x02c8, 0x02c2, 0x00df, 0x01b4, 0x0006,
00551 0x00ca, 0x00e0, 0x00de, 0x00da, 0x00d8, 0x0185, 0x0182, 0x017d,
00552 0x016c, 0x0378, 0x01bb, 0x02c3, 0x01b8, 0x01b5, 0x06c0, 0x0004,
00553 0x02eb, 0x00d3, 0x00d2, 0x00d0, 0x0172, 0x017b, 0x02de, 0x02d3,
00554 0x02ca, 0x06c7, 0x0373, 0x036d, 0x036c, 0x0d83, 0x0361, 0x0002,
00555 0x0179, 0x0171, 0x0066, 0x00bb, 0x02d6, 0x02d2, 0x0166, 0x02c7,
00556 0x02c5, 0x0362, 0x06c6, 0x0367, 0x0d82, 0x0366, 0x01b2, 0x0000,
00557 0x000c, 0x000a, 0x0007, 0x000b, 0x000a, 0x0011, 0x000b, 0x0009,
00558 0x000d, 0x000c, 0x000a, 0x0007, 0x0005, 0x0003, 0x0001, 0x0003,
00559 };
00560
00561 const uint8_t mpa_huffbits_16[256] = {
00562 1, 4, 6, 8, 9, 9, 10, 10,
00563 11, 11, 11, 12, 12, 12, 13, 9,
00564 3, 4, 6, 7, 8, 9, 9, 9,
00565 10, 10, 10, 11, 12, 11, 12, 8,
00566 6, 6, 7, 8, 9, 9, 10, 10,
00567 11, 10, 11, 11, 11, 12, 12, 9,
00568 8, 7, 8, 9, 9, 10, 10, 10,
00569 11, 11, 12, 12, 12, 13, 13, 10,
00570 9, 8, 9, 9, 10, 10, 11, 11,
00571 11, 12, 12, 12, 13, 13, 13, 9,
00572 9, 8, 9, 9, 10, 11, 11, 12,
00573 11, 12, 12, 13, 13, 13, 14, 10,
00574 10, 9, 9, 10, 11, 11, 11, 11,
00575 12, 12, 12, 12, 13, 13, 14, 10,
00576 10, 9, 10, 10, 11, 11, 11, 12,
00577 12, 13, 13, 13, 13, 15, 15, 10,
00578 10, 10, 10, 11, 11, 11, 12, 12,
00579 13, 13, 13, 13, 14, 14, 14, 10,
00580 11, 10, 10, 11, 11, 12, 12, 13,
00581 13, 13, 13, 14, 13, 14, 13, 11,
00582 11, 11, 10, 11, 12, 12, 12, 12,
00583 13, 14, 14, 14, 15, 15, 14, 10,
00584 12, 11, 11, 11, 12, 12, 13, 14,
00585 14, 14, 14, 14, 14, 13, 14, 11,
00586 12, 12, 12, 12, 12, 13, 13, 13,
00587 13, 15, 14, 14, 14, 14, 16, 11,
00588 14, 12, 12, 12, 13, 13, 14, 14,
00589 14, 16, 15, 15, 15, 17, 15, 11,
00590 13, 13, 11, 12, 14, 14, 13, 14,
00591 14, 15, 16, 15, 17, 15, 14, 11,
00592 9, 8, 8, 9, 9, 10, 10, 10,
00593 11, 11, 11, 11, 11, 11, 11, 8,
00594 };
00595
00596 const uint16_t mpa_huffcodes_24[256] = {
00597 0x000f, 0x000d, 0x002e, 0x0050, 0x0092, 0x0106, 0x00f8, 0x01b2,
00598 0x01aa, 0x029d, 0x028d, 0x0289, 0x026d, 0x0205, 0x0408, 0x0058,
00599 0x000e, 0x000c, 0x0015, 0x0026, 0x0047, 0x0082, 0x007a, 0x00d8,
00600 0x00d1, 0x00c6, 0x0147, 0x0159, 0x013f, 0x0129, 0x0117, 0x002a,
00601 0x002f, 0x0016, 0x0029, 0x004a, 0x0044, 0x0080, 0x0078, 0x00dd,
00602 0x00cf, 0x00c2, 0x00b6, 0x0154, 0x013b, 0x0127, 0x021d, 0x0012,
00603 0x0051, 0x0027, 0x004b, 0x0046, 0x0086, 0x007d, 0x0074, 0x00dc,
00604 0x00cc, 0x00be, 0x00b2, 0x0145, 0x0137, 0x0125, 0x010f, 0x0010,
00605 0x0093, 0x0048, 0x0045, 0x0087, 0x007f, 0x0076, 0x0070, 0x00d2,
00606 0x00c8, 0x00bc, 0x0160, 0x0143, 0x0132, 0x011d, 0x021c, 0x000e,
00607 0x0107, 0x0042, 0x0081, 0x007e, 0x0077, 0x0072, 0x00d6, 0x00ca,
00608 0x00c0, 0x00b4, 0x0155, 0x013d, 0x012d, 0x0119, 0x0106, 0x000c,
00609 0x00f9, 0x007b, 0x0079, 0x0075, 0x0071, 0x00d7, 0x00ce, 0x00c3,
00610 0x00b9, 0x015b, 0x014a, 0x0134, 0x0123, 0x0110, 0x0208, 0x000a,
00611 0x01b3, 0x0073, 0x006f, 0x006d, 0x00d3, 0x00cb, 0x00c4, 0x00bb,
00612 0x0161, 0x014c, 0x0139, 0x012a, 0x011b, 0x0213, 0x017d, 0x0011,
00613 0x01ab, 0x00d4, 0x00d0, 0x00cd, 0x00c9, 0x00c1, 0x00ba, 0x00b1,
00614 0x00a9, 0x0140, 0x012f, 0x011e, 0x010c, 0x0202, 0x0179, 0x0010,
00615 0x014f, 0x00c7, 0x00c5, 0x00bf, 0x00bd, 0x00b5, 0x00ae, 0x014d,
00616 0x0141, 0x0131, 0x0121, 0x0113, 0x0209, 0x017b, 0x0173, 0x000b,
00617 0x029c, 0x00b8, 0x00b7, 0x00b3, 0x00af, 0x0158, 0x014b, 0x013a,
00618 0x0130, 0x0122, 0x0115, 0x0212, 0x017f, 0x0175, 0x016e, 0x000a,
00619 0x028c, 0x015a, 0x00ab, 0x00a8, 0x00a4, 0x013e, 0x0135, 0x012b,
00620 0x011f, 0x0114, 0x0107, 0x0201, 0x0177, 0x0170, 0x016a, 0x0006,
00621 0x0288, 0x0142, 0x013c, 0x0138, 0x0133, 0x012e, 0x0124, 0x011c,
00622 0x010d, 0x0105, 0x0200, 0x0178, 0x0172, 0x016c, 0x0167, 0x0004,
00623 0x026c, 0x012c, 0x0128, 0x0126, 0x0120, 0x011a, 0x0111, 0x010a,
00624 0x0203, 0x017c, 0x0176, 0x0171, 0x016d, 0x0169, 0x0165, 0x0002,
00625 0x0409, 0x0118, 0x0116, 0x0112, 0x010b, 0x0108, 0x0103, 0x017e,
00626 0x017a, 0x0174, 0x016f, 0x016b, 0x0168, 0x0166, 0x0164, 0x0000,
00627 0x002b, 0x0014, 0x0013, 0x0011, 0x000f, 0x000d, 0x000b, 0x0009,
00628 0x0007, 0x0006, 0x0004, 0x0007, 0x0005, 0x0003, 0x0001, 0x0003,
00629 };
00630
00631 const uint8_t mpa_huffbits_24[256] = {
00632 4, 4, 6, 7, 8, 9, 9, 10,
00633 10, 11, 11, 11, 11, 11, 12, 9,
00634 4, 4, 5, 6, 7, 8, 8, 9,
00635 9, 9, 10, 10, 10, 10, 10, 8,
00636 6, 5, 6, 7, 7, 8, 8, 9,
00637 9, 9, 9, 10, 10, 10, 11, 7,
00638 7, 6, 7, 7, 8, 8, 8, 9,
00639 9, 9, 9, 10, 10, 10, 10, 7,
00640 8, 7, 7, 8, 8, 8, 8, 9,
00641 9, 9, 10, 10, 10, 10, 11, 7,
00642 9, 7, 8, 8, 8, 8, 9, 9,
00643 9, 9, 10, 10, 10, 10, 10, 7,
00644 9, 8, 8, 8, 8, 9, 9, 9,
00645 9, 10, 10, 10, 10, 10, 11, 7,
00646 10, 8, 8, 8, 9, 9, 9, 9,
00647 10, 10, 10, 10, 10, 11, 11, 8,
00648 10, 9, 9, 9, 9, 9, 9, 9,
00649 9, 10, 10, 10, 10, 11, 11, 8,
00650 10, 9, 9, 9, 9, 9, 9, 10,
00651 10, 10, 10, 10, 11, 11, 11, 8,
00652 11, 9, 9, 9, 9, 10, 10, 10,
00653 10, 10, 10, 11, 11, 11, 11, 8,
00654 11, 10, 9, 9, 9, 10, 10, 10,
00655 10, 10, 10, 11, 11, 11, 11, 8,
00656 11, 10, 10, 10, 10, 10, 10, 10,
00657 10, 10, 11, 11, 11, 11, 11, 8,
00658 11, 10, 10, 10, 10, 10, 10, 10,
00659 11, 11, 11, 11, 11, 11, 11, 8,
00660 12, 10, 10, 10, 10, 10, 10, 11,
00661 11, 11, 11, 11, 11, 11, 11, 8,
00662 8, 7, 7, 7, 7, 7, 7, 7,
00663 7, 7, 7, 8, 8, 8, 8, 4,
00664 };
00665
00666 const HuffTable mpa_huff_tables[16] = {
00667 { 1, NULL, NULL },
00668 { 2, mpa_huffbits_1, mpa_huffcodes_1 },
00669 { 3, mpa_huffbits_2, mpa_huffcodes_2 },
00670 { 3, mpa_huffbits_3, mpa_huffcodes_3 },
00671 { 4, mpa_huffbits_5, mpa_huffcodes_5 },
00672 { 4, mpa_huffbits_6, mpa_huffcodes_6 },
00673 { 6, mpa_huffbits_7, mpa_huffcodes_7 },
00674 { 6, mpa_huffbits_8, mpa_huffcodes_8 },
00675 { 6, mpa_huffbits_9, mpa_huffcodes_9 },
00676 { 8, mpa_huffbits_10, mpa_huffcodes_10 },
00677 { 8, mpa_huffbits_11, mpa_huffcodes_11 },
00678 { 8, mpa_huffbits_12, mpa_huffcodes_12 },
00679 { 16, mpa_huffbits_13, mpa_huffcodes_13 },
00680 { 16, mpa_huffbits_15, mpa_huffcodes_15 },
00681 { 16, mpa_huffbits_16, mpa_huffcodes_16 },
00682 { 16, mpa_huffbits_24, mpa_huffcodes_24 },
00683 };
00684
00685 const uint8_t mpa_huff_data[32][2] = {
00686 { 0, 0 },
00687 { 1, 0 },
00688 { 2, 0 },
00689 { 3, 0 },
00690 { 0, 0 },
00691 { 4, 0 },
00692 { 5, 0 },
00693 { 6, 0 },
00694 { 7, 0 },
00695 { 8, 0 },
00696 { 9, 0 },
00697 { 10, 0 },
00698 { 11, 0 },
00699 { 12, 0 },
00700 { 0, 0 },
00701 { 13, 0 },
00702 { 14, 1 },
00703 { 14, 2 },
00704 { 14, 3 },
00705 { 14, 4 },
00706 { 14, 6 },
00707 { 14, 8 },
00708 { 14, 10 },
00709 { 14, 13 },
00710 { 15, 4 },
00711 { 15, 5 },
00712 { 15, 6 },
00713 { 15, 7 },
00714 { 15, 8 },
00715 { 15, 9 },
00716 { 15, 11 },
00717 { 15, 13 },
00718 };
00719
00720
00721
00722 static const uint8_t mpa_quad_codes[2][16] = {
00723 { 1, 5, 4, 5, 6, 5, 4, 4, 7, 3, 6, 0, 7, 2, 3, 1, },
00724 { 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, },
00725 };
00726
00727 static const uint8_t mpa_quad_bits[2][16] = {
00728 { 1, 4, 4, 5, 4, 6, 5, 6, 4, 5, 5, 6, 5, 6, 6, 6, },
00729 { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, },
00730 };
00731
00732
00733 const uint8_t band_size_long[9][22] = {
00734 { 4, 4, 4, 4, 4, 4, 6, 6, 8, 8, 10,
00735 12, 16, 20, 24, 28, 34, 42, 50, 54, 76, 158, },
00736 { 4, 4, 4, 4, 4, 4, 6, 6, 6, 8, 10,
00737 12, 16, 18, 22, 28, 34, 40, 46, 54, 54, 192, },
00738 { 4, 4, 4, 4, 4, 4, 6, 6, 8, 10, 12,
00739 16, 20, 24, 30, 38, 46, 56, 68, 84, 102, 26, },
00740 { 6, 6, 6, 6, 6, 6, 8, 10, 12, 14, 16,
00741 20, 24, 28, 32, 38, 46, 52, 60, 68, 58, 54, },
00742 { 6, 6, 6, 6, 6, 6, 8, 10, 12, 14, 16,
00743 18, 22, 26, 32, 38, 46, 52, 64, 70, 76, 36, },
00744 { 6, 6, 6, 6, 6, 6, 8, 10, 12, 14, 16,
00745 20, 24, 28, 32, 38, 46, 52, 60, 68, 58, 54, },
00746 { 6, 6, 6, 6, 6, 6, 8, 10, 12, 14, 16,
00747 20, 24, 28, 32, 38, 46, 52, 60, 68, 58, 54, },
00748 { 6, 6, 6, 6, 6, 6, 8, 10, 12, 14, 16,
00749 20, 24, 28, 32, 38, 46, 52, 60, 68, 58, 54, },
00750 { 12, 12, 12, 12, 12, 12, 16, 20, 24, 28, 32,
00751 40, 48, 56, 64, 76, 90, 2, 2, 2, 2, 2, },
00752 };
00753
00754 const uint8_t band_size_short[9][13] = {
00755 { 4, 4, 4, 4, 6, 8, 10, 12, 14, 18, 22, 30, 56, },
00756 { 4, 4, 4, 4, 6, 6, 10, 12, 14, 16, 20, 26, 66, },
00757 { 4, 4, 4, 4, 6, 8, 12, 16, 20, 26, 34, 42, 12, },
00758 { 4, 4, 4, 6, 6, 8, 10, 14, 18, 26, 32, 42, 18, },
00759 { 4, 4, 4, 6, 8, 10, 12, 14, 18, 24, 32, 44, 12, },
00760 { 4, 4, 4, 6, 8, 10, 12, 14, 18, 24, 30, 40, 18, },
00761 { 4, 4, 4, 6, 8, 10, 12, 14, 18, 24, 30, 40, 18, },
00762 { 4, 4, 4, 6, 8, 10, 12, 14, 18, 24, 30, 40, 18, },
00763 { 8, 8, 8, 12, 16, 20, 24, 28, 36, 2, 2, 2, 26, },
00764 };
00765
00766 const uint8_t mpa_pretab[2][22] = {
00767 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
00768 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 3, 3, 3, 2, 0 },
00769 };
00770
00771
00772 const float ci_table[8] = {
00773 -0.6, -0.535, -0.33, -0.185, -0.095, -0.041, -0.0142, -0.0037,
00774 };