1/*
2 *  Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
3 *
4 *  Use of this source code is governed by a BSD-style license
5 *  that can be found in the LICENSE file in the root of the source
6 *  tree. An additional intellectual property rights grant can be found
7 *  in the file PATENTS.  All contributing project authors may
8 *  be found in the AUTHORS file in the root of the source tree.
9 */
10
11/*
12 * lpc_tables.c
13 *
14 * Coding tables for the KLT coefficients
15 *
16 */
17
18
19#include "settings.h"
20#include "lpc_tables.h"
21
22/* indices of KLT coefficients used */
23const uint16_t WebRtcIsacfix_kSelIndGain[12] = {
24  0,  1,  2,  3,  4,  5,  6,  7,  8,  9,
25  10,  11};
26
27const uint16_t WebRtcIsacfix_kSelIndShape[108] = {
28  0,  1,  2,  3,  4,  5,  6,  7,  8,  9,
29  10,  11,  12,  13,  14,  15,  16,  17,  18,  19,
30  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,
31  30,  31,  32,  33,  34,  35,  36,  37,  38,  39,
32  40,  41,  42,  43,  44,  45,  46,  47,  48,  49,
33  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,
34  60,  61,  62,  63,  64,  65,  66,  67,  68,  69,
35  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
36  80,  81,  82,  83,  84,  85,  86,  87,  88,  89,
37  90,  91,  92,  93,  94,  95,  96,  97,  98,  99,
38  100,  101,  102,  103,  104,  105,  106,  107
39};
40
41/* cdf array for model indicator */
42const uint16_t WebRtcIsacfix_kModelCdf[4] = {
43  0,  15434,  37548,  65535
44};
45
46/* pointer to cdf array for model indicator */
47const uint16_t *WebRtcIsacfix_kModelCdfPtr[1] = {
48  WebRtcIsacfix_kModelCdf
49};
50
51/* initial cdf index for decoder of model indicator */
52const uint16_t WebRtcIsacfix_kModelInitIndex[1] = {
53  1
54};
55
56/* offset to go from rounded value to quantization index */
57const int16_t WebRtcIsacfix_kQuantMinGain[12] ={
58  3,  6,  4,  6,  6,  9,  5,  16,  11,  34,  32,  47
59};
60
61const int16_t WebRtcIsacfix_kQuantMinShape[108] = {
62  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,
63  1,  1,  1,  1,  2,  2,  2,  3,  0,  0,
64  0,  0,  1,  0,  0,  0,  0,  1,  1,  1,
65  1,  1,  1,  2,  2,  3,  0,  0,  0,  0,
66  1,  0,  1,  1,  1,  1,  1,  1,  1,  2,
67  2,  4,  3,  5,  0,  0,  0,  0,  1,  1,
68  1,  1,  1,  1,  2,  1,  2,  2,  3,  4,
69  4,  7,  0,  0,  1,  1,  1,  1,  1,  1,
70  1,  2,  3,  2,  3,  4,  4,  5,  7,  13,
71  0,  1,  1,  2,  3,  2,  2,  2,  4,  4,
72  5,  6,  7,  11, 9, 13, 12, 26
73};
74
75/* maximum quantization index */
76const uint16_t WebRtcIsacfix_kMaxIndGain[12] = {
77  6,  12,  8,  14,  10,  19,  12,  31,  22,  56,  52,  138
78};
79
80const uint16_t WebRtcIsacfix_kMaxIndShape[108] = {
81  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,
82  2,  2,  2,  2,  4,  4,  5,  6,  0,  0,
83  0,  0,  1,  0,  0,  0,  0,  1,  2,  2,
84  2,  2,  3,  4,  5,  7,  0,  0,  0,  0,
85  2,  0,  2,  2,  2,  2,  3,  2,  2,  4,
86  4,  6,  6,  9,  0,  0,  0,  0,  2,  2,
87  2,  2,  2,  2,  3,  2,  4,  4,  7,  7,
88  9,  13, 0,  0,  2,  2,  2,  2,  2,  2,
89  3,  4,  5,  4,  6,  8,  8, 10, 16, 25,
90  0,  2,  2,  4,  5,  4,  4,  4,  7,  8,
91  9, 10, 13, 19, 17, 23, 25, 49
92};
93
94/* index offset */
95const uint16_t WebRtcIsacfix_kOffsetGain[3][12] = {
96  { 0,  7,  20,  29,  44,  55,  75,  88,  120,  143,  200,  253},
97  { 0,  7,  19,  27,  42,  53,  73,  86,  117,  140,  197,  249},
98  { 0,  7,  20,  28,  44,  55,  75,  89,  121,  145,  202,  257}
99};
100
101const uint16_t WebRtcIsacfix_kOffsetShape[3][108] = {
102  {
103    0,  1,  2,  3,  4,  5,  6,  7,  8,  9,
104    11,  14,  17,  20,  23,  28,  33,  39,  46,  47,
105    48,  49,  50,  52,  53,  54,  55,  56,  58,  61,
106    64,  67,  70,  74,  79,  85,  93,  94,  95,  96,
107    97,  100,  101,  104,  107,  110,  113,  117,  120,  123,
108    128,  133,  140,  147,  157,  158,  159,  160,  161,  164,
109    167,  170,  173,  176,  179,  183,  186,  191,  196,  204,
110    212,  222,  236,  237,  238,  241,  244,  247,  250,  253,
111    256,  260,  265,  271,  276,  283,  292,  301,  312,  329,
112    355,  356,  359,  362,  367,  373,  378,  383,  388,  396,
113    405,  415,  426,  440,  460,  478,  502,  528
114  },
115  {
116    0,  1,  2,  3,  4,  6,  7,  8,  9,  11,
117    13,  16,  19,  22,  26,  29,  34,  39,  45,  46,
118    47,  48,  49,  50,  51,  52,  53,  55,  57,  60,
119    63,  66,  70,  73,  78,  84,  91,  92,  93,  94,
120    95,  96,  97,  99,  102,  105,  108,  111,  114,  118,
121    123,  128,  134,  141,  151,  152,  153,  154,  156,  159,
122    162,  165,  168,  171,  174,  177,  181,  186,  194,  200,
123    208,  218,  233,  234,  235,  236,  239,  242,  245,  248,
124    251,  254,  258,  263,  270,  277,  288,  297,  308,  324,
125    349,  351,  354,  357,  361,  366,  372,  378,  383,  390,
126    398,  407,  420,  431,  450,  472,  496,  524
127  },
128  {
129    0,  1,  2,  3,  4,  5,  6,  7,  8,  11,
130    14,  17,  20,  23,  26,  29,  34,  40,  47,  48,
131    49,  50,  51,  52,  53,  54,  55,  58,  61,  64,
132    67,  70,  73,  77,  82,  88,  96,  97,  98,  99,
133    101,  102,  104,  107,  110,  113,  116,  119,  122,  125,
134    129,  134,  141,  150,  160,  161,  162,  163,  166,  168,
135    171,  174,  177,  180,  183,  186,  190,  195,  201,  208,
136    216,  226,  243,  244,  245,  248,  251,  254,  257,  260,
137    263,  268,  273,  278,  284,  291,  299,  310,  323,  340,
138    366,  368,  371,  374,  379,  383,  389,  394,  399,  406,
139    414,  422,  433,  445,  461,  480,  505,  533
140  }
141};
142
143/* initial cdf index for KLT coefficients */
144const uint16_t WebRtcIsacfix_kInitIndexGain[3][12] = {
145  { 3,  6,  4,  7,  5,  10,  6,  16,  11,  28,  26,  69},
146  { 3,  6,  4,  7,  5,  10,  6,  15,  11,  28,  26,  69},
147  { 3,  6,  4,  8,  5,  10,  7,  16,  12,  28,  27,  70}
148};
149
150const uint16_t WebRtcIsacfix_kInitIndexShape[3][108] = {
151  {
152    0,  0,  0,  0,  0,  0,  0,  0,  0,  1,
153    1,  1,  1,  1,  2,  2,  3,  3,  0,  0,
154    0,  0,  1,  0,  0,  0,  0,  1,  1,  1,
155    1,  1,  2,  2,  3,  4,  0,  0,  0,  0,
156    1,  0,  1,  1,  1,  1,  2,  1,  1,  2,
157    2,  3,  3,  5,  0,  0,  0,  0,  1,  1,
158    1,  1,  1,  1,  2,  1,  2,  2,  4,  4,
159    5,  7,  0,  0,  1,  1,  1,  1,  1,  1,
160    2,  2,  3,  2,  3,  4,  4,  5,  8,  13,
161    0,  1,  1,  2,  3,  2,  2,  2,  4,  4,
162    5,  5,  7,  10,  9,  12,  13,  25
163  },
164  {
165    0,  0,  0,  0,  1,  0,  0,  0,  1,  1,
166    1,  1,  1,  2,  1,  2,  2,  3,  0,  0,
167    0,  0,  0,  0,  0,  0,  1,  1,  1,  1,
168    1,  2,  1,  2,  3,  3,  0,  0,  0,  0,
169    0,  0,  1,  1,  1,  1,  1,  1,  2,  2,
170    2,  3,  3,  5,  0,  0,  0,  1,  1,  1,
171    1,  1,  1,  1,  1,  2,  2,  4,  3,  4,
172    5,  7,  0,  0,  0,  1,  1,  1,  1,  1,
173    1,  2,  2,  3,  3,  5,  4,  5,  8,  12,
174    1,  1,  1,  2,  2,  3,  3,  2,  3,  4,
175    4,  6,  5,  9,  11,  12,  14,  25
176  },
177  {
178    0,  0,  0,  0,  0,  0,  0,  0,  1,  1,
179    1,  1,  1,  1,  1,  2,  3,  3,  0,  0,
180    0,  0,  0,  0,  0,  0,  1,  1,  1,  1,
181    1,  1,  2,  2,  3,  4,  0,  0,  0,  1,
182    0,  1,  1,  1,  1,  1,  1,  1,  1,  2,
183    2,  3,  4,  5,  0,  0,  0,  1,  1,  1,
184    1,  1,  1,  1,  1,  2,  2,  3,  3,  4,
185    5,  8,  0,  0,  1,  1,  1,  1,  1,  1,
186    2,  2,  2,  3,  3,  4,  5,  6,  8,  13,
187    1,  1,  1,  2,  2,  3,  2,  2,  3,  4,
188    4,  5,  6,  8,  9,  12,  14,  25
189  }
190};
191
192/* offsets for quantizer representation levels*/
193const uint16_t WebRtcIsacfix_kOfLevelsGain[3] = {
194  0,  392,  779
195};
196
197const uint16_t WebRtcIsacfix_kOfLevelsShape[3] = {
198  0,  578,  1152
199};
200
201/* quantizer representation levels */
202
203
204
205const int32_t WebRtcIsacfix_kLevelsGainQ17[1176] = {
206  -364547,-231664,-102123,-573,104807,238257,368823,-758583,-640135,-510291
207  ,-377662,-252785,-113177,2627,112906,248601,389461,522691,644517,763974
208  ,-538963,-368179,-245823,-106095,-890,104299,241111,350730,493190,-800763
209  ,-646230,-510239,-382115,-248623,-111829,-2983,113852,251105,388114,519757
210  ,644048,774712,896334,1057931,-770009,-635310,-503690,-375087,-248106,-108525
211  ,-105,108259,243472,377948,519271,-1160885,-1032044,-914636,-777593,-647891
212  ,-518408,-388028,-254321,-115293,-598,117849,251296,385367,515510,652727
213  ,777432,920363,1038625,1153637,1316836,-632287,-505430,-379430,-248458,-118013
214  ,-888,118762,250266,381650,513327,652169,766471,932113,-2107480,-1971030
215  ,-1827020,-1698263,-1558670,-1436314,-1305377,-1172252,-1047355,-914202,-779651,-651001
216  ,-520999,-390394,-255761,-123490,-1893,126839,256703,385493,518607,651760
217  ,782750,908693,1044131,1163865,1311066,1424177,1582628,1709823,1831740,1955391
218  ,-1423044,-1288917,-1181281,-1043222,-911770,-780354,-646799,-522664,-386721,-258266
219  ,-128060,-1101,128233,259996,390336,519590,649290,778701,908010,1040796
220  ,1161235,1306889,1441882,-4446002,-4301031,-4194304,-4080591,-3947740,-3808975,-3686530
221  ,-3567839,-3383251,-3287089,-3136577,-3017405,-2869860,-2751321,-2619984,-2482932,-2354790
222  ,-2223147,-2090669,-1964135,-1831208,-1706697,-1570817,-1446008,-1305386,-1175773,-1046066
223  ,-915356,-785120,-653614,-524331,-393767,-260442,-130187,-799,128841,261466
224  ,393616,520542,652117,784613,914159,1045399,1181072,1308971,1442502,1570346
225  ,1693912,1843986,1966014,2090474,2224869,2364593,2475934,2628403,2752512,2856640
226  ,-4192441,-4063232,-3917821,-3799195,-3666233,-3519199,-3411021,-3269192,-3135684,-3008826
227  ,-2880875,-2747342,-2620981,-2494872,-2354979,-2229718,-2098939,-1964971,-1835399,-1703452
228  ,-1572806,-1440482,-1311794,-1179338,-1046521,-919823,-785914,-655335,-523416,-395507
229  ,-264833,-132184,-2546,131698,256217,391372,522688,651248,789964,909618
230  ,1035305,1179145,1313824,1436934,1552353,1693722,1815508,1972826,2096328,2228224
231  ,2359296,2490368,2598848,-6160384,-6029312,-5881382,-5767168,-5636096,-5505024,-5373952
232  ,-5228418,-5110384,-4954923,-4880576,-4710990,-4587364,-4471340,-4333905,-4211513,-4051293
233  ,-3907927,-3800105,-3675961,-3538640,-3413663,-3271148,-3152105,-3019103,-2869647,-2744015
234  ,-2620639,-2479385,-2364211,-2227611,-2095427,-1974497,-1834168,-1703561,-1568961,-1439826
235  ,-1309192,-1174050,-1050191,-917836,-786015,-656943,-518934,-394831,-257708,-128041
236  ,1610,128991,264442,393977,521383,653849,788164,918641,1049122,1181971
237  ,1308934,1439505,1571808,1706305,1836318,1966235,2097269,2228990,2357005,2490292
238  ,2617400,2749680,2881234,3014880,3145637,3276467,3409099,3536637,3671493,3802918
239  ,3929740,4065036,4194143,4325999,4456126,4586857,4717194,4843923,4978676,5110913
240  ,5245281,5371394,5499780,5633779,5762611,5897682,6028688,6167546,6296465,6421682
241  ,6548882,6682074,6809432,6941956,7078143,7204509,7334296,7475137,7609896,7732044
242  ,7861604,8002039,8131670,8259222,8390299,8522399,8650037,8782348,8908402,9037815
243  ,9164594,9300338,9434679,9574500,9699702,9833934,9948152,10083972,10244937,10332822
244  ,10485760,10600122,10760754,10892964,11010048,11111004,11272192,11403264,11525091,11624984
245  ,11796480,11915146,-393216,-262144,-101702,-740,100568,262144,393216,-786432
246  ,-655360,-524288,-383907,-243301,-94956,-156,95547,269629,416691,524288
247  ,655360,-393216,-262144,-88448,-37,87318,262144,393216,524288,-917504
248  ,-786432,-655360,-495894,-373308,-267503,-93211,4119,91308,250895,393216
249  ,526138,655360,786432,917504,-786432,-655360,-524288,-393216,-262144,-83497
250  ,222,86893,240922,393216,524288,-1048576,-917504,-790472,-655360,-508639
251  ,-383609,-262016,-95550,-3775,96692,256797,364847,534906,655360,786432
252  ,889679,1048576,1179648,1310720,1441792,-655360,-524288,-377684,-248408,-93690
253  ,1261,95441,227519,393216,524288,655360,786432,917504,-2097152,-1966080
254  ,-1809470,-1703936,-1572864,-1441792,-1314289,-1195149,-1056205,-917504,-809951,-657769
255  ,-521072,-383788,-248747,-106350,-2944,105550,243408,388548,521064,628732
256  ,786432,885456,1064548,1179648,1310720,1441792,1572864,1703936,1835008,-1441792
257  ,-1310720,-1179648,-1037570,-888492,-767774,-646634,-519935,-373458,-248029,-111915
258  ,760,111232,247735,379432,507672,672699,786432,917504,1048576,1179648
259  ,1310720,1441792,-4456448,-4325376,-4194304,-4063232,-3932160,-3801088,-3670016,-3538944
260  ,-3407872,-3276800,-3145728,-3014656,-2883584,-2752512,-2647002,-2490368,-2359296,-2228224
261  ,-2097152,-1951753,-1835008,-1703936,-1594177,-1462001,-1289150,-1160774,-1025917,-924928
262  ,-782509,-641294,-516191,-386630,-251910,-118886,5210,121226,253949,386008
263  ,517973,649374,780064,917783,1052462,1183856,1290593,1419389,1556641,1699884
264  ,1835008,1988314,2090470,2228224,2359296,2490368,2621440,2752512,2883584,-3801088
265  ,-3643514,-3539937,-3409931,-3263294,-3145658,-3012952,-2879230,-2752359,-2622556,-2483471
266  ,-2357556,-2226500,-2093112,-1965892,-1833664,-1701035,-1567767,-1440320,-1310556,-1178339
267  ,-1049625,-916812,-786477,-655277,-525050,-393773,-264828,-130696,-480,132126
268  ,260116,394197,527846,652294,785563,917183,1049511,1175958,1308161,1438759
269  ,1572253,1698835,1828535,1967072,2089391,2212798,2348901,2461547,2621440,2752512
270  ,2883584,-7309870,-7203780,-7062699,-6939106,-6790819,-6672036,-6553600,-6422317,-6288422
271  ,-6164694,-6026456,-5901410,-5754168,-5621459,-5502710,-5369686,-5240454,-5120712,-4976140
272  ,-4847970,-4723070,-4589083,-4450923,-4324680,-4189892,-4065551,-3931803,-3800209,-3668539
273  ,-3539395,-3404801,-3277470,-3141389,-3016710,-2885724,-2752612,-2618541,-2486762,-2354153
274  ,-2225059,-2094984,-1968194,-1830895,-1699508,-1575743,-1444516,-1308683,-1179714,-1053088
275  ,-917981,-783707,-653900,-524980,-395409,-260309,-131948,-3452,132113,263241
276  ,392185,522597,654134,788288,919810,1045795,1179210,1314201,1444235,1574447
277  ,1705193,1834009,1967332,2098102,2229019,2359147,2489859,2619878,2754966,2879671
278  ,3014438,3146143,3276733,3405958,3542196,3667493,3798815,3932961,4062458,4187125
279  ,4322346,4454875,4587752,4716809,4848274,4975027,5111957,5242215,5373085,5501158
280  ,5640140,5762918,5895358,6024008,6157906,6290628,6422713,6546339,6675888,6815606
281  ,6955288,7077501,7211630,7337893,7473635,7607175,7728310,7866475,7999658,8127888
282  ,8241758,8386483,8522550,8641582,8771915,8922139,9038632,9179385,9313426,9437184
283  ,9568256,9699328,9830400,9952933,10120004,10223616,10354688,10474645,10616832,-393216
284  ,-262144,-85425,-121,82533,262144,393216,-786432,-655360,-524288,-379928
285  ,-222821,-95200,287,95541,227093,393216,493567,655360,786432,-393216
286  ,-262144,-86805,510,86722,262144,393216,524288,-1048576,-917504,-786432
287  ,-624456,-529951,-395071,-241627,-101168,81,99975,241605,393216,524288
288  ,655360,786432,917504,-786432,-655360,-524288,-393216,-230359,-95619,-137
289  ,94425,226222,393216,524288,-1179648,-1048576,-917504,-773841,-655360,-492258
290  ,-379715,-244707,-103621,-434,104523,242680,381575,523659,650565,786432
291  ,917504,1048576,1179648,1310720,-786432,-629344,-524288,-376757,-242858,-101932
292  ,-2715,107155,239212,366480,514943,655360,786432,917504,-2228224,-2097152
293  ,-1966080,-1835008,-1703936,-1572864,-1441792,-1284584,-1179648,-1048819,-934658,-777181
294  ,-626371,-515660,-377493,-248975,-113036,436,113584,248354,379718,512475
295  ,653932,796494,917504,1048576,1179648,1310720,1441792,1572864,1703936,1835008
296  ,-1572864,-1441792,-1297608,-1161159,-1032316,-917092,-779770,-647384,-515529,-384269
297  ,-250003,-119252,1053,118111,249512,380545,512039,648101,770656,907003
298  ,1021725,1178082,1310720,1441792,-4587520,-4456448,-4325376,-4194304,-4063232,-3932160
299  ,-3801088,-3670016,-3538944,-3407872,-3276800,-3145728,-2999335,-2883584,-2752512,-2621440
300  ,-2490368,-2359296,-2228224,-2112691,-1966080,-1848781,-1709830,-1566109,-1438427,-1303530
301  ,-1176124,-1040936,-913876,-784585,-652025,-518361,-385267,-256342,-127297,-2733
302  ,125422,257792,389363,519911,651106,783805,909407,1044143,1174156,1309267
303  ,1436173,1553771,1708958,1814083,1967036,2095386,2255169,2359296,2478303,2621440
304  ,2752512,-4456448,-4325376,-4194304,-4063232,-3932160,-3797524,-3670016,-3560250,-3413217
305  ,-3257719,-3166416,-2986626,-2878000,-2781144,-2625383,-2495465,-2346792,-2230930,-2077063
306  ,-1949225,-1819274,-1697261,-1568664,-1443074,-1304302,-1175289,-1043794,-913423,-785561
307  ,-652104,-522835,-392667,-260517,-130088,-2,129509,260990,391931,522470
308  ,655770,784902,917093,1046445,1176951,1303121,1441362,1565401,1702022,1822856
309  ,1952852,2090384,2214607,2338436,2457483,2621440,-8781824,-8650752,-8519680,-8388608
310  ,-8260828,-8126464,-8003337,-7859030,-7750057,-7602176,-7471104,-7340032,-7193045,-7090588
311  ,-6946816,-6843344,-6676635,-6557575,-6447804,-6277614,-6159736,-6035729,-5884723,-5739567
312  ,-5634818,-5489867,-5372864,-5243300,-5098939,-4988639,-4856258,-4728494,-4591717,-4447428
313  ,-4322409,-4192918,-4062638,-3934141,-3797545,-3673373,-3531587,-3407391,-3277404,-3147797
314  ,-3013578,-2886548,-2749811,-2616428,-2490949,-2361301,-2228482,-2096883,-1964343,-1831754
315  ,-1702201,-1572495,-1442012,-1309242,-1182451,-1048996,-916905,-786510,-657079,-524730
316  ,-393672,-261313,-128743,166,130678,261334,393287,524155,655570,786839
317  ,917353,1052167,1179013,1309360,1442634,1571153,1703961,1832027,1965014,2097912
318  ,2224861,2355341,2490455,2623051,2753484,2877015,3015783,3144157,3273705,3405255
319  ,3542006,3669580,3802417,3935413,4065088,4190896,4333521,4456355,4579781,4713832
320  ,4845707,4978625,5113278,5243817,5382318,5500592,5638135,5761179,5900822,6029270
321  ,6186398,6297816,6436435,6559163,6666389,6806548,6950461,7086078,7195777,7350973
322  ,7480132,7614852,7743514,7847288,8014762,8126464,8257536,8388608,8519680,8650752
323  ,8781824,8912896,9043968,9175040,9306112,9437184
324};
325
326
327
328const int16_t WebRtcIsacfix_kLevelsShapeQ10[1735] = {
329  0,     0,    -1,     0,     0,     1,     0,     1,     0,  -821
330  ,     1,  -763,    -1,   656,  -620,     0,   633,  -636,     4,   615
331  ,  -630,     1,   649, -1773,  -670,     5,   678,  1810, -1876,  -676
332  ,     0,   691,  1843, -1806,  -743,    -1,   749,  1795,  2920, -2872
333  , -1761,  -772,    -3,   790,  1763,  2942,     0,     0,     0,     0
334  ,  -792,     2,     0,     0,     1,     0,  -854,     0,  -702,    -1
335  ,   662,  -624,    -5,   638,  -611,    -6,   638,  -647,     0,   651
336  ,  -685,    -4,   679,  2123, -1814,  -693,     0,   664,  1791, -1735
337  ,  -737,     0,   771,  1854,  2873, -2867, -1842,  -793,    -1,   821
338  ,  1826,  2805,  3922,     0,     0,     0,    -1,  -779,     1,   786
339  ,     1,  -708,     0,   789,  -799,     1,   797,  -663,     2,   646
340  ,  -600,     3,   609,  -600,     1,   658,  1807,  -627,    -3,   612
341  ,  -625,     3,   632, -1732,  -674,     1,   672,  2048, -1768,  -715
342  ,     0,   724,  1784, -3881, -3072, -1774,  -719,    -1,   730,  1811
343  , -2963, -1829,  -806,    -1,   816,  1795,  3050, -5389, -3784, -2942
344  , -1893,  -865,   -12,   867,  1885,  2945,  3928,    -2,     1,     4
345  ,     0,  -694,     2,   665,  -598,     5,   587,  -599,    -1,   661
346  ,  -656,    -7,   611,  -607,     5,   603,  -618,    -4,   620, -1794
347  ,  -645,    -2,   654,  -655,    -1,   658, -1801,  -700,     5,   707
348  ,  1927, -1752,  -745,    -8,   752,  1843, -2838, -1781,  -801,    11
349  ,   796,  1811,  2942,  3866, -3849, -3026, -1848,  -819,     2,   827
350  ,  1825,  2963, -3873, -2904, -1869,  -910,    -6,   903,  1902,  2885
351  ,  3978,  5286, -7168, -6081, -4989, -3968, -2963, -1970,  -943,    -2
352  ,   953,  1951,  2968,  3974,  5009,  6032,    -2,     3, -1024,     2
353  ,  1024,  -637,     1,   669,  -613,    -7,   630,  -603,     4,   612
354  ,  -612,     0,   590,  -645,   -11,   627,  -657,    -2,   671,  1849
355  , -1853,  -694,     2,   702,  1838, -3304, -1780,  -736,    -8,   732
356  ,  1772, -1709,  -755,    -6,   760,  1780, -2994, -1780,  -800,     8
357  ,   819,  1830,  2816, -4096, -2822, -1881,  -851,    -4,   855,  1872
358  ,  2840,  3899, -3908, -2904, -1878,  -887,     6,   897,  1872,  2942
359  ,  4008, -4992, -3881, -2933, -1915,  -928,     1,   937,  1919,  2900
360  ,  4009,  4881, -6848, -6157, -5065, -3981, -2983, -1972,  -978,    -1
361  ,   968,  1979,  2988,  4008,  5007,  6108,  7003,  8051,  9027,-13272
362  ,-12012,-11228,-10213, -9261, -8084, -7133, -6075, -5052, -4050, -3036
363  , -2014,  -996,    -4,  1007,  2031,  3038,  4049,  5074,  6134,  7069
364  ,  8094,  9069, 10212, 11049, 12104,    51, -1024,   -13,  1024,  -609
365  ,  -107,   613, -2048,  -687,   -95,   667,  2048, -3072, -1724,  -785
366  ,   -34,   732,  1819, -2048,  -703,   -26,   681,  2048, -2048,  -686
367  ,    -9,   665,  2048, -2048,  -702,    37,   748,  1723, -4096, -2786
368  , -1844,  -837,    37,   811,  1742,  3072, -4096, -2783, -1848,  -881
369  ,    39,   898,  1843,  2792,  3764, -5120, -4096, -2923, -1833,  -852
370  ,   -14,   862,  1824,  2834,  4096, -6144, -5120, -3914, -2842, -1870
371  ,  -886,   -27,   888,  1929,  2931,  4051, -7168, -6144, -5120, -3866
372  , -2933, -1915,  -927,    64,   933,  1902,  2929,  3912,  5063,  6144
373  ,-11264,-10240, -9216, -8192, -7086, -6144, -5039, -3972, -2943, -1929
374  ,  -941,     3,   938,  1942,  2959,  3933,  4905,  6088,  6983,  8192
375  , -9216, -8192, -7202, -6088, -4983, -4019, -2955, -1975,  -966,    17
376  ,   997,  1981,  2967,  3990,  4948,  6022,  6967,  8192,-13312,-12288
377  ,-11264,-10240, -9216, -8049, -6997, -6040, -5026, -4043, -3029, -2034
378  , -1015,   -23,   984,  1997,  3010,  4038,  5002,  6015,  6946,  8061
379  ,  9216, 10240,-12381,-11264,-10240, -9060, -8058, -7153, -6085, -5075
380  , -4051, -3042, -2037, -1017,    -5,  1007,  2028,  3035,  4050,  5088
381  ,  6111,  7160,  8156,  9215, 10095, 11229, 12202, 13016,-26624,-25600
382  ,-24582,-23671,-22674,-21400,-20355,-19508,-18315,-17269,-16361,-15299
383  ,-14363,-13294,-12262,-11237,-10203, -9227, -8165, -7156, -6116, -5122
384  , -4076, -3056, -2043, -1020,    -8,  1027,  2047,  3065,  4110,  5130
385  ,  6125,  7168,  8195,  9206, 10230, 11227, 12256, 13304, 14281, 15316
386  , 16374, 17382, 18428, 19388, 20361, 21468, 22448, 23781,     0,     0
387  ,    -1,     0,    -2,  1024,     0,     0,     0,    -1,  1024, -1024
388  ,     1, -1024,     4,  1024, -1024,     2,  1024, -1024,     2,  1024
389  , -2048, -1024,    -4,  1024, -1024,     2,  1024, -2048, -1024,    -3
390  ,  1024,  2048, -2048, -1024,     4,  1024,  2048, -3072, -2048, -1024
391  ,    -1,   662,  2048,     0,     1,     0,     0,     1,    -2,    -2
392  ,     0,     2,  1024,    -1,  1024, -1024,     4,  1024, -1024,     1
393  ,  1024, -1024,     1,  1024, -2048,  -781,    -4,   844,  -807,    -5
394  ,   866, -2048,  -726,   -13,   777,  2048, -2048,  -643,    -4,   617
395  ,  2048,  3072, -3072, -2048,  -629,     1,   630,  2048,  3072,     0
396  ,    -1,     1,    -2,     2,     1, -1024,     5, -1024,     6,  1024
397  , -1024,     4,  1024, -1024,     1,  1024, -1024,    -9,  1024,  -673
398  ,    -7,   655, -2048,  -665,   -15,   716, -2048,  -647,     4,   640
399  ,  2048, -2048,  -615,    -1,   635,  2048, -2048,  -613,    10,   637
400  ,  2048,  3072, -3072, -2048,  -647,    -3,   641,  2048,  3072, -5120
401  , -4096, -3072, -2048,  -681,     6,   685,  2048,  3072,  4096,     1
402  ,     1,     0,    -1,  1024, -1024,    -3,  1024, -1024,     6,  1024
403  , -1024,    -1,   769,  -733,     0,  1024,  -876,    -2,   653, -1024
404  ,    -4,   786,  -596,   -13,   595,  -634,    -2,   638,  2048, -2048
405  ,  -620,    -5,   620,  2048, -4096, -3072, -2048,  -639,    11,   655
406  ,  2048,  3072, -3072, -2048,  -659,     5,   663,  2048, -3072, -1823
407  ,  -687,    22,   695,  2048,  3072,  4096, -4096, -3072, -1848,  -715
408  ,    -3,   727,  1816,  3072,  4096,  5120, -8192, -7168, -6144, -5120
409  , -4096, -2884, -1771,  -756,   -14,   775,  1844,  3072,  4096,  5120
410  ,  6144,    -1,     1,     0, -1024,     2,   815,  -768,     2,   708
411  , -1024,    -3,   693,  -661,    -7,   607,  -643,    -5,   609,  -624
412  ,     3,   631,  -682,    -3,   691,  2048, -2048,  -640,     5,   650
413  ,  2048, -3072, -2048,  -701,     9,   704,  2048,  3072, -3072, -2048
414  ,  -670,    10,   674,  2048,  3072, -5120, -4096, -3072, -1749,  -738
415  ,     0,   733,  1811,  3072,  4096,  5120, -4096, -3072, -1873,  -753
416  ,     0,   756,  1874,  3072,  4096, -5120, -4096, -2900, -1838,  -793
417  ,    -6,   793,  1868,  2837,  4096,  5120, -7168, -6144, -5120, -4096
418  , -2832, -1891,  -828,     1,   828,  1901,  2823,  3912,  5120,  6144
419  ,  7168,  8192,-13312,-12288,-11264,-10240, -9216, -8192, -7168, -6144
420  , -5120, -3976, -3004, -1911,  -869,     7,   869,  1932,  3024,  3992
421  ,  5009,  6144,  7168,  8192,  9216, 10240, 11264,    -4,  1024,  -629
422  ,   -22,   609,  -623,     9,   640, -2048,  -768,     1,   682, -2048
423  ,  -741,    49,   722,  2048, -3072, -1706,  -808,   -20,   768,  1750
424  , -1684,  -727,   -29,   788,  1840,  3033, -1758,  -784,     0,   801
425  ,  1702, -3072, -1813,  -814,    38,   820,  1884,  2927, -4096, -3241
426  , -1839,  -922,    25,   882,  1886,  2812, -4096, -2982, -1923,  -894
427  ,    84,   912,  1869,  2778,  4096, -4928, -3965, -2902, -1920,  -883
428  ,     3,   917,  1953,  2921,  3957,  4922,  6144,  7168, -5120, -3916
429  , -2897, -1949,  -930,    31,   959,  1934,  2901,  3851,  5120, -9216
430  , -8192, -7046, -6029, -5030, -4034, -2980, -1969, -1013,   -76,   963
431  ,  1963,  2901,  3929,  4893,  6270,  7168,  8192,  9216,-12288,-11264
432  ,-10240, -9216, -8192, -6846, -6123, -5108, -4008, -3000, -1963,  -954
433  ,    -6,   958,  1992,  3009,  4020,  5085,  6097,  7168,  8192,  9216
434  ,-11264,-10139, -9194, -8127, -7156, -6102, -5053, -4049, -3036, -2025
435  , -1009,   -34,   974,  1984,  3034,  4028,  5138,  6000,  7057,  8166
436  ,  9070, 10033, 11360, 12288,-13312,-12288,-10932,-10190, -9120, -8123
437  , -7128, -6103, -5074, -4081, -3053, -2029,  -989,    -4,  1010,  2028
438  ,  3051,  4073,  5071,  6099,  7132,  8147,  9295, 10159, 11023, 12263
439  , 13312, 14336,-25600,-24576,-23552,-22529,-21504,-20480,-19456,-18637
440  ,-17425,-16165,-15316,-14327,-13606,-12135,-11182,-10107, -9153, -8144
441  , -7146, -6160, -5129, -4095, -3064, -2038, -1025,     1,  1031,  2072
442  ,  3074,  4088,  5123,  6149,  7157,  8173,  9198, 10244, 11250, 12268
443  , 13263, 14289, 15351, 16370, 17402, 18413, 19474, 20337, 21386, 22521
444  , 23367, 24350,     0,     0,     0,     0,     0,     0,     0,     0
445  , -1024,     0,  1024, -1024,     0,  1024, -1024,     0,  1024, -1024
446  ,     0,  1024, -1024,     0,  1024,  -773,     0,  1024,  -674,     0
447  ,   645, -2048,  -745,     0,   628,  2048, -2048,  -712,     0,   681
448  ,  2048,  3072, -3072, -2048,  -673,     0,   682,  1964,  3257,     0
449  ,     0,     0,     0,     0,     0,     0,     0, -1024,     0,  1024
450  , -1024,     0,  1024, -1024,     0,  1024,  -705,     0,   623,  -771
451  ,     0,  1024,  -786,     0,   688,  -631,     0,   652,  2048, -2048
452  ,  -627,    -1,   666,  2048, -3072, -1756,  -694,     0,   674,  2048
453  , -3098, -1879,  -720,     5,   694,  1886,  2958,  4096,     0,     0
454  ,     0,     0,  1024,     0,     0,  1024,  -769,     0,  1024, -1024
455  ,     0,  1024, -1024,     0,  1024,  -817,     0,   734,  -786,     0
456  ,   651,  -638,     0,   637,  -623,     0,   671,  -652,     0,   619
457  ,  2048, -2048,  -670,    -1,   663,  2048, -1908,  -680,     1,   686
458  ,  2048,  3072,  4096, -4096, -3072, -1833,  -711,     0,   727,  1747
459  ,  3072,  4096, -4096, -2971, -1826,  -762,     2,   766,  1832,  2852
460  ,  3928,  5079,     0,     0,     0, -1024,     0,  1024, -1024,     0
461  ,  -656,     0,  1024,  -599,     0,   620, -1024,     0,  1024,  -603
462  ,     0,   622,  -643,     0,   660,  -599,     0,   611,  -641,    -1
463  ,   651,  2048, -2048,  -648,    -2,   647,  1798, -3072, -2048,  -672
464  ,     2,   670,  2048, -3072, -1780,  -694,    -1,   706,  1751,  3072
465  , -3072, -1862,  -757,     7,   739,  1798,  3072,  4096, -5120, -4096
466  , -3253, -1811,  -787,     3,   782,  1887,  3123,  4096, -7252, -6144
467  , -5354, -4060, -2864, -1863,  -820,   -11,   847,  1903,  2970,  3851
468  ,  4921,  5957,  7168,  8192,  9306,     0,     0, -1024,     0,  1024
469  ,  -726,     0,   706,  -692,     0,   593,  -598,     0,   616,  -624
470  ,     0,   616,  -605,     0,   613, -2048,  -652,     1,   635,  2048
471  , -2048,  -647,    -1,   660,  2048, -1811,  -668,    -2,   685,  2048
472  , -1796,  -731,    -2,   730,  1702,  3072, -3072, -1766,  -747,    -4
473  ,   756,  1770,  3072, -4096, -3024, -1762,  -783,     4,   771,  1781
474  ,  3072, -5120, -4057, -2807, -1832,  -822,     0,   816,  1804,  2851
475  ,  3949,  5120, -6144, -4899, -3927, -2920, -1893,  -874,    -2,   868
476  ,  1881,  2905,  3960,  4912,  6144, -9216, -8192, -7168, -6225, -4963
477  , -3943, -2956, -1890,  -902,     0,   897,  1914,  2916,  3984,  4990
478  ,  6050,  7168,-11264,-10217, -9114, -8132, -7035, -5988, -4984, -4000
479  , -2980, -1962,  -927,     7,   931,  1956,  2981,  4031,  4972,  6213
480  ,  7227,  8192,  9216, 10240, 11170, 12288, 13312, 14336,     0,  1024
481  ,  -557,     1,   571,  -606,    -4,   612, -1676,  -707,    10,   673
482  ,  2048, -2048,  -727,     5,   686, -3072, -1772,  -755,    12,   716
483  ,  1877, -1856,  -786,     2,   786,  1712, -1685,  -818,   -16,   863
484  ,  1729, -3072, -1762,  -857,     3,   866,  1838,  2841, -3862, -2816
485  , -1864,  -925,    -2,   923,  1897,  2779, -2782, -1838,  -920,   -28
486  ,   931,  1951,  2835,  3804, -4815, -4001, -2940, -1934,  -959,   -22
487  ,   975,  1957,  2904,  3971,  4835, -5148, -3892, -2944, -1953,  -986
488  ,   -11,   989,  1968,  2939,  3949,  4947,  5902, -9216, -8192, -6915
489  , -6004, -4965, -4013, -3009, -1977,  -987,    -1,   982,  1972,  3000
490  ,  3960,  4939,  5814, -8976, -7888, -7084, -5955, -5043, -4009, -2991
491  , -2002, -1000,    -8,   993,  2011,  3023,  4026,  5028,  6023,  7052
492  ,  8014,  9216,-11240,-10036, -9125, -8118, -7105, -6062, -5048, -4047
493  , -3044, -2025, -1009,    -1,  1011,  2023,  3042,  4074,  5085,  6108
494  ,  7119,  8142,  9152, 10114, 11141, 12250, 13307,-15360,-14099,-13284
495  ,-12291,-11223,-10221, -9152, -8147, -7128, -6104, -5077, -4072, -3062
496  , -2033, -1020,     7,  1018,  2038,  3059,  4081,  5084,  6109,  7102
497  ,  8128,  9134, 10125, 11239, 12080,-23552,-22528,-21504,-20480,-19456
498  ,-18159,-17240,-16291,-15364,-14285,-13305,-12271,-11233,-10217, -9198
499  , -8175, -7157, -6134, -5122, -4089, -3071, -2047, -1018,     3,  1026
500  ,  2041,  3077,  4090,  5108,  6131,  7150,  8172,  9175, 10196, 11272
501  , 12303, 13273, 14328, 15332, 16334, 17381, 18409, 19423, 20423, 21451
502  , 22679, 23391, 24568, 25600, 26589
503};
504
505/* cdf tables for quantizer indices */
506const uint16_t WebRtcIsacfix_kCdfGain[1212] = {
507  0,  13,  301,  3730,  61784,  65167,  65489,  65535,  0,  17,
508  142,  314,  929,  2466,  7678,  56450,  63463,  64740,  65204,  65426,
509  65527,  65535,  0,  8,  100,  724,  6301,  60105,  65125,  65510,
510  65531,  65535,  0,  13,  117,  368,  1068,  3010,  11928,  53603,
511  61177,  63404,  64505,  65108,  65422,  65502,  65531,  65535,  0,  4,
512  17,  96,  410,  1859,  12125,  54361,  64103,  65305,  65497,  65535,
513  0,  4,  88,  230,  469,  950,  1746,  3228,  6092,  16592,
514  44756,  56848,  61256,  63308,  64325,  64920,  65309,  65460,  65502,  65522,
515  65535,  0,  88,  352,  1675,  6339,  20749,  46686,  59284,  63525,
516  64949,  65359,  65502,  65527,  65535,  0,  13,  38,  63,  117,
517  234,  381,  641,  929,  1407,  2043,  2809,  4032,  5753,  8792,
518  14407,  24308,  38941,  48947,  55403,  59293,  61411,  62688,  63630,  64329,
519  64840,  65188,  65376,  65472,  65506,  65527,  65531,  65535,  0,  8,
520  29,  75,  222,  615,  1327,  2801,  5623,  9931,  16094,  24966,
521  34419,  43458,  50676,  56186,  60055,  62500,  63936,  64765,  65225,  65435,
522  65514,  65535,  0,  8,  13,  15,  17,  21,  33,  59,
523  71,  92,  151,  243,  360,  456,  674,  934,  1223,  1583,
524  1989,  2504,  3031,  3617,  4354,  5154,  6163,  7411,  8780,  10747,
525  12874,  15591,  18974,  23027,  27436,  32020,  36948,  41830,  46205,  49797,
526  53042,  56094,  58418,  60360,  61763,  62818,  63559,  64103,  64509,  64798,
527  65045,  65162,  65288,  65363,  65447,  65506,  65522,  65531,  65533,  65535,
528  0,  4,  6,  25,  38,  71,  138,  264,  519,  808,
529  1227,  1825,  2516,  3408,  4279,  5560,  7092,  9197,  11420,  14108,
530  16947,  20300,  23926,  27459,  31164,  34827,  38575,  42178,  45540,  48747,
531  51444,  54090,  56426,  58460,  60080,  61595,  62734,  63668,  64275,  64673,
532  64936,  65112,  65217,  65334,  65426,  65464,  65477,  65489,  65518,  65527,
533  65529,  65531,  65533,  65535,  0,  2,  4,  8,  10,  12,
534  14,  16,  21,  33,  50,  71,  84,  92,  105,  138,
535  180,  255,  318,  377,  435,  473,  511,  590,  682,  758,
536  913,  1097,  1256,  1449,  1671,  1884,  2169,  2445,  2772,  3157,
537  3563,  3944,  4375,  4848,  5334,  5820,  6448,  7101,  7716,  8378,
538  9102,  9956,  10752,  11648,  12707,  13670,  14758,  15910,  17187,  18472,
539  19627,  20649,  21951,  23169,  24283,  25552,  26862,  28227,  29391,  30764,
540  31882,  33213,  34432,  35600,  36910,  38116,  39464,  40729,  41872,  43144,
541  44371,  45514,  46762,  47813,  48968,  50069,  51032,  51974,  52908,  53737,
542  54603,  55445,  56282,  56990,  57572,  58191,  58840,  59410,  59887,  60264,
543  60607,  60946,  61269,  61516,  61771,  61960,  62198,  62408,  62558,  62776,
544  62985,  63207,  63408,  63546,  63739,  63906,  64070,  64237,  64371,  64551,
545  64677,  64836,  64999,  65095,  65213,  65284,  65338,  65380,  65426,  65447,
546  65472,  65485,  65487,  65489,  65502,  65510,  65512,  65514,  65516,  65518,
547  65522,  65531,  65533,  65535,  0,  2,  4,  6,  65528,  65531,
548  65533,  65535,  0,  2,  4,  6,  8,  10,  222,  65321,
549  65513,  65528,  65531,  65533,  65535,  0,  2,  4,  50,  65476,
550  65529,  65531,  65533,  65535,  0,  2,  4,  6,  8,  12,
551  38,  544,  64936,  65509,  65523,  65525,  65529,  65531,  65533,  65535,
552  0,  2,  4,  6,  8,  10,  1055,  64508,  65528,  65531,
553  65533,  65535,  0,  2,  4,  6,  8,  10,  12,  123,
554  3956,  62999,  65372,  65495,  65515,  65521,  65523,  65525,  65527,  65529,
555  65531,  65533,  65535,  0,  2,  4,  12,  53,  4707,  59445,
556  65467,  65525,  65527,  65529,  65531,  65533,  65535,  0,  2,  4,
557  6,  8,  10,  12,  14,  16,  38,  40,  50,  67,
558  96,  234,  929,  14345,  55750,  64866,  65389,  65462,  65514,  65517,
559  65519,  65521,  65523,  65525,  65527,  65529,  65531,  65533,  65535,  0,
560  2,  4,  6,  8,  10,  15,  35,  91,  377,  1946,
561  13618,  52565,  63714,  65184,  65465,  65520,  65523,  65525,  65527,  65529,
562  65531,  65533,  65535,  0,  2,  4,  6,  8,  10,  12,
563  14,  16,  18,  20,  22,  24,  26,  28,  30,  32,
564  34,  36,  38,  40,  42,  44,  46,  48,  50,  52,
565  54,  82,  149,  362,  751,  1701,  4239,  12893,  38627,  55072,
566  60875,  63071,  64158,  64702,  65096,  65283,  65412,  65473,  65494,  65505,
567  65508,  65517,  65519,  65521,  65523,  65525,  65527,  65529,  65531,  65533,
568  65535,  0,  2,  15,  23,  53,  143,  260,  418,  698,
569  988,  1353,  1812,  2411,  3144,  4015,  5143,  6401,  7611,  8999,
570  10653,  12512,  14636,  16865,  19404,  22154,  24798,  27521,  30326,  33102,
571  35790,  38603,  41415,  43968,  46771,  49435,  52152,  54715,  57143,  59481,
572  61178,  62507,  63603,  64489,  64997,  65257,  65427,  65473,  65503,  65520,
573  65529,  65531,  65533,  65535,  0,  3,  6,  9,  26,  32,
574  44,  46,  64,  94,  111,  164,  205,  254,  327,  409,
575  506,  608,  733,  885,  1093,  1292,  1482,  1742,  1993,  2329,
576  2615,  3029,  3374,  3798,  4257,  4870,  5405,  5992,  6618,  7225,
577  7816,  8418,  9051,  9761,  10532,  11380,  12113,  13010,  13788,  14594,
578  15455,  16361,  17182,  18088,  18997,  20046,  20951,  21968,  22947,  24124,
579  25296,  26547,  27712,  28775,  29807,  30835,  31709,  32469,  33201,  34014,
580  34876,  35773,  36696,  37620,  38558,  39547,  40406,  41277,  42367,  43290,
581  44445,  45443,  46510,  47684,  48973,  50157,  51187,  52242,  53209,  54083,
582  55006,  55871,  56618,  57293,  57965,  58556,  59222,  59722,  60180,  60554,
583  60902,  61250,  61554,  61837,  62100,  62372,  62631,  62856,  63078,  63324,
584  63557,  63768,  63961,  64089,  64235,  64352,  64501,  64633,  64770,  64887,
585  65001,  65059,  65121,  65188,  65246,  65302,  65346,  65390,  65428,  65463,
586  65477,  65506,  65515,  65517,  65519,  65521,  65523,  65525,  65527,  65529,
587  65531,  65533,  65535,  0,  2,  4,  109,  65332,  65531,  65533,
588  65535,  0,  2,  4,  6,  8,  25,  1817,  63874,  65511,
589  65527,  65529,  65531,  65533,  65535,  0,  2,  4,  907,  65014,
590  65529,  65531,  65533,  65535,  0,  2,  4,  6,  8,  10,
591  12,  132,  2743,  62708,  65430,  65525,  65527,  65529,  65531,  65533,
592  65535,  0,  2,  4,  6,  8,  35,  3743,  61666,  65485,
593  65531,  65533,  65535,  0,  2,  4,  6,  8,  10,  23,
594  109,  683,  6905,  58417,  64911,  65398,  65497,  65518,  65525,  65527,
595  65529,  65531,  65533,  65535,  0,  2,  4,  6,  53,  510,
596  10209,  55212,  64573,  65441,  65522,  65529,  65531,  65533,  65535,  0,
597  2,  4,  6,  8,  10,  12,  14,  16,  18,  20,
598  22,  32,  90,  266,  1037,  3349,  14468,  50488,  62394,  64685,
599  65341,  65480,  65514,  65519,  65521,  65523,  65525,  65527,  65529,  65531,
600  65533,  65535,  0,  2,  4,  6,  9,  16,  37,  106,
601  296,  748,  1868,  5733,  18897,  45553,  60165,  63949,  64926,  65314,
602  65441,  65508,  65524,  65529,  65531,  65533,  65535,  0,  2,  4,
603  6,  8,  10,  12,  14,  16,  18,  20,  22,  24,
604  26,  28,  30,  32,  34,  36,  38,  40,  42,  44,
605  46,  48,  50,  83,  175,  344,  667,  1293,  2337,  4357,
606  8033,  14988,  28600,  43244,  52011,  57042,  59980,  61779,  63065,  63869,
607  64390,  64753,  64988,  65164,  65326,  65422,  65462,  65492,  65506,  65522,
608  65524,  65526,  65531,  65533,  65535,  0,  2,  4,  6,  8,
609  10,  12,  14,  16,  25,  39,  48,  55,  62,  65,
610  85,  106,  139,  169,  194,  252,  323,  485,  688,  1074,
611  1600,  2544,  3863,  5733,  8303,  11397,  15529,  20273,  25734,  31455,
612  36853,  41891,  46410,  50306,  53702,  56503,  58673,  60479,  61880,  62989,
613  63748,  64404,  64852,  65124,  65309,  65424,  65480,  65524,  65528,  65533,
614  65535,  0,  2,  4,  6,  8,  10,  12,  14,  21,
615  23,  25,  27,  29,  31,  39,  41,  43,  48,  60,
616  72,  79,  106,  136,  166,  187,  224,  252,  323,  381,
617  427,  478,  568,  660,  783,  912,  1046,  1175,  1365,  1567,
618  1768,  2024,  2347,  2659,  3049,  3529,  4033,  4623,  5281,  5925,
619  6726,  7526,  8417,  9468,  10783,  12141,  13571,  15222,  16916,  18659,
620  20350,  22020,  23725,  25497,  27201,  29026,  30867,  32632,  34323,  36062,
621  37829,  39466,  41144,  42654,  43981,  45343,  46579,  47759,  49013,  50171,
622  51249,  52283,  53245,  54148,  54938,  55669,  56421,  57109,  57791,  58464,
623  59092,  59674,  60105,  60653,  61083,  61407,  61757,  62095,  62388,  62649,
624  62873,  63157,  63358,  63540,  63725,  63884,  64046,  64155,  64278,  64426,
625  64548,  64654,  64806,  64906,  64994,  65077,  65137,  65215,  65277,  65324,
626  65354,  65409,  65437,  65455,  65462,  65490,  65495,  65499,  65508,  65511,
627  65513,  65515,  65517,  65519,  65521,  65523,  65525,  65527,  65529,  65531,
628  65533,  65535
629};
630
631const uint16_t WebRtcIsacfix_kCdfShape[2059] = {
632  0,  65535,  0,  65535,  0,  65535,  0,  65535,  0,  65535,
633  0,  65535,  0,  65535,  0,  65535,  0,  65535,  0,  4,
634  65535,  0,  8,  65514,  65535,  0,  29,  65481,  65535,  0,
635  121,  65439,  65535,  0,  239,  65284,  65535,  0,  8,  779,
636  64999,  65527,  65535,  0,  8,  888,  64693,  65522,  65535,  0,
637  29,  2604,  62843,  65497,  65531,  65535,  0,  25,  176,  4576,
638  61164,  65275,  65527,  65535,  0,  65535,  0,  65535,  0,  65535,
639  0,  65535,  0,  4,  65535,  0,  65535,  0,  65535,  0,
640  65535,  0,  65535,  0,  4,  65535,  0,  33,  65502,  65535,
641  0,  54,  65481,  65535,  0,  251,  65309,  65535,  0,  611,
642  65074,  65535,  0,  1273,  64292,  65527,  65535,  0,  4,  1809,
643  63940,  65518,  65535,  0,  88,  4392,  60603,  65426,  65531,  65535,
644  0,  25,  419,  7046,  57756,  64961,  65514,  65531,  65535,  0,
645  65535,  0,  65535,  0,  65535,  0,  65535,  0,  4,  65531,
646  65535,  0,  65535,  0,  8,  65531,  65535,  0,  4,  65527,
647  65535,  0,  17,  65510,  65535,  0,  42,  65481,  65535,  0,
648  197,  65342,  65531,  65535,  0,  385,  65154,  65535,  0,  1005,
649  64522,  65535,  0,  8,  1985,  63469,  65533,  65535,  0,  38,
650  3119,  61884,  65514,  65535,  0,  4,  6,  67,  4961,  60804,
651  65472,  65535,  0,  17,  565,  9182,  56538,  65087,  65514,  65535,
652  0,  8,  63,  327,  2118,  14490,  52774,  63839,  65376,  65522,
653  65535,  0,  65535,  0,  65535,  0,  65535,  0,  65535,  0,
654  17,  65522,  65535,  0,  59,  65489,  65535,  0,  50,  65522,
655  65535,  0,  54,  65489,  65535,  0,  310,  65179,  65535,  0,
656  615,  64836,  65535,  0,  4,  1503,  63965,  65535,  0,  2780,
657  63383,  65535,  0,  21,  3919,  61051,  65527,  65535,  0,  84,
658  6674,  59929,  65435,  65535,  0,  4,  255,  7976,  55784,  65150,
659  65518,  65531,  65535,  0,  4,  8,  582,  10726,  53465,  64949,
660  65518,  65535,  0,  29,  339,  3006,  17555,  49517,  62956,  65200,
661  65497,  65531,  65535,  0,  2,  33,  138,  565,  2324,  7670,
662  22089,  45966,  58949,  63479,  64966,  65380,  65518,  65535,  0,  65535,
663  0,  65535,  0,  2,  65533,  65535,  0,  46,  65514,  65535,
664  0,  414,  65091,  65535,  0,  540,  64911,  65535,  0,  419,
665  65162,  65535,  0,  976,  64790,  65535,  0,  2977,  62495,  65531,
666  65535,  0,  4,  3852,  61034,  65527,  65535,  0,  4,  29,
667  6021,  60243,  65468,  65535,  0,  84,  6711,  58066,  65418,  65535,
668  0,  13,  281,  9550,  54917,  65125,  65506,  65535,  0,  2,
669  63,  984,  12108,  52644,  64342,  65435,  65527,  65535,  0,  29,
670  251,  2014,  14871,  47553,  62881,  65229,  65518,  65535,  0,  13,
671  142,  749,  4220,  18497,  45200,  60913,  64823,  65426,  65527,  65535,
672  0,  13,  71,  264,  1176,  3789,  10500,  24480,  43488,  56324,
673  62315,  64493,  65242,  65464,  65514,  65522,  65531,  65535,  0,  4,
674  13,  38,  109,  205,  448,  850,  1708,  3429,  6276,  11371,
675  19221,  29734,  40955,  49391,  55411,  59460,  62102,  63793,  64656,  65150,
676  65401,  65485,  65522,  65531,  65535,  0,  65535,  0,  2,  65533,
677  65535,  0,  1160,  65476,  65535,  0,  2,  6640,  64763,  65533,
678  65535,  0,  2,  38,  9923,  61009,  65527,  65535,  0,  2,
679  4949,  63092,  65533,  65535,  0,  2,  3090,  63398,  65533,  65535,
680  0,  2,  2520,  58744,  65510,  65535,  0,  2,  13,  544,
681  8784,  51403,  65148,  65533,  65535,  0,  2,  25,  1017,  10412,
682  43550,  63651,  65489,  65527,  65535,  0,  2,  4,  29,  783,
683  13377,  52462,  64524,  65495,  65533,  65535,  0,  2,  4,  6,
684  100,  1817,  18451,  52590,  63559,  65376,  65531,  65535,  0,  2,
685  4,  6,  46,  385,  2562,  11225,  37416,  60488,  65026,  65487,
686  65529,  65533,  65535,  0,  2,  4,  6,  8,  10,  12,
687  42,  222,  971,  5221,  19811,  45048,  60312,  64486,  65294,  65474,
688  65525,  65529,  65533,  65535,  0,  2,  4,  8,  71,  167,
689  666,  2533,  7875,  19622,  38082,  54359,  62108,  64633,  65290,  65495,
690  65529,  65533,  65535,  0,  2,  4,  6,  8,  10,  13,
691  109,  586,  1930,  4949,  11600,  22641,  36125,  48312,  56899,  61495,
692  63927,  64932,  65389,  65489,  65518,  65531,  65533,  65535,  0,  4,
693  6,  8,  67,  209,  712,  1838,  4195,  8432,  14432,  22834,
694  31723,  40523,  48139,  53929,  57865,  60657,  62403,  63584,  64363,  64907,
695  65167,  65372,  65472,  65514,  65535,  0,  2,  4,  13,  25,
696  42,  46,  50,  75,  113,  147,  281,  448,  657,  909,
697  1185,  1591,  1976,  2600,  3676,  5317,  7398,  9914,  12941,  16169,
698  19477,  22885,  26464,  29851,  33360,  37228,  41139,  44802,  48654,  52058,
699  55181,  57676,  59581,  61022,  62190,  63107,  63676,  64199,  64547,  64924,
700  65158,  65313,  65430,  65481,  65518,  65535,  0,  65535,  0,  65535,
701  0,  65535,  0,  65535,  0,  65533,  65535,  0,  65535,  0,
702  65535,  0,  65535,  0,  65533,  65535,  0,  2,  65535,  0,
703  2,  65533,  65535,  0,  2,  65533,  65535,  0,  2,  65533,
704  65535,  0,  2,  4,  65533,  65535,  0,  2,  65533,  65535,
705  0,  2,  4,  65531,  65533,  65535,  0,  2,  4,  65531,
706  65533,  65535,  0,  2,  4,  6,  65524,  65533,  65535,  0,
707  65535,  0,  65535,  0,  65535,  0,  65535,  0,  65535,  0,
708  65535,  0,  65535,  0,  65535,  0,  65533,  65535,  0,  65533,
709  65535,  0,  2,  65533,  65535,  0,  2,  65533,  65535,  0,
710  2,  65533,  65535,  0,  2,  4,  65532,  65535,  0,  6,
711  65523,  65535,  0,  2,  15,  65530,  65533,  65535,  0,  2,
712  35,  65493,  65531,  65533,  65535,  0,  2,  4,  158,  65382,
713  65531,  65533,  65535,  0,  65535,  0,  65535,  0,  65535,  0,
714  65535,  0,  65535,  0,  65535,  0,  2,  65535,  0,  2,
715  65533,  65535,  0,  2,  65533,  65535,  0,  2,  65533,  65535,
716  0,  2,  65533,  65535,  0,  9,  65512,  65535,  0,  2,
717  12,  65529,  65535,  0,  2,  73,  65434,  65533,  65535,  0,
718  2,  240,  65343,  65533,  65535,  0,  2,  476,  65017,  65531,
719  65533,  65535,  0,  2,  4,  1046,  64686,  65531,  65533,  65535,
720  0,  2,  4,  6,  8,  1870,  63898,  65529,  65531,  65533,
721  65535,  0,  65535,  0,  65535,  0,  65535,  0,  65533,  65535,
722  0,  2,  65533,  65535,  0,  2,  65533,  65535,  0,  2,
723  65532,  65535,  0,  6,  65533,  65535,  0,  6,  65523,  65535,
724  0,  2,  65532,  65535,  0,  137,  65439,  65535,  0,  576,
725  64899,  65533,  65535,  0,  2,  289,  65299,  65533,  65535,  0,
726  2,  4,  6,  880,  64134,  65531,  65533,  65535,  0,  2,
727  4,  1853,  63347,  65533,  65535,  0,  2,  6,  2516,  61762,
728  65529,  65531,  65533,  65535,  0,  2,  4,  9,  3980,  61380,
729  65503,  65529,  65531,  65533,  65535,  0,  2,  4,  6,  8,
730  10,  12,  61,  6393,  59859,  65466,  65527,  65529,  65531,  65533,
731  65535,  0,  65535,  0,  65535,  0,  65535,  0,  2,  65532,
732  65535,  0,  3,  65529,  65535,  0,  2,  65529,  65535,  0,
733  61,  65453,  65535,  0,  234,  65313,  65535,  0,  503,  65138,
734  65535,  0,  155,  65402,  65533,  65535,  0,  2,  1058,  64554,
735  65533,  65535,  0,  2,  4,  3138,  62109,  65531,  65533,  65535,
736  0,  2,  4,  2031,  63339,  65531,  65533,  65535,  0,  2,
737  4,  6,  9,  4155,  60778,  65523,  65529,  65531,  65533,  65535,
738  0,  2,  4,  41,  6189,  59269,  65490,  65531,  65533,  65535,
739  0,  2,  4,  6,  210,  8789,  57043,  65400,  65528,  65531,
740  65533,  65535,  0,  2,  4,  6,  8,  26,  453,  10086,
741  55499,  64948,  65483,  65524,  65527,  65529,  65531,  65533,  65535,  0,
742  2,  4,  6,  8,  10,  12,  14,  16,  18,  20,
743  114,  1014,  11202,  52670,  64226,  65356,  65503,  65514,  65523,  65525,
744  65527,  65529,  65531,  65533,  65535,  0,  65533,  65535,  0,  15,
745  65301,  65535,  0,  152,  64807,  65535,  0,  2,  3328,  63308,
746  65535,  0,  2,  4050,  59730,  65533,  65535,  0,  2,  164,
747  10564,  61894,  65529,  65535,  0,  15,  6712,  59831,  65076,  65532,
748  65535,  0,  32,  7712,  57449,  65459,  65535,  0,  2,  210,
749  7849,  53110,  65021,  65523,  65535,  0,  2,  12,  1081,  13883,
750  48262,  62870,  65477,  65535,  0,  2,  88,  847,  6145,  37852,
751  62012,  65454,  65533,  65535,  0,  9,  47,  207,  1823,  14522,
752  45521,  61069,  64891,  65481,  65528,  65531,  65533,  65535,  0,  2,
753  9,  488,  2881,  12758,  38703,  58412,  64420,  65410,  65533,  65535,
754  0,  2,  4,  6,  61,  333,  1891,  6486,  19720,  43188,
755  57547,  62472,  64796,  65421,  65497,  65523,  65529,  65531,  65533,  65535,
756  0,  2,  4,  6,  8,  10,  12,  29,  117,  447,
757  1528,  6138,  21242,  43133,  56495,  62432,  64746,  65362,  65500,  65529,
758  65531,  65533,  65535,  0,  2,  18,  105,  301,  760,  1490,
759  3472,  7568,  15002,  26424,  40330,  53029,  60048,  62964,  64274,  64890,
760  65337,  65445,  65489,  65513,  65527,  65530,  65533,  65535,  0,  2,
761  4,  6,  41,  102,  409,  853,  2031,  4316,  7302,  11328,
762  16869,  24825,  34926,  43481,  50877,  56126,  59874,  62103,  63281,  63857,
763  64166,  64675,  65382,  65522,  65531,  65533,  65535,  0,  2,  4,
764  6,  8,  10,  12,  14,  16,  18,  29,  38,  53,
765  58,  96,  181,  503,  1183,  2849,  5590,  8600,  11379,  13942,
766  16478,  19453,  22638,  26039,  29411,  32921,  37596,  41433,  44998,  48560,
767  51979,  55106,  57666,  59892,  61485,  62616,  63484,  64018,  64375,  64685,
768  64924,  65076,  65278,  65395,  65471,  65509,  65529,  65535,  0,  65535,
769  0,  65535,  0,  65535,  0,  65535,  0,  65535,  0,  65535,
770  0,  65535,  0,  65535,  0,  2,  65533,  65535,  0,  2,
771  65533,  65535,  0,  2,  65533,  65535,  0,  2,  65533,  65535,
772  0,  2,  65533,  65535,  0,  2,  65533,  65535,  0,  7,
773  65519,  65535,  0,  2,  14,  65491,  65533,  65535,  0,  2,
774  81,  65427,  65531,  65533,  65535,  0,  2,  4,  312,  65293,
775  65528,  65533,  65535,  0,  65535,  0,  65535,  0,  65535,  0,
776  65535,  0,  65535,  0,  65535,  0,  65535,  0,  65535,  0,
777  2,  65533,  65535,  0,  2,  65533,  65535,  0,  2,  65533,
778  65535,  0,  5,  65523,  65535,  0,  2,  65533,  65535,  0,
779  7,  65526,  65535,  0,  46,  65464,  65533,  65535,  0,  2,
780  120,  65309,  65533,  65535,  0,  2,  5,  362,  65097,  65533,
781  65535,  0,  2,  18,  1164,  64785,  65528,  65531,  65533,  65535,
782  0,  65535,  0,  65535,  0,  65535,  0,  65533,  65535,  0,
783  65535,  0,  65533,  65535,  0,  2,  65533,  65535,  0,  2,
784  65533,  65535,  0,  2,  65533,  65535,  0,  2,  65530,  65535,
785  0,  2,  65523,  65535,  0,  69,  65477,  65535,  0,  141,
786  65459,  65535,  0,  194,  65325,  65533,  65535,  0,  2,  543,
787  64912,  65533,  65535,  0,  5,  1270,  64301,  65529,  65531,  65533,
788  65535,  0,  2,  4,  12,  2055,  63538,  65508,  65531,  65533,
789  65535,  0,  2,  7,  102,  3775,  61970,  65429,  65526,  65528,
790  65533,  65535,  0,  65535,  0,  65535,  0,  65535,  0,  2,
791  65533,  65535,  0,  2,  65535,  0,  9,  65533,  65535,  0,
792  25,  65512,  65535,  0,  2,  65533,  65535,  0,  44,  65480,
793  65535,  0,  48,  65475,  65535,  0,  162,  65373,  65535,  0,
794  637,  64806,  65533,  65535,  0,  2,  935,  64445,  65533,  65535,
795  0,  2,  4,  1662,  64083,  65533,  65535,  0,  2,  12,
796  3036,  62469,  65521,  65533,  65535,  0,  2,  120,  5405,  60468,
797  65469,  65531,  65533,  65535,  0,  2,  4,  18,  254,  6663,
798  58999,  65272,  65528,  65533,  65535,  0,  2,  4,  9,  12,
799  67,  591,  8981,  56781,  64564,  65365,  65508,  65524,  65526,  65529,
800  65531,  65533,  65535,  0,  65535,  0,  65535,  0,  2,  65533,
801  65535,  0,  9,  65526,  65535,  0,  14,  65503,  65535,  0,
802  127,  65390,  65535,  0,  517,  64990,  65535,  0,  178,  65330,
803  65535,  0,  2,  1055,  64533,  65533,  65535,  0,  2,  1558,
804  63942,  65533,  65535,  0,  2,  2205,  63173,  65533,  65535,  0,
805  25,  4493,  60862,  65505,  65533,  65535,  0,  2,  48,  5890,
806  59442,  65482,  65533,  65535,  0,  2,  4,  127,  7532,  58191,
807  65394,  65533,  65535,  0,  2,  5,  32,  550,  10388,  54924,
808  65046,  65510,  65531,  65533,  65535,  0,  2,  4,  30,  150,
809  1685,  14340,  51375,  63619,  65288,  65503,  65528,  65533,  65535,  0,
810  2,  4,  6,  8,  28,  97,  473,  2692,  15407,  50020,
811  62880,  65064,  65445,  65508,  65531,  65533,  65535,  0,  2,  4,
812  12,  32,  79,  150,  372,  907,  2184,  5868,  18207,  45431,
813  59856,  64031,  65096,  65401,  65481,  65507,  65521,  65523,  65525,  65527,
814  65529,  65531,  65533,  65535,  0,  65533,  65535,  0,  182,  65491,
815  65535,  0,  877,  64286,  65535,  0,  9,  2708,  63612,  65533,
816  65535,  0,  2,  6038,  59532,  65535,  0,  2,  92,  5500,
817  60539,  65533,  65535,  0,  268,  8908,  56512,  65385,  65535,  0,
818  129,  13110,  52742,  65036,  65535,  0,  2,  806,  14003,  51929,
819  64732,  65523,  65535,  0,  7,  92,  2667,  18159,  47678,  62610,
820  65355,  65535,  0,  32,  1836,  19676,  48237,  61677,  64960,  65526,
821  65535,  0,  21,  159,  967,  5668,  22782,  44709,  58317,  64020,
822  65406,  65528,  65535,  0,  7,  162,  1838,  8328,  23929,  43014,
823  56394,  63374,  65216,  65484,  65521,  65535,  0,  2,  4,  6,
824  28,  268,  1120,  3613,  10688,  24185,  40989,  54917,  61684,  64510,
825  65403,  65530,  65535,  0,  2,  16,  44,  139,  492,  1739,
826  5313,  13558,  26766,  41566,  52446,  58937,  62815,  64480,  65201,  65454,
827  65524,  65533,  65535,  0,  7,  25,  76,  263,  612,  1466,
828  3325,  6832,  12366,  20152,  29466,  39255,  47360,  53506,  57740,  60726,
829  62845,  64131,  64882,  65260,  65459,  65521,  65528,  65530,  65535,  0,
830  2,  4,  14,  48,  136,  312,  653,  1240,  2369,  4327,
831  7028,  10759,  15449,  21235,  28027,  35386,  42938,  49562,  54990,  59119,
832  62086,  63916,  64863,  65249,  65445,  65493,  65523,  65535,  0,  2,
833  4,  6,  8,  10,  12,  21,  83,  208,  409,  723,
834  1152,  1868,  2951,  4463,  6460,  8979,  11831,  15195,  18863,  22657,
835  26762,  30881,  34963,  39098,  43054,  47069,  50620,  53871,  56821,  59386,
836  61340,  62670,  63512,  64023,  64429,  64750,  64944,  65126,  65279,  65366,
837  65413,  65445,  65473,  65505,  65510,  65521,  65528,  65530,  65535
838};
839
840/* pointers to cdf tables for quantizer indices */
841const uint16_t *WebRtcIsacfix_kCdfGainPtr[3][12] = {
842  { WebRtcIsacfix_kCdfGain +0 +0,   WebRtcIsacfix_kCdfGain +0 +8,   WebRtcIsacfix_kCdfGain +0 +22,
843    WebRtcIsacfix_kCdfGain +0 +32,  WebRtcIsacfix_kCdfGain +0 +48,  WebRtcIsacfix_kCdfGain +0 +60,
844    WebRtcIsacfix_kCdfGain +0 +81,  WebRtcIsacfix_kCdfGain +0 +95,  WebRtcIsacfix_kCdfGain +0 +128,
845    WebRtcIsacfix_kCdfGain +0 +152, WebRtcIsacfix_kCdfGain +0 +210, WebRtcIsacfix_kCdfGain +0 +264
846  },
847  { WebRtcIsacfix_kCdfGain +404 +0,   WebRtcIsacfix_kCdfGain +404 +8,   WebRtcIsacfix_kCdfGain +404 +21,
848    WebRtcIsacfix_kCdfGain +404 +30,  WebRtcIsacfix_kCdfGain +404 +46,  WebRtcIsacfix_kCdfGain +404 +58,
849    WebRtcIsacfix_kCdfGain +404 +79,  WebRtcIsacfix_kCdfGain +404 +93,  WebRtcIsacfix_kCdfGain +404 +125,
850    WebRtcIsacfix_kCdfGain +404 +149, WebRtcIsacfix_kCdfGain +404 +207, WebRtcIsacfix_kCdfGain +404 +260
851  },
852  { WebRtcIsacfix_kCdfGain +803 +0,   WebRtcIsacfix_kCdfGain +803 +8,   WebRtcIsacfix_kCdfGain +803 +22,
853    WebRtcIsacfix_kCdfGain +803 +31,  WebRtcIsacfix_kCdfGain +803 +48,  WebRtcIsacfix_kCdfGain +803 +60,
854    WebRtcIsacfix_kCdfGain +803 +81,  WebRtcIsacfix_kCdfGain +803 +96,  WebRtcIsacfix_kCdfGain +803 +129,
855    WebRtcIsacfix_kCdfGain +803 +154, WebRtcIsacfix_kCdfGain +803 +212, WebRtcIsacfix_kCdfGain +803 +268
856  }
857};
858
859const uint16_t *WebRtcIsacfix_kCdfShapePtr[3][108] = {
860  { WebRtcIsacfix_kCdfShape +0 +0,   WebRtcIsacfix_kCdfShape +0 +2,   WebRtcIsacfix_kCdfShape +0 +4,
861    WebRtcIsacfix_kCdfShape +0 +6,   WebRtcIsacfix_kCdfShape +0 +8,   WebRtcIsacfix_kCdfShape +0 +10,
862    WebRtcIsacfix_kCdfShape +0 +12,  WebRtcIsacfix_kCdfShape +0 +14,  WebRtcIsacfix_kCdfShape +0 +16,
863    WebRtcIsacfix_kCdfShape +0 +18,  WebRtcIsacfix_kCdfShape +0 +21,  WebRtcIsacfix_kCdfShape +0 +25,
864    WebRtcIsacfix_kCdfShape +0 +29,  WebRtcIsacfix_kCdfShape +0 +33,  WebRtcIsacfix_kCdfShape +0 +37,
865    WebRtcIsacfix_kCdfShape +0 +43,  WebRtcIsacfix_kCdfShape +0 +49,  WebRtcIsacfix_kCdfShape +0 +56,
866    WebRtcIsacfix_kCdfShape +0 +64,  WebRtcIsacfix_kCdfShape +0 +66,  WebRtcIsacfix_kCdfShape +0 +68,
867    WebRtcIsacfix_kCdfShape +0 +70,  WebRtcIsacfix_kCdfShape +0 +72,  WebRtcIsacfix_kCdfShape +0 +75,
868    WebRtcIsacfix_kCdfShape +0 +77,  WebRtcIsacfix_kCdfShape +0 +79,  WebRtcIsacfix_kCdfShape +0 +81,
869    WebRtcIsacfix_kCdfShape +0 +83,  WebRtcIsacfix_kCdfShape +0 +86,  WebRtcIsacfix_kCdfShape +0 +90,
870    WebRtcIsacfix_kCdfShape +0 +94,  WebRtcIsacfix_kCdfShape +0 +98,  WebRtcIsacfix_kCdfShape +0 +102,
871    WebRtcIsacfix_kCdfShape +0 +107, WebRtcIsacfix_kCdfShape +0 +113, WebRtcIsacfix_kCdfShape +0 +120,
872    WebRtcIsacfix_kCdfShape +0 +129, WebRtcIsacfix_kCdfShape +0 +131, WebRtcIsacfix_kCdfShape +0 +133,
873    WebRtcIsacfix_kCdfShape +0 +135, WebRtcIsacfix_kCdfShape +0 +137, WebRtcIsacfix_kCdfShape +0 +141,
874    WebRtcIsacfix_kCdfShape +0 +143, WebRtcIsacfix_kCdfShape +0 +147, WebRtcIsacfix_kCdfShape +0 +151,
875    WebRtcIsacfix_kCdfShape +0 +155, WebRtcIsacfix_kCdfShape +0 +159, WebRtcIsacfix_kCdfShape +0 +164,
876    WebRtcIsacfix_kCdfShape +0 +168, WebRtcIsacfix_kCdfShape +0 +172, WebRtcIsacfix_kCdfShape +0 +178,
877    WebRtcIsacfix_kCdfShape +0 +184, WebRtcIsacfix_kCdfShape +0 +192, WebRtcIsacfix_kCdfShape +0 +200,
878    WebRtcIsacfix_kCdfShape +0 +211, WebRtcIsacfix_kCdfShape +0 +213, WebRtcIsacfix_kCdfShape +0 +215,
879    WebRtcIsacfix_kCdfShape +0 +217, WebRtcIsacfix_kCdfShape +0 +219, WebRtcIsacfix_kCdfShape +0 +223,
880    WebRtcIsacfix_kCdfShape +0 +227, WebRtcIsacfix_kCdfShape +0 +231, WebRtcIsacfix_kCdfShape +0 +235,
881    WebRtcIsacfix_kCdfShape +0 +239, WebRtcIsacfix_kCdfShape +0 +243, WebRtcIsacfix_kCdfShape +0 +248,
882    WebRtcIsacfix_kCdfShape +0 +252, WebRtcIsacfix_kCdfShape +0 +258, WebRtcIsacfix_kCdfShape +0 +264,
883    WebRtcIsacfix_kCdfShape +0 +273, WebRtcIsacfix_kCdfShape +0 +282, WebRtcIsacfix_kCdfShape +0 +293,
884    WebRtcIsacfix_kCdfShape +0 +308, WebRtcIsacfix_kCdfShape +0 +310, WebRtcIsacfix_kCdfShape +0 +312,
885    WebRtcIsacfix_kCdfShape +0 +316, WebRtcIsacfix_kCdfShape +0 +320, WebRtcIsacfix_kCdfShape +0 +324,
886    WebRtcIsacfix_kCdfShape +0 +328, WebRtcIsacfix_kCdfShape +0 +332, WebRtcIsacfix_kCdfShape +0 +336,
887    WebRtcIsacfix_kCdfShape +0 +341, WebRtcIsacfix_kCdfShape +0 +347, WebRtcIsacfix_kCdfShape +0 +354,
888    WebRtcIsacfix_kCdfShape +0 +360, WebRtcIsacfix_kCdfShape +0 +368, WebRtcIsacfix_kCdfShape +0 +378,
889    WebRtcIsacfix_kCdfShape +0 +388, WebRtcIsacfix_kCdfShape +0 +400, WebRtcIsacfix_kCdfShape +0 +418,
890    WebRtcIsacfix_kCdfShape +0 +445, WebRtcIsacfix_kCdfShape +0 +447, WebRtcIsacfix_kCdfShape +0 +451,
891    WebRtcIsacfix_kCdfShape +0 +455, WebRtcIsacfix_kCdfShape +0 +461, WebRtcIsacfix_kCdfShape +0 +468,
892    WebRtcIsacfix_kCdfShape +0 +474, WebRtcIsacfix_kCdfShape +0 +480, WebRtcIsacfix_kCdfShape +0 +486,
893    WebRtcIsacfix_kCdfShape +0 +495, WebRtcIsacfix_kCdfShape +0 +505, WebRtcIsacfix_kCdfShape +0 +516,
894    WebRtcIsacfix_kCdfShape +0 +528, WebRtcIsacfix_kCdfShape +0 +543, WebRtcIsacfix_kCdfShape +0 +564,
895    WebRtcIsacfix_kCdfShape +0 +583, WebRtcIsacfix_kCdfShape +0 +608, WebRtcIsacfix_kCdfShape +0 +635
896  },
897  { WebRtcIsacfix_kCdfShape +686 +0,   WebRtcIsacfix_kCdfShape +686 +2,   WebRtcIsacfix_kCdfShape +686 +4,
898    WebRtcIsacfix_kCdfShape +686 +6,   WebRtcIsacfix_kCdfShape +686 +8,   WebRtcIsacfix_kCdfShape +686 +11,
899    WebRtcIsacfix_kCdfShape +686 +13,  WebRtcIsacfix_kCdfShape +686 +15,  WebRtcIsacfix_kCdfShape +686 +17,
900    WebRtcIsacfix_kCdfShape +686 +20,  WebRtcIsacfix_kCdfShape +686 +23,  WebRtcIsacfix_kCdfShape +686 +27,
901    WebRtcIsacfix_kCdfShape +686 +31,  WebRtcIsacfix_kCdfShape +686 +35,  WebRtcIsacfix_kCdfShape +686 +40,
902    WebRtcIsacfix_kCdfShape +686 +44,  WebRtcIsacfix_kCdfShape +686 +50,  WebRtcIsacfix_kCdfShape +686 +56,
903    WebRtcIsacfix_kCdfShape +686 +63,  WebRtcIsacfix_kCdfShape +686 +65,  WebRtcIsacfix_kCdfShape +686 +67,
904    WebRtcIsacfix_kCdfShape +686 +69,  WebRtcIsacfix_kCdfShape +686 +71,  WebRtcIsacfix_kCdfShape +686 +73,
905    WebRtcIsacfix_kCdfShape +686 +75,  WebRtcIsacfix_kCdfShape +686 +77,  WebRtcIsacfix_kCdfShape +686 +79,
906    WebRtcIsacfix_kCdfShape +686 +82,  WebRtcIsacfix_kCdfShape +686 +85,  WebRtcIsacfix_kCdfShape +686 +89,
907    WebRtcIsacfix_kCdfShape +686 +93,  WebRtcIsacfix_kCdfShape +686 +97,  WebRtcIsacfix_kCdfShape +686 +102,
908    WebRtcIsacfix_kCdfShape +686 +106, WebRtcIsacfix_kCdfShape +686 +112, WebRtcIsacfix_kCdfShape +686 +119,
909    WebRtcIsacfix_kCdfShape +686 +127, WebRtcIsacfix_kCdfShape +686 +129, WebRtcIsacfix_kCdfShape +686 +131,
910    WebRtcIsacfix_kCdfShape +686 +133, WebRtcIsacfix_kCdfShape +686 +135, WebRtcIsacfix_kCdfShape +686 +137,
911    WebRtcIsacfix_kCdfShape +686 +139, WebRtcIsacfix_kCdfShape +686 +142, WebRtcIsacfix_kCdfShape +686 +146,
912    WebRtcIsacfix_kCdfShape +686 +150, WebRtcIsacfix_kCdfShape +686 +154, WebRtcIsacfix_kCdfShape +686 +158,
913    WebRtcIsacfix_kCdfShape +686 +162, WebRtcIsacfix_kCdfShape +686 +167, WebRtcIsacfix_kCdfShape +686 +173,
914    WebRtcIsacfix_kCdfShape +686 +179, WebRtcIsacfix_kCdfShape +686 +186, WebRtcIsacfix_kCdfShape +686 +194,
915    WebRtcIsacfix_kCdfShape +686 +205, WebRtcIsacfix_kCdfShape +686 +207, WebRtcIsacfix_kCdfShape +686 +209,
916    WebRtcIsacfix_kCdfShape +686 +211, WebRtcIsacfix_kCdfShape +686 +214, WebRtcIsacfix_kCdfShape +686 +218,
917    WebRtcIsacfix_kCdfShape +686 +222, WebRtcIsacfix_kCdfShape +686 +226, WebRtcIsacfix_kCdfShape +686 +230,
918    WebRtcIsacfix_kCdfShape +686 +234, WebRtcIsacfix_kCdfShape +686 +238, WebRtcIsacfix_kCdfShape +686 +242,
919    WebRtcIsacfix_kCdfShape +686 +247, WebRtcIsacfix_kCdfShape +686 +253, WebRtcIsacfix_kCdfShape +686 +262,
920    WebRtcIsacfix_kCdfShape +686 +269, WebRtcIsacfix_kCdfShape +686 +278, WebRtcIsacfix_kCdfShape +686 +289,
921    WebRtcIsacfix_kCdfShape +686 +305, WebRtcIsacfix_kCdfShape +686 +307, WebRtcIsacfix_kCdfShape +686 +309,
922    WebRtcIsacfix_kCdfShape +686 +311, WebRtcIsacfix_kCdfShape +686 +315, WebRtcIsacfix_kCdfShape +686 +319,
923    WebRtcIsacfix_kCdfShape +686 +323, WebRtcIsacfix_kCdfShape +686 +327, WebRtcIsacfix_kCdfShape +686 +331,
924    WebRtcIsacfix_kCdfShape +686 +335, WebRtcIsacfix_kCdfShape +686 +340, WebRtcIsacfix_kCdfShape +686 +346,
925    WebRtcIsacfix_kCdfShape +686 +354, WebRtcIsacfix_kCdfShape +686 +362, WebRtcIsacfix_kCdfShape +686 +374,
926    WebRtcIsacfix_kCdfShape +686 +384, WebRtcIsacfix_kCdfShape +686 +396, WebRtcIsacfix_kCdfShape +686 +413,
927    WebRtcIsacfix_kCdfShape +686 +439, WebRtcIsacfix_kCdfShape +686 +442, WebRtcIsacfix_kCdfShape +686 +446,
928    WebRtcIsacfix_kCdfShape +686 +450, WebRtcIsacfix_kCdfShape +686 +455, WebRtcIsacfix_kCdfShape +686 +461,
929    WebRtcIsacfix_kCdfShape +686 +468, WebRtcIsacfix_kCdfShape +686 +475, WebRtcIsacfix_kCdfShape +686 +481,
930    WebRtcIsacfix_kCdfShape +686 +489, WebRtcIsacfix_kCdfShape +686 +498, WebRtcIsacfix_kCdfShape +686 +508,
931    WebRtcIsacfix_kCdfShape +686 +522, WebRtcIsacfix_kCdfShape +686 +534, WebRtcIsacfix_kCdfShape +686 +554,
932    WebRtcIsacfix_kCdfShape +686 +577, WebRtcIsacfix_kCdfShape +686 +602, WebRtcIsacfix_kCdfShape +686 +631
933  },
934  { WebRtcIsacfix_kCdfShape +1368 +0,   WebRtcIsacfix_kCdfShape +1368 +2,   WebRtcIsacfix_kCdfShape +1368 +4,
935    WebRtcIsacfix_kCdfShape +1368 +6,   WebRtcIsacfix_kCdfShape +1368 +8,   WebRtcIsacfix_kCdfShape +1368 +10,
936    WebRtcIsacfix_kCdfShape +1368 +12,  WebRtcIsacfix_kCdfShape +1368 +14,  WebRtcIsacfix_kCdfShape +1368 +16,
937    WebRtcIsacfix_kCdfShape +1368 +20,  WebRtcIsacfix_kCdfShape +1368 +24,  WebRtcIsacfix_kCdfShape +1368 +28,
938    WebRtcIsacfix_kCdfShape +1368 +32,  WebRtcIsacfix_kCdfShape +1368 +36,  WebRtcIsacfix_kCdfShape +1368 +40,
939    WebRtcIsacfix_kCdfShape +1368 +44,  WebRtcIsacfix_kCdfShape +1368 +50,  WebRtcIsacfix_kCdfShape +1368 +57,
940    WebRtcIsacfix_kCdfShape +1368 +65,  WebRtcIsacfix_kCdfShape +1368 +67,  WebRtcIsacfix_kCdfShape +1368 +69,
941    WebRtcIsacfix_kCdfShape +1368 +71,  WebRtcIsacfix_kCdfShape +1368 +73,  WebRtcIsacfix_kCdfShape +1368 +75,
942    WebRtcIsacfix_kCdfShape +1368 +77,  WebRtcIsacfix_kCdfShape +1368 +79,  WebRtcIsacfix_kCdfShape +1368 +81,
943    WebRtcIsacfix_kCdfShape +1368 +85,  WebRtcIsacfix_kCdfShape +1368 +89,  WebRtcIsacfix_kCdfShape +1368 +93,
944    WebRtcIsacfix_kCdfShape +1368 +97,  WebRtcIsacfix_kCdfShape +1368 +101, WebRtcIsacfix_kCdfShape +1368 +105,
945    WebRtcIsacfix_kCdfShape +1368 +110, WebRtcIsacfix_kCdfShape +1368 +116, WebRtcIsacfix_kCdfShape +1368 +123,
946    WebRtcIsacfix_kCdfShape +1368 +132, WebRtcIsacfix_kCdfShape +1368 +134, WebRtcIsacfix_kCdfShape +1368 +136,
947    WebRtcIsacfix_kCdfShape +1368 +138, WebRtcIsacfix_kCdfShape +1368 +141, WebRtcIsacfix_kCdfShape +1368 +143,
948    WebRtcIsacfix_kCdfShape +1368 +146, WebRtcIsacfix_kCdfShape +1368 +150, WebRtcIsacfix_kCdfShape +1368 +154,
949    WebRtcIsacfix_kCdfShape +1368 +158, WebRtcIsacfix_kCdfShape +1368 +162, WebRtcIsacfix_kCdfShape +1368 +166,
950    WebRtcIsacfix_kCdfShape +1368 +170, WebRtcIsacfix_kCdfShape +1368 +174, WebRtcIsacfix_kCdfShape +1368 +179,
951    WebRtcIsacfix_kCdfShape +1368 +185, WebRtcIsacfix_kCdfShape +1368 +193, WebRtcIsacfix_kCdfShape +1368 +203,
952    WebRtcIsacfix_kCdfShape +1368 +214, WebRtcIsacfix_kCdfShape +1368 +216, WebRtcIsacfix_kCdfShape +1368 +218,
953    WebRtcIsacfix_kCdfShape +1368 +220, WebRtcIsacfix_kCdfShape +1368 +224, WebRtcIsacfix_kCdfShape +1368 +227,
954    WebRtcIsacfix_kCdfShape +1368 +231, WebRtcIsacfix_kCdfShape +1368 +235, WebRtcIsacfix_kCdfShape +1368 +239,
955    WebRtcIsacfix_kCdfShape +1368 +243, WebRtcIsacfix_kCdfShape +1368 +247, WebRtcIsacfix_kCdfShape +1368 +251,
956    WebRtcIsacfix_kCdfShape +1368 +256, WebRtcIsacfix_kCdfShape +1368 +262, WebRtcIsacfix_kCdfShape +1368 +269,
957    WebRtcIsacfix_kCdfShape +1368 +277, WebRtcIsacfix_kCdfShape +1368 +286, WebRtcIsacfix_kCdfShape +1368 +297,
958    WebRtcIsacfix_kCdfShape +1368 +315, WebRtcIsacfix_kCdfShape +1368 +317, WebRtcIsacfix_kCdfShape +1368 +319,
959    WebRtcIsacfix_kCdfShape +1368 +323, WebRtcIsacfix_kCdfShape +1368 +327, WebRtcIsacfix_kCdfShape +1368 +331,
960    WebRtcIsacfix_kCdfShape +1368 +335, WebRtcIsacfix_kCdfShape +1368 +339, WebRtcIsacfix_kCdfShape +1368 +343,
961    WebRtcIsacfix_kCdfShape +1368 +349, WebRtcIsacfix_kCdfShape +1368 +355, WebRtcIsacfix_kCdfShape +1368 +361,
962    WebRtcIsacfix_kCdfShape +1368 +368, WebRtcIsacfix_kCdfShape +1368 +376, WebRtcIsacfix_kCdfShape +1368 +385,
963    WebRtcIsacfix_kCdfShape +1368 +397, WebRtcIsacfix_kCdfShape +1368 +411, WebRtcIsacfix_kCdfShape +1368 +429,
964    WebRtcIsacfix_kCdfShape +1368 +456, WebRtcIsacfix_kCdfShape +1368 +459, WebRtcIsacfix_kCdfShape +1368 +463,
965    WebRtcIsacfix_kCdfShape +1368 +467, WebRtcIsacfix_kCdfShape +1368 +473, WebRtcIsacfix_kCdfShape +1368 +478,
966    WebRtcIsacfix_kCdfShape +1368 +485, WebRtcIsacfix_kCdfShape +1368 +491, WebRtcIsacfix_kCdfShape +1368 +497,
967    WebRtcIsacfix_kCdfShape +1368 +505, WebRtcIsacfix_kCdfShape +1368 +514, WebRtcIsacfix_kCdfShape +1368 +523,
968    WebRtcIsacfix_kCdfShape +1368 +535, WebRtcIsacfix_kCdfShape +1368 +548, WebRtcIsacfix_kCdfShape +1368 +565,
969    WebRtcIsacfix_kCdfShape +1368 +585, WebRtcIsacfix_kCdfShape +1368 +611, WebRtcIsacfix_kCdfShape +1368 +640
970  }
971};
972
973/* code length for all coefficients using different models */
974
975const int16_t WebRtcIsacfix_kCodeLenGainQ11[392] = {
976  25189, 16036,  8717,   358,  8757, 15706, 21456, 24397, 18502, 17559
977  , 13794, 11088,  7480,   873,  6603, 11636, 14627, 16805, 19132, 26624
978  , 26624, 19408, 13751,  7280,   583,  7591, 15178, 23773, 28672, 25189
979  , 19045, 16442, 13412, 10397,  5893,  1338,  6376,  9992, 12074, 13853
980  , 15781, 19821, 22819, 28672, 28672, 25189, 19858, 15781, 11262,  5477
981  ,  1298,  5632, 11814, 17234, 22020, 28672, 19677, 18125, 16587, 14521
982  , 13032, 11196,  9249,  5411,  2495,  4994,  7975, 10234, 12308, 13892
983  , 15148, 17944, 21725, 23917, 25189, 19539, 16293, 11531,  7808,  4475
984  ,  2739,  4872,  8089, 11314, 14992, 18105, 23257, 26624, 25189, 23257
985  , 23257, 20982, 18697, 18023, 16338, 16036, 14539, 13695, 13146, 11763
986  , 10754,  9074,  7260,  5584,  4430,  5553,  6848,  8344, 10141, 11636
987  , 12535, 13416, 14342, 15477, 17296, 19282, 22349, 23773, 28672, 28672
988  , 26624, 23773, 21456, 18023, 15118, 13362, 11212,  9293,  8043,  6985
989  ,  5908,  5721,  5853,  6518,  7316,  8360,  9716, 11289, 12912, 14652
990  , 16969, 19858, 23773, 26624, 28013, 30720, 30720, 28672, 25426, 23141
991  , 25426, 23773, 20720, 19408, 18697, 19282, 16859, 16338, 16026, 15377
992  , 15021, 14319, 14251, 13937, 13260, 13017, 12332, 11703, 11430, 10359
993  , 10128,  9405,  8757,  8223,  7974,  7859,  7646,  7673,  7997,  8580
994  ,  8880,  9061,  9866, 10397, 11358, 12200, 13244, 14157, 15021, 16026
995  , 16490, 18697, 18479, 20011, 19677, 20720, 24576, 26276, 30720, 30720
996  , 28672, 30720, 24068, 25189, 22437, 20345, 18479, 16396, 16026, 14928
997  , 13877, 13450, 12696, 12766, 11626, 11098, 10159,  9998,  9437,  9275
998  ,  8783,  8552,  8629,  8488,  8522,  8454,  8571,  8775,  8915,  9427
999  ,  9483,  9851, 10260, 10933, 11131, 11974, 12560, 13833, 15080, 16304
1000  , 17491, 19017, 18697, 19408, 22020, 25189, 25426, 22819, 26276, 30720
1001  , 30720, 30720, 30720, 30720, 30720, 28672, 30720, 30720, 30720, 30720
1002  , 28013, 25426, 24397, 23773, 25189, 26624, 25189, 22437, 21725, 20011
1003  , 20527, 20720, 20771, 22020, 22020, 19858, 19408, 19972, 17866, 17360
1004  , 17791, 17219, 16805, 16927, 16067, 16162, 15661, 15178, 15021, 15209
1005  , 14845, 14570, 14490, 14490, 13733, 13617, 13794, 13577, 13312, 12824
1006  , 13032, 12683, 12189, 12469, 12109, 11940, 11636, 11617, 11932, 12294
1007  , 11578, 11775, 12039, 11654, 11560, 11439, 11909, 11421, 12029, 11513
1008  , 11773, 11899, 11560, 11805, 11476, 11664, 11963, 11647, 11754, 11963
1009  , 11703, 12211, 11932, 12074, 12469, 12535, 12560, 12912, 12783, 12866
1010  , 12884, 13378, 13957, 13775, 13635, 14019, 14545, 15240, 15520, 15554
1011  , 15697, 16490, 16396, 17281, 16599, 16969, 17963, 16859, 16983, 16805
1012  , 17099, 18210, 17219, 17646, 17700, 17646, 18297, 17425, 18479, 17791
1013  , 17718, 19282, 18672, 20173, 20982, 21725, 21456, 23773, 23257, 25189
1014  , 30720, 30720, 25189, 26624, 30720, 30720, 30720, 30720, 28672, 26276
1015  , 30720, 30720
1016};
1017
1018const int16_t WebRtcIsacfix_kCodeLenShapeQ11[577] = {
1019  0,     0,     0,     0,     0,     0,     0,     0,     0, 28672
1020  ,     0, 26624,     1, 23773, 22819,     4, 20982, 18598,    10, 19282
1021  , 16587,    22, 16442, 26624, 13126,    60, 14245, 26624, 26624, 12736
1022  ,    79, 12912, 25189, 22819,  9563,   249,  9474, 22349, 28672, 23257
1023  , 17944,  7980,   434,  8181, 16431, 26624,     0,     0,     0,     0
1024  , 28672,     0,     0,     0,     0,     0, 28672,     0, 22437,     3
1025  , 22437, 20982,     5, 20982, 16442,    22, 16752, 13814,    49, 14646
1026  , 11645,   116, 11734, 26624, 28672, 10613,   158, 11010, 24397, 19539
1027  ,  8046,   453,  7709, 19017, 28672, 23257, 15110,  6770,   758,  6523
1028  , 14108, 24397, 28672,     0,     0,     0,     0, 28672,     0, 28672
1029  ,     0, 26624,     1, 28672, 28672,     1, 26624, 24397,     2, 23257
1030  , 21725,     4, 20982, 17158,    18, 17281, 28672, 15178,    35, 15209
1031  , 12343,    92, 12320, 26624, 10344,   189, 10217, 30720, 22020,  9033
1032  ,   322,  8549, 23773, 28672, 30720, 20622,  7666,   473,  7806, 20527
1033  , 24397, 14135,  5995,   960,  6018, 14872, 23773, 26624, 20928, 16293
1034  , 10636,  4926,  1588,  5256, 11088, 18043, 25189,     0,     0,     0
1035  ,     0, 24397,     1, 25189, 20720,     5, 21456, 21209,     3, 25189
1036  , 20982,     5, 21456, 15818,    30, 15410, 13794,    60, 13416, 28672
1037  , 11162,   142, 11025,  9337,   231, 10094, 23773,  8338,   405,  7930
1038  , 26624, 19677,  6787,   613,  7318, 19161, 28672, 16442,  6319,   932
1039  ,  5748, 15312, 25189, 28672, 28672, 28672, 13998,  5513,  1263,  5146
1040  , 14024, 24397, 22819, 15818,  9460,  4447,  2122,  4681,  9970, 15945
1041  , 22349, 28672, 30720, 22622, 19017, 14872, 10689,  7405,  4473,  2983
1042  ,  4783,  7894, 11186, 14964, 18210, 24397,     0,     0, 30720,     0
1043  , 30720, 21456,     3, 23773, 14964,    39, 14757, 14179,    53, 13751
1044  , 14928,    36, 15272, 12430,    79, 13228,  9135,   285,  9077, 28672
1045  , 28672,  8377,   403,  7919, 26624, 28672, 23257,  7068,   560,  7473
1046  , 20345, 19677,  6770,   720,  6464, 18697, 25189, 16249,  5779,  1087
1047  ,  5494, 15209, 22819, 30720, 20622, 12601,  5240,  1419,  5091, 12095
1048  , 19408, 26624, 22819, 16805, 10683,  4812,  2056,  4293,  9836, 16026
1049  , 24397, 25189, 18409, 13833,  8681,  4503,  2653,  4220,  8329, 13853
1050  , 19132, 26624, 25189, 20771, 17219, 12630,  9520,  6733,  4565,  3657
1051  ,  4817,  7069, 10058, 13212, 16805, 21209, 26624, 26276, 28672, 28672
1052  , 26276, 23257, 20173, 19282, 16538, 15051, 12811, 10754,  9267,  7547
1053  ,  6270,  5407,  5214,  6057,  7054,  8226,  9488, 10806, 12793, 14442
1054  , 16442, 19677, 22099, 26276, 28672,     0, 30720,     0, 30720, 11920
1055  ,    56, 20720, 30720,  6766,   355, 13130, 30720, 30720, 22180,  5589
1056  ,   736,  7902, 26624, 30720,  7634,   354,  9721, 30720, 30720,  9027
1057  ,   246, 10117, 30720, 30720,  9630,   453,  6709, 23257, 30720, 25683
1058  , 14228,  6127,  1271,  4615, 15178, 30720, 30720, 23504, 12382,  5739
1059  ,  2015,  3492, 10560, 22020, 26624, 30720, 30720, 23257, 13192,  4873
1060  ,  1527,  5001, 12445, 22020, 30720, 30720, 30720, 30720, 19344, 10761
1061  ,  4051,  1927,  5281, 10594, 17866, 28672, 30720, 30720, 30720, 21869
1062  , 15554, 10060,  5979,  2710,  3085,  7889, 14646, 21725, 28672, 30720
1063  , 30720, 30720, 30720, 30720, 30720, 30720, 22719, 17425, 13212,  8083
1064  ,  4439,  2820,  4305,  8136, 12988, 17425, 21151, 28672, 28672, 30720
1065  , 30720, 30720, 28672, 20527, 19282, 14412, 10513,  7407,  5079,  3744
1066  ,  4115,  6308,  9621, 13599, 17040, 22349, 28672, 30720, 30720, 30720
1067  , 30720, 30720, 30720, 29522, 19282, 14545, 11485,  9093,  6760,  5262
1068  ,  4672,  4970,  6005,  7852,  9732, 12343, 14672, 19161, 22819, 25189
1069  , 30720, 30720, 28672, 30720, 30720, 20720, 18125, 14388, 12007,  9825
1070  ,  8092,  7064,  6069,  5903,  5932,  6359,  7169,  8310,  9324, 10711
1071  , 11867, 13096, 14157, 16338, 17040, 19161, 21725, 23773, 30720, 30720
1072  , 26276, 25426, 24397, 28672, 28672, 23257, 22020, 22349, 18297, 17646
1073  , 16983, 16431, 16162, 15021, 15178, 13751, 12142, 10895, 10193,  9632
1074  ,  9086,  8896,  8823,  8735,  8591,  8754,  8649,  8361,  8329,  8522
1075  ,  8373,  8739,  8993,  9657, 10454, 11279, 11899, 12614, 14024, 14273
1076  , 15477, 15240, 16649, 17866, 18697, 21151, 22099
1077};
1078
1079/* left KLT transforms */
1080const int16_t WebRtcIsacfix_kT1GainQ15[3][4] = {
1081  { -26130, 19773, 19773, 26130 },
1082  { -26664, 19046, 19046, 26664 },
1083  { -23538, 22797, 22797, 23538 }
1084};
1085
1086
1087
1088const int16_t WebRtcIsacfix_kT1ShapeQ15[3][324] = {
1089  { 52,16,168,7,439,-138,-89,306,671,882,
1090    157,1301,291,1598,-3571,-1943,-1119,32404,96,-12,
1091    379,-64,-307,345,-836,539,1045,2541,-2865,-992,
1092    1683,-4717,5808,7427,30599,2319,183,-73,451,481,
1093    933,-198,781,-397,1244,-777,3690,-2414,149,-1356,
1094    -2593,-31140,8289,-1737,-202,-14,-214,360,501,450,
1095    -245,-7,797,3638,-2804,3042,-337,22137,-22103,2264,
1096    6838,-3381,305,172,263,-195,-355,351,179,513,
1097    2234,3343,5509,7531,19075,-17740,-16836,2244,-629,-1505,
1098    -153,108,124,-324,2694,-124,1492,-850,5347,4285,
1099    7439,-10229,-22822,-12467,-12891,3645,822,-232,131,13,
1100    374,565,536,4681,1294,-1935,1926,-5734,-10643,26462,
1101    -12480,-5589,-1038,-2468,964,-704,-247,-106,186,-558,
1102    -4050,3760,2972,2141,-7393,6294,26740,11991,-3251,5461,
1103    5341,1574,2208,-51,-552,-297,-753,-154,2068,-5371,
1104    3578,4106,28043,-10533,8041,2353,2389,4609,3410,1906,
1105    351,-249,18,-15,1117,539,2870,9084,17585,-24528,
1106    -366,-6490,2009,-3170,2942,1116,-232,1672,1065,606,
1107    -399,-388,-518,38,3728,28948,-11936,4543,4104,-4441,
1108    1545,-4044,1485,622,-68,186,-473,135,-280,125,
1109    -546,-1813,6989,6606,23711,19376,-2636,2870,-4553,-1687,
1110    878,-375,205,-208,-409,-108,-200,-45,-1670,-337,
1111    8213,-5524,-2334,5240,-12939,-26205,5937,-1582,-592,-959,
1112    -5374,2449,3400,559,349,-492,668,12379,-27684,3419,
1113    5117,4415,-297,-8270,-1252,-3490,-1272,-1199,-3159,191,
1114    630,488,-797,-3071,12912,-27783,-10249,1047,647,619,
1115    111,-3722,-915,-1055,-502,5,-1384,-306,221,68,
1116    5219,13173,-26474,-11663,-5626,927,806,-1127,236,-589,
1117    -522,-230,-312,-315,-428,-573,426,192,-11830,-26883,
1118    -14121,-2785,-1429,-109,410,-832,-302,539,-459,104,
1119    1,-530,-202,-289,153,116,30082,-12944,-671,20,
1120    649,98,103,215,234,0,280,-51,-169,298,
1121    31,230,-73,-51
1122  },
1123  { -154,-7,-192,61,-739,-389,-947,-162,-60,94,
1124    511,-716,1520,-1428,4168,-2214,1816,32270,-123,-77,
1125    -199,-99,-42,-588,203,-240,-930,-35,1580,234,
1126    3206,-5507,-1495,-10946,30000,-2667,-136,-176,-240,-175,
1127    -204,-661,-1796,-1039,-1271,498,3143,734,2663,2699,
1128    -8127,29333,10495,2356,-72,113,-91,118,-2840,-723,
1129    -1733,-1158,-389,-2116,-3054,-3,-5179,8071,29546,6308,
1130    5657,-3178,-186,-294,-473,-635,1213,-983,-1437,-1715,
1131    -1094,1280,-92,-9573,948,29576,-7060,-5921,2954,1349,
1132    -337,-108,-1099,962,418,-413,-1149,-334,1241,3975,
1133    -6825,26725,-14377,7051,-4772,-1707,2335,2008,-150,570,
1134    1371,42,-1649,-619,2039,3369,-1225,1583,-2755,-15207,
1135    -27504,-4855,-4304,1495,2733,1324,15,-448,403,353,
1136    3016,-1242,2338,2673,2064,-7496,-30447,-3686,5833,-1301,
1137    -2455,2122,1519,608,43,-653,773,-3072,912,-1537,
1138    4505,10284,30237,1549,3200,-691,205,1702,658,1014,
1139    1499,148,79,-322,-1162,-4639,-813,7536,3204,29109,
1140    -10747,-26,1611,2286,2114,2561,1022,372,348,207,
1141    1062,-1088,-443,-9849,2381,5671,29097,-7612,-2927,3853,
1142    194,1155,275,1438,1438,1312,581,888,-784,906,
1143    112,-11103,25104,14438,-9311,-3068,1210,368,370,-940,
1144    -2434,-1148,1925,392,657,258,-526,1475,-2281,-4265,
1145    -1880,1534,2185,-1472,959,-30934,6306,3114,-4109,1768,
1146    -2612,-703,45,644,2185,2033,5670,7211,19114,-22427,
1147    6432,5150,-4090,-2694,3860,1245,-596,293,1829,369,
1148    -319,229,-3256,2170,-6374,-26216,-4570,-16053,-5766,-262,
1149    -2006,2873,-1477,147,378,-1544,-344,-544,-985,-481,
1150    4210,4542,30757,-7291,-4863,1529,-2079,-628,-603,-783,
1151    -408,1646,697,808,-620,-292,181,158,-13313,-29173,
1152    5984,-1262,859,-1776,-558,-24,-883,-1421,739,210,
1153    -531,-285,131,-160,-246,-56,29345,-13706,-2859,-2966,
1154    -300,-970,-2382,-268,-103,-636,-12,-62,-691,-253,
1155    -147,-127,27,66
1156  },
1157  { 55,-212,-198,489,-274,81,682,399,328,-934,
1158    -389,-37,1357,-3632,5276,6581,-9493,-29921,29,-45,
1159    2,190,172,-15,311,-130,-1085,-25,324,-684,
1160    3223,-6580,4485,-5280,-29521,9933,82,-320,-530,229,
1161    -705,-533,-414,848,-1842,-4473,1390,-857,6717,-6692,
1162    4648,29397,576,8339,-68,-85,238,-330,264,-1012,
1163    -381,-203,-3384,-3329,3906,6810,3790,-6250,28312,-8078,
1164    8089,1565,160,-569,-612,-613,-1063,-1928,-1125,3421,
1165    -7481,-7484,4942,-6984,4330,-25591,-10574,-6982,5682,-1781,
1166    -308,89,178,-1715,-420,-3530,-5776,1219,-8617,-7137,
1167    7015,4981,24875,12657,-5408,-3356,-785,-1972,326,-858,
1168    -506,-3382,-986,-6258,-2259,4015,-8374,-10482,3127,23826,
1169    -14126,-514,-5417,2178,-2912,-17,-587,80,67,-5881,
1170    -1702,-5351,-4481,398,-10156,-225,20727,-15460,-11603,7752,
1171    3660,1714,-2001,-359,499,-527,-1225,-7820,-1297,-6326,
1172    -8526,7900,-18328,13311,-17488,-2926,-196,-17,2281,873,
1173    480,-160,-624,471,780,-8729,1707,-14262,-20647,1721,
1174    18590,-2206,-1214,-1066,312,-2602,783,-412,-113,49,
1175    -119,1305,-2371,-15132,-1833,-18252,20295,-8316,2227,341,
1176    -2074,-702,3082,-262,-465,-198,430,30,-70,-788,
1177    2342,-25132,-4863,19783,-484,2137,2811,-1906,799,1586,
1178    962,-734,-191,-30,-129,-93,-1126,1729,5860,-2030,
1179    8953,603,-3338,-10869,-1144,22070,12130,10513,3191,-6881,
1180    -3514,2090,711,-666,1843,-5997,-5681,2921,-17641,-2801,
1181    4969,18590,7169,12214,8587,4405,3008,-1074,-371,-77,
1182    253,331,-5611,5014,13152,-1985,18483,-1696,8043,20463,
1183    2381,-393,1688,-1205,618,1220,457,248,-83,176,
1184    7920,-13676,-22139,-3038,17402,2036,844,3258,994,719,
1185    2087,-44,426,494,12,-91,46,5,-14204,22912,
1186    -18156,-361,442,2298,-829,2229,386,1433,1335,1323,
1187    55,-592,-139,49,-12,-57,27783,17134,350,-282,
1188    552,158,142,2488,465,329,1087,118,143,10,
1189    56,65,-15,-31
1190  }
1191};
1192
1193/* right KLT transforms */
1194const int16_t WebRtcIsacfix_kT2GainQ15[3][36] = {
1195  {   4775, -14892,  20313, -17104,  10533,  -3613,  -6782,  16044,  -8889,
1196      -11019,  21330, -10720,  13193, -15678, -11101,  14461,  12250, -13096,
1197      -16951,   2167,  16066,  15569,   -702, -16754, -19195, -12823,  -4321,
1198      5128,    13348,  17825,  13232,  13404,  13494,  13490,  13383,  13261
1199  },
1200  {  -3725,  11408, -18493,  20031, -13097,   3865,   9344, -19294,  10740,
1201     8856, -18432,   8982,  13975, -14444, -11930,  11774,  14285, -13594,
1202     -16323,     -4,  16340,  15609,    359, -17220, -18401, -13471,  -4643,
1203     5225,  13375,  18053,  13124,  13463,  13621,  13583,  13393,  13072
1204  },
1205  {  -3513,  11402, -17883,  19504, -14399,   4885,   8702, -19513,  12046,
1206     8533, -18110,   8447,  12778, -14838, -12444,  13177,  14107, -12759,
1207     -17268,    914,  15822,  15661,    838, -16686, -18907, -12936,  -4820,
1208     4175,  12398,  18830,  12913,  13215,  13433,  13572,  13601,  13518
1209  }
1210};
1211
1212const int16_t WebRtcIsacfix_kT2ShapeQ15[3][36] = {
1213  {   4400, -11512,  17205, -19470,  14770,  -5345,   9784, -19222,  11228,
1214      6842, -18371,   9909,  14191, -13496, -11563,  14015,  11827, -14839,
1215      -15439,    948,  17802,  14827,  -2053, -17132,  18723,  14516,   4135,
1216      -6822, -13869, -16016,  12975,  13341,  13563,  13603,  13478,  13296
1217  },
1218  {   5420, -14215,  19060, -18073,  11709,  -3911,   9645, -18335,   7717,
1219      10842, -19283,   9777,  14898, -12555, -13661,  11668,  13520, -13733,
1220      -15936,  -1358,  15671,  16728,    328, -17100,  17527,  13973,   5587,
1221      -5194, -14165, -17677,  12970,  13446,  13693,  13660,  13462,  13015
1222  },
1223  {   4386, -12426,  18019, -18895,  13894,  -5034,   9713, -19270,  10283,
1224      8692, -18439,   9317,  13992, -13454, -13241,  12850,  13366, -13336,
1225      -16334,   -498,  15976,  16213,   -114, -16987,  18191,  13659,   4958,
1226      -5116, -13444, -18021,  12911,  13424,  13718,  13674,  13464,  13054
1227  }
1228};
1229
1230/* means of log gains and LAR coefficients*/
1231const int16_t WebRtcIsacfix_kMeansGainQ8[3][12] = {
1232  { -1758, -1370, -1758, -1373, -1757, -1375,
1233    -1758, -1374, -1758, -1373, -1755, -1370
1234  },
1235  { -1569, -1224, -1569, -1225, -1569, -1227,
1236    -1569, -1226, -1567, -1225, -1565, -1224
1237  },
1238  { -1452,  -957, -1447,  -951, -1438,  -944,
1239    -1431,  -938, -1419,  -931, -1406,  -926
1240  }
1241};
1242
1243
1244const int32_t WebRtcIsacfix_kMeansShapeQ17[3][108] = {
1245  { -119581, 34418, -44193, 11112, -4428, 18906, 9222, 8068, 1953, 5425,
1246    1871, 1689, 109933, 33751, 10471, -2566, 1090, 2320, -119219, 33728,
1247    -43759, 11450, -4870, 19117, 9174, 8037, 1972, 5331, 1872, 1843,
1248    109899, 34301, 10629, -2316, 1272, 2562, -118608, 32318, -44012, 11591,
1249    -4914, 18932, 9456, 8088, 1900, 5419, 1723, 1853, 109963, 35059,
1250    10745, -2335, 1161, 2520, -119174, 32107, -44462, 11635, -4694, 18611,
1251    9757, 8108, 1969, 5486, 1673, 1777, 109636, 34907, 10643, -2406,
1252    1034, 2420, -118597, 32320, -44590, 10854, -4569, 18821, 9701, 7866,
1253    2003, 5577, 1732, 1626, 109913, 34448, 10714, -2752, 990, 2228,
1254    -118138, 32996, -44352, 10334, -3772, 18488, 9464, 7865, 2208, 5540,
1255    1745, 1664, 109880, 33381, 10640, -2779, 980, 2054
1256  },
1257  { -146328, 46370, 1047, 26431, 10035, 13933, 6415, 14359, -2368, 6661,
1258    2269, 1764, 96623, 7802, 4163, 10742, 1643, 2954, -146871, 46561, 1127,
1259    26225, 10113, 14096, 6771, 14323, -2037, 6788, 2297, 1761, 96324, 8382,
1260    4309, 10450, 1695, 3016, -146502, 46475, 1580, 26118, 10487, 14179, 6622,
1261    14439, -2034, 6757, 2342, 1761, 95869, 8966, 4347, 10358, 1999, 2855,
1262    -146958, 47717, 826, 25952, 10263, 14061, 5266, 13681, -2417, 6582, 2047,
1263    1608, 96257, 9107, 4452, 10301, 1792, 2676, -146992, 47123, 446, 25822,
1264    10405, 14292, 5140, 13804, -2403, 6496, 1834, 1735, 97489, 9253, 4414,
1265    10684, 1549, 2721, -145811, 46182, 901, 26482, 10241, 14524, 6075, 14514,
1266    -2147, 6691, 2196, 1899, 97011, 8178, 4102, 10758, 1638, 2869
1267  },
1268  { -166617, 46969, -43908, 17726, 6330, 25615, 6913, 5450, -2301, 1984,
1269    507, 2883, 149998, 28709, 19333, 16703, 11093, 8965, -168254, 46604,
1270    -44315, 17862, 6474, 25746, 7018, 5373, -2343, 1930, 513, 2819, 150391,
1271    28627, 19194, 16678, 10998, 8929, -169093, 46084, -44767, 17427, 6401,
1272    25674, 7147, 5472, -2336, 1820, 491, 2802, 149860, 28430, 19064, 16524,
1273    10898, 8875, -170205, 46189, -44877, 17403, 6190, 25209, 7035, 5673, -2173,
1274    1894, 574, 2756, 148830, 28230, 18819, 16418, 10789, 8811, -171263, 45045,
1275    -44834, 16858, 6103, 24726, 7014, 5713, -2103, 1877, 518, 2729, 147073,
1276    27744, 18629, 16277, 10690, 8703, -171720, 44153, -45062, 15951, 5872,
1277    24429, 7044, 5585, -2082, 1807, 519, 2769, 144791, 27402, 18490, 16126,
1278    10548, 8635
1279  }
1280};
1281