1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458 |
- /* /////////////////////////////////////////////////////////////////////////////
- //
- // 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) 2001-2009 Intel Corporation. All Rights Reserved.
- //
- // Intel(R) Integrated Performance Primitives
- // Speech Coding
- //
- */
- #if !defined( __IPPSC_H__ ) || defined( _OWN_BLDPCS )
- #define __IPPSC_H__
- #if defined (_WIN32_WCE) && defined (_M_IX86) && defined (__stdcall)
- #define _IPP_STDCALL_CDECL
- #undef __stdcall
- #endif
- #ifndef __IPPDEFS_H__
- #include "ippdefs.h"
- #endif
- #ifdef __cplusplus
- extern "C" {
- #endif
- #if !defined( _OWN_BLDPCS )
- /* /////////////////////////////////////////////////////////////////////////////
- // Speech compression bit rates structure
- ///////////////////////////////////////////////////////////////////////////// */
- typedef enum {
- IPP_SPCHBR_4750 = 0, /* 4.75 kbps GSMAMR */
- IPP_SPCHBR_5150, /* 5.15 kbps GSMAMR */
- IPP_SPCHBR_5300, /* 5.3 kbps G723.1 */
- IPP_SPCHBR_5900, /* 5.9 kbps GSMAMR */
- IPP_SPCHBR_6300, /* 6.3 kbps G723.1 */
- IPP_SPCHBR_6600, /* 6.60 kbps AMRWB */
- IPP_SPCHBR_6700, /* 6.7 kbps GSMAMR */
- IPP_SPCHBR_7400, /* 7.4 kbps GSMAMR */
- IPP_SPCHBR_7950, /* 7.95 kbps GSMAMR */
- IPP_SPCHBR_8850, /* 8.85 kbps AMRWB */
- IPP_SPCHBR_9600, /* 9.60 kbps G728 */
- IPP_SPCHBR_10200, /* 10.2 kbps GSMAMR */
- IPP_SPCHBR_12200, /* 12.2 kbps GSMAMR */
- IPP_SPCHBR_12650, /* 12.65 kbps AMRWB */
- IPP_SPCHBR_12800, /* 12.8 kbps G728 */
- IPP_SPCHBR_14250, /* 14.25 kbps AMRWB */
- IPP_SPCHBR_15850, /* 15.85 kbps AMRWB */
- IPP_SPCHBR_16000, /* 16 kbps G726, G728 */
- IPP_SPCHBR_18250, /* 18.25 kbps AMRWB */
- IPP_SPCHBR_19850, /* 19.85 kbps AMRWB */
- IPP_SPCHBR_23050, /* 23.05 kbps AMRWB */
- IPP_SPCHBR_23850, /* 23.85 kbps AMRWB */
- IPP_SPCHBR_24000, /* 24 kbps G726, AMRWBE */
- IPP_SPCHBR_32000, /* 32 kbps G726 */
- IPP_SPCHBR_40000, /* 40 kbps G726 */
- IPP_SPCHBR_DTX, /* Discontinuous TX mode for various codecs*/
- /* IPP_SPCHBR_6400, 6.4 kbps G729D
- // IPP_SPCHBR_8000, 8.0 kbps G729
- // IPP_SPCHBR_11800, 11.8 kbps G729E
- // IPP_SPCHBR_13000, 13.0 kbps GSMFR
- // IPP_SPCHBR_48000, 48 kbps G722
- // IPP_SPCHBR_56000, 56 kbps G722
- // IPP_SPCHBR_64000, 64 kbps G711, G722 */
- IPP_SPCHBR_10400, /* 10.4 kbps AMRWBE */
- IPP_SPCHBR_12000, /* 12.0 kbps AMRWBE */
- IPP_SPCHBR_13600, /* 13.6 kbps AMRWBE */
- IPP_SPCHBR_15200, /* 15.2 kbps AMRWBE, iLBC */
- IPP_SPCHBR_16800, /* 16.8 kbps AMRWBE */
- IPP_SPCHBR_19200, /* 19.2 kbps AMRWBE */
- IPP_SPCHBR_20800, /* 20.8 kbps AMRWBE */
- IPP_SPCHBR_13330 /* 13.33 kbps iLBC */
- /* new bitrates to be added to the end */
- } IppSpchBitRate;
- typedef enum {
- IPP_PCM_MULAW = 0, /* mu-Law */
- IPP_PCM_ALAW, /* A-Law */
- IPP_PCM_LINEAR /* uniform PCM */
- } IppPCMLaw;
- typedef enum {
- IPP_PCM_FREQ_8000 = 8000, /* 8 kHz */
- IPP_PCM_FREQ_16000 = 16000, /* 16 kHz */
- IPP_PCM_FREQ_22050 = 22050, /* 22.05 kHz */
- IPP_PCM_FREQ_32000 = 32000, /* 32 kHz */
- IPP_PCM_FREQ_11025 = 11025
- } IppPCMFrequency;
- typedef enum {
- ippsNrNone,
- ippsNrLow,
- ippsNrMedium,
- ippsNrNormal,
- ippsNrHigh,
- ippsNrAuto
- } IppsNRLevel;
- typedef enum {
- ippsNrNoUpdate=-1,
- ippsNrUpdate,
- ippsNrUpdateAll
- } IppsNrMode;
- typedef enum {
- ippsNrSmoothDynamic=-1,
- ippsNrSmoothStatic,
- ippsNrSmoothOff
- } IppsNrSmoothMode;
- typedef enum {
- IPP_G722_VOICED,
- IPP_G722_UNVOICED,
- IPP_G722_TRANSIENT,
- IPP_G722_WEAKLY_VOICED,
- IPP_G722_VUV_TRANSITION
- } IppG722SBClass;
- typedef struct {
- Ipp16s pPrevSignalSublevel[9]; /* signal sublevel vector */
- Ipp16s pPrevSignalLevel[9]; /* previous signal level vector */
- Ipp16s pPrevAverageLevel[9]; /* average signal level */
- Ipp16s pBkgNoiseEstimate[9]; /* background noise estimate vector */
- Ipp16s pFifthFltState[6]; /* 5th order filters history */
- Ipp16s pThirdFltState[5]; /* 3rd order filters history */
- Ipp16s burstCount; /* burst counter */
- Ipp16s hangCount; /* hangover counter */
- Ipp16s statCount; /* stationarity counter */
- Ipp16s vadReg; /* intermediate vad decision */
- Ipp16s complexHigh; /* high for complex signal decision */
- Ipp16s complexLow; /* low for ccomplex signal decision */
- Ipp16s complexHangTimer; /* complex hangover timer */
- Ipp16s complexHangCount; /* complex hangover counter */
- Ipp16s complexWarning; /* complex_warining flag */
- Ipp16s corrHp; /* High-pass filtered signal correlation */
- Ipp16s pitchFlag; /* pitch flag by pitch detection */
- } IppGSMAMRVad1State;
- typedef struct {
- Ipp32s pEngyEstimate[16]; /* channel energy estimate vector of */
- /* current half-frame */
- Ipp32s pNoiseEstimate[16]; /* channel noise estimate vector of */
- /* current half-frame */
- Ipp16s pLongTermEngyDb[16]; /* channel long-term log energy vector */
- /* of current half-frame */
- Ipp16s preEmphasisFactor; /* pre-emphasize factor */
- Ipp16s updateCount; /* update counter */
- Ipp16s lastUpdateCount; /* last update counter */
- Ipp16s hysterCount; /* hyster counter */
- Ipp16s prevNormShift; /* previous normalize shift bits */
- Ipp16s shiftState; /* previous half-frame shift state */
- Ipp16s forcedUpdateFlag; /* forced update flag */
- Ipp16s ltpSnr; /* long-term peak SNR */
- Ipp16s variabFactor; /* background noise variability factor */
- Ipp16s negSnrBias; /* negative SNR sensitivity Bias */
- Ipp16s burstCount; /* burst counter */
- Ipp16s hangOverCount; /* hangover counter */
- Ipp32s frameCount; /* frame counter */
- } IppGSMAMRVad2State;
- typedef struct Ipp32s_EC_Sfs_Def {
- Ipp32s val;
- Ipp32s sf;
- } Ipp32s_EC_Sfs;
- #endif /* _OWN_BLDPCS */
- /* /////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- // Functions declarations
- ////////////////////////////////////////////////////////////////////////////////
- ///////////////////////////////////////////////////////////////////////////// */
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippscGetLibVersion
- // Purpose: getting of the library version
- // Returns: the structure of information about version
- // of ippSC library
- // Parameters:
- //
- // Notes: not necessary to release the returned structure
- */
- IPPAPI( const IppLibraryVersion*, ippscGetLibVersion, (void) )
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsHighPassFilterSize
- // Purpose: Knowing of G729 high pass preprocessing filter size demand
- // Parameters:
- // pSize Pointer to the output value of the memory size needed for filtering
- // Returns:
- // ippStsNoErr, if no errors
- */
- IPPAPI( IppStatus, ippsHighPassFilterSize_G729, (int *pSize) )
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsHighPassFilterInit
- // Purpose: Initialization of the memory allocated for preprocessing filter
- // Parameters:
- // pMem pointer to the memory supplied for filtering
- // Returns: ippStsNoErr, if no errors
- //
- */
- IPPAPI( IppStatus, ippsHighPassFilterInit_G729, (const Ipp16s *pCoeff, char* pMem) )
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsHighPassFilter
- // Purpose: G729 input signal preprocessing, consists of two functions applied:
- // - scaling ( divide by a factor 2)
- // - high-pass filtering
- // Parameters:
- // pSrcDst pointer to the vector for inplace operation
- // pMem pointer to the memory supplied for filtering
- // Returns: ippStsNoErr, if no errors
- */
- IPPAPI( IppStatus, ippsHighPassFilter_G729_16s_ISfs, (Ipp16s* pSrcDst, int len, int scaleFactor,
- char* pMem) )
- IPPAPI( IppStatus, ippsHighPassFilter_G723_16s, (const Ipp16s* pSrc, Ipp16s* pDst, int* pMem) )
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsMul
- // Purpose: multiply operations upon every element of
- // the source vectors.
- // rounding to nearest:
- // const1 = 1<<(scaleFactor-1)
- // (a*b+const1)>>scaleFactor;
- // Parameters:
- // pSrc pointer to the input vector
- // pSrc1 pointer to the first source vector
- // pSrc2 pointer to the second source vector
- // pDst pointer to the output vector
- // pSrcDst pointer to the source/destination vector
- // len length of the vectors
- // scaleFactor scale factor value
- // Returns: ippStsNoErr, if no errors
- */
- IPPAPI( IppStatus, ippsMul_NR_16s_Sfs, (const Ipp16s* pSrc1, const Ipp16s* pSrc2,
- Ipp16s* pDst, int len, int scaleFactor) )
- IPPAPI( IppStatus, ippsMul_NR_16s_ISfs, (const Ipp16s* pSrc, Ipp16s* pSrcDst,
- int len, int scaleFactor) )
- IPPAPI( IppStatus, ippsMulC_NR_16s_ISfs, (Ipp16s val, Ipp16s* pSrcDst, int len, int scaleFactor) )
- IPPAPI( IppStatus, ippsMulC_NR_16s_Sfs, ( const Ipp16s* pSrc, Ipp16s val, Ipp16s* pDst,
- int len, int scaleFactor) )
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsMulPowerC
- // Purpose: power weighting of every element of the source vectors
- // dst[i] = pow(val, i)*src[i] ; i=0..len-1
- // with rounding to nearest:
- // const1 = 1<<(scaleFactor-1)
- // (a*b+const1)>>scaleFactor;
- // Parameters:
- // pSrc pointer to the input vector
- // pDst pointer to the output vector
- // len length of the vectors
- // scaleFactor scale factor value
- // Returns: ippStsNoErr, if no errors
- */
- IPPAPI( IppStatus, ippsMulPowerC_NR_16s_Sfs, (const Ipp16s* pSrc, Ipp16s val, Ipp16s* pDst,
- int len, int scaleFactor) )
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsInvSqrt
- // Purpose: Inverted square root with normalization
- // Parameters:
- // pSrcDst pointer to the input/output vector
- // len length of the input vector
- // Returns: ippStsNoErr, if no errors
- */
- IPPAPI( IppStatus, ippsInvSqrt_32s_I, (Ipp32s *pSrcDst, int len ) )
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsAutoScale
- // Purpose: Autoscaling: Find and normalize (shift left) the absolute
- // maximal element and then do the same shift for all other elements
- // Parameters:
- // pSrc pointer to the input vector
- // pDst pointer to the output vector
- // pSrcDst pointer to the input/output vector
- // len length of the input vector
- // pScale pointer to the output scaling factor
- // (number of bit the output vector has been shifted left)
- // Returns: ippStsNoErr, if no errors
- */
- IPPAPI( IppStatus, ippsAutoScale_16s, (const Ipp16s *pSrc, Ipp16s *pDst, int Len , int *pScale) )
- IPPAPI( IppStatus, ippsAutoScale_16s_I, ( Ipp16s *pSrcDst, int Len , int *pScale) )
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsAutoCorrLagMax
- // Purpose: Find the maximum of the correlation for the given lag range
- // r[lag]=SUM(n=0,...,len-1) src[n]*src[n-lag] - backward
- // r[lag]=SUM(n=0,...,len-1) src[n]*src[n+lag] - forward
- // within the range [lowerLag,upperLag] of the lags.
- // Parameters:
- // pSrc pointer to the input vector
- // len length of the input vector
- // lowerLag lower input lag value
- // upperLag upper input lag value
- // pMax pointer to the output maximum of the correlation
- // maxLag pointer to the output lag value that hold maximum
- // Returns: ippStsNoErr, if no errors
- */
- IPPAPI( IppStatus, ippsAutoCorrLagMax_Fwd_16s, (const Ipp16s *pSrc, int len, int lowerLag,
- int upperLag, Ipp32s *pMax, int *maxLag ) )
- IPPAPI( IppStatus, ippsAutoCorrLagMax_Inv_16s, (const Ipp16s *pSrc, int len, int lowerLag,
- int upperLag, Ipp32s *pMax, int *maxLag ) )
- IPPAPI( IppStatus, ippsAutoCorrLagMax_32f,(const Ipp32f *pSrc, int len, int lowerLag,
- int upperLag, Ipp32f *pMax, int *maxLag ))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsAutoCorr_NormE
- // Purpose: Compute autocorrelation using formula:
- // r[n]=SUM(i=0,...,len-n-1) src[i]*src[i+n], n=0,...,lenDst-1
- // Norm in function name means multiplication of result by normalzation factor
- // of corr[0].
- // Parameters:
- // pSrc pointer to the input vector
- // len length of the input vector
- // step
- // pDst pointer to the output autocorrelation vector
- // lenDst length of the output vector
- // Returns: ippStsNoErr, if no errors
- // ippStsOverflow, if at least one result really was saturated
- */
- IPPAPI( IppStatus, ippsAutoCorr_16s32s,
- (const Ipp16s *pSrc, int srcLen, Ipp32s *pDst, int dstLen ))
- IPPAPI( IppStatus, ippsAutoCorr_NormE_16s32s, (const Ipp16s *pSrc, int len, Ipp32s *pDst,
- int lenDst, int *pNorm) )
- IPPAPI( IppStatus, ippsAutoCorr_NormE_NR_16s, (const Ipp16s *pSrc, int len, Ipp16s *pDst,
- int lenDst, int *pNorm) )
- IPPAPI( IppStatus, ippsAutoCorr_NormE_G723_16s, (const Ipp16s *pSrc, Ipp16s *pDst, int *pNorm) )
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsToeplizMatrix
- // Purpose: Compute of the autocorrelation matrix for the impulse response
- // Parameters:
- // pSrc pointer to the input vector (Impulse response)
- // pDst pointer to the output autocorrelation matrix
- // Returns: ippStsNoErr, if no errors
- */
- IPPAPI( IppStatus, ippsToeplizMatrix_G729_16s32s,(const Ipp16s *pSrcImpulseResponse, Ipp32s *pDstMatrix))
- IPPAPI( IppStatus, ippsToeplizMatrix_G729_16s, (const Ipp16s *pSrcImpulseResponse, Ipp16s *pDstMatrix))
- IPPAPI( IppStatus, ippsToeplizMatrix_G723_16s32s,(const Ipp16s *pSrcImpulseResponse, Ipp32s *pDstMatrix))
- IPPAPI( IppStatus, ippsToeplizMatrix_G723_16s, (const Ipp16s *pSrcImpulseResponse, Ipp16s *pDstMatrix))
- IPPAPI( IppStatus, ippsToeplizMatrix_G729_32f, (const Ipp32f *pSrcImpulseResponse, Ipp32f *pDstMatrix))
- IPPAPI( IppStatus, ippsToeplizMatrix_G729D_32f, (const Ipp32f *pSrcImpulseResponse, Ipp32f *pDstMatrix))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsCrossCorr
- // Purpose: Compute crosscorrelation of two vectors using formula:
- // r[k]=SUM(i=k,...,len) src2[i]*src1[j-i] k=0,...,lenDst-1
- // result is scaled so that the crosscorrelation maximum is int 13 bit
- // Parameters:
- // pSrc1 pointer to the input vector
- // pSrc2 pointer to the input vector
- // len length of the correlation
- // pDst pointer to the output crosscorrelation vector
- // lenDst length of the output vector
- // scaleFactor Scale factor of the destination vector.
- // Returns: ippStsNoErr, if no errors
- */
- IPPAPI( IppStatus, ippsCrossCorr_NormM_16s, (const Ipp16s *pSrc1, const Ipp16s *pSrc2, int len,
- Ipp16s *pDst) )
- IPPAPI( IppStatus, ippsCrossCorr_16s32s_Sfs, (const Ipp16s *pSrc1, const Ipp16s *pSrc2, int len,
- Ipp32s *pDst, int scaleFactor) )
- IPPAPI(IppStatus, ippsCrossCorr_NR_16s, ( const Ipp16s* pSrc1, const Ipp16s* pSrc2, int len,
- Ipp16s* pDst, int lenDst))
- IPPAPI ( IppStatus, ippsCrossCorr_NR_16s_Sfs, (const Ipp16s* pSrc1, const Ipp16s* pSrc2, int len, Ipp16s* pDst, int lenDst, int scaleFactor))
- IPPAPI ( IppStatus, ippsCrossCorr_NR_16s32s, (const Ipp16s *pSrc1, const Ipp16s *pSrc2, Ipp32s len, Ipp32s *pDst, Ipp32s lenDst))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsCrossCorrLagMax
- // Purpose: Find the maximum of the cross-correlation for the given lag range [0,lag]
- // r[lag]=SUM(n=0,...,len-1) src1[n]*src2[n+lag]
- // within the range [lowerLag,upperLag] of the lags.
- // Parameters:
- // pSrc pointer to the input vector
- // len length of the input vector
- // lag max lag value
- // pMax pointer to the output maximum of the correlation
- // pMaxLag pointer to the output lag value that hold maximum
- // Returns: ippStsNoErr, if no errors
- */
- IPPAPI(IppStatus, ippsCrossCorrLagMax_16s, (const Ipp16s *pSrc1, const Ipp16s *pSrc2, int len,
- int lag, Ipp32s *pMax, int *pMaxLag))
- IPPAPI(IppStatus, ippsCrossCorrLagMax_32f64f,(const Ipp32f *pSrc1, const Ipp32f *pSrc2, int len,
- int lag, Ipp64f *pMax, int *pMaxLag ))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsOpenLoopPitchSearch
- // Purpose: Find the best codebook delay by open-loop pitch analysis
- // r[lag]=SUM(n=0,...,L_FRAME-1) src[n]*src[n-lag]
- // within the range [lowerLag,upperLag] of the lags.
- // Parameters:
- // pSrc pointer to the input vector of range [pSrc-upperLag,pSrc+L_FRAME-1]
- // bestLag pointer to the output best open-loop pitch lag
- // Returns: ippStsNoErr, if no errors
- */
- IPPAPI( IppStatus, ippsOpenLoopPitchSearch_G729_16s, (const Ipp16s *pSrc, Ipp16s* bestLag) )
- IPPAPI( IppStatus, ippsOpenLoopPitchSearch_G729A_16s,(const Ipp16s *pSrc, Ipp16s* bestLag) )
- IPPAPI( IppStatus, ippsOpenLoopPitchSearch_G729A_32f,(const Ipp32f *pSrc, Ipp32s* bestLag))
- IPPAPI( IppStatus, ippsOpenLoopPitchSearch_G723_16s, (const Ipp16s *pSrc, Ipp16s* bestLag ) )
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsDotProd
- // Purpose: Compute dot product of two input signals using formula:
- // energy=SUM(n=0,...,len-1) src1[n]*src2[n]
- // AutoScale function interchange downscaling by 1 of input vectors until
- // no overflow occured, returns total number of shifts right.
- // Parameters:
- // pSrc1 pointer to the first input vector
- // pSrc2 pointer to the second input vector
- // len length of each input vectors
- // pDp pointer to the output result value
- // pSfs pointer to the output total number of shifts right done to avoid overflow
- // Returns: ippStsNoErr, if no errors
- // ippStsOverflow, if at least one result really was saturated
- */
- IPPAPI( IppStatus, ippsDotProd_G729A_16s32s,
- (const Ipp16s* pSrc1, const Ipp16s* pSrc2, int len, Ipp32s* pDp) )
- IPPAPI( IppStatus, ippsDotProd_G729A_32f,
- (const Ipp32f* pSrc1, const Ipp32f* pSrc2, int len, Ipp32f* pDp) )
- IPPAPI( IppStatus, ippsDotProdAutoScale_16s32s_Sfs,
- (const Ipp16s* pSrc1, const Ipp16s* pSrc2, int len, Ipp32s* pDp, int *pSfs) )
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsLagWindow
- // Purpose: A 60 Hz bandwidth expansion is applied to input auto-correlation
- // r[0]=1.0001*r[0];
- // r[k]=wlag[k]*r[k];
- // 60 Hz bandwidth expansion coefficients
- // w_lag(k)=exp[-1/2*(2*pi*f0*k/fs)^2]
- // where : f0 = 60 Hz
- // fs = 8000 Hz
- // Parameters:
- // pSrcDst pointer to the autocorrelation vector
- // len length of the autocorrelation vector
- // Returns: ippStsNoErr, if no errors
- */
- IPPAPI( IppStatus, ippsLagWindow_G729_32s_I, (Ipp32s *pSrcDst, int len) )
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsLSPToLSF
- // pLSF[i] = arccos(pLSP[i]); i=0,...,10
- // pLSP pointer to the LSP input vector of values 15 bit scaled in range [-1:1]
- // pLSF pointer to the LSF output vector
- // ippsLSPToLSF_G729_16s: 13 bit scaled in range [0:pi]
- // ippsLSPToLSF_Norm_G729_16s: 15 bit scaled in range [0:0.5]
- // Parameters:
- // Returns: ippStsNoErr, if no errors
- */
- IPPAPI( IppStatus, ippsLSPToLSF_G729_16s, (const Ipp16s *pLSP, Ipp16s *pLSF) )
- IPPAPI( IppStatus, ippsLSPToLSF_Norm_G729_16s, (const Ipp16s *pLSP, Ipp16s *pLSF) )
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsLSFQuant
- // Purpose: Quantize of LSPs
- // Parameters:
- // pLSF pointer to the input vector of LSF representation of LSP
- // pQuantLSFTable pointer to the table of the previously quantized LSFs
- // prevLSF pointer to the input vector of previously quantized LSFs
- // pQuantLSF pointer to the output vector of quantized LSF
- // quantIndex pointer to the output combined codebook indices
- // G729 - MA,L0,L1,L2
- // Returns: ippStsNoErr, if no errors
- // ippStsLSFHigh, ippStsLSFLow or ippStsLSFLowAndHigh warnings
- */
- IPPAPI( IppStatus, ippsLSFQuant_G729_16s, (const Ipp16s *pLSF, Ipp16s *pQuantLSFTable,
- Ipp16s *pQuantLSF, Ipp16s *quantIndex) )
- IPPAPI( IppStatus, ippsLSFQuant_G729B_16s, (const Ipp16s *pLSF, Ipp16s *pQuantLSFTable,
- Ipp16s *pQuantLSF, Ipp16s *quantIndex) )
- IPPAPI ( IppStatus, ippsLSFQuant_G729B_32f,(const Ipp32f *pLSF, Ipp32f *pQuantLSFTable,
- Ipp32f *pQuantLSF, int *quantIndex) )
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsLSFDecode
- // Purpose: Construct LSFs by codebook indices
- // Parameters:
- // quantIndex pointer to the input vector of codebook indices ( L0,L1,L2 )
- // pQuantLSFTable pointer to the table of previously quantized LSFs
- // pPrevLSF pointer to the input vector of the previously quantized LSFs
- // pLSF pointer to the constructed LSF output vector
- // Returns: ippStsNoErr, if no errors
- // ippStsLSFHigh, ippStsLSFLow or ippStsLSFLowAndHigh warnings
- */
- IPPAPI( IppStatus, ippsLSFDecode_G729_16s, (const Ipp16s *quantIndex, Ipp16s *pQuantLSPTable,
- Ipp16s *pQuantLSF) )
- IPPAPI (IppStatus, ippsLSFDecode_G729_32f, (const int *quantIndex, Ipp32f *pQuantLSFTable,
- Ipp32f *pQuantLSF) )
- IPPAPI( IppStatus, ippsLSFDecodeErased_G729_16s, (Ipp16s maIndex, Ipp16s *pQuantLSFTable,
- const Ipp16s *pLSF) )
- IPPAPI ( IppStatus,ippsLSFDecodeErased_G729_32f, (int maIndex, Ipp32f *pQuantLSFTable,
- const Ipp32f *pSrcPrevLSF))
- IPPAPI( IppStatus, ippsLSFDecode_G729B_16s, (const Ipp16s *quantIndex, Ipp16s *pQuantLSFTable,
- Ipp16s *pLSF) )
- IPPAPI ( IppStatus, ippsLSFDecode_G729B_32f,(const int *quantIndex, Ipp32f *pQuantLSFTable, Ipp32f *pDstQLsp ))
- IPPAPI( IppStatus, ippsLSFDecode_G723_16s, ( const Ipp16s *quantIndex, const Ipp16s *pPrevLSF,
- int erase, Ipp16s *pLSF ) )
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsLSFToLSP
- // Purpose: LSF interpolation and conversion to LPC
- // Parameters:
- // pLSF pointer to the LSF input vector
- // pLPC pointer to the LPC output vector of values in range [-1,1] 15 bit scaled
- // Returns: ippStsNoErr, if no errors
- //
- */
- IPPAPI( IppStatus, ippsLSFToLSP_G729_16s, (const Ipp16s *pLSF, Ipp16s *pLSP) )
- IPPAPI( IppStatus, ippsLSFToLSP_GSMAMR_16s, (const Ipp16s *pLSF, Ipp16s *pLSP) )
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsInterpolation
- // Purpose: interpolation of two vector
- // ippsInterpolation_G729_16s: dst = ((src1+sign(src1) )>>1+((src2+sign(src2) )>>1
- // ippsInterpolationC_G729_16s_Sfs: dst = (val1*src1+val2*src2)>>scaleFactor
- // ippsInterpolation_GSMAMR_16s: dst = (src1>>2)+(src2-(src2>>2))
- // Parameters:
- // pSrc1 pointer to the input vector1
- // pSrc2 pointer to the input vector2
- // pDst pointer to the interpolated output vector
- // val1 interp. coeff. of first vector
- // val2 interp. coeff. of second vector
- // scaleFactor scaling factor to apply to the result
- // len length of the vectors
- / Returns: ippStsNoErr, if no errors
- */
- IPPAPI( IppStatus, ippsInterpolate_G729_16s, (const Ipp16s *pSrc1, const Ipp16s *pSrc2,
- Ipp16s *pDst, int len) )
- IPPAPI( IppStatus, ippsInterpolateC_G729_16s_Sfs, (const Ipp16s *pSrc1, Ipp16s val1,
- const Ipp16s *pSrc2, Ipp16s val2, Ipp16s *pDst, int len, int scaleFactor) )
- IPPAPI( IppStatus, ippsInterpolateC_NR_G729_16s_Sfs, (const Ipp16s *pSrc1, Ipp16s val1,
- const Ipp16s *pSrc2, Ipp16s val2, Ipp16s *pDst, int len, int scaleFactor) )
- IPPAPI( IppStatus, ippsInterpolateC_G729_32f,(const Ipp32f *pSrc1, Ipp32f val1,
- const Ipp32f *pSrc2, Ipp32f val2, Ipp32f *pDst, int len))
- IPPAPI ( IppStatus, ippsInterpolate_GSMAMR_16s,
- (const Ipp16s *pSrc1, const Ipp16s *pSrc2, Ipp16s *pDst, int len))
- /* ////////////////////////////////////////////////////////////////////////////////////////
- // Name: ippsLSPToLPC
- // Purpose: LSP conversion to LPC
- // Parameters:
- // pLSP pointer to the LSP input vector
- // pLPC pointer to the LPC output vector of values in range [-1,1] 15 bit scaled
- // pLSFLPC pointer to the input LSF/output LPC vector
- // Returns: ippStsNoErr, if no errors
- //
- */
- IPPAPI( IppStatus, ippsLSPToLPC_G729_16s, (const Ipp16s *pSrcLSP, Ipp16s *pDstLPC) )
- IPPAPI( IppStatus, ippsLSPToLPC_G729_32f, (const Ipp32f *pSrcLSP, Ipp32f *pDstLPC) )
- /* ///////////////////////////////////////////////////////////////////////////////////////
- // Name: ippsResidualFilter
- // Purpose: Compute the LPC residual by filtering the input speech through A(z)
- // Parameters:
- // pSrc pointer to the input vector[-order,..,-1,0,...,,len-1]
- // pSrcLPC pointer to the input LPC
- // pDst pointer to the output vector of length[len]
- // order LPC filer order
- // len length of output vector
- // With default order=10, len=40 for ippsResidualFilter_G729_16s
- // Returns: ippStsNoErr, if no errors
- //
- */
- IPPAPI( IppStatus, ippsResidualFilter_G729_16s, ( const Ipp16s * pSrc, const Ipp16s * pSrcLPC,
- Ipp16s * pDst) )
- IPPAPI( IppStatus, ippsResidualFilter_G729E_16s,(
- const Ipp16s *pSrcLPC, Ipp16s order, const Ipp16s *pSrc, Ipp16s *pDst, int len))
- /* ///////////////////////////////////////////////////////////////////////////////////////
- // Name: ippsSynthesisFilter
- // Purpose: Compute the speech signal by synthesis filtering of the input speech through
- // 1/A(z)
- // Parameters:
- // pSrc,pSrcSignal pointer to the input vector[len]
- // pLPC pointer to the input LPC[0,..,10]
- // pSrcLpc pointer to the input LPC[0,..,order]
- // pSrcDst pointer to the history input/filtered output
- // pDst,pSrcDstSignal pointer to the filtered output vector[len]
- // pMem Pointer to the memory[-10,...,-1] supplied for filtering
- // pSrcDstSynFltMemory Pointer to the memory[-order,..,-1] supplied for filtering
- // Returns: ippStsNoErr, if no errors
- // ippStsOverflow, if at least one result really was saturated
- */
- IPPAPI( IppStatus, ippsSynthesisFilter_NR_16s_Sfs, (const Ipp16s * pLPC, const Ipp16s * pSrc,
- Ipp16s * pDst, int len, int scaleFactor, const Ipp16s *pMem) )
- IPPAPI( IppStatus, ippsSynthesisFilterLow_NR_16s_ISfs, (const Ipp16s * pLPC, Ipp16s * pSrcDst,
- int len, int scaleFactor, const Ipp16s *pMem) )
- IPPAPI( IppStatus, ippsSynthesisFilter_NR_16s_ISfs, (const Ipp16s * pLPC, Ipp16s * pSrcDst,
- int len, int scaleFactor, const Ipp16s *pMem) )
- IPP_DEPRECATED("use ippsSynthesisFilter_NR_16s_Sfs function instead of this one")\
- IPPAPI( IppStatus, ippsSynthesisFilter_G729_16s,
- (const Ipp16s * pSrcResidual, const Ipp16s * pSrcLPC, Ipp16s * pSrcDstSpch))
- IPPAPI(IppStatus, ippsSynthesisFilterZeroStateResponse_NR_16s,
- (const Ipp16s * pSrcLPC, Ipp16s * pDstImp, int len, int scaleFactor))
- IPPAPI( IppStatus, ippsSynthesisFilter_G729E_16s,(
- const Ipp16s *pSrcLpc, Ipp16s order, const Ipp16s *pSrcSignal,
- Ipp16s *pDstFltSignal, int len, Ipp16s *pSrcDstSynFltMemory))
- IPPAPI( IppStatus, ippsSynthesisFilter_G729_32f,(
- const Ipp32f *pSrcLpc, Ipp32s order, const Ipp32f *pSrcSignal,
- Ipp32f *pDstFltSignal, int len, Ipp32f *pSrcDstSynFltMemory))
- IPPAPI( IppStatus, ippsSynthesisFilter_G729E_16s_I,(
- const Ipp16s *pSrcLpc, Ipp16s order, Ipp16s *pSrcDstSignal,
- int len, Ipp16s *pSrcDstSynFltMemory))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsConvPartial
- // Purpose: Linear Convolution of 1D signals
- // dst[n] = sum(i=[0,n])(src1[i]*src2[n-i]), n=[0,len-1]
- // computation is the same as for
- // ippsConv_16s32s(pSrc1,len,pSrc2,len,pDst)
- // but only len results are computed and written to destination vector.
- // dst[n] = sum(i=[0,n])(src1[i]*src2[n-i]), n=[0,len-1]
- // NR: rounding to nearest:
- // const1 = 1<<(scaleFactor-1)
- // (a*b+const1)>>scaleFactor;
- // Parameters:
- // pSrc1 pointer to the first source vector
- // pSrc2 pointer to the second source vector
- // pDst pointer to the destination vector
- // len length of the destination vector
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsConvPartial_NR_Low_16s,(const Ipp16s *pSrc1,
- const Ipp16s *pSrc2, Ipp16s *pDst, int len))
- IPPAPI(IppStatus, ippsConvPartial_NR_16s,
- (const Ipp16s *pSrc1,const Ipp16s *pSrc2, Ipp16s *pDst, int len))
- IPPAPI(IppStatus, ippsConvPartial_16s_Sfs,
- ( const Ipp16s* pSrc1, const Ipp16s* pSrc2, Ipp16s* pDst, int len, int scaleFactor) )
- IPPAPI(IppStatus, ippsConvPartial_16s32s,
- ( const Ipp16s* pSrc1, const Ipp16s* pSrc2, Ipp32s* pDst, int len))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsDecodeAdaptiveVector
- // Purpose: Compute adaptive-codebook vector by interpolatindg the past excitation signal
- // at the given integer delay and fraction
- // Parameters:
- // pSrcDstPrevExcitation pointer to the source/destination past excitation signal
- // pDstAdptVector pointer to the destination adaptive-codebook vector
- // pSrcDelay pointer to fractional pitch delay:
- // pSrcDelay[0] - pitch delay
- // pSrcDelay[1] - pitch fraction
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI( IppStatus, ippsDecodeAdaptiveVector_G729_16s_I,(const Ipp16s * pSrcDelay,
- Ipp16s * pSrcDstPrevExcitation))
- IPPAPI( IppStatus, ippsDecodeAdaptiveVector_G729_32f_I,(const Ipp32s * pSrcDelay,
- Ipp32f * pSrcDstPrevExcitation))
- IPPAPI( IppStatus, ippsDecodeAdaptiveVector_G729_16s,(const Ipp16s * pSrcDelay,
- Ipp16s * pSrcDstPrevExcitation, Ipp16s * pDstAdptVector))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsAdaptiveCodebookContribution
- // Purpose: Update target vector for codebook search
- // by subtracting the adaptive codebook contribition:
- // pDstFltAdptVector[i] = pSrcAdptTarget[i]-gain*pDstFltAdptVector[i];
- // G.729 3.8.1
- // Parameters:
- // gain adaptive codebook gain
- // pFltAdptVector pointer to the filtered adaptive codebook vector y(n)
- // pSrcAdptTarget pointer to the target signal
- // pDstAdptTarget pointer to the output target signal
- (updated by subtracting the adaptive codebook contribition)
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus,ippsAdaptiveCodebookContribution_G729_16s, (Ipp16s gain,
- const Ipp16s *pFltAdptVector, const Ipp16s *pSrcAdptTarget, Ipp16s* pDstAdptTarget))
- IPPAPI(IppStatus, ippsAdaptiveCodebookContribution_G729_32f,(Ipp32f gain,
- const Ipp32f *pFltAdptVector, const Ipp32f *pSrcAdptTarget, Ipp32f* pDstAdptTarget))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsFixedCodebookSearch
- // Purpose: Search in fixed codebook for four non zero pulses, which minimize MSE
- // between the weighted input speech and weighted teconstructed speech.
- // The target signal used in the close-loop pitch search is updated by
- // substracting of adaptive-codebook contribution by formulae:
- // x[n] = x[n] - g*y[n], n=0,...,39
- // where: g - adaptive-codebook gain
- // y - filtered adaptive-codebook vector
- // x - weighted input
- // Parameters:
- // pSrcFixedCorr pointer to the correlation vector of the impulse response and target
- // pSrcDstMatrix pointer to the correlation matrix of impulse response.
- // pDstFixedVector pointer to the output selected acodeword
- // pSearchTimes pointer to the input/output extra searching time
- // pDstFixedIndex pointer to the output codeword index
- // pSrc1 pointer to the correlation vector of the impulse response and target
- // pSrcDst pointer to the correlation matrix of impulse response.
- // pSrc2 Impulse response
- // pDst1 pointer to the output selected acodeword
- // pDst2 pointer to the output filteredcodeword
- // pSign pointer to the output sign of 4 pulses selected
- // subFrame input sub frame number (0,1)
- // extraTime pointer to the input/output extra searching time
- // pDstFixedIndex pointer to the output codeword index
- // valLpMode Backward / Forward LP mode indication
- // len length of the destination vectors
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsFixedCodebookSearch_G729_32s16s, (const Ipp16s *pSrcFixedCorr,
- Ipp32s *pSrcDstMatrix, Ipp16s *pDstFixedVector,
- Ipp16s *pDstFixedIndex, Ipp16s *pSearchTimes, Ipp16s subFrame))
- IPPAPI(IppStatus, ippsFixedCodebookSearch_G729_16s, (const Ipp16s *pSrcFixedCorr,
- Ipp16s *pSrcDstMatrix, Ipp16s *pDstFixedVector,
- Ipp16s *pDstFixedIndex, Ipp16s *pSearchTimes, Ipp16s subFrame))
- IPPAPI(IppStatus,ippsFixedCodebookSearch_G729A_32s16s,(const Ipp16s *pSrcFixedCorr,
- Ipp32s *pSrcDstMatrix, Ipp16s *pDstFixedVector, Ipp16s *pDstFixedIndex))
- IPPAPI(IppStatus,ippsFixedCodebookSearch_G729A_16s,(const Ipp16s *pSrcFixedCorr,
- Ipp16s *pSrcDstMatrix, Ipp16s *pDstFixedVector, Ipp16s *pDstFixedIndex))
- IPPAPI(IppStatus, ippsFixedCodebookSearch_G729E_16s,(
- Ipp16s valLpMode, const Ipp16s* pSrcFixedTarget, const Ipp16s* pSrcLtpResidual,
- const Ipp16s* pSrcImpulseResponse, Ipp16s* pDstFixedVector, Ipp16s* pDstFltFixedVector,
- Ipp16s* pDstFixedIndex))
- IPPAPI(IppStatus, ippsFixedCodebookSearch_G729D_16s,(const Ipp16s *pSrcFixedCorr,
- const Ipp16s *pSrcImpulseResponse, Ipp16s *pDstFixedVector, Ipp16s *pDstFltFixedVector,
- Ipp16s *pDstSign, Ipp16s *pDstFixedIndex))
- IPPAPI(IppStatus, ippsFixedCodebookSearch_G729_32f,(const Ipp32f *pSrcFixedCorr,
- Ipp32f *pSrcDstMatrix, Ipp32f *pDstFixedVector, Ipp32s *pDstFixedIndex,
- Ipp32s *pSearchTimes, Ipp32s subFrame))
- IPPAPI(IppStatus,ippsFixedCodebookSearch_G729A_32f,(const Ipp32f *pSrcFixedCorr,
- Ipp32f *pSrcDstMatrix, Ipp32f *pDstFixedVector, Ipp32s *pDstFixedIndex))
- IPPAPI(IppStatus,ippsFixedCodebookSearch_G729D_32f,(Ipp32f *pSrcDstFixedCorr,
- Ipp32f *pSrcDstMatrix, const Ipp32f *pSrcImpulseResponse,
- Ipp32f *pDstFixedVector, Ipp32f *pDstFltFixedVector, Ipp32s *pDstFixedIndex))
- IPPAPI(IppStatus,ippsFixedCodebookSearch_G729E_32f, (int mode,
- Ipp32f *pSrcDstFixedCorr, const Ipp32f *pSrcLtpResidual,
- const Ipp32f *pSrcImpulseResponse, Ipp32f *pDstFixedVector,
- Ipp32f *pDstFltFixedVector, Ipp32s *pDstFixedIndex))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsHarmonicFilter
- // Purpose: Enchance harmonic component of signal by formulae:
- // y[n] = x[n] + val * x[n-T] - harmonic nose shaping: 1+val*z^(-T)
- // y[n] = y[n] + val * y[n-T] - adaptive pre-filter: 1/(1-val*z^(-T) )
- // Parameters:
- // val the input factor of filter
- // T the value of delay
- // pSrc pointer to the input vector
- // pDst pointer to the output vector
- // pSrcDst pointer to the input/output vector
- // len number of output results needed.
- // pSrc[-T,1] or pSrcDst[-T,-1] shell be done
- // pDst[0,len-1] or pSrcDst[0,len-1] will be computed.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI( IppStatus, ippsHarmonicFilter_16s_I,(Ipp16s val, int T, Ipp16s *pSrcDst, int len) )
- IPPAPI( IppStatus, ippsHarmonicFilter_32f_I,(Ipp32f val, int T, Ipp32f *pSrcDst, int len) )
- IPPAPI( IppStatus, ippsHarmonicFilter_NR_16s, (Ipp16s val, int T, const Ipp16s *pSrc,
- Ipp16s *pDst, int len) )
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsGainQuant
- // Purpose: Quantization of the adaptive codebook gains
- // Parameters:
- // pSrcAdptTarget pointer to the input target vector x(n).
- // pSrcFltAdptVector pointer to the input filtered adaptive codebook vector y(n)
- // pSrcFixedVector pointer to the input pre-filtered codebook contribition c(n)
- // pSrcFltFixedVector pointer to the input filtered codebook vector z(n)
- // pSrcDstEnergyErr pointer to the input/output energy error vector
- // for 4 previous subframes
- // pDstQGain pointer to the output gains:
- // gain pitch = pDstQGainIndex[0]
- // gain code = pDstQGainIndex[1]
- // pDstQGainIndex pointer to the output codebook indexes found
- // tameProcess 1 - taming is needed
- //
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsGainQuant_G729_16s, (
- const Ipp16s *pSrcAdptTarget, const Ipp16s *pSrcFltAdptVector,
- const Ipp16s * pSrcFixedVector, const Ipp16s *pSrcFltFixedVector,
- Ipp16s *pSrcDstEnergyErr, Ipp16s *pDstQGain, Ipp16s *pDstQGainIndex, Ipp16s tameProcess))
- IPPAPI(IppStatus, ippsGainQuant_G729D_16s, (
- const Ipp16s *pSrcAdptTarget, const Ipp16s *pSrcFltAdptVector,
- const Ipp16s *pSrcFixedVector, const Ipp16s *pSrcFltFixedVector,
- Ipp16s *pSrcDstEnergyErr, Ipp16s *pDstQGain, Ipp16s *pDstQGainIndex, Ipp16s tameProcess))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsGainCodebookSearch_G729
- // Purpose: Searching procedure used in adaptive codebook gains quantization
- // gain pitch = gcdbk1[pDstIdxs[0]][0] + gcdbk2[pDstIdxs[1]][0]
- // gain code = gcdbk1[pDstIdxs[0]][1] + gcdbk2[pDstIdxs[1]][1]
- // where gcdbk1 = gbk1_6k, gcdbk2 = gbk1_6k for D mode
- // gcdbk1 = gbk1, gcdbk2 = gbk1 for other then D modes
- // Parameters:
- // pSrcCorr Pointer to the correlations :
- // pSrcCorr[0] = y(n)*y(n)
- // pSrcCorr[1] = -2.x(n)*y(n)
- // pSrcCorr[2] = z(n)*z(n)
- // pSrcCorr[3] = -2.x(n)*z(n)
- // pSrcCorr[4] = -2.y(n)*z(n)
- // x - target, y - filtered target, z - innovative vectors
- // valPredictedGain Input predicted codebook gain.
- // pCand pointer to the input pre-searched candidates indexes vector[2].
- // pCand[0] from [0,4]
- // pCand[1] from [0,8]
- //
- // pIdxs Pointer to the output indexes vector[2].
- // tameProcess Taming process indicator.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsGainCodebookSearch_G729_32f,(const Ipp32f *pSrcCorr,
- Ipp32f valPredictedGain, const int *pCand, int *pIdxs, int tameProcess))
- IPPAPI(IppStatus, ippsGainCodebookSearch_G729D_32f,(const Ipp32f *pSrcCorr,
- Ipp32f valPredictedGain, const int *pCand, int *pIdxs, int tameProcess))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsGainQuant
- // Purpose: Construct of the excitation for the high rate coder by
- // MultiPulse Maximum Likelihood Quantization (MP-MLQ) of the residual
- // signal
- // pImp pointer to the input impulse response of combined filter
- // pSrc pointer to the input target vector.
- // pDstLoc pointer to the output pulse location
- // pDstAmp pointer to the output pulse amplitudes
- // pMaxErr pointer to the output maximal error
- // pGrid output grid (even = 0, odd = 1)
- // pAmp output index of max codebook amplitude
- // Np input number of pulses
- // isBest shows whether best gain found (1) or not (0)
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI( IppStatus, ippsGainQuant_G723_16s, (const Ipp16s *pImp, const Ipp16s *pSrc,
- Ipp16s *pDstLoc, Ipp16s *pDstAmp, Ipp32s *pMaxErr, Ipp16s *pGrid, Ipp16s *pAmp,
- int Np, int* isBest) )
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsDecodeGain
- // Purpose: Decode adaptive and fixed-codebook gains
- // energy energy of code vector in Q32
- // pPastEnergy past quantized energies
- // quaIndex pointer to the gain quantization indexes transmitted:
- // quaIndex[0] - GA, quaIndex[1] - GB.
- // NULL for bad frame
- // pGain Pointer to the vector of decoded gains:
- // pGain[0] - adaptive and pGain[1] - fixed codebook gains.
- // For active frame: output vector.
- // For bad (erased) frame - input/output vector.
- // Input of gains decoded for previous frame.
- // See subclause G.729 3.9.1
- // valGainAttenuation
- // Attenuation factor for gains. See subclause G.729 E.4.4.3
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI( IppStatus, ippsDecodeGain_G729_16s, (Ipp32s energy, Ipp16s *pPastEnergy,
- const Ipp16s *quaIndex, Ipp16s *pGain) )
- IPPAPI(IppStatus, ippsDecodeGain_G729I_16s, (Ipp32s energy, Ipp16s valGainAttenuation, Ipp16s *pPastEnergy,
- const Ipp16s *quaIndex, Ipp16s *pGain))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsTiltCompensation
- // Purpose: Tilt compensation filter
- // G729: transfer function 1/(1-|mu|) * (1 + mu * 1/z)
- // G723: transfer function 1 + 0.25*k1*(1/z)
- // pSrc pointer to the input vector
- // val gain coefficient
- // pDst pointer to the output filtered vector
- // pSrcImpulseResponse Pointer to the impulse response hf(n) in the length of 20, in Q12.
- // pSrcDstSpch Pointer to the speech x(n), in Q15
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI( IppStatus, ippsTiltCompensation_G729E_16s, (Ipp16s val, const Ipp16s *pSrc,
- Ipp16s *pDst) )
- IPPAPI( IppStatus, ippsTiltCompensation_G723_32s16s, (Ipp16s val, const Ipp32s *pSrc,
- Ipp16s *pDst) )
- IPPAPI (IppStatus, ippsTiltCompensation_G729_16s,(const Ipp16s * pSrcImpulseResponse,
- Ipp16s * pSrcDstSpch))
- IPPAPI (IppStatus, ippsTiltCompensation_G729A_16s,
- (const Ipp16s * pSrcLPC,Ipp16s * pSrcDstFltResidual))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsLongTermPostFilter
- // Purpose: Long-term post G729 filtering
- // valDelay pitch delay
- // gammaFactor the LTP weighting factor
- // pSrcSpch Pointer to the resconstructed speech s[n]
- // pSrcLPC Pointer to weighted LP coff a'[i]
- // pSrcDstResidual Pointer to LP residual signal.
- // pDstFltResidual Pointer to output filtered residual signal.
- // pResultVoice Pointer to the voice information.
- // frameType The type of the frame (1 - active, 2 - SID, 0 - untransmitted).
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsLongTermPostFilter_G729_16s,(Ipp16s gammaFactor, int valDelay,
- const Ipp16s *pSrcDstResidual, Ipp16s *pDstFltResidual, Ipp16s *pResultVoice ))
- IPPAPI(IppStatus, ippsLongTermPostFilter_G729A_16s,(Ipp16s valDelay, const Ipp16s * pSrcSpch,
- const Ipp16s * pSrcLPC, Ipp16s * pSrcDstResidual, Ipp16s * pDstFltResidual))
- IPPAPI(IppStatus, ippsLongTermPostFilter_G729B_16s,(Ipp16s valDelay, const Ipp16s * pSrcSpch,
- const Ipp16s * pSrcLPC, Ipp16s * pSrcDstResidual, Ipp16s * pDstFltResidual,
- Ipp16s * pResultVoice, Ipp16s frameType))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsShortTermPostFilter
- // Purpose: Short-term post G729 filtering
- // pSrcDstSpch Pointer to the short-term filtered speech y(n), in Q15
- // pSrcLPC Pointer to the quantized LP coefficients in the length of 11, in Q12
- // pDstFltResidual Pointer to the residual signal x(n) in the length of 40, in Q15.
- // pDstImpulseResponse Pointer to the generated impulse response hf(n)
- // in the length of 20, in Q12..
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI( IppStatus, ippsShortTermPostFilter_G729_16s, (const Ipp16s * pSrcLPC,
- const Ipp16s * pSrcFltResidual, Ipp16s * pSrcDstSpch, Ipp16s * pDstImpulseResponse))
- IPP_DEPRECATED("use ippsSynthesisFilter_NR_16s_Sfs function instead of this one")\
- IPPAPI( IppStatus, ippsShortTermPostFilter_G729A_16s,(const Ipp16s * pSrcLPC,
- const Ipp16s * pSrcFltResidual,Ipp16s * pSrcDstSpch))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsPreemphasize
- // Purpose: Preemphasis post filter
- // H(z) = 1 - gamma z^-1 (G.729/A)
- // H(z) = 1 + gamma z^-1 (GSMAMR)
- // pSrcDst pointer to the input/output vector
- // gamma filter coeeficient
- // pMem pointer to the filter memory of length 1
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI( IppStatus, ippsPreemphasize_G729A_16s_I, (Ipp16s gamma, Ipp16s *pSrcDst, int len,
- Ipp16s* pMem) )
- IPPAPI( IppStatus, ippsPreemphasize_32f_I,(Ipp32f gamma, Ipp32f *pSrcDst, int len,
- Ipp32f *pMem))
- IPPAPI( IppStatus, ippsPreemphasize_G729A_16s, (Ipp16s gamma, const Ipp16s *pSrc, Ipp16s *pDst,
- int len, Ipp16s* pMem) )
- IPPAPI( IppStatus, ippsPreemphasize_GSMAMR_16s, (Ipp16s gamma, const Ipp16s *pSrc, Ipp16s *pDst,
- int len, Ipp16s* pMem) )
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsGainControl
- // Purpose: Adaptive gain control
- // Compensate for the gain difference between reconstructed speech signal given
- // pSrc (sr) and the postfiltered signal given by pSrcDst (spf)
- // dst[i] = g[i] * dst[i]
- // pSrc pointer to the input vector
- // pSrcDst Pointer to the input post-filtered and output gain compensated signal vector.
- // pSrcDstGain the gain for the previous subframe
- // pGain the gain for the previous subframe
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI( IppStatus, ippsGainControl_G729_16s_I, (const Ipp16s *pSrc1, Ipp16s *pSrcDst,
- Ipp16s *pGain) )
- IPPAPI( IppStatus, ippsGainControl_G729A_16s_I, (const Ipp16s *pSrc1, Ipp16s *pSrcDst,
- Ipp16s *pGain) )
- IPPAPI( IppStatus, ippsGainControl_G723_16s_I, (Ipp32s energy, Ipp16s *pSrcDst, Ipp16s *pGain) )
- IPPAPI( IppStatus, ippsGainControl_G729_32f_I,(Ipp32f gainScalingVal,
- Ipp32f gainFactor, Ipp32f *pSrcDst, Ipp32f *pGain))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsRandomNoiseExcitation
- // Purpose: Generation of random noise excitation
- // gain target sample gain
- // pSrcDst pointer to the input/output excitation vector
- // pSeed pointer to the input/output seed for the random generator
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI( IppStatus, ippsRandomNoiseExcitation_G729B_16s, (Ipp16s *pSeed, Ipp16s *pExc, int len) )
- IPPAPI( IppStatus, ippsRandomNoiseExcitation_G729B_16s32f,(Ipp16s *pSeed, Ipp32f *pExc, int len))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsLPCLevinsonDurbin
- // Purpose: Obtaining of the LPC
- // G.729: filter 1/1-A(z), LPC in Q12, by solving the set of equation
- // SUM(i=1,order)a(i)*r(|i-k|) = -r(k) k=1,..,order
- // Parameters:
- // pSrcAutoCorr pointer to the autocorrelation vector [order+1]
- // order LP order
- // pDstLPC pointer to the LPC output vector [order+1]
- // pDstRC pointer to the RC output vector
- // [2] - ippsLevinsonDurbin_G729B
- // [order+1] - ippsLevinsonDurbin_G729
- // pResultResidualEnergy pointer to output residual energy in Q15
- //
- */
- IPPAPI(IppStatus,ippsLevinsonDurbin_G729_32s16s,( const Ipp32s * pSrcAutoCorr,
- int order, Ipp16s * pDstLPC, Ipp16s * pDstRc, Ipp16s * pResultResidualEnergy))
- IPPAPI(IppStatus, ippsLevinsonDurbin_G729_32f,(const Ipp32f * pSrcAutoCorr,
- int order, Ipp32f * pDstLpc, Ipp32f * pDstRc, Ipp32f * pResultResidualEnergy))
- IPPAPI(IppStatus,ippsLevinsonDurbin_G729B,(const Ipp32s * pSrcAutoCorr,
- Ipp16s * pDstLPC, Ipp16s * pDstRc, Ipp16s * pResultResidualEnergy))
- IPPAPI(IppStatus, ippsLevinsonDurbin_G723_16s,
- (const Ipp16s * pSrcAutoCorr, Ipp16s * pValResultSineDtct,
- Ipp16s * pResultResidualEnergy, Ipp16s * pDstLPC))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsIIR16s
- //
- // Purpose: IIR filter
- // 1-A(1/z)/1-B(1/z)
- // pCoeffs pointer to the input filter coefficients
- // pSrc pointer to the input speech vector
- // pDst pointer to the output perceptually weighted speech vector
- // pMem pointer to the filter memory
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI (IppStatus, ippsIIR16sLow_G729_16s,
- (const Ipp16s *pCoeffs, const Ipp16s *pSrc, Ipp16s *pDst, Ipp16s *pMem))
- IPPAPI (IppStatus, ippsIIR16s_G729_16s,
- (const Ipp16s *pCoeffs, const Ipp16s *pSrc, Ipp16s *pDst, Ipp16s *pMem))
- IPPAPI( IppStatus, ippsIIR16s_G723_16s32s, (const Ipp16s *pCoeffs, const Ipp16s *pSrc,
- Ipp32s *pDst, Ipp16s *pMem ) )
- IPPAPI( IppStatus, ippsIIR16s_G723_16s_I, (const Ipp16s *pCoeffs, Ipp16s *pSrcDst,
- Ipp16s *pMem ) )
- IPPAPI( IppStatus, ippsIIR16s_G723_32s16s_Sfs, (const Ipp16s *pCoeffs, const Ipp32s *pSrc,
- int sFs, Ipp16s *pDst, Ipp16s *pMem ) )
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsHarmonicNoiseSubtract_G723_16s_I
- //
- // Purpose: Do harmonic noise filtering and subtract the result
- // from harmonic noise weighted vector
- // val the input filter coefficient
- // T the input filter lag
- // pSrc pointer to the input vector to filter
- // pSrcDst pointer to the input/output harmonic noise weighted vector
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI( IppStatus, ippsHarmonicNoiseSubtract_G723_16s_I, (Ipp16s val, int T, const Ipp16s *pSrc,
- Ipp16s *pSrcDst) )
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: PhaseDispersion
- // Purpose: The filter alters (mainly the phase of) the innovation signal such
- // that a new innovation is created which has the energy more spread over
- // the subframe. The filtering is performed by circular convolution
- // using one of the three stored "semi-random" impulse responses,
- // correspond to different amounts of spreading.
- // Parameters:
- // valPitchGain pitch gain Q14
- // valCodebookGain codebook gain Q1
- // pSrcExcSignal input signal
- // pDstFltExcSignal output signal
- // pSrcDstInnovation input/output innovation vector
- */
- #if !defined( _OWN_BLDPCS )
- typedef struct _PhaseDispersion_State_G729D IppsPhaseDispersion_State_G729D;
- #endif
- IPPAPI(IppStatus, ippsPhaseDispersionGetStateSize_G729D_16s,(int *pSize))
- IPPAPI(IppStatus, ippsPhaseDispersionInit_G729D_16s,(IppsPhaseDispersion_State_G729D *pPhDMem))
- IPPAPI(IppStatus, ippsPhaseDispersionUpdate_G729D_16s,(
- Ipp16s valPitchGain,
- Ipp16s valCodebookGain,
- IppsPhaseDispersion_State_G729D *pPhDMem
- ))
- IPPAPI(IppStatus, ippsPhaseDispersion_G729D_16s,(
- const Ipp16s *pSrcExcSignal,
- Ipp16s *pDstFltExcSignal,
- Ipp16s valCodebookGain,
- Ipp16s valPitchGain,
- Ipp16s *pSrcDstInnovation,
- IppsPhaseDispersion_State_G729D *pPhDMem
- ))
- /* ///////////////////////////////////////////////////////////////////////////////////////
- // Name: ippsWinHybrid_G729E
- // Purpose: Hybrid window auto-correlation for backward-adaptive analysis.
- // Window is as follows:
- // s(M-N),s(M-N+1),...,s(M-1),s(M),s(M+1),...,s(M+L-1)
- // M LPC order for backward adaptation
- // L number of signal samples in backward adaptation
- // N number of non-recursive samples in the hybrid window
- // where pSrcSfs[i] is the scale factor of pSrc[i*DIM],...,pSrc[i*DIM+DIM-1]
- //
- // pSrcSynthSpeech input signal for backward-adaptive analysis (35 samples)
- //
- */
- #if !defined( _OWN_BLDPCS )
- typedef struct _WinHybridState_G729E_16s IppsWinHybridState_G729E_16s;
- typedef struct _WinHybridState_G729E_32f IppsWinHybridState_G729E_32f;
- #endif
- IPPAPI(IppStatus, ippsWinHybridGetStateSize_G729E_16s,(int *pSize))
- IPPAPI(IppStatus, ippsWinHybridGetStateSize_G729E_32f,(int *pSize))
- IPPAPI(IppStatus, ippsWinHybridInit_G729E_16s,(IppsWinHybridState_G729E_16s *pMem))
- IPPAPI(IppStatus, ippsWinHybridInit_G729E_32f,(IppsWinHybridState_G729E_32f *pMem))
- IPPAPI(IppStatus, ippsWinHybrid_G729E_16s32s,(const Ipp16s *pSrcSynthSpeech,
- Ipp32s *pDstInvAutoCorr, IppsWinHybridState_G729E_16s *pMem))
- IPPAPI(IppStatus, ippsWinHybrid_G729E_32f,(const Ipp32f *pSrcSynthSpeech,
- Ipp32f *pDstInvAutoCorr, IppsWinHybridState_G729E_32f *pMem))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name : ippsAutoCorr_G729B
- // Purpose: Apply window and then compute autocorelation of input speech
- // Equivalent to:
- // ippsMul_NR_16s_Sfs
- // ippsAutoCorr_NormE_16s32s
- */
- IPPAPI(IppStatus,ippsAutoCorr_G729B,
- (const Ipp16s* pSrcSpch, Ipp16s* pResultAutoCorrExp, Ipp32s* pDstAutoCorr))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name : ippsLPCToLSP_G729, ippsLPCToLSP_G729A
- // Purpose: LP to LSP coefficients conversion
- */
- IPPAPI( IppStatus, ippsLPCToLSP_G729_16s,
- (const Ipp16s* pSrcLPC, const Ipp16s* pSrcPrevLsp, Ipp16s* pDstLSP) )
- IPPAPI( IppStatus, ippsLPCToLSP_G729A_16s,
- (const Ipp16s* pSrcLPC, const Ipp16s* pSrcPrevLsp, Ipp16s* pDstLSP) )
- IPPAPI( IppStatus, ippsLPCToLSP_G729_32f,
- (const Ipp32f* pSrcLPC, const Ipp32f* pSrcPrevLsp, Ipp32f* pDstLSP))
- IPPAPI( IppStatus, ippsLPCToLSP_G729A_32f,
- (const Ipp32f* pSrcLPC, const Ipp32f* pSrcPrevLsp, Ipp32f* pDstLSP))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name : ippsAdaptiveCodebookSearch_G729_16s
- // Purpose: Determination of optimal integer and fractional pitch delay
- // and generation of adaptive codebook vector
- // Parameters:
- // valOpenDelay Open-loop delay, in the range [18,145].
- // pSrcAdptTarget Pointer to the target signal for adaptive-codebook
- // search vector [40].
- // pSrcImpulseResponse Pointer to the impulse response of weighted synthesis filter
- // vector [40]
- // pSrcDstPrevExcitation Pointer to the previous and updated excitation vector [194].
- // pDstDelay Pointer to the integer delay and fraction delay vector [2].
- // pDstAdptVector Pointer to the adaptive vector [40].
- // subFrame Subframe number, either 0 or 1.*/
- IPPAPI( IppStatus, ippsAdaptiveCodebookSearch_G729_16s, (Ipp16s valOpenDelay,
- const Ipp16s * pSrcAdptTarget, const Ipp16s * pSrcImpulseResponse,
- Ipp16s * pSrcDstPrevExcitation, Ipp16s * pDstDelay,
- Ipp16s * pDstAdptVector, Ipp16s subFrame))
- IPPAPI( IppStatus, ippsAdaptiveCodebookSearch_G729A_16s, (Ipp16s valOpenDelay,
- const Ipp16s * pSrcAdptTarget, const Ipp16s * pSrcImpulseResponse,
- Ipp16s * pSrcDstPrevExcitation, Ipp16s * pDstDelay,
- Ipp16s * pDstAdptVector, Ipp16s subFrame))
- IPPAPI( IppStatus, ippsAdaptiveCodebookSearch_G729D_16s, (Ipp16s valOpenDelay,
- const Ipp16s * pSrcAdptTarget, const Ipp16s * pSrcImpulseResponse,
- Ipp16s * pSrcDstPrevExcitation, Ipp16s subFrame, Ipp16s * pDstDelay ))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsFilteredExcitation_G729
- // Purpose: computes filtered excitation
- // Arguments:
- // pSrcImpulseResponse Pointer to the impulse response of weighted synthesis filter
- // vector
- // pSrcDstPrevExcitation Pointer to the previous and updated excitation vector [194].
- // valExc Excitation value delayed by pitch lag ( u(-k) )
- // len Length of input/output vectors
- */
- IPPAPI(IppStatus, ippsFilteredExcitation_G729_32f,
- ( const Ipp32f* pSrcImpulseResponse, Ipp32f *pSrcDstPrevExcitation, int len, Ipp32f valExc))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name : ippsLSPQuant_G729_16s
- // Purpose: LSP quantization
- // Is equivalent to:
- // ippsLSPToLSF_G729_16s
- // ippsLSFQuant_G729_16s
- // ippsLSFToLSP_G729_16s
- */
- IPPAPI( IppStatus, ippsLSPQuant_G729_16s, (const Ipp16s * pSrcLsp, Ipp16s * pSrcDstPrevFreq,
- Ipp16s * pDstQLsp, Ipp16s * pDstQLspIndex))
- IPPAPI (IppStatus, ippsLSPQuant_G729E_16s, (const Ipp16s * pSrcLsp, const Ipp16s * pSrcPrevFreq,
- Ipp16s * pDstQLsf, Ipp16s * pDstQLsp, Ipp16s * pDstQLspIndex))
- IPPAPI (IppStatus, ippsLSPQuant_G729E_32f, (const Ipp32f *pSrcLsp, Ipp32f* pSrcDstPrevFreq, Ipp32f *pDstQLsf,
- Ipp32f *pDstQLsp, int *pDstQLspIndex) )
- /* /////////////////////////////////////////////////////////////////////////////
- // Name : ippsAdaptiveCodebookGain_G729_16s
- // Purpose: Compute the adaptive codebook gain
- //
- // pSrcImpulseResponse: Pointer to the impulse response
- // of the perceptual weighting filter in the length of 40, in Q12.
- // pSrcAdptVector: Pointer to the adaptive-codebook vector in the length of 40.
- // pSrcLPC: Pointer to the LPC coefficients of the synthesis filter
- // in the length of 11, in Q12.
- // pDstFltAdptVector: Pointer to the output filtered adaptive-codebook vector
- // pSrcFltAdptVector: Pointer to the input filtered adaptive-codebook vector
- // in the length of 40.
- // pResultAdptGain: Pointer to the adaptive-codebook gain in the length of 1, in Q14.
- // pResultAdptGainCoeffs Pointer to the output vector in the length 4 represents
- // the adaptive-codebook gain as a fraction:
- // xy * 2^exp_xy
- // gain = ------------- in Q14
- // yy * 2^exp_yy
- // where yy = pResultAdptGainCoeffs[0]
- // exp_yy = pResultAdptGainCoeffs[1]
- // exp_xy = pResultAdptGainCoeffs[2]
- // exp_xy = pResultAdptGainCoeffs[3]
- // If xy < 4 then gain = 0;
- */
- IPPAPI( IppStatus, ippsAdaptiveCodebookGain_G729_16s, (const Ipp16s * pSrcAdptTarget,
- const Ipp16s * pSrcImpulseResponse, const Ipp16s * pSrcAdptVector,
- Ipp16s * pDstFltAdptVector, Ipp16s * pResultAdptGain))
- IPPAPI( IppStatus, ippsAdaptiveCodebookGain_G729A_16s, (const Ipp16s * pSrcAdptTarget,
- const Ipp16s * pSrcLPC, const Ipp16s * pSrcAdptVector, Ipp16s * pDstFltAdptVector,
- Ipp16s * pResultAdptGain))
- IPPAPI( IppStatus, ippsAdaptiveCodebookGain_GSMAMR_16s,(const Ipp16s * pSrcAdptTarget,
- const Ipp16s * pSrcFltAdptVector, Ipp16s * pResultAdptGain))
- IPPAPI( IppStatus, ippsAdaptiveCodebookGainCoeffs_GSMAMR_16s,(const Ipp16s * pSrcAdptTarget,
- const Ipp16s * pSrcFltAdptVector, Ipp16s * pResultAdptGain,
- Ipp16s * pResultAdptGainCoeffs))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name : ippsFFTFwd_RToPerm_GSMAMR_16s
- // Purpose: This is an implementation of decimation-in-time FFT algorithm for
- // real sequences.
- // pSrcDst pointer to the input signal/output frequencies vector in Perm format
- */
- IPPAPI( IppStatus, ippsFFTFwd_RToPerm_GSMAMR_16s_I, (Ipp16s *pSrcDst))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name : ippsAutoCorr_G723_16s
- // Purpose: Apply window and then compute autocorelation of input speech
- // Equivalent to:
- // ippsAutoScale_16s
- // ippsMul_NR_16s_ISfs
- // ippsAutoCorr_NormE_G723_16s
- */
- IPPAPI(IppStatus, ippsAutoCorr_G723_16s,(const Ipp16s * pSrcSpch,
- Ipp16s * pResultAutoCorrExp, Ipp16s * pDstAutoCorr))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsLPCToLSF_G723_16s
- // Purpose: LSP to LSF conversion normalized
- // pLSF[i] = arccos(pLSP[i]); i=0,...,10
- // pSrcLPC pointer to the LPC input vector
- // pSrcPrevLSF pointer to previous normalized LSF coefficients
- // pDstLSF pointer to the LSF output vector of values 15 bit scaled in range [0:0.5]
- // Parameters:
- // Returns: ippStsNoErr, if no errors
- */
- IPPAPI(IppStatus, ippsLPCToLSF_G723_16s,(const Ipp16s * pSrcLPC,
- const Ipp16s * pSrcPrevLSF, Ipp16s * pDstLSF))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsHarmonicSearch_G723_16s
- // Purpose: This function searches the harmonic delay and harmonic gain for the harmonic noise shaping filter
- // from the weighted speech and open loop pitch.
- // valOpenDelay Open loop pitch
- // pSrcWgtSpch Pointer to the weighted speech in the length of 205. The pointer points to the
- // location of 146
- // pResultHarmonicDelay Pointer to the harmonic delay
- // pResultHarmonicGain Pointer to the harmonic gain
- // Parameters:
- // Returns: ippStsNoErr, if no errors
- */
- IPPAPI(IppStatus, ippsHarmonicSearch_G723_16s,(Ipp16s valOpenDelay, const Ipp16s * pSrcWgtSpch,
- Ipp16s * pResultHarmonicDelay, Ipp16s * pResultHarmonicGain))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsAdaptiveCodebookSearch_G723
- // Purpose: This function searches for the close loop pitch and adaptive gain index.
- // valBaseDelay Base delay
- // pSrcAdptTarget Pointer to the adaptive target signal in the length of 60.
- // pSrcImpulseResponse Pointer to the impulse response in the length of 60.
- // pSrcPrevExcitation Pointer to the previous excitation in the length of 145.
- // pSrcPrevError Pointer to the previous error in the length of 5, in 32-bit format.
- // pResultCloseLag Pointer to the lag of close pitch
- // pResultAdptGainIndex Pointer to the index of adaptive gain
- // subFrame Subframe number
- // sineDtct Sine circumstance.
- // bitRate Transmit bit rate
- // Parameters:
- // Returns: ippStsNoErr, if no errors
- */
- IPPAPI (IppStatus, ippsAdaptiveCodebookSearch_G723,(
- Ipp16s valBaseDelay,
- const Ipp16s * pSrcAdptTarget,
- const Ipp16s * pSrcImpulseResponse,
- const Ipp16s * pSrcPrevExcitation,
- const Ipp32s * pSrcPrevError,
- Ipp16s * pResultCloseLag,
- Ipp16s * pResultAdptGainIndex,
- Ipp16s subFrame,
- Ipp16s sineDtct,
- IppSpchBitRate bitRate))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsDecodeAdaptiveVector_G723_16s
- // Purpose: This function decodes the adaptive vector from excitation,
- // close loop pitch, adaptive gain index and bit rate.
- */
- IPPAPI (IppStatus, ippsDecodeAdaptiveVector_G723_16s,(
- Ipp16s valBaseDelay,
- Ipp16s valCloseLag,
- Ipp16s valAdptGainIndex,
- const Ipp16s * pSrcPrevExcitation,
- Ipp16s * pDstAdptVector,
- IppSpchBitRate bitRate))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsLSFToLPC_G723_16s
- // Purpose: This function converts a set of 10-order LSF coefficients to LPC coefficients.
- // Equivalent to:
- // ippsLSFToLPC_G723_16s_I
- */
- IPPAPI (IppStatus, ippsLSFToLPC_G723_16s,(const Ipp16s * pSrcLSF, Ipp16s * pDstLPC))
- IPPAPI( IppStatus, ippsLSFToLPC_G723_16s_I, (Ipp16s *pLSFLPC) )
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsLSFQuant_G723_16s32s
- // Purpose: This function searches for the close loop pitch and adaptive gain index.
- // pSrcLSF Pointer to LSF coefficients
- // pSrcPrevLSF Pointer to previous LSF coefficients
- // pResultQLSFIndex Pointer to combined index of quantized LSF coefficients.
- // Parameters:
- // Returns: ippStsNoErr, if no errors
- */
- IPPAPI(IppStatus, ippsLSFQuant_G723_16s32s,(const Ipp16s * pSrcLSF, const Ipp16s *pSrcPrevLSF,
- Ipp32s * pResultQLSFIndex))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsACELPFixedCodebookSearch_G723_16s
- // Purpose: TThis function searches for the ACELP fixed codebook for the excitation for 5.3 Kbps bit rate.
- // Equivalent to:
- // ippsFixedCodebookSearch_G723_16s
- */
- IPPAPI (IppStatus, ippsACELPFixedCodebookSearch_G723_16s,(
- const Ipp16s * pSrcFixedCorr,
- const Ipp16s * pSrcMatrix,
- Ipp16s * pDstFixedSign,
- Ipp16s * pDstFixedPosition,
- Ipp16s * pResultGrid,
- Ipp16s * pDstFixedVector,
- Ipp16s * pSearchTimes))
- IPPAPI( IppStatus, ippsACELPFixedCodebookSearch_G723_32s16s,(
- const Ipp16s * pSrcFixedCorr,
- Ipp32s * pSrcDstMatrix,
- Ipp16s * pDstFixedSign,
- Ipp16s * pDstFixedPosition,
- Ipp16s * pResultGrid,
- Ipp16s * pDstFixedVector,
- Ipp16s * pSearchTimes))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsMPMLQFixedCodebookSearch_G723
- //
- // Purpose: This function searches for the MP-MLQ fixed-codebook for the excitation for 6.3Kbps bit rate.
- // valBaseDelay - Base delay, in Q0.
- // pSrcImpulseResponse - Pointer to the impulse response in the length of 60.
- // pSrcResidualTarget - Pointer to the residue target signal in the length of 60.
- // pDstFixedVector - Pointer to the fixed codebook vector in the length of 60.
- // pResultGrid - Pointer to the begin grid location, in Q0, 0 or 1.
- // pResultTrainDirac - Pointer to the flag if train Dirac function used, 0: unused, 1: used.
- // pResultAmpIndex - Pointer to the index of quantized amplitude, in Q0.
- // pResultAmplitude - Pointer to the amplitude of the fixed codebook vector.
- // pResultPosition - Pointer to the position of fixed codebook vector, which amplitude is not equal
- // to 0, in Q0.
- // subFrame - Subframe number, in Q0, from 0 to 3.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI (IppStatus, ippsMPMLQFixedCodebookSearch_G723,(
- Ipp16s valBaseDelay,
- const Ipp16s * pSrcImpulseResponse,
- const Ipp16s * pSrcResidualTarget,
- Ipp16s * pDstFixedVector,
- Ipp16s * pResultGrid,
- Ipp16s * pResultTrainDirac,
- Ipp16s * pResultAmpIndex,
- Ipp16s * pResultAmplitude,
- Ipp32s * pResultPosition,
- Ipp16s subFrame))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsSynthesisFilter_G723_16s
- //
- // Purpose: function implements the LPC synthesis filter.
- // pSrcLPC - Pointer to the LPC coefficients in the length of 10, in Q13.
- // pSrcResidual - Pointer to the residual signal in the length of 60.
- // pSrcDstIIRState - Pointer to the history of synthesized speech signal in the
- // length of 10.
- // pDstSpch - Pointer to the output speech signal in the length of 60.
- // pMem pointer to the filter memory
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI( IppStatus, ippsSynthesisFilter_G723_16s32s, (const Ipp16s *pQntLPC, const Ipp16s *pSrc,
- Ipp32s *pDst, Ipp16s *pMem ) )
- IPPAPI(IppStatus, ippsSynthesisFilter_G723_16s, (const Ipp16s *pSrcLPC, const Ipp16s *pSrcResidual,
- Ipp16s *pSrcDstIIRState, Ipp16s *pDstSpch))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsPitchPostFilter_G723_16s
- //
- // Purpose: function calculates the coefficients of the pitch post filter..
- // valBaseDelay - Base delay, in Q0.
- // pSrcResidual - Pointer to the residual signal in the length of 365.
- // The pointer points to the location of 146.
- // subFrame - Subframe number, in Q0, from 0 to 3.
- // bitRate - Transmit bit rate, IPP_SPCHBR_6300 stands for 6.3 Kbps
- // and IPP_SPCHBR_5300 stands for 5.3 Kbps.
- // pResultDelay - Point to the delay of the pitch post filter, in Q0.
- // pResultPitchGain - Point to the gain of the pitch post filter, in Q15.
- // pResultScalingGain - Point to the scaling gain of the pitch post filter, in Q15.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsPitchPostFilter_G723_16s, (Ipp16s valBaseDelay, const Ipp16s *pSrcResidual,
- Ipp16s *pResultDelay, Ipp16s *pResultPitchGain, Ipp16s *pResultScalingGain,
- Ipp16s subFrame, IppSpchBitRate bitRate))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsAutoCorr_GSMAMR_16s32s
- //
- // Purpose: Compute autocorrelations of signal with windowing and
- // Lag windowing
- // pSrcSpch - Pointer to the input speech vector (240 samples),
- // represented using Q15.0.
- // mode - Bit rate specifier. Values between IPP_SPCHBR_4750 and
- // IPP_SPCHBR_12200 are valid.
- // pDstAutoCorr - Pointer to the autocorrelation coefficients, of length 22.
- // For 12.2 kbps mode, elements 0 ~ 10 contain the first
- // set of autocorrelation lags, and elements 11 ~ 21
- // contain the second set of autocorrelation lags.
- // For all other modes there is only one set of autocorrelation
- // lags contained in vector elements 0 ~ 10.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsAutoCorr_GSMAMR_16s32s,
- (const Ipp16s *pSrcSpch, Ipp32s *pDstAutoCorr,IppSpchBitRate mode))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsLevinsonDurbin_GSMAMR_32s16s
- //
- // Purpose: Calculates the 10th-order LP coefficients from the autocorrelation lags using the Levinson-Durbin
- // algorithm.
- // pSrcAutoCorr - Pointer to the autocorrelation coefficients, a vector of length of 11.
- // pSrcDstLPC - Pointer to the LP coefficients associated with
- // the previous frame, a vector of length 11, represented using Q3.12.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsLevinsonDurbin_GSMAMR_32s16s,
- (const Ipp32s *pSrcAutoCorr, Ipp16s *pSrcDstLPC))
- #define ippsLevinsonDurbin_GSMAMR ippsLevinsonDurbin_GSMAMR_32s16s
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsLPCToLSP_GSMAMR_16s
- //
- // Purpose: Converts a set of 10th-order LP coefficients to
- // an equivalent set of line spectrum pairs (LSPs).
- // pSrcLPC - Pointer to 11-element LP coefficient vector, represented using Q3.12.
- // pSrcPrevLsp - Pointer to the 10-element LSP coefficient vector associated
- // with the previous frame, represented using Q0.15.
- // pDstLsp - Pointer to the 10-element LSP coefficient vector, represented using Q0.15.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsLPCToLSP_GSMAMR_16s,
- (const Ipp16s * pSrcLPC, const Ipp16s * pSrcPrevLsp, Ipp16s * pDstLsp))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsLSPToLPC_GSMAMR_16s
- //
- // Purpose: Converts a set of 10th-order LSPs to LP coefficients.
- // pSrcLsp - Pointer to the 10-element LSP coefficient vector, represented using Q0.15.
- // pDstLPC - Pointer to the 11-element LP coefficient vector, represented using Q3.12.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsLSPToLPC_GSMAMR_16s, (const Ipp16s *pSrcLsp, Ipp16s *pDstLPC))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsLSPQuant_GSMAMR_16s
- //
- // Purpose: Quantizes the LSP coefficient vector, then obtains quantized LSP codebook indices.
- // pSrcLsp - Pointer to the unquantized 20-element LSP vector, represented using Q0.15. For
- // 12.2 kbps frames, the first LSP set is contained in vector elements 0 ~ 9, and the second LSP
- // set is contained in vector elements 10 ~ 19. For all other bit rates, only elements 0 ~ 9 are valid
- // and used for the quantization.
- // pSrcDstPrevQLSFResidual - Pointer to the 10-element quantized LSF residual from the previous
- // frame, represented using Q0.15.
- // pDstQLsp - Pointer to the 20-element quantized LSP vector, represented using Q0.15. For 12.2
- // kbps frames, elements 0 to 9 contain the first quantized LSP set, and elements 10 to 19 contain
- // the second quantized LSP set. For all other bit rates there is only one LSP set contained in
- // elements 0 to 9.
- // pDstQLspIndex - Pointer to the 5-element vector of quantized LSP indices. For 12.2Kbps
- // frames, all five elements contain valid data; for all other bit rates, only the first three elements
- // contain valid indices.
- // mode - Bit rate specifier. The enumerated values of IPP_SPCHBR_4750 to
- // IPP_SPCHBR_12200 are valid.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsLSPQuant_GSMAMR_16s, (const Ipp16s *pSrcLsp,
- Ipp16s *pSrcDstPrevQLSFResidual, Ipp16s *pDstQLsp,
- Ipp16s *pDstQLspIndex, IppSpchBitRate mode))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsEncDTXSID_GSMAMR_16s
- //
- // Purpose: This function is called only when the current frame is a DTX frame. It extracts the needed
- // parameters for the SID frame: LSF quantization parameter and the energy index parameter. If the
- // SID flag is off, no operation is needed, and all the parameters are copied from last frame.
- // pSrcLspBuffer - Pointer to the LSP coefficients of eight consecutive frames marked with
- // VAD = 0, in the length of 80, in Q15.
- // pSrcLogEnergyBuffer - Pointer to the log energy coefficients of eight consecutive frames
- // marked with unvoiced, in the length of 8, in Q10.
- // pValResultLogEnergyIndex - Pointer log energy index of last frame, in Q2.
- // pValResultDtxLSFRefIndex - Pointer to the LSF quantization reference index of last frame.
- // pSrcDstDtxQLSFIndex - Pointer to the LSF residual quantization indices of last frame, in the
- // length of 3.
- // pSrcDstPredQErr - Pointer to the fixed gain prediction error of four previous subframes for
- // non-12.2 Kbps modes, in the length of 4, in Q10.
- // pSrcDstPredQErrMR122 - Pointer to the fixed gain prediction error of four previous
- // subframes for 12.2 Kbps, in the length of 4, in Q10.
- // sidFLag - The SID flag of the current frame. If it is set to 1, the current frame is a SID frame,
- // and the function will extract the LSF and energy parameters. If it is set to 0, the LSF and
- // energy parameters will copy from previous frame.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsEncDTXSID_GSMAMR_16s, (const Ipp16s *pSrcLspBuffer,
- const Ipp16s *pSrcLogEnergyBuffer, Ipp16s *pValResultLogEnergyIndex,
- Ipp16s *pValResultDtxLSFRefIndex, Ipp16s *pSrcDstDtxQLSFIndex,
- Ipp16s *pSrcDstPredQErr, Ipp16s *pSrcDstPredQErrMR122,
- Ipp16s sidFlag))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsQuantLSPDecode_GSMAMR_16s
- //
- // Purpose: Decodes quantized LSPs from the received codebook index if the
- // errors are not detected on the received frame. Otherwise, the
- // function recovers the quantized LSPs from previous quantized
- // LSPs using linear interpolation.
- // pSrcQLspIndex - Pointer to the five-element vector containing codebook indices
- // of the quantized LSPs.
- // pSrcDstPrevQLSFResidual - Pointer to the 10-element quantized LSF residual from
- // the previous frame, represented using Q0.15.
- // pSrcDstPrevQLSF - Pointer to the 10-element quantized LSF vector from the previous
- // frame, represented using Q0.15.
- // pSrcDstPrevQLsp - Pointer to the 10-element quantized LSP vector from the previous
- // frame, represented using Q0.15.
- // pDstQLsp - Pointer to a 40-element vector containing four subframe LSP sets.
- // bfi - Bad frame indicator; "0" signifies a good frame; all other values
- // signify a bad frame.
- // mode - Bit rate specifier.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsQuantLSPDecode_GSMAMR_16s, (const Ipp16s *pSrcQLspIndex,
- Ipp16s *pSrcDstPrevQLSFResidual, Ipp16s *pSrcDstPrevQLSF,
- Ipp16s *pSrcDstPrevQLsp, Ipp16s *pDstQLsp, Ipp16s bfi,
- IppSpchBitRate mode))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsEncDTXHandler_GSMAMR_16s
- //
- // Purpose: Function determines the SID flag of current frame, and it determines
- // whether the current frame should use DTX encoding.
- // pValResultHangOverCount - Pointer to the DTX hangover count. When initialized or reset,
- // it is set to 0.
- // pValResultDtxElaspCount - Pointer to elapsed frame count since last non-DTX frame.
- // When initialized or reset, it is set 0.
- // pValResultUsedMode - Pointer to the transmission mode.
- // pResultSidFlag - Pointer to the output SID flag, "1" indicates a SID frame, and "0"
- // indicates a non-SID frame.
- // vadFlag - This is the VAD flag of the current frame, if it is set 1, the current
- // frame is marked with voiced, and if it is set to 0, it is marked with
- // unvoiced.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsEncDTXHandler_GSMAMR_16s, (Ipp16s *pValResultHangOverCount,
- Ipp16s *pValResultDtxElapseCount, Ipp16s *pValResultUsedMode,
- Ipp16s *pResultSidFlag, Ipp16s vadFlag))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsEncDTXBuffer_GSMAMR_16s
- //
- // Purpose: Function buffer the LSP coefficients and previous log energy coefficients.
- // pSrcSpch - Pointer to the input speech signal, in the length of 160, in Q15.0.
- // pSrcLsp - Pointer to the LSP for this frame, in the length of 10, in Q0.15.
- // pValResultUpdateIndex - Pointer to the previous memory update index. It is a value
- // circularly increased between 0 and 7.
- // pSrcDstLspBuffer - Pointer to the LSP coefficients of eight previous frames, in the
- // length of 80, in Q0.15.
- // pSrcDstLogEnergyBuffer - Pointer to the logarithm energy coefficients of eight previous
- // frames,inthelength of 8,in Q5.10.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsEncDTXBuffer_GSMAMR_16s, (const Ipp16s * pSrcSpch,
- const Ipp16s *pSrcLsp, Ipp16s *pValResultUpdateIndex,
- Ipp16s *pSrcDstLspBuffer, Ipp16s *pSrcDstLogEnergyBuffer))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsDecDTXBuffer_GSMAMR_16s
- //
- // Purpose: Function buffer the LSF coefficients and previous log energy coefficients.
- // pSrcSpch - Pointer to the input speech signal, in the length of 160, in Q15.0.
- // pSrcLSF - Pointer to the LSF for this frame, in the length of 10, in Q0.15.
- // pValResultUpdateIndex - Pointer to the previous memory update index. It is a value
- // circularly increased between 0 and 7.
- // pSrcDstLSFBuffer - Pointer to the LSF coefficients of eight previous frames, in the
- // length of 80, in Q0.15.
- // pSrcDstLogEnergyBuffer - Pointer to the logarithm energy coefficients of eight previous
- // frames,inthelength of 8,in Q5.10.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsDecDTXBuffer_GSMAMR_16s, (const Ipp16s *pSrcSpch,
- const Ipp16s *pSrcLSF, Ipp16s *pValResultUpdateIndex,
- Ipp16s *pSrcDstLSFBuffer, Ipp16s *pSrcDstLogEnergyBuffer))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsAlgebraicCodebookSearch_GSMAMR_16s
- //
- // Purpose: Fixed (algebraic) codebook search functions
- // valIntPitchLag pitch lag
- // valBoundQAdptGain pitch gain
- // pSrcFixedTarget target vector
- // pSrcLtpResidual long term prediction residual
- // pSrcDstImpulseResponse impulse response of weighted synthesis
- // filter h[-L_subfr..-1] must be set to zero
- // pDstFixedVector innovative codebook
- // pDstFltFixedVector filtered fixed codebook excitation
- // pDstEncPosSign signs of the pulses
- // subFrame subframe number
- // mode coder mode
- // pBuffer pointer to the internal memory buffer
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI( IppStatus, ippsAlgebraicCodebookSearch_GSMAMR_16s, (Ipp16s valIntPitchLag, Ipp16s valBoundQAdptGain,
- const Ipp16s *pSrcFixedTarget, const Ipp16s *pSrcLtpResidual, Ipp16s *pSrcDstImpulseResponse,
- Ipp16s *pDstFixedVector, Ipp16s *pDstFltFixedVector, Ipp16s *pDstEncPosSign,
- Ipp16s subFrame, IppSpchBitRate mode) )
- IPPAPI(IppStatus, ippsAlgebraicCodebookSearchEX_GSMAMR_16s,
- (Ipp16s valIntPitchLag, Ipp16s valBoundQAdptGain,
- const Ipp16s * pSrcFixedTarget, const Ipp16s * pSrcLtpResidual,
- Ipp16s * pSrcDstImpulseResponse, Ipp16s * pDstFixedVector,
- Ipp16s * pDstFltFixedVector, Ipp16s * pDstEncPosSign,
- Ipp16s subFrame, IppSpchBitRate mode, Ipp32s * pBuffer))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsFixedCodebookDecode_GSMAMR_16s
- //
- // Purpose: Fixed codebook vector decode functions
- // pSrcFixedIndex pointer to the fixed codebook index vector
- // pDstFixedVector pointer to the 40-element fixed codebook vector
- // subFrame subframe number
- // mode coder mode
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI (IppStatus, ippsFixedCodebookDecode_GSMAMR_16s,
- (const Ipp16s *pSrcFixedIndex,
- Ipp16s *pDstFixedVector,
- Ipp16s subFrame,
- IppSpchBitRate mode) )
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsOpenLoopPitchSearchNonDTX_GSMAMR_16s
- //
- // Purpose: Computes the open-loop pitch lag (as well as optimal pitch gain for 10.2 kbps frames only) when
- // both DTX and VAD are disabled.
- // pSrcWgtLPC1 Pointer to the 44-element vector of weighted LP coefficients
- // pSrcWgtLPC2 Pointer to the 44-element vector of weighted LP coefficients
- // pSrcSpch Pointer to the 170-sample input speech vector
- // pValResultPrevMidPitchLag Pointer to the median filtered pitch lag of the 5 previous voiced
- // speech half-frames
- // pValResultVvalue Pointer to the adaptive parameter v
- // pSrcDstPrevPitchLag Pointer to the five-element vector that contains the pitch lags associated
- // with the five most recent voiced speech half-frames
- // pSrcDstPrevWgtSpch Pointer to a 143-element vector containing perceptually weighted
- // speech from the previous frame
- // pDstOpenLoopLag Pointer to a two-element vector of open-loop pitch lags.
- // pDstOpenLoopGain Pointer to a 2-element vector containing optimal open-loop pitch gains.
- // mode coder mode
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI (IppStatus, ippsOpenLoopPitchSearchNonDTX_GSMAMR_16s,(
- const Ipp16s * pSrcWgtLPC1,
- const Ipp16s * pSrcWgtLPC2,
- const Ipp16s * pSrcSpch,
- Ipp16s * pValResultPrevMidPitchLag,
- Ipp16s * pValResultVvalue,
- Ipp16s * pSrcDstPrevPitchLag,
- Ipp16s * pSrcDstPrevWgtSpch,
- Ipp16s * pDstOpenLoopLag,
- Ipp16s * pDstOpenLoopGain,
- IppSpchBitRate mode))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsOpenLoopPitchSearchDTXVAD1_GSMAMR_16s
- //
- // Purpose: Extracts an open-loop pitch lag estimate from the weighted input speech when the VAD 1 scheme
- // is enabled
- // pSrcWgtLPC1 Pointer to the 44-element vector of weighted LP coefficients
- // pSrcWgtLPC2 Pointer to the 44-element vector of weighted LP coefficients
- // pSrcSpch Pointer to the 170-sample input speech vector
- // pValResultToneFlag Pointer to the tone flag for the VAD module.
- // pValResultPrevMidPitchLag Pointer to the median filtered pitch lag of the 5 previous voiced
- // speech half-frames
- // pValResultVvalue Pointer to the adaptive parameter v
- // pSrcDstPrevPitchLag Pointer to the five-element vector that contains the pitch lags associated
- // with the five most recent voiced speech half-frames
- // pSrcDstPrevWgtSpch Pointer to a 143-element vector containing perceptually weighted
- // speech from the previous frame
- // pResultMaxHpCorr Pointer to the correlation maximum.
- // pDstOpenLoopLag Pointer to a two-element vector of open-loop pitch lags.
- // pDstOpenLoopGain Pointer to a 2-element vector containing optimal open-loop pitch gains.
- // mode coder mode
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI (IppStatus, ippsOpenLoopPitchSearchDTXVAD1_GSMAMR_16s,(
- const Ipp16s * pSrcWgtLPC1,
- const Ipp16s * pSrcWgtLPC2,
- const Ipp16s * pSrcSpch,
- Ipp16s * pValResultToneFlag,
- Ipp16s * pValResultPrevMidPitchLag,
- Ipp16s * pValResultVvalue,
- Ipp16s * pSrcDstPrevPitchLag,
- Ipp16s * pSrcDstPrevWgtSpch,
- Ipp16s * pResultMaxHpCorr,
- Ipp16s * pDstOpenLoopLag,
- Ipp16s * pDstOpenLoopGain,
- IppSpchBitRate mode))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsOpenLoopPitchSearchDTXVAD2_GSMAMR_16s32s
- //
- // Purpose: Extracts an open-loop pitch lag estimate from the weighted input speech when the VAD 2 scheme
- // is enabled
- // pSrcWgtLPC1 Pointer to the 44-element vector of weighted LP coefficients
- // pSrcWgtLPC2 Pointer to the 44-element vector of weighted LP coefficients
- // pSrcSpch Pointer to the 170-sample input speech vector
- // pValResultPrevMidPitchLag Pointer to the median filtered pitch lag of the 5 previous voiced
- // speech half-frames
- // pValResultVvalue Pointer to the adaptive parameter v
- // pSrcDstPrevPitchLag Pointer to the five-element vector that contains the pitch lags associated
- // with the five most recent voiced speech half-frames
- // pSrcDstPrevWgtSpch Pointer to a 143-element vector containing perceptually weighted
- // speech from the previous frame
- // pResultMaxCorr Pointer to the correlation maximum..
- // pResultWgtEnergy Pointer to the pitch delayed energy of the weighted speech signal.
- // pDstOpenLoopLag Pointer to a two-element vector of open-loop pitch lags.
- // pDstOpenLoopGain Pointer to a 2-element vector containing optimal open-loop pitch gains.
- // mode coder mode
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI (IppStatus, ippsOpenLoopPitchSearchDTXVAD2_GSMAMR_16s32s,(
- const Ipp16s * pSrcWgtLPC1,
- const Ipp16s * pSrcWgtLPC2,
- const Ipp16s * pSrcSpch,
- Ipp16s * pValResultPrevMidPitchLag,
- Ipp16s * pValResultVvalue,
- Ipp16s * pSrcDstPrevPitchLag,
- Ipp16s * pSrcDstPrevWgtSpch,
- Ipp32s * pResultMaxCorr,
- Ipp32s * pResultWgtEnergy,
- Ipp16s * pDstOpenLoopLag,
- Ipp16s * pDstOpenLoopGain,
- IppSpchBitRate mode))
- #define ippsOpenLoopPitchSearchDTXVAD2_GSMAMR ippsOpenLoopPitchSearchDTXVAD2_GSMAMR_16s32s
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsImpulseResponseTarget_GSMAMR_16s
- //
- // Purpose: Computes the impulse response and target signal required for the adaptive codebook search.
- // pSrcSpch Pointer to the 50-element input speech vector, where elements 0 - 9 are from the
- // previous subframe, and elements 10 - 49 are from the current subframe.
- // pSrcWgtLPC1 Pointer to an 11-element vector of weighted LP coefficients
- // pSrcWgtLPC2 Pointer to an 11-element vector of weighted LP coefficients
- // pSrcQLPC Pointer to an 11-element vector of quantized LP coefficients
- // pSrcSynFltState Pointer to the 10-element vector that contains the state of the synthesis
- // filter
- // pSrcWgtFltState Pointer to the 10-element vector that contains the state of the weighting
- // filter.
- // pDstImpulseResponse Pointer to the 40-element vector that contains the impulse response.
- // pDstLpResidual Pointer to the 40-element vector that contains the LP residual.
- // pDstAdptTarget Pointer to the 40-element vector that contains the adaptive codebook search
- // target signal.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI (IppStatus, ippsImpulseResponseTarget_GSMAMR_16s,(
- const Ipp16s * pSrcSpch,
- const Ipp16s * pSrcWgtLPC1,
- const Ipp16s * pSrcWgtLPC2,
- const Ipp16s * pSrcQLPC,
- const Ipp16s * pSrcSynFltState,
- const Ipp16s * pSrcWgtFltState,
- Ipp16s * pDstImpulseResponse,
- Ipp16s * pDstLpResidual,
- Ipp16s * pDstAdptTarget))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsAdaptiveCodebookSearch_GSMAMR_16s
- //
- // Purpose: Performs the adaptive codebook search.
- // pSrcAdptTarget Pointer to the 40-element adaptive target signal vector,
- // pSrcImpulseResponse Pointer to the 40-element impulse response of the weighted synthesis
- // filter.
- // pSrcOpenLoopLag Pointer to a two-element vector of open-loop pitch lags.
- // pValResultPrevIntPitchLag Pointer to the previous integral pitch lag.
- // pSrcDstExcitation Pointer to the 194-element excitation vector.
- // pResultFracPitchLag Pointer to the fractional pitch lag obtained during the adaptive codebook
- // search.
- // pResultAdptIndex Pointer to the coded closed-loop pitch index.
- // pDstAdptVector Pointer to the 40-sample adaptive codebook vector.
- // subFrame subframe number
- // mode coder mode
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI (IppStatus, ippsAdaptiveCodebookSearch_GSMAMR_16s,(
- const Ipp16s * pSrcAdptTarget,
- const Ipp16s * pSrcImpulseResponse,
- Ipp16s * pSrcOpenLoopLag,
- Ipp16s * pValResultPrevIntPitchLag,
- Ipp16s * pSrcDstExcitation,
- Ipp16s * pResultFracPitchLag,
- Ipp16s * pResultAdptIndex,
- Ipp16s * pDstAdptVector,
- Ipp16s subFrame,
- IppSpchBitRate mode))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsAdaptiveCodebookDecode_GSMAMR_16s
- //
- // Purpose: This function decodes the adaptive codebook parameters transmitted by the encoder, and then
- // applies them to interpolate an adaptive codebook vector.
- // valAdptIndex Adaptive codebook index.
- // pValResultPrevIntPitchLag Pointer to the previous integer pitch lag.
- // pValResultLtpLag Pointer to the LTP-Lag value.
- // pSrcDstExcitation Pointer to the 194-element excitation vector.
- // pResultIntPitchLag Pointer to the 194-element excitation vector.
- // pDstAdptVector Pointer to the fractional pitch lag obtained during the adaptive codebook
- // subFrame subframe number
- // bfi Bad frame indicator. "0" signifies a good frame; any other value signifies a bad frame.
- // inBackgroundNoise Flag set when the previous frame is considered to contain background
- // noise and only shows minor energy level changes.
- // voicedHangover Counter used to monitor the time since a frame was presumably voiced.
- // mode coder mode
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI (IppStatus ,ippsAdaptiveCodebookDecode_GSMAMR_16s,(
- Ipp16s valAdptIndex,
- Ipp16s * pValResultPrevIntPitchLag,
- Ipp16s * pValResultLtpLag,
- Ipp16s * pSrcDstExcitation,
- Ipp16s * pResultIntPitchLag,
- Ipp16s * pDstAdptVector,
- Ipp16s subFrame,
- Ipp16s bfi,
- Ipp16s inBackgroundNoise,
- Ipp16s voicedHangover,
- IppSpchBitRate mode))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsPostFilter_GSMAMR_16s
- //
- // Purpose: This function decodes the adaptive codebook parameters transmitted by the encoder, and then
- // applies them to interpolate an adaptive codebook vector.
- // pSrcQLPC Pointer to the reconstructed LP coefficients, in the length of 44.
- // pSrcSpch Pointer to the start position of the input speech signal for current frame.
- // pValResultPrevResidual Pointer to the last output of the FIR filter of the formant filter for
- // previous subframe.
- // pValResultPrevScalingGain Pointer to the scaling factor b of the last signal for the previous
- // subframe.
- // pSrcDstFormantFIRState Pointer to the state of the FIR part of the formant filter, in the
- // length of 10.
- // pSrcDstFormantIIRState Pointer to the state of the IIR part of the formant filter, in the length
- // of 10.
- // pDstFltSpch Pointer to the filtered speech, in the length of 160.
- // mode coder mode
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI (IppStatus, ippsPostFilter_GSMAMR_16s,(
- const Ipp16s * pSrcQLPC,
- const Ipp16s * pSrcSpch,
- Ipp16s * pValResultPrevResidual,
- Ipp16s * pValResultPrevScalingGain,
- Ipp16s * pSrcDstFormantFIRState,
- Ipp16s * pSrcDstFormantIIRState,
- Ipp16s * pDstFltSpch,
- IppSpchBitRate mode))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsVAD1_GSMAMR_16s
- //
- // Purpose: Voice Activity Detection (VAD) for AMR (option 1) functions
- // pSrcSpch pointer to the input speech signal, in the length of 160
- // pSrcDstVad1State pointer to the VAD Option 1 history variables
- // pResultVadFlag pointer to the VAD flag of this frame
- // maxHpCorr best_corr_hp value of previous frame
- // toneFlag tone flag
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI (IppStatus, ippsVAD1_GSMAMR_16s,
- (const Ipp16s *pSrcSpch,
- IppGSMAMRVad1State *pSrcDstVad1State,
- Ipp16s *pResultVadFlag,
- Ipp16s maxHpCorr,
- Ipp16s toneFlag) )
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsVAD2_GSMAMR_16s
- //
- // Purpose: Voice Activity Detection (VAD) for AMR (option 2) functions
- // pSrcSpch pointer to the input speech signal, in the length of 160
- // pSrcDstVad2State pointer to the VAD Option 2 history variables
- // pResultVadFlag pointer to the VAD flag of this frame
- // ltpFlag LTP_flag value, which is generated by the comparison
- // of the long-term prediction to a constant threshold LTP_THLD.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI (IppStatus, ippsVAD2_GSMAMR_16s,
- (const Ipp16s * pSrcSpch,
- IppGSMAMRVad2State *pSrcDstVad2State,
- Ipp16s *pResultVadFlag,
- Ipp16s ltpFlag) )
- /* /////////////////////////////////////////////////////////////////////////////
- // G.722.1 related functions
- ///////////////////////////////////////////////////////////////////////////// */
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsDCTFwd_G722, ippsDCTInv_G722
- // Purpose: Computes the forward or inverse discrete cosine transform (DCT)
- // of a signal.
- // Parameters:
- // pSrc Pointer to the source vector.
- // pDst Pointer to the destination vector.
- // len Length of the source and destination vectors either 320
- // for G722 by default or 640 for G7221 functions respectively.
- // Returns:
- // ippStsNoErr Indicates no error.
- // ippStsNullPtrErr Indicates an error when one of the specified pointer is NULL.
- // IppStsSizeErr Indicates an error when len has an illegal value.
- */
- IPPAPI( IppStatus, ippsDCTFwd_G722_16s, (const Ipp16s *pSrc, Ipp16s *pDst))
- IPPAPI( IppStatus, ippsDCTFwd_G7221_16s, (const Ipp16s *pSrc, Ipp16s *pDst, int len))
- IPPAPI( IppStatus, ippsDCTInv_G722_16s, (const Ipp16s *pSrc, Ipp16s *pDst))
- IPPAPI( IppStatus, ippsDCTInv_G7221_16s, (const Ipp16s *pSrcMLT, Ipp16s *pDstSmpl, int len))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsDecomposeMLTToDCT_G722
- // Purpose: Decompose MLT transform input signal to form of the DCT transform
- // input signal.
- // Parameters:
- // pSrcSpch Pointer to the source speech vector .
- // pSrcSpchOld Pointer to the source/destination vector of
- // the previous speech frame.
- // pDstSpchDecomposed Pointer to the destination decomposed speech vector.
- // len Length of the source and destination vectors either 320
- // for G722 by default or 640 for G7221 functions respectively.
- // Returns:
- // ippStsNoErr Indicates no error.
- // ippStsNullPtrErr Indicates an error when one of the specified pointer is NULL.
- // IppStsSizeErr Indicates an error when len has an illegal value.
- */
- IPPAPI( IppStatus, ippsDecomposeMLTToDCT_G722_16s, (const Ipp16s *pSrcSpch,
- Ipp16s *pSrcDstSpchOld, Ipp16s *pDstSpchDecomposed))
- IPPAPI( IppStatus, ippsDecomposeMLTToDCT_G7221_16s, (const Ipp16s *pSrcSpch,
- Ipp16s *pSrcDstSpchOld, Ipp16s *pDstSpchDecomposed, int len))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsDecomposeDCTToMLT_G722_16s
- // Purpose: Decompose IDCT output signal to form of the MLT transform output signal.
- // Parameters:
- // pSrcSpchDecomposed Pointer to the source windowed speech vector[len].
- // pSrcSpchDecomposedOld Pointer to the source/destination
- // windowed speech vector[len/2] of previous frame.
- // pDstSpch Pointer to the destination speech vector[len].
- // len Length of destination vectors either 320 for G722
- // by default or 640 for G7221 functions respectively.
- // Returns:
- // ippStsNoErr Indicates no error.
- // ippStsNullPtrErr Indicates an error when one of the specified pointer is NULL.
- // IppStsSizeErr Indicates an error when len has an illegal value.
- */
- IPPAPI( IppStatus, ippsDecomposeDCTToMLT_G722_16s, (const Ipp16s *pSrcSpchDecomposed,
- Ipp16s *pSrcDstSpchDecomposedOld, Ipp16s *pDstSpch))
- IPPAPI( IppStatus, ippsDecomposeDCTToMLT_G7221_16s, (const Ipp16s *pSrcSpchDecomposed,
- Ipp16s *pSrcDstSpchDecomposedOld, Ipp16s *pDstSpch, int len))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsHuffmanEncode_G722
- // Purpose: Performs Huffman encoding of the quantized amplitude envelope indexes.
- // Parameters:
- // category The category of MLT region in range of [0-7]
- // qntAmpEnvIndex The quantized amplitude envelope index in range of [0-63]
- // pSrcMLTCoeffs Pointer to the source vector[20] of raw MLT coefficients.
- // pDstCode Pointer to the output Huffman code.
- // pCodeLength Pointer to output Huffman code length in bit.
- // Returns:
- // ippStsNoErr Indicates no error.
- // IppStsNullPtrErr Indicates an error when the pSrcMLTCoeffs or pDstCode
- // or pCodeLength pointer is null
- // IppStsScaleRangeErr Indicates an error when category or qntAmpEnvIndex is out of
- // proper range.
- */
- IPPAPI( IppStatus, ippsHuffmanEncode_G722_16s32u, (int category, int qntAmpEnvIndex,
- const Ipp16s *pSrcMLTCoeffs, Ipp32u *pDstCode, int *pCodeLength))
- /* /////////////////////////////////////////////////////////////////////////////
- // G.722.1 end
- ///////////////////////////////////////////////////////////////////////////// */
- /* /////////////////////////////////////////////////////////////////////////////
- // G.726 related functions
- ///////////////////////////////////////////////////////////////////////////// */
- #if !defined( _OWN_BLDPCS )
- typedef struct _EncoderState_G726_16s IppsEncoderState_G726_16s;
- typedef struct _DecoderState_G726_16s IppsDecoderState_G726_16s;
- #endif
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsEncodeGetStateSize_G726
- // Purpose: Query of G726 encoder memory size
- // Parameters:
- // pEncSize Pointer to the output value of the G726 encoder memory size in bytes
- // Returns: ippStsNoErr, if no errors
- */
- IPPAPI(IppStatus, ippsEncodeGetStateSize_G726_16s8u,(unsigned int* pEncSize))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsEncodeInit_G726
- // Purpose: Initializes the memory for the ADPCM encode
- // Parameters:
- // pEncMem Pointer to the input memory buffer of appropriate size applicable to
- // store a state of the encoder
- // rate Encode bit rate of the G.726 encoder: IPP_SPCHBR_16000,
- // IPP_SPCHBR_24000, IPP_SPCHBR_32000, IPP_SPCHBR_40000.
- // Returns:
- // ippStsBadArgErr Indicates an error when the rate is not equal to one of the
- // allowable encoding bit rates: IPP_SPCHBR_16000, IPP_SPCHBR_24000 or
- // IPP_SPCHBR_32000, IPP_SPCHBR_40000.
- // IppStsNullPtrErr Indicates an error when the memory pointer is null
- */
- IPPAPI(IppStatus, ippsEncodeInit_G726_16s8u,
- (IppsEncoderState_G726_16s* pEncMem, IppSpchBitRate rate))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsEncode_G726
- // Purpose: ADPCM encoding of input speech signal
- // Parameters:
- // pEncMem Pointer to the encoder state memory
- // pSrc Pointer to the uniform PCM input speech vector.
- // pDst Pointer to the ADPCM bit-stream output vector.
- // len The length of input/output vectors.
- // Returns:
- // ippStsNoErr, if no errors
- // ippStsBadArgErr Indicates an error when the len is less or equal to 0.
- // IppStsNullPtrErr Indicates an error when the pEncMem , pSrc, pDst pointer is null
- */
- IPPAPI(IppStatus, ippsEncode_G726_16s8u,
- (IppsEncoderState_G726_16s* pEncMem, const Ipp16s *pSrc, Ipp8u *pDst, unsigned int len))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsEncodeGetStateSize_G726
- // Purpose: Query of G726 decoder memory size
- // Parameters:
- // pDecSize Pointer to the output value of the G726 decoder memory size in bytes
- // Returns: ippStsNoErr, if no errors
- */
- IPPAPI(IppStatus, ippsDecodeGetStateSize_G726_8u16s,(unsigned int* pDecSize))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsEncodeInit_G726
- // Purpose: Initializes the memory for the ADPCM encode
- // Parameters:
- // pDecMem Pointer to the input memory buffer of appropriate size applicable to
- // store a state of the decoder
- // rate input bit rate of the G.726 decoder: IPP_SPCHBR_16000,
- // IPP_SPCHBR_24000, IPP_SPCHBR_32000, IPP_SPCHBR_40000.
- // law Output speech PCM law : IPP_PCM_MULAW, IPP_PCM_ALAW, IPP_PCM_LINEAR
- // Returns:
- // ippStsBadArgErr Indicates an error when the rate is not equal to one of the
- // allowable decoding bit rates: IPP_SPCHBR_16000, IPP_SPCHBR_24000 or
- // IPP_SPCHBR_32000,
- // IPP_SPCHBR_40000 or the law is not equal to one othe allowable output PCM:
- // IPP_PCM_MULAW, IPP_PCM_ALAW, IPP_PCM_LINEAR.
- // IppStsNullPtrErr Indicates an error when the obj pointer is null
- */
- IPPAPI(IppStatus, ippsDecodeInit_G726_8u16s,
- (IppsDecoderState_G726_16s* pDecMem, IppSpchBitRate rate, IppPCMLaw law))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsDecode_G726
- // Purpose: Initializes the memory for the ADPCM encode
- // Parameters:
- // pDecMem Pointer to the decoder state memory
- // pSrc Pointer to the input ADPCM code vector contains two, three,
- // four or five bits of the ADPCM codes per byte respectively for
- // 16, 24, 32 or 40 Kbit/s bit rates.
- // pDst Pointer to the 16bit linear PCM speech output vector.
- // len The length of input/output vectors.
- // Returns:
- // ippStsNoErr, if no errors
- // ippStsBadArgErr Indicates an error when the len is less or equal to 0.
- // IppStsNullPtrErr Indicates an error when the pDecMem , pSrc, pDst pointer is null
- */
- IPPAPI(IppStatus, ippsDecode_G726_8u16s,
- (IppsDecoderState_G726_16s* pDecMem, const Ipp8u *pSrc, Ipp16s *pDst, unsigned int len))
- /* /////////////////////////////////////////////////////////////////////////////
- // G.726 end
- ///////////////////////////////////////////////////////////////////////////// */
- /* /////////////////////////////////////////////////////////////////////////////
- // G.728 related functions
- ///////////////////////////////////////////////////////////////////////////// */
- /*
- // Name: ippsIIR16s_G728
- // Purpose: IIR filter
- // 1+B(1/z)/1+A(1/z)
- // pCoeffs pointer to the input filter coefficients B[11], A[11] in Q14
- // pSrcQntSpeech pointer to the input quantized speech vector
- // pDstWgtSpeech pointer to the output perceptually weighted speech vector
- // pMem pointer to the filter memory
- */
- #if !defined( _OWN_BLDPCS )
- typedef struct _IIRState_G728_16s IppsIIRState_G728_16s;
- #endif
- IPPAPI(IppStatus, ippsIIR16sGetStateSize_G728_16s, (int *pSize))
- IPPAPI(IppStatus, ippsIIR16sInit_G728_16s, (IppsIIRState_G728_16s *pMem ))
- IPPAPI(IppStatus, ippsIIR16s_G728_16s, (const Ipp16s *pCoeffs, const Ipp16s *pSrcQntSpeech,
- Ipp16s *pDstWgtSpeech, int len, IppsIIRState_G728_16s *pMem ))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippSynthesisFilter_G728
- // Purpose: Synthesis filter of size LPC (50)
- // 1/1+A(1/z)
- // pCoeffs pointer to the input LPC filter coefficients vector[51]
- // pSrcDstExc pointer to the input/output gain-scaled excitation vector[5] (ET)
- // excSfs input scale of the previous gain-scaled excitation vector (NLSET)
- // pDstSpeech pointer to the output quantized speech vector[5] (ST)
- // pSpeechSfs output scale of the quantized speech vector (NLSST)
- // pMem pointer to the filter memory
- */
- #if !defined( _OWN_BLDPCS )
- typedef struct _SynthesisFilterState_G728_16s IppsSynthesisFilterState_G728_16s;
- #endif
- IPPAPI(IppStatus, ippsSynthesisFilterGetStateSize_G728_16s,(int* pSize))
- IPPAPI(IppStatus, ippsSynthesisFilterInit_G728_16s,(IppsSynthesisFilterState_G728_16s *pMem))
- IPPAPI(IppStatus, ippsSyntesisFilterZeroInput_G728_16s,(const Ipp16s* pCoeffs,
- Ipp16s *pSrcDstExc, Ipp16s excSfs,Ipp16s *pDstSpeech, Ipp16s *pSpeechSfs,
- IppsSynthesisFilterState_G728_16s *pMem))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsCombinedFilter_G728
- // Purpose: Combined filter
- // Synthesis filter of size LPC (50) + Perceptual weighted filter (IIR)
- // 1/1+A(1/z) * 1+B(1/z)/1+A(1/z)
- // pSyntCoeffs pointer to the input LPC coefficient vector[51]: 1, a0,...,a50
- // pWgtCoeffs pointer to the input WGT filter coefficients B[11] 1,b0,...,b10,
- and A[11] 1,a0,...,a10 in Q14
- // pDstWgtZIR pointer to the output synthesized speech vector
- // pSrcDstExc pointer to the input/output gain-scaled excitation vector[5] (ET)
- // excSfs input scale of the previous gain-scaled excitation vector (NLSET)
- // pDstSpeech pointer to the output quantized speech vector[5] (ST)
- // pSpeechSfs output scale of the quantized speech vector (NLSST)
- // pMem pointer to the filter memory
- */
- #if !defined( _OWN_BLDPCS )
- typedef struct _CombinedFilterState_G728_16s IppsCombinedFilterState_G728_16s;
- #endif
- IPPAPI(IppStatus, ippsCombinedFilterGetStateSize_G728_16s,(int* pSize))
- IPPAPI(IppStatus, ippsCombinedFilterInit_G728_16s,(IppsCombinedFilterState_G728_16s* pMem))
- IPPAPI(IppStatus, ippsCombinedFilterZeroInput_G728_16s,(const Ipp16s* pSyntCoeff,
- const Ipp16s* pWgtCoeff, Ipp16s* pDstWgtZIR, IppsCombinedFilterState_G728_16s* pMem))
- IPPAPI(IppStatus, ippsCombinedFilterZeroState_G728_16s,(const Ipp16s* pSyntCoeff,
- const Ipp16s* pWgtCoeff, Ipp16s* pSrcDstExc, Ipp16s excSfs,
- Ipp16s* pDstSpeech, Ipp16s* pSpeechSfs, IppsCombinedFilterState_G728_16s* pMem))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsPostFilter_G728
- // Purpose: Post filter
- // gl*(1+glb*1/z^kp)* 1-B(1/z)/1-A(1/z) * (1+kp*1/z)
- // gl LTP scaling factor
- // glb LTP product term
- // kp LTP lag, pitch period of current frame
- // tiltz STP tilt-compensation coefficient
- // pCoeffs pointer to the input LPC filter coefficients B(10), A(10)
- // pSrc pointer to the input quantized speech vector SST [-kp,IDIM-1]
- // pDst pointer to the output postfiltered speech vector
- // pSTPmem pointer to the filter memory (61 short integers)
- */
- #if !defined( _OWN_BLDPCS )
- typedef struct _PostFilterState_G728_16s IppsPostFilterState_G728_16s;
- #endif
- IPPAPI(IppStatus, ippsPostFilterGetStateSize_G728_16s,(int *pSize))
- IPPAPI(IppStatus, ippsPostFilterInit_G728_16s,(IppsPostFilterState_G728_16s *pMem))
- IPPAPI(IppStatus, ippsPostFilter_G728_16s,(Ipp16s gl, Ipp16s glb, Ipp16s kp, Ipp16s tiltz,
- const Ipp16s *pCoeffs, const Ipp16s *pSrc, Ipp16s *pDst,
- IppsPostFilterState_G728_16s *pMem))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsWinHybrid_G728
- // Purpose: Hybrid window auto-correlation for backward-adaptive analysis
- // in LD-CELP window:
- // s(M-N),s(M-N+1),...,s(M-1),s(M),s(M+1),...,s(M+L-1)
- // M LPC order for backward adaptation
- // L number of signal samples in backward adaptation
- // N number of non-recursive samples in the hybrid window
- // DIM block size, shall be defined for block scaled operation by
- // the function _ippsWinHybridBlock_G728_16s,
- // where pSrcSfs[i] is the scale factor of pSrc[i*DIM],...,pSrc[i*DIM+DIM-1]
- // If 0, then default scale factor 14 is always used.
- // pSrc input signal for backward-adaptive analysis
- //
- // ippsWinHybridGetStateSize_G728_16s: return the size of HWM memory
- // ippsWinHybridInit_G728_16s: initialized the HWM memory given
- // ippsWinHybridBlock_G728_16s : block operation
- // ippsWinHybrid_G728_16s : non-block operation
- */
- #if !defined( _OWN_BLDPCS )
- typedef struct _WinHybridState_G728_16s IppsWinHybridState_G728_16s;
- #endif
- IPPAPI(IppStatus, ippsWinHybridGetStateSize_G728_16s,(int M, int L, int N, int DIM, int *pMemSize))
- IPPAPI(IppStatus, ippsWinHybridInit_G728_16s,(const Ipp16s *pWinTab,int M, int L, int N,
- int DIM, Ipp16s a2L, IppsWinHybridState_G728_16s *pMem))
- IPPAPI(IppStatus, ippsWinHybridBlock_G728_16s,(Ipp16s bfi, const Ipp16s *pSrc, const Ipp16s *pSrcSfs, Ipp16s *pDst,
- IppsWinHybridState_G728_16s *pMem))
- IPPAPI(IppStatus, ippsWinHybrid_G728_16s,(Ipp16s bfi, const Ipp16s *pSrc, Ipp16s *pDst,
- IppsWinHybridState_G728_16s *pMem))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsLevinsonDurbin_G728
- // Purpose: Calculates LPC by Levinson-Durbin recursion
- // pSrcAutoCorr pointer to the autocorrelation vector
- // numSrcLPC number of precalculated LPC
- // order LP order
- // pDstLPC pointer to the LPC output vector
- // pSrcDstLPC pointer to the input/output LPC vector
- // pDstRC1 pointer to the output first RC
- // pDstResidualEnergy pointer to output residual energy
- // pDstScaleFactor pointer to the output scale factor of LPC
- // pSrcDstScaleFactor pointer to the input/output scale factor of LPC
- */
- IPPAPI(IppStatus, ippsLevinsonDurbin_G728_16s_Sfs,(const Ipp16s *pSrcAutoCorr,
- int order,
- Ipp16s *pDstLPC,
- Ipp16s *pDstRC1,
- Ipp16s *pDstResidualEnergy,
- Ipp16s *pDstScaleFactor))
- IPPAPI(IppStatus, ippsLevinsonDurbin_G728_16s_ISfs,(const Ipp16s *pSrcAutoCorr,
- int numSrcLPC,
- int order,
- Ipp16s *pSrcDstLPC,
- Ipp16s *pSrcDstResidualEnergy,
- Ipp16s *pSrcDstScaleFactor))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsCodebookSearch_G728
- // Purpose: Search for the best codebook vector
- // pSrcCorr pointer to the input correlation vector
- // pSrcEnergy pointer to the input energy of convolved shape codevector
- // pDstShapeIdx pointer to the output best 7-bit shape codebook index
- // pDstGainIdx pointer to the output best 3-bit gain codebook index
- // rate input coding bit rate :
- // IPP_SPCHBR_16000, IPP_SPCHBR_12800 or IPP_SPCHBR_9600
- */
- IPPAPI(IppStatus, ippsCodebookSearch_G728_16s,(
- const Ipp16s* pSrcCorr, const Ipp16s* pSrcEnergy,
- int* pDstShapeIdx, int* pDstGainIdx, Ipp16s* pDstCodebookIdx, IppSpchBitRate rate))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsImpulseResponseEnergy_G728
- // Purpose: Shape codevector convolution and energy calculation
- // pSrcImpResp - pointer to the input impulse response vector of F(z)W(z)
- // pDstEnergy - pointer to the output energy of convolved shape codevector Y2[1,NCWD]
- */
- IPPAPI(IppStatus, ippsImpulseResponseEnergy_G728_16s,(const Ipp16s *pSrcImpResp, Ipp16s *pDstEnergy))
- /* Postfilter adapter block */
- #if !defined( _OWN_BLDPCS )
- typedef struct _PostFilterAdapterState_G728 IppsPostFilterAdapterState_G728;
- #endif
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsPostFilterAdapterGetStateSize_G728
- // Purpose: return the size of postfilter adapter memory.
- */
- IPPAPI(IppStatus, ippsPostFilterAdapterGetStateSize_G728, (int *pSize))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsPostFilterAdapterStateInit_G728
- // Purpose: initializes the memory for postfilter adapter.
- */
- IPPAPI(IppStatus, ippsPostFilterAdapterStateInit_G728, (IppsPostFilterAdapterState_G728 *pMem))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsLPCInverseFilter_G728_16s
- //
- // Purpose: compute the LPC prediction residual for the current decoded speech vector. (block 81)
- // Parameters:
- // pSrcSpeech pointer to quantized speech buffer. (sst)
- // pCoeffs pointer to 10th-order LPC filter coefficients. (apf)
- // pDstResidual pointer to LPC prediction residual memory. (d)
- // pMem pointer to postfilter adapter memory. (LPC inverse filter memory - "stlpci")
- // Returns: IppStatus
- // ippStsNoErr Ok
- // ippStsNullPtrErr At least one of the specified pointers is NULL
- // Notes:
- */
- IPPAPI(IppStatus, ippsLPCInverseFilter_G728_16s, (const Ipp16s* pSrcSpeech, const Ipp16s* pCoeffs,
- Ipp16s* pDstResidual, IppsPostFilterAdapterState_G728* pMem))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsPitchPeriodExtraction_G728_16s
- //
- // Purpose: extract the pitch period from the LPC prediction residual. (block 82)
- // Parameters:
- // pSrcResidual pointer to LPC prediction residual memory. (d)
- // pPitchPeriod pointer to the pitch period of the frame. (kp1)
- // pMem pointer to postfilter adapter memory. (lpfiir, lpfiir, dec)
- // Returns: IppStatus
- // ippStsNoErr Ok
- // ippStsNullPtrErr At least one of the specified pointers is NULL
- // Notes:
- */
- IPPAPI(IppStatus, ippsPitchPeriodExtraction_G728_16s, (const Ipp16s* pSrcResidual,
- int* pPitchPeriod, IppsPostFilterAdapterState_G728* pMem))
- /* /////////////////////////////////////////////////////////////////////////////
- // G.728 end
- ///////////////////////////////////////////////////////////////////////////// */
- /* /////////////////////////////////////////////////////////////////////////////
- // GSMFR related functions
- ///////////////////////////////////////////////////////////////////////////// */
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsRPEQuantDecode_GSMFR_16s
- // Purpose: APCM inverse quantization: decoding the RPE sequence of coded xMc
- // pSrc pointer to the input RPE pulses vector[13] (xMc)
- // pDst pointer to the output reconstructed long-term residual vector[13] (xMp)
- // ampl block amplitude (xmaxc)
- // amplSfs block amplitude scale factor
- */
- IPPAPI(IppStatus, ippsRPEQuantDecode_GSMFR_16s,
- (const Ipp16s *pSrc, Ipp16s ampl, Ipp16s amplSfs, Ipp16s *pDst))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsDeemphasize_GSMFR_16s_I
- // Purpose: De-emphasis filtering (GSM 06.10 5.3.5)
- // pSrcDst pointer to the input ST-synthesized signal (sr)
- // and output post-processed speech (sr0)
- // pMem pointer to the filter memory element
- // len length of input/output vector
- */
- IPPAPI(IppStatus, ippsDeemphasize_GSMFR_16s_I,(Ipp16s *pSrcDst,int len,Ipp16s *pMem))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsShortTermSynthesisFilter_GSMFR_16s
- // Purpose: Short-term synthesis filtering (GSM 06.10 5.3.2)
- // 1/A(z)
- // pRC pointer to the input reflection coefficients vector[8]
- // pSrc pointer to the input reconstructed short term residual vector[len]
- // pDstSpch pointer to the output speech vector[len]
- // len length of input residual and output speech vectors
- // pMem pointer to the filter memory vector[9]
- */
- IPPAPI(IppStatus, ippsShortTermSynthesisFilter_GSMFR_16s,
- (const Ipp16s *pRC, const Ipp16s *pSrcResidual, Ipp16s *pDstSpch, int len, Ipp16s *pMem))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsShortTermAnalysisFilter_GSMFR_16s_I
- // Purpose: Short-term analysis filtering (GSM 06.10 5.2.10)
- // 1/A(z)
- // pRC pointer to the input reflection coefficients vector[8]
- // pSrcDstSpch pointer to the input preprocessed signal and output
- // short term residual vector[len]
- // len length of input residual and output speech vectors
- // pMem pointer to the filter memory vector[9]
- */
- IPPAPI(IppStatus, ippsShortTermAnalysisFilter_GSMFR_16s_I,
- (const Ipp16s *pRC, Ipp16s *pSrcDstSpch, int len, Ipp16s *pMem))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsHighPassFilter_GSMFR
- // Purpose: Offset compensation of the input signal, GSM 06.10 5.2.2
- // Parameters:
- // pSrc pointer to the input speech vector
- // pDst pointer to the output filtered vector
- // len length of input and output vectors
- // pMem pointer to the filter memory vector[2]
- // Returns: ippStsNoErr, if no errors
- */
- IPPAPI(IppStatus, ippsHighPassFilter_GSMFR_16s,
- (const Ipp16s *pSrc, Ipp16s *pDst,int len,int *pMem))
- /*/////////////////////////////////////////////////////////////////////////////
- // Name: ippsSchur_GSMFR
- // Purpose: Calculates reflection coefficients using Schur algorithm. GSM 06.10 5.2.5.
- //
- // Arguments:
- // pSrc - Pointer to the input autocorrelations vector
- // pDst - Pointer to the output reflection coefficients vector
- // dstLen - vector destination length
- // Returns: ippStsNoErr, if no errors
- */
- IPPAPI(IppStatus, ippsSchur_GSMFR_32s16s,(const Ipp32s *pSrc,Ipp16s *pDst,int dstLen))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsWeightingFilter_GSMFR
- // Purpose: weighting filtering. GSM 06.10 5.2.13
- // Arguments:
- // pSrc - pointer to the source vector
- // pDst - pointer to the destination vector
- // dstLen - source/destination length
- // Returns: ippStsNoErr, if no errors
- */
- IPPAPI(IppStatus, ippsWeightingFilter_GSMFR_16s,(const Ipp16s *pSrc, Ipp16s *pDst,int dstLen))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsPreemphasize_GSMFR
- // Purpose: preemphasize offset compensated signal. GSM 06.10 5.2.3
- // Arguments:
- // pSrc - pointer to the source vector
- // pDst - pointer to the destination vector
- // pMem - pointer to the filter memory value
- // len - source/destination length
- // Returns: ippStsNoErr, if no errors
- */
- IPPAPI(IppStatus, ippsPreemphasize_GSMFR_16s,
- (const Ipp16s *pSrc, Ipp16s *pDst, int len, Ipp16s *pMem))
- /* /////////////////////////////////////////////////////////////////////////////
- // GSMFR end
- ///////////////////////////////////////////////////////////////////////////// */
- /* /////////////////////////////////////////////////////////////////////////////
- // AMRWB related functions
- ///////////////////////////////////////////////////////////////////////////// */
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsResidualFilter_AMRWB_16s_Sfs
- // Purpose: Compute the LPC residual by filtering the input speech through A(z).
- // rounding to nearest:
- // const1 = 1<<(scaleFactor-1)
- // (a*b+const1)>>scaleFactor;
- // Parameters:
- // pSrcLpc pointer to the input LPC
- // valLPCOrder length of the LPC vector
- // pSrcSpeech pointer to the input vector[-valLPCOrder,..,-1,0,...,,len-1]
- // pDstResidualSignal pointer to the output vector of length[len]
- // len length of the vectors
- // scaleFactor scale factor value
- // Returns: ippStsNoErr, if no errors
- */
- IPPAPI( IppStatus, ippsResidualFilter_AMRWB_16s_Sfs,(
- const Ipp16s *pSrcLpc,
- Ipp16s valLPCOrder,
- const Ipp16s *pSrcSpeech,
- Ipp16s *pDstResidualSignal,
- Ipp32s len,
- Ipp32s scaleFactor
- ))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsResidualFilter_Low_16s_Sfs
- // Purpose: Compute the LPC residual by filtering the input speech through A(z).
- // rounding to nearest:
- // const1 = 1<<(scaleFactor-1)
- // (a*b+const1)>>scaleFactor;
- // Parameters:
- // pSrcLpc pointer to the input LPC
- // valLPCOrder length of the LPC vector
- // pSrcSpeech pointer to the input vector[-valLPCOrder,..,-1,0,...,,len-1]
- // pDstResidualSignal pointer to the output vector of length[len]
- // len length of the vectors
- // scaleFactor scale factor value
- // Returns: ippStsNoErr, if no errors
- */
- IPPAPI( IppStatus, ippsResidualFilter_Low_16s_Sfs,(
- const Ipp16s *pSrcLpc,
- Ipp16s valLPCOrder,
- const Ipp16s *pSrcSpeech,
- Ipp16s *pDstResidualSignal,
- Ipp32s len,
- Ipp32s scaleFactor
- ))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name : ippsLPCToISP_AMRWB_16s
- // Purpose: LP to ISP coefficients conversion
- // Parameters:
- // pSrcLpc pointer to the input predictor coefficients
- // pDstIsp pointer to the output immittance spectral pairs
- // pSrcPrevIsp pointer to the input previous immittance spectral pairs.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI( IppStatus, ippsLPCToISP_AMRWB_16s,(
- const Ipp16s *pSrcLpc,
- Ipp16s *pDstIsp,
- const Ipp16s *pSrcPrevIsp
- ))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name : ippsISPToLPC_AMRWB_16s
- // Purpose: ISP to LP coefficients conversion
- // Parameters:
- // pSrcIsp pointer to the input immittance spectral pairs
- // pDstLpc pointer to the output predictor coefficients
- // len length of the destination vector.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI( IppStatus, ippsISPToLPC_AMRWB_16s,(
- const Ipp16s *pSrcIsp,
- Ipp16s *pDstLpc,
- Ipp32s len
- ))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsISPToISF_Norm_AMRWB_16s
- // Purpose:
- // pDstIsf[i] = arccos(pSrcIsp[i]); i=0,...,lenLpc
- // result is 15 bit scaled in range [0:0.5]
- // Parameters:
- // pSrcIsp pointer to the ISP input vector of values 15 bit scaled in range [-1:1]
- // pDstIsf pointer to the ISF output vector
- // len ISP order
- // Returns: ippStsNoErr, if no errors
- */
- IPPAPI( IppStatus, ippsISPToISF_Norm_AMRWB_16s,(
- const Ipp16s *pSrcIsp,
- Ipp16s *pDstIsf,
- Ipp32s len
- ))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsISFToISP_AMRWB_16s
- // Purpose: ISF interpolation and conversion to LPC
- // Parameters:
- // pSrcIsf pointer to the ISF input vector of values 15 bit scaled in range [0:0.5]
- // pDstIsp pointer to the LPC output vector of values 15 bit scaled in range [-1:1]
- // len ISP order
- // Returns: ippStsNoErr, if no errors
- //
- */
- IPPAPI( IppStatus, ippsISFToISP_AMRWB_16s,(
- const Ipp16s *pSrcIsf,
- Ipp16s *pDstIsp,
- Ipp32s len
- ))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsEncDTXBuffer_AMRWB_16s
- //
- // Purpose: Function buffer the ISP coefficients and previous log energy coefficients.
- // Parameters:
- // pSrcSpch - Pointer to the input speech signal, in the length of 320, in Q15.0.
- // pSrcLsp - Pointer to the ISP for this frame, in the length of 16, in Q0.15.
- // pUpdateIndex - Pointer to the previous memory update index. It is a value
- // circularly increased between 0 and 7.
- // pSrcDstLspBuffer - Pointer to the ISP coefficients of eight previous frames, in the
- // length of 128, in Q0.15.
- // pSrcDstLogEnergyBuffer - Pointer to the logarithm energy coefficients of eight previous
- // frames,in the length of 8,in Q5.10.
- // mode - coder mode
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsEncDTXBuffer_AMRWB_16s,(const Ipp16s * pSrcSpch,
- const Ipp16s *pSrcIsp, Ipp16s *pUpdateIndex, Ipp16s *pSrcDstIspBuffer,
- Ipp16s *pSrcDstLogEnergyBuffer, IppSpchBitRate mode))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsDecDTXBuffer_AMRWB_16s
- //
- // Purpose: Function buffer the ISF coefficients and previous log energy coefficients.
- // Parameters:
- // pSrcSpch - Pointer to the input speech signal, in the length of 320, in Q15.0.
- // pSrcIsf - Pointer to the ISF for this frame, in the length of 16, in Q0.15.
- // pUpdateIndex - Pointer to the previous memory update index. It is a value
- // circularly increased between 0 and 7.
- // pSrcDstIsfBuffer - Pointer to the ISF coefficients of eight previous frames, in the
- // length of 128, in Q0.15.
- // pSrcDstLogEnergyBuffer - Pointer to the logarithm energy coefficients of eight previous
- // frames,inthelength of 8,in Q5.10.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI( IppStatus, ippsDecDTXBuffer_AMRWB_16s,(const Ipp16s *pSrcSpch,
- const Ipp16s *pSrcIsf, Ipp16s *pUpdateIndex,
- Ipp16s *pSrcDstIsfBuffer, Ipp16s *pSrcDstLogEnergyBuffer))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsOpenLoopPitchSearch_AMRWB_16s
- //
- // Purpose: Extracts an open-loop pitch lag estimate from the weighted input speech
- // Parameters:
- // pSrcWgtSpch Pointer to a 320-element vector containing
- // perceptually weighted speech.
- // pSrcFltWgtSpch Pointer to a 320-element vector containing filtered
- // perceptually weighted speech.
- // pPrevMidPitchLag Pointer to the median filtered pitch lag
- // of the 5 previous voiced
- // speech half-frames
- // pAdaptiveParam Pointer to the adaptive parameter.
- // pDstOpenLoopLag Pointer to the open-loop pitch lag.
- // pToneFlag Pointer to the tone flag for the VAD module.
- // pDstOpenLoopGain Pointer to the optimal open-loop pitch gain.
- // pSrcDstPrevPitchLag Pointer to the five-element vector that contains
- // the pitch lags associated
- // with the five most recent voiced speech half-frames
- // pSrcDstLagSwitcher Switches lag weighting on and off
- // len Length of the frame.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI( IppStatus, ippsOpenLoopPitchSearch_AMRWB_16s,(const Ipp16s *pSrcWgtSpch,
- const Ipp16s * pSrcFltWgtSpch, Ipp16s * pPrevMidPitchLag,
- Ipp16s * pAdaptiveParam, Ipp16s * pDstOpenLoopLag,
- Ipp16s * pToneFlag, Ipp16s * pDstOpenLoopGain,
- Ipp16s * pSrcDstPrevPitchLag, Ipp16s * pSrcDstLagSwitcher, int len ))
- #if !defined( _OWN_BLDPCS )
- typedef struct _HighPassFilterState_AMRWB_16s IppsHighPassFilterState_AMRWB_16s;
- #endif /* _OWN_BLDPCS */
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsHighPassFilterGetSize_AMRWB_16s
- // Purpose: Query of AMRWB HP filter state memory size
- // Parameters:
- // pDstSize Pointer to the output value of the memory size needed for filtering
- // order Order of filter/ Currently only 2 or 3 is supported
- // Returns: ippStsNoErr, if no errors
- */
- IPPAPI(IppStatus, ippsHighPassFilterGetSize_AMRWB_16s,(int order, int *pDstSize))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsHighPassFilterInit_AMRWB_16s
- // Purpose: Initialization of the memory allocated for AMR WB high pass filter
- // Parameters:
- // pFilterCoeffA Pointer to a 4-element vector containing
- // IIR part of the coefficiensts of the filter
- // pFilterCoeffB Pointer to a 4-element vector containing
- // FIR part of the coefficiensts of the filter
- // pState pointer to the memory supplied for filtering
- // Returns: ippStsNoErr, if no errors
- //
- */
- IPPAPI(IppStatus, ippsHighPassFilterInit_AMRWB_16s,
- (Ipp16s *pFilterCoeffA, Ipp16s *pFilterCoeffB, int order,
- IppsHighPassFilterState_AMRWB_16s *pState))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsHighPassFilter_AMRWB
- // Purpose: High-pass filtering
- // Parameters:
- // pSrc pointer to the input vector[len]
- // pDst pointer to the vector [len].
- // pSrcDst pointer to the input/output vector [len].
- // len length of the input and output vectors.
- // pState pointer to the memory supplied for filtering
- // valBounds if valBounds = 0 then pSrc[-1] and pSrc[len] are equal to zero
- // otherwise they must be given.
- // scaleFactor Scale factor
- // Returns: ippStsNoErr, if no errors
- */
- IPPAPI(IppStatus, ippsHighPassFilter_AMRWB_16s_Sfs,(
- const Ipp16s *pSrc, Ipp16s *pDst, int len,
- IppsHighPassFilterState_AMRWB_16s *pState, int scaleFactor))
- IPPAPI(IppStatus, ippsHighPassFilter_AMRWB_16s_ISfs,(
- Ipp16s *pSrcDst, int len,
- IppsHighPassFilterState_AMRWB_16s *pState, int scaleFactor))
- IPPAPI(IppStatus, ippsHighPassFilter_Direct_AMRWB_16s,(
- const Ipp16s *pSrcCoeff, const Ipp16s *pSrc, Ipp16s *pDst, int len, int valBounds ))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsHighPassFilterGetDlyLine_AMRWB_16s
- // Purpose: Get the delay line of high-pass filter.
- // Parameters:
- // pState Pointer to the memory supplied for filtering.
- // pDlyLine Pointer to the vector of size [6 or 9] containing the filter memory.
- // order The order of high-pass filter; orders of 2 and 3 is currently supported.
- // Returns: ippStsNoErr, if no errors
- */
- IPPAPI(IppStatus, ippsHighPassFilterGetDlyLine_AMRWB_16s,
- (const IppsHighPassFilterState_AMRWB_16s* pState, Ipp16s* pDlyLine, Ipp32s order))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsHighPassFilterSetDlyLine_AMRWB_16s
- // Purpose: Set the delay line of high-pass filter.
- // Parameters:
- // pDlyLine Pointer to the vector of size [6 or 9] containing the filter memory.
- // pState Pointer to the memory supplied for filtering.
- // order The order of high-pass filter; orders of 2 and 3 is currently supported.
- // Returns: ippStsNoErr, if no errors
- */
- IPPAPI(IppStatus, ippsHighPassFilterSetDlyLine_AMRWB_16s,
- (const Ipp16s* pDlyLine, IppsHighPassFilterState_AMRWB_16s* pState, Ipp32s order))
- /* /////////////////////////////////////////////////////////////////////////////
- // AMRWB Voice Activity Detector functions
- // /////////////////////////////////////////////////////////////////////////////
- */
- #if !defined( _OWN_BLDPCS )
- typedef struct _VADState_AMRWB_16s IppsVADState_AMRWB_16s;
- #endif /* _OWN_BLDPCS */
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsVADGetSize_AMRWB_16s
- // Purpose: AMRWB VADetector size -
- // computes the size,in bytes,
- // of the state variable structure IppsVADState_AMRWB_16s.
- // Parameters:
- // pState pointer to the VAD history variables
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI( IppStatus, ippsVADGetSize_AMRWB_16s,(int *pDstSize ))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsVADGetSize_AMRWB_16s
- // Purpose: Initialize AMRWB VADetector -
- // of the state variable structure IppsVADState_AMRWB_16s.
- // Parameters:
- // pState pointer to the VAD history variables
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI( IppStatus, ippsVADInit_AMRWB_16s,(
- IppsVADState_AMRWB_16s *pState
- ))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsVADGetEnergyLevel_AMRWB_16s
- // Purpose: return energy level vector
- // Parameters:
- // pState pointer to the VAD history variables
- // pEnergyLevel pointer to the destination vector of enrgy level [12]
- // Returns: IppStatus
- // ippStsNoErr if no error
- // ippStsNullPtrErr if at least one of the poiners is null.
- */
- IPPAPI (IppStatus, ippsVADGetEnergyLevel_AMRWB_16s,
- (const IppsVADState_AMRWB_16s* pState, Ipp16s* pEnergyLevel))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsVAD_AMRWB_16s
- //
- // Purpose: AMRWB VADetector -
- // detect type of frame - active (voice) or inactive (unvoiced)
- // Parameters:
- // pSrcSpch pointer to the input speech signal, in the length of 320
- // pState pointer to the VAD history variables
- // pVadFlag pointer to the VAD type detected (1 - voice)
- // pToneFlag pointer to tone detected
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI( IppStatus, ippsVAD_AMRWB_16s,(const Ipp16s *pSrcSpch,
- IppsVADState_AMRWB_16s *pState,
- Ipp16s *pToneFlag,
- Ipp16s *pVadFlag))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsAlgebraicCodebookSearch_AMRWB_16s
- //
- // Purpose: Fixed (algebraic) codebook search functions
- // Parameters:
- // pSrcFixedTarget target vector
- // pSrcLtpResidual long term prediction residual
- // pSrcDstImpulseResponse impulse response of weighted synthesis
- // filter h[-L_subfr..-1] must be set to zero
- // pDstFixedVector innovative codebook
- // pDstFltFixedVector filtered fixed codebook excitation
- // pDstIndex Indexes of the pulses
- // mode coder mode
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsAlgebraicCodebookSearch_AMRWB_16s,(
- const Ipp16s *pSrcFixedTarget,
- const Ipp16s *pSrcLtpResidual,
- Ipp16s *pSrcDstImpulseResponse,
- Ipp16s *pDstFixedVector,
- Ipp16s *pDstFltFixedVector,
- IppSpchBitRate mode,
- Ipp16s *pDstIndex
- ))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsAlgebraicCodebookDecode_AMRWB_16s
- //
- // Purpose: This function decodes the fixed (algebraic) codebook parameters transmitted by the encoder.
- // Parameters:
- // pSrcIdxs Algebraic codebook indexes.
- // pDstFixedCode Pointer to the algebraic codevector, in the length of 64
- // mode coder mode
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsAlgebraicCodebookDecode_AMRWB_16s,(
- const Ipp16s *pSrcIdxs,
- Ipp16s *pDstFixedCode,
- IppSpchBitRate mode
- ))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsInterpolateC_NR_16s
- // Purpose: interpolation of two vector
- // dst = (src1*va1*2^scaleFactor1 + src2*val2*2^scaleFactor2)*2^-16
- // Parameters:
- // pSrc1 pointer to the input vector1
- // val1 interpolation coeff. of first vector
- // val1ScaleFactor val1 scaling factor
- // pSrc2 pointer to the input vector2
- // val2 interpolation coeff. of second vector
- // val2scaleFactor val2 scaling factor
- // pDst pointer to the interpolated output vector
- // len length of the vectors
- / Returns: ippStsNoErr, if no errors
- */
- IPPAPI(IppStatus, ippsInterpolateC_NR_16s,
- (const Ipp16s *pSrc1, Ipp16s val1, int val1ScaleFactor, const Ipp16s *pSrc2,
- Ipp16s val2, int val2ScaleFactor, Ipp16s *pDst, int len))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsPreemphasize_AMRWB_16s_ISfs
- // Purpose: Preemphasis filter
- // H(z) = 1 - gamma z^-1
- // Parameters:
- // pSrcDst pointer to the input/output vector
- // gamma filter coeeficient
- // ScaleFactor scale factor for the result
- // len length of the input/output vector
- // pMem pointer to the filter memory of length 1
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsPreemphasize_AMRWB_16s_ISfs,(Ipp16s gamma, Ipp16s *pSrcDst,
- int len, int ScaleFactor, Ipp16s* pMem))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name : ippsAdaptiveCodebookGainCoeff_AMRWB_16s
- // Purpose: Compute the adaptive codebook gain
- //
- // Parameters:
- // pSrcAdptTarget: Pointer to the adaptive-codebook vector.
- // pSrcFltAdptVector: Pointer to the input filtered adaptive-codebook vector.
- // pResultAdptGain: Pointer to the adaptive-codebook gain in the length of 1.
- // pResultAdptGainCoeffs Pointer to the output vector in the length 4 represents
- // the adaptive-codebook gain as a fraction:
- // xy * 2^exp_xy
- // gain = -------------
- // yy * 2^exp_yy
- // where yy = pResultAdptGainCoeffs[0]
- // exp_yy = pResultAdptGainCoeffs[1]
- // xy = pResultAdptGainCoeffs[2]
- // exp_xy = pResultAdptGainCoeffs[3]
- // If xy < 0 then pResultAdptGain = 0;
- // len length of vectors
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI( IppStatus, ippsAdaptiveCodebookGainCoeff_AMRWB_16s,(const Ipp16s * pSrcAdptTarget,
- const Ipp16s * pSrcFltAdptVector, Ipp16s * pDstGainCoeff, Ipp16s * pResultAdptGain, int len))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsISFQuant_AMRWB_16s
- //
- // Purpose: Quantizes the ISF coefficient vector, then obtains quantized ISF codebook indices.
- // Parameters:
- // pSrcIsf - Pointer to the unquantized 16-element ISF vector.
- // pSrcDstResidual - Pointer to the 16-element quantized ISF residual from the previous
- // frame.
- // pDstQIsf - Pointer to the 16-element quantized ISF vector.
- // pDstQIsfIndex - Pointer to the 7-element vector of quantized ISP indices. For 6.60 Kbps
- // frames only the first five elements contain valid indices,
- // for all other bit rates, all seven elements contain valid data
- // mode - Bit rate specifier.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI( IppStatus, ippsISFQuant_AMRWB_16s,(const Ipp16s *pSrcIsf,
- Ipp16s *pSrcDstResidual, Ipp16s *pDstQIsf,
- Ipp16s *pDstQIsfIndex, IppSpchBitRate mode))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsISFQuantDecode_AMRWB_16s
- //
- // Purpose: Decodes quantized ISFs from the received codebook index if the
- // errors are not detected on the received frame. Otherwise, the
- // function recovers the quantized ISFs from previous quantized
- // ISFs using linear interpolation.
- // Parameters:
- // pSrcIdxs - Pointer to the seven-element vector containing codebook indices
- // of the quantized LSPs.
- // pSrcDstResidual - Pointer to the 16-element quantized ISF residual from
- // the previous frame.
- // pSrcPrevQntIsf - Pointer to the 16-element quantized ISF vector from the previous
- // frame.
- // pSrcDstIsfMemory - Pointer to the 64-element vector containing four subframe ISF sets.
- // pDstQntIsf - Pointer to a 16-element destination vector containing quantized ISF in frequency domain (0..0.5).
- // bfi - Bad frame indicator; "0" signifies a good frame; all other values
- // signify a bad frame.
- // mode - Bit rate specifier.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI( IppStatus, ippsISFQuantDecode_AMRWB_16s,(
- const Ipp16s *pSrcIdxs,
- Ipp16s *pDstQntIsf,
- Ipp16s *pSrcDstResidual,
- const Ipp16s *pSrcPrevQntIsf,
- Ipp16s *pSrcDstIsfMemory,
- int bfi,
- IppSpchBitRate mode
- ))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsISFQuantDTX_AMRWB_16s
- //
- // Purpose: Quantizes the ISP coefficient vector, then obtains quantized ISP codebook indices in case of DTX mode.
- // Parameters:
- // pSrcIsf - Pointer to the unquantized 16-element ISF in the frequency domain (0..0.5) vector.
- // pDstQntIsf - Pointer to the 16-element quantized ISF vector.
- // pDstIdxs - Pointer to the 5-element vector quantization indices.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI( IppStatus, ippsISFQuantDTX_AMRWB_16s,(
- const Ipp16s *pSrcIsf,
- Ipp16s *pDstQntIsf,
- Ipp16s *pDstIdxs
- ))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsISFQuantDecodeDTX_AMRWB_16s
- //
- // Purpose: Decodes quantized ISFs from the received codebook index in case of DTX mode.
- // Parameters:
- // pSrcIdxs - Pointer to the 5-element vector quantization indices.
- // pDstQntIsf - Pointer to the 16-element ISF in the frequency domain (0..0.5) vector.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI( IppStatus, ippsISFQuantDecodeDTX_AMRWB_16s,(
- const Ipp16s *pSrcIdxs,
- Ipp16s *pDstQntIsf
- ))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsSynthesisFilter_AMRWB_16s32s_I
- //
- // Purpose:
- // Parameters:
- // pSrcLpc Pointer to the LP coefficients vector.
- // order Order of LP filter.
- // pSrcExc Pointer to the excitation vector.
- // pSrcDst Pointer to the synthesized and updated speech.
- // len
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsSynthesisFilter_AMRWB_16s32s_I,(
- const Ipp16s *pSrcLpc, int order, const Ipp16s *pSrcExc, Ipp32s *pSrcDstSignal, int len))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsDeemphasize_AMRWB
- // Purpose: De-emphasis filtering.
- // Parameters:
- // gamma deemphasis factor.
- // pSrc pointer to the input vector
- // pDst pointer to the output vector
- // pSrcDst pointer to the input/output vector
- // pMem memory (pSrcDst[-1])
- // len length of input/output vector
- */
- IPPAPI(IppStatus, ippsDeemphasize_AMRWB_32s16s,(
- Ipp16s gamma, const Ipp32s *pSrc, Ipp16s *pDst, int len, Ipp16s *pMem))
- IPPAPI(IppStatus, ippsDeemphasize_AMRWB_NR_16s_I,(
- Ipp16s gamma, Ipp16s *pSrcDst, int len, Ipp16s *pMem))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsAdaptiveCodebookSearch_AMRWB_16s
- //
- // Purpose: Performs the adaptive codebook search.
- // Parameters:
- // pSrcAdptTarget Pointer to the 64-element adaptive target signal vector,
- // pSrcImpulseResponse Pointer to the 64-element impulse response of the weighted synthesis
- // filter.
- // pSrcOpenLoopLag Pointer to a two-element vector of open-loop pitch lags.
- // pPitchLag Pointer to output the previous integral pitch lag.
- // pPitchLagBounds Pointer to output the previous integral pitch lag bounds.
- // pSrcDstExcitation Pointer to the 321-element excitation vector.
- // pFracPitchLag Pointer to output the fractional pitch lag obtained during the adaptive codebook
- // search.
- // pAdptIndex Pointer to output the coded closed-loop pitch index.
- // subFrame Subframe number
- // mode Coder mode
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsAdaptiveCodebookSearch_AMRWB_16s,(
- const Ipp16s * pSrcAdptTarget,
- const Ipp16s * pSrcImpulseResponse,
- const Ipp16s * pSrcOpenLoopLag,
- Ipp16s * pPitchLag,
- Ipp16s * pPitchLagBounds,
- Ipp16s * pSrcDstExcitation,
- Ipp16s * pFracPitchLag,
- Ipp16s * pAdptIndex,
- int subFrame,
- IppSpchBitRate mode))
- #if !defined( _OWN_BLDPCS )
- typedef struct _AdaptiveCodebookDecodeState_AMRWB_16s IppsAdaptiveCodebookDecodeState_AMRWB_16s;
- #endif /* _OWN_BLDPCS */
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsAdaptiveCodebookDecode
- //
- // Purpose: This function decodes the adaptive codebook parameters transmitted by the encoder, and then
- // applies them to interpolate an adaptive codebook vector.
- // valAdptIndex Adaptive codebook index.
- // pFracPitchLag Pointer to the fractional pitch lag obtained during the adaptive codebook
- // search.
- // pResultPrevIntPitchLagBounds Pointer to the previous integral pitch lag bounds.
- // pSrcDstExcitation Pointer to the 321-element excitation vector.
- // pResultIntPitchLag Pointer to the integral pitch lag.
- // subFrame Subframe number
- // bfi Bad frame indicator. "0" signifies a good frame; any other value signifies a bad frame.
- // unusableFrame
- // mode Coder mode
- // pState Pointer to the memory supplied for function.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsAdaptiveCodebookDecodeGetSize_AMRWB_16s,(int *pDstSize))
- IPPAPI(IppStatus, ippsAdaptiveCodebookDecodeInit_AMRWB_16s,(IppsAdaptiveCodebookDecodeState_AMRWB_16s *pState))
- IPPAPI(IppStatus, ippsAdaptiveCodebookDecodeUpdate_AMRWB_16s,(int valPitchGain, int valIntPitchLag,
- IppsAdaptiveCodebookDecodeState_AMRWB_16s *pState))
- IPPAPI(IppStatus, ippsAdaptiveCodebookDecode_AMRWB_16s,(
- int valAdptIndex,
- Ipp16s * pFracPitchLag,
- Ipp16s * pSrcDstExcitation,
- Ipp16s * pResultIntPitchLag,
- Ipp16s * pResultPrevIntPitchLagBounds,
- int subFrame,
- int bfi,
- int unusableFrame,
- IppSpchBitRate mode,
- IppsAdaptiveCodebookDecodeState_AMRWB_16s *pState))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsGainQuant_AMRWB_16s
- // Purpose: Quantization of the adaptive codebook gains
- // pSrcAdptTarget - pointer to the input target vector x(n).
- // pSrcFltAdptVector - pointer to the input filtered adaptive codebook vector y(n)
- // valFormat - format of the pSrcAdptTarget and pSrcFltAdptVector vectors.
- // pSrcFixedVector - pointer to the input pre-filtered codebook contribition c(n)
- // pSrcFltFixedVector - pointer to the input filtered codebook vector z(n)
- // pSrcCorr - pointer to the vector of correlations between pSrcAdptTarget, pSrcFltAdptVector,
- // pSrcFltFixedVector vectors.
- // pSrcDstEnergyErr - pointer to the input/output energy error vector
- // for 4 previous subframes
- // pSrcDstPitchGain - Pointer to the input/output pitch gain.
- // pDstCodeGain - Pointer to the output code gain.
- // valClipFlag - if valClipFlag = 1 then limit gain pitch to 1.0.
- // pDstQGainIndex - Pointer to the output codebook indexes found
- // lenSrc - Length of the input vectors.
- // mode - Coder mode.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI( IppStatus, ippsGainQuant_AMRWB_16s,(
- const Ipp16s *pSrcAdptTarget, const Ipp16s *pSrcFltAdptVector, int valFormat,
- const Ipp16s * pSrcFixedVector, const Ipp16s *pSrcFltFixedVector, const Ipp16s *pSrcCorr,
- Ipp16s *pSrcDstEnergyErr, Ipp16s *pSrcDstPitchGain, int *pDstCodeGain,
- int valClipFlag, Ipp16s *pDstQGainIndex, int lenSrc, IppSpchBitRate mode))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsDecodeGain_AMRWB_16s
- // Purpose: Decode adaptive and fixed-codebook gains
- // valQIndex - index of quantization.
- // valEnergy - energy of code vector.
- // pDstPitchGain - Pointer to decoded pitch gain.
- // pDstCodeGain - Pointer to decoded code gain.
- // bfi - Bad frame indicator.
- // prevBfi - Bad frame indicator of the previous frame.
- // pSrcDstPastEnergy - past quantized energies
- // pPrevCodeGain - Past code gain.
- // pSrcDstPastCodeGain - Past code gain for frame erasures.
- // mode - Coder mode.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI( IppStatus, ippsDecodeGain_AMRWB_16s,(
- int valQIndex,
- Ipp32s valEnergy,
- Ipp16s *pDstPitchGain,
- int *pDstCodeGain,
- int bfi,
- int prevBfi,
- Ipp16s *pSrcDstPastEnergy,
- Ipp16s *pPrevCodeGain,
- Ipp16s *pSrcDstPastCodeGain,
- IppSpchBitRate mode
- ))
- /* /////////////////////////////////////////////////////////////////////////////
- // AMRWB end
- ///////////////////////////////////////////////////////////////////////////// */
- /* /////////////////////////////////////////////////////////////////////////////
- // AMRWBE related functions
- ///////////////////////////////////////////////////////////////////////////// */
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsAdaptiveCodebookSearch_AMRWBE_16s
- //
- // Purpose: Performs the adaptive codebook search.
- // Parameters:
- // pSrcAdptTarget Pointer to the 64-element adaptive target signal vector,
- // pSrcImpulseResponse Pointer to the 64-element impulse response of the weighted synthesis
- // filter.
- // pSrcOpenLoopLag Pointer to a two-element vector of open-loop pitch lags.
- // pPitchLag Pointer to output the previous integral pitch lag.
- // pPitchLagBounds Pointer to output the previous integral pitch lag bounds.
- // pSrcDstExcitation Pointer to the 321-element excitation vector.
- // pFracPitchLag Pointer to output the fractional pitch lag obtained during the adaptive codebook
- // search.
- // pAdptIndex Pointer to output the coded closed-loop pitch index.
- // subFrame Subframe number
- // mode Coder mode
- // pitchOffset Offset for pitch adjustment corresponding internal sampling frequency scale.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsAdaptiveCodebookSearch_AMRWBE_16s,(
- const Ipp16s * pSrcAdptTarget,
- const Ipp16s * pSrcImpulseResponse,
- const Ipp16s * pSrcOpenLoopLag,
- Ipp16s * pPitchLag,
- Ipp16s * pPitchLagBounds,
- Ipp16s * pSrcDstExcitation,
- Ipp16s * pFracPitchLag,
- Ipp16s * pAdptIndex,
- int subFrame,
- IppSpchBitRate mode,
- Ipp16s pitchOffset))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsAdaptiveCodebookDecode_AMRWBE_16s
- //
- // Purpose: This function decodes the adaptive codebook parameters transmitted by the encoder, and then
- // applies them to interpolate an adaptive codebook vector.
- // Parameters:
- // valAdptIndex Adaptive codebook index.
- // pSrcDstExcitation Pointer to the 321-element excitation vector.
- // pSrcDstPitchLag Pointer to the integral pitch lag.
- // pSrcDstFracPitchLag Pointer to the fractional pitch lag obtained during the adaptive
- // codebook search.
- // pSrcDstPitchLagBounds Pointer to the integral pitch lag bounds.
- // subFrame Subframe number
- // bfi Bad frame indicator. "0" signifies a good frame; any other value signifies a bad frame.
- // pitchOffset Offset for pitch adjustment corresponding internal sampling frequency scale.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsAdaptiveCodebookDecode_AMRWBE_16s, (
- int valAdptIndex,
- Ipp16s* pSrcDstExcitation,
- Ipp16s* pSrcDstPitchLag,
- Ipp16s* pSrcDstFracPitchLag,
- Ipp16s* pSrcDstPitchLagBounds,
- int subFrame,
- int bfi,
- Ipp16s pitchOffset))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsGainQuant_AMRWBE_16s
- // Purpose: Quantization of the adaptive codebook gains
- // Parameters:
- // pSrcAdptTarget - pointer to the input target vector x(n).
- // pSrcFltAdptVector - pointer to the input filtered adaptive codebook vector y(n)
- // valFormat - format of the pSrcAdptTarget and pSrcFltAdptVector vectors.
- // pSrcFixedVector - pointer to the input pre-filtered codebook contribition c(n)
- // pSrcFltFixedVector - pointer to the input filtered codebook vector z(n)
- // lenSrc - Length of the input vectors.
- // pSrcCorr - pointer to the vector of correlations between pSrcAdptTarget, pSrcFltAdptVector,
- // pSrcFltFixedVector vectors [4].
- // meanEnergy - The average energy in the whole frame.
- // pSrcDstPitchGain - Pointer to the input/output pitch gain.
- // pDstCorrFactor - Pointer to the correction factor.
- // pDstCodeGain - Pointer to the output code gain.
- // pDstQGainIndex - Pointer to the output codebook indexes found
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsGainQuant_AMRWBE_16s,(
- const Ipp16s *pSrcAdptTarget, const Ipp16s *pSrcFltAdptVector, int valFormat,
- const Ipp16s *pSrcFixedVector, const Ipp16s *pSrcFltFixedVector, int lenSrc,
- const Ipp16s *pSrcCorr, Ipp16s meanEnergy, Ipp16s *pSrcDstPitchGain,
- Ipp16s* pDstCorrFactor, int *pDstCodeGain, Ipp16s *pDstQGainIndex))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsSNR_AMRWBE_16s
- // Purpose: Calculate the signal to noise ratio.
- // Parameters:
- // pSrcSignal Pointer to the input signal.
- // pSrcEstimatedSiganl Pointer to the estimated signal.
- // lenSrc Length of the signals.
- // lenSeg Length of segments (subframes).
- // pDstSNR Pointer to the output signal-to-noise ratio in dB.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsSNR_AMRWBE_16s, (const Ipp16s* pSrcSignal,
- const Ipp16s* pSrcEstimatedSignal, int lenSrc, int lenSeg, Ipp16s* pDstSNR))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsGainQuantTCX_AMRWBE_16s
- // Purpose: Gain optimization and quantization.
- // Parameters:
- // pSrcSignal Pointer to the original weighted signal.
- // srcScale Format of input signal.
- // pSrcQuantSiganl Pointer to the quantized weighted signal.
- // len Length of the signals.
- // quantFlag If quantFlag = 0, then compute and return optimal gain only,
- // else calculate and return quantized gain and quant index.
- // pGain Pointer to the output quantized (or optimal) gain.
- // pQuantIdx Pointer to the output index of quantization.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsGainQuantTCX_AMRWBE_16s, (const Ipp16s *pSrcSignal,
- Ipp16s srcScale, const Ipp16s *pSrcQuantSignal, int len, Ipp32s quantFlag,
- Ipp32s *pGain, Ipp16s *pQuantIdx))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsGainDecodeTCX_AMRWBE_16s
- // Purpose: Decode the global TCX gain.
- // Parameters:
- // pSrcQuantSignal Pointer to the quantized vector.
- // lenSrc Length of the input signal.
- // quantIdx Index of quantization.
- // bfi Bad frame indicator: value "0" signifies a good frame,
- // all other values signify a bad frame.
- // pSrcDstRMSval Pointer to root mean square value.
- // pGain Pointer to the output global TCX gain.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsGainDecodeTCX_AMRWBE_16s, (const Ipp16s *pSrcQuantSignal,
- int lenSrc, Ipp16s quantIdx, Ipp32s bfi, Ipp16s *pSrcDstRMSval, Ipp32s *pGain))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsISFQuantDecode_AMRWBE_16s
- //
- // Purpose: Decodes quantized ISFs from the received codebook index if the
- // errors are not detected on the received frame. Otherwise, the
- // function recovers the quantized ISFs from previous quantized
- // ISFs using linear interpolation.
- // Parameters:
- // pSrcIdxs - Pointer to the seven-element vector containing codebook indices
- // of the quantized LSPs.
- // pSrcDstResidual - Pointer to the 16-element quantized ISF residual from
- // the previous frame.
- // pSrcPrevQntIsf - Pointer to the 16-element quantized ISF vector from the previous
- // frame.
- // pSrcDstIsfMemory - Pointer to the 64-element vector containing four subframe ISF sets.
- // pDstQntIsf - Pointer to a 16-element destination vector containing quantized
- // ISF in frequency domain (0..0.5).
- // bfi - Bad frame indicator; "0" signifies a good frame; all other values
- // signify a bad frame.
- // bfiNext - Bad frame indicator for the next frames.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI( IppStatus, ippsISFQuantDecode_AMRWBE_16s,(
- const Ipp16s *pSrcIdxs, Ipp16s *pDstQntIsf, Ipp16s *pSrcDstResidual,
- const Ipp16s *pSrcPrevQntIsf, Ipp16s *pSrcDstIsfMemory, int bfi, int bfiNext))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsOpenLoopPitchSearch_AMRWBE_16s
- //
- // Purpose: Extracts an open-loop pitch lag estimate from the weighted input speech
- // Parameters:
- // pSrcWgtSpch Pointer to input vector containing perceptually weighted speech.
- // pSrcFltWgtSpch Pointer to input vector containing filtered through
- // high-pass filter perceptually weighted speech.
- // pPrevMedPitchLag Pointer to the median filtered pitch lag of
- // the 5 previous voiced speech half-frames.
- // pAdaptiveParam Pointer to the adaptive parameter.
- // pDstOpenLoopLag Pointer to the open-loop pitch lag.
- // pToneFlag Pointer to the tone flag for the VAD module.
- // pDstOpenLoopGain Pointer to the optimal open-loop pitch gain.
- // pSrcDstPrevPitchLag Pointer to the five-element vector that contains the pitch lags
- // associated with the five most recent voiced speech half-frames.
- // pSrcDstLagSwitcher Switches lag weighting on and off
- // len Length of the frame.
- // minPitchLag Minimum pitch lag.
- // maxPitchLag Maximum pitch lag.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsOpenLoopPitchSearch_AMRWBE_16s,
- (const Ipp16s *pSrcWgtSpch, const Ipp16s * pSrcFltWgtSpch, Ipp16s * pPrevMedPitchLag,
- Ipp16s * pAdaptiveParam, Ipp16s * pDstOpenLoopLag, Ipp16s * pToneFlag,
- Ipp16s * pDstOpenLoopGain, Ipp16s * pSrcDstPrevPitchLag, Ipp16s * pSrcDstLagSwitcher,
- int len, Ipp16s minPitchLag, Ipp16s maxPitchLag))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsLPCToISP_AMRWBE_16s
- // Purpose: Performs LP to ISP coefficients conversion.
- // Parameters:
- // pSrcLpc Pointer to the input predictor coefficients.
- // pDstIsp Pointer to the output immittance spectral pairs.
- // pSrcPrevIsp Pointer to the input previous immittance spectral pairs.
- // lpOrder Order of convertion.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsLPCToISP_AMRWBE_16s, (const Ipp16s *pSrcLpc,
- const Ipp16s *pSrcPrevIsp, Ipp16s *pDstIsp, int lpOrder))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsResamplePolyphase_AMRWBE_16s
- // Purpose: Oversample or downsample input signal to/from upper frequency (44.1/48 khz).
- // Parameters:
- // pSrcSignal Pointer to the signal to resample.
- // len Length of input signal.
- // upFactor Upsampling factor.
- // downFactor Downsampling factor.
- // pIntrepFracMem Pointer to the memory of interpolation fraction.
- // pMem Pointer to resampling memory. Length is 144 for decimating
- // mode, or 44 for oversampling mode.
- // pDstSignal Pointer to the resampled signal.
- // lenDst Length of resampling signal.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsResamplePolyphase_AMRWBE_16s, (const Ipp16s *pSrcSignal,
- int lenSrc, Ipp16s upFactor, Ipp16s downFactor, Ipp16s *pInterpFracMem,
- Ipp16s *pMem, Ipp16s *pDstSignal, int lenDst))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsBandSplit_AMRWBE_16s
- // Purpose: Split the signal to low and high frequency components.
- // Parameters:
- // pSrcSignal Poineter to src vector [len + 2*64].
- // pSrcDstSig2k Poineter to srcdst low frequency vector [len*5/32 + 2*10].
- // pDstSigHi Poineter to dst high frequency vector [len].
- // len Length of the sample.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsBandSplit_AMRWBE_16s, (const Ipp16s* pSrcSignal,
- Ipp16s* pSrcDstSig2k, Ipp16s* pDstSigHi, int len))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsBandJoin_AMRWBE_16s
- // Purpose: Join low and high frequency signals.
- // Parameters:
- // pSrcSig2k Poineter to src low frequency vector [len*5/32 + 2*10].
- // pSrcSigHi Poineter to src high frequency vector [len].
- // pDstSignal Poineter to dst vector [len].
- // len Length of the sample.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsBandJoin_AMRWBE_16s, (const Ipp16s* pSrcSig2k,
- const Ipp16s* pSrcSigHi, Ipp16s* pDstSignal, int len))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsBandJoinUpsample_AMRWBE_16s
- // Purpose: Join high and low frequency signals and upsample.
- // Parameters:
- // pSrcSigLF Pointer to LF signal.
- // pSrcSigHF Pointer to HF signal.
- // lenSrc Length of LF and HF vectors.
- // pDstSig Pointer to upsampled signal.
- // lenOut Length of output vector.
- // pMem Resampling memory [72].
- // pInterFracMem Interpolating fraction memory.
- // pCountSamp Number of oversampled samples.
- // upsampScale Upsampling frequency scale.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsBandJoinUpsample_AMRWBE_16s, (const Ipp16s* pSrcSigLF,
- const Ipp16s* pSrcSigHF, int lenSrc, Ipp16s* pDstSig, int lenDst,
- Ipp16s* pMem, Ipp16s* pInterFracMem, Ipp32s* pCountSamp, Ipp16s upsampScale))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsBandSplitDownsample_AMRWBE_16s
- // Purpose: Decimate input signal and split to high and low frequency components.
- // Parameters:
- // pSrcSig Pointer to decimating signal.
- // lenSrc Lenth of the input vector.
- // pDstSigLF Pointer to LF decimated signal.
- // pDstSigHF Pointer to HF decimated signal.
- // lenDst Length of LF and HF vectors.
- // pMem Decimating memory [1608].
- // pInterFracMem Interpolating fraction memory.
- // pCountSamp Number of decimated samples.
- // upsampScale Upsampling frequency scale.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsBandSplitDownsample_AMRWBE_16s, (const Ipp16s* pSrcSig, int lenSrc,
- Ipp16s* pDstSigLF, Ipp16s* pDstSigHF, int lenDst, Ipp16s* pMem,
- Ipp16s *pInterFracMem, Ipp32s* pCountSamp, Ipp16s upsampScale))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsUpsample_AMRWBE_16s
- // Purpose: Signal oversampling.
- // Parameters:
- // pSrcSignal Pointer to signal for oversampling.
- // pSrcDstSignal Pointer to oversampled signal.
- // lenDst Length of output vector.
- // pMem Pointer to oversampling memory [24].
- // bandIdx Index of interpolating band: 0 for 0..6.4k band, 1 for 6.4..10.8k.
- // addFlag Flag for adding operation. 1 if result is added to output
- // vector, 0 if not.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsUpsample_AMRWBE_16s, (const Ipp16s* pSrcSignal,
- Ipp16s* pSrcDstSignal, int lenDst, Ipp16s* pMem, Ipp32s bandIdx, Ipp32s addFlag))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsDownsample_AMRWBE_16s
- // Purpose: Signal decimating.
- // Parameters:
- // pSrcSignal Pointer to decimating signal.
- // lenSrc Length of input vector
- // pDstSignal Pointer to decimated signal [1024].
- // pMem Pointer to decimating memory [46].
- // bandIdx Index of interpolating band: 0 for 0..6.4k band, 1 for 6.4..10.8k.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsDownsample_AMRWBE_16s, (const Ipp16s* pSrcSignal, int lenSrc,
- Ipp16s*pDstSignal, Ipp16s* pMem, Ipp32s bandIdx))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsISFQuantHighBand_AMRWBE_16s
- // Purpose: ISF quantization of HF-band encoded signal.
- // Parameters:
- // pSrcISF Pointer to the vector of proceeding ISF [8].
- // pSrcDstPastQISF Pointer to the past quantized ISF [8].
- // pDstQISF Pointer to the output vector of quantized ISF [8].
- // pQuantIdxs Pointer to the output quantization indices [2].
- // pitchAdjust Pitch adjustment flag (if null, pitch adjustment is not
- // implements, else any other).
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsISFQuantHighBand_AMRWBE_16s, (const Ipp16s *pSrcISF,
- Ipp16s *pSrcDstPastQISF, Ipp16s *pDstQISF, Ipp16s *pQuantIdxs, Ipp32s pitchAdjust))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsISFQuantDecodeHighBand_AMRWBE_16s
- // Purpose: Decode quantized ISF of HF-band signal.
- // Parameters:
- // pQuantIdxs Pointer to the quantization indices [2].
- // pSrcDstPastQISF Pointer to the past quantized ISF [8].
- // pDstQISF Pointer to the output vector of decoded quantized ISF [8].
- // bfi Bad frame indicator: value "0" signifies a good frame,
- // all other values signify a bad frame.
- // pitchAdjust Pitch adjustment flag (if null, pitch adjustment
- // is not implements, else any other).
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsISFQuantDecodeHighBand_AMRWBE_16s, (const Ipp16s *pSrcQuantIdxs,
- Ipp16s *pSrcDstPastQISF, Ipp16s *pDstQISF, Ipp32s bfi, Ipp32s pitchAdjust))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsFFTFwd_RToPerm_AMRWBE_16s
- // Purpose: Computes the forward fast Fourier transform (FFT) of a real signal.
- // Parameters:
- // pSrc Pointer to the real-valued sequence.
- // pDst Pointer to the transform result.
- // len Length of the sequence (48, 96, 192 for Radix-3 algorithm
- // or 288, 576, 1152 for Radix-9 algorithm).
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsFFTFwd_RToPerm_AMRWBE_16s, (const Ipp16s* pSrc, Ipp16s* pDst, int len))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsFFTInv_PermToR_AMRWBE_16s
- // Purpose: Computes the inverse fast Fourier transform (FFT) of a real signal.
- // Parameters:
- // pSrc Pointer to the transform coefficients.
- // pDst Pointer to the real-valued sequence.
- // len Length of the sequence (48, 96, 192 for Radix-3 algorithm
- // or 288, 576, 1152 for Radix-9 algorithm).
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsFFTInv_PermToR_AMRWBE_16s, (const Ipp16s* pSrc, Ipp16s* pDst, int len))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsSynthesisFilter_AMRWBE_16s32s_I
- //
- // Purpose:
- // Parameters:
- // pSrcLpc Pointer to the LP coefficients vector.
- // order Order of LP filter.
- // pSrcExc Pointer to the excitation vector.
- // pSrcDst Pointer to the synthesized and updated speech.
- // len
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsSynthesisFilter_AMRWBE_16s32s_I,(
- const Ipp16s *pSrcLpc, int order, const Ipp16s *pSrcExc, Ipp32s *pSrcDstSignal, int len))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsDeemphasize_AMRWBE_NR_16s_I
- // Purpose: Performs de-emphasis filtering.
- // Parameters:
- // gamma De-emphasis factor.
- // gammaScale Scale factor for gamma.
- // pSrcDst Pointer to the input/output vector.
- // len Length of the input/output vector.
- // pMem Pointer to the filter memory element.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsDeemphasize_AMRWBE_NR_16s_I, (Ipp16s gamma,
- Ipp32s gammaScale, Ipp16s *pSrcDstSignal, int len, Ipp16s *pMem))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsFIRGenMidBand_AMRWBE_16s
- // Purpose: Compute a shape-constrained FIR filter using the covariance method.
- // Parameters:
- // pSrcSignal Pointer to the signal [-8...(256+64)]
- // pSrcSideSignal Pointer to the real side signal [256+64].
- // pTaps Pointer to the FIR coefficients of length [9].
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsFIRGenMidBand_AMRWBE_16s, (const Ipp16s* pSrcSignal,
- const Ipp16s* pSrcSideSignal, Ipp16s* pTaps))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsPostFilterLowBand_AMRWBE_16s
- // Purpose: Post-processing of low-band decoded signal.
- // Parameters:
- // pSrcOldPitchLag Pointer to the previous pitch periods for all subframes [16].
- // pSrcOldPitchGain Pointer to the previous pitch gains for all subframes [16].
- // pSrcDstSignal Pointer to the proceeding signal [1024].
- // pOldSynth Pointer to the synthesis memory of post-filter [503].
- // pOldNoise Pointer to the noise memory of post-filter [24].
- // pFilterScale Pointer to the noise memory of post-filter scale factor.
- // pitchAdjust Pitch adjustment flag (if null, pitch adjustment is not
- // implements, else any other).
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsPostFilterLowBand_AMRWBE_16s, (const Ipp16s *pSrcOldPitchLag,
- const Ipp16s *pSrcOldPitchGain, Ipp16s *pSrcDstSignal, Ipp16s *pOldSynth,
- Ipp16s *pOldNoise, Ipp16s *pFilterScale, Ipp32s pitchAdjust))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsQuantTCX_AMRWBE_16s
- // Purpose: Quantize the pre-shaped spectrum in TCX mode.
- // Parameters:
- // pSrc Pointer to the signal to quatize [nSubvectors*8].
- // pDst Pointer to quantized normalized vector [nSubvectors*8+nSubvectors].
- // nSubvectors Number of subvectors.
- // nBits Number of bits to use.
- // pDstNoiseFactor Pointer to the comfort noise gain factor.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsQuantTCX_AMRWBE_16s, (const Ipp16s *pSrc, Ipp16s *pDst,
- int nSubvectors, int nBits, Ipp16s* pDstNoiseFactor))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsEncodeMux_AMRWBE_16s
- // Purpose: Encode and multiplex subvectors into several packets.
- // Parameters:
- // pSrc Pointer to rounded subvectors [nSubvectors*8+nSubvectors].
- // nSubvectors Number of subvectors.
- // pPacketSizes Pointer to vector of each packet size [nPackets].
- // pDstParams Multiplexed parameters
- // [(pPacketSizes[0]+3)/4+...+(pPacketSizes[nPackets]+3)/4].
- // nPackets Number of packets.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsEncodeMux_AMRWBE_16s, (const Ipp16s *pSrc, int nSubvectors,
- const int *pPacketSizes, Ipp16s *pDstParams, int nPackets))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsDecodeDemux_AMRWBE_16s
- // Purpose: Demultiplex and decode subvectors from several packets.
- // Parameters:
- // pSrcParams Demultiplex parameters [(pPacketSizes[0]+3)/4+...+(pPacketSizes[nPackets]+3)/4].
- // pPacketSizes Pointer to vector of each packet size [nPackets].
- // pBFI Pointer to vector of bad frame indicators for each packet [nPackets].
- // nPackets Number of packets.
- // pDst Pointer to rounded subvectors [nSubvectors*8].
- // nSubvectors Number of subvectors.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsDecodeDemux_AMRWBE_16s, (const Ipp16s *pSrcParams,
- const Ipp32s *pPacketSizes, const Ipp32s* pBFI, int nPackets,
- Ipp16s *pDst, int nSubvectors))
- /* /////////////////////////////////////////////////////////////////////////////
- // AMRWBE end
- ///////////////////////////////////////////////////////////////////////////// */
- /* /////////////////////////////////////////////////////////////////////////////
- // G722 SBADPCM related functions
- ///////////////////////////////////////////////////////////////////////////// */
- #if !defined( _OWN_BLDPCS )
- struct EncoderState_G722_16s;
- typedef struct EncoderState_G722_16s IppsEncoderState_G722_16s;
- struct DecoderState_G722_16s;
- typedef struct DecoderState_G722_16s IppsDecoderState_G722_16s;
- #endif /* _OWN_BLDPCS */
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsSBADPCMEncodeStateSize_G722_16s
- // Purpose: Returns the G722 SBADPCM encoder state memory size
- // pEncMemSize - pointer to the output encoder state memory size in bytes.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI (IppStatus, ippsSBADPCMEncodeStateSize_G722_16s, (int* pEncMemSize))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsSBADPCMEncodeInit_G722_16s
- // Purpose: This function initializes the memory buffer referenced by the pointer pEncMem.
- // pEncMem - pointer to the input memory buffer of size required to properly initialize the encoder.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI (IppStatus, ippsSBADPCMEncodeInit_G722_16s, (IppsEncoderState_G722_16s* pEncMem))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsSBADPCMEncode_G722_16s
- // Purpose: Encode lower and upper sub-band of incoming speech or music.
- // pSrc - pointer to the input vector of synthesis QMF samples.
- // pDst - pointer to the ADPCM bit-stream output vector.
- // len - the length of input vector, must be a multiple of two.
- // pEncMem - pointer to the state memory of the Sub-Band ADPCM encoder.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI (IppStatus, ippsSBADPCMEncode_G722_16s, (const Ipp16s *pSrc, Ipp16s *pDst,
- int len, IppsEncoderState_G722_16s* pEncMem))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsQMFEncode_G722_16s
- // Purpose: This function uses Quadrature Mirror Filtering (QMF) of the 14-bit
- // uniform PCM speech input to compute the lower and higher sub-band signal
- // components for the Sub-Band ADPCM encoder.
- // pSrc - pointer to the uniform PCM input speech vector.
- // pDst - pointer to the synthesis QMF samples output vector.
- // len - the length of input/output vectors, must be a multiple of two.
- // delay - pointer to the buffer of a delay line.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI (IppStatus, ippsQMFEncode_G722_16s,
- (const Ipp16s *pSrc, Ipp16s *pDst, int len, Ipp16s *delay))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsSBADPCMDecodeStateSize_G722_16s
- // Purpose: Returns the G722 SBADPCM decoder state memory size
- // pDecMemSize - pointer to the output decoder state memory size in bytes.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI (IppStatus, ippsSBADPCMDecodeStateSize_G722_16s, (int* pDecMemSize))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsSBADPCMDecodeInit_G722_16s
- // Purpose: Initializes the memory buffer referenced by the pointer pDecMem.
- // pDecMem - Pointer to the input decoder state memory buffer
- // of size required to properly initialize the decoder.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI (IppStatus, ippsSBADPCMDecodeInit_G722_16s, (IppsDecoderState_G722_16s *pDecMem))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsSBADPCMDecode_G722_16s
- // Purpose: Decode lower sub-band of input audio signal.
- // pSrc - pointer to the input vector that contains unpacked
- // lower and high ADPCM 16bit samples given in pair.
- // pDst - Pointer to the output vector that contains decoded low-
- // and high- bands portions of the recovered audio samples.
- // len - the length of the input vector, must be multiple of two.
- // mode - decode bit rate of the G.722 decoder.
- // pDecMem - pointer to the state memory of the Sub-Band ADPCM decoder.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI (IppStatus, ippsSBADPCMDecode_G722_16s, (const Ipp16s *pSrc, Ipp16s *pDst,
- int len, Ipp16s mode, IppsDecoderState_G722_16s * pDecMem))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsQMFDecode_G722_16s
- // Purpose: This function performs Quadrature Mirror Filter (QMF) synthesis
- // of the low- and high- bands portions of the recovered samples
- // to reconstruct the output signal.
- // pSrc - pointer to the input vector that contains decoded low- and high- bands
- // portions of the recovered samples.
- // pDst - pointer to the output vector of 16bit linear PCM audio samples.
- // len - the length of input/output vectors, must be a multiple of two.
- // delay - pointer to the buffer of a delay line.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI (IppStatus, ippsQMFDecode_G722_16s,
- (const Ipp16s *pSrc, Ipp16s *pDst, int len, Ipp16s *delay))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsSBADPCMDecodeStateUpdate_G722_16s
- // Purpose: This function updates the state of the sub-band ADPCM decoder
- // after extrapolating missing frames to help in recovery from frame erasures.
- // pCoeffs - First-order pole zero filter coefficients array.
- // gainFactor - Attenuation factor for gains.
- // resetDelayFlag - If 0: no delays reset, otherwise reset delays.
- // pDecMem - Pointer to the state memory of the Sub-Band ADPCM decoder.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI (IppStatus, ippsSBADPCMDecodeStateUpdate_G722_16s, (const Ipp16s pCoeffs[2], Ipp16s gainFactor,
- int resetDelayFlag, IppsDecoderState_G722_16s *pDecMem))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsClassifyFrame_G722_16s_I
- // Purpose: Classify the frame and modify the residual signal by the condition.
- // pSrcDst - Pointer to the excitation vector [(valDelay*2)+2].
- // valDelay - The pitch delay estimated by the LTP analysis.
- // pClass - Pointer to the frame class.
- // pDecMem - Pointer to the state memory of the Sub-Band ADPCM decoder.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI (IppStatus, ippsClassifyFrame_G722_16s_I, (Ipp16s *pSrcDst, Ipp16s valDelay, IppG722SBClass *pSrcDstClass,
- IppsDecoderState_G722_16s *pDecMem))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsFilterHighband_G722_16s_I
- // Purpose: This function filters higher band part of the input array pSrcDst
- // through the first-order high-pass filter with memory pMem and stores
- // the results in pSrcDst. The filter memory pMem is updated and shoud
- // be used for filtering of the next frame.
- // pSrcDst - Pointer to the source and destination vector [len].
- // len - Number of elements in the source and destination vector.
- // pMem - Pointer to the filter memory array
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI (IppStatus, ippsFilterHighband_G722_16s_I, (Ipp16s *pSrcDst, int len, Ipp16s pMem[2]))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsDownsampleFilter_G722_16s
- // Purpose: This function down-samples the input vector by a factor of 4,
- // by using low-pass filter and decimating their values at the same time.
- // pSrc - Pointer to the source vector [lenSrc].
- // lenSrc - Length of the source vector.
- // pDst - Pointer to the destination vector[lenSrc/4].
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI (IppStatus, ippsDownsampleFilter_G722_16s, (const Ipp16s *pSrc, int lenSrc, Ipp16s *pDst))
- /* /////////////////////////////////////////////////////////////////////////////
- // G722 SBADPCM end
- ///////////////////////////////////////////////////////////////////////////// */
- /* /////////////////////////////////////////////////////////////////////////////
- // Echo Canceller related functions
- ///////////////////////////////////////////////////////////////////////////// */
- #if !defined( _OWN_BLDPCS )
- struct _SubbandProcessState_32f;
- typedef struct _SubbandProcessState_32f IppsSubbandProcessState_32f;
- struct _SubbandControllerState_EC_32f;
- typedef struct _SubbandControllerState_EC_32f IppsSubbandControllerState_EC_32f;
- struct _FullbandControllerState_EC_32f;
- typedef struct _FullbandControllerState_EC_32f IppsFullbandControllerState_EC_32f;
- struct _ToneDetectState_EC_32f;
- typedef struct _ToneDetectState_EC_32f IppsToneDetectState_EC_32f;
- struct _SubbandProcessState_16s;
- typedef struct _SubbandProcessState_16s IppsSubbandProcessState_16s;
- struct _SubbandControllerState_EC_16s;
- typedef struct _SubbandControllerState_EC_16s IppsSubbandControllerState_EC_16s;
- struct _FullbandControllerState_EC_16s;
- typedef struct _FullbandControllerState_EC_16s IppsFullbandControllerState_EC_16s;
- struct _ToneDetectState_EC_16s;
- typedef struct _ToneDetectState_EC_16s IppsToneDetectState_EC_16s;
- struct _SubbandControllerDTState_EC_16s;
- typedef struct _SubbandControllerDTState_EC_16s IppsSubbandControllerDTState_EC_16s;
- #endif /* _OWN_BLDPCS */
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippsSubbandProcessGetSize
- //
- // Purpose:
- // Returns size of the state structure
- //
- // Parameters:
- // order Number of subbands = (2 ^ (order - 1) + 1)
- // windowLen Length of window
- // pStateSize Pointer to the computed value of size of buffer
- // for state structure.
- // pInitBufSize Pointer to the computed size of buffer for use
- // in initialization function
- // pBufSize Pointer to the computed size of work buffer.
- //
- // Returns:
- // ippStsNoErr Indicates no error.
- // ippStsNullPtrErr Indicates an error when pSize is NULL.
- // ippStsBadArgErr Indicates an error when order is less than or
- // equal to 0 or windowLen is not divisibly by 2 ^
- // order
- */
- IPPAPI(IppStatus, ippsSubbandProcessGetSize_32f, (int order, int windowLen,
- int *pSize, int *pInitBufSize, int *pBufSize))
- IPPAPI(IppStatus, ippsSubbandProcessGetSize_16s, (int order, int windowLen,
- int *pSize, int *pInitBufSize, int *pBufSize))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippsSubbandProcessInit
- //
- // Purpose:
- // Initializes the state structure
- //
- // Parameters:
- // pState Pointer to the state structure to be created
- // order Number of subbands = (2 ^ (order - 1) + 1)
- // frameSize Size of frame. Should be in range [1, 2 ^order]
- // windowLen Window length
- // pWindow Pointer to window coefficients (may be NULL, if
- // the order, frameSize and windowLen are equal to
- // one of the predefined values: (5, 24, 128) or
- // (6, 44, 256). In this case the predefined
- // window is used.
- // pInitBuf Pointer to the init buffer
- //
- // Returns:
- // ippStsNoErr Indicates no error.
- // ippStsNullPtrErr Indicates an error when buf or pState is NULL.
- // ippStsBadArgErr Indicates an error when order is less or equal
- // to 0 or windowLen is not divisibly by 2 ^ order
- // or frameSize is less than or equal to 0 or (
- // window is NULL and appropriate internal window
- // doesn't exist).
- */
- IPPAPI(IppStatus, ippsSubbandProcessInit_32f, (
- IppsSubbandProcessState_32f *state,
- int order, int frameSize, int windowLen, const Ipp32f *pWindow,
- Ipp8u *pInitBuf))
- IPPAPI(IppStatus, ippsSubbandProcessInit_16s, (
- IppsSubbandProcessState_16s *state,
- int order, int frameSize, int windowLen, const Ipp16s *pWindow,
- Ipp8u *pInitBuf))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippsSubbandAnalysis
- //
- // Purpose:
- // Decomposes frame into complex subband representation
- //
- // Parameters:
- // pSignal Pointer to the source vector of the length equal
- // to the frame size which was used to initialize
- // the subband process algorithm by
- // ippsSubbandProcessInit function.
- // pSubbands Pointer to the subband results vector of the
- // length equal to number of subbands, calculated
- // as (2 ^ (order - 1) + 1), where order is
- // specified in ippsSubbandProcessInit.
- // pState Pointer to the state structure
- // pBuf Pointer to work buffer, user to allocate of size
- // specified by the parameter pBufSise
- // ippsSubbandProcessGetSize function.
- // scalefactor scale factor value
- //
- // Returns:
- // ippStsNoErr Indicates no error.
- // ippStsNullPtrErr Indicates an error when one of the specified
- // pointers is NULL.
- */
- IPPAPI(IppStatus, ippsSubbandAnalysis_32f32fc, (const Ipp32f *pSignal, Ipp32fc *pSubbands,
- IppsSubbandProcessState_32f *pState, Ipp8u *pBuf))
- IPPAPI(IppStatus, ippsSubbandAnalysis_16s32sc_Sfs, (const Ipp16s *pSignal, Ipp32sc *pSubbands,
- IppsSubbandProcessState_16s *pState, int scalefactor, Ipp8u *pBuf))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippsSubbandSynthesis
- //
- // Purpose:
- // Reconstructs frame from complex subband representation
- //
- // Parameters:
- // pSubbands Pointer to the subband results vector of the
- // length equal to number of subbands, calculated
- // as (2 ^ (order - 1) + 1), where an order is
- // specified in ippsSubbandProcessInit
- // pSignal Pointer to the destination signal vector of the
- // length equal to frame size which was used to
- // initialize the subband process algorithm by
- // ippsSubbandProcessInit function.
- // pState Pointer to the state structure
- // pBuf Pointer to the work buffer of size after the
- // ippsSubbandProcessGetSize function call (to be
- // returned via pBufSize parameter)
- // scalefactor scale factor value
- //
- // Returns:
- // ippStsNoErr Indicates no error.
- // ippStsNullPtrErr Indicates an error when one of the specified
- // pointers is NULL.
- */
- IPPAPI(IppStatus, ippsSubbandSynthesis_32fc32f, (const Ipp32fc *pSubbands, Ipp32f *pSignal,
- IppsSubbandProcessState_32f *pState, Ipp8u *pBuf))
- IPPAPI(IppStatus, ippsSubbandSynthesis_32sc16s_Sfs, (const Ipp32sc *pSubbands, Ipp16s *pSignal,
- IppsSubbandProcessState_16s *pState, int scalefactor, Ipp8u *pBuf))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippsSubbandControllerGetSize_EC
- //
- // Purpose:
- // Returns size of the state structure
- //
- // Parameters:
- // numSubbands Number of subbands
- // frameSize Size of frame
- // numSegments Number of segments
- // sampleFreq Sample frequency
- // pSize Pointer to the computed buffer size value.
- //
- // Returns:
- // ippStsNoErr Indicates no error.
- // ippStsNullPtrErr Indicates an error when pSize NULL.
- // ippStsRangeErr Indicates an error when sampleFreq is not a valid element
- // of the enumerated type IppPCMFrequency.
- // ippStsBadArgErr Indicates an error when numSubbands is less or
- // equal to 0 or numSegment is less than or equal
- // to 0 or frameSize is less than or equal to 0.
- */
- IPPAPI(IppStatus, ippsSubbandControllerGetSize_EC_32f, (int numSubbands, int frameSize,
- int numSegments, IppPCMFrequency sampleFreq, int *pSize))
- IPPAPI(IppStatus, ippsSubbandControllerGetSize_EC_16s, (int numSubbands, int frameSize,
- int numSegments, IppPCMFrequency sampleFreq, int *pSize))
- IPPAPI(IppStatus, ippsSubbandControllerDTGetSize_EC_16s, (int numSubbands, int frameSize,
- int numSegments, IppPCMFrequency sampleFreq, int *pSize))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippsSubbandControllerInit_EC
- //
- // Purpose:
- // Initializes the state structure
- //
- // Parameters:
- // pState Pointer to the state structure to be created
- // numSubbands Number of subbands
- // frameSize Size of frame
- // numSegments Number of segments
- // sampleFreq Sample frequency.
- //
- // Returns:
- // ippStsNoErr Indicates no error.
- // ippStsNullPtrErr Indicates an error when one of the specified
- // pointers is NULL.
- // ippStsRangeErr Indicates an error when sampleFreq is not a valid element
- // of the enumerated type IppPCMFrequency.
- // ippStsBadArgErr Indicates an error when numSubbands is less or
- // equal to 0 or numSegment is less than or equal
- // to 0 or frameSize is less than or equal to 0.
- */
- IPPAPI(IppStatus, ippsSubbandControllerInit_EC_32f, (IppsSubbandControllerState_EC_32f *pState,
- int numSubbands, int frameSize, int numSegments, IppPCMFrequency sampleFreq))
- IPPAPI(IppStatus, ippsSubbandControllerInit_EC_16s, (IppsSubbandControllerState_EC_16s *pState,
- int numSubbands, int frameSize, int numSegments, IppPCMFrequency sampleFreq))
- IPPAPI(IppStatus, ippsSubbandControllerDTInit_EC_16s, (IppsSubbandControllerDTState_EC_16s *pState,
- int numSubbands, int frameSize, int numSegments, IppPCMFrequency sampleFreq))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippsSubbandControllerUpdate_EC
- //
- // Purpose:
- // Updates controller state. Returns step sizes.
- //
- // Parameters:
- // pSrcRin Pointer to receive-in signal frame.
- // pSrcSin Pointer to send-in signal frame. Frame size is
- // specified in ippsSubbandControllerInit function
- // ppSrcRinSubbandsHistory Pointer to an array of pointers to the most
- // recent receive-in blocks. Size of array is equal
- // to numSegments, specified in
- // ippsSubbandControllerInit_EC function
- // pSrcSinSubbands Pointer to subband representation of send-in
- // signal frame (or NULL). Size of array =
- // numSubbands, specified in
- // ippsSubbandControllerInit_EC function
- // pDstStepSize Pointer to step sizes. Length of vector =
- // numSubbands, specified in
- // ippsSubbandControllerInit_EC function
- // learningRate Positive value 0-1, learning rate parameter.
- //
- // pState Pointer to structure
- //
- // Returns:
- // ippStsNoErr Indicates no error.
- // ippStsNullPtrErr Indicates an error when pState, pRin, pSin,
- // pRinSubbands or pStepSize is NULL.
- */
- IPPAPI(IppStatus, ippsSubbandControllerUpdate_EC_16s, (const Ipp16s *pSrcRin, const Ipp16s *pSrcSin,
- const Ipp32sc **ppSrcRinSubbandsHistory, const Ipp32sc *pSrcSinSubbands,
- Ipp32s_EC_Sfs *pDstStepSize, IppsSubbandControllerState_EC_16s *pState))
- IPPAPI(IppStatus, ippsSubbandAPControllerUpdate_EC_32f,(
- const Ipp32fc **ppSrcRinSubbandsHistory, const Ipp32fc *pSrcSinSubbands,
- double *pDstStepSize, Ipp32f learningRate, IppsSubbandControllerState_EC_32f *pState))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippsSubbandController_EC
- //
- // Purpose:
- // Main controller function. Updates coefficients of filters. Returns
- // output gain coefficients
- //
- // Parameters:
- // pSrcAdaptiveFilterErr Pointer to the adaptive filter error vector of
- // length equal to numSubbands, specified in
- // ippsSubbandControllerInit_EC function
- // pSrcFixedFilterErr Pointer to errors of fixed filter. Length is
- // equal to numSubbands
- // ppDstAdaptiveCoefs Pointer to an array of pointers to the filter
- // Length of array coefficients vectors =
- // numSegments, specified in
- // ippsSubbandControllerInit_EC
- // ppDstFixedCoefs Pointer to an array of pointers to the filter
- // Length of array coefficients vectors =
- // numSegments, specified in
- // ippsSubbandControllerInit_EC
- // pDstSGain Pointer to send gain coefficient
- // pState Pointer to SubbandController_EC state structure.
- //
- // Returns:
- // ippStsNoErr Indicates no error.
- // ippStsNullPtrErr Indicates an error when one of the specified
- // pointers is NULL.
- */
- IPPAPI(IppStatus, ippsSubbandControllerUpdate_EC_32f, (const Ipp32f *pSrcRin, const Ipp32f *pSrcSin,
- const Ipp32fc **ppSrcRinSubbandsHistory, const Ipp32fc *pSrcSinSubbands,
- double *pDstStepSize, IppsSubbandControllerState_EC_32f *pState))
- IPPAPI(IppStatus, ippsSubbandController_EC_32f, (const Ipp32fc *pSrcAdaptiveFilterErr,
- const Ipp32fc *pSrcFixedFilterErr,
- Ipp32fc **ppDstAdaptiveCoefs, Ipp32fc **ppDstFixedCoefs,
- Ipp32f *pDstSGain, IppsSubbandControllerState_EC_32f *pState))
-
- IPPAPI(IppStatus, ippsSubbandController_EC_16s, (const Ipp32sc *pSrcAdaptiveFilterErr,
- const Ipp32sc *pSrcFixedFilterErr,
- Ipp32sc **ppDstAdaptiveCoefs, Ipp32sc **ppDstFixedCoefs,
- Ipp16s *pDstSGain, IppsSubbandControllerState_EC_16s *pState))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippsSubbandControllerReset_EC
- //
- // Purpose:
- // Resets controller state
- //
- // Parameters:
- // pState Pointer to the structure.
- //
- // Returns:
- // ippStsNoErr Indicates no error.
- // ippStsNullPtrErr Indicates an error when one of the specified
- // pointers is NULL.
- */
- IPPAPI(IppStatus, ippsSubbandControllerReset_EC_32f, (IppsSubbandControllerState_EC_32f *pState))
- IPPAPI(IppStatus, ippsSubbandControllerReset_EC_16s, (IppsSubbandControllerState_EC_16s *pState))
- IPPAPI(IppStatus, ippsSubbandControllerDTReset_EC_16s, (IppsSubbandControllerDTState_EC_16s *pState))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippsFullbandControllerGetSize_EC
- //
- // Purpose:
- // Returns size of the state structure
- //
- // Parameters:
- // frameSize Size of frame
- // tapLen Number of tap values.
- // sampleFreq Sample frequency
- // pSize Pointer to the computed buffer size value.
- //
- // Returns:
- // ippStsNoErr Indicates no error.
- // ippStsNullPtrErr Indicates an error when pSize NULL.
- // ippStsRangeErr Indicates an error when sampleFreq is not a valid element
- // of the enumerated type IppPCMFrequency.
- // ippStsBadArgErr Indicates an error when frameSize is less or
- // equal to 0 or tapLen is less than or equal to 0.
- */
- IPPAPI(IppStatus, ippsFullbandControllerGetSize_EC_32f, (int frameSize,
- int tapLen, IppPCMFrequency sampleFreq, int *pSize))
- IPPAPI(IppStatus, ippsFullbandControllerGetSize_EC_16s, (int frameSize,
- int tapLen, IppPCMFrequency sampleFreq, int *pSize))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippsFullbandControllerInit_EC
- //
- // Purpose:
- // Initializes the state structure
- //
- // Parameters:
- // pState Pointer to the memory buffer for the fullband
- // controller state structure to be initialized.
- // The size of the memory buffer to be acquired by
- // ippsFullbandControllerGetSize_EC function via
- // pSize parameter.
- // frameSize Size of frame
- // tapLen Number of tap values.
- // sampleFreq Sample frequency.
- //
- // Returns:
- // ippStsNoErr Indicates no error.
- // ippStsNullPtrErr Indicates an error when one of the specified
- // pointers is NULL.
- // ippStsRangeErr Indicates an error when sampleFreq is not a valid element
- // of the enumerated type IppPCMFrequency.
- // ippStsBadArgErr Indicates an error when frameSize is less or
- // equal to 0 or tapLen is less than or equal to 0.
- */
- IPPAPI(IppStatus, ippsFullbandControllerInit_EC_32f, (IppsFullbandControllerState_EC_32f *pState,
- int frameSize, int tapLen, IppPCMFrequency sampleFreq))
- IPPAPI(IppStatus, ippsFullbandControllerInit_EC_16s, (IppsFullbandControllerState_EC_16s *pState,
- int frameSize, int tapLen, IppPCMFrequency sampleFreq))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippsFullbandControllerUpdate_EC
- //
- // Purpose:
- // Updates controller state. Returns step sizes
- //
- // Parameters:
- // pSrcRin Pointer to receive-in signal history,length =
- // tapLen + frameSize, tapLen and frameSize is
- // specified in ippsFullbandControllerInit
- // pSrcSin Pointer to send-in signal frame, frame size is
- // specified in ippsFullbandControllerInit_EC
- // pDstStepSize Pointer to step sizes, length = frame_size,
- // specified in ippsFullbandControllerInit_EC
- // pState Pointer to structure
- //
- // Returns:
- // ippStsNoErr Indicates no error.
- // ippStsNullPtrErr Indicates an error when pState, pRin, pSin, or
- // pStepSize is NULL.
- */
- IPPAPI(IppStatus, ippsFullbandControllerUpdate_EC_32f, (const Ipp32f *pSrcRin,
- const Ipp32f *pSrcSin, Ipp32f *pDstStepSize,
- IppsFullbandControllerState_EC_32f *pState))
- IPPAPI(IppStatus, ippsFullbandControllerUpdate_EC_16s, (const Ipp16s *pSrcRin,
- const Ipp16s *pSrcSin, Ipp32s *pDstStepSize,
- IppsFullbandControllerState_EC_16s *pState))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippsFullbandController_EC
- //
- // Purpose:
- // Main controller function. Updates coefficients of filter . Returns
- // output gain coefficients
- //
- // Parameters:
- // pState Pointer to structure.
- // pAdaptiveFilterErr Pointer to output of path with adaptive filter,
- // length = frame size , specified in
- // ippsFullbandControllerInit_EC
- // pFixedFilterErr Pointer to output of path with fixed filter.
- // length = frame size, specified in
- // ippsFullbandControllerInit_EC
- // pAdaptiveCoefs Pointer to the filter coefficients vectors.
- // length = tapLength, specified in
- // ippsFullbandControllerInit_EC
- // pFixedCoefs Pointer to the filter coefficients vectors.
- // length = tapLength, specified in
- // ippsFullbandControllerInit_EC
- // pSGain Pointer to send gain coefficient
- //
- // Returns:
- // ippStsNoErr Indicates no error.
- // ippStsNullPtrErr Indicates an error when one of the specified
- // pointers is NULL.
- */
- IPPAPI(IppStatus, ippsFullbandController_EC_32f, (const Ipp32f *pAdaptiveFilterErr,
- const Ipp32f *pFixedFilterErr,
- Ipp32f *pAdaptiveCoefs, Ipp32f *pFixedCoefs,
- Ipp32f *pSGain,
- IppsFullbandControllerState_EC_32f *pState))
- IPPAPI(IppStatus, ippsFullbandController_EC_16s, (const Ipp16s *pAdaptiveFilterErr,
- const Ipp16s *pFixedFilterErr,
- Ipp16s *pAdaptiveCoefs, Ipp16s *pFixedCoefs,
- Ipp16s *pSGain,
- IppsFullbandControllerState_EC_16s *pState))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippsFullbandControllerReset_EC
- //
- // Purpose:
- // Resets controller state
- //
- // Parameters:
- // pState Pointer to the structure.
- //
- // Returns:
- // ippStsNoErr Indicates no error.
- // ippStsNullPtrErr Indicates an error when one of the specified
- // pointers is NULL.
- */
- IPPAPI(IppStatus, ippsFullbandControllerReset_EC_32f, (IppsFullbandControllerState_EC_32f *pState))
- IPPAPI(IppStatus, ippsFullbandControllerReset_EC_16s, (IppsFullbandControllerState_EC_16s *pState))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippsFIR_EC
- //
- // Purpose:
- // Computes FIR filtering results.
- //
- // Parameters:
- // pSrcSpchRef Pointer to the source original (receive-out)
- // signal of (tapLength + len) length
- // pSrcSpch Pointer to the signal with echo path (send-in)
- // pDstSpch Pointer to the destination "echo-free" signal
- // (send-out)
- // len Length of source and destination signals
- // pSrcTaps FIR filter taps vector
- // tapsLen Number of taps of the FIR filter
- //
- // Returns:
- // ippStsNoErr Indicates no error.
- // ippStsNullPtrErr Indicates an error when one of the specified
- // pointers is NULL.
- */
- IPPAPI(IppStatus, ippsFIR_EC_32f, (const Ipp32f *pSrcSpchRef,
- const Ipp32f *pSrcSpch,
- Ipp32f *pDstSpch,
- int len,
- Ipp32f *pSrcCoef,
- int tapLength))
- IPPAPI(IppStatus, ippsFIR_EC_16s, (const Ipp16s *pSrcSpchRef,
- const Ipp16s *pSrcSpch,
- Ipp16s *pDstSpch,
- int len,
- Ipp16s *pSrcCoef,
- int tapLength))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippsNLMS_EC
- //
- // Purpose:
- // Performs filtering with coefficients update.
- //
- // Parameters:
- // pSrcSpchRef Pointer to the source original (receive-out)
- // signal of (tapLength + len) length.
- // pSrcSpch Pointer to the signal with echo path (send-in)
- // pStepSize Pointer to step sizes vector of length equal to
- // len
- // pSrcDstErr Pointer to last error value
- // pDstSpch Pointer to the destination "echo-free" signal
- // (send-out)
- // len Length of source and destination signals
- // pSrcDstTaps FIR filter taps source and destination vector
- // tapsLen Number of taps
- //
- // Returns:
- // ippStsNoErr Indicates no error.
- // ippStsNullPtrErr Indicates an error when one of the specified
- // pointers is NULL.
- */
- IPPAPI(IppStatus, ippsNLMS_EC_32f, (const Ipp32f *pSrcSpchRef,
- const Ipp32f *pSrcSpch,
- const Ipp32f *pStepSize,
- Ipp32f *pDstSpch,
- int len,
- Ipp32f *pSrcDstCoef,
- int tapLength,
- Ipp32f *pErr))
- IPPAPI(IppStatus, ippsNLMS_EC_16s, (const Ipp16s *pSrcSpchRef,
- const Ipp16s *pSrcSpch,
- const Ipp32s *pStepSize,
- Ipp16s *pDstSpch,
- int len,
- Ipp16s *pSrcDstCoef,
- int tapLength,
- Ipp16s *pErr))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippsFIRSubband_EC
- //
- // Purpose:
- // This function computes the filter output in AEC NLMS algorithm.
- //
- // Parameters:
- // ppSrcSignalIn, ppSrcSignal Pointers to an two-dimensional vector of size
- // [numSegments][len] containing the pointers to the most recent
- // complex-valued FFT spectra an input audio signal.
- // ppSrcCoefs, ppCoefs Pointers to an two-dimensional vector of size [numSegments][len]
- // containing the pointers to the filter coefficients vector of size [len].
- // pDstSignalOut, pDstSignal Pointers to the complex-valued filter output vector.
- // numSegments Number of filter segments (0 < numSegments < 256).
- // len, numSubbands Number of filter subbands (0 < len, numSubbands < 4097).
- // startSubband Number of subbands to skip before filtering (0<= startSubband < numSubbands)
- // scaleFactor Saturation fixed scale factor (-32 < scaleFactor < 32)
- // for Low function 0 <= scaleFactor < 32)
- //
- // Returns:
- // ippStsNoErr No Error.
- // ippStsNullPtrErr ppSrcSignalIn, ppSrcCoefs or pDstSignalOut is null.
- // ippStsLengthErr len is out of range.
- // ippStsRangeErr numSegments or scaleFactor is out of range.
- //
- */
- IPPAPI(IppStatus, ippsFIRSubband_EC_32fc, (
- Ipp32fc **ppSrcSignalIn,
- Ipp32fc **ppSrcCoefs,
- Ipp32fc *pDstSignalOut,
- int numSegments,
- int len))
- IPPAPI(IppStatus, ippsFIRSubband_EC_32sc_Sfs,(
- Ipp32sc **ppSrcSignalIn,
- Ipp32sc **ppSrcCoefs,
- Ipp32sc *pDstSignalOut,
- int numSegments,
- int len,
- int scaleFactor))
- IPPAPI(IppStatus, ippsFIRSubbandLow_EC_32sc_Sfs,(
- const Ipp32sc** ppSrcSignal,
- const Ipp32sc** ppCoefs,
- int numSegments,
- Ipp32sc* pDstSignal,
- int startSubband,
- int numSubbands,
- int scaleFactor))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippsFIRSubbandCoeffUpdate_EC
- //
- // Purpose:
- // This function updates the coefficients of the AEC adaptive
- // filter designed based on NLMS algorithm.
- // Parameters:
- // pSrcStepSize, pSrcAdaptStepSize Pointer to the adaptive filter step size
- // vector of size [len] or [numSubbands]. For the integer
- // functions step size vector elements are represented
- // as a scaled integer values where variable x of type
- // Ipp32s_EC_Sfs corresponds to the floating point value
- // x.val * 2^x.sf.
- // ppSrcStepSize Pointer to the array of pSrcStepSize. See above.
- // apOrder affine projection order.
- // ppSrcFilterInput Pointer to the array of pointers to the most recent
- // input blocks (e.g., Xn, Xn-1,..., Xn-L+1) the complex-valued
- // vectors that contain the FFT of the input signal.
- // The dimension of ppSrcFilterInput is [numSegments][len]
- // or [numSegments][numSubbands].
- // ppSrcDstCoefsQ15, ppSrcDstCoefs Pointer to the array of pointers to the filter coefficient
- // vectors. These are the complex-valued vectors containing
- // the filter coefficients. The dimension of ppSrcDstCoefs
- // is [numSegments][len] or [numSegments][numSubbands].
- // pSrcError Pointer to the complex-valued vector containing the filter
- // error. The dimension of pSrcError is [len] or [numSubbands].
- // ppSrcError Pointer to the array of pSrcError. See above.
- // numSegments Number of filter segments (0 < numSegments < 256).
- // len, numSubbands Number of adaptive filter subbands and length of the input
- // and output vectors.
- // pDstProdStepErrQ Pointer to the output vector of filter error and step size product.
- // scaleFactorCoef Fixed scale factor for filter coefficients (0 < scaleFactor < 32).
- //
- // Returns:
- // ippStsNoErr No Error.
- // ippStsNullPtrErr pSrcStepSize, ppSrcFilterInput, pSrcError or ppSrcDstCoefsQ15 is null.
- // ippStsLengthErr len is out of range.
- // ippStsRangeErr numSegments or scaleFactorCoef is out of range.
- // ippStsSizeErr pSrcStepSize[indexVec].val is out of range.
- //
- */
- IPPAPI(IppStatus, ippsFIRSubbandCoeffUpdate_EC_32fc_I, (
- const double *pSrcStepSize,
- const Ipp32fc **ppSrcFilterInput,
- const Ipp32fc *pSrcError,
- Ipp32fc **ppSrcDstCoefs,
- int numSegments,
- int len))
- IPPAPI(IppStatus, ippsFIRSubbandAPCoeffUpdate_EC_32fc_I, (
- const Ipp64f** ppSrcStepSize,
- const Ipp32fc** ppSrcFilterInput,
- const Ipp32fc** ppSrcError,
- Ipp32fc** ppSrcDstCoefs,
- Ipp32u numSegments,
- Ipp32u len,
- Ipp32u apOrder))
- IPPAPI(IppStatus, ippsFIRSubbandCoeffUpdate_EC_32sc_I, (
- const Ipp32s_EC_Sfs *pSrcStepSize,
- const Ipp32sc **ppSrcFilterInput,
- const Ipp32sc *pSrcError,
- Ipp32sc **ppSrcDstCoefsQ15,
- int numSegments,
- int len,
- int scaleFactorCoef))
- IPPAPI(IppStatus, ippsFIRSubbandLowCoeffUpdate_EC_32sc_I, (
- const Ipp32sc** ppSrcFilterInput,
- const Ipp32sc* pSrcError,
- Ipp32sc** ppSrcDstCoefsQ15,
- int numSegments,
- Ipp32sc* pDstProdStepErrQ,
- const Ipp32s_EC_Sfs* pSrcAdaptStepSize,
- int startSubband,
- int numSubbands,
- int scaleFactorCoef))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippsToneDetectGetStateSize_EC
- //
- // Purpose:
- // Returns size of the state structure
- //
- // Parameters:
- // sampleFreq Sample frequency.
- // pSize Pointer to the computed buffer size value
- //
- // Returns:
- // ippStsNoErr Indicates no error.
- // ippStsNullPtrErr Indicates an error when one of the specified
- // pointers is NULL.
- // ippStsRangeErr Indicates an error when sampleFreq is not a valid element
- // of the enumerated type IppPCMFrequency.
- // ippStsRangeErr Indicates an error when sampleFreq is not a
- // valid element of the enumerated type IppFrequency
- //
- */
- IPPAPI(IppStatus, ippsToneDetectGetStateSize_EC_32f, (IppPCMFrequency sampleFreq, int *pSize))
- IPPAPI(IppStatus, ippsToneDetectGetStateSize_EC_16s, (IppPCMFrequency sampleFreq, int *pSize))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippsToneDetectInit_EC
- //
- // Purpose:
- // Initializes the state structure
- //
- // Parameters:
- // pState Pointer to the memory buffer to be initialized
- // as the tone detector state structure. The size
- // of memory to be acquired by the
- // ippsToneDetectGetStateSize_EC function via pSize
- // parameter.
- // sampleFreq Sample frequency
- //
- // Returns:
- // ippStsNoErr Indicates no error.
- // ippStsRangeErr Indicates an error when sampleFreq is not a valid element
- // of the enumerated type IppPCMFrequency.
- // ippStsRangeErr Indicates an error when sampleFreq is not a
- // valid element of the enumerated type IppFrequency
- */
- IPPAPI(IppStatus, ippsToneDetectInit_EC_32f, (IppsToneDetectState_EC_32f *pState,
- IppPCMFrequency sampleFreq))
- IPPAPI(IppStatus, ippsToneDetectInit_EC_16s, (IppsToneDetectState_EC_16s *pState,
- IppPCMFrequency sampleFreq))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippsToneDetect_EC
- //
- // Purpose:
- // Detects signal 2100 Hz with every 450 ms phase reversal
- //
- // Parameters:
- // pSignal Pointer to signal vector.
- // len Number of samples in signal vector
- // pResult Pointer to result value (not zero means tone was
- // detected)
- // pState Pointer to the tone detector state structure.
- //
- // Returns:
- // ippStsNoErr Indicates no error.
- */
- IPPAPI(IppStatus, ippsToneDetect_EC_32f, (const Ipp32f *pSignal,
- int len, int *pResult,
- IppsToneDetectState_EC_32f *pState))
- IPPAPI(IppStatus, ippsToneDetect_EC_16s, (const Ipp16s *pSignal,
- int len, int *pResult,
- IppsToneDetectState_EC_16s *pState))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippsSubbandControllerDT_EC_16s
- //
- // Purpose:
- // Main controller function. Updates coefficients of filters. Returns
- // output gain coefficients
- //
- // Parameters:
- // pSrcAdaptiveFilterErr Pointer to the adaptive filter error vector of
- // length equal to numSubbands, specified in
- // ippsSubbandControllerInit_EC function
- // pSrcFixedFilterErr Pointer to errors of fixed filter. Length is
- // equal to numSubbands
- // ppDstAdaptiveCoefs Pointer to an array of pointers to the filter
- // Length of array coefficients vectors =
- // numSegments, specified in
- // ippsSubbandControllerInit_EC
- // ppDstFixedCoefs Pointer to an array of pointers to the filter
- // Length of array coefficients vectors =
- // numSegments, specified in
- // ippsSubbandControllerInit_EC
- // pSrcDstFilterPwr Pointer to an input/output power of adaptive filter coefficient.
- // pDstStsAdapt Pointer to output flag which shows controller state.
- // *pDstStsAdapt = -1 - coefficients of adaptive filter have been copied to the fixed filter.
- // *pDstStsAdapt = 0 - nothing happened.
- // *pDstStsAdapt = 1 - coefficients of fixed filter have been copied to the adaptive filter.
- // pwrDelta Adaptive filter coefficients power change value (adaptive filter coefficients power
- // of the current frame minus adaptive filter coefficients power of the previous frame).
- // filterUpdateEnabled Indicator which indicates possibility to change (update) adaptive filter
- // coefficients in this frame.
- // adaptationEnabled Indicator which indicates if adaptation is enabled or not.
- // startSubband Number of subbands to skip before filtering (0? startSubband < numSubbands).
- // pState Pointer to SubbandControllerDT_EC state structure.
- //
- // Returns:
- // ippStsNoErr Indicates no error.
- // ippStsNullPtrErr Indicates an error when one of the specified pointers is NULL.
- // ippStsBadArgErr Indicates an error when startSubband is less 0 or startSubband is greater than or equal to numSubbands.
- */
- IPPAPI(IppStatus, ippsSubbandControllerDT_EC_16s, (const Ipp32sc* pSrcAdaptiveFilterErr, const Ipp32sc* pSrcFixedFilterErr,
- Ipp32sc** ppDstAdaptiveCoefs, Ipp32sc** ppDstFixedCoefs, Ipp64s* pSrcDstFilterPwr, int* pDstStsAdapt, Ipp64s pwrDelta,
- int filterUpdateEnabled, int adaptationEnabled, int startSubband, IppsSubbandControllerDTState_EC_16s* pState))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippsSubbandControllerDTUpdate_EC
- //
- // Purpose:
- // Updates controller state. Returns step sizes.
- //
- // Parameters:
- // ppSrcRinSubbandsHistory Pointer to an array of pointers to the most
- // recent receive-in blocks. Size of array is equal
- // to numSegments, specified in
- // ippsSubbandControllerInit_EC function
- // pSrcSinSubbands Pointer to subband representation of send-in
- // signal frame (or NULL). Size of array =
- // numSubbands, specified in
- // ippsSubbandControllerInit_EC function
- // pSrcFilterErr Pointer to the input filter error vector. Vector length is equal to numSubbands
- // specified in ippsSubbandControllerInit_EC function.
- // pDstStepSize Pointer to step sizes. Length of vector =
- // numSubbands, specified in
- // ippsSubbandControllerInit_EC function
- // pIsDT Pointer to the indicator which indicate double-talk condition.
- // pDisabledNLP Pointer to the indicator which indicate whether NLP is disable (1) or not (0).
- // startSubband Number of subbands to skip before filtering (0? startSubband < numSubbands).
- // pState Pointer to SubbandControllerDT_EC state structure.
- //
- // Returns:
- // ippStsNoErr Indicates no error.
- // ippStsNullPtrErr Indicates an error when pState, pRin, pSin,
- // pRinSubbands or pStepSize is NULL.
- // ippStsBadArgErr Indicates an error when startSubband is less 0 or startSubband is greater than or equal to numSubbands.
- */
- IPPAPI(IppStatus, ippsSubbandControllerDTUpdate_EC_16s, (const Ipp32sc** ppSrcRinSubbandsHistory,
- const Ipp32sc* pSrcSinSubbands, const Ipp32sc* pSrcFilterErr, Ipp32s_EC_Sfs* pDstStepSize,
- int* pIsDT, int* pDisabledNLP, int startSubband, IppsSubbandControllerDTState_EC_16s* pState))
- /* /////////////////////////////////////////////////////////////////////////////
- // Echo Canceller end
- ///////////////////////////////////////////////////////////////////////////// */
- /* /////////////////////////////////////////////////////////////////////////////
- // MSRTA related functions
- ///////////////////////////////////////////////////////////////////////////// */
- #if !defined( _OWN_BLDPCS )
- typedef struct _QMFState_MSRTA_32s IppsQMFState_MSRTA_32s;
- typedef struct _QMFState_RTA_32f IppsQMFState_RTA_32f;
- typedef struct _ShortTermPostFilterState_MSRTA_32s IppsShortTermPostFilterState_MSRTA_32s;
- typedef struct _PostFilterState_RTA_32f IppsPostFilterState_RTA_32f;
- #endif
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsLPCToLSP_RTA
- //
- // Purpose: Converts a set of 10th-order LP coefficients to
- // an equivalent set of line spectrum pairs (LSPs).
- // Parameters:
- // pSrcLPC Pointer to LP coefficient vector [order].
- // pDstLSP Pointer to the LSP coefficient vector [order].
- // order LP coefficient filter order.
- // Returns: IppStatus
- // ippStsNoRootFoundErr if number of roots less than order
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsLPCToLSP_RTA_32f,(const Ipp32f* pSrcLPC, Ipp32f* pDstLSP, int order))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsLSPToLPC_RTA
- //
- // Purpose: Converts a set of order LSPs to LP coefficients.
- // Parameters:
- // pSrcLSP Pointer to the input LSFs [order].
- // pDstLPC Pointer to the output predictive coefficients [order].
- // order LP coefficient filter order.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsLSPToLPC_RTA_32f,(const Ipp32f* pSrcLSP, Ipp32f* pDstLPC, int order))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsLevinsonDurbin_RTA
- // Purpose: Obtaining of the LPC using durbin algorithm
- // Parameters:
- // pSrcAutoCorr Pointer to the autocorrelation vector [order+1].
- // pDstLPC Pointer to the LPC output vector [order+1].
- // pDstRC Pointer to the RC output vector [order].
- // order LP order.
- //
- */
- IPPAPI(IppStatus, ippsLevinsonDurbin_RTA_32f, (const Ipp32f* pSrcAutoCorr, Ipp32f* pDstLPC, Ipp32f* pDstRC, int order))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsQMFGetStateSize_RTA
- // Purpose: Knowing of MSRTA QMF filter size demand
- // Parameters:
- // pSize pointer to the output value of the memory size needed for QMF filter
- // Returns:
- // ippStsNoErr, if no errors
- */
- IPPAPI(IppStatus, ippsQMFGetStateSize_RTA_32f, ( int* pSize ))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsQMFInit_RTA
- // Purpose: Initialization of the memory allocated for QMF filter
- // Parameters:
- // pQMFMem Pointer to the memory supplied for filtering.
- // nTaps Number of taps: 24, 48.
- // Returns: ippStsNoErr, if no errors
- //
- */
- IPPAPI(IppStatus, ippsQMFInit_RTA_32f,( IppsQMFState_RTA_32f* pQMFMem, int nTaps ))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsQMFDecode_RTA
- // Purpose: QMF synthesis filter implementation
- // Parameters:
- // ptQmf QMF filter structure.
- // pSrcLow Pointer to the input buffer low band (len).
- // pSrcHigh Pointer to the input buffer high band (len).
- // len Length of the input buffer size.
- // pDst Pointer to the output buffer (2 * len).
- // pQMFMem Pointer to the memory supplied for filtering.
- // Returns: ippStsNoErr, if no errors
- */
- IPPAPI(IppStatus, ippsQMFDecode_RTA_32f,(const Ipp32f* pSrcLow, const Ipp32f* pSrcHigh,
- int len, Ipp32f* pDst, IppsQMFState_RTA_32f* pQMFMem))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsQMFEncode_RTA
- // Purpose: QMF analysis filter implementation
- // Parameters:
- // pSrc Pointer to the input buffer (len).
- // len Length of the input buffer size.
- // pDstLow Pointer to the output buffer low band (len / 2).
- // pDstHigh Pointer to the output buffer high band (len / 2).
- // pQMFMem Pointer to the memory supplied for filtering.
- // Returns: ippStsNoErr, if no errors
- */
- IPPAPI(IppStatus, ippsQMFEncode_RTA_32f,(const Ipp32f* pSrc, int len, Ipp32f* pDstLow,
- Ipp32f* pDstHigh, IppsQMFState_RTA_32f* pQMFMem))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsPostFilterGetStateSize_RTA
- // Purpose: Knowing of MSRTA Short Term Post filter size demand
- // Parameters:
- // pSize pointer to the output value of the memory size needed for STP filter
- // Returns:
- // ippStsNoErr, if no errors
- */
- IPPAPI(IppStatus ,ippsPostFilterGetStateSize_RTA_32f,(int* pSize))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsPostFilterInit_RTA
- // Purpose: Initialization of the memory allocated for STP filter
- // Parameters:
- // pStateMem Pointer to the memory supplied for filtering.
- // Returns: ippStsNoErr, if no errors
- //
- */
- IPPAPI(IppStatus ,ippsPostFilterInit_RTA_32f,( IppsPostFilterState_RTA_32f *pStateMem))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsPostFilter_RTA
- // Purpose: Adaptive Short-term Post Filter (APF)
- // pSrcLPC pointer to the LPC coefficients.
- // order LPC Order.
- // pSrcDstSpeech pointer to the input/output speech buffer.
- // len Length of input speech.
- // apfIdx Index for different parameter value.
- // harmonic and full band coding: iApfIdx = 0
- // subband coding: iApfIdx = 1,3,4 respectively
- // streaming coding: iApfIdx = 2,5,6 respectively
- // pMem Pointer to the apf memory [33].
- // pStateMem Pointer to the apf state memory.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus ,ippsPostFilter_RTA_32f_I,(const Ipp32f* pSrcLPC, int order, Ipp32f* pSrcDstSpeech,
- int len, int pfType, Ipp32f* pMem,
- IppsPostFilterState_RTA_32f* pStateMem))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsAdaptiveCodebookSearch_RTA
- // Purpose: Adaptive Codebook Search
- // pSrcAdptTarget Pointer to the input target signal (subFrameSize).
- // pSrcImpulseResponse Pointer to the input impulse response (subFrameSize).
- // subFrameSize Subframe size.
- // pSrcBoundary Pointer to the input acb search boundaries (4).
- // pSrcDstExc Pointer to the input/output current excitation buffer.
- // pSrcDstLag Pointer to the input / output the lag.
- // pDstAdptIndex Pointer to the output acb index.
- // pDstAdptContribution Pointer to the output acb contribution (subFrameSize).
- // deltaSearchRange Delta search range value.
- // searchFlag 0 - full search, 1 - search around open-loop pitch.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsAdaptiveCodebookSearch_RTA_32f,(
- const Ipp32f* pSrcAdptTarget, const Ipp32f* pSrcImpulseResponse, int subFrameSize, const Ipp32f* pSrcBoundary,
- Ipp32f* pSrcDstExc, Ipp32f* pSrcDstLag, int* pDstAdptIndex,
- Ipp32f* pDstAdptContribution, int deltaSearchRange, int searchFlag))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsFixedCodebookSearch_RTA
- // Name: ippsFixedCodebookSearchRandom_RTA
- // Purpose: Two tracks Fixed Codebook Search
- // pSrcFixedTarget Pointer to the input target signal.
- // pSrcImpulseResponse Pointer to the input impluse response.
- // pDstFixedVector Pointer to the output FCB vector.
- // subFrameSize Subframe size.
- // pDstFixedIndex Pointer to the output codeword index.
- // pDstGain Pointer to the output optimal gain.
- // numPulses Number of pulses.
- // complexity Complexity control parameter.
- // codebookSize Random codebook size (64, 160, 256).
- // nStage Stage number (0, 1,2).
- // gainLimit Gain constrain limit flag(1, 2, 3, 4).
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsFixedCodebookSearch_RTA_32f,(
- const Ipp32f* pSrcFixedTarget, const Ipp32f* pSrcImpulseResponse, Ipp32f* pDstFixedVector,
- int subFrameSize, int* pDstFixedIndex, Ipp32f* pDstGain, int numPulses, int complexity))
- IPPAPI(IppStatus, ippsFixedCodebookSearchRandom_RTA_32f,(
- const Ipp32f * pSrcResidualTarget, const Ipp32f * pSrcImpulseResponse, Ipp32f *pDstFixedVector,
- int subFrameSize, int* pDstFixedIndex, Ipp32f *pDstGain, int codebookSize,
- int nStage, int gainLimit))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsLSPQuant_RTA
- // Purpose: Quantize LSP parameters
- // pSrcLSP Pointer to the input unquantized LSP vector.
- // pSrcLPC Pointer to the input unquantized LPC vector.
- // pDstLSP Pointer to the output quantized LSP vector.
- // order LP coefficient filter order.
- // pDstLSPIndex Pointer to the vector of quantized LSP indices.
- // numMSVQStages Number stages MSVQ for LSP.
- // frequency Sampling frequency.
- // complexity Complexity control parameter.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsLSPQuant_RTA_32f,(
- const Ipp32f* pSrcLSP, const Ipp32f* pSrcLPC, Ipp32f* pDstLSP, int order,
- int* pDstLSPIndex, IppPCMFrequency frequency, int complexity))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsHighPassFilter_RTA_
- // Purpose: High pass filtering with lattice structure
- // pSrc Pointer to the input buffer.
- // pDst Pointer to the output buffer.
- // len Length of input /output buffers.
- // hpfOrder Filter order 4 or 5.
- // frequency Sampling frequency.
- // pMem Pointer to the filter memory.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsHighPassFilter_RTA_32f,(const Ipp32f* pSrc, Ipp32f* pDst, int len, int hpfOrder, IppPCMFrequency frequency, Ipp32f* pMem))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsBandPassFilter_RTA
- // Purpose: Performs band pass filter
- // pSrcDst Pointer to the input/output speech vector [len].
- // len Number of elements in the pSrcDst vector.
- // pMem Pointer to the memory allocated for the frequency enhancement filter [len+2].
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI(IppStatus, ippsBandPassFilter_RTA_32f_I,(Ipp32f* pSrcDst, int len, Ipp32f *pMem))
- /* /////////////////////////////////////////////////////////////////////////////
- // MSRTA end
- ///////////////////////////////////////////////////////////////////////////// */
- /* /////////////////////////////////////////////////////////////////////////////
- // G7291 related functions
- ///////////////////////////////////////////////////////////////////////////// */
- #if !defined( _OWN_BLDPCS )
- typedef struct _FilterHighpassState_G7291_16s IppsFilterHighpassState_G7291_16s;
- typedef struct _QMFState_G7291_16s IppsQMFState_G7291_16s;
- typedef struct _GenerateExcitationState_G7291_16s IppsGenerateExcitationState_G7291_16s;
- #endif
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsFilterHighpassGetStateSize_G7291_16s
- // Purpose: Knowing of G7291 high-pass filter size demand
- // Parameters:
- // pSize Pointer to the output value of the memory size.
- // Returns:
- // ippStsNoErr, if no errors
- */
- IPPAPI (IppStatus, ippsFilterHighpassGetStateSize_G7291_16s, (int* pSize))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsFilterHighpassInit_G7291_16s
- // Purpose: Initialization of the memory allocated for preprocessing filter
- // Parameters:
- // pState Pointer to memory supplied for filtering.
- // pCoeff Pointer to the source vector of the filter coefficients.
- // Returns: ippStsNoErr, if no errors
- //
- */
- IPPAPI (IppStatus, ippsFilterHighpassInit_G7291_16s, (IppsFilterHighpassState_G7291_16s* pState,
- const Ipp16s* pCoeff))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsFilterHighpass_G7291_16s_ISfs
- // Purpose: The input sampled speech shall be high-pass filtered
- // Parameters:
- // pSrcDst Pointer to the source and destination vector (for in-place operation).
- // len Length of the pSrcDst.
- // pState Pointer to the memory supplied for filtering.
- // scaleFactor Scaling factor to apply to the result.
- // Returns: ippStsNoErr, if no errors
- */
- IPPAPI (IppStatus, ippsFilterHighpass_G7291_16s_ISfs, (Ipp16s* pSrcDst, int len,
- IppsFilterHighpassState_G7291_16s* pState, int scaleFactor))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsFilterLowpass_G7291_16s_I
- // Purpose: The input sampled speech shall be low-pass filtered
- // Parameters:
- // pSrcDst Pointer to the source and destination vector (for in-place operation).
- // len Length of the pSrcDst.
- // pMem Pointer to the memory supplied for filtering.
- // hint Code specific use hints.
- // Returns: ippStsNoErr, if no errors
- */
- IPPAPI (IppStatus, ippsFilterLowpass_G7291_16s_I, (Ipp16s* pSrcDst, int len, Ipp16s* pMem,
- IppHintAlgorithm hint))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsQMFGetStateSize_G7291_16s
- // Purpose: Knowing of G7291 QMF analysis filter size demand
- // Parameters:
- // pSize Pointer to the output value of the memory size.
- // Returns:
- // ippStsNoErr, if no errors
- */
- IPPAPI (IppStatus, ippsQMFGetStateSize_G7291_16s, (int* pSize))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsQMFInit_G7291_16s
- // Purpose: Initialization of the memory allocated for QMF filter
- // Parameters:
- // pState Pointer to the memory supplied for QMF encode.
- // Returns: ippStsNoErr, if no errors
- //
- */
- IPPAPI (IppStatus, ippsQMFInit_G7291_16s, (IppsQMFState_G7291_16s* pState))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsQMFEncode_G7291_16s
- // Purpose: Two-channel filter bank analysis.
- // Parameters:
- // pSrc Pointer to the input vector [len].
- // len Number of samples.
- // pDstLowBand Pointer to the output lower-band vector [[len/2].
- // pDstHighBand Pointer to the output higher-band vector [len/2].
- // pState Pointer to the memory supplied for QMF encode.
- // Returns: ippStsNoErr, if no errors
- */
- IPPAPI (IppStatus, ippsQMFEncode_G7291_16s, (const Ipp16s* pSrc, int len,
- Ipp16s* pDstLowBand, Ipp16s* pDstHighBand, IppsQMFState_G7291_16s* pState))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsQMFDecode_G7291_16s
- // Purpose: Two-channel filter bank synthesis.
- // Parameters:
- // pSrcLowBand Pointer to the input lower-band vector [len].
- // pSrcHighBand Pointer to the input higher-band vector [len].
- // valGainSwitching Gain attenuation factor.
- // len Number of samples.
- // pDst Pointer to the output vector [len*2].
- // pState Pointer to the memory supplied for QMF decode.
- // Returns: ippStsNoErr, if no errors
- */
- IPPAPI (IppStatus, ippsQMFDecode_G7291_16s, (const Ipp16s* pSrcLowBand, const Ipp16s* pSrcHighBand,
- Ipp16s valGainSwitching, int len, Ipp16s* pDst, IppsQMFState_G7291_16s* pState))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsLSFDecode_G7291_16s
- // Purpose: Construct LSFs by codebook indices
- // Parameters:
- // pQuantIndex Pointer to the input vector of codebook indices.
- // pSrcDstPrevLSF Pointer to the input/output table of 4 previously quantized LSFs vectors.
- // pSrcDstLSF Pointer to the quantized LSF input/output vector.
- // Returns: ippStsNoErr, if no errors
- */
- IPPAPI (IppStatus, ippsLSFDecode_G7291_16s, (const Ipp16s* pQuantIndex, Ipp16s* pSrcDstPrevLSF,
- Ipp16s* pSrcDstLSF))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name : ippsAdaptiveCodebookSearch_G7291_16s
- // Purpose: Determination of optimal integer and fractional pitch delay
- // and generation of adaptive codebook vector
- // Parameters:
- // pSrcAdptTarget Pointer to the target signal for adaptive-codebook search vector [40].
- // pSrcImpulseResponse Pointer to the impulse response of weighted synthesis filter vector [40]
- // pSrcPrevExcitation Pointer to the previous and updated excitation vector [154].
- // pDstDelay Pointer to the integer delay and fraction delay vector [2].
- // lagMin Minimum value in the searched range.
- // lagMax Maximum value in the searched range.
- // subFrame Subframe number, either 0 or 1.
- */
- IPPAPI (IppStatus, ippsAdaptiveCodebookSearch_G7291_16s, (const Ipp16s* pSrcAdptTarget,
- const Ipp16s* pSrcImpulseResponse, const Ipp16s* pSrcPrevExcitation, Ipp16s* pDstDelay,
- Ipp16s lagMin, Ipp16s lagMax, int subFrame))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name : ippsAdaptiveCodebookGain_G7291_16s
- // Purpose: Compute the adaptive codebook gain
- //
- // pSrcAdptTarget Pointer to the adaptive target signal vector [40].
- // pSrcImpulseResponse Pointer to the impulse response of the perceptual weighting filter vector [40].
- // pSrcAdptVector Pointer to the adaptive-codebook vector [40].
- // pDstFltAdptVector Pointer to the output filtered adaptive-codebook vector [40].
- // pResultAdptGain Pointer to the adaptive-codebook gain in the length of 1, in Q14.
- */
- IPPAPI (IppStatus, ippsAdaptiveCodebookGain_G7291_16s, (const Ipp16s* pSrcAdptTarget,
- const Ipp16s* pSrcImpulseResponse, const Ipp16s* pSrcAdptVector, Ipp16s* pDstFltAdptVector,
- Ipp16s* pResultAdptGain))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsAlgebraicCodebookSearch
- // Purpose: Fixed (algebraic) codebook search function (1st Layer)
- // Parameters:
- // pSrcFixedTarget Pointer to the input updated target speech vector [40].
- // pSrcLtpResidual Pointer to the input residual after long term prediction vector [40].
- // pSrcDstFltAdptVector Pointer to the output filtered adaptive fixed-codebook vector [40].
- // pSrcDstImpulseResponse Pointer to the output LP synthesis filter [40].
- // pitchLag Pitch lag value.
- // pitchGain Last quantized pitch gain value.
- // pDstFixedVector Pointer to the fixed-codebook vector [40].
- // pDstFltFixedVector Pointer to the output filtered fixed-codebook vector [40].
- // pDstCodebookIdx Pointer to the fixed-codebook index [2].
- // voiceFactor Voicing factor value.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI (IppStatus, ippsAlgebraicCodebookSearchL1_G7291_16s, (const Ipp16s* pSrcFixedTarget,
- const Ipp16s* pSrcLtpResidual, Ipp16s* pSrcDstFltAdptVector, Ipp16s* pSrcDstImpulseResponse,
- Ipp16s pitchLag, Ipp16s pitchGain, Ipp16s* pDstFixedVector, Ipp16s* pDstFltFixedVector,
- Ipp16s* pDstCodebookIdx))
- IPPAPI (IppStatus, ippsAlgebraicCodebookSearchL2_G7291_16s, (const Ipp16s* pSrcFixedTarget,
- const Ipp16s* pSrcLtpResidual, const Ipp16s* pSrcImpulseResponse, Ipp16s voiceFactor,
- Ipp16s* pDstFixedVector, Ipp16s* pDstFltFixedVector, Ipp16s* pDstCodebookIdx))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsGainQuant_G7291_16s
- // Purpose: Quantization of the adaptive codebook gains of 2nd stage
- // Parameters:
- // pSrcFixedTarget Pointer to the target signal for adaptive codebook search vector [40].
- // pSrcFltFixedVector Pointer to the filtered fixed codebook vector [40].
- // valSrcQGain Quantized gain of 1st stage.
- // pDstQGainIndex Pointer to the output gain codebook index.
- // pDstQGain Pointer to the output quantized gain.
- // subFrame Subframe number in range [0,3].
- //
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI (IppStatus, ippsGainQuant_G7291_16s, (const Ipp16s* pSrcFixedTarget, const Ipp16s* pSrcFltFixedVector,
- Ipp16s valSrcQGain, Ipp16s* pDstQGainIndex, Ipp16s* pDstQGain, int subFrame))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsEnvelopTime_G7291_16s
- // Purpose: TDBWE time envelope (segment energy) computation
- // Parameters:
- // pSrc Pointer to the original highband input signal [10*subFrame].
- // nls Normalization of the input signal.
- // pDstEnvelopTime Pointer to the output time envelope parameters [subFrame].
- // subFrame Number of consecutive subframes in pSrc.
- //
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI (IppStatus, ippsEnvelopTime_G7291_16s, (const Ipp16s* pSrc, Ipp16s nls,
- Ipp16s* pDstEnvelopTime, int subFrame))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsEnvelopFrequency_G7291_16s
- // Purpose: TDBWE frequency envelope (sub-band energy) computation
- // Parameters:
- // pSrc Pointer to the original highband input signal [64].
- // pDstEnvelopFreq Pointer to the output frequency envelope parameters [12].
- //
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI (IppStatus, ippsEnvelopFrequency_G7291_16s, (const Ipp16s* pSrc, Ipp16s* pDstEnvelopFreq))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsGenerateExcitationGetStateSize_G7291_16s
- // Purpose: Knowing of TDBWE generate excitation size demand
- // Parameters:
- // pSize Pointer to the output value of the memory size.
- // Returns:
- // ippStsNoErr, if no errors
- */
- IPPAPI (IppStatus, ippsGenerateExcitationGetStateSize_G7291_16s, (int* pSize))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsGenerateExcitationInit_G7291_16s
- // Purpose: Initialization of the memory allocated for generate excitation
- // Parameters:
- // pState Pointer to the memory supplied for generation of the excitation signal.
- // Returns: ippStsNoErr, if no errors
- */
- IPPAPI (IppStatus, ippsGenerateExcitationInit_G7291_16s, (IppsGenerateExcitationState_G7291_16s* pState))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsGenerateExcitation_G7291_16s
- // Purpose: TDBWE excitation generator: produce pitch-synchronous excitation
- // signal based on G.729 parameters
- // Parameters:
- // pIntPitchLag Pointer to the integer part of pitch lag.
- // pFracPitchLag Pointer to the fractional part of pitch lag.
- // pLtpPower Pointer to the ltp power ratio.
- // pFixPower Pointer to the fix power ratio.
- // pState Pointer to the memory supplied for generate excitation.
- // Returns: ippStsNoErr, if no errors
- //
- */
- IPPAPI (IppStatus, ippsGenerateExcitation_G7291_16s, (const Ipp16s* pIntPitchLag,
- const Ipp16s* pFracPitchLag, const Ipp32s* pLtpPower, const Ipp32s* pFixPower,
- Ipp16s* pDst, IppsGenerateExcitationState_G7291_16s* pState))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsShapeEnvelopTime_G7291_16s
- // Purpose: TDBWE time envelope shaping module,
- // shape time envelope of pSrc according to pSrcTimeEnvelope
- // Parameters:
- // pSrc Pointer to the excitation input signal [80].
- // pSrcEnvelopTime Pointer to the desired time envelope [8].
- // pSrcDstGain Pointer to the gain of the time envelope shaping.
- // pSrcDstNorm Pointer to the norm of the time envelope shaping.
- // pDst Pointer to the shaped output signal [208].
- // Returns: ippStsNoErr, if no errors
- //
- */
- IPPAPI (IppStatus, ippsShapeEnvelopTime_G7291_16s, (const Ipp16s* pSrc,
- const Ipp16s* pSrcEnvelopTime, Ipp16s* pSrcDstGain, Ipp16s* pSrcDstNorm,
- Ipp16s* pDst))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsShapeEnvelopFrequency_G7291_16s
- // Purpose: TDBWE frequency envelope shaping module
- // shape frequency envelope of pSrc according to pSrcFreqEnvelope
- // Parameters:
- // pSrc Pointer to the input signal [208].
- // pSrcEnvelopFreq Pointer to the desired frequency envelope [12].
- // pDst Pointer to the shaped output signal [80].
- // pDstFilterCoeffs Pointer to the filtering coefficients for frequency envelope shaping [33].
- // pMem Pointer to the memory supplied for frequency envelope shaping [32].
- // Returns: ippStsNoErr, if no errors
- //
- */
- IPPAPI (IppStatus, ippsShapeEnvelopFrequency_G7291_16s, (const Ipp16s* pSrc,
- const Ipp16s* pSrcEnvelopFreq, Ipp16s* pDst, Ipp16s* pDstFilterCoeffs, Ipp16s* pMem))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsCompressEnvelopTime_G7291_16s
- // Purpose: Postprocessing of the TDBWE output by adaptive amplitude compression
- // Parameters:
- // pSrcEnvelopTime Pointer to the desired time envelope [28].
- // pSrcDst Pointer to the shaped input/output signal [160].
- // pMem Pointer to the memory for 2 past time envelope parameters.
- // Returns: ippStsNoErr, if no errors
- //
- */
- IPPAPI (IppStatus, ippsCompressEnvelopTime_G7291_16s, (const Ipp16s* pSrcEnvelopTime,
- Ipp16s* pSrcDst, Ipp16s* pMem))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsMDCTFwd_G7291_16s
- // Purpose: Compute MDCT
- // Parameters:
- // pSrc Pointer to the input signal [160].
- // pSrcDst Pointer to the previous input signal [160].
- // pDstNorm Pointer to the output normalization factor.
- // pDstMDCTCoeffs Pointer to the output MDCT coefficients [160].
- // hint Suggests using specific code.
- // Returns: ippStsNoErr, if no errors
- //
- */
- IPPAPI(IppStatus, ippsMDCTFwd_G7291_16s, (const Ipp16s* pSrc, const Ipp16s* pSrcPrev,
- int* pDstNorm, Ipp16s* pDstMDCTCoeffs, IppHintAlgorithm hint ))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsMDCTInv_G7291_16s
- // Purpose: Compute inverse MDCT
- // Parameters:
- // pMDCTCoeffs Pointer to the MDCT coefficients [160].
- // pSrcDstMDCTPrevCoeffs Pointer to the old input/output MDCT memory [160].
- // pDst Pointer to the output signal [160].
- // scaleFactor Scale factor for the normalization MDCT coefficients.
- // Returns: ippStsNoErr, if no errors
- //
- */
- IPPAPI (IppStatus, ippsMDCTInv_G7291_16s, (const Ipp16s* pMDCTCoeffs,
- Ipp16s* pSrcDstMDCTPrevCoeffs, Ipp16s* pDst, int scaleFactor))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsMDCTQuantFwd_G7291_16s32u
- // Purpose: Split spherical vector quantization.
- // Parameters:
- // pMDCTCoeffs Pointer to the input MDCT coefficients [320].
- // pBitsNumber Pointer to the input number of bits allocated per subbands [18].
- // pDst Pointer to the output vector quantization [18].
- // Returns: ippStsNoErr, if no errors
- //
- */
- IPPAPI (IppStatus, ippsMDCTQuantFwd_G7291_16s32u,
- (const Ipp16s* pMDCTCoeffs, const Ipp16s* pBitsNumber, Ipp32u* pDst))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsMDCTQuantDecode_G7291_32u16s
- // Purpose: Inverse split spherical vector quantization.
- // Parameters:
- // pSrc Pointer to the input vector quantization indices [18].
- // pBitsNumber Pointer to the input number of bits allocated per subbands [18].
- // pQuantSpecEnv Pointer to the input quantized spectrum envelope [18].
- // pMDCTCoeffs Pointer to the output MDCT coefficients [320].
- // Returns: ippStsNoErr, if no errors
- //
- */
- IPPAPI (IppStatus, ippsMDCTQuantInv_G7291_32u16s,
- (const Ipp32u* pSrc, const Ipp16s* pBitsNumber,
- const Ipp16s* pQuantSpecEnv, Ipp16s* pDstMDCTCoeffs))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsMDCTPostProcess_G7291_16s
- // Purpose: Post-processing of higher-band MDCT coefficients.
- // Parameters:
- // pSrcDstMDCTCoeffs Pointer to the input/output MDCT coefficients [160].
- // numBits Number of bits to decode in TDAC.
- // Returns: ippStsNoErr, if no errors
- //
- */
- IPPAPI (IppStatus, ippsMDCTPostProcess_G7291_16s, (Ipp16s* pSrcDstMDCTCoeffs,
- int numBits))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsGainControl_G7291_16s_I
- // Purpose: Adaptive gain control
- // Compensate for the gain difference between reconstructed speech signal given
- // pSrc (sr) and the postfiltered signal given by pSrcDst (spf)
- // dst[i] = g[i] * dst[i]
- // pSrc Pointer to the source reconstructed speech vector [40].
- // pSrcDst Pointer to the input post-filtered signal and output
- // gain-compensated signal vector [40].
- // pSrcDstGain Pointer to the gain for the previous subframe.
- // gain First reflection coefficient.
- // valGainSwitching Gain attenuation factor.
- // pSrcDstSmoothLevel Pointer to the input/output smooth level.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI (IppStatus, ippsGainControl_G7291_16s_I, (const Ipp16s* pSrc, Ipp16s *pSrcDst,
- Ipp16s* pSrcDstGain, Ipp16s gain, Ipp16s valGainSwitching,
- Ipp32s* pSrcDstSmoothLevel))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsTiltCompensation_G7291_16s
- // Purpose: Tilt compensation filter
- // transfer function 1/(1-|mu|) * (1 + mu * 1/z)
- // pSrc Pointer to the gamma weighted LP coefficients input vector [40].
- // pDst Pointer to the present and tilt-compensated output speech [40].
- // gain Gain coefficient.
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI (IppStatus, ippsTiltCompensation_G7291_16s, (const Ipp16s* pSrc, Ipp16s* pDst,
- Ipp16s gain))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsQuantParam_G7291_16s
- // Purpose: Quantization of the TDBWE parameter set by "mean removed VQ"
- //
- // Parameters:
- // pSrcDst Pointer to the source/destination unquantized parameter set [28].
- // pCdbkIndices Pointer to the codebook indices [4].
- // Returns: IppStatus
- // ippStsNoErr if no error
- */
- IPPAPI (IppStatus, ippsQuantParam_G7291_16s, (Ipp16s *pSrcDst, Ipp16s *pCdbkIndices))
- /* /////////////////////////////////////////////////////////////////////////////
- // G7291 end
- ///////////////////////////////////////////////////////////////////////////// */
- /* /////////////////////////////////////////////////////////////////////////////
- // Noise filters functions
- ///////////////////////////////////////////////////////////////////////////// */
- #if !defined( _OWN_BLDPCS )
- typedef struct _FilterNoiseState_RTA_32f IppsFilterNoiseState_RTA_32f;
- typedef struct _FilterNoiseState_EC_32f IppsFilterNoiseState_EC_32f;
- #endif
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsFilterNoiseGetStateSize_*
- // Purpose: Knowing of RTA Noise Suppression size demand
- // Parameters:
- // pcmFreq Sampling frequency.
- // pSize Pointer to the output value of the memory size.
- // Returns:
- // ippStsNoErr, if no errors
- //
- */
- IPPAPI(IppStatus, ippsFilterNoiseGetStateSize_RTA_32f, (IppPCMFrequency pcmFreq, int* pSize ))
- IPPAPI(IppStatus, ippsFilterNoiseGetStateSize_EC_32f, (IppPCMFrequency pcmFreq,int *size))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsFilterNoiseInit_*
- // Purpose: Initialization of the memory allocated for Noise Suppression Main Algorithm
- // Parameters:
- // pcmFreq Sampling frequency.
- // pNRStateMem Pointer to the memory supplied for filter state.
- // Returns: ippStsNoErr, if no errors
- //
- */
- IPPAPI(IppStatus, ippsFilterNoiseInit_RTA_32f, (IppPCMFrequency pcmFreq, IppsFilterNoiseState_RTA_32f* pNRStateMem))
- IPPAPI(IppStatus, ippsFilterNoiseInit_EC_32f, (IppPCMFrequency pcmFreq, IppsFilterNoiseState_EC_32f* pNRStateMem))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsFilterNoiseLevel_*
- // Purpose: Set the level of noise attenuation
- // Parameters:
- // level The enumerated value which defines the degree of noise attenuation.
- // pNRStateMem Pointer to the memory supplied for Noise Suppression.
- // Returns: ippStsNoErr, if no errors
- //
- */
- IPPAPI(IppStatus, ippsFilterNoiseLevel_RTA_32f, (IppsNRLevel level, IppsFilterNoiseState_RTA_32f* pNRStateMem))
- IPPAPI(IppStatus, ippsFilterNoiseLevel_EC_32f, (IppsNRLevel level, IppsFilterNoiseState_EC_32f* pNRStateMem))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsFilterNoiseSetMode_EC_32f
- // Purpose: Set the type of smoothing algorithm applied
- // Parameters:
- // mode The enumerated value which defines the smoothing mode
- // pNRStateMem Pointer to the memory supplied for Noise Suppression.
- // Returns: ippStsNoErr, if no errors
- //
- */
- IPPAPI(IppStatus, ippsFilterNoiseSetMode_EC_32f, (IppsNrSmoothMode mode, IppsFilterNoiseState_EC_32f* pNRStateMem))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: _ippsFilterNoiseDetect_EC_32f64f
- // Purpose: Performs Noise Suppression Main Algorithm
- // Parameters:
- // pSrc1 Pointer to the "sin" input vector.
- // pSrc2 Pointer to the "rin" input vector.
- // pNoisePwr Pointer to the noise detected power.
- // pMean Weighted mean of the noise.
- // pDstFlag 1-noise detected, 0-not detected
- // pNRStateMem Pointer to the memory supplied for Noise Suppression.
- // Returns: ippStsNoErr, if no errors
- //
- */
- IPPAPI(IppStatus, ippsFilterNoiseDetect_EC_32f64f, (const Ipp32f pSrc1[16],Ipp64f *pNoisePwr,
- Ipp32f *pMean,int *pDstFlag,IppsFilterNoiseState_EC_32f *pNRStateMem))
- IPPAPI(IppStatus, ippsFilterNoiseDetectModerate_EC_32f64f, (const Ipp32f pSrc1[16],const Ipp32f pSrc2[16],Ipp64f *pNoisePwr,
- Ipp32f *pMean,int *pDstFlag,IppsFilterNoiseState_EC_32f *pNRStateMem))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsFilterNoise_*
- // Purpose: Performs Noise Suppression Main Algorithm
- // Parameters:
- // pSrc Pointer to the input vector.
- // pDst Pointer to the output vector.
- // pSrcDst Pointer to the input/output vector.
- // noiseFlag Enumerated value defines filter state update.
- // pNRStateMem Pointer to the memory supplied for Noise Suppression.
- // Returns: ippStsNoErr, if no errors
- //
- */
- IPPAPI(IppStatus, ippsFilterNoise_RTA_32f, (const Ipp32f pSrc[160], Ipp32f pDst[160], IppsFilterNoiseState_RTA_32f* pNRStateMem ))
- IPPAPI(IppStatus, ippsFilterNoise_RTA_32f_I, (Ipp32f pSrcDst[160], IppsFilterNoiseState_RTA_32f* pNRStateMem ))
- IPPAPI(IppStatus, ippsFilterNoise_EC_32f, (const Ipp32f pSrc[16],Ipp32f pDst[16],IppsNrMode noiseFlag,
- IppsFilterNoiseState_EC_32f *pNRStateMem))
- IPPAPI(IppStatus, ippsFilterNoise_EC_32f_I, (Ipp32f pSrcDst[16],IppsNrMode noiseFlag,IppsFilterNoiseState_EC_32f *pNRStateMem))
- /* /////////////////////////////////////////////////////////////////////////////
- // Noise filters end
- ///////////////////////////////////////////////////////////////////////////// */
- /* /////////////////////////////////////////////////////////////////////////////
- // ALC functions
- ///////////////////////////////////////////////////////////////////////////// */
- #if !defined( _OWN_BLDPCS )
- typedef struct _ALCState_G169_16s IppsALCState_G169_16s;
- #endif
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsALCGetStateSize_G169_16s
- // Purpose: Knowing of Speech level control size demand
- // Parameters:
- // pSize Pointer to the output value of the memory size needed for Speech Level Control
- // Returns:
- // ippStsNoErr, if no errors
- //
- */
- IPPAPI(IppStatus, ippsALCGetStateSize_G169_16s,(int* pSize ))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsALCInit_G169_16s
- // Purpose: Initialization of the memory allocated for Speech Level Control Algorithm
- // Parameters:
- // pALCMem Pointer to the memory supplied for Speech Level Control.
- // Returns: ippStsNoErr, if no errors
- //
- */
- IPPAPI(IppStatus, ippsALCInit_G169_16s,(IppsALCState_G169_16s* pALCMem))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsALCSetLevel_G169_16s
- // Purpose: Set clip limit for the Speech Level Control
- // Parameters:
- // targetLevel Target level in dB.
- // clipLevel Clip limit in dB.
- // pALCMem Pointer to the memory supplied for Speech Level Control.
- // Returns: ippStsNoErr, if no errors
- //
- */
- IPPAPI(IppStatus, ippsALCSetLevel_G169_16s,(Ipp32f targetLevel, Ipp32f clipLevel, IppsALCState_G169_16s* pALCMem))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsALCSetGain_G169_16s
- // Purpose: Set max gain limit for the Speech Level Control
- // Parameters:
- // targetLevel Max gain in dB.
- // pALCMem Pointer to the memory supplied for Speech Level Control.
- // Returns: ippStsNoErr, if no errors
- //
- */
- IPPAPI(IppStatus, ippsALCSetGain_G169_16s,(Ipp32f maxGain, IppsALCState_G169_16s* pALCMem))
- /* /////////////////////////////////////////////////////////////////////////////
- // Name: ippsALC_G169_16s
- // Purpose: Speech Level Control
- // Parameters:
- // pSrc Pointer to the input vector.
- // pDst Pointer to the output vector.
- // pALCMem Pointer to the memory supplied for Speech Level Control.
- // Returns: ippStsNoErr, if no errors
- //
- */
- IPPAPI(IppStatus, ippsALC_G169_16s,(const Ipp16s *pSrc, Ipp16s *pDst, int len, IppsALCState_G169_16s* pALCMem))
- /* /////////////////////////////////////////////////////////////////////////////
- // ALC functions end
- ///////////////////////////////////////////////////////////////////////////// */
- /* /////////////////////////////////////////////////////////////////////////////
- // G.728J related functions
- ///////////////////////////////////////////////////////////////////////////// */
- /* ///////////////////////////////////////////////////////////////////////////
- // Name: ippsCodebookSearchTCQ_G728_16s8u
- //
- // Purpose: This function performs codebook search by Trellis-Coded Quantization
- // algorthm described in ITU G728 Annex J claus J.4.1.1 and stores trellis
- // survivor path index in pBestNode and best path indices in pDst
- //
- // Parameters:
- // pSrc Pointer to the input speech vector
- // pSrcLPC Pointer to the LPC coefficients vector
- // pDst Pointers to the output best path indices
- // pSrcDstWindow Pointer to the synthesis filter hybrid window memory
- // pSrcDstResidual Pointer to the input/outpu quantized residual vector
- // pSrcDstBestNode Pointer to input/output survivor node value in Viterbi search
- // invGain Inverted gain scaled value structure
- // excGain Linear excitation gain scaled value structure
- //
- //
- // Returns:
- // ippStsNoErr Indicates no error.
- // ippStsNullPtrErr Indicates an error when the pSrc, pSrcLPC, pSrcWindow,
- // pSrcDstResidual, pSrcDstBestNode or pDst pointer is NULL.
- //
- */
- IPPAPI(IppStatus, ippsCodebookSearchTCQ_G728_16s8u,(const Ipp16s *pSrc, const Ipp16s *pSrcLPC,Ipp8u *pDst,
- Ipp16s *pSrcDstWindow, Ipp16s *pSrcDstResidual, Ipp32s *pSrcDstBestNode,
- Ipp32s_EC_Sfs invGain, Ipp32s_EC_Sfs excGain ))
- /* /////////////////////////////////////////////////////////////////////////////
- // G.728J end
- ///////////////////////////////////////////////////////////////////////////// */
- #ifdef __cplusplus
- }
- #endif
- #if defined (_IPP_STDCALL_CDECL)
- #undef _IPP_STDCALL_CDECL
- #define __stdcall __cdecl
- #endif
- #endif /* __IPPSC_H__ */
- /* ////////////////////////////// End of file /////////////////////////////// */
|