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 */