qpisf_2s.tab revision e2e838afcf03e603a41a0455846eaf9614537c16
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 */
42static 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
66static 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
329static 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
593static 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
667static 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
804static 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
940static 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
980static 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
1031static 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
1162static 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
1293static 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