blob: 50ea6583600e245547348399170761e1809fd188 [file] [log] [blame]
/*
* Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
/*
* pitch_gain_tables.c
*
* This file contains tables for the pitch filter side-info in the entropy coder.
*
*/
#include "pitch_gain_tables.h"
/********************* Pitch Filter Gain Coefficient Tables ************************/
/* cdf for quantized pitch filter gains */
const WebRtc_UWord16 WebRtcIsacfix_kPitchGainCdf[255] = {
0, 2, 4, 6, 64, 901, 903, 905, 16954, 16956,
16961, 17360, 17362, 17364, 17366, 17368, 17370, 17372, 17374, 17411,
17514, 17516, 17583, 18790, 18796, 18802, 20760, 20777, 20782, 21722,
21724, 21728, 21738, 21740, 21742, 21744, 21746, 21748, 22224, 22227,
22230, 23214, 23229, 23239, 25086, 25108, 25120, 26088, 26094, 26098,
26175, 26177, 26179, 26181, 26183, 26185, 26484, 26507, 26522, 27705,
27731, 27750, 29767, 29799, 29817, 30866, 30883, 30885, 31025, 31029,
31031, 31033, 31035, 31037, 31114, 31126, 31134, 32687, 32722, 32767,
35718, 35742, 35757, 36943, 36952, 36954, 37115, 37128, 37130, 37132,
37134, 37136, 37143, 37145, 37152, 38843, 38863, 38897, 47458, 47467,
47474, 49040, 49061, 49063, 49145, 49157, 49159, 49161, 49163, 49165,
49167, 49169, 49171, 49757, 49770, 49782, 61333, 61344, 61346, 62860,
62883, 62885, 62887, 62889, 62891, 62893, 62895, 62897, 62899, 62901,
62903, 62905, 62907, 62909, 65496, 65498, 65500, 65521, 65523, 65525,
65527, 65529, 65531, 65533, 65535, 65535, 65535, 65535, 65535, 65535,
65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
65535, 65535, 65535, 65535, 65535
};
/* index limits and ranges */
const WebRtc_Word16 WebRtcIsacfix_kLowerlimiGain[3] = {
-7, -2, -1
};
const WebRtc_Word16 WebRtcIsacfix_kUpperlimitGain[3] = {
0, 3, 1
};
const WebRtc_UWord16 WebRtcIsacfix_kMultsGain[2] = {
18, 3
};
/* size of cdf table */
const WebRtc_UWord16 WebRtcIsacfix_kCdfTableSizeGain[1] = {
256
};
/* mean values of pitch filter gains in FIXED point Q12 */
const WebRtc_Word16 WebRtcIsacfix_kPitchGain1[144] = {
843, 1092, 1336, 1222, 1405, 1656, 1500, 1815, 1843, 1838, 1839,
1843, 1843, 1843, 1843, 1843, 1843, 1843, 814, 846, 1092, 1013,
1174, 1383, 1391, 1511, 1584, 1734, 1753, 1843, 1843, 1843, 1843,
1843, 1843, 1843, 524, 689, 777, 845, 947, 1069, 1090, 1263,
1380, 1447, 1559, 1676, 1645, 1749, 1843, 1843, 1843, 1843, 81,
477, 563, 611, 706, 806, 849, 1012, 1192, 1128, 1330, 1489,
1425, 1576, 1826, 1741, 1843, 1843, 0, 290, 305, 356, 488,
575, 602, 741, 890, 835, 1079, 1196, 1182, 1376, 1519, 1506,
1680, 1843, 0, 47, 97, 69, 289, 381, 385, 474, 617,
664, 803, 1079, 935, 1160, 1269, 1265, 1506, 1741, 0, 0,
0, 0, 112, 120, 190, 283, 442, 343, 526, 809, 684,
935, 1134, 1020, 1265, 1506, 0, 0, 0, 0, 0, 0,
0, 111, 256, 87, 373, 597, 430, 684, 935, 770, 1020,
1265
};
const WebRtc_Word16 WebRtcIsacfix_kPitchGain2[144] = {
1760, 1525, 1285, 1747, 1671, 1393, 1843, 1826, 1555, 1843, 1784,
1606, 1843, 1843, 1711, 1843, 1843, 1814, 1389, 1275, 1040, 1564,
1414, 1252, 1610, 1495, 1343, 1753, 1592, 1405, 1804, 1720, 1475,
1843, 1814, 1581, 1208, 1061, 856, 1349, 1148, 994, 1390, 1253,
1111, 1495, 1343, 1178, 1770, 1465, 1234, 1814, 1581, 1342, 1040,
793, 713, 1053, 895, 737, 1128, 1003, 861, 1277, 1094, 981,
1475, 1192, 1019, 1581, 1342, 1098, 855, 570, 483, 833, 648,
540, 948, 744, 572, 1009, 844, 636, 1234, 934, 685, 1342,
1217, 984, 537, 318, 124, 603, 423, 350, 687, 479, 322,
791, 581, 430, 987, 671, 488, 1098, 849, 597, 283, 27,
0, 397, 222, 38, 513, 271, 124, 624, 325, 157, 737,
484, 233, 849, 597, 343, 27, 0, 0, 141, 0, 0,
256, 69, 0, 370, 87, 0, 484, 229, 0, 597, 343,
87
};
const WebRtc_Word16 WebRtcIsacfix_kPitchGain3[144] = {
1843, 1843, 1711, 1843, 1818, 1606, 1843, 1827, 1511, 1814, 1639,
1393, 1760, 1525, 1285, 1656, 1419, 1176, 1835, 1718, 1475, 1841,
1650, 1387, 1648, 1498, 1287, 1600, 1411, 1176, 1522, 1299, 1040,
1419, 1176, 928, 1773, 1461, 1128, 1532, 1355, 1202, 1429, 1260,
1115, 1398, 1151, 1025, 1172, 1080, 790, 1176, 928, 677, 1475,
1147, 1019, 1276, 1096, 922, 1214, 1010, 901, 1057, 893, 800,
1040, 796, 734, 928, 677, 424, 1137, 897, 753, 1120, 830,
710, 875, 751, 601, 795, 642, 583, 790, 544, 475, 677,
474, 140, 987, 750, 482, 697, 573, 450, 691, 487, 303,
661, 394, 332, 537, 303, 220, 424, 168, 0, 737, 484,
229, 624, 348, 153, 441, 261, 136, 397, 166, 51, 283,
27, 0, 168, 0, 0, 484, 229, 0, 370, 57, 0,
256, 43, 0, 141, 0, 0, 27, 0, 0, 0, 0,
0
};
const WebRtc_Word16 WebRtcIsacfix_kPitchGain4[144] = {
1843, 1843, 1843, 1843, 1841, 1843, 1500, 1821, 1843, 1222, 1434,
1656, 843, 1092, 1336, 504, 757, 1007, 1843, 1843, 1843, 1838,
1791, 1843, 1265, 1505, 1599, 965, 1219, 1425, 730, 821, 1092,
249, 504, 757, 1783, 1819, 1843, 1351, 1567, 1727, 1096, 1268,
1409, 805, 961, 1131, 444, 670, 843, 0, 249, 504, 1425,
1655, 1743, 1096, 1324, 1448, 822, 1019, 1199, 490, 704, 867,
81, 450, 555, 0, 0, 249, 1247, 1428, 1530, 881, 1073,
1283, 610, 759, 939, 278, 464, 645, 0, 200, 270, 0,
0, 0, 935, 1163, 1410, 528, 790, 1068, 377, 499, 717,
173, 240, 274, 0, 43, 62, 0, 0, 0, 684, 935,
1182, 343, 551, 735, 161, 262, 423, 0, 55, 27, 0,
0, 0, 0, 0, 0, 430, 684, 935, 87, 377, 597,
0, 46, 256, 0, 0, 0, 0, 0, 0, 0, 0,
0
};
/* transform matrix in Q12*/
const WebRtc_Word16 WebRtcIsacfix_kTransform[4][4] = {
{ -2048, -2048, -2048, -2048 },
{ 2748, 916, -916, -2748 },
{ 2048, -2048, -2048, 2048 },
{ 916, -2748, 2748, -916 }
};