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