tables.c

Go to the documentation of this file.
00001 /*
00002  *      MPEG layer 3 tables source file
00003  *
00004  *      Copyright (c) 1999 Albert L Faber
00005  *
00006  * This library is free software; you can redistribute it and/or
00007  * modify it under the terms of the GNU Lesser General Public
00008  * License as published by the Free Software Foundation; either
00009  * version 2 of the License, or (at your option) any later version.
00010  *
00011  * This library is distributed in the hope that it will be useful,
00012  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00013  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014  * Library General Public License for more details.
00015  *
00016  * You should have received a copy of the GNU Lesser General Public
00017  * License along with this library; if not, write to the
00018  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
00019  * Boston, MA 02111-1307, USA.
00020  */
00021 
00022 /* $Id: tables.c,v 1.24 2007/07/24 17:46:11 bouvigne Exp $ */
00023 
00024 #ifdef HAVE_CONFIG_H
00025 # include <config.h>
00026 #endif
00027 
00028 #include "lame.h"
00029 #include "machine.h"
00030 #include "encoder.h"
00031 #include "tables.h"
00032 
00033 
00034 static const short t1HB[] = {
00035     1, 1,
00036     1, 0
00037 };
00038 
00039 static const short t2HB[] = {
00040     1, 2, 1,
00041     3, 1, 1,
00042     3, 2, 0
00043 };
00044 
00045 static const short t3HB[] = {
00046     3, 2, 1,
00047     1, 1, 1,
00048     3, 2, 0
00049 };
00050 
00051 static const short t5HB[] = {
00052     1, 2, 6, 5,
00053     3, 1, 4, 4,
00054     7, 5, 7, 1,
00055     6, 1, 1, 0
00056 };
00057 
00058 static const short t6HB[] = {
00059     7, 3, 5, 1,
00060     6, 2, 3, 2,
00061     5, 4, 4, 1,
00062     3, 3, 2, 0
00063 };
00064 
00065 static const short t7HB[] = {
00066     1, 2, 10, 19, 16, 10,
00067     3, 3, 7, 10, 5, 3,
00068     11, 4, 13, 17, 8, 4,
00069     12, 11, 18, 15, 11, 2,
00070     7, 6, 9, 14, 3, 1,
00071     6, 4, 5, 3, 2, 0
00072 };
00073 
00074 static const short t8HB[] = {
00075     3, 4, 6, 18, 12, 5,
00076     5, 1, 2, 16, 9, 3,
00077     7, 3, 5, 14, 7, 3,
00078     19, 17, 15, 13, 10, 4,
00079     13, 5, 8, 11, 5, 1,
00080     12, 4, 4, 1, 1, 0
00081 };
00082 
00083 static const short t9HB[] = {
00084     7, 5, 9, 14, 15, 7,
00085     6, 4, 5, 5, 6, 7,
00086     7, 6, 8, 8, 8, 5,
00087     15, 6, 9, 10, 5, 1,
00088     11, 7, 9, 6, 4, 1,
00089     14, 4, 6, 2, 6, 0
00090 };
00091 
00092 static const short t10HB[] = {
00093     1, 2, 10, 23, 35, 30, 12, 17,
00094     3, 3, 8, 12, 18, 21, 12, 7,
00095     11, 9, 15, 21, 32, 40, 19, 6,
00096     14, 13, 22, 34, 46, 23, 18, 7,
00097     20, 19, 33, 47, 27, 22, 9, 3,
00098     31, 22, 41, 26, 21, 20, 5, 3,
00099     14, 13, 10, 11, 16, 6, 5, 1,
00100     9, 8, 7, 8, 4, 4, 2, 0
00101 };
00102 
00103 static const short t11HB[] = {
00104     3, 4, 10, 24, 34, 33, 21, 15,
00105     5, 3, 4, 10, 32, 17, 11, 10,
00106     11, 7, 13, 18, 30, 31, 20, 5,
00107     25, 11, 19, 59, 27, 18, 12, 5,
00108     35, 33, 31, 58, 30, 16, 7, 5,
00109     28, 26, 32, 19, 17, 15, 8, 14,
00110     14, 12, 9, 13, 14, 9, 4, 1,
00111     11, 4, 6, 6, 6, 3, 2, 0
00112 };
00113 
00114 static const short t12HB[] = {
00115     9, 6, 16, 33, 41, 39, 38, 26,
00116     7, 5, 6, 9, 23, 16, 26, 11,
00117     17, 7, 11, 14, 21, 30, 10, 7,
00118     17, 10, 15, 12, 18, 28, 14, 5,
00119     32, 13, 22, 19, 18, 16, 9, 5,
00120     40, 17, 31, 29, 17, 13, 4, 2,
00121     27, 12, 11, 15, 10, 7, 4, 1,
00122     27, 12, 8, 12, 6, 3, 1, 0
00123 };
00124 
00125 static const short t13HB[] = {
00126     1, 5, 14, 21, 34, 51, 46, 71, 42, 52, 68, 52, 67, 44, 43, 19,
00127     3, 4, 12, 19, 31, 26, 44, 33, 31, 24, 32, 24, 31, 35, 22, 14,
00128     15, 13, 23, 36, 59, 49, 77, 65, 29, 40, 30, 40, 27, 33, 42, 16,
00129     22, 20, 37, 61, 56, 79, 73, 64, 43, 76, 56, 37, 26, 31, 25, 14,
00130     35, 16, 60, 57, 97, 75, 114, 91, 54, 73, 55, 41, 48, 53, 23, 24,
00131     58, 27, 50, 96, 76, 70, 93, 84, 77, 58, 79, 29, 74, 49, 41, 17,
00132     47, 45, 78, 74, 115, 94, 90, 79, 69, 83, 71, 50, 59, 38, 36, 15,
00133     72, 34, 56, 95, 92, 85, 91, 90, 86, 73, 77, 65, 51, 44, 43, 42,
00134     43, 20, 30, 44, 55, 78, 72, 87, 78, 61, 46, 54, 37, 30, 20, 16,
00135     53, 25, 41, 37, 44, 59, 54, 81, 66, 76, 57, 54, 37, 18, 39, 11,
00136     35, 33, 31, 57, 42, 82, 72, 80, 47, 58, 55, 21, 22, 26, 38, 22,
00137     53, 25, 23, 38, 70, 60, 51, 36, 55, 26, 34, 23, 27, 14, 9, 7,
00138     34, 32, 28, 39, 49, 75, 30, 52, 48, 40, 52, 28, 18, 17, 9, 5,
00139     45, 21, 34, 64, 56, 50, 49, 45, 31, 19, 12, 15, 10, 7, 6, 3,
00140     48, 23, 20, 39, 36, 35, 53, 21, 16, 23, 13, 10, 6, 1, 4, 2,
00141     16, 15, 17, 27, 25, 20, 29, 11, 17, 12, 16, 8, 1, 1, 0, 1
00142 };
00143 
00144 static const short t15HB[] = {
00145     7, 12, 18, 53, 47, 76, 124, 108, 89, 123, 108, 119, 107, 81, 122, 63,
00146     13, 5, 16, 27, 46, 36, 61, 51, 42, 70, 52, 83, 65, 41, 59, 36,
00147     19, 17, 15, 24, 41, 34, 59, 48, 40, 64, 50, 78, 62, 80, 56, 33,
00148     29, 28, 25, 43, 39, 63, 55, 93, 76, 59, 93, 72, 54, 75, 50, 29,
00149     52, 22, 42, 40, 67, 57, 95, 79, 72, 57, 89, 69, 49, 66, 46, 27,
00150     77, 37, 35, 66, 58, 52, 91, 74, 62, 48, 79, 63, 90, 62, 40, 38,
00151     125, 32, 60, 56, 50, 92, 78, 65, 55, 87, 71, 51, 73, 51, 70, 30,
00152     109, 53, 49, 94, 88, 75, 66, 122, 91, 73, 56, 42, 64, 44, 21, 25,
00153     90, 43, 41, 77, 73, 63, 56, 92, 77, 66, 47, 67, 48, 53, 36, 20,
00154     71, 34, 67, 60, 58, 49, 88, 76, 67, 106, 71, 54, 38, 39, 23, 15,
00155     109, 53, 51, 47, 90, 82, 58, 57, 48, 72, 57, 41, 23, 27, 62, 9,
00156     86, 42, 40, 37, 70, 64, 52, 43, 70, 55, 42, 25, 29, 18, 11, 11,
00157     118, 68, 30, 55, 50, 46, 74, 65, 49, 39, 24, 16, 22, 13, 14, 7,
00158     91, 44, 39, 38, 34, 63, 52, 45, 31, 52, 28, 19, 14, 8, 9, 3,
00159     123, 60, 58, 53, 47, 43, 32, 22, 37, 24, 17, 12, 15, 10, 2, 1,
00160     71, 37, 34, 30, 28, 20, 17, 26, 21, 16, 10, 6, 8, 6, 2, 0
00161 };
00162 
00163 static const short t16HB[] = {
00164     1, 5, 14, 44, 74, 63, 110, 93, 172, 149, 138, 242, 225, 195, 376, 17,
00165     3, 4, 12, 20, 35, 62, 53, 47, 83, 75, 68, 119, 201, 107, 207, 9,
00166     15, 13, 23, 38, 67, 58, 103, 90, 161, 72, 127, 117, 110, 209, 206, 16,
00167     45, 21, 39, 69, 64, 114, 99, 87, 158, 140, 252, 212, 199, 387, 365, 26,
00168     75, 36, 68, 65, 115, 101, 179, 164, 155, 264, 246, 226, 395, 382, 362, 9,
00169     66, 30, 59, 56, 102, 185, 173, 265, 142, 253, 232, 400, 388, 378, 445, 16,
00170     111, 54, 52, 100, 184, 178, 160, 133, 257, 244, 228, 217, 385, 366, 715, 10,
00171     98, 48, 91, 88, 165, 157, 148, 261, 248, 407, 397, 372, 380, 889, 884, 8,
00172     85, 84, 81, 159, 156, 143, 260, 249, 427, 401, 392, 383, 727, 713, 708, 7,
00173     154, 76, 73, 141, 131, 256, 245, 426, 406, 394, 384, 735, 359, 710, 352, 11,
00174     139, 129, 67, 125, 247, 233, 229, 219, 393, 743, 737, 720, 885, 882, 439, 4,
00175     243, 120, 118, 115, 227, 223, 396, 746, 742, 736, 721, 712, 706, 223, 436, 6,
00176     202, 224, 222, 218, 216, 389, 386, 381, 364, 888, 443, 707, 440, 437, 1728, 4,
00177     747, 211, 210, 208, 370, 379, 734, 723, 714, 1735, 883, 877, 876, 3459, 865, 2,
00178     377, 369, 102, 187, 726, 722, 358, 711, 709, 866, 1734, 871, 3458, 870, 434, 0,
00179     12, 10, 7, 11, 10, 17, 11, 9, 13, 12, 10, 7, 5, 3, 1, 3
00180 };
00181 
00182 static const short t24HB[] = {
00183     15, 13, 46, 80, 146, 262, 248, 434, 426, 669, 653, 649, 621, 517, 1032, 88,
00184     14, 12, 21, 38, 71, 130, 122, 216, 209, 198, 327, 345, 319, 297, 279, 42,
00185     47, 22, 41, 74, 68, 128, 120, 221, 207, 194, 182, 340, 315, 295, 541, 18,
00186     81, 39, 75, 70, 134, 125, 116, 220, 204, 190, 178, 325, 311, 293, 271, 16,
00187     147, 72, 69, 135, 127, 118, 112, 210, 200, 188, 352, 323, 306, 285, 540, 14,
00188     263, 66, 129, 126, 119, 114, 214, 202, 192, 180, 341, 317, 301, 281, 262, 12,
00189     249, 123, 121, 117, 113, 215, 206, 195, 185, 347, 330, 308, 291, 272, 520, 10,
00190     435, 115, 111, 109, 211, 203, 196, 187, 353, 332, 313, 298, 283, 531, 381, 17,
00191     427, 212, 208, 205, 201, 193, 186, 177, 169, 320, 303, 286, 268, 514, 377, 16,
00192     335, 199, 197, 191, 189, 181, 174, 333, 321, 305, 289, 275, 521, 379, 371, 11,
00193     668, 184, 183, 179, 175, 344, 331, 314, 304, 290, 277, 530, 383, 373, 366, 10,
00194     652, 346, 171, 168, 164, 318, 309, 299, 287, 276, 263, 513, 375, 368, 362, 6,
00195     648, 322, 316, 312, 307, 302, 292, 284, 269, 261, 512, 376, 370, 364, 359, 4,
00196     620, 300, 296, 294, 288, 282, 273, 266, 515, 380, 374, 369, 365, 361, 357, 2,
00197     1033, 280, 278, 274, 267, 264, 259, 382, 378, 372, 367, 363, 360, 358, 356, 0,
00198     43, 20, 19, 17, 15, 13, 11, 9, 7, 6, 4, 7, 5, 3, 1, 3
00199 };
00200 
00201 static const short t32HB[] = {
00202     1 << 0, 5 << 1, 4 << 1, 5 << 2, 6 << 1, 5 << 2, 4 << 2, 4 << 3,
00203     7 << 1, 3 << 2, 6 << 2, 0 << 3, 7 << 2, 2 << 3, 3 << 3, 1 << 4
00204 };
00205 
00206 static const short t33HB[] = {
00207     15 << 0, 14 << 1, 13 << 1, 12 << 2, 11 << 1, 10 << 2, 9 << 2, 8 << 3,
00208     7 << 1, 6 << 2, 5 << 2, 4 << 3, 3 << 2, 2 << 3, 1 << 3, 0 << 4
00209 };
00210 
00211 
00212 const char t1l[] = {
00213     1, 4,
00214     3, 5
00215 };
00216 
00217 const char t2l[] = {
00218     1, 4, 7,
00219     4, 5, 7,
00220     6, 7, 8
00221 };
00222 
00223 const char t3l[] = {
00224     2, 3, 7,
00225     4, 4, 7,
00226     6, 7, 8
00227 };
00228 
00229 const char t5l[] = {
00230     1, 4, 7, 8,
00231     4, 5, 8, 9,
00232     7, 8, 9, 10,
00233     8, 8, 9, 10
00234 };
00235 
00236 const char t6l[] = {
00237     3, 4, 6, 8,
00238     4, 4, 6, 7,
00239     5, 6, 7, 8,
00240     7, 7, 8, 9
00241 };
00242 
00243 const char t7l[] = {
00244     1, 4, 7, 9, 9, 10,
00245     4, 6, 8, 9, 9, 10,
00246     7, 7, 9, 10, 10, 11,
00247     8, 9, 10, 11, 11, 11,
00248     8, 9, 10, 11, 11, 12,
00249     9, 10, 11, 12, 12, 12
00250 };
00251 
00252 const char t8l[] = {
00253     2, 4, 7, 9, 9, 10,
00254     4, 4, 6, 10, 10, 10,
00255     7, 6, 8, 10, 10, 11,
00256     9, 10, 10, 11, 11, 12,
00257     9, 9, 10, 11, 12, 12,
00258     10, 10, 11, 11, 13, 13
00259 };
00260 
00261 const char t9l[] = {
00262     3, 4, 6, 7, 9, 10,
00263     4, 5, 6, 7, 8, 10,
00264     5, 6, 7, 8, 9, 10,
00265     7, 7, 8, 9, 9, 10,
00266     8, 8, 9, 9, 10, 11,
00267     9, 9, 10, 10, 11, 11
00268 };
00269 
00270 const char t10l[] = {
00271     1, 4, 7, 9, 10, 10, 10, 11,
00272     4, 6, 8, 9, 10, 11, 10, 10,
00273     7, 8, 9, 10, 11, 12, 11, 11,
00274     8, 9, 10, 11, 12, 12, 11, 12,
00275     9, 10, 11, 12, 12, 12, 12, 12,
00276     10, 11, 12, 12, 13, 13, 12, 13,
00277     9, 10, 11, 12, 12, 12, 13, 13,
00278     10, 10, 11, 12, 12, 13, 13, 13
00279 };
00280 
00281 const char t11l[] = {
00282     2, 4, 6, 8, 9, 10, 9, 10,
00283     4, 5, 6, 8, 10, 10, 9, 10,
00284     6, 7, 8, 9, 10, 11, 10, 10,
00285     8, 8, 9, 11, 10, 12, 10, 11,
00286     9, 10, 10, 11, 11, 12, 11, 12,
00287     9, 10, 11, 12, 12, 13, 12, 13,
00288     9, 9, 9, 10, 11, 12, 12, 12,
00289     9, 9, 10, 11, 12, 12, 12, 12
00290 };
00291 
00292 const char t12l[] = {
00293     4, 4, 6, 8, 9, 10, 10, 10,
00294     4, 5, 6, 7, 9, 9, 10, 10,
00295     6, 6, 7, 8, 9, 10, 9, 10,
00296     7, 7, 8, 8, 9, 10, 10, 10,
00297     8, 8, 9, 9, 10, 10, 10, 11,
00298     9, 9, 10, 10, 10, 11, 10, 11,
00299     9, 9, 9, 10, 10, 11, 11, 12,
00300     10, 10, 10, 11, 11, 11, 11, 12
00301 };
00302 
00303 const char t13l[] = {
00304     1, 5, 7, 8, 9, 10, 10, 11, 10, 11, 12, 12, 13, 13, 14, 14,
00305     4, 6, 8, 9, 10, 10, 11, 11, 11, 11, 12, 12, 13, 14, 14, 14,
00306     7, 8, 9, 10, 11, 11, 12, 12, 11, 12, 12, 13, 13, 14, 15, 15,
00307     8, 9, 10, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 15, 15,
00308     9, 9, 11, 11, 12, 12, 13, 13, 12, 13, 13, 14, 14, 15, 15, 16,
00309     10, 10, 11, 12, 12, 12, 13, 13, 13, 13, 14, 13, 15, 15, 16, 16,
00310     10, 11, 12, 12, 13, 13, 13, 13, 13, 14, 14, 14, 15, 15, 16, 16,
00311     11, 11, 12, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 16, 18, 18,
00312     10, 10, 11, 12, 12, 13, 13, 14, 14, 14, 14, 15, 15, 16, 17, 17,
00313     11, 11, 12, 12, 13, 13, 13, 15, 14, 15, 15, 16, 16, 16, 18, 17,
00314     11, 12, 12, 13, 13, 14, 14, 15, 14, 15, 16, 15, 16, 17, 18, 19,
00315     12, 12, 12, 13, 14, 14, 14, 14, 15, 15, 15, 16, 17, 17, 17, 18,
00316     12, 13, 13, 14, 14, 15, 14, 15, 16, 16, 17, 17, 17, 18, 18, 18,
00317     13, 13, 14, 15, 15, 15, 16, 16, 16, 16, 16, 17, 18, 17, 18, 18,
00318     14, 14, 14, 15, 15, 15, 17, 16, 16, 19, 17, 17, 17, 19, 18, 18,
00319     13, 14, 15, 16, 16, 16, 17, 16, 17, 17, 18, 18, 21, 20, 21, 18
00320 };
00321 
00322 const char t15l[] = {
00323     3, 5, 6, 8, 8, 9, 10, 10, 10, 11, 11, 12, 12, 12, 13, 14,
00324     5, 5, 7, 8, 9, 9, 10, 10, 10, 11, 11, 12, 12, 12, 13, 13,
00325     6, 7, 7, 8, 9, 9, 10, 10, 10, 11, 11, 12, 12, 13, 13, 13,
00326     7, 8, 8, 9, 9, 10, 10, 11, 11, 11, 12, 12, 12, 13, 13, 13,
00327     8, 8, 9, 9, 10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 13, 13,
00328     9, 9, 9, 10, 10, 10, 11, 11, 11, 11, 12, 12, 13, 13, 13, 14,
00329     10, 9, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 13, 14, 14,
00330     10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 14,
00331     10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 14, 14, 14,
00332     10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14,
00333     11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 13, 14, 15, 14,
00334     11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 15,
00335     12, 12, 11, 12, 12, 12, 13, 13, 13, 13, 13, 13, 14, 14, 15, 15,
00336     12, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 14, 15, 15,
00337     13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 14, 15,
00338     13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 15, 15, 15, 15
00339 };
00340 
00341 const char t16_5l[] = {
00342     1, 5, 7, 9, 10, 10, 11, 11, 12, 12, 12, 13, 13, 13, 14, 11,
00343     4, 6, 8, 9, 10, 11, 11, 11, 12, 12, 12, 13, 14, 13, 14, 11,
00344     7, 8, 9, 10, 11, 11, 12, 12, 13, 12, 13, 13, 13, 14, 14, 12,
00345     9, 9, 10, 11, 11, 12, 12, 12, 13, 13, 14, 14, 14, 15, 15, 13,
00346     10, 10, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 15, 12,
00347     10, 10, 11, 11, 12, 13, 13, 14, 13, 14, 14, 15, 15, 15, 16, 13,
00348     11, 11, 11, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 16, 13,
00349     11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 15, 17, 17, 13,
00350     11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 13,
00351     12, 12, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 15, 16, 15, 14,
00352     12, 13, 12, 13, 14, 14, 14, 14, 15, 16, 16, 16, 17, 17, 16, 13,
00353     13, 13, 13, 13, 14, 14, 15, 16, 16, 16, 16, 16, 16, 15, 16, 14,
00354     13, 14, 14, 14, 14, 15, 15, 15, 15, 17, 16, 16, 16, 16, 18, 14,
00355     15, 14, 14, 14, 15, 15, 16, 16, 16, 18, 17, 17, 17, 19, 17, 14,
00356     14, 15, 13, 14, 16, 16, 15, 16, 16, 17, 18, 17, 19, 17, 16, 14,
00357     11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 12
00358 };
00359 
00360 const char t16l[] = {
00361     1, 5, 7, 9, 10, 10, 11, 11, 12, 12, 12, 13, 13, 13, 14, 10,
00362     4, 6, 8, 9, 10, 11, 11, 11, 12, 12, 12, 13, 14, 13, 14, 10,
00363     7, 8, 9, 10, 11, 11, 12, 12, 13, 12, 13, 13, 13, 14, 14, 11,
00364     9, 9, 10, 11, 11, 12, 12, 12, 13, 13, 14, 14, 14, 15, 15, 12,
00365     10, 10, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 15, 11,
00366     10, 10, 11, 11, 12, 13, 13, 14, 13, 14, 14, 15, 15, 15, 16, 12,
00367     11, 11, 11, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 16, 12,
00368     11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 15, 17, 17, 12,
00369     11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 12,
00370     12, 12, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 15, 16, 15, 13,
00371     12, 13, 12, 13, 14, 14, 14, 14, 15, 16, 16, 16, 17, 17, 16, 12,
00372     13, 13, 13, 13, 14, 14, 15, 16, 16, 16, 16, 16, 16, 15, 16, 13,
00373     13, 14, 14, 14, 14, 15, 15, 15, 15, 17, 16, 16, 16, 16, 18, 13,
00374     15, 14, 14, 14, 15, 15, 16, 16, 16, 18, 17, 17, 17, 19, 17, 13,
00375     14, 15, 13, 14, 16, 16, 15, 16, 16, 17, 18, 17, 19, 17, 16, 13,
00376     10, 10, 10, 11, 11, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 10
00377 };
00378 
00379 const char t24l[] = {
00380     4, 5, 7, 8, 9, 10, 10, 11, 11, 12, 12, 12, 12, 12, 13, 10,
00381     5, 6, 7, 8, 9, 10, 10, 11, 11, 11, 12, 12, 12, 12, 12, 10,
00382     7, 7, 8, 9, 9, 10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 9,
00383     8, 8, 9, 9, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 9,
00384     9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 12, 12, 12, 12, 13, 9,
00385     10, 9, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 9,
00386     10, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 9,
00387     11, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 10,
00388     11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 10,
00389     11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 10,
00390     12, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 10,
00391     12, 12, 11, 11, 11, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 10,
00392     12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 10,
00393     12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 10,
00394     13, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 10,
00395     9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 6
00396 };
00397 
00398 const char t32l[] = {
00399     1 + 0, 4 + 1, 4 + 1, 5 + 2, 4 + 1, 6 + 2, 5 + 2, 6 + 3,
00400     4 + 1, 5 + 2, 5 + 2, 6 + 3, 5 + 2, 6 + 3, 6 + 3, 6 + 4
00401 };
00402 
00403 const char t33l[] = {
00404     4 + 0, 4 + 1, 4 + 1, 4 + 2, 4 + 1, 4 + 2, 4 + 2, 4 + 3,
00405     4 + 1, 4 + 2, 4 + 2, 4 + 3, 4 + 2, 4 + 3, 4 + 3, 4 + 4
00406 };
00407 
00408 
00409 const struct huffcodetab ht[HTN] = {
00410     /* xlen, linmax, table, hlen */
00411     {0, 0, NULL, NULL},
00412     {2, 0, t1HB, t1l},
00413     {3, 0, t2HB, t2l},
00414     {3, 0, t3HB, t3l},
00415     {0, 0, NULL, NULL}, /* Apparently not used */
00416     {4, 0, t5HB, t5l},
00417     {4, 0, t6HB, t6l},
00418     {6, 0, t7HB, t7l},
00419     {6, 0, t8HB, t8l},
00420     {6, 0, t9HB, t9l},
00421     {8, 0, t10HB, t10l},
00422     {8, 0, t11HB, t11l},
00423     {8, 0, t12HB, t12l},
00424     {16, 0, t13HB, t13l},
00425     {0, 0, NULL, t16_5l}, /* Apparently not used */
00426     {16, 0, t15HB, t15l},
00427 
00428     {1, 1, t16HB, t16l},
00429     {2, 3, t16HB, t16l},
00430     {3, 7, t16HB, t16l},
00431     {4, 15, t16HB, t16l},
00432     {6, 63, t16HB, t16l},
00433     {8, 255, t16HB, t16l},
00434     {10, 1023, t16HB, t16l},
00435     {13, 8191, t16HB, t16l},
00436 
00437     {4, 15, t24HB, t24l},
00438     {5, 31, t24HB, t24l},
00439     {6, 63, t24HB, t24l},
00440     {7, 127, t24HB, t24l},
00441     {8, 255, t24HB, t24l},
00442     {9, 511, t24HB, t24l},
00443     {11, 2047, t24HB, t24l},
00444     {13, 8191, t24HB, t24l},
00445 
00446     {0, 0, t32HB, t32l},
00447     {0, 0, t33HB, t33l},
00448 };
00449 
00450 
00451 
00452 
00453 
00454 /*  for (i = 0; i < 16*16; i++) {
00455  *      largetbl[i] = ((ht[16].hlen[i]) << 16) + ht[24].hlen[i];
00456  *  }
00457  */
00458 const unsigned int largetbl[16 * 16] = {
00459     0x010004, 0x050005, 0x070007, 0x090008, 0x0a0009, 0x0a000a, 0x0b000a, 0x0b000b,
00460     0x0c000b, 0x0c000c, 0x0c000c, 0x0d000c, 0x0d000c, 0x0d000c, 0x0e000d, 0x0a000a,
00461     0x040005, 0x060006, 0x080007, 0x090008, 0x0a0009, 0x0b000a, 0x0b000a, 0x0b000b,
00462     0x0c000b, 0x0c000b, 0x0c000c, 0x0d000c, 0x0e000c, 0x0d000c, 0x0e000c, 0x0a000a,
00463     0x070007, 0x080007, 0x090008, 0x0a0009, 0x0b0009, 0x0b000a, 0x0c000a, 0x0c000b,
00464     0x0d000b, 0x0c000b, 0x0d000b, 0x0d000c, 0x0d000c, 0x0e000c, 0x0e000d, 0x0b0009,
00465     0x090008, 0x090008, 0x0a0009, 0x0b0009, 0x0b000a, 0x0c000a, 0x0c000a, 0x0c000b,
00466     0x0d000b, 0x0d000b, 0x0e000b, 0x0e000c, 0x0e000c, 0x0f000c, 0x0f000c, 0x0c0009,
00467     0x0a0009, 0x0a0009, 0x0b0009, 0x0b000a, 0x0c000a, 0x0c000a, 0x0d000a, 0x0d000b,
00468     0x0d000b, 0x0e000b, 0x0e000c, 0x0e000c, 0x0f000c, 0x0f000c, 0x0f000d, 0x0b0009,
00469     0x0a000a, 0x0a0009, 0x0b000a, 0x0b000a, 0x0c000a, 0x0d000a, 0x0d000b, 0x0e000b,
00470     0x0d000b, 0x0e000b, 0x0e000c, 0x0f000c, 0x0f000c, 0x0f000c, 0x10000c, 0x0c0009,
00471     0x0b000a, 0x0b000a, 0x0b000a, 0x0c000a, 0x0d000a, 0x0d000b, 0x0d000b, 0x0d000b,
00472     0x0e000b, 0x0e000c, 0x0e000c, 0x0e000c, 0x0f000c, 0x0f000c, 0x10000d, 0x0c0009,
00473     0x0b000b, 0x0b000a, 0x0c000a, 0x0c000a, 0x0d000b, 0x0d000b, 0x0d000b, 0x0e000b,
00474     0x0e000c, 0x0f000c, 0x0f000c, 0x0f000c, 0x0f000c, 0x11000d, 0x11000d, 0x0c000a,
00475     0x0b000b, 0x0c000b, 0x0c000b, 0x0d000b, 0x0d000b, 0x0d000b, 0x0e000b, 0x0e000b,
00476     0x0f000b, 0x0f000c, 0x0f000c, 0x0f000c, 0x10000c, 0x10000d, 0x10000d, 0x0c000a,
00477     0x0c000b, 0x0c000b, 0x0c000b, 0x0d000b, 0x0d000b, 0x0e000b, 0x0e000b, 0x0f000c,
00478     0x0f000c, 0x0f000c, 0x0f000c, 0x10000c, 0x0f000d, 0x10000d, 0x0f000d, 0x0d000a,
00479     0x0c000c, 0x0d000b, 0x0c000b, 0x0d000b, 0x0e000b, 0x0e000c, 0x0e000c, 0x0e000c,
00480     0x0f000c, 0x10000c, 0x10000c, 0x10000d, 0x11000d, 0x11000d, 0x10000d, 0x0c000a,
00481     0x0d000c, 0x0d000c, 0x0d000b, 0x0d000b, 0x0e000b, 0x0e000c, 0x0f000c, 0x10000c,
00482     0x10000c, 0x10000c, 0x10000c, 0x10000d, 0x10000d, 0x0f000d, 0x10000d, 0x0d000a,
00483     0x0d000c, 0x0e000c, 0x0e000c, 0x0e000c, 0x0e000c, 0x0f000c, 0x0f000c, 0x0f000c,
00484     0x0f000c, 0x11000c, 0x10000d, 0x10000d, 0x10000d, 0x10000d, 0x12000d, 0x0d000a,
00485     0x0f000c, 0x0e000c, 0x0e000c, 0x0e000c, 0x0f000c, 0x0f000c, 0x10000c, 0x10000c,
00486     0x10000d, 0x12000d, 0x11000d, 0x11000d, 0x11000d, 0x13000d, 0x11000d, 0x0d000a,
00487     0x0e000d, 0x0f000c, 0x0d000c, 0x0e000c, 0x10000c, 0x10000c, 0x0f000c, 0x10000d,
00488     0x10000d, 0x11000d, 0x12000d, 0x11000d, 0x13000d, 0x11000d, 0x10000d, 0x0d000a,
00489     0x0a0009, 0x0a0009, 0x0a0009, 0x0b0009, 0x0b0009, 0x0c0009, 0x0c0009, 0x0c0009,
00490     0x0d0009, 0x0d0009, 0x0d0009, 0x0d000a, 0x0d000a, 0x0d000a, 0x0d000a, 0x0a0006
00491 };
00492 
00493 /*  for (i = 0; i < 3*3; i++) {
00494  *      table23[i] = ((ht[2].hlen[i]) << 16) + ht[3].hlen[i];
00495  *  }
00496  */
00497 const unsigned int table23[3 * 3] = {
00498     0x010002, 0x040003, 0x070007,
00499     0x040004, 0x050004, 0x070007,
00500     0x060006, 0x070007, 0x080008
00501 };
00502 
00503 /*   for (i = 0; i < 4*4; i++) {
00504  *       table56[i] = ((ht[5].hlen[i]) << 16) + ht[6].hlen[i];
00505  *   }
00506  */
00507 const unsigned int table56[4 * 4] = {
00508     0x010003, 0x040004, 0x070006, 0x080008, 0x040004, 0x050004, 0x080006, 0x090007,
00509     0x070005, 0x080006, 0x090007, 0x0a0008, 0x080007, 0x080007, 0x090008, 0x0a0009
00510 };
00511 
00512 
00513 
00514 /* 
00515  * 0: MPEG-2 LSF
00516  * 1: MPEG-1
00517  * 2: MPEG-2.5 LSF FhG extention                  (1995-07-11 shn)
00518  */
00519 
00520 typedef enum {
00521     MPEG_2 = 0,
00522     MPEG_1 = 1,
00523     MPEG_25 = 2
00524 } MPEG_t;
00525 
00526 const int bitrate_table[3][16] = {
00527     {0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, -1},  /* MPEG 2 */
00528     {0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, -1}, /* MPEG 1 */
00529     {0, 8, 16, 24, 32, 40, 48, 56, 64, -1, -1, -1, -1, -1, -1, -1}, /* MPEG 2.5 */
00530 };
00531 
00532 const int samplerate_table[3][4] = {
00533     {22050, 24000, 16000, -1}, /* MPEG 2 */
00534     {44100, 48000, 32000, -1}, /* MPEG 1 */
00535     {11025, 12000, 8000, -1}, /* MPEG 2.5 */
00536 };
00537 
00538 const char *version_string[3] = { "2", "1", "2.5" };
00539 
00540 const unsigned header_word[3] = { 0xFFF00000, 0xFFF80000, 0xFFE00000 };
00541 
00542 /* This is the scfsi_band table from 2.4.2.7 of the IS */
00543 const int scfsi_band[5] = { 0, 6, 11, 16, 21 };
00544 
00545 /* end of tables.c */

Generated on Sun Dec 2 11:34:20 2007 for LAME by  doxygen 1.5.2