tables.h

Go to the documentation of this file.
00001 /*
00002  *      MPEG layer 3 tables include 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 #ifndef LAME_TABLES_H
00023 #define LAME_TABLES_H
00024 
00025 
00026 typedef struct {
00027     unsigned char no;
00028     unsigned char width;
00029     unsigned char minval_2;
00030     float   quiet_thr;
00031     float   norm;
00032     float   bark;
00033 } type1_t;
00034 
00035 typedef struct {
00036     unsigned char no;
00037     unsigned char width;
00038     float   quiet_thr;
00039     float   norm;
00040     float   SNR;
00041     float   bark;
00042 } type2_t;
00043 
00044 typedef struct {
00045     unsigned int no:5;
00046     unsigned int cbw:3;
00047     unsigned int bu:6;
00048     unsigned int bo:6;
00049     unsigned int w1_576:10;
00050     unsigned int w2_576:10;
00051 } type34_t;
00052 
00053 typedef struct {
00054     size_t  len1;
00055     const type1_t *const tab1;
00056     size_t  len2;
00057     const type2_t *const tab2;
00058     size_t  len3;
00059     const type34_t *const tab3;
00060     size_t  len4;
00061     const type34_t *const tab4;
00062 } type5_t;
00063 
00064 extern const type5_t table5[6];
00065 
00066 
00067 
00068 #define HTN     34
00069 
00070 struct huffcodetab {
00071     const int xlen;          /* max. x-index+   */
00072     const int linmax;        /* max number to be stored in linbits */
00073     const short *table;      /* pointer to array[xlen][ylen]  */
00074     const char *hlen;        /* pointer to array[xlen][ylen]  */
00075 };
00076 
00077 extern const struct huffcodetab ht[HTN];
00078     /* global memory block   */
00079     /* array of all huffcodtable headers */
00080     /* 0..31 Huffman code table 0..31  */
00081     /* 32,33 count1-tables   */
00082 
00083 extern const char t32l[];
00084 extern const char t33l[];
00085 
00086 extern const unsigned int largetbl[16 * 16];
00087 extern const unsigned int table23[3 * 3];
00088 extern const unsigned int table56[4 * 4];
00089 
00090 extern const int scfsi_band[5];
00091 
00092 #endif /* LAME_TABLES_H */

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