?? lpc.c
字號:
#include "lpc.h"
#include "basic_op.h"#include "autocorr.h"
#define L_WINDOW 240 static Word16 window_200_40[L_WINDOW] = { 2621, 2623, 2629, 2638, 2651, 2668, 2689, 2713, 2741, 2772, 2808, 2847, 2890, 2936, 2986, 3040, 3097, 3158, 3223, 3291, 3363, 3438, 3517, 3599, 3685, 3774, 3867, 3963, 4063, 4166, 4272, 4382, 4495, 4611, 4731, 4853, 4979, 5108, 5240, 5376, 5514, 5655, 5800, 5947, 6097, 6250, 6406, 6565, 6726, 6890, 7057, 7227, 7399, 7573, 7750, 7930, 8112, 8296, 8483, 8672, 8863, 9057, 9252, 9450, 9650, 9852, 10055, 10261, 10468, 10677, 10888, 11101, 11315, 11531, 11748, 11967, 12187, 12409, 12632, 12856, 13082, 13308, 13536, 13764, 13994, 14225, 14456, 14688, 14921, 15155, 15389, 15624, 15859, 16095, 16331, 16568, 16805, 17042, 17279, 17516, 17754, 17991, 18228, 18465, 18702, 18939, 19175, 19411, 19647, 19882, 20117, 20350, 20584, 20816, 21048, 21279, 21509, 21738, 21967, 22194, 22420, 22644, 22868, 23090, 23311, 23531, 23749, 23965, 24181, 24394, 24606, 24816, 25024, 25231, 25435, 25638, 25839, 26037, 26234, 26428, 26621, 26811, 26999, 27184, 27368, 27548, 27727, 27903, 28076, 28247, 28415, 28581, 28743, 28903, 29061, 29215, 29367, 29515, 29661, 29804, 29944, 30081, 30214, 30345, 30472, 30597, 30718, 30836, 30950, 31062, 31170, 31274, 31376, 31474, 31568, 31659, 31747, 31831, 31911, 31988, 32062, 32132, 32198, 32261, 32320, 32376, 32428, 32476, 32521, 32561, 32599, 32632, 32662, 32688, 32711, 32729, 32744, 32755, 32763, 32767, 32767, 32741, 32665, 32537, 32359, 32129, 31850, 31521, 31143, 30716, 30242, 29720, 29151, 28538, 27879, 27177, 26433, 25647, 24821, 23957, 23055, 22117, 21145, 20139, 19102, 18036, 16941, 15820, 14674, 13505, 12315, 11106, 9879, 8637, 7381, 6114, 4838, 3554, 2264, 971};/* window for EFR, first two subframes, no lookahead */static const Word16 window_160_80[L_WINDOW] ={ 2621, 2624, 2633, 2648, 2668, 2695, 2727, 2765, 2809, 2859, 2915, 2976, 3043, 3116, 3194, 3279, 3368, 3464, 3565, 3671, 3783, 3900, 4023, 4151, 4285, 4423, 4567, 4716, 4870, 5029, 5193, 5362, 5535, 5714, 5897, 6084, 6277, 6473, 6674, 6880, 7089, 7303, 7521, 7742, 7968, 8197, 8430, 8667, 8907, 9151, 9398, 9648, 9902, 10158, 10417, 10680, 10945, 11212, 11482, 11755, 12030, 12307, 12586, 12867, 13150, 13435, 13722, 14010, 14299, 14590, 14882, 15175, 15469, 15764, 16060, 16356, 16653, 16950, 17248, 17546, 17844, 18141, 18439, 18736, 19033, 19330, 19625, 19920, 20214, 20507, 20799, 21090, 21380, 21668, 21954, 22239, 22522, 22803, 23083, 23360, 23635, 23907, 24177, 24445, 24710, 24972, 25231, 25488, 25741, 25991, 26238, 26482, 26722, 26959, 27192, 27422, 27647, 27869, 28087, 28300, 28510, 28715, 28916, 29113, 29305, 29493, 29676, 29854, 30028, 30197, 30361, 30519, 30673, 30822, 30966, 31105, 31238, 31366, 31489, 31606, 31718, 31825, 31926, 32021, 32111, 32195, 32273, 32346, 32413, 32475, 32530, 32580, 32624, 32662, 32695, 32721, 32742, 32756, 32765, 32767, 32767, 32756, 32720, 32661, 32578, 32471, 32341, 32188, 32012, 31813, 31592, 31349, 31084, 30798, 30492, 30165, 29818, 29453, 29068, 28666, 28247, 27810, 27358, 26891, 26408, 25913, 25404, 24883, 24350, 23807, 23255, 22693, 22124, 21548, 20965, 20378, 19786, 19191, 18593, 17994, 17395, 16796, 16199, 15604, 15012, 14424, 13842, 13265, 12696, 12135, 11582, 11039, 10507, 9986, 9477, 8981, 8499, 8031, 7579, 7143, 6723, 6321, 5937, 5571, 5225, 4898, 4591, 4305, 4041, 3798, 3577, 3378, 3202, 3048, 2918, 2812, 2729, 2669, 2633, 2621};/* window for EFR, last two subframes, no lookahead */static const Word16 window_232_8[L_WINDOW] ={ 2621, 2623, 2627, 2634, 2644, 2656, 2671, 2689, 2710, 2734, 2760, 2789, 2821, 2855, 2893, 2933, 2975, 3021, 3069, 3120, 3173, 3229, 3288, 3350, 3414, 3481, 3550, 3622, 3697, 3774, 3853, 3936, 4021, 4108, 4198, 4290, 4385, 4482, 4582, 4684, 4788, 4895, 5004, 5116, 5230, 5346, 5464, 5585, 5708, 5833, 5960, 6090, 6221, 6355, 6491, 6629, 6769, 6910, 7054, 7200, 7348, 7498, 7649, 7803, 7958, 8115, 8274, 8434, 8597, 8761, 8926, 9093, 9262, 9432, 9604, 9778, 9952, 10129, 10306, 10485, 10665, 10847, 11030, 11214, 11399, 11586, 11773, 11962, 12152, 12342, 12534, 12727, 12920, 13115, 13310, 13506, 13703, 13901, 14099, 14298, 14497, 14698, 14898, 15100, 15301, 15504, 15706, 15909, 16112, 16316, 16520, 16724, 16928, 17132, 17337, 17541, 17746, 17950, 18155, 18359, 18564, 18768, 18972, 19175, 19379, 19582, 19785, 19987, 20189, 20390, 20591, 20792, 20992, 21191, 21390, 21588, 21785, 21981, 22177, 22372, 22566, 22759, 22951, 23143, 23333, 23522, 23710, 23897, 24083, 24268, 24451, 24633, 24814, 24994, 25172, 25349, 25525, 25699, 25871, 26042, 26212, 26380, 26546, 26711, 26874, 27035, 27195, 27353, 27509, 27664, 27816, 27967, 28115, 28262, 28407, 28550, 28691, 28830, 28967, 29102, 29234, 29365, 29493, 29619, 29743, 29865, 29985, 30102, 30217, 30330, 30440, 30548, 30654, 30757, 30858, 30956, 31052, 31146, 31237, 31326, 31412, 31495, 31576, 31655, 31730, 31804, 31874, 31942, 32008, 32071, 32131, 32188, 32243, 32295, 32345, 32392, 32436, 32477, 32516, 32552, 32585, 32615, 32643, 32668, 32690, 32709, 32726, 32740, 32751, 32759, 32765, 32767, 32767, 32097, 30112, 26895, 22576, 17333, 11380, 4962};
static const Word16 QPLSF5_TAB_mean_lsf[10] =
{ 1384, 2077, 3420, 5108, 6742, 8122, 9863, 11092, 12714, 13701};#define QPLSF5_TAB_DICO1_SIZE 128
#define QPLSF5_TAB_DICO2_SIZE 256
#define QPLSF5_TAB_DICO3_SIZE 256
#define QPLSF5_TAB_DICO4_SIZE 256
#define QPLSF5_TAB_DICO5_SIZE 64
static const Word16 QPLSF5_TAB_dico1_lsf[QPLSF5_TAB_DICO1_SIZE * 4] =
{ -451, -1065, -529, -1305, -450, -756, -497, -863, -384, -619, -413, -669, -317, -538, -331, -556, -414, -508, -424, -378, -274, -324, -434, -614, -226, -500, -232, -514, -263, -377, -298, -410, -151, -710, -174, -818, -149, -412, -156, -429, -288, -462, -186, -203, -170, -302, -191, -321, -131, -147, -297, -395, -228, -214, -245, -192, -67, -316, -71, -327, -104, -205, -94, -183, -143, -38, -193, -95, 16, -76, -124, -248, 23, -237, 24, -244, 18, -136, 44, -111, -33, -24, -25, 0, 149, 19, 23, -143, 158, -169, 174, -181, 133, -55, 165, -26, 111, 84, 98, 75, 87, 183, -115, -11, -8, 130, 11, 170, 254, 77, 205, 17, 183, 112, 262, 194, 202, 287, 95, 189, -42, -105, 234, 179, 39, 186, 163, 345, 332, 199, 299, 161, -54, 285, -78, 281, -133, 141, -182, 111, 249, 341, 271, 364, 93, 403, 75, 391, 92, 510, -138, 220, -185, -29, -34, 361, -115, 320, 3, 554, 99, 286, 218, 591, -245, 406, -268, 453, 0, 580, 25, 606, 275, 532, 148, 450, -73, 739, -285, 518, -288, 94, -203, 674, -140, -74, 205, 714, -114, 299, 176, 923, 182, 557, 240, 705, -16, 513, 485, 593, 293, 384, 451, 617, -38, 50, 563, 529, 303, 209, 459, 363, 433, 452, 450, 454, 367, 606, 477, 741, 432, 353, 368, 267, 361, 716, 273, 583, 453, 166, 510, 172, 201, 629, 274, 191, 568, 639, 302, 298, 634, 387, 643, 350, 587, 560, 612, 565, 600, 788, 487, 672, 512, 1015, 321, 333, 357, 854, -125, 413, 474, 712, 17, -151, 564, 285, 270, -241, 971, 889, 489, 220, 510, 896, 549, 924, 327, 825, 290, 911, 540, 1108, 158, 805, 199, 957, 511, 730, 100, 874, 13, 791, 435, 632, 676, 972, 249, 900, 467, 1218, 781, 1074, 585, 785, -23, 669, 267, 1043, 619, 1084, 615, 1145, 622, 905, 916, 1049, 80, 331, 584, 1075, 89, 639, 988, 961, 770, 720, 798, 699, 492, 447, 899, 627, 271, 1188, 725, 1333, 87, 603, 832, 1603, 616, 1127, 890, 1505, 1000, 1156, 866, 1009, 995, 827, 1149, 858, 817, 1450, 773, 1320, 500, 1389, 312, 1153, -20, 1084, 64, 1283, 2, 1172, 399, 1869, 514, 1706, 502, 1636, 886, 1522, 416, 600, 1131, 1350, 1275, 1390, 889, 1795, 914, 1766, 227, 1183, 1250, 1826, 505, 1854, 919, 2353, -199, 431, 152, 1735, -213, -28, 392, 1334, -153, -52, 978, 1151, -323, -400, 813, 1703, -136, 84, 1449, 2015, -331, -143, -137, 1192, -256, 534, -157, 1031, -307, -439, 542, 731, -329, -420, -97, 616, -362, -168, -322, 366, -247, -110, -211, 89, -196, -309, 20, 59, -364, -463, -286, 89, -336, 175, -432, 141, -379, -190, -434, -196, -79, 150, -278, -227, -280, 166, -555, -422, -155, 541, -366, 54, -29, -83, -301, -774, 186, 628, -397, -264, 242, 293, -197, -585, 124, 410, 53, -133, 10, 340, -570, -1065, 65, -446, 68, -493, 383, 937, -357, -711, -359, -250, -677, -1068, 292, -26, 363, 6, 607, 1313, -127, -10, 1513, 1886, 713, 972, 1469, 2181, 1443, 2016};static const Word16 QPLSF5_TAB_dico2_lsf[QPLSF5_TAB_DICO2_SIZE * 4] =
{ -1631, -1600, -1796, -2290, -1027, -1770, -1100, -2025, -1277, -1388, -1367, -1534, -947, -1461, -972, -1524, -999, -1222, -1020, -1172, -815, -987, -992, -1371, -1216, -1006, -1289, -1094, -744, -1268, -755, -1293, -862, -923, -905, -984, -678, -1051, -685, -1050, -1087, -985, -1062, -679, -989, -641, -1127, -976, -762, -654, -890, -806, -833, -1091, -706, -629, -621, -806, -640, -812, -775, -634, -779, -543, -996, -565, -1075, -580, -546, -611, -572, -619, -760, -290, -879, -526, -823, -462, -795, -253, -553, -415, -589, -439, -533, -340, -692, -935, -505, -772, -702, -1131, -263, -306, -971, -483, -445, -74, -555, -548, -614, -129, -693, -234, -396, -246, -475, -250, -265, -404, -376, -514, -417, -510, -300, -313, -334, -664, -463, -814, -386, -704, -337, -615, -234, -201, -233, -239, -167, -567, -203, -619, -147, -415, -115, -352, -166, -750, -171, -761, -270, -879, -264, -903, -367, -744, 43, -475, 14, -653, 43, -670, 11, -448, -59, -521, -126, -119, -155, -613, -42, -863, -27, -931, 136, -483, 183, -468, 55, -298, 55, -304, 313, -609, 313, -720, 322, -167, 100, -541, -3, -119, -111, -187, 233, -236, 260, -234, 26, -165, 134, -45, -40, -549, 360, -203, 378, -388, 450, -383, 275, 20, 182, -103, 246, -111, 431, 37, 462, -146, 487, -157, -284, -59, 503, -184, 24, 53, -3, 54, 122, 259, 333, 66, 484, 104, 436, 68, 195, 116, 190, 206, 269, -9, 482, 352, 382, 285, 399, 277, 452, 256, 69, 186, 13, 297, -13, 259, -95, 30, 56, 394, 196, 425, 205, 456, 281, 577, 15, 191, 375, 290, 407, 576, -56, 227, 544, 405, 0, 549, -92, 528, -229, 351, -245, 338, -362, 435, 167, 527, -75, 302, 91, 824, 129, 599, 496, 679, 186, 749, 153, 737, -281, 600, -348, 615, -236, 769, 41, 881, 38, 890, -220, 841, -357, 883, -393, 903, -634, 474, -444, 850, -175, 678, -493, 242, -519, 785, -714, 582, -541, 366, -543, 434, -597, 500, -765, 222, -702, 917, -743, 962, -869, 501, -899, 548, -379, 200, -435, 157, -819, 214, -861, 157, -614, 40, -632, 94, -883, -54, -741, 516, -501, 298, -614, -171, -870, -161, -865, -23, -818, 93, -1015, -267, -662, -359, -549, 2, -442, -121, -377, 0, -227, 33, -414, -126, -129, 212, -934, 34, -1082, -282, -1119, -268, -710, -825, -420, -191, -1076, -928, -917, -93, -628, -358, 97, 7, -206, -393, -101, 24, -203, 38, -168, 83, -599, -423, -279, 426, -700, 118, -75, 206, -981, -673, -680, 417, -367, 37, -279, 474, -129, -318, 319, 296, -626, -39, 343, 602, -696, -39, -303, 940, 104, 233, -380, 137, -36, 269, -75, -214, 120, 43, -529, -477, 459, 164, -202, -229, -49, -167, 609, 792, 98, -220, 915, 148, 293, 283, 869, 91, 575, 394, 326, -78, 717, 67, 365, -323, 616, -36, 731, 27, 619, 238, 632, 273, 448, 99, 801, 476, 869, 273, 685, 64, 789, 72, 1021, 217, 793, 459, 734, 360, 646, 480, 360, 322, 429, 464, 638, 430, 756, 363, 1000, 404, 683, 528, 602, 615, 655, 413, 946, 687, 937, 602, 904, 604, 555, 737, 786, 662, 467, 654, 362, 589, 929, 710, 498, 478, 415, 420, 693, 883, 813, 683, 781, 925, 913, 939, 726, 732, 491, 853, 531, 948, 734, 963, 315, 808, 761, 755, 1144, 760, 655, 1076, 826, 1057, 1091, 838, 1003, 808, 1047, 1133, 659, 1101, 992, 1050, 1074, 1075, 971, 694, 1226, 1054, 571, 841, 884, 1404, 1379, 1096, 1080, 861, 1231, 735, 1284, 760, 1272, 991, 1367, 1053, 1257, 700, 1050, 534, 988, 453, 1264, 599, 1140, 679, 1621, 815, 1384, 521, 1317, 393, 1564, 805, 1448, 686, 1068, 648, 875, 307, 1083, 361, 1047, 317, 1417, 964, 675, 571, 1152, 79, 1114, -47, 1530, 311, 1721, 314, 1166, 689, 514, -94, 349, 282, 1412, 328, 1025, 487, -65, 57, 805, 970, 36, 62, 769, -263, 791, -346, 637, 699, -137, 620, 534, 541, -735, 194, 711, 300, -268, -863, 926, 769, -708, -428, 506, 174, -892, -630, 435, 547, -1435, -258, 621, 471, -1018, -1368, -393, 521, -920, -686, -25, 20, -982, -1156, 340, 9, -1558, -1135, -352, 48, -1579, -402, -887, 6, -1156, -888, -548, -352, -1643, -1168, -159, 610, -2024, -963, -225, 193, -1656, -1960, -245, -493, -964, -1680, -936, -635, -1299, -1744, -1388, -604, -1540, -835, -1397, -135, -1588, -290, -1670, -712, -2011, -1632, -1663, -27, -2258, -811, -1157, 184, -1265, 189, -1367, 586, -2011, 201, -790, 712, -1210, 3, -1033, 808, -1251, 830, -111, 635, -1636, 447, -463, -949, -445, -928, -504, -1162, -501, -1211, 144, -351, -372, -1052, -283, -1059, -279, -1123, -575, -1438, -587, -1614, -935, -984, 229, 690, -921, -719, -403, 1362, -685, -465, 874, 397, -509, -46, 317, 1334, -485, 456, 813, 439, -411, 339, 898, 1067, -425, 46, 1441, 497, -909, -800, 1465, 1046, -254, -321, 1430, 1165, 68, 350, 1034, 666, 370, 11, 1311, 790, 143, 232, 1041, 1562, -114, 663, 1616, 1078, 454, 579, 1275, 1040, -76, 909, 752, 1067, 153, 512, 348, 1214, 614, 385, 1843, 808, 269, 1034, 203, 1086, 652, 1017, 1783, 1130, 429, 1327, 387, 1384, -49, 1183, -72, 1215, -416, 1001, 544, 1749, -352, 1223, -502, 1199, -589, 569, -227, 1630, -142, 1578, -230, 1715, -714, 1288, -838, 1398, 1131, 1357, -208, 1232, 437, 965, -929, 818, 811, 1410, 859, 1507, 164, 1212, 1387, 1793, 484, 1874, 456, 2063, 996, 1170, 1326, 1402, 1316, 1360, 1135, 1262, 1234, 1618, 1361, 1768, 1421, 1227, 1584, 1347, 854, 672, 1685, 1566, 1139, 1270, 2016, 1825, 1773, 1581, 1532, 1460, 1487, 946, 1659, 1021, 1744, 1212, 1392, 977, 1772, 1161, 1826, 1164, 1718, 1429, 1973, 1591, 1185, 864, 2132, 1061, 1799, 814, 1838, 757, 2104, 1315, 2054, 1258, 2113, 915, 2331, 930, 1467, 1147, 2590, 1439, 2245, 1744, 2090, 1620, 2358, 1454, 2666, 1506, 1876, 1837, 2070, 1975, 1739, 1577, 682, 1289, 1584, 2045, 1454, 2098, 2498, 2004, 2711, 2066, 726, 1588, 2756, 2336, 228, 847, 2456, 1659, 36, 301, 1942, 1957, -446, -96, 2154, 1396, 1533, 1101, 14, 608, -923, -732, 1383, 1982, 1345, 952, -680, 321, 1281, 1268, -1594, 365, 941, 946, -1737, -822, 2374, 2787, 1821, 2788};static const Word16 QPLSF5_TAB_dico3_lsf[QPLSF5_TAB_DICO3_SIZE * 4] =
{ -1812, -2275, -1879, -2537, -1640, -1848, -1695, -2004, -1220, -1912, -1221, -2106, -1559, -1588, -1573, -1556, -1195, -1615, -1224, -1727, -1359, -1151, -1616, -1948, -1274, -1391, -1305, -1403, -1607, -1179, -1676, -1311, -1443, -1478, -1367, -898, -1256, -1059, -1331, -1134, -982, -1133, -1149, -1504, -1080, -1308, -1020, -1183, -980, -1486, -967, -1495, -988, -922, -1047, -1077, -838, -1179, -858, -1222, -1131, -1041, -1064, -767, -872, -1157, -701, -880, -706, -906, -774, -1016, -578, -1080, -801, -1478, -591, -1111, -592, -1146, -713, -1388, -640, -1376, -597, -1059, -416, -903, -686, -832, -661, -708,
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -