📄 dec_rom.c
字号:
-776, -854, -891, -920,
-552, -610, -663, -741,
-321, -370, -476, -565,
274, -160, -456, 201,
265, 67, -160, -306,
-8, -210, 79, 272,
163, 236, 307, 308,
578, 317, 64, 298,
-9, 197, 342, 620,
343, 232, 314, 622,
173, 149, 548, 527,
356, 370, 481, 376,
135, 444, 488, 556,
391, 471, 487, 653,
228, 424, 576, 835,
422, 372, 722, 682,
295, 673, 693, 635,
539, 596, 590, 449,
475, 618, 659, 818,
735, 517, 491, 673,
602, 346, 257, 877,
625, 635, 849, 720,
727, 818, 698, 595,
653, 481, 690, 1139,
814, 762, 704, 908,
507, 747, 898, 936,
848, 855, 924, 785,
646, 1037, 882, 795,
772, 845, 1024, 1151,
1133, 983, 818, 921,
940, 1068, 1252, 1302,
1588, 1767, 1718, 1513
};
/*
* 5th split: isf12 to isf15
*/
const Word16 D_ROM_dico5_isf_noise[SIZE_BK_NOISE5 * 4] = {
-810, -879, -945, -254,
248, 184, 671, 128,
288, 703, 918, 99,
658, 558, 662, 219,
552, 585, 910, 208,
559, 804, 759, 119,
606, 774, 921, -139,
782, 761, 748, 208,
756, 708, 983, 56,
544, 864, 1010, 152,
737, 698, 987, 299,
771, 924, 879, 103,
536, 785, 961, 405,
667, 916, 801, 328,
738, 705, 773, 439,
823, 871, 992, 355,
640, 1004, 1052, 369,
724, 822, 949, 597,
415, 655, 729, 482,
1009, 896, 793, 363,
908, 803, 687, -25,
1016, 838, 1011, 189,
947, 1112, 942, 222,
914, 1049, 981, 527,
956, 987, 1011, -120,
781, 1049, 1121, 92,
1178, 1053, 884, 47,
1123, 1059, 1182, 118,
933, 972, 1277, 357,
1109, 918, 1101, 503,
1039, 1286, 1220, 317,
1351, 1207, 1010, 326
};
/*
* Table of pitch and codebook gains
*
* g_pitch(Q14), g_code(Q11)
*
* pitch gain are ordered in table to reduce complexity
* during quantization of gains.
*/
/* Number of quantization level is 64 */
const Word16 D_ROM_qua_gain6b[64 * 2] = {
1566, 1332,
1577, 3557,
3071, 6490,
4193, 10163,
4496, 2534,
5019, 4488,
5586, 15614,
5725, 1422,
6453, 580,
6724, 6831,
7657, 3527,
8072, 2099,
8232, 5319,
8827, 8775,
9740, 2868,
9856, 1465,
10087, 12488,
10241, 4453,
10859, 6618,
11321, 3587,
11417, 1800,
11643, 2428,
11718, 988,
12312, 5093,
12523, 8413,
12574, 26214,
12601, 3396,
13172, 1623,
13285, 2423,
13418, 6087,
13459, 12810,
13656, 3607,
14111, 4521,
14144, 1229,
14425, 1871,
14431, 7234,
14445, 2834,
14628, 10036,
14860, 17496,
15161, 3629,
15209, 5819,
15299, 2256,
15518, 4722,
15663, 1060,
15759, 7972,
15939, 11964,
16020, 2996,
16086, 1707,
16521, 4254,
16576, 6224,
16894, 2380,
16906, 681,
17213, 8406,
17610, 3418,
17895, 5269,
18168, 11748,
18230, 1575,
18607, 32767,
18728, 21684,
19137, 2543,
19422, 6577,
19446, 4097,
19450, 9056,
20371, 14885
};
/* Number of quantization level is 128 */
const Word16 D_ROM_qua_gain7b[128 * 2] = {
204, 441,
464, 1977,
869, 1077,
1072, 3062,
1281, 4759,
1647, 1539,
1845, 7020,
1853, 634,
1995, 2336,
2351, 15400,
2661, 1165,
2702, 3900,
2710, 10133,
3195, 1752,
3498, 2624,
3663, 849,
3984, 5697,
4214, 3399,
4415, 1304,
4695, 2056,
5376, 4558,
5386, 676,
5518, 23554,
5567, 7794,
5644, 3061,
5672, 1513,
5957, 2338,
6533, 1060,
6804, 5998,
6820, 1767,
6937, 3837,
7277, 414,
7305, 2665,
7466, 11304,
7942, 794,
8007, 1982,
8007, 1366,
8326, 3105,
8336, 4810,
8708, 7954,
8989, 2279,
9031, 1055,
9247, 3568,
9283, 1631,
9654, 6311,
9811, 2605,
10120, 683,
10143, 4179,
10245, 1946,
10335, 1218,
10468, 9960,
10651, 3000,
10951, 1530,
10969, 5290,
11203, 2305,
11325, 3562,
11771, 6754,
11839, 1849,
11941, 4495,
11954, 1298,
11975, 15223,
11977, 883,
11986, 2842,
12438, 2141,
12593, 3665,
12636, 8367,
12658, 1594,
12886, 2628,
12984, 4942,
13146, 1115,
13224, 524,
13341, 3163,
13399, 1923,
13549, 5961,
13606, 1401,
13655, 2399,
13782, 3909,
13868, 10923,
14226, 1723,
14232, 2939,
14278, 7528,
14439, 4598,
14451, 984,
14458, 2265,
14792, 1403,
14818, 3445,
14899, 5709,
15017, 15362,
15048, 1946,
15069, 2655,
15405, 9591,
15405, 4079,
15570, 7183,
15687, 2286,
15691, 1624,
15699, 3068,
15772, 5149,
15868, 1205,
15970, 696,
16249, 3584,
16338, 1917,
16424, 2560,
16483, 4438,
16529, 6410,
16620, 11966,
16839, 8780,
17030, 3050,
17033, 18325,
17092, 1568,
17123, 5197,
17351, 2113,
17374, 980,
17566, 26214,
17609, 3912,
17639, 32767,
18151, 7871,
18197, 2516,
18202, 5649,
18679, 3283,
18930, 1370,
19271, 13757,
19317, 4120,
19460, 1973,
19654, 10018,
19764, 6792,
19912, 5135,
20040, 2841,
21234, 19833
};
/*
* 1/4 resolution interpolation filter (-3 dB at 0.856*fs/2) in Q14
*/
const Word16 D_ROM_inter4_2[UP_SAMP * 2 * L_INTERPOL2] = {
0, 1, 2, 1,
-2, -7, -10, -7,
4, 19, 28, 22,
-2, -33, -55, -49,
-10, 47, 91, 92,
38, -52, -133, -153,
-88, 43, 175, 231,
165, -9, -209, -325,
-275, -60, 226, 431,
424, 175, -213, -544,
-619, -355, 153, 656,
871, 626, -16, -762,
-1207, -1044, -249, 853,
1699, 1749, 780, -923,
-2598, -3267, -2147, 968,
5531, 10359, 14031, 15401,
14031, 10359, 5531, 968,
-2147, -3267, -2598, -923,
780, 1749, 1699, 853,
-249, -1044, -1207, -762,
-16, 626, 871, 656,
153, -355, -619, -544,
-213, 175, 424, 431,
226, -60, -275, -325,
-209, -9, 165, 231,
175, 43, -88, -153,
-133, -52, 38, 92,
91, 47, -10, -49,
-55, -33, -2, 22,
28, 19, 4, -7,
-10, -7, -2, 1,
2, 1, 0, 0
};
/*
* 1/5 resolution interpolation filter (in Q14)
* -1.5dB @ 6kHz, -6dB @ 6.4kHz, -10dB @ 6.6kHz, -20dB @ 6.9kHz, -25dB @ 7kHz, -55dB @ 8kHz
*/
const Word16 D_ROM_fir_up[120] = {
-1, -4, -7, -6, 0,
12, 24, 30, 23, 0,
-33, -62, -73, -52, 0,
68, 124, 139, 96, 0,
-119, -213, -235, -160, 0,
191, 338, 368, 247, 0,
-291, -510, -552, -369, 0,
430, 752, 812, 542, 0,
-634, -1111, -1204, -809, 0,
963, 1708, 1881, 1288, 0,
-1616, -2974, -3432, -2496, 0,
3792, 8219, 12368, 15317, 16384,
15317, 12368, 8219, 3792, 0,
-2496, -3432, -2974, -1616, 0,
1288, 1881, 1708, 963, 0,
-809, -1204, -1111, -634, 0,
542, 812, 752, 430, 0,
-369, -552, -510, -291, 0,
247, 368, 338, 191, 0,
-160, -235, -213, -119, 0,
96, 139, 124, 68, 0,
-52, -73, -62, -33, 0,
23, 30, 24, 12, 0,
-6, -7, -4, -1, 0
};
/* table x4/5 */
const Word16 D_ROM_fir_down[120] = {
-1, -3, -6, -5,
0, 9, 19, 24,
18, 0, -26, -50,
-58, -41, 0, 54,
99, 111, 77, 0,
-95, -170, -188, -128,
0, 153, 270, 294,
198, 0, -233, -408,
-441, -295, 0, 344,
601, 649, 434, 0,
-507, -888, -964, -647,
0, 770, 1366, 1505,
1030, 0, -1293, -2379,
-2746, -1997, 0, 3034,
6575, 9894, 12254, 13107,
12254, 9894, 6575, 3034,
0, -1997, -2746, -2379,
-1293, 0, 1030, 1505,
1366, 770, 0, -647,
-964, -888, -507, 0,
434, 649, 601, 344,
0, -295, -441, -408,
-233, 0, 198, 294,
270, 153, 0, -128,
-188, -170, -95, 0,
77, 111, 99, 54,
0, -41, -58, -50,
-26, 0, 18, 24,
19, 9, 0, -5,
-6, -3, -1, 0
};
/*
* Impulse response with phase dispersion
*/
/* 2.0 - 6.4 kHz phase dispersion */
const Word16 D_ROM_ph_imp_low[L_SUBFR] = {
20182, 9693, 3270, -3437, 2864, -5240, 1589, -1357,
600, 3893, -1497, -698, 1203, -5249, 1199, 5371,
-1488, -705, -2887, 1976, 898, 721, -3876, 4227,
-5112, 6400, -1032, -4725, 4093, -4352, 3205, 2130,
-1996, -1835, 2648, -1786, -406, 573, 2484, -3608,
3139, -1363, -2566, 3808, -639, -2051, -541, 2376,
3932, -6262, 1432, -3601, 4889, 370, 567, -1163,
-2854, 1914, 39, -2418, 3454, 2975, -4021, 3431
};
/* 3.2 - 6.4 kHz phase dispersion */
const Word16 D_ROM_ph_imp_mid[L_SUBFR] = {
24098, 10460, -5263, -763, 2048, -927, 1753, -3323,
2212, 652, -2146, 2487, -3539, 4109, -2107, -374,
-626, 4270, -5485, 2235, 1858, -2769, 744, 1140,
-763, -1615, 4060, -4574, 2982, -1163, 731, -1098,
803, 167, -714, 606, -560, 639, 43, -1766,
3228, -2782, 665, 763, 233, -2002, 1291, 1871,
-3470, 1032, 2710, -4040, 3624, -4214, 5292, -4270,
1563, 108, -580, 1642, -2458, 957, 544, 2540
};
/*
* Table for synthesis of signal at 16kHz with HF extension.
*/
const Word16 D_ROM_hp_gain[16] = {
3624, 4673, 5597, 6479, 7425, 8378, 9324, 10264,
11210, 12206, 13391, 14844, 16770, 19655, 24289, 32728
};
/*
* isp and isf tables for initialization
*/
const Word16 D_ROM_isp[M] = {
32138, 30274, 27246, 23170, 18205, 12540, 6393, 0,
-6393, -12540, -18205, -23170, -27246, -30274, -32138, 1475
};
const Word16 D_ROM_isf[M] = {
1024, 2048, 3072, 4096, 5120, 6144, 7168, 8192,
9216, 10240, 11264, 12288, 13312, 14336, 15360, 3840
};
/*
* means of ISFs
*/
const Word16 D_ROM_mean_isf[ORDER] = {
738, 1326, 2336, 3578, 4596, 5662, 6711, 7730,
8750, 9753, 10705, 11728, 12833, 13971, 15043, 4037
};
const Word16 D_ROM_mean_isf_noise[ORDER] = {
478, 1100, 2213, 3267, 4219, 5222, 6198, 7240,
8229, 9153, 10098, 11108, 12144, 13184, 14165, 3803
};
/* 16-byte align end */
/*
* LTP gain & fixed codebook gain consealement
*/
/* pitch gain weight */
const Word16 D_ROM_pdown_unusable[7] = {32767, 31130, 29491, 24576, 7537, 1638, 328};
const Word16 D_ROM_cdown_unusable[7] = {32767, 16384, 8192, 8192, 8192, 4915, 3277};
/* codebook gain weight */
const Word16 D_ROM_pdown_usable[7] = {32767, 32113, 31457, 24576, 7537, 1638, 328};
const Word16 D_ROM_cdown_usable[7] = {32767, 32113, 32113, 32113, 32113, 32113, 22938};
/*
* filter coefficients (gain=4.0)
*/
const Word16 D_ROM_fir_6k_7k[L_FIR] = {
-32, 47, 32, -27, -369,
1122, -1421, 0, 3798, -8880,
12349, -10984, 3548, 7766, -18001,
22118, -18001, 7766, 3548, -10984,
12349, -8880, 3798, 0, -1421,
1122, -369, -27, 32, 47,
-32
};
const Word16 D_ROM_fir_7k[L_FIR] = {
-21, 47, -89, 146, -203,
229, -177, 0, 335, -839,
1485, -2211, 2931, -3542, 3953,
28682, 3953, -3542, 2931, -2211,
1485, -839, 335, 0, -177,
229, -203, 146, -89, 47,
-21
};
/*
* LPC interpolation coef {0.45, 0.8, 0.96, 1.0}; in Q15
*/
const Word16 D_ROM_interpol_frac[NB_SUBFR] = {14746, 26214, 31457, 32767};
/*
* Math tables
*/
const Word16 D_ROM_pow2[33] = {
16384, 16743, 17109, 17484, 17867, 18258, 18658, 19066, 19484, 19911,
20347, 20792, 21247, 21713, 22188, 22674, 23170, 23678, 24196, 24726,
25268, 25821, 26386, 26964, 27554, 28158, 28774, 29405, 30048, 30706,
31379, 32066, 32767
};
const Word16 D_ROM_isqrt[49] = {
32767, 31790, 30894, 30070, 29309, 28602, 27945, 27330, 26755, 26214,
25705, 25225, 24770, 24339, 23930, 23541, 23170, 22817, 22479, 22155,
21845, 21548, 21263, 20988, 20724, 20470, 20225, 19988, 19760, 19539,
19326, 19119, 18919, 18725, 18536, 18354, 18176, 18004, 17837, 17674,
17515, 17361, 17211, 17064, 16921, 16782, 16646, 16514, 16384
};
const Word16 D_ROM_log2[33] = {
0, 1455, 2866, 4236, 5568, 6863, 8124, 9352, 10549, 11716,
12855, 13967, 15054, 16117, 17156, 18172, 19167, 20142, 21097, 22033,
22951, 23852, 24735, 25603, 26455, 27291, 28113, 28922, 29716, 30497,
31266, 32023, 32767
};
/* table of cos(x) in Q15 */
const Word16 D_ROM_cos[129] = {
32767,
32758, 32729, 32679, 32610, 32522, 32413, 32286, 32138,
31972, 31786, 31581, 31357, 31114, 30853, 30572, 30274,
29957, 29622, 29269, 28899, 28511, 28106, 27684, 27246,
26791, 26320, 25833, 25330, 24812, 24279, 23732, 23170,
22595, 22006, 21403, 20788, 20160, 19520, 18868, 18205,
17531, 16846, 16151, 15447, 14733, 14010, 13279, 12540,
11793, 11039, 10279, 9512, 8740, 7962, 7180, 6393,
5602, 4808, 4011, 3212, 2411, 1608, 804, 0,
-804, -1608, -2411, -3212, -4011, -4808, -5602, -6393,
-7180, -7962, -8740, -9512, -10279, -11039, -11793, -12540,
-13279, -14010, -14733, -15447, -16151, -16846, -17531, -18205,
-18868, -19520, -20160, -20788, -21403, -22006, -22595, -23170,
-23732, -24279, -24812, -25330, -25833, -26320, -26791, -27246,
-27684, -28106, -28511, -28899, -29269, -29622, -29957, -30274,
-30572, -30853, -31114, -31357, -31581, -31786, -31972, -32138,
-32286, -32413, -32522, -32610, -32679, -32729, -32758, -32768
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -