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 
    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