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