FreeCalypso > hg > gsm-codec-lib
changeset 356:5ccfe176bae1
libtwamr: integrate dec_gain.c
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 05 May 2024 22:24:42 +0000 |
parents | 9beb01439a90 |
children | fb001496ca8c |
files | libtwamr/Makefile libtwamr/dec_gain.c libtwamr/dec_gain.h libtwamr/namespace.list libtwamr/qua_gain_tab.c libtwamr/qua_gain_tab.h |
diffstat | 6 files changed, 735 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/libtwamr/Makefile Sun May 05 21:59:18 2024 +0000 +++ b/libtwamr/Makefile Sun May 05 22:24:42 2024 +0000 @@ -4,10 +4,11 @@ bitno.o bits2prm.o c1035pf.o c2_11pf.o c2_9pf.o c3_14pf.o c4_17pf.o \ c8_31pf.o c_g_aver.o calc_cor.o calc_en.o cbsearch.o convolve.o cor_h.o\ d1035pf.o d2_11pf.o d2_9pf.o d3_14pf.o d4_17pf.o d8_31pf.o d_gain_c.o \ - d_gain_p.o d_plsf.o d_plsf_3.o d_plsf_5.o dhf_check.o dhf_tables.o \ - gains_tab.o gc_pred.o gmed_n.o graytab.o inv_sqrt.o log2.o lsp_lsf.o \ - oper_32b.o pow2.o prmno.o q_plsf3_tab.o q_plsf5_tab.o reorder.o \ - s10_8pf.o set_sign.o sqrt_l.o tls_flags.o window.o + d_gain_p.o d_plsf.o d_plsf_3.o d_plsf_5.o dec_gain.o dhf_check.o \ + dhf_tables.o gains_tab.o gc_pred.o gmed_n.o graytab.o inv_sqrt.o log2.o\ + lsp_lsf.o oper_32b.o pow2.o prmno.o q_plsf3_tab.o q_plsf5_tab.o \ + qua_gain_tab.o reorder.o s10_8pf.o set_sign.o sqrt_l.o tls_flags.o \ + window.o HDRS= namespace.h LIB= libtwamr.a
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtwamr/dec_gain.c Sun May 05 22:24:42 2024 +0000 @@ -0,0 +1,156 @@ +/* +******************************************************************************** +* +* GSM AMR-NB speech codec R98 Version 7.6.0 December 12, 2001 +* R99 Version 3.3.0 +* REL-4 Version 4.1.0 +* +******************************************************************************** +* +* File : dec_gain.c +* Purpose : Decode the pitch and codebook gains +* +******************************************************************************** +*/ + +/* +******************************************************************************** +* MODULE INCLUDE FILE AND VERSION ID +******************************************************************************** +*/ +#include "namespace.h" +#include "dec_gain.h" + +/* +******************************************************************************** +* INCLUDE FILES +******************************************************************************** +*/ +#include <stddef.h> +#include "tw_amr.h" +#include "typedef.h" +#include "basic_op.h" +#include "oper_32b.h" +#include "no_count.h" +#include "cnst.h" +#include "pow2.h" +#include "log2.h" +#include "gc_pred.h" +#include "qua_gain_tab.h" + +/* +******************************************************************************** +* PUBLIC PROGRAM CODE +******************************************************************************** +*/ + +/************************************************************************* + * + * FUNCTION: Dec_gain() + * + * PURPOSE: Decode the pitch and codebook gains + * + ************************************************************************/ +void Dec_gain( + gc_predState *pred_state, /* i/o: MA predictor state */ + enum Mode mode, /* i : AMR mode */ + Word16 index, /* i : index of quantization. */ + Word16 code[], /* i : Innovative vector. */ + Word16 evenSubfr, /* i : Flag for even subframes */ + Word16 * gain_pit, /* o : Pitch gain. */ + Word16 * gain_cod /* o : Code gain. */ +) +{ + const Word16 *p; + Word16 frac, gcode0, exp, qua_ener, qua_ener_MR122; + Word16 g_code; + Word32 L_tmp; + + /* Read the quantized gains (table depends on mode) */ + index = shl (index, 2); + + test(); test(); test(); + if ( sub (mode, MR102) == 0 + || sub (mode, MR74) == 0 + || sub (mode, MR67) == 0) + { + p = &table_gain_highrates[index]; move16 (); + + *gain_pit = *p++; move16 (); + g_code = *p++; move16 (); + qua_ener_MR122 = *p++; move16 (); + qua_ener = *p; move16 (); + } + else + { + test(); + if (sub (mode, MR475) == 0) + { + index = add (index, shl(sub(1, evenSubfr), 1)); + p = &table_gain_MR475[index]; move16 (); + + *gain_pit = *p++; move16 (); + g_code = *p++; move16 (); + + /*---------------------------------------------------------* + * calculate predictor update values (not stored in 4.75 * + * quantizer table to save space): * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + * * + * qua_ener = log2(g) * + * qua_ener_MR122 = 20*log10(g) * + *---------------------------------------------------------*/ + + /* Log2(x Q12) = log2(x) + 12 */ + Log2 (L_deposit_l (g_code), &exp, &frac); + exp = sub(exp, 12); + + qua_ener_MR122 = add (shr_r (frac, 5), shl (exp, 10)); + + /* 24660 Q12 ~= 6.0206 = 20*log10(2) */ + L_tmp = Mpy_32_16(exp, frac, 24660); + qua_ener = round (L_shl (L_tmp, 13)); /* Q12 * Q0 = Q13 -> Q10 */ + } + else + { + p = &table_gain_lowrates[index]; move16 (); + + *gain_pit = *p++; move16 (); + g_code = *p++; move16 (); + qua_ener_MR122 = *p++; move16 (); + qua_ener = *p; move16 (); + } + } + + /*-------------------------------------------------------------------* + * predict codebook gain * + * ~~~~~~~~~~~~~~~~~~~~~ * + * gc0 = Pow2(int(d)+frac(d)) * + * = 2^exp + 2^frac * + * * + * gcode0 (Q14) = 2^14*2^frac = gc0 * 2^(14-exp) * + *-------------------------------------------------------------------*/ + + gc_pred(pred_state, mode, code, &exp, &frac, NULL, NULL); + + gcode0 = extract_l(Pow2(14, frac)); + + /*------------------------------------------------------------------* + * read quantized gains, update table of past quantized energies * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + * st->past_qua_en(Q10) = 20 * Log10(g_fac) / constant * + * = Log2(g_fac) * + * = qua_ener * + * constant = 20*Log10(2) * + *------------------------------------------------------------------*/ + + L_tmp = L_mult(g_code, gcode0); + L_tmp = L_shr(L_tmp, sub(10, exp)); + *gain_cod = extract_h(L_tmp); + + /* update table of past quantized energies */ + + gc_pred_update(pred_state, qua_ener_MR122, qua_ener); + + return; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtwamr/dec_gain.h Sun May 05 22:24:42 2024 +0000 @@ -0,0 +1,50 @@ +/* +******************************************************************************** +* +* GSM AMR-NB speech codec R98 Version 7.6.0 December 12, 2001 +* R99 Version 3.3.0 +* REL-4 Version 4.1.0 +* +******************************************************************************** +* +* File : dec_gain.h +* Purpose : Decode the pitch and codebook gains +* +******************************************************************************** +*/ +#ifndef dec_gain_h +#define dec_gain_h "$Id $" + +/* +******************************************************************************** +* INCLUDE FILES +******************************************************************************** +*/ +#include "tw_amr.h" +#include "typedef.h" +#include "gc_pred.h" + +/* +******************************************************************************** +* DECLARATION OF PROTOTYPES +******************************************************************************** +*/ + +/************************************************************************* + * + * FUNCTION: Dec_gain() + * + * PURPOSE: Decode the pitch and codebook gains + * + ************************************************************************/ +void Dec_gain( + gc_predState *pred_state, /* i/o: MA predictor state */ + enum Mode mode, /* i : AMR mode */ + Word16 index, /* i : index of quantization. */ + Word16 code[], /* i : Innovative vector. */ + Word16 evenSubfr, /* i : Flag for even subframes */ + Word16 * gain_pit, /* o : Pitch gain. */ + Word16 * gain_cod /* o : Code gain. */ +); + +#endif
--- a/libtwamr/namespace.list Sun May 05 21:59:18 2024 +0000 +++ b/libtwamr/namespace.list Sun May 05 22:24:42 2024 +0000 @@ -58,6 +58,7 @@ Bgn_scd Bgn_scd_reset Convolve +Dec_gain D_plsf_reset D_plsf_5 D_plsf_3 @@ -97,6 +98,9 @@ window_232_8 qua_gain_pitch qua_gain_code +table_gain_highrates +table_gain_lowrates +table_gain_MR475 mean_lsf mean_lsf3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtwamr/qua_gain_tab.c Sun May 05 22:24:42 2024 +0000 @@ -0,0 +1,492 @@ +#include "typedef.h" +#include "namespace.h" +#include "qua_gain_tab.h" + +/* The tables contains the following data: + + g_pitch (Q14), + g_fac (Q12), (g_code = g_code0*g_fac), + qua_ener_MR122 (Q10), (log2(g_fac)) + qua_ener (Q10) (20*log10(g_fac)) + + The log2() and log10() values are calculated on the fixed point value + (g_fac Q12) and not on the original floating point value of g_fac + to make the quantizer/MA predictdor use corresponding values. + */ + +/* table used in 'high' rates: MR67 MR74 */ + +const Word16 table_gain_highrates[VQ_SIZE_HIGHRATES*4] = { +/* Note: column 4 (qua_ener) contains the original values from IS641 + to ensure bit-exactness; however, they are not exactly the + rounded value of (20*log10(g_fac)) */ +/*g_pit, g_fac, qua_ener_MR122, qua_ener */ + 577, 662, -2692, -16214, + 806, 1836, -1185, -7135, + 3109, 1052, -2008, -12086, + 4181, 1387, -1600, -9629, + 2373, 1425, -1560, -9394, + 3248, 1985, -1070, -6442, + 1827, 2320, -840, -5056, + 941, 3314, -313, -1885, + 2351, 2977, -471, -2838, + 3616, 2420, -777, -4681, + 3451, 3096, -414, -2490, + 2955, 4301, 72, 434, + 1848, 4500, 139, 836, + 3884, 5416, 413, 2484, + 1187, 7210, 835, 5030, + 3083, 9000, 1163, 7002, + 7384, 883, -2267, -13647, + 5962, 1506, -1478, -8900, + 5155, 2134, -963, -5800, + 7944, 2009, -1052, -6335, + 6507, 2250, -885, -5327, + 7670, 2752, -588, -3537, + 5952, 3016, -452, -2724, + 4898, 3764, -125, -751, + 6989, 3588, -196, -1177, + 8174, 3978, -43, -260, + 6064, 4404, 107, 645, + 7709, 5087, 320, 1928, + 5523, 6021, 569, 3426, + 7769, 7126, 818, 4926, + 6060, 7938, 977, 5885, + 5594, 11487, 1523, 9172, + 10581, 1356, -1633, -9831, + 9049, 1597, -1391, -8380, + 9794, 2035, -1033, -6220, + 8946, 2415, -780, -4700, + 10296, 2584, -681, -4099, + 9407, 2734, -597, -3595, + 8700, 3218, -356, -2144, + 9757, 3395, -277, -1669, + 10177, 3892, -75, -454, + 9170, 4528, 148, 891, + 10152, 5004, 296, 1781, + 9114, 5735, 497, 2993, + 10500, 6266, 628, 3782, + 10110, 7631, 919, 5534, + 8844, 8727, 1117, 6728, + 8956, 12496, 1648, 9921, + 12924, 976, -2119, -12753, + 11435, 1755, -1252, -7539, + 12138, 2328, -835, -5024, + 11388, 2368, -810, -4872, + 10700, 3064, -429, -2580, + 12332, 2861, -530, -3192, + 11722, 3327, -307, -1848, + 11270, 3700, -150, -904, + 10861, 4413, 110, 663, + 12082, 4533, 150, 902, + 11283, 5205, 354, 2132, + 11960, 6305, 637, 3837, + 11167, 7534, 900, 5420, + 12128, 8329, 1049, 6312, + 10969, 10777, 1429, 8604, + 10300, 17376, 2135, 12853, + 13899, 1681, -1316, -7921, + 12580, 2045, -1026, -6179, + 13265, 2439, -766, -4610, + 14033, 2989, -465, -2802, + 13452, 3098, -413, -2482, + 12396, 3658, -167, -1006, + 13510, 3780, -119, -713, + 12880, 4272, 62, 374, + 13533, 4861, 253, 1523, + 12667, 5457, 424, 2552, + 13854, 6106, 590, 3551, + 13031, 6483, 678, 4084, + 13557, 7721, 937, 5639, + 12957, 9311, 1213, 7304, + 13714, 11551, 1532, 9221, + 12591, 15206, 1938, 11667, + 15113, 1540, -1445, -8700, + 15072, 2333, -832, -5007, + 14527, 2511, -723, -4352, + 14692, 3199, -365, -2197, + 15382, 3560, -207, -1247, + 14133, 3960, -50, -300, + 15102, 4236, 50, 298, + 14332, 4824, 242, 1454, + 14846, 5451, 422, 2542, + 15306, 6083, 584, 3518, + 14329, 6888, 768, 4623, + 15060, 7689, 930, 5602, + 14406, 9426, 1231, 7413, + 15387, 9741, 1280, 7706, + 14824, 14271, 1844, 11102, + 13600, 24939, 2669, 16067, + 16396, 1969, -1082, -6517, + 16817, 2832, -545, -3283, + 15713, 2843, -539, -3248, + 16104, 3336, -303, -1825, + 16384, 3963, -49, -294, + 16940, 4579, 165, 992, + 15711, 4599, 171, 1030, + 16222, 5448, 421, 2537, + 16832, 6382, 655, 3945, + 15745, 7141, 821, 4944, + 16326, 7469, 888, 5343, + 16611, 8624, 1100, 6622, + 17028, 10418, 1379, 8303, + 15905, 11817, 1565, 9423, + 16878, 14690, 1887, 11360, + 16515, 20870, 2406, 14483, + 18142, 2083, -999, -6013, + 19401, 3178, -375, -2257, + 17508, 3426, -264, -1589, + 20054, 4027, -25, -151, + 18069, 4249, 54, 326, + 18952, 5066, 314, 1890, + 17711, 5402, 409, 2461, + 19835, 6192, 610, 3676, + 17950, 7014, 795, 4784, + 21318, 7877, 966, 5816, + 17910, 9289, 1210, 7283, + 19144, 9290, 1210, 7284, + 20517, 11381, 1510, 9089, + 18075, 14485, 1866, 11234, + 19999, 17882, 2177, 13108, + 18842, 32764, 3072, 18494 +}; + +/* table used in 'low' rates: MR475, MR515, MR59 */ + +const Word16 table_gain_lowrates[VQ_SIZE_LOWRATES*4] = { +/*g_pit, g_fac, qua_ener_MR122, qua_ener */ + 10813, 28753, 2879, 17333, + 20480, 2785, -570, -3431, + 18841, 6594, 703, 4235, + 6225, 7413, 876, 5276, + 17203, 10444, 1383, 8325, + 21626, 1269, -1731, -10422, + 21135, 4423, 113, 683, + 11304, 1556, -1430, -8609, + 19005, 12820, 1686, 10148, + 17367, 2498, -731, -4398, + 17858, 4833, 244, 1472, + 9994, 2498, -731, -4398, + 17530, 7864, 964, 5802, + 14254, 1884, -1147, -6907, + 15892, 3153, -387, -2327, + 6717, 1802, -1213, -7303, + 18186, 20193, 2357, 14189, + 18022, 3031, -445, -2678, + 16711, 5857, 528, 3181, + 8847, 4014, -30, -180, + 15892, 8970, 1158, 6972, + 18022, 1392, -1594, -9599, + 16711, 4096, 0, 0, + 8192, 655, -2708, -16305, + 15237, 13926, 1808, 10884, + 14254, 3112, -406, -2444, + 14090, 4669, 193, 1165, + 5406, 2703, -614, -3697, + 13434, 6553, 694, 4180, + 12451, 901, -2237, -13468, + 12451, 2662, -637, -3833, + 3768, 655, -2708, -16305, + 14745, 23511, 2582, 15543, + 19169, 2457, -755, -4546, + 20152, 5079, 318, 1913, + 6881, 4096, 0, 0, + 20480, 8560, 1089, 6556, + 19660, 737, -2534, -15255, + 19005, 4259, 58, 347, + 7864, 2088, -995, -5993, + 11468, 12288, 1623, 9771, + 15892, 1474, -1510, -9090, + 15728, 4628, 180, 1086, + 9175, 1433, -1552, -9341, + 16056, 7004, 793, 4772, + 14827, 737, -2534, -15255, + 15073, 2252, -884, -5321, + 5079, 1228, -1780, -10714, + 13271, 17326, 2131, 12827, + 16547, 2334, -831, -5002, + 15073, 5816, 518, 3118, + 3932, 3686, -156, -938, + 14254, 8601, 1096, 6598, + 16875, 778, -2454, -14774, + 15073, 3809, -107, -646, + 6062, 614, -2804, -16879, + 9338, 9256, 1204, 7251, + 13271, 1761, -1247, -7508, + 13271, 3522, -223, -1343, + 2457, 1966, -1084, -6529, + 11468, 5529, 443, 2668, + 10485, 737, -2534, -15255, + 11632, 3194, -367, -2212, + 1474, 778, -2454, -14774 +}; + +/* table that was originally in qgain475.tab */ + +/* The table contains the following data: + * + * g_pitch(0) (Q14) // for sub- + * g_fac(0) (Q12) // frame 0 and 2 + * g_pitch(1) (Q14) // for sub- + * g_fac(2) (Q12) // frame 1 and 3 + * + */ +const Word16 table_gain_MR475[MR475_VQ_SIZE*4] = { +/*g_pit(0), g_fac(0), g_pit(1), g_fac(1) */ + 812, 128, 542, 140, + 2873, 1135, 2266, 3402, + 2067, 563, 12677, 647, + 4132, 1798, 5601, 5285, + 7689, 374, 3735, 441, + 10912, 2638, 11807, 2494, + 20490, 797, 5218, 675, + 6724, 8354, 5282, 1696, + 1488, 428, 5882, 452, + 5332, 4072, 3583, 1268, + 2469, 901, 15894, 1005, + 14982, 3271, 10331, 4858, + 3635, 2021, 2596, 835, + 12360, 4892, 12206, 1704, + 13432, 1604, 9118, 2341, + 3968, 1538, 5479, 9936, + 3795, 417, 1359, 414, + 3640, 1569, 7995, 3541, + 11405, 645, 8552, 635, + 4056, 1377, 16608, 6124, + 11420, 700, 2007, 607, + 12415, 1578, 11119, 4654, + 13680, 1708, 11990, 1229, + 7996, 7297, 13231, 5715, + 2428, 1159, 2073, 1941, + 6218, 6121, 3546, 1804, + 8925, 1802, 8679, 1580, + 13935, 3576, 13313, 6237, + 6142, 1130, 5994, 1734, + 14141, 4662, 11271, 3321, + 12226, 1551, 13931, 3015, + 5081, 10464, 9444, 6706, + 1689, 683, 1436, 1306, + 7212, 3933, 4082, 2713, + 7793, 704, 15070, 802, + 6299, 5212, 4337, 5357, + 6676, 541, 6062, 626, + 13651, 3700, 11498, 2408, + 16156, 716, 12177, 751, + 8065, 11489, 6314, 2256, + 4466, 496, 7293, 523, + 10213, 3833, 8394, 3037, + 8403, 966, 14228, 1880, + 8703, 5409, 16395, 4863, + 7420, 1979, 6089, 1230, + 9371, 4398, 14558, 3363, + 13559, 2873, 13163, 1465, + 5534, 1678, 13138, 14771, + 7338, 600, 1318, 548, + 4252, 3539, 10044, 2364, + 10587, 622, 13088, 669, + 14126, 3526, 5039, 9784, + 15338, 619, 3115, 590, + 16442, 3013, 15542, 4168, + 15537, 1611, 15405, 1228, + 16023, 9299, 7534, 4976, + 1990, 1213, 11447, 1157, + 12512, 5519, 9475, 2644, + 7716, 2034, 13280, 2239, + 16011, 5093, 8066, 6761, + 10083, 1413, 5002, 2347, + 12523, 5975, 15126, 2899, + 18264, 2289, 15827, 2527, + 16265, 10254, 14651, 11319, + 1797, 337, 3115, 397, + 3510, 2928, 4592, 2670, + 7519, 628, 11415, 656, + 5946, 2435, 6544, 7367, + 8238, 829, 4000, 863, + 10032, 2492, 16057, 3551, + 18204, 1054, 6103, 1454, + 5884, 7900, 18752, 3468, + 1864, 544, 9198, 683, + 11623, 4160, 4594, 1644, + 3158, 1157, 15953, 2560, + 12349, 3733, 17420, 5260, + 6106, 2004, 2917, 1742, + 16467, 5257, 16787, 1680, + 17205, 1759, 4773, 3231, + 7386, 6035, 14342, 10012, + 4035, 442, 4194, 458, + 9214, 2242, 7427, 4217, + 12860, 801, 11186, 825, + 12648, 2084, 12956, 6554, + 9505, 996, 6629, 985, + 10537, 2502, 15289, 5006, + 12602, 2055, 15484, 1653, + 16194, 6921, 14231, 5790, + 2626, 828, 5615, 1686, + 13663, 5778, 3668, 1554, + 11313, 2633, 9770, 1459, + 14003, 4733, 15897, 6291, + 6278, 1870, 7910, 2285, + 16978, 4571, 16576, 3849, + 15248, 2311, 16023, 3244, + 14459, 17808, 11847, 2763, + 1981, 1407, 1400, 876, + 4335, 3547, 4391, 4210, + 5405, 680, 17461, 781, + 6501, 5118, 8091, 7677, + 7355, 794, 8333, 1182, + 15041, 3160, 14928, 3039, + 20421, 880, 14545, 852, + 12337, 14708, 6904, 1920, + 4225, 933, 8218, 1087, + 10659, 4084, 10082, 4533, + 2735, 840, 20657, 1081, + 16711, 5966, 15873, 4578, + 10871, 2574, 3773, 1166, + 14519, 4044, 20699, 2627, + 15219, 2734, 15274, 2186, + 6257, 3226, 13125, 19480, + 7196, 930, 2462, 1618, + 4515, 3092, 13852, 4277, + 10460, 833, 17339, 810, + 16891, 2289, 15546, 8217, + 13603, 1684, 3197, 1834, + 15948, 2820, 15812, 5327, + 17006, 2438, 16788, 1326, + 15671, 8156, 11726, 8556, + 3762, 2053, 9563, 1317, + 13561, 6790, 12227, 1936, + 8180, 3550, 13287, 1778, + 16299, 6599, 16291, 7758, + 8521, 2551, 7225, 2645, + 18269, 7489, 16885, 2248, + 17882, 2884, 17265, 3328, + 9417, 20162, 11042, 8320, + 1286, 620, 1431, 583, + 5993, 2289, 3978, 3626, + 5144, 752, 13409, 830, + 5553, 2860, 11764, 5908, + 10737, 560, 5446, 564, + 13321, 3008, 11946, 3683, + 19887, 798, 9825, 728, + 13663, 8748, 7391, 3053, + 2515, 778, 6050, 833, + 6469, 5074, 8305, 2463, + 6141, 1865, 15308, 1262, + 14408, 4547, 13663, 4515, + 3137, 2983, 2479, 1259, + 15088, 4647, 15382, 2607, + 14492, 2392, 12462, 2537, + 7539, 2949, 12909, 12060, + 5468, 684, 3141, 722, + 5081, 1274, 12732, 4200, + 15302, 681, 7819, 592, + 6534, 2021, 16478, 8737, + 13364, 882, 5397, 899, + 14656, 2178, 14741, 4227, + 14270, 1298, 13929, 2029, + 15477, 7482, 15815, 4572, + 2521, 2013, 5062, 1804, + 5159, 6582, 7130, 3597, + 10920, 1611, 11729, 1708, + 16903, 3455, 16268, 6640, + 9306, 1007, 9369, 2106, + 19182, 5037, 12441, 4269, + 15919, 1332, 15357, 3512, + 11898, 14141, 16101, 6854, + 2010, 737, 3779, 861, + 11454, 2880, 3564, 3540, + 9057, 1241, 12391, 896, + 8546, 4629, 11561, 5776, + 8129, 589, 8218, 588, + 18728, 3755, 12973, 3149, + 15729, 758, 16634, 754, + 15222, 11138, 15871, 2208, + 4673, 610, 10218, 678, + 15257, 4146, 5729, 3327, + 8377, 1670, 19862, 2321, + 15450, 5511, 14054, 5481, + 5728, 2888, 7580, 1346, + 14384, 5325, 16236, 3950, + 15118, 3744, 15306, 1435, + 14597, 4070, 12301, 15696, + 7617, 1699, 2170, 884, + 4459, 4567, 18094, 3306, + 12742, 815, 14926, 907, + 15016, 4281, 15518, 8368, + 17994, 1087, 2358, 865, + 16281, 3787, 15679, 4596, + 16356, 1534, 16584, 2210, + 16833, 9697, 15929, 4513, + 3277, 1085, 9643, 2187, + 11973, 6068, 9199, 4462, + 8955, 1629, 10289, 3062, + 16481, 5155, 15466, 7066, + 13678, 2543, 5273, 2277, + 16746, 6213, 16655, 3408, + 20304, 3363, 18688, 1985, + 14172, 12867, 15154, 15703, + 4473, 1020, 1681, 886, + 4311, 4301, 8952, 3657, + 5893, 1147, 11647, 1452, + 15886, 2227, 4582, 6644, + 6929, 1205, 6220, 799, + 12415, 3409, 15968, 3877, + 19859, 2109, 9689, 2141, + 14742, 8830, 14480, 2599, + 1817, 1238, 7771, 813, + 19079, 4410, 5554, 2064, + 3687, 2844, 17435, 2256, + 16697, 4486, 16199, 5388, + 8028, 2763, 3405, 2119, + 17426, 5477, 13698, 2786, + 19879, 2720, 9098, 3880, + 18172, 4833, 17336, 12207, + 5116, 996, 4935, 988, + 9888, 3081, 6014, 5371, + 15881, 1667, 8405, 1183, + 15087, 2366, 19777, 7002, + 11963, 1562, 7279, 1128, + 16859, 1532, 15762, 5381, + 14708, 2065, 20105, 2155, + 17158, 8245, 17911, 6318, + 5467, 1504, 4100, 2574, + 17421, 6810, 5673, 2888, + 16636, 3382, 8975, 1831, + 20159, 4737, 19550, 7294, + 6658, 2781, 11472, 3321, + 19397, 5054, 18878, 4722, + 16439, 2373, 20430, 4386, + 11353, 26526, 11593, 3068, + 2866, 1566, 5108, 1070, + 9614, 4915, 4939, 3536, + 7541, 878, 20717, 851, + 6938, 4395, 16799, 7733, + 10137, 1019, 9845, 964, + 15494, 3955, 15459, 3430, + 18863, 982, 20120, 963, + 16876, 12887, 14334, 4200, + 6599, 1220, 9222, 814, + 16942, 5134, 5661, 4898, + 5488, 1798, 20258, 3962, + 17005, 6178, 17929, 5929, + 9365, 3420, 7474, 1971, + 19537, 5177, 19003, 3006, + 16454, 3788, 16070, 2367, + 8664, 2743, 9445, 26358, + 10856, 1287, 3555, 1009, + 5606, 3622, 19453, 5512, + 12453, 797, 20634, 911, + 15427, 3066, 17037, 10275, + 18883, 2633, 3913, 1268, + 19519, 3371, 18052, 5230, + 19291, 1678, 19508, 3172, + 18072, 10754, 16625, 6845, + 3134, 2298, 10869, 2437, + 15580, 6913, 12597, 3381, + 11116, 3297, 16762, 2424, + 18853, 6715, 17171, 9887, + 12743, 2605, 8937, 3140, + 19033, 7764, 18347, 3880, + 20475, 3682, 19602, 3380, + 13044, 19373, 10526, 23124 +};
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtwamr/qua_gain_tab.h Sun May 05 22:24:42 2024 +0000 @@ -0,0 +1,28 @@ +/* + * This header file contains constant definitions and extern declarations + * for tables that were originally in qua_gain.tab and qgain475.tab, + * included in both decoder and encoder modules. + */ + +#ifndef qua_gain_tab_h +#define qua_gain_tab_h + +#include "typedef.h" + +/* table used in 'high' rates: MR67 MR74 */ +#define VQ_SIZE_HIGHRATES 128 + +extern const Word16 table_gain_highrates[VQ_SIZE_HIGHRATES*4]; + +/* table used in 'low' rates: MR475, MR515, MR59 */ +#define VQ_SIZE_LOWRATES 64 + +extern const Word16 table_gain_lowrates[VQ_SIZE_LOWRATES*4]; + +/* table that was originally in qgain475.tab */ + +#define MR475_VQ_SIZE 256 + +extern const Word16 table_gain_MR475[MR475_VQ_SIZE*4]; + +#endif /* include guard */