Home | History | Annotate | Download | only in drc_src
      1 /******************************************************************************
      2  *
      3  * Copyright (C) 2018 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  * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
     19 */
     20 #include <stdio.h>
     21 #include <math.h>
     22 #include "impd_type_def.h"
     23 #include "impd_drc_common.h"
     24 #include "impd_drc_extr_delta_coded_info.h"
     25 #include "impd_drc_struct.h"
     26 #include "impd_drc_interface.h"
     27 #include "impd_drc_selection_process.h"
     28 #include "impd_drc_filter_bank.h"
     29 #include "impd_drc_rom.h"
     30 
     31 const FLOAT32 samp_rate_tbl[13][12] = {
     32     {1.559742927551f, -2.926673889160f, 1.378173947334f, -1.844531774521f,
     33      0.855774641037f, 0.997517585754f, -1.995035171509f, 0.997517585754f,
     34      -1.995032072067f, 0.995038211346f},
     35     {1.557545065880f, -2.905559301376f, 1.361245870590f, -1.830842256546f,
     36      0.844074070454f, 0.997298538685f, -1.994597077370f, 0.997298538685f,
     37      -1.994593381882f, 0.994600534439f},
     38     {1.547380685806f, -2.808161973953f, 1.285161137581f, -1.767331838608f,
     39      0.791711509228f, 0.996279776096f, -1.992559552193f, 0.996279776096f,
     40      -1.992552518845f, 0.992566406727f},
     41     {1.535182833672f, -2.691803932190f, 1.198426246643f, -1.690699458122f,
     42      0.732504665852f, 0.995044350624f, -1.990088701248f, 0.995044350624f,
     43      -1.990076303482f, 0.990100920200f},
     44     {1.530909657478f, -2.651169300079f, 1.169166922569f, -1.663750052452f,
     45      0.712657511234f, 0.994607865810f, -1.989215731621f, 0.994607865810f,
     46      -1.989201068878f, 0.989230215549f},
     47     {1.511321425438f, -2.465713739395f, 1.042117238045f, -1.539572954178f,
     48      0.627297878265f, 0.992580235004f, -1.985160470009f, 0.992580235004f,
     49      -1.985132932663f, 0.985188126564f},
     50     {1.488207340240f, -2.248480796814f, 0.906192243099f, -1.391770243645f,
     51      0.537688970566f, 0.990125238895f, -1.980250477791f, 0.990125238895f,
     52      -1.980201482773f, 0.980299532413f},
     53     {1.480212569237f, -2.173723459244f, 0.862487196922f, -1.340346932411f,
     54      0.509323298931f, 0.989259064198f, -1.978518128395f, 0.989259064198f,
     55      -1.978460073471f, 0.978576123714f},
     56     {1.444234013557f, -1.839543223381f, 0.685432314873f, -1.107139229774f,
     57      0.397262454033f, 0.985242545605f, -1.970485091209f, 0.985242545605f,
     58      -1.970375299454f, 0.970594763756f},
     59     {1.403080821037f, -1.461511373520f, 0.519652962685f, -0.837045848370f,
     60      0.298268288374f, 0.980395674706f, -1.960791349411f, 0.980395674706f,
     61      -1.960597157478f, 0.960985362530f},
     62     {1.389132857323f, -1.334347724915f, 0.471855700016f, -0.744739949703f,
     63      0.271380871534f, 0.978689610958f, -1.957379221916f, 0.978689610958f,
     64      -1.957149744034f, 0.957608699799f},
     65     {1.327733159065f, -0.780098080635f, 0.309720277786f, -0.334008187056f,
     66      0.191363617778f, 0.970807731152f, -1.941615462303f, 0.970807731152f,
     67      -1.941183090210f, 0.942047894001f},
     68     {1.308971643448f, -0.612507879734f, 0.275601744652f, -0.207099482417f,
     69      0.179165065289f, 0.968287348747f, -1.936574697495f, 0.968287348747f,
     70      -1.936063885689f, 0.937085747719f}};
     71 
     72 const ia_delta_gain_code_table_struct
     73     ia_drc_gain_tbls_prof_0_1[NUM_GAIN_TBL_PROF_0_1_ENTRIES] = {
     74         {2, 0x003, -0.125f},  {2, 0x002, 0.125f},   {3, 0x001, -0.250f},
     75         {3, 0x002, 0.000f},   {4, 0x000, -2.000f},  {5, 0x002, -0.500f},
     76         {5, 0x00F, -0.375f},  {5, 0x00E, 1.000f},   {6, 0x019, -0.625f},
     77         {6, 0x018, 0.250f},   {6, 0x006, 0.375f},   {7, 0x00F, -1.000f},
     78         {7, 0x034, -0.875f},  {7, 0x036, -0.750f},  {7, 0x037, 0.500f},
     79         {8, 0x01D, 0.625f},   {9, 0x039, -1.875f},  {9, 0x0D5, -1.125f},
     80         {9, 0x0D7, 0.750f},   {9, 0x0D4, 0.875f},   {10, 0x070, -1.500f},
     81         {10, 0x1AC, -1.375f}, {10, 0x1AD, -1.250f}, {11, 0x0E2, -1.750f},
     82         {11, 0x0E3, -1.625f}
     83 
     84 };
     85 
     86 const ia_delta_gain_code_table_struct
     87     ia_drc_gain_tbls_prof_2[NUM_GAIN_TBL_PROF_2_ENTRIES] = {
     88         {3, 0x007, -0.125f},  {4, 0x00C, -0.625f},  {4, 0x009, -0.500f},
     89         {4, 0x005, -0.375f},  {4, 0x003, -0.250f},  {4, 0x001, 0.000f},
     90         {4, 0x00B, 0.125f},   {5, 0x011, -0.875f},  {5, 0x00E, -0.750f},
     91         {5, 0x005, 0.250f},   {5, 0x004, 0.375f},   {5, 0x008, 0.500f},
     92         {5, 0x000, 0.625f},   {5, 0x00D, 0.750f},   {5, 0x00F, 0.875f},
     93         {5, 0x010, 1.000f},   {5, 0x01B, 1.125f},   {6, 0x02B, -1.250f},
     94         {6, 0x028, -1.125f},  {6, 0x002, -1.000f},  {6, 0x012, 1.250f},
     95         {6, 0x018, 1.375f},   {6, 0x029, 1.500f},   {7, 0x06A, -4.000f},
     96         {7, 0x054, -1.750f},  {7, 0x068, -1.625f},  {7, 0x026, -1.500f},
     97         {7, 0x006, -1.375f},  {7, 0x032, 1.625f},   {8, 0x0D2, -2.250f},
     98         {8, 0x0AB, -2.125f},  {8, 0x0AA, -2.000f},  {8, 0x04F, -1.875f},
     99         {8, 0x04E, 1.750f},   {8, 0x0D7, 1.875f},   {8, 0x00E, 2.000f},
    100         {9, 0x1AD, -3.625f},  {9, 0x1AC, -3.375f},  {9, 0x1A6, -3.250f},
    101         {9, 0x0CD, -3.125f},  {9, 0x0CE, -2.750f},  {9, 0x1A7, -2.625f},
    102         {9, 0x01F, -2.500f},  {9, 0x0CC, -2.375f},  {10, 0x03C, -3.500f},
    103         {10, 0x19E, -3.000f}, {10, 0x19F, -2.875f}, {11, 0x07A, -3.875f},
    104         {11, 0x07B, -3.750f}};
    105 
    106 const FLOAT32 channel_weight[] = {
    107     10.0f, 6.0f,  4.5f,   3.0f,   1.5f,   0.0f,   -1.5f,  -3.0f,
    108     -4.5f, -6.0f, -10.0f, -15.0f, -20.0f, -30.0f, -40.0f, -1000.0f};
    109 
    110 const FLOAT32 dwnmix_coeff_v1[] = {
    111     10.00f,  6.00f,   4.50f,   3.00f,   1.50f,   0.00f,   -0.50f,  -1.00f,
    112     -1.50f,  -2.00f,  -2.50f,  -3.00f,  -3.50f,  -4.00f,  -4.50f,  -5.00f,
    113     -5.50f,  -6.00f,  -6.50f,  -7.00f,  -7.50f,  -8.00f,  -9.00f,  -10.00f,
    114     -11.00f, -12.00f, -15.00f, -20.00f, -25.00f, -30.00f, -40.00f, -100000.0f};
    115 
    116 const FLOAT32 eq_slope_tbl[] = {-32.0f, -24.0f, -18.0f, -12.0f, -7.0f, -4.0f,
    117                                 -2.0f,  -1.0f,  1.0f,   2.0f,   4.0f,  7.0f,
    118                                 12.0f,  18.0f,  24.0f,  32.0f};
    119 
    120 const FLOAT32 eq_gain_delta_tbl[] = {
    121     -22.0f, -16.0f, -13.0f, -11.0f, -9.0f, -7.0f, -6.0f, -5.0f,
    122     -4.0f,  -3.0f,  -2.5f,  -2.0f,  -1.5f, -1.0f, -0.5f, 0.0f,
    123     0.5f,   1.0f,   1.5f,   2.0f,   2.5f,  3.0f,  4.0f,  5.0f,
    124     6.0f,   7.0f,   9.0f,   11.0f,  13.0f, 16.0f, 22.0f, 32.0f,
    125 };
    126 
    127 const FLOAT32 zero_pole_radius_tbl[] = {
    128     0.00000000E+00f, 7.57409621E-11f, 7.47451079E-09f, 7.37623509E-08f,
    129     3.37872933E-07f, 1.05439995E-06f, 2.61370951E-06f, 5.55702854E-06f,
    130     1.05878771E-05f, 1.85806475E-05f, 3.05868707E-05f, 4.78395414E-05f,
    131     7.17558214E-05f, 1.03938342E-04f, 1.46175269E-04f, 2.00439375E-04f,
    132     2.68886099E-04f, 3.53850890E-04f, 4.57845890E-04f, 5.83555840E-04f,
    133     7.33833469E-04f, 9.11694835E-04f, 1.12031354E-03f, 1.36301492E-03f,
    134     1.64327072E-03f, 1.96469179E-03f, 2.33102194E-03f, 2.74613220E-03f,
    135     3.21401190E-03f, 3.73876374E-03f, 4.32459544E-03f, 4.97581391E-03f,
    136     5.69681637E-03f, 6.49208482E-03f, 7.36617809E-03f, 8.32372531E-03f,
    137     9.36941616E-03f, 1.05079999E-02f, 1.17442720E-02f, 1.30830696E-02f,
    138     1.45292655E-02f, 1.60877611E-02f, 1.77634824E-02f, 1.95613634E-02f,
    139     2.14863531E-02f, 2.35434026E-02f, 2.57374570E-02f, 2.80734543E-02f,
    140     3.05563174E-02f, 3.31909470E-02f, 3.59822176E-02f, 3.89349759E-02f,
    141     4.20540236E-02f, 4.53441292E-02f, 4.88100089E-02f, 5.24563305E-02f,
    142     5.62877022E-02f, 6.03086725E-02f, 6.45237267E-02f, 6.89372867E-02f,
    143     7.35536888E-02f, 7.83772022E-02f, 8.34120139E-02f, 8.86622295E-02f,
    144     9.41318572E-02f, 9.98248383E-02f, 1.05744988E-01f, 1.11896060E-01f,
    145     1.18281692E-01f, 1.24905407E-01f, 1.31770656E-01f, 1.38880774E-01f,
    146     1.46238968E-01f, 1.53848350E-01f, 1.61711931E-01f, 1.69832602E-01f,
    147     1.78213134E-01f, 1.86856180E-01f, 1.95764288E-01f, 2.04939872E-01f,
    148     2.14385241E-01f, 2.24102572E-01f, 2.34093949E-01f, 2.44361281E-01f,
    149     2.54906416E-01f, 2.65731007E-01f, 2.76836663E-01f, 2.88224846E-01f,
    150     2.99896836E-01f, 3.11853856E-01f, 3.24096978E-01f, 3.36627185E-01f,
    151     3.49445283E-01f, 3.62551987E-01f, 3.75947863E-01f, 3.89633417E-01f,
    152     4.03608948E-01f, 4.17874694E-01f, 4.32430804E-01f, 4.47277188E-01f,
    153     4.62413728E-01f, 4.77840215E-01f, 4.93556231E-01f, 5.09561300E-01f,
    154     5.25854886E-01f, 5.42436182E-01f, 5.59304416E-01f, 5.76458573E-01f,
    155     5.93897760E-01f, 6.11620665E-01f, 6.29626155E-01f, 6.47912800E-01f,
    156     6.66479111E-01f, 6.85323536E-01f, 7.04444408E-01f, 7.23839939E-01f,
    157     7.43508339E-01f, 7.63447523E-01f, 7.83655465E-01f, 8.04130018E-01f,
    158     8.24868977E-01f, 8.45869958E-01f, 8.67130578E-01f, 8.88648331E-01f,
    159     9.10420537E-01f, 9.32444632E-01f, 9.54717815E-01f, 9.77237225E-01f};
    160 
    161 const FLOAT32 zero_pole_angle_tbl[] = {
    162     0.00000000E+00f, 6.90533966E-04f, 7.31595252E-04f, 7.75098170E-04f,
    163     8.21187906E-04f, 8.70018279E-04f, 9.21752258E-04f, 9.76562500E-04f,
    164     1.03463193E-03f, 1.09615434E-03f, 1.16133507E-03f, 1.23039165E-03f,
    165     1.30355455E-03f, 1.38106793E-03f, 1.46319050E-03f, 1.55019634E-03f,
    166     1.64237581E-03f, 1.74003656E-03f, 1.84350452E-03f, 1.95312500E-03f,
    167     2.06926386E-03f, 2.19230869E-03f, 2.32267015E-03f, 2.46078330E-03f,
    168     2.60710909E-03f, 2.76213586E-03f, 2.92638101E-03f, 3.10039268E-03f,
    169     3.28475162E-03f, 3.48007312E-03f, 3.68700903E-03f, 3.90625000E-03f,
    170     4.13852771E-03f, 4.38461738E-03f, 4.64534029E-03f, 4.92156660E-03f,
    171     5.21421818E-03f, 5.52427173E-03f, 5.85276202E-03f, 6.20078536E-03f,
    172     6.56950324E-03f, 6.96014624E-03f, 7.37401807E-03f, 7.81250000E-03f,
    173     8.27705542E-03f, 8.76923475E-03f, 9.29068059E-03f, 9.84313320E-03f,
    174     1.04284364E-02f, 1.10485435E-02f, 1.17055240E-02f, 1.24015707E-02f,
    175     1.31390065E-02f, 1.39202925E-02f, 1.47480361E-02f, 1.56250000E-02f,
    176     1.65541108E-02f, 1.75384695E-02f, 1.85813612E-02f, 1.96862664E-02f,
    177     2.08568727E-02f, 2.20970869E-02f, 2.34110481E-02f, 2.48031414E-02f,
    178     2.62780130E-02f, 2.78405849E-02f, 2.94960723E-02f, 3.12500000E-02f,
    179     3.31082217E-02f, 3.50769390E-02f, 3.71627223E-02f, 3.93725328E-02f,
    180     4.17137454E-02f, 4.41941738E-02f, 4.68220962E-02f, 4.96062829E-02f,
    181     5.25560260E-02f, 5.56811699E-02f, 5.89921445E-02f, 6.25000000E-02f,
    182     6.62164434E-02f, 7.01538780E-02f, 7.43254447E-02f, 7.87450656E-02f,
    183     8.34274909E-02f, 8.83883476E-02f, 9.36441923E-02f, 9.92125657E-02f,
    184     1.05112052E-01f, 1.11362340E-01f, 1.17984289E-01f, 1.25000000E-01f,
    185     1.32432887E-01f, 1.40307756E-01f, 1.48650889E-01f, 1.57490131E-01f,
    186     1.66854982E-01f, 1.76776695E-01f, 1.87288385E-01f, 1.98425131E-01f,
    187     2.10224104E-01f, 2.22724680E-01f, 2.35968578E-01f, 2.50000000E-01f,
    188     2.64865774E-01f, 2.80615512E-01f, 2.97301779E-01f, 3.14980262E-01f,
    189     3.33709964E-01f, 3.53553391E-01f, 3.74576769E-01f, 3.96850263E-01f,
    190     4.20448208E-01f, 4.45449359E-01f, 4.71937156E-01f, 5.00000000E-01f,
    191     5.29731547E-01f, 5.61231024E-01f, 5.94603558E-01f, 6.29960525E-01f,
    192     6.67419927E-01f, 7.07106781E-01f, 7.49153538E-01f, 7.93700526E-01f,
    193     8.40896415E-01f, 8.90898718E-01f, 9.43874313E-01f, 1.00000000E+00f};
    194 
    195 const FLOAT32 shape_filt_lf_y1_bound_tbl[][3] = {
    196     {-0.994f, -0.996f, -1.0f},
    197     {-0.99f, -0.995f, -0.999f},
    198     {-0.98f, -0.989f, -0.996f},
    199     {-0.97f, -0.983f, -0.994f},
    200 };
    201 
    202 const FLOAT32 shape_filt_hf_y1_bound_tbl[][3] = {
    203     {0.15f, 0.75f, 1.05f}, {0.43f, 0.87f, 1.07f},  {0.60f, 0.92f, 1.07f},
    204     {0.80f, 1.00f, 1.06f}, {0.90f, 1.04f, 1.073f},
    205 };
    206 
    207 const FLOAT32 shape_filt_lf_gain_offset_tbl[][3] = {
    208     {3.0f, 2.0f, 1.2f},
    209     {3.0f, 2.0f, 1.5f},
    210     {3.0f, 2.0f, 2.0f},
    211     {3.0f, 2.0f, 2.0f},
    212 };
    213 
    214 const FLOAT32 shape_filt_hf_gain_offset_tbl[][3] = {
    215     {4.5f, 6.0f, 3.5f}, {3.7f, 4.0f, 2.7f},  {3.0f, 3.5f, 2.0f},
    216     {2.0f, 2.5f, 1.5f}, {1.5f, 2.0f, 1.31f},
    217 };
    218 
    219 const FLOAT32 shape_filt_lf_radius_tbl[] = {
    220     0.988f, 0.98f, 0.96f, 0.94f,
    221 };
    222 
    223 const FLOAT32 shape_filt_hf_radius_tbl[] = {0.45f, 0.40f, 0.35f, 0.30f, 0.30f};
    224 
    225 const FLOAT32 shape_filt_cutoff_freq_norm_hf_tbl[] = {0.15f, 0.20f, 0.25f,
    226                                                       0.35f, 0.45f};
    227 
    228 const ia_cicp_sigmoid_characteristic_param_struct
    229     pstr_cicp_sigmoid_characteristic_param[] = {
    230         {0.0f, 9.0f, 12.0f}, {0.2f, 9.0f, 12.0f}, {0.4f, 9.0f, 12.0f},
    231         {0.6f, 9.0f, 12.0f}, {0.8f, 6.0f, 8.0f},  {1.0f, 5.0f, 6.0f}};
    232 
    233 const ia_slope_code_table_struct
    234     slope_code_tbl_entries_by_size[NUM_SLOPE_TBL_ENTRIES] = {
    235         {1, 0x001, 0.0f, 7},     {2, 0x000, -0.005f, 6},
    236         {4, 0x007, 0.005f, 8},   {5, 0x00A, -0.1953f, 3},
    237         {5, 0x009, -0.0781f, 4}, {5, 0x00D, -0.0312f, 5},
    238         {5, 0x00B, 0.0312f, 9},  {6, 0x018, -3.0518f, 0},
    239         {6, 0x011, 0.0781f, 10}, {7, 0x032, -0.4883f, 2},
    240         {7, 0x020, 1.2207f, 13}, {7, 0x033, 3.0518f, 14},
    241         {8, 0x042, -1.2207f, 1}, {9, 0x087, 0.1953f, 11},
    242         {9, 0x086, 0.4883f, 12},
    243 };
    244 
    245 const FLOAT32 dwnmix_coeff[] = {0.0f,  -0.5f, -1.0f, -1.5f,   -2.0f, -2.5f,
    246                                 -3.0f, -3.5f, -4.0f, -4.5f,   -5.0f, -5.5f,
    247                                 -6.0f, -7.5f, -9.0f, -1000.0f};
    248 
    249 const FLOAT32 dwnmix_coeff_lfe[] = {
    250     10.0f, 6.0f,  4.5f,   3.0f,   1.5f,   0.0f,   -1.5f,  -3.0f,
    251     -4.5f, -6.0f, -10.0f, -15.0f, -20.0f, -30.0f, -40.0f, -1000.0f};
    252 
    253 WORD32 drc_characteristic_order_default[][3] = {
    254     {1, 2, -1}, {2, 3, 1},   {3, 4, 2},  {4, 5, 3},   {5, 6, 4},  {6, 5, -1},
    255     {7, 9, -1}, {8, 10, -1}, {9, 7, -1}, {10, 8, -1}, {11, 10, 9}};
    256 
    257 WORD32 measurement_system_default_tbl[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
    258 WORD32 measurement_system_bs1770_3_tbl[] = {0, 0, 8, 0, 1, 3, 0, 5, 6, 7, 4, 2};
    259 WORD32 measurement_system_user_tbl[] = {0, 0, 1, 0, 8, 5, 0, 2, 3, 4, 6, 7};
    260 WORD32 measurement_system_expert_tbl[] = {0, 0, 3, 0, 1, 8, 0, 4, 5, 6, 7, 2};
    261 WORD32 measurement_system_rms_a_tbl[] = {0, 0, 5, 0, 1, 3, 0, 8, 6, 7, 4, 2};
    262 WORD32 measurement_system_rms_b_tbl[] = {0, 0, 5, 0, 1, 3, 0, 6, 8, 7, 4, 2};
    263 WORD32 measurement_system_rms_c_tbl[] = {0, 0, 5, 0, 1, 3, 0, 6, 7, 8, 4, 2};
    264 WORD32 measurement_system_rms_d_tbl[] = {0, 0, 3, 0, 1, 7, 0, 4, 5, 6, 8, 2};
    265 WORD32 measurement_system_rms_e_tbl[] = {0, 0, 1, 0, 7, 5, 0, 2, 3, 4, 6, 8};
    266 
    267 WORD32 measurement_method_prog_loudness_tbl[] = {0, 0, 1, 0, 0, 0,
    268                                                  0, 2, 3, 4, 0, 0};
    269 WORD32 measurement_method_peak_loudness_tbl[] = {0, 7, 0, 0, 0, 0,
    270                                                  6, 5, 4, 3, 2, 1};
    271 
    272 const ia_loc_sys_interface_struct loc_sys_interface[] = {
    273     {0, 1, {0, 0, 0}, 0, 0}, {0, 1, {2, 0, 0}, 0, 0},
    274 };
    275 
    276 const ia_loc_loudness_norm_ctrl_interface_struct
    277     loc_loudness_norm_ctrl_interface[] = {
    278         {0, 0.0f}, {0, 0.0f},
    279 };
    280 
    281 const ia_loc_loudness_norm_param_interface_struct
    282     loc_loudness_norm_param_interface[] = {
    283 
    284         {0, 0, LOUDNESS_DEVIATION_MAX_DEFAULT,
    285          USER_METHOD_DEFINITION_PROGRAM_LOUDNESS,
    286          USER_MEASUREMENT_SYSTEM_BS_1770_3, USER_LOUDNESS_PREPROCESSING_OFF, 20,
    287          LOUDNESS_NORMALIZATION_GAIN_MAX_DEFAULT, 0.0f, 0.0f},
    288         {0, 0, LOUDNESS_DEVIATION_MAX_DEFAULT,
    289          USER_METHOD_DEFINITION_PROGRAM_LOUDNESS,
    290          USER_MEASUREMENT_SYSTEM_BS_1770_3, USER_LOUDNESS_PREPROCESSING_OFF, 20,
    291          LOUDNESS_NORMALIZATION_GAIN_MAX_DEFAULT, 0.0f, 0.0f},
    292 
    293 };
    294 
    295 const ia_loc_drc_interface_struct loc_dyn_range_ctrl_interface[] = {
    296 
    297     {1,
    298      3,
    299      {MATCH_EFFECT_TYPE, MATCH_DYNAMIC_RANGE, MATCH_DRC_CHARACTERISTIC},
    300      SHORT_TERM_LOUDNESS_TO_AVG,
    301      1,
    302      5.0f,
    303      3.0f,
    304      10.0f,
    305      3},
    306     {1,
    307      3,
    308      {MATCH_EFFECT_TYPE, MATCH_DYNAMIC_RANGE, MATCH_DRC_CHARACTERISTIC},
    309      TOP_OF_LOUDNESS_RANGE_TO_AVG,
    310      0,
    311      5.0f,
    312      3.0f,
    313      10.0f,
    314      3},
    315 
    316 };
    317 
    318 const ia_loc_requested_drc_effect_struct loc_requested_drc_effect_type_str[] = {
    319 
    320     {1,
    321      1,
    322      {EFFECT_TYPE_REQUESTED_NIGHT, EFFECT_TYPE_REQUESTED_GENERAL_COMPR,
    323       EFFECT_TYPE_REQUESTED_ARTISTIC, EFFECT_TYPE_REQUESTED_LIMITED,
    324       EFFECT_TYPE_REQUESTED_DIALOG}},
    325     {4,
    326      1,
    327      {EFFECT_TYPE_REQUESTED_LOWLEVEL, EFFECT_TYPE_REQUESTED_NIGHT,
    328       EFFECT_TYPE_REQUESTED_LIMITED, EFFECT_TYPE_REQUESTED_ARTISTIC,
    329       EFFECT_TYPE_REQUESTED_DIALOG}},
    330 
    331 };
    332 
    333 const ia_loc_drc_parameter_interface_struct loc_drc_parameter_interface[] = {
    334 
    335     {1.0f, 1.0f, 0}, {1.0f, 1.0f, 0},
    336 };
    337 
    338 FLOAT32 f_bands_nrm_QMF71[71] = {
    339     0.004583300000000f, 0.000833330000000f, 0.002083300000000f,
    340     0.005875000000000f, 0.009791700000000f, 0.014292000000000f,
    341     0.019792000000000f, 0.027000000000000f, 0.035417000000000f,
    342     0.042625000000000f, 0.056750000000000f, 0.072375000000000f,
    343     0.088000000000000f, 0.103620000000000f, 0.119250000000000f,
    344     0.134870000000000f, 0.150500000000000f, 0.166120000000000f,
    345     0.181750000000000f, 0.197370000000000f, 0.213000000000000f,
    346     0.228620000000000f, 0.244250000000000f, 0.259880000000000f,
    347     0.275500000000000f, 0.291130000000000f, 0.306750000000000f,
    348     0.322380000000000f, 0.338000000000000f, 0.353630000000000f,
    349     0.369250000000000f, 0.384880000000000f, 0.400500000000000f,
    350     0.416130000000000f, 0.431750000000000f, 0.447380000000000f,
    351     0.463000000000000f, 0.478630000000000f, 0.494250000000000f,
    352     0.509870000000000f, 0.525500000000000f, 0.541120000000000f,
    353     0.556750000000000f, 0.572370000000000f, 0.588000000000000f,
    354     0.603620000000000f, 0.619250000000000f, 0.634870000000000f,
    355     0.650500000000000f, 0.666120000000000f, 0.681750000000000f,
    356     0.697370000000000f, 0.713000000000000f, 0.728620000000000f,
    357     0.744250000000000f, 0.759870000000000f, 0.775500000000000f,
    358     0.791120000000000f, 0.806750000000000f, 0.822370000000000f,
    359     0.838000000000000f, 0.853620000000000f, 0.869250000000000f,
    360     0.884870000000000f, 0.900500000000000f, 0.916120000000000f,
    361     0.931750000000000f, 0.947370000000000f, 0.963000000000000f,
    362     0.974540000000000f, 0.999040000000000f};
    363 
    364 FLOAT32 f_bands_nrm_QMF64[64] = {
    365     0.0078125000000000f, 0.0234380000000000f, 0.0390620000000000f,
    366     0.0546880000000000f, 0.0703120000000000f, 0.0859380000000000f,
    367     0.1015600000000000f, 0.1171900000000000f, 0.1328100000000000f,
    368     0.1484400000000000f, 0.1640600000000000f, 0.1796900000000000f,
    369     0.1953100000000000f, 0.2109400000000000f, 0.2265600000000000f,
    370     0.2421900000000000f, 0.2578100000000000f, 0.2734400000000000f,
    371     0.2890600000000000f, 0.3046900000000000f, 0.3203100000000000f,
    372     0.3359400000000000f, 0.3515600000000000f, 0.3671900000000000f,
    373     0.3828100000000000f, 0.3984400000000000f, 0.4140600000000000f,
    374     0.4296900000000000f, 0.4453100000000000f, 0.4609400000000000f,
    375     0.4765600000000000f, 0.4921900000000000f, 0.5078100000000000f,
    376     0.5234400000000000f, 0.5390600000000000f, 0.5546900000000000f,
    377     0.5703100000000000f, 0.5859400000000000f, 0.6015600000000000f,
    378     0.6171900000000000f, 0.6328100000000000f, 0.6484400000000000f,
    379     0.6640600000000000f, 0.6796900000000000f, 0.6953100000000000f,
    380     0.7109400000000000f, 0.7265600000000000f, 0.7421900000000000f,
    381     0.7578100000000000f, 0.7734400000000000f, 0.7890600000000000f,
    382     0.8046900000000000f, 0.8203100000000000f, 0.8359400000000000f,
    383     0.8515600000000000f, 0.8671900000000000f, 0.8828100000000000f,
    384     0.8984400000000000f, 0.9140600000000000f, 0.9296900000000000f,
    385     0.9453100000000000f, 0.9609400000000000f, 0.9765600000000000f,
    386     0.9921900000000000f};
    387 
    388 FLOAT32 f_bands_nrm_STFT256[257] = {
    389     0.000000000000000f, 0.003906250000000f, 0.007812500000000f,
    390     0.011718750000000f, 0.015625000000000f, 0.019531250000000f,
    391     0.023437500000000f, 0.027343750000000f, 0.031250000000000f,
    392     0.035156250000000f, 0.039062500000000f, 0.042968750000000f,
    393     0.046875000000000f, 0.050781250000000f, 0.054687500000000f,
    394     0.058593750000000f, 0.062500000000000f, 0.066406250000000f,
    395     0.070312500000000f, 0.074218750000000f, 0.078125000000000f,
    396     0.082031250000000f, 0.085937500000000f, 0.089843750000000f,
    397     0.093750000000000f, 0.097656250000000f, 0.101562500000000f,
    398     0.105468750000000f, 0.109375000000000f, 0.113281250000000f,
    399     0.117187500000000f, 0.121093750000000f, 0.125000000000000f,
    400     0.128906250000000f, 0.132812500000000f, 0.136718750000000f,
    401     0.140625000000000f, 0.144531250000000f, 0.148437500000000f,
    402     0.152343750000000f, 0.156250000000000f, 0.160156250000000f,
    403     0.164062500000000f, 0.167968750000000f, 0.171875000000000f,
    404     0.175781250000000f, 0.179687500000000f, 0.183593750000000f,
    405     0.187500000000000f, 0.191406250000000f, 0.195312500000000f,
    406     0.199218750000000f, 0.203125000000000f, 0.207031250000000f,
    407     0.210937500000000f, 0.214843750000000f, 0.218750000000000f,
    408     0.222656250000000f, 0.226562500000000f, 0.230468750000000f,
    409     0.234375000000000f, 0.238281250000000f, 0.242187500000000f,
    410     0.246093750000000f, 0.250000000000000f, 0.253906250000000f,
    411     0.257812500000000f, 0.261718750000000f, 0.265625000000000f,
    412     0.269531250000000f, 0.273437500000000f, 0.277343750000000f,
    413     0.281250000000000f, 0.285156250000000f, 0.289062500000000f,
    414     0.292968750000000f, 0.296875000000000f, 0.300781250000000f,
    415     0.304687500000000f, 0.308593750000000f, 0.312500000000000f,
    416     0.316406250000000f, 0.320312500000000f, 0.324218750000000f,
    417     0.328125000000000f, 0.332031250000000f, 0.335937500000000f,
    418     0.339843750000000f, 0.343750000000000f, 0.347656250000000f,
    419     0.351562500000000f, 0.355468750000000f, 0.359375000000000f,
    420     0.363281250000000f, 0.367187500000000f, 0.371093750000000f,
    421     0.375000000000000f, 0.378906250000000f, 0.382812500000000f,
    422     0.386718750000000f, 0.390625000000000f, 0.394531250000000f,
    423     0.398437500000000f, 0.402343750000000f, 0.406250000000000f,
    424     0.410156250000000f, 0.414062500000000f, 0.417968750000000f,
    425     0.421875000000000f, 0.425781250000000f, 0.429687500000000f,
    426     0.433593750000000f, 0.437500000000000f, 0.441406250000000f,
    427     0.445312500000000f, 0.449218750000000f, 0.453125000000000f,
    428     0.457031250000000f, 0.460937500000000f, 0.464843750000000f,
    429     0.468750000000000f, 0.472656250000000f, 0.476562500000000f,
    430     0.480468750000000f, 0.484375000000000f, 0.488281250000000f,
    431     0.492187500000000f, 0.496093750000000f, 0.500000000000000f,
    432     0.503906250000000f, 0.507812500000000f, 0.511718750000000f,
    433     0.515625000000000f, 0.519531250000000f, 0.523437500000000f,
    434     0.527343750000000f, 0.531250000000000f, 0.535156250000000f,
    435     0.539062500000000f, 0.542968750000000f, 0.546875000000000f,
    436     0.550781250000000f, 0.554687500000000f, 0.558593750000000f,
    437     0.562500000000000f, 0.566406250000000f, 0.570312500000000f,
    438     0.574218750000000f, 0.578125000000000f, 0.582031250000000f,
    439     0.585937500000000f, 0.589843750000000f, 0.593750000000000f,
    440     0.597656250000000f, 0.601562500000000f, 0.605468750000000f,
    441     0.609375000000000f, 0.613281250000000f, 0.617187500000000f,
    442     0.621093750000000f, 0.625000000000000f, 0.628906250000000f,
    443     0.632812500000000f, 0.636718750000000f, 0.640625000000000f,
    444     0.644531250000000f, 0.648437500000000f, 0.652343750000000f,
    445     0.656250000000000f, 0.660156250000000f, 0.664062500000000f,
    446     0.667968750000000f, 0.671875000000000f, 0.675781250000000f,
    447     0.679687500000000f, 0.683593750000000f, 0.687500000000000f,
    448     0.691406250000000f, 0.695312500000000f, 0.699218750000000f,
    449     0.703125000000000f, 0.707031250000000f, 0.710937500000000f,
    450     0.714843750000000f, 0.718750000000000f, 0.722656250000000f,
    451     0.726562500000000f, 0.730468750000000f, 0.734375000000000f,
    452     0.738281250000000f, 0.742187500000000f, 0.746093750000000f,
    453     0.750000000000000f, 0.753906250000000f, 0.757812500000000f,
    454     0.761718750000000f, 0.765625000000000f, 0.769531250000000f,
    455     0.773437500000000f, 0.777343750000000f, 0.781250000000000f,
    456     0.785156250000000f, 0.789062500000000f, 0.792968750000000f,
    457     0.796875000000000f, 0.800781250000000f, 0.804687500000000f,
    458     0.808593750000000f, 0.812500000000000f, 0.816406250000000f,
    459     0.820312500000000f, 0.824218750000000f, 0.828125000000000f,
    460     0.832031250000000f, 0.835937500000000f, 0.839843750000000f,
    461     0.843750000000000f, 0.847656250000000f, 0.851562500000000f,
    462     0.855468750000000f, 0.859375000000000f, 0.863281250000000f,
    463     0.867187500000000f, 0.871093750000000f, 0.875000000000000f,
    464     0.878906250000000f, 0.882812500000000f, 0.886718750000000f,
    465     0.890625000000000f, 0.894531250000000f, 0.898437500000000f,
    466     0.902343750000000f, 0.906250000000000f, 0.910156250000000f,
    467     0.914062500000000f, 0.917968750000000f, 0.921875000000000f,
    468     0.925781250000000f, 0.929687500000000f, 0.933593750000000f,
    469     0.937500000000000f, 0.941406250000000f, 0.945312500000000f,
    470     0.949218750000000f, 0.953125000000000f, 0.957031250000000f,
    471     0.960937500000000f, 0.964843750000000f, 0.968750000000000f,
    472     0.972656250000000f, 0.976562500000000f, 0.980468750000000f,
    473     0.984375000000000f, 0.988281250000000f, 0.992187500000000f,
    474     0.996093750000000f, 1.000000000000000f};
    475 
    476 FLOAT64 qmf_filter_coeff[640] = {0,
    477                                  -0.00055252865047,
    478                                  -0.00056176925738,
    479                                  -0.00049475180896,
    480                                  -0.00048752279712,
    481                                  -0.00048937912498,
    482                                  -0.00050407143497,
    483                                  -0.00052265642972,
    484                                  -0.00054665656337,
    485                                  -0.00056778025613,
    486                                  -0.00058709304852,
    487                                  -0.00061327473938,
    488                                  -0.00063124935319,
    489                                  -0.00065403333621,
    490                                  -0.00067776907764,
    491                                  -0.00069416146273,
    492                                  -0.00071577364744,
    493                                  -0.00072550431222,
    494                                  -0.00074409418541,
    495                                  -0.00074905980532,
    496                                  -0.00076813719270,
    497                                  -0.00077248485949,
    498                                  -0.00078343322877,
    499                                  -0.00077798694927,
    500                                  -0.00078036647100,
    501                                  -0.00078014496257,
    502                                  -0.00077579773310,
    503                                  -0.00076307935757,
    504                                  -0.00075300014201,
    505                                  -0.00073193571525,
    506                                  -0.00072153919876,
    507                                  -0.00069179375372,
    508                                  -0.00066504150893,
    509                                  -0.00063415949025,
    510                                  -0.00059461189330,
    511                                  -0.00055645763906,
    512                                  -0.00051455722108,
    513                                  -0.00046063254803,
    514                                  -0.00040951214522,
    515                                  -0.00035011758756,
    516                                  -0.00028969811748,
    517                                  -0.00020983373440,
    518                                  -0.00014463809349,
    519                                  -0.00006173344072,
    520                                  0.00001349497418,
    521                                  0.00010943831274,
    522                                  0.00020430170688,
    523                                  0.00029495311041,
    524                                  0.00040265402160,
    525                                  0.00051073884952,
    526                                  0.00062393761391,
    527                                  0.00074580258865,
    528                                  0.00086084433262,
    529                                  0.00098859883015,
    530                                  0.00112501551307,
    531                                  0.00125778846475,
    532                                  0.00139024948272,
    533                                  0.00154432198471,
    534                                  0.00168680832531,
    535                                  0.00183482654224,
    536                                  0.00198411407369,
    537                                  0.00214615835557,
    538                                  0.00230172547746,
    539                                  0.00246256169126,
    540                                  0.00262017586902,
    541                                  0.00278704643465,
    542                                  0.00294694477165,
    543                                  0.00311254206525,
    544                                  0.00327396134847,
    545                                  0.00344188741828,
    546                                  0.00360082681231,
    547                                  0.00376039229104,
    548                                  0.00392074323703,
    549                                  0.00408197531935,
    550                                  0.00422642692270,
    551                                  0.00437307196781,
    552                                  0.00452098527825,
    553                                  0.00466064606118,
    554                                  0.00479325608498,
    555                                  0.00491376035745,
    556                                  0.00503930226013,
    557                                  0.00514073539032,
    558                                  0.00524611661324,
    559                                  0.00534716811982,
    560                                  0.00541967759307,
    561                                  0.00548760401507,
    562                                  0.00554757145088,
    563                                  0.00559380230045,
    564                                  0.00562206432097,
    565                                  0.00564551969164,
    566                                  0.00563891995151,
    567                                  0.00562661141932,
    568                                  0.00559171286630,
    569                                  0.00554043639400,
    570                                  0.00547537830770,
    571                                  0.00538389758970,
    572                                  0.00527157587272,
    573                                  0.00513822754514,
    574                                  0.00498396877629,
    575                                  0.00481094690600,
    576                                  0.00460395301471,
    577                                  0.00438018617447,
    578                                  0.00412516423270,
    579                                  0.00384564081246,
    580                                  0.00354012465507,
    581                                  0.00320918858098,
    582                                  0.00284467578623,
    583                                  0.00245085400321,
    584                                  0.00202741761850,
    585                                  0.00157846825768,
    586                                  0.00109023290512,
    587                                  0.00058322642480,
    588                                  0.00002760451905,
    589                                  -0.00054642808664,
    590                                  -0.00115681355227,
    591                                  -0.00180394725893,
    592                                  -0.00248267236449,
    593                                  -0.00319337783900,
    594                                  -0.00394011240522,
    595                                  -0.00472225962400,
    596                                  -0.00553372111088,
    597                                  -0.00637922932685,
    598                                  -0.00726158168517,
    599                                  -0.00817982333726,
    600                                  -0.00913253296085,
    601                                  -0.01011502154986,
    602                                  -0.01113155480321,
    603                                  -0.01218499959508,
    604                                  0.01327182200351,
    605                                  0.01439046660792,
    606                                  0.01554055533423,
    607                                  0.01673247129989,
    608                                  0.01794333813443,
    609                                  0.01918724313698,
    610                                  0.02045317933555,
    611                                  0.02174675502535,
    612                                  0.02306801692862,
    613                                  0.02441609920285,
    614                                  0.02578758475467,
    615                                  0.02718594296329,
    616                                  0.02860721736385,
    617                                  0.03005026574279,
    618                                  0.03150176087389,
    619                                  0.03297540810337,
    620                                  0.03446209487686,
    621                                  0.03596975605542,
    622                                  0.03748128504252,
    623                                  0.03900536794745,
    624                                  0.04053491705584,
    625                                  0.04206490946367,
    626                                  0.04360975421304,
    627                                  0.04514884056413,
    628                                  0.04668430272642,
    629                                  0.04821657200672,
    630                                  0.04973857556014,
    631                                  0.05125561555216,
    632                                  0.05276307465207,
    633                                  0.05424527683589,
    634                                  0.05571736482138,
    635                                  0.05716164501299,
    636                                  0.05859156836260,
    637                                  0.05998374801761,
    638                                  0.06134551717207,
    639                                  0.06268578081172,
    640                                  0.06397158980681,
    641                                  0.06522471064380,
    642                                  0.06643675122104,
    643                                  0.06760759851228,
    644                                  0.06870438283512,
    645                                  0.06976302447127,
    646                                  0.07076287107266,
    647                                  0.07170026731102,
    648                                  0.07256825833083,
    649                                  0.07336202550803,
    650                                  0.07410036424342,
    651                                  0.07474525581194,
    652                                  0.07531373362019,
    653                                  0.07580083586584,
    654                                  0.07619924793396,
    655                                  0.07649921704119,
    656                                  0.07670934904245,
    657                                  0.07681739756964,
    658                                  0.07682300113923,
    659                                  0.07672049241746,
    660                                  0.07650507183194,
    661                                  0.07617483218536,
    662                                  0.07573057565061,
    663                                  0.07515762552870,
    664                                  0.07446643947564,
    665                                  0.07364060057620,
    666                                  0.07267746427299,
    667                                  0.07158263647903,
    668                                  0.07035330735093,
    669                                  0.06896640131951,
    670                                  0.06745250215166,
    671                                  0.06576906686508,
    672                                  0.06394448059633,
    673                                  0.06196027790387,
    674                                  0.05981665708090,
    675                                  0.05751526919867,
    676                                  0.05504600343009,
    677                                  0.05240938217366,
    678                                  0.04959786763445,
    679                                  0.04663033051701,
    680                                  0.04347687821958,
    681                                  0.04014582784127,
    682                                  0.03664181168133,
    683                                  0.03295839306691,
    684                                  0.02908240060125,
    685                                  0.02503075618909,
    686                                  0.02079970728622,
    687                                  0.01637012582228,
    688                                  0.01176238327857,
    689                                  0.00696368621617,
    690                                  0.00197656014503,
    691                                  -0.00320868968304,
    692                                  -0.00857117491366,
    693                                  -0.01412888273558,
    694                                  -0.01988341292573,
    695                                  -0.02582272888064,
    696                                  -0.03195312745332,
    697                                  -0.03827765720822,
    698                                  -0.04478068215856,
    699                                  -0.05148041767934,
    700                                  -0.05837053268336,
    701                                  -0.06544098531359,
    702                                  -0.07269433008129,
    703                                  -0.08013729344279,
    704                                  -0.08775475365593,
    705                                  -0.09555333528914,
    706                                  -0.10353295311463,
    707                                  -0.11168269317730,
    708                                  -0.12000779846800,
    709                                  -0.12850028503878,
    710                                  -0.13715517611934,
    711                                  -0.14597664911870,
    712                                  -0.15496070710605,
    713                                  -0.16409588556669,
    714                                  -0.17338081721706,
    715                                  -0.18281725485142,
    716                                  -0.19239667457267,
    717                                  -0.20212501768103,
    718                                  -0.21197358538056,
    719                                  -0.22196526964149,
    720                                  -0.23206908706791,
    721                                  -0.24230168845974,
    722                                  -0.25264803095722,
    723                                  -0.26310532994603,
    724                                  -0.27366340405625,
    725                                  -0.28432141891085,
    726                                  -0.29507167170646,
    727                                  -0.30590985751916,
    728                                  -0.31682789136456,
    729                                  -0.32781137272105,
    730                                  -0.33887226938665,
    731                                  -0.34999141229310,
    732                                  0.36115899031355,
    733                                  0.37237955463061,
    734                                  0.38363500139043,
    735                                  0.39492117615675,
    736                                  0.40623176767625,
    737                                  0.41756968968409,
    738                                  0.42891199207373,
    739                                  0.44025537543665,
    740                                  0.45159965356824,
    741                                  0.46293080852757,
    742                                  0.47424532146115,
    743                                  0.48552530911099,
    744                                  0.49677082545707,
    745                                  0.50798175000434,
    746                                  0.51912349702391,
    747                                  0.53022408956855,
    748                                  0.54125534487322,
    749                                  0.55220512585061,
    750                                  0.56307891401370,
    751                                  0.57385241316923,
    752                                  0.58454032354679,
    753                                  0.59511230862496,
    754                                  0.60557835389180,
    755                                  0.61591099320291,
    756                                  0.62612426956055,
    757                                  0.63619801077286,
    758                                  0.64612696959461,
    759                                  0.65590163024671,
    760                                  0.66551398801627,
    761                                  0.67496631901712,
    762                                  0.68423532934598,
    763                                  0.69332823767032,
    764                                  0.70223887193539,
    765                                  0.71094104263095,
    766                                  0.71944626349561,
    767                                  0.72774489002994,
    768                                  0.73582117582769,
    769                                  0.74368278636488,
    770                                  0.75131374561237,
    771                                  0.75870807608242,
    772                                  0.76586748650939,
    773                                  0.77277808813327,
    774                                  0.77942875190216,
    775                                  0.78583531203920,
    776                                  0.79197358416424,
    777                                  0.79784664137700,
    778                                  0.80344857518505,
    779                                  0.80876950044491,
    780                                  0.81381912706217,
    781                                  0.81857760046468,
    782                                  0.82304198905409,
    783                                  0.82722753473360,
    784                                  0.83110384571520,
    785                                  0.83469373618402,
    786                                  0.83797173378865,
    787                                  0.84095413924722,
    788                                  0.84362382812005,
    789                                  0.84598184698206,
    790                                  0.84803157770763,
    791                                  0.84978051984268,
    792                                  0.85119715249343,
    793                                  0.85230470352147,
    794                                  0.85310209497017,
    795                                  0.85357205739107,
    796                                  0.85373856005937,
    797                                  0.85357205739107,
    798                                  0.85310209497017,
    799                                  0.85230470352147,
    800                                  0.85119715249343,
    801                                  0.84978051984268,
    802                                  0.84803157770763,
    803                                  0.84598184698206,
    804                                  0.84362382812005,
    805                                  0.84095413924722,
    806                                  0.83797173378865,
    807                                  0.83469373618402,
    808                                  0.83110384571520,
    809                                  0.82722753473360,
    810                                  0.82304198905409,
    811                                  0.81857760046468,
    812                                  0.81381912706217,
    813                                  0.80876950044491,
    814                                  0.80344857518505,
    815                                  0.79784664137700,
    816                                  0.79197358416424,
    817                                  0.78583531203920,
    818                                  0.77942875190216,
    819                                  0.77277808813327,
    820                                  0.76586748650939,
    821                                  0.75870807608242,
    822                                  0.75131374561237,
    823                                  0.74368278636488,
    824                                  0.73582117582769,
    825                                  0.72774489002994,
    826                                  0.71944626349561,
    827                                  0.71094104263095,
    828                                  0.70223887193539,
    829                                  0.69332823767032,
    830                                  0.68423532934598,
    831                                  0.67496631901712,
    832                                  0.66551398801627,
    833                                  0.65590163024671,
    834                                  0.64612696959461,
    835                                  0.63619801077286,
    836                                  0.62612426956055,
    837                                  0.61591099320291,
    838                                  0.60557835389180,
    839                                  0.59511230862496,
    840                                  0.58454032354679,
    841                                  0.57385241316923,
    842                                  0.56307891401370,
    843                                  0.55220512585061,
    844                                  0.54125534487322,
    845                                  0.53022408956855,
    846                                  0.51912349702391,
    847                                  0.50798175000434,
    848                                  0.49677082545707,
    849                                  0.48552530911099,
    850                                  0.47424532146115,
    851                                  0.46293080852757,
    852                                  0.45159965356824,
    853                                  0.44025537543665,
    854                                  0.42891199207373,
    855                                  0.41756968968409,
    856                                  0.40623176767625,
    857                                  0.39492117615675,
    858                                  0.38363500139043,
    859                                  0.37237955463061,
    860                                  -0.36115899031355,
    861                                  -0.34999141229310,
    862                                  -0.33887226938665,
    863                                  -0.32781137272105,
    864                                  -0.31682789136456,
    865                                  -0.30590985751916,
    866                                  -0.29507167170646,
    867                                  -0.28432141891085,
    868                                  -0.27366340405625,
    869                                  -0.26310532994603,
    870                                  -0.25264803095722,
    871                                  -0.24230168845974,
    872                                  -0.23206908706791,
    873                                  -0.22196526964149,
    874                                  -0.21197358538056,
    875                                  -0.20212501768103,
    876                                  -0.19239667457267,
    877                                  -0.18281725485142,
    878                                  -0.17338081721706,
    879                                  -0.16409588556669,
    880                                  -0.15496070710605,
    881                                  -0.14597664911870,
    882                                  -0.13715517611934,
    883                                  -0.12850028503878,
    884                                  -0.12000779846800,
    885                                  -0.11168269317730,
    886                                  -0.10353295311463,
    887                                  -0.09555333528914,
    888                                  -0.08775475365593,
    889                                  -0.08013729344279,
    890                                  -0.07269433008129,
    891                                  -0.06544098531359,
    892                                  -0.05837053268336,
    893                                  -0.05148041767934,
    894                                  -0.04478068215856,
    895                                  -0.03827765720822,
    896                                  -0.03195312745332,
    897                                  -0.02582272888064,
    898                                  -0.01988341292573,
    899                                  -0.01412888273558,
    900                                  -0.00857117491366,
    901                                  -0.00320868968304,
    902                                  0.00197656014503,
    903                                  0.00696368621617,
    904                                  0.01176238327857,
    905                                  0.01637012582228,
    906                                  0.02079970728622,
    907                                  0.02503075618909,
    908                                  0.02908240060125,
    909                                  0.03295839306691,
    910                                  0.03664181168133,
    911                                  0.04014582784127,
    912                                  0.04347687821958,
    913                                  0.04663033051701,
    914                                  0.04959786763445,
    915                                  0.05240938217366,
    916                                  0.05504600343009,
    917                                  0.05751526919867,
    918                                  0.05981665708090,
    919                                  0.06196027790387,
    920                                  0.06394448059633,
    921                                  0.06576906686508,
    922                                  0.06745250215166,
    923                                  0.06896640131951,
    924                                  0.07035330735093,
    925                                  0.07158263647903,
    926                                  0.07267746427299,
    927                                  0.07364060057620,
    928                                  0.07446643947564,
    929                                  0.07515762552870,
    930                                  0.07573057565061,
    931                                  0.07617483218536,
    932                                  0.07650507183194,
    933                                  0.07672049241746,
    934                                  0.07682300113923,
    935                                  0.07681739756964,
    936                                  0.07670934904245,
    937                                  0.07649921704119,
    938                                  0.07619924793396,
    939                                  0.07580083586584,
    940                                  0.07531373362019,
    941                                  0.07474525581194,
    942                                  0.07410036424342,
    943                                  0.07336202550803,
    944                                  0.07256825833083,
    945                                  0.07170026731102,
    946                                  0.07076287107266,
    947                                  0.06976302447127,
    948                                  0.06870438283512,
    949                                  0.06760759851228,
    950                                  0.06643675122104,
    951                                  0.06522471064380,
    952                                  0.06397158980681,
    953                                  0.06268578081172,
    954                                  0.06134551717207,
    955                                  0.05998374801761,
    956                                  0.05859156836260,
    957                                  0.05716164501299,
    958                                  0.05571736482138,
    959                                  0.05424527683589,
    960                                  0.05276307465207,
    961                                  0.05125561555216,
    962                                  0.04973857556014,
    963                                  0.04821657200672,
    964                                  0.04668430272642,
    965                                  0.04514884056413,
    966                                  0.04360975421304,
    967                                  0.04206490946367,
    968                                  0.04053491705584,
    969                                  0.03900536794745,
    970                                  0.03748128504252,
    971                                  0.03596975605542,
    972                                  0.03446209487686,
    973                                  0.03297540810337,
    974                                  0.03150176087389,
    975                                  0.03005026574279,
    976                                  0.02860721736385,
    977                                  0.02718594296329,
    978                                  0.02578758475467,
    979                                  0.02441609920285,
    980                                  0.02306801692862,
    981                                  0.02174675502535,
    982                                  0.02045317933555,
    983                                  0.01918724313698,
    984                                  0.01794333813443,
    985                                  0.01673247129989,
    986                                  0.01554055533423,
    987                                  0.01439046660792,
    988                                  -0.01327182200351,
    989                                  -0.01218499959508,
    990                                  -0.01113155480321,
    991                                  -0.01011502154986,
    992                                  -0.00913253296085,
    993                                  -0.00817982333726,
    994                                  -0.00726158168517,
    995                                  -0.00637922932685,
    996                                  -0.00553372111088,
    997                                  -0.00472225962400,
    998                                  -0.00394011240522,
    999                                  -0.00319337783900,
   1000                                  -0.00248267236449,
   1001                                  -0.00180394725893,
   1002                                  -0.00115681355227,
   1003                                  -0.00054642808664,
   1004                                  0.00002760451905,
   1005                                  0.00058322642480,
   1006                                  0.00109023290512,
   1007                                  0.00157846825768,
   1008                                  0.00202741761850,
   1009                                  0.00245085400321,
   1010                                  0.00284467578623,
   1011                                  0.00320918858098,
   1012                                  0.00354012465507,
   1013                                  0.00384564081246,
   1014                                  0.00412516423270,
   1015                                  0.00438018617447,
   1016                                  0.00460395301471,
   1017                                  0.00481094690600,
   1018                                  0.00498396877629,
   1019                                  0.00513822754514,
   1020                                  0.00527157587272,
   1021                                  0.00538389758970,
   1022                                  0.00547537830770,
   1023                                  0.00554043639400,
   1024                                  0.00559171286630,
   1025                                  0.00562661141932,
   1026                                  0.00563891995151,
   1027                                  0.00564551969164,
   1028                                  0.00562206432097,
   1029                                  0.00559380230045,
   1030                                  0.00554757145088,
   1031                                  0.00548760401507,
   1032                                  0.00541967759307,
   1033                                  0.00534716811982,
   1034                                  0.00524611661324,
   1035                                  0.00514073539032,
   1036                                  0.00503930226013,
   1037                                  0.00491376035745,
   1038                                  0.00479325608498,
   1039                                  0.00466064606118,
   1040                                  0.00452098527825,
   1041                                  0.00437307196781,
   1042                                  0.00422642692270,
   1043                                  0.00408197531935,
   1044                                  0.00392074323703,
   1045                                  0.00376039229104,
   1046                                  0.00360082681231,
   1047                                  0.00344188741828,
   1048                                  0.00327396134847,
   1049                                  0.00311254206525,
   1050                                  0.00294694477165,
   1051                                  0.00278704643465,
   1052                                  0.00262017586902,
   1053                                  0.00246256169126,
   1054                                  0.00230172547746,
   1055                                  0.00214615835557,
   1056                                  0.00198411407369,
   1057                                  0.00183482654224,
   1058                                  0.00168680832531,
   1059                                  0.00154432198471,
   1060                                  0.00139024948272,
   1061                                  0.00125778846475,
   1062                                  0.00112501551307,
   1063                                  0.00098859883015,
   1064                                  0.00086084433262,
   1065                                  0.00074580258865,
   1066                                  0.00062393761391,
   1067                                  0.00051073884952,
   1068                                  0.00040265402160,
   1069                                  0.00029495311041,
   1070                                  0.00020430170688,
   1071                                  0.00010943831274,
   1072                                  0.00001349497418,
   1073                                  -0.00006173344072,
   1074                                  -0.00014463809349,
   1075                                  -0.00020983373440,
   1076                                  -0.00028969811748,
   1077                                  -0.00035011758756,
   1078                                  -0.00040951214522,
   1079                                  -0.00046063254803,
   1080                                  -0.00051455722108,
   1081                                  -0.00055645763906,
   1082                                  -0.00059461189330,
   1083                                  -0.00063415949025,
   1084                                  -0.00066504150893,
   1085                                  -0.00069179375372,
   1086                                  -0.00072153919876,
   1087                                  -0.00073193571525,
   1088                                  -0.00075300014201,
   1089                                  -0.00076307935757,
   1090                                  -0.00077579773310,
   1091                                  -0.00078014496257,
   1092                                  -0.00078036647100,
   1093                                  -0.00077798694927,
   1094                                  -0.00078343322877,
   1095                                  -0.00077248485949,
   1096                                  -0.00076813719270,
   1097                                  -0.00074905980532,
   1098                                  -0.00074409418541,
   1099                                  -0.00072550431222,
   1100                                  -0.00071577364744,
   1101                                  -0.00069416146273,
   1102                                  -0.00067776907764,
   1103                                  -0.00065403333621,
   1104                                  -0.00063124935319,
   1105                                  -0.00061327473938,
   1106                                  -0.00058709304852,
   1107                                  -0.00056778025613,
   1108                                  -0.00054665656337,
   1109                                  -0.00052265642972,
   1110                                  -0.00050407143497,
   1111                                  -0.00048937912498,
   1112                                  -0.00048752279712,
   1113                                  -0.00049475180896,
   1114                                  -0.00056176925738,
   1115                                  -0.00055252865047};
   1116 
   1117 const ia_filter_bank_params_struct
   1118     normal_cross_freq[FILTER_BANK_PARAMETER_COUNT] = {
   1119         {2.0f / 1024.0f, 0.0000373252f, 0.9913600345f},
   1120         {3.0f / 1024.0f, 0.0000836207f, 0.9870680830f},
   1121         {4.0f / 1024.0f, 0.0001480220f, 0.9827947083f},
   1122         {5.0f / 1024.0f, 0.0002302960f, 0.9785398263f},
   1123         {6.0f / 1024.0f, 0.0003302134f, 0.9743033527f},
   1124         {2.0f / 256.0f, 0.0005820761f, 0.9658852897f},
   1125         {3.0f / 256.0f, 0.0012877837f, 0.9492662926f},
   1126         {2.0f / 128.0f, 0.0022515827f, 0.9329321561f},
   1127         {3.0f / 128.0f, 0.0049030350f, 0.9010958535f},
   1128         {2.0f / 64.0f, 0.0084426929f, 0.8703307793f},
   1129         {3.0f / 64.0f, 0.0178631928f, 0.8118317459f},
   1130         {2.0f / 32.0f, 0.0299545822f, 0.7570763753f},
   1131         {3.0f / 32.0f, 0.0604985076f, 0.6574551915f},
   1132         {2.0f / 16.0f, 0.0976310729f, 0.5690355937f},
   1133         {3.0f / 16.0f, 0.1866943331f, 0.4181633458f},
   1134         {2.0f / 8.0f, 0.2928932188f, 0.2928932188f},
   1135 };
   1136