www.pudn.com > T-REC-G.722.1-200505-I!!SOFT-ZST-E.zip > tables.c


/**************************************************************************************** 
***************************************************************************************** 
** 
**   ITU-T 7/14kHz Audio Coder Candidate (G.722.1 Annex C) Source Code 
** 
**   © 2004 Polycom, Inc. 
** 
**   All rights reserved. 
** 
***************************************************************************************** 
****************************************************************************************/ 
/**************************************************************************************** 
  Filename:    tables.c     
 
  Purpose:     Contains tables used by G.722.1 Annex C 
		 
  Design Notes: 
 
****************************************************************************************/ 
/*************************************************************************** 
 Include files                                                            
***************************************************************************/ 
#include "defs.h" 
 
Word16 int_region_standard_deviation_table[REGION_POWER_TABLE_SIZE] = { 
    0,     0,   0, 0, 0, 0, 0, 0, 0, 0, 
    0,     0,   0, 0, 0, 0, 0, 0, 0, 0, 
    0,     0,   1, 1, 1, 1, 2, 3, 4, 6, 
    8,    11,   16, 23, 32, 45, 64, 91, 128, 181, 
  256,   362,  512, 724, 1024, 1448, 2048, 2896, 4096, 5793, 
 8192, 11585, 16384, 23170, 0,0,0,0,0,0, 
 0,0,0,0}; 
 
Word16 standard_deviation_inverse_table[REGION_POWER_TABLE_SIZE] = { 
  32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 
  32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 
  32767, 32767, 32767, 32767, 32767, 23170, 16384, 11585, 8192, 5793, 
  4096, 2896, 2048, 1448, 1024, 724, 512, 362, 256, 181, 
  128, 91, 64, 45, 32, 23, 16, 11, 8, 6, 
  4, 3, 2, 1, 1, 1, 1, 0, 0, 0, 
  0, 0, 0, 0}; 
 
 
Word16 step_size_inverse_table[NUM_CATEGORIES]={ 
	23167,16384,11585,8192,5793,4096,2896,2896 
}; 
  
 
Word16 vector_dimension[NUM_CATEGORIES] =  { 2, 2, 2, 4, 4, 5, 5, 1}; 
Word16 number_of_vectors[NUM_CATEGORIES] = {10,10,10, 5, 5, 4, 4,20}; 
/* The last category isn't really coded with scalar quantization. */ 
 
Word16 max_bin[NUM_CATEGORIES] = {13, 9, 6, 4, 3, 2, 1, 1}; 
 
Word16 max_bin_plus_one_inverse[NUM_CATEGORIES] =  
{ 
	2341,3277,4682,6554,8193,10923,16385,16385 
}; 
 
/* 
 * Release 1.2. 
 * Add new version of int_dead_zone[] to go with 
 * changes to vector_huffman() in encoder.c. 
 *  
 */ 
 
/************** See new version of table below 
Word16 int_dead_zone[NUM_CATEGORIES]= 
{ 
	9830,10813,11796,12780,13763,14746,16384,16384 
}; 
***************/ 
 
/******** New version of table added in Release 1.2 ********/ 
Word16 int_dead_zone[NUM_CATEGORIES]=          
{ 
2457, 2703, 2949, 3195, 3440, 3686, 4096, 4096 
}; 
 
  
/* 
 * Release 1.2. 
 * Added this new table to go with 
 * changes to vector_huffman() in encoder.c, 
 * accompanies the new table for int_dead_zone[]. 
 */ 
 
Word16 int_dead_zone_low_bits[NUM_CATEGORIES]= 
{ 
2, 1, 0, 0, 3, 2, 0, 0 
}; 
 
 
Word16 samples_to_rmlt_window[DCT_LENGTH]= 
{   44,   134,   224,   314,   404,   494,   584,   674,   764,   853, 
   943,  1033,  1123,  1213,  1302,  1392,  1482,  1571,  1661,  1750, 
  1840,  1929,  2019,  2108,  2197,  2286,  2376,  2465,  2554,  2643, 
  2732,  2821,  2909,  2998,  3087,  3175,  3264,  3352,  3441,  3529, 
  3617,  3705,  3793,  3881,  3969,  4057,  4144,  4232,  4319,  4407, 
  4494,  4581,  4668,  4755,  4842,  4928,  5015,  5101,  5188,  5274, 
  5360,  5446,  5532,  5617,  5703,  5788,  5873,  5959,  6043,  6128, 
  6213,  6297,  6382,  6466,  6550,  6634,  6718,  6801,  6885,  6968, 
  7051,  7134,  7217,  7299,  7382,  7464,  7546,  7628,  7709,  7791, 
  7872,  7953,  8034,  8115,  8195,  8276,  8356,  8436,  8515,  8595, 
  8674,  8753,  8832,  8911,  8989,  9068,  9146,  9223,  9301,  9378, 
  9455,  9532,  9609,  9685,  9762,  9838,  9913,  9989, 10064, 10139, 
 10214, 10288, 10363, 10437, 10510, 10584, 10657, 10730, 10803, 10875, 
 10948, 11020, 11091, 11163, 11234, 11305, 11375, 11446, 11516, 11586, 
 11655, 11724, 11793, 11862, 11930, 11998, 12066, 12134, 12201, 12268, 
 12334, 12401, 12467, 12532, 12598, 12663, 12728, 12792, 12857, 12920, 
 12984, 13047, 13110, 13173, 13235, 13297, 13359, 13420, 13481, 13542, 
 13602, 13662, 13722, 13782, 13841, 13899, 13958, 14016, 14074, 14131, 
 14188, 14245, 14301, 14357, 14413, 14468, 14523, 14578, 14632, 14686, 
 14739, 14793, 14845, 14898, 14950, 15002, 15053, 15104, 15155, 15205, 
 15255, 15305, 15354, 15403, 15451, 15500, 15547, 15595, 15642, 15688, 
 15734, 15780, 15826, 15871, 15916, 15960, 16004, 16047, 16091, 16133, 
 16176, 16218, 16259, 16300, 16341, 16382, 16422, 16461, 16501, 16540, 
 16578, 16616, 16654, 16691, 16728, 16764, 16800, 16836, 16871, 16906, 
 16940, 16974, 17008, 17041, 17074, 17106, 17138, 17170, 17201, 17232, 
 17262, 17292, 17321, 17350, 17379, 17407, 17435, 17462, 17489, 17516, 
 17542, 17567, 17593, 17617, 17642, 17666, 17689, 17713, 17735, 17758, 
 17779, 17801, 17822, 17842, 17863, 17882, 17901, 17920, 17939, 17957, 
 17974, 17991, 18008, 18024, 18040, 18055, 18070, 18085, 18099, 18113, 
 18126, 18139, 18151, 18163, 18174, 18185, 18196, 18206, 18216, 18225, 
 18234, 18242, 18250, 18257, 18265, 18271, 18277, 18283, 18288, 18293, 
 18298, 18302, 18305, 18308, 18311, 18313, 18315, 18316, 18317, 18317, 
}; 
 
Word16 rmlt_to_samples_window[DCT_LENGTH]= 
{  44,    133,   222,   310,   399,   488,   577,   666,   754,   843, 
   932,   1020,  1109,  1198,  1286,  1375,  1464,  1552,  1641,  1729, 
   1817,  1906,  1994,  2082,  2171,  2259,  2347,  2435,  2523,  2611, 
   2699,  2786,  2874,  2962,  3049,  3137,  3224,  3312,  3399,  3486, 
   3573,  3660,  3747,  3834,  3921,  4008,  4094,  4181,  4267,  4353, 
   4439,  4526,  4611,  4697,  4783,  4869,  4954,  5040,  5125,  5210, 
   5295,  5380,  5465,  5549,  5634,  5718,  5802,  5886,  5970,  6054, 
   6138,  6221,  6304,  6388,  6471,  6553,  6636,  6719,  6801,  6883, 
   6965,  7047,  7129,  7211,  7292,  7373,  7454,  7535,  7616,  7696, 
   7777,  7857,  7937,  8016,  8096,  8175,  8254,  8333,  8412,  8491, 
   8569,  8647,  8725,  8803,  8880,  8957,  9035,  9111,  9188,  9264, 
   9341,  9417,  9492,  9568,  9643,  9718,  9793,  9868,  9942, 10016, 
  10090, 10163, 10237, 10310, 10383, 10455, 10528, 10600, 10672, 10743, 
  10815, 10886, 10957, 11027, 11098, 11168, 11237, 11307, 11376, 11445, 
  11514, 11582, 11650, 11718, 11785, 11853, 11920, 11986, 12053, 12119, 
  12185, 12250, 12315, 12380, 12445, 12509, 12573, 12637, 12701, 12764, 
  12826, 12889, 12951, 13013, 13075, 13136, 13197, 13257, 13318, 13378, 
  13437, 13497, 13556, 13614, 13673, 13731, 13788, 13846, 13903, 13959, 
  14016, 14072, 14128, 14183, 14238, 14292, 14347, 14401, 14454, 14508, 
  14561, 14613, 14665, 14717, 14769, 14820, 14871, 14921, 14971, 15021, 
  15070, 15119, 15168, 15216, 15264, 15311, 15359, 15405, 15452, 15498, 
  15544, 15589, 15634, 15678, 15722, 15766, 15810, 15853, 15895, 15938, 
  15979, 16021, 16062, 16103, 16143, 16183, 16223, 16262, 16300, 16339, 
  16377, 16414, 16452, 16488, 16525, 16561, 16596, 16632, 16666, 16701, 
  16735, 16768, 16801, 16834, 16867, 16899, 16930, 16961, 16992, 17022, 
  17052, 17082, 17111, 17140, 17168, 17196, 17223, 17250, 17277, 17303, 
  17329, 17354, 17379, 17404, 17428, 17452, 17475, 17498, 17520, 17542, 
  17564, 17585, 17606, 17626, 17646, 17665, 17684, 17703, 17721, 17739, 
  17756, 17773, 17790, 17806, 17821, 17836, 17851, 17865, 17879, 17893, 
  17906, 17918, 17931, 17942, 17954, 17965, 17975, 17985, 17995, 18004, 
  18012, 18021, 18028, 18036, 18043, 18049, 18055, 18061, 18066, 18071, 
  18076, 18079, 18083, 18086, 18089, 18091, 18093, 18094, 18095, 18095, 
}; 
 
Word16 max_samples_to_rmlt_window[MAX_DCT_LENGTH]={ 
0,		43,		89,		133,	178,	222,	268,	314,	357,	403, 
447,	493,	538,	582,	628,	671,	717,	763,	807,	853, 
896,	942,	987,	1031,	1077,	1121,	1166,	1212,	1256,	1301, 
1345,	1390,	1436,	1480,	1526,	1569,	1615,	1660,	1704,	1749, 
1793,	1838,	1884,	1928,	1973,	2016,	2062,	2107,	2151,	2196, 
2239,	2285,	2331,	2374,	2419,	2463,	2508,	2553,	2597,	2642, 
2685,	2730,	2776,	2819,	2864,	2908,	2952,	2998,	3041,	3086, 
3129,	3174,	3219,	3263,	3307,	3350,	3396,	3440,	3483,	3528, 
3571,	3616,	3661,	3704,	3748,	3791,	3836,	3881,	3923,	3968, 
4011,	4055,	4100,	4143,	4187,	4230,	4274,	4318,	4362,	4406, 
4448,	4493,	4537,	4580,	4624,	4666,	4710,	4755,	4797,	4841, 
4883,	4927,	4971,	5013,	5057,	5099,	5144,	5187,	5229,	5273, 
5315,	5359,	5402,	5444,	5488,	5530,	5573,	5617,	5658,	5702, 
5743,	5787,	5830,	5871,	5915,	5956,	6000,	6043,	6084,	6127, 
6169,	6211,	6254,	6296,	6339,	6380,	6423,	6465,	6507,	6549, 
6590,	6633,	6675,	6716,	6759,	6799,	6842,	6884,	6925,	6967, 
7007,	7050,	7092,	7132,	7175,	7215,	7257,	7299,	7339,	7381, 
7421,	7462,	7504,	7544,	7586,	7626,	7667,	7709,	7749,	7790, 
7830,	7871,	7912,	7952,	7993,	8032,	8073,	8114,	8153,	8194, 
8234,	8275,	8315,	8355,	8395,	8434,	8474,	8515,	8554,	8594, 
8632,	8673,	8713,	8752,	8792,	8830,	8871,	8910,	8949,	8989, 
9027,	9066,	9106,	9144,	9184,	9221,	9261,	9300,	9338,	9378, 
9415,	9454,	9493,	9531,	9570,	9607,	9646,	9685,	9722,	9761, 
9798,	9836,	9875,	9912,	9950,	9987,	10025,	10064,	10100,	10138, 
10175,	10213,	10250,	10287,	10325,	10361,	10398,	10436,	10472,	10510, 
10545,	10583,	10620,	10656,	10692,	10728,	10766,	10803,	10838,	10874, 
10910,	10947,	10983,	11018,	11055,	11089,	11126,	11162,	11197,	11233, 
11268,	11303,	11340,	11374,	11410,	11444,	11480,	11515,	11549,	11585, 
11619,	11654,	11689,	11723,	11758,	11791,	11826,	11861,	11895,	11930, 
11963,	11997,	12032,	12065,	12099,	12132,	12166,	12201,	12233,	12267, 
12300,	12333,	12367,	12400,	12433,	12465,	12499,	12532,	12563,	12597, 
12629,	12662,	12695,	12727,	12759,	12790,	12823,	12856,	12887,	12920, 
12951,	12983,	13016,	13046,	13078,	13109,	13141,	13173,	13203,	13235, 
13266,	13296,	13328,	13358,	13389,	13419,	13450,	13481,	13510,	13541, 
13571,	13602,	13632,	13661,	13692,	13721,	13751,	13781,	13810,	13840, 
13869,	13898,	13929,	13957,	13986,	14015,	14044,	14073,	14101,	14130, 
14158,	14187,	14216,	14244,	14272,	14300,	14328,	14357,	14384,	14412, 
14439,	14468,	14495,	14522,	14550,	14577,	14604,	14632,	14658,	14686, 
14711,	14739,	14765,	14792,	14819,	14844,	14871,	14897,	14923,	14949, 
14975,	15001,	15027,	15053,	15079,	15103,	15129,	15155,	15180,	15205, 
15229,	15255,	15280,	15304,	15329,	15353,	15378,	15403,	15426,	15451, 
15475,	15499,	15523,	15546,	15570,	15594,	15618,	15641,	15664,	15688, 
15711,	15734,	15757,	15780,	15802,	15825,	15848,	15871,	15892,	15915, 
15937,	15960,	15982,	16003,	16026,	16047,	16069,	16090,	16112,	16133, 
16154,	16175,	16197,	16217,	16239,	16259,	16279,	16301,	16320,	16341, 
16361,	16382,	16402,	16421,	16441,	16461,	16481,	16501,	16520,	16539, 
16558,	16578,	16597,	16615,	16635,	16653,	16672,	16691,	16709,	16728, 
16746,	16764,	16782,	16800,	16818,	16835,	16853,	16871,	16888,	16905, 
16923,	16940,	16957,	16974,	16991,	17008,	17024,	17041,	17057,	17074, 
17090,	17106,	17122,	17138,	17154,	17169,	17185,	17201,	17216,	17231, 
17246,	17262,	17277,	17291,	17306,	17321,	17336,	17350,	17364,	17379, 
17393,	17407,	17421,	17435,	17449,	17462,	17476,	17490,	17502,	17515, 
17528,	17542,	17554,	17567,	17580,	17592,	17605,	17618,	17629,	17642, 
17653,	17666,	17678,	17689,	17701,	17712,	17724,	17736,	17746,	17757, 
17768,	17779,	17790,	17800,	17811,	17822,	17832,	17842,	17852,	17862, 
17872,	17882,	17892,	17902,	17911,	17920,	17930,	17938,	17947,	17956, 
17965,	17974,	17983,	17991,	17999,	18008,	18016,	18025,	18032,	18040, 
18047,	18055,	18063,	18070,	18078,	18085,	18092,	18099,	18106,	18112, 
18119,	18126,	18132,	18138,	18144,	18151,	18157,	18163,	18168,	18174, 
18179,	18185,	18191,	18196,	18201,	18206,	18211,	18216,	18220,	18225, 
18229,	18234,	18238,	18242,	18246,	18250,	18254,	18257,	18260,	18264, 
18268,	18271,	18274,	18277,	18280,	18283,	18286,	18288,	18291,	18293, 
18295,	18297,	18300,	18301,	18303,	18305,	18306,	18308,	18309,	18311, 
18312,	18312,	18314,	18315,	18315,	18316,	18316,	18317,	18317,	18317 
}; 
 
Word16 max_rmlt_to_samples_window[MAX_DCT_LENGTH]={ 
0,		43,		88,		131,	176,	219,	265,	310,	353,	398, 
442,	487,	532,	575,	620,	663,	709,	754,	797,	842, 
885,	931,	975,	1019,	1064,	1107,	1152,	1197,	1240,	1286, 
1329,	1373,	1419,	1462,	1507,	1550,	1595,	1640,	1683,	1728, 
1771,	1816,	1861,	1904,	1949,	1992,	2037,	2081,	2125,	2170, 
2212,	2258,	2302,	2345,	2390,	2433,	2477,	2522,	2565,	2610, 
2652,	2697,	2742,	2784,	2829,	2872,	2916,	2961,	3004,	3048, 
3091,	3136,	3180,	3223,	3267,	3310,	3354,	3399,	3441,	3485, 
3528,	3572,	3616,	3659,	3703,	3745,	3790,	3834,	3876,	3920, 
3962,	4006,	4050,	4093,	4136,	4179,	4222,	4266,	4309,	4352, 
4394,	4438,	4482,	4524,	4568,	4610,	4653,	4697,	4739,	4782, 
4824,	4867,	4911,	4953,	4996,	5038,	5081,	5124,	5166,	5209, 
5251,	5294,	5337,	5378,	5421,	5463,	5506,	5548,	5590,	5633, 
5674,	5717,	5759,	5800,	5843,	5884,	5927,	5970,	6011,	6053, 
6094,	6136,	6178,	6219,	6262,	6302,	6345,	6387,	6428,	6470, 
6510,	6552,	6594,	6635,	6677,	6717,	6759,	6801,	6841,	6883, 
6922,	6964,	7006,	7046,	7087,	7127,	7169,	7210,	7250,	7291, 
7331,	7372,	7413,	7453,	7494,	7533,	7574,	7615,	7655,	7695, 
7735,	7776,	7816,	7855,	7896,	7935,	7975,	8016,	8054,	8095, 
8134,	8174,	8214,	8253,	8293,	8332,	8371,	8412,	8450,	8490, 
8528,	8568,	8607,	8646,	8685,	8723,	8763,	8802,	8840,	8879, 
8917,	8956,	8995,	9033,	9072,	9109,	9148,	9187,	9225,	9264, 
9301,	9340,	9378,	9415,	9454,	9491,	9529,	9567,	9604,	9642, 
9679,	9717,	9755,	9791,	9829,	9866,	9903,	9941,	9977,	10015, 
10051,	10089,	10126,	10162,	10199,	10235,	10272,	10309,	10345,	10382, 
10417,	10454,	10491,	10526,	10563,	10598,	10635,	10672,	10706,	10742, 
10778,	10814,	10850,	10885,	10921,	10955,	10991,	11027,	11061,	11097, 
11131,	11166,	11202,	11236,	11271,	11305,	11340,	11376,	11409,	11444, 
11478,	11513,	11547,	11580,	11615,	11648,	11683,	11717,	11751,	11785, 
11817,	11852,	11886,	11918,	11952,	11985,	12018,	12053,	12085,	12118, 
12150,	12184,	12217,	12249,	12282,	12314,	12347,	12380,	12411,	12444, 
12476,	12508,	12541,	12572,	12604,	12635,	12668,	12700,	12731,	12763, 
12794,	12826,	12858,	12888,	12920,	12950,	12982,	13013,	13043,	13074, 
13105,	13135,	13166,	13196,	13227,	13257,	13287,	13317,	13347,	13377, 
13407,	13437,	13467,	13496,	13525,	13555,	13585,	13614,	13643,	13672, 
13701,	13730,	13760,	13787,	13817,	13845,	13873,	13903,	13930,	13959, 
13987,	14015,	14043,	14071,	14099,	14126,	14154,	14183,	14209,	14237, 
14264,	14292,	14319,	14346,	14373,	14400,	14427,	14454,	14480,	14507, 
14533,	14560,	14586,	14612,	14639,	14664,	14691,	14717,	14742,	14768, 
14793,	14819,	14845,	14870,	14896,	14920,	14945,	14971,	14996,	15020, 
15044,	15070,	15094,	15118,	15143,	15167,	15192,	15216,	15239,	15263, 
15287,	15311,	15335,	15358,	15382,	15405,	15428,	15452,	15474,	15498, 
15520,	15543,	15566,	15588,	15611,	15633,	15656,	15678,	15700,	15722, 
15744,	15766,	15788,	15809,	15831,	15852,	15874,	15895,	15916,	15937, 
15958,	15979,	16000,	16020,	16041,	16061,	16082,	16103,	16122,	16143, 
16162,	16183,	16203,	16222,	16242,	16261,	16281,	16300,	16319,	16339, 
16357,	16377,	16396,	16414,	16433,	16451,	16470,	16488,	16506,	16525, 
16542,	16561,	16579,	16596,	16614,	16631,	16649,	16667,	16683,	16700, 
16717,	16735,	16752,	16768,	16785,	16801,	16818,	16834,	16850,	16867, 
16883,	16899,	16915,	16930,	16945,	16961,	16977,	16992,	17007,	17022, 
17037,	17052,	17067,	17081,	17096,	17111,	17126,	17140,	17154,	17168, 
17182,	17196,	17209,	17223,	17237,	17250,	17264,	17277,	17290,	17303, 
17315,	17329,	17341,	17354,	17367,	17379,	17391,	17404,	17415,	17428, 
17439,	17451,	17463,	17475,	17486,	17497,	17509,	17520,	17531,	17542, 
17552,	17563,	17574,	17584,	17595,	17605,	17616,	17626,	17636,	17646, 
17655,	17665,	17675,	17684,	17694,	17703,	17712,	17721,	17730,	17739, 
17747,	17756,	17764,	17773,	17781,	17789,	17798,	17806,	17813,	17821, 
17829,	17836,	17843,	17851,	17858,	17866,	17872,	17879,	17886,	17893, 
17899,	17906,	17912,	17918,	17924,	17931,	17937,	17942,	17948,	17953, 
17959,	17964,	17970,	17975,	17980,	17985,	17990,	17995,	17999,	18004, 
18008,	18012,	18016,	18021,	18025,	18028,	18032,	18036,	18039,	18043, 
18046,	18049,	18052,	18055,	18058,	18061,	18064,	18067,	18069,	18071, 
18073,	18075,	18078,	18079,	18081,	18083,	18084,	18086,	18087,	18089, 
18090,	18090,	18091,	18092,	18093,	18094,	18094,	18095,	18095,	18095 
};