Home | History | Annotate | Download | only in src
      1 /*
      2  * Copyright (C) 2004-2010 NXP Software
      3  * Copyright (C) 2010 The Android Open Source Project
      4  *
      5  * Licensed under the Apache License, Version 2.0 (the "License");
      6  * you may not use this file except in compliance with the License.
      7  * You may obtain a copy of the License at
      8  *
      9  *      http://www.apache.org/licenses/LICENSE-2.0
     10  *
     11  * Unless required by applicable law or agreed to in writing, software
     12  * distributed under the License is distributed on an "AS IS" BASIS,
     13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14  * See the License for the specific language governing permissions and
     15  * limitations under the License.
     16  */
     17 
     18 
     19 #ifndef __LVEQNB_COEFFS_H__
     20 #define __LVEQNB_COEFFS_H__
     21 
     22 
     23 /************************************************************************************/
     24 /*                                                                                  */
     25 /* Gain table for (10^(Gain/20) - 1)                                                */
     26 /*                                                                                  */
     27 /************************************************************************************/
     28 #ifdef BUILD_FLOAT
     29 #define LVEQNB_Gain_Neg15_dB                             (-0.822172f)
     30 #define LVEQNB_Gain_Neg14_dB                             (-0.800474f)
     31 #define LVEQNB_Gain_Neg13_dB                             (-0.776128f)
     32 #define LVEQNB_Gain_Neg12_dB                             (-0.748811f)
     33 #define LVEQNB_Gain_Neg11_dB                             (-0.718162f)
     34 #define LVEQNB_Gain_Neg10_dB                             (-0.683772f)
     35 #define LVEQNB_Gain_Neg9_dB                              (-0.645187f)
     36 #define LVEQNB_Gain_Neg8_dB                              (-0.601893f)
     37 #define LVEQNB_Gain_Neg7_dB                              (-0.553316f)
     38 #define LVEQNB_Gain_Neg6_dB                              (-0.498813f)
     39 #define LVEQNB_Gain_Neg5_dB                              (-0.437659f)
     40 #define LVEQNB_Gain_Neg4_dB                              (-0.369043f)
     41 #define LVEQNB_Gain_Neg3_dB                              (-0.292054f)
     42 #define LVEQNB_Gain_Neg2_dB                              (-0.205672f)
     43 #define LVEQNB_Gain_Neg1_dB                              (-0.108749f)
     44 #define LVEQNB_Gain_0_dB                                  0.000000f
     45 #define LVEQNB_Gain_1_dB                                  0.122018f
     46 #define LVEQNB_Gain_2_dB                                  0.258925f
     47 #define LVEQNB_Gain_3_dB                                  0.412538f
     48 #define LVEQNB_Gain_4_dB                                  0.584893f
     49 #define LVEQNB_Gain_5_dB                                  0.778279f
     50 #define LVEQNB_Gain_6_dB                                  0.995262f
     51 #define LVEQNB_Gain_7_dB                                  1.238721f
     52 #define LVEQNB_Gain_8_dB                                  1.511886f
     53 #define LVEQNB_Gain_9_dB                                  1.818383f
     54 #define LVEQNB_Gain_10_dB                                 2.162278f
     55 #define LVEQNB_Gain_11_dB                                 2.548134f
     56 #define LVEQNB_Gain_12_dB                                 2.981072f
     57 #define LVEQNB_Gain_13_dB                                 3.466836f
     58 #define LVEQNB_Gain_14_dB                                 4.011872f
     59 #define LVEQNB_Gain_15_dB                                 4.623413f
     60 #else
     61 #define LVEQNB_GAINSHIFT                                   11         /* As a power of 2 */
     62 #define LVEQNB_Gain_Neg15_dB                           (-1684)        /* Floating point value -0.822172 */
     63 #define LVEQNB_Gain_Neg14_dB                           (-1639)        /* Floating point value -0.800474 */
     64 #define LVEQNB_Gain_Neg13_dB                           (-1590)        /* Floating point value -0.776128 */
     65 #define LVEQNB_Gain_Neg12_dB                           (-1534)        /* Floating point value -0.748811 */
     66 #define LVEQNB_Gain_Neg11_dB                           (-1471)        /* Floating point value -0.718162 */
     67 #define LVEQNB_Gain_Neg10_dB                           (-1400)        /* Floating point value -0.683772 */
     68 #define LVEQNB_Gain_Neg9_dB                            (-1321)        /* Floating point value -0.645187 */
     69 #define LVEQNB_Gain_Neg8_dB                            (-1233)        /* Floating point value -0.601893 */
     70 #define LVEQNB_Gain_Neg7_dB                            (-1133)        /* Floating point value -0.553316 */
     71 #define LVEQNB_Gain_Neg6_dB                            (-1022)        /* Floating point value -0.498813 */
     72 #define LVEQNB_Gain_Neg5_dB                             (-896)        /* Floating point value -0.437659 */
     73 #define LVEQNB_Gain_Neg4_dB                             (-756)        /* Floating point value -0.369043 */
     74 #define LVEQNB_Gain_Neg3_dB                             (-598)        /* Floating point value -0.292054 */
     75 #define LVEQNB_Gain_Neg2_dB                             (-421)        /* Floating point value -0.205672 */
     76 #define LVEQNB_Gain_Neg1_dB                             (-223)        /* Floating point value -0.108749 */
     77 #define LVEQNB_Gain_0_dB                                    0         /* Floating point value 0.000000 */
     78 #define LVEQNB_Gain_1_dB                                  250         /* Floating point value 0.122018 */
     79 #define LVEQNB_Gain_2_dB                                  530         /* Floating point value 0.258925 */
     80 #define LVEQNB_Gain_3_dB                                  845         /* Floating point value 0.412538 */
     81 #define LVEQNB_Gain_4_dB                                 1198         /* Floating point value 0.584893 */
     82 #define LVEQNB_Gain_5_dB                                 1594         /* Floating point value 0.778279 */
     83 #define LVEQNB_Gain_6_dB                                 2038         /* Floating point value 0.995262 */
     84 #define LVEQNB_Gain_7_dB                                 2537         /* Floating point value 1.238721 */
     85 #define LVEQNB_Gain_8_dB                                 3096         /* Floating point value 1.511886 */
     86 #define LVEQNB_Gain_9_dB                                 3724         /* Floating point value 1.818383 */
     87 #define LVEQNB_Gain_10_dB                                4428         /* Floating point value 2.162278 */
     88 #define LVEQNB_Gain_11_dB                                5219         /* Floating point value 2.548134 */
     89 #define LVEQNB_Gain_12_dB                                6105         /* Floating point value 2.981072 */
     90 #define LVEQNB_Gain_13_dB                                7100         /* Floating point value 3.466836 */
     91 #define LVEQNB_Gain_14_dB                                8216         /* Floating point value 4.011872 */
     92 #define LVEQNB_Gain_15_dB                                9469         /* Floating point value 4.623413 */
     93 #endif
     94 
     95 /************************************************************************************/
     96 /*                                                                                  */
     97 /* Frequency table for 2*Pi/Fs                                                      */
     98 /*                                                                                  */
     99 /************************************************************************************/
    100 #ifdef BUILD_FLOAT
    101 #define LVEQNB_2PiOn_8000                                0.000785f
    102 #define LVEQNB_2PiOn_11025                               0.000570f
    103 #define LVEQNB_2PiOn_12000                               0.000524f
    104 #define LVEQNB_2PiOn_16000                               0.000393f
    105 #define LVEQNB_2PiOn_22050                               0.000285f
    106 #define LVEQNB_2PiOn_24000                               0.000262f
    107 #define LVEQNB_2PiOn_32000                               0.000196f
    108 #define LVEQNB_2PiOn_44100                               0.000142f
    109 #define LVEQNB_2PiOn_48000                               0.000131f
    110 
    111 #ifdef HIGHER_FS
    112 #define LVEQNB_2PiOn_96000                               0.000065f
    113 #define LVEQNB_2PiOn_192000                              0.000033f
    114 #endif
    115 
    116 #else
    117 #define LVEQNB_FREQSHIFT                                   25         /* As a power of 2 */
    118 #define LVEQNB_2PiOn_8000                               26354         /* Floating point value 0.000785 */
    119 #define LVEQNB_2PiOn_11025                              19123         /* Floating point value 0.000570 */
    120 #define LVEQNB_2PiOn_12000                              17569         /* Floating point value 0.000524 */
    121 #define LVEQNB_2PiOn_16000                              13177         /* Floating point value 0.000393 */
    122 #define LVEQNB_2PiOn_22050                               9561         /* Floating point value 0.000285 */
    123 #define LVEQNB_2PiOn_24000                               8785         /* Floating point value 0.000262 */
    124 #define LVEQNB_2PiOn_32000                               6588         /* Floating point value 0.000196 */
    125 #define LVEQNB_2PiOn_44100                               4781         /* Floating point value 0.000142 */
    126 #define LVEQNB_2PiOn_48000                               4392         /* Floating point value 0.000131 */
    127 #endif
    128 
    129 /************************************************************************************/
    130 /*                                                                                  */
    131 /* 50D table for 50 / ( 1 + Gain )                                                  */
    132 /*                                                                                  */
    133 /************************************************************************************/
    134 #ifdef BUILD_FLOAT
    135 #define LVEQNB_100D_Neg15_dB                             5.623413f
    136 #define LVEQNB_100D_Neg14_dB                             5.011872f
    137 #define LVEQNB_100D_Neg13_dB                             4.466836f
    138 #define LVEQNB_100D_Neg12_dB                             3.981072f
    139 #define LVEQNB_100D_Neg11_dB                             3.548134f
    140 #define LVEQNB_100D_Neg10_dB                             3.162278f
    141 #define LVEQNB_100D_Neg9_dB                              2.818383f
    142 #define LVEQNB_100D_Neg8_dB                              2.511886f
    143 #define LVEQNB_100D_Neg7_dB                              2.238721f
    144 #define LVEQNB_100D_Neg6_dB                              1.995262f
    145 #define LVEQNB_100D_Neg5_dB                              1.778279f
    146 #define LVEQNB_100D_Neg4_dB                              1.584893f
    147 #define LVEQNB_100D_Neg3_dB                              1.412538f
    148 #define LVEQNB_100D_Neg2_dB                              1.258925f
    149 #define LVEQNB_100D_Neg1_dB                              1.122018f
    150 #define LVEQNB_100D_0_dB                                 1.000000f
    151 #else
    152 #define LVEQNB_100DSHIFT                                    5         /* As a power of 2 */
    153 #define LVEQNB_100D_Neg15_dB                            17995         /* Floating point value 5.623413 */
    154 #define LVEQNB_100D_Neg14_dB                            16038         /* Floating point value 5.011872 */
    155 #define LVEQNB_100D_Neg13_dB                            14294         /* Floating point value 4.466836 */
    156 #define LVEQNB_100D_Neg12_dB                            12739         /* Floating point value 3.981072 */
    157 #define LVEQNB_100D_Neg11_dB                            11354         /* Floating point value 3.548134 */
    158 #define LVEQNB_100D_Neg10_dB                            10119         /* Floating point value 3.162278 */
    159 #define LVEQNB_100D_Neg9_dB                              9019         /* Floating point value 2.818383 */
    160 #define LVEQNB_100D_Neg8_dB                              8038         /* Floating point value 2.511886 */
    161 #define LVEQNB_100D_Neg7_dB                              7164         /* Floating point value 2.238721 */
    162 #define LVEQNB_100D_Neg6_dB                              6385         /* Floating point value 1.995262 */
    163 #define LVEQNB_100D_Neg5_dB                              5690         /* Floating point value 1.778279 */
    164 #define LVEQNB_100D_Neg4_dB                              5072         /* Floating point value 1.584893 */
    165 #define LVEQNB_100D_Neg3_dB                              4520         /* Floating point value 1.412538 */
    166 #define LVEQNB_100D_Neg2_dB                              4029         /* Floating point value 1.258925 */
    167 #define LVEQNB_100D_Neg1_dB                              3590         /* Floating point value 1.122018 */
    168 #define LVEQNB_100D_0_dB                                 3200         /* Floating point value 1.000000 */
    169 #endif
    170 
    171 #endif
    172