Home | History | Annotate | Download | only in source
      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 */
     23 const uint16_t WebRtcIsacfix_kSelIndGain[12] = {
     24   0,  1,  2,  3,  4,  5,  6,  7,  8,  9,
     25   10,  11};
     26 
     27 const 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 */
     42 const uint16_t WebRtcIsacfix_kModelCdf[4] = {
     43   0,  15434,  37548,  65535
     44 };
     45 
     46 /* pointer to cdf array for model indicator */
     47 const uint16_t *WebRtcIsacfix_kModelCdfPtr[1] = {
     48   WebRtcIsacfix_kModelCdf
     49 };
     50 
     51 /* initial cdf index for decoder of model indicator */
     52 const uint16_t WebRtcIsacfix_kModelInitIndex[1] = {
     53   1
     54 };
     55 
     56 /* offset to go from rounded value to quantization index */
     57 const int16_t WebRtcIsacfix_kQuantMinGain[12] ={
     58   3,  6,  4,  6,  6,  9,  5,  16,  11,  34,  32,  47
     59 };
     60 
     61 const 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 */
     76 const uint16_t WebRtcIsacfix_kMaxIndGain[12] = {
     77   6,  12,  8,  14,  10,  19,  12,  31,  22,  56,  52,  138
     78 };
     79 
     80 const 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 */
     95 const 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 
    101 const 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 */
    144 const 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 
    150 const 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*/
    193 const uint16_t WebRtcIsacfix_kOfLevelsGain[3] = {
    194   0,  392,  779
    195 };
    196 
    197 const uint16_t WebRtcIsacfix_kOfLevelsShape[3] = {
    198   0,  578,  1152
    199 };
    200 
    201 /* quantizer representation levels */
    202 
    203 
    204 
    205 const 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 
    328 const 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 */
    506 const 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 
    631 const 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 */
    841 const 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 
    859 const 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 
    975 const 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 
   1018 const 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 */
   1080 const 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 
   1088 const 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 */
   1194 const 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 
   1212 const 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*/
   1231 const 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 
   1244 const 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