1 /* ------------------------------------------------------------------
2 * Copyright (C) 1998-2009 PacketVideo
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
14 * See the License for the specific language governing permissions
15 * and limitations under the License.
16 * -------------------------------------------------------------------
18 /****************************************************************************************
19 Portions of this file are derived from the following 3GPP standard:
22 ANSI-C code for the Adaptive Multi-Rate - Wideband (AMR-WB) speech codec
23 Available from http://www.3gpp.org
25 (C) 2007, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC)
26 Permission to distribute, modify and use this file under the standard license
27 terms listed above has been obtained from the copyright holder.
28 ****************************************************************************************/
29 /*-------------------------------------------------------------------*
31 *-------------------------------------------------------------------*
32 * Quantization tables for two-stage of ISFs (split by 2 in 1st stage)
33 * Version whith prediction MU = 0.25
34 *-------------------------------------------------------------------*/
43 const int16 mean_isf[ORDER] =
46 738, 1326, 2336, 3578, 4596, 5662, 6711, 7730,
47 8750, 9753, 10705, 11728, 12833, 13971, 15043, 4037
52 * isf codebooks: two-stage VQ with split-by-5 in 2nd stage
54 * codebook vector dimension number of vectors
55 * ~~~~~~~~ ~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~
66 * 1st stage codebook; 1st split: isf0 to isf8
69 const int16 dico1_isf[SIZE_BK1*9] =
72 579, 1081, 1035, 390, 3, -263, -198, -82, 38,
73 18, -68, -12, 313, 761, 405, 249, 111, -76,
74 740, 1263, 1292, 1006, 997, 1019, 1017, 976, 923,
75 -91, 827, 948, 648, 613, 535, 522, 490, 421,
76 41, -44, -281, -472, 652, 534, 193, 135, -90,
77 41, -121, -356, -60, 663, 307, 61, -48, -344,
78 557, 946, 1049, 867, 846, 990, 1112, 1262, 1241,
79 -118, -204, 328, 512, 870, 793, 610, 402, 186,
80 156, 293, 74, -338, -475, -897, -594, -161, -497,
81 226, 131, -138, 307, 169, -271, -164, -387, -624,
82 62, -32, -61, -252, -541, -828, -1027, -523, -662,
83 102, -61, 141, 112, -270, -251, -541, 25, -150,
84 6, -132, -356, -686, -96, -322, -522, -31, -326,
85 -36, -209, -521, -229, 307, -132, -5, -99, -384,
86 60, -51, -237, -668, -973, -407, -708, -75, -172,
87 26, -138, -266, 111, -302, 43, -278, -356, -359,
88 570, 822, 496, -154, -312, -92, 137, 279, 371,
89 -146, 368, 409, 68, 6, 77, 167, 202, 162,
90 633, 898, 996, 756, 662, 683, 783, 909, 996,
91 -103, 294, 607, 415, 483, 462, 480, 431, 408,
92 -120, -338, -612, -524, 584, 331, 92, 433, 276,
93 -178, -293, -154, -41, 269, 100, -9, 213, 160,
94 830, 736, 278, 820, 1254, 686, 712, 1039, 473,
95 -218, -304, 463, 454, 397, 273, 202, 286, 273,
96 -232, 7, 6, -388, -472, -427, -378, -167, -100,
97 -294, -183, 134, -47, 101, -88, -84, -117, -3,
98 57, 17, -202, -634, -989, -1119, -533, 176, -36,
99 120, -28, 23, 111, -319, 318, -22, -77, 266,
100 -271, -464, -434, -658, -640, -385, -385, -99, -69,
101 -198, -259, -266, -44, -39, -139, -137, 171, 66,
102 9, -145, -377, -846, -1000, -111, -325, 342, 135,
103 -81, -286, -380, 192, -57, 307, 76, -24, -140,
104 677, 702, 247, 56, 249, 141, -105, -236, -99,
105 36, -39, -69, 348, 198, -93, 322, 91, -72,
106 503, 885, 1508, 1307, 1282, 1172, 1119, 1209, 1061,
107 416, 719, 989, 1227, 1001, 1052, 954, 741, 1044,
108 -127, -376, -657, 139, 623, 223, 501, 306, 220,
109 -113, -384, -796, 504, 438, 85, 213, -83, -194,
110 585, 1132, 1233, 1091, 1247, 1433, 1512, 1448, 1314,
111 -174, -422, 7, 1155, 1089, 1182, 1003, 945, 806,
112 8, -126, -317, -103, -351, -695, -98, -268, -537,
113 33, -103, -290, 167, -39, -407, 44, -208, -375,
114 104, -23, -64, -291, -637, -851, -1084, -61, -112,
115 -75, -306, -434, 218, -148, -354, -680, -133, -216,
116 -121, -377, -718, -97, -130, -361, -156, -379, -599,
117 -56, -254, -586, 235, 157, -214, 11, -260, -149,
118 -124, -267, -397, -580, -593, -527, -805, -385, 346,
119 -193, -440, -708, -351, -141, -255, -499, -147, -185,
120 448, 660, 494, 208, 509, 461, 338, 291, 149,
121 -223, 88, 335, 159, 212, 191, 286, 308, 205,
122 -31, 469, 803, 659, 619, 658, 843, 987, 1113,
123 -171, -242, 514, 362, 295, 524, 552, 694, 585,
124 -64, -308, -448, -21, 284, 786, 446, 289, 92,
125 -218, -390, -7, 169, 206, 330, 352, 408, 358,
126 -36, 702, 959, 859, 861, 1115, 1269, 1357, 1305,
127 -133, -341, -65, 678, 417, 440, 486, 518, 780,
128 33, -44, -191, -344, -461, -755, -201, 217, -31,
129 -353, -547, -44, 123, -61, -68, -79, 29, 60,
130 73, -57, -406, -766, -1243, -1203, 240, 400, 165,
131 -73, -282, -601, -213, -171, -375, 332, 35, -103,
132 -29, -207, -553, -476, -638, -908, 172, -22, -135,
133 -192, -239, -164, -103, -111, -47, 153, 125, 110,
134 -1, -203, -570, -1030, -1424, -535, 155, 1, 147,
135 -333, -653, -865, -197, -158, -21, -44, 95, 108,
136 389, 588, 490, 33, -237, -524, -628, -136, -260,
137 40, -177, -462, 453, 862, 380, 131, -130, -405,
138 842, 1678, 1841, 1549, 1474, 1256, 1082, 905, 742,
139 370, 1216, 1768, 1633, 1212, 636, 22, -330, 71,
140 -76, -281, -741, -742, 898, 619, 277, 71, -222,
141 -32, -265, -556, -25, 994, 682, 305, 126, -165,
142 73, 738, 893, 968, 993, 1768, 2273, 1840, 1391,
143 -69, -349, -585, 234, 1158, 903, 626, 510, 251,
144 -1, -99, -272, -210, -603, -351, -540, -811, -383,
145 -16, -230, -504, 410, 149, -205, -343, -651, -639,
146 103, -9, -227, -205, -562, -781, -1079, -1208, -156,
147 143, 63, -135, -67, -317, -602, -784, -1154, -640,
148 -144, -391, -674, -622, -200, -254, -660, -947, -395,
149 -40, -250, -625, 27, 543, 94, -131, -386, -673,
150 -123, -371, -757, -451, -564, -614, -415, -711, -35,
151 -116, -309, -593, -268, 239, -33, -338, -650, -135,
152 94, 251, 554, 57, -312, -423, -154, -57, 235,
153 -268, -71, 381, 114, -44, -87, 125, 173, 133,
154 1513, 1714, 1238, 534, 276, 315, 461, 459, 508,
155 -131, -19, 1149, 670, 486, 356, 309, 369, 296,
156 -223, -501, -899, -722, -70, 6, 131, 310, 394,
157 -99, -303, -517, 249, 64, -53, 135, -11, 453,
158 -147, -399, -730, -401, 817, 738, 802, 749, 575,
159 -154, -435, -739, 800, 593, 366, 529, 318, 326,
160 -224, 45, -39, -387, -515, -518, -608, -384, -321,
161 -315, -377, 143, -101, -113, -377, -177, -144, -12,
162 117, 40, -239, -651, -1051, -581, -737, -990, -328,
163 26, -50, -157, -23, -453, -283, -531, -546, 192,
164 -252, -501, -743, -589, -627, -499, -328, -118, -72,
165 -324, -494, -244, -306, -144, -177, -262, -135, -78,
166 -36, -234, -519, -961, -1290, -314, -479, -371, -45,
167 -95, -292, -535, -8, -300, 112, -164, -277, 198,
168 -99, -128, 880, 836, 579, 351, 23, -95, -217,
169 -27, -258, 124, 1011, 597, 425, 144, 7, -73,
170 421, 1293, 1640, 1623, 1742, 1617, 1499, 1284, 1006,
171 -95, 752, 1680, 1569, 1618, 1436, 1200, 980, 712,
172 -69, -300, -683, -435, 1132, 899, 504, 332, 109,
173 -74, -323, -637, 563, 1074, 608, 371, 105, -49,
174 -78, 831, 1194, 1110, 1378, 1481, 1492, 1365, 1217,
175 -259, -121, 1440, 1334, 1628, 1490, 1438, 1223, 933,
176 -82, -306, -613, -222, -378, -675, -545, -671, -845,
177 53, -124, -347, 422, 52, -125, -270, -529, 9,
178 79, -89, -320, -662, -999, -1199, -1243, -676, -297,
179 -68, -273, -611, 137, -146, -397, -627, -845, -220,
180 -112, -346, -797, -826, 234, -132, -188, -278, -522,
181 -159, -405, -734, -419, 293, 74, -167, -167, 184,
182 -153, -437, -833, -1080, -336, -472, -561, -340, -253,
183 -169, -423, -820, -904, -131, -19, -346, -604, 31,
184 33, -31, 312, 62, -148, 49, -59, 564, 486,
185 -306, -333, 194, -44, 67, 72, 147, 205, 243,
186 -207, -49, 1360, 983, 969, 991, 1014, 1110, 973,
187 -211, -172, 883, 627, 711, 674, 705, 798, 746,
188 -88, -325, -763, -974, 687, 908, 514, 382, 172,
189 -292, -612, -805, 63, 131, 270, 259, 352, 348,
190 -235, -84, 955, 818, 1120, 1289, 1559, 1480, 1285,
191 -180, -461, -614, 657, 691, 745, 854, 783, 713,
192 -97, -309, -477, -614, -777, -734, -768, -526, -472,
193 -344, -476, -35, -169, 49, -77, -150, -240, -141,
194 -52, -268, -639, -919, -1278, -1113, -342, -333, -151,
195 -68, -242, -585, -73, -209, -478, -159, -429, 133,
196 -197, -499, -1005, -1268, -272, -224, -105, -67, 17,
197 -363, -618, -414, -116, -62, 20, 10, 116, 108,
198 -195, -475, -906, -1260, -891, -441, -277, -142, -28,
199 -226, -519, -950, -700, -275, -266, -116, -105, 82,
200 404, 511, 520, 327, 17, -194, -333, -536, -586,
201 -114, -130, 276, 237, 204, 342, 135, -16, -111,
202 670, 1208, 1168, 860, 742, 601, 528, 403, 309,
203 397, 621, 966, 752, 579, 398, 400, 329, 252,
204 191, 180, -137, -467, 272, 106, -95, 17, -192,
205 -80, -290, -626, 194, 598, 196, 21, -281, 77,
206 510, 864, 1108, 807, 939, 902, 925, 717, 481,
207 137, 367, 534, 764, 670, 382, 296, 153, 84,
208 303, 497, 144, -85, -125, -539, -482, -464, -764,
209 233, 347, 68, -147, 169, -210, -242, -226, -482,
210 307, 422, 154, -175, -386, -722, -724, -904, -1015,
211 309, 308, 160, -60, -470, -420, -598, -791, -219,
212 68, 121, -137, -560, -146, -446, -515, -494, -729,
213 130, 53, -227, 46, 474, 32, -161, -192, -490,
214 213, 164, -71, -465, -876, -161, -456, -587, -48,
215 218, 117, 39, 177, -194, -88, -226, -418, 50,
216 210, 547, 569, 279, 121, -44, -50, 10, -84,
217 58, 140, 182, -5, 267, 117, 106, 211, 198,
218 539, 835, 913, 719, 617, 544, 591, 565, 642,
219 153, 559, 872, 460, 222, 108, 188, 180, 183,
220 158, 119, 284, -153, -271, 229, 87, 110, -57,
221 -183, 82, 118, 21, 13, 40, 118, 191, 185,
222 162, 889, 654, 108, -34, 244, 488, 561, 532,
223 163, 56, 609, 341, 50, 329, 68, 266, 218,
224 100, 206, 18, -304, -107, -436, -487, -65, -306,
225 -86, 154, 134, -30, -45, -73, -104, -80, -96,
226 245, 330, 10, -440, -849, -1082, 79, 40, -265,
227 196, 372, 272, -181, -493, -389, 275, 80, -59,
228 2, -12, -246, -505, -100, -436, 21, -187, -431,
229 -221, -48, 36, -271, -186, -147, -109, 26, 71,
230 213, 140, 72, -351, -620, -84, -363, 69, 46,
231 91, 167, -3, -95, -99, -105, -48, 114, 147,
232 259, 249, 172, 607, 406, 52, 59, -189, -320,
233 115, -85, -54, 574, 128, 226, -59, -253, 130,
234 -62, 1033, 1308, 1035, 1127, 1098, 1029, 961, 823,
235 39, 364, 757, 940, 728, 660, 659, 583, 770,
236 -115, -338, -760, -471, 394, 37, 441, 178, 6,
237 -57, -305, -525, 796, 453, 188, -4, -114, 248,
238 71, 444, 797, 731, 1096, 1157, 1222, 1029, 811,
239 135, 359, 551, 425, 749, 815, 874, 704, 502,
240 132, 247, 0, -206, -449, -750, -258, -514, -633,
241 248, 249, 91, 121, -195, -499, -90, -282, -435,
242 78, 20, -277, -623, -983, -1224, -415, -458, -639,
243 347, 509, 208, -179, -464, -728, -76, -237, -486,
244 -103, -343, -756, -713, -265, -609, -191, -398, -636,
245 -121, -383, -749, 567, 252, -36, -354, -417, -50,
246 204, 100, -149, -650, -1081, -47, -7, -263, 111,
247 -46, -180, -267, -324, -562, -394, -692, 398, 292,
248 482, 670, 683, 624, 442, 165, 116, 36, -149,
249 108, 247, 291, 247, 355, 122, 109, 224, 296,
250 -14, 945, 990, 801, 755, 815, 847, 913, 892,
251 292, 349, 725, 482, 388, 329, 429, 620, 667,
252 -34, 197, 213, -127, 84, 494, 620, 575, 375,
253 126, 207, 172, 167, 362, 202, 296, 395, 455,
254 -6, 250, 539, 467, 636, 801, 1149, 1287, 1118,
255 27, 240, 369, 280, 440, 411, 634, 892, 953,
256 159, 170, -58, -395, -797, -690, 77, -211, -334,
257 -5, -28, -13, -74, -335, -603, 300, 88, -205,
258 82, -33, -364, -698, -1203, -1153, 110, -146, -289,
259 113, 1, -243, -588, -994, -496, 414, 160, 42,
260 -56, -247, -440, -693, -996, -479, 11, -178, -357,
261 -151, -353, -327, -211, -340, 141, 65, 425, 453,
262 34, -169, -455, -932, -1215, 138, 499, 256, 324,
263 68, 139, -15, -547, -478, 17, 306, 502, 481,
264 -32, -134, 445, 129, -143, -244, -503, -507, -599,
265 61, -140, -345, 496, 458, -2, 20, -227, -514,
266 394, 1765, 1666, 1339, 1117, 806, 642, 479, 380,
267 215, 519, 920, 1053, 1090, 791, 528, 290, 155,
268 -54, -233, -647, -602, 639, 294, -2, -167, -442,
269 -78, -315, -791, -113, 820, 403, 158, -116, -356,
270 529, 1851, 2003, 1228, 622, -41, -416, 344, 819,
271 -105, -379, -236, 1224, 893, 749, 568, 356, 214,
272 -17, -199, -144, 50, -283, -247, -578, -846, -1087,
273 69, -11, -381, -206, 209, -284, -387, -416, -716,
274 39, -5, -145, -374, -682, -909, -1074, -1169, -1066,
275 287, 226, 67, -221, -662, -171, -421, -642, -707,
276 -132, -348, -538, -448, -20, -4, -354, -748, -933,
277 4, -75, -289, -598, 317, 52, -208, -297, -559,
278 -88, -264, -358, -589, -631, -248, -523, -822, -1071,
279 70, -8, 54, -314, -515, 92, -146, -274, -493,
280 199, 62, 391, 158, -141, 71, -219, -203, -207,
281 152, 40, 329, 162, -29, 48, -149, 108, 127,
282 635, 1058, 883, 492, 372, 312, 317, 274, 241,
283 267, 722, 1256, 882, 625, 248, 8, -81, -60,
284 -58, -138, -291, -600, -12, -2, -39, 147, 117,
285 -107, -345, -513, 459, 76, 92, -272, 388, 262,
286 362, 516, 203, -409, -716, -831, -331, 185, 209,
287 -117, -391, -298, 671, 292, 538, 257, 166, -38,
288 -102, -319, -194, -283, -573, -262, -579, -219, -444,
289 -235, 78, 11, -168, -101, -229, -263, -321, -123,
290 70, 50, -170, -599, -996, -588, -263, -516, -455,
291 394, 363, 229, -136, -538, 21, -183, -348, -201,
292 -124, -368, -640, -879, -847, -209, -409, -494, -515,
293 -127, -341, -541, -425, -510, -10, -252, -473, -291,
294 84, -69, -201, -676, -868, 103, -311, -132, -320,
295 5, -173, -188, -297, -628, 197, -57, 7, -11,
296 49, -160, 56, 558, 111, 33, -311, -440, -463,
297 -1, -246, -307, 862, 453, 139, -170, -355, -232,
298 279, 966, 1642, 1478, 1463, 1123, 795, 525, 339,
299 -197, -38, 1702, 1331, 1252, 950, 692, 504, 426,
300 -108, -344, -861, -1172, 444, 354, 88, -46, -220,
301 -53, -321, -494, 1113, 744, 364, 198, -34, -75,
302 457, 955, 1177, 1214, 1427, 1457, 1345, 917, 539,
303 -69, 199, 897, 1140, 1343, 1183, 977, 742, 522,
304 122, 44, -269, 27, -155, -562, -307, -590, -773,
305 154, 42, -160, 252, -129, -305, -471, -733, -371,
306 135, 185, -82, -416, -722, -913, -504, -743, -880,
307 149, 214, -84, -329, -680, -835, -426, -661, -81,
308 -128, -380, -735, -998, -337, 17, -182, -467, -697,
309 -84, -290, -510, -592, 13, 440, 154, -38, -279,
310 70, -61, -246, -727, -1047, -80, -381, -535, -704,
311 178, -2, -146, -670, -938, 482, 138, 63, 65,
312 -11, 15, 772, 443, 142, -20, -209, -126, -161,
313 -32, -249, 95, 552, 124, 30, -343, 82, -86,
314 148, 751, 1515, 1105, 867, 606, 474, 448, 399,
315 -163, -257, 899, 1097, 906, 751, 502, 390, 294,
316 -51, -258, -447, -806, -368, 763, 464, 364, 183,
317 -166, -374, -367, 87, 35, 399, 418, 856, 833,
318 -205, -310, 588, 778, 785, 1065, 1118, 1245, 1157,
319 -173, -312, 107, 345, 400, 790, 870, 1113, 1001,
320 -7, -120, -387, -410, -614, -943, -226, -384, -491,
321 -203, -288, -51, -331, -90, -178, -408, -573, -338,
322 56, -29, -273, -627, -1041, -798, -247, -467, 148,
323 66, -2, -205, -205, -575, -349, -57, -352, -58,
324 -45, -225, -471, -924, -497, 77, -32, 44, -135,
325 -277, -491, -497, -502, -424, -202, -137, 77, 96,
326 26, -179, -469, -1008, -1260, 262, -35, -132, -259,
327 -66, -232, -447, -533, -789, -191, -100, -267, 364
330 /*------------------------------------------------*
331 * 1st stage codebook; 2nd split: isf9 to isf15
332 *------------------------------------------------*/
334 const int16 dico2_isf[SIZE_BK2*7] =
337 1357, 1313, 1136, 784, 438, 181, 145,
338 636, 648, 667, 568, 442, 217, 362,
339 427, 440, 674, 524, 332, 117, -417,
340 121, 295, 468, 465, 230, 44, -221,
341 -147, -240, 149, 80, 390, 278, 106,
342 -418, -556, 552, 511, 235, 144, -95,
343 43, 193, 274, 150, 67, 34, -273,
344 -43, -126, 171, 416, 282, 63, -354,
345 -372, -86, -344, -108, -94, -182, -89,
346 -600, -840, -200, 465, 258, -11, -253,
347 -48, 329, 97, -290, -543, -795, -354,
348 -570, -117, 187, 10, -133, -416, -76,
349 -618, -129, -247, -371, 45, -76, 277,
350 -1022, -1079, 126, 474, 254, 127, 52,
351 -281, 76, -167, -361, -283, -551, -283,
352 -119, -52, -1, 134, -32, -204, -415,
353 1064, 827, 637, 684, 464, 209, 12,
354 482, 416, 449, 371, 335, 294, 194,
355 719, 576, 365, 135, 113, 91, -199,
356 298, 176, 493, 366, 194, 163, 36,
357 -35, -236, -259, -36, -4, 99, 152,
358 -98, -306, -27, 228, 90, 111, -86,
359 91, 13, -211, -258, -106, 86, -64,
360 73, -35, -57, -31, 162, 35, -192,
361 -109, -335, -629, -66, -61, -128, 322,
362 -495, -669, -728, 193, 31, -220, 122,
363 324, 95, -89, -91, -409, -710, -154,
364 0, -234, 92, 33, -343, -609, -220,
365 -343, -408, -476, -655, -153, 82, 222,
366 -490, -745, -255, 49, -48, 135, -127,
367 119, -67, -328, -390, -272, -545, -56,
368 -57, -130, -10, -7, -164, -47, -22,
369 984, 1064, 961, 568, 210, -27, 16,
370 811, 691, 754, 514, 224, -35, 166,
371 662, 704, 618, 386, 57, -211, -257,
372 510, 359, 418, 393, 91, -144, -18,
373 -193, -31, -27, 223, 89, -143, 24,
374 -112, -98, 471, 319, 185, 3, 175,
375 252, 146, -47, 272, 48, -211, -234,
376 146, 69, 203, 364, 68, -52, 51,
377 -259, -478, -697, -349, -758, -501, 63,
378 -501, -769, -289, 79, -311, -497, -106,
379 251, 53, -235, -469, -895, -884, 145,
380 -416, -551, 140, -133, -523, -775, 44,
381 -326, -423, -713, -497, -86, -431, 99,
382 -757, -772, -160, -76, -46, -32, 379,
383 85, -35, -200, -401, -663, -1040, -247,
384 -180, -330, -92, -376, 27, -183, -110,
385 1279, 1086, 781, 502, 324, 164, 157,
386 682, 466, 449, 277, 146, 28, 409,
387 635, 472, 390, 107, -232, -538, -139,
388 196, 396, 332, 213, 209, -29, -81,
389 150, -95, -312, 76, -77, -320, -50,
390 46, 9, 47, 175, 139, 30, 384,
391 218, 206, -24, -250, -96, -276, -183,
392 26, 119, 38, 14, -4, -133, -52,
393 -477, -614, -987, -715, -631, -813, 200,
394 -744, -1009, -1065, -745, -631, -171, 18,
395 -137, -251, -483, -613, -980, -1203, 12,
396 -605, -767, -562, -686, -1088, -515, 58,
397 -202, -428, -782, -1072, -96, -234, -179,
398 -480, -709, -1070, -897, -131, -92, 321,
399 -145, -193, -512, -729, -572, -765, -210,
400 -331, -585, -525, -631, -281, -208, -303,
401 1165, 1104, 939, 828, 716, 426, 155,
402 6, -109, 820, 778, 415, 113, -27,
403 381, 339, 314, 265, 121, -9, -474,
404 -373, 47, 584, 442, 99, -231, -113,
405 -496, -38, -285, 262, 305, 170, 4,
406 -587, -556, 69, 66, 471, 354, 13,
407 -138, 70, -18, 106, 67, 167, -302,
408 -445, -141, 185, 191, 151, 83, -133,
409 -257, -521, -720, -198, 134, -46, -182,
410 -819, -1168, -777, 512, 359, 95, -113,
411 137, -2, -74, -138, -401, -114, -371,
412 -242, -466, 204, 223, -31, -212, -192,
413 -532, -637, -466, -686, 256, 277, -139,
414 -1141, -1244, -381, -75, -54, 14, 88,
415 -311, 115, -143, -499, -343, 124, -416,
416 -616, -147, -135, 43, -4, 121, -369,
417 835, 783, 641, 390, 355, 350, 64,
418 72, 194, 443, 467, 436, 219, 372,
419 464, 369, 192, 4, -156, -72, -226,
420 57, 206, 303, 205, 188, 101, 265,
421 -40, -205, -488, -184, 276, 64, -26,
422 -217, -433, -297, 137, 328, 308, -289,
423 378, 81, -308, -465, 57, -37, 227,
424 -100, 24, -36, -151, 199, 8, 143,
425 -426, -697, -1059, -133, 388, 161, 321,
426 -644, -1023, -1271, 39, 66, -123, 70,
427 372, 177, -173, -556, -553, -304, -189,
428 -117, -369, -425, -122, -462, -152, -73,
429 -649, -850, -1189, -767, 497, 360, 222,
430 -798, -1139, -1455, -190, 430, 234, 179,
431 42, -94, -405, -692, 38, -202, -246,
432 -169, -366, -290, -88, -64, 32, -292,
433 1010, 923, 938, 710, 465, 230, 342,
434 217, 300, 1054, 675, 68, -458, -179,
435 78, 453, 316, 18, -237, -496, -243,
436 167, 21, 424, 215, -91, -303, -170,
437 -290, -81, -70, -67, 40, 54, -59,
438 -353, -427, -90, 53, 94, 9, 54,
439 -28, 318, 283, 15, -240, -58, 79,
440 -75, -121, 229, 35, 58, 6, -133,
441 -351, -514, -744, -834, -705, -137, 164,
442 -1124, -1388, -1055, -230, -73, 40, 36,
443 -163, -233, -532, -785, -1170, -697, 96,
444 -788, -959, -246, -430, -624, -165, -8,
445 -856, -540, -630, -907, -337, -70, 76,
446 -937, -1042, -659, -733, -208, 199, -26,
447 -523, 78, -98, -501, -869, -890, -81,
448 -624, -703, -45, -348, -25, 87, -186,
449 1005, 823, 546, 249, 90, -22, 207,
450 298, 397, 381, 319, 200, 62, 303,
451 473, 379, 133, -247, -632, -441, 75,
452 284, 208, 391, 115, -25, 44, 95,
453 -72, 79, -95, -63, -129, -293, 203,
454 -164, -349, 115, 122, 69, -1, 378,
455 348, 170, 99, 58, -179, -302, 188,
456 -190, -2, 150, 23, -51, -11, 216,
457 -615, -863, -1090, -1427, -802, -48, -6,
458 -961, -1276, -1548, -727, -58, 56, 223,
459 -124, -255, -561, -988, -1277, -148, -82,
460 -480, -660, -891, -1191, -1339, -325, 20,
461 -621, -917, -1296, -1350, 264, 289, 50,
462 -844, -1022, -1345, -1329, -293, 46, 278,
463 -260, -468, -829, -1176, -533, -560, -78,
464 -215, -484, -822, -1233, -791, 15, -138,
465 1301, 1317, 1262, 1048, 716, 357, -64,
466 578, 824, 925, 802, 630, 362, 102,
467 470, 925, 767, 514, 327, 190, -112,
468 225, 492, 495, 437, 598, 384, -45,
469 43, 82, -42, 175, 519, 342, -64,
470 -304, -154, 159, 576, 403, 221, 327,
471 214, 244, 122, -62, 312, 92, -160,
472 218, 208, 310, 268, 306, 323, -199,
473 -285, -269, -79, -124, -143, -153, 236,
474 -205, -384, -426, 344, 59, -185, -184,
475 -272, 247, 126, -210, -518, -468, 78,
476 -99, -120, 502, 160, -280, -557, 304,
477 -423, -17, -283, -443, 215, 212, -140,
478 -564, -684, -228, 510, 361, 130, 323,
479 -428, 335, 98, -65, 36, -215, -246,
480 -362, 51, 364, -16, -234, 150, -165,
481 914, 883, 751, 653, 676, 464, -153,
482 631, 545, 535, 720, 596, 360, -81,
483 783, 712, 512, 439, 341, 251, -391,
484 497, 417, 249, 372, 295, 173, -193,
485 128, -110, -385, 93, 39, 173, -231,
486 216, -59, -253, 462, 389, 154, 69,
487 455, 270, -4, -337, -49, 233, -322,
488 307, 143, 53, 218, 128, 236, -156,
489 -37, -186, -240, -411, -110, 9, 399,
490 -140, -365, -628, 258, 380, 214, 277,
491 131, 454, 177, -285, -520, 108, -214,
492 77, -141, 201, -123, -490, -131, 60,
493 -14, -194, -521, -741, 273, 362, -33,
494 -362, -566, -287, -228, 161, 237, 317,
495 -269, 195, -75, -375, -204, 11, 77,
496 -128, -264, -156, -223, -475, 265, 27,
497 1238, 1147, 916, 689, 432, 210, -280,
498 800, 664, 879, 726, 411, 160, -164,
499 454, 686, 536, 275, 147, 46, 111,
500 303, 486, 512, 355, 241, 181, -69,
501 79, 92, 29, 147, 233, 52, 17,
502 -171, 289, 131, 439, 271, 3, -10,
503 413, 241, 144, 174, 155, -2, 14,
504 58, 217, 247, 219, 149, 175, -18,
505 228, -8, -240, -206, -513, -191, 202,
506 -96, -272, -454, 33, -300, -575, 46,
507 -10, -108, -246, -347, -770, -535, 9,
508 -326, -430, -61, -321, -704, -299, 201,
509 -1, -280, -603, -419, -185, 18, -36,
510 -516, -522, -379, -291, -181, -97, 27,
511 -159, -313, -525, -224, -510, -831, -197,
512 -292, -459, -59, -310, -562, -143, -351,
513 1066, 912, 631, 389, 207, 86, -224,
514 596, 512, 596, 505, 314, 122, -48,
515 787, 861, 441, -93, -303, 33, -190,
516 257, 469, 337, 51, 15, 298, -93,
517 295, 73, -119, 25, 36, 23, 108,
518 -28, -3, -32, 114, 21, 185, 107,
519 482, 305, 15, -279, -319, 52, 96,
520 226, 46, 115, 72, -136, 133, -125,
521 18, -207, -559, -590, -503, -482, 321,
522 -571, -789, -951, -172, -441, -538, 113,
523 181, 14, -310, -641, -1001, -202, 159,
524 -136, -393, -433, -513, -911, -144, -22,
525 72, -265, -706, -954, -159, 53, 332,
526 -338, -591, -852, -383, -395, 56, 44,
527 43, -158, -464, -897, -631, -157, -294,
528 -161, -128, -328, -573, -483, -125, 11,
529 1017, 906, 1051, 1005, 679, 341, -102,
530 359, 334, 1567, 1314, 723, 105, 10,
531 -65, 726, 529, 301, 220, 43, -273,
532 -510, 436, 719, 566, 358, 179, 114,
533 -560, 298, 133, -120, 342, 225, 14,
534 -899, -101, 217, 617, 400, 146, -58,
535 -41, 352, 82, -196, 39, 121, -167,
536 -212, 59, 447, 284, 423, 250, -169,
537 -371, -484, -596, 30, -41, 249, 22,
538 -372, -650, -794, 477, 445, 216, -79,
539 -352, 275, 17, -443, -929, 92, 19,
540 -699, -696, 431, 264, -49, -310, 182,
541 -978, -217, -430, -400, 101, 261, 72,
542 -929, -889, -357, -13, 463, 378, 236,
543 -826, 56, 30, -299, -360, -128, -51,
544 -878, -299, -111, 75, 65, 36, 3,
545 817, 368, -25, 354, 697, 591, -173,
546 309, 212, 222, 751, 484, 140, -56,
547 593, 379, 70, -8, 258, 180, 110,
548 165, -46, 255, 297, 219, 273, 105,
549 160, -70, -358, -181, 379, 330, 319,
550 -238, -369, -198, 740, 580, 319, -143,
551 201, 109, -202, -456, 328, 276, -141,
552 203, 170, 111, 42, 207, 360, 188,
553 -345, -399, -513, -233, 650, 422, 81,
554 -635, -961, -1220, 463, 539, 204, 209,
555 202, -25, -194, -498, -787, 193, -143,
556 -449, -538, 195, -106, -331, 68, 62,
557 -228, -477, -840, -576, 317, 128, 283,
558 -671, -937, -807, -114, 391, 335, -62,
559 246, 2, -314, -679, -303, 180, -88,
560 -107, -272, 90, -198, -28, 290, -112,
561 885, 1149, 1021, 712, 496, 281, -83,
562 269, 492, 787, 643, 347, 70, 124,
563 336, 636, 499, 92, -229, -179, 191,
564 26, 402, 564, 340, 149, -11, 135,
565 -440, 561, 470, 204, -72, -186, 140,
566 -720, 14, 355, 229, 68, -133, 465,
567 110, 310, 103, 12, 106, 29, 158,
568 -178, 113, 161, 142, 121, 115, 27,
569 -651, -414, -645, -152, -164, -13, -429,
570 -639, -944, -681, -104, -81, 52, -189,
571 -663, -164, -316, -683, -954, -205, -83,
572 -609, -669, -172, -517, -694, 283, -80,
573 -646, -152, -383, -678, -246, -40, -143,
574 -747, -796, -745, -390, -98, 43, 275,
575 -599, -199, -398, -433, -436, -538, 31,
576 -1107, -568, -376, -265, -126, -21, 1,
577 847, 573, 308, 392, 305, 101, 55,
578 273, 293, 201, 267, 346, 201, 123,
579 727, 480, 226, 2, -65, -138, 164,
580 273, 208, 173, 292, 12, 253, 174,
581 340, 207, 180, 88, 116, 46, 475,
582 -460, -166, -30, 13, 110, 173, 396,
583 137, 88, 43, -137, -94, 34, 284,
584 96, -14, 226, 40, 63, 70, 130,
585 -467, -735, -1012, -1174, -307, 305, -67,
586 -612, -920, -1146, -567, -8, 92, -25,
587 -182, -271, -492, -754, -857, 287, -75,
588 -494, -787, -689, -683, -709, 137, -326,
589 -288, -550, -903, -1105, 334, 321, -62,
590 -354, -653, -834, -445, 1, 377, -152,
591 -162, -306, -608, -937, -297, 247, -192,
592 -234, -477, -244, -488, -266, 342, -332
596 * 2nd stage codebook; 1st split: isf2_0 to isf2_2
600 const int16 dico21_isf[SIZE_BK21*3] =
672 * 2nd stage codebook; 2nd split: isf2_3 to isf2_5
676 const int16 dico22_isf[SIZE_BK22*3] =
811 * 2nd stage codebook; 3rd split: isf2_6 to isf2_8
815 const int16 dico23_isf[SIZE_BK23*3] =
950 * 2nd stage codebook; 4th split: isf2_9 to isf2_11
953 const int16 dico24_isf[SIZE_BK24*3] =
992 * 2nd stage codebook; 5th split: isf2_12 to isf2_15
995 const int16 dico25_isf[SIZE_BK25*4] =
1002 -89, 101, -185, 125,
1005 -104, -154, 72, 296,
1006 144, -68, -268, -25,
1008 22, 155, -186, -119,
1010 -114, -37, -175, -33,
1011 -94, -222, -189, 122,
1012 -132, -119, -191, -270,
1013 -172, -173, 18, -43,
1014 279, 135, -42, -128,
1015 187, -86, 229, -138,
1021 -154, -133, 289, 67,
1022 143, -37, -86, -326,
1028 -209, 112, -22, -167,
1029 -91, -151, 168, -262
1036 * isf codebooks: two-stage VQ with split-by-3 in 2nd stage
1037 * 1st stage is kept the same as the 46 bit quantizer
1039 * codebook vector dimension number of vectors
1040 * ~~~~~~~~ ~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~
1048 const int16 dico21_isf_36b[SIZE_BK21_36b*5] =
1051 -52, -96, 212, 315, -73,
1052 82, -204, 363, 136, -197,
1053 -126, -331, 183, 218, 143,
1054 -49, -41, 557, 230, 72,
1055 2, -73, 163, 377, 221,
1056 133, 111, 278, 215, -110,
1057 -102, -20, 284, 113, 273,
1058 84, 319, 290, 18, 85,
1059 -25, -5, 125, 132, -204,
1060 -38, -5, 286, -9, -356,
1061 -140, -256, 92, 117, -189,
1062 -144, 191, 313, 51, -98,
1063 167, -10, 44, 247, 36,
1064 381, 197, 238, 74, 6,
1065 38, -408, 29, -3, -85,
1066 92, 266, 157, -25, -200,
1067 161, -121, 70, 84, -140,
1068 -16, -86, 112, -94, -189,
1069 -269, -270, 351, 107, -24,
1070 -68, -67, 492, -103, -155,
1071 -53, -131, 62, 122, 10,
1072 135, 84, 283, -55, -120,
1073 -12, -219, 331, -81, 167,
1074 220, -136, 147, -172, -42,
1075 140, -95, -109, -88, -194,
1076 0, -2, -4, -33, -381,
1077 -66, -217, 152, -186, -402,
1078 244, 108, 156, -140, -395,
1079 113, -136, -196, 110, -24,
1080 214, 118, 11, -64, -131,
1081 -110, -286, -6, -332, 16,
1082 94, 97, 79, -291, -205,
1083 -5, -39, -20, 252, -96,
1084 76, 174, 101, 163, 61,
1085 -69, -239, -55, 399, 6,
1086 -115, 319, 164, 275, 196,
1087 -15, 36, -47, 331, 121,
1088 226, 209, 271, 325, 184,
1089 13, -80, -218, 471, 353,
1090 288, 378, 16, -51, 251,
1091 174, 116, 52, 149, -279,
1092 235, 276, 39, 120, -48,
1093 0, -108, -108, 241, -339,
1094 -93, 534, 45, 33, -87,
1095 194, 149, -71, 405, -44,
1096 409, 370, 81, -186, -154,
1097 25, -102, -448, 124, -173,
1098 22, 408, -110, -310, -214,
1099 -26, 23, -83, 114, 14,
1100 -110, 164, 52, 223, -82,
1101 37, -25, -263, 306, -15,
1102 -466, 415, 292, 165, -18,
1103 29, -19, -171, 155, 182,
1104 179, 144, -27, 231, 258,
1105 -103, -247, -396, 238, 113,
1106 375, -154, -109, -4, 156,
1107 98, 85, -292, -5, -124,
1108 116, 139, -116, -98, -294,
1109 -14, -83, -278, -117, -378,
1110 106, 33, -106, -344, -484,
1111 119, 17, -412, 138, 166,
1112 384, 101, -204, 88, -156,
1113 -121, -284, -300, -1, -166,
1114 280, 33, -152, -313, -81,
1115 -37, 22, 229, 153, 37,
1116 -60, -83, 236, -8, -41,
1117 -169, -228, 126, -20, 363,
1118 -235, 17, 364, -156, 156,
1119 -25, -30, 72, 144, 156,
1120 153, -26, 256, 97, 144,
1121 -21, -37, 48, -65, 250,
1122 63, 77, 273, -128, 124,
1123 -129, -26, 40, 9, -115,
1124 -6, 82, 38, -90, -182,
1125 -336, -13, 28, 158, 91,
1126 -30, 241, 137, -170, -17,
1127 146, 14, -11, 33, 61,
1128 192, 197, 54, -84, 85,
1129 23, -200, -78, -29, 140,
1130 122, 237, 106, -341, 136,
1131 -57, -142, -85, -16, -74,
1132 -59, -90, -8, -187, -20,
1133 -211, -267, 216, -179, -110,
1134 -50, -7, 220, -267, -70,
1135 -57, -42, -17, -15, 71,
1136 32, 21, 63, -137, 33,
1137 -137, -175, 104, -68, 97,
1138 -67, -43, 133, -301, 221,
1139 -116, -200, -81, -92, -272,
1140 -64, -41, -54, -244, -220,
1141 -287, -242, -50, -87, -89,
1142 -245, 236, 102, -166, -295,
1143 66, 24, -162, -71, 95,
1144 66, 136, -90, -220, -36,
1145 -98, -161, -222, -188, 29,
1146 -18, 18, -19, -415, 9,
1147 49, 61, 100, 39, -56,
1148 -111, 82, 135, -31, 52,
1149 -90, -153, -93, 189, 182,
1150 -214, 295, 119, -74, 284,
1151 2, 137, 37, 47, 182,
1152 92, 117, 184, -53, 373,
1153 -21, -14, -35, 136, 391,
1154 146, 129, -164, -28, 333,
1155 92, 80, -84, 100, -134,
1156 -8, 217, -32, 3, -47,
1157 -151, 251, -215, 142, 92,
1158 -224, 310, -172, -275, 98,
1159 159, 155, -177, 112, 53,
1160 205, 27, 8, -240, 192,
1161 169, 120, -319, -201, 106,
1162 11, 36, -86, -237, 455,
1163 -109, -154, -163, 174, -55,
1164 -38, 32, -101, -78, -59,
1165 -205, -321, -97, 69, 79,
1166 -310, 44, 18, -185, 34,
1167 -115, -20, -148, -39, 203,
1168 -29, 154, -30, -158, 166,
1169 -45, -131, -317, -24, 363,
1170 -165, -205, -112, -222, 265,
1171 -32, -44, -150, 54, -193,
1172 -6, -38, -255, -169, -115,
1173 -266, 87, -189, -36, -169,
1174 -60, -87, -266, -436, -170,
1175 -68, -81, -278, 24, 38,
1176 -23, -19, -155, -256, 141,
1177 -61, -226, -565, -175, 71,
1178 9, -29, -237, -515, 263
1181 const int16 dico22_isf_36b[SIZE_BK22_36b*4] =
1185 -213, -87, -122, 261,
1187 -129, -110, 30, 118,
1188 -214, 258, 110, -235,
1189 -41, -18, -126, 120,
1192 -138, -67, -278, -186,
1193 -164, -194, -201, 78,
1194 -211, -87, -51, -221,
1195 -174, -79, -94, -39,
1197 22, -110, -153, -68,
1199 -1, -135, -39, -179,
1208 -266, 154, -256, -182,
1210 -40, 175, -151, -180,
1212 121, 114, -166, -469,
1213 159, -66, -323, -231,
1214 214, 152, -141, -212,
1217 -48, -235, -37, 251,
1219 -88, -174, 213, 198,
1220 -390, 99, -63, -375,
1221 107, -169, -164, 424,
1222 69, -111, 141, -167,
1224 -353, -207, -205, -109,
1225 -160, -386, -355, 98,
1226 -176, -493, -20, -143,
1227 -252, -432, -2, 216,
1228 -90, -174, -168, -411,
1229 13, -284, -229, -160,
1230 -87, -279, 34, -251,
1231 -75, -263, -58, -42,
1232 420, 53, -211, -358,
1233 384, -35, -374, 396,
1235 167, -307, 192, 194,
1238 282, -124, 200, -92,
1239 271, -162, -70, 180,
1240 -157, -298, -514, -309,
1242 124, -364, 167, -238,
1244 140, -112, -388, -624,
1245 259, -133, -317, 41,
1246 163, -130, -64, -334,
1247 226, -165, -124, -110,
1249 -153, 205, -145, 242,
1254 -114, 123, 168, -52,
1256 -407, 102, -77, -40,
1257 -338, -1, -342, 156,
1258 -179, 105, -34, -97,
1260 -133, 107, -91, -357,
1265 -42, 101, -350, 275,
1272 -235, 316, -60, -25,
1273 -8, -150, -312, 201,
1276 -21, 402, -29, -351,
1280 -328, -185, 331, 119,
1284 -255, 22, 173, -191,
1288 -455, -180, 116, -191,
1289 -227, 62, -148, 524,
1290 -176, -287, 282, -157,
1292 -59, -49, 115, -365,
1294 -138, -126, 141, -84,
1296 -258, 311, 601, 213,
1304 -542, 488, 257, -115,
1305 -84, -244, -438, 478,
1306 -113, -545, 387, 101,
1307 -95, -306, 111, 498,
1314 const int16 dico23_isf_36b[SIZE_BK23_36b*7] =
1317 81, -18, 68, -27, -122, -280, -4,
1318 45, -177, 209, -30, -136, -74, 131,
1319 -44, 101, -75, -88, -48, -137, -54,
1320 -245, -28, 63, -18, -112, -103, 58,
1321 -79, -6, 220, -65, 114, -35, -50,
1322 109, -65, 143, -114, 129, 76, 125,
1323 166, 90, -61, -242, 186, -74, -43,
1324 -46, -92, 49, -227, 24, -155, 39,
1325 67, 85, 99, -42, 53, -184, -281,
1326 142, -122, 0, 21, -142, -15, -17,
1327 223, 92, -21, -48, -82, -14, -167,
1328 51, -37, -243, -30, -90, 18, -56,
1329 54, 105, 74, 86, 69, 13, -101,
1330 196, 72, -89, 43, 65, 19, 39,
1331 121, 34, 131, -82, 25, 213, -156,
1332 101, -102, -136, -21, 57, 214, 22,
1333 36, -124, 205, 204, 58, -156, -83,
1334 83, -117, 137, 137, 85, 116, 44,
1335 -92, -148, -68, 11, -102, -197, -220,
1336 -76, -185, -58, 132, -26, -183, 85,
1337 -7, -31, -2, 23, 205, -151, 10,
1338 -27, -37, -5, -18, 292, 131, 1,
1339 117, -168, 9, -93, 80, -59, -125,
1340 -182, -244, 98, -24, 135, -22, 94,
1341 221, 97, 106, 42, 43, -160, 83,
1342 25, -64, -21, 6, 14, -15, 154,
1343 126, 15, -140, 150, -10, -207, -114,
1344 79, -63, -211, -70, -28, -217, 165,
1345 46, 38, -22, 281, 132, -62, 109,
1346 112, 54, -112, -93, 208, 27, 296,
1347 115, 10, -147, 41, 216, 42, -276,
1348 50, -115, -254, 167, 117, -2, 61,
1349 17, 144, 34, -72, -186, -150, 272,
1350 -29, -66, -89, -95, -149, 129, 251,
1351 122, 0, -50, -234, -91, 36, 26,
1352 -105, -102, -88, -121, -236, -7, -11,
1353 -204, 109, 5, -191, 105, -15, 163,
1354 -80, 32, -24, -209, 41, 294, 70,
1355 -106, -94, -204, -118, 120, -50, -37,
1356 -82, -241, 46, -131, -29, 150, -55,
1357 33, 155, 120, -89, -8, 7, 62,
1358 213, 82, 61, 18, -161, 144, 152,
1359 30, 131, 65, -87, -255, -17, -107,
1360 -8, 85, -64, 51, -162, 223, -53,
1361 -134, 261, 69, -56, 218, 72, -111,
1362 2, 155, -113, -87, 49, 85, -28,
1363 -163, 42, -1, -196, 7, 39, -245,
1364 14, -137, -79, 11, -160, 202, -293,
1365 -94, 33, 208, 100, 56, -44, 326,
1366 -78, -41, 232, 13, -142, 227, 80,
1367 -16, -87, 201, 33, -133, 15, -183,
1368 -58, -192, -47, 184, -128, 133, 99,
1369 -205, 11, -155, 78, 52, 72, 141,
1370 -246, 26, 99, 151, 59, 115, -64,
1371 -79, -47, -16, -14, 6, 47, -43,
1372 -72, -178, -27, 162, 112, 43, -174,
1373 -175, 238, 186, 71, -54, -188, -76,
1374 -225, 233, 39, -39, -158, 122, 44,
1375 -26, 43, 84, 130, -93, -51, 22,
1376 3, 92, -150, 136, -182, -57, 97,
1377 -131, 179, -78, 80, 91, -165, 90,
1378 -2, 148, 15, 130, 65, 175, 117,
1379 -138, 114, -137, 132, 3, -10, -186,
1380 140, -4, -37, 254, -62, 92, -109