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