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