• Main Page
  • Related Pages
  • Modules
  • Data Structures
  • Files
  • File List
  • Globals

libavcodec/g723_1_data.h

Go to the documentation of this file.
00001 /*
00002  * G723.1 compatible decoder data tables.
00003  * Copyright (c) 2006 Benjamin Larsson
00004  * Copyright (c) 2010 Mohamed Naufal Basheer
00005  *
00006  * This file is part of FFmpeg.
00007  *
00008  * FFmpeg is free software; you can redistribute it and/or
00009  * modify it under the terms of the GNU Lesser General Public
00010  * License as published by the Free Software Foundation; either
00011  * version 2.1 of the License, or (at your option) any later version.
00012  *
00013  * FFmpeg is distributed in the hope that it will be useful,
00014  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00015  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00016  * Lesser General Public License for more details.
00017  *
00018  * You should have received a copy of the GNU Lesser General Public
00019  * License along with FFmpeg; if not, write to the Free Software
00020  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
00021  */
00022 
00028 #define SUBFRAMES       4
00029 #define SUBFRAME_LEN    60
00030 #define FRAME_LEN       (SUBFRAME_LEN << 2)
00031 #define HALF_FRAME_LEN  (FRAME_LEN / 2)
00032 #define LPC_FRAME       (HALF_FRAME_LEN + SUBFRAME_LEN)
00033 #define LPC_ORDER       10
00034 #define LSP_BANDS       3
00035 #define LSP_CB_SIZE     256
00036 #define PITCH_MIN       18
00037 #define PITCH_MAX       (PITCH_MIN + 127)
00038 #define PITCH_ORDER     5
00039 #define GRID_SIZE       2
00040 #define PULSE_MAX       6
00041 #define GAIN_LEVELS     24
00042 #define COS_TBL_SIZE    512
00043 
00047 typedef enum {
00048     ActiveFrame,        
00049     SIDFrame,           
00050     UntransmittedFrame
00051 } FrameType;
00052 
00053 static const uint8_t frame_size[4] = {24, 20, 4, 1};
00054 
00055 typedef enum {
00056     Rate6k3,
00057     Rate5k3
00058 } Rate;
00059 
00063 typedef struct {
00064     int ad_cb_lag;     
00065     int ad_cb_gain;
00066     int dirac_train;
00067     int pulse_sign;
00068     int grid_index;
00069     int amp_index;
00070     int pulse_pos;
00071 } G723_1_Subframe;
00072 
00076 typedef struct {
00077     int     index;    
00078     int16_t opt_gain; 
00079     int16_t sc_gain;  
00080 } PPFParam;
00081 
00085 typedef struct {
00086     int index;
00087     int gain;
00088 } HFParam;
00089 
00093 typedef struct {
00094     int min_err;
00095     int amp_index;
00096     int grid_index;
00097     int dirac_train;
00098     int pulse_pos[PULSE_MAX];
00099     int pulse_sign[PULSE_MAX];
00100 } FCBParam;
00101 
00105 static const int16_t ppf_gain_weight[2] = {0x1800, 0x2000};
00106 
00110 static const int16_t dc_lsp[LPC_ORDER] = {
00111     0x0c3b,
00112     0x1271,
00113     0x1e0a,
00114     0x2a36,
00115     0x3630,
00116     0x406f,
00117     0x4d28,
00118     0x56f4,
00119     0x638c,
00120     0x6c46
00121 };
00122 
00126 static const int16_t cos_tab[COS_TBL_SIZE] = {
00127     16384,  16383,  16379,  16373,  16364,  16353,  16340,  16324,
00128     16305,  16284,  16261,  16235,  16207,  16176,  16143,  16107,
00129     16069,  16029,  15986,  15941,  15893,  15843,  15791,  15736,
00130     15679,  15619,  15557,  15493,  15426,  15357,  15286,  15213,
00131     15137,  15059,  14978,  14896,  14811,  14724,  14635,  14543,
00132     14449,  14354,  14256,  14155,  14053,  13949,  13842,  13733,
00133     13623,  13510,  13395,  13279,  13160,  13039,  12916,  12792,
00134     12665,  12537,  12406,  12274,  12140,  12004,  11866,  11727,
00135     11585,  11442,  11297,  11151,  11003,  10853,  10702,  10549,
00136     10394,  10238,  10080,   9921,   9760,   9598,   9434,   9269,
00137      9102,   8935,   8765,   8595,   8423,   8250,   8076,   7900,
00138      7723,   7545,   7366,   7186,   7005,   6823,   6639,   6455,
00139      6270,   6084,   5897,   5708,   5520,   5330,   5139,   4948,
00140      4756,   4563,   4370,   4176,   3981,   3786,   3590,   3393,
00141      3196,   2999,   2801,   2603,   2404,   2205,   2006,   1806,
00142      1606,   1406,   1205,   1005,    804,    603,    402,    201,
00143         0,   -201,   -402,   -603,   -804,  -1005,  -1205,  -1406,
00144     -1606,  -1806,  -2006,  -2205,  -2404,  -2603,  -2801,  -2999,
00145     -3196,  -3393,  -3590,  -3786,  -3981,  -4176,  -4370,  -4563,
00146     -4756,  -4948,  -5139,  -5330,  -5520,  -5708,  -5897,  -6084,
00147     -6270,  -6455,  -6639,  -6823,  -7005,  -7186,  -7366,  -7545,
00148     -7723,  -7900,  -8076,  -8250,  -8423,  -8595,  -8765,  -8935,
00149     -9102,  -9269,  -9434,  -9598,  -9760,  -9921, -10080, -10238,
00150    -10394, -10549, -10702, -10853, -11003, -11151, -11297, -11442,
00151    -11585, -11727, -11866, -12004, -12140, -12274, -12406, -12537,
00152    -12665, -12792, -12916, -13039, -13160, -13279, -13395, -13510,
00153    -13623, -13733, -13842, -13949, -14053, -14155, -14256, -14354,
00154    -14449, -14543, -14635, -14724, -14811, -14896, -14978, -15059,
00155    -15137, -15213, -15286, -15357, -15426, -15493, -15557, -15619,
00156    -15679, -15736, -15791, -15843, -15893, -15941, -15986, -16029,
00157    -16069, -16107, -16143, -16176, -16207, -16235, -16261, -16284,
00158    -16305, -16324, -16340, -16353, -16364, -16373, -16379, -16383,
00159    -16384, -16383, -16379, -16373, -16364, -16353, -16340, -16324,
00160    -16305, -16284, -16261, -16235, -16207, -16176, -16143, -16107,
00161    -16069, -16029, -15986, -15941, -15893, -15843, -15791, -15736,
00162    -15679, -15619, -15557, -15493, -15426, -15357, -15286, -15213,
00163    -15137, -15059, -14978, -14896, -14811, -14724, -14635, -14543,
00164    -14449, -14354, -14256, -14155, -14053, -13949, -13842, -13733,
00165    -13623, -13510, -13395, -13279, -13160, -13039, -12916, -12792,
00166    -12665, -12537, -12406, -12274, -12140, -12004, -11866, -11727,
00167    -11585, -11442, -11297, -11151, -11003, -10853, -10702, -10549,
00168    -10394, -10238, -10080,  -9921,  -9760,  -9598,  -9434,  -9269,
00169     -9102,  -8935,  -8765,  -8595,  -8423,  -8250,  -8076,  -7900,
00170     -7723,  -7545,  -7366,  -7186,  -7005,  -6823,  -6639,  -6455,
00171     -6270,  -6084,  -5897,  -5708,  -5520,  -5330,  -5139,  -4948,
00172     -4756,  -4563,  -4370,  -4176,  -3981,  -3786,  -3590,  -3393,
00173     -3196,  -2999,  -2801,  -2603,  -2404,  -2205,  -2006,  -1806,
00174     -1606,  -1406,  -1205,  -1005,   -804,   -603,   -402,   -201,
00175         0,    201,    402,    603,    804,   1005,   1205,   1406,
00176      1606,   1806,   2006,   2205,   2404,   2603,   2801,   2999,
00177      3196,   3393,   3590,   3786,   3981,   4176,   4370,   4563,
00178      4756,   4948,   5139,   5330,   5520,   5708,   5897,   6084,
00179      6270,   6455,   6639,   6823,   7005,   7186,   7366,   7545,
00180      7723,   7900,   8076,   8250,   8423,   8595,   8765,   8935,
00181      9102,   9269,   9434,   9598,   9760,   9921,  10080,  10238,
00182     10394,  10549,  10702,  10853,  11003,  11151,  11297,  11442,
00183     11585,  11727,  11866,  12004,  12140,  12274,  12406,  12537,
00184     12665,  12792,  12916,  13039,  13160,  13279,  13395,  13510,
00185     13623,  13733,  13842,  13949,  14053,  14155,  14256,  14354,
00186     14449,  14543,  14635,  14724,  14811,  14896,  14978,  15059,
00187     15137,  15213,  15286,  15357,  15426,  15493,  15557,  15619,
00188     15679,  15736,  15791,  15843,  15893,  15941,  15986,  16029,
00189     16069,  16107,  16143,  16176,  16207,  16235,  16261,  16284,
00190     16305,  16324,  16340,  16353,  16364,  16373,  16379,  16383,
00191 };
00192 
00196 static const int16_t lsp_band0[LSP_CB_SIZE][3] = {
00197     {    0,      0,      0}, { -270,  -1372,  -1032}, { -541,  -1650,  -1382},
00198     { -723,  -2011,  -2213}, { -941,  -1122,  -1942}, { -780,  -1145,  -2454},
00199     { -884,  -1309,  -1373}, {-1051,  -1523,  -1766}, {-1083,  -1622,  -2300},
00200     { -777,  -1377,  -2147}, { -935,  -1467,  -2763}, { -802,  -1327,  -3471},
00201     { -935,  -1959,  -3999}, { -240,    -89,    222}, { -661,   -257,   -160},
00202     { -994,   -466,   -419}, { -188,   -164,   -278}, { -342,   -512,   -415},
00203     { -607,   -511,   -797}, {   16,     19,   -716}, {  374,    425,   -972},
00204     { -346,    245,   -282}, { -265,    506,   -754}, { -620,   -147,   1955},
00205     { -742,   -860,   2597}, { -150,   -352,   2704}, {  305,    880,   1954},
00206     {  123,    731,   2766}, { -348,    765,   3327}, {  618,    221,   3258},
00207     { -178,    -47,   4219}, {  393,   1304,   3842}, {  698,   1702,   4801},
00208     {   63,   -584,   1229}, { -215,   -732,   1704}, {  172,   -335,   1909},
00209     {   -2,    216,   1797}, {  353,    127,   2205}, {-1208,    188,     11},
00210     { -513,    -75,   -683}, { -973,    222,   -646}, { -616,   -843,   -388},
00211     { -950,  -1113,   -359}, {-1431,   -623,   -705}, {-1398,  -1063,   -178},
00212     {  -45,   -461,     35}, {   -9,   -657,   -216}, {  127,  -1078,     95},
00213     { -950,  -1156,    584}, {-1480,  -1494,    449}, { -120,   -705,    516},
00214     { -368,   -961,    727}, { -378,   -526,    973}, { -793,   -614,    676},
00215     { -801,   -755,   1287}, {-1476,   -340,   1636}, { -505,  -1254,   1543},
00216     {-1243,  -1622,   1532}, { -776,  -1477,   -655}, {-1151,  -1296,   -823},
00217     {-1153,  -1672,  -1124}, {-1291,  -2003,  -1702}, { -622,  -1283,     57},
00218     { -471,  -1611,    509}, {-1060,  -1570,   -139}, { -873,  -2156,   -536},
00219     {-1716,  -2021,   -364}, {-2150,  -3218,  -1291}, {-1248,  -1945,  -2904},
00220     {-1215,  -2633,  -2855}, {  167,   -244,     84}, {  349,   -412,   -217},
00221     {  -40,   -352,    632}, {  227,   -529,    405}, {   68,   -383,   -443},
00222     {  167,   -558,   -706}, { -275,   -854,    -14}, { -351,  -1089,   -449},
00223     {  341,    -72,   -289}, {  603,   -106,   -474}, {  322,   -219,   -649},
00224     {  179,   -317,   -998}, {  450,   -291,   -996}, {  555,    195,   -525},
00225     {  784,    272,   -831}, { -148,   -384,   -849}, {   82,   -536,  -1357},
00226     {  238,   -172,  -1354}, {  422,   -268,  -1841}, {  297,   -737,  -2079},
00227     { -111,   -801,   -598}, {    1,   -668,   -984}, { -131,   -818,  -1299},
00228     { -329,   -521,  -1310}, { -151,   -778,  -1834}, {  -93,   -352,  -1746},
00229     { -568,   -640,  -1821}, { -509,   -941,  -2183}, {  464,   -815,  -1250},
00230     {   79,  -1133,  -1597}, { -184,  -1353,  -2123}, { -196,   -410,  -2427},
00231     { -192,   -833,  -2810}, { -259,  -1382,  -3045}, { -217,      4,  -1166},
00232     { -800,   -325,  -1219}, { -363,   -830,   -898}, { -661,  -1134,   -960},
00233     { -386,   -980,  -1501}, { -627,  -1159,  -1722}, { -903,   -829,   -855},
00234     { -685,   -829,  -1313}, {-1065,   -959,  -1405}, {  441,     25,   -847},
00235     {  655,    -27,  -1181}, { 1159,   -110,   -705}, {  856,    253,  -1671},
00236     {  415,    404,     -1}, {  322,    903,   -398}, {  670,    499,   -292},
00237     {  803,    591,   -610}, { 1144,    591,   -814}, {  717,    183,    393},
00238     {  857,    381,    106}, {  609,     62,    -27}, {  792,    198,   -325},
00239     {  735,    805,     88}, { 1142,    812,     78}, { 1028,    366,   -292},
00240     { 1309,    743,   -237}, { 1615,    589,    -79}, { 1010,    639,   -243},
00241     {  999,    964,   -311}, { 1500,   1137,   -615}, {  988,    357,    646},
00242     { 1227,    667,    683}, { 1164,   1565,    894}, { 1392,   2015,    477},
00243     { 1138,    533,    250}, { 1437,    896,    391}, { 1765,   1118,     99},
00244     { 1112,   1090,    802}, { 1596,    846,   1134}, {  937,   1161,    279},
00245     { 1719,   1254,    683}, { 1338,   1086,     35}, { 1419,   1324,    428},
00246     { 1428,   1524,     40}, { 2108,   1594,     89}, { 1015,    544,   1222},
00247     { 1121,    925,   1263}, { 1030,   1318,   1485}, { 1295,    789,   1817},
00248     { 1323,   1272,   1909}, { 1724,   1237,   1803}, { 1797,   1689,    858},
00249     { 2149,   1367,   1301}, { 2302,   1867,    761}, { 2863,   2351,   1053},
00250     {   52,    163,    -76}, {  230,    309,   -492}, {  -71,    619,     39},
00251     { -218,    856,    499}, { -654,    736,   -207}, { -535,   1259,    155},
00252     { -480,   1476,    643}, {  262,   1081,    102}, {  309,   1592,   -182},
00253     {  627,   1629,    534}, {  337,    643,    456}, {  758,    670,    713},
00254     {  202,   1126,    658}, {  612,   1131,    666}, {  686,   1223,   1136},
00255     { -131,    377,    525}, {   42,    708,    907}, {   87,   1488,   1035},
00256     {  432,   2117,    904}, {  137,    981,   1332}, { -447,   1014,   1136},
00257     { -839,   1793,   1246}, { -559,    297,    198}, { -850,    685,    446},
00258     {-1273,    632,    826}, { -401,   -544,    173}, { -753,   -793,    144},
00259     { -436,     -9,    772}, { -115,   -243,   1310}, { -670,   -269,    374},
00260     {-1027,    -13,    639}, { -887,    -81,   1137}, {-1277,   -455,    158},
00261     {-1411,   -720,    736}, {  172,     88,    403}, {  386,    255,    756},
00262     { -500,    522,    910}, { -958,    659,   1388}, { -395,    301,   1344},
00263     { -356,    768,   1813}, { -613,    841,   2419}, {  445,   -122,    252},
00264     {  629,    -87,    723}, {  283,   -253,    870}, {  456,   -116,   1381},
00265     {  757,    180,   1059}, {  532,    408,   1509}, {  947,    288,   1806},
00266     { 1325,    994,   2524}, {  892,   1219,   3023}, { 1397,   1596,   3406},
00267     { 1143,   1552,   2546}, { 1850,   1433,   2710}, {  -10,    134,   1002},
00268     {  154,    499,   1323}, {  508,    792,   1117}, {  509,   1340,   1616},
00269     {  762,    862,   1608}, {  787,    740,   2320}, {  794,   1727,   1283},
00270     {  465,   2108,   1660}, { -120,   1451,   1613}, { -386,   2016,   2169},
00271     {  891,   1225,   2050}, {  456,   1480,   2185}, { 1493,   1283,   1209},
00272     { 1397,   1636,   1518}, { 1776,   1738,   1552}, { 1572,   1698,   2141},
00273     { 1389,   2126,   1271}, { 1959,   2413,   1119}, { 1365,   2892,   1505},
00274     { 2206,   1971,   1623}, { 2076,   1950,   2280}, { 1717,   2291,   1867},
00275     { 2366,   2515,   1953}, { 2865,   2838,   2522}, { 2535,   3465,   2011},
00276     { 3381,   4127,   2638}, {  836,   2667,   2289}, { 1761,   2773,   2337},
00277     { 1415,   3325,   2911}, { 2354,   3138,   3126}, { 2659,   4192,   4010},
00278     { 1048,   1786,   1818}, { 1242,   2111,   2240}, { 1512,   2079,   2780},
00279     { 1573,   2491,   3138}, { 2230,   2377,   2782}, {  416,   1773,   2704},
00280     {  725,   2336,   3297}, { 1252,   2373,   3978}, { 2094,   2268,   3568},
00281     { 2011,   2712,   4528}, { 1341,   3507,   3876}, { 1216,   3919,   4922},
00282     { 1693,   4793,   6012}
00283 };
00284 
00285 static const int16_t lsp_band1[LSP_CB_SIZE][3] = {
00286     {    0,      0,      0}, {-2114,  -1302,     76}, {-2652,  -1278,  -1368},
00287     {-2847,   -828,   -349}, {-3812,  -2190,   -349}, {-3946,   -364,   -449},
00288     {-2725,  -4492,  -3607}, {-3495,  -4764,  -1744}, {  -51,   -756,     84},
00289     { -153,  -1191,    504}, {  108,  -1418,   1167}, { -835,   -896,    390},
00290     { -569,  -1702,     87}, {-1151,  -1818,    933}, {-1826,  -2547,    411},
00291     {-1842,  -1818,   1451}, {-2438,  -1611,    781}, {-2747,  -2477,   1311},
00292     { -940,   1252,    477}, {-1629,   1688,    602}, {-1202,    617,    280},
00293     {-1737,    393,    580}, {-1528,   1077,   1199}, {-2165,   -161,   1408},
00294     {-2504,  -1087,   2371}, {-3458,   -175,   1395}, {-1397,    -98,   -843},
00295     {-2252,   -177,  -1149}, {-1489,   -726,  -1283}, {-1558,   -265,  -1744},
00296     {-1867,   -821,  -1897}, {-2062,  -1516,  -2340}, {-2595,  -1142,  -2861},
00297     {  170,     46,   -819}, { -193,   -204,  -1151}, {  326,   -196,  -1532},
00298     {  780,    329,   -816}, {  201,    369,  -1243}, {  650,   -209,  -1060},
00299     { 1144,    -15,  -1216}, { 1203,   -259,  -1867}, { -890,   -564,  -1430},
00300     { -638,   -852,  -1921}, {  177,   -739,  -1358}, { -261,   -526,  -1666},
00301     {  206,   -407,  -2255}, {  338,   -526,   -822}, {  421,  -1095,  -1009},
00302     {  765,   -607,  -1408}, {  825,  -1295,  -2004}, {  357,   -905,  -1815},
00303     {  -58,  -1248,  -1588}, { -596,  -1436,  -2046}, {  -73,  -1159,  -2116},
00304     { -115,  -1382,  -2581}, { -160,  -1723,  -1952}, {   -6,  -2196,  -2954},
00305     { -649,  -1705,  -2603}, { -617,  -1453,  -3282}, { -949,  -2019,  -3102},
00306     { -812,   1544,   1937}, {-1854,    574,   2000}, {-1463,   1140,   2649},
00307     {-2683,   1748,   1452}, {-2486,   2241,   2523}, {  783,   1910,   1435},
00308     {  581,   2682,   1376}, {  236,   2197,   1885}, { -453,   2943,   2057},
00309     { -682,   2178,   2565}, {-1342,   3201,   3328}, { -288,   -184,    262},
00310     {  121,   -149,   -183}, {  758,   -412,    206}, { 1038,   -204,    853},
00311     { 1577,   -457,    700}, {  937,   -640,   -567}, { 1508,   -528,  -1024},
00312     { -225,   -527,   -427}, { -564,  -1095,   -332}, { -742,   -353,   -186},
00313     {-1288,   -459,     84}, {-1853,   -484,   -274}, {-1554,   -731,    825},
00314     {-2425,   -234,    382}, {-1722,    293,   -271}, {-2515,    425,   -564},
00315     {-2599,    818,    464}, { -358,    118,   -375}, { -613,    198,   -874},
00316     { -690,    683,   -324}, {-1352,   1155,   -168}, {-1093,    129,   -324},
00317     {-1184,    611,   -858}, {  433,    386,   -372}, { -120,    486,   -634},
00318     {  234,    851,   -631}, {  602,    128,     46}, { 1099,    410,    159},
00319     {  715,   -145,   -424}, { 1198,    -85,   -593}, { 1390,    367,   -358},
00320     { 1683,    362,   -964}, { 1711,    622,     45}, { 2033,    833,   -383},
00321     { 2890,    549,   -506}, {    7,    401,     52}, {   72,    811,    415},
00322     {  566,    668,     41}, {  467,   1218,    130}, {   68,    957,   -187},
00323     {  -25,   1649,   -103}, { -661,    260,    214}, { -925,    -94,    612},
00324     { -321,   -422,    965}, { -788,   -672,   1783}, {  400,   -673,    779},
00325     {  741,   -595,   1635}, { -161,    307,    657}, { -382,    836,    871},
00326     { -814,    400,   1223}, {  364,    606,   1247}, {   57,     75,   1571},
00327     {  151,    471,   2287}, {  -81,   1021,   1502}, {  227,   1470,   1097},
00328     {  658,   1275,   1653}, {  664,   1478,   2377}, {  263,   -127,    444},
00329     {  264,     89,    969}, {  794,    171,    576}, {  821,    186,   1226},
00330     {  404,    462,    517}, {  339,    918,    794}, { 1280,   1423,    196},
00331     { 1453,   2019,    365}, { 1615,   1481,    672}, { 2394,   1708,    508},
00332     {  806,   1238,    573}, {  713,   1158,   1078}, { 1285,   1436,   1232},
00333     { 1790,   1188,   1141}, {  765,    643,    864}, { 1032,    797,   1279},
00334     {  900,    563,   1827}, { 1514,    673,   2312}, { 1544,   1129,   3240},
00335     { 1469,   1050,   1594}, { 1945,   1318,   1988}, { 2397,   2026,   2060},
00336     { 3538,   2057,   2620}, { 1249,   -118,     74}, { 1727,    194,    421},
00337     { 2078,    -50,   -463}, {  970,    688,   -432}, { 1149,    952,   -110},
00338     { 1254,   1275,   -651}, { 1386,    929,    401}, { 1960,   1167,    232},
00339     {  407,   -752,   -243}, {  859,  -1118,    172}, { -227,   -860,   -992},
00340     { -796,  -1175,  -1380}, {    8,  -1282,   -388}, {  353,  -1781,  -1037},
00341     { -732,   -397,   -807}, { -853,    -28,  -1342}, {-1229,  -1207,  -1959},
00342     {-1015,  -1125,  -2543}, {-1452,  -1791,  -2725}, {-1891,  -2416,  -3269},
00343     { -918,  -1629,   -783}, { -580,  -2155,   -698}, {-1097,  -2364,    -96},
00344     {-1387,  -1513,      7}, {-1588,  -2076,   -664}, {-1473,  -2740,   -784},
00345     {-2378,  -3149,    -56}, {-2856,  -2092,   -169}, {-3391,  -3708,    316},
00346     {-1176,   -890,   -614}, {-1944,  -1061,   -800}, { -299,  -1517,  -1000},
00347     { -640,  -1850,  -1526}, {-1454,  -1536,  -1233}, {-1890,  -1955,  -1756},
00348     {-1086,  -1921,  -2122}, { -750,  -2325,  -2260}, {-1325,  -2413,  -2673},
00349     {-1114,  -2542,  -3459}, {-1341,  -2901,  -3963}, {-1160,  -2226,  -1393},
00350     {-1001,  -2772,  -1573}, {-1594,  -2641,  -1978}, {-1534,  -3046,  -2624},
00351     {-2224,  -2196,   -675}, {-2807,  -3054,  -1102}, {-2008,  -2840,  -1186},
00352     {-1980,  -3332,  -1695}, {-1715,  -3562,   -505}, {-2527,  -4000,  -1887},
00353     {-2333,  -2734,  -2296}, {-3440,  -2401,  -3211}, {-2008,  -3528,  -3337},
00354     {-2247,  -3291,  -4510}, { -475,    949,    155}, { -149,   1365,    545},
00355     { -757,   1644,   1083}, { -217,   2053,   1353}, {-1433,   2301,   1462},
00356     {  495,   1661,    529}, {   10,   2037,    740}, { 2082,   1898,    978},
00357     { 2831,   2294,    911}, {  842,    793,    420}, { 1223,   1023,    863},
00358     { 1237,    451,    780}, { 1744,    708,    822}, { 1533,    284,   1384},
00359     { 2135,    609,   1538}, { 2305,    626,    540}, { 2368,   1187,    955},
00360     { 2586,   1255,     -7}, { 3116,   1131,    726}, { 3431,   1730,    428},
00361     { 2734,   1648,   1307}, { 2988,   1231,   2010}, { 3523,   2024,   1488},
00362     { 1034,   1657,    871}, { 1206,   2163,   1036}, { 1807,   2372,   1233},
00363     { 1808,   1769,   1493}, { 1573,   2332,   1779}, { 1216,   1609,   1866},
00364     { 1480,   1898,   2513}, {  465,   2708,   2776}, {  771,   3638,   3338},
00365     { 1869,   2599,   2623}, { 2825,   2745,   2468}, { 2638,   2439,   1585},
00366     { 2094,   2970,   1308}, { 2022,   3057,   1999}, { 3428,   2912,   1816},
00367     { 4536,   2974,   2129}, { 1046,   2563,   2086}, { 1363,   3562,   2318},
00368     { 2511,   1891,   2984}, { 1866,   2306,   3986}, { 3272,   2924,   3682},
00369     { 3146,   3564,   2272}, { 3592,   3968,   2822}, { 2431,   3369,   3069},
00370     { 1931,   4709,   3090}, { 2629,   4220,   3986}, { 4639,   4056,   3664},
00371     { 4035,   5334,   4912}
00372 };
00373 
00374 static const int16_t lsp_band2[LSP_CB_SIZE][4] = {
00375     {    0,      0,      0,      0}, {  601,    512,   -542,    334},
00376     {  428,   1087,   -484,   -132}, {  652,    622,   -391,   -572},
00377     {  378,    799,    141,   -860}, { 1040,    409,    112,   -554},
00378     { 1123,    670,    -75,   -847}, { 1421,    494,   -315,  -1095},
00379     {  787,   1001,    114,   -460}, {  988,   1672,    216,   -681},
00380     { 1007,   1241,   -132,  -1247}, { 1073,    399,    186,     -5},
00381     { 1262,    193,   -694,   -129}, {  325,    196,     51,   -641},
00382     {  861,    -59,    350,   -458}, { 1261,    567,    586,   -346},
00383     { 1532,    885,    210,   -517}, { 2027,    937,    113,   -792},
00384     { 1383,   1064,    334,     38}, { 1964,   1468,    459,    133},
00385     { 2062,   1186,    -98,   -121}, { 2577,   1445,    506,   -373},
00386     { 2310,   1682,     -2,   -960}, { 2876,   1939,    765,    138},
00387     { 3581,   2360,    649,   -414}, {  219,    176,   -398,   -309},
00388     {  434,    -78,   -435,   -880}, { -344,    301,    265,   -552},
00389     { -915,    470,    657,   -380}, {  419,   -432,   -163,   -453},
00390     {  351,   -953,      8,   -562}, {  789,    -43,     20,   -958},
00391     {  302,   -594,   -352,  -1159}, { 1040,    108,   -668,   -924},
00392     { 1333,    210,  -1217,  -1663}, {  483,    589,   -350,  -1140},
00393     { 1003,    824,   -802,  -1184}, {  745,     58,   -589,  -1443},
00394     {  346,    247,   -915,  -1683}, {  270,    796,   -720,  -2043},
00395     { 1208,    722,   -222,   -193}, { 1486,   1180,   -412,   -672},
00396     { 1722,    179,    -69,   -521}, { 2047,    860,   -666,  -1410},
00397     { -146,    222,   -281,   -805}, { -189,     90,   -114,  -1307},
00398     { -152,   1086,   -241,   -764}, { -439,    733,   -601,  -1302},
00399     { -833,   -167,   -351,   -601}, { -856,   -422,   -411,  -1059},
00400     { -747,   -355,   -582,  -1644}, { -837,    210,   -916,  -1144},
00401     {-1800,     32,   -878,  -1687}, {  -48,    -23,  -1146,     52},
00402     { -350,   -409,  -1656,   -364}, {  265,   -728,   -858,   -577},
00403     {  458,   -247,  -1141,   -997}, {  691,   -407,  -1988,  -1161},
00404     {  -66,   -104,   -705,  -1249}, { -431,    -93,  -1191,  -1844},
00405     {  203,   -732,  -1000,  -1693}, {   10,   -832,  -1846,  -1819},
00406     {  493,   -128,  -1436,  -1768}, {  488,   -311,  -1730,  -2540},
00407     { -653,   -532,  -1150,  -1172}, {-1086,   -289,  -1706,  -1533},
00408     { -699,  -1205,  -1216,  -1766}, {-1032,  -1481,  -2074,  -1523},
00409     { -721,  -1220,  -2277,  -2600}, {   12,   -539,  -1484,  -1131},
00410     {  -40,   -911,  -2106,   -441}, { -471,   -484,  -2267,  -1549},
00411     { -141,   -988,  -3006,  -1721}, {-1545,  -2102,   -583,    342},
00412     {-1383,  -2772,   -386,    -13}, {-2118,  -2589,  -1205,     72},
00413     {-2147,  -3231,   -965,    390}, {-2949,  -3300,   -621,    637},
00414     {-3907,  -4138,   -865,    803}, {-1287,   -845,   -375,   -548},
00415     {-1416,  -1169,   -487,  -1277}, {-1400,  -1690,  -1027,   -418},
00416     {-2018,  -1909,  -1188,  -1260}, {-1418,  -2222,  -2029,   -128},
00417     {-2067,  -2998,  -2693,   -310}, { -950,  -1028,  -1538,    185},
00418     {-1616,   -915,  -2205,   -549}, {   19,   -821,  -1145,    352},
00419     {  184,  -1175,  -1356,   -627}, { -547,  -1088,  -1661,   -911},
00420     { -216,  -1502,  -2197,   -948}, { -795,  -1306,  -2374,   -451},
00421     { -924,  -1889,  -2796,   -680}, { -600,  -1614,  -3609,   -885},
00422     {-2392,  -2528,    319,    303}, {-2908,  -2095,   -310,    573},
00423     {-3460,  -2141,     49,   -113}, {-2231,   -448,    675,   -146},
00424     {-2805,   -532,   1231,    479}, {-2684,   -486,   -200,    611},
00425     {-3525,   -971,   -198,    704}, {-3707,    173,    349,    254},
00426     {-4734,  -1447,    -34,    880}, {  777,   -512,    114,    -10},
00427     { 1250,    -66,    442,     -5}, {  604,    613,    452,   -352},
00428     { 1224,    777,    675,  -1014}, {-1372,    -79,  -1208,   -238},
00429     {-2389,    -17,  -1157,   -818}, {-1504,   -673,  -1133,  -1060},
00430     {-1984,   -799,  -2005,  -1973}, {-2037,   -798,  -1068,   -105},
00431     {-3190,   -899,  -1817,   -194}, { -156,   -886,    394,   -318},
00432     { -258,  -1283,    551,    202}, { -536,  -1729,    910,    331},
00433     { -847,  -1109,    795,   -163}, {-1171,  -1128,    715,    519},
00434     {-1080,  -1319,   1685,    668}, {-1000,  -1921,     96,    211},
00435     {-1487,  -2148,    831,    174}, {-1139,   -374,    414,     -4},
00436     {-1517,  -1383,    396,   -352}, {-1012,    439,    -59,   -967},
00437     {-1812,    706,   -440,  -1030}, {-1971,   -329,    -34,   -827},
00438     {-2472,  -1588,   -151,   -606}, {-2161,    374,   -281,     76},
00439     {-3012,    231,    -15,   -690}, { 1104,    566,    721,    209},
00440     { 1685,    564,    383,     98}, { 1898,    750,    792,    -97},
00441     {  556,    -64,    561,    -93}, {  876,    162,    913,    -22},
00442     {  961,    675,   1296,    140}, {  756,   -396,    851,    544},
00443     {  360,   -303,   1341,    396}, {  878,    -22,   1464,    863},
00444     { -309,   -273,    642,   -129}, { -686,    -82,    842,    454},
00445     {   -5,    -47,   1069,    998}, {  -94,    967,   1277,    298},
00446     { -489,    385,   1473,    746}, { -369,   -717,   1333,    242},
00447     {  281,   -993,   1726,    924}, {  464,    601,   1575,   1376},
00448     { -250,    206,   2339,   1175}, { -438,    377,   -597,   -285},
00449     {-1020,    787,   -790,   -287}, { -458,   -410,    215,    295},
00450     { -589,   -860,   -121,    797}, {-1175,    122,   -437,    466},
00451     {-1480,   -121,    367,    924}, {  234,    323,    770,   -555},
00452     {  145,     30,    996,     26}, {   66,    849,     93,   -145},
00453     { -117,   1261,    474,   -399}, {-1495,   1051,    218,   -506},
00454     {-1390,    694,    994,     88}, {  616,      7,     78,    304},
00455     { 1060,     52,    -62,    835}, {  833,    454,    649,   1359},
00456     { -770,    464,     47,     93}, { -574,   1199,    -39,    379},
00457     {  114,    -98,    488,    485}, {  727,    244,    606,    696},
00458     {  -76,    455,    671,    546}, { -565,    -13,    145,    819},
00459     { -376,    569,    448,   1128}, {  218,    122,    265,   1167},
00460     {  230,    738,    932,   1003}, {  138,    477,     36,    450},
00461     {  404,    787,    -73,   1000}, {  497,   1259,    387,   1231},
00462     {   17,    207,    195,    -79}, {  562,    358,     53,   -158},
00463     {  493,    387,    478,    189}, {  678,    831,    640,    558},
00464     { -197,    523,    613,     57}, {  429,    894,    769,    111},
00465     {   67,   1174,    568,    511}, { 1242,    824,    251,    840},
00466     { 1419,   1074,    864,    481}, {  924,   1474,    669,    724},
00467     { 1539,   1879,    654,   1590}, {  445,    337,   1111,    541},
00468     {  472,   1421,   1264,   1094}, {  794,    735,   1103,    668},
00469     { 1055,    863,   1192,   1020}, {  778,   1105,    806,   1798},
00470     { 1052,   1527,   1587,   2151}, {  881,   1552,   1265,    391},
00471     {  726,    872,   1812,    601}, { 1469,    280,   1008,    616},
00472     { 1403,    577,   1803,   1244}, { 1650,   1314,   1148,   1072},
00473     { 1297,   1669,   1911,   1026}, { 2093,   1044,   2115,   1189},
00474     { 1644,   1961,   2587,   1512}, {   25,   -315,     -9,   -106},
00475     {  290,   -339,    428,   -444}, {  -68,   -783,    735,    772},
00476     {  245,   -555,    468,     47}, {  334,   -895,    814,    146},
00477     {  235,    368,   -964,   -959}, { -203,    315,  -1566,  -1217},
00478     {  801,     17,   -276,   -354}, {  894,   -495,   -789,   -635},
00479     {  716,    291,  -1189,   -357}, {  560,   -260,   -733,     -2},
00480     {  679,   -508,  -1429,    211}, {  -51,    -62,   -428,    557},
00481     {  322,   -638,   -211,    614}, { -878,  -1057,    -84,    -71},
00482     { -388,  -1415,   -167,   -318}, { -754,  -1574,    214,   -539},
00483     {-1419,  -2004,    -92,   -787}, {  -47,   -856,   -347,   -255},
00484     {   23,  -1211,   -173,    320}, { -658,   -487,   -893,    353},
00485     { -783,  -1587,   -584,    507}, {-1420,   -859,   -378,    441},
00486     {-2095,  -1491,   -137,    439}, { -321,  -1450,  -1288,    -12},
00487     { -359,  -2113,   -553,     -8}, { -831,  -1918,  -1561,     32},
00488     {-1014,  -2487,  -1359,   -939}, { -475,   -311,   -169,   -236},
00489     { -907,   -426,    276,   -611}, {  -96,   -400,     50,   -710},
00490     { -426,  -1022,    -10,   -985}, { -197,   -258,   -744,   -575},
00491     { -611,   -930,   -771,   -394}, { -267,   -776,   -612,   -939},
00492     { -256,  -1346,   -802,  -1122}, { -796,  -1570,   -825,   -754},
00493     {  712,    876,    141,    227}, {  981,   1509,     85,    124},
00494     { 1462,   1228,    979,    -39}, { 1734,    999,   1481,    440},
00495     { 2293,   1116,    769,    440}, { 2504,   1480,   1241,    356},
00496     { 2474,   1909,   1558,    810}, {  917,   1134,    607,   -134},
00497     {  509,   1809,    781,   -123}, { 1712,   1506,    559,   -423},
00498     { 2037,   2317,    726,   -155}, { 3031,   2676,   1203,    331},
00499     { 3664,   3274,   1768,    531}, { 1610,   1839,    867,    183},
00500     { 1774,   1972,   1538,     97}, { 1822,   2158,   1282,    659},
00501     { 2222,   2758,   1818,    900}, { 3251,   2124,   1723,    996},
00502     { 3633,   2336,   2408,   1453}, { 2923,   3517,   2567,   1318},
00503 };
00504 
00509 static const int32_t combinatorial_table[PULSE_MAX][SUBFRAME_LEN/GRID_SIZE] = {
00510     {118755, 98280, 80730,  65780, 53130,
00511       42504, 33649, 26334,  20349, 15504,
00512       11628,  8568,  6188,   4368,  3003,
00513        2002,  1287,   792,    462,   252,
00514         126,    56,    21,      6,     1,
00515           0,     0,     0,      0,     0},
00516 
00517     { 23751, 20475, 17550,  14950, 12650,
00518       10626,  8855,  7315,   5985,  4845,
00519        3876,  3060,  2380,   1820,  1365,
00520        1001,   715,   495,    330,   210,
00521         126,    70,    35,     15,     5,
00522           1,     0,     0,      0,     0},
00523 
00524     {  3654,  3276,  2925,   2600,  2300,
00525        2024,  1771,  1540,   1330,  1140,
00526         969,   816,   680,    560,   455,
00527         364,   286,   220,    165,   120,
00528          84,    56,    35,     20,    10,
00529           4,     1,     0,      0,     0},
00530 
00531     {   406,   378,   351,    325,   300,
00532         276,   253,   231,    210,   190,
00533         171,   153,   136,    120,   105,
00534          91,    78,    66,     55,    45,
00535          36,    28,    21,     15,    10,
00536           6,     3,     1,      0,     0},
00537 
00538     {    29,    28,    27,     26,    25,
00539          24,    23,    22,     21,    20,
00540          19,    18,    17,     16,    15,
00541          14,    13,    12,     11,    10,
00542           9,     8,     7,      6,     5,
00543           4,     3,     2,      1,     0},
00544 
00545     {     1,     1,     1,      1,     1,
00546           1,     1,     1,      1,     1,
00547           1,     1,     1,      1,     1,
00548           1,     1,     1,      1,     1,
00549           1,     1,     1,      1,     1,
00550           1,     1,     1,      1,     1},
00551 };
00552 
00553 static const int16_t pitch_contrib[340] = {
00554     60,     0,  0,  2489, 60,     0,  0,  5217,
00555      1,  6171,  0,  3953,  0, 10364,  1,  9357,
00556     -1,  8843,  1,  9396,  0,  5794, -1, 10816,
00557      2, 11606, -2, 12072,  0,  8616,  1, 12170,
00558      0, 14440,  0,  7787, -1, 13721,  0, 18205,
00559      0, 14471,  0, 15807,  1, 15275,  0, 13480,
00560     -1, 18375, -1,     0,  1, 11194, -1, 13010,
00561      1, 18836, -2, 20354,  1, 16233, -1,     0,
00562     60,     0,  0, 12130,  0, 13385,  1, 17834,
00563      1, 20875,  0, 21996,  1,     0,  1, 18277,
00564     -1, 21321,  1, 13738, -1, 19094, -1, 20387,
00565     -1,     0,  0, 21008, 60,     0, -2, 22807,
00566      0, 15900,  1,     0,  0, 17989, -1, 22259,
00567      1, 24395,  1, 23138,  0, 23948,  1, 22997,
00568      2, 22604, -1, 25942,  0, 26246,  1, 25321,
00569      0, 26423,  0, 24061,  0, 27247, 60,     0,
00570     -1, 25572,  1, 23918,  1, 25930,  2, 26408,
00571     -1, 19049,  1, 27357, -1, 24538, 60,     0,
00572     -1, 25093,  0, 28549,  1,     0,  0, 22793,
00573     -1, 25659,  0, 29377,  0, 30276,  0, 26198,
00574      1, 22521, -1, 28919,  0, 27384,  1, 30162,
00575     -1,     0,  0, 24237, -1, 30062,  0, 21763,
00576      1, 30917, 60,     0,  0, 31284,  0, 29433,
00577      1, 26821,  1, 28655,  0, 31327,  2, 30799,
00578      1, 31389,  0, 32322,  1, 31760, -2, 31830,
00579      0, 26936, -1, 31180,  1, 30875,  0, 27873,
00580     -1, 30429,  1, 31050,  0,     0,  0, 31912,
00581      1, 31611,  0, 31565,  0, 25557,  0, 31357,
00582     60,     0,  1, 29536,  1, 28985, -1, 26984,
00583     -1, 31587,  2, 30836, -2, 31133,  0, 30243,
00584     -1, 30742, -1, 32090, 60,     0,  2, 30902,
00585     60,     0,  0, 30027,  0, 29042, 60,     0,
00586      0, 31756,  0, 24553,  0, 25636, -2, 30501,
00587     60,     0, -1, 29617,  0, 30649, 60,     0,
00588      0, 29274,  2, 30415,  0, 27480,  0, 31213,
00589     -1, 28147,  0, 30600,  1, 31652,  2, 29068,
00590     60,     0,  1, 28571,  1, 28730,  1, 31422,
00591      0, 28257,  0, 24797, 60,     0,  0,     0,
00592     60,     0,  0, 22105,  0, 27852, 60,     0,
00593     60,     0, -1, 24214,  0, 24642,  0, 23305,
00594     60,     0, 60,     0,  1, 22883,  0, 21601,
00595     60,     0,  2, 25650, 60,     0, -2, 31253,
00596     -2, 25144,  0, 17998
00597 };
00598 
00602 static const int8_t pulses[4] = {6, 5, 6, 5};
00603 
00607 static const int32_t max_pos[4] = {593775, 142506, 593775, 142506};
00608 
00609 static const int16_t fixed_cb_gain[GAIN_LEVELS] = {
00610       1,    2,    3,    4,    6,    9,   13,   18,
00611      26,   38,   55,   80,  115,  166,  240,  348,
00612     502,  726, 1050, 1517, 2193, 3170, 4582, 6623,
00613 };
00614 
00615 static const int16_t adaptive_cb_gain85[85 * 20] = {
00616         0,      0,      0,      0,      0,      0,      0,      0,
00617         0,      0,      0,      0,      0,      0,      0,      0,
00618         0,      0,      0,      0,    800,   1496,    167,   -256,
00619      -338,    -39,   -136,     -1,     -4,     -6,    -73,     -8,
00620       -15,     12,     23,      2,     16,     30,      3,     -5,
00621      -462,   -686,    493,   2575,    311,    -13,    -28,    -14,
00622      -404,     -5,    -19,     13,     20,     72,    107,    -77,
00623         8,     13,     -9,    -48,   1483,    144,    784,    928,
00624      1243,   -134,     -1,    -37,    -52,    -94,    -13,    -71,
00625        -6,    -84,     -8,    -44,   -112,    -10,    -59,    -70,
00626       -77,    275,   3522,   1056,  -1254,      0,     -4,   -757,
00627       -68,    -95,      1,     16,    -59,      4,    -17,   -227,
00628        -5,     21,    269,     80,   -125,    -40,   -264,    381,
00629      5027,      0,      0,     -4,     -8,  -1542,      0,     -2,
00630         0,      2,      0,      6,     38,     12,     81,   -117,
00631       138,    332,   2215,   2574,   1339,     -1,     -6,   -299,
00632      -404,   -109,     -2,    -18,    -44,    -21,    -52,   -348,
00633       -11,    -27,   -181,   -210,   3685,   2883,   -887,    866,
00634     -1639,   -828,   -507,    -48,    -45,   -164,   -648,    199,
00635       156,   -194,   -152,     46,    368,    288,    -88,     86,
00636      1396,   2146,   2235,    345,    942,   -118,   -281,   -305,
00637        -7,    -54,   -182,   -190,   -292,    -29,    -45,    -47,
00638       -80,   -123,   -128,    -19,     13,   4475,   3549,   -804,
00639      -655,      0,  -1222,   -768,    -39,    -26,     -3,     -2,
00640      -969,      0,    219,    174,      0,    179,    141,    -32,
00641      -724,    254,    242,   6049,   2462,    -32,     -3,     -3,
00642     -2233,   -370,     11,     10,     -3,    267,    -94,    -89,
00643       108,    -38,    -36,   -909,    626,  -1713,   6121,   4561,
00644     -1061,    -23,   -179,  -2287,  -1270,    -68,     65,   -233,
00645       640,   -174,    477,  -1704,     40,   -111,    396,    295,
00646      -350,   1391,   7985,    511,   -405,     -7,   -118,  -3892,
00647       -15,    -10,     29,    170,   -678,     10,    -43,   -249,
00648        -8,     34,    197,     12,   3144,   -529,    608,   2530,
00649      3878,   -603,    -17,    -22,   -390,   -918,    101,   -116,
00650        19,   -485,     81,    -93,   -744,    125,   -144,   -599,
00651      2589,   -689,   3045,   5603,   -404,   -409,    -29,   -566,
00652     -1916,    -10,    108,   -481,    128,   -885,    235,  -1041,
00653        63,    -17,     75,    138,   3107,    513,   1374,  -3594,
00654     -4922,   -589,    -16,   -115,   -788,  -1478,    -97,   -260,
00655       -43,    681,    112,    301,    933,    154,    413,  -1079,
00656      2468,   6010,   1107,   -390,   1961,   -372,  -2204,    -74,
00657        -9,   -234,   -905,   -166,   -406,     58,    143,     26,
00658      -295,   -719,   -132,     46,   4773,   2766,   2368,   4862,
00659     -4044,  -1390,   -467,   -342,  -1443,   -998,   -806,   -690,
00660      -399,  -1416,   -821,   -702,   1178,    682,    584,   1200,
00661      1665,  -1879,   1443,   1701,   8562,   -169,   -215,   -127,
00662      -176,  -4475,    190,   -146,    165,   -172,    195,   -149,
00663      -870,    982,   -754,   -889,   2716,   9011,  -1007,    755,
00664     -1785,   -450,  -4956,    -61,    -34,   -194,  -1493,    167,
00665       554,   -125,   -415,     46,    296,    982,   -109,     82,
00666     -2727,   7548,   1285,    938,   3420,   -453,  -3478,   -100,
00667       -53,   -714,   1256,    213,   -592,    156,   -432,    -73,
00668       569,  -1576,   -268,   -196,   3677,    882,   4050,   1202,
00669      2323,   -825,    -47,  -1001,    -88,   -329,   -198,   -909,
00670      -218,   -269,    -64,   -297,   -521,   -125,   -574,   -170,
00671      2046,   -753,    122,  10102,    603,   -255,    -34,      0,
00672     -6229,    -22,     94,    -15,      5,  -1261,    464,    -75,
00673       -75,     27,     -4,   -372,    449,  -1815,  10690,   3870,
00674      -527,    -12,   -201,  -6976,   -914,    -16,     49,   -293,
00675      1184,   -106,    428,  -2525,     14,    -58,    344,    124,
00676      -941,   2352,   5049,   3650,   2637,    -54,   -337,  -1556,
00677      -813,   -424,    135,    290,   -725,    209,   -524,  -1125,
00678       151,   -378,   -812,   -587,  -1879,    796,   3117,   9569,
00679      -404,   -215,    -38,   -593,  -5589,     -9,     91,    357,
00680      -151,   1097,   -464,  -1821,    -46,     19,     76,    236,
00681     -1715,   2043,  -2096,   9946,   4001,   -179,   -254,   -268,
00682     -6038,   -977,    213,   -219,    261,   1041,  -1240,   1272,
00683       418,   -498,    511,  -2429,  -5772,   -618,  -3921,    284,
00684     -3155,  -2033,    -23,   -938,     -4,   -607,   -218,  -1381,
00685      -148,    100,     10,     68,  -1111,   -119,   -755,     54,
00686       382,   4748,   8003,  -2064,   2198,     -8,  -1376,  -3909,
00687      -260,   -294,   -110,   -186,  -2319,     48,    598,   1008,
00688       -51,   -637,  -1073,    277,   -867,   3015,  11926,  -1675,
00689       947,    -45,   -555,  -8681,   -171,    -54,    159,    631,
00690     -2195,    -88,    308,   1219,     50,   -174,   -690,     96,
00691     -4933,   -432,   6757,   3771,   1352,  -1485,    -11,  -2786,
00692      -867,   -111,   -130,   2034,    178,   1135,     99,  -1555,
00693       407,     35,   -557,   -311,    152,   9726,   4231,  -1928,
00694      1490,     -1,  -5774,  -1092,   -226,   -135,    -90,    -39,
00695     -2511,     17,   1144,    498,    -13,   -884,   -384,    175,
00696      2512,    193,   9033,   5361,  -3148,   -385,     -2,  -4980,
00697     -1754,   -605,    -29,  -1385,   -106,   -822,    -63,  -2956,
00698       482,     37,   1735,   1030,   8464,   2844,     12,    549,
00699      2132,  -4373,   -493,      0,    -18,   -277,  -1469,     -6,
00700        -2,   -284,    -95,      0,  -1101,   -370,     -1,    -71,
00701      2141,  -2602,   7166,   9046,  -1350,   -279,   -413,  -3134,
00702     -4994,   -111,    340,   -936,   1138,  -1182,   1436,  -3957,
00703       176,   -214,    590,    745,   -244,    278,  13307,   1227,
00704      -161,     -3,     -4, -10808,    -91,     -1,      4,    198,
00705      -226,     18,    -20,   -997,     -2,      2,    131,     12,
00706     -1947,   8217,   6269,    917,  -2559,   -231,  -4121,  -2399,
00707       -51,   -399,    976,    745,  -3144,    108,   -460,   -350,
00708      -304,   1283,    979,    143,  -1810,   2061,  -2781,   6056,
00709     10058,   -200,   -259,   -472,  -2238,  -6174,    227,   -307,
00710       349,    669,   -761,   1028,   1111,  -1265,   1707,  -3717,
00711      7827,   9161,  -3409,   2473,  -1510,  -3739,  -5122,   -709,
00712      -373,   -139,  -4376,   1628,   1906,  -1181,  -1382,    514,
00713       721,    844,   -314,    228,  -1430,   8313,   9541,  -2955,
00714      1626,   -124,  -4218,  -5556,   -533,   -161,    725,    832,
00715     -4841,   -257,   1499,   1721,    142,   -825,   -947,    293,
00716      2819,  -4247,   5391,   8673,   2756,   -485,  -1101,  -1774,
00717     -4591,   -463,    730,   -927,   1397,  -1492,   2248,  -2854,
00718      -474,    714,   -907,  -1459,    141,  14552,    690,    257,
00719      -112,     -1, -12926,    -29,     -4,      0,   -125,     -5,
00720      -613,     -2,   -228,    -10,      0,     99,      4,      1,
00721     11938,  -1859,   1806,   -962,   -884,  -8699,   -211,   -199,
00722       -56,    -47,   1355,  -1316,    205,    701,   -109,    106,
00723       644,   -100,     97,    -51,   3728,   1982,   2264,   4584,
00724      3131,   -848,   -239,   -312,  -1282,   -598,   -451,   -515,
00725      -273,  -1043,   -554,   -633,   -712,   -378,   -432,   -876,
00726     -1181,    766,    720,  14303,   -216,    -85,    -35,    -31,
00727    -12486,     -2,     55,     51,    -33,   1031,   -668,   -628,
00728       -15,     10,      9,    189,  -4385,   4826,  10112,   1569,
00729      3388,  -1173,  -1421,  -6242,   -150,   -700,   1291,   2706,
00730     -2979,    420,   -462,   -969,    906,   -998,  -2091,   -324,
00731      -448,   1932,  15591,  -1842,    657,    -12,   -227, -14837,
00732      -207,    -26,     52,    427,  -1838,    -50,    217,   1753,
00733        18,    -77,   -626,     74,  -4141,   1844,   3962,   5517,
00734      6220,  -1046,   -207,   -958,  -1858,  -2361,    466,   1001,
00735      -446,   1394,   -621,  -1334,   1572,   -700,  -1504,  -2094,
00736       729,  -2299,  14755,   3657,   -952,    -32,   -322, -13288,
00737      -816,    -55,    102,   -656,   2071,   -162,    513,  -3294,
00738        42,   -133,    857,    212,  -1385,   5801,  13339,  -3137,
00739      1344,   -117,  -2054, -10861,   -600,   -110,    490,   1127,
00740     -4723,   -265,   1111,   2554,    113,   -476,  -1094,    257,
00741      4710,   9661,   1073,  -2467,   3274,  -1354,  -5697,    -70,
00742      -371,   -654,  -2777,   -308,   -633,    709,   1455,    161,
00743      -941,  -1930,   -214,    493,   1843,  -3624,  12422,   6898,
00744     -1559,   -207,   -802,  -9419,  -2904,   -148,    407,  -1397,
00745      2748,   -775,   1526,  -5230,    175,   -344,   1182,    656,
00746      1433,   2394,   2507,   1380,   8780,   -125,   -349,   -383,
00747      -116,  -4705,   -209,   -219,   -366,   -120,   -201,   -211,
00748      -768,  -1283,  -1343,   -740,  -1712,  12915,   5883,  -2197,
00749       991,   -179, -10181,  -2112,   -294,    -60,   1350,    615,
00750     -4638,   -229,   1732,    789,    103,   -781,   -356,    133,
00751     15072,   2158,  -1245,    910,   -496, -13865,   -284,    -94,
00752       -50,    -15,  -1986,   1145,    164,   -837,   -119,     69,
00753       456,     65,    -37,     27,   4655,   7319,   4916,    586,
00754     -3381,  -1322,  -3270,  -1475,    -20,   -697,  -2079,  -1396,
00755     -2196,   -166,   -261,   -175,    960,   1510,   1014,    120,
00756      1191,  -2140,   5120,  13498,  -1418,    -86,   -279,  -1600,
00757    -11121,   -122,    155,   -372,    669,   -981,   1763,  -4218,
00758       103,   -185,    443,   1168,  -1530,   -817,   8191,   9632,
00759     -1452,   -143,    -40,  -4095,  -5663,   -128,    -76,    765,
00760       408,    900,    480,  -4815,   -135,    -72,    726,    854,
00761     -3236,    607,   1696,  -2106,  11485,   -639,    -22,   -175,
00762      -270,  -8051,    119,    335,    -62,   -416,     78,    218,
00763      2268,   -425,  -1189,   1476,   3203,  -1903,   -837,   9679,
00764      7057,   -626,   -221,    -42,  -5718,  -3039,    372,    163,
00765       -97,  -1892,   1124,    494,  -1380,    819,    360,  -4169,
00766       213,   -655,  17015,    620,   -384,     -2,    -26, -17671,
00767       -23,     -9,      8,   -221,    681,     -8,     24,   -644,
00768         5,    -15,    399,     14,   5088,     35,  -3339,   3726,
00769      8488,  -1580,      0,   -680,   -847,  -4397,    -10,   1037,
00770         7,  -1157,     -8,    759,  -2636,    -18,   1730,  -1930,
00771      -988,   1454,  -2688,  15039,   2682,    -59,   -129,   -441,
00772    -13805,   -439,     87,   -162,    238,    907,  -1335,   2467,
00773       161,   -238,    440,  -2462,  -4865,  -2842,    -53,   5495,
00774      6523,  -1445,   -493,      0,  -1843,  -2597,   -844,    -16,
00775        -9,   1632,    953,     18,   1937,   1131,     21,  -2188,
00776      3076,  15069,  -2914,   1810,   -971,   -577, -13860,   -518,
00777      -200,    -57,  -2829,    547,   2680,   -339,  -1665,    322,
00778       182,    893,   -172,    107,   1311,   5355,  11054,   2299,
00779     -3654,   -105,  -1750,  -7458,   -322,   -814,   -428,   -885,
00780     -3613,   -184,   -751,  -1551,    292,   1194,   2465,    512,
00781      4035,   5619,   4618,   1815,   1912,   -994,  -1927,  -1301,
00782      -201,   -223,  -1384,  -1137,  -1583,   -447,   -622,   -511,
00783      -471,   -656,   -539,   -211,  -2131,   2754,  -4501,  12879,
00784      7432,   -277,   -463,  -1236, -10124,  -3371,    358,   -585,
00785       756,   1675,  -2165,   3538,    967,  -1249,   2042,  -5842,
00786      5618,   -515,   3219,  -4149,   4857,  -1926,    -16,   -632,
00787     -1050,  -1440,    176,  -1104,    101,   1422,   -130,    815,
00788     -1666,    152,   -954,   1230,   1838,  -1709,   1139,  16867,
00789       716,   -206,   -178,    -79, -17366,    -31,    191,   -127,
00790       118,  -1892,   1759,  -1173,    -80,     74,    -49,   -737,
00791      1978,  -3845,  10050,  11854,  -2492,   -238,   -902,  -6164,
00792     -8576,   -379,    464,  -1213,   2358,  -1431,   2782,  -7271,
00793       301,   -585,   1529,   1803,  -2600,  11246,  11289,  -3647,
00794      1463,   -412,  -7720,  -7778,   -812,   -130,   1784,   1791,
00795     -7749,   -578,   2504,   2513,    232,  -1004,  -1008,    325,
00796      3442,    907,   2725,   8970,   3638,   -723,    -50,   -453,
00797     -4911,   -808,   -190,   -572,   -150,  -1884,   -496,  -1492,
00798      -764,   -201,   -605,  -1992,   -126,  17498,   3481,  -2003,
00799      1090,      0, -18689,   -739,   -244,    -72,    135,     26,
00800     -3717,    -15,   2139,    425,      8,  -1165,   -231,    133,
00801     -1814,   1048,  -2164,   4070,  16272,   -200,    -67,   -285,
00802     -1011, -16160,    116,   -239,    138,    450,   -260,    537,
00803      1801,  -1041,   2149,  -4042,   9354,  12580,  -1883,    962,
00804      -617,  -5341,  -9660,   -216,    -56,    -23,  -7183,   1075,
00805      1446,   -549,   -738,    110,    352,    474,    -71,     36,
00806      1708,   4199,   7387,   6335,   1003,   -178,  -1076,  -3330,
00807     -2449,    -61,   -437,   -770,  -1893,   -660,  -1623,  -2856,
00808      -104,   -257,   -452,   -388,  -2624,   5623,  17310,  -2353,
00809       592,   -420,  -1930, -18288,   -338,    -21,    900,   2772,
00810     -5941,   -376,    807,   2486,     94,   -203,   -625,     85,
00811      1211,   -850,   1193,  -1926,  15992,    -89,    -44,    -86,
00812      -226, -15609,     62,    -88,     61,    142,   -100,    140,
00813     -1182,    830,  -1165,   1880,   3983,  -2054,  11506,    -19,
00814      3622,   -968,   -257,  -8080,      0,   -801,    499,  -2797,
00815      1442,      4,     -2,     13,   -880,    454,  -2544,      4,
00816      -786,  -1354,  16092,   7246,  -1665,    -37,   -111, -15805,
00817     -3205,   -169,    -65,    772,   1330,    348,    599,  -7117,
00818       -80,   -137,   1636,    736,  -4316,   -511,   6674,  11665,
00819      4633,  -1137,    -15,  -2719,  -8305,  -1310,   -134,   1758,
00820       208,   3073,    364,  -4752,   1220,    144,  -1887,  -3299,
00821      7912,   4557,   1937,   1885,   7037,  -3821,  -1267,   -229,
00822      -216,  -3022,  -2200,   -935,   -538,   -910,   -524,   -222,
00823     -3398,  -1957,   -832,   -809,   3434,   2967,   5867,   8196,
00824      8766,   -720,   -537,  -2101,  -4100,  -4690,   -622,  -1230,
00825     -1062,  -1718,  -1484,  -2935,  -1837,  -1588,  -3139,  -4385,
00826      5881,   9176,   8119,   3934,   3355,  -2111,  -5139,  -4023,
00827      -944,   -687,  -3294,  -2914,  -4547,  -1412,  -2203,  -1949,
00828     -1204,  -1879,  -1662,   -805
00829 };
00830 
00831 static const int16_t adaptive_cb_gain170[170 * 20] = {
00832         0,      0,      0,      0,      0,      0,      0,      0,
00833         0,      0,      0,      0,      0,      0,      0,      0,
00834         0,      0,      0,      0,    776,    212,    715,    670,
00835       809,    -36,     -2,    -31,    -27,    -39,    -10,    -33,
00836        -9,    -31,     -8,    -29,    -38,    -10,    -35,    -33,
00837      1296,   1316,   -168,   -320,   -815,   -102,   -105,     -1,
00838        -6,    -40,   -104,     13,     13,     25,     25,     -3,
00839        64,     65,     -8,    -15,   -589,    680,   2478,    308,
00840      -596,    -21,    -28,   -375,     -5,    -21,     24,     89,
00841      -102,     11,    -12,    -46,    -21,     24,     90,     11,
00842      -735,   -487,     -5,   2948,    468,    -33,    -14,      0,
00843      -530,    -13,    -21,      0,      0,    132,     87,      0,
00844        21,     13,      0,    -84,   1042,   1730,   1068,    333,
00845       626,    -66,   -182,    -69,     -6,    -23,   -110,    -67,
00846      -112,    -21,    -35,    -21,    -39,    -66,    -40,    -12,
00847       486,   -769,   4074,   2825,  -1107,    -14,    -36,  -1013,
00848      -487,    -74,     22,   -120,    191,    -83,    132,   -702,
00849        32,    -52,    275,    191,   1521,   -767,   -124,   4320,
00850      1026,   -141,    -35,      0,  -1139,    -64,     71,     11,
00851        -5,   -401,    202,     32,    -95,     48,      7,   -270,
00852      2425,   1267,   3439,    -91,  -1166,   -359,    -98,   -722,
00853         0,    -83,   -187,   -509,   -266,     13,      7,     19,
00854       172,     90,    244,     -6,  -1251,    975,    173,   4039,
00855      2005,    -95,    -58,     -1,   -996,   -245,     74,     13,
00856       -10,    308,   -240,    -42,    153,   -119,    -21,   -494,
00857      1820,    632,   1322,   2062,   1031,   -202,    -24,   -106,
00858      -259,    -64,    -70,   -146,    -51,   -229,    -79,   -166,
00859      -114,    -39,    -83,   -129,   -447,   4904,    244,   -315,
00860     -2038,    -12,  -1467,     -3,     -6,   -253,    134,      6,
00861       -73,     -8,     94,      4,    -55,    610,     30,    -39,
00862      -208,  -1102,    463,   -448,   5653,     -2,    -74,    -13,
00863       -12,  -1950,    -14,      5,     31,     -5,    -30,     12,
00864        71,    380,   -159,    154,   4739,   2600,  -1864,    856,
00865     -1554,  -1371,   -412,   -212,    -44,   -147,   -752,    539,
00866       295,   -247,   -135,     97,    449,    246,   -176,     81,
00867      1894,   3533,     35,    -26,   2145,   -219,   -762,      0,
00868         0,   -280,   -408,     -4,     -7,      3,      5,      0,
00869      -248,   -462,     -4,      3,  -2699,   1841,   4072,   2443,
00870      1582,   -444,   -207,  -1012,   -364,   -152,    303,    670,
00871      -457,    402,   -274,   -607,    260,   -177,   -393,   -236,
00872      -844,   3358,   6106,  -1059,   -537,    -43,   -688,  -2275,
00873       -68,    -17,    173,    314,  -1251,    -54,    217,    395,
00874       -27,    110,    200,    -34,   1251,   1016,   3020,   2210,
00875      1445,    -95,    -63,   -556,   -298,   -127,    -77,   -230,
00876      -187,   -168,   -137,   -407,   -110,    -89,   -266,   -194,
00877      2099,   2277,   4038,   3533,  -2870,   -269,   -316,   -995,
00878      -762,   -503,   -291,   -517,   -561,   -452,   -491,   -871,
00879       367,    399,    707,    619,    400,  -1114,   8516,   2422,
00880     -1117,     -9,    -75,  -4426,   -358,    -76,     27,   -208,
00881       579,    -59,    164,  -1259,     27,    -75,    580,    165,
00882     -4398,  -2011,   3912,  -2407,   2258,  -1180,   -247,   -934,
00883      -353,   -311,   -540,   1050,    480,   -646,   -295,    575,
00884       606,    277,   -539,    331,   1767,  -1447,   4240,   6160,
00885      -757,   -190,   -127,  -1097,  -2316,    -35,    156,   -457,
00886       374,   -664,    544,  -1594,     81,    -66,    195,    284,
00887      1594,  -1463,   1035,   6938,   1920,   -155,   -130,    -65,
00888     -2938,   -225,    142,   -100,     92,   -675,    619,   -438,
00889      -186,    171,   -121,   -813,   -562,   4716,   4085,   -591,
00890      2421,    -19,  -1357,  -1018,    -21,   -357,    162,    140,
00891     -1175,    -20,    170,    147,     83,   -696,   -603,     87,
00892      1552,   8778,   -935,    354,  -1424,   -147,  -4703,    -53,
00893        -7,   -123,   -831,     88,    501,    -33,   -189,     20,
00894       134,    763,    -81,     30,   4831,  -4431,     41,  -1479,
00895     -2976,  -1424,  -1198,      0,   -133,   -540,   1306,    -12,
00896        11,    436,   -400,      3,    877,   -804,      7,   -268,
00897      2090,   1192,   1006,   1645,   4853,   -266,    -86,    -61,
00898      -165,  -1437,   -152,   -128,    -73,   -210,   -119,   -101,
00899      -619,   -353,   -298,   -487,   2386,   5712,   1426,    -94,
00900      1350,   -347,  -1991,   -124,      0,   -111,   -832,   -207,
00901      -497,     13,     32,      8,   -196,   -470,   -117,      7,
00902     -1349,   1091,   1659,   8891,    313,   -111,    -72,   -168,
00903     -4825,     -5,     89,    136,   -110,    732,   -592,   -900,
00904        25,    -20,    -31,   -170,   9980,    916,   -381,   -808,
00905        88,  -6080,    -51,     -8,    -39,      0,   -558,    232,
00906        21,    492,     45,    -18,    -53,     -4,      2,      4,
00907      2338,  -1031,   -248,   3928,   6484,   -333,    -64,     -3,
00908      -942,  -2566,    147,     35,    -15,   -560,    247,     59,
00909      -925,    408,     98,  -1555,   6166,  -1240,   -337,   3672,
00910     -1277,  -2320,    -93,     -6,   -823,    -99,    466,    126,
00911       -25,  -1382,    278,     75,    480,    -96,    -26,    286,
00912      4377,   -132,  -2588,   1701,   4865,  -1169,     -1,   -409,
00913      -176,  -1444,     35,    691,    -20,   -454,     13,    268,
00914     -1299,     39,    768,   -505,   2594,   3295,   3944,   1481,
00915       682,   -410,   -662,   -949,   -133,    -28,   -521,   -624,
00916      -793,   -234,   -297,   -356,   -108,   -137,   -164,    -61,
00917      4151,    624,    815,   4485,   2229,  -1052,    -23,    -40,
00918     -1228,   -303,   -158,   -206,    -31,  -1136,   -170,   -223,
00919      -565,    -84,   -111,   -610,  -3575,   -361,   4924,   2791,
00920      4698,   -780,     -7,  -1480,   -475,  -1347,    -78,   1074,
00921       108,    609,     61,   -839,   1025,    103,  -1412,   -800,
00922     -2518,   3791,   8623,    315,   2465,   -387,   -877,  -4538,
00923        -6,   -370,    582,   1325,  -1995,     48,    -73,   -166,
00924       378,   -570,  -1297,    -47,   -691,   2989,   9957,   -421,
00925     -1142,    -29,   -545,  -6051,    -10,    -79,    126,    420,
00926     -1817,    -17,     76,    256,    -48,    208,    694,    -29,
00927     -1918,    104,  -3190,  -3410,  -4440,   -224,      0,   -621,
00928      -709,  -1203,     12,   -373,     20,   -399,     21,   -664,
00929      -519,     28,   -864,   -924,  -3359,  -1668,   1854,   6939,
00930      1430,   -688,   -169,   -209,  -2939,   -124,   -341,    380,
00931       188,   1422,    706,   -785,    293,    145,   -161,   -606,
00932        42,   9706,   3164,   -952,    907,      0,  -5750,   -611,
00933       -55,    -50,    -25,     -8,  -1874,      2,    564,    183,
00934        -2,   -537,   -175,     52,   1607,    785,   2862,   4327,
00935      3307,   -157,    -37,   -500,  -1143,   -667,    -77,   -280,
00936      -137,   -424,   -207,   -756,   -324,   -158,   -577,   -873,
00937      6801,   3416,   2227,   1682,  -3217,  -2823,   -712,   -302,
00938      -172,   -631,  -1418,   -924,   -464,   -698,   -350,   -228,
00939      1335,    670,    437,    330,   3459,   3898,    364,   7841,
00940     -2640,   -730,   -927,     -8,  -3753,   -425,   -823,    -76,
00941       -86,  -1655,  -1865,   -174,    557,    628,     58,   1263,
00942     -5902,  -3458,  -2465,  -1886,   4334,  -2126,   -730,   -371,
00943      -217,  -1146,  -1245,   -888,   -520,   -679,   -398,   -283,
00944      1561,    915,    652,    499,  -3710,   1133,   7849,   3443,
00945      -215,   -840,    -78,  -3760,   -723,     -2,    256,   1777,
00946      -543,    779,   -238,  -1649,    -48,     14,    103,     45,
00947      4132,   2828,      2,  -4212,  -4116,  -1042,   -488,      0,
00948     -1083,  -1034,   -713,      0,      0,   1062,    727,      0,
00949      1038,    710,      0,  -1058,   5875,   8496,  -1796,   1376,
00950     -1786,  -2107,  -4406,   -197,   -115,   -194,  -3047,    644,
00951       931,   -493,   -713,    150,    640,    926,   -195,    150,
00952      3143,   3483,   3546,   -793,   4489,   -603,   -740,   -767,
00953       -38,  -1230,   -668,   -680,   -754,    152,    168,    171,
00954      -861,   -954,   -971,    217,   2845,   7965,   3695,  -5432,
00955      3978,   -494,  -3873,   -833,  -1801,   -966,  -1383,   -641,
00956     -1796,    943,   2641,   1225,   -691,  -1934,   -897,   1319,
00957      1538,    150,   7139,   2049,   3097,   -144,     -1,  -3110,
00958      -256,   -585,    -14,   -670,    -65,   -192,    -18,   -892,
00959      -290,    -28,  -1349,   -387,    618,   7520,   4729,   -238,
00960     -3373,    -23,  -3452,  -1365,     -3,   -694,   -283,   -178,
00961     -2170,      8,    109,     68,    127,   1548,    973,    -49,
00962      2965,  -3013,   7912,   7076,  -1997,   -536,   -554,  -3821,
00963     -3056,   -243,    545,  -1431,   1455,  -1280,   1301,  -3417,
00964       361,   -367,    964,    862,   2443,   -929,  -1113,   9677,
00965      4138,   -364,    -52,    -75,  -5716,  -1045,    138,    166,
00966       -63,  -1443,    549,    657,   -617,    234,    281,  -2444,
00967      1966,   3309,  10085,  -3399,   2105,   -236,   -668,  -6207,
00968      -705,   -270,   -397,  -1210,  -2037,    408,    686,   2092,
00969      -252,   -425,  -1295,    436,   -112,  -1368,   8868,   4822,
00970      2048,      0,   -114,  -4800,  -1419,   -256,     -9,     61,
00971       740,     33,    402,  -2610,     14,    171,  -1108,   -602,
00972     -2597,    438,  -1839,   6229,   7266,   -411,    -11,   -206,
00973     -2368,  -3223,     69,   -291,     49,    987,   -166,    699,
00974      1152,   -194,    816,  -2763,   3454,    553,   9127,   4946,
00975     -5596,   -728,    -18,  -5084,  -1493,  -1911,   -116,  -1924,
00976      -308,  -1042,   -166,  -2755,   1179,    188,   3117,   1689,
00977      -532,   -663,  12262,   2495,  -1004,    -17,    -26,  -9177,
00978      -380,    -61,    -21,    398,    496,     81,    101,  -1867,
00979       -32,    -40,    751,    152,  -2100,   1317,  -1509,  11425,
00980      2997,   -269,   -105,   -139,  -7967,   -548,    168,   -193,
00981       121,   1464,   -918,   1052,    384,   -240,    276,  -2090,
00982      1193,  -2697,  11259,   5373,   -763,    -86,   -444,  -7737,
00983     -1762,    -35,    196,   -819,   1853,   -391,    884,  -3692,
00984        55,   -125,    525,    250,   2405,   -471,  11079,    203,
00985       782,   -353,    -13,  -7491,     -2,    -37,     69,  -1626,
00986       318,    -29,      5,   -137,   -114,     22,   -529,     -9,
00987     -1871,   5685,  11290,  -2662,   1353,   -213,  -1972,  -7780,
00988      -432,   -111,    649,   1289,  -3917,   -304,    923,   1834,
00989       154,   -469,   -932,    220,  -3768,   5927,  -3093,   5041,
00990      5212,   -866,  -2144,   -584,  -1551,  -1658,   1363,   -711,
00991      1119,   1159,  -1824,    951,   1198,  -1885,    984,  -1603,
00992     -2546,   9502,   5969,  -2440,   1928,   -395,  -5511,  -2175,
00993      -363,   -226,   1477,    927,  -3462,   -379,   1415,    889,
00994       299,  -1118,   -702,    287,  -4963,   3568,   4592,   5508,
00995      3451,  -1503,   -777,  -1287,  -1851,   -727,   1080,   1391,
00996     -1000,   1668,  -1199,  -1543,   1045,   -751,   -967,  -1160,
00997      1745,  -2586,   3983,  10899,  -1551,   -186,   -408,   -968,
00998     -7250,   -146,    275,   -424,    628,  -1161,   1720,  -2649,
00999       165,   -244,    377,   1032,    867,   -456,   -727,   3369,
01000     11822,    -45,    -12,    -32,   -692,  -8531,     24,     38,
01001       -20,   -178,     93,    149,   -625,    329,    525,  -2431,
01002      7535,   2422,   1926,   1405,   1599,  -3466,   -358,   -226,
01003      -120,   -156,  -1114,   -886,   -284,   -646,   -207,   -165,
01004      -735,   -236,   -188,   -137,   1041,   -735,   -142,  13209,
01005      1515,    -66,    -33,     -1, -10649,   -140,     46,      9,
01006        -6,   -839,    593,    114,    -96,     68,     13,  -1222,
01007      7950,   6745,  -1444,  -1008,   2721,  -3857,  -2777,   -127,
01008       -62,   -452,  -3273,    700,    594,    489,    415,    -88,
01009     -1320,  -1120,    239,    167,  -4754,  -1379,   4522,   -578,
01010     -5733,  -1379,   -116,  -1248,    -20,  -2006,   -400,   1312,
01011       380,   -167,    -48,    159,  -1663,   -482,   1582,   -202,
01012      3220,   5978,   5923,   2430,  -2689,   -633,  -2181,  -2141,
01013      -360,   -441,  -1175,  -1164,  -2161,   -477,   -886,   -878,
01014       528,    981,    972,    398,    377,   1312,  13978,  -1470,
01015       677,     -8,   -105, -11925,   -132,    -28,    -30,   -321,
01016     -1119,     33,    117,   1254,    -15,    -54,   -577,     60,
01017     -3435,   6770,    314,   -885,   5686,   -720,  -2797,     -6,
01018       -47,  -1973,   1419,     65,   -129,   -185,    366,     16,
01019      1192,  -2349,   -109,    307,   3171,   8774,  -2260,   2679,
01020      3069,   -613,  -4699,   -312,   -438,   -575,  -1698,    437,
01021      1210,   -518,  -1435,    369,   -594,  -1643,    423,   -501,
01022      5557,   1509,   5407,   -125,  -7386,  -1884,   -139,  -1784,
01023         0,  -3330,   -511,  -1834,   -498,     42,     11,     41,
01024      2505,    680,   2438,    -56,  -2838,   2595,  13228,    271,
01025      1793,   -491,   -411, -10680,     -4,   -196,    449,   2291,
01026     -2095,     47,    -42,   -219,    310,   -284,  -1447,    -29,
01027       664,   -278,  14966,    951,   -711,    -26,     -4, -13672,
01028       -55,    -30,     11,   -606,    253,    -38,     16,   -869,
01029        28,    -12,    650,     41,    808,   1770,   8658,   5863,
01030     -1486,    -39,   -191,  -4576,  -2098,   -134,    -87,   -427,
01031      -935,   -289,   -633,  -3098,     73,    160,    785,    531,
01032      3063,   1539,   2000,   -542,   9576,   -572,   -144,   -244,
01033       -17,  -5597,   -287,   -374,   -188,    101,     51,     66,
01034     -1790,   -900,  -1169,    317,    514,  14083,   -323,    896,
01035      -891,    -16, -12106,     -6,    -49,    -48,   -442,     10,
01036       277,    -28,   -770,     17,     27,    766,    -17,     48,
01037       892,    158,   5237,  11057,  -1603,    -48,     -1,  -1674,
01038     -7462,   -156,     -8,   -285,    -50,   -602,   -106,  -3534,
01039        87,     15,    512,   1082,  -1612,   2564,  -4296,  12526,
01040      5710,   -158,   -401,  -1126,  -9576,  -1990,    252,   -422,
01041       672,   1232,  -1960,   3284,    561,   -893,   1497,  -4365,
01042      4889,  -6878,    612,   6109,   4753,  -1459,  -2887,    -22,
01043     -2277,  -1379,   2052,   -182,    257,  -1823,   2564,   -228,
01044     -1418,   1995,   -177,  -1772,   3053,   -506,   2403,   9625,
01045      1322,   -569,    -15,   -352,  -5655,   -106,     94,   -448,
01046        74,  -1794,    297,  -1412,   -246,     40,   -194,   -777,
01047      -754,  12904,   4480,  -2113,   1471,    -34, -10163,  -1225,
01048      -272,   -132,    594,    206,  -3529,    -97,   1664,    577,
01049        67,  -1159,   -402,    189,   4255,   1476,   5055,   2393,
01050      2912,  -1105,   -132,  -1559,   -349,   -517,   -383,  -1313,
01051      -455,   -621,   -215,   -738,   -756,   -262,   -898,   -425,
01052     -1371,    535,   1417,  14604,   -997,   -114,    -17,   -122,
01053    -13017,    -60,     44,    118,    -46,   1222,   -477,  -1263,
01054       -83,     32,     86,    888,   5368,  -1744,   4083,  -1236,
01055      3753,  -1758,   -185,  -1017,    -93,   -860,    571,  -1338,
01056       434,    405,   -131,    308,  -1229,    399,   -935,    283,
01057      1588,  -3097,  14415,   3699,  -1171,   -154,   -585, -12683,
01058      -835,    -83,    300,  -1397,   2725,   -358,    699,  -3255,
01059       113,   -221,   1030,    264,    212,   7989,   9471,  -3344,
01060      2009,     -2,  -3895,  -5475,   -682,   -246,   -103,   -123,
01061     -4618,     43,   1630,   1933,    -26,   -979,  -1161,    410,
01062       856,   2294,   -627,   6930,   6929,    -44,   -321,    -24,
01063     -2931,  -2930,   -119,     32,     87,   -362,   -970,    265,
01064      -362,   -970,    265,  -2931,   2357,  -4187,   7162,   7683,
01065      3371,   -339,  -1070,  -3131,  -3603,   -693,    602,  -1030,
01066      1830,  -1105,   1963,  -3359,   -485,    861,  -1474,  -1581,
01067       350,   4585,  14053,  -3819,   1218,     -7,  -1283, -12054,
01068      -890,    -90,    -97,   -300,  -3933,     81,   1068,   3275,
01069       -26,   -341,  -1045,    284,  -3248,   3531,    475,   2137,
01070     11711,   -644,   -761,    -13,   -278,  -8372,    700,     94,
01071      -102,    423,   -460,    -62,   2322,  -2524,   -340,  -1528,
01072     -3017,   3852,   1725,   8440,   5257,   -555,   -905,   -181,
01073     -4348,  -1686,    709,    317,   -405,   1554,  -1984,   -889,
01074       968,  -1236,   -553,  -2708,   -909,   3196,  15512,  -2528,
01075      1066,    -50,   -623, -14686,   -390,    -69,    177,    861,
01076     -3026,   -140,    493,   2393,     59,   -208,  -1009,    164,
01077       959,  -3370,   9617,   9545,  -1761,    -56,   -693,  -5645,
01078     -5561,   -189,    197,   -563,   1978,   -558,   1963,  -5603,
01079       103,   -362,   1034,   1026,   7575,  11796,  -4845,   3252,
01080     -1703,  -3502,  -8493,  -1433,   -645,   -177,  -5454,   2240,
01081      3488,  -1503,  -2341,    961,    787,   1226,   -503,    338,
01082      6409,   1722,   1764,  -4191,   6015,  -2507,   -181,   -189,
01083     -1072,  -2208,   -673,   -690,   -185,   1639,    440,    451,
01084     -2353,   -632,   -647,   1538,  -2420,  12161,   5038,   1286,
01085     -2098,   -357,  -9027,  -1549,   -100,   -268,   1796,    744,
01086     -3740,    190,   -954,   -395,   -310,   1557,    645,    164,
01087     -2232,  -1341,   7246,   9470,  -1977,   -304,   -109,  -3204,
01088     -5474,   -238,   -182,    987,    593,   1290,    775,  -4188,
01089      -269,   -161,    874,   1143,   1030,   7034,   4231,   1551,
01090      3077,    -64,  -3019,  -1093,   -146,   -577,   -442,   -266,
01091     -1816,    -97,   -666,   -400,   -193,  -1321,   -794,   -291,
01092      5121,  11835,   -477,  -1749,   2298,  -1601,  -8549,    -13,
01093      -186,   -322,  -3699,    149,    344,    546,   1264,    -50,
01094      -718,  -1660,     66,    245,  -3328,   3827,   5921,   9976,
01095     -1045,   -676,   -894,  -2140,  -6075,    -66,    777,   1203,
01096     -1383,   2027,  -2330,  -3605,   -212,    244,    377,    636,
01097      3813,   5718,  -4666,  -3412,   5674,   -887,  -1995,  -1329,
01098      -710,  -1965,  -1331,   1086,   1628,    794,   1191,   -972,
01099     -1320,  -1980,   1616,   1181,   1348,  -3672,  13154,   6938,
01100     -1690,   -110,   -823, -10561,  -2938,   -174,    302,  -1082,
01101      2948,   -570,   1555,  -5570,    139,   -379,   1357,    716,
01102      2151,  -3586,   6949,  12131,  -1224,   -282,   -785,  -2947,
01103     -8982,    -91,    470,   -912,   1521,  -1592,   2655,  -5145,
01104       160,   -268,    519,    906,  -2889,   9647,  10276,  -2728,
01105       995,   -509,  -5680,  -6445,   -454,    -60,   1701,   1812,
01106     -6051,   -481,   1606,   1711,    175,   -586,   -624,    165,
01107      6177,   2184,    555,   1985,   6589,  -2329,   -291,    -18,
01108      -240,  -2650,   -823,   -209,    -74,   -748,   -264,    -67,
01109     -2484,   -878,   -223,   -798,   -492,    391,  17166,   -681,
01110       240,    -14,     -9, -17987,    -28,     -3,     11,    515,
01111      -410,    -20,     16,    713,      7,     -5,   -252,     10,
01112     12628,   5448,  -2630,   3011,  -2695,  -9733,  -1811,   -422,
01113      -553,   -443,  -4199,   2027,    874,  -2321,  -1001,    483,
01114      2077,    896,   -432,    495,  -3628,   -534,   3447,   7002,
01115      6751,   -803,    -17,   -725,  -2992,  -2782,   -118,    763,
01116       112,   1550,    228,  -1473,   1495,    220,  -1420,  -2885,
01117     -5239,   5901,   8107,   3650,   4846,  -1675,  -2125,  -4012,
01118      -813,  -1433,   1887,   2592,  -2920,   1167,  -1315,  -1806,
01119      1550,  -1745,  -2398,  -1080,   6157,   6678,   4099,  -1074,
01120      2348,  -2314,  -2722,  -1025,    -70,   -336,  -2509,  -1540,
01121     -1670,    403,    437,    268,   -882,   -957,   -587,    153,
01122      1079,  16099,    242,   -881,   1690,    -71, -15820,     -3,
01123       -47,   -174,  -1060,    -16,   -238,     58,    865,     13,
01124      -111,  -1661,    -25,     90,   -278,    227,  -1039,   1636,
01125     16945,     -4,     -3,    -65,   -163, -17526,      3,    -17,
01126        14,     27,    -22,    103,    287,   -234,   1074,  -1693,
01127     15778,  -1454,    574,   -603,   -107, -15195,   -129,    -20,
01128       -22,      0,   1400,   -553,     51,    581,    -53,     21,
01129       103,     -9,      3,     -3,   2406,   -836,  13224,   7993,
01130     -4266,   -353,    -42, -10673,  -3899,  -1111,    122,  -1942,
01131       674,  -1174,    407,  -6451,    626,   -217,   3443,   2081,
01132      3184,  14368,  -3336,   2255,  -1801,   -619, -12600,   -679,
01133      -310,   -198,  -2793,    648,   2926,   -438,  -1977,    459,
01134       350,   1580,   -366,    247,  -1698,  17076,   2504,   -539,
01135      -646,   -176, -17798,   -382,    -17,    -25,   1770,    259,
01136     -2610,    -55,    561,     82,    -67,    673,     98,    -21,
01137      2375,   -797,  -2696,  14483,   5383,   -344,    -38,   -443,
01138    -12803,  -1769,    115,    391,   -131,  -2100,    705,   2384,
01139      -780,    262,    886,  -4759,  -2691,   2554,  -4520,   9573,
01140     10655,   -442,   -398,  -1247,  -5594,  -6930,    419,   -742,
01141       704,   1572,  -1492,   2641,   1750,  -1661,   2939,  -6226,
01142     -4332,  -4399,  -1657,   4880,   7375,  -1145,  -1181,   -167,
01143     -1453,  -3319,  -1163,   -438,   -444,   1290,   1310,    493,
01144      1950,   1980,    745,  -2196,  -3498,   7405,   9955,   2693,
01145     -2971,   -746,  -3347,  -6049,   -442,   -538,   1581,   2125,
01146     -4499,    575,  -1217,  -1636,   -634,   1342,   1805,    488,
01147      6717,  -3792,   7739,   2798,   3489,  -2754,   -877,  -3655,
01148      -477,   -743,   1554,  -3173,   1791,  -1147,    647,  -1321,
01149     -1430,    807,  -1648,   -595,   5263,   9770,   3463,   1069,
01150     -3971,  -1690,  -5826,   -732,    -69,   -962,  -3138,  -1112,
01151     -2065,   -343,   -637,   -226,   1275,   2368,    839,    259,
01152      1243,  -2634,  16772,   1871,    332,    -94,   -423, -17169,
01153      -213,     -6,    199,  -1273,   2696,   -142,    300,  -1915,
01154       -25,     53,   -339,    -37,   2691,   2836,   3105,   5711,
01155      4817,   -442,   -491,   -588,  -1991,  -1416,   -465,   -510,
01156      -537,   -938,   -988,  -1082,   -791,   -834,   -913,  -1679,
01157      4366,   2944,   7210,   3627,   1161,  -1163,   -529,  -3172,
01158      -803,    -82,   -784,  -1921,  -1295,   -966,   -651,  -1596,
01159      -309,   -208,   -511,   -257,  13888,   3951,   -671,  -2305,
01160      3354, -11773,   -953,    -27,   -324,   -686,  -3349,    569,
01161       161,   1954,    556,    -94,  -2843,   -809,    137,    472,
01162      7053,   5847,   2929,   8378,  -4794,  -3036,  -2086,   -523,
01163     -4284,  -1403,  -2517,  -1261,  -1045,  -3607,  -2990,  -1498,
01164      2064,   1711,    857,   2451,  -2191,  12838,   9182,  -3915,
01165      1617,   -293, -10059,  -5146,   -935,   -159,   1717,   1228,
01166     -7195,   -523,   3068,   2194,    216,  -1267,   -906,    386,
01167     -4881,  13114,   5767,   -435,   4155,  -1454, -10498,  -2030,
01168       -11,  -1054,   3907,   1718,  -4616,   -129,    348,    153,
01169      1238,  -3326,  -1462,    110,   7843,  -1250,    210,   7106,
01170     -5203,  -3754,    -95,     -2,  -3082,  -1652,    598,   -100,
01171        16,  -3402,    542,    -91,   2491,   -397,     66,   2257,
01172     -2463,   8168,  14551,  -3908,   1828,   -370,  -4072, -12923,
01173      -932,   -204,   1228,   2188,  -7254,   -587,   1948,   3471,
01174       274,   -911,  -1623,    436,  -1579,    347,   -272,  -2735,
01175     16031,   -152,     -7,     -4,   -456, -15686,     33,    -26,
01176         5,   -263,     58,    -45,   1545,   -340,    266,   2676,
01177     -6327,   1328,   5093,  -5079,   7617,  -2443,   -107,  -1583,
01178     -1574,  -3541,    513,   1967,   -413,  -1961,    411,   1578,
01179      2941,   -617,  -2367,   2361,   3286,  -4509,  11306,  11025,
01180     -2623,   -659,  -1241,  -7802,  -7419,   -420,    904,  -2267,
01181      3112,  -2211,   3034,  -7608,    526,   -722,   1810,   1765,
01182      5567,  17853,  -3754,   1166,   -519,  -1892, -19455,   -860,
01183       -83,    -16,  -6067,   1275,   4090,   -396,  -1271,    267,
01184       176,    566,   -119,     37,  -2136,   -424,  15292,   5108,
01185     -1648,   -278,    -10, -14273,  -1593,   -165,    -55,   1993,
01186       396,    666,    132,  -4768,   -214,    -42,   1538,    514,
01187      2267,  -3297,   2549,  16563,   -791,   -313,   -663,   -396,
01188    -16745,    -38,    456,   -352,    513,  -2291,   3333,  -2576,
01189       109,   -159,    123,    799,   3655,   1899,  -3364,   6279,
01190     12510,   -815,   -220,   -690,  -2406,  -9552,   -423,    750,
01191       390,  -1400,   -728,   1289,  -2791,  -1450,   2568,  -4794,
01192      8052,   2285,  -6193,   5138,   6003,  -3957,   -318,  -2341,
01193     -1611,  -2199,  -1123,   3044,    864,  -2525,   -716,   1942,
01194     -2950,   -837,   2269,  -1882,   -386,  -2291,   7679,  15387,
01195     -2723,     -9,   -320,  -3599, -14452,   -452,    -54,    181,
01196      1074,    362,   2152,  -7212,    -64,   -380,   1276,   2557,
01197      2777,  -1173,   3984,  13079,   2508,   -470,    -84,   -969,
01198    -10440,   -384,    198,   -675,    285,  -2217,    936,  -3180,
01199      -425,    179,   -610,  -2002,  -1879,   1771,  -2684,  16705,
01200      1833,   -215,   -191,   -439, -17032,   -205,    203,   -308,
01201       290,   1916,  -1805,   2736,    210,   -198,    300,  -1869,
01202      1052,   4495,  15519,   1467,  -4032,    -67,  -1233, -14700,
01203      -131,   -992,   -288,   -997,  -4257,    -94,   -402,  -1389,
01204       259,   1106,   3819,    361,   3010,   2544,   6969,   7559,
01205      1996,   -553,   -395,  -2964,  -3487,   -243,   -467,  -1280,
01206     -1082,  -1388,  -1174,  -3215,   -366,   -310,   -849,   -921,
01207     -5209,  -1867,   8713,  10351,   1549,  -1656,   -212,  -4634,
01208     -6540,   -146,   -593,   2770,    993,   3291,   1180,  -5505,
01209       492,    176,   -824,   -979,  -4314,   8513,    913,   7547,
01210     -2723,  -1135,  -4423,    -50,  -3476,   -452,   2241,    240,
01211      -474,   1987,  -3921,   -420,   -717,   1415,    151,   1254,
01212     12929,  -1219,   2448,   1757,   6303, -10204,    -90,   -365,
01213      -188,  -2425,    962,  -1932,    182,  -1386,    130,   -262,
01214     -4974,    469,   -941,   -676,   6465,   4132,   3167,   3160,
01215      5697,  -2551,  -1042,   -612,   -609,  -1981,  -1630,  -1249,
01216      -798,  -1247,   -797,   -611,  -2248,  -1437,  -1101,  -1099,
01217     -3636,   4859,  18914,  -1335,    810,   -807,  -1441, -21836,
01218      -108,    -40,   1078,   4198,  -5609,   -296,    396,   1541,
01219       179,   -240,   -936,     66,   8844,   7864,    654,  -4063,
01220     -5680,  -4774,  -3774,    -26,  -1007,  -1969,  -4245,   -353,
01221      -314,   2193,   1950,    162,   3066,   2726,    226,  -1408,
01222      1859,   2634,   9228,    996,   9464,   -211,   -423,  -5197,
01223       -60,  -5467,   -299,  -1047,  -1483,   -113,   -160,   -561,
01224     -1074,  -1521,  -5330,   -575,   2949,  12260,  10290,   -497,
01225     -3943,   -530,  -9174,  -6463,    -15,   -949,  -2206,  -1852,
01226     -7700,     89,    372,    312,    709,   2950,   2476,   -119,
01227     -2903,   1552,  14867,   9970,   -496,   -514,   -147, -13491,
01228     -6068,    -15,    275,   2634,  -1408,   1766,   -944,  -9047,
01229       -87,     47,    450,    302,   3243,   8234,   7586,   3373,
01230      2151,   -642,  -4138,  -3512,   -694,   -282,  -1630,  -1501,
01231     -3812,   -667,  -1695,  -1561,   -425,  -1081,   -996,   -442,
01232     -9631,     60,   3501,   5359,  10150,  -5662,      0,   -748,
01233     -1752,  -6288,     35,   2058,    -12,   3150,    -19,  -1145,
01234      5967,    -37,  -2169,  -3320,  -6874,  -2553,  -5446,  -2195,
01235     -7841,  -2884,   -397,  -1810,   -294,  -3753,  -1071,  -2285,
01236      -848,   -921,   -342,   -729,  -3290,  -1221,  -2606,  -1050,
01237     -3413,  -1141,   4630,  13612,   7897,   -711,    -79,  -1308,
01238    -11310,  -3806,   -237,    964,    322,   2836,    948,  -3847,
01239      1645,    550,  -2231,  -6561,   4410,  -5678,   8006,  -3992,
01240      3811,  -1187,  -1968,  -3912,   -973,   -886,   1528,  -2155,
01241      2775,   1074,  -1383,   1951,  -1025,   1321,  -1862,    928,
01242      5659,  11535,   2203,   -452,   7169,  -1954,  -8121,   -296,
01243       -12,  -3137,  -3984,   -761,  -1551,    156,    318,     60,
01244     -2476,  -5048,   -964,    197,   2914,  -2914,   3485,  -3965,
01245     13675,   -518,   -518,   -741,   -959, -11414,    518,   -620,
01246       620,    705,   -705,    843,  -2433,   2432,  -2909,   3310,
01247      7843,   1907,   1022,   8882,   7972,  -3755,   -222,    -63,
01248     -4815,  -3879,   -913,   -489,   -119,  -4252,  -1034,   -554,
01249     -3816,   -928,   -497,  -4322,  13807,   9531,   1436,   1612,
01250      1779, -11636,  -5544,   -125,   -158,   -193,  -8032,  -1210,
01251      -835,  -1358,   -938,   -141,  -1499,  -1035,   -156,   -175,
01252     13620,  -5337,   5450,  -2263,   1723, -11322,  -1738,  -1813,
01253      -312,   -181,   4436,  -4531,   1775,   1881,   -737,    752,
01254     -1432,    561,   -573,    238,   5297,   8374,   8872,   7694,
01255      6538,  -1712,  -4280,  -4804,  -3613,  -2609,  -2707,  -2868,
01256     -4534,  -2487,  -3932,  -4166,  -2113,  -3341,  -3540,  -3070
01257 };
01258 
01262 static const int16_t postfilter_tbl[2][LPC_ORDER] = {
01263     /* Zero */
01264     {21299, 13844,  8999,  5849, 3802, 2471, 1606, 1044,  679,  441},
01265     /* Pole */
01266     {24576, 18432, 13824, 10368, 7776, 5832, 4374, 3281, 2460, 1845}
01267 };
01268 
01272 static const int16_t hamming_window[LPC_FRAME] = {
01273      2621,  2631,  2659,  2705,  2770,  2853,  2955,  3074,  3212,  3367,
01274      3541,  3731,  3939,  4164,  4405,  4663,  4937,  5226,  5531,  5851,
01275      6186,  6534,  6897,  7273,  7661,  8062,  8475,  8899,  9334,  9780,
01276     10235, 10699, 11172, 11653, 12141, 12636, 13138, 13645, 14157, 14673,
01277     15193, 15716, 16242, 16769, 17298, 17827, 18356, 18884, 19411, 19935,
01278     20457, 20975, 21489, 21999, 22503, 23002, 23494, 23978, 24455, 24924,
01279     25384, 25834, 26274, 26704, 27122, 27529, 27924, 28306, 28675, 29031,
01280     29373, 29700, 30012, 30310, 30592, 30857, 31107, 31340, 31557, 31756,
01281     31938, 32102, 32249, 32377, 32488, 32580, 32654, 32710, 32747, 32766,
01282     32766, 32747, 32710, 32654, 32580, 32488, 32377, 32249, 32102, 31938,
01283     31756, 31557, 31340, 31107, 30857, 30592, 30310, 30012, 29700, 29373,
01284     29031, 28675, 28306, 27924, 27529, 27122, 26704, 26274, 25834, 25384,
01285     24924, 24455, 23978, 23494, 23002, 22503, 21999, 21489, 20975, 20457,
01286     19935, 19411, 18884, 18356, 17827, 17298, 16769, 16242, 15716, 15193,
01287     14673, 14157, 13645, 13138, 12636, 12141, 11653, 11172, 10699, 10235,
01288      9780, 9334,   8899,  8475,  8062,  7661,  7273,  6897,  6534,  6186,
01289      5851, 5531,   5226,  4937,  4663,  4405,  4164,  3939,  3731,  3541,
01290      3367, 3212,   3074,  2955,  2853,  2770,  2705,  2659,  2631,  2621
01291 };
01292 
01296 static const int16_t binomial_window[LPC_ORDER] = {
01297     32749, 32695, 32604, 32477, 32315, 32118, 31887, 31622, 31324, 30995
01298 };
01299 
01303 static const int16_t bandwidth_expand[LPC_ORDER] = {
01304     32571, 32376, 32182, 31989, 31797, 31606, 31416, 31228, 31040, 30854
01305 };
01306 
01310 static const int16_t percept_flt_tbl[2][LPC_ORDER] = {
01311     /* Zero part */
01312     {29491, 26542, 23888, 21499, 19349, 17414, 15673, 14106, 12695, 11425},
01313     /* Pole part */
01314     {16384,  8192,  4096,  2048,  1024,   512,   256,   128,    64,    32}
01315 };
Generated on Fri Feb 1 2013 14:34:35 for FFmpeg by doxygen 1.7.1