qpisf_2s.tab 52 KB

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