videoeditorengine/mp3aacManipLib/MP3Gain/inc/mp3tables.h
changeset 0 951a5db380a0
equal deleted inserted replaced
-1:000000000000 0:951a5db380a0
       
     1 /*
       
     2 * Copyright (c) 2010 Ixonos Plc.
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of the "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - Initial contribution
       
    11 *
       
    12 * Contributors:
       
    13 * Ixonos Plc
       
    14 *
       
    15 * Description:
       
    16 *
       
    17 */
       
    18 
       
    19 
       
    20 /**************************************************************************
       
    21   mp3tables.cpp - Tables for layer III.
       
    22 
       
    23   Author(s): Juha Ojanpera
       
    24   Modified: Ali Ahmaniemi
       
    25   Copyright (c) 1999-2004 by Nokia Research Center, Speech and Audio Systems.
       
    26   *************************************************************************/
       
    27 
       
    28 #ifndef MP3TABLES_H
       
    29 #define MP3TABLES_H
       
    30 
       
    31 /*-- Project Headers. --*/
       
    32 #include "mpaud.h"
       
    33 
       
    34 /*
       
    35    Purpose:     Grouping of the scalefactors of long and short blocks.
       
    36    Explanation: - */
       
    37 const SFBITS_DATA sfbtable = {{0, 6, 11, 16, 21}, {0, 6, 12} };
       
    38 
       
    39 /*
       
    40    Purpose:     Number of bits used for the scalefactors.
       
    41    Explanation: - */
       
    42 const int16 slen[2][16] = {
       
    43 {0, 0, 0, 0, 3, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4},
       
    44 {0, 1, 2, 3, 0, 1, 2, 3, 1, 2, 3, 1, 2, 3, 2, 3}};
       
    45 
       
    46 /*
       
    47    Purpose:     Number of scalefactor bands for MPEG-2 LSF and MPEG-2.5
       
    48                 bit streams.
       
    49    Explanation: - */
       
    50 const uint8 nr_of_sfb_block[6][3][4] = {
       
    51 {{ 6,  5, 5, 5}, { 9,  9,  9, 9}, { 6,  9,  9, 9}},
       
    52 {{ 6,  5, 7, 3}, { 9,  9, 12, 6}, { 6,  9, 12, 6}},
       
    53 {{11, 10, 0, 0}, {18, 18,  0, 0}, {15, 18,  0, 0}},
       
    54 {{ 7,  7, 7, 0}, {12, 12, 12, 0}, { 6, 15, 12, 0}},
       
    55 {{ 6,  6, 6, 3}, {12,  9,  9, 6}, { 6, 12,  9, 6}},
       
    56 {{ 8,  8, 5, 0}, {15, 12,  9, 0}, { 6, 18,  9, 0}}};
       
    57 
       
    58 /*
       
    59    Purpose:     Length of each Huffman table.
       
    60    Explanation: - */
       
    61 const int16 huf_tree_len[] =
       
    62 {0, 4, 9, 9, 0, 16, 16, 36, 36, 36, 64, 64, 64, 256, 0, 256, 256, 256, 256, 256,
       
    63  256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 16};
       
    64 
       
    65 /*
       
    66    Purpose:     Number of extra bits for each Huffman table.
       
    67    Explanation: - */
       
    68 const int16 linbits[] =
       
    69 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 6, 8, 10, 13, 4, 5,
       
    70  6, 7, 8, 9, 11, 13, 0, 0};
       
    71 
       
    72 
       
    73 /*
       
    74   The following tables contain all the necessary information needed for
       
    75   Huffman decoding of MPEG-1/MPEG-2 Layer III compliant stream.
       
    76 
       
    77   Tables 'huff_symbolsxx' contain the x and y values and the length of the
       
    78   corresponding Huffman codewords. The first 5 bits hold the length of the
       
    79   Huffman codeword. Next 4 bits hold y-value and the remaining bits hold the
       
    80   x-value. The length is actually the difference between the current and the
       
    81   previous length.
       
    82 
       
    83   Tables 'huff_cwordsxx' hold the Huffman codewords. Note these values are
       
    84   sorted according to their length.
       
    85 
       
    86   For more information see function 'decode_codeword()'.
       
    87 */
       
    88 
       
    89 /* Table 1 */
       
    90 const int16 huff_symbols1[] = {1, 513, 33, 544};
       
    91 const int16 huff_cwords1[] = {1, 1, 1, 0};
       
    92 
       
    93 /* Table 2 */
       
    94 const int16 huff_symbols2[] = {1, 34, 512, 544, 578, 1024, 1056, 65, 1088};
       
    95 const int16 huff_cwords2[] = {1, 2, 3, 1, 1, 3, 2, 1, 0};
       
    96 
       
    97 /* Table 3 */
       
    98 const int16 huff_symbols3[] = {2, 32, 544, 513, 578, 1024, 1056, 65, 1088};
       
    99 const int16 huff_cwords3[] = {3, 2, 1, 1, 1, 3, 2, 1, 0};
       
   100 
       
   101 /* Table 5 */
       
   102 const int16 huff_symbols5[] = {1, 34, 512, 544, 67, 576, 1024, 1056, 1568, 97,
       
   103                    608, 1088, 1536, 1600, 1121, 1632};
       
   104 const int16 huff_cwords5[] = {1, 2, 3, 1, 6, 4, 7, 5, 1, 5, 4, 7, 6, 1, 1, 0};
       
   105 
       
   106 /* Table 6 */
       
   107 const int16 huff_symbols6[] = {546, 1, 32, 512, 577, 1024, 1056, 65, 608, 1088,
       
   108                    1568, 1121, 1536, 1600, 97, 1632};
       
   109 const int16 huff_cwords6[] = {2, 7, 3, 6, 3, 5, 4, 5, 2, 4, 3, 1, 3, 2, 1, 0};
       
   110 
       
   111 /* Table 7 */
       
   112 const int16 huff_symbols7[] =
       
   113 {1, 34, 512, 545, 1057, 65,576, 1024, 609, 640, 1088, 1536, 1568, 2048, 2080,
       
   114  97, 128, 672, 1120, 1152, 1600, 2112, 2560, 2592, 161, 1184, 1632, 1664, 1696,
       
   115  2144, 2176, 2624, 2209, 2656, 2688, 2720};
       
   116 const int16 huff_cwords7[] =
       
   117 {1, 2, 3, 3, 4, 10, 7, 11, 10, 5, 13, 12, 11, 7, 6, 19, 16, 3, 17, 8, 18, 9, 6,
       
   118  4, 10, 4, 15, 11, 2, 14, 3, 5, 1, 3, 2, 0};
       
   119 
       
   120 /* Table 8 */
       
   121 const int16 huff_symbols8[] =
       
   122 {2, 544, 33, 512, 577, 1056, 66, 1024, 1088, 2081, 97, 128, 608, 640, 672, 1120,
       
   123  1152, 1536, 1568, 1600, 2048, 2112, 2592, 161, 1184, 1632, 1664, 2144, 2560,
       
   124  2624, 2656, 1697, 2176, 2208, 2689, 2720};
       
   125 const int16 huff_cwords8[] =
       
   126 {3, 1, 4, 5, 2, 3, 6, 7, 5, 5, 18, 12, 16, 9, 3, 14, 7, 19, 17, 15, 13, 8, 4, 5,
       
   127  3, 13, 10, 11, 12, 4, 1, 4, 5, 1, 1, 0};
       
   128 
       
   129 /* Table 9 */
       
   130 const int16 huff_symbols9[] =
       
   131 {3, 32, 512, 544, 577, 1024, 1056, 65, 608, 1088, 1568, 97, 640, 1120, 1536,
       
   132  1600, 2080, 1153, 1632, 1664, 2048, 2112, 2144, 2592, 129, 672, 1184, 1696,
       
   133  2176, 2560, 2624, 2656, 161, 2208, 2688, 2720};
       
   134 const int16 huff_cwords9[] =
       
   135 {7, 5, 6, 4, 5, 7, 6, 9, 5, 8, 6, 14, 6, 8, 15, 9, 7, 8, 10, 5, 11, 9, 6, 4, 15,
       
   136  7, 5, 1, 4, 14, 6, 2, 7, 1, 6, 0};
       
   137 
       
   138 /* Table 10 */
       
   139 const int16 huff_symbols10[] =
       
   140 {1, 34, 512, 545, 66, 576, 1024, 1056, 609, 1088, 1536, 1568, 97, 640, 704, 736,
       
   141  1120, 1600, 2048, 2080, 3072, 3104, 3616, 129, 160, 192, 672, 1152, 1216, 1248,
       
   142  1632, 1728, 2112, 2560, 2592, 3136, 3584, 3648, 225, 1184, 1664, 1696, 1760,
       
   143  2144, 2176, 2208, 2240, 2272, 2624, 2656, 2752, 3168, 3200, 3232, 3680, 3712,
       
   144  2689, 2720, 2784, 3264, 3296, 3744, 3776, 3808};
       
   145 const int16 huff_cwords10[] =
       
   146 {1, 2, 3, 3, 10, 8, 11, 9, 12, 15, 14, 13, 23, 18, 12, 7, 21, 22, 20, 19, 14,
       
   147  13, 8, 35, 30, 12, 21, 32, 19, 6, 34, 18, 33, 31, 22, 10, 9, 7, 17, 40, 46, 23,
       
   148  7, 47, 27, 22, 9, 3, 41, 26, 5, 11, 16, 6, 8, 4, 21, 20, 3, 5, 1, 4, 2, 0};
       
   149 
       
   150 /* Table 11 */
       
   151 const int16 huff_symbols11[] =
       
   152 {2, 33, 512, 544, 577, 65, 1024, 1056, 609, 1088, 1568, 97, 704, 1120, 1536,
       
   153  1600, 3104, 3136, 3616, 129, 192, 640, 672, 736, 1152, 1216, 1248, 1664, 1728,
       
   154  2048, 2080, 2112, 2560, 2592, 3072, 3168, 3584, 3648, 161, 224, 1184, 1632,
       
   155  1760, 2144, 2176, 2240, 2624, 3200, 3680, 1697, 2208, 2272, 2656, 2688, 2752,
       
   156  3232, 3264, 3296, 3712, 3744, 3776, 3808, 2721, 2784};
       
   157 const int16 huff_cwords11[] =
       
   158 {3, 4, 5, 3, 4, 10, 11, 7, 10, 13, 11, 24, 11, 18, 25, 19, 12, 9, 4, 34, 21, 32,
       
   159  17, 10, 30, 20, 5, 27, 12, 35, 33, 31, 28, 26, 14, 13, 11, 6, 33, 15, 31, 59,
       
   160  5, 58, 30, 7, 32, 14, 6, 18, 16, 5, 19, 17, 8, 9, 4, 1, 6, 3, 2, 0, 15, 14};
       
   161 
       
   162 /* Table 12 */
       
   163 const int16 huff_symbols12[] =
       
   164 {35, 512, 544, 1, 576, 1056, 65, 608, 1024, 1088, 1568, 1121, 1536, 1600, 1632,
       
   165  2080, 97, 640, 672, 1152, 1216, 1664, 2048, 2112, 2144, 2592, 3104, 3136, 129,
       
   166  704, 736, 1184, 1248, 1696, 1728, 1760, 2176, 2208, 2240, 2560, 2624, 2656,
       
   167  2688, 2752, 3072, 3168, 3200, 3616, 3648, 161, 192, 224, 2272, 2720, 2784,
       
   168  3232, 3264, 3584, 3680, 3712, 3744, 3776, 3297, 3808};
       
   169 const int16 huff_cwords12[] =
       
   170 {6, 7,  5,  9,  6, 7, 16, 9, 17, 11, 10, 14, 17, 15, 12, 13, 33, 23, 16, 21, 10,
       
   171  18, 32, 22, 19, 17, 12, 11, 41, 26, 11, 30, 7,  28, 14, 5, 18, 16, 9, 40, 31,
       
   172  29, 17, 4, 27, 15, 10, 12, 8, 39, 38, 26, 5, 13, 2, 7, 4, 27, 12, 6, 3, 1, 1,
       
   173  0};
       
   174 
       
   175 /* Table 13 */
       
   176 const int16 huff_symbols13[] =
       
   177 {1, 514, 33, 544, 66, 576, 1024, 1056, 97, 608, 1088, 1536, 1568, 2080, 129,
       
   178  640, 672, 1120, 1600, 2048, 2592, 4128, 161, 192, 256, 704, 736, 768, 800,
       
   179  1152, 1184, 1280, 1632, 1664, 2112, 2144, 2560, 2624, 3072, 3104, 3616, 4096,
       
   180  4160, 4640, 225, 288, 832, 864, 1216, 1248, 1312, 1344, 1696, 1728, 1760, 1792,
       
   181  2176, 2208, 2304, 2656, 2688, 2720, 3136, 3168, 3584, 3648, 4192, 4224, 4608,
       
   182  4672, 4704, 5120, 5152, 5184, 5664, 5696, 321, 352, 896, 1376, 1408, 1824,
       
   183  1856, 1888, 1920, 2240, 2272, 2336, 2368, 2752, 2784, 2816, 2848, 2912, 3200,
       
   184  3232, 3264, 3296, 3328, 3680, 3712, 3744, 4256, 4288, 4736, 4768, 4800, 5216,
       
   185  5248, 5632, 5728, 6144, 6176, 6208, 6688, 385, 416, 928, 960, 992, 1440, 1952,
       
   186  2400, 2432, 2880, 3360, 3392, 3424, 3776, 3808, 3840, 3872, 4320, 4352, 4384,
       
   187  4416, 4864, 5280, 5312, 5376, 5760, 5792, 5824, 5856, 6240, 6272, 6336, 6656,
       
   188  6720, 7200, 7232, 7680, 7712, 449, 480, 1472, 1504, 1984, 2016, 2464, 2496,
       
   189  2944, 2976, 3456, 3488, 3904, 3936, 3968, 4448, 4480, 4832, 4896, 4928, 5344,
       
   190  5408, 5472, 5888, 5920, 5952, 6304, 6368, 6752, 6784, 6816, 7168, 7264, 7296,
       
   191  7328, 7744, 2529, 3008, 3040, 3520, 3552, 4000, 4512, 4960, 4992, 5024, 5440,
       
   192  5504, 5984, 6400, 6432, 6848, 6880, 6912, 6944, 6976, 7392, 7424, 7776, 7808,
       
   193  7840, 7904, 4545, 4576, 5088, 5536, 6016, 6048, 6080, 6464, 6496, 6528, 7008,
       
   194  7072, 7360, 7488, 7520, 7552, 7872, 7936, 7968, 4033, 4064, 5056, 5568, 6112,
       
   195  6560, 6592, 6624, 7040, 7104, 7136, 7616, 7648, 8000, 8032, 8160, 5601, 7456,
       
   196  7584, 8097, 8065, 8128};
       
   197 const int16 huff_cwords13[] =
       
   198 {1, 3, 5, 4, 14, 12, 15, 13, 21, 19, 23, 22, 20, 16, 34, 31, 26, 36, 37, 35, 27,
       
   199  20, 51, 46, 42, 44, 33, 31, 24, 59, 49, 29, 61, 56, 60, 57, 58, 50, 47, 45, 34,
       
   200  43, 30, 25, 71, 52, 32, 24, 77, 65, 40, 30, 79, 73, 64, 43, 97, 75, 54, 96, 76,
       
   201  70, 78, 74, 72, 56, 44, 55, 53, 41, 37, 35, 33, 31, 25, 23, 68, 52, 31, 40, 27,
       
   202  76, 56, 37, 26, 114, 91, 73, 55, 93, 84, 77, 58, 29, 115, 94, 90, 79, 69, 95,
       
   203  92, 85, 78, 72, 44, 59, 54, 57, 42, 53, 38, 34, 32, 28, 21, 67, 44, 35, 22, 14,
       
   204  33, 31, 41, 48, 79, 83, 71, 50, 91, 90, 86, 73, 87, 78, 61, 46, 66, 82, 72, 47,
       
   205  70, 60, 51, 36, 39, 49, 30, 45, 34, 23, 20, 16, 15, 43, 19, 42, 16, 25, 14, 53,
       
   206  23, 74, 49, 59, 38, 77, 65, 51, 54, 37, 81, 76, 57, 80, 58, 21, 55, 26, 34, 75,
       
   207  52, 64, 56, 50, 48, 39, 36, 35, 17, 24, 41, 17, 36, 15, 44, 30, 54, 37, 18, 55,
       
   208  22, 23, 48, 40, 49, 45, 31, 19, 12, 21, 16, 27, 25, 20, 11, 20, 16, 11, 26, 27,
       
   209  14, 9, 52, 28, 18, 15, 7, 53, 13, 10, 6, 29, 17, 12, 43, 42, 39, 38, 7, 17, 9,
       
   210  5, 10, 6, 3, 4, 2, 16, 8, 1, 22, 23, 1, 1, 1, 0};
       
   211 
       
   212 /* Table 15 */
       
   213 const int16 huff_symbols15[] =
       
   214 {3, 544, 33, 512, 65, 576, 1024, 1056, 1088, 609, 1120, 1536, 1568, 1600, 2080,
       
   215  97, 128, 640, 672, 1152, 1184, 1632, 1664, 2048, 2112, 2144, 2592, 2624, 3104,
       
   216  161, 704, 736, 768, 1216, 1248, 1280, 1696, 1728, 2176, 2208, 2560, 2656, 2688,
       
   217  2720, 3136, 3168, 3200, 3616, 3648, 4128, 4160, 4640, 193, 224, 256, 800, 832,
       
   218  1312, 1344, 1760, 1792, 1824, 2240, 2272, 2304, 2336, 2752, 2784, 2816, 2848,
       
   219  3072, 3232, 3264, 3296, 3328, 3584, 3680, 3712, 3744, 3776, 4096, 4192, 4224,
       
   220  4256, 4288, 4608, 4672, 4704, 4736, 4768, 5152, 5184, 5216, 5664, 5696, 5728,
       
   221  6208,  289, 320, 864, 896, 928, 1376, 1408, 1856, 1888, 1920, 2368, 2400, 2432,
       
   222  2880, 2912, 3360, 3392, 3424, 3808, 3840, 3872, 3904, 3936, 4320, 4352, 4384,
       
   223  4416, 4800, 4832, 4864, 5120, 5248, 5280, 5312, 5344, 5376, 5632, 5760, 5792,
       
   224  5824, 5856, 6176, 6240, 6272, 6304, 6688, 6720, 6752, 6784, 353, 384, 416, 960,
       
   225  992, 1440, 1472, 1504, 1952, 1984, 2016, 2464, 2496, 2528, 2944, 2976, 3008,
       
   226  3456, 3488, 3968, 4000, 4032, 4448, 4480, 4896, 4928, 4960, 4992, 5408, 5440,
       
   227  5472, 5504, 5888, 5920, 5952, 5984, 6144, 6336, 6368, 6400, 6432, 6464, 6496,
       
   228  6656, 6816, 6848, 6880, 6912, 7200, 7232, 7264, 7296, 7328, 7360, 7392, 7712,
       
   229  7744, 7776, 7808, 7840, 7872, 449, 3040, 3520, 3552, 4064, 4512, 4544, 4576,
       
   230  5024, 5056, 5088, 5536, 5600, 6016, 6048, 6080, 6528, 6560, 6944, 6976, 7008,
       
   231  7040, 7072, 7168, 7424, 7456, 7488, 7520, 7616, 7680, 7904, 7936, 7968, 8000,
       
   232  8032, 481, 5568, 6112, 6592, 6624, 7104, 7136, 7552, 7584, 7648, 8064, 8096,
       
   233  8128, 8160};
       
   234 const int16 huff_cwords15[] =
       
   235 {7, 5, 12, 13, 18, 16, 19, 17, 15, 27, 24, 29, 28, 25, 22, 53, 47, 46, 36, 41,
       
   236  34, 43, 39, 52, 42, 40, 37, 35, 32, 76, 61, 51, 42, 59, 48, 40, 63, 55, 67, 57,
       
   237  77, 66, 58, 52, 60, 56, 50, 53, 49, 43, 41, 34, 124, 108, 89, 70, 52, 64, 50,
       
   238  93, 76, 59, 95, 79, 72, 57, 91, 74, 62, 48, 125, 92, 78, 65, 55, 109, 94, 88,
       
   239  75, 66, 90, 77, 73, 63, 56, 71, 67, 60, 58, 49, 53, 51, 47, 42, 40, 37,  30,
       
   240  123, 108, 83, 65, 41, 78, 62, 93, 72, 54, 89, 69, 49, 79, 63, 87, 71, 51, 122,
       
   241  91, 73, 56, 42, 92, 77, 66, 47, 88, 76,  67,  109, 90, 82, 58, 57, 48, 86, 70,
       
   242  64, 52, 43, 68, 55, 50, 46, 44, 39, 38, 34, 119, 107, 81, 59, 36, 80, 56, 33,
       
   243  75, 50, 29, 66, 46, 27, 90, 62, 40, 73, 51, 64, 44, 21, 67, 48, 106, 71, 54,
       
   244  38, 72, 57, 41, 23, 70, 55, 42, 25, 118, 74, 65, 49, 39, 24, 16, 91, 63, 52,
       
   245  45, 31, 60, 58, 53, 47, 43, 32, 22, 37, 34, 30, 28, 20, 17, 122, 38, 70, 30,
       
   246  25, 53, 36, 20, 39, 23, 15, 27, 9, 29, 18, 11, 22, 13, 52, 28, 19, 14, 8, 123,
       
   247  37, 24, 17, 12, 2, 71, 26, 21, 16, 10, 6, 63, 62, 11, 14, 7, 9, 3, 15, 10, 1,
       
   248  8, 6, 2, 0};
       
   249 
       
   250 /* Table 16 */
       
   251 const int16 huff_symbols16[] =
       
   252 {1, 514, 33, 544, 66, 576, 1024, 1056, 609, 1088, 1568, 97, 640, 992, 1120,
       
   253  1536, 1600, 2080, 2592, 7712, 7744, 8160, 129, 160, 480, 672, 704, 736, 1152,
       
   254  1184, 1504, 1632, 1664, 2048, 2112, 2144, 2528, 2560, 2624, 2656, 3104, 3136,
       
   255  3616, 7680, 7776, 7808, 193, 224, 768, 800, 832, 1216, 1248, 1312, 1696, 1728,
       
   256  1760, 2016, 2176, 2208, 2688, 3040, 3072, 3168, 3552, 3584, 3648, 3680, 4064,
       
   257  4096, 4128, 4160, 4576, 4640, 4672, 5184, 5600, 7840, 7872, 7904, 257, 288,
       
   258  320, 864, 928, 1280, 1344, 1376, 1408, 1792, 1824, 2240, 2272, 2304, 2720,
       
   259  2752, 2816, 3200, 3232, 3264, 3296, 3712, 3744, 3776, 4192, 4224, 4256, 4608,
       
   260  4704, 4736, 5088, 5120, 5152, 5216, 5664, 5696, 5728, 6112, 6624, 7136, 7232,
       
   261  7648, 7936, 7968, 8000, 8032, 8064, 8096, 8128, 353, 384, 416, 896, 960, 1440,
       
   262  1472, 1856, 1888, 1920, 2336, 2368, 2400, 2784, 2848, 2880, 3328, 3360, 3392,
       
   263  3424, 3808, 3840, 4288, 4320, 4768, 4800, 5248, 5280, 5312, 5344, 5632, 5760,
       
   264  5792, 6144, 6176, 6208, 6240, 6272, 6688, 6720, 6752, 7264, 449, 1952, 1984,
       
   265  2432, 2464, 2496, 2912, 2944, 2976, 3456, 3488, 3872, 3904, 3936, 3968, 4352,
       
   266  4384, 4416, 4448, 4832, 4864, 4896, 4928, 4992, 5056, 5376, 5824, 6048, 6304,
       
   267  6336, 6368, 6400, 6784, 6816, 7168, 7200, 7360, 3009, 3520, 4480, 4512, 4544,
       
   268  4960, 5024, 5408, 5440, 5472, 5568, 5856, 5888, 5920, 5952, 5984, 6016, 6080,
       
   269  6464, 6496, 6528, 6560, 6656, 6848, 6880, 6912, 7296, 7328, 7392, 7424, 7616,
       
   270  4001, 4032, 5504, 5536, 6432, 6976, 7008, 7040, 7104, 7456, 7520, 7584, 6593,
       
   271  6944, 7488, 7073, 7552};
       
   272 const int16 huff_cwords16[] =
       
   273 {1, 3, 5, 4, 14, 12, 15, 13, 20, 23, 21, 44, 35, 9, 38, 45, 39, 36, 30, 10, 7,
       
   274  3, 74, 63, 17, 62, 53, 47, 67, 58, 16, 69, 64, 75, 68, 65, 9, 66, 59, 56, 54,
       
   275  52, 48, 12, 11, 10, 110, 93, 83, 75, 68, 103, 90, 72, 114, 99, 87, 26, 115,
       
   276  101, 102, 16, 111, 100, 10, 98, 91, 88, 8, 85, 84, 81, 7, 76, 73, 67, 4, 17,
       
   277  11, 9, 172, 149, 138, 119, 107, 161, 127, 117, 110, 158, 140, 179, 164, 155,
       
   278  185, 173, 142, 184, 178, 160, 133, 165, 157, 148, 159, 156, 143, 154, 141, 131,
       
   279  11, 139, 129, 125, 120, 118, 115, 6, 4, 2, 102, 0, 13, 12, 10, 7, 5, 3, 1, 242,
       
   280  225, 195, 201, 207, 209, 206, 252, 212, 199, 264, 246, 226, 265, 253, 232, 257,
       
   281  244, 228, 217, 261, 248, 260, 249, 256, 245, 247, 233, 229, 219, 243, 227, 223,
       
   282  202, 224, 222, 218, 216, 211, 210, 208, 187, 376, 387, 365, 395, 382, 362, 400,
       
   283  388, 378, 385, 366, 407, 397, 372, 380, 427, 401, 392, 383, 426, 406, 394, 384,
       
   284  359, 352, 393, 396, 223, 389, 386, 381, 364, 370, 379, 377, 369, 358, 445, 715,
       
   285  727, 713, 708, 735, 710, 743, 737, 720, 439, 746, 742, 736, 721, 712, 706, 436,
       
   286  443, 707, 440, 437, 747, 734, 723, 714, 726, 722, 711, 709, 434, 889, 884, 885,
       
   287  882, 888, 883, 877, 876, 865, 866, 871, 870, 1728, 1735, 1734, 3459, 3458};
       
   288 
       
   289 /* Table 24 */
       
   290 const int16 huff_symbols24[] =
       
   291 {4, 32, 512, 544, 8160, 577, 1056, 65, 608, 1024, 1088, 1568, 97, 640, 1120,
       
   292  1152, 1504, 1536, 1600, 1632, 2016, 2080, 2112, 2528, 2592, 3040, 3552, 7712,
       
   293  7744, 7776, 7808, 7840, 7872, 7904, 7936, 7968, 8000, 129, 672, 704, 992, 1184,
       
   294  1216, 1664, 1696, 1728, 2048, 2144, 2176, 2208, 2240, 2624, 2656, 2688, 2720,
       
   295  3104, 3136, 3168, 3200, 3616, 3648, 3680, 4064, 4576, 5088, 5600, 6112, 6624,
       
   296  7136, 7648, 7680, 8032, 8064, 8096, 8128, 161, 192, 480, 736, 768, 800, 1248,
       
   297  1280, 1312, 1344, 1760, 1792, 1824, 1856, 2272, 2304, 2336, 2560, 2752, 2784,
       
   298  2816, 2848, 3072, 3232, 3264, 3296, 3328, 3712, 3744, 3776, 3808, 4128, 4160,
       
   299  4192, 4224, 4256, 4288, 4320, 4352, 4640, 4672, 4704, 4736, 4768, 4800, 5152,
       
   300  5184, 5216, 5248, 5696, 5728, 5760, 225, 256, 832, 864, 896, 928, 960, 1376,
       
   301  1408, 1440, 1888, 1920, 1952, 1984, 2368, 2400, 2432, 2464, 2880, 2912, 2944,
       
   302  2976, 3008, 3360, 3392, 3424, 3456, 3488, 3584, 3840, 3872, 3904, 3936, 3968,
       
   303  4096, 4384, 4416, 4448, 4480, 4608, 4832, 4864, 4896, 4928, 4960, 5280, 5312,
       
   304  5344, 5376, 5408, 5440, 5664, 5792, 5824, 5856, 5888, 5920, 5952, 6176, 6208,
       
   305  6240, 6272, 6304, 6336, 6368, 6400, 6432, 6688, 6720, 6752, 6784, 6816, 6848,
       
   306  6880, 7200, 7232, 7264, 7296, 7328, 7360, 289, 320, 352, 384, 416,  1472, 2496,
       
   307  3520, 4000, 4032, 4512, 4544, 4992, 5024, 5056, 5120, 5472, 5504, 5536, 5568,
       
   308  5632, 5984, 6016, 6048, 6080, 6144, 6464, 6496, 6528, 6560, 6592, 6656, 6912,
       
   309  6944, 6976, 7008, 7040, 7072, 7104, 7392, 7424, 7456, 7488, 7520, 7552, 7584,
       
   310  7616, 449, 7168};
       
   311 const int16 huff_cwords24[] =
       
   312 {15, 13, 14, 12, 3, 21, 22, 46, 38, 47, 41, 39, 80, 71, 74, 68, 18, 81, 75, 70,
       
   313  16, 72, 69, 14, 66, 12, 10, 20, 19, 17, 15, 13, 11, 9, 7, 6, 4, 146, 130, 122,
       
   314  42, 128, 120, 134, 125, 116, 147, 135, 127, 118, 112, 129, 126, 119, 114, 123,
       
   315  121, 117, 113, 115, 111, 109, 17, 16, 11, 10, 6, 4, 2, 0, 43, 7, 5, 3, 1, 262,
       
   316  248, 88, 216, 209, 198, 221, 207, 194, 182, 220, 204, 190, 178, 210, 200, 188,
       
   317  263, 214, 202, 192, 180, 249, 215, 206, 195, 185, 211, 203, 196, 187, 212, 208,
       
   318  205, 201, 193, 186, 177, 169, 199, 197, 191, 189, 181, 174, 184, 183, 179, 175,
       
   319  171, 168, 164, 434, 426, 327, 345, 319, 297, 279, 340, 315, 295, 325, 311, 293,
       
   320  271, 352, 323, 306, 285, 341, 317, 301, 281, 262, 347, 330, 308, 291, 272, 435,
       
   321  353, 332, 313, 298, 283, 427, 320, 303, 286, 268, 335, 333, 321, 305, 289, 275,
       
   322  344, 331, 314, 304, 290, 277, 346, 318, 309, 299, 287, 276, 263, 322, 316, 312,
       
   323  307, 302, 292, 284, 269, 261, 300, 296, 294, 288, 282, 273, 266, 280, 278, 274,
       
   324  267, 264, 259, 669, 653, 649, 621, 517, 541, 540, 520, 531, 381, 514, 377, 521,
       
   325  379, 371, 668, 530, 383, 373, 366, 652, 513, 375, 368, 362, 648, 512, 376, 370,
       
   326  364, 359, 620, 515, 380, 374, 369, 365, 361, 357, 382, 378, 372, 367, 363, 360,
       
   327  358, 356, 1032, 1033};
       
   328 
       
   329 /* Table 32 */
       
   330 const int16 huff_symbols32[] =
       
   331 {1, 35, 64,  128, 256, 97, 192, 288, 320, 384, 161, 224, 352, 416, 448, 480};
       
   332 const int16 huff_cwords32[] = {1, 5, 4, 6, 7, 5, 4, 3, 6, 7, 5, 4, 0, 2, 3, 1};
       
   333 
       
   334 /*
       
   335    Purpose:     Pre-emphasis table.
       
   336    Explanation: - */
       
   337 const uint8 pretab[22] = {0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,2,2,3,3,3,2,0};
       
   338 
       
   339 /*
       
   340    Purpose:     Scalefactor band boundaries.
       
   341    Explanation: - */
       
   342 const SFBAND_DATA sfBandIndex[9] = {{
       
   343   /* MPEG-2 LSF */
       
   344 {0,6,12,18,24,30,36,44,54,66,80,96,116,140,168,200,238,284,336,396,464,522,576},
       
   345 {0,4,8,12,18,24,32,42,56,74,100,132,174,192}}, /* 22050 Hz */
       
   346 {
       
   347 {0,6,12,18,24,30,36,44,54,66,80,96,114,136,162,194,232,278,330,394,464,540,576},
       
   348 {0,4,8,12,18,26,36,48,62,80,104,136,180,192}}, /* 24000 Hz */
       
   349 {
       
   350 {0,6,12,18,24,30,36,44,54,66,80,96,116,140,168,200,238,284,336,396,464,522,576},
       
   351 {0,4,8,12,18,26,36,48,62,80,104,134,174,192}}, /* 16000 Hz */
       
   352 {
       
   353   /* MPEG-1 */
       
   354 {0,4,8,12,16,20,24,30,36,44,52,62,74,90,110,134,162,196,238,288,342,418,576},
       
   355 {0,4,8,12,16,22,30,40,52,66,84,106,136,192}}, /* 44100 Hz */
       
   356 {
       
   357 {0,4,8,12,16,20,24,30,36,42,50,60,72,88,106,128,156,190,230,276,330,384,576},
       
   358   {0,4,8,12,16,22,28,38,50,64,80,100,126,192}}, /* 48000 Hz */
       
   359 {
       
   360 {0,4,8,12,16,20,24,30,36,44,54,66,82,102,126,156,194,240,296,364,448,550,576},
       
   361   {0,4,8,12,16,22,30,42,58,78,104,138,180,192}}, /* 32000 Hz */
       
   362 {
       
   363   /* MPEG-2.5 */
       
   364 {0,6,12,18,24,30,36,44,54,66,80,96,116,140,168,200,238,284,336,396,464,522,576},
       
   365 {0,4,8,12,18,26,36,48,62,80,104,134,174,192}}, /* 11025 Hz */
       
   366 {
       
   367 {0,6,12,18,24,30,36,44,54,66,80,96,116,140,168,200,238,284,336,396,464,522,576},
       
   368   {0,4,8,12,18,26,36,48,62,80,104,134,174,192}}, /* 12000 Hz */
       
   369 {
       
   370 {0,12,24,36,48,60,72,88,108,132,160,192,232,280,336,400,476,566,568,570,572,574,576},
       
   371   {0,8,16,24,36,52,72,96,124,160,162,164,166,192}}}; /* 8000 Hz */
       
   372 
       
   373 /* Frame length of each sampling frequency. */
       
   374 const int32 framelength[6] = {26, 24, 36, 52, 48, 72};
       
   375 
       
   376 const int32 s_freq[3][4] = { {22050, 24000, 16000, 0},  {44100L, 48000L, 32000, 0},
       
   377                {11025, 12000, 8000, 0}};
       
   378 
       
   379 const int16 bitrate[2][15] = {
       
   380 /* Bit rates for MPEG-2 LSF. */
       
   381 {  0,   8,  16,  24,  32,  40,  48,  56,  64,  80,  96, 112, 128, 144, 160},
       
   382 /* Bit rates for MPEG-1. */
       
   383 {  0,  32,  40,  48,  56,  64,  80,  96, 112, 128, 160, 192, 224, 256, 320}
       
   384 };
       
   385 
       
   386 
       
   387 
       
   388 #endif