1*8ec969ceSTreehugger Robot /* 2*8ec969ceSTreehugger Robot * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische 3*8ec969ceSTreehugger Robot * Universitaet Berlin. See the accompanying file "COPYRIGHT" for 4*8ec969ceSTreehugger Robot * details. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE. 5*8ec969ceSTreehugger Robot */ 6*8ec969ceSTreehugger Robot 7*8ec969ceSTreehugger Robot /* $Header: /tmp_amd/presto/export/kbs/jutta/src/gsm/RCS/table.c,v 1.1 1992/10/28 00:15:50 jutta Exp $ */ 8*8ec969ceSTreehugger Robot 9*8ec969ceSTreehugger Robot /* Most of these tables are inlined at their point of use. 10*8ec969ceSTreehugger Robot */ 11*8ec969ceSTreehugger Robot 12*8ec969ceSTreehugger Robot /* 4.4 TABLES USED IN THE FIXED POINT IMPLEMENTATION OF THE RPE-LTP 13*8ec969ceSTreehugger Robot * CODER AND DECODER 14*8ec969ceSTreehugger Robot * 15*8ec969ceSTreehugger Robot * (Most of them inlined, so watch out.) 16*8ec969ceSTreehugger Robot */ 17*8ec969ceSTreehugger Robot 18*8ec969ceSTreehugger Robot #define GSM_TABLE_C 19*8ec969ceSTreehugger Robot #include "private.h" 20*8ec969ceSTreehugger Robot #include "gsm.h" 21*8ec969ceSTreehugger Robot 22*8ec969ceSTreehugger Robot /* Table 4.1 Quantization of the Log.-Area Ratios 23*8ec969ceSTreehugger Robot */ 24*8ec969ceSTreehugger Robot /* i 1 2 3 4 5 6 7 8 */ 25*8ec969ceSTreehugger Robot word gsm_A[8] = {20480, 20480, 20480, 20480, 13964, 15360, 8534, 9036}; 26*8ec969ceSTreehugger Robot word gsm_B[8] = { 0, 0, 2048, -2560, 94, -1792, -341, -1144}; 27*8ec969ceSTreehugger Robot word gsm_MIC[8] = { -32, -32, -16, -16, -8, -8, -4, -4 }; 28*8ec969ceSTreehugger Robot word gsm_MAC[8] = { 31, 31, 15, 15, 7, 7, 3, 3 }; 29*8ec969ceSTreehugger Robot 30*8ec969ceSTreehugger Robot 31*8ec969ceSTreehugger Robot /* Table 4.2 Tabulation of 1/A[1..8] 32*8ec969ceSTreehugger Robot */ 33*8ec969ceSTreehugger Robot word gsm_INVA[8]={ 13107, 13107, 13107, 13107, 19223, 17476, 31454, 29708 }; 34*8ec969ceSTreehugger Robot 35*8ec969ceSTreehugger Robot 36*8ec969ceSTreehugger Robot /* Table 4.3a Decision level of the LTP gain quantizer 37*8ec969ceSTreehugger Robot */ 38*8ec969ceSTreehugger Robot /* bc 0 1 2 3 */ 39*8ec969ceSTreehugger Robot word gsm_DLB[4] = { 6554, 16384, 26214, 32767 }; 40*8ec969ceSTreehugger Robot 41*8ec969ceSTreehugger Robot 42*8ec969ceSTreehugger Robot /* Table 4.3b Quantization levels of the LTP gain quantizer 43*8ec969ceSTreehugger Robot */ 44*8ec969ceSTreehugger Robot /* bc 0 1 2 3 */ 45*8ec969ceSTreehugger Robot word gsm_QLB[4] = { 3277, 11469, 21299, 32767 }; 46*8ec969ceSTreehugger Robot 47*8ec969ceSTreehugger Robot 48*8ec969ceSTreehugger Robot /* Table 4.4 Coefficients of the weighting filter 49*8ec969ceSTreehugger Robot */ 50*8ec969ceSTreehugger Robot /* i 0 1 2 3 4 5 6 7 8 9 10 */ 51*8ec969ceSTreehugger Robot word gsm_H[11] = {-134, -374, 0, 2054, 5741, 8192, 5741, 2054, 0, -374, -134 }; 52*8ec969ceSTreehugger Robot 53*8ec969ceSTreehugger Robot 54*8ec969ceSTreehugger Robot /* Table 4.5 Normalized inverse mantissa used to compute xM/xmax 55*8ec969ceSTreehugger Robot */ 56*8ec969ceSTreehugger Robot /* i 0 1 2 3 4 5 6 7 */ 57*8ec969ceSTreehugger Robot word gsm_NRFAC[8] = { 29128, 26215, 23832, 21846, 20165, 18725, 17476, 16384 }; 58*8ec969ceSTreehugger Robot 59*8ec969ceSTreehugger Robot 60*8ec969ceSTreehugger Robot /* Table 4.6 Normalized direct mantissa used to compute xM/xmax 61*8ec969ceSTreehugger Robot */ 62*8ec969ceSTreehugger Robot /* i 0 1 2 3 4 5 6 7 */ 63*8ec969ceSTreehugger Robot word gsm_FAC[8] = { 18431, 20479, 22527, 24575, 26623, 28671, 30719, 32767 }; 64