📄 sbr_enc_qmf_fp.c
字号:
/*//////////////////////////////////////////////////////////////////////////////
//
// INTEL CORPORATION PROPRIETARY INFORMATION
// This software is supplied under the terms of a license agreement or
// nondisclosure agreement with Intel Corporation and may not be copied
// or disclosed except in accordance with the terms of that agreement.
// Copyright(c) 2006-2007 Intel Corporation. All Rights Reserved.
//
*/
#include <ipps.h>
#include <ippac.h>
#include <math.h>
#include "align.h"
#include "sbr_enc_api_fp.h"
#include "aac_status.h"
/********************************************************************/
#ifndef NULL
#define NULL 0
#endif
#ifndef M_PI
#define M_PI 3.14159265358979323846
#endif
/********************************************************************/
static const Ipp32f
SBR_TAB_QMF_WINDOW_640_FP[] = {
0.0000000000f, -0.0005525287f, -0.0005617692f, -0.0004947518f,
-0.0004875228f, -0.0004893791f, -0.0005040714f, -0.0005226564f,
-0.0005466565f, -0.0005677803f, -0.0005870931f, -0.0006132748f,
-0.0006312493f, -0.0006540333f, -0.0006777691f, -0.0006941615f,
-0.0007157737f, -0.0007255043f, -0.0007440942f, -0.0007490598f,
-0.0007681372f, -0.0007724849f, -0.0007834332f, -0.0007779869f,
-0.0007803665f, -0.0007801449f, -0.0007757978f, -0.0007630794f,
-0.0007530001f, -0.0007319357f, -0.0007215392f, -0.0006917937f,
-0.0006650415f, -0.0006341595f, -0.0005946119f, -0.0005564576f,
-0.0005145572f, -0.0004606326f, -0.0004095121f, -0.0003501176f,
-0.0002896981f, -0.0002098337f, -0.0001446381f, -0.0000617334f,
0.0000134950f, 0.0001094383f, 0.0002043017f, 0.0002949531f,
0.0004026540f, 0.0005107389f, 0.0006239376f, 0.0007458026f,
0.0008608443f, 0.0009885988f, 0.0011250156f, 0.0012577885f,
0.0013902495f, 0.0015443220f, 0.0016868083f, 0.0018348265f,
0.0019841141f, 0.0021461584f, 0.0023017256f, 0.0024625617f,
0.0026201759f, 0.0027870464f, 0.0029469447f, 0.0031125420f,
0.0032739614f, 0.0034418874f, 0.0036008267f, 0.0037603923f,
0.0039207432f, 0.0040819752f, 0.0042264271f, 0.0043730722f,
0.0045209853f, 0.0046606460f, 0.0047932561f, 0.0049137603f,
0.0050393022f, 0.0051407353f, 0.0052461168f, 0.0053471681f,
0.0054196776f, 0.0054876041f, 0.0055475715f, 0.0055938023f,
0.0056220642f, 0.0056455196f, 0.0056389198f, 0.0056266114f,
0.0055917129f, 0.0055404366f, 0.0054753781f, 0.0053838976f,
0.0052715759f, 0.0051382277f, 0.0049839686f, 0.0048109470f,
0.0046039531f, 0.0043801861f, 0.0041251644f, 0.0038456409f,
0.0035401247f, 0.0032091886f, 0.0028446757f, 0.0024508541f,
0.0020274175f, 0.0015784682f, 0.0010902329f, 0.0005832264f,
0.0000276045f, -0.0005464281f, -0.0011568136f, -0.0018039473f,
-0.0024826725f, -0.0031933777f, -0.0039401124f, -0.0047222595f,
-0.0055337213f, -0.0063792295f, -0.0072615817f, -0.0081798229f,
-0.0091325333f, -0.0101150218f, -0.0111315548f, -0.0121849999f,
0.0132718217f, 0.0143904667f, 0.0155405551f, 0.0167324711f,
0.0179433376f, 0.0191872437f, 0.0204531793f, 0.0217467546f,
0.0230680164f, 0.0244160984f, 0.0257875845f, 0.0271859430f,
0.0286072176f, 0.0300502665f, 0.0315017626f, 0.0329754092f,
0.0344620943f, 0.0359697565f, 0.0374812856f, 0.0390053689f,
0.0405349173f, 0.0420649089f, 0.0436097533f, 0.0451488420f,
0.0466843024f, 0.0482165702f, 0.0497385748f, 0.0512556173f,
0.0527630746f, 0.0542452782f, 0.0557173640f, 0.0571616441f,
0.0585915670f, 0.0599837489f, 0.0613455176f, 0.0626857802f,
0.0639715865f, 0.0652247071f, 0.0664367527f, 0.0676075965f,
0.0687043816f, 0.0697630271f, 0.0707628727f, 0.0717002675f,
0.0725682601f, 0.0733620226f, 0.0741003677f, 0.0747452527f,
0.0753137320f, 0.0758008361f, 0.0761992484f, 0.0764992163f,
0.0767093524f, 0.0768174008f, 0.0768230036f, 0.0767204911f,
0.0765050724f, 0.0761748329f, 0.0757305771f, 0.0751576275f,
0.0744664371f, 0.0736405998f, 0.0726774633f, 0.0715826377f,
0.0703533068f, 0.0689664036f, 0.0674525052f, 0.0657690689f,
0.0639444813f, 0.0619602762f, 0.0598166585f, 0.0575152710f,
0.0550460033f, 0.0524093807f, 0.0495978668f, 0.0466303304f,
0.0434768796f, 0.0401458293f, 0.0366418101f, 0.0329583921f,
0.0290824007f, 0.0250307564f, 0.0207997076f, 0.0163701251f,
0.0117623834f, 0.0069636861f, 0.0019765601f, -0.0032086896f,
-0.0085711749f, -0.0141288824f, -0.0198834129f, -0.0258227289f,
-0.0319531262f, -0.0382776558f, -0.0447806828f, -0.0514804162f,
-0.0583705343f, -0.0654409826f, -0.0726943314f, -0.0801372901f,
-0.0877547562f, -0.0955533385f, -0.1035329551f, -0.1116826907f,
-0.1200077981f, -0.1285002828f, -0.1371551752f, -0.1459766477f,
-0.1549607068f, -0.1640958786f, -0.1733808219f, -0.1828172505f,
-0.1923966706f, -0.2021250129f, -0.2119735926f, -0.2219652683f,
-0.2320690900f, -0.2423016876f, -0.2526480258f, -0.2631053329f,
-0.2736634016f, -0.2843214273f, -0.2950716615f, -0.3059098721f,
-0.3168278933f, -0.3278113604f, -0.3388722837f, -0.3499914110f,
0.3611589968f, 0.3723795414f, 0.3836350143f, 0.3949211836f,
0.4062317610f, 0.4175696969f, 0.4289119840f, 0.4402553737f,
0.4515996575f, 0.4629307985f, 0.4742453098f, 0.4855253100f,
0.4967708290f, 0.5079817772f, 0.5191234946f, 0.5302240849f,
0.5412553549f, 0.5522051454f, 0.5630789399f, 0.5738524199f,
0.5845403075f, 0.5951123238f, 0.6055783629f, 0.6159110069f,
0.6261242628f, 0.6361979842f, 0.6461269855f, 0.6559016109f,
0.6655139923f, 0.6749663353f, 0.6842353344f, 0.6933282614f,
0.7022388577f, 0.7109410167f, 0.7194462419f, 0.7277448773f,
0.7358211875f, 0.7436828017f, 0.7513137460f, 0.7587080598f,
0.7658674717f, 0.7727780938f, 0.7794287801f, 0.7858353257f,
0.7919735909f, 0.7978466153f, 0.8034485579f, 0.8087695241f,
0.8138191104f, 0.8185775876f, 0.8230419755f, 0.8272275329f,
0.8311038613f, 0.8346937299f, 0.8379717469f, 0.8409541249f,
0.8436238170f, 0.8459818363f, 0.8480315804f, 0.8497804999f,
0.8511971235f, 0.8523046970f, 0.8531020880f, 0.8535720706f,
0.8537385464f, 0.8535720706f, 0.8531020880f, 0.8523046970f,
0.8511971235f, 0.8497804999f, 0.8480315804f, 0.8459818363f,
0.8436238170f, 0.8409541249f, 0.8379717469f, 0.8346937299f,
0.8311038613f, 0.8272275329f, 0.8230419755f, 0.8185775876f,
0.8138191104f, 0.8087695241f, 0.8034485579f, 0.7978466153f,
0.7919735909f, 0.7858353257f, 0.7794287801f, 0.7727780938f,
0.7658674717f, 0.7587080598f, 0.7513137460f, 0.7436828017f,
0.7358211875f, 0.7277448773f, 0.7194462419f, 0.7109410167f,
0.7022388577f, 0.6933282614f, 0.6842353344f, 0.6749663353f,
0.6655139923f, 0.6559016109f, 0.6461269855f, 0.6361979842f,
0.6261242628f, 0.6159110069f, 0.6055783629f, 0.5951123238f,
0.5845403075f, 0.5738524199f, 0.5630789399f, 0.5522051454f,
0.5412553549f, 0.5302240849f, 0.5191234946f, 0.5079817772f,
0.4967708290f, 0.4855253100f, 0.4742453098f, 0.4629307985f,
0.4515996575f, 0.4402553737f, 0.4289119840f, 0.4175696969f,
0.4062317610f, 0.3949211836f, 0.3836350143f, 0.3723795414f,
-0.3611589968f, -0.3499914110f, -0.3388722837f, -0.3278113604f,
-0.3168278933f, -0.3059098721f, -0.2950716615f, -0.2843214273f,
-0.2736634016f, -0.2631053329f, -0.2526480258f, -0.2423016876f,
-0.2320690900f, -0.2219652683f, -0.2119735926f, -0.2021250129f,
-0.1923966706f, -0.1828172505f, -0.1733808219f, -0.1640958786f,
-0.1549607068f, -0.1459766477f, -0.1371551752f, -0.1285002828f,
-0.1200077981f, -0.1116826907f, -0.1035329551f, -0.0955533385f,
-0.0877547562f, -0.0801372901f, -0.0726943314f, -0.0654409826f,
-0.0583705343f, -0.0514804162f, -0.0447806828f, -0.0382776558f,
-0.0319531262f, -0.0258227289f, -0.0198834129f, -0.0141288824f,
-0.0085711749f, -0.0032086896f, 0.0019765601f, 0.0069636861f,
0.0117623834f, 0.0163701251f, 0.0207997076f, 0.0250307564f,
0.0290824007f, 0.0329583921f, 0.0366418101f, 0.0401458293f,
0.0434768796f, 0.0466303304f, 0.0495978668f, 0.0524093807f,
0.0550460033f, 0.0575152710f, 0.0598166585f, 0.0619602762f,
0.0639444813f, 0.0657690689f, 0.0674525052f, 0.0689664036f,
0.0703533068f, 0.0715826377f, 0.0726774633f, 0.0736405998f,
0.0744664371f, 0.0751576275f, 0.0757305771f, 0.0761748329f,
0.0765050724f, 0.0767204911f, 0.0768230036f, 0.0768174008f,
0.0767093524f, 0.0764992163f, 0.0761992484f, 0.0758008361f,
0.0753137320f, 0.0747452527f, 0.0741003677f, 0.0733620226f,
0.0725682601f, 0.0717002675f, 0.0707628727f, 0.0697630271f,
0.0687043816f, 0.0676075965f, 0.0664367527f, 0.0652247071f,
0.0639715865f, 0.0626857802f, 0.0613455176f, 0.0599837489f,
0.0585915670f, 0.0571616441f, 0.0557173640f, 0.0542452782f,
0.0527630746f, 0.0512556173f, 0.0497385748f, 0.0482165702f,
0.0466843024f, 0.0451488420f, 0.0436097533f, 0.0420649089f,
0.0405349173f, 0.0390053689f, 0.0374812856f, 0.0359697565f,
0.0344620943f, 0.0329754092f, 0.0315017626f, 0.0300502665f,
0.0286072176f, 0.0271859430f, 0.0257875845f, 0.0244160984f,
0.0230680164f, 0.0217467546f, 0.0204531793f, 0.0191872437f,
0.0179433376f, 0.0167324711f, 0.0155405551f, 0.0143904667f,
-0.0132718217f, -0.0121849999f, -0.0111315548f, -0.0101150218f,
-0.0091325333f, -0.0081798229f, -0.0072615817f, -0.0063792295f,
-0.0055337213f, -0.0047222595f, -0.0039401124f, -0.0031933777f,
-0.0024826725f, -0.0018039473f, -0.0011568136f, -0.0005464281f,
0.0000276045f, 0.0005832264f, 0.0010902329f, 0.0015784682f,
0.0020274175f, 0.0024508541f, 0.0028446757f, 0.0032091886f,
0.0035401247f, 0.0038456409f, 0.0041251644f, 0.0043801861f,
0.0046039531f, 0.0048109470f, 0.0049839686f, 0.0051382277f,
0.0052715759f, 0.0053838976f, 0.0054753781f, 0.0055404366f,
0.0055917129f, 0.0056266114f, 0.0056389198f, 0.0056455196f,
0.0056220642f, 0.0055938023f, 0.0055475715f, 0.0054876041f,
0.0054196776f, 0.0053471681f, 0.0052461168f, 0.0051407353f,
0.0050393022f, 0.0049137603f, 0.0047932561f, 0.0046606460f,
0.0045209853f, 0.0043730722f, 0.0042264271f, 0.0040819752f,
0.0039207432f, 0.0037603923f, 0.0036008267f, 0.0034418874f,
0.0032739614f, 0.0031125420f, 0.0029469447f, 0.0027870464f,
0.0026201759f, 0.0024625617f, 0.0023017256f, 0.0021461584f,
0.0019841141f, 0.0018348265f, 0.0016868083f, 0.0015443220f,
0.0013902495f, 0.0012577885f, 0.0011250156f, 0.0009885988f,
0.0008608443f, 0.0007458026f, 0.0006239376f, 0.0005107389f,
0.0004026540f, 0.0002949531f, 0.0002043017f, 0.0001094383f,
0.0000134950f, -0.0000617334f, -0.0001446381f, -0.0002098337f,
-0.0002896981f, -0.0003501176f, -0.0004095121f, -0.0004606326f,
-0.0005145572f, -0.0005564576f, -0.0005946119f, -0.0006341595f,
-0.0006650415f, -0.0006917937f, -0.0007215392f, -0.0007319357f,
-0.0007530001f, -0.0007630794f, -0.0007757978f, -0.0007801449f,
-0.0007803665f, -0.0007779869f, -0.0007834332f, -0.0007724849f,
-0.0007681372f, -0.0007490598f, -0.0007440942f, -0.0007255043f,
-0.0007157737f, -0.0006941615f, -0.0006777691f, -0.0006540333f,
-0.0006312493f, -0.0006132748f, -0.0005870931f, -0.0005677803f,
-0.0005466565f, -0.0005226564f, -0.0005040714f, -0.0004893791f,
-0.0004875228f, -0.0004947518f, -0.0005617692f, -0.0005525287f
};
/********************************************************************/
static const Ipp32f
SBR_TAB4_QMF_ENC_FP[] = {
0.99983058179582340000f, 0.01840672990580482000f, 0.99847558057329477000f, 0.05519524434968993400f,
0.99576741446765982000f, 0.09190895649713272400f, 0.99170975366909953000f, 0.12849811079379317000f,
0.98630809724459867000f, 0.16491312048996989000f, 0.97956976568544052000f, 0.20110463484209187000f,
0.97150389098625178000f, 0.23702360599436723000f, 0.96212140426904158000f, 0.27262135544994892000f,
0.95143502096900834000f, 0.30784964004153492000f, 0.93945922360218992000f, 0.34266071731199438000f,
0.92621024213831138000f, 0.37700741021641826000f, 0.91170603200542988000f, 0.41084317105790391000f,
0.89596624975618522000f, 0.44412214457042920000f, 0.87901222642863353000f, 0.47679923006332209000f,
0.86086693863776731000f, 0.50883014254310699000f, 0.84155497743689844000f, 0.54017147272989285000f,
0.82110251499110465000f, 0.57078074588696726000f, 0.79953726910790501000f, 0.60061647938386897000f,
0.77688846567323244000f, 0.62963823891492698000f, 0.75318679904361252000f, 0.65780669329707864000f,
0.72846439044822531000f, 0.68508366777270024000f, 0.70275474445722530000f, 0.71143219574521643000f,
0.67609270357531592000f, 0.73681656887736990000f, 0.64851440102211244000f, 0.76120238548426178000f,
0.62005721176328921000f, 0.78455659715557513000f, 0.59075970185887428000f, 0.80684755354379922000f,
0.56066157619733603000f, 0.82804504525775580000f, 0.52980362468629461000f, 0.84812034480329734000f,
0.49822766697278187000f, 0.86704624551569265000f, 0.46597649576796613000f, 0.88479709843093779000f,
0.43309381885315201000f, 0.90134884704602203000f, 0.39962419984564679000f, 0.91667905992104270000f,
0.36561299780477396000f, 0.93076696107898371000f, 0.33110630575987643000f, 0.94359345816196039000f,
0.29615088824362396000f, 0.95514116830577067000f, 0.26079411791527557000f, 0.96539444169768940000f,
0.22508391135979300000f, 0.97433938278557586000f, 0.18906866414980628000f, 0.98196386910955524000f,
0.15279718525844341000f, 0.98825756773074946000f, 0.11631863091190466000f, 0.99321194923479450000f,
0.07968243797143012600f, 0.99682029929116567000f, 0.04293825693494073700f, 0.99907772775264536000f,
0.00613588464915451520f, 0.99998117528260111000f, -0.03067480317663645900f, 0.99952941750109314000f,
-0.06744391956366398200f, 0.99772306664419164000f, -0.10412163387205438000f, 0.99456457073425553000f,
-0.14065823933284891000f, 0.99005821026229712000f, -0.17700422041214875000f, 0.98421009238692903000f,
-0.21311031991609125000f, 0.97702814265775439000f, -0.24892760574572034000f, 0.96852209427441727000f,
-0.28440753721127188000f, 0.95870347489587149000f, -0.31950203081601564000f, 0.94758559101774120000f,
-0.35416352542049040000f, 0.93518350993894761000f, -0.38834504669882619000f, 0.92151403934204201000f,
-0.42200027079979929000f, 0.90659570451491556000f, -0.45508358712634372000f, 0.89044872324475799000f,
-0.48755016014843572000f, 0.87309497841829020000f, -0.51935599016558964000f, 0.85455798836540053000f,
-0.55045797293660470000f, 0.83486287498638012000f, -0.58081395809576442000f, 0.81403632970594852000f,
-0.61038280627630959000f, 0.79210657730021228000f, -0.63912444486377573000f, 0.76910333764557959000f,
-0.66699992230363736000f, 0.74505778544146606000f, -0.69397146088965378000f, 0.72000250796138177000f
};
/*******************************************************************/
static const Ipp32f
SBR_TAB3_QMF_ENC_FP[] = {
1.00000000000000000000f, 0.00000000000000000000f, 0.99969881869620425000f, -0.02454122852291228800f,
0.99879545620517241000f, -0.04906767432741801500f, 0.99729045667869021000f, -0.07356456359966742600f,
0.99518472667219693000f, -0.09801714032956060400f, 0.99247953459870997000f, -0.12241067519921620000f,
0.98917650996478101000f, -0.14673047445536175000f, 0.98527764238894122000f, -0.17096188876030122000f,
0.98078528040323043000f, -0.19509032201612825000f, 0.97570213003852857000f, -0.21910124015686980000f,
0.97003125319454397000f, -0.24298017990326387000f, 0.96377606579543984000f, -0.26671275747489837000f,
0.95694033573220882000f, -0.29028467725446233000f, 0.94952818059303667000f, -0.31368174039889152000f,
0.94154406518302081000f, -0.33688985339222005000f, 0.93299279883473896000f, -0.35989503653498811000f,
0.92387953251128674000f, -0.38268343236508978000f, 0.91420975570353069000f, -0.40524131400498986000f,
0.90398929312344334000f, -0.42755509343028208000f, 0.89322430119551532000f, -0.44961132965460654000f,
0.88192126434835505000f, -0.47139673682599764000f, 0.87008699110871146000f, -0.49289819222978404000f,
0.85772861000027212000f, -0.51410274419322166000f, 0.84485356524970712000f, -0.53499761988709715000f,
0.83146961230254524000f, -0.55557023301960218000f, 0.81758481315158371000f, -0.57580819141784534000f,
0.80320753148064494000f, -0.59569930449243336000f, 0.78834642762660634000f, -0.61523159058062682000f,
0.77301045336273699000f, -0.63439328416364549000f, 0.75720884650648457000f, -0.65317284295377676000f,
0.74095112535495911000f, -0.67155895484701833000f, 0.72424708295146700000f, -0.68954054473706683000f,
0.70710678118654757000f, -0.70710678118654746000f, 0.68954054473706694000f, -0.72424708295146689000f,
0.67155895484701833000f, -0.74095112535495911000f, 0.65317284295377676000f, -0.75720884650648446000f,
0.63439328416364549000f, -0.77301045336273699000f, 0.61523159058062682000f, -0.78834642762660623000f,
0.59569930449243347000f, -0.80320753148064483000f, 0.57580819141784534000f, -0.81758481315158371000f,
0.55557023301960229000f, -0.83146961230254524000f, 0.53499761988709726000f, -0.84485356524970701000f,
0.51410274419322166000f, -0.85772861000027212000f, 0.49289819222978409000f, -0.87008699110871135000f,
0.47139673682599781000f, -0.88192126434835494000f, 0.44961132965460660000f, -0.89322430119551532000f,
0.42755509343028220000f, -0.90398929312344334000f, 0.40524131400498986000f, -0.91420975570353069000f,
0.38268343236508984000f, -0.92387953251128674000f, 0.35989503653498828000f, -0.93299279883473885000f,
0.33688985339222005000f, -0.94154406518302081000f, 0.31368174039889157000f, -0.94952818059303667000f,
0.29028467725446233000f, -0.95694033573220894000f, 0.26671275747489842000f, -0.96377606579543984000f,
0.24298017990326398000f, -0.97003125319454397000f, 0.21910124015686977000f, -0.97570213003852857000f,
0.19509032201612833000f, -0.98078528040323043000f, 0.17096188876030136000f, -0.98527764238894122000f,
0.14673047445536175000f, -0.98917650996478101000f, 0.12241067519921628000f, -0.99247953459870997000f,
0.09801714032956077000f, -0.99518472667219682000f, 0.07356456359966745400f, -0.99729045667869021000f,
0.04906767432741812600f, -0.99879545620517241000f, 0.02454122852291226400f, -0.99969881869620425000f
};
/*******************************************************************/
static const Ipp32f
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -