blob: 6752a62e333b002571b19b6c936a0e1381c221b5
1 | /* |
2 | *=================================================================== |
3 | * 3GPP AMR Wideband Floating-point Speech Codec |
4 | *=================================================================== |
5 | */ |
6 | #include "typedef.h" |
7 | |
8 | #define L_SUBFR 64 /* Subframe size */ |
9 | #define L_FIR 31 |
10 | #define ORDER 16 /* Order of linear prediction filter */ |
11 | #define M 16 /* Order of LP filter */ |
12 | #define NB_SUBFR 4 /* Number of subframe per frame */ |
13 | #define UP_SAMP 4 |
14 | #define L_INTERPOL2 16 |
15 | |
16 | #define SIZE_BK1 256 |
17 | #define SIZE_BK2 256 |
18 | #define SIZE_BK21 64 |
19 | #define SIZE_BK22 128 |
20 | #define SIZE_BK23 128 |
21 | #define SIZE_BK24 32 |
22 | #define SIZE_BK25 32 |
23 | #define SIZE_BK21_36b 128 |
24 | #define SIZE_BK22_36b 128 |
25 | #define SIZE_BK23_36b 64 |
26 | #define SIZE_BK_NOISE1 64 |
27 | #define SIZE_BK_NOISE2 64 |
28 | #define SIZE_BK_NOISE3 64 |
29 | #define SIZE_BK_NOISE4 32 |
30 | #define SIZE_BK_NOISE5 32 |
31 | |
32 | /* 16-byte align start */ |
33 | #ifdef ENABLE_CPU2_DECODER |
34 | CPU2_DATA_START |
35 | #endif |
36 | /* |
37 | * isf codebooks: two-stage VQ with split-by-5 in 2nd stage |
38 | * |
39 | * codebook vector dimension number of vectors |
40 | * ~~~~~~~~ ~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~ |
41 | * 1_1 9 256 |
42 | * 1_2 7 256 |
43 | * 2_1 3 64 |
44 | * 2_2 3 128 |
45 | * 2_3 3 128 |
46 | * 2_4 3 32 |
47 | * 2_5 4 32 |
48 | */ |
49 | |
50 | /* |
51 | * 1st stage codebook; 1st split: isf0 to isf8 |
52 | */ |
53 | |
54 | const Word16 D_ROM_dico1_isf[SIZE_BK1 * 9] = { |
55 | |
56 | 579, 1081, 1035, 390, 3, -263, -198, -82, 38, |
57 | 18, -68, -12, 313, 761, 405, 249, 111, -76, |
58 | 740, 1263, 1292, 1006, 997, 1019, 1017, 976, 923, |
59 | -91, 827, 948, 648, 613, 535, 522, 490, 421, |
60 | 41, -44, -281, -472, 652, 534, 193, 135, -90, |
61 | 41, -121, -356, -60, 663, 307, 61, -48, -344, |
62 | 557, 946, 1049, 867, 846, 990, 1112, 1262, 1241, |
63 | -118, -204, 328, 512, 870, 793, 610, 402, 186, |
64 | 156, 293, 74, -338, -475, -897, -594, -161, -497, |
65 | 226, 131, -138, 307, 169, -271, -164, -387, -624, |
66 | 62, -32, -61, -252, -541, -828, -1027, -523, -662, |
67 | 102, -61, 141, 112, -270, -251, -541, 25, -150, |
68 | 6, -132, -356, -686, -96, -322, -522, -31, -326, |
69 | -36, -209, -521, -229, 307, -132, -5, -99, -384, |
70 | 60, -51, -237, -668, -973, -407, -708, -75, -172, |
71 | 26, -138, -266, 111, -302, 43, -278, -356, -359, |
72 | 570, 822, 496, -154, -312, -92, 137, 279, 371, |
73 | -146, 368, 409, 68, 6, 77, 167, 202, 162, |
74 | 633, 898, 996, 756, 662, 683, 783, 909, 996, |
75 | -103, 294, 607, 415, 483, 462, 480, 431, 408, |
76 | -120, -338, -612, -524, 584, 331, 92, 433, 276, |
77 | -178, -293, -154, -41, 269, 100, -9, 213, 160, |
78 | 830, 736, 278, 820, 1254, 686, 712, 1039, 473, |
79 | -218, -304, 463, 454, 397, 273, 202, 286, 273, |
80 | -232, 7, 6, -388, -472, -427, -378, -167, -100, |
81 | -294, -183, 134, -47, 101, -88, -84, -117, -3, |
82 | 57, 17, -202, -634, -989, -1119, -533, 176, -36, |
83 | 120, -28, 23, 111, -319, 318, -22, -77, 266, |
84 | -271, -464, -434, -658, -640, -385, -385, -99, -69, |
85 | -198, -259, -266, -44, -39, -139, -137, 171, 66, |
86 | 9, -145, -377, -846, -1000, -111, -325, 342, 135, |
87 | -81, -286, -380, 192, -57, 307, 76, -24, -140, |
88 | 677, 702, 247, 56, 249, 141, -105, -236, -99, |
89 | 36, -39, -69, 348, 198, -93, 322, 91, -72, |
90 | 503, 885, 1508, 1307, 1282, 1172, 1119, 1209, 1061, |
91 | 416, 719, 989, 1227, 1001, 1052, 954, 741, 1044, |
92 | -127, -376, -657, 139, 623, 223, 501, 306, 220, |
93 | -113, -384, -796, 504, 438, 85, 213, -83, -194, |
94 | 585, 1132, 1233, 1091, 1247, 1433, 1512, 1448, 1314, |
95 | -174, -422, 7, 1155, 1089, 1182, 1003, 945, 806, |
96 | 8, -126, -317, -103, -351, -695, -98, -268, -537, |
97 | 33, -103, -290, 167, -39, -407, 44, -208, -375, |
98 | 104, -23, -64, -291, -637, -851, -1084, -61, -112, |
99 | -75, -306, -434, 218, -148, -354, -680, -133, -216, |
100 | -121, -377, -718, -97, -130, -361, -156, -379, -599, |
101 | -56, -254, -586, 235, 157, -214, 11, -260, -149, |
102 | -124, -267, -397, -580, -593, -527, -805, -385, 346, |
103 | -193, -440, -708, -351, -141, -255, -499, -147, -185, |
104 | 448, 660, 494, 208, 509, 461, 338, 291, 149, |
105 | -223, 88, 335, 159, 212, 191, 286, 308, 205, |
106 | -31, 469, 803, 659, 619, 658, 843, 987, 1113, |
107 | -171, -242, 514, 362, 295, 524, 552, 694, 585, |
108 | -64, -308, -448, -21, 284, 786, 446, 289, 92, |
109 | -218, -390, -7, 169, 206, 330, 352, 408, 358, |
110 | -36, 702, 959, 859, 861, 1115, 1269, 1357, 1305, |
111 | -133, -341, -65, 678, 417, 440, 486, 518, 780, |
112 | 33, -44, -191, -344, -461, -755, -201, 217, -31, |
113 | -353, -547, -44, 123, -61, -68, -79, 29, 60, |
114 | 73, -57, -406, -766, -1243, -1203, 240, 400, 165, |
115 | -73, -282, -601, -213, -171, -375, 332, 35, -103, |
116 | -29, -207, -553, -476, -638, -908, 172, -22, -135, |
117 | -192, -239, -164, -103, -111, -47, 153, 125, 110, |
118 | -1, -203, -570, -1030, -1424, -535, 155, 1, 147, |
119 | -333, -653, -865, -197, -158, -21, -44, 95, 108, |
120 | 389, 588, 490, 33, -237, -524, -628, -136, -260, |
121 | 40, -177, -462, 453, 862, 380, 131, -130, -405, |
122 | 842, 1678, 1841, 1549, 1474, 1256, 1082, 905, 742, |
123 | 370, 1216, 1768, 1633, 1212, 636, 22, -330, 71, |
124 | -76, -281, -741, -742, 898, 619, 277, 71, -222, |
125 | -32, -265, -556, -25, 994, 682, 305, 126, -165, |
126 | 73, 738, 893, 968, 993, 1768, 2273, 1840, 1391, |
127 | -69, -349, -585, 234, 1158, 903, 626, 510, 251, |
128 | -1, -99, -272, -210, -603, -351, -540, -811, -383, |
129 | -16, -230, -504, 410, 149, -205, -343, -651, -639, |
130 | 103, -9, -227, -205, -562, -781, -1079, -1208, -156, |
131 | 143, 63, -135, -67, -317, -602, -784, -1154, -640, |
132 | -144, -391, -674, -622, -200, -254, -660, -947, -395, |
133 | -40, -250, -625, 27, 543, 94, -131, -386, -673, |
134 | -123, -371, -757, -451, -564, -614, -415, -711, -35, |
135 | -116, -309, -593, -268, 239, -33, -338, -650, -135, |
136 | 94, 251, 554, 57, -312, -423, -154, -57, 235, |
137 | -268, -71, 381, 114, -44, -87, 125, 173, 133, |
138 | 1513, 1714, 1238, 534, 276, 315, 461, 459, 508, |
139 | -131, -19, 1149, 670, 486, 356, 309, 369, 296, |
140 | -223, -501, -899, -722, -70, 6, 131, 310, 394, |
141 | -99, -303, -517, 249, 64, -53, 135, -11, 453, |
142 | -147, -399, -730, -401, 817, 738, 802, 749, 575, |
143 | -154, -435, -739, 800, 593, 366, 529, 318, 326, |
144 | -224, 45, -39, -387, -515, -518, -608, -384, -321, |
145 | -315, -377, 143, -101, -113, -377, -177, -144, -12, |
146 | 117, 40, -239, -651, -1051, -581, -737, -990, -328, |
147 | 26, -50, -157, -23, -453, -283, -531, -546, 192, |
148 | -252, -501, -743, -589, -627, -499, -328, -118, -72, |
149 | -324, -494, -244, -306, -144, -177, -262, -135, -78, |
150 | -36, -234, -519, -961, -1290, -314, -479, -371, -45, |
151 | -95, -292, -535, -8, -300, 112, -164, -277, 198, |
152 | -99, -128, 880, 836, 579, 351, 23, -95, -217, |
153 | -27, -258, 124, 1011, 597, 425, 144, 7, -73, |
154 | 421, 1293, 1640, 1623, 1742, 1617, 1499, 1284, 1006, |
155 | -95, 752, 1680, 1569, 1618, 1436, 1200, 980, 712, |
156 | -69, -300, -683, -435, 1132, 899, 504, 332, 109, |
157 | -74, -323, -637, 563, 1074, 608, 371, 105, -49, |
158 | -78, 831, 1194, 1110, 1378, 1481, 1492, 1365, 1217, |
159 | -259, -121, 1440, 1334, 1628, 1490, 1438, 1223, 933, |
160 | -82, -306, -613, -222, -378, -675, -545, -671, -845, |
161 | 53, -124, -347, 422, 52, -125, -270, -529, 9, |
162 | 79, -89, -320, -662, -999, -1199, -1243, -676, -297, |
163 | -68, -273, -611, 137, -146, -397, -627, -845, -220, |
164 | -112, -346, -797, -826, 234, -132, -188, -278, -522, |
165 | -159, -405, -734, -419, 293, 74, -167, -167, 184, |
166 | -153, -437, -833, -1080, -336, -472, -561, -340, -253, |
167 | -169, -423, -820, -904, -131, -19, -346, -604, 31, |
168 | 33, -31, 312, 62, -148, 49, -59, 564, 486, |
169 | -306, -333, 194, -44, 67, 72, 147, 205, 243, |
170 | -207, -49, 1360, 983, 969, 991, 1014, 1110, 973, |
171 | -211, -172, 883, 627, 711, 674, 705, 798, 746, |
172 | -88, -325, -763, -974, 687, 908, 514, 382, 172, |
173 | -292, -612, -805, 63, 131, 270, 259, 352, 348, |
174 | -235, -84, 955, 818, 1120, 1289, 1559, 1480, 1285, |
175 | -180, -461, -614, 657, 691, 745, 854, 783, 713, |
176 | -97, -309, -477, -614, -777, -734, -768, -526, -472, |
177 | -344, -476, -35, -169, 49, -77, -150, -240, -141, |
178 | -52, -268, -639, -919, -1278, -1113, -342, -333, -151, |
179 | -68, -242, -585, -73, -209, -478, -159, -429, 133, |
180 | -197, -499, -1005, -1268, -272, -224, -105, -67, 17, |
181 | -363, -618, -414, -116, -62, 20, 10, 116, 108, |
182 | -195, -475, -906, -1260, -891, -441, -277, -142, -28, |
183 | -226, -519, -950, -700, -275, -266, -116, -105, 82, |
184 | 404, 511, 520, 327, 17, -194, -333, -536, -586, |
185 | -114, -130, 276, 237, 204, 342, 135, -16, -111, |
186 | 670, 1208, 1168, 860, 742, 601, 528, 403, 309, |
187 | 397, 621, 966, 752, 579, 398, 400, 329, 252, |
188 | 191, 180, -137, -467, 272, 106, -95, 17, -192, |
189 | -80, -290, -626, 194, 598, 196, 21, -281, 77, |
190 | 510, 864, 1108, 807, 939, 902, 925, 717, 481, |
191 | 137, 367, 534, 764, 670, 382, 296, 153, 84, |
192 | 303, 497, 144, -85, -125, -539, -482, -464, -764, |
193 | 233, 347, 68, -147, 169, -210, -242, -226, -482, |
194 | 307, 422, 154, -175, -386, -722, -724, -904, -1015, |
195 | 309, 308, 160, -60, -470, -420, -598, -791, -219, |
196 | 68, 121, -137, -560, -146, -446, -515, -494, -729, |
197 | 130, 53, -227, 46, 474, 32, -161, -192, -490, |
198 | 213, 164, -71, -465, -876, -161, -456, -587, -48, |
199 | 218, 117, 39, 177, -194, -88, -226, -418, 50, |
200 | 210, 547, 569, 279, 121, -44, -50, 10, -84, |
201 | 58, 140, 182, -5, 267, 117, 106, 211, 198, |
202 | 539, 835, 913, 719, 617, 544, 591, 565, 642, |
203 | 153, 559, 872, 460, 222, 108, 188, 180, 183, |
204 | 158, 119, 284, -153, -271, 229, 87, 110, -57, |
205 | -183, 82, 118, 21, 13, 40, 118, 191, 185, |
206 | 162, 889, 654, 108, -34, 244, 488, 561, 532, |
207 | 163, 56, 609, 341, 50, 329, 68, 266, 218, |
208 | 100, 206, 18, -304, -107, -436, -487, -65, -306, |
209 | -86, 154, 134, -30, -45, -73, -104, -80, -96, |
210 | 245, 330, 10, -440, -849, -1082, 79, 40, -265, |
211 | 196, 372, 272, -181, -493, -389, 275, 80, -59, |
212 | 2, -12, -246, -505, -100, -436, 21, -187, -431, |
213 | -221, -48, 36, -271, -186, -147, -109, 26, 71, |
214 | 213, 140, 72, -351, -620, -84, -363, 69, 46, |
215 | 91, 167, -3, -95, -99, -105, -48, 114, 147, |
216 | 259, 249, 172, 607, 406, 52, 59, -189, -320, |
217 | 115, -85, -54, 574, 128, 226, -59, -253, 130, |
218 | -62, 1033, 1308, 1035, 1127, 1098, 1029, 961, 823, |
219 | 39, 364, 757, 940, 728, 660, 659, 583, 770, |
220 | -115, -338, -760, -471, 394, 37, 441, 178, 6, |
221 | -57, -305, -525, 796, 453, 188, -4, -114, 248, |
222 | 71, 444, 797, 731, 1096, 1157, 1222, 1029, 811, |
223 | 135, 359, 551, 425, 749, 815, 874, 704, 502, |
224 | 132, 247, 0, -206, -449, -750, -258, -514, -633, |
225 | 248, 249, 91, 121, -195, -499, -90, -282, -435, |
226 | 78, 20, -277, -623, -983, -1224, -415, -458, -639, |
227 | 347, 509, 208, -179, -464, -728, -76, -237, -486, |
228 | -103, -343, -756, -713, -265, -609, -191, -398, -636, |
229 | -121, -383, -749, 567, 252, -36, -354, -417, -50, |
230 | 204, 100, -149, -650, -1081, -47, -7, -263, 111, |
231 | -46, -180, -267, -324, -562, -394, -692, 398, 292, |
232 | 482, 670, 683, 624, 442, 165, 116, 36, -149, |
233 | 108, 247, 291, 247, 355, 122, 109, 224, 296, |
234 | -14, 945, 990, 801, 755, 815, 847, 913, 892, |
235 | 292, 349, 725, 482, 388, 329, 429, 620, 667, |
236 | -34, 197, 213, -127, 84, 494, 620, 575, 375, |
237 | 126, 207, 172, 167, 362, 202, 296, 395, 455, |
238 | -6, 250, 539, 467, 636, 801, 1149, 1287, 1118, |
239 | 27, 240, 369, 280, 440, 411, 634, 892, 953, |
240 | 159, 170, -58, -395, -797, -690, 77, -211, -334, |
241 | -5, -28, -13, -74, -335, -603, 300, 88, -205, |
242 | 82, -33, -364, -698, -1203, -1153, 110, -146, -289, |
243 | 113, 1, -243, -588, -994, -496, 414, 160, 42, |
244 | -56, -247, -440, -693, -996, -479, 11, -178, -357, |
245 | -151, -353, -327, -211, -340, 141, 65, 425, 453, |
246 | 34, -169, -455, -932, -1215, 138, 499, 256, 324, |
247 | 68, 139, -15, -547, -478, 17, 306, 502, 481, |
248 | -32, -134, 445, 129, -143, -244, -503, -507, -599, |
249 | 61, -140, -345, 496, 458, -2, 20, -227, -514, |
250 | 394, 1765, 1666, 1339, 1117, 806, 642, 479, 380, |
251 | 215, 519, 920, 1053, 1090, 791, 528, 290, 155, |
252 | -54, -233, -647, -602, 639, 294, -2, -167, -442, |
253 | -78, -315, -791, -113, 820, 403, 158, -116, -356, |
254 | 529, 1851, 2003, 1228, 622, -41, -416, 344, 819, |
255 | -105, -379, -236, 1224, 893, 749, 568, 356, 214, |
256 | -17, -199, -144, 50, -283, -247, -578, -846, -1087, |
257 | 69, -11, -381, -206, 209, -284, -387, -416, -716, |
258 | 39, -5, -145, -374, -682, -909, -1074, -1169, -1066, |
259 | 287, 226, 67, -221, -662, -171, -421, -642, -707, |
260 | -132, -348, -538, -448, -20, -4, -354, -748, -933, |
261 | 4, -75, -289, -598, 317, 52, -208, -297, -559, |
262 | -88, -264, -358, -589, -631, -248, -523, -822, -1071, |
263 | 70, -8, 54, -314, -515, 92, -146, -274, -493, |
264 | 199, 62, 391, 158, -141, 71, -219, -203, -207, |
265 | 152, 40, 329, 162, -29, 48, -149, 108, 127, |
266 | 635, 1058, 883, 492, 372, 312, 317, 274, 241, |
267 | 267, 722, 1256, 882, 625, 248, 8, -81, -60, |
268 | -58, -138, -291, -600, -12, -2, -39, 147, 117, |
269 | -107, -345, -513, 459, 76, 92, -272, 388, 262, |
270 | 362, 516, 203, -409, -716, -831, -331, 185, 209, |
271 | -117, -391, -298, 671, 292, 538, 257, 166, -38, |
272 | -102, -319, -194, -283, -573, -262, -579, -219, -444, |
273 | -235, 78, 11, -168, -101, -229, -263, -321, -123, |
274 | 70, 50, -170, -599, -996, -588, -263, -516, -455, |
275 | 394, 363, 229, -136, -538, 21, -183, -348, -201, |
276 | -124, -368, -640, -879, -847, -209, -409, -494, -515, |
277 | -127, -341, -541, -425, -510, -10, -252, -473, -291, |
278 | 84, -69, -201, -676, -868, 103, -311, -132, -320, |
279 | 5, -173, -188, -297, -628, 197, -57, 7, -11, |
280 | 49, -160, 56, 558, 111, 33, -311, -440, -463, |
281 | -1, -246, -307, 862, 453, 139, -170, -355, -232, |
282 | 279, 966, 1642, 1478, 1463, 1123, 795, 525, 339, |
283 | -197, -38, 1702, 1331, 1252, 950, 692, 504, 426, |
284 | -108, -344, -861, -1172, 444, 354, 88, -46, -220, |
285 | -53, -321, -494, 1113, 744, 364, 198, -34, -75, |
286 | 457, 955, 1177, 1214, 1427, 1457, 1345, 917, 539, |
287 | -69, 199, 897, 1140, 1343, 1183, 977, 742, 522, |
288 | 122, 44, -269, 27, -155, -562, -307, -590, -773, |
289 | 154, 42, -160, 252, -129, -305, -471, -733, -371, |
290 | 135, 185, -82, -416, -722, -913, -504, -743, -880, |
291 | 149, 214, -84, -329, -680, -835, -426, -661, -81, |
292 | -128, -380, -735, -998, -337, 17, -182, -467, -697, |
293 | -84, -290, -510, -592, 13, 440, 154, -38, -279, |
294 | 70, -61, -246, -727, -1047, -80, -381, -535, -704, |
295 | 178, -2, -146, -670, -938, 482, 138, 63, 65, |
296 | -11, 15, 772, 443, 142, -20, -209, -126, -161, |
297 | -32, -249, 95, 552, 124, 30, -343, 82, -86, |
298 | 148, 751, 1515, 1105, 867, 606, 474, 448, 399, |
299 | -163, -257, 899, 1097, 906, 751, 502, 390, 294, |
300 | -51, -258, -447, -806, -368, 763, 464, 364, 183, |
301 | -166, -374, -367, 87, 35, 399, 418, 856, 833, |
302 | -205, -310, 588, 778, 785, 1065, 1118, 1245, 1157, |
303 | -173, -312, 107, 345, 400, 790, 870, 1113, 1001, |
304 | -7, -120, -387, -410, -614, -943, -226, -384, -491, |
305 | -203, -288, -51, -331, -90, -178, -408, -573, -338, |
306 | 56, -29, -273, -627, -1041, -798, -247, -467, 148, |
307 | 66, -2, -205, -205, -575, -349, -57, -352, -58, |
308 | -45, -225, -471, -924, -497, 77, -32, 44, -135, |
309 | -277, -491, -497, -502, -424, -202, -137, 77, 96, |
310 | 26, -179, -469, -1008, -1260, 262, -35, -132, -259, |
311 | -66, -232, -447, -533, -789, -191, -100, -267, 364 |
312 | }; |
313 | |
314 | /* |
315 | * 1st stage codebook; 2nd split: isf9 to isf15 |
316 | */ |
317 | |
318 | const Word16 D_ROM_dico2_isf[SIZE_BK2 * 7] = { |
319 | |
320 | 1357, 1313, 1136, 784, 438, 181, 145, |
321 | 636, 648, 667, 568, 442, 217, 362, |
322 | 427, 440, 674, 524, 332, 117, -417, |
323 | 121, 295, 468, 465, 230, 44, -221, |
324 | -147, -240, 149, 80, 390, 278, 106, |
325 | -418, -556, 552, 511, 235, 144, -95, |
326 | 43, 193, 274, 150, 67, 34, -273, |
327 | -43, -126, 171, 416, 282, 63, -354, |
328 | -372, -86, -344, -108, -94, -182, -89, |
329 | -600, -840, -200, 465, 258, -11, -253, |
330 | -48, 329, 97, -290, -543, -795, -354, |
331 | -570, -117, 187, 10, -133, -416, -76, |
332 | -618, -129, -247, -371, 45, -76, 277, |
333 | -1022, -1079, 126, 474, 254, 127, 52, |
334 | -281, 76, -167, -361, -283, -551, -283, |
335 | -119, -52, -1, 134, -32, -204, -415, |
336 | 1064, 827, 637, 684, 464, 209, 12, |
337 | 482, 416, 449, 371, 335, 294, 194, |
338 | 719, 576, 365, 135, 113, 91, -199, |
339 | 298, 176, 493, 366, 194, 163, 36, |
340 | -35, -236, -259, -36, -4, 99, 152, |
341 | -98, -306, -27, 228, 90, 111, -86, |
342 | 91, 13, -211, -258, -106, 86, -64, |
343 | 73, -35, -57, -31, 162, 35, -192, |
344 | -109, -335, -629, -66, -61, -128, 322, |
345 | -495, -669, -728, 193, 31, -220, 122, |
346 | 324, 95, -89, -91, -409, -710, -154, |
347 | 0, -234, 92, 33, -343, -609, -220, |
348 | -343, -408, -476, -655, -153, 82, 222, |
349 | -490, -745, -255, 49, -48, 135, -127, |
350 | 119, -67, -328, -390, -272, -545, -56, |
351 | -57, -130, -10, -7, -164, -47, -22, |
352 | 984, 1064, 961, 568, 210, -27, 16, |
353 | 811, 691, 754, 514, 224, -35, 166, |
354 | 662, 704, 618, 386, 57, -211, -257, |
355 | 510, 359, 418, 393, 91, -144, -18, |
356 | -193, -31, -27, 223, 89, -143, 24, |
357 | -112, -98, 471, 319, 185, 3, 175, |
358 | 252, 146, -47, 272, 48, -211, -234, |
359 | 146, 69, 203, 364, 68, -52, 51, |
360 | -259, -478, -697, -349, -758, -501, 63, |
361 | -501, -769, -289, 79, -311, -497, -106, |
362 | 251, 53, -235, -469, -895, -884, 145, |
363 | -416, -551, 140, -133, -523, -775, 44, |
364 | -326, -423, -713, -497, -86, -431, 99, |
365 | -757, -772, -160, -76, -46, -32, 379, |
366 | 85, -35, -200, -401, -663, -1040, -247, |
367 | -180, -330, -92, -376, 27, -183, -110, |
368 | 1279, 1086, 781, 502, 324, 164, 157, |
369 | 682, 466, 449, 277, 146, 28, 409, |
370 | 635, 472, 390, 107, -232, -538, -139, |
371 | 196, 396, 332, 213, 209, -29, -81, |
372 | 150, -95, -312, 76, -77, -320, -50, |
373 | 46, 9, 47, 175, 139, 30, 384, |
374 | 218, 206, -24, -250, -96, -276, -183, |
375 | 26, 119, 38, 14, -4, -133, -52, |
376 | -477, -614, -987, -715, -631, -813, 200, |
377 | -744, -1009, -1065, -745, -631, -171, 18, |
378 | -137, -251, -483, -613, -980, -1203, 12, |
379 | -605, -767, -562, -686, -1088, -515, 58, |
380 | -202, -428, -782, -1072, -96, -234, -179, |
381 | -480, -709, -1070, -897, -131, -92, 321, |
382 | -145, -193, -512, -729, -572, -765, -210, |
383 | -331, -585, -525, -631, -281, -208, -303, |
384 | 1165, 1104, 939, 828, 716, 426, 155, |
385 | 6, -109, 820, 778, 415, 113, -27, |
386 | 381, 339, 314, 265, 121, -9, -474, |
387 | -373, 47, 584, 442, 99, -231, -113, |
388 | -496, -38, -285, 262, 305, 170, 4, |
389 | -587, -556, 69, 66, 471, 354, 13, |
390 | -138, 70, -18, 106, 67, 167, -302, |
391 | -445, -141, 185, 191, 151, 83, -133, |
392 | -257, -521, -720, -198, 134, -46, -182, |
393 | -819, -1168, -777, 512, 359, 95, -113, |
394 | 137, -2, -74, -138, -401, -114, -371, |
395 | -242, -466, 204, 223, -31, -212, -192, |
396 | -532, -637, -466, -686, 256, 277, -139, |
397 | -1141, -1244, -381, -75, -54, 14, 88, |
398 | -311, 115, -143, -499, -343, 124, -416, |
399 | -616, -147, -135, 43, -4, 121, -369, |
400 | 835, 783, 641, 390, 355, 350, 64, |
401 | 72, 194, 443, 467, 436, 219, 372, |
402 | 464, 369, 192, 4, -156, -72, -226, |
403 | 57, 206, 303, 205, 188, 101, 265, |
404 | -40, -205, -488, -184, 276, 64, -26, |
405 | -217, -433, -297, 137, 328, 308, -289, |
406 | 378, 81, -308, -465, 57, -37, 227, |
407 | -100, 24, -36, -151, 199, 8, 143, |
408 | -426, -697, -1059, -133, 388, 161, 321, |
409 | -644, -1023, -1271, 39, 66, -123, 70, |
410 | 372, 177, -173, -556, -553, -304, -189, |
411 | -117, -369, -425, -122, -462, -152, -73, |
412 | -649, -850, -1189, -767, 497, 360, 222, |
413 | -798, -1139, -1455, -190, 430, 234, 179, |
414 | 42, -94, -405, -692, 38, -202, -246, |
415 | -169, -366, -290, -88, -64, 32, -292, |
416 | 1010, 923, 938, 710, 465, 230, 342, |
417 | 217, 300, 1054, 675, 68, -458, -179, |
418 | 78, 453, 316, 18, -237, -496, -243, |
419 | 167, 21, 424, 215, -91, -303, -170, |
420 | -290, -81, -70, -67, 40, 54, -59, |
421 | -353, -427, -90, 53, 94, 9, 54, |
422 | -28, 318, 283, 15, -240, -58, 79, |
423 | -75, -121, 229, 35, 58, 6, -133, |
424 | -351, -514, -744, -834, -705, -137, 164, |
425 | -1124, -1388, -1055, -230, -73, 40, 36, |
426 | -163, -233, -532, -785, -1170, -697, 96, |
427 | -788, -959, -246, -430, -624, -165, -8, |
428 | -856, -540, -630, -907, -337, -70, 76, |
429 | -937, -1042, -659, -733, -208, 199, -26, |
430 | -523, 78, -98, -501, -869, -890, -81, |
431 | -624, -703, -45, -348, -25, 87, -186, |
432 | 1005, 823, 546, 249, 90, -22, 207, |
433 | 298, 397, 381, 319, 200, 62, 303, |
434 | 473, 379, 133, -247, -632, -441, 75, |
435 | 284, 208, 391, 115, -25, 44, 95, |
436 | -72, 79, -95, -63, -129, -293, 203, |
437 | -164, -349, 115, 122, 69, -1, 378, |
438 | 348, 170, 99, 58, -179, -302, 188, |
439 | -190, -2, 150, 23, -51, -11, 216, |
440 | -615, -863, -1090, -1427, -802, -48, -6, |
441 | -961, -1276, -1548, -727, -58, 56, 223, |
442 | -124, -255, -561, -988, -1277, -148, -82, |
443 | -480, -660, -891, -1191, -1339, -325, 20, |
444 | -621, -917, -1296, -1350, 264, 289, 50, |
445 | -844, -1022, -1345, -1329, -293, 46, 278, |
446 | -260, -468, -829, -1176, -533, -560, -78, |
447 | -215, -484, -822, -1233, -791, 15, -138, |
448 | 1301, 1317, 1262, 1048, 716, 357, -64, |
449 | 578, 824, 925, 802, 630, 362, 102, |
450 | 470, 925, 767, 514, 327, 190, -112, |
451 | 225, 492, 495, 437, 598, 384, -45, |
452 | 43, 82, -42, 175, 519, 342, -64, |
453 | -304, -154, 159, 576, 403, 221, 327, |
454 | 214, 244, 122, -62, 312, 92, -160, |
455 | 218, 208, 310, 268, 306, 323, -199, |
456 | -285, -269, -79, -124, -143, -153, 236, |
457 | -205, -384, -426, 344, 59, -185, -184, |
458 | -272, 247, 126, -210, -518, -468, 78, |
459 | -99, -120, 502, 160, -280, -557, 304, |
460 | -423, -17, -283, -443, 215, 212, -140, |
461 | -564, -684, -228, 510, 361, 130, 323, |
462 | -428, 335, 98, -65, 36, -215, -246, |
463 | -362, 51, 364, -16, -234, 150, -165, |
464 | 914, 883, 751, 653, 676, 464, -153, |
465 | 631, 545, 535, 720, 596, 360, -81, |
466 | 783, 712, 512, 439, 341, 251, -391, |
467 | 497, 417, 249, 372, 295, 173, -193, |
468 | 128, -110, -385, 93, 39, 173, -231, |
469 | 216, -59, -253, 462, 389, 154, 69, |
470 | 455, 270, -4, -337, -49, 233, -322, |
471 | 307, 143, 53, 218, 128, 236, -156, |
472 | -37, -186, -240, -411, -110, 9, 399, |
473 | -140, -365, -628, 258, 380, 214, 277, |
474 | 131, 454, 177, -285, -520, 108, -214, |
475 | 77, -141, 201, -123, -490, -131, 60, |
476 | -14, -194, -521, -741, 273, 362, -33, |
477 | -362, -566, -287, -228, 161, 237, 317, |
478 | -269, 195, -75, -375, -204, 11, 77, |
479 | -128, -264, -156, -223, -475, 265, 27, |
480 | 1238, 1147, 916, 689, 432, 210, -280, |
481 | 800, 664, 879, 726, 411, 160, -164, |
482 | 454, 686, 536, 275, 147, 46, 111, |
483 | 303, 486, 512, 355, 241, 181, -69, |
484 | 79, 92, 29, 147, 233, 52, 17, |
485 | -171, 289, 131, 439, 271, 3, -10, |
486 | 413, 241, 144, 174, 155, -2, 14, |
487 | 58, 217, 247, 219, 149, 175, -18, |
488 | 228, -8, -240, -206, -513, -191, 202, |
489 | -96, -272, -454, 33, -300, -575, 46, |
490 | -10, -108, -246, -347, -770, -535, 9, |
491 | -326, -430, -61, -321, -704, -299, 201, |
492 | -1, -280, -603, -419, -185, 18, -36, |
493 | -516, -522, -379, -291, -181, -97, 27, |
494 | -159, -313, -525, -224, -510, -831, -197, |
495 | -292, -459, -59, -310, -562, -143, -351, |
496 | 1066, 912, 631, 389, 207, 86, -224, |
497 | 596, 512, 596, 505, 314, 122, -48, |
498 | 787, 861, 441, -93, -303, 33, -190, |
499 | 257, 469, 337, 51, 15, 298, -93, |
500 | 295, 73, -119, 25, 36, 23, 108, |
501 | -28, -3, -32, 114, 21, 185, 107, |
502 | 482, 305, 15, -279, -319, 52, 96, |
503 | 226, 46, 115, 72, -136, 133, -125, |
504 | 18, -207, -559, -590, -503, -482, 321, |
505 | -571, -789, -951, -172, -441, -538, 113, |
506 | 181, 14, -310, -641, -1001, -202, 159, |
507 | -136, -393, -433, -513, -911, -144, -22, |
508 | 72, -265, -706, -954, -159, 53, 332, |
509 | -338, -591, -852, -383, -395, 56, 44, |
510 | 43, -158, -464, -897, -631, -157, -294, |
511 | -161, -128, -328, -573, -483, -125, 11, |
512 | 1017, 906, 1051, 1005, 679, 341, -102, |
513 | 359, 334, 1567, 1314, 723, 105, 10, |
514 | -65, 726, 529, 301, 220, 43, -273, |
515 | -510, 436, 719, 566, 358, 179, 114, |
516 | -560, 298, 133, -120, 342, 225, 14, |
517 | -899, -101, 217, 617, 400, 146, -58, |
518 | -41, 352, 82, -196, 39, 121, -167, |
519 | -212, 59, 447, 284, 423, 250, -169, |
520 | -371, -484, -596, 30, -41, 249, 22, |
521 | -372, -650, -794, 477, 445, 216, -79, |
522 | -352, 275, 17, -443, -929, 92, 19, |
523 | -699, -696, 431, 264, -49, -310, 182, |
524 | -978, -217, -430, -400, 101, 261, 72, |
525 | -929, -889, -357, -13, 463, 378, 236, |
526 | -826, 56, 30, -299, -360, -128, -51, |
527 | -878, -299, -111, 75, 65, 36, 3, |
528 | 817, 368, -25, 354, 697, 591, -173, |
529 | 309, 212, 222, 751, 484, 140, -56, |
530 | 593, 379, 70, -8, 258, 180, 110, |
531 | 165, -46, 255, 297, 219, 273, 105, |
532 | 160, -70, -358, -181, 379, 330, 319, |
533 | -238, -369, -198, 740, 580, 319, -143, |
534 | 201, 109, -202, -456, 328, 276, -141, |
535 | 203, 170, 111, 42, 207, 360, 188, |
536 | -345, -399, -513, -233, 650, 422, 81, |
537 | -635, -961, -1220, 463, 539, 204, 209, |
538 | 202, -25, -194, -498, -787, 193, -143, |
539 | -449, -538, 195, -106, -331, 68, 62, |
540 | -228, -477, -840, -576, 317, 128, 283, |
541 | -671, -937, -807, -114, 391, 335, -62, |
542 | 246, 2, -314, -679, -303, 180, -88, |
543 | -107, -272, 90, -198, -28, 290, -112, |
544 | 885, 1149, 1021, 712, 496, 281, -83, |
545 | 269, 492, 787, 643, 347, 70, 124, |
546 | 336, 636, 499, 92, -229, -179, 191, |
547 | 26, 402, 564, 340, 149, -11, 135, |
548 | -440, 561, 470, 204, -72, -186, 140, |
549 | -720, 14, 355, 229, 68, -133, 465, |
550 | 110, 310, 103, 12, 106, 29, 158, |
551 | -178, 113, 161, 142, 121, 115, 27, |
552 | -651, -414, -645, -152, -164, -13, -429, |
553 | -639, -944, -681, -104, -81, 52, -189, |
554 | -663, -164, -316, -683, -954, -205, -83, |
555 | -609, -669, -172, -517, -694, 283, -80, |
556 | -646, -152, -383, -678, -246, -40, -143, |
557 | -747, -796, -745, -390, -98, 43, 275, |
558 | -599, -199, -398, -433, -436, -538, 31, |
559 | -1107, -568, -376, -265, -126, -21, 1, |
560 | 847, 573, 308, 392, 305, 101, 55, |
561 | 273, 293, 201, 267, 346, 201, 123, |
562 | 727, 480, 226, 2, -65, -138, 164, |
563 | 273, 208, 173, 292, 12, 253, 174, |
564 | 340, 207, 180, 88, 116, 46, 475, |
565 | -460, -166, -30, 13, 110, 173, 396, |
566 | 137, 88, 43, -137, -94, 34, 284, |
567 | 96, -14, 226, 40, 63, 70, 130, |
568 | -467, -735, -1012, -1174, -307, 305, -67, |
569 | -612, -920, -1146, -567, -8, 92, -25, |
570 | -182, -271, -492, -754, -857, 287, -75, |
571 | -494, -787, -689, -683, -709, 137, -326, |
572 | -288, -550, -903, -1105, 334, 321, -62, |
573 | -354, -653, -834, -445, 1, 377, -152, |
574 | -162, -306, -608, -937, -297, 247, -192, |
575 | -234, -477, -244, -488, -266, 342, -332 |
576 | }; |
577 | |
578 | /* |
579 | * 2nd stage codebook; 1st split: isf2_0 to isf2_2 |
580 | */ |
581 | const Word16 D_ROM_dico21_isf[SIZE_BK21 * 3] = { |
582 | |
583 | 329, 409, 249, |
584 | -33, 505, 160, |
585 | -29, -14, 582, |
586 | -262, 127, 354, |
587 | 145, 237, 175, |
588 | -152, 245, 122, |
589 | 27, 42, 340, |
590 | -84, -93, 311, |
591 | 285, 222, -156, |
592 | 47, -43, -504, |
593 | 234, 121, 385, |
594 | 104, -317, 45, |
595 | 176, 195, 8, |
596 | 104, -59, -94, |
597 | 177, 53, 192, |
598 | -34, -127, 152, |
599 | 570, 277, -34, |
600 | -67, -329, -639, |
601 | -157, -272, 462, |
602 | -177, -462, 198, |
603 | 322, 179, 115, |
604 | -386, 171, 19, |
605 | 19, -12, 195, |
606 | -120, -252, 201, |
607 | 304, 36, -336, |
608 | -128, -221, -380, |
609 | 171, -185, 296, |
610 | -242, -312, 23, |
611 | 198, 39, 16, |
612 | -3, -177, -111, |
613 | 111, -93, 76, |
614 | -92, -223, 4, |
615 | 177, 406, -44, |
616 | -168, 380, -149, |
617 | -4, 273, 331, |
618 | -420, 513, 277, |
619 | 21, 247, 47, |
620 | -58, 131, -2, |
621 | -3, 134, 180, |
622 | -145, 40, 175, |
623 | 189, 74, -145, |
624 | -27, -45, -325, |
625 | 370, -114, -21, |
626 | -83, -415, -173, |
627 | 77, 95, -51, |
628 | -40, -30, -67, |
629 | 71, 88, 86, |
630 | -35, -98, 14, |
631 | 69, 197, -334, |
632 | -196, 79, -231, |
633 | -348, -137, 218, |
634 | -352, -89, -85, |
635 | 47, 201, -130, |
636 | -165, 37, -15, |
637 | -43, 3, 86, |
638 | -161, -108, 79, |
639 | 83, 21, -237, |
640 | -81, -149, -238, |
641 | 150, -186, -251, |
642 | -186, -249, -162, |
643 | -19, 66, -139, |
644 | -26, -50, -181, |
645 | 24, 11, 0, |
646 | -130, -105, -98 |
647 | }; |
648 | |
649 | |
650 | |
651 | /* |
652 | * 2nd stage codebook; 2nd split: isf2_3 to isf2_5 |
653 | */ |
654 | const Word16 D_ROM_dico22_isf[SIZE_BK22 * 3] = { |
655 | |
656 | -127, 310, 42, |
657 | -242, 197, 5, |
658 | -151, 84, -17, |
659 | -214, 127, -149, |
660 | -247, -131, 159, |
661 | -268, -267, -95, |
662 | -217, 1, -79, |
663 | -271, -80, -185, |
664 | -45, 436, 159, |
665 | 165, 199, 391, |
666 | -33, 81, 187, |
667 | -66, -42, 355, |
668 | -298, -57, 343, |
669 | -108, -537, 226, |
670 | -144, -23, 193, |
671 | 176, -402, 87, |
672 | 53, 296, 25, |
673 | -84, 253, -104, |
674 | -58, 105, -126, |
675 | -169, 174, -314, |
676 | -48, 44, -294, |
677 | -164, -417, -242, |
678 | -139, 3, -194, |
679 | -155, -207, -211, |
680 | 119, 322, 213, |
681 | 333, 50, 380, |
682 | 237, 247, -2, |
683 | 466, -16, 201, |
684 | 238, -255, -107, |
685 | 67, -440, -149, |
686 | 122, -88, -139, |
687 | 88, -247, -73, |
688 | -41, 231, 167, |
689 | -62, 155, 16, |
690 | -65, 16, 77, |
691 | -68, -2, -63, |
692 | -151, -300, 160, |
693 | -18, -333, 54, |
694 | -56, -94, 5, |
695 | 2, -190, 14, |
696 | 92, 148, 209, |
697 | 108, 9, 272, |
698 | 108, 35, 110, |
699 | 142, -85, 145, |
700 | 47, -157, 279, |
701 | 3, -320, 246, |
702 | 43, -72, 68, |
703 | 86, -217, 135, |
704 | 36, 140, 79, |
705 | 56, 175, -49, |
706 | 26, 45, 3, |
707 | 73, 55, -101, |
708 | 109, -183, -242, |
709 | -4, -283, -242, |
710 | 48, -68, -48, |
711 | -6, -153, -122, |
712 | 161, 196, 96, |
713 | 232, 80, 190, |
714 | 165, 97, 11, |
715 | 258, -31, 71, |
716 | 267, -77, -91, |
717 | 311, -209, 87, |
718 | 152, -14, -22, |
719 | 150, -149, 9, |
720 | -324, 557, 187, |
721 | -384, 307, 46, |
722 | -251, 27, 77, |
723 | -365, 77, -52, |
724 | -482, -84, 160, |
725 | -424, -515, -64, |
726 | -294, -120, -4, |
727 | -476, -116, -109, |
728 | -97, 318, 365, |
729 | 106, 627, 445, |
730 | -190, 120, 287, |
731 | -146, 65, 619, |
732 | -427, 242, 363, |
733 | -361, -371, 432, |
734 | -347, 102, 168, |
735 | -629, 195, -14, |
736 | -65, 476, -47, |
737 | -297, 320, -168, |
738 | -55, 356, -264, |
739 | -391, 82, -286, |
740 | -51, -31, -556, |
741 | -178, -399, -586, |
742 | -205, -49, -360, |
743 | -343, -238, -337, |
744 | 220, 457, 58, |
745 | 561, 467, 259, |
746 | 340, 270, -168, |
747 | 450, 77, -280, |
748 | 60, 167, -413, |
749 | 133, -252, -492, |
750 | 216, 157, -290, |
751 | 282, 0, -495, |
752 | -226, 293, 183, |
753 | -157, 135, 122, |
754 | -158, -59, 39, |
755 | -133, -118, -97, |
756 | -332, -309, 113, |
757 | -160, -425, -6, |
758 | -149, -211, 24, |
759 | -80, -277, -90, |
760 | -11, 125, 338, |
761 | 130, -71, 465, |
762 | 5, -45, 184, |
763 | 237, -95, 253, |
764 | -139, -197, 297, |
765 | -19, -300, 511, |
766 | -63, -152, 139, |
767 | 250, -289, 336, |
768 | 124, 339, -150, |
769 | 34, 176, -208, |
770 | 171, 166, -116, |
771 | 94, 38, -229, |
772 | 75, -65, -339, |
773 | -78, -205, -385, |
774 | 0, -30, -163, |
775 | -56, -110, -242, |
776 | 321, 244, 194, |
777 | 505, 238, -1, |
778 | 317, 116, 65, |
779 | 309, 88, -74, |
780 | 452, -51, -50, |
781 | 334, -217, -290, |
782 | 211, 41, -152, |
783 | 238, -55, -260 |
784 | }; |
785 | |
786 | |
787 | /* |
788 | * 2nd stage codebook; 3rd split: isf2_6 to isf2_8 |
789 | */ |
790 | const Word16 D_ROM_dico23_isf[SIZE_BK23 * 3] = { |
791 | |
792 | -10, 151, 359, |
793 | 136, 298, 223, |
794 | 255, -104, 290, |
795 | 423, 6, 183, |
796 | -270, -269, -98, |
797 | -52, -82, 13, |
798 | -82, -274, -97, |
799 | 90, -246, -72, |
800 | -299, -70, 421, |
801 | -88, 365, 430, |
802 | 187, -318, 381, |
803 | 380, 37, 488, |
804 | -373, -316, 79, |
805 | -308, -101, 5, |
806 | -135, -451, 8, |
807 | 72, -421, -154, |
808 | 180, 170, -121, |
809 | 62, 177, -40, |
810 | 326, 80, -105, |
811 | 248, 263, -5, |
812 | -168, -181, -221, |
813 | -2, -23, -158, |
814 | -14, -149, -121, |
815 | 119, -91, -147, |
816 | 119, 332, -153, |
817 | 49, 303, 34, |
818 | 442, -55, -69, |
819 | 217, 454, 58, |
820 | -359, -187, -375, |
821 | -42, 50, -274, |
822 | -8, -267, -249, |
823 | 85, -86, -346, |
824 | -77, -40, 345, |
825 | 89, 134, 219, |
826 | 156, -80, 160, |
827 | 108, 40, 116, |
828 | -158, -206, 29, |
829 | 5, -32, 175, |
830 | -65, -158, 146, |
831 | 55, -78, 73, |
832 | -114, -222, 353, |
833 | -47, 81, 211, |
834 | 49, -151, 268, |
835 | 105, 4, 302, |
836 | -263, -132, 183, |
837 | -151, -28, 201, |
838 | -177, -307, 166, |
839 | 101, -221, 130, |
840 | 74, 58, -98, |
841 | 32, 44, 13, |
842 | 194, 30, -142, |
843 | 170, 96, 8, |
844 | -136, -119, -91, |
845 | -65, 8, -55, |
846 | 3, -188, 12, |
847 | 45, -63, -49, |
848 | 149, -21, -19, |
849 | 24, 144, 95, |
850 | 254, -22, 60, |
851 | 161, 196, 96, |
852 | -158, -61, 48, |
853 | -70, 33, 82, |
854 | -23, -321, 58, |
855 | 155, -147, 5, |
856 | -364, 328, 77, |
857 | -21, 453, 173, |
858 | -108, 82, 630, |
859 | 367, 263, 208, |
860 | -300, -62, -176, |
861 | -205, 143, -158, |
862 | -169, -410, -264, |
863 | 257, -269, -100, |
864 | -636, 289, -2, |
865 | -292, 627, 173, |
866 | -382, -363, 387, |
867 | 248, 524, 447, |
868 | -521, -111, -107, |
869 | -395, 118, -274, |
870 | -343, -680, -125, |
871 | -172, -447, -663, |
872 | 75, 148, -367, |
873 | -79, 263, -94, |
874 | 249, 148, -286, |
875 | 380, 271, -162, |
876 | -142, -4, -186, |
877 | -57, 111, -125, |
878 | -35, -108, -254, |
879 | 100, 29, -242, |
880 | -80, 303, -264, |
881 | -78, 464, -57, |
882 | 248, -22, -494, |
883 | 661, 662, 44, |
884 | -193, -40, -330, |
885 | -178, 145, -337, |
886 | -90, -199, -400, |
887 | -40, -23, -498, |
888 | -192, 114, 315, |
889 | -41, 244, 190, |
890 | 88, -97, 485, |
891 | 241, 80, 212, |
892 | -246, 40, 87, |
893 | -156, 147, 134, |
894 | -2, -334, 239, |
895 | 308, -203, 110, |
896 | -459, 251, 422, |
897 | -218, 310, 228, |
898 | -86, -346, 654, |
899 | 184, 175, 425, |
900 | -481, -63, 169, |
901 | -349, 117, 188, |
902 | -125, -560, 310, |
903 | 158, -416, 94, |
904 | 46, 171, -192, |
905 | -63, 157, 14, |
906 | 256, -35, -271, |
907 | 322, 123, 53, |
908 | -214, 4, -76, |
909 | -156, 86, -18, |
910 | 128, -197, -232, |
911 | 265, -90, -98, |
912 | -308, 332, -145, |
913 | -131, 308, 58, |
914 | 509, 59, -339, |
915 | 562, 196, -14, |
916 | -378, 100, -47, |
917 | -234, 202, 1, |
918 | 104, -270, -493, |
919 | 319, -210, -325 |
920 | }; |
921 | |
922 | |
923 | /* |
924 | * 2nd stage codebook; 4th split: isf2_9 to isf2_11 |
925 | */ |
926 | const Word16 D_ROM_dico24_isf[SIZE_BK24 * 3] = { |
927 | |
928 | -79, -89, -4, |
929 | -171, 77, -211, |
930 | 160, -193, 98, |
931 | 120, -103, 323, |
932 | 32, -22, -129, |
933 | 72, 78, -268, |
934 | 182, -76, -66, |
935 | 309, 99, -145, |
936 | -229, -157, -84, |
937 | -383, 98, -71, |
938 | -90, -352, 12, |
939 | -284, -178, 178, |
940 | -65, -125, -166, |
941 | -87, -175, -351, |
942 | 42, -198, -48, |
943 | 154, -140, -243, |
944 | -77, 18, 108, |
945 | -39, 355, 91, |
946 | 87, 8, 155, |
947 | -4, 158, 239, |
948 | 128, 95, -54, |
949 | 7, 246, -124, |
950 | 258, 15, 89, |
951 | 206, 216, 98, |
952 | -201, 9, 18, |
953 | -312, 233, 204, |
954 | -39, -174, 155, |
955 | -144, -9, 284, |
956 | -57, 70, -69, |
957 | -157, 187, 18, |
958 | 54, -30, 23, |
959 | 24, 135, 55 |
960 | }; |
961 | |
962 | |
963 | /* |
964 | * 2nd stage codebook; 5th split: isf2_12 to isf2_15 |
965 | */ |
966 | const Word16 D_ROM_dico25_isf[SIZE_BK25 * 4] = { |
967 | |
968 | 169, 142, -119, 115, |
969 | 206, -20, 94, 226, |
970 | -106, 313, -21, 16, |
971 | -62, 161, 71, 255, |
972 | -89, 101, -185, 125, |
973 | 72, -30, -201, 344, |
974 | -258, 33, -8, 81, |
975 | -104, -154, 72, 296, |
976 | 144, -68, -268, -25, |
977 | 81, -78, -87, 106, |
978 | 22, 155, -186, -119, |
979 | -46, -28, 27, 91, |
980 | -114, -37, -175, -33, |
981 | -94, -222, -189, 122, |
982 | -132, -119, -191, -270, |
983 | -172, -173, 18, -43, |
984 | 279, 135, -42, -128, |
985 | 187, -86, 229, -138, |
986 | 159, 240, 140, 46, |
987 | 69, 25, 227, 77, |
988 | 21, 115, 13, 8, |
989 | 68, -248, 126, 81, |
990 | -150, 137, 207, -9, |
991 | -154, -133, 289, 67, |
992 | 143, -37, -86, -326, |
993 | 180, -32, 19, -23, |
994 | 26, 168, 116, -233, |
995 | -32, -26, 118, -78, |
996 | 3, -8, -45, -115, |
997 | 57, -215, -54, -83, |
998 | -209, 112, -22, -167, |
999 | -91, -151, 168, -262 |
1000 | }; |
1001 | |
1002 | /* |
1003 | * isf codebooks: two-stage VQ with split-by-3 in 2nd stage |
1004 | * 1st stage is kept the same as the 46 bit quantizer |
1005 | * |
1006 | * codebook vector dimension number of vectors |
1007 | * ~~~~~~~~ ~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~ |
1008 | * 1_1 9 256 |
1009 | * 1_2 7 256 |
1010 | * 2_1 5 128 |
1011 | * 2_2 4 128 |
1012 | * 2_3 7 64 |
1013 | */ |
1014 | |
1015 | const Word16 D_ROM_dico21_isf_36b[SIZE_BK21_36b * 5] = { |
1016 | |
1017 | -52, -96, 212, 315, -73, |
1018 | 82, -204, 363, 136, -197, |
1019 | -126, -331, 183, 218, 143, |
1020 | -49, -41, 557, 230, 72, |
1021 | 2, -73, 163, 377, 221, |
1022 | 133, 111, 278, 215, -110, |
1023 | -102, -20, 284, 113, 273, |
1024 | 84, 319, 290, 18, 85, |
1025 | -25, -5, 125, 132, -204, |
1026 | -38, -5, 286, -9, -356, |
1027 | -140, -256, 92, 117, -189, |
1028 | -144, 191, 313, 51, -98, |
1029 | 167, -10, 44, 247, 36, |
1030 | 381, 197, 238, 74, 6, |
1031 | 38, -408, 29, -3, -85, |
1032 | 92, 266, 157, -25, -200, |
1033 | 161, -121, 70, 84, -140, |
1034 | -16, -86, 112, -94, -189, |
1035 | -269, -270, 351, 107, -24, |
1036 | -68, -67, 492, -103, -155, |
1037 | -53, -131, 62, 122, 10, |
1038 | 135, 84, 283, -55, -120, |
1039 | -12, -219, 331, -81, 167, |
1040 | 220, -136, 147, -172, -42, |
1041 | 140, -95, -109, -88, -194, |
1042 | 0, -2, -4, -33, -381, |
1043 | -66, -217, 152, -186, -402, |
1044 | 244, 108, 156, -140, -395, |
1045 | 113, -136, -196, 110, -24, |
1046 | 214, 118, 11, -64, -131, |
1047 | -110, -286, -6, -332, 16, |
1048 | 94, 97, 79, -291, -205, |
1049 | -5, -39, -20, 252, -96, |
1050 | 76, 174, 101, 163, 61, |
1051 | -69, -239, -55, 399, 6, |
1052 | -115, 319, 164, 275, 196, |
1053 | -15, 36, -47, 331, 121, |
1054 | 226, 209, 271, 325, 184, |
1055 | 13, -80, -218, 471, 353, |
1056 | 288, 378, 16, -51, 251, |
1057 | 174, 116, 52, 149, -279, |
1058 | 235, 276, 39, 120, -48, |
1059 | 0, -108, -108, 241, -339, |
1060 | -93, 534, 45, 33, -87, |
1061 | 194, 149, -71, 405, -44, |
1062 | 409, 370, 81, -186, -154, |
1063 | 25, -102, -448, 124, -173, |
1064 | 22, 408, -110, -310, -214, |
1065 | -26, 23, -83, 114, 14, |
1066 | -110, 164, 52, 223, -82, |
1067 | 37, -25, -263, 306, -15, |
1068 | -466, 415, 292, 165, -18, |
1069 | 29, -19, -171, 155, 182, |
1070 | 179, 144, -27, 231, 258, |
1071 | -103, -247, -396, 238, 113, |
1072 | 375, -154, -109, -4, 156, |
1073 | 98, 85, -292, -5, -124, |
1074 | 116, 139, -116, -98, -294, |
1075 | -14, -83, -278, -117, -378, |
1076 | 106, 33, -106, -344, -484, |
1077 | 119, 17, -412, 138, 166, |
1078 | 384, 101, -204, 88, -156, |
1079 | -121, -284, -300, -1, -166, |
1080 | 280, 33, -152, -313, -81, |
1081 | -37, 22, 229, 153, 37, |
1082 | -60, -83, 236, -8, -41, |
1083 | -169, -228, 126, -20, 363, |
1084 | -235, 17, 364, -156, 156, |
1085 | -25, -30, 72, 144, 156, |
1086 | 153, -26, 256, 97, 144, |
1087 | -21, -37, 48, -65, 250, |
1088 | 63, 77, 273, -128, 124, |
1089 | -129, -26, 40, 9, -115, |
1090 | -6, 82, 38, -90, -182, |
1091 | -336, -13, 28, 158, 91, |
1092 | -30, 241, 137, -170, -17, |
1093 | 146, 14, -11, 33, 61, |
1094 | 192, 197, 54, -84, 85, |
1095 | 23, -200, -78, -29, 140, |
1096 | 122, 237, 106, -341, 136, |
1097 | -57, -142, -85, -16, -74, |
1098 | -59, -90, -8, -187, -20, |
1099 | -211, -267, 216, -179, -110, |
1100 | -50, -7, 220, -267, -70, |
1101 | -57, -42, -17, -15, 71, |
1102 | 32, 21, 63, -137, 33, |
1103 | -137, -175, 104, -68, 97, |
1104 | -67, -43, 133, -301, 221, |
1105 | -116, -200, -81, -92, -272, |
1106 | -64, -41, -54, -244, -220, |
1107 | -287, -242, -50, -87, -89, |
1108 | -245, 236, 102, -166, -295, |
1109 | 66, 24, -162, -71, 95, |
1110 | 66, 136, -90, -220, -36, |
1111 | -98, -161, -222, -188, 29, |
1112 | -18, 18, -19, -415, 9, |
1113 | 49, 61, 100, 39, -56, |
1114 | -111, 82, 135, -31, 52, |
1115 | -90, -153, -93, 189, 182, |
1116 | -214, 295, 119, -74, 284, |
1117 | 2, 137, 37, 47, 182, |
1118 | 92, 117, 184, -53, 373, |
1119 | -21, -14, -35, 136, 391, |
1120 | 146, 129, -164, -28, 333, |
1121 | 92, 80, -84, 100, -134, |
1122 | -8, 217, -32, 3, -47, |
1123 | -151, 251, -215, 142, 92, |
1124 | -224, 310, -172, -275, 98, |
1125 | 159, 155, -177, 112, 53, |
1126 | 205, 27, 8, -240, 192, |
1127 | 169, 120, -319, -201, 106, |
1128 | 11, 36, -86, -237, 455, |
1129 | -109, -154, -163, 174, -55, |
1130 | -38, 32, -101, -78, -59, |
1131 | -205, -321, -97, 69, 79, |
1132 | -310, 44, 18, -185, 34, |
1133 | -115, -20, -148, -39, 203, |
1134 | -29, 154, -30, -158, 166, |
1135 | -45, -131, -317, -24, 363, |
1136 | -165, -205, -112, -222, 265, |
1137 | -32, -44, -150, 54, -193, |
1138 | -6, -38, -255, -169, -115, |
1139 | -266, 87, -189, -36, -169, |
1140 | -60, -87, -266, -436, -170, |
1141 | -68, -81, -278, 24, 38, |
1142 | -23, -19, -155, -256, 141, |
1143 | -61, -226, -565, -175, 71, |
1144 | 9, -29, -237, -515, 263 |
1145 | }; |
1146 | |
1147 | const Word16 D_ROM_dico22_isf_36b[SIZE_BK22_36b * 4] = { |
1148 | |
1149 | -298, -6, 95, 31, |
1150 | -213, -87, -122, 261, |
1151 | 4, -49, 208, 14, |
1152 | -129, -110, 30, 118, |
1153 | -214, 258, 110, -235, |
1154 | -41, -18, -126, 120, |
1155 | 103, 65, 127, -37, |
1156 | 126, -36, -24, 25, |
1157 | -138, -67, -278, -186, |
1158 | -164, -194, -201, 78, |
1159 | -211, -87, -51, -221, |
1160 | -174, -79, -94, -39, |
1161 | 23, -6, -157, -240, |
1162 | 22, -110, -153, -68, |
1163 | 148, -5, -2, -149, |
1164 | -1, -135, -39, -179, |
1165 | 68, 360, -117, -15, |
1166 | 137, 47, -278, 146, |
1167 | 136, 260, 135, 65, |
1168 | 61, 116, -45, 97, |
1169 | 231, 379, 87, -120, |
1170 | 338, 177, -272, 3, |
1171 | 266, 156, 28, -69, |
1172 | 260, 84, -85, 86, |
1173 | -266, 154, -256, -182, |
1174 | -17, -65, -304, -6, |
1175 | -40, 175, -151, -180, |
1176 | -27, 27, -87, -63, |
1177 | 121, 114, -166, -469, |
1178 | 159, -66, -323, -231, |
1179 | 214, 152, -141, -212, |
1180 | 137, 36, -184, -51, |
1181 | -282, -237, 40, 10, |
1182 | -48, -235, -37, 251, |
1183 | -54, -323, 136, 29, |
1184 | -88, -174, 213, 198, |
1185 | -390, 99, -63, -375, |
1186 | 107, -169, -164, 424, |
1187 | 69, -111, 141, -167, |
1188 | 74, -129, 65, 144, |
1189 | -353, -207, -205, -109, |
1190 | -160, -386, -355, 98, |
1191 | -176, -493, -20, -143, |
1192 | -252, -432, -2, 216, |
1193 | -90, -174, -168, -411, |
1194 | 13, -284, -229, -160, |
1195 | -87, -279, 34, -251, |
1196 | -75, -263, -58, -42, |
1197 | 420, 53, -211, -358, |
1198 | 384, -35, -374, 396, |
1199 | 68, -228, 323, -2, |
1200 | 167, -307, 192, 194, |
1201 | 459, 329, -5, -332, |
1202 | 375, 79, -7, 313, |
1203 | 282, -124, 200, -92, |
1204 | 271, -162, -70, 180, |
1205 | -157, -298, -514, -309, |
1206 | 58, -163, -546, 18, |
1207 | 124, -364, 167, -238, |
1208 | 83, -411, -117, 96, |
1209 | 140, -112, -388, -624, |
1210 | 259, -133, -317, 41, |
1211 | 163, -130, -64, -334, |
1212 | 226, -165, -124, -110, |
1213 | -466, -61, 6, 229, |
1214 | -153, 205, -145, 242, |
1215 | -159, 48, 195, 148, |
1216 | -58, 28, 31, 279, |
1217 | -303, 185, 279, -4, |
1218 | -61, 197, 59, 86, |
1219 | -114, 123, 168, -52, |
1220 | 35, 36, 100, 126, |
1221 | -407, 102, -77, -40, |
1222 | -338, -1, -342, 156, |
1223 | -179, 105, -34, -97, |
1224 | -185, 84, -35, 108, |
1225 | -133, 107, -91, -357, |
1226 | -180, 54, -229, 24, |
1227 | -44, 47, 47, -182, |
1228 | -66, 13, 45, 4, |
1229 | -339, 251, 64, 226, |
1230 | -42, 101, -350, 275, |
1231 | -99, 398, 142, 121, |
1232 | 111, 12, -102, 260, |
1233 | 0, 505, 260, -94, |
1234 | 161, 285, -96, 224, |
1235 | -4, 206, 314, 33, |
1236 | 167, 139, 88, 204, |
1237 | -235, 316, -60, -25, |
1238 | -8, -150, -312, 201, |
1239 | -36, 292, 61, -104, |
1240 | -40, 174, -162, 42, |
1241 | -21, 402, -29, -351, |
1242 | 21, 152, -360, -93, |
1243 | 57, 191, 212, -196, |
1244 | 76, 158, -21, -69, |
1245 | -328, -185, 331, 119, |
1246 | -53, 285, 56, 337, |
1247 | -107, -24, 405, 29, |
1248 | -18, 137, 272, 277, |
1249 | -255, 22, 173, -191, |
1250 | 295, 322, 325, 302, |
1251 | 21, -27, 332, -178, |
1252 | 119, 13, 271, 129, |
1253 | -455, -180, 116, -191, |
1254 | -227, 62, -148, 524, |
1255 | -176, -287, 282, -157, |
1256 | -243, 13, 199, 430, |
1257 | -59, -49, 115, -365, |
1258 | 72, -172, -137, 93, |
1259 | -138, -126, 141, -84, |
1260 | 5, -124, 38, -20, |
1261 | -258, 311, 601, 213, |
1262 | 94, 130, -61, 502, |
1263 | -1, -157, 485, 313, |
1264 | 146, -74, 158, 345, |
1265 | 276, 135, 280, -57, |
1266 | 490, 252, 99, 43, |
1267 | 267, -74, 429, 105, |
1268 | 278, -23, 119, 94, |
1269 | -542, 488, 257, -115, |
1270 | -84, -244, -438, 478, |
1271 | -113, -545, 387, 101, |
1272 | -95, -306, 111, 498, |
1273 | 95, 166, 22, -301, |
1274 | 420, -15, -58, -78, |
1275 | 270, 29, 122, -282, |
1276 | 160, -240, 50, -38 |
1277 | }; |
1278 | |
1279 | const Word16 D_ROM_dico23_isf_36b[SIZE_BK23_36b * 7] = { |
1280 | |
1281 | 81, -18, 68, -27, -122, -280, -4, |
1282 | 45, -177, 209, -30, -136, -74, 131, |
1283 | -44, 101, -75, -88, -48, -137, -54, |
1284 | -245, -28, 63, -18, -112, -103, 58, |
1285 | -79, -6, 220, -65, 114, -35, -50, |
1286 | 109, -65, 143, -114, 129, 76, 125, |
1287 | 166, 90, -61, -242, 186, -74, -43, |
1288 | -46, -92, 49, -227, 24, -155, 39, |
1289 | 67, 85, 99, -42, 53, -184, -281, |
1290 | 142, -122, 0, 21, -142, -15, -17, |
1291 | 223, 92, -21, -48, -82, -14, -167, |
1292 | 51, -37, -243, -30, -90, 18, -56, |
1293 | 54, 105, 74, 86, 69, 13, -101, |
1294 | 196, 72, -89, 43, 65, 19, 39, |
1295 | 121, 34, 131, -82, 25, 213, -156, |
1296 | 101, -102, -136, -21, 57, 214, 22, |
1297 | 36, -124, 205, 204, 58, -156, -83, |
1298 | 83, -117, 137, 137, 85, 116, 44, |
1299 | -92, -148, -68, 11, -102, -197, -220, |
1300 | -76, -185, -58, 132, -26, -183, 85, |
1301 | -7, -31, -2, 23, 205, -151, 10, |
1302 | -27, -37, -5, -18, 292, 131, 1, |
1303 | 117, -168, 9, -93, 80, -59, -125, |
1304 | -182, -244, 98, -24, 135, -22, 94, |
1305 | 221, 97, 106, 42, 43, -160, 83, |
1306 | 25, -64, -21, 6, 14, -15, 154, |
1307 | 126, 15, -140, 150, -10, -207, -114, |
1308 | 79, -63, -211, -70, -28, -217, 165, |
1309 | 46, 38, -22, 281, 132, -62, 109, |
1310 | 112, 54, -112, -93, 208, 27, 296, |
1311 | 115, 10, -147, 41, 216, 42, -276, |
1312 | 50, -115, -254, 167, 117, -2, 61, |
1313 | 17, 144, 34, -72, -186, -150, 272, |
1314 | -29, -66, -89, -95, -149, 129, 251, |
1315 | 122, 0, -50, -234, -91, 36, 26, |
1316 | -105, -102, -88, -121, -236, -7, -11, |
1317 | -204, 109, 5, -191, 105, -15, 163, |
1318 | -80, 32, -24, -209, 41, 294, 70, |
1319 | -106, -94, -204, -118, 120, -50, -37, |
1320 | -82, -241, 46, -131, -29, 150, -55, |
1321 | 33, 155, 120, -89, -8, 7, 62, |
1322 | 213, 82, 61, 18, -161, 144, 152, |
1323 | 30, 131, 65, -87, -255, -17, -107, |
1324 | -8, 85, -64, 51, -162, 223, -53, |
1325 | -134, 261, 69, -56, 218, 72, -111, |
1326 | 2, 155, -113, -87, 49, 85, -28, |
1327 | -163, 42, -1, -196, 7, 39, -245, |
1328 | 14, -137, -79, 11, -160, 202, -293, |
1329 | -94, 33, 208, 100, 56, -44, 326, |
1330 | -78, -41, 232, 13, -142, 227, 80, |
1331 | -16, -87, 201, 33, -133, 15, -183, |
1332 | -58, -192, -47, 184, -128, 133, 99, |
1333 | -205, 11, -155, 78, 52, 72, 141, |
1334 | -246, 26, 99, 151, 59, 115, -64, |
1335 | -79, -47, -16, -14, 6, 47, -43, |
1336 | -72, -178, -27, 162, 112, 43, -174, |
1337 | -175, 238, 186, 71, -54, -188, -76, |
1338 | -225, 233, 39, -39, -158, 122, 44, |
1339 | -26, 43, 84, 130, -93, -51, 22, |
1340 | 3, 92, -150, 136, -182, -57, 97, |
1341 | -131, 179, -78, 80, 91, -165, 90, |
1342 | -2, 148, 15, 130, 65, 175, 117, |
1343 | -138, 114, -137, 132, 3, -10, -186, |
1344 | 140, -4, -37, 254, -62, 92, -109 |
1345 | }; |
1346 | |
1347 | /* |
1348 | * isf codebooks: split-by-5 VQ |
1349 | * |
1350 | * codebook vector dimension number of vectors |
1351 | * ~~~~~~~~ ~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~ |
1352 | * 1 2 64 |
1353 | * 2 3 64 |
1354 | * 3 3 64 |
1355 | * 4 4 32 |
1356 | * 5 4 32 |
1357 | */ |
1358 | |
1359 | /* |
1360 | * 1st split: isf0 to isf1 |
1361 | */ |
1362 | const Word16 D_ROM_dico1_isf_noise[SIZE_BK_NOISE1 * 2] = { |
1363 | -269, -673, |
1364 | -222, -537, |
1365 | -233, -430, |
1366 | -138, -451, |
1367 | -212, -331, |
1368 | -192, -241, |
1369 | -87, -231, |
1370 | -191, -128, |
1371 | -70, -106, |
1372 | -164, -6, |
1373 | 74, -179, |
1374 | 27, -33, |
1375 | -102, 74, |
1376 | -162, 115, |
1377 | -94, 172, |
1378 | -6, 130, |
1379 | -143, 234, |
1380 | 14, 218, |
1381 | -65, 270, |
1382 | 88, 182, |
1383 | -124, 341, |
1384 | -44, 381, |
1385 | 38, 335, |
1386 | 117, 274, |
1387 | -112, 454, |
1388 | 74, 431, |
1389 | -5, 488, |
1390 | 175, 384, |
1391 | -83, 561, |
1392 | 122, 529, |
1393 | 21, 601, |
1394 | 229, 481, |
1395 | 231, 303, |
1396 | 226, 608, |
1397 | 300, 372, |
1398 | 210, 187, |
1399 | 306, 265, |
1400 | 328, 473, |
1401 | 382, 331, |
1402 | 371, 132, |
1403 | 139, 58, |
1404 | 365, 21, |
1405 | 250, -82, |
1406 | 443, 218, |
1407 | 483, 110, |
1408 | 426, 415, |
1409 | 579, 222, |
1410 | 518, 333, |
1411 | 573, 448, |
1412 | 455, 529, |
1413 | 685, 329, |
1414 | 332, 580, |
1415 | 595, 593, |
1416 | 468, 645, |
1417 | 762, 517, |
1418 | 326, 709, |
1419 | 485, 793, |
1420 | 130, 684, |
1421 | 671, 737, |
1422 | 354, 876, |
1423 | 88, 806, |
1424 | -65, 706, |
1425 | -35, 1016, |
1426 | 266, 1123 |
1427 | }; |
1428 | |
1429 | |
1430 | /* |
1431 | * 2nd split: isf2 to isf4 |
1432 | */ |
1433 | const Word16 D_ROM_dico2_isf_noise[SIZE_BK_NOISE2 * 3] = { |
1434 | -824, -884, -949, |
1435 | -805, -456, -418, |
1436 | -442, -438, -541, |
1437 | -217, -578, -793, |
1438 | -168, -444, -582, |
1439 | -287, -492, -274, |
1440 | -552, -297, -300, |
1441 | -163, -333, -358, |
1442 | -370, -232, -232, |
1443 | -175, -358, -159, |
1444 | -381, -21, -357, |
1445 | -184, -159, -162, |
1446 | -53, -191, -280, |
1447 | 18, -267, -215, |
1448 | -138, 61, -283, |
1449 | 71, -95, -294, |
1450 | 13, -156, -546, |
1451 | 0, -83, -79, |
1452 | 44, 97, -316, |
1453 | 178, -52, -213, |
1454 | 222, -261, -422, |
1455 | 237, -118, -44, |
1456 | 141, 145, -132, |
1457 | 363, 81, -287, |
1458 | 213, 65, 34, |
1459 | -107, 94, -5, |
1460 | 91, -29, 126, |
1461 | -355, 51, -41, |
1462 | -219, -76, 145, |
1463 | -63, 100, 244, |
1464 | -719, 44, 27, |
1465 | -572, -124, 155, |
1466 | -423, 133, 315, |
1467 | -917, 71, 224, |
1468 | -268, 318, 131, |
1469 | -93, -190, 420, |
1470 | -97, 122, 491, |
1471 | -79, 317, 355, |
1472 | 130, 100, 325, |
1473 | 86, -293, 210, |
1474 | 133, 258, 161, |
1475 | 176, -73, 465, |
1476 | 195, 300, 384, |
1477 | 348, 22, 221, |
1478 | 376, 183, 409, |
1479 | 377, 286, 202, |
1480 | 242, 213, 659, |
1481 | 257, 565, 248, |
1482 | 344, 408, -76, |
1483 | 405, 440, 509, |
1484 | 612, 385, 379, |
1485 | 536, 607, 216, |
1486 | -56, 582, 192, |
1487 | 100, 517, 567, |
1488 | -365, 448, 445, |
1489 | 728, 347, 10, |
1490 | 505, 357, 759, |
1491 | 636, 582, 658, |
1492 | 335, 517, 852, |
1493 | 378, 809, 572, |
1494 | -195, 878, 829, |
1495 | 529, 707, 987, |
1496 | 918, 726, 392, |
1497 | 1250, 997, 1063 |
1498 | }; |
1499 | |
1500 | /* |
1501 | * 3rd split: isf5 to isf7 |
1502 | */ |
1503 | const Word16 D_ROM_dico3_isf_noise[SIZE_BK_NOISE3 * 3] = { |
1504 | -805, -838, -774, |
1505 | -522, -627, -828, |
1506 | -477, -486, -603, |
1507 | -295, -481, -634, |
1508 | -366, -384, -393, |
1509 | -186, -414, -396, |
1510 | -237, -394, -106, |
1511 | -252, -202, -275, |
1512 | -61, -177, -442, |
1513 | -84, -198, -199, |
1514 | -179, -125, -31, |
1515 | -72, -47, -163, |
1516 | -298, -220, 215, |
1517 | -64, -168, 251, |
1518 | -133, 156, -59, |
1519 | -30, -2, 127, |
1520 | 54, 66, -61, |
1521 | -233, 21, 251, |
1522 | 209, -50, 32, |
1523 | 33, 194, 136, |
1524 | -117, -18, 475, |
1525 | 202, 46, 309, |
1526 | 256, 185, 53, |
1527 | 35, 200, 390, |
1528 | 200, 263, 242, |
1529 | -216, 302, 294, |
1530 | 128, 358, 0, |
1531 | 19, 431, 287, |
1532 | 224, 447, 280, |
1533 | 367, 165, 213, |
1534 | 397, 314, 319, |
1535 | 383, 379, 75, |
1536 | 277, 325, 462, |
1537 | 394, 505, 334, |
1538 | 251, 98, -213, |
1539 | 450, 153, 448, |
1540 | 565, 226, 76, |
1541 | 470, 383, 502, |
1542 | 635, 390, 278, |
1543 | 237, 135, 620, |
1544 | 342, 401, 649, |
1545 | 331, 551, 518, |
1546 | 130, 418, 592, |
1547 | 531, 306, 737, |
1548 | 729, 389, 580, |
1549 | 497, 557, 699, |
1550 | 296, 383, 874, |
1551 | 283, 624, 759, |
1552 | 126, 622, 476, |
1553 | 559, 595, 472, |
1554 | 382, 770, 616, |
1555 | 719, 613, 745, |
1556 | 540, 639, 928, |
1557 | 517, 826, 801, |
1558 | 684, 811, 604, |
1559 | 752, 786, 857, |
1560 | 933, 661, 350, |
1561 | 694, 450, 1061, |
1562 | 562, 911, 1051, |
1563 | 824, 813, 1104, |
1564 | 758, 1047, 882, |
1565 | 1140, 917, 889, |
1566 | 1039, 1246, 1426, |
1567 | 1483, 1666, 1876 |
1568 | }; |
1569 | |
1570 | /* |
1571 | * 4th split: isf8 to isf11 |
1572 | */ |
1573 | const Word16 D_ROM_dico4_isf_noise[SIZE_BK_NOISE4 * 4] = { |
1574 | -776, -854, -891, -920, |
1575 | -552, -610, -663, -741, |
1576 | -321, -370, -476, -565, |
1577 | 274, -160, -456, 201, |
1578 | 265, 67, -160, -306, |
1579 | -8, -210, 79, 272, |
1580 | 163, 236, 307, 308, |
1581 | 578, 317, 64, 298, |
1582 | -9, 197, 342, 620, |
1583 | 343, 232, 314, 622, |
1584 | 173, 149, 548, 527, |
1585 | 356, 370, 481, 376, |
1586 | 135, 444, 488, 556, |
1587 | 391, 471, 487, 653, |
1588 | 228, 424, 576, 835, |
1589 | 422, 372, 722, 682, |
1590 | 295, 673, 693, 635, |
1591 | 539, 596, 590, 449, |
1592 | 475, 618, 659, 818, |
1593 | 735, 517, 491, 673, |
1594 | 602, 346, 257, 877, |
1595 | 625, 635, 849, 720, |
1596 | 727, 818, 698, 595, |
1597 | 653, 481, 690, 1139, |
1598 | 814, 762, 704, 908, |
1599 | 507, 747, 898, 936, |
1600 | 848, 855, 924, 785, |
1601 | 646, 1037, 882, 795, |
1602 | 772, 845, 1024, 1151, |
1603 | 1133, 983, 818, 921, |
1604 | 940, 1068, 1252, 1302, |
1605 | 1588, 1767, 1718, 1513 |
1606 | }; |
1607 | |
1608 | /* |
1609 | * 5th split: isf12 to isf15 |
1610 | */ |
1611 | const Word16 D_ROM_dico5_isf_noise[SIZE_BK_NOISE5 * 4] = { |
1612 | -810, -879, -945, -254, |
1613 | 248, 184, 671, 128, |
1614 | 288, 703, 918, 99, |
1615 | 658, 558, 662, 219, |
1616 | 552, 585, 910, 208, |
1617 | 559, 804, 759, 119, |
1618 | 606, 774, 921, -139, |
1619 | 782, 761, 748, 208, |
1620 | 756, 708, 983, 56, |
1621 | 544, 864, 1010, 152, |
1622 | 737, 698, 987, 299, |
1623 | 771, 924, 879, 103, |
1624 | 536, 785, 961, 405, |
1625 | 667, 916, 801, 328, |
1626 | 738, 705, 773, 439, |
1627 | 823, 871, 992, 355, |
1628 | 640, 1004, 1052, 369, |
1629 | 724, 822, 949, 597, |
1630 | 415, 655, 729, 482, |
1631 | 1009, 896, 793, 363, |
1632 | 908, 803, 687, -25, |
1633 | 1016, 838, 1011, 189, |
1634 | 947, 1112, 942, 222, |
1635 | 914, 1049, 981, 527, |
1636 | 956, 987, 1011, -120, |
1637 | 781, 1049, 1121, 92, |
1638 | 1178, 1053, 884, 47, |
1639 | 1123, 1059, 1182, 118, |
1640 | 933, 972, 1277, 357, |
1641 | 1109, 918, 1101, 503, |
1642 | 1039, 1286, 1220, 317, |
1643 | 1351, 1207, 1010, 326 |
1644 | }; |
1645 | |
1646 | /* |
1647 | * Table of pitch and codebook gains |
1648 | * |
1649 | * g_pitch(Q14), g_code(Q11) |
1650 | * |
1651 | * pitch gain are ordered in table to reduce complexity |
1652 | * during quantization of gains. |
1653 | */ |
1654 | |
1655 | /* Number of quantization level is 64 */ |
1656 | const Word16 D_ROM_qua_gain6b[64 * 2] = { |
1657 | 1566, 1332, |
1658 | 1577, 3557, |
1659 | 3071, 6490, |
1660 | 4193, 10163, |
1661 | 4496, 2534, |
1662 | 5019, 4488, |
1663 | 5586, 15614, |
1664 | 5725, 1422, |
1665 | 6453, 580, |
1666 | 6724, 6831, |
1667 | 7657, 3527, |
1668 | 8072, 2099, |
1669 | 8232, 5319, |
1670 | 8827, 8775, |
1671 | 9740, 2868, |
1672 | 9856, 1465, |
1673 | 10087, 12488, |
1674 | 10241, 4453, |
1675 | 10859, 6618, |
1676 | 11321, 3587, |
1677 | 11417, 1800, |
1678 | 11643, 2428, |
1679 | 11718, 988, |
1680 | 12312, 5093, |
1681 | 12523, 8413, |
1682 | 12574, 26214, |
1683 | 12601, 3396, |
1684 | 13172, 1623, |
1685 | 13285, 2423, |
1686 | 13418, 6087, |
1687 | 13459, 12810, |
1688 | 13656, 3607, |
1689 | 14111, 4521, |
1690 | 14144, 1229, |
1691 | 14425, 1871, |
1692 | 14431, 7234, |
1693 | 14445, 2834, |
1694 | 14628, 10036, |
1695 | 14860, 17496, |
1696 | 15161, 3629, |
1697 | 15209, 5819, |
1698 | 15299, 2256, |
1699 | 15518, 4722, |
1700 | 15663, 1060, |
1701 | 15759, 7972, |
1702 | 15939, 11964, |
1703 | 16020, 2996, |
1704 | 16086, 1707, |
1705 | 16521, 4254, |
1706 | 16576, 6224, |
1707 | 16894, 2380, |
1708 | 16906, 681, |
1709 | 17213, 8406, |
1710 | 17610, 3418, |
1711 | 17895, 5269, |
1712 | 18168, 11748, |
1713 | 18230, 1575, |
1714 | 18607, 32767, |
1715 | 18728, 21684, |
1716 | 19137, 2543, |
1717 | 19422, 6577, |
1718 | 19446, 4097, |
1719 | 19450, 9056, |
1720 | 20371, 14885 |
1721 | }; |
1722 | |
1723 | /* Number of quantization level is 128 */ |
1724 | const Word16 D_ROM_qua_gain7b[128 * 2] = { |
1725 | 204, 441, |
1726 | 464, 1977, |
1727 | 869, 1077, |
1728 | 1072, 3062, |
1729 | 1281, 4759, |
1730 | 1647, 1539, |
1731 | 1845, 7020, |
1732 | 1853, 634, |
1733 | 1995, 2336, |
1734 | 2351, 15400, |
1735 | 2661, 1165, |
1736 | 2702, 3900, |
1737 | 2710, 10133, |
1738 | 3195, 1752, |
1739 | 3498, 2624, |
1740 | 3663, 849, |
1741 | 3984, 5697, |
1742 | 4214, 3399, |
1743 | 4415, 1304, |
1744 | 4695, 2056, |
1745 | 5376, 4558, |
1746 | 5386, 676, |
1747 | 5518, 23554, |
1748 | 5567, 7794, |
1749 | 5644, 3061, |
1750 | 5672, 1513, |
1751 | 5957, 2338, |
1752 | 6533, 1060, |
1753 | 6804, 5998, |
1754 | 6820, 1767, |
1755 | 6937, 3837, |
1756 | 7277, 414, |
1757 | 7305, 2665, |
1758 | 7466, 11304, |
1759 | 7942, 794, |
1760 | 8007, 1982, |
1761 | 8007, 1366, |
1762 | 8326, 3105, |
1763 | 8336, 4810, |
1764 | 8708, 7954, |
1765 | 8989, 2279, |
1766 | 9031, 1055, |
1767 | 9247, 3568, |
1768 | 9283, 1631, |
1769 | 9654, 6311, |
1770 | 9811, 2605, |
1771 | 10120, 683, |
1772 | 10143, 4179, |
1773 | 10245, 1946, |
1774 | 10335, 1218, |
1775 | 10468, 9960, |
1776 | 10651, 3000, |
1777 | 10951, 1530, |
1778 | 10969, 5290, |
1779 | 11203, 2305, |
1780 | 11325, 3562, |
1781 | 11771, 6754, |
1782 | 11839, 1849, |
1783 | 11941, 4495, |
1784 | 11954, 1298, |
1785 | 11975, 15223, |
1786 | 11977, 883, |
1787 | 11986, 2842, |
1788 | 12438, 2141, |
1789 | 12593, 3665, |
1790 | 12636, 8367, |
1791 | 12658, 1594, |
1792 | 12886, 2628, |
1793 | 12984, 4942, |
1794 | 13146, 1115, |
1795 | 13224, 524, |
1796 | 13341, 3163, |
1797 | 13399, 1923, |
1798 | 13549, 5961, |
1799 | 13606, 1401, |
1800 | 13655, 2399, |
1801 | 13782, 3909, |
1802 | 13868, 10923, |
1803 | 14226, 1723, |
1804 | 14232, 2939, |
1805 | 14278, 7528, |
1806 | 14439, 4598, |
1807 | 14451, 984, |
1808 | 14458, 2265, |
1809 | 14792, 1403, |
1810 | 14818, 3445, |
1811 | 14899, 5709, |
1812 | 15017, 15362, |
1813 | 15048, 1946, |
1814 | 15069, 2655, |
1815 | 15405, 9591, |
1816 | 15405, 4079, |
1817 | 15570, 7183, |
1818 | 15687, 2286, |
1819 | 15691, 1624, |
1820 | 15699, 3068, |
1821 | 15772, 5149, |
1822 | 15868, 1205, |
1823 | 15970, 696, |
1824 | 16249, 3584, |
1825 | 16338, 1917, |
1826 | 16424, 2560, |
1827 | 16483, 4438, |
1828 | 16529, 6410, |
1829 | 16620, 11966, |
1830 | 16839, 8780, |
1831 | 17030, 3050, |
1832 | 17033, 18325, |
1833 | 17092, 1568, |
1834 | 17123, 5197, |
1835 | 17351, 2113, |
1836 | 17374, 980, |
1837 | 17566, 26214, |
1838 | 17609, 3912, |
1839 | 17639, 32767, |
1840 | 18151, 7871, |
1841 | 18197, 2516, |
1842 | 18202, 5649, |
1843 | 18679, 3283, |
1844 | 18930, 1370, |
1845 | 19271, 13757, |
1846 | 19317, 4120, |
1847 | 19460, 1973, |
1848 | 19654, 10018, |
1849 | 19764, 6792, |
1850 | 19912, 5135, |
1851 | 20040, 2841, |
1852 | 21234, 19833 |
1853 | }; |
1854 | |
1855 | /* |
1856 | * 1/4 resolution interpolation filter (-3 dB at 0.856*fs/2) in Q14 |
1857 | */ |
1858 | const Word16 D_ROM_inter4_2[UP_SAMP * 2 * L_INTERPOL2] = { |
1859 | 0, 1, 2, 1, |
1860 | -2, -7, -10, -7, |
1861 | 4, 19, 28, 22, |
1862 | -2, -33, -55, -49, |
1863 | -10, 47, 91, 92, |
1864 | 38, -52, -133, -153, |
1865 | -88, 43, 175, 231, |
1866 | 165, -9, -209, -325, |
1867 | -275, -60, 226, 431, |
1868 | 424, 175, -213, -544, |
1869 | -619, -355, 153, 656, |
1870 | 871, 626, -16, -762, |
1871 | -1207, -1044, -249, 853, |
1872 | 1699, 1749, 780, -923, |
1873 | -2598, -3267, -2147, 968, |
1874 | 5531, 10359, 14031, 15401, |
1875 | 14031, 10359, 5531, 968, |
1876 | -2147, -3267, -2598, -923, |
1877 | 780, 1749, 1699, 853, |
1878 | -249, -1044, -1207, -762, |
1879 | -16, 626, 871, 656, |
1880 | 153, -355, -619, -544, |
1881 | -213, 175, 424, 431, |
1882 | 226, -60, -275, -325, |
1883 | -209, -9, 165, 231, |
1884 | 175, 43, -88, -153, |
1885 | -133, -52, 38, 92, |
1886 | 91, 47, -10, -49, |
1887 | -55, -33, -2, 22, |
1888 | 28, 19, 4, -7, |
1889 | -10, -7, -2, 1, |
1890 | 2, 1, 0, 0 |
1891 | }; |
1892 | |
1893 | /* |
1894 | * 1/5 resolution interpolation filter (in Q14) |
1895 | * -1.5dB @ 6kHz, -6dB @ 6.4kHz, -10dB @ 6.6kHz, -20dB @ 6.9kHz, -25dB @ 7kHz, -55dB @ 8kHz |
1896 | */ |
1897 | const Word16 D_ROM_fir_up[120] = { |
1898 | -1, -4, -7, -6, 0, |
1899 | 12, 24, 30, 23, 0, |
1900 | -33, -62, -73, -52, 0, |
1901 | 68, 124, 139, 96, 0, |
1902 | -119, -213, -235, -160, 0, |
1903 | 191, 338, 368, 247, 0, |
1904 | -291, -510, -552, -369, 0, |
1905 | 430, 752, 812, 542, 0, |
1906 | -634, -1111, -1204, -809, 0, |
1907 | 963, 1708, 1881, 1288, 0, |
1908 | -1616, -2974, -3432, -2496, 0, |
1909 | 3792, 8219, 12368, 15317, 16384, |
1910 | 15317, 12368, 8219, 3792, 0, |
1911 | -2496, -3432, -2974, -1616, 0, |
1912 | 1288, 1881, 1708, 963, 0, |
1913 | -809, -1204, -1111, -634, 0, |
1914 | 542, 812, 752, 430, 0, |
1915 | -369, -552, -510, -291, 0, |
1916 | 247, 368, 338, 191, 0, |
1917 | -160, -235, -213, -119, 0, |
1918 | 96, 139, 124, 68, 0, |
1919 | -52, -73, -62, -33, 0, |
1920 | 23, 30, 24, 12, 0, |
1921 | -6, -7, -4, -1, 0 |
1922 | }; |
1923 | |
1924 | /* table x4/5 */ |
1925 | const Word16 D_ROM_fir_down[120] = { |
1926 | -1, -3, -6, -5, |
1927 | 0, 9, 19, 24, |
1928 | 18, 0, -26, -50, |
1929 | -58, -41, 0, 54, |
1930 | 99, 111, 77, 0, |
1931 | -95, -170, -188, -128, |
1932 | 0, 153, 270, 294, |
1933 | 198, 0, -233, -408, |
1934 | -441, -295, 0, 344, |
1935 | 601, 649, 434, 0, |
1936 | -507, -888, -964, -647, |
1937 | 0, 770, 1366, 1505, |
1938 | 1030, 0, -1293, -2379, |
1939 | -2746, -1997, 0, 3034, |
1940 | 6575, 9894, 12254, 13107, |
1941 | 12254, 9894, 6575, 3034, |
1942 | 0, -1997, -2746, -2379, |
1943 | -1293, 0, 1030, 1505, |
1944 | 1366, 770, 0, -647, |
1945 | -964, -888, -507, 0, |
1946 | 434, 649, 601, 344, |
1947 | 0, -295, -441, -408, |
1948 | -233, 0, 198, 294, |
1949 | 270, 153, 0, -128, |
1950 | -188, -170, -95, 0, |
1951 | 77, 111, 99, 54, |
1952 | 0, -41, -58, -50, |
1953 | -26, 0, 18, 24, |
1954 | 19, 9, 0, -5, |
1955 | -6, -3, -1, 0 |
1956 | }; |
1957 | |
1958 | /* |
1959 | * Impulse response with phase dispersion |
1960 | */ |
1961 | |
1962 | /* 2.0 - 6.4 kHz phase dispersion */ |
1963 | const Word16 D_ROM_ph_imp_low[L_SUBFR] = { |
1964 | 20182, 9693, 3270, -3437, 2864, -5240, 1589, -1357, |
1965 | 600, 3893, -1497, -698, 1203, -5249, 1199, 5371, |
1966 | -1488, -705, -2887, 1976, 898, 721, -3876, 4227, |
1967 | -5112, 6400, -1032, -4725, 4093, -4352, 3205, 2130, |
1968 | -1996, -1835, 2648, -1786, -406, 573, 2484, -3608, |
1969 | 3139, -1363, -2566, 3808, -639, -2051, -541, 2376, |
1970 | 3932, -6262, 1432, -3601, 4889, 370, 567, -1163, |
1971 | -2854, 1914, 39, -2418, 3454, 2975, -4021, 3431 |
1972 | }; |
1973 | |
1974 | /* 3.2 - 6.4 kHz phase dispersion */ |
1975 | const Word16 D_ROM_ph_imp_mid[L_SUBFR] = { |
1976 | 24098, 10460, -5263, -763, 2048, -927, 1753, -3323, |
1977 | 2212, 652, -2146, 2487, -3539, 4109, -2107, -374, |
1978 | -626, 4270, -5485, 2235, 1858, -2769, 744, 1140, |
1979 | -763, -1615, 4060, -4574, 2982, -1163, 731, -1098, |
1980 | 803, 167, -714, 606, -560, 639, 43, -1766, |
1981 | 3228, -2782, 665, 763, 233, -2002, 1291, 1871, |
1982 | -3470, 1032, 2710, -4040, 3624, -4214, 5292, -4270, |
1983 | 1563, 108, -580, 1642, -2458, 957, 544, 2540 |
1984 | }; |
1985 | |
1986 | /* |
1987 | * Table for synthesis of signal at 16kHz with HF extension. |
1988 | */ |
1989 | const Word16 D_ROM_hp_gain[16] = { |
1990 | 3624, 4673, 5597, 6479, 7425, 8378, 9324, 10264, |
1991 | 11210, 12206, 13391, 14844, 16770, 19655, 24289, 32728 |
1992 | }; |
1993 | |
1994 | /* |
1995 | * isp and isf tables for initialization |
1996 | */ |
1997 | const Word16 D_ROM_isp[M] = { |
1998 | 32138, 30274, 27246, 23170, 18205, 12540, 6393, 0, |
1999 | -6393, -12540, -18205, -23170, -27246, -30274, -32138, 1475 |
2000 | }; |
2001 | |
2002 | const Word16 D_ROM_isf[M] = { |
2003 | 1024, 2048, 3072, 4096, 5120, 6144, 7168, 8192, |
2004 | 9216, 10240, 11264, 12288, 13312, 14336, 15360, 3840 |
2005 | }; |
2006 | |
2007 | /* |
2008 | * means of ISFs |
2009 | */ |
2010 | const Word16 D_ROM_mean_isf[ORDER] = { |
2011 | 738, 1326, 2336, 3578, 4596, 5662, 6711, 7730, |
2012 | 8750, 9753, 10705, 11728, 12833, 13971, 15043, 4037 |
2013 | }; |
2014 | |
2015 | const Word16 D_ROM_mean_isf_noise[ORDER] = { |
2016 | 478, 1100, 2213, 3267, 4219, 5222, 6198, 7240, |
2017 | 8229, 9153, 10098, 11108, 12144, 13184, 14165, 3803 |
2018 | }; |
2019 | |
2020 | /* 16-byte align end */ |
2021 | |
2022 | /* |
2023 | * LTP gain & fixed codebook gain consealement |
2024 | */ |
2025 | |
2026 | /* pitch gain weight */ |
2027 | const Word16 D_ROM_pdown_unusable[7] = {32767, 31130, 29491, 24576, 7537, 1638, 328}; |
2028 | const Word16 D_ROM_cdown_unusable[7] = {32767, 16384, 8192, 8192, 8192, 4915, 3277}; |
2029 | |
2030 | /* codebook gain weight */ |
2031 | const Word16 D_ROM_pdown_usable[7] = {32767, 32113, 31457, 24576, 7537, 1638, 328}; |
2032 | const Word16 D_ROM_cdown_usable[7] = {32767, 32113, 32113, 32113, 32113, 32113, 22938}; |
2033 | |
2034 | |
2035 | /* |
2036 | * filter coefficients (gain=4.0) |
2037 | */ |
2038 | const Word16 D_ROM_fir_6k_7k[L_FIR] = { |
2039 | -32, 47, 32, -27, -369, |
2040 | 1122, -1421, 0, 3798, -8880, |
2041 | 12349, -10984, 3548, 7766, -18001, |
2042 | 22118, -18001, 7766, 3548, -10984, |
2043 | 12349, -8880, 3798, 0, -1421, |
2044 | 1122, -369, -27, 32, 47, |
2045 | -32 |
2046 | }; |
2047 | |
2048 | const Word16 D_ROM_fir_7k[L_FIR] = { |
2049 | -21, 47, -89, 146, -203, |
2050 | 229, -177, 0, 335, -839, |
2051 | 1485, -2211, 2931, -3542, 3953, |
2052 | 28682, 3953, -3542, 2931, -2211, |
2053 | 1485, -839, 335, 0, -177, |
2054 | 229, -203, 146, -89, 47, |
2055 | -21 |
2056 | }; |
2057 | |
2058 | /* |
2059 | * LPC interpolation coef {0.45, 0.8, 0.96, 1.0}; in Q15 |
2060 | */ |
2061 | const Word16 D_ROM_interpol_frac[NB_SUBFR] = {14746, 26214, 31457, 32767}; |
2062 | |
2063 | /* |
2064 | * Math tables |
2065 | */ |
2066 | const Word16 D_ROM_pow2[33] = { |
2067 | 16384, 16743, 17109, 17484, 17867, 18258, 18658, 19066, 19484, 19911, |
2068 | 20347, 20792, 21247, 21713, 22188, 22674, 23170, 23678, 24196, 24726, |
2069 | 25268, 25821, 26386, 26964, 27554, 28158, 28774, 29405, 30048, 30706, |
2070 | 31379, 32066, 32767 |
2071 | }; |
2072 | |
2073 | const Word16 D_ROM_isqrt[49] = { |
2074 | 32767, 31790, 30894, 30070, 29309, 28602, 27945, 27330, 26755, 26214, |
2075 | 25705, 25225, 24770, 24339, 23930, 23541, 23170, 22817, 22479, 22155, |
2076 | 21845, 21548, 21263, 20988, 20724, 20470, 20225, 19988, 19760, 19539, |
2077 | 19326, 19119, 18919, 18725, 18536, 18354, 18176, 18004, 17837, 17674, |
2078 | 17515, 17361, 17211, 17064, 16921, 16782, 16646, 16514, 16384 |
2079 | }; |
2080 | |
2081 | const Word16 D_ROM_log2[33] = { |
2082 | 0, 1455, 2866, 4236, 5568, 6863, 8124, 9352, 10549, 11716, |
2083 | 12855, 13967, 15054, 16117, 17156, 18172, 19167, 20142, 21097, 22033, |
2084 | 22951, 23852, 24735, 25603, 26455, 27291, 28113, 28922, 29716, 30497, |
2085 | 31266, 32023, 32767 |
2086 | }; |
2087 | |
2088 | /* table of cos(x) in Q15 */ |
2089 | const Word16 D_ROM_cos[129] = { |
2090 | 32767, |
2091 | 32758, 32729, 32679, 32610, 32522, 32413, 32286, 32138, |
2092 | 31972, 31786, 31581, 31357, 31114, 30853, 30572, 30274, |
2093 | 29957, 29622, 29269, 28899, 28511, 28106, 27684, 27246, |
2094 | 26791, 26320, 25833, 25330, 24812, 24279, 23732, 23170, |
2095 | 22595, 22006, 21403, 20788, 20160, 19520, 18868, 18205, |
2096 | 17531, 16846, 16151, 15447, 14733, 14010, 13279, 12540, |
2097 | 11793, 11039, 10279, 9512, 8740, 7962, 7180, 6393, |
2098 | 5602, 4808, 4011, 3212, 2411, 1608, 804, 0, |
2099 | -804, -1608, -2411, -3212, -4011, -4808, -5602, -6393, |
2100 | -7180, -7962, -8740, -9512, -10279, -11039, -11793, -12540, |
2101 | -13279, -14010, -14733, -15447, -16151, -16846, -17531, -18205, |
2102 | -18868, -19520, -20160, -20788, -21403, -22006, -22595, -23170, |
2103 | -23732, -24279, -24812, -25330, -25833, -26320, -26791, -27246, |
2104 | -27684, -28106, -28511, -28899, -29269, -29622, -29957, -30274, |
2105 | -30572, -30853, -31114, -31357, -31581, -31786, -31972, -32138, |
2106 | -32286, -32413, -32522, -32610, -32679, -32729, -32758, -32768 |
2107 | }; |
2108 | |
2109 | #ifdef ENABLE_CPU2_DECODER |
2110 | CPU2_DATA_END |
2111 | #endif |
2112 | |
2113 | |
2114 | |
2115 |