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.173
     22     ANSI-C code for the Adaptive Multi-Rate - Wideband (AMR-WB) speech codec
     23     Available from http://www.3gpp.org
     24 
     25 (C) 2007, 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  *                         qisf_ns_tab.cpp
     31  *
     32  * Quantization tables for split by 5 VQ of ISFs for a background
     33  * noise database
     34  * Version whith no prediction
     35  */
     36 
     37 /*----------------------------------------------------------------------------
     38 ; INCLUDES
     39 ----------------------------------------------------------------------------*/
     40 
     41 #include "qisf_ns.h"
     42 
     43 
     44 /* means of ISFs */
     45 const int16 mean_isf_noise[ORDER] =
     46 {
     47 
     48     478,  1100,  2213,  3267,  4219,  5222,  6198,  7240,
     49     8229,  9153, 10098, 11108, 12144, 13184, 14165,  3803
     50 };
     51 
     52 
     53 /* 28 bits */
     54 /*
     55  *  isf codebooks:  split-by-5 VQ
     56  *
     57  *  codebook   vector dimension    number of vectors
     58  *  ~~~~~~~~   ~~~~~~~~~~~~~~~~    ~~~~~~~~~~~~~~~~~
     59  *     1            2                  64
     60  *     2            3                  64
     61  *     3            3                  64
     62  *     4            4                  32
     63  *     5            4                  32
     64  */
     65 
     66 /*
     67  * 1st split:   isf0 to isf1
     68  */
     69 
     70 
     71 const int16 dico1_isf_noise[SIZE_BK_NOISE1*2] =
     72 {
     73 
     74     -269,  -673,
     75     -222,  -537,
     76     -233,  -430,
     77     -138,  -451,
     78     -212,  -331,
     79     -192,  -241,
     80     -87,  -231,
     81     -191,  -128,
     82     -70,  -106,
     83     -164,    -6,
     84     74,  -179,
     85     27,   -33,
     86     -102,    74,
     87     -162,   115,
     88     -94,   172,
     89     -6,   130,
     90     -143,   234,
     91     14,   218,
     92     -65,   270,
     93     88,   182,
     94     -124,   341,
     95     -44,   381,
     96     38,   335,
     97     117,   274,
     98     -112,   454,
     99     74,   431,
    100     -5,   488,
    101     175,   384,
    102     -83,   561,
    103     122,   529,
    104     21,   601,
    105     229,   481,
    106     231,   303,
    107     226,   608,
    108     300,   372,
    109     210,   187,
    110     306,   265,
    111     328,   473,
    112     382,   331,
    113     371,   132,
    114     139,    58,
    115     365,    21,
    116     250,   -82,
    117     443,   218,
    118     483,   110,
    119     426,   415,
    120     579,   222,
    121     518,   333,
    122     573,   448,
    123     455,   529,
    124     685,   329,
    125     332,   580,
    126     595,   593,
    127     468,   645,
    128     762,   517,
    129     326,   709,
    130     485,   793,
    131     130,   684,
    132     671,   737,
    133     354,   876,
    134     88,   806,
    135     -65,   706,
    136     -35,  1016,
    137     266,  1123
    138 };
    139 
    140 
    141 /*
    142  * 2nd split:   isf2 to isf4
    143  */
    144 
    145 const int16 dico2_isf_noise[SIZE_BK_NOISE2*3] =
    146 {
    147 
    148     -824,  -884,  -949,
    149     -805,  -456,  -418,
    150     -442,  -438,  -541,
    151     -217,  -578,  -793,
    152     -168,  -444,  -582,
    153     -287,  -492,  -274,
    154     -552,  -297,  -300,
    155     -163,  -333,  -358,
    156     -370,  -232,  -232,
    157     -175,  -358,  -159,
    158     -381,   -21,  -357,
    159     -184,  -159,  -162,
    160     -53,  -191,  -280,
    161     18,  -267,  -215,
    162     -138,    61,  -283,
    163     71,   -95,  -294,
    164     13,  -156,  -546,
    165     0,   -83,   -79,
    166     44,    97,  -316,
    167     178,   -52,  -213,
    168     222,  -261,  -422,
    169     237,  -118,   -44,
    170     141,   145,  -132,
    171     363,    81,  -287,
    172     213,    65,    34,
    173     -107,    94,    -5,
    174     91,   -29,   126,
    175     -355,    51,   -41,
    176     -219,   -76,   145,
    177     -63,   100,   244,
    178     -719,    44,    27,
    179     -572,  -124,   155,
    180     -423,   133,   315,
    181     -917,    71,   224,
    182     -268,   318,   131,
    183     -93,  -190,   420,
    184     -97,   122,   491,
    185     -79,   317,   355,
    186     130,   100,   325,
    187     86,  -293,   210,
    188     133,   258,   161,
    189     176,   -73,   465,
    190     195,   300,   384,
    191     348,    22,   221,
    192     376,   183,   409,
    193     377,   286,   202,
    194     242,   213,   659,
    195     257,   565,   248,
    196     344,   408,   -76,
    197     405,   440,   509,
    198     612,   385,   379,
    199     536,   607,   216,
    200     -56,   582,   192,
    201     100,   517,   567,
    202     -365,   448,   445,
    203     728,   347,    10,
    204     505,   357,   759,
    205     636,   582,   658,
    206     335,   517,   852,
    207     378,   809,   572,
    208     -195,   878,   829,
    209     529,   707,   987,
    210     918,   726,   392,
    211     1250,   997,  1063
    212 };
    213 
    214 /*
    215  * 3rd split:   isf5 to isf7
    216  */
    217 
    218 const int16 dico3_isf_noise[SIZE_BK_NOISE3*3] =
    219 {
    220 
    221     -805,  -838,  -774,
    222     -522,  -627,  -828,
    223     -477,  -486,  -603,
    224     -295,  -481,  -634,
    225     -366,  -384,  -393,
    226     -186,  -414,  -396,
    227     -237,  -394,  -106,
    228     -252,  -202,  -275,
    229     -61,  -177,  -442,
    230     -84,  -198,  -199,
    231     -179,  -125,   -31,
    232     -72,   -47,  -163,
    233     -298,  -220,   215,
    234     -64,  -168,   251,
    235     -133,   156,   -59,
    236     -30,    -2,   127,
    237     54,    66,   -61,
    238     -233,    21,   251,
    239     209,   -50,    32,
    240     33,   194,   136,
    241     -117,   -18,   475,
    242     202,    46,   309,
    243     256,   185,    53,
    244     35,   200,   390,
    245     200,   263,   242,
    246     -216,   302,   294,
    247     128,   358,     0,
    248     19,   431,   287,
    249     224,   447,   280,
    250     367,   165,   213,
    251     397,   314,   319,
    252     383,   379,    75,
    253     277,   325,   462,
    254     394,   505,   334,
    255     251,    98,  -213,
    256     450,   153,   448,
    257     565,   226,    76,
    258     470,   383,   502,
    259     635,   390,   278,
    260     237,   135,   620,
    261     342,   401,   649,
    262     331,   551,   518,
    263     130,   418,   592,
    264     531,   306,   737,
    265     729,   389,   580,
    266     497,   557,   699,
    267     296,   383,   874,
    268     283,   624,   759,
    269     126,   622,   476,
    270     559,   595,   472,
    271     382,   770,   616,
    272     719,   613,   745,
    273     540,   639,   928,
    274     517,   826,   801,
    275     684,   811,   604,
    276     752,   786,   857,
    277     933,   661,   350,
    278     694,   450,  1061,
    279     562,   911,  1051,
    280     824,   813,  1104,
    281     758,  1047,   882,
    282     1140,   917,   889,
    283     1039,  1246,  1426,
    284     1483,  1666,  1876
    285 };
    286 
    287 /*
    288  * 4th split:   isf8 to isf11
    289  */
    290 
    291 const int16 dico4_isf_noise[SIZE_BK_NOISE4*4] =
    292 {
    293 
    294     -776,  -854,  -891,  -920,
    295     -552,  -610,  -663,  -741,
    296     -321,  -370,  -476,  -565,
    297     274,  -160,  -456,   201,
    298     265,    67,  -160,  -306,
    299     -8,  -210,    79,   272,
    300     163,   236,   307,   308,
    301     578,   317,    64,   298,
    302     -9,   197,   342,   620,
    303     343,   232,   314,   622,
    304     173,   149,   548,   527,
    305     356,   370,   481,   376,
    306     135,   444,   488,   556,
    307     391,   471,   487,   653,
    308     228,   424,   576,   835,
    309     422,   372,   722,   682,
    310     295,   673,   693,   635,
    311     539,   596,   590,   449,
    312     475,   618,   659,   818,
    313     735,   517,   491,   673,
    314     602,   346,   257,   877,
    315     625,   635,   849,   720,
    316     727,   818,   698,   595,
    317     653,   481,   690,  1139,
    318     814,   762,   704,   908,
    319     507,   747,   898,   936,
    320     848,   855,   924,   785,
    321     646,  1037,   882,   795,
    322     772,   845,  1024,  1151,
    323     1133,   983,   818,   921,
    324     940,  1068,  1252,  1302,
    325     1588,  1767,  1718,  1513
    326 };
    327 
    328 /*
    329  * 5th split:   isf12 to isf15
    330  */
    331 
    332 const int16 dico5_isf_noise[SIZE_BK_NOISE5*4] =
    333 {
    334     -810,  -879,  -945,  -254,
    335     248,   184,   671,   128,
    336     288,   703,   918,    99,
    337     658,   558,   662,   219,
    338     552,   585,   910,   208,
    339     559,   804,   759,   119,
    340     606,   774,   921,  -139,
    341     782,   761,   748,   208,
    342     756,   708,   983,    56,
    343     544,   864,  1010,   152,
    344     737,   698,   987,   299,
    345     771,   924,   879,   103,
    346     536,   785,   961,   405,
    347     667,   916,   801,   328,
    348     738,   705,   773,   439,
    349     823,   871,   992,   355,
    350     640,  1004,  1052,   369,
    351     724,   822,   949,   597,
    352     415,   655,   729,   482,
    353     1009,   896,   793,   363,
    354     908,   803,   687,   -25,
    355     1016,   838,  1011,   189,
    356     947,  1112,   942,   222,
    357     914,  1049,   981,   527,
    358     956,   987,  1011,  -120,
    359     781,  1049,  1121,    92,
    360     1178,  1053,   884,    47,
    361     1123,  1059,  1182,   118,
    362     933,   972,  1277,   357,
    363     1109,   918,  1101,   503,
    364     1039,  1286,  1220,   317,
    365     1351,  1207,  1010,   326
    366 };
    367 
    368