Home | History | Annotate | Download | only in src
      1 /* ------------------------------------------------------------------
      2  * Copyright (C) 1998-2009 PacketVideo
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *      http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
     13  * express or implied.
     14  * See the License for the specific language governing permissions
     15  * and limitations under the License.
     16  * -------------------------------------------------------------------
     17  */
     18 /****************************************************************************************
     19 Portions of this file are derived from the following 3GPP standard:
     20 
     21     3GPP TS 26.073
     22     ANSI-C code for the Adaptive Multi-Rate (AMR) speech codec
     23     Available from http://www.3gpp.org
     24 
     25 (C) 2004, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC)
     26 Permission to distribute, modify and use this file under the standard license
     27 terms listed above has been obtained from the copyright holder.
     28 ****************************************************************************************/
     29 /*
     30 
     31  Filename: /audio/gsm_amr/c/src/q_plsf_5_tbl.c
     32 
     33 ------------------------------------------------------------------------------
     34  REVISION HISTORY
     35 
     36  Description: Created this file from the reference, q_plsf_5_tbl.tab
     37 
     38  Description: Changed #defines of DICO_SIZE to DICO_5_SIZE, to avoid name
     39  conflicts.
     40 
     41  Description: Added #ifdef __cplusplus and removed "extern" from table
     42               definition.
     43 
     44  Description: Put "extern" back.
     45 
     46  Who:                       Date:
     47  Description:
     48 
     49 ------------------------------------------------------------------------------
     50  MODULE DESCRIPTION
     51 
     52 ------------------------------------------------------------------------------
     53 */
     54 
     55 /*----------------------------------------------------------------------------
     56 ; INCLUDES
     57 ----------------------------------------------------------------------------*/
     58 #include "typedef.h"
     59 #include "q_plsf_5_tbl.h"
     60 
     61 /*--------------------------------------------------------------------------*/
     62 #ifdef __cplusplus
     63 extern "C"
     64 {
     65 #endif
     66 
     67     /*----------------------------------------------------------------------------
     68     ; MACROS
     69     ; [Define module specific macros here]
     70     ----------------------------------------------------------------------------*/
     71 
     72     /*----------------------------------------------------------------------------
     73     ; DEFINES
     74     ; [Include all pre-processor statements here. Include conditional
     75     ; compile variables also.]
     76     ----------------------------------------------------------------------------*/
     77 #define NB_QUA_PITCH 16
     78 #define NB_QUA_CODE 32
     79 
     80 
     81 #define DICO1_5_SIZE  128
     82 #define DICO2_5_SIZE  256
     83 #define DICO3_5_SIZE  256
     84 #define DICO4_5_SIZE  256
     85 #define DICO5_5_SIZE  64
     86 
     87     /*----------------------------------------------------------------------------
     88     ; LOCAL FUNCTION DEFINITIONS
     89     ; [List function prototypes here]
     90     ----------------------------------------------------------------------------*/
     91 
     92     /*----------------------------------------------------------------------------
     93     ; LOCAL VARIABLE DEFINITIONS
     94     ; [Variable declaration - defined here and used outside this module]
     95     ----------------------------------------------------------------------------*/
     96     /* LSF means ->normalize frequency domain */
     97 
     98     const Word16 mean_lsf_5[10] =
     99     {
    100         1384,
    101         2077,
    102         3420,
    103         5108,
    104         6742,
    105         8122,
    106         9863,
    107         11092,
    108         12714,
    109         13701
    110     };
    111 
    112     const Word16 dico1_lsf_5[DICO1_5_SIZE * 4] =
    113     {
    114         -451, -1065, -529, -1305,
    115         -450, -756, -497, -863,
    116         -384, -619, -413, -669,
    117         -317, -538, -331, -556,
    118         -414, -508, -424, -378,
    119         -274, -324, -434, -614,
    120         -226, -500, -232, -514,
    121         -263, -377, -298, -410,
    122         -151, -710, -174, -818,
    123         -149, -412, -156, -429,
    124         -288, -462, -186, -203,
    125         -170, -302, -191, -321,
    126         -131, -147, -297, -395,
    127         -228, -214, -245, -192,
    128         -67, -316, -71, -327,
    129         -104, -205, -94, -183,
    130         -143, -38, -193, -95,
    131         16, -76, -124, -248,
    132         23, -237, 24, -244,
    133         18, -136, 44, -111,
    134         -33, -24, -25, 0,
    135         149, 19, 23, -143,
    136         158, -169, 174, -181,
    137         133, -55, 165, -26,
    138         111, 84, 98, 75,
    139         87, 183, -115, -11,
    140         -8, 130, 11, 170,
    141         254, 77, 205, 17,
    142         183, 112, 262, 194,
    143         202, 287, 95, 189,
    144         -42, -105, 234, 179,
    145         39, 186, 163, 345,
    146         332, 199, 299, 161,
    147         -54, 285, -78, 281,
    148         -133, 141, -182, 111,
    149         249, 341, 271, 364,
    150         93, 403, 75, 391,
    151         92, 510, -138, 220,
    152         -185, -29, -34, 361,
    153         -115, 320, 3, 554,
    154         99, 286, 218, 591,
    155         -245, 406, -268, 453,
    156         0, 580, 25, 606,
    157         275, 532, 148, 450,
    158         -73, 739, -285, 518,
    159         -288, 94, -203, 674,
    160         -140, -74, 205, 714,
    161         -114, 299, 176, 923,
    162         182, 557, 240, 705,
    163         -16, 513, 485, 593,
    164         293, 384, 451, 617,
    165         -38, 50, 563, 529,
    166         303, 209, 459, 363,
    167         433, 452, 450, 454,
    168         367, 606, 477, 741,
    169         432, 353, 368, 267,
    170         361, 716, 273, 583,
    171         453, 166, 510, 172,
    172         201, 629, 274, 191,
    173         568, 639, 302, 298,
    174         634, 387, 643, 350,
    175         587, 560, 612, 565,
    176         600, 788, 487, 672,
    177         512, 1015, 321, 333,
    178         357, 854, -125, 413,
    179         474, 712, 17, -151,
    180         564, 285, 270, -241,
    181         971, 889, 489, 220,
    182         510, 896, 549, 924,
    183         327, 825, 290, 911,
    184         540, 1108, 158, 805,
    185         199, 957, 511, 730,
    186         100, 874, 13, 791,
    187         435, 632, 676, 972,
    188         249, 900, 467, 1218,
    189         781, 1074, 585, 785,
    190         -23, 669, 267, 1043,
    191         619, 1084, 615, 1145,
    192         622, 905, 916, 1049,
    193         80, 331, 584, 1075,
    194         89, 639, 988, 961,
    195         770, 720, 798, 699,
    196         492, 447, 899, 627,
    197         271, 1188, 725, 1333,
    198         87, 603, 832, 1603,
    199         616, 1127, 890, 1505,
    200         1000, 1156, 866, 1009,
    201         995, 827, 1149, 858,
    202         817, 1450, 773, 1320,
    203         500, 1389, 312, 1153,
    204         -20, 1084, 64, 1283,
    205         2, 1172, 399, 1869,
    206         514, 1706, 502, 1636,
    207         886, 1522, 416, 600,
    208         1131, 1350, 1275, 1390,
    209         889, 1795, 914, 1766,
    210         227, 1183, 1250, 1826,
    211         505, 1854, 919, 2353,
    212         -199, 431, 152, 1735,
    213         -213, -28, 392, 1334,
    214         -153, -52, 978, 1151,
    215         -323, -400, 813, 1703,
    216         -136, 84, 1449, 2015,
    217         -331, -143, -137, 1192,
    218         -256, 534, -157, 1031,
    219         -307, -439, 542, 731,
    220         -329, -420, -97, 616,
    221         -362, -168, -322, 366,
    222         -247, -110, -211, 89,
    223         -196, -309, 20, 59,
    224         -364, -463, -286, 89,
    225         -336, 175, -432, 141,
    226         -379, -190, -434, -196,
    227         -79, 150, -278, -227,
    228         -280, 166, -555, -422,
    229         -155, 541, -366, 54,
    230         -29, -83, -301, -774,
    231         186, 628, -397, -264,
    232         242, 293, -197, -585,
    233         124, 410, 53, -133,
    234         10, 340, -570, -1065,
    235         65, -446, 68, -493,
    236         383, 937, -357, -711,
    237         -359, -250, -677, -1068,
    238         292, -26, 363, 6,
    239         607, 1313, -127, -10,
    240         1513, 1886, 713, 972,
    241         1469, 2181, 1443, 2016
    242     };
    243 
    244     const Word16 dico2_lsf_5[DICO2_5_SIZE * 4] =
    245     {
    246         -1631, -1600, -1796, -2290,
    247         -1027, -1770, -1100, -2025,
    248         -1277, -1388, -1367, -1534,
    249         -947, -1461, -972, -1524,
    250         -999, -1222, -1020, -1172,
    251         -815, -987, -992, -1371,
    252         -1216, -1006, -1289, -1094,
    253         -744, -1268, -755, -1293,
    254         -862, -923, -905, -984,
    255         -678, -1051, -685, -1050,
    256         -1087, -985, -1062, -679,
    257         -989, -641, -1127, -976,
    258         -762, -654, -890, -806,
    259         -833, -1091, -706, -629,
    260         -621, -806, -640, -812,
    261         -775, -634, -779, -543,
    262         -996, -565, -1075, -580,
    263         -546, -611, -572, -619,
    264         -760, -290, -879, -526,
    265         -823, -462, -795, -253,
    266         -553, -415, -589, -439,
    267         -533, -340, -692, -935,
    268         -505, -772, -702, -1131,
    269         -263, -306, -971, -483,
    270         -445, -74, -555, -548,
    271         -614, -129, -693, -234,
    272         -396, -246, -475, -250,
    273         -265, -404, -376, -514,
    274         -417, -510, -300, -313,
    275         -334, -664, -463, -814,
    276         -386, -704, -337, -615,
    277         -234, -201, -233, -239,
    278         -167, -567, -203, -619,
    279         -147, -415, -115, -352,
    280         -166, -750, -171, -761,
    281         -270, -879, -264, -903,
    282         -367, -744, 43, -475,
    283         14, -653, 43, -670,
    284         11, -448, -59, -521,
    285         -126, -119, -155, -613,
    286         -42, -863, -27, -931,
    287         136, -483, 183, -468,
    288         55, -298, 55, -304,
    289         313, -609, 313, -720,
    290         322, -167, 100, -541,
    291         -3, -119, -111, -187,
    292         233, -236, 260, -234,
    293         26, -165, 134, -45,
    294         -40, -549, 360, -203,
    295         378, -388, 450, -383,
    296         275, 20, 182, -103,
    297         246, -111, 431, 37,
    298         462, -146, 487, -157,
    299         -284, -59, 503, -184,
    300         24, 53, -3, 54,
    301         122, 259, 333, 66,
    302         484, 104, 436, 68,
    303         195, 116, 190, 206,
    304         269, -9, 482, 352,
    305         382, 285, 399, 277,
    306         452, 256, 69, 186,
    307         13, 297, -13, 259,
    308         -95, 30, 56, 394,
    309         196, 425, 205, 456,
    310         281, 577, 15, 191,
    311         375, 290, 407, 576,
    312         -56, 227, 544, 405,
    313         0, 549, -92, 528,
    314         -229, 351, -245, 338,
    315         -362, 435, 167, 527,
    316         -75, 302, 91, 824,
    317         129, 599, 496, 679,
    318         186, 749, 153, 737,
    319         -281, 600, -348, 615,
    320         -236, 769, 41, 881,
    321         38, 890, -220, 841,
    322         -357, 883, -393, 903,
    323         -634, 474, -444, 850,
    324         -175, 678, -493, 242,
    325         -519, 785, -714, 582,
    326         -541, 366, -543, 434,
    327         -597, 500, -765, 222,
    328         -702, 917, -743, 962,
    329         -869, 501, -899, 548,
    330         -379, 200, -435, 157,
    331         -819, 214, -861, 157,
    332         -614, 40, -632, 94,
    333         -883, -54, -741, 516,
    334         -501, 298, -614, -171,
    335         -870, -161, -865, -23,
    336         -818, 93, -1015, -267,
    337         -662, -359, -549, 2,
    338         -442, -121, -377, 0,
    339         -227, 33, -414, -126,
    340         -129, 212, -934, 34,
    341         -1082, -282, -1119, -268,
    342         -710, -825, -420, -191,
    343         -1076, -928, -917, -93,
    344         -628, -358, 97, 7,
    345         -206, -393, -101, 24,
    346         -203, 38, -168, 83,
    347         -599, -423, -279, 426,
    348         -700, 118, -75, 206,
    349         -981, -673, -680, 417,
    350         -367, 37, -279, 474,
    351         -129, -318, 319, 296,
    352         -626, -39, 343, 602,
    353         -696, -39, -303, 940,
    354         104, 233, -380, 137,
    355         -36, 269, -75, -214,
    356         120, 43, -529, -477,
    357         459, 164, -202, -229,
    358         -49, -167, 609, 792,
    359         98, -220, 915, 148,
    360         293, 283, 869, 91,
    361         575, 394, 326, -78,
    362         717, 67, 365, -323,
    363         616, -36, 731, 27,
    364         619, 238, 632, 273,
    365         448, 99, 801, 476,
    366         869, 273, 685, 64,
    367         789, 72, 1021, 217,
    368         793, 459, 734, 360,
    369         646, 480, 360, 322,
    370         429, 464, 638, 430,
    371         756, 363, 1000, 404,
    372         683, 528, 602, 615,
    373         655, 413, 946, 687,
    374         937, 602, 904, 604,
    375         555, 737, 786, 662,
    376         467, 654, 362, 589,
    377         929, 710, 498, 478,
    378         415, 420, 693, 883,
    379         813, 683, 781, 925,
    380         913, 939, 726, 732,
    381         491, 853, 531, 948,
    382         734, 963, 315, 808,
    383         761, 755, 1144, 760,
    384         655, 1076, 826, 1057,
    385         1091, 838, 1003, 808,
    386         1047, 1133, 659, 1101,
    387         992, 1050, 1074, 1075,
    388         971, 694, 1226, 1054,
    389         571, 841, 884, 1404,
    390         1379, 1096, 1080, 861,
    391         1231, 735, 1284, 760,
    392         1272, 991, 1367, 1053,
    393         1257, 700, 1050, 534,
    394         988, 453, 1264, 599,
    395         1140, 679, 1621, 815,
    396         1384, 521, 1317, 393,
    397         1564, 805, 1448, 686,
    398         1068, 648, 875, 307,
    399         1083, 361, 1047, 317,
    400         1417, 964, 675, 571,
    401         1152, 79, 1114, -47,
    402         1530, 311, 1721, 314,
    403         1166, 689, 514, -94,
    404         349, 282, 1412, 328,
    405         1025, 487, -65, 57,
    406         805, 970, 36, 62,
    407         769, -263, 791, -346,
    408         637, 699, -137, 620,
    409         534, 541, -735, 194,
    410         711, 300, -268, -863,
    411         926, 769, -708, -428,
    412         506, 174, -892, -630,
    413         435, 547, -1435, -258,
    414         621, 471, -1018, -1368,
    415         -393, 521, -920, -686,
    416         -25, 20, -982, -1156,
    417         340, 9, -1558, -1135,
    418         -352, 48, -1579, -402,
    419         -887, 6, -1156, -888,
    420         -548, -352, -1643, -1168,
    421         -159, 610, -2024, -963,
    422         -225, 193, -1656, -1960,
    423         -245, -493, -964, -1680,
    424         -936, -635, -1299, -1744,
    425         -1388, -604, -1540, -835,
    426         -1397, -135, -1588, -290,
    427         -1670, -712, -2011, -1632,
    428         -1663, -27, -2258, -811,
    429         -1157, 184, -1265, 189,
    430         -1367, 586, -2011, 201,
    431         -790, 712, -1210, 3,
    432         -1033, 808, -1251, 830,
    433         -111, 635, -1636, 447,
    434         -463, -949, -445, -928,
    435         -504, -1162, -501, -1211,
    436         144, -351, -372, -1052,
    437         -283, -1059, -279, -1123,
    438         -575, -1438, -587, -1614,
    439         -935, -984, 229, 690,
    440         -921, -719, -403, 1362,
    441         -685, -465, 874, 397,
    442         -509, -46, 317, 1334,
    443         -485, 456, 813, 439,
    444         -411, 339, 898, 1067,
    445         -425, 46, 1441, 497,
    446         -909, -800, 1465, 1046,
    447         -254, -321, 1430, 1165,
    448         68, 350, 1034, 666,
    449         370, 11, 1311, 790,
    450         143, 232, 1041, 1562,
    451         -114, 663, 1616, 1078,
    452         454, 579, 1275, 1040,
    453         -76, 909, 752, 1067,
    454         153, 512, 348, 1214,
    455         614, 385, 1843, 808,
    456         269, 1034, 203, 1086,
    457         652, 1017, 1783, 1130,
    458         429, 1327, 387, 1384,
    459         -49, 1183, -72, 1215,
    460         -416, 1001, 544, 1749,
    461         -352, 1223, -502, 1199,
    462         -589, 569, -227, 1630,
    463         -142, 1578, -230, 1715,
    464         -714, 1288, -838, 1398,
    465         1131, 1357, -208, 1232,
    466         437, 965, -929, 818,
    467         811, 1410, 859, 1507,
    468         164, 1212, 1387, 1793,
    469         484, 1874, 456, 2063,
    470         996, 1170, 1326, 1402,
    471         1316, 1360, 1135, 1262,
    472         1234, 1618, 1361, 1768,
    473         1421, 1227, 1584, 1347,
    474         854, 672, 1685, 1566,
    475         1139, 1270, 2016, 1825,
    476         1773, 1581, 1532, 1460,
    477         1487, 946, 1659, 1021,
    478         1744, 1212, 1392, 977,
    479         1772, 1161, 1826, 1164,
    480         1718, 1429, 1973, 1591,
    481         1185, 864, 2132, 1061,
    482         1799, 814, 1838, 757,
    483         2104, 1315, 2054, 1258,
    484         2113, 915, 2331, 930,
    485         1467, 1147, 2590, 1439,
    486         2245, 1744, 2090, 1620,
    487         2358, 1454, 2666, 1506,
    488         1876, 1837, 2070, 1975,
    489         1739, 1577, 682, 1289,
    490         1584, 2045, 1454, 2098,
    491         2498, 2004, 2711, 2066,
    492         726, 1588, 2756, 2336,
    493         228, 847, 2456, 1659,
    494         36, 301, 1942, 1957,
    495         -446, -96, 2154, 1396,
    496         1533, 1101, 14, 608,
    497         -923, -732, 1383, 1982,
    498         1345, 952, -680, 321,
    499         1281, 1268, -1594, 365,
    500         941, 946, -1737, -822,
    501         2374, 2787, 1821, 2788
    502     };
    503 
    504     const Word16 dico3_lsf_5[DICO3_5_SIZE * 4] =
    505     {
    506         -1812, -2275, -1879, -2537,
    507         -1640, -1848, -1695, -2004,
    508         -1220, -1912, -1221, -2106,
    509         -1559, -1588, -1573, -1556,
    510         -1195, -1615, -1224, -1727,
    511         -1359, -1151, -1616, -1948,
    512         -1274, -1391, -1305, -1403,
    513         -1607, -1179, -1676, -1311,
    514         -1443, -1478, -1367, -898,
    515         -1256, -1059, -1331, -1134,
    516         -982, -1133, -1149, -1504,
    517         -1080, -1308, -1020, -1183,
    518         -980, -1486, -967, -1495,
    519         -988, -922, -1047, -1077,
    520         -838, -1179, -858, -1222,
    521         -1131, -1041, -1064, -767,
    522         -872, -1157, -701, -880,
    523         -706, -906, -774, -1016,
    524         -578, -1080, -801, -1478,
    525         -591, -1111, -592, -1146,
    526         -713, -1388, -640, -1376,
    527         -597, -1059, -416, -903,
    528         -686, -832, -661, -708,
    529         -444, -868, -490, -921,
    530         -374, -776, -619, -1170,
    531         -585, -549, -769, -795,
    532         -435, -659, -530, -741,
    533         -498, -837, -357, -597,
    534         -279, -871, -243, -887,
    535         -282, -665, -280, -667,
    536         -165, -560, -394, -903,
    537         -362, -410, -448, -583,
    538         -409, -574, -313, -357,
    539         -637, -548, -570, -436,
    540         -896, -504, -382, -757,
    541         -58, -481, -165, -618,
    542         -191, -374, -234, -382,
    543         -222, -683, -25, -480,
    544         -418, -359, -730, -353,
    545         -324, -157, -432, -322,
    546         -394, -303, -284, -104,
    547         -601, -289, -556, -196,
    548         -588, -150, -659, -608,
    549         -473, -24, -68, -448,
    550         -474, -8, -506, -45,
    551         -748, -184, -844, -252,
    552         -901, -91, -584, -97,
    553         -652, 138, -764, -131,
    554         -678, -12, -670, 165,
    555         -259, -3, -840, -107,
    556         -909, 37, -992, 44,
    557         -854, -415, -839, 13,
    558         -1001, -271, -1026, -309,
    559         -798, -478, -832, -488,
    560         -943, 168, -1112, -387,
    561         -1185, -101, -1183, -40,
    562         -941, -316, -1030, -770,
    563         -1044, -625, -1081, -538,
    564         -1224, -299, -1312, -436,
    565         -1197, -663, -1167, -161,
    566         -1216, -690, -1237, -831,
    567         -1432, -720, -1403, -493,
    568         -898, -740, -922, -801,
    569         -1102, -402, -1579, -964,
    570         -1061, -638, -1269, -1438,
    571         -1499, -934, -1502, -895,
    572         -1598, -564, -1723, -717,
    573         -606, -597, -1166, -1085,
    574         -1369, -468, -1946, -1493,
    575         -1838, -953, -1932, -931,
    576         -1499, -188, -1635, -421,
    577         -1457, -338, -1448, -22,
    578         -1942, -422, -2006, -249,
    579         -496, -114, -1910, -755,
    580         -1289, 174, -1451, -109,
    581         -482, -257, -1221, -508,
    582         -1617, 151, -1694, 208,
    583         -654, 107, -1651, 29,
    584         -1141, 279, -1215, 306,
    585         -1228, -506, -730, -175,
    586         -1236, -101, -969, 551,
    587         -870, 278, -823, 315,
    588         -563, 376, -1051, 228,
    589         -507, 280, -599, 281,
    590         -758, 253, -305, 379,
    591         -755, -134, -611, 660,
    592         -824, 536, -817, 646,
    593         -413, 49, -341, 177,
    594         -453, 526, -482, 589,
    595         -71, 339, -657, 264,
    596         -244, 295, -237, 315,
    597         -387, 569, -506, -9,
    598         -377, 14, -160, 661,
    599         -216, 40, -308, -46,
    600         95, 214, -242, 167,
    601         -86, 192, -56, 27,
    602         -76, 31, 36, 309,
    603         -106, -182, -113, 74,
    604         -441, -22, 23, 139,
    605         81, -11, 44, 15,
    606         -87, -137, -118, -207,
    607         -158, -58, 272, -92,
    608         -156, -441, 8, -136,
    609         128, -221, 101, -218,
    610         40, -197, -76, -456,
    611         9, -445, 33, -423,
    612         226, 60, 73, -222,
    613         156, -399, 280, -318,
    614         245, -341, 166, -499,
    615         339, -190, 327, -219,
    616         325, -137, -89, -596,
    617         100, -627, 144, -677,
    618         487, 28, 252, -391,
    619         214, -41, 282, -28,
    620         99, -286, 331, 49,
    621         459, -388, 565, -369,
    622         436, 28, 336, -9,
    623         397, -167, 618, 34,
    624         596, -17, 561, -140,
    625         299, 79, 522, 125,
    626         203, 2, 244, 288,
    627         255, 211, 175, 82,
    628         596, 187, 517, 108,
    629         381, 255, 365, 297,
    630         497, 352, 327, -82,
    631         25, 210, 371, 245,
    632         261, 3, 545, 449,
    633         140, 294, 44, 295,
    634         212, 347, 244, 494,
    635         331, 528, 201, 307,
    636         349, 411, 613, 284,
    637         614, 413, 464, 322,
    638         624, 397, 97, 200,
    639         -160, 384, 149, 362,
    640         495, 525, 269, 585,
    641         33, 491, -121, 433,
    642         427, 611, 498, 516,
    643         171, 443, 497, 666,
    644         440, 275, 566, 575,
    645         146, 639, 155, 670,
    646         -33, 173, 212, 696,
    647         -166, 601, -191, 695,
    648         -489, 503, 175, 742,
    649         214, 476, 372, 1083,
    650         578, 530, 586, 777,
    651         425, 874, 315, 841,
    652         374, 848, -165, 565,
    653         35, 991, -39, 1062,
    654         329, 712, 786, 840,
    655         645, 795, 661, 676,
    656         571, 918, 632, 1079,
    657         673, 817, 318, 388,
    658         874, 1012, 564, 848,
    659         880, 620, 557, 479,
    660         671, 453, 692, 468,
    661         840, 642, 844, 645,
    662         506, 428, 897, 567,
    663         837, 387, 962, 499,
    664         691, 561, 939, 926,
    665         783, 296, 790, 268,
    666         1028, 530, 874, 329,
    667         548, 143, 675, 291,
    668         503, 66, 1041, 359,
    669         786, 97, 805, 33,
    670         837, 470, 511, 49,
    671         1092, 327, 1174, 323,
    672         3, 242, 872, 474,
    673         689, 429, 1329, 678,
    674         1042, 620, 1109, 664,
    675         321, 193, 889, 950,
    676         1153, 874, 893, 635,
    677         877, 862, 948, 913,
    678         1293, 665, 1320, 639,
    679         997, 793, 1402, 1030,
    680         1176, 1012, 1110, 959,
    681         1410, 925, 1403, 915,
    682         543, 862, 1116, 1222,
    683         835, 1190, 835, 1190,
    684         959, 1148, 1147, 1376,
    685         1300, 1193, 1415, 1231,
    686         1335, 1341, 746, 1092,
    687         1711, 1283, 1389, 1073,
    688         1334, 1566, 1153, 1475,
    689         1645, 1137, 1825, 1220,
    690         1056, 1382, 1521, 1730,
    691         1632, 1545, 1620, 1542,
    692         855, 1596, 865, 1667,
    693         693, 885, 1716, 1519,
    694         1167, 1296, 2209, 1760,
    695         1952, 1493, 2020, 1482,
    696         1534, 1866, 1694, 2008,
    697         1566, 748, 1761, 825,
    698         294, 1392, 1084, 2058,
    699         621, 1315, 365, 1287,
    700         198, 1028, 488, 1408,
    701         249, 403, 1014, 1561,
    702         324, 363, 1645, 1044,
    703         193, 367, 2034, 1859,
    704         -251, 579, 750, 994,
    705         -243, 30, 1325, 879,
    706         -28, -169, 624, 917,
    707         -453, 159, 186, 1370,
    708         -614, 6, 537, 392,
    709         -94, -291, 781, 229,
    710         -128, -298, 245, 491,
    711         -701, -648, 972, 789,
    712         -501, -640, 178, 255,
    713         -365, -390, -255, 317,
    714         -958, -294, -191, 228,
    715         -775, -447, 157, -237,
    716         -657, -720, -407, 92,
    717         -117, -611, 334, -230,
    718         -679, -1084, -144, -317,
    719         -901, -861, -738, -360,
    720         -85, -727, -90, -787,
    721         100, -22, -391, -263,
    722         -56, -73, -337, -754,
    723         5, -189, -706, -624,
    724         89, -344, -135, -1113,
    725         -353, -237, -684, -1135,
    726         -275, -1102, -269, -1203,
    727         152, 145, -722, -1232,
    728         49, 80, -1248, -776,
    729         -248, 391, -732, -547,
    730         469, 218, -255, -864,
    731         69, 366, -166, -485,
    732         -688, 191, -1212, -1196,
    733         -170, -169, -1308, -1631,
    734         321, 470, -1419, -1243,
    735         -64, 272, -1361, -248,
    736         492, 565, -721, -609,
    737         195, 485, -573, -133,
    738         427, 202, -171, -118,
    739         199, 575, 2, -31,
    740         694, 755, -1366, -39,
    741         552, 557, -489, 271,
    742         680, 537, 13, -453,
    743         855, 954, -133, -52,
    744         -81, 738, -1169, 637,
    745         1055, 1059, -95, 676,
    746         1259, 1081, 489, 305,
    747         -449, 954, -534, 996,
    748         -969, 866, -1058, 1059,
    749         -1294, 618, -1416, 617,
    750         -458, 1366, -159, 1821,
    751         -774, -528, -14, 1110,
    752         -1202, -901, -772, 433,
    753         -1256, -1255, -1011, -302,
    754         -602, -585, -759, -1618,
    755         -760, -1549, -840, -1921,
    756         -816, -539, -1769, -2235,
    757         -227, -36, -2034, -1831,
    758         -2107, -1126, -2471, -1816,
    759         -1470, 252, -2701, -415,
    760         -571, -467, 1509, 1554,
    761         2180, 1975, 2326, 2020
    762     };
    763 
    764     const Word16 dico4_lsf_5[DICO4_5_SIZE * 4] =
    765     {
    766         -1857, -1681, -1857, -1755,
    767         -2056, -1150, -2134, -1654,
    768         -1619, -1099, -1704, -1131,
    769         -1345, -1608, -1359, -1638,
    770         -1338, -1293, -1325, -1265,
    771         -1664, -1649, -1487, -851,
    772         -1346, -1832, -1413, -2188,
    773         -1282, -681, -1785, -1649,
    774         -966, -1082, -1183, -1676,
    775         -1054, -1073, -1142, -1158,
    776         -1207, -744, -1274, -997,
    777         -934, -1383, -927, -1416,
    778         -1010, -1305, -783, -955,
    779         -1049, -900, -993, -817,
    780         -737, -823, -972, -1189,
    781         -738, -1094, -738, -1154,
    782         -784, -801, -810, -786,
    783         -892, -520, -1000, -818,
    784         -644, -965, -577, -882,
    785         -541, -694, -671, -917,
    786         -595, -642, -646, -615,
    787         -956, -621, -925, -515,
    788         -727, -483, -815, -485,
    789         -840, -578, -440, -713,
    790         -578, -325, -657, -670,
    791         -386, -570, -441, -666,
    792         -514, -787, -392, -529,
    793         -522, -453, -487, -423,
    794         -616, -585, -617, -157,
    795         -662, -268, -680, -348,
    796         -322, -323, -632, -444,
    797         -304, -430, -332, -458,
    798         -277, -468, -659, -793,
    799         -319, -636, -227, -554,
    800         -373, -347, -334, -210,
    801         -456, -192, -530, -242,
    802         -216, -198, -366, -370,
    803         -338, -161, -409, -748,
    804         -107, -380, -294, -643,
    805         -223, -665, -234, -741,
    806         -141, -496, -130, -510,
    807         -139, -327, -172, -305,
    808         -306, -580, -164, -263,
    809         -262, -172, -67, -402,
    810         31, -366, -10, -436,
    811         -86, -527, 71, -377,
    812         -22, -609, -12, -678,
    813         -67, -319, 63, -191,
    814         35, -181, -39, -242,
    815         126, -167, -140, -544,
    816         155, -297, 174, -297,
    817         38, -8, 117, -380,
    818         197, -452, 240, -522,
    819         223, -103, 110, -187,
    820         87, -155, 169, -47,
    821         157, 26, -83, -100,
    822         128, 80, 209, -62,
    823         6, 7, 22, 5,
    824         318, -20, 248, -45,
    825         -200, -63, 156, -69,
    826         250, -183, 369, -126,
    827         -113, -76, -142, -122,
    828         -64, -254, -31, 35,
    829         -177, -71, -7, 171,
    830         93, 27, 108, 212,
    831         -330, -209, -123, -70,
    832         -279, 95, -96, 20,
    833         -188, -61, -314, 87,
    834         -300, -78, -354, -134,
    835         11, 122, -140, 122,
    836         -275, 152, -293, 140,
    837         -82, 138, -321, -111,
    838         -480, -156, -359, 76,
    839         -254, -40, -635, -96,
    840         -522, 79, -507, 8,
    841         -268, 303, -539, 68,
    842         -446, 61, -522, 306,
    843         111, 189, -435, 122,
    844         -379, 166, -571, -398,
    845         -632, -74, -747, -95,
    846         -455, 194, -952, 83,
    847         -798, 192, -755, 192,
    848         -781, -162, -619, 234,
    849         -663, -297, -488, -109,
    850         -964, -132, -838, -68,
    851         -843, 58, -1112, -86,
    852         -805, -299, -944, -253,
    853         -778, -50, -965, -549,
    854         -352, -98, -992, -343,
    855         -1117, -315, -1117, -307,
    856         -1155, -374, -637, -230,
    857         -1166, -43, -1299, -100,
    858         -925, -393, -1274, -600,
    859         -689, -130, -1479, -312,
    860         -1321, -254, -1464, -442,
    861         -1292, -613, -1261, -503,
    862         -1501, -368, -1322, 26,
    863         -1432, -66, -1743, -161,
    864         -1644, -467, -1760, -548,
    865         -1393, -568, -1556, -871,
    866         -1495, -1034, -1387, -571,
    867         -1917, -528, -1783, -123,
    868         -1897, -231, -2054, -323,
    869         -2052, -906, -1976, -567,
    870         -1917, -620, -2047, -989,
    871         -1077, -370, -2031, -704,
    872         -2355, -749, -2740, -1089,
    873         -1909, 159, -2012, 248,
    874         -626, -123, -2339, -962,
    875         -669, -408, -1379, -1174,
    876         -452, -364, -1044, -735,
    877         -132, 183, -1620, -752,
    878         -547, -307, -777, -1261,
    879         -98, 41, -880, -1091,
    880         -257, 97, -1602, -1833,
    881         31, -26, -644, -561,
    882         -180, -546, -385, -1095,
    883         -410, -802, -414, -827,
    884         -457, -970, -490, -1109,
    885         -215, -916, -144, -937,
    886         -493, -1269, -517, -1507,
    887         181, 101, -332, -889,
    888         -836, -937, -559, -429,
    889         -629, -547, -183, -337,
    890         -545, -82, -250, -286,
    891         5, -132, -348, -252,
    892         -293, -472, -158, 100,
    893         -29, 197, -236, -424,
    894         -861, -213, -140, -7,
    895         -427, -443, 187, -97,
    896         -684, -736, -293, 258,
    897         -368, -152, -150, 392,
    898         -609, 175, -142, 299,
    899         -138, 152, -119, 329,
    900         -486, -52, 293, 198,
    901         -183, 117, 175, 331,
    902         -58, -274, 231, 300,
    903         -288, 330, -305, 372,
    904         -111, 409, -9, 423,
    905         83, 256, 67, 367,
    906         -19, 248, 91, 113,
    907         -35, 406, -191, 154,
    908         238, 296, 5, 197,
    909         141, 221, 313, 198,
    910         211, 421, 244, 334,
    911         88, 426, -243, 454,
    912         202, 552, -5, 403,
    913         291, 185, 219, 301,
    914         251, 138, 128, 69,
    915         197, 288, -140, -61,
    916         188, 361, 197, 598,
    917         442, 273, 290, 143,
    918         472, 482, 157, 370,
    919         415, 321, 372, 385,
    920         402, 552, 155, 24,
    921         550, 263, -11, 21,
    922         360, 227, 147, -254,
    923         424, 97, 366, -13,
    924         375, 141, 449, 232,
    925         396, 507, 474, 272,
    926         701, 324, 362, -47,
    927         587, 148, 543, 69,
    928         400, -51, 561, 59,
    929         220, -10, 352, 147,
    930         206, 211, 653, 185,
    931         563, 297, 565, 284,
    932         594, 121, 766, 192,
    933         398, 118, 642, 434,
    934         233, 264, 481, 467,
    935         129, -165, 699, 239,
    936         90, 26, 342, 474,
    937         -55, 27, 388, 94,
    938         -172, 0, 725, 379,
    939         -60, 337, 370, 465,
    940         95, 319, 806, 595,
    941         78, 260, 497, 851,
    942         210, 560, 458, 574,
    943         -464, 202, 497, 625,
    944         -202, 152, 48, 712,
    945         -20, 566, 100, 715,
    946         455, 468, 411, 605,
    947         319, 646, 195, 615,
    948         401, 538, 680, 739,
    949         201, 667, 434, 954,
    950         454, 425, 646, 491,
    951         606, 681, 416, 508,
    952         497, 822, 426, 815,
    953         660, 647, 628, 716,
    954         697, 466, 618, 457,
    955         685, 460, 365, 309,
    956         721, 567, 836, 601,
    957         609, 300, 825, 459,
    958         943, 687, 681, 533,
    959         915, 598, 591, 243,
    960         876, 451, 874, 420,
    961         786, 317, 732, 220,
    962         922, 317, 1108, 367,
    963         531, 466, 1028, 649,
    964         1053, 615, 1034, 553,
    965         829, 602, 1021, 799,
    966         927, 803, 878, 763,
    967         799, 496, 1373, 773,
    968         585, 770, 803, 930,
    969         1099, 793, 1222, 862,
    970         1209, 895, 1025, 727,
    971         772, 845, 1172, 1115,
    972         867, 1021, 830, 1013,
    973         841, 910, 506, 703,
    974         1239, 1077, 620, 819,
    975         1196, 1083, 1155, 1081,
    976         1142, 907, 1547, 1121,
    977         1309, 648, 1343, 612,
    978         1484, 988, 1479, 937,
    979         985, 1328, 955, 1341,
    980         429, 910, 841, 1338,
    981         564, 1179, 412, 1156,
    982         1427, 1320, 1434, 1330,
    983         640, 760, 1726, 1410,
    984         190, 555, 1073, 1005,
    985         426, 257, 839, 980,
    986         235, 231, 1520, 1167,
    987         109, 293, 1014, 1569,
    988         305, 142, 1148, 539,
    989         -291, -108, 1213, 972,
    990         22, -216, 667, 828,
    991         -482, 438, 453, 1431,
    992         -581, -422, 789, 387,
    993         -358, -454, 174, 780,
    994         -36, -372, 390, -134,
    995         -629, 160, -306, 751,
    996         -1258, -331, 177, 522,
    997         -248, 574, -251, 639,
    998         -531, 407, -596, 394,
    999         -419, 789, -617, 801,
   1000         -986, 399, -857, 727,
   1001         -7, 518, -703, 310,
   1002         -1143, -24, -1002, 287,
   1003         -960, 363, -1299, 312,
   1004         -1534, 245, -1557, 305,
   1005         28, 153, -859, -175,
   1006         -33, 332, -1398, -154,
   1007         212, 410, -593, -197,
   1008         -1092, -704, -904, -65,
   1009         282, 367, -918, -686,
   1010         345, 93, -258, -357,
   1011         696, 644, -693, -28,
   1012         448, 493, -273, 193,
   1013         527, 546, -243, -513,
   1014         384, -136, 273, -353,
   1015         512, -142, 537, -198,
   1016         941, 750, 83, 248,
   1017         578, 861, -56, 592,
   1018         842, 44, 892, 24,
   1019         33, 890, -16, 982,
   1020         831, 1398, 1535, 1898,
   1021         1716, 1376, 1948, 1465
   1022     };
   1023 
   1024     const Word16 dico5_lsf_5[DICO5_5_SIZE * 4] =
   1025     {
   1026         -1002, -929, -1096, -1203,
   1027         -641, -931, -604, -961,
   1028         -779, -673, -835, -788,
   1029         -416, -664, -458, -766,
   1030         -652, -521, -662, -495,
   1031         -1023, -509, -1023, -428,
   1032         -444, -552, -368, -449,
   1033         -479, -211, -1054, -903,
   1034         -316, -249, -569, -591,
   1035         -569, -275, -541, -191,
   1036         -716, -188, -842, -264,
   1037         -333, -248, -318, -228,
   1038         -275, 1, -567, -228,
   1039         -115, -221, -238, -374,
   1040         -197, -507, -222, -579,
   1041         -258, -432, -61, -244,
   1042         -345, 2, -338, 39,
   1043         -215, -169, -58, 0,
   1044         -56, -6, -203, -131,
   1045         1, -186, -5, -211,
   1046         6, -380, 11, -418,
   1047         -116, 131, -134, 113,
   1048         89, -4, 71, -2,
   1049         -19, -192, 262, 24,
   1050         189, 151, -133, -109,
   1051         186, -153, 166, -219,
   1052         37, 139, 193, 171,
   1053         337, 124, 158, -61,
   1054         141, 226, -13, 190,
   1055         231, 34, 354, 109,
   1056         316, 201, 244, 164,
   1057         330, -85, 390, -84,
   1058         254, 327, 257, 335,
   1059         491, 147, 476, 105,
   1060         54, 77, 437, 370,
   1061         421, 314, 449, 342,
   1062         329, 126, 673, 292,
   1063         571, 388, 243, 193,
   1064         653, 320, 621, 280,
   1065         194, 380, 517, 581,
   1066         45, 323, 111, 422,
   1067         489, 395, 734, 534,
   1068         622, 546, 486, 502,
   1069         318, 572, 189, 550,
   1070         385, 422, -157, 153,
   1071         -125, 382, -197, 386,
   1072         -263, 334, 228, 697,
   1073         -188, 1, 51, 297,
   1074         -507, 213, -376, 397,
   1075         -24, 255, -547, 89,
   1076         -502, -94, 387, 179,
   1077         -620, 68, -684, 112,
   1078         -642, -350, -260, 172,
   1079         -438, -324, 264, 648,
   1080         -964, -4, -1121, 7,
   1081         -134, 134, -1133, -306,
   1082         143, 96, -420, -497,
   1083         -1221, -350, -1527, -685,
   1084         -161, 72, 873, 691,
   1085         732, 283, 921, 353,
   1086         334, 475, 1095, 821,
   1087         864, 524, 843, 497,
   1088         714, 711, 788, 750,
   1089         1076, 714, 1204, 753
   1090     };
   1091 
   1092     /*--------------------------------------------------------------------------*/
   1093 #ifdef __cplusplus
   1094 }
   1095 #endif
   1096 
   1097 /*
   1098 ------------------------------------------------------------------------------
   1099  FUNCTION NAME:
   1100 ------------------------------------------------------------------------------
   1101  INPUT AND OUTPUT DEFINITIONS
   1102 
   1103  Inputs:
   1104     None
   1105 
   1106  Outputs:
   1107     None
   1108 
   1109  Returns:
   1110     None
   1111 
   1112  Global Variables Used:
   1113     None
   1114 
   1115  Local Variables Needed:
   1116     None
   1117 
   1118 ------------------------------------------------------------------------------
   1119  FUNCTION DESCRIPTION
   1120 
   1121  None
   1122 
   1123 ------------------------------------------------------------------------------
   1124  REQUIREMENTS
   1125 
   1126  None
   1127 
   1128 ------------------------------------------------------------------------------
   1129  REFERENCES
   1130 
   1131  [1] q_plsf_5.tab,  UMTS GSM AMR speech codec, R99 - Version 3.2.0, March 2, 2001
   1132 
   1133 ------------------------------------------------------------------------------
   1134  PSEUDO-CODE
   1135 
   1136 
   1137 ------------------------------------------------------------------------------
   1138  RESOURCES USED [optional]
   1139 
   1140  When the code is written for a specific target processor the
   1141  the resources used should be documented below.
   1142 
   1143  HEAP MEMORY USED: x bytes
   1144 
   1145  STACK MEMORY USED: x bytes
   1146 
   1147  CLOCK CYCLES: (cycle count equation for this function) + (variable
   1148                 used to represent cycle count for each subroutine
   1149                 called)
   1150      where: (cycle count variable) = cycle count for [subroutine
   1151                                      name]
   1152 
   1153 ------------------------------------------------------------------------------
   1154  CAUTION [optional]
   1155  [State any special notes, constraints or cautions for users of this function]
   1156 
   1157 ------------------------------------------------------------------------------
   1158 */
   1159 
   1160 /*----------------------------------------------------------------------------
   1161 ; FUNCTION CODE
   1162 ----------------------------------------------------------------------------*/
   1163 
   1164 
   1165