| /* |
| * Copyright (C) 2004-2010 NXP Software |
| * Copyright (C) 2010 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| |
| #ifndef __LVEQNB_COEFFS_H__ |
| #define __LVEQNB_COEFFS_H__ |
| |
| |
| /************************************************************************************/ |
| /* */ |
| /* Gain table for (10^(Gain/20) - 1) */ |
| /* */ |
| /************************************************************************************/ |
| #ifdef BUILD_FLOAT |
| #define LVEQNB_Gain_Neg15_dB -0.822172f |
| #define LVEQNB_Gain_Neg14_dB -0.800474f |
| #define LVEQNB_Gain_Neg13_dB -0.776128f |
| #define LVEQNB_Gain_Neg12_dB -0.748811f |
| #define LVEQNB_Gain_Neg11_dB -0.718162f |
| #define LVEQNB_Gain_Neg10_dB -0.683772f |
| #define LVEQNB_Gain_Neg9_dB -0.645187f |
| #define LVEQNB_Gain_Neg8_dB -0.601893f |
| #define LVEQNB_Gain_Neg7_dB -0.553316f |
| #define LVEQNB_Gain_Neg6_dB -0.498813f |
| #define LVEQNB_Gain_Neg5_dB -0.437659f |
| #define LVEQNB_Gain_Neg4_dB -0.369043f |
| #define LVEQNB_Gain_Neg3_dB -0.292054f |
| #define LVEQNB_Gain_Neg2_dB -0.205672f |
| #define LVEQNB_Gain_Neg1_dB -0.108749f |
| #define LVEQNB_Gain_0_dB 0.000000f |
| #define LVEQNB_Gain_1_dB 0.122018f |
| #define LVEQNB_Gain_2_dB 0.258925f |
| #define LVEQNB_Gain_3_dB 0.412538f |
| #define LVEQNB_Gain_4_dB 0.584893f |
| #define LVEQNB_Gain_5_dB 0.778279f |
| #define LVEQNB_Gain_6_dB 0.995262f |
| #define LVEQNB_Gain_7_dB 1.238721f |
| #define LVEQNB_Gain_8_dB 1.511886f |
| #define LVEQNB_Gain_9_dB 1.818383f |
| #define LVEQNB_Gain_10_dB 2.162278f |
| #define LVEQNB_Gain_11_dB 2.548134f |
| #define LVEQNB_Gain_12_dB 2.981072f |
| #define LVEQNB_Gain_13_dB 3.466836f |
| #define LVEQNB_Gain_14_dB 4.011872f |
| #define LVEQNB_Gain_15_dB 4.623413f |
| #else |
| #define LVEQNB_GAINSHIFT 11 /* As a power of 2 */ |
| #define LVEQNB_Gain_Neg15_dB (-1684) /* Floating point value -0.822172 */ |
| #define LVEQNB_Gain_Neg14_dB (-1639) /* Floating point value -0.800474 */ |
| #define LVEQNB_Gain_Neg13_dB (-1590) /* Floating point value -0.776128 */ |
| #define LVEQNB_Gain_Neg12_dB (-1534) /* Floating point value -0.748811 */ |
| #define LVEQNB_Gain_Neg11_dB (-1471) /* Floating point value -0.718162 */ |
| #define LVEQNB_Gain_Neg10_dB (-1400) /* Floating point value -0.683772 */ |
| #define LVEQNB_Gain_Neg9_dB (-1321) /* Floating point value -0.645187 */ |
| #define LVEQNB_Gain_Neg8_dB (-1233) /* Floating point value -0.601893 */ |
| #define LVEQNB_Gain_Neg7_dB (-1133) /* Floating point value -0.553316 */ |
| #define LVEQNB_Gain_Neg6_dB (-1022) /* Floating point value -0.498813 */ |
| #define LVEQNB_Gain_Neg5_dB (-896) /* Floating point value -0.437659 */ |
| #define LVEQNB_Gain_Neg4_dB (-756) /* Floating point value -0.369043 */ |
| #define LVEQNB_Gain_Neg3_dB (-598) /* Floating point value -0.292054 */ |
| #define LVEQNB_Gain_Neg2_dB (-421) /* Floating point value -0.205672 */ |
| #define LVEQNB_Gain_Neg1_dB (-223) /* Floating point value -0.108749 */ |
| #define LVEQNB_Gain_0_dB 0 /* Floating point value 0.000000 */ |
| #define LVEQNB_Gain_1_dB 250 /* Floating point value 0.122018 */ |
| #define LVEQNB_Gain_2_dB 530 /* Floating point value 0.258925 */ |
| #define LVEQNB_Gain_3_dB 845 /* Floating point value 0.412538 */ |
| #define LVEQNB_Gain_4_dB 1198 /* Floating point value 0.584893 */ |
| #define LVEQNB_Gain_5_dB 1594 /* Floating point value 0.778279 */ |
| #define LVEQNB_Gain_6_dB 2038 /* Floating point value 0.995262 */ |
| #define LVEQNB_Gain_7_dB 2537 /* Floating point value 1.238721 */ |
| #define LVEQNB_Gain_8_dB 3096 /* Floating point value 1.511886 */ |
| #define LVEQNB_Gain_9_dB 3724 /* Floating point value 1.818383 */ |
| #define LVEQNB_Gain_10_dB 4428 /* Floating point value 2.162278 */ |
| #define LVEQNB_Gain_11_dB 5219 /* Floating point value 2.548134 */ |
| #define LVEQNB_Gain_12_dB 6105 /* Floating point value 2.981072 */ |
| #define LVEQNB_Gain_13_dB 7100 /* Floating point value 3.466836 */ |
| #define LVEQNB_Gain_14_dB 8216 /* Floating point value 4.011872 */ |
| #define LVEQNB_Gain_15_dB 9469 /* Floating point value 4.623413 */ |
| #endif |
| |
| /************************************************************************************/ |
| /* */ |
| /* Frequency table for 2*Pi/Fs */ |
| /* */ |
| /************************************************************************************/ |
| #ifdef BUILD_FLOAT |
| #define LVEQNB_2PiOn_8000 0.000785f |
| #define LVEQNB_2PiOn_11025 0.000570f |
| #define LVEQNB_2PiOn_12000 0.000524f |
| #define LVEQNB_2PiOn_16000 0.000393f |
| #define LVEQNB_2PiOn_22050 0.000285f |
| #define LVEQNB_2PiOn_24000 0.000262f |
| #define LVEQNB_2PiOn_32000 0.000196f |
| #define LVEQNB_2PiOn_44100 0.000142f |
| #define LVEQNB_2PiOn_48000 0.000131f |
| |
| #ifdef HIGHER_FS |
| #define LVEQNB_2PiOn_96000 0.000065f |
| #define LVEQNB_2PiOn_192000 0.000033f |
| #endif |
| |
| #else |
| #define LVEQNB_FREQSHIFT 25 /* As a power of 2 */ |
| #define LVEQNB_2PiOn_8000 26354 /* Floating point value 0.000785 */ |
| #define LVEQNB_2PiOn_11025 19123 /* Floating point value 0.000570 */ |
| #define LVEQNB_2PiOn_12000 17569 /* Floating point value 0.000524 */ |
| #define LVEQNB_2PiOn_16000 13177 /* Floating point value 0.000393 */ |
| #define LVEQNB_2PiOn_22050 9561 /* Floating point value 0.000285 */ |
| #define LVEQNB_2PiOn_24000 8785 /* Floating point value 0.000262 */ |
| #define LVEQNB_2PiOn_32000 6588 /* Floating point value 0.000196 */ |
| #define LVEQNB_2PiOn_44100 4781 /* Floating point value 0.000142 */ |
| #define LVEQNB_2PiOn_48000 4392 /* Floating point value 0.000131 */ |
| #endif |
| |
| /************************************************************************************/ |
| /* */ |
| /* 50D table for 50 / ( 1 + Gain ) */ |
| /* */ |
| /************************************************************************************/ |
| #ifdef BUILD_FLOAT |
| #define LVEQNB_100D_Neg15_dB 5.623413f |
| #define LVEQNB_100D_Neg14_dB 5.011872f |
| #define LVEQNB_100D_Neg13_dB 4.466836f |
| #define LVEQNB_100D_Neg12_dB 3.981072f |
| #define LVEQNB_100D_Neg11_dB 3.548134f |
| #define LVEQNB_100D_Neg10_dB 3.162278f |
| #define LVEQNB_100D_Neg9_dB 2.818383f |
| #define LVEQNB_100D_Neg8_dB 2.511886f |
| #define LVEQNB_100D_Neg7_dB 2.238721f |
| #define LVEQNB_100D_Neg6_dB 1.995262f |
| #define LVEQNB_100D_Neg5_dB 1.778279f |
| #define LVEQNB_100D_Neg4_dB 1.584893f |
| #define LVEQNB_100D_Neg3_dB 1.412538f |
| #define LVEQNB_100D_Neg2_dB 1.258925f |
| #define LVEQNB_100D_Neg1_dB 1.122018f |
| #define LVEQNB_100D_0_dB 1.000000f |
| #else |
| #define LVEQNB_100DSHIFT 5 /* As a power of 2 */ |
| #define LVEQNB_100D_Neg15_dB 17995 /* Floating point value 5.623413 */ |
| #define LVEQNB_100D_Neg14_dB 16038 /* Floating point value 5.011872 */ |
| #define LVEQNB_100D_Neg13_dB 14294 /* Floating point value 4.466836 */ |
| #define LVEQNB_100D_Neg12_dB 12739 /* Floating point value 3.981072 */ |
| #define LVEQNB_100D_Neg11_dB 11354 /* Floating point value 3.548134 */ |
| #define LVEQNB_100D_Neg10_dB 10119 /* Floating point value 3.162278 */ |
| #define LVEQNB_100D_Neg9_dB 9019 /* Floating point value 2.818383 */ |
| #define LVEQNB_100D_Neg8_dB 8038 /* Floating point value 2.511886 */ |
| #define LVEQNB_100D_Neg7_dB 7164 /* Floating point value 2.238721 */ |
| #define LVEQNB_100D_Neg6_dB 6385 /* Floating point value 1.995262 */ |
| #define LVEQNB_100D_Neg5_dB 5690 /* Floating point value 1.778279 */ |
| #define LVEQNB_100D_Neg4_dB 5072 /* Floating point value 1.584893 */ |
| #define LVEQNB_100D_Neg3_dB 4520 /* Floating point value 1.412538 */ |
| #define LVEQNB_100D_Neg2_dB 4029 /* Floating point value 1.258925 */ |
| #define LVEQNB_100D_Neg1_dB 3590 /* Floating point value 1.122018 */ |
| #define LVEQNB_100D_0_dB 3200 /* Floating point value 1.000000 */ |
| #endif |
| |
| #endif |