xref: /aosp_15_r20/external/libgsm/src/table.c (revision 8ec969cea971fe25ff2d3933a5a9f8504f8e86c9)
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