Home | History | Annotate | Download | only in inc
      1 /*
      2  ** Copyright 2003-2010, VisualOn, Inc.
      3  **
      4  ** Licensed under the Apache License, Version 2.0 (the "License");
      5  ** you may not use this file except in compliance with the License.
      6  ** You may obtain a copy of the License at
      7  **
      8  **     http://www.apache.org/licenses/LICENSE-2.0
      9  **
     10  ** Unless required by applicable law or agreed to in writing, software
     11  ** distributed under the License is distributed on an "AS IS" BASIS,
     12  ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  ** See the License for the specific language governing permissions and
     14  ** limitations under the License.
     15  */
     16 
     17 
     18 /*-------------------------------------------------------------------*
     19  *                         qpisf_2s.h
     20  *-------------------------------------------------------------------*
     21  * Quantization tables for two-stage of ISFs (split by 2 in 1st stage)
     22  * Version whith prediction MU = 0.25
     23  *-------------------------------------------------------------------*/
     24 
     25 #define ORDER   16            /* order of linear prediction filter */
     26 #define ISF_GAP 128           /* 50 Hz */
     27 #define N_SURV  4
     28 
     29 #define SIZE_BK1  256
     30 #define SIZE_BK2  256
     31 #define SIZE_BK21 64
     32 #define SIZE_BK22 128
     33 #define SIZE_BK23 128
     34 #define SIZE_BK24 32
     35 #define SIZE_BK25 32
     36 
     37 #define SIZE_BK21_36b 128
     38 #define SIZE_BK22_36b 128
     39 #define SIZE_BK23_36b 64
     40 
     41 /* means of ISFs */
     42 static Word16 mean_isf[ORDER] = {
     43 
     44    738,  1326,  2336,  3578,  4596,  5662,  6711,  7730,
     45   8750,  9753, 10705, 11728, 12833, 13971, 15043,  4037};
     46 
     47 /* 46 bits */
     48 /*-------------------------------------------------------------------*
     49  *  isf codebooks:  two-stage VQ with split-by-5 in 2nd stage        *
     50  *                                                                   *
     51  *  codebook   vector dimension    number of vectors                 *
     52  *  ~~~~~~~~   ~~~~~~~~~~~~~~~~    ~~~~~~~~~~~~~~~~~                 *
     53  *     1_1            9                  256                         *
     54  *     1_2            7                  256                         *
     55  *     2_1            3                  64                          *
     56  *     2_2            3                  128                         *
     57  *     2_3            3                  128                         *
     58  *     2_4            3                  32                          *
     59  *     2_5            4                  32                          *
     60  *-------------------------------------------------------------------*/
     61 
     62 /*------------------------------------------------*
     63  * 1st stage codebook; 1st split:   isf0 to isf8
     64  *------------------------------------------------*/
     65 
     66 static Word16 dico1_isf[SIZE_BK1*9] = {
     67 
     68    579,  1081,  1035,   390,     3,  -263,  -198,   -82,    38,
     69     18,   -68,   -12,   313,   761,   405,   249,   111,   -76,
     70    740,  1263,  1292,  1006,   997,  1019,  1017,   976,   923,
     71    -91,   827,   948,   648,   613,   535,   522,   490,   421,
     72     41,   -44,  -281,  -472,   652,   534,   193,   135,   -90,
     73     41,  -121,  -356,   -60,   663,   307,    61,   -48,  -344,
     74    557,   946,  1049,   867,   846,   990,  1112,  1262,  1241,
     75   -118,  -204,   328,   512,   870,   793,   610,   402,   186,
     76    156,   293,    74,  -338,  -475,  -897,  -594,  -161,  -497,
     77    226,   131,  -138,   307,   169,  -271,  -164,  -387,  -624,
     78     62,   -32,   -61,  -252,  -541,  -828, -1027,  -523,  -662,
     79    102,   -61,   141,   112,  -270,  -251,  -541,    25,  -150,
     80      6,  -132,  -356,  -686,   -96,  -322,  -522,   -31,  -326,
     81    -36,  -209,  -521,  -229,   307,  -132,    -5,   -99,  -384,
     82     60,   -51,  -237,  -668,  -973,  -407,  -708,   -75,  -172,
     83     26,  -138,  -266,   111,  -302,    43,  -278,  -356,  -359,
     84    570,   822,   496,  -154,  -312,   -92,   137,   279,   371,
     85   -146,   368,   409,    68,     6,    77,   167,   202,   162,
     86    633,   898,   996,   756,   662,   683,   783,   909,   996,
     87   -103,   294,   607,   415,   483,   462,   480,   431,   408,
     88   -120,  -338,  -612,  -524,   584,   331,    92,   433,   276,
     89   -178,  -293,  -154,   -41,   269,   100,    -9,   213,   160,
     90    830,   736,   278,   820,  1254,   686,   712,  1039,   473,
     91   -218,  -304,   463,   454,   397,   273,   202,   286,   273,
     92   -232,     7,     6,  -388,  -472,  -427,  -378,  -167,  -100,
     93   -294,  -183,   134,   -47,   101,   -88,   -84,  -117,    -3,
     94     57,    17,  -202,  -634,  -989, -1119,  -533,   176,   -36,
     95    120,   -28,    23,   111,  -319,   318,   -22,   -77,   266,
     96   -271,  -464,  -434,  -658,  -640,  -385,  -385,   -99,   -69,
     97   -198,  -259,  -266,   -44,   -39,  -139,  -137,   171,    66,
     98      9,  -145,  -377,  -846, -1000,  -111,  -325,   342,   135,
     99    -81,  -286,  -380,   192,   -57,   307,    76,   -24,  -140,
    100    677,   702,   247,    56,   249,   141,  -105,  -236,   -99,
    101     36,   -39,   -69,   348,   198,   -93,   322,    91,   -72,
    102    503,   885,  1508,  1307,  1282,  1172,  1119,  1209,  1061,
    103    416,   719,   989,  1227,  1001,  1052,   954,   741,  1044,
    104   -127,  -376,  -657,   139,   623,   223,   501,   306,   220,
    105   -113,  -384,  -796,   504,   438,    85,   213,   -83,  -194,
    106    585,  1132,  1233,  1091,  1247,  1433,  1512,  1448,  1314,
    107   -174,  -422,     7,  1155,  1089,  1182,  1003,   945,   806,
    108      8,  -126,  -317,  -103,  -351,  -695,   -98,  -268,  -537,
    109     33,  -103,  -290,   167,   -39,  -407,    44,  -208,  -375,
    110    104,   -23,   -64,  -291,  -637,  -851, -1084,   -61,  -112,
    111    -75,  -306,  -434,   218,  -148,  -354,  -680,  -133,  -216,
    112   -121,  -377,  -718,   -97,  -130,  -361,  -156,  -379,  -599,
    113    -56,  -254,  -586,   235,   157,  -214,    11,  -260,  -149,
    114   -124,  -267,  -397,  -580,  -593,  -527,  -805,  -385,   346,
    115   -193,  -440,  -708,  -351,  -141,  -255,  -499,  -147,  -185,
    116    448,   660,   494,   208,   509,   461,   338,   291,   149,
    117   -223,    88,   335,   159,   212,   191,   286,   308,   205,
    118    -31,   469,   803,   659,   619,   658,   843,   987,  1113,
    119   -171,  -242,   514,   362,   295,   524,   552,   694,   585,
    120    -64,  -308,  -448,   -21,   284,   786,   446,   289,    92,
    121   -218,  -390,    -7,   169,   206,   330,   352,   408,   358,
    122    -36,   702,   959,   859,   861,  1115,  1269,  1357,  1305,
    123   -133,  -341,   -65,   678,   417,   440,   486,   518,   780,
    124     33,   -44,  -191,  -344,  -461,  -755,  -201,   217,   -31,
    125   -353,  -547,   -44,   123,   -61,   -68,   -79,    29,    60,
    126     73,   -57,  -406,  -766, -1243, -1203,   240,   400,   165,
    127    -73,  -282,  -601,  -213,  -171,  -375,   332,    35,  -103,
    128    -29,  -207,  -553,  -476,  -638,  -908,   172,   -22,  -135,
    129   -192,  -239,  -164,  -103,  -111,   -47,   153,   125,   110,
    130     -1,  -203,  -570, -1030, -1424,  -535,   155,     1,   147,
    131   -333,  -653,  -865,  -197,  -158,   -21,   -44,    95,   108,
    132    389,   588,   490,    33,  -237,  -524,  -628,  -136,  -260,
    133     40,  -177,  -462,   453,   862,   380,   131,  -130,  -405,
    134    842,  1678,  1841,  1549,  1474,  1256,  1082,   905,   742,
    135    370,  1216,  1768,  1633,  1212,   636,    22,  -330,    71,
    136    -76,  -281,  -741,  -742,   898,   619,   277,    71,  -222,
    137    -32,  -265,  -556,   -25,   994,   682,   305,   126,  -165,
    138     73,   738,   893,   968,   993,  1768,  2273,  1840,  1391,
    139    -69,  -349,  -585,   234,  1158,   903,   626,   510,   251,
    140     -1,   -99,  -272,  -210,  -603,  -351,  -540,  -811,  -383,
    141    -16,  -230,  -504,   410,   149,  -205,  -343,  -651,  -639,
    142    103,    -9,  -227,  -205,  -562,  -781, -1079, -1208,  -156,
    143    143,    63,  -135,   -67,  -317,  -602,  -784, -1154,  -640,
    144   -144,  -391,  -674,  -622,  -200,  -254,  -660,  -947,  -395,
    145    -40,  -250,  -625,    27,   543,    94,  -131,  -386,  -673,
    146   -123,  -371,  -757,  -451,  -564,  -614,  -415,  -711,   -35,
    147   -116,  -309,  -593,  -268,   239,   -33,  -338,  -650,  -135,
    148     94,   251,   554,    57,  -312,  -423,  -154,   -57,   235,
    149   -268,   -71,   381,   114,   -44,   -87,   125,   173,   133,
    150   1513,  1714,  1238,   534,   276,   315,   461,   459,   508,
    151   -131,   -19,  1149,   670,   486,   356,   309,   369,   296,
    152   -223,  -501,  -899,  -722,   -70,     6,   131,   310,   394,
    153    -99,  -303,  -517,   249,    64,   -53,   135,   -11,   453,
    154   -147,  -399,  -730,  -401,   817,   738,   802,   749,   575,
    155   -154,  -435,  -739,   800,   593,   366,   529,   318,   326,
    156   -224,    45,   -39,  -387,  -515,  -518,  -608,  -384,  -321,
    157   -315,  -377,   143,  -101,  -113,  -377,  -177,  -144,   -12,
    158    117,    40,  -239,  -651, -1051,  -581,  -737,  -990,  -328,
    159     26,   -50,  -157,   -23,  -453,  -283,  -531,  -546,   192,
    160   -252,  -501,  -743,  -589,  -627,  -499,  -328,  -118,   -72,
    161   -324,  -494,  -244,  -306,  -144,  -177,  -262,  -135,   -78,
    162    -36,  -234,  -519,  -961, -1290,  -314,  -479,  -371,   -45,
    163    -95,  -292,  -535,    -8,  -300,   112,  -164,  -277,   198,
    164    -99,  -128,   880,   836,   579,   351,    23,   -95,  -217,
    165    -27,  -258,   124,  1011,   597,   425,   144,     7,   -73,
    166    421,  1293,  1640,  1623,  1742,  1617,  1499,  1284,  1006,
    167    -95,   752,  1680,  1569,  1618,  1436,  1200,   980,   712,
    168    -69,  -300,  -683,  -435,  1132,   899,   504,   332,   109,
    169    -74,  -323,  -637,   563,  1074,   608,   371,   105,   -49,
    170    -78,   831,  1194,  1110,  1378,  1481,  1492,  1365,  1217,
    171   -259,  -121,  1440,  1334,  1628,  1490,  1438,  1223,   933,
    172    -82,  -306,  -613,  -222,  -378,  -675,  -545,  -671,  -845,
    173     53,  -124,  -347,   422,    52,  -125,  -270,  -529,     9,
    174     79,   -89,  -320,  -662,  -999, -1199, -1243,  -676,  -297,
    175    -68,  -273,  -611,   137,  -146,  -397,  -627,  -845,  -220,
    176   -112,  -346,  -797,  -826,   234,  -132,  -188,  -278,  -522,
    177   -159,  -405,  -734,  -419,   293,    74,  -167,  -167,   184,
    178   -153,  -437,  -833, -1080,  -336,  -472,  -561,  -340,  -253,
    179   -169,  -423,  -820,  -904,  -131,   -19,  -346,  -604,    31,
    180     33,   -31,   312,    62,  -148,    49,   -59,   564,   486,
    181   -306,  -333,   194,   -44,    67,    72,   147,   205,   243,
    182   -207,   -49,  1360,   983,   969,   991,  1014,  1110,   973,
    183   -211,  -172,   883,   627,   711,   674,   705,   798,   746,
    184    -88,  -325,  -763,  -974,   687,   908,   514,   382,   172,
    185   -292,  -612,  -805,    63,   131,   270,   259,   352,   348,
    186   -235,   -84,   955,   818,  1120,  1289,  1559,  1480,  1285,
    187   -180,  -461,  -614,   657,   691,   745,   854,   783,   713,
    188    -97,  -309,  -477,  -614,  -777,  -734,  -768,  -526,  -472,
    189   -344,  -476,   -35,  -169,    49,   -77,  -150,  -240,  -141,
    190    -52,  -268,  -639,  -919, -1278, -1113,  -342,  -333,  -151,
    191    -68,  -242,  -585,   -73,  -209,  -478,  -159,  -429,   133,
    192   -197,  -499, -1005, -1268,  -272,  -224,  -105,   -67,    17,
    193   -363,  -618,  -414,  -116,   -62,    20,    10,   116,   108,
    194   -195,  -475,  -906, -1260,  -891,  -441,  -277,  -142,   -28,
    195   -226,  -519,  -950,  -700,  -275,  -266,  -116,  -105,    82,
    196    404,   511,   520,   327,    17,  -194,  -333,  -536,  -586,
    197   -114,  -130,   276,   237,   204,   342,   135,   -16,  -111,
    198    670,  1208,  1168,   860,   742,   601,   528,   403,   309,
    199    397,   621,   966,   752,   579,   398,   400,   329,   252,
    200    191,   180,  -137,  -467,   272,   106,   -95,    17,  -192,
    201    -80,  -290,  -626,   194,   598,   196,    21,  -281,    77,
    202    510,   864,  1108,   807,   939,   902,   925,   717,   481,
    203    137,   367,   534,   764,   670,   382,   296,   153,    84,
    204    303,   497,   144,   -85,  -125,  -539,  -482,  -464,  -764,
    205    233,   347,    68,  -147,   169,  -210,  -242,  -226,  -482,
    206    307,   422,   154,  -175,  -386,  -722,  -724,  -904, -1015,
    207    309,   308,   160,   -60,  -470,  -420,  -598,  -791,  -219,
    208     68,   121,  -137,  -560,  -146,  -446,  -515,  -494,  -729,
    209    130,    53,  -227,    46,   474,    32,  -161,  -192,  -490,
    210    213,   164,   -71,  -465,  -876,  -161,  -456,  -587,   -48,
    211    218,   117,    39,   177,  -194,   -88,  -226,  -418,    50,
    212    210,   547,   569,   279,   121,   -44,   -50,    10,   -84,
    213     58,   140,   182,    -5,   267,   117,   106,   211,   198,
    214    539,   835,   913,   719,   617,   544,   591,   565,   642,
    215    153,   559,   872,   460,   222,   108,   188,   180,   183,
    216    158,   119,   284,  -153,  -271,   229,    87,   110,   -57,
    217   -183,    82,   118,    21,    13,    40,   118,   191,   185,
    218    162,   889,   654,   108,   -34,   244,   488,   561,   532,
    219    163,    56,   609,   341,    50,   329,    68,   266,   218,
    220    100,   206,    18,  -304,  -107,  -436,  -487,   -65,  -306,
    221    -86,   154,   134,   -30,   -45,   -73,  -104,   -80,   -96,
    222    245,   330,    10,  -440,  -849, -1082,    79,    40,  -265,
    223    196,   372,   272,  -181,  -493,  -389,   275,    80,   -59,
    224      2,   -12,  -246,  -505,  -100,  -436,    21,  -187,  -431,
    225   -221,   -48,    36,  -271,  -186,  -147,  -109,    26,    71,
    226    213,   140,    72,  -351,  -620,   -84,  -363,    69,    46,
    227     91,   167,    -3,   -95,   -99,  -105,   -48,   114,   147,
    228    259,   249,   172,   607,   406,    52,    59,  -189,  -320,
    229    115,   -85,   -54,   574,   128,   226,   -59,  -253,   130,
    230    -62,  1033,  1308,  1035,  1127,  1098,  1029,   961,   823,
    231     39,   364,   757,   940,   728,   660,   659,   583,   770,
    232   -115,  -338,  -760,  -471,   394,    37,   441,   178,     6,
    233    -57,  -305,  -525,   796,   453,   188,    -4,  -114,   248,
    234     71,   444,   797,   731,  1096,  1157,  1222,  1029,   811,
    235    135,   359,   551,   425,   749,   815,   874,   704,   502,
    236    132,   247,     0,  -206,  -449,  -750,  -258,  -514,  -633,
    237    248,   249,    91,   121,  -195,  -499,   -90,  -282,  -435,
    238     78,    20,  -277,  -623,  -983, -1224,  -415,  -458,  -639,
    239    347,   509,   208,  -179,  -464,  -728,   -76,  -237,  -486,
    240   -103,  -343,  -756,  -713,  -265,  -609,  -191,  -398,  -636,
    241   -121,  -383,  -749,   567,   252,   -36,  -354,  -417,   -50,
    242    204,   100,  -149,  -650, -1081,   -47,    -7,  -263,   111,
    243    -46,  -180,  -267,  -324,  -562,  -394,  -692,   398,   292,
    244    482,   670,   683,   624,   442,   165,   116,    36,  -149,
    245    108,   247,   291,   247,   355,   122,   109,   224,   296,
    246    -14,   945,   990,   801,   755,   815,   847,   913,   892,
    247    292,   349,   725,   482,   388,   329,   429,   620,   667,
    248    -34,   197,   213,  -127,    84,   494,   620,   575,   375,
    249    126,   207,   172,   167,   362,   202,   296,   395,   455,
    250     -6,   250,   539,   467,   636,   801,  1149,  1287,  1118,
    251     27,   240,   369,   280,   440,   411,   634,   892,   953,
    252    159,   170,   -58,  -395,  -797,  -690,    77,  -211,  -334,
    253     -5,   -28,   -13,   -74,  -335,  -603,   300,    88,  -205,
    254     82,   -33,  -364,  -698, -1203, -1153,   110,  -146,  -289,
    255    113,     1,  -243,  -588,  -994,  -496,   414,   160,    42,
    256    -56,  -247,  -440,  -693,  -996,  -479,    11,  -178,  -357,
    257   -151,  -353,  -327,  -211,  -340,   141,    65,   425,   453,
    258     34,  -169,  -455,  -932, -1215,   138,   499,   256,   324,
    259     68,   139,   -15,  -547,  -478,    17,   306,   502,   481,
    260    -32,  -134,   445,   129,  -143,  -244,  -503,  -507,  -599,
    261     61,  -140,  -345,   496,   458,    -2,    20,  -227,  -514,
    262    394,  1765,  1666,  1339,  1117,   806,   642,   479,   380,
    263    215,   519,   920,  1053,  1090,   791,   528,   290,   155,
    264    -54,  -233,  -647,  -602,   639,   294,    -2,  -167,  -442,
    265    -78,  -315,  -791,  -113,   820,   403,   158,  -116,  -356,
    266    529,  1851,  2003,  1228,   622,   -41,  -416,   344,   819,
    267   -105,  -379,  -236,  1224,   893,   749,   568,   356,   214,
    268    -17,  -199,  -144,    50,  -283,  -247,  -578,  -846, -1087,
    269     69,   -11,  -381,  -206,   209,  -284,  -387,  -416,  -716,
    270     39,    -5,  -145,  -374,  -682,  -909, -1074, -1169, -1066,
    271    287,   226,    67,  -221,  -662,  -171,  -421,  -642,  -707,
    272   -132,  -348,  -538,  -448,   -20,    -4,  -354,  -748,  -933,
    273      4,   -75,  -289,  -598,   317,    52,  -208,  -297,  -559,
    274    -88,  -264,  -358,  -589,  -631,  -248,  -523,  -822, -1071,
    275     70,    -8,    54,  -314,  -515,    92,  -146,  -274,  -493,
    276    199,    62,   391,   158,  -141,    71,  -219,  -203,  -207,
    277    152,    40,   329,   162,   -29,    48,  -149,   108,   127,
    278    635,  1058,   883,   492,   372,   312,   317,   274,   241,
    279    267,   722,  1256,   882,   625,   248,     8,   -81,   -60,
    280    -58,  -138,  -291,  -600,   -12,    -2,   -39,   147,   117,
    281   -107,  -345,  -513,   459,    76,    92,  -272,   388,   262,
    282    362,   516,   203,  -409,  -716,  -831,  -331,   185,   209,
    283   -117,  -391,  -298,   671,   292,   538,   257,   166,   -38,
    284   -102,  -319,  -194,  -283,  -573,  -262,  -579,  -219,  -444,
    285   -235,    78,    11,  -168,  -101,  -229,  -263,  -321,  -123,
    286     70,    50,  -170,  -599,  -996,  -588,  -263,  -516,  -455,
    287    394,   363,   229,  -136,  -538,    21,  -183,  -348,  -201,
    288   -124,  -368,  -640,  -879,  -847,  -209,  -409,  -494,  -515,
    289   -127,  -341,  -541,  -425,  -510,   -10,  -252,  -473,  -291,
    290     84,   -69,  -201,  -676,  -868,   103,  -311,  -132,  -320,
    291      5,  -173,  -188,  -297,  -628,   197,   -57,     7,   -11,
    292     49,  -160,    56,   558,   111,    33,  -311,  -440,  -463,
    293     -1,  -246,  -307,   862,   453,   139,  -170,  -355,  -232,
    294    279,   966,  1642,  1478,  1463,  1123,   795,   525,   339,
    295   -197,   -38,  1702,  1331,  1252,   950,   692,   504,   426,
    296   -108,  -344,  -861, -1172,   444,   354,    88,   -46,  -220,
    297    -53,  -321,  -494,  1113,   744,   364,   198,   -34,   -75,
    298    457,   955,  1177,  1214,  1427,  1457,  1345,   917,   539,
    299    -69,   199,   897,  1140,  1343,  1183,   977,   742,   522,
    300    122,    44,  -269,    27,  -155,  -562,  -307,  -590,  -773,
    301    154,    42,  -160,   252,  -129,  -305,  -471,  -733,  -371,
    302    135,   185,   -82,  -416,  -722,  -913,  -504,  -743,  -880,
    303    149,   214,   -84,  -329,  -680,  -835,  -426,  -661,   -81,
    304   -128,  -380,  -735,  -998,  -337,    17,  -182,  -467,  -697,
    305    -84,  -290,  -510,  -592,    13,   440,   154,   -38,  -279,
    306     70,   -61,  -246,  -727, -1047,   -80,  -381,  -535,  -704,
    307    178,    -2,  -146,  -670,  -938,   482,   138,    63,    65,
    308    -11,    15,   772,   443,   142,   -20,  -209,  -126,  -161,
    309    -32,  -249,    95,   552,   124,    30,  -343,    82,   -86,
    310    148,   751,  1515,  1105,   867,   606,   474,   448,   399,
    311   -163,  -257,   899,  1097,   906,   751,   502,   390,   294,
    312    -51,  -258,  -447,  -806,  -368,   763,   464,   364,   183,
    313   -166,  -374,  -367,    87,    35,   399,   418,   856,   833,
    314   -205,  -310,   588,   778,   785,  1065,  1118,  1245,  1157,
    315   -173,  -312,   107,   345,   400,   790,   870,  1113,  1001,
    316     -7,  -120,  -387,  -410,  -614,  -943,  -226,  -384,  -491,
    317   -203,  -288,   -51,  -331,   -90,  -178,  -408,  -573,  -338,
    318     56,   -29,  -273,  -627, -1041,  -798,  -247,  -467,   148,
    319     66,    -2,  -205,  -205,  -575,  -349,   -57,  -352,   -58,
    320    -45,  -225,  -471,  -924,  -497,    77,   -32,    44,  -135,
    321   -277,  -491,  -497,  -502,  -424,  -202,  -137,    77,    96,
    322     26,  -179,  -469, -1008, -1260,   262,   -35,  -132,  -259,
    323    -66,  -232,  -447,  -533,  -789,  -191,  -100,  -267,   364};
    324 
    325 /*------------------------------------------------*
    326  * 1st stage codebook; 2nd split:   isf9 to isf15
    327  *------------------------------------------------*/
    328 
    329 static Word16 dico2_isf[SIZE_BK2*7] = {
    330 
    331   1357,  1313,  1136,   784,   438,   181,   145,
    332    636,   648,   667,   568,   442,   217,   362,
    333    427,   440,   674,   524,   332,   117,  -417,
    334    121,   295,   468,   465,   230,    44,  -221,
    335   -147,  -240,   149,    80,   390,   278,   106,
    336   -418,  -556,   552,   511,   235,   144,   -95,
    337     43,   193,   274,   150,    67,    34,  -273,
    338    -43,  -126,   171,   416,   282,    63,  -354,
    339   -372,   -86,  -344,  -108,   -94,  -182,   -89,
    340   -600,  -840,  -200,   465,   258,   -11,  -253,
    341    -48,   329,    97,  -290,  -543,  -795,  -354,
    342   -570,  -117,   187,    10,  -133,  -416,   -76,
    343   -618,  -129,  -247,  -371,    45,   -76,   277,
    344  -1022, -1079,   126,   474,   254,   127,    52,
    345   -281,    76,  -167,  -361,  -283,  -551,  -283,
    346   -119,   -52,    -1,   134,   -32,  -204,  -415,
    347   1064,   827,   637,   684,   464,   209,    12,
    348    482,   416,   449,   371,   335,   294,   194,
    349    719,   576,   365,   135,   113,    91,  -199,
    350    298,   176,   493,   366,   194,   163,    36,
    351    -35,  -236,  -259,   -36,    -4,    99,   152,
    352    -98,  -306,   -27,   228,    90,   111,   -86,
    353     91,    13,  -211,  -258,  -106,    86,   -64,
    354     73,   -35,   -57,   -31,   162,    35,  -192,
    355   -109,  -335,  -629,   -66,   -61,  -128,   322,
    356   -495,  -669,  -728,   193,    31,  -220,   122,
    357    324,    95,   -89,   -91,  -409,  -710,  -154,
    358      0,  -234,    92,    33,  -343,  -609,  -220,
    359   -343,  -408,  -476,  -655,  -153,    82,   222,
    360   -490,  -745,  -255,    49,   -48,   135,  -127,
    361    119,   -67,  -328,  -390,  -272,  -545,   -56,
    362    -57,  -130,   -10,    -7,  -164,   -47,   -22,
    363    984,  1064,   961,   568,   210,   -27,    16,
    364    811,   691,   754,   514,   224,   -35,   166,
    365    662,   704,   618,   386,    57,  -211,  -257,
    366    510,   359,   418,   393,    91,  -144,   -18,
    367   -193,   -31,   -27,   223,    89,  -143,    24,
    368   -112,   -98,   471,   319,   185,     3,   175,
    369    252,   146,   -47,   272,    48,  -211,  -234,
    370    146,    69,   203,   364,    68,   -52,    51,
    371   -259,  -478,  -697,  -349,  -758,  -501,    63,
    372   -501,  -769,  -289,    79,  -311,  -497,  -106,
    373    251,    53,  -235,  -469,  -895,  -884,   145,
    374   -416,  -551,   140,  -133,  -523,  -775,    44,
    375   -326,  -423,  -713,  -497,   -86,  -431,    99,
    376   -757,  -772,  -160,   -76,   -46,   -32,   379,
    377     85,   -35,  -200,  -401,  -663, -1040,  -247,
    378   -180,  -330,   -92,  -376,    27,  -183,  -110,
    379   1279,  1086,   781,   502,   324,   164,   157,
    380    682,   466,   449,   277,   146,    28,   409,
    381    635,   472,   390,   107,  -232,  -538,  -139,
    382    196,   396,   332,   213,   209,   -29,   -81,
    383    150,   -95,  -312,    76,   -77,  -320,   -50,
    384     46,     9,    47,   175,   139,    30,   384,
    385    218,   206,   -24,  -250,   -96,  -276,  -183,
    386     26,   119,    38,    14,    -4,  -133,   -52,
    387   -477,  -614,  -987,  -715,  -631,  -813,   200,
    388   -744, -1009, -1065,  -745,  -631,  -171,    18,
    389   -137,  -251,  -483,  -613,  -980, -1203,    12,
    390   -605,  -767,  -562,  -686, -1088,  -515,    58,
    391   -202,  -428,  -782, -1072,   -96,  -234,  -179,
    392   -480,  -709, -1070,  -897,  -131,   -92,   321,
    393   -145,  -193,  -512,  -729,  -572,  -765,  -210,
    394   -331,  -585,  -525,  -631,  -281,  -208,  -303,
    395   1165,  1104,   939,   828,   716,   426,   155,
    396      6,  -109,   820,   778,   415,   113,   -27,
    397    381,   339,   314,   265,   121,    -9,  -474,
    398   -373,    47,   584,   442,    99,  -231,  -113,
    399   -496,   -38,  -285,   262,   305,   170,     4,
    400   -587,  -556,    69,    66,   471,   354,    13,
    401   -138,    70,   -18,   106,    67,   167,  -302,
    402   -445,  -141,   185,   191,   151,    83,  -133,
    403   -257,  -521,  -720,  -198,   134,   -46,  -182,
    404   -819, -1168,  -777,   512,   359,    95,  -113,
    405    137,    -2,   -74,  -138,  -401,  -114,  -371,
    406   -242,  -466,   204,   223,   -31,  -212,  -192,
    407   -532,  -637,  -466,  -686,   256,   277,  -139,
    408  -1141, -1244,  -381,   -75,   -54,    14,    88,
    409   -311,   115,  -143,  -499,  -343,   124,  -416,
    410   -616,  -147,  -135,    43,    -4,   121,  -369,
    411    835,   783,   641,   390,   355,   350,    64,
    412     72,   194,   443,   467,   436,   219,   372,
    413    464,   369,   192,     4,  -156,   -72,  -226,
    414     57,   206,   303,   205,   188,   101,   265,
    415    -40,  -205,  -488,  -184,   276,    64,   -26,
    416   -217,  -433,  -297,   137,   328,   308,  -289,
    417    378,    81,  -308,  -465,    57,   -37,   227,
    418   -100,    24,   -36,  -151,   199,     8,   143,
    419   -426,  -697, -1059,  -133,   388,   161,   321,
    420   -644, -1023, -1271,    39,    66,  -123,    70,
    421    372,   177,  -173,  -556,  -553,  -304,  -189,
    422   -117,  -369,  -425,  -122,  -462,  -152,   -73,
    423   -649,  -850, -1189,  -767,   497,   360,   222,
    424   -798, -1139, -1455,  -190,   430,   234,   179,
    425     42,   -94,  -405,  -692,    38,  -202,  -246,
    426   -169,  -366,  -290,   -88,   -64,    32,  -292,
    427   1010,   923,   938,   710,   465,   230,   342,
    428    217,   300,  1054,   675,    68,  -458,  -179,
    429     78,   453,   316,    18,  -237,  -496,  -243,
    430    167,    21,   424,   215,   -91,  -303,  -170,
    431   -290,   -81,   -70,   -67,    40,    54,   -59,
    432   -353,  -427,   -90,    53,    94,     9,    54,
    433    -28,   318,   283,    15,  -240,   -58,    79,
    434    -75,  -121,   229,    35,    58,     6,  -133,
    435   -351,  -514,  -744,  -834,  -705,  -137,   164,
    436  -1124, -1388, -1055,  -230,   -73,    40,    36,
    437   -163,  -233,  -532,  -785, -1170,  -697,    96,
    438   -788,  -959,  -246,  -430,  -624,  -165,    -8,
    439   -856,  -540,  -630,  -907,  -337,   -70,    76,
    440   -937, -1042,  -659,  -733,  -208,   199,   -26,
    441   -523,    78,   -98,  -501,  -869,  -890,   -81,
    442   -624,  -703,   -45,  -348,   -25,    87,  -186,
    443   1005,   823,   546,   249,    90,   -22,   207,
    444    298,   397,   381,   319,   200,    62,   303,
    445    473,   379,   133,  -247,  -632,  -441,    75,
    446    284,   208,   391,   115,   -25,    44,    95,
    447    -72,    79,   -95,   -63,  -129,  -293,   203,
    448   -164,  -349,   115,   122,    69,    -1,   378,
    449    348,   170,    99,    58,  -179,  -302,   188,
    450   -190,    -2,   150,    23,   -51,   -11,   216,
    451   -615,  -863, -1090, -1427,  -802,   -48,    -6,
    452   -961, -1276, -1548,  -727,   -58,    56,   223,
    453   -124,  -255,  -561,  -988, -1277,  -148,   -82,
    454   -480,  -660,  -891, -1191, -1339,  -325,    20,
    455   -621,  -917, -1296, -1350,   264,   289,    50,
    456   -844, -1022, -1345, -1329,  -293,    46,   278,
    457   -260,  -468,  -829, -1176,  -533,  -560,   -78,
    458   -215,  -484,  -822, -1233,  -791,    15,  -138,
    459   1301,  1317,  1262,  1048,   716,   357,   -64,
    460    578,   824,   925,   802,   630,   362,   102,
    461    470,   925,   767,   514,   327,   190,  -112,
    462    225,   492,   495,   437,   598,   384,   -45,
    463     43,    82,   -42,   175,   519,   342,   -64,
    464   -304,  -154,   159,   576,   403,   221,   327,
    465    214,   244,   122,   -62,   312,    92,  -160,
    466    218,   208,   310,   268,   306,   323,  -199,
    467   -285,  -269,   -79,  -124,  -143,  -153,   236,
    468   -205,  -384,  -426,   344,    59,  -185,  -184,
    469   -272,   247,   126,  -210,  -518,  -468,    78,
    470    -99,  -120,   502,   160,  -280,  -557,   304,
    471   -423,   -17,  -283,  -443,   215,   212,  -140,
    472   -564,  -684,  -228,   510,   361,   130,   323,
    473   -428,   335,    98,   -65,    36,  -215,  -246,
    474   -362,    51,   364,   -16,  -234,   150,  -165,
    475    914,   883,   751,   653,   676,   464,  -153,
    476    631,   545,   535,   720,   596,   360,   -81,
    477    783,   712,   512,   439,   341,   251,  -391,
    478    497,   417,   249,   372,   295,   173,  -193,
    479    128,  -110,  -385,    93,    39,   173,  -231,
    480    216,   -59,  -253,   462,   389,   154,    69,
    481    455,   270,    -4,  -337,   -49,   233,  -322,
    482    307,   143,    53,   218,   128,   236,  -156,
    483    -37,  -186,  -240,  -411,  -110,     9,   399,
    484   -140,  -365,  -628,   258,   380,   214,   277,
    485    131,   454,   177,  -285,  -520,   108,  -214,
    486     77,  -141,   201,  -123,  -490,  -131,    60,
    487    -14,  -194,  -521,  -741,   273,   362,   -33,
    488   -362,  -566,  -287,  -228,   161,   237,   317,
    489   -269,   195,   -75,  -375,  -204,    11,    77,
    490   -128,  -264,  -156,  -223,  -475,   265,    27,
    491   1238,  1147,   916,   689,   432,   210,  -280,
    492    800,   664,   879,   726,   411,   160,  -164,
    493    454,   686,   536,   275,   147,    46,   111,
    494    303,   486,   512,   355,   241,   181,   -69,
    495     79,    92,    29,   147,   233,    52,    17,
    496   -171,   289,   131,   439,   271,     3,   -10,
    497    413,   241,   144,   174,   155,    -2,    14,
    498     58,   217,   247,   219,   149,   175,   -18,
    499    228,    -8,  -240,  -206,  -513,  -191,   202,
    500    -96,  -272,  -454,    33,  -300,  -575,    46,
    501    -10,  -108,  -246,  -347,  -770,  -535,     9,
    502   -326,  -430,   -61,  -321,  -704,  -299,   201,
    503     -1,  -280,  -603,  -419,  -185,    18,   -36,
    504   -516,  -522,  -379,  -291,  -181,   -97,    27,
    505   -159,  -313,  -525,  -224,  -510,  -831,  -197,
    506   -292,  -459,   -59,  -310,  -562,  -143,  -351,
    507   1066,   912,   631,   389,   207,    86,  -224,
    508    596,   512,   596,   505,   314,   122,   -48,
    509    787,   861,   441,   -93,  -303,    33,  -190,
    510    257,   469,   337,    51,    15,   298,   -93,
    511    295,    73,  -119,    25,    36,    23,   108,
    512    -28,    -3,   -32,   114,    21,   185,   107,
    513    482,   305,    15,  -279,  -319,    52,    96,
    514    226,    46,   115,    72,  -136,   133,  -125,
    515     18,  -207,  -559,  -590,  -503,  -482,   321,
    516   -571,  -789,  -951,  -172,  -441,  -538,   113,
    517    181,    14,  -310,  -641, -1001,  -202,   159,
    518   -136,  -393,  -433,  -513,  -911,  -144,   -22,
    519     72,  -265,  -706,  -954,  -159,    53,   332,
    520   -338,  -591,  -852,  -383,  -395,    56,    44,
    521     43,  -158,  -464,  -897,  -631,  -157,  -294,
    522   -161,  -128,  -328,  -573,  -483,  -125,    11,
    523   1017,   906,  1051,  1005,   679,   341,  -102,
    524    359,   334,  1567,  1314,   723,   105,    10,
    525    -65,   726,   529,   301,   220,    43,  -273,
    526   -510,   436,   719,   566,   358,   179,   114,
    527   -560,   298,   133,  -120,   342,   225,    14,
    528   -899,  -101,   217,   617,   400,   146,   -58,
    529    -41,   352,    82,  -196,    39,   121,  -167,
    530   -212,    59,   447,   284,   423,   250,  -169,
    531   -371,  -484,  -596,    30,   -41,   249,    22,
    532   -372,  -650,  -794,   477,   445,   216,   -79,
    533   -352,   275,    17,  -443,  -929,    92,    19,
    534   -699,  -696,   431,   264,   -49,  -310,   182,
    535   -978,  -217,  -430,  -400,   101,   261,    72,
    536   -929,  -889,  -357,   -13,   463,   378,   236,
    537   -826,    56,    30,  -299,  -360,  -128,   -51,
    538   -878,  -299,  -111,    75,    65,    36,     3,
    539    817,   368,   -25,   354,   697,   591,  -173,
    540    309,   212,   222,   751,   484,   140,   -56,
    541    593,   379,    70,    -8,   258,   180,   110,
    542    165,   -46,   255,   297,   219,   273,   105,
    543    160,   -70,  -358,  -181,   379,   330,   319,
    544   -238,  -369,  -198,   740,   580,   319,  -143,
    545    201,   109,  -202,  -456,   328,   276,  -141,
    546    203,   170,   111,    42,   207,   360,   188,
    547   -345,  -399,  -513,  -233,   650,   422,    81,
    548   -635,  -961, -1220,   463,   539,   204,   209,
    549    202,   -25,  -194,  -498,  -787,   193,  -143,
    550   -449,  -538,   195,  -106,  -331,    68,    62,
    551   -228,  -477,  -840,  -576,   317,   128,   283,
    552   -671,  -937,  -807,  -114,   391,   335,   -62,
    553    246,     2,  -314,  -679,  -303,   180,   -88,
    554   -107,  -272,    90,  -198,   -28,   290,  -112,
    555    885,  1149,  1021,   712,   496,   281,   -83,
    556    269,   492,   787,   643,   347,    70,   124,
    557    336,   636,   499,    92,  -229,  -179,   191,
    558     26,   402,   564,   340,   149,   -11,   135,
    559   -440,   561,   470,   204,   -72,  -186,   140,
    560   -720,    14,   355,   229,    68,  -133,   465,
    561    110,   310,   103,    12,   106,    29,   158,
    562   -178,   113,   161,   142,   121,   115,    27,
    563   -651,  -414,  -645,  -152,  -164,   -13,  -429,
    564   -639,  -944,  -681,  -104,   -81,    52,  -189,
    565   -663,  -164,  -316,  -683,  -954,  -205,   -83,
    566   -609,  -669,  -172,  -517,  -694,   283,   -80,
    567   -646,  -152,  -383,  -678,  -246,   -40,  -143,
    568   -747,  -796,  -745,  -390,   -98,    43,   275,
    569   -599,  -199,  -398,  -433,  -436,  -538,    31,
    570  -1107,  -568,  -376,  -265,  -126,   -21,     1,
    571    847,   573,   308,   392,   305,   101,    55,
    572    273,   293,   201,   267,   346,   201,   123,
    573    727,   480,   226,     2,   -65,  -138,   164,
    574    273,   208,   173,   292,    12,   253,   174,
    575    340,   207,   180,    88,   116,    46,   475,
    576   -460,  -166,   -30,    13,   110,   173,   396,
    577    137,    88,    43,  -137,   -94,    34,   284,
    578     96,   -14,   226,    40,    63,    70,   130,
    579   -467,  -735, -1012, -1174,  -307,   305,   -67,
    580   -612,  -920, -1146,  -567,    -8,    92,   -25,
    581   -182,  -271,  -492,  -754,  -857,   287,   -75,
    582   -494,  -787,  -689,  -683,  -709,   137,  -326,
    583   -288,  -550,  -903, -1105,   334,   321,   -62,
    584   -354,  -653,  -834,  -445,     1,   377,  -152,
    585   -162,  -306,  -608,  -937,  -297,   247,  -192,
    586   -234,  -477,  -244,  -488,  -266,   342,  -332};
    587 
    588 /*---------------------------------------------------*
    589  * 2nd stage codebook; 1st split:   isf2_0 to isf2_2
    590  *---------------------------------------------------*/
    591 
    592 
    593 static Word16 dico21_isf[SIZE_BK21*3] = {
    594 
    595    329,   409,   249,
    596    -33,   505,   160,
    597    -29,   -14,   582,
    598   -262,   127,   354,
    599    145,   237,   175,
    600   -152,   245,   122,
    601     27,    42,   340,
    602    -84,   -93,   311,
    603    285,   222,  -156,
    604     47,   -43,  -504,
    605    234,   121,   385,
    606    104,  -317,    45,
    607    176,   195,     8,
    608    104,   -59,   -94,
    609    177,    53,   192,
    610    -34,  -127,   152,
    611    570,   277,   -34,
    612    -67,  -329,  -639,
    613   -157,  -272,   462,
    614   -177,  -462,   198,
    615    322,   179,   115,
    616   -386,   171,    19,
    617     19,   -12,   195,
    618   -120,  -252,   201,
    619    304,    36,  -336,
    620   -128,  -221,  -380,
    621    171,  -185,   296,
    622   -242,  -312,    23,
    623    198,    39,    16,
    624     -3,  -177,  -111,
    625    111,   -93,    76,
    626    -92,  -223,     4,
    627    177,   406,   -44,
    628   -168,   380,  -149,
    629     -4,   273,   331,
    630   -420,   513,   277,
    631     21,   247,    47,
    632    -58,   131,    -2,
    633     -3,   134,   180,
    634   -145,    40,   175,
    635    189,    74,  -145,
    636    -27,   -45,  -325,
    637    370,  -114,   -21,
    638    -83,  -415,  -173,
    639     77,    95,   -51,
    640    -40,   -30,   -67,
    641     71,    88,    86,
    642    -35,   -98,    14,
    643     69,   197,  -334,
    644   -196,    79,  -231,
    645   -348,  -137,   218,
    646   -352,   -89,   -85,
    647     47,   201,  -130,
    648   -165,    37,   -15,
    649    -43,     3,    86,
    650   -161,  -108,    79,
    651     83,    21,  -237,
    652    -81,  -149,  -238,
    653    150,  -186,  -251,
    654   -186,  -249,  -162,
    655    -19,    66,  -139,
    656    -26,   -50,  -181,
    657     24,    11,     0,
    658   -130,  -105,   -98};
    659 
    660 
    661 
    662 /*---------------------------------------------------*
    663  * 2nd stage codebook; 2nd split:   isf2_3 to isf2_5
    664  *---------------------------------------------------*/
    665 
    666 
    667 static Word16 dico22_isf[SIZE_BK22*3] = {
    668 
    669   -127,   310,    42,
    670   -242,   197,     5,
    671   -151,    84,   -17,
    672   -214,   127,  -149,
    673   -247,  -131,   159,
    674   -268,  -267,   -95,
    675   -217,     1,   -79,
    676   -271,   -80,  -185,
    677    -45,   436,   159,
    678    165,   199,   391,
    679    -33,    81,   187,
    680    -66,   -42,   355,
    681   -298,   -57,   343,
    682   -108,  -537,   226,
    683   -144,   -23,   193,
    684    176,  -402,    87,
    685     53,   296,    25,
    686    -84,   253,  -104,
    687    -58,   105,  -126,
    688   -169,   174,  -314,
    689    -48,    44,  -294,
    690   -164,  -417,  -242,
    691   -139,     3,  -194,
    692   -155,  -207,  -211,
    693    119,   322,   213,
    694    333,    50,   380,
    695    237,   247,    -2,
    696    466,   -16,   201,
    697    238,  -255,  -107,
    698     67,  -440,  -149,
    699    122,   -88,  -139,
    700     88,  -247,   -73,
    701    -41,   231,   167,
    702    -62,   155,    16,
    703    -65,    16,    77,
    704    -68,    -2,   -63,
    705   -151,  -300,   160,
    706    -18,  -333,    54,
    707    -56,   -94,     5,
    708      2,  -190,    14,
    709     92,   148,   209,
    710    108,     9,   272,
    711    108,    35,   110,
    712    142,   -85,   145,
    713     47,  -157,   279,
    714      3,  -320,   246,
    715     43,   -72,    68,
    716     86,  -217,   135,
    717     36,   140,    79,
    718     56,   175,   -49,
    719     26,    45,     3,
    720     73,    55,  -101,
    721    109,  -183,  -242,
    722     -4,  -283,  -242,
    723     48,   -68,   -48,
    724     -6,  -153,  -122,
    725    161,   196,    96,
    726    232,    80,   190,
    727    165,    97,    11,
    728    258,   -31,    71,
    729    267,   -77,   -91,
    730    311,  -209,    87,
    731    152,   -14,   -22,
    732    150,  -149,     9,
    733   -324,   557,   187,
    734   -384,   307,    46,
    735   -251,    27,    77,
    736   -365,    77,   -52,
    737   -482,   -84,   160,
    738   -424,  -515,   -64,
    739   -294,  -120,    -4,
    740   -476,  -116,  -109,
    741    -97,   318,   365,
    742    106,   627,   445,
    743   -190,   120,   287,
    744   -146,    65,   619,
    745   -427,   242,   363,
    746   -361,  -371,   432,
    747   -347,   102,   168,
    748   -629,   195,   -14,
    749    -65,   476,   -47,
    750   -297,   320,  -168,
    751    -55,   356,  -264,
    752   -391,    82,  -286,
    753    -51,   -31,  -556,
    754   -178,  -399,  -586,
    755   -205,   -49,  -360,
    756   -343,  -238,  -337,
    757    220,   457,    58,
    758    561,   467,   259,
    759    340,   270,  -168,
    760    450,    77,  -280,
    761     60,   167,  -413,
    762    133,  -252,  -492,
    763    216,   157,  -290,
    764    282,     0,  -495,
    765   -226,   293,   183,
    766   -157,   135,   122,
    767   -158,   -59,    39,
    768   -133,  -118,   -97,
    769   -332,  -309,   113,
    770   -160,  -425,    -6,
    771   -149,  -211,    24,
    772    -80,  -277,   -90,
    773    -11,   125,   338,
    774    130,   -71,   465,
    775      5,   -45,   184,
    776    237,   -95,   253,
    777   -139,  -197,   297,
    778    -19,  -300,   511,
    779    -63,  -152,   139,
    780    250,  -289,   336,
    781    124,   339,  -150,
    782     34,   176,  -208,
    783    171,   166,  -116,
    784     94,    38,  -229,
    785     75,   -65,  -339,
    786    -78,  -205,  -385,
    787      0,   -30,  -163,
    788    -56,  -110,  -242,
    789    321,   244,   194,
    790    505,   238,    -1,
    791    317,   116,    65,
    792    309,    88,   -74,
    793    452,   -51,   -50,
    794    334,  -217,  -290,
    795    211,    41,  -152,
    796    238,   -55,  -260};
    797 
    798 
    799 /*---------------------------------------------------*
    800  * 2nd stage codebook; 3rd split:   isf2_6 to isf2_8
    801  *---------------------------------------------------*/
    802 
    803 
    804 static Word16 dico23_isf[SIZE_BK23*3] = {
    805 
    806    -10,   151,   359,
    807    136,   298,   223,
    808    255,  -104,   290,
    809    423,     6,   183,
    810   -270,  -269,   -98,
    811    -52,   -82,    13,
    812    -82,  -274,   -97,
    813     90,  -246,   -72,
    814   -299,   -70,   421,
    815    -88,   365,   430,
    816    187,  -318,   381,
    817    380,    37,   488,
    818   -373,  -316,    79,
    819   -308,  -101,     5,
    820   -135,  -451,     8,
    821     72,  -421,  -154,
    822    180,   170,  -121,
    823     62,   177,   -40,
    824    326,    80,  -105,
    825    248,   263,    -5,
    826   -168,  -181,  -221,
    827     -2,   -23,  -158,
    828    -14,  -149,  -121,
    829    119,   -91,  -147,
    830    119,   332,  -153,
    831     49,   303,    34,
    832    442,   -55,   -69,
    833    217,   454,    58,
    834   -359,  -187,  -375,
    835    -42,    50,  -274,
    836     -8,  -267,  -249,
    837     85,   -86,  -346,
    838    -77,   -40,   345,
    839     89,   134,   219,
    840    156,   -80,   160,
    841    108,    40,   116,
    842   -158,  -206,    29,
    843      5,   -32,   175,
    844    -65,  -158,   146,
    845     55,   -78,    73,
    846   -114,  -222,   353,
    847    -47,    81,   211,
    848     49,  -151,   268,
    849    105,     4,   302,
    850   -263,  -132,   183,
    851   -151,   -28,   201,
    852   -177,  -307,   166,
    853    101,  -221,   130,
    854     74,    58,   -98,
    855     32,    44,    13,
    856    194,    30,  -142,
    857    170,    96,     8,
    858   -136,  -119,   -91,
    859    -65,     8,   -55,
    860      3,  -188,    12,
    861     45,   -63,   -49,
    862    149,   -21,   -19,
    863     24,   144,    95,
    864    254,   -22,    60,
    865    161,   196,    96,
    866   -158,   -61,    48,
    867    -70,    33,    82,
    868    -23,  -321,    58,
    869    155,  -147,     5,
    870   -364,   328,    77,
    871    -21,   453,   173,
    872   -108,    82,   630,
    873    367,   263,   208,
    874   -300,   -62,  -176,
    875   -205,   143,  -158,
    876   -169,  -410,  -264,
    877    257,  -269,  -100,
    878   -636,   289,    -2,
    879   -292,   627,   173,
    880   -382,  -363,   387,
    881    248,   524,   447,
    882   -521,  -111,  -107,
    883   -395,   118,  -274,
    884   -343,  -680,  -125,
    885   -172,  -447,  -663,
    886     75,   148,  -367,
    887    -79,   263,   -94,
    888    249,   148,  -286,
    889    380,   271,  -162,
    890   -142,    -4,  -186,
    891    -57,   111,  -125,
    892    -35,  -108,  -254,
    893    100,    29,  -242,
    894    -80,   303,  -264,
    895    -78,   464,   -57,
    896    248,   -22,  -494,
    897    661,   662,    44,
    898   -193,   -40,  -330,
    899   -178,   145,  -337,
    900    -90,  -199,  -400,
    901    -40,   -23,  -498,
    902   -192,   114,   315,
    903    -41,   244,   190,
    904     88,   -97,   485,
    905    241,    80,   212,
    906   -246,    40,    87,
    907   -156,   147,   134,
    908     -2,  -334,   239,
    909    308,  -203,   110,
    910   -459,   251,   422,
    911   -218,   310,   228,
    912    -86,  -346,   654,
    913    184,   175,   425,
    914   -481,   -63,   169,
    915   -349,   117,   188,
    916   -125,  -560,   310,
    917    158,  -416,    94,
    918     46,   171,  -192,
    919    -63,   157,    14,
    920    256,   -35,  -271,
    921    322,   123,    53,
    922   -214,     4,   -76,
    923   -156,    86,   -18,
    924    128,  -197,  -232,
    925    265,   -90,   -98,
    926   -308,   332,  -145,
    927   -131,   308,    58,
    928    509,    59,  -339,
    929    562,   196,   -14,
    930   -378,   100,   -47,
    931   -234,   202,     1,
    932    104,  -270,  -493,
    933    319,  -210,  -325};
    934 
    935 
    936 /*---------------------------------------------------*
    937  * 2nd stage codebook; 4th split:   isf2_9 to isf2_11
    938  *---------------------------------------------------*/
    939 
    940 static Word16 dico24_isf[SIZE_BK24*3] = {
    941 
    942    -79,   -89,    -4,
    943   -171,    77,  -211,
    944    160,  -193,    98,
    945    120,  -103,   323,
    946     32,   -22,  -129,
    947     72,    78,  -268,
    948    182,   -76,   -66,
    949    309,    99,  -145,
    950   -229,  -157,   -84,
    951   -383,    98,   -71,
    952    -90,  -352,    12,
    953   -284,  -178,   178,
    954    -65,  -125,  -166,
    955    -87,  -175,  -351,
    956     42,  -198,   -48,
    957    154,  -140,  -243,
    958    -77,    18,   108,
    959    -39,   355,    91,
    960     87,     8,   155,
    961     -4,   158,   239,
    962    128,    95,   -54,
    963      7,   246,  -124,
    964    258,    15,    89,
    965    206,   216,    98,
    966   -201,     9,    18,
    967   -312,   233,   204,
    968    -39,  -174,   155,
    969   -144,    -9,   284,
    970    -57,    70,   -69,
    971   -157,   187,    18,
    972     54,   -30,    23,
    973     24,   135,    55};
    974 
    975 
    976 /*---------------------------------------------------*
    977  * 2nd stage codebook; 5th split:   isf2_12 to isf2_15
    978  *---------------------------------------------------*/
    979 
    980 static Word16 dico25_isf[SIZE_BK25*4] = {
    981 
    982    169,   142,  -119,   115,
    983    206,   -20,    94,   226,
    984   -106,   313,   -21,    16,
    985    -62,   161,    71,   255,
    986    -89,   101,  -185,   125,
    987     72,   -30,  -201,   344,
    988   -258,    33,    -8,    81,
    989   -104,  -154,    72,   296,
    990    144,   -68,  -268,   -25,
    991     81,   -78,   -87,   106,
    992     22,   155,  -186,  -119,
    993    -46,   -28,    27,    91,
    994   -114,   -37,  -175,   -33,
    995    -94,  -222,  -189,   122,
    996   -132,  -119,  -191,  -270,
    997   -172,  -173,    18,   -43,
    998    279,   135,   -42,  -128,
    999    187,   -86,   229,  -138,
   1000    159,   240,   140,    46,
   1001     69,    25,   227,    77,
   1002     21,   115,    13,     8,
   1003     68,  -248,   126,    81,
   1004   -150,   137,   207,    -9,
   1005   -154,  -133,   289,    67,
   1006    143,   -37,   -86,  -326,
   1007    180,   -32,    19,   -23,
   1008     26,   168,   116,  -233,
   1009    -32,   -26,   118,   -78,
   1010      3,    -8,   -45,  -115,
   1011     57,  -215,   -54,   -83,
   1012   -209,   112,   -22,  -167,
   1013    -91,  -151,   168,  -262};
   1014 
   1015 
   1016 
   1017        /* 36 bit */
   1018 /*-------------------------------------------------------------------*
   1019  *  isf codebooks:  two-stage VQ with split-by-3 in 2nd stage        *
   1020  *                1st stage is kept the same as the 46 bit quantizer *
   1021  *                                                                   *
   1022  *  codebook   vector dimension    number of vectors                 *
   1023  *  ~~~~~~~~   ~~~~~~~~~~~~~~~~    ~~~~~~~~~~~~~~~~~                 *
   1024  *     1_1            9                  256                         *
   1025  *     1_2            7                  256                         *
   1026  *     2_1            5                  128                         *
   1027  *     2_2            4                  128                         *
   1028  *     2_3            7                  64                          *
   1029  *-------------------------------------------------------------------*/
   1030 
   1031 static Word16 dico21_isf_36b[SIZE_BK21_36b*5] = {
   1032 
   1033    -52,   -96,   212,   315,   -73,
   1034     82,  -204,   363,   136,  -197,
   1035   -126,  -331,   183,   218,   143,
   1036    -49,   -41,   557,   230,    72,
   1037      2,   -73,   163,   377,   221,
   1038    133,   111,   278,   215,  -110,
   1039   -102,   -20,   284,   113,   273,
   1040     84,   319,   290,    18,    85,
   1041    -25,    -5,   125,   132,  -204,
   1042    -38,    -5,   286,    -9,  -356,
   1043   -140,  -256,    92,   117,  -189,
   1044   -144,   191,   313,    51,   -98,
   1045    167,   -10,    44,   247,    36,
   1046    381,   197,   238,    74,     6,
   1047     38,  -408,    29,    -3,   -85,
   1048     92,   266,   157,   -25,  -200,
   1049    161,  -121,    70,    84,  -140,
   1050    -16,   -86,   112,   -94,  -189,
   1051   -269,  -270,   351,   107,   -24,
   1052    -68,   -67,   492,  -103,  -155,
   1053    -53,  -131,    62,   122,    10,
   1054    135,    84,   283,   -55,  -120,
   1055    -12,  -219,   331,   -81,   167,
   1056    220,  -136,   147,  -172,   -42,
   1057    140,   -95,  -109,   -88,  -194,
   1058      0,    -2,    -4,   -33,  -381,
   1059    -66,  -217,   152,  -186,  -402,
   1060    244,   108,   156,  -140,  -395,
   1061    113,  -136,  -196,   110,   -24,
   1062    214,   118,    11,   -64,  -131,
   1063   -110,  -286,    -6,  -332,    16,
   1064     94,    97,    79,  -291,  -205,
   1065     -5,   -39,   -20,   252,   -96,
   1066     76,   174,   101,   163,    61,
   1067    -69,  -239,   -55,   399,     6,
   1068   -115,   319,   164,   275,   196,
   1069    -15,    36,   -47,   331,   121,
   1070    226,   209,   271,   325,   184,
   1071     13,   -80,  -218,   471,   353,
   1072    288,   378,    16,   -51,   251,
   1073    174,   116,    52,   149,  -279,
   1074    235,   276,    39,   120,   -48,
   1075      0,  -108,  -108,   241,  -339,
   1076    -93,   534,    45,    33,   -87,
   1077    194,   149,   -71,   405,   -44,
   1078    409,   370,    81,  -186,  -154,
   1079     25,  -102,  -448,   124,  -173,
   1080     22,   408,  -110,  -310,  -214,
   1081    -26,    23,   -83,   114,    14,
   1082   -110,   164,    52,   223,   -82,
   1083     37,   -25,  -263,   306,   -15,
   1084   -466,   415,   292,   165,   -18,
   1085     29,   -19,  -171,   155,   182,
   1086    179,   144,   -27,   231,   258,
   1087   -103,  -247,  -396,   238,   113,
   1088    375,  -154,  -109,    -4,   156,
   1089     98,    85,  -292,    -5,  -124,
   1090    116,   139,  -116,   -98,  -294,
   1091    -14,   -83,  -278,  -117,  -378,
   1092    106,    33,  -106,  -344,  -484,
   1093    119,    17,  -412,   138,   166,
   1094    384,   101,  -204,    88,  -156,
   1095   -121,  -284,  -300,    -1,  -166,
   1096    280,    33,  -152,  -313,   -81,
   1097    -37,    22,   229,   153,    37,
   1098    -60,   -83,   236,    -8,   -41,
   1099   -169,  -228,   126,   -20,   363,
   1100   -235,    17,   364,  -156,   156,
   1101    -25,   -30,    72,   144,   156,
   1102    153,   -26,   256,    97,   144,
   1103    -21,   -37,    48,   -65,   250,
   1104     63,    77,   273,  -128,   124,
   1105   -129,   -26,    40,     9,  -115,
   1106     -6,    82,    38,   -90,  -182,
   1107   -336,   -13,    28,   158,    91,
   1108    -30,   241,   137,  -170,   -17,
   1109    146,    14,   -11,    33,    61,
   1110    192,   197,    54,   -84,    85,
   1111     23,  -200,   -78,   -29,   140,
   1112    122,   237,   106,  -341,   136,
   1113    -57,  -142,   -85,   -16,   -74,
   1114    -59,   -90,    -8,  -187,   -20,
   1115   -211,  -267,   216,  -179,  -110,
   1116    -50,    -7,   220,  -267,   -70,
   1117    -57,   -42,   -17,   -15,    71,
   1118     32,    21,    63,  -137,    33,
   1119   -137,  -175,   104,   -68,    97,
   1120    -67,   -43,   133,  -301,   221,
   1121   -116,  -200,   -81,   -92,  -272,
   1122    -64,   -41,   -54,  -244,  -220,
   1123   -287,  -242,   -50,   -87,   -89,
   1124   -245,   236,   102,  -166,  -295,
   1125     66,    24,  -162,   -71,    95,
   1126     66,   136,   -90,  -220,   -36,
   1127    -98,  -161,  -222,  -188,    29,
   1128    -18,    18,   -19,  -415,     9,
   1129     49,    61,   100,    39,   -56,
   1130   -111,    82,   135,   -31,    52,
   1131    -90,  -153,   -93,   189,   182,
   1132   -214,   295,   119,   -74,   284,
   1133      2,   137,    37,    47,   182,
   1134     92,   117,   184,   -53,   373,
   1135    -21,   -14,   -35,   136,   391,
   1136    146,   129,  -164,   -28,   333,
   1137     92,    80,   -84,   100,  -134,
   1138     -8,   217,   -32,     3,   -47,
   1139   -151,   251,  -215,   142,    92,
   1140   -224,   310,  -172,  -275,    98,
   1141    159,   155,  -177,   112,    53,
   1142    205,    27,     8,  -240,   192,
   1143    169,   120,  -319,  -201,   106,
   1144     11,    36,   -86,  -237,   455,
   1145   -109,  -154,  -163,   174,   -55,
   1146    -38,    32,  -101,   -78,   -59,
   1147   -205,  -321,   -97,    69,    79,
   1148   -310,    44,    18,  -185,    34,
   1149   -115,   -20,  -148,   -39,   203,
   1150    -29,   154,   -30,  -158,   166,
   1151    -45,  -131,  -317,   -24,   363,
   1152   -165,  -205,  -112,  -222,   265,
   1153    -32,   -44,  -150,    54,  -193,
   1154     -6,   -38,  -255,  -169,  -115,
   1155   -266,    87,  -189,   -36,  -169,
   1156    -60,   -87,  -266,  -436,  -170,
   1157    -68,   -81,  -278,    24,    38,
   1158    -23,   -19,  -155,  -256,   141,
   1159    -61,  -226,  -565,  -175,    71,
   1160      9,   -29,  -237,  -515,   263};
   1161 
   1162 static Word16 dico22_isf_36b[SIZE_BK22_36b*4] = {
   1163 
   1164   -298,    -6,    95,    31,
   1165   -213,   -87,  -122,   261,
   1166      4,   -49,   208,    14,
   1167   -129,  -110,    30,   118,
   1168   -214,   258,   110,  -235,
   1169    -41,   -18,  -126,   120,
   1170    103,    65,   127,   -37,
   1171    126,   -36,   -24,    25,
   1172   -138,   -67,  -278,  -186,
   1173   -164,  -194,  -201,    78,
   1174   -211,   -87,   -51,  -221,
   1175   -174,   -79,   -94,   -39,
   1176     23,    -6,  -157,  -240,
   1177     22,  -110,  -153,   -68,
   1178    148,    -5,    -2,  -149,
   1179     -1,  -135,   -39,  -179,
   1180     68,   360,  -117,   -15,
   1181    137,    47,  -278,   146,
   1182    136,   260,   135,    65,
   1183     61,   116,   -45,    97,
   1184    231,   379,    87,  -120,
   1185    338,   177,  -272,     3,
   1186    266,   156,    28,   -69,
   1187    260,    84,   -85,    86,
   1188   -266,   154,  -256,  -182,
   1189    -17,   -65,  -304,    -6,
   1190    -40,   175,  -151,  -180,
   1191    -27,    27,   -87,   -63,
   1192    121,   114,  -166,  -469,
   1193    159,   -66,  -323,  -231,
   1194    214,   152,  -141,  -212,
   1195    137,    36,  -184,   -51,
   1196   -282,  -237,    40,    10,
   1197    -48,  -235,   -37,   251,
   1198    -54,  -323,   136,    29,
   1199    -88,  -174,   213,   198,
   1200   -390,    99,   -63,  -375,
   1201    107,  -169,  -164,   424,
   1202     69,  -111,   141,  -167,
   1203     74,  -129,    65,   144,
   1204   -353,  -207,  -205,  -109,
   1205   -160,  -386,  -355,    98,
   1206   -176,  -493,   -20,  -143,
   1207   -252,  -432,    -2,   216,
   1208    -90,  -174,  -168,  -411,
   1209     13,  -284,  -229,  -160,
   1210    -87,  -279,    34,  -251,
   1211    -75,  -263,   -58,   -42,
   1212    420,    53,  -211,  -358,
   1213    384,   -35,  -374,   396,
   1214     68,  -228,   323,    -2,
   1215    167,  -307,   192,   194,
   1216    459,   329,    -5,  -332,
   1217    375,    79,    -7,   313,
   1218    282,  -124,   200,   -92,
   1219    271,  -162,   -70,   180,
   1220   -157,  -298,  -514,  -309,
   1221     58,  -163,  -546,    18,
   1222    124,  -364,   167,  -238,
   1223     83,  -411,  -117,    96,
   1224    140,  -112,  -388,  -624,
   1225    259,  -133,  -317,    41,
   1226    163,  -130,   -64,  -334,
   1227    226,  -165,  -124,  -110,
   1228   -466,   -61,     6,   229,
   1229   -153,   205,  -145,   242,
   1230   -159,    48,   195,   148,
   1231    -58,    28,    31,   279,
   1232   -303,   185,   279,    -4,
   1233    -61,   197,    59,    86,
   1234   -114,   123,   168,   -52,
   1235     35,    36,   100,   126,
   1236   -407,   102,   -77,   -40,
   1237   -338,    -1,  -342,   156,
   1238   -179,   105,   -34,   -97,
   1239   -185,    84,   -35,   108,
   1240   -133,   107,   -91,  -357,
   1241   -180,    54,  -229,    24,
   1242    -44,    47,    47,  -182,
   1243    -66,    13,    45,     4,
   1244   -339,   251,    64,   226,
   1245    -42,   101,  -350,   275,
   1246    -99,   398,   142,   121,
   1247    111,    12,  -102,   260,
   1248      0,   505,   260,   -94,
   1249    161,   285,   -96,   224,
   1250     -4,   206,   314,    33,
   1251    167,   139,    88,   204,
   1252   -235,   316,   -60,   -25,
   1253     -8,  -150,  -312,   201,
   1254    -36,   292,    61,  -104,
   1255    -40,   174,  -162,    42,
   1256    -21,   402,   -29,  -351,
   1257     21,   152,  -360,   -93,
   1258     57,   191,   212,  -196,
   1259     76,   158,   -21,   -69,
   1260   -328,  -185,   331,   119,
   1261    -53,   285,    56,   337,
   1262   -107,   -24,   405,    29,
   1263    -18,   137,   272,   277,
   1264   -255,    22,   173,  -191,
   1265    295,   322,   325,   302,
   1266     21,   -27,   332,  -178,
   1267    119,    13,   271,   129,
   1268   -455,  -180,   116,  -191,
   1269   -227,    62,  -148,   524,
   1270   -176,  -287,   282,  -157,
   1271   -243,    13,   199,   430,
   1272    -59,   -49,   115,  -365,
   1273     72,  -172,  -137,    93,
   1274   -138,  -126,   141,   -84,
   1275      5,  -124,    38,   -20,
   1276   -258,   311,   601,   213,
   1277     94,   130,   -61,   502,
   1278     -1,  -157,   485,   313,
   1279    146,   -74,   158,   345,
   1280    276,   135,   280,   -57,
   1281    490,   252,    99,    43,
   1282    267,   -74,   429,   105,
   1283    278,   -23,   119,    94,
   1284   -542,   488,   257,  -115,
   1285    -84,  -244,  -438,   478,
   1286   -113,  -545,   387,   101,
   1287    -95,  -306,   111,   498,
   1288     95,   166,    22,  -301,
   1289    420,   -15,   -58,   -78,
   1290    270,    29,   122,  -282,
   1291    160,  -240,    50,   -38};
   1292 
   1293 static Word16 dico23_isf_36b[SIZE_BK23_36b*7] = {
   1294 
   1295     81,   -18,    68,   -27,  -122,  -280,    -4,
   1296     45,  -177,   209,   -30,  -136,   -74,   131,
   1297    -44,   101,   -75,   -88,   -48,  -137,   -54,
   1298   -245,   -28,    63,   -18,  -112,  -103,    58,
   1299    -79,    -6,   220,   -65,   114,   -35,   -50,
   1300    109,   -65,   143,  -114,   129,    76,   125,
   1301    166,    90,   -61,  -242,   186,   -74,   -43,
   1302    -46,   -92,    49,  -227,    24,  -155,    39,
   1303     67,    85,    99,   -42,    53,  -184,  -281,
   1304    142,  -122,     0,    21,  -142,   -15,   -17,
   1305    223,    92,   -21,   -48,   -82,   -14,  -167,
   1306     51,   -37,  -243,   -30,   -90,    18,   -56,
   1307     54,   105,    74,    86,    69,    13,  -101,
   1308    196,    72,   -89,    43,    65,    19,    39,
   1309    121,    34,   131,   -82,    25,   213,  -156,
   1310    101,  -102,  -136,   -21,    57,   214,    22,
   1311     36,  -124,   205,   204,    58,  -156,   -83,
   1312     83,  -117,   137,   137,    85,   116,    44,
   1313    -92,  -148,   -68,    11,  -102,  -197,  -220,
   1314    -76,  -185,   -58,   132,   -26,  -183,    85,
   1315     -7,   -31,    -2,    23,   205,  -151,    10,
   1316    -27,   -37,    -5,   -18,   292,   131,     1,
   1317    117,  -168,     9,   -93,    80,   -59,  -125,
   1318   -182,  -244,    98,   -24,   135,   -22,    94,
   1319    221,    97,   106,    42,    43,  -160,    83,
   1320     25,   -64,   -21,     6,    14,   -15,   154,
   1321    126,    15,  -140,   150,   -10,  -207,  -114,
   1322     79,   -63,  -211,   -70,   -28,  -217,   165,
   1323     46,    38,   -22,   281,   132,   -62,   109,
   1324    112,    54,  -112,   -93,   208,    27,   296,
   1325    115,    10,  -147,    41,   216,    42,  -276,
   1326     50,  -115,  -254,   167,   117,    -2,    61,
   1327     17,   144,    34,   -72,  -186,  -150,   272,
   1328    -29,   -66,   -89,   -95,  -149,   129,   251,
   1329    122,     0,   -50,  -234,   -91,    36,    26,
   1330   -105,  -102,   -88,  -121,  -236,    -7,   -11,
   1331   -204,   109,     5,  -191,   105,   -15,   163,
   1332    -80,    32,   -24,  -209,    41,   294,    70,
   1333   -106,   -94,  -204,  -118,   120,   -50,   -37,
   1334    -82,  -241,    46,  -131,   -29,   150,   -55,
   1335     33,   155,   120,   -89,    -8,     7,    62,
   1336    213,    82,    61,    18,  -161,   144,   152,
   1337     30,   131,    65,   -87,  -255,   -17,  -107,
   1338     -8,    85,   -64,    51,  -162,   223,   -53,
   1339   -134,   261,    69,   -56,   218,    72,  -111,
   1340      2,   155,  -113,   -87,    49,    85,   -28,
   1341   -163,    42,    -1,  -196,     7,    39,  -245,
   1342     14,  -137,   -79,    11,  -160,   202,  -293,
   1343    -94,    33,   208,   100,    56,   -44,   326,
   1344    -78,   -41,   232,    13,  -142,   227,    80,
   1345    -16,   -87,   201,    33,  -133,    15,  -183,
   1346    -58,  -192,   -47,   184,  -128,   133,    99,
   1347   -205,    11,  -155,    78,    52,    72,   141,
   1348   -246,    26,    99,   151,    59,   115,   -64,
   1349    -79,   -47,   -16,   -14,     6,    47,   -43,
   1350    -72,  -178,   -27,   162,   112,    43,  -174,
   1351   -175,   238,   186,    71,   -54,  -188,   -76,
   1352   -225,   233,    39,   -39,  -158,   122,    44,
   1353    -26,    43,    84,   130,   -93,   -51,    22,
   1354      3,    92,  -150,   136,  -182,   -57,    97,
   1355   -131,   179,   -78,    80,    91,  -165,    90,
   1356     -2,   148,    15,   130,    65,   175,   117,
   1357   -138,   114,  -137,   132,     3,   -10,  -186,
   1358    140,    -4,   -37,   254,   -62,    92,  -109};
   1359 
   1360 
   1361