www.pudn.com > iMagic_2006_0428_v098r23.rar > AAC_tables.h
#ifndef _AAC_TABLES_H
#define _AAC_TABLES_H
#include "AACEncoder.h"
//////////////////////////////////////////////////////////////////////////
// The 2^(i/16) and 1/[2^(i/16)] power index tables. i=0 - 15
//////////////////////////////////////////////////////////////////////////
int c_i_POW2_X16_table[16]=
{
// (S.1.30)
// 0x40000000,0x42D561B3,0x45CAE0F1,0x48E1E9B9,
// 0x4C1BF828,0x4F7A9930,0x52FF6B54,0x56AC1F75,
// 0x5A827999,0x5E8451CF,0x62B39508,0x6712460A,
// 0x6BA27E65,0x70666F76,0x75606373,0x7A92BE8A
// (S.0.31)
0x00000000,0x05AAC367,0x0B95C1E3,0x11C3D373,
0x1837F051,0x1EF53260,0x25FED6A9,0x2D583EEA,
0x3504F333,0x3D08A39F,0x45672A11,0x4E248C15,
0x5744FCCA,0x60CCDEEC,0x6AC0C6E7,0x75257D15
};
int c_i_INVPOW2_X16_table[16]=
{
// (S.1.30)
// 0x40000000,0x3D495F45,0x3AB031B9,0x383337BB,
// 0x35D13F32,0x33892305,0x3159CA84,0x2F4228E7,
// 0x2D413CCC,0x2B560FBA,0x297FB5AA,0x27BD4C98,
// 0x260DFC14,0x2470F4DC,0x22E57078,0x216AB0D9
// (S.0.31)
0x7FFFFFFF,0x7A92BE8A,0x75606373,0x70666F76,
0x6BA27E65,0x6712460A,0x62B39508,0x5E8451CF,
0x5A827999,0x56AC1F75,0x52FF6B54,0x4F7A9930,
0x4C1BF828,0x48E1E9B9,0x45CAE0F1,0x42D561B3
};
// log2(sfb+2) * POW2_12
short c_amplify_table[MAX_SCFAC_BANDS]=
{
0x1000,0x195C,0x2000,0x2526,0x295C,0x2CEA,0x3000,0x32B8,0x3526,0x3759,
0x395C,0x3B35,0x3CEA,0x3E82,0x4000,0x4166,0x42B8,0x43F7,0x4526,0x4646,
0x4759,0x4860,0x495C,0x4A4D,0x4B35,0x4C14,0x4CEA,0x4DBA,0x4E82,0x4F44,
0x5000,0x50B5,0x5166,0x5211,0x52B8,0x5359,0x53F7,0x5491,0x5526,0x55B8,
0x5646,0x56D1,0x5759,0x57DE,0x5860,0x58DF,0x595C,0x59D5,0x5A4D,0x5AC2,
0x5B35,0x5BA5,0x5C14
};
static int samplerate_table[12]=
{
96000 , 88200 , 64000 , 48000 , 44100 ,
32000 , 24000 , 22050 , 16000 , 12000 ,
11025 , 8000
};
static int bandnum_table[12]=
{
41 , 41 , 47 , 49 , 49 , 51 ,
47 , 47 , 43 , 43 , 43 , 40
};
static int bandwidth_table[12][NSFB_LONG]=
{
{ // 96000 Hz , 41 band
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8,
8, 8, 8, 8, 12, 12, 12, 12, 12, 16, 16, 24, 28, 36, 44,
64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64
},
{ // 88200 Hz , 41 band
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8,
8, 8, 8, 8, 12, 12, 12, 12, 12, 16, 16, 24, 28, 36, 44,
64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64
},
{ // 64000 Hz , 47 band
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8,
8, 8, 8, 12, 12, 12, 16, 16, 16, 20, 24, 24, 28, 36, 40,
40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
40, 40
},
{ // 48000 Hz , 49 band
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 8,
8, 8, 12, 12, 12, 12, 16, 16, 20, 20, 24, 24, 28, 28, 32,
32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
32, 32, 32, 96
},
{ // 44100 Hz , 49 band
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 8,
8, 8, 12, 12, 12, 12, 16, 16, 20, 20, 24, 24, 28, 28, 32,
32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
32, 32, 32, 96
},
{ // 32000 Hz , 51 band
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 8,
8, 8, 12, 12, 12, 12, 16, 16, 20, 20, 24, 24, 28, 28, 32,
32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
32, 32, 32, 32, 32, 32
},
{ // 24000 Hz , 47 band
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 12, 12, 12, 12, 16, 16, 16, 20, 20,
24, 24, 28, 28, 32, 36, 36, 40, 44, 48, 52, 52, 64, 64, 64,
64, 64
},
{ // 22050 Hz, 47 band
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 12, 12, 12, 12, 16, 16, 16, 20, 20,
24, 24, 28, 28, 32, 36, 36, 40, 44, 48, 52, 52, 64, 64, 64,
64, 64
},
{ // 16000 Hz , 43 band
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 12, 12, 12, 12,
12, 12, 12, 12, 12, 16, 16, 16, 16, 20, 20, 20, 24, 24, 28,
28, 32, 36, 40, 40, 44, 48, 52, 56, 60, 64, 64, 64
},
{ // 12000 Hz , 43 band
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 12, 12, 12, 12,
12, 12, 12, 12, 12, 16, 16, 16, 16, 20, 20, 20, 24, 24, 28,
28, 32, 36, 40, 40, 44, 48, 52, 56, 60, 64, 64, 64
},
{ // 11025 Hz , 43 band
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 12, 12, 12, 12,
12, 12, 12, 12, 12, 16, 16, 16, 16, 20, 20, 20, 24, 24, 28,
28, 32, 36, 40, 40, 44, 48, 52, 56, 60, 64, 64, 64
},
{ // 8000 Hz , 40 band
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 16, 16,
16, 16, 16, 16, 16, 20, 20, 20, 20, 24, 24, 24, 28, 28, 32,
36, 36, 40, 44, 48, 52, 56, 60, 64, 80
},
};
unsigned int Fixed_Sqrt_Table[513]=
{
131072,131199,131327,131455,131583,131710,
131837,131964,132092,132218,132345,132472,
132599,132725,132851,132978,133104,133230,
133356,133481,133607,133732,133858,133983,
134108,134233,134358,134483,134608,134732,
134857,134981,135105,135230,135354,135477,
135601,135725,135848,135972,136095,136218,
136342,136465,136587,136710,136833,136955,
137078,137200,137322,137445,137567,137688,
137810,137932,138054,138175,138296,138418,
138539,138660,138781,138902,139022,139143,
139264,139384,139504,139624,139745,139865,
139984,140104,140224,140344,140463,140582,
140702,140821,140940,141059,141178,141297,
141415,141534,141652,141771,141889,142007,
142125,142243,142361,142479,142597,142714,
142832,142949,143067,143184,143301,143418,
143535,143652,143769,143885,144002,144118,
144235,144351,144467,144583,144699,144815,
144931,145046,145162,145278,145393,145508,
145624,145739,145854,145969,146084,146199,
146313,146428,146542,146657,146771,146886,
147000,147114,147228,147342,147456,147569,
147683,147796,147910,148023,148137,148250,
148363,148476,148589,148702,148815,148927,
149040,149152,149265,149377,149489,149602,
149714,149826,149938,150050,150161,150273,
150385,150496,150608,150719,150830,150941,
151053,151164,151274,151385,151496,151607,
151717,151828,151938,152049,152159,152269,
152380,152490,152600,152709,152819,152929,
153039,153148,153258,153367,153477,153586,
153695,153804,153913,154022,154131,154240,
154349,154457,154566,154674,154783,154891,
154999,155108,155216,155324,155432,155540,
155648,155755,155863,155971,156078,156186,
156293,156400,156507,156615,156722,156829,
156936,157043,157149,157256,157363,157469,
157576,157682,157789,157895,158001,158107,
158213,158319,158425,158531,158637,158743,
158848,158954,159059,159165,159270,159375,
159481,159586,159691,159796,159901,160006,
160111,160215,160320,160425,160529,160634,
160738,160842,160947,161051,161155,161259,
161363,161467,161571,161675,161779,161882,
161986,162089,162193,162296,162400,162503,
162606,162709,162812,162915,163018,163121,
163224,163327,163429,163532,163635,163737,
163840,163942,164044,164146,164249,164351,
164453,164555,164657,164759,164860,164962,
165064,165165,165267,165368,165470,165571,
165672,165774,165875,165976,166077,166178,
166279,166380,166481,166581,166682,166783,
166883,166984,167084,167185,167285,167385,
167485,167585,167686,167786,167886,167985,
168085,168185,168285,168384,168484,168584,
168683,168783,168882,168981,169080,169180,
169279,169378,169477,169576,169675,169774,
169872,169971,170070,170168,170267,170366,
170464,170562,170661,170759,170857,170955,
171053,171152,171250,171347,171445,171543,
171641,171739,171836,171934,172032,172129,
172226,172324,172421,172518,172616,172713,
172810,172907,173004,173101,173198,173295,
173391,173488,173585,173681,173778,173875,
173971,174067,174164,174260,174356,174453,
174549,174645,174741,174837,174933,175029,
175124,175220,175316,175412,175507,175603,
175698,175794,175889,175985,176080,176175,
176270,176365,176461,176556,176651,176746,
176840,176935,177030,177125,177220,177314,
177409,177503,177598,177692,177787,177881,
177975,178070,178164,178258,178352,178446,
178540,178634,178728,178822,178915,179009,
179103,179197,179290,179384,179477,179571,
179664,179757,179851,179944,180037,180130,
180224,180317,180410,180503,180595,180688,
180781,180874,180967,181059,181152,181245,
181337,181430,181522,181614,181707,181799,
181891,181984,182076,182168,182260,182352,
182444,182536,182628,182720,182811,182903,
182995,183087,183178,183270,183361,183453,
183544,183636,183727,183818,183909,184001,
184092,184183,184274,184365,184456,184547,
184638,184729,184819,184910,185001,185092,
185182,185273,185363
};
#endif