q_plsf_5_tbl.cpp revision d95a8462c367a7bea1b4aee24917d3e9ed7e2a48
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/****************************************************************************************
19Portions 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)
26Permission to distribute, modify and use this file under the standard license
27terms 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
63extern "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    extern 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    extern 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    extern 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    extern 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    extern 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    extern 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