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: /audio/gsm_amr/c/src/gains_tbl.c 32 33 ------------------------------------------------------------------------------ 34 REVISION HISTORY 35 36 Description: Created this file from the reference, gains.tab 37 38 Description: Added include of "typedef.h" to includes section. 39 40 Description: Added #ifdef __cplusplus and removed "extern" from table 41 definition. 42 43 Description: Put "extern" back. 44 45 Who: Date: 46 Description: 47 48 ------------------------------------------------------------------------------ 49 MODULE DESCRIPTION 50 51 ------------------------------------------------------------------------------ 52 */ 53 54 /*---------------------------------------------------------------------------- 55 ; INCLUDES 56 ----------------------------------------------------------------------------*/ 57 #include "typedef.h" 58 59 /*--------------------------------------------------------------------------*/ 60 #ifdef __cplusplus 61 extern "C" 62 { 63 #endif 64 65 /*---------------------------------------------------------------------------- 66 ; MACROS 67 ; [Define module specific macros here] 68 ----------------------------------------------------------------------------*/ 69 70 /*---------------------------------------------------------------------------- 71 ; DEFINES 72 ; [Include all pre-processor statements here. Include conditional 73 ; compile variables also.] 74 ----------------------------------------------------------------------------*/ 75 #define NB_QUA_PITCH 16 76 #define NB_QUA_CODE 32 77 78 /*---------------------------------------------------------------------------- 79 ; LOCAL FUNCTION DEFINITIONS 80 ; [List function prototypes here] 81 ----------------------------------------------------------------------------*/ 82 83 /*---------------------------------------------------------------------------- 84 ; LOCAL VARIABLE DEFINITIONS 85 ; [Variable declaration - defined here and used outside this module] 86 ----------------------------------------------------------------------------*/ 87 88 89 extern const Word16 qua_gain_pitch[NB_QUA_PITCH] = 90 { 91 0, 3277, 6556, 8192, 9830, 11469, 12288, 13107, 92 13926, 14746, 15565, 16384, 17203, 18022, 18842, 19661 93 }; 94 95 96 extern const Word16 qua_gain_code[(NB_QUA_CODE+1)*3] = 97 { 98 /* gain factor (g_fac) and quantized energy error (qua_ener_MR122, qua_ener) 99 * are stored: 100 * 101 * qua_ener_MR122 = log2(g_fac) (not the rounded floating point value, but 102 * the value the original EFR algorithm 103 * calculates from g_fac [using Log2]) 104 * qua_ener = 20*log10(g_fac); (rounded floating point value) 105 * 106 * 107 * g_fac (Q11), qua_ener_MR122 (Q10), qua_ener (Q10) 108 */ 109 159, -3776, -22731, 110 206, -3394, -20428, 111 268, -3005, -18088, 112 349, -2615, -15739, 113 419, -2345, -14113, 114 482, -2138, -12867, 115 554, -1932, -11629, 116 637, -1726, -10387, 117 733, -1518, -9139, 118 842, -1314, -7906, 119 969, -1106, -6656, 120 1114, -900, -5416, 121 1281, -694, -4173, 122 1473, -487, -2931, 123 1694, -281, -1688, 124 1948, -75, -445, 125 2241, 133, 801, 126 2577, 339, 2044, 127 2963, 545, 3285, 128 3408, 752, 4530, 129 3919, 958, 5772, 130 4507, 1165, 7016, 131 5183, 1371, 8259, 132 5960, 1577, 9501, 133 6855, 1784, 10745, 134 7883, 1991, 11988, 135 9065, 2197, 13231, 136 10425, 2404, 14474, 137 12510, 2673, 16096, 138 16263, 3060, 18429, 139 21142, 3448, 20763, 140 27485, 3836, 23097, 141 27485, 3836, 23097 142 }; 143 144 /*--------------------------------------------------------------------------*/ 145 #ifdef __cplusplus 146 } 147 #endif 148 149 /* 150 ------------------------------------------------------------------------------ 151 FUNCTION NAME: 152 ------------------------------------------------------------------------------ 153 INPUT AND OUTPUT DEFINITIONS 154 155 Inputs: 156 None 157 158 Outputs: 159 None 160 161 Returns: 162 None 163 164 Global Variables Used: 165 None 166 167 Local Variables Needed: 168 None 169 170 ------------------------------------------------------------------------------ 171 FUNCTION DESCRIPTION 172 173 None 174 175 ------------------------------------------------------------------------------ 176 REQUIREMENTS 177 178 None 179 180 ------------------------------------------------------------------------------ 181 REFERENCES 182 183 [1] gains.tab, UMTS GSM AMR speech codec, R99 - Version 3.2.0, March 2, 2001 184 185 ------------------------------------------------------------------------------ 186 PSEUDO-CODE 187 188 189 ------------------------------------------------------------------------------ 190 RESOURCES USED [optional] 191 192 When the code is written for a specific target processor the 193 the resources used should be documented below. 194 195 HEAP MEMORY USED: x bytes 196 197 STACK MEMORY USED: x bytes 198 199 CLOCK CYCLES: (cycle count equation for this function) + (variable 200 used to represent cycle count for each subroutine 201 called) 202 where: (cycle count variable) = cycle count for [subroutine 203 name] 204 205 ------------------------------------------------------------------------------ 206 CAUTION [optional] 207 [State any special notes, constraints or cautions for users of this function] 208 209 ------------------------------------------------------------------------------ 210 */ 211 212 /*---------------------------------------------------------------------------- 213 ; FUNCTION CODE 214 ----------------------------------------------------------------------------*/ 215 216 217 218