Main Page   Namespace List   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   Related Pages  

ac3tab.h

00001 /* tables taken directly from AC3 spec */
00002 
00003 /* possible bitrates */
00004 static const UINT16 bitratetab[19] = {
00005     32, 40, 48, 56, 64, 80, 96, 112, 128, 
00006     160, 192, 224, 256, 320, 384, 448, 512, 576, 640 
00007 };
00008 
00009 /* AC3 MDCT window */
00010 
00011 /* MDCT window */
00012 static const INT16 ac3_window[256]= {
00013     4,    7,   12,   16,   21,   28,   34,   42,
00014    51,   61,   72,   84,   97,  111,  127,  145,
00015   164,  184,  207,  231,  257,  285,  315,  347,
00016   382,  419,  458,  500,  544,  591,  641,  694,
00017   750,  810,  872,  937, 1007, 1079, 1155, 1235,
00018  1318, 1406, 1497, 1593, 1692, 1796, 1903, 2016,
00019  2132, 2253, 2379, 2509, 2644, 2783, 2927, 3076,
00020  3230, 3389, 3552, 3721, 3894, 4072, 4255, 4444,
00021  4637, 4835, 5038, 5246, 5459, 5677, 5899, 6127,
00022  6359, 6596, 6837, 7083, 7334, 7589, 7848, 8112,
00023  8380, 8652, 8927, 9207, 9491, 9778,10069,10363,
00024 10660,10960,11264,11570,11879,12190,12504,12820,
00025 13138,13458,13780,14103,14427,14753,15079,15407,
00026 15735,16063,16392,16720,17049,17377,17705,18032,
00027 18358,18683,19007,19330,19651,19970,20287,20602,
00028 20914,21225,21532,21837,22139,22438,22733,23025,
00029 23314,23599,23880,24157,24430,24699,24964,25225,
00030 25481,25732,25979,26221,26459,26691,26919,27142,
00031 27359,27572,27780,27983,28180,28373,28560,28742,
00032 28919,29091,29258,29420,29577,29729,29876,30018,
00033 30155,30288,30415,30538,30657,30771,30880,30985,
00034 31086,31182,31274,31363,31447,31528,31605,31678,
00035 31747,31814,31877,31936,31993,32046,32097,32145,
00036 32190,32232,32272,32310,32345,32378,32409,32438,
00037 32465,32490,32513,32535,32556,32574,32592,32608,
00038 32623,32636,32649,32661,32671,32681,32690,32698,
00039 32705,32712,32718,32724,32729,32733,32737,32741,
00040 32744,32747,32750,32752,32754,32756,32757,32759,
00041 32760,32761,32762,32763,32764,32764,32765,32765,
00042 32766,32766,32766,32766,32767,32767,32767,32767,
00043 32767,32767,32767,32767,32767,32767,32767,32767,
00044 32767,32767,32767,32767,32767,32767,32767,32767,  
00045 };
00046 
00047 static UINT8 masktab[253];
00048 
00049 static const UINT8 latab[260]= {
00050 0x0040,0x003f,0x003e,0x003d,0x003c,0x003b,0x003a,0x0039,0x0038,0x0037,
00051 0x0036,0x0035,0x0034,0x0034,0x0033,0x0032,0x0031,0x0030,0x002f,0x002f,
00052 0x002e,0x002d,0x002c,0x002c,0x002b,0x002a,0x0029,0x0029,0x0028,0x0027,
00053 0x0026,0x0026,0x0025,0x0024,0x0024,0x0023,0x0023,0x0022,0x0021,0x0021,
00054 0x0020,0x0020,0x001f,0x001e,0x001e,0x001d,0x001d,0x001c,0x001c,0x001b,
00055 0x001b,0x001a,0x001a,0x0019,0x0019,0x0018,0x0018,0x0017,0x0017,0x0016,
00056 0x0016,0x0015,0x0015,0x0015,0x0014,0x0014,0x0013,0x0013,0x0013,0x0012,
00057 0x0012,0x0012,0x0011,0x0011,0x0011,0x0010,0x0010,0x0010,0x000f,0x000f,
00058 0x000f,0x000e,0x000e,0x000e,0x000d,0x000d,0x000d,0x000d,0x000c,0x000c,
00059 0x000c,0x000c,0x000b,0x000b,0x000b,0x000b,0x000a,0x000a,0x000a,0x000a,
00060 0x000a,0x0009,0x0009,0x0009,0x0009,0x0009,0x0008,0x0008,0x0008,0x0008,
00061 0x0008,0x0008,0x0007,0x0007,0x0007,0x0007,0x0007,0x0007,0x0006,0x0006,
00062 0x0006,0x0006,0x0006,0x0006,0x0006,0x0006,0x0005,0x0005,0x0005,0x0005,
00063 0x0005,0x0005,0x0005,0x0005,0x0004,0x0004,0x0004,0x0004,0x0004,0x0004,
00064 0x0004,0x0004,0x0004,0x0004,0x0004,0x0003,0x0003,0x0003,0x0003,0x0003,
00065 0x0003,0x0003,0x0003,0x0003,0x0003,0x0003,0x0003,0x0003,0x0003,0x0002,
00066 0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,
00067 0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,0x0001,0x0001,
00068 0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,
00069 0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,
00070 0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,
00071 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
00072 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
00073 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
00074 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
00075 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
00076 };
00077 
00078 static const UINT16 hth[50][3]= {
00079 { 0x04d0,0x04f0,0x0580 },
00080 { 0x04d0,0x04f0,0x0580 },
00081 { 0x0440,0x0460,0x04b0 },
00082 { 0x0400,0x0410,0x0450 },
00083 { 0x03e0,0x03e0,0x0420 },
00084 { 0x03c0,0x03d0,0x03f0 },
00085 { 0x03b0,0x03c0,0x03e0 },
00086 { 0x03b0,0x03b0,0x03d0 },
00087 { 0x03a0,0x03b0,0x03c0 },
00088 { 0x03a0,0x03a0,0x03b0 },
00089 { 0x03a0,0x03a0,0x03b0 },
00090 { 0x03a0,0x03a0,0x03b0 },
00091 { 0x03a0,0x03a0,0x03a0 },
00092 { 0x0390,0x03a0,0x03a0 },
00093 { 0x0390,0x0390,0x03a0 },
00094 { 0x0390,0x0390,0x03a0 },
00095 { 0x0380,0x0390,0x03a0 },
00096 { 0x0380,0x0380,0x03a0 },
00097 { 0x0370,0x0380,0x03a0 },
00098 { 0x0370,0x0380,0x03a0 },
00099 { 0x0360,0x0370,0x0390 },
00100 { 0x0360,0x0370,0x0390 },
00101 { 0x0350,0x0360,0x0390 },
00102 { 0x0350,0x0360,0x0390 },
00103 { 0x0340,0x0350,0x0380 },
00104 { 0x0340,0x0350,0x0380 },
00105 { 0x0330,0x0340,0x0380 },
00106 { 0x0320,0x0340,0x0370 },
00107 { 0x0310,0x0320,0x0360 },
00108 { 0x0300,0x0310,0x0350 },
00109 { 0x02f0,0x0300,0x0340 },
00110 { 0x02f0,0x02f0,0x0330 },
00111 { 0x02f0,0x02f0,0x0320 },
00112 { 0x02f0,0x02f0,0x0310 },
00113 { 0x0300,0x02f0,0x0300 },
00114 { 0x0310,0x0300,0x02f0 },
00115 { 0x0340,0x0320,0x02f0 },
00116 { 0x0390,0x0350,0x02f0 },
00117 { 0x03e0,0x0390,0x0300 },
00118 { 0x0420,0x03e0,0x0310 },
00119 { 0x0460,0x0420,0x0330 },
00120 { 0x0490,0x0450,0x0350 },
00121 { 0x04a0,0x04a0,0x03c0 },
00122 { 0x0460,0x0490,0x0410 },
00123 { 0x0440,0x0460,0x0470 },
00124 { 0x0440,0x0440,0x04a0 },
00125 { 0x0520,0x0480,0x0460 },
00126 { 0x0800,0x0630,0x0440 },
00127 { 0x0840,0x0840,0x0450 },
00128 { 0x0840,0x0840,0x04e0 },
00129 };
00130 
00131 static const UINT8 baptab[64]= {
00132     0, 1, 1, 1, 1, 1, 2, 2, 3, 3, 
00133     3, 4, 4, 5, 5, 6, 6, 6, 6, 7, 
00134     7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 
00135     9, 10, 10, 10, 10, 11, 11, 11, 11, 12, 
00136     12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 
00137     14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 
00138     15, 15, 15, 15,
00139 };
00140 
00141 static const UINT8 sdecaytab[4]={ 
00142     0x0f, 0x11, 0x13, 0x15,
00143 };
00144 
00145 static const UINT8 fdecaytab[4]={ 
00146     0x3f, 0x53, 0x67, 0x7b, 
00147 };
00148 
00149 static const UINT16 sgaintab[4]= { 
00150     0x540, 0x4d8, 0x478, 0x410,
00151 };
00152 
00153 static const UINT16 dbkneetab[4]= { 
00154     0x000, 0x700, 0x900, 0xb00,
00155 };
00156 
00157 static const UINT16 floortab[8]= { 
00158     0x2f0, 0x2b0, 0x270, 0x230, 0x1f0, 0x170, 0x0f0, 0xf800,
00159 };
00160 
00161 static const UINT16 fgaintab[8]= {
00162     0x080, 0x100, 0x180, 0x200, 0x280, 0x300, 0x380, 0x400,
00163 };
00164 
00165 static const UINT8 bndsz[50]={
00166     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
00167     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 
00168     3, 6, 6, 6, 6, 6, 6, 12, 12, 12, 12, 24, 24, 24, 24, 24 
00169 };
00170 
00171 static UINT8 bndtab[51]; 
00172 
00173 /* fft & mdct sin cos tables */
00174 static INT16 costab[64];
00175 static INT16 sintab[64];
00176 static INT16 fft_rev[512];
00177 static INT16 xcos1[128];
00178 static INT16 xsin1[128];
00179 
00180 static UINT16 crc_table[256];

Generated on Sat Sep 25 14:06:33 2004 for ac3 by doxygen1.2.18