1 2/* 3 ** Copyright 2003-2010, VisualOn, Inc. 4 ** 5 ** Licensed under the Apache License, Version 2.0 (the "License"); 6 ** you may not use this file except in compliance with the License. 7 ** You may obtain a copy of the License at 8 ** 9 ** http://www.apache.org/licenses/LICENSE-2.0 10 ** 11 ** Unless required by applicable law or agreed to in writing, software 12 ** distributed under the License is distributed on an "AS IS" BASIS, 13 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 ** See the License for the specific language governing permissions and 15 ** limitations under the License. 16 */ 17 18 19/*-------------------------------------------------------------------* 20 * qisf_ns.h 21 *-------------------------------------------------------------------* 22 * Quantization tables for split by 5 VQ of ISFs for a background noise database 23 * Version whith no prediction 24 *-------------------------------------------------------------------*/ 25 26#define ORDER 16 /* order of linear prediction filter */ 27#define ISF_GAP 128 28 29#define SIZE_BK_NOISE1 64 30#define SIZE_BK_NOISE2 64 31#define SIZE_BK_NOISE3 64 32#define SIZE_BK_NOISE4 32 33#define SIZE_BK_NOISE5 32 34 35 36/* means of ISFs */ 37 static Word16 mean_isf_noise[ORDER] = { 38 39 478, 1100, 2213, 3267, 4219, 5222, 6198, 7240, 40 8229, 9153, 10098, 11108, 12144, 13184, 14165, 3803}; 41 42 43/* 28 bits */ 44/*-------------------------------------------------------------------* 45 * isf codebooks: split-by-5 VQ * 46 * * 47 * codebook vector dimension number of vectors * 48 * ~~~~~~~~ ~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~ * 49 * 1 2 64 * 50 * 2 3 64 * 51 * 3 3 64 * 52 * 4 4 32 * 53 * 5 4 32 * 54 *-------------------------------------------------------------------*/ 55 56/*------------------------------------------------* 57 * 1st split: isf0 to isf1 58 *------------------------------------------------*/ 59 60 61 static Word16 dico1_isf_noise[SIZE_BK_NOISE1*2] = { 62 63 -269, -673, 64 -222, -537, 65 -233, -430, 66 -138, -451, 67 -212, -331, 68 -192, -241, 69 -87, -231, 70 -191, -128, 71 -70, -106, 72 -164, -6, 73 74, -179, 74 27, -33, 75 -102, 74, 76 -162, 115, 77 -94, 172, 78 -6, 130, 79 -143, 234, 80 14, 218, 81 -65, 270, 82 88, 182, 83 -124, 341, 84 -44, 381, 85 38, 335, 86 117, 274, 87 -112, 454, 88 74, 431, 89 -5, 488, 90 175, 384, 91 -83, 561, 92 122, 529, 93 21, 601, 94 229, 481, 95 231, 303, 96 226, 608, 97 300, 372, 98 210, 187, 99 306, 265, 100 328, 473, 101 382, 331, 102 371, 132, 103 139, 58, 104 365, 21, 105 250, -82, 106 443, 218, 107 483, 110, 108 426, 415, 109 579, 222, 110 518, 333, 111 573, 448, 112 455, 529, 113 685, 329, 114 332, 580, 115 595, 593, 116 468, 645, 117 762, 517, 118 326, 709, 119 485, 793, 120 130, 684, 121 671, 737, 122 354, 876, 123 88, 806, 124 -65, 706, 125 -35, 1016, 126 266, 1123}; 127 128 129/*------------------------------------------------* 130 * 2nd split: isf2 to isf4 131 *------------------------------------------------*/ 132 133 static Word16 dico2_isf_noise[SIZE_BK_NOISE2*3] = { 134 135 -824, -884, -949, 136 -805, -456, -418, 137 -442, -438, -541, 138 -217, -578, -793, 139 -168, -444, -582, 140 -287, -492, -274, 141 -552, -297, -300, 142 -163, -333, -358, 143 -370, -232, -232, 144 -175, -358, -159, 145 -381, -21, -357, 146 -184, -159, -162, 147 -53, -191, -280, 148 18, -267, -215, 149 -138, 61, -283, 150 71, -95, -294, 151 13, -156, -546, 152 0, -83, -79, 153 44, 97, -316, 154 178, -52, -213, 155 222, -261, -422, 156 237, -118, -44, 157 141, 145, -132, 158 363, 81, -287, 159 213, 65, 34, 160 -107, 94, -5, 161 91, -29, 126, 162 -355, 51, -41, 163 -219, -76, 145, 164 -63, 100, 244, 165 -719, 44, 27, 166 -572, -124, 155, 167 -423, 133, 315, 168 -917, 71, 224, 169 -268, 318, 131, 170 -93, -190, 420, 171 -97, 122, 491, 172 -79, 317, 355, 173 130, 100, 325, 174 86, -293, 210, 175 133, 258, 161, 176 176, -73, 465, 177 195, 300, 384, 178 348, 22, 221, 179 376, 183, 409, 180 377, 286, 202, 181 242, 213, 659, 182 257, 565, 248, 183 344, 408, -76, 184 405, 440, 509, 185 612, 385, 379, 186 536, 607, 216, 187 -56, 582, 192, 188 100, 517, 567, 189 -365, 448, 445, 190 728, 347, 10, 191 505, 357, 759, 192 636, 582, 658, 193 335, 517, 852, 194 378, 809, 572, 195 -195, 878, 829, 196 529, 707, 987, 197 918, 726, 392, 198 1250, 997, 1063}; 199 200/*------------------------------------------------* 201 * 3rd split: isf5 to isf7 202 *------------------------------------------------*/ 203 204 static Word16 dico3_isf_noise[SIZE_BK_NOISE3*3] = { 205 206 -805, -838, -774, 207 -522, -627, -828, 208 -477, -486, -603, 209 -295, -481, -634, 210 -366, -384, -393, 211 -186, -414, -396, 212 -237, -394, -106, 213 -252, -202, -275, 214 -61, -177, -442, 215 -84, -198, -199, 216 -179, -125, -31, 217 -72, -47, -163, 218 -298, -220, 215, 219 -64, -168, 251, 220 -133, 156, -59, 221 -30, -2, 127, 222 54, 66, -61, 223 -233, 21, 251, 224 209, -50, 32, 225 33, 194, 136, 226 -117, -18, 475, 227 202, 46, 309, 228 256, 185, 53, 229 35, 200, 390, 230 200, 263, 242, 231 -216, 302, 294, 232 128, 358, 0, 233 19, 431, 287, 234 224, 447, 280, 235 367, 165, 213, 236 397, 314, 319, 237 383, 379, 75, 238 277, 325, 462, 239 394, 505, 334, 240 251, 98, -213, 241 450, 153, 448, 242 565, 226, 76, 243 470, 383, 502, 244 635, 390, 278, 245 237, 135, 620, 246 342, 401, 649, 247 331, 551, 518, 248 130, 418, 592, 249 531, 306, 737, 250 729, 389, 580, 251 497, 557, 699, 252 296, 383, 874, 253 283, 624, 759, 254 126, 622, 476, 255 559, 595, 472, 256 382, 770, 616, 257 719, 613, 745, 258 540, 639, 928, 259 517, 826, 801, 260 684, 811, 604, 261 752, 786, 857, 262 933, 661, 350, 263 694, 450, 1061, 264 562, 911, 1051, 265 824, 813, 1104, 266 758, 1047, 882, 267 1140, 917, 889, 268 1039, 1246, 1426, 269 1483, 1666, 1876}; 270 271/*------------------------------------------------* 272 * 4th split: isf8 to isf11 273 *------------------------------------------------*/ 274 275 static Word16 dico4_isf_noise[SIZE_BK_NOISE4*4] = { 276 277 -776, -854, -891, -920, 278 -552, -610, -663, -741, 279 -321, -370, -476, -565, 280 274, -160, -456, 201, 281 265, 67, -160, -306, 282 -8, -210, 79, 272, 283 163, 236, 307, 308, 284 578, 317, 64, 298, 285 -9, 197, 342, 620, 286 343, 232, 314, 622, 287 173, 149, 548, 527, 288 356, 370, 481, 376, 289 135, 444, 488, 556, 290 391, 471, 487, 653, 291 228, 424, 576, 835, 292 422, 372, 722, 682, 293 295, 673, 693, 635, 294 539, 596, 590, 449, 295 475, 618, 659, 818, 296 735, 517, 491, 673, 297 602, 346, 257, 877, 298 625, 635, 849, 720, 299 727, 818, 698, 595, 300 653, 481, 690, 1139, 301 814, 762, 704, 908, 302 507, 747, 898, 936, 303 848, 855, 924, 785, 304 646, 1037, 882, 795, 305 772, 845, 1024, 1151, 306 1133, 983, 818, 921, 307 940, 1068, 1252, 1302, 308 1588, 1767, 1718, 1513}; 309 310/*------------------------------------------------* 311 * 5th split: isf12 to isf15 312 *------------------------------------------------*/ 313 314 static Word16 dico5_isf_noise[SIZE_BK_NOISE5*4] = { 315 -810, -879, -945, -254, 316 248, 184, 671, 128, 317 288, 703, 918, 99, 318 658, 558, 662, 219, 319 552, 585, 910, 208, 320 559, 804, 759, 119, 321 606, 774, 921, -139, 322 782, 761, 748, 208, 323 756, 708, 983, 56, 324 544, 864, 1010, 152, 325 737, 698, 987, 299, 326 771, 924, 879, 103, 327 536, 785, 961, 405, 328 667, 916, 801, 328, 329 738, 705, 773, 439, 330 823, 871, 992, 355, 331 640, 1004, 1052, 369, 332 724, 822, 949, 597, 333 415, 655, 729, 482, 334 1009, 896, 793, 363, 335 908, 803, 687, -25, 336 1016, 838, 1011, 189, 337 947, 1112, 942, 222, 338 914, 1049, 981, 527, 339 956, 987, 1011, -120, 340 781, 1049, 1121, 92, 341 1178, 1053, 884, 47, 342 1123, 1059, 1182, 118, 343 933, 972, 1277, 357, 344 1109, 918, 1101, 503, 345 1039, 1286, 1220, 317, 346 1351, 1207, 1010, 326}; 347 348