Home | History | Annotate | Download | only in aacdec
      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 
     20  Filename: sbr_envelope_calc_tbl.c
     21 
     22 ------------------------------------------------------------------------------
     23  REVISION HISTORY
     24 
     25 
     26  Who:                                   Date: MM/DD/YYYY
     27  Description:
     28 
     29 ------------------------------------------------------------------------------
     30  INPUT AND OUTPUT DEFINITIONS
     31 
     32 
     33 
     34 ------------------------------------------------------------------------------
     35  FUNCTION DESCRIPTION
     36 
     37 
     38 ------------------------------------------------------------------------------
     39  REQUIREMENTS
     40 
     41 
     42 ------------------------------------------------------------------------------
     43  REFERENCES
     44 
     45 SC 29 Software Copyright Licencing Disclaimer:
     46 
     47 This software module was originally developed by
     48   Coding Technologies
     49 
     50 and edited by
     51   -
     52 
     53 in the course of development of the ISO/IEC 13818-7 and ISO/IEC 14496-3
     54 standards for reference purposes and its performance may not have been
     55 optimized. This software module is an implementation of one or more tools as
     56 specified by the ISO/IEC 13818-7 and ISO/IEC 14496-3 standards.
     57 ISO/IEC gives users free license to this software module or modifications
     58 thereof for use in products claiming conformance to audiovisual and
     59 image-coding related ITU Recommendations and/or ISO/IEC International
     60 Standards. ISO/IEC gives users the same free license to this software module or
     61 modifications thereof for research purposes and further ISO/IEC standardisation.
     62 Those intending to use this software module in products are advised that its
     63 use may infringe existing patents. ISO/IEC have no liability for use of this
     64 software module or modifications thereof. Copyright is not released for
     65 products that do not conform to audiovisual and image-coding related ITU
     66 Recommendations and/or ISO/IEC International Standards.
     67 The original developer retains full right to modify and use the code for its
     68 own purpose, assign or donate the code to a third party and to inhibit third
     69 parties from using the code for products that do not conform to audiovisual and
     70 image-coding related ITU Recommendations and/or ISO/IEC International Standards.
     71 This copyright notice must be included in all copies or derivative works.
     72 Copyright (c) ISO/IEC 2002.
     73 
     74 ------------------------------------------------------------------------------
     75  PSEUDO-CODE
     76 
     77 ------------------------------------------------------------------------------
     78 */
     79 
     80 
     81 /*----------------------------------------------------------------------------
     82 ; INCLUDES
     83 ----------------------------------------------------------------------------*/
     84 
     85 #ifdef AAC_PLUS
     86 
     87 
     88 #include    "sbr_envelope_calc_tbl.h"
     89 
     90 /*----------------------------------------------------------------------------
     91 ; MACROS
     92 ; Define module specific macros here
     93 ----------------------------------------------------------------------------*/
     94 
     95 
     96 /*----------------------------------------------------------------------------
     97 ; DEFINES
     98 ; Include all pre-processor statements here. Include conditional
     99 ; compile variables also.
    100 ----------------------------------------------------------------------------*/
    101 
    102 /*----------------------------------------------------------------------------
    103 ; LOCAL FUNCTION DEFINITIONS
    104 ; Function Prototype declaration
    105 ----------------------------------------------------------------------------*/
    106 
    107 /*----------------------------------------------------------------------------
    108 ; LOCAL STORE/BUFFER/POINTER DEFINITIONS
    109 ; Variable declaration - defined here and used outside this module
    110 ----------------------------------------------------------------------------*/
    111 
    112 /*----------------------------------------------------------------------------
    113 ; EXTERNAL FUNCTION REFERENCES
    114 ; Declare functions defined elsewhere and referenced in this module
    115 ----------------------------------------------------------------------------*/
    116 
    117 /*----------------------------------------------------------------------------
    118 ; EXTERNAL GLOBAL STORE/BUFFER/POINTER REFERENCES
    119 ; Declare variables used in this module but defined elsewhere
    120 ----------------------------------------------------------------------------*/
    121 
    122 /*----------------------------------------------------------------------------
    123 ; FUNCTION CODE
    124 ----------------------------------------------------------------------------*/
    125 #define Q30_fmt(x)   (Int32)(x*((Int32)1<<30) + (x>=0?0.5F:-0.5F))
    126 #define Qfmt15(x)    (Int16)(x*((Int32)1<<15) + (x>=0?0.5F:-0.5F))
    127 
    128 
    129 const Int32 limGains[5] = { Q30_fmt(0.70795f), Q30_fmt(1.0f),
    130                             Q30_fmt(1.41254f), Q30_fmt(1.16415321826935f), 33
    131                           };
    132 
    133 const Int32 smoothLengths[2] = { 4, 0 };
    134 
    135 const Int16 rP_LCx[512] =
    136 {
    137     Qfmt15(-0.99948153278296f), Qfmt15(0.97113454393991f), Qfmt15(0.14130051758487f), Qfmt15(-0.47005496701697f),
    138     Qfmt15(0.80705063769351f), Qfmt15(-0.38981478896926f), Qfmt15(-0.01053049862020f), Qfmt15(-0.91266367957293f),
    139     Qfmt15(0.54840422910309f), Qfmt15(0.40009252867955f), Qfmt15(-0.99867974711855f), Qfmt15(-0.95531076805040f),
    140     Qfmt15(-0.45725933317144f), Qfmt15(-0.72929675029275f), Qfmt15(0.75622801399036f), Qfmt15(0.07069442601050f),
    141     Qfmt15(0.74496252926055f), Qfmt15(-0.96440182703856f), Qfmt15(0.30424629369539f), Qfmt15(0.66565033746925f),
    142     Qfmt15(0.91697008020594f), Qfmt15(-0.70774918760427f), Qfmt15(-0.70051415345560f), Qfmt15(-0.99496513054797f),
    143     Qfmt15(0.98164490790123f), Qfmt15(-0.54671580548181f), Qfmt15(-0.01689629065389f), Qfmt15(-0.86110349531986f),
    144     Qfmt15(-0.98892980586032f), Qfmt15(0.51756627678691f), Qfmt15(-0.99635026409640f), Qfmt15(-0.99969370862163f),
    145     Qfmt15(0.55266258627194f), Qfmt15(0.34581177741673f), Qfmt15(0.62664209577999f), Qfmt15(-0.77149701404973f),
    146     Qfmt15(-0.91592244254432f), Qfmt15(-0.76285492357887f), Qfmt15(0.79788337195331f), Qfmt15(0.54473080610200f),
    147     Qfmt15(-0.85639281671058f), Qfmt15(-0.92882402971423f), Qfmt15(-0.11708371046774f), Qfmt15(0.21356749817493f),
    148     Qfmt15(-0.76191692573909f), Qfmt15(0.98111043100884f), Qfmt15(-0.85913269895572f), Qfmt15(-0.93307242253692f),
    149     Qfmt15(0.30485754879632f), Qfmt15(0.85289650925190f), Qfmt15(0.91328082618125f), Qfmt15(-0.05890199924154f),
    150     Qfmt15(0.28398686150148f), Qfmt15(0.95258164539612f), Qfmt15(-0.78566324168507f), Qfmt15(-0.95789495447877f),
    151     Qfmt15(0.82411158711197f), Qfmt15(-0.65185446735885f), Qfmt15(-0.93643603134666f), Qfmt15(0.91427159529618f),
    152     Qfmt15(-0.70395684036886f), Qfmt15(0.00563771969365f), Qfmt15(0.89065051931895f), Qfmt15(-0.68683707712762f),
    153     Qfmt15(0.72165342518718f), Qfmt15(-0.62928247730667f), Qfmt15(0.29938434065514f), Qfmt15(-0.91781958879280f),
    154     Qfmt15(0.99298717043688f), Qfmt15(0.82368298622748f), Qfmt15(-0.98512833386833f), Qfmt15(-0.95915368242257f),
    155     Qfmt15(-0.21411126572790f), Qfmt15(-0.68821476106884f), Qfmt15(0.91851997982317f), Qfmt15(-0.96062769559127f),
    156     Qfmt15(0.51646184922287f), Qfmt15(0.61130721139669f), Qfmt15(0.47336129371299f), Qfmt15(0.90998308703519f),
    157     Qfmt15(0.44844799194357f), Qfmt15(0.66614891079092f), Qfmt15(0.74922239129237f), Qfmt15(-0.99571588506485f),
    158     Qfmt15(0.97401082477563f), Qfmt15(0.72683747733879f), Qfmt15(0.95432193457128f), Qfmt15(-0.72962208425191f),
    159     Qfmt15(-0.85359479233537f), Qfmt15(-0.81412430338535f), Qfmt15(-0.87930772356786f), Qfmt15(-0.71573331064977f),
    160     Qfmt15(0.83524300028228f), Qfmt15(-0.48086065601423f), Qfmt15(0.97139128574778f), Qfmt15(0.51992825347895f),
    161     Qfmt15(-0.00848591195325f), Qfmt15(-0.70294374303036f), Qfmt15(-0.95894428168140f), Qfmt15(0.97079252950321f),
    162     Qfmt15(-0.92404293670797f), Qfmt15(-0.69506469500450f), Qfmt15(0.26559203620024f), Qfmt15(0.28038443336943f),
    163     Qfmt15(-0.74138124825523f), Qfmt15(-0.01752795995444f), Qfmt15(-0.55126773094930f), Qfmt15(0.97960898850996f),
    164     Qfmt15(-0.99196309146936f), Qfmt15(-0.67684928085260f), Qfmt15(0.09140039465500f), Qfmt15(-0.71658965751996f),
    165     Qfmt15(0.81014640078925f), Qfmt15(0.40616991671205f), Qfmt15(-0.67680188682972f), Qfmt15(0.86849774348749f),
    166     Qfmt15(-0.99500381284851f), Qfmt15(0.84329189340667f), Qfmt15(-0.09215968531446f), Qfmt15(0.99956173327206f),
    167     Qfmt15(-0.79732779473535f), Qfmt15(0.96349973642406f), Qfmt15(-0.79942778496547f), Qfmt15(-0.11566039853896f),
    168     Qfmt15(-0.39922954514662f), Qfmt15(0.99089197565987f), Qfmt15(0.28631285179909f), Qfmt15(-0.83302725605608f),
    169     Qfmt15(0.95404443402072f), Qfmt15(-0.06449863579434f), Qfmt15(-0.99575054486311f), Qfmt15(-0.65501142790847f),
    170     Qfmt15(-0.81254441908887f), Qfmt15(-0.99646369485481f), Qfmt15(0.00287840603348f), Qfmt15(0.70176989408455f),
    171     Qfmt15(0.96361882270190f), Qfmt15(-0.68883758192426f), Qfmt15(-0.34875585502238f), Qfmt15(0.91980081243087f),
    172     Qfmt15(-0.99009048343881f), Qfmt15(0.68865791458395f), Qfmt15(-0.99484402129368f), Qfmt15(0.94214511408023f),
    173     Qfmt15(-0.67414626793544f), Qfmt15(-0.47339353684664f), Qfmt15(0.14323651387360f), Qfmt15(-0.29268293575672f),
    174     Qfmt15(0.43793861458754f), Qfmt15(-0.36345126374441f), Qfmt15(-0.08750604656825f), Qfmt15(-0.96495267812511f),
    175     Qfmt15(0.55526940659947f), Qfmt15(0.73538215752630f), Qfmt15(-0.30889773919437f), Qfmt15(0.03574995626194f),
    176     Qfmt15(0.98720684660488f), Qfmt15(-0.81689296271203f), Qfmt15(0.67866860118215f), Qfmt15(-0.15808569732583f),
    177     Qfmt15(0.80723395114371f), Qfmt15(0.47788757329038f), Qfmt15(0.96367554763201f), Qfmt15(-0.99143875716818f),
    178     Qfmt15(0.83081876925833f), Qfmt15(-0.58753191905341f), Qfmt15(0.95538108220960f), Qfmt15(-0.96490920476211f),
    179     Qfmt15(-0.97327101028521f), Qfmt15(0.91400366022124f), Qfmt15(-0.99925837363824f), Qfmt15(-0.86875903507313f),
    180     Qfmt15(-0.26240034795124f), Qfmt15(-0.24664412953388f), Qfmt15(0.02416275806869f), Qfmt15(0.82068619590515f),
    181     Qfmt15(0.88547373760759f), Qfmt15(-0.18173078152226f), Qfmt15(0.09355476558534f), Qfmt15(-0.54668414224090f),
    182     Qfmt15(0.37050990604091f), Qfmt15(-0.70373594262891f), Qfmt15(-0.34600785879594f), Qfmt15(-0.68774481731008f),
    183     Qfmt15(-0.26843291251234f), Qfmt15(0.49072334613242f), Qfmt15(0.38975993093975f), Qfmt15(-0.97757125224150f),
    184     Qfmt15(-0.17325552859616f), Qfmt15(0.99948035025744f), Qfmt15(-0.64946246527458f), Qfmt15(-0.12016920576437f),
    185     Qfmt15(-0.58947456517751f), Qfmt15(-0.41815140454465f), Qfmt15(0.99885650204884f), Qfmt15(-0.56649614128386f),
    186     Qfmt15(0.94138021032330f), Qfmt15(-0.75725076534641f), Qfmt15(0.20541973692630f), Qfmt15(0.99980371023351f),
    187     Qfmt15(0.29078277605775f), Qfmt15(-0.62858772103030f), Qfmt15(0.43440904467688f), Qfmt15(-0.98298583762390f),
    188     Qfmt15(0.19513029146934f), Qfmt15(-0.95476662400101f), Qfmt15(0.93379635304810f), Qfmt15(-0.85235410573336f),
    189     Qfmt15(-0.86425093011245f), Qfmt15(0.38879779059045f), Qfmt15(0.92045124735495f), Qfmt15(0.89162532251878f),
    190     Qfmt15(-0.36834336949252f), Qfmt15(0.93891760988045f), Qfmt15(0.99267657565094f), Qfmt15(-0.94063471614176f),
    191     Qfmt15(0.99740224117019f), Qfmt15(-0.35899413170555f), Qfmt15(0.05237237274947f), Qfmt15(0.36703583957424f),
    192     Qfmt15(0.91653180367913f), Qfmt15(0.69000803499316f), Qfmt15(-0.38658751133527f), Qfmt15(-0.29250814029851f),
    193     Qfmt15(-0.60182204677608f), Qfmt15(-0.97418588163217f), Qfmt15(0.88461574003963f), Qfmt15(0.05198933055162f),
    194     Qfmt15(-0.53499621979720f), Qfmt15(-0.49429560226497f), Qfmt15(-0.98935142339139f), Qfmt15(-0.98081380091130f),
    195     Qfmt15(-0.27338148835532f), Qfmt15(0.06310802338302f), Qfmt15(-0.20461677199539f), Qfmt15(0.66223843141647f),
    196     Qfmt15(-0.84764345483665f), Qfmt15(-0.89039863483811f), Qfmt15(0.95903308477986f), Qfmt15(0.73504123909879f),
    197     Qfmt15(-0.31744434966056f), Qfmt15(-0.34110827591623f), Qfmt15(0.47803883714199f), Qfmt15(0.98299195879514f),
    198     Qfmt15(-0.30963073129751f), Qfmt15(0.99992588229018f), Qfmt15(-0.93149731080767f), Qfmt15(0.99923472302773f),
    199     Qfmt15(-0.26024169633417f), Qfmt15(-0.35712514743563f), Qfmt15(-0.99899084509530f), Qfmt15(0.86557171579452f),
    200     Qfmt15(0.33408042438752f), Qfmt15(0.99010736374716f), Qfmt15(-0.66694269691195f), Qfmt15(0.64016792079480f),
    201     Qfmt15(0.99570534804836f), Qfmt15(-0.63431466947340f), Qfmt15(-0.07706847005931f), Qfmt15(0.98590090577724f),
    202     Qfmt15(0.80099335254678f), Qfmt15(0.78368131392666f), Qfmt15(0.08707806671691f), Qfmt15(-0.86811883080712f),
    203     Qfmt15(-0.39466529740375f), Qfmt15(0.97875325649683f), Qfmt15(-0.95038560288864f), Qfmt15(0.17005239424212f),
    204     Qfmt15(-0.76910792026848f), Qfmt15(0.99743281016846f), Qfmt15(0.95437383549973f), Qfmt15(0.99578905365569f),
    205     Qfmt15(0.28058259829990f), Qfmt15(0.85256524470573f), Qfmt15(-0.50608540105128f), Qfmt15(-0.97210735183243f),
    206     Qfmt15(0.95424048234441f), Qfmt15(-0.96926570524023f), Qfmt15(0.30872163214726f), Qfmt15(-0.24523839572639f),
    207     Qfmt15(-0.33813265086024f), Qfmt15(-0.05826828420146f), Qfmt15(-0.22898461455054f), Qfmt15(-0.18509915019881f),
    208     Qfmt15(-0.10488238045009f), Qfmt15(-0.71886586182037f), Qfmt15(0.99793873738654f), Qfmt15(0.57563307626120f),
    209     Qfmt15(0.28909646383717f), Qfmt15(0.42188998312520f), Qfmt15(0.93335049681047f), Qfmt15(-0.97087374418267f),
    210     Qfmt15(0.36722871286923f), Qfmt15(-0.81093025665696f), Qfmt15(-0.26240603062237f), Qfmt15(0.83996497984604f),
    211     Qfmt15(-0.99909615720225f), Qfmt15(0.74649464155061f), Qfmt15(-0.74774595569805f), Qfmt15(0.95781667469567f),
    212     Qfmt15(0.95472308713099f), Qfmt15(0.48708332746299f), Qfmt15(0.46332038247497f), Qfmt15(-0.76497004940162f),
    213     Qfmt15(0.57397389364339f), Qfmt15(0.75374316974495f), Qfmt15(-0.59174397685714f), Qfmt15(0.75087906691890f),
    214     Qfmt15(-0.98607857336230f), Qfmt15(-0.40761056640505f), Qfmt15(0.66929266740477f), Qfmt15(-0.97463695257310f),
    215     Qfmt15(0.90145509409859f), Qfmt15(-0.87259289048043f), Qfmt15(-0.91529461447692f), Qfmt15(-0.03305738840705f),
    216     Qfmt15(0.07223051368337f), Qfmt15(0.99498012188353f), Qfmt15(-0.74904939500519f), Qfmt15(0.04585228574211f),
    217     Qfmt15(-0.89054954257993f), Qfmt15(-0.83782144651251f), Qfmt15(0.33454804933804f), Qfmt15(-0.99707579362824f),
    218     Qfmt15(-0.22827527843994f), Qfmt15(0.67248046289143f), Qfmt15(-0.05146538187944f), Qfmt15(0.99947295749905f),
    219     Qfmt15(0.66951124390363f), Qfmt15(-0.99602956559179f), Qfmt15(0.82104905483590f), Qfmt15(0.99186510988782f),
    220     Qfmt15(-0.65284592392918f), Qfmt15(0.93885443798188f), Qfmt15(0.96735248738388f), Qfmt15(-0.22225968841114f),
    221     Qfmt15(-0.44132783753414f), Qfmt15(-0.85694974219574f), Qfmt15(0.91783042091762f), Qfmt15(0.72556974415690f),
    222     Qfmt15(-0.99711581834508f), Qfmt15(0.77638976371966f), Qfmt15(0.07717324253925f), Qfmt15(-0.56049829194163f),
    223     Qfmt15(0.98398893639988f), Qfmt15(0.47546946844938f), Qfmt15(0.65675089314631f), Qfmt15(0.03273375457980f),
    224     Qfmt15(-0.38684144784738f), Qfmt15(-0.97346267944545f), Qfmt15(-0.53282156061942f), Qfmt15(0.99817310731176f),
    225     Qfmt15(-0.50254500772635f), Qfmt15(0.01995873238855f), Qfmt15(0.99930381973804f), Qfmt15(0.82907767600783f),
    226     Qfmt15(-0.58660709669728f), Qfmt15(-0.17573736667267f), Qfmt15(0.83434292401346f), Qfmt15(0.05946491307025f),
    227     Qfmt15(0.81505484574602f), Qfmt15(-0.44976380954860f), Qfmt15(-0.89746474625671f), Qfmt15(0.39677256130792f),
    228     Qfmt15(-0.07588948563079f), Qfmt15(0.76343198951445f), Qfmt15(-0.74490104699626f), Qfmt15(0.64880119792759f),
    229     Qfmt15(0.62319537462542f), Qfmt15(0.42215817594807f), Qfmt15(0.02704554141885f), Qfmt15(0.80001773566818f),
    230     Qfmt15(-0.79351832348816f), Qfmt15(0.63872359151636f), Qfmt15(0.52890520960295f), Qfmt15(0.74238552914587f),
    231     Qfmt15(0.99096131449250f), Qfmt15(-0.80412329643109f), Qfmt15(-0.64612616129736f), Qfmt15(0.11657770663191f),
    232     Qfmt15(-0.95053182488101f), Qfmt15(-0.62228872928622f), Qfmt15(0.03004475787316f), Qfmt15(-0.97987214341034f),
    233     Qfmt15(-0.99986980746200f), Qfmt15(0.89110648599879f), Qfmt15(0.10407960510582f), Qfmt15(0.95964737821728f),
    234     Qfmt15(0.50843233159162f), Qfmt15(0.17006334670615f), Qfmt15(0.25872675063360f), Qfmt15(-0.01115998681937f),
    235     Qfmt15(-0.79598702973261f), Qfmt15(-0.99264708948101f), Qfmt15(-0.99829663752818f), Qfmt15(-0.70801016548184f),
    236     Qfmt15(-0.70467057786826f), Qfmt15(0.99846021905254f), Qfmt15(-0.63364968534650f), Qfmt15(-0.16258217500792f),
    237     Qfmt15(-0.43645594360633f), Qfmt15(-0.99848471702976f), Qfmt15(-0.16796458968998f), Qfmt15(-0.87979225745213f),
    238     Qfmt15(0.44183099021786f), Qfmt15(0.93310180125532f), Qfmt15(-0.93941931782002f), Qfmt15(-0.88590003188677f),
    239     Qfmt15(0.99971463703691f), Qfmt15(-0.75376385639978f), Qfmt15(0.93887685615875f), Qfmt15(0.85126435782309f),
    240     Qfmt15(0.39701421446381f), Qfmt15(-0.37024464187437f), Qfmt15(-0.36024828242896f), Qfmt15(-0.93388812549209f),
    241     Qfmt15(-0.65298804552119f), Qfmt15(0.11960319006843f), Qfmt15(0.94292565553160f), Qfmt15(0.75081145286948f),
    242     Qfmt15(0.56721979748394f), Qfmt15(0.46857766746029f), Qfmt15(0.97312313923635f), Qfmt15(-0.38299976567017f),
    243     Qfmt15(0.41025800019463f), Qfmt15(0.09638062008048f), Qfmt15(-0.85283249275397f), Qfmt15(0.88866808958124f),
    244     Qfmt15(-0.48202429536989f), Qfmt15(0.27572582416567f), Qfmt15(-0.65889129659168f), Qfmt15(0.98838086953732f),
    245     Qfmt15(-0.20651349620689f), Qfmt15(-0.62126416356920f), Qfmt15(0.20320105410437f), Qfmt15(-0.97790548600584f),
    246     Qfmt15(0.11112534735126f), Qfmt15(-0.41368337314182f), Qfmt15(0.24133038992960f), Qfmt15(-0.66393410674885f),
    247     Qfmt15(-0.53697829178752f), Qfmt15(-0.97224737889348f), Qfmt15(0.87392477144549f), Qfmt15(0.19050361015753f),
    248     Qfmt15(-0.46353441212724f), Qfmt15(-0.07064096339021f), Qfmt15(-0.92444085484466f), Qfmt15(-0.83822593578728f),
    249     Qfmt15(0.75214681811150f), Qfmt15(-0.42102998829339f), Qfmt15(-0.72094786237696f), Qfmt15(0.78843311019251f),
    250     Qfmt15(0.97394027897442f), Qfmt15(0.99206463477946f), Qfmt15(0.76789609461795f), Qfmt15(-0.82002421836409f),
    251     Qfmt15(0.81924990025724f), Qfmt15(-0.26719850873357f), Qfmt15(-0.43311260380975f), Qfmt15(0.99194979673836f),
    252     Qfmt15(-0.80692001248487f), Qfmt15(0.43080003649976f), Qfmt15(0.67709491937357f), Qfmt15(0.56151770568316f),
    253     Qfmt15(0.10831862810749f), Qfmt15(0.91229417540436f), Qfmt15(-0.48972893932274f), Qfmt15(-0.89033658689697f),
    254     Qfmt15(0.65269447475094f), Qfmt15(0.67439478141121f), Qfmt15(-0.47770832416973f), Qfmt15(-0.99715979260878f),
    255     Qfmt15(-0.90889593602546f), Qfmt15(-0.06618622548177f), Qfmt15(0.99430266919728f), Qfmt15(0.97686402381843f),
    256     Qfmt15(0.94813650221268f), Qfmt15(-0.95434497492853f), Qfmt15(-0.49104783137150f), Qfmt15(0.99881175120751f),
    257     Qfmt15(0.50449166760303f), Qfmt15(0.47162891065108f), Qfmt15(-0.62081581361840f), Qfmt15(-0.43867015250812f),
    258     Qfmt15(0.98630563232075f), Qfmt15(-0.61510362277374f), Qfmt15(-0.03841517601843f), Qfmt15(-0.30102157304644f),
    259     Qfmt15(0.41881284182683f), Qfmt15(-0.86135454941237f), Qfmt15(0.67226861393788f), Qfmt15(-0.70737398842068f),
    260     Qfmt15(0.94044946687963f), Qfmt15(-0.82386352534327f), Qfmt15(-0.32070666698656f), Qfmt15(0.57593163224487f),
    261     Qfmt15(-0.36326018419965f), Qfmt15(0.99979044674350f), Qfmt15(-0.92366023326932f), Qfmt15(-0.44607178518598f),
    262     Qfmt15(0.44226800932956f), Qfmt15(0.03671907158312f), Qfmt15(0.52175424682195f), Qfmt15(-0.94701139690956f),
    263     Qfmt15(-0.98759606946049f), Qfmt15(0.87434794743625f), Qfmt15(-0.93412041758744f), Qfmt15(0.96063943315511f),
    264     Qfmt15(0.97534253457837f), Qfmt15(0.99642466504163f), Qfmt15(-0.94705089665984f), Qfmt15(0.91599807087376f)
    265 };
    266 
    267 
    268 #ifdef HQ_SBR
    269 
    270 
    271 const Int32 fir_table[5][5] =
    272 {
    273     { Q30_fmt(1.0f)},
    274     { Q30_fmt(0.33333333333333f), Q30_fmt(0.66666666666666f)},
    275     { Q30_fmt(0.12500000000000f), Q30_fmt(0.37500000000000f),
    276       Q30_fmt(0.50000000000000f)},
    277     { Q30_fmt(0.05857864376269f), Q30_fmt(0.20000000000000f),
    278       Q30_fmt(0.34142135623731f), Q30_fmt(0.40000000000000f)},
    279     { Q30_fmt(0.03183050093751f), Q30_fmt(0.11516383427084f),
    280       Q30_fmt(0.21816949906249f), Q30_fmt(0.30150283239582f),
    281       Q30_fmt(0.33333333333333f)}
    282 };
    283 
    284 
    285 
    286 const Int32 rPxx[512] =
    287 {
    288 
    289     0x8010B3DB,  0x7C4DA98F, 0x12168648, 0xC3D4D033,
    290     0x674D25F5,  0xCE1972A6, 0xFEA5AA4A, 0x8B2DF13E,
    291     0x46326048,  0x3336815E, 0x802A8F2B, 0x85B7745C,
    292     0xC577B766,  0xA2A5828C, 0x60CB1AD1, 0x090C9BD7,
    293     0x5F5A8B4D,  0x848D86BB, 0x26F1C0B7, 0x553352C1,
    294     0x755E166B,  0xA5674343, 0xA654C5F5, 0x80A48CB4,
    295     0x7DA69CD8,  0xBA04FCB4, 0xFDD4005E, 0x91C63676,
    296     0x816A8F82,  0x423F55AA, 0x8077B59E, 0x80097DE9,
    297     0x46BD4C18,  0x2C437971, 0x5035A0C2, 0x9D3ED49F,
    298     0x8AC204B8,  0x9E5A8B0A, 0x662088B9, 0x45B9F0BC,
    299     0x9261364F,  0x891B23AD, 0xF1028040, 0x1B568BE1,
    300     0x9E787FB3,  0x7D94854D, 0x92077A94, 0x88903F45,
    301     0x2705A5B4,  0x6D2B3BDC, 0x74E58034, 0xF8745A8C,
    302     0x24592C54,  0x79EDB9BB, 0x9B6E9F44, 0x8563E5DA,
    303     0x697C7BB7,  0xAC8F8E6A, 0x88227FD5, 0x7506822F,
    304     0xA5E34B42,  0x00B94F10, 0x72004390, 0xA814676E,
    305     0x5C5EA758,  0xAF721171, 0x2652C50C, 0x8A84A142,
    306     0x7F19343E,  0x696EA13B, 0x81E68008, 0x853980F9,
    307     0xE4968869,  0xA7E7DD92, 0x75910BFA, 0x85092E35,
    308     0x421BA4A3,  0x4E3F3C18, 0x3C97DD02, 0x74797BCB,
    309     0x39667EFD,  0x55447BA2, 0x5FE68CF3, 0x808B4390,
    310     0x7CABEA6B,  0x5D08C27A, 0x7A265820, 0xA29A9DF0,
    311     0x92BC7195,  0x97CA8338, 0x8F725FAD, 0xA46281D3,
    312     0x6AE86B23,  0xC2728178, 0x7C566684, 0x428C66B7,
    313     0xFEE89DDB,  0xA60546DC, 0x8540C89D, 0x7C420BF0,
    314     0x89B86D72,  0xA7077E3F, 0x21FF5DD7, 0x23E3129C,
    315     0xA1197F1D,  0xFDC0963F, 0xB96F8168, 0x7D6387A6,
    316     0x810655C8,  0xA95C102B, 0x0BB3E5B4, 0xA44682D4,
    317     0x67B244C3,  0x33FDDE1D, 0xA95D78F5, 0x6F2AE887,
    318     0x80A3FC9F,  0x6BF00D52, 0xF4325902, 0x7FF1F02C,
    319     0x99F08AC5,  0x7B537BB2, 0x99AB5255, 0xF1302497,
    320     0xCCE4787B,  0x7ED58A28, 0x24A68B79, 0x955EA9D0,
    321     0x7A1D3EED,  0xF7BD0429, 0x808A3642, 0xAC2769A8,
    322     0x97FDBDE9,  0x80736C25, 0x005E52E7, 0x59D3E5D0,
    323     0x7B57341A,  0xA7D374E9, 0xD35A5B7B, 0x75BB5520,
    324     0x81446DE8,  0x5825473E, 0x80A8E653, 0x78978062,
    325     0xA9B43F6B,  0xC366920A, 0x1255877D, 0xDA88075F,
    326     0x380E9AFF,  0xD1795309, 0xF4CB7D09, 0x847BBAED,
    327     0x471364FA,  0x5E207B74, 0xD87498BF, 0x0493836B,
    328     0x7E5C3DF6,  0x976F8BBC, 0x56DE680A, 0xEBC26D28,
    329     0x6753E05B,  0x3D2BC4B0, 0x7B593143, 0x8118E010,
    330     0x6A5786AD,  0xB4CA01A7, 0x7A49927C, 0x847DAE0C,
    331     0x836B0FD8,  0x74FD4A34, 0x80175AFC, 0x90CBE605,
    332     0xDE68A89E,  0xE06C8FD0, 0x031822CE, 0x690B9315,
    333     0x71568D43,  0xE8BBDE85, 0x0BFA4633, 0xBA057ADA,
    334     0x2F6CB34F,  0xA5EB74C5, 0xD3B480B6, 0xA7F7D94A,
    335     0xDDA26A63,  0x3ED0C5EF, 0x31E37A42, 0x82DE06CB,
    336     0xE9D18940,  0x7FEE4A9A, 0xACDD57DD, 0xF09CB6D9,
    337     0xB48BD364,  0xCA7814D5, 0x7FDA0E41, 0xB77C8C2A,
    338     0x787E2D29,  0x9F1144AC, 0x1A4B871E, 0x7FF96630,
    339     0x25382D4D,  0xAF89319E, 0x379A81DB, 0x822D1AE8,
    340     0x18FA875E,  0x85C97DE7, 0x7786A544, 0x92E5F550,
    341     0x915FC560,  0x31C47C82, 0x75D0B014, 0x72204656,
    342     0xD0D87B76,  0x782E8CD6, 0x7F0FFB2F, 0x879834E7,
    343     0x7FAAEA73,  0xD20BC44E, 0x06B4DF2C, 0x2EFBCE84,
    344     0x7550D8D7,  0x5851746A, 0xCE837F5C, 0xDA8D2FEE,
    345     0xB2F66F13,  0x834D7B7A, 0x713A499C, 0x06A81B39,
    346     0xBB847C77,  0xC0B97DAC, 0x815CCC7A, 0x8274A2BD,
    347     0xDD007FEF,  0x0814BA2F, 0xE5CDEDCE, 0x54C45CD5,
    348     0x937F0309,  0x8E0671BF, 0x7AC1623B, 0x5E15FB32,
    349     0xD75CD0D9,  0xD4553378, 0x3D30CD88, 0x7DD2028C,
    350     0xD85CE8DB,  0x7FFDDE5A, 0x88C48228, 0x7FE6996A,
    351     0xDEAF9EB7,  0xD24818B4, 0x80205F8B, 0x6ECA4728,
    352     0x2AC36E51,  0x7EBB05E4, 0xAAA08AB1, 0x51F01408,
    353     0x7F723AAE,  0xAECD1AFB, 0xF6218D55, 0x7E3170F2,
    354     0x6686D0D3,  0x644F3A3F, 0x0B256799, 0x90E0325D,
    355     0xCD7AAA7B,  0x7D47A33C, 0x865972A3, 0x15C445FE,
    356     0x9D8D84D3,  0x7FAB36A7, 0x7A287C29, 0x7F75BABD,
    357     0x23EA92BC,  0x6D20AD59, 0xBF37ABB6, 0x8391E26E,
    358     0x7A2480F8,  0x83EE5E6E, 0x27843523, 0xE09A50E7,
    359     0xD4B6CE82,  0xF889F71C, 0xE2AF7C3A, 0xE84D3CE2,
    360     0xF2918FA6,  0xA3FB63E0, 0x7FBB7340, 0x49AE8B79,
    361     0x25017B45,  0x36003DA1, 0x7777C844, 0x83B96EE4,
    362     0x2F015392,  0x98320B3C, 0xDE68893F, 0x6B834779,
    363     0x801D8516,  0x5F8C0F8C, 0xA049DD90, 0x7A999AD0,
    364     0x7A33F500,  0x3E587FFF, 0x3B4E0E09, 0x9E147230,
    365     0x49772D2B,  0x607A7BC7, 0xB4408D8F, 0x601CDA17,
    366     0x81C7200B,  0xCBD28CBD, 0x55AB7E3E, 0x833EFFC0,
    367     0x73627FB7,  0x904E7F04, 0x8AD7EBE6, 0xFBC3D05F,
    368     0x093F8E53,  0x7F5B7C47, 0xA01E7FFA, 0x05DE7FC2,
    369     0x8E01D74D,  0x94C17CF9, 0x2AD2919F, 0x805F7757,
    370     0xE2C61829,  0x5613FB53, 0xF9688978, 0x7FEE77D6,
    371     0x55B27E98,  0x8081C6D6, 0x69177F69, 0x7EF45C30,
    372     0xAC6E42CC,  0x782BA021, 0x7BD17457, 0xE38B491E,
    373     0xC781895B,  0x924E71B8, 0x757BC4A8, 0x5CDF8020,
    374     0x805E4A82,  0x636078BA, 0x09E14B0E, 0xB84069A0,
    375     0x7DF23284,  0x3CDC57D2, 0x54101777, 0x0431A015,
    376     0xCE7A41B6,  0x8365846A, 0xBBCB8AF9, 0x7FC34E40,
    377     0xBFAB8E4B,  0x028E6D15, 0x7FE8790F, 0x6A1EF7E6,
    378     0xB4E97BF4,  0xE980C257, 0x6ACBEF53, 0x079C1A41,
    379     0x685386CC,  0xC66D3458, 0x8D1F7FCD, 0x32C9A02E,
    380     0xF6475ED7,  0x61B7356F, 0xA0A6793F, 0x530B34E9,
    381     0x4FC488D4,  0x3609F61F, 0x0376F90F, 0x6666752C,
    382     0x9A6DD1A5,  0x51C10A67, 0x43B34CDC, 0x5F0605C0,
    383     0x7ED7E718,  0x99118EB3, 0xAD4A5C69, 0x0EEC94E8,
    384     0x865483EA,  0xB05769F0, 0x03D88055, 0x82932EC1,
    385     0x8003D1E3,  0x720F82B1, 0x0D526304, 0x7AD5D2A3,
    386     0x41147B04,  0x15C49D9F, 0x211E7FDC, 0xFE907E12,
    387     0x9A1C7C55,  0x80F08095, 0x80370267, 0xA55F2B1C,
    388     0xA5CC7763,  0x7FCD81A1, 0xAEE3EAE8, 0xEB2F8532,
    389     0xC82186A5,  0x80317B31, 0xEA7E814B, 0x8F62A430,
    390     0x388D883A,  0x776F801B, 0x87C0B7CA, 0x8E9A3CF5,
    391     0x7FF6949E,  0x9F83010B, 0x782CF18C, 0x6CF54301,
    392     0x32D168AD,  0xD09A908B, 0xD1E22C5C, 0x887593DE,
    393     0xAC6AE864,  0x0F4F7FDE, 0x78B16A72, 0x601AD283,
    394     0x489AE12D,  0x3BFAD96A, 0x7C8E8093, 0xCEF87E19,
    395     0x348302B6,  0x0C5605A6, 0x92D57516, 0x71BF8056,
    396     0xC24C8416,  0x234B4B0D, 0xABA84B4F, 0x7E827FFD,
    397     0xE58F45E1,  0xB079B355, 0x1A0290CA, 0x82D37B40,
    398     0x0E391B80,  0xCB0B241E, 0x1EE441A8, 0xAB03F56F,
    399     0xBB438301,  0x838C1C43, 0x6FDCEF9D, 0x1862020D,
    400     0xC4A98614,  0xF6F38710, 0x89ABF29B, 0x94B4FDD3,
    401     0x6046800E,  0xCA1A7FA4, 0xA3B7D32F, 0x64EB43A6,
    402     0x7CA9DDD3,  0x7EFBB705, 0x624A9E0D, 0x9708A1E0,
    403     0x68DC7F9C,  0xDDCB5832, 0xC88E6D35, 0x7EF77599,
    404     0x98B6D63B,  0x3724E3F0, 0x56AA85C9, 0x47DFA582,
    405     0x0DDDF4F3,  0x74C5AB88, 0xC14F480C, 0x8E08A446,
    406     0x538B545F,  0x56529770, 0xC2D9EA81, 0x805C883B,
    407     0x8BA84F67,  0xF785E183, 0x7F441814, 0x7D09DB4D,
    408     0x795C8330,  0x85D79A19, 0xC1242A1B, 0x7FD871E9,
    409     0x409391EC,  0x3C5EE815, 0xB0885FFF, 0xC7D87FFE,
    410     0x7E3EBB6A,  0xB1438D6B, 0xFB13A68A, 0xD976F62D,
    411     0x359B02CD,  0x91BE7EA6, 0x560CEEB8, 0xA5739E04,
    412     0x78600B8E,  0x968A0B6C, 0xD6F1402E, 0x49B88152,
    413     0xD17F0986,  0x7FF8EDE8, 0x89C48295, 0xC6E6BA93,
    414     0x389C5B4C,  0x04B3516A, 0x42C892B0, 0x86C7FDA8,
    415     0x81956954,  0x6FEA726E, 0x886E34F5, 0x7AF57730,
    416     0x7CD76E45,  0x7F8A59D7, 0x86C6DA22, 0x753F825E
    417 };
    418 
    419 
    420 #endif
    421 
    422 
    423 #endif
    424 
    425