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 
     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[];
     90     const Word16 qua_gain_pitch[NB_QUA_PITCH] =
     91     {
     92         0, 3277, 6556, 8192, 9830, 11469, 12288, 13107,
     93         13926, 14746, 15565, 16384, 17203, 18022, 18842, 19661
     94     };
     95 
     96 
     97     extern const Word16 qua_gain_code[];
     98     const Word16 qua_gain_code[(NB_QUA_CODE+1)*3] =
     99     {
    100         /* gain factor (g_fac) and quantized energy error (qua_ener_MR122, qua_ener)
    101          * are stored:
    102          *
    103          * qua_ener_MR122 = log2(g_fac)      (not the rounded floating point value, but
    104          *                                    the value the original EFR algorithm
    105          *                                    calculates from g_fac [using Log2])
    106          * qua_ener       = 20*log10(g_fac); (rounded floating point value)
    107          *
    108          *
    109          * g_fac (Q11), qua_ener_MR122 (Q10), qua_ener (Q10)
    110          */
    111         159,                -3776,          -22731,
    112         206,                -3394,          -20428,
    113         268,                -3005,          -18088,
    114         349,                -2615,          -15739,
    115         419,                -2345,          -14113,
    116         482,                -2138,          -12867,
    117         554,                -1932,          -11629,
    118         637,                -1726,          -10387,
    119         733,                -1518,           -9139,
    120         842,                -1314,           -7906,
    121         969,                -1106,           -6656,
    122         1114,                 -900,           -5416,
    123         1281,                 -694,           -4173,
    124         1473,                 -487,           -2931,
    125         1694,                 -281,           -1688,
    126         1948,                  -75,            -445,
    127         2241,                  133,             801,
    128         2577,                  339,            2044,
    129         2963,                  545,            3285,
    130         3408,                  752,            4530,
    131         3919,                  958,            5772,
    132         4507,                 1165,            7016,
    133         5183,                 1371,            8259,
    134         5960,                 1577,            9501,
    135         6855,                 1784,           10745,
    136         7883,                 1991,           11988,
    137         9065,                 2197,           13231,
    138         10425,                 2404,           14474,
    139         12510,                 2673,           16096,
    140         16263,                 3060,           18429,
    141         21142,                 3448,           20763,
    142         27485,                 3836,           23097,
    143         27485,                 3836,           23097
    144     };
    145 
    146     /*--------------------------------------------------------------------------*/
    147 #ifdef __cplusplus
    148 }
    149 #endif
    150 
    151 /*
    152 ------------------------------------------------------------------------------
    153  FUNCTION NAME:
    154 ------------------------------------------------------------------------------
    155  INPUT AND OUTPUT DEFINITIONS
    156 
    157  Inputs:
    158     None
    159 
    160  Outputs:
    161     None
    162 
    163  Returns:
    164     None
    165 
    166  Global Variables Used:
    167     None
    168 
    169  Local Variables Needed:
    170     None
    171 
    172 ------------------------------------------------------------------------------
    173  FUNCTION DESCRIPTION
    174 
    175  None
    176 
    177 ------------------------------------------------------------------------------
    178  REQUIREMENTS
    179 
    180  None
    181 
    182 ------------------------------------------------------------------------------
    183  REFERENCES
    184 
    185  [1] gains.tab,  UMTS GSM AMR speech codec, R99 - Version 3.2.0, March 2, 2001
    186 
    187 ------------------------------------------------------------------------------
    188  PSEUDO-CODE
    189 
    190 
    191 ------------------------------------------------------------------------------
    192  RESOURCES USED [optional]
    193 
    194  When the code is written for a specific target processor the
    195  the resources used should be documented below.
    196 
    197  HEAP MEMORY USED: x bytes
    198 
    199  STACK MEMORY USED: x bytes
    200 
    201  CLOCK CYCLES: (cycle count equation for this function) + (variable
    202                 used to represent cycle count for each subroutine
    203                 called)
    204      where: (cycle count variable) = cycle count for [subroutine
    205                                      name]
    206 
    207 ------------------------------------------------------------------------------
    208  CAUTION [optional]
    209  [State any special notes, constraints or cautions for users of this function]
    210 
    211 ------------------------------------------------------------------------------
    212 */
    213 
    214 /*----------------------------------------------------------------------------
    215 ; FUNCTION CODE
    216 ----------------------------------------------------------------------------*/
    217 
    218 
    219 
    220