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 Pathname: .audio/gsm-amr/c/src/window_tab.c 31 32 ------------------------------------------------------------------------------ 33 REVISION HISTORY 34 35 Description: Changed tables from static const to just const. 36 37 Description: Added #ifdef __cplusplus and removed "extern" from table 38 definition. 39 40 Description: Put "extern" back. 41 42 Who: Date: 43 Description: 44 45 ------------------------------------------------------------------------------ 46 INPUT AND OUTPUT DEFINITIONS 47 48 Inputs: 49 None 50 51 Local Stores/Buffers/Pointers Needed: 52 None 53 54 Global Stores/Buffers/Pointers Needed: 55 None 56 57 Outputs: 58 None 59 60 Pointers and Buffers Modified: 61 None 62 63 Local Stores Modified: 64 None 65 66 Global Stores Modified: 67 None 68 69 ------------------------------------------------------------------------------ 70 FUNCTION DESCRIPTION 71 72 File : window.tab 73 Purpose : Hamming_cos window for LPC analysis. 74 75 ------------------------------------------------------------------------------ 76 REQUIREMENTS 77 78 None 79 80 ------------------------------------------------------------------------------ 81 REFERENCES 82 83 None 84 85 ------------------------------------------------------------------------------ 86 PSEUDO-CODE 87 88 89 ------------------------------------------------------------------------------ 90 RESOURCES USED 91 When the code is written for a specific target processor the 92 the resources used should be documented below. 93 94 STACK USAGE: [stack count for this module] + [variable to represent 95 stack usage for each subroutine called] 96 97 where: [stack usage variable] = stack usage for [subroutine 98 name] (see [filename].ext) 99 100 DATA MEMORY USED: x words 101 102 PROGRAM MEMORY USED: x words 103 104 CLOCK CYCLES: [cycle count equation for this module] + [variable 105 used to represent cycle count for each subroutine 106 called] 107 108 where: [cycle count variable] = cycle count for [subroutine 109 name] (see [filename].ext) 110 111 ------------------------------------------------------------------------------ 112 */ 113 114 115 /*---------------------------------------------------------------------------- 116 ; INCLUDES 117 ----------------------------------------------------------------------------*/ 118 #include "typedef.h" 119 #include "cnst.h" 120 121 /*--------------------------------------------------------------------------*/ 122 #ifdef __cplusplus 123 extern "C" 124 { 125 #endif 126 127 /*---------------------------------------------------------------------------- 128 ; MACROS 129 ; Define module specific macros here 130 ----------------------------------------------------------------------------*/ 131 132 133 /*---------------------------------------------------------------------------- 134 ; DEFINES 135 ; Include all pre-processor statements here. Include conditional 136 ; compile variables also. 137 ----------------------------------------------------------------------------*/ 138 139 /*---------------------------------------------------------------------------- 140 ; LOCAL FUNCTION DEFINITIONS 141 ; Function Prototype declaration 142 ----------------------------------------------------------------------------*/ 143 144 145 /*---------------------------------------------------------------------------- 146 ; LOCAL STORE/BUFFER/POINTER DEFINITIONS 147 ; Variable declaration - defined here and used outside this module 148 ----------------------------------------------------------------------------*/ 149 /************************************************************************* 150 * 151 * Hamming_cos windows for LPC analysis. 152 * 153 *************************************************************************/ 154 155 /* window for non-EFR modesm; uses 40 samples lookahead */ 156 157 extern const Word16 window_200_40[L_WINDOW] = 158 { 159 2621, 2623, 2629, 2638, 2651, 2668, 2689, 2713, 2741, 2772, 160 2808, 2847, 2890, 2936, 2986, 3040, 3097, 3158, 3223, 3291, 161 3363, 3438, 3517, 3599, 3685, 3774, 3867, 3963, 4063, 4166, 162 4272, 4382, 4495, 4611, 4731, 4853, 4979, 5108, 5240, 5376, 163 5514, 5655, 5800, 5947, 6097, 6250, 6406, 6565, 6726, 6890, 164 7057, 7227, 7399, 7573, 7750, 7930, 8112, 8296, 8483, 8672, 165 8863, 9057, 9252, 9450, 9650, 9852, 10055, 10261, 10468, 10677, 166 10888, 11101, 11315, 11531, 11748, 11967, 12187, 12409, 12632, 12856, 167 13082, 13308, 13536, 13764, 13994, 14225, 14456, 14688, 14921, 15155, 168 15389, 15624, 15859, 16095, 16331, 16568, 16805, 17042, 17279, 17516, 169 17754, 17991, 18228, 18465, 18702, 18939, 19175, 19411, 19647, 19882, 170 20117, 20350, 20584, 20816, 21048, 21279, 21509, 21738, 21967, 22194, 171 22420, 22644, 22868, 23090, 23311, 23531, 23749, 23965, 24181, 24394, 172 24606, 24816, 25024, 25231, 25435, 25638, 25839, 26037, 26234, 26428, 173 26621, 26811, 26999, 27184, 27368, 27548, 27727, 27903, 28076, 28247, 174 28415, 28581, 28743, 28903, 29061, 29215, 29367, 29515, 29661, 29804, 175 29944, 30081, 30214, 30345, 30472, 30597, 30718, 30836, 30950, 31062, 176 31170, 31274, 31376, 31474, 31568, 31659, 31747, 31831, 31911, 31988, 177 32062, 32132, 32198, 32261, 32320, 32376, 32428, 32476, 32521, 32561, 178 32599, 32632, 32662, 32688, 32711, 32729, 32744, 32755, 32763, 32767, 179 32767, 32741, 32665, 32537, 32359, 32129, 31850, 31521, 31143, 30716, 180 30242, 29720, 29151, 28538, 27879, 27177, 26433, 25647, 24821, 23957, 181 23055, 22117, 21145, 20139, 19102, 18036, 16941, 15820, 14674, 13505, 182 12315, 11106, 9879, 8637, 7381, 6114, 4838, 3554, 2264, 971 183 }; 184 185 186 /* window for EFR, first two subframes, no lookahead */ 187 188 extern const Word16 window_160_80[L_WINDOW] = 189 { 190 2621, 2624, 2633, 2648, 2668, 2695, 2727, 2765, 2809, 2859, 191 2915, 2976, 3043, 3116, 3194, 3279, 3368, 3464, 3565, 3671, 192 3783, 3900, 4023, 4151, 4285, 4423, 4567, 4716, 4870, 5029, 193 5193, 5362, 5535, 5714, 5897, 6084, 6277, 6473, 6674, 6880, 194 7089, 7303, 7521, 7742, 7968, 8197, 8430, 8667, 8907, 9151, 195 9398, 9648, 9902, 10158, 10417, 10680, 10945, 11212, 11482, 11755, 196 12030, 12307, 12586, 12867, 13150, 13435, 13722, 14010, 14299, 14590, 197 14882, 15175, 15469, 15764, 16060, 16356, 16653, 16950, 17248, 17546, 198 17844, 18141, 18439, 18736, 19033, 19330, 19625, 19920, 20214, 20507, 199 20799, 21090, 21380, 21668, 21954, 22239, 22522, 22803, 23083, 23360, 200 23635, 23907, 24177, 24445, 24710, 24972, 25231, 25488, 25741, 25991, 201 26238, 26482, 26722, 26959, 27192, 27422, 27647, 27869, 28087, 28300, 202 28510, 28715, 28916, 29113, 29305, 29493, 29676, 29854, 30028, 30197, 203 30361, 30519, 30673, 30822, 30966, 31105, 31238, 31366, 31489, 31606, 204 31718, 31825, 31926, 32021, 32111, 32195, 32273, 32346, 32413, 32475, 205 32530, 32580, 32624, 32662, 32695, 32721, 32742, 32756, 32765, 32767, 206 32767, 32756, 32720, 32661, 32578, 32471, 32341, 32188, 32012, 31813, 207 31592, 31349, 31084, 30798, 30492, 30165, 29818, 29453, 29068, 28666, 208 28247, 27810, 27358, 26891, 26408, 25913, 25404, 24883, 24350, 23807, 209 23255, 22693, 22124, 21548, 20965, 20378, 19786, 19191, 18593, 17994, 210 17395, 16796, 16199, 15604, 15012, 14424, 13842, 13265, 12696, 12135, 211 11582, 11039, 10507, 9986, 9477, 8981, 8499, 8031, 7579, 7143, 212 6723, 6321, 5937, 5571, 5225, 4898, 4591, 4305, 4041, 3798, 213 3577, 3378, 3202, 3048, 2918, 2812, 2729, 2669, 2633, 2621 214 }; 215 216 /* window for EFR, last two subframes, no lookahead */ 217 218 extern const Word16 window_232_8[L_WINDOW] = 219 { 220 2621, 2623, 2627, 2634, 2644, 2656, 2671, 2689, 2710, 2734, 221 2760, 2789, 2821, 2855, 2893, 2933, 2975, 3021, 3069, 3120, 222 3173, 3229, 3288, 3350, 3414, 3481, 3550, 3622, 3697, 3774, 223 3853, 3936, 4021, 4108, 4198, 4290, 4385, 4482, 4582, 4684, 224 4788, 4895, 5004, 5116, 5230, 5346, 5464, 5585, 5708, 5833, 225 5960, 6090, 6221, 6355, 6491, 6629, 6769, 6910, 7054, 7200, 226 7348, 7498, 7649, 7803, 7958, 8115, 8274, 8434, 8597, 8761, 227 8926, 9093, 9262, 9432, 9604, 9778, 9952, 10129, 10306, 10485, 228 10665, 10847, 11030, 11214, 11399, 11586, 11773, 11962, 12152, 12342, 229 12534, 12727, 12920, 13115, 13310, 13506, 13703, 13901, 14099, 14298, 230 14497, 14698, 14898, 15100, 15301, 15504, 15706, 15909, 16112, 16316, 231 16520, 16724, 16928, 17132, 17337, 17541, 17746, 17950, 18155, 18359, 232 18564, 18768, 18972, 19175, 19379, 19582, 19785, 19987, 20189, 20390, 233 20591, 20792, 20992, 21191, 21390, 21588, 21785, 21981, 22177, 22372, 234 22566, 22759, 22951, 23143, 23333, 23522, 23710, 23897, 24083, 24268, 235 24451, 24633, 24814, 24994, 25172, 25349, 25525, 25699, 25871, 26042, 236 26212, 26380, 26546, 26711, 26874, 27035, 27195, 27353, 27509, 27664, 237 27816, 27967, 28115, 28262, 28407, 28550, 28691, 28830, 28967, 29102, 238 29234, 29365, 29493, 29619, 29743, 29865, 29985, 30102, 30217, 30330, 239 30440, 30548, 30654, 30757, 30858, 30956, 31052, 31146, 31237, 31326, 240 31412, 31495, 31576, 31655, 31730, 31804, 31874, 31942, 32008, 32071, 241 32131, 32188, 32243, 32295, 32345, 32392, 32436, 32477, 32516, 32552, 242 32585, 32615, 32643, 32668, 32690, 32709, 32726, 32740, 32751, 32759, 243 32765, 32767, 32767, 32097, 30112, 26895, 22576, 17333, 11380, 4962 244 }; 245 246 /*---------------------------------------------------------------------------- 247 ; EXTERNAL FUNCTION REFERENCES 248 ; Declare functions defined elsewhere and referenced in this module 249 ----------------------------------------------------------------------------*/ 250 251 252 /*---------------------------------------------------------------------------- 253 ; EXTERNAL GLOBAL STORE/BUFFER/POINTER REFERENCES 254 ; Declare variables used in this module but defined elsewhere 255 ----------------------------------------------------------------------------*/ 256 257 258 /*--------------------------------------------------------------------------*/ 259 #ifdef __cplusplus 260 } 261 #endif 262 263 /*---------------------------------------------------------------------------- 264 ; FUNCTION CODE 265 ----------------------------------------------------------------------------*/ 266 267 /*---------------------------------------------------------------------------- 268 ; Define all local variables 269 ----------------------------------------------------------------------------*/ 270 271 272 /*---------------------------------------------------------------------------- 273 ; Function body here 274 ----------------------------------------------------------------------------*/ 275 276 277 /*---------------------------------------------------------------------------- 278 ; Return nothing or data or data pointer 279 ----------------------------------------------------------------------------*/ 280 281