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