dec_rom.c
上传用户:dangjiwu
上传日期:2013-07-19
资源大小:42019k
文件大小:61k
源码类别:

Symbian

开发平台:

Visual C++

  1. /*
  2.  *===================================================================
  3.  *  3GPP AMR Wideband Floating-point Speech Codec
  4.  *===================================================================
  5.  */
  6. #include "typedef.h"
  7. extern const Word16 D_ROM_isp[];
  8. extern const Word16 D_ROM_isf[];
  9. extern const Word16 D_ROM_interpol_frac[];
  10. extern const Word16 D_ROM_inter4_2[];
  11. extern const Word16 D_ROM_pdown_unusable[];
  12. extern const Word16 D_ROM_pdown_usable[];
  13. extern const Word16 D_ROM_cdown_unusable[];
  14. extern const Word16 D_ROM_cdown_usable[];
  15. extern const Word16 D_ROM_qua_gain6b[];
  16. extern const Word16 D_ROM_qua_gain7b[];
  17. extern const Word16 D_ROM_pow2[];
  18. extern const Word16 D_ROM_isqrt[];
  19. extern const Word16 D_ROM_log2[];
  20. extern const Word16 D_ROM_fir_up[];
  21. extern const Word16 D_ROM_fir_6k_7k[];
  22. extern const Word16 D_ROM_fir_7k[];
  23. extern const Word16 D_ROM_hp_gain[];
  24. extern const Word16 D_ROM_ph_imp_low[];
  25. extern const Word16 D_ROM_ph_imp_mid[];
  26. extern const Word16 D_ROM_dico1_isf[];
  27. extern const Word16 D_ROM_dico2_isf[];
  28. extern const Word16 D_ROM_dico21_isf_36b[];
  29. extern const Word16 D_ROM_dico22_isf_36b[];
  30. extern const Word16 D_ROM_dico23_isf_36b[];
  31. extern const Word16 D_ROM_dico21_isf[];
  32. extern const Word16 D_ROM_dico22_isf[];
  33. extern const Word16 D_ROM_dico23_isf[];
  34. extern const Word16 D_ROM_dico24_isf[];
  35. extern const Word16 D_ROM_dico25_isf[];
  36. extern const Word16 D_ROM_dico1_isf_noise[];
  37. extern const Word16 D_ROM_dico2_isf_noise[];
  38. extern const Word16 D_ROM_dico3_isf_noise[];
  39. extern const Word16 D_ROM_dico4_isf_noise[];
  40. extern const Word16 D_ROM_dico5_isf_noise[];
  41. extern const Word16 D_ROM_mean_isf[];
  42. extern const Word16 D_ROM_mean_isf_noise[];
  43. extern const Word16 D_ROM_cos[];
  44. #define L_SUBFR      64      /* Subframe size                              */
  45. #define L_FIR        31
  46. #define ORDER        16      /* Order of linear prediction filter          */
  47. #define M            16      /* Order of LP filter                         */
  48. #define NB_SUBFR     4       /* Number of subframe per frame               */
  49. #define UP_SAMP      4
  50. #define L_INTERPOL2  16
  51. #define SIZE_BK1  256
  52. #define SIZE_BK2  256
  53. #define SIZE_BK21 64
  54. #define SIZE_BK22 128
  55. #define SIZE_BK23 128
  56. #define SIZE_BK24 32
  57. #define SIZE_BK25 32
  58. #define SIZE_BK21_36b 128
  59. #define SIZE_BK22_36b 128
  60. #define SIZE_BK23_36b 64
  61. #define SIZE_BK_NOISE1  64
  62. #define SIZE_BK_NOISE2  64
  63. #define SIZE_BK_NOISE3  64
  64. #define SIZE_BK_NOISE4  32
  65. #define SIZE_BK_NOISE5  32
  66. /* 16-byte align start */
  67. /*
  68.  * isf codebooks:  two-stage VQ with split-by-5 in 2nd stage
  69.  *
  70.  *  codebook   vector dimension    number of vectors
  71.  *  ~~~~~~~~   ~~~~~~~~~~~~~~~~    ~~~~~~~~~~~~~~~~~
  72.  *     1_1            9                  256
  73.  *     1_2            7                  256
  74.  *     2_1            3                  64
  75.  *     2_2            3                  128
  76.  *     2_3            3                  128
  77.  *     2_4            3                  32
  78.  *     2_5            4                  32
  79.  */
  80. /*
  81.  * 1st stage codebook; 1st split: isf0 to isf8
  82.  */
  83. const Word16 D_ROM_dico1_isf[SIZE_BK1 * 9] = {
  84.    579, 1081, 1035, 390, 3, -263, -198, -82, 38,
  85.    18, -68, -12, 313, 761, 405, 249, 111, -76,
  86.    740, 1263, 1292, 1006, 997, 1019, 1017, 976, 923,
  87.    -91, 827, 948, 648, 613, 535, 522, 490, 421,
  88.    41, -44, -281, -472, 652, 534, 193, 135, -90,
  89.    41, -121, -356, -60, 663, 307, 61, -48, -344,
  90.    557, 946, 1049, 867, 846, 990, 1112, 1262, 1241,
  91.    -118, -204, 328, 512, 870, 793, 610, 402, 186,
  92.    156, 293, 74, -338, -475, -897, -594, -161, -497,
  93.    226, 131, -138, 307, 169, -271, -164, -387, -624,
  94.    62, -32, -61, -252, -541, -828, -1027, -523, -662,
  95.    102, -61, 141, 112, -270, -251, -541, 25, -150,
  96.    6, -132, -356, -686, -96, -322, -522, -31, -326,
  97.    -36, -209, -521, -229, 307, -132, -5, -99, -384,
  98.    60, -51, -237, -668, -973, -407, -708, -75, -172,
  99.    26, -138, -266, 111, -302, 43, -278, -356, -359,
  100.    570, 822, 496, -154, -312, -92, 137, 279, 371,
  101.    -146, 368, 409, 68, 6, 77, 167, 202, 162,
  102.    633, 898, 996, 756, 662, 683, 783, 909, 996,
  103.    -103, 294, 607, 415, 483, 462, 480, 431, 408,
  104.    -120, -338, -612, -524, 584, 331, 92, 433, 276,
  105.    -178, -293, -154, -41, 269, 100, -9, 213, 160,
  106.    830, 736, 278, 820, 1254, 686, 712, 1039, 473,
  107.    -218, -304, 463, 454, 397, 273, 202, 286, 273,
  108.    -232, 7, 6, -388, -472, -427, -378, -167, -100,
  109.    -294, -183, 134, -47, 101, -88, -84, -117, -3,
  110.    57, 17, -202, -634, -989, -1119, -533, 176, -36,
  111.    120, -28, 23, 111, -319, 318, -22, -77, 266,
  112.    -271, -464, -434, -658, -640, -385, -385, -99, -69,
  113.    -198, -259, -266, -44, -39, -139, -137, 171, 66,
  114.    9, -145, -377, -846, -1000, -111, -325, 342, 135,
  115.    -81, -286, -380, 192, -57, 307, 76, -24, -140,
  116.    677, 702, 247, 56, 249, 141, -105, -236, -99,
  117.    36, -39, -69, 348, 198, -93, 322, 91, -72,
  118.    503, 885, 1508, 1307, 1282, 1172, 1119, 1209, 1061,
  119.    416, 719, 989, 1227, 1001, 1052, 954, 741, 1044,
  120.    -127, -376, -657, 139, 623, 223, 501, 306, 220,
  121.    -113, -384, -796, 504, 438, 85, 213, -83, -194,
  122.    585, 1132, 1233, 1091, 1247, 1433, 1512, 1448, 1314,
  123.    -174, -422, 7, 1155, 1089, 1182, 1003, 945, 806,
  124.    8, -126, -317, -103, -351, -695, -98, -268, -537,
  125.    33, -103, -290, 167, -39, -407, 44, -208, -375,
  126.    104, -23, -64, -291, -637, -851, -1084, -61, -112,
  127.    -75, -306, -434, 218, -148, -354, -680, -133, -216,
  128.    -121, -377, -718, -97, -130, -361, -156, -379, -599,
  129.    -56, -254, -586, 235, 157, -214, 11, -260, -149,
  130.    -124, -267, -397, -580, -593, -527, -805, -385, 346,
  131.    -193, -440, -708, -351, -141, -255, -499, -147, -185,
  132.    448, 660, 494, 208, 509, 461, 338, 291, 149,
  133.    -223, 88, 335, 159, 212, 191, 286, 308, 205,
  134.    -31, 469, 803, 659, 619, 658, 843, 987, 1113,
  135.    -171, -242, 514, 362, 295, 524, 552, 694, 585,
  136.    -64, -308, -448, -21, 284, 786, 446, 289, 92,
  137.    -218, -390, -7, 169, 206, 330, 352, 408, 358,
  138.    -36, 702, 959, 859, 861, 1115, 1269, 1357, 1305,
  139.    -133, -341, -65, 678, 417, 440, 486, 518, 780,
  140.    33, -44, -191, -344, -461, -755, -201, 217, -31,
  141.    -353, -547, -44, 123, -61, -68, -79, 29, 60,
  142.    73, -57, -406, -766, -1243, -1203, 240, 400, 165,
  143.    -73, -282, -601, -213, -171, -375, 332, 35, -103,
  144.    -29, -207, -553, -476, -638, -908, 172, -22, -135,
  145.    -192, -239, -164, -103, -111, -47, 153, 125, 110,
  146.    -1, -203, -570, -1030, -1424, -535, 155, 1, 147,
  147.    -333, -653, -865, -197, -158, -21, -44, 95, 108,
  148.    389, 588, 490, 33, -237, -524, -628, -136, -260,
  149.    40, -177, -462, 453, 862, 380, 131, -130, -405,
  150.    842, 1678, 1841, 1549, 1474, 1256, 1082, 905, 742,
  151.    370, 1216, 1768, 1633, 1212, 636, 22, -330, 71,
  152.    -76, -281, -741, -742, 898, 619, 277, 71, -222,
  153.    -32, -265, -556, -25, 994, 682, 305, 126, -165,
  154.    73, 738, 893, 968, 993, 1768, 2273, 1840, 1391,
  155.    -69, -349, -585, 234, 1158, 903, 626, 510, 251,
  156.    -1, -99, -272, -210, -603, -351, -540, -811, -383,
  157.    -16, -230, -504, 410, 149, -205, -343, -651, -639,
  158.    103, -9, -227, -205, -562, -781, -1079, -1208, -156,
  159.    143, 63, -135, -67, -317, -602, -784, -1154, -640,
  160.    -144, -391, -674, -622, -200, -254, -660, -947, -395,
  161.    -40, -250, -625, 27, 543, 94, -131, -386, -673,
  162.    -123, -371, -757, -451, -564, -614, -415, -711, -35,
  163.    -116, -309, -593, -268, 239, -33, -338, -650, -135,
  164.    94, 251, 554, 57, -312, -423, -154, -57, 235,
  165.    -268, -71, 381, 114, -44, -87, 125, 173, 133,
  166.    1513, 1714, 1238, 534, 276, 315, 461, 459, 508,
  167.    -131, -19, 1149, 670, 486, 356, 309, 369, 296,
  168.    -223, -501, -899, -722, -70, 6, 131, 310, 394,
  169.    -99, -303, -517, 249, 64, -53, 135, -11, 453,
  170.    -147, -399, -730, -401, 817, 738, 802, 749, 575,
  171.    -154, -435, -739, 800, 593, 366, 529, 318, 326,
  172.    -224, 45, -39, -387, -515, -518, -608, -384, -321,
  173.    -315, -377, 143, -101, -113, -377, -177, -144, -12,
  174.    117, 40, -239, -651, -1051, -581, -737, -990, -328,
  175.    26, -50, -157, -23, -453, -283, -531, -546, 192,
  176.    -252, -501, -743, -589, -627, -499, -328, -118, -72,
  177.    -324, -494, -244, -306, -144, -177, -262, -135, -78,
  178.    -36, -234, -519, -961, -1290, -314, -479, -371, -45,
  179.    -95, -292, -535, -8, -300, 112, -164, -277, 198,
  180.    -99, -128, 880, 836, 579, 351, 23, -95, -217,
  181.    -27, -258, 124, 1011, 597, 425, 144, 7, -73,
  182.    421, 1293, 1640, 1623, 1742, 1617, 1499, 1284, 1006,
  183.    -95, 752, 1680, 1569, 1618, 1436, 1200, 980, 712,
  184.    -69, -300, -683, -435, 1132, 899, 504, 332, 109,
  185.    -74, -323, -637, 563, 1074, 608, 371, 105, -49,
  186.    -78, 831, 1194, 1110, 1378, 1481, 1492, 1365, 1217,
  187.    -259, -121, 1440, 1334, 1628, 1490, 1438, 1223, 933,
  188.    -82, -306, -613, -222, -378, -675, -545, -671, -845,
  189.    53, -124, -347, 422, 52, -125, -270, -529, 9,
  190.    79, -89, -320, -662, -999, -1199, -1243, -676, -297,
  191.    -68, -273, -611, 137, -146, -397, -627, -845, -220,
  192.    -112, -346, -797, -826, 234, -132, -188, -278, -522,
  193.    -159, -405, -734, -419, 293, 74, -167, -167, 184,
  194.    -153, -437, -833, -1080, -336, -472, -561, -340, -253,
  195.    -169, -423, -820, -904, -131, -19, -346, -604, 31,
  196.    33, -31, 312, 62, -148, 49, -59, 564, 486,
  197.    -306, -333, 194, -44, 67, 72, 147, 205, 243,
  198.    -207, -49, 1360, 983, 969, 991, 1014, 1110, 973,
  199.    -211, -172, 883, 627, 711, 674, 705, 798, 746,
  200.    -88, -325, -763, -974, 687, 908, 514, 382, 172,
  201.    -292, -612, -805, 63, 131, 270, 259, 352, 348,
  202.    -235, -84, 955, 818, 1120, 1289, 1559, 1480, 1285,
  203.    -180, -461, -614, 657, 691, 745, 854, 783, 713,
  204.    -97, -309, -477, -614, -777, -734, -768, -526, -472,
  205.    -344, -476, -35, -169, 49, -77, -150, -240, -141,
  206.    -52, -268, -639, -919, -1278, -1113, -342, -333, -151,
  207.    -68, -242, -585, -73, -209, -478, -159, -429, 133,
  208.    -197, -499, -1005, -1268, -272, -224, -105, -67, 17,
  209.    -363, -618, -414, -116, -62, 20, 10, 116, 108,
  210.    -195, -475, -906, -1260, -891, -441, -277, -142, -28,
  211.    -226, -519, -950, -700, -275, -266, -116, -105, 82,
  212.    404, 511, 520, 327, 17, -194, -333, -536, -586,
  213.    -114, -130, 276, 237, 204, 342, 135, -16, -111,
  214.    670, 1208, 1168, 860, 742, 601, 528, 403, 309,
  215.    397, 621, 966, 752, 579, 398, 400, 329, 252,
  216.    191, 180, -137, -467, 272, 106, -95, 17, -192,
  217.    -80, -290, -626, 194, 598, 196, 21, -281, 77,
  218.    510, 864, 1108, 807, 939, 902, 925, 717, 481,
  219.    137, 367, 534, 764, 670, 382, 296, 153, 84,
  220.    303, 497, 144, -85, -125, -539, -482, -464, -764,
  221.    233, 347, 68, -147, 169, -210, -242, -226, -482,
  222.    307, 422, 154, -175, -386, -722, -724, -904, -1015,
  223.    309, 308, 160, -60, -470, -420, -598, -791, -219,
  224.    68, 121, -137, -560, -146, -446, -515, -494, -729,
  225.    130, 53, -227, 46, 474, 32, -161, -192, -490,
  226.    213, 164, -71, -465, -876, -161, -456, -587, -48,
  227.    218, 117, 39, 177, -194, -88, -226, -418, 50,
  228.    210, 547, 569, 279, 121, -44, -50, 10, -84,
  229.    58, 140, 182, -5, 267, 117, 106, 211, 198,
  230.    539, 835, 913, 719, 617, 544, 591, 565, 642,
  231.    153, 559, 872, 460, 222, 108, 188, 180, 183,
  232.    158, 119, 284, -153, -271, 229, 87, 110, -57,
  233.    -183, 82, 118, 21, 13, 40, 118, 191, 185,
  234.    162, 889, 654, 108, -34, 244, 488, 561, 532,
  235.    163, 56, 609, 341, 50, 329, 68, 266, 218,
  236.    100, 206, 18, -304, -107, -436, -487, -65, -306,
  237.    -86, 154, 134, -30, -45, -73, -104, -80, -96,
  238.    245, 330, 10, -440, -849, -1082, 79, 40, -265,
  239.    196, 372, 272, -181, -493, -389, 275, 80, -59,
  240.    2, -12, -246, -505, -100, -436, 21, -187, -431,
  241.    -221, -48, 36, -271, -186, -147, -109, 26, 71,
  242.    213, 140, 72, -351, -620, -84, -363, 69, 46,
  243.    91, 167, -3, -95, -99, -105, -48, 114, 147,
  244.    259, 249, 172, 607, 406, 52, 59, -189, -320,
  245.    115, -85, -54, 574, 128, 226, -59, -253, 130,
  246.    -62, 1033, 1308, 1035, 1127, 1098, 1029, 961, 823,
  247.    39, 364, 757, 940, 728, 660, 659, 583, 770,
  248.    -115, -338, -760, -471, 394, 37, 441, 178, 6,
  249.    -57, -305, -525, 796, 453, 188, -4, -114, 248,
  250.    71, 444, 797, 731, 1096, 1157, 1222, 1029, 811,
  251.    135, 359, 551, 425, 749, 815, 874, 704, 502,
  252.    132, 247, 0, -206, -449, -750, -258, -514, -633,
  253.    248, 249, 91, 121, -195, -499, -90, -282, -435,
  254.    78, 20, -277, -623, -983, -1224, -415, -458, -639,
  255.    347, 509, 208, -179, -464, -728, -76, -237, -486,
  256.    -103, -343, -756, -713, -265, -609, -191, -398, -636,
  257.    -121, -383, -749, 567, 252, -36, -354, -417, -50,
  258.    204, 100, -149, -650, -1081, -47, -7, -263, 111,
  259.    -46, -180, -267, -324, -562, -394, -692, 398, 292,
  260.    482, 670, 683, 624, 442, 165, 116, 36, -149,
  261.    108, 247, 291, 247, 355, 122, 109, 224, 296,
  262.    -14, 945, 990, 801, 755, 815, 847, 913, 892,
  263.    292, 349, 725, 482, 388, 329, 429, 620, 667,
  264.    -34, 197, 213, -127, 84, 494, 620, 575, 375,
  265.    126, 207, 172, 167, 362, 202, 296, 395, 455,
  266.    -6, 250, 539, 467, 636, 801, 1149, 1287, 1118,
  267.    27, 240, 369, 280, 440, 411, 634, 892, 953,
  268.    159, 170, -58, -395, -797, -690, 77, -211, -334,
  269.    -5, -28, -13, -74, -335, -603, 300, 88, -205,
  270.    82, -33, -364, -698, -1203, -1153, 110, -146, -289,
  271.    113, 1, -243, -588, -994, -496, 414, 160, 42,
  272.    -56, -247, -440, -693, -996, -479, 11, -178, -357,
  273.    -151, -353, -327, -211, -340, 141, 65, 425, 453,
  274.    34, -169, -455, -932, -1215, 138, 499, 256, 324,
  275.    68, 139, -15, -547, -478, 17, 306, 502, 481,
  276.    -32, -134, 445, 129, -143, -244, -503, -507, -599,
  277.    61, -140, -345, 496, 458, -2, 20, -227, -514,
  278.    394, 1765, 1666, 1339, 1117, 806, 642, 479, 380,
  279.    215, 519, 920, 1053, 1090, 791, 528, 290, 155,
  280.    -54, -233, -647, -602, 639, 294, -2, -167, -442,
  281.    -78, -315, -791, -113, 820, 403, 158, -116, -356,
  282.    529, 1851, 2003, 1228, 622, -41, -416, 344, 819,
  283.    -105, -379, -236, 1224, 893, 749, 568, 356, 214,
  284.    -17, -199, -144, 50, -283, -247, -578, -846, -1087,
  285.    69, -11, -381, -206, 209, -284, -387, -416, -716,
  286.    39, -5, -145, -374, -682, -909, -1074, -1169, -1066,
  287.    287, 226, 67, -221, -662, -171, -421, -642, -707,
  288.    -132, -348, -538, -448, -20, -4, -354, -748, -933,
  289.    4, -75, -289, -598, 317, 52, -208, -297, -559,
  290.    -88, -264, -358, -589, -631, -248, -523, -822, -1071,
  291.    70, -8, 54, -314, -515, 92, -146, -274, -493,
  292.    199, 62, 391, 158, -141, 71, -219, -203, -207,
  293.    152, 40, 329, 162, -29, 48, -149, 108, 127,
  294.    635, 1058, 883, 492, 372, 312, 317, 274, 241,
  295.    267, 722, 1256, 882, 625, 248, 8, -81, -60,
  296.    -58, -138, -291, -600, -12, -2, -39, 147, 117,
  297.    -107, -345, -513, 459, 76, 92, -272, 388, 262,
  298.    362, 516, 203, -409, -716, -831, -331, 185, 209,
  299.    -117, -391, -298, 671, 292, 538, 257, 166, -38,
  300.    -102, -319, -194, -283, -573, -262, -579, -219, -444,
  301.    -235, 78, 11, -168, -101, -229, -263, -321, -123,
  302.    70, 50, -170, -599, -996, -588, -263, -516, -455,
  303.    394, 363, 229, -136, -538, 21, -183, -348, -201,
  304.    -124, -368, -640, -879, -847, -209, -409, -494, -515,
  305.    -127, -341, -541, -425, -510, -10, -252, -473, -291,
  306.    84, -69, -201, -676, -868, 103, -311, -132, -320,
  307.    5, -173, -188, -297, -628, 197, -57, 7, -11,
  308.    49, -160, 56, 558, 111, 33, -311, -440, -463,
  309.    -1, -246, -307, 862, 453, 139, -170, -355, -232,
  310.    279, 966, 1642, 1478, 1463, 1123, 795, 525, 339,
  311.    -197, -38, 1702, 1331, 1252, 950, 692, 504, 426,
  312.    -108, -344, -861, -1172, 444, 354, 88, -46, -220,
  313.    -53, -321, -494, 1113, 744, 364, 198, -34, -75,
  314.    457, 955, 1177, 1214, 1427, 1457, 1345, 917, 539,
  315.    -69, 199, 897, 1140, 1343, 1183, 977, 742, 522,
  316.    122, 44, -269, 27, -155, -562, -307, -590, -773,
  317.    154, 42, -160, 252, -129, -305, -471, -733, -371,
  318.    135, 185, -82, -416, -722, -913, -504, -743, -880,
  319.    149, 214, -84, -329, -680, -835, -426, -661, -81,
  320.    -128, -380, -735, -998, -337, 17, -182, -467, -697,
  321.    -84, -290, -510, -592, 13, 440, 154, -38, -279,
  322.    70, -61, -246, -727, -1047, -80, -381, -535, -704,
  323.    178, -2, -146, -670, -938, 482, 138, 63, 65,
  324.    -11, 15, 772, 443, 142, -20, -209, -126, -161,
  325.    -32, -249, 95, 552, 124, 30, -343, 82, -86,
  326.    148, 751, 1515, 1105, 867, 606, 474, 448, 399,
  327.    -163, -257, 899, 1097, 906, 751, 502, 390, 294,
  328.    -51, -258, -447, -806, -368, 763, 464, 364, 183,
  329.    -166, -374, -367, 87, 35, 399, 418, 856, 833,
  330.    -205, -310, 588, 778, 785, 1065, 1118, 1245, 1157,
  331.    -173, -312, 107, 345, 400, 790, 870, 1113, 1001,
  332.    -7, -120, -387, -410, -614, -943, -226, -384, -491,
  333.    -203, -288, -51, -331, -90, -178, -408, -573, -338,
  334.    56, -29, -273, -627, -1041, -798, -247, -467, 148,
  335.    66, -2, -205, -205, -575, -349, -57, -352, -58,
  336.    -45, -225, -471, -924, -497, 77, -32, 44, -135,
  337.    -277, -491, -497, -502, -424, -202, -137, 77, 96,
  338.    26, -179, -469, -1008, -1260, 262, -35, -132, -259,
  339.    -66, -232, -447, -533, -789, -191, -100, -267, 364
  340. };
  341. /*
  342.  * 1st stage codebook; 2nd split:   isf9 to isf15
  343.  */
  344. const Word16 D_ROM_dico2_isf[SIZE_BK2 * 7] = {
  345.    1357, 1313, 1136, 784, 438, 181, 145,
  346.    636, 648, 667, 568, 442, 217, 362,
  347.    427, 440, 674, 524, 332, 117, -417,
  348.    121, 295, 468, 465, 230, 44, -221,
  349.    -147, -240, 149, 80, 390, 278, 106,
  350.    -418, -556, 552, 511, 235, 144, -95,
  351.    43, 193, 274, 150, 67, 34, -273,
  352.    -43, -126, 171, 416, 282, 63, -354,
  353.    -372, -86, -344, -108, -94, -182, -89,
  354.    -600, -840, -200, 465, 258, -11, -253,
  355.    -48, 329, 97, -290, -543, -795, -354,
  356.    -570, -117, 187, 10, -133, -416, -76,
  357.    -618, -129, -247, -371, 45, -76, 277,
  358.    -1022, -1079, 126, 474, 254, 127, 52,
  359.    -281, 76, -167, -361, -283, -551, -283,
  360.    -119, -52, -1, 134, -32, -204, -415,
  361.    1064, 827, 637, 684, 464, 209, 12,
  362.    482, 416, 449, 371, 335, 294, 194,
  363.    719, 576, 365, 135, 113, 91, -199,
  364.    298, 176, 493, 366, 194, 163, 36,
  365.    -35, -236, -259, -36, -4, 99, 152,
  366.    -98, -306, -27, 228, 90, 111, -86,
  367.    91, 13, -211, -258, -106, 86, -64,
  368.    73, -35, -57, -31, 162, 35, -192,
  369.    -109, -335, -629, -66, -61, -128, 322,
  370.    -495, -669, -728, 193, 31, -220, 122,
  371.    324, 95, -89, -91, -409, -710, -154,
  372.    0, -234, 92, 33, -343, -609, -220,
  373.    -343, -408, -476, -655, -153, 82, 222,
  374.    -490, -745, -255, 49, -48, 135, -127,
  375.    119, -67, -328, -390, -272, -545, -56,
  376.    -57, -130, -10, -7, -164, -47, -22,
  377.    984, 1064, 961, 568, 210, -27, 16,
  378.    811, 691, 754, 514, 224, -35, 166,
  379.    662, 704, 618, 386, 57, -211, -257,
  380.    510, 359, 418, 393, 91, -144, -18,
  381.    -193, -31, -27, 223, 89, -143, 24,
  382.    -112, -98, 471, 319, 185, 3, 175,
  383.    252, 146, -47, 272, 48, -211, -234,
  384.    146, 69, 203, 364, 68, -52, 51,
  385.    -259, -478, -697, -349, -758, -501, 63,
  386.    -501, -769, -289, 79, -311, -497, -106,
  387.    251, 53, -235, -469, -895, -884, 145,
  388.    -416, -551, 140, -133, -523, -775, 44,
  389.    -326, -423, -713, -497, -86, -431, 99,
  390.    -757, -772, -160, -76, -46, -32, 379,
  391.    85, -35, -200, -401, -663, -1040, -247,
  392.    -180, -330, -92, -376, 27, -183, -110,
  393.    1279, 1086, 781, 502, 324, 164, 157,
  394.    682, 466, 449, 277, 146, 28, 409,
  395.    635, 472, 390, 107, -232, -538, -139,
  396.    196, 396, 332, 213, 209, -29, -81,
  397.    150, -95, -312, 76, -77, -320, -50,
  398.    46, 9, 47, 175, 139, 30, 384,
  399.    218, 206, -24, -250, -96, -276, -183,
  400.    26, 119, 38, 14, -4, -133, -52,
  401.    -477, -614, -987, -715, -631, -813, 200,
  402.    -744, -1009, -1065, -745, -631, -171, 18,
  403.    -137, -251, -483, -613, -980, -1203, 12,
  404.    -605, -767, -562, -686, -1088, -515, 58,
  405.    -202, -428, -782, -1072, -96, -234, -179,
  406.    -480, -709, -1070, -897, -131, -92, 321,
  407.    -145, -193, -512, -729, -572, -765, -210,
  408.    -331, -585, -525, -631, -281, -208, -303,
  409.    1165, 1104, 939, 828, 716, 426, 155,
  410.    6, -109, 820, 778, 415, 113, -27,
  411.    381, 339, 314, 265, 121, -9, -474,
  412.    -373, 47, 584, 442, 99, -231, -113,
  413.    -496, -38, -285, 262, 305, 170, 4,
  414.    -587, -556, 69, 66, 471, 354, 13,
  415.    -138, 70, -18, 106, 67, 167, -302,
  416.    -445, -141, 185, 191, 151, 83, -133,
  417.    -257, -521, -720, -198, 134, -46, -182,
  418.    -819, -1168, -777, 512, 359, 95, -113,
  419.    137, -2, -74, -138, -401, -114, -371,
  420.    -242, -466, 204, 223, -31, -212, -192,
  421.    -532, -637, -466, -686, 256, 277, -139,
  422.    -1141, -1244, -381, -75, -54, 14, 88,
  423.    -311, 115, -143, -499, -343, 124, -416,
  424.    -616, -147, -135, 43, -4, 121, -369,
  425.    835, 783, 641, 390, 355, 350, 64,
  426.    72, 194, 443, 467, 436, 219, 372,
  427.    464, 369, 192, 4, -156, -72, -226,
  428.    57, 206, 303, 205, 188, 101, 265,
  429.    -40, -205, -488, -184, 276, 64, -26,
  430.    -217, -433, -297, 137, 328, 308, -289,
  431.    378, 81, -308, -465, 57, -37, 227,
  432.    -100, 24, -36, -151, 199, 8, 143,
  433.    -426, -697, -1059, -133, 388, 161, 321,
  434.    -644, -1023, -1271, 39, 66, -123, 70,
  435.    372, 177, -173, -556, -553, -304, -189,
  436.    -117, -369, -425, -122, -462, -152, -73,
  437.    -649, -850, -1189, -767, 497, 360, 222,
  438.    -798, -1139, -1455, -190, 430, 234, 179,
  439.    42, -94, -405, -692, 38, -202, -246,
  440.    -169, -366, -290, -88, -64, 32, -292,
  441.    1010, 923, 938, 710, 465, 230, 342,
  442.    217, 300, 1054, 675, 68, -458, -179,
  443.    78, 453, 316, 18, -237, -496, -243,
  444.    167, 21, 424, 215, -91, -303, -170,
  445.    -290, -81, -70, -67, 40, 54, -59,
  446.    -353, -427, -90, 53, 94, 9, 54,
  447.    -28, 318, 283, 15, -240, -58, 79,
  448.    -75, -121, 229, 35, 58, 6, -133,
  449.    -351, -514, -744, -834, -705, -137, 164,
  450.    -1124, -1388, -1055, -230, -73, 40, 36,
  451.    -163, -233, -532, -785, -1170, -697, 96,
  452.    -788, -959, -246, -430, -624, -165, -8,
  453.    -856, -540, -630, -907, -337, -70, 76,
  454.    -937, -1042, -659, -733, -208, 199, -26,
  455.    -523, 78, -98, -501, -869, -890, -81,
  456.    -624, -703, -45, -348, -25, 87, -186,
  457.    1005, 823, 546, 249, 90, -22, 207,
  458.    298, 397, 381, 319, 200, 62, 303,
  459.    473, 379, 133, -247, -632, -441, 75,
  460.    284, 208, 391, 115, -25, 44, 95,
  461.    -72, 79, -95, -63, -129, -293, 203,
  462.    -164, -349, 115, 122, 69, -1, 378,
  463.    348, 170, 99, 58, -179, -302, 188,
  464.    -190, -2, 150, 23, -51, -11, 216,
  465.    -615, -863, -1090, -1427, -802, -48, -6,
  466.    -961, -1276, -1548, -727, -58, 56, 223,
  467.    -124, -255, -561, -988, -1277, -148, -82,
  468.    -480, -660, -891, -1191, -1339, -325, 20,
  469.    -621, -917, -1296, -1350, 264, 289, 50,
  470.    -844, -1022, -1345, -1329, -293, 46, 278,
  471.    -260, -468, -829, -1176, -533, -560, -78,
  472.    -215, -484, -822, -1233, -791, 15, -138,
  473.    1301, 1317, 1262, 1048, 716, 357, -64,
  474.    578, 824, 925, 802, 630, 362, 102,
  475.    470, 925, 767, 514, 327, 190, -112,
  476.    225, 492, 495, 437, 598, 384, -45,
  477.    43, 82, -42, 175, 519, 342, -64,
  478.    -304, -154, 159, 576, 403, 221, 327,
  479.    214, 244, 122, -62, 312, 92, -160,
  480.    218, 208, 310, 268, 306, 323, -199,
  481.    -285, -269, -79, -124, -143, -153, 236,
  482.    -205, -384, -426, 344, 59, -185, -184,
  483.    -272, 247, 126, -210, -518, -468, 78,
  484.    -99, -120, 502, 160, -280, -557, 304,
  485.    -423, -17, -283, -443, 215, 212, -140,
  486.    -564, -684, -228, 510, 361, 130, 323,
  487.    -428, 335, 98, -65, 36, -215, -246,
  488.    -362, 51, 364, -16, -234, 150, -165,
  489.    914, 883, 751, 653, 676, 464, -153,
  490.    631, 545, 535, 720, 596, 360, -81,
  491.    783, 712, 512, 439, 341, 251, -391,
  492.    497, 417, 249, 372, 295, 173, -193,
  493.    128, -110, -385, 93, 39, 173, -231,
  494.    216, -59, -253, 462, 389, 154, 69,
  495.    455, 270, -4, -337, -49, 233, -322,
  496.    307, 143, 53, 218, 128, 236, -156,
  497.    -37, -186, -240, -411, -110, 9, 399,
  498.    -140, -365, -628, 258, 380, 214, 277,
  499.    131, 454, 177, -285, -520, 108, -214,
  500.    77, -141, 201, -123, -490, -131, 60,
  501.    -14, -194, -521, -741, 273, 362, -33,
  502.    -362, -566, -287, -228, 161, 237, 317,
  503.    -269, 195, -75, -375, -204, 11, 77,
  504.    -128, -264, -156, -223, -475, 265, 27,
  505.    1238, 1147, 916, 689, 432, 210, -280,
  506.    800, 664, 879, 726, 411, 160, -164,
  507.    454, 686, 536, 275, 147, 46, 111,
  508.    303, 486, 512, 355, 241, 181, -69,
  509.    79, 92, 29, 147, 233, 52, 17,
  510.    -171, 289, 131, 439, 271, 3, -10,
  511.    413, 241, 144, 174, 155, -2, 14,
  512.    58, 217, 247, 219, 149, 175, -18,
  513.    228, -8, -240, -206, -513, -191, 202,
  514.    -96, -272, -454, 33, -300, -575, 46,
  515.    -10, -108, -246, -347, -770, -535, 9,
  516.    -326, -430, -61, -321, -704, -299, 201,
  517.    -1, -280, -603, -419, -185, 18, -36,
  518.    -516, -522, -379, -291, -181, -97, 27,
  519.    -159, -313, -525, -224, -510, -831, -197,
  520.    -292, -459, -59, -310, -562, -143, -351,
  521.    1066, 912, 631, 389, 207, 86, -224,
  522.    596, 512, 596, 505, 314, 122, -48,
  523.    787, 861, 441, -93, -303, 33, -190,
  524.    257, 469, 337, 51, 15, 298, -93,
  525.    295, 73, -119, 25, 36, 23, 108,
  526.    -28, -3, -32, 114, 21, 185, 107,
  527.    482, 305, 15, -279, -319, 52, 96,
  528.    226, 46, 115, 72, -136, 133, -125,
  529.    18, -207, -559, -590, -503, -482, 321,
  530.    -571, -789, -951, -172, -441, -538, 113,
  531.    181, 14, -310, -641, -1001, -202, 159,
  532.    -136, -393, -433, -513, -911, -144, -22,
  533.    72, -265, -706, -954, -159, 53, 332,
  534.    -338, -591, -852, -383, -395, 56, 44,
  535.    43, -158, -464, -897, -631, -157, -294,
  536.    -161, -128, -328, -573, -483, -125, 11,
  537.    1017, 906, 1051, 1005, 679, 341, -102,
  538.    359, 334, 1567, 1314, 723, 105, 10,
  539.    -65, 726, 529, 301, 220, 43, -273,
  540.    -510, 436, 719, 566, 358, 179, 114,
  541.    -560, 298, 133, -120, 342, 225, 14,
  542.    -899, -101, 217, 617, 400, 146, -58,
  543.    -41, 352, 82, -196, 39, 121, -167,
  544.    -212, 59, 447, 284, 423, 250, -169,
  545.    -371, -484, -596, 30, -41, 249, 22,
  546.    -372, -650, -794, 477, 445, 216, -79,
  547.    -352, 275, 17, -443, -929, 92, 19,
  548.    -699, -696, 431, 264, -49, -310, 182,
  549.    -978, -217, -430, -400, 101, 261, 72,
  550.    -929, -889, -357, -13, 463, 378, 236,
  551.    -826, 56, 30, -299, -360, -128, -51,
  552.    -878, -299, -111, 75, 65, 36, 3,
  553.    817, 368, -25, 354, 697, 591, -173,
  554.    309, 212, 222, 751, 484, 140, -56,
  555.    593, 379, 70, -8, 258, 180, 110,
  556.    165, -46, 255, 297, 219, 273, 105,
  557.    160, -70, -358, -181, 379, 330, 319,
  558.    -238, -369, -198, 740, 580, 319, -143,
  559.    201, 109, -202, -456, 328, 276, -141,
  560.    203, 170, 111, 42, 207, 360, 188,
  561.    -345, -399, -513, -233, 650, 422, 81,
  562.    -635, -961, -1220, 463, 539, 204, 209,
  563.    202, -25, -194, -498, -787, 193, -143,
  564.    -449, -538, 195, -106, -331, 68, 62,
  565.    -228, -477, -840, -576, 317, 128, 283,
  566.    -671, -937, -807, -114, 391, 335, -62,
  567.    246, 2, -314, -679, -303, 180, -88,
  568.    -107, -272, 90, -198, -28, 290, -112,
  569.    885, 1149, 1021, 712, 496, 281, -83,
  570.    269, 492, 787, 643, 347, 70, 124,
  571.    336, 636, 499, 92, -229, -179, 191,
  572.    26, 402, 564, 340, 149, -11, 135,
  573.    -440, 561, 470, 204, -72, -186, 140,
  574.    -720, 14, 355, 229, 68, -133, 465,
  575.    110, 310, 103, 12, 106, 29, 158,
  576.    -178, 113, 161, 142, 121, 115, 27,
  577.    -651, -414, -645, -152, -164, -13, -429,
  578.    -639, -944, -681, -104, -81, 52, -189,
  579.    -663, -164, -316, -683, -954, -205, -83,
  580.    -609, -669, -172, -517, -694, 283, -80,
  581.    -646, -152, -383, -678, -246, -40, -143,
  582.    -747, -796, -745, -390, -98, 43, 275,
  583.    -599, -199, -398, -433, -436, -538, 31,
  584.    -1107, -568, -376, -265, -126, -21, 1,
  585.    847, 573, 308, 392, 305, 101, 55,
  586.    273, 293, 201, 267, 346, 201, 123,
  587.    727, 480, 226, 2, -65, -138, 164,
  588.    273, 208, 173, 292, 12, 253, 174,
  589.    340, 207, 180, 88, 116, 46, 475,
  590.    -460, -166, -30, 13, 110, 173, 396,
  591.    137, 88, 43, -137, -94, 34, 284,
  592.    96, -14, 226, 40, 63, 70, 130,
  593.    -467, -735, -1012, -1174, -307, 305, -67,
  594.    -612, -920, -1146, -567, -8, 92, -25,
  595.    -182, -271, -492, -754, -857, 287, -75,
  596.    -494, -787, -689, -683, -709, 137, -326,
  597.    -288, -550, -903, -1105, 334, 321, -62,
  598.    -354, -653, -834, -445, 1, 377, -152,
  599.    -162, -306, -608, -937, -297, 247, -192,
  600.    -234, -477, -244, -488, -266, 342, -332
  601. };
  602. /*
  603.  * 2nd stage codebook; 1st split: isf2_0 to isf2_2
  604.  */
  605. const Word16 D_ROM_dico21_isf[SIZE_BK21 * 3] = {
  606.    329, 409, 249,
  607.    -33, 505, 160,
  608.    -29, -14, 582,
  609.    -262, 127, 354,
  610.    145, 237, 175,
  611.    -152, 245, 122,
  612.    27, 42, 340,
  613.    -84, -93, 311,
  614.    285, 222, -156,
  615.    47, -43, -504,
  616.    234, 121, 385,
  617.    104, -317, 45,
  618.    176, 195, 8,
  619.    104, -59, -94,
  620.    177, 53, 192,
  621.    -34, -127, 152,
  622.    570, 277, -34,
  623.    -67, -329, -639,
  624.    -157, -272, 462,
  625.    -177, -462, 198,
  626.    322, 179, 115,
  627.    -386, 171, 19,
  628.    19, -12, 195,
  629.    -120, -252, 201,
  630.    304, 36, -336,
  631.    -128, -221, -380,
  632.    171, -185, 296,
  633.    -242, -312, 23,
  634.    198, 39, 16,
  635.    -3, -177, -111,
  636.    111, -93, 76,
  637.    -92, -223, 4,
  638.    177, 406, -44,
  639.    -168, 380, -149,
  640.    -4, 273, 331,
  641.    -420, 513, 277,
  642.    21, 247, 47,
  643.    -58, 131, -2,
  644.    -3, 134, 180,
  645.    -145, 40, 175,
  646.    189, 74, -145,
  647.    -27, -45, -325,
  648.    370, -114, -21,
  649.    -83, -415, -173,
  650.    77, 95, -51,
  651.    -40, -30, -67,
  652.    71, 88, 86,
  653.    -35, -98, 14,
  654.    69, 197, -334,
  655.    -196, 79, -231,
  656.    -348, -137, 218,
  657.    -352, -89, -85,
  658.    47, 201, -130,
  659.    -165, 37, -15,
  660.    -43, 3, 86,
  661.    -161, -108, 79,
  662.    83, 21, -237,
  663.    -81, -149, -238,
  664.    150, -186, -251,
  665.    -186, -249, -162,
  666.    -19, 66, -139,
  667.    -26, -50, -181,
  668.    24, 11, 0,
  669.    -130, -105, -98
  670. };
  671. /*
  672.  * 2nd stage codebook; 2nd split: isf2_3 to isf2_5
  673.  */
  674. const Word16 D_ROM_dico22_isf[SIZE_BK22 * 3] = {
  675.    -127, 310, 42,
  676.    -242, 197, 5,
  677.    -151, 84, -17,
  678.    -214, 127, -149,
  679.    -247, -131, 159,
  680.    -268, -267, -95,
  681.    -217, 1, -79,
  682.    -271, -80, -185,
  683.    -45, 436, 159,
  684.    165, 199, 391,
  685.    -33, 81, 187,
  686.    -66, -42, 355,
  687.    -298, -57, 343,
  688.    -108, -537, 226,
  689.    -144, -23, 193,
  690.    176, -402, 87,
  691.    53, 296, 25,
  692.    -84, 253, -104,
  693.    -58, 105, -126,
  694.    -169, 174, -314,
  695.    -48, 44, -294,
  696.    -164, -417, -242,
  697.    -139, 3, -194,
  698.    -155, -207, -211,
  699.    119, 322, 213,
  700.    333, 50, 380,
  701.    237, 247, -2,
  702.    466, -16, 201,
  703.    238, -255, -107,
  704.    67, -440, -149,
  705.    122, -88, -139,
  706.    88, -247, -73,
  707.    -41, 231, 167,
  708.    -62, 155, 16,
  709.    -65, 16, 77,
  710.    -68, -2, -63,
  711.    -151, -300, 160,
  712.    -18, -333, 54,
  713.    -56, -94, 5,
  714.    2, -190, 14,
  715.    92, 148, 209,
  716.    108, 9, 272,
  717.    108, 35, 110,
  718.    142, -85, 145,
  719.    47, -157, 279,
  720.    3, -320, 246,
  721.    43, -72, 68,
  722.    86, -217, 135,
  723.    36, 140, 79,
  724.    56, 175, -49,
  725.    26, 45, 3,
  726.    73, 55, -101,
  727.    109, -183, -242,
  728.    -4, -283, -242,
  729.    48, -68, -48,
  730.    -6, -153, -122,
  731.    161, 196, 96,
  732.    232, 80, 190,
  733.    165, 97, 11,
  734.    258, -31, 71,
  735.    267, -77, -91,
  736.    311, -209, 87,
  737.    152, -14, -22,
  738.    150, -149, 9,
  739.    -324, 557, 187,
  740.    -384, 307, 46,
  741.    -251, 27, 77,
  742.    -365, 77, -52,
  743.    -482, -84, 160,
  744.    -424, -515, -64,
  745.    -294, -120, -4,
  746.    -476, -116, -109,
  747.    -97, 318, 365,
  748.    106, 627, 445,
  749.    -190, 120, 287,
  750.    -146, 65, 619,
  751.    -427, 242, 363,
  752.    -361, -371, 432,
  753.    -347, 102, 168,
  754.    -629, 195, -14,
  755.    -65, 476, -47,
  756.    -297, 320, -168,
  757.    -55, 356, -264,
  758.    -391, 82, -286,
  759.    -51, -31, -556,
  760.    -178, -399, -586,
  761.    -205, -49, -360,
  762.    -343, -238, -337,
  763.    220, 457, 58,
  764.    561, 467, 259,
  765.    340, 270, -168,
  766.    450, 77, -280,
  767.    60, 167, -413,
  768.    133, -252, -492,
  769.    216, 157, -290,
  770.    282, 0, -495,
  771.    -226, 293, 183,
  772.    -157, 135, 122,
  773.    -158, -59, 39,
  774.    -133, -118, -97,
  775.    -332, -309, 113,
  776.    -160, -425, -6,
  777.    -149, -211, 24,
  778.    -80, -277, -90,
  779.    -11, 125, 338,
  780.    130, -71, 465,
  781.    5, -45, 184,
  782.    237, -95, 253,
  783.    -139, -197, 297,
  784.    -19, -300, 511,
  785.    -63, -152, 139,
  786.    250, -289, 336,
  787.    124, 339, -150,
  788.    34, 176, -208,
  789.    171, 166, -116,
  790.    94, 38, -229,
  791.    75, -65, -339,
  792.    -78, -205, -385,
  793.    0, -30, -163,
  794.    -56, -110, -242,
  795.    321, 244, 194,
  796.    505, 238, -1,
  797.    317, 116, 65,
  798.    309, 88, -74,
  799.    452, -51, -50,
  800.    334, -217, -290,
  801.    211, 41, -152,
  802.    238, -55, -260
  803. };
  804. /*
  805.  * 2nd stage codebook; 3rd split: isf2_6 to isf2_8
  806.  */
  807. const Word16 D_ROM_dico23_isf[SIZE_BK23 * 3] = {
  808.    -10, 151, 359,
  809.    136, 298, 223,
  810.    255, -104, 290,
  811.    423, 6, 183,
  812.    -270, -269, -98,
  813.    -52, -82, 13,
  814.    -82, -274, -97,
  815.    90, -246, -72,
  816.    -299, -70, 421,
  817.    -88, 365, 430,
  818.    187, -318, 381,
  819.    380, 37, 488,
  820.    -373, -316, 79,
  821.    -308, -101, 5,
  822.    -135, -451, 8,
  823.    72, -421, -154,
  824.    180, 170, -121,
  825.    62, 177, -40,
  826.    326, 80, -105,
  827.    248, 263, -5,
  828.    -168, -181, -221,
  829.    -2, -23, -158,
  830.    -14, -149, -121,
  831.    119, -91, -147,
  832.    119, 332, -153,
  833.    49, 303, 34,
  834.    442, -55, -69,
  835.    217, 454, 58,
  836.    -359, -187, -375,
  837.    -42, 50, -274,
  838.    -8, -267, -249,
  839.    85, -86, -346,
  840.    -77, -40, 345,
  841.    89, 134, 219,
  842.    156, -80, 160,
  843.    108, 40, 116,
  844.    -158, -206, 29,
  845.    5, -32, 175,
  846.    -65, -158, 146,
  847.    55, -78, 73,
  848.    -114, -222, 353,
  849.    -47, 81, 211,
  850.    49, -151, 268,
  851.    105, 4, 302,
  852.    -263, -132, 183,
  853.    -151, -28, 201,
  854.    -177, -307, 166,
  855.    101, -221, 130,
  856.    74, 58, -98,
  857.    32, 44, 13,
  858.    194, 30, -142,
  859.    170, 96, 8,
  860.    -136, -119, -91,
  861.    -65, 8, -55,
  862.    3, -188, 12,
  863.    45, -63, -49,
  864.    149, -21, -19,
  865.    24, 144, 95,
  866.    254, -22, 60,
  867.    161, 196, 96,
  868.    -158, -61, 48,
  869.    -70, 33, 82,
  870.    -23, -321, 58,
  871.    155, -147, 5,
  872.    -364, 328, 77,
  873.    -21, 453, 173,
  874.    -108, 82, 630,
  875.    367, 263, 208,
  876.    -300, -62, -176,
  877.    -205, 143, -158,
  878.    -169, -410, -264,
  879.    257, -269, -100,
  880.    -636, 289, -2,
  881.    -292, 627, 173,
  882.    -382, -363, 387,
  883.    248, 524, 447,
  884.    -521, -111, -107,
  885.    -395, 118, -274,
  886.    -343, -680, -125,
  887.    -172, -447, -663,
  888.    75, 148, -367,
  889.    -79, 263, -94,
  890.    249, 148, -286,
  891.    380, 271, -162,
  892.    -142, -4, -186,
  893.    -57, 111, -125,
  894.    -35, -108, -254,
  895.    100, 29, -242,
  896.    -80, 303, -264,
  897.    -78, 464, -57,
  898.    248, -22, -494,
  899.    661, 662, 44,
  900.    -193, -40, -330,
  901.    -178, 145, -337,
  902.    -90, -199, -400,
  903.    -40, -23, -498,
  904.    -192, 114, 315,
  905.    -41, 244, 190,
  906.    88, -97, 485,
  907.    241, 80, 212,
  908.    -246, 40, 87,
  909.    -156, 147, 134,
  910.    -2, -334, 239,
  911.    308, -203, 110,
  912.    -459, 251, 422,
  913.    -218, 310, 228,
  914.    -86, -346, 654,
  915.    184, 175, 425,
  916.    -481, -63, 169,
  917.    -349, 117, 188,
  918.    -125, -560, 310,
  919.    158, -416, 94,
  920.    46, 171, -192,
  921.    -63, 157, 14,
  922.    256, -35, -271,
  923.    322, 123, 53,
  924.    -214, 4, -76,
  925.    -156, 86, -18,
  926.    128, -197, -232,
  927.    265, -90, -98,
  928.    -308, 332, -145,
  929.    -131, 308, 58,
  930.    509, 59, -339,
  931.    562, 196, -14,
  932.    -378, 100, -47,
  933.    -234, 202, 1,
  934.    104, -270, -493,
  935.    319, -210, -325
  936. };
  937. /*
  938.  * 2nd stage codebook; 4th split: isf2_9 to isf2_11
  939.  */
  940. const Word16 D_ROM_dico24_isf[SIZE_BK24 * 3] = {
  941.    -79, -89, -4,
  942.    -171, 77, -211,
  943.    160, -193, 98,
  944.    120, -103, 323,
  945.    32, -22, -129,
  946.    72, 78, -268,
  947.    182, -76, -66,
  948.    309, 99, -145,
  949.    -229, -157, -84,
  950.    -383, 98, -71,
  951.    -90, -352, 12,
  952.    -284, -178, 178,
  953.    -65, -125, -166,
  954.    -87, -175, -351,
  955.    42, -198, -48,
  956.    154, -140, -243,
  957.    -77, 18, 108,
  958.    -39, 355, 91,
  959.    87, 8, 155,
  960.    -4, 158, 239,
  961.    128, 95, -54,
  962.    7, 246, -124,
  963.    258, 15, 89,
  964.    206, 216, 98,
  965.    -201, 9, 18,
  966.    -312, 233, 204,
  967.    -39, -174, 155,
  968.    -144, -9, 284,
  969.    -57, 70, -69,
  970.    -157, 187, 18,
  971.    54, -30, 23,
  972.    24, 135, 55
  973. };
  974. /*
  975.  * 2nd stage codebook; 5th split: isf2_12 to isf2_15
  976.  */
  977. const Word16 D_ROM_dico25_isf[SIZE_BK25 * 4] = {
  978.    169, 142, -119, 115,
  979.    206, -20, 94, 226,
  980.    -106, 313, -21, 16,
  981.    -62, 161, 71, 255,
  982.    -89, 101, -185, 125,
  983.    72, -30, -201, 344,
  984.    -258, 33, -8, 81,
  985.    -104, -154, 72, 296,
  986.    144, -68, -268, -25,
  987.    81, -78, -87, 106,
  988.    22, 155, -186, -119,
  989.    -46, -28, 27, 91,
  990.    -114, -37, -175, -33,
  991.    -94, -222, -189, 122,
  992.    -132, -119, -191, -270,
  993.    -172, -173, 18, -43,
  994.    279, 135, -42, -128,
  995.    187, -86, 229, -138,
  996.    159, 240, 140, 46,
  997.    69, 25, 227, 77,
  998.    21, 115, 13, 8,
  999.    68, -248, 126, 81,
  1000.    -150, 137, 207, -9,
  1001.    -154, -133, 289, 67,
  1002.    143, -37, -86, -326,
  1003.    180, -32, 19, -23,
  1004.    26, 168, 116, -233,
  1005.    -32, -26, 118, -78,
  1006.    3, -8, -45, -115,
  1007.    57, -215, -54, -83,
  1008.    -209, 112, -22, -167,
  1009.    -91, -151, 168, -262
  1010. };
  1011. /*
  1012.  * isf codebooks: two-stage VQ with split-by-3 in 2nd stage
  1013.  *                1st stage is kept the same as the 46 bit quantizer
  1014.  *
  1015.  *  codebook   vector dimension    number of vectors
  1016.  *  ~~~~~~~~   ~~~~~~~~~~~~~~~~    ~~~~~~~~~~~~~~~~~
  1017.  *     1_1            9                  256
  1018.  *     1_2            7                  256
  1019.  *     2_1            5                  128
  1020.  *     2_2            4                  128
  1021.  *     2_3            7                  64
  1022.  */
  1023. const Word16 D_ROM_dico21_isf_36b[SIZE_BK21_36b * 5] = {
  1024.    -52, -96, 212, 315, -73,
  1025.    82, -204, 363, 136, -197,
  1026.    -126, -331, 183, 218, 143,
  1027.    -49, -41, 557, 230, 72,
  1028.    2, -73, 163, 377, 221,
  1029.    133, 111, 278, 215, -110,
  1030.    -102, -20, 284, 113, 273,
  1031.    84, 319, 290, 18, 85,
  1032.    -25, -5, 125, 132, -204,
  1033.    -38, -5, 286, -9, -356,
  1034.    -140, -256, 92, 117, -189,
  1035.    -144, 191, 313, 51, -98,
  1036.    167, -10, 44, 247, 36,
  1037.    381, 197, 238, 74, 6,
  1038.    38, -408, 29, -3, -85,
  1039.    92, 266, 157, -25, -200,
  1040.    161, -121, 70, 84, -140,
  1041.    -16, -86, 112, -94, -189,
  1042.    -269, -270, 351, 107, -24,
  1043.    -68, -67, 492, -103, -155,
  1044.    -53, -131, 62, 122, 10,
  1045.    135, 84, 283, -55, -120,
  1046.    -12, -219, 331, -81, 167,
  1047.    220, -136, 147, -172, -42,
  1048.    140, -95, -109, -88, -194,
  1049.    0, -2, -4, -33, -381,
  1050.    -66, -217, 152, -186, -402,
  1051.    244, 108, 156, -140, -395,
  1052.    113, -136, -196, 110, -24,
  1053.    214, 118, 11, -64, -131,
  1054.    -110, -286, -6, -332, 16,
  1055.    94, 97, 79, -291, -205,
  1056.    -5, -39, -20, 252, -96,
  1057.    76, 174, 101, 163, 61,
  1058.    -69, -239, -55, 399, 6,
  1059.    -115, 319, 164, 275, 196,
  1060.    -15, 36, -47, 331, 121,
  1061.    226, 209, 271, 325, 184,
  1062.    13, -80, -218, 471, 353,
  1063.    288, 378, 16, -51, 251,
  1064.    174, 116, 52, 149, -279,
  1065.    235, 276, 39, 120, -48,
  1066.    0, -108, -108, 241, -339,
  1067.    -93, 534, 45, 33, -87,
  1068.    194, 149, -71, 405, -44,
  1069.    409, 370, 81, -186, -154,
  1070.    25, -102, -448, 124, -173,
  1071.    22, 408, -110, -310, -214,
  1072.    -26, 23, -83, 114, 14,
  1073.    -110, 164, 52, 223, -82,
  1074.    37, -25, -263, 306, -15,
  1075.    -466, 415, 292, 165, -18,
  1076.    29, -19, -171, 155, 182,
  1077.    179, 144, -27, 231, 258,
  1078.    -103, -247, -396, 238, 113,
  1079.    375, -154, -109, -4, 156,
  1080.    98, 85, -292, -5, -124,
  1081.    116, 139, -116, -98, -294,
  1082.    -14, -83, -278, -117, -378,
  1083.    106, 33, -106, -344, -484,
  1084.    119, 17, -412, 138, 166,
  1085.    384, 101, -204, 88, -156,
  1086.    -121, -284, -300, -1, -166,
  1087.    280, 33, -152, -313, -81,
  1088.    -37, 22, 229, 153, 37,
  1089.    -60, -83, 236, -8, -41,
  1090.    -169, -228, 126, -20, 363,
  1091.    -235, 17, 364, -156, 156,
  1092.    -25, -30, 72, 144, 156,
  1093.    153, -26, 256, 97, 144,
  1094.    -21, -37, 48, -65, 250,
  1095.    63, 77, 273, -128, 124,
  1096.    -129, -26, 40, 9, -115,
  1097.    -6, 82, 38, -90, -182,
  1098.    -336, -13, 28, 158, 91,
  1099.    -30, 241, 137, -170, -17,
  1100.    146, 14, -11, 33, 61,
  1101.    192, 197, 54, -84, 85,
  1102.    23, -200, -78, -29, 140,
  1103.    122, 237, 106, -341, 136,
  1104.    -57, -142, -85, -16, -74,
  1105.    -59, -90, -8, -187, -20,
  1106.    -211, -267, 216, -179, -110,
  1107.    -50, -7, 220, -267, -70,
  1108.    -57, -42, -17, -15, 71,
  1109.    32, 21, 63, -137, 33,
  1110.    -137, -175, 104, -68, 97,
  1111.    -67, -43, 133, -301, 221,
  1112.    -116, -200, -81, -92, -272,
  1113.    -64, -41, -54, -244, -220,
  1114.    -287, -242, -50, -87, -89,
  1115.    -245, 236, 102, -166, -295,
  1116.    66, 24, -162, -71, 95,
  1117.    66, 136, -90, -220, -36,
  1118.    -98, -161, -222, -188, 29,
  1119.    -18, 18, -19, -415, 9,
  1120.    49, 61, 100, 39, -56,
  1121.    -111, 82, 135, -31, 52,
  1122.    -90, -153, -93, 189, 182,
  1123.    -214, 295, 119, -74, 284,
  1124.    2, 137, 37, 47, 182,
  1125.    92, 117, 184, -53, 373,
  1126.    -21, -14, -35, 136, 391,
  1127.    146, 129, -164, -28, 333,
  1128.    92, 80, -84, 100, -134,
  1129.    -8, 217, -32, 3, -47,
  1130.    -151, 251, -215, 142, 92,
  1131.    -224, 310, -172, -275, 98,
  1132.    159, 155, -177, 112, 53,
  1133.    205, 27, 8, -240, 192,
  1134.    169, 120, -319, -201, 106,
  1135.    11, 36, -86, -237, 455,
  1136.    -109, -154, -163, 174, -55,
  1137.    -38, 32, -101, -78, -59,
  1138.    -205, -321, -97, 69, 79,
  1139.    -310, 44, 18, -185, 34,
  1140.    -115, -20, -148, -39, 203,
  1141.    -29, 154, -30, -158, 166,
  1142.    -45, -131, -317, -24, 363,
  1143.    -165, -205, -112, -222, 265,
  1144.    -32, -44, -150, 54, -193,
  1145.    -6, -38, -255, -169, -115,
  1146.    -266, 87, -189, -36, -169,
  1147.    -60, -87, -266, -436, -170,
  1148.    -68, -81, -278, 24, 38,
  1149.    -23, -19, -155, -256, 141,
  1150.    -61, -226, -565, -175, 71,
  1151.    9, -29, -237, -515, 263
  1152. };
  1153. const Word16 D_ROM_dico22_isf_36b[SIZE_BK22_36b * 4] = {
  1154.    -298, -6, 95, 31,
  1155.    -213, -87, -122, 261,
  1156.    4, -49, 208, 14,
  1157.    -129, -110, 30, 118,
  1158.    -214, 258, 110, -235,
  1159.    -41, -18, -126, 120,
  1160.    103, 65, 127, -37,
  1161.    126, -36, -24, 25,
  1162.    -138, -67, -278, -186,
  1163.    -164, -194, -201, 78,
  1164.    -211, -87, -51, -221,
  1165.    -174, -79, -94, -39,
  1166.    23, -6, -157, -240,
  1167.    22, -110, -153, -68,
  1168.    148, -5, -2, -149,
  1169.    -1, -135, -39, -179,
  1170.    68, 360, -117, -15,
  1171.    137, 47, -278, 146,
  1172.    136, 260, 135, 65,
  1173.    61, 116, -45, 97,
  1174.    231, 379, 87, -120,
  1175.    338, 177, -272, 3,
  1176.    266, 156, 28, -69,
  1177.    260, 84, -85, 86,
  1178.    -266, 154, -256, -182,
  1179.    -17, -65, -304, -6,
  1180.    -40, 175, -151, -180,
  1181.    -27, 27, -87, -63,
  1182.    121, 114, -166, -469,
  1183.    159, -66, -323, -231,
  1184.    214, 152, -141, -212,
  1185.    137, 36, -184, -51,
  1186.    -282, -237, 40, 10,
  1187.    -48, -235, -37, 251,
  1188.    -54, -323, 136, 29,
  1189.    -88, -174, 213, 198,
  1190.    -390, 99, -63, -375,
  1191.    107, -169, -164, 424,
  1192.    69, -111, 141, -167,
  1193.    74, -129, 65, 144,
  1194.    -353, -207, -205, -109,
  1195.    -160, -386, -355, 98,
  1196.    -176, -493, -20, -143,
  1197.    -252, -432, -2, 216,
  1198.    -90, -174, -168, -411,
  1199.    13, -284, -229, -160,
  1200.    -87, -279, 34, -251,
  1201.    -75, -263, -58, -42,
  1202.    420, 53, -211, -358,
  1203.    384, -35, -374, 396,
  1204.    68, -228, 323, -2,
  1205.    167, -307, 192, 194,
  1206.    459, 329, -5, -332,
  1207.    375, 79, -7, 313,
  1208.    282, -124, 200, -92,
  1209.    271, -162, -70, 180,
  1210.    -157, -298, -514, -309,
  1211.    58, -163, -546, 18,
  1212.    124, -364, 167, -238,
  1213.    83, -411, -117, 96,
  1214.    140, -112, -388, -624,
  1215.    259, -133, -317, 41,
  1216.    163, -130, -64, -334,
  1217.    226, -165, -124, -110,
  1218.    -466, -61, 6, 229,
  1219.    -153, 205, -145, 242,
  1220.    -159, 48, 195, 148,
  1221.    -58, 28, 31, 279,
  1222.    -303, 185, 279, -4,
  1223.    -61, 197, 59, 86,
  1224.    -114, 123, 168, -52,
  1225.    35, 36, 100, 126,
  1226.    -407, 102, -77, -40,
  1227.    -338, -1, -342, 156,
  1228.    -179, 105, -34, -97,
  1229.    -185, 84, -35, 108,
  1230.    -133, 107, -91, -357,
  1231.    -180, 54, -229, 24,
  1232.    -44, 47, 47, -182,
  1233.    -66, 13, 45, 4,
  1234.    -339, 251, 64, 226,
  1235.    -42, 101, -350, 275,
  1236.    -99, 398, 142, 121,
  1237.    111, 12, -102, 260,
  1238.    0, 505, 260, -94,
  1239.    161, 285, -96, 224,
  1240.    -4, 206, 314, 33,
  1241.    167, 139, 88, 204,
  1242.    -235, 316, -60, -25,
  1243.    -8, -150, -312, 201,
  1244.    -36, 292, 61, -104,
  1245.    -40, 174, -162, 42,
  1246.    -21, 402, -29, -351,
  1247.    21, 152, -360, -93,
  1248.    57, 191, 212, -196,
  1249.    76, 158, -21, -69,
  1250.    -328, -185, 331, 119,
  1251.    -53, 285, 56, 337,
  1252.    -107, -24, 405, 29,
  1253.    -18, 137, 272, 277,
  1254.    -255, 22, 173, -191,
  1255.    295, 322, 325, 302,
  1256.    21, -27, 332, -178,
  1257.    119, 13, 271, 129,
  1258.    -455, -180, 116, -191,
  1259.    -227, 62, -148, 524,
  1260.    -176, -287, 282, -157,
  1261.    -243, 13, 199, 430,
  1262.    -59, -49, 115, -365,
  1263.    72, -172, -137, 93,
  1264.    -138, -126, 141, -84,
  1265.    5, -124, 38, -20,
  1266.    -258, 311, 601, 213,
  1267.    94, 130, -61, 502,
  1268.    -1, -157, 485, 313,
  1269.    146, -74, 158, 345,
  1270.    276, 135, 280, -57,
  1271.    490, 252, 99, 43,
  1272.    267, -74, 429, 105,
  1273.    278, -23, 119, 94,
  1274.    -542, 488, 257, -115,
  1275.    -84, -244, -438, 478,
  1276.    -113, -545, 387, 101,
  1277.    -95, -306, 111, 498,
  1278.    95, 166, 22, -301,
  1279.    420, -15, -58, -78,
  1280.    270, 29, 122, -282,
  1281.    160, -240, 50, -38
  1282. };
  1283. const Word16 D_ROM_dico23_isf_36b[SIZE_BK23_36b * 7] = {
  1284.    81, -18, 68, -27, -122, -280, -4,
  1285.    45, -177, 209, -30, -136, -74, 131,
  1286.    -44, 101, -75, -88, -48, -137, -54,
  1287.    -245, -28, 63, -18, -112, -103, 58,
  1288.    -79, -6, 220, -65, 114, -35, -50,
  1289.    109, -65, 143, -114, 129, 76, 125,
  1290.    166, 90, -61, -242, 186, -74, -43,
  1291.    -46, -92, 49, -227, 24, -155, 39,
  1292.    67, 85, 99, -42, 53, -184, -281,
  1293.    142, -122, 0, 21, -142, -15, -17,
  1294.    223, 92, -21, -48, -82, -14, -167,
  1295.    51, -37, -243, -30, -90, 18, -56,
  1296.    54, 105, 74, 86, 69, 13, -101,
  1297.    196, 72, -89, 43, 65, 19, 39,
  1298.    121, 34, 131, -82, 25, 213, -156,
  1299.    101, -102, -136, -21, 57, 214, 22,
  1300.    36, -124, 205, 204, 58, -156, -83,
  1301.    83, -117, 137, 137, 85, 116, 44,
  1302.    -92, -148, -68, 11, -102, -197, -220,
  1303.    -76, -185, -58, 132, -26, -183, 85,
  1304.    -7, -31, -2, 23, 205, -151, 10,
  1305.    -27, -37, -5, -18, 292, 131, 1,
  1306.    117, -168, 9, -93, 80, -59, -125,
  1307.    -182, -244, 98, -24, 135, -22, 94,
  1308.    221, 97, 106, 42, 43, -160, 83,
  1309.    25, -64, -21, 6, 14, -15, 154,
  1310.    126, 15, -140, 150, -10, -207, -114,
  1311.    79, -63, -211, -70, -28, -217, 165,
  1312.    46, 38, -22, 281, 132, -62, 109,
  1313.    112, 54, -112, -93, 208, 27, 296,
  1314.    115, 10, -147, 41, 216, 42, -276,
  1315.    50, -115, -254, 167, 117, -2, 61,
  1316.    17, 144, 34, -72, -186, -150, 272,
  1317.    -29, -66, -89, -95, -149, 129, 251,
  1318.    122, 0, -50, -234, -91, 36, 26,
  1319.    -105, -102, -88, -121, -236, -7, -11,
  1320.    -204, 109, 5, -191, 105, -15, 163,
  1321.    -80, 32, -24, -209, 41, 294, 70,
  1322.    -106, -94, -204, -118, 120, -50, -37,
  1323.    -82, -241, 46, -131, -29, 150, -55,
  1324.    33, 155, 120, -89, -8, 7, 62,
  1325.    213, 82, 61, 18, -161, 144, 152,
  1326.    30, 131, 65, -87, -255, -17, -107,
  1327.    -8, 85, -64, 51, -162, 223, -53,
  1328.    -134, 261, 69, -56, 218, 72, -111,
  1329.    2, 155, -113, -87, 49, 85, -28,
  1330.    -163, 42, -1, -196, 7, 39, -245,
  1331.    14, -137, -79, 11, -160, 202, -293,
  1332.    -94, 33, 208, 100, 56, -44, 326,
  1333.    -78, -41, 232, 13, -142, 227, 80,
  1334.    -16, -87, 201, 33, -133, 15, -183,
  1335.    -58, -192, -47, 184, -128, 133, 99,
  1336.    -205, 11, -155, 78, 52, 72, 141,
  1337.    -246, 26, 99, 151, 59, 115, -64,
  1338.    -79, -47, -16, -14, 6, 47, -43,
  1339.    -72, -178, -27, 162, 112, 43, -174,
  1340.    -175, 238, 186, 71, -54, -188, -76,
  1341.    -225, 233, 39, -39, -158, 122, 44,
  1342.    -26, 43, 84, 130, -93, -51, 22,
  1343.    3, 92, -150, 136, -182, -57, 97,
  1344.    -131, 179, -78, 80, 91, -165, 90,
  1345.    -2, 148, 15, 130, 65, 175, 117,
  1346.    -138, 114, -137, 132, 3, -10, -186,
  1347.    140, -4, -37, 254, -62, 92, -109
  1348. };
  1349. /*
  1350.  *  isf codebooks:  split-by-5 VQ
  1351.  *
  1352.  *  codebook   vector dimension    number of vectors
  1353.  *  ~~~~~~~~   ~~~~~~~~~~~~~~~~    ~~~~~~~~~~~~~~~~~
  1354.  *     1            2                  64
  1355.  *     2            3                  64
  1356.  *     3            3                  64
  1357.  *     4            4                  32
  1358.  *     5            4                  32
  1359.  */
  1360. /*
  1361.  * 1st split:   isf0 to isf1
  1362.  */
  1363. const Word16 D_ROM_dico1_isf_noise[SIZE_BK_NOISE1 * 2] = {
  1364.    -269, -673,
  1365.    -222, -537,
  1366.    -233, -430,
  1367.    -138, -451,
  1368.    -212, -331,
  1369.    -192, -241,
  1370.    -87, -231,
  1371.    -191, -128,
  1372.    -70, -106,
  1373.    -164, -6,
  1374.    74, -179,
  1375.    27, -33,
  1376.    -102, 74,
  1377.    -162, 115,
  1378.    -94, 172,
  1379.    -6, 130,
  1380.    -143, 234,
  1381.    14, 218,
  1382.    -65, 270,
  1383.    88, 182,
  1384.    -124, 341,
  1385.    -44, 381,
  1386.    38, 335,
  1387.    117, 274,
  1388.    -112, 454,
  1389.    74, 431,
  1390.    -5, 488,
  1391.    175, 384,
  1392.    -83, 561,
  1393.    122, 529,
  1394.    21, 601,
  1395.    229, 481,
  1396.    231, 303,
  1397.    226, 608,
  1398.    300, 372,
  1399.    210, 187,
  1400.    306, 265,
  1401.    328, 473,
  1402.    382, 331,
  1403.    371, 132,
  1404.    139, 58,
  1405.    365, 21,
  1406.    250, -82,
  1407.    443, 218,
  1408.    483, 110,
  1409.    426, 415,
  1410.    579, 222,
  1411.    518, 333,
  1412.    573, 448,
  1413.    455, 529,
  1414.    685, 329,
  1415.    332, 580,
  1416.    595, 593,
  1417.    468, 645,
  1418.    762, 517,
  1419.    326, 709,
  1420.    485, 793,
  1421.    130, 684,
  1422.    671, 737,
  1423.    354, 876,
  1424.    88, 806,
  1425.    -65, 706,
  1426.    -35, 1016,
  1427.    266, 1123
  1428. };
  1429. /*
  1430.  * 2nd split: isf2 to isf4
  1431.  */
  1432. const Word16 D_ROM_dico2_isf_noise[SIZE_BK_NOISE2 * 3] = {
  1433.    -824, -884, -949,
  1434.    -805, -456, -418,
  1435.    -442, -438, -541,
  1436.    -217, -578, -793,
  1437.    -168, -444, -582,
  1438.    -287, -492, -274,
  1439.    -552, -297, -300,
  1440.    -163, -333, -358,
  1441.    -370, -232, -232,
  1442.    -175, -358, -159,
  1443.    -381, -21, -357,
  1444.    -184, -159, -162,
  1445.    -53, -191, -280,
  1446.    18, -267, -215,
  1447.    -138, 61, -283,
  1448.    71, -95, -294,
  1449.    13, -156, -546,
  1450.    0, -83, -79,
  1451.    44, 97, -316,
  1452.    178, -52, -213,
  1453.    222, -261, -422,
  1454.    237, -118, -44,
  1455.    141, 145, -132,
  1456.    363, 81, -287,
  1457.    213, 65, 34,
  1458.    -107, 94, -5,
  1459.    91, -29, 126,
  1460.    -355, 51, -41,
  1461.    -219, -76, 145,
  1462.    -63, 100, 244,
  1463.    -719, 44, 27,
  1464.    -572, -124, 155,
  1465.    -423, 133, 315,
  1466.    -917, 71, 224,
  1467.    -268, 318, 131,
  1468.    -93, -190, 420,
  1469.    -97, 122, 491,
  1470.    -79, 317, 355,
  1471.    130, 100, 325,
  1472.    86, -293, 210,
  1473.    133, 258, 161,
  1474.    176, -73, 465,
  1475.    195, 300, 384,
  1476.    348, 22, 221,
  1477.    376, 183, 409,
  1478.    377, 286, 202,
  1479.    242, 213, 659,
  1480.    257, 565, 248,
  1481.    344, 408, -76,
  1482.    405, 440, 509,
  1483.    612, 385, 379,
  1484.    536, 607, 216,
  1485.    -56, 582, 192,
  1486.    100, 517, 567,
  1487.    -365, 448, 445,
  1488.    728, 347, 10,
  1489.    505, 357, 759,
  1490.    636, 582, 658,
  1491.    335, 517, 852,
  1492.    378, 809, 572,
  1493.    -195, 878, 829,
  1494.    529, 707, 987,
  1495.    918, 726, 392,
  1496.    1250, 997, 1063
  1497. };
  1498. /*
  1499.  * 3rd split: isf5 to isf7
  1500.  */
  1501. const Word16 D_ROM_dico3_isf_noise[SIZE_BK_NOISE3 * 3] = {
  1502.    -805, -838, -774,
  1503.    -522, -627, -828,
  1504.    -477, -486, -603,
  1505.    -295, -481, -634,
  1506.    -366, -384, -393,
  1507.    -186, -414, -396,
  1508.    -237, -394, -106,
  1509.    -252, -202, -275,
  1510.    -61, -177, -442,
  1511.    -84, -198, -199,
  1512.    -179, -125, -31,
  1513.    -72, -47, -163,
  1514.    -298, -220, 215,
  1515.    -64, -168, 251,
  1516.    -133, 156, -59,
  1517.    -30, -2, 127,
  1518.    54, 66, -61,
  1519.    -233, 21, 251,
  1520.    209, -50, 32,
  1521.    33, 194, 136,
  1522.    -117, -18, 475,
  1523.    202, 46, 309,
  1524.    256, 185, 53,
  1525.    35, 200, 390,
  1526.    200, 263, 242,
  1527.    -216, 302, 294,
  1528.    128, 358, 0,
  1529.    19, 431, 287,
  1530.    224, 447, 280,
  1531.    367, 165, 213,
  1532.    397, 314, 319,
  1533.    383, 379, 75,
  1534.    277, 325, 462,
  1535.    394, 505, 334,
  1536.    251, 98, -213,
  1537.    450, 153, 448,
  1538.    565, 226, 76,
  1539.    470, 383, 502,
  1540.    635, 390, 278,
  1541.    237, 135, 620,
  1542.    342, 401, 649,
  1543.    331, 551, 518,
  1544.    130, 418, 592,
  1545.    531, 306, 737,
  1546.    729, 389, 580,
  1547.    497, 557, 699,
  1548.    296, 383, 874,
  1549.    283, 624, 759,
  1550.    126, 622, 476,
  1551.    559, 595, 472,
  1552.    382, 770, 616,
  1553.    719, 613, 745,
  1554.    540, 639, 928,
  1555.    517, 826, 801,
  1556.    684, 811, 604,
  1557.    752, 786, 857,
  1558.    933, 661, 350,
  1559.    694, 450, 1061,
  1560.    562, 911, 1051,
  1561.    824, 813, 1104,
  1562.    758, 1047, 882,
  1563.    1140, 917, 889,
  1564.    1039, 1246, 1426,
  1565.    1483, 1666, 1876
  1566. };
  1567. /*
  1568.  * 4th split: isf8 to isf11
  1569.  */
  1570. const Word16 D_ROM_dico4_isf_noise[SIZE_BK_NOISE4 * 4] = {
  1571.    -776, -854, -891, -920,
  1572.    -552, -610, -663, -741,
  1573.    -321, -370, -476, -565,
  1574.    274, -160, -456, 201,
  1575.    265, 67, -160, -306,
  1576.    -8, -210, 79, 272,
  1577.    163, 236, 307, 308,
  1578.    578, 317, 64, 298,
  1579.    -9, 197, 342, 620,
  1580.    343, 232, 314, 622,
  1581.    173, 149, 548, 527,
  1582.    356, 370, 481, 376,
  1583.    135, 444, 488, 556,
  1584.    391, 471, 487, 653,
  1585.    228, 424, 576, 835,
  1586.    422, 372, 722, 682,
  1587.    295, 673, 693, 635,
  1588.    539, 596, 590, 449,
  1589.    475, 618, 659, 818,
  1590.    735, 517, 491, 673,
  1591.    602, 346, 257, 877,
  1592.    625, 635, 849, 720,
  1593.    727, 818, 698, 595,
  1594.    653, 481, 690, 1139,
  1595.    814, 762, 704, 908,
  1596.    507, 747, 898, 936,
  1597.    848, 855, 924, 785,
  1598.    646, 1037, 882, 795,
  1599.    772, 845, 1024, 1151,
  1600.    1133, 983, 818, 921,
  1601.    940, 1068, 1252, 1302,
  1602.    1588, 1767, 1718, 1513
  1603. };
  1604. /*
  1605.  * 5th split: isf12 to isf15
  1606.  */
  1607. const Word16 D_ROM_dico5_isf_noise[SIZE_BK_NOISE5 * 4] = {
  1608.    -810, -879, -945, -254,
  1609.    248, 184, 671, 128,
  1610.    288, 703, 918, 99,
  1611.    658, 558, 662, 219,
  1612.    552, 585, 910, 208,
  1613.    559, 804, 759, 119,
  1614.    606, 774, 921, -139,
  1615.    782, 761, 748, 208,
  1616.    756, 708, 983, 56,
  1617.    544, 864, 1010, 152,
  1618.    737, 698, 987, 299,
  1619.    771, 924, 879, 103,
  1620.    536, 785, 961, 405,
  1621.    667, 916, 801, 328,
  1622.    738, 705, 773, 439,
  1623.    823, 871, 992, 355,
  1624.    640, 1004, 1052, 369,
  1625.    724, 822, 949, 597,
  1626.    415, 655, 729, 482,
  1627.    1009, 896, 793, 363,
  1628.    908, 803, 687, -25,
  1629.    1016, 838, 1011, 189,
  1630.    947, 1112, 942, 222,
  1631.    914, 1049, 981, 527,
  1632.    956, 987, 1011, -120,
  1633.    781, 1049, 1121, 92,
  1634.    1178, 1053, 884, 47,
  1635.    1123, 1059, 1182, 118,
  1636.    933, 972, 1277, 357,
  1637.    1109, 918, 1101, 503,
  1638.    1039, 1286, 1220, 317,
  1639.    1351, 1207, 1010, 326
  1640. };
  1641. /*
  1642.  * Table of pitch and codebook gains
  1643.  *
  1644.  * g_pitch(Q14), g_code(Q11)
  1645.  *
  1646.  * pitch gain are ordered in table to reduce complexity
  1647.  * during quantization of gains.
  1648.  */
  1649. /* Number of quantization level is 64 */
  1650. const Word16 D_ROM_qua_gain6b[64 * 2] = {
  1651.    1566, 1332,
  1652.    1577, 3557,
  1653.    3071, 6490,
  1654.    4193, 10163,
  1655.    4496, 2534,
  1656.    5019, 4488,
  1657.    5586, 15614,
  1658.    5725, 1422,
  1659.    6453, 580,
  1660.    6724, 6831,
  1661.    7657, 3527,
  1662.    8072, 2099,
  1663.    8232, 5319,
  1664.    8827, 8775,
  1665.    9740, 2868,
  1666.    9856, 1465,
  1667.    10087, 12488,
  1668.    10241, 4453,
  1669.    10859, 6618,
  1670.    11321, 3587,
  1671.    11417, 1800,
  1672.    11643, 2428,
  1673.    11718, 988,
  1674.    12312, 5093,
  1675.    12523, 8413,
  1676.    12574, 26214,
  1677.    12601, 3396,
  1678.    13172, 1623,
  1679.    13285, 2423,
  1680.    13418, 6087,
  1681.    13459, 12810,
  1682.    13656, 3607,
  1683.    14111, 4521,
  1684.    14144, 1229,
  1685.    14425, 1871,
  1686.    14431, 7234,
  1687.    14445, 2834,
  1688.    14628, 10036,
  1689.    14860, 17496,
  1690.    15161, 3629,
  1691.    15209, 5819,
  1692.    15299, 2256,
  1693.    15518, 4722,
  1694.    15663, 1060,
  1695.    15759, 7972,
  1696.    15939, 11964,
  1697.    16020, 2996,
  1698.    16086, 1707,
  1699.    16521, 4254,
  1700.    16576, 6224,
  1701.    16894, 2380,
  1702.    16906, 681,
  1703.    17213, 8406,
  1704.    17610, 3418,
  1705.    17895, 5269,
  1706.    18168, 11748,
  1707.    18230, 1575,
  1708.    18607, 32767,
  1709.    18728, 21684,
  1710.    19137, 2543,
  1711.    19422, 6577,
  1712.    19446, 4097,
  1713.    19450, 9056,
  1714.    20371, 14885
  1715. };
  1716. /* Number of quantization level is 128 */
  1717. const Word16 D_ROM_qua_gain7b[128 * 2] = {
  1718.    204, 441,
  1719.    464, 1977,
  1720.    869, 1077,
  1721.    1072, 3062,
  1722.    1281, 4759,
  1723.    1647, 1539,
  1724.    1845, 7020,
  1725.    1853, 634,
  1726.    1995, 2336,
  1727.    2351, 15400,
  1728.    2661, 1165,
  1729.    2702, 3900,
  1730.    2710, 10133,
  1731.    3195, 1752,
  1732.    3498, 2624,
  1733.    3663, 849,
  1734.    3984, 5697,
  1735.    4214, 3399,
  1736.    4415, 1304,
  1737.    4695, 2056,
  1738.    5376, 4558,
  1739.    5386, 676,
  1740.    5518, 23554,
  1741.    5567, 7794,
  1742.    5644, 3061,
  1743.    5672, 1513,
  1744.    5957, 2338,
  1745.    6533, 1060,
  1746.    6804, 5998,
  1747.    6820, 1767,
  1748.    6937, 3837,
  1749.    7277, 414,
  1750.    7305, 2665,
  1751.    7466, 11304,
  1752.    7942, 794,
  1753.    8007, 1982,
  1754.    8007, 1366,
  1755.    8326, 3105,
  1756.    8336, 4810,
  1757.    8708, 7954,
  1758.    8989, 2279,
  1759.    9031, 1055,
  1760.    9247, 3568,
  1761.    9283, 1631,
  1762.    9654, 6311,
  1763.    9811, 2605,
  1764.    10120, 683,
  1765.    10143, 4179,
  1766.    10245, 1946,
  1767.    10335, 1218,
  1768.    10468, 9960,
  1769.    10651, 3000,
  1770.    10951, 1530,
  1771.    10969, 5290,
  1772.    11203, 2305,
  1773.    11325, 3562,
  1774.    11771, 6754,
  1775.    11839, 1849,
  1776.    11941, 4495,
  1777.    11954, 1298,
  1778.    11975, 15223,
  1779.    11977, 883,
  1780.    11986, 2842,
  1781.    12438, 2141,
  1782.    12593, 3665,
  1783.    12636, 8367,
  1784.    12658, 1594,
  1785.    12886, 2628,
  1786.    12984, 4942,
  1787.    13146, 1115,
  1788.    13224, 524,
  1789.    13341, 3163,
  1790.    13399, 1923,
  1791.    13549, 5961,
  1792.    13606, 1401,
  1793.    13655, 2399,
  1794.    13782, 3909,
  1795.    13868, 10923,
  1796.    14226, 1723,
  1797.    14232, 2939,
  1798.    14278, 7528,
  1799.    14439, 4598,
  1800.    14451, 984,
  1801.    14458, 2265,
  1802.    14792, 1403,
  1803.    14818, 3445,
  1804.    14899, 5709,
  1805.    15017, 15362,
  1806.    15048, 1946,
  1807.    15069, 2655,
  1808.    15405, 9591,
  1809.    15405, 4079,
  1810.    15570, 7183,
  1811.    15687, 2286,
  1812.    15691, 1624,
  1813.    15699, 3068,
  1814.    15772, 5149,
  1815.    15868, 1205,
  1816.    15970, 696,
  1817.    16249, 3584,
  1818.    16338, 1917,
  1819.    16424, 2560,
  1820.    16483, 4438,
  1821.    16529, 6410,
  1822.    16620, 11966,
  1823.    16839, 8780,
  1824.    17030, 3050,
  1825.    17033, 18325,
  1826.    17092, 1568,
  1827.    17123, 5197,
  1828.    17351, 2113,
  1829.    17374, 980,
  1830.    17566, 26214,
  1831.    17609, 3912,
  1832.    17639, 32767,
  1833.    18151, 7871,
  1834.    18197, 2516,
  1835.    18202, 5649,
  1836.    18679, 3283,
  1837.    18930, 1370,
  1838.    19271, 13757,
  1839.    19317, 4120,
  1840.    19460, 1973,
  1841.    19654, 10018,
  1842.    19764, 6792,
  1843.    19912, 5135,
  1844.    20040, 2841,
  1845.    21234, 19833
  1846. };
  1847. /*
  1848.  * 1/4 resolution interpolation filter (-3 dB at 0.856*fs/2) in Q14
  1849.  */
  1850. const Word16 D_ROM_inter4_2[UP_SAMP * 2 * L_INTERPOL2] = {
  1851.    0, 1, 2, 1,
  1852.    -2, -7, -10, -7,
  1853.    4, 19, 28, 22,
  1854.    -2, -33, -55, -49,
  1855.    -10, 47, 91, 92,
  1856.    38, -52, -133, -153,
  1857.    -88, 43, 175, 231,
  1858.    165, -9, -209, -325,
  1859.    -275, -60, 226, 431,
  1860.    424, 175, -213, -544,
  1861.    -619, -355, 153, 656,
  1862.    871, 626, -16, -762,
  1863.    -1207, -1044, -249, 853,
  1864.    1699, 1749, 780, -923,
  1865.    -2598, -3267, -2147, 968,
  1866.    5531, 10359, 14031, 15401,
  1867.    14031, 10359, 5531, 968,
  1868.    -2147, -3267, -2598, -923,
  1869.    780, 1749, 1699, 853,
  1870.    -249, -1044, -1207, -762,
  1871.    -16, 626, 871, 656,
  1872.    153, -355, -619, -544,
  1873.    -213, 175, 424, 431,
  1874.    226, -60, -275, -325,
  1875.    -209, -9, 165, 231,
  1876.    175, 43, -88, -153,
  1877.    -133, -52, 38, 92,
  1878.    91, 47, -10, -49,
  1879.    -55, -33, -2, 22,
  1880.    28, 19, 4, -7,
  1881.    -10, -7, -2, 1,
  1882.    2, 1, 0, 0
  1883. };
  1884. /*
  1885.  * 1/5 resolution interpolation filter  (in Q14)
  1886.  * -1.5dB @ 6kHz, -6dB @ 6.4kHz, -10dB @ 6.6kHz, -20dB @ 6.9kHz, -25dB @ 7kHz, -55dB @ 8kHz
  1887.  */
  1888. const Word16 D_ROM_fir_up[120] = {
  1889.    -1, -4, -7, -6, 0,
  1890.    12, 24, 30, 23, 0,
  1891.    -33, -62, -73, -52, 0,
  1892.    68, 124, 139, 96, 0,
  1893.    -119, -213, -235, -160, 0,
  1894.    191, 338, 368, 247, 0,
  1895.    -291, -510, -552, -369, 0,
  1896.    430, 752, 812, 542, 0,
  1897.    -634, -1111, -1204, -809, 0,
  1898.    963, 1708, 1881, 1288, 0,
  1899.    -1616, -2974, -3432, -2496, 0,
  1900.    3792, 8219, 12368, 15317, 16384,
  1901.    15317, 12368, 8219, 3792, 0,
  1902.    -2496, -3432, -2974, -1616, 0,
  1903.    1288, 1881, 1708, 963, 0,
  1904.    -809, -1204, -1111, -634, 0,
  1905.    542, 812, 752, 430, 0,
  1906.    -369, -552, -510, -291, 0,
  1907.    247, 368, 338, 191, 0,
  1908.    -160, -235, -213, -119, 0,
  1909.    96, 139, 124, 68, 0,
  1910.    -52, -73, -62, -33, 0,
  1911.    23, 30, 24, 12, 0,
  1912.    -6, -7, -4, -1, 0
  1913. };
  1914. /* table x4/5 */
  1915. const Word16 D_ROM_fir_down[120] = {
  1916.    -1, -3, -6, -5,
  1917.    0, 9, 19, 24,
  1918.    18, 0, -26, -50,
  1919.    -58, -41, 0, 54,
  1920.    99, 111, 77, 0,
  1921.    -95, -170, -188, -128,
  1922.    0, 153, 270, 294,
  1923.    198, 0, -233, -408,
  1924.    -441, -295, 0, 344,
  1925.    601, 649, 434, 0,
  1926.    -507, -888, -964, -647,
  1927.    0, 770, 1366, 1505,
  1928.    1030, 0, -1293, -2379,
  1929.    -2746, -1997, 0, 3034,
  1930.    6575, 9894, 12254, 13107,
  1931.    12254, 9894, 6575, 3034,
  1932.    0, -1997, -2746, -2379,
  1933.    -1293, 0, 1030, 1505,
  1934.    1366, 770, 0, -647,
  1935.    -964, -888, -507, 0,
  1936.    434, 649, 601, 344,
  1937.    0, -295, -441, -408,
  1938.    -233, 0, 198, 294,
  1939.    270, 153, 0, -128,
  1940.    -188, -170, -95, 0,
  1941.    77, 111, 99, 54,
  1942.    0, -41, -58, -50,
  1943.    -26, 0, 18, 24,
  1944.    19, 9, 0, -5,
  1945.    -6, -3, -1, 0
  1946. };
  1947. /*
  1948.  * Impulse response with phase dispersion
  1949.  */
  1950. /* 2.0 - 6.4 kHz phase dispersion */
  1951. const Word16 D_ROM_ph_imp_low[L_SUBFR] = {
  1952.    20182, 9693, 3270, -3437, 2864, -5240, 1589, -1357,
  1953.    600, 3893, -1497, -698, 1203, -5249, 1199, 5371,
  1954.    -1488, -705, -2887, 1976, 898, 721, -3876, 4227,
  1955.    -5112, 6400, -1032, -4725, 4093, -4352, 3205, 2130,
  1956.    -1996, -1835, 2648, -1786, -406, 573, 2484, -3608,
  1957.    3139, -1363, -2566, 3808, -639, -2051, -541, 2376,
  1958.    3932, -6262, 1432, -3601, 4889, 370, 567, -1163,
  1959.    -2854, 1914, 39, -2418, 3454, 2975, -4021, 3431
  1960. };
  1961. /* 3.2 - 6.4 kHz phase dispersion */
  1962. const Word16 D_ROM_ph_imp_mid[L_SUBFR] = {
  1963.    24098, 10460, -5263, -763, 2048, -927, 1753, -3323,
  1964.    2212, 652, -2146, 2487, -3539, 4109, -2107, -374,
  1965.    -626, 4270, -5485, 2235, 1858, -2769, 744, 1140,
  1966.    -763, -1615, 4060, -4574, 2982, -1163, 731, -1098,
  1967.    803, 167, -714, 606, -560, 639, 43, -1766,
  1968.    3228, -2782, 665, 763, 233, -2002, 1291, 1871,
  1969.    -3470, 1032, 2710, -4040, 3624, -4214, 5292, -4270,
  1970.    1563, 108, -580, 1642, -2458, 957, 544, 2540
  1971. };
  1972. /*
  1973.  * Table for synthesis of signal at 16kHz with HF extension.
  1974.  */
  1975. const Word16 D_ROM_hp_gain[16] = {
  1976.    3624, 4673, 5597, 6479, 7425, 8378, 9324, 10264,
  1977.    11210, 12206, 13391, 14844, 16770, 19655, 24289, 32728
  1978. };
  1979. /*
  1980.  * isp and isf tables for initialization
  1981.  */
  1982. const Word16 D_ROM_isp[M] = {
  1983.    32138, 30274, 27246, 23170, 18205, 12540, 6393, 0,
  1984.    -6393, -12540, -18205, -23170, -27246, -30274, -32138, 1475
  1985. };
  1986. const Word16 D_ROM_isf[M] = {
  1987.    1024, 2048, 3072, 4096, 5120, 6144, 7168, 8192,
  1988.    9216, 10240, 11264, 12288, 13312, 14336, 15360, 3840
  1989. };
  1990. /*
  1991.  * means of ISFs
  1992.  */
  1993. const Word16 D_ROM_mean_isf[ORDER] = {
  1994.    738, 1326, 2336, 3578, 4596, 5662, 6711, 7730,
  1995.    8750, 9753, 10705, 11728, 12833, 13971, 15043, 4037
  1996. };
  1997. const Word16 D_ROM_mean_isf_noise[ORDER] = {
  1998.    478, 1100, 2213, 3267, 4219, 5222, 6198, 7240,
  1999.    8229, 9153, 10098, 11108, 12144, 13184, 14165, 3803
  2000. };
  2001. /* 16-byte align end */
  2002. /*
  2003.  * LTP gain & fixed codebook gain consealement
  2004.  */
  2005. /* pitch gain weight */
  2006. const Word16 D_ROM_pdown_unusable[7] = {32767, 31130, 29491, 24576, 7537, 1638, 328};
  2007. const Word16 D_ROM_cdown_unusable[7] = {32767, 16384, 8192, 8192, 8192, 4915, 3277};
  2008. /* codebook gain weight */
  2009. const Word16 D_ROM_pdown_usable[7] = {32767, 32113, 31457, 24576, 7537, 1638, 328};
  2010. const Word16 D_ROM_cdown_usable[7] = {32767, 32113, 32113, 32113, 32113, 32113, 22938};
  2011. /*
  2012.  * filter coefficients (gain=4.0)
  2013.  */
  2014. const Word16 D_ROM_fir_6k_7k[L_FIR] = {
  2015.    -32, 47, 32, -27, -369,
  2016.    1122, -1421, 0, 3798, -8880,
  2017.    12349, -10984, 3548, 7766, -18001,
  2018.    22118, -18001, 7766, 3548, -10984,
  2019.    12349, -8880, 3798, 0, -1421,
  2020.    1122, -369, -27, 32, 47,
  2021.    -32
  2022. };
  2023. const Word16 D_ROM_fir_7k[L_FIR] = {
  2024.    -21, 47, -89, 146, -203,
  2025.    229, -177, 0, 335, -839,
  2026.    1485, -2211, 2931, -3542, 3953,
  2027.    28682, 3953, -3542, 2931, -2211,
  2028.    1485, -839, 335, 0, -177,
  2029.    229, -203, 146, -89, 47,
  2030.    -21
  2031. };
  2032. /*
  2033.  * LPC interpolation coef {0.45, 0.8, 0.96, 1.0}; in Q15
  2034.  */
  2035. const Word16 D_ROM_interpol_frac[NB_SUBFR] = {14746, 26214, 31457, 32767};
  2036. /*
  2037.  * Math tables
  2038.  */
  2039. const Word16 D_ROM_pow2[33] = {
  2040.    16384, 16743, 17109, 17484, 17867, 18258, 18658, 19066, 19484, 19911,
  2041.    20347, 20792, 21247, 21713, 22188, 22674, 23170, 23678, 24196, 24726,
  2042.    25268, 25821, 26386, 26964, 27554, 28158, 28774, 29405, 30048, 30706,
  2043.    31379, 32066, 32767
  2044. };
  2045. const Word16 D_ROM_isqrt[49] = {
  2046.    32767, 31790, 30894, 30070, 29309, 28602, 27945, 27330, 26755, 26214,
  2047.    25705, 25225, 24770, 24339, 23930, 23541, 23170, 22817, 22479, 22155,
  2048.    21845, 21548, 21263, 20988, 20724, 20470, 20225, 19988, 19760, 19539,
  2049.    19326, 19119, 18919, 18725, 18536, 18354, 18176, 18004, 17837, 17674,
  2050.    17515, 17361, 17211, 17064, 16921, 16782, 16646, 16514, 16384
  2051. };
  2052. const Word16 D_ROM_log2[33] = {
  2053.    0, 1455, 2866, 4236, 5568, 6863, 8124, 9352, 10549, 11716,
  2054.    12855, 13967, 15054, 16117, 17156, 18172, 19167, 20142, 21097, 22033,
  2055.    22951, 23852, 24735, 25603, 26455, 27291, 28113, 28922, 29716, 30497,
  2056.    31266, 32023, 32767
  2057. };
  2058. /* table of cos(x) in Q15 */
  2059. const Word16 D_ROM_cos[129] = {
  2060.    32767,
  2061.    32758, 32729, 32679, 32610, 32522, 32413, 32286, 32138,
  2062.    31972, 31786, 31581, 31357, 31114, 30853, 30572, 30274,
  2063.    29957, 29622, 29269, 28899, 28511, 28106, 27684, 27246,
  2064.    26791, 26320, 25833, 25330, 24812, 24279, 23732, 23170,
  2065.    22595, 22006, 21403, 20788, 20160, 19520, 18868, 18205,
  2066.    17531, 16846, 16151, 15447, 14733, 14010, 13279, 12540,
  2067.    11793, 11039, 10279, 9512, 8740, 7962, 7180, 6393,
  2068.    5602, 4808, 4011, 3212, 2411, 1608, 804, 0,
  2069.    -804, -1608, -2411, -3212, -4011, -4808, -5602, -6393,
  2070.    -7180, -7962, -8740, -9512, -10279, -11039, -11793, -12540,
  2071.    -13279, -14010, -14733, -15447, -16151, -16846, -17531, -18205,
  2072.    -18868, -19520, -20160, -20788, -21403, -22006, -22595, -23170,
  2073.    -23732, -24279, -24812, -25330, -25833, -26320, -26791, -27246,
  2074.    -27684, -28106, -28511, -28899, -29269, -29622, -29957, -30274,
  2075.    -30572, -30853, -31114, -31357, -31581, -31786, -31972, -32138,
  2076.    -32286, -32413, -32522, -32610, -32679, -32729, -32758, -32768
  2077. };