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