From 217e4ff4d1f845b76e44634e29371cd09313d1c2 Mon Sep 17 00:00:00 2001 From: Niels Möller Date: Tue, 11 Feb 2014 11:45:27 +0100 Subject: dca: Support for XLL (lossless extension) Cleanup and integration by Diego Biurrun. Signed-off-by: Diego Biurrun --- libavcodec/dcadata.c | 630 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 629 insertions(+), 1 deletion(-) (limited to 'libavcodec/dcadata.c') diff --git a/libavcodec/dcadata.c b/libavcodec/dcadata.c index 47fb9c53c1..1db1938b29 100644 --- a/libavcodec/dcadata.c +++ b/libavcodec/dcadata.c @@ -7522,6 +7522,600 @@ DECLARE_ALIGNED(16, const float, ff_dca_lfe_fir_128)[256] = { }; #undef SCALE + +#define SCALE(c) ((float)(c) / (256.0f * 32768.0f * 8388608.0f)) +DECLARE_ALIGNED(16, const float, ff_dca_lfe_xll_fir_64)[256] = { + SCALE( 6103), SCALE( 52170), SCALE(-558064), SCALE(1592440), + SCALE(6290049), SCALE(1502534), SCALE(-546669), SCALE( 53047), + SCALE( 1930), SCALE( 51089), SCALE(-568920), SCALE(1683709), + SCALE(6286575), SCALE(1414057), SCALE(-534782), SCALE( 53729), + SCALE( 2228), SCALE( 49794), SCALE(-579194), SCALE(1776276), + SCALE(6279634), SCALE(1327070), SCALE(-522445), SCALE( 54228), + SCALE( 2552), SCALE( 48275), SCALE(-588839), SCALE(1870070), + SCALE(6269231), SCALE(1241632), SCALE(-509702), SCALE( 54550), + SCALE( 2904), SCALE( 46523), SCALE(-597808), SCALE(1965017), + SCALE(6255380), SCALE(1157798), SCALE(-496595), SCALE( 54708), + SCALE( 3287), SCALE( 44529), SCALE(-606054), SCALE(2061044), + SCALE(6238099), SCALE(1075621), SCALE(-483164), SCALE( 54710), + SCALE( 3704), SCALE( 42282), SCALE(-613529), SCALE(2158071), + SCALE(6217408), SCALE( 995149), SCALE(-469451), SCALE( 54566), + SCALE( 4152), SCALE( 39774), SCALE(-620186), SCALE(2256019), + SCALE(6193332), SCALE( 916430), SCALE(-455494), SCALE( 54285), + SCALE( 4631), SCALE( 36995), SCALE(-625976), SCALE(2354805), + SCALE(6165900), SCALE( 839507), SCALE(-441330), SCALE( 53876), + SCALE( 5139), SCALE( 33937), SCALE(-630850), SCALE(2454343), + SCALE(6135146), SCALE( 764419), SCALE(-426998), SCALE( 53348), + SCALE( 5682), SCALE( 30591), SCALE(-634759), SCALE(2554547), + SCALE(6101107), SCALE( 691203), SCALE(-412531), SCALE( 52711), + SCALE( 6264), SCALE( 26948), SCALE(-637655), SCALE(2655326), + SCALE(6063824), SCALE( 619894), SCALE(-397966), SCALE( 51972), + SCALE( 6886), SCALE( 23001), SCALE(-639488), SCALE(2756591), + SCALE(6023343), SCALE( 550521), SCALE(-383335), SCALE( 51140), + SCALE( 7531), SCALE( 18741), SCALE(-640210), SCALE(2858248), + SCALE(5979711), SCALE( 483113), SCALE(-368671), SCALE( 50224), + SCALE( 8230), SCALE( 14162), SCALE(-639772), SCALE(2960201), + SCALE(5932981), SCALE( 417692), SCALE(-354003), SCALE( 49231), + SCALE( 8959), SCALE( 9257), SCALE(-638125), SCALE(3062355), + SCALE(5883210), SCALE( 354281), SCALE(-339362), SCALE( 48168), + SCALE( 9727), SCALE( 4018), SCALE(-635222), SCALE(3164612), + SCALE(5830457), SCALE( 292897), SCALE(-324777), SCALE( 47044), + SCALE( 10535), SCALE( -1558), SCALE(-631014), SCALE(3266872), + SCALE(5774785), SCALE( 233555), SCALE(-310273), SCALE( 45866), + SCALE( 11381), SCALE( -7480), SCALE(-625455), SCALE(3369035), + SCALE(5716260), SCALE( 176267), SCALE(-295877), SCALE( 44640), + SCALE( 12267), SCALE( -13750), SCALE(-618499), SCALE(3471000), + SCALE(5654952), SCALE( 121042), SCALE(-281613), SCALE( 43373), + SCALE( 13190), SCALE( -20372), SCALE(-610098), SCALE(3572664), + SCALE(5590933), SCALE( 67886), SCALE(-267505), SCALE( 42072), + SCALE( 14152), SCALE( -27352), SCALE(-600209), SCALE(3673924), + SCALE(5524280), SCALE( 16800), SCALE(-253574), SCALE( 40743), + SCALE( 15153), SCALE( -34691), SCALE(-588788), SCALE(3774676), + SCALE(5455069), SCALE( -32214), SCALE(-239840), SCALE( 39391), + SCALE( 16192), SCALE( -42390), SCALE(-575791), SCALE(3874816), + SCALE(5383383), SCALE( -79159), SCALE(-226323), SCALE( 38022), + SCALE( 17267), SCALE( -50453), SCALE(-561178), SCALE(3974239), + SCALE(5309305), SCALE(-124041), SCALE(-213041), SCALE( 36642), + SCALE( 18377), SCALE( -58879), SCALE(-544906), SCALE(4072841), + SCALE(5232922), SCALE(-166869), SCALE(-200010), SCALE( 35256), + SCALE( 19525), SCALE( -67667), SCALE(-526937), SCALE(4170517), + SCALE(5154321), SCALE(-207653), SCALE(-187246), SCALE( 33866), + SCALE( 20704), SCALE( -76817), SCALE(-507233), SCALE(4267162), + SCALE(5073593), SCALE(-246406), SCALE(-174764), SCALE( 32480), + SCALE( 21915), SCALE( -86327), SCALE(-485757), SCALE(4362672), + SCALE(4990831), SCALE(-283146), SCALE(-162575), SCALE( 31101), + SCALE( 23157), SCALE( -96193), SCALE(-462476), SCALE(4456942), + SCALE(4906129), SCALE(-317890), SCALE(-150692), SCALE( 29732), + SCALE( 24426), SCALE(-106412), SCALE(-437356), SCALE(4549871), + SCALE(4819584), SCALE(-350658), SCALE(-139125), SCALE( 28376), + SCALE( 25721), SCALE(-116977), SCALE(-410365), SCALE(4641355), + SCALE(4731293), SCALE(-381475), SCALE(-127884), SCALE( 27038), +}; +#undef SCALE + +DECLARE_ALIGNED(16, const float, ff_dca_fir_64bands)[1024] = { + /* Bank 0 */ + -7.1279389866041690e-8, -7.0950903150874990e-8, + -7.9525034321375090e-8, -8.9326871281374790e-8, + -9.7483190494874640e-8, -1.0586659510721950e-7, + -1.1527363411865760e-7, -1.2523109645615350e-7, + -1.3555636137971380e-7, -1.4640931821191640e-7, + -1.5787424998123710e-7, -1.6994592926571220e-7, + -1.8264184311018150e-7, -1.9600594587757850e-7, + -2.1007899706006800e-7, -2.2489759047553620e-7, + -2.4050245877923400e-7, -2.5693874615777660e-7, + -2.7425370308549580e-7, -2.9249662541757600e-7, + -3.1171981968268900e-7, -3.3197864040473180e-7, + -3.5333134588843600e-7, -3.7583910465412180e-7, + -3.9956628121669190e-7, -4.2458045296159330e-7, + -4.5095249563698380e-7, -4.7875659112606760e-7, + -5.0807031294631050e-7, -5.3897464223335550e-7, + -5.7155423388793000e-7, -6.0589741192019800e-7, + -6.4209580087853050e-7, -6.8024432849991400e-7, + -7.2044165259013450e-7, -7.6279018172077200e-7, + -8.0739610368280600e-7, -8.5436937020293650e-7, + -9.0382333224895500e-7, -9.5587472540498280e-7, + -1.0106437128213760e-6, -1.0682538906146330e-6, + -1.1288323637155430e-6, -1.1925097184646100e-6, + -1.2594193438633260e-6, -1.3296974052300520e-6, + -1.4034829433780260e-6, -1.4809178634979940e-6, + -1.5621465913980060e-6, -1.6473160377545360e-6, + -1.7365751553971340e-6, -1.8300749104526120e-6, + -1.9279680902322050e-6, -2.0304092660990760e-6, + -2.1375541686662320e-6, -2.2495596253776460e-6, + -2.3665828120950560e-6, -2.4887811970856540e-6, + -2.6163120571644820e-6, -2.7493324266391140e-6, + -2.8879984579501380e-6, -3.0324653639203880e-6, + -3.1828867865974640e-6, -3.3394147240855820e-6, + -3.5021985520037540e-6, -3.6713849262294680e-6, + -3.8471166218015830e-6, -4.0295324657699800e-6, + -4.2187670209852250e-6, -4.4149505043312320e-6, + -4.6182073040543900e-6, -4.8286558658894680e-6, + -5.0464076705003400e-6, -5.2715671455405850e-6, + -5.5042307535458100e-6, -5.7444868785028750e-6, + -5.9924142424804800e-6, -6.2480817863072800e-6, + -6.5115476278604000e-6, -6.7828589565804950e-6, + -7.0620507545154100e-6, -7.3491456697144900e-6, + -7.6441525098592000e-6, -7.9470661364365490e-6, + -8.2578666429227760e-6, -8.5765192154768100e-6, + -8.9029718900122000e-6, -9.2371554195468400e-6, + -9.5789825988253100e-6, -9.9283481667264540e-6, + -1.0285127334608450e-5, -1.0649175634328590e-5, + -1.1020327046334650e-5, -1.1398393880881060e-5, + -1.1783166036693560e-5, -1.2174410889256530e-5, + -1.2571871574469220e-5, -1.2975266858030310e-5, + -1.3384289978242060e-5, -1.3798608540965960e-5, + -1.4217863365843780e-5, -1.4641668383496450e-5, + -1.5069609527679710e-5, -1.5501244597782600e-5, + -1.5936101341640500e-5, -1.6373677426466900e-5, + -1.6813441716539560e-5, -1.7254834143068570e-5, + -1.7697261563607500e-5, -1.8140097714618200e-5, + -1.8582686308483550e-5, -1.9024340970099240e-5, + -1.9464340744880170e-5, -1.9901930030141080e-5, + -2.0336321557464510e-5, -2.0766696417773940e-5, + -2.1192201630574280e-5, -2.1611950084231910e-5, + -2.2025021652894630e-5, -2.2430463239517170e-5, + -2.2827288605503470e-5, -2.3214478371918170e-5, + -2.3590980216497750e-5, -2.3955708939763280e-5, + -2.4307547722489910e-5, -2.4645348200903720e-5, + -2.4967930863542620e-5, -2.5274085082324960e-5, + /* Bank 1 */ + 2.5562569399199020e-5, 2.5832111724562040e-5, + 2.6081413415833200e-5, 2.6309149390520640e-5, + 2.6513966535124460e-5, 2.6694483850464800e-5, + 2.6849297239997120e-5, 2.6976979753245170e-5, + 2.7076082153012070e-5, 2.7145133103663890e-5, + 2.7182642746157720e-5, 2.7187102980536760e-5, + 2.7156990105794550e-5, 2.7090765064735940e-5, + 2.6986876191054700e-5, 2.6843759539035120e-5, + 2.6659843389908530e-5, 2.6433548592482960e-5, + 2.6163291550639320e-5, 2.5847484577439320e-5, + 2.5484540698002960e-5, 2.5072874052447260e-5, + 2.4610903957661350e-5, 2.4097055300584120e-5, + 2.3529763128539150e-5, 2.2907473117403740e-5, + 2.2228647280994560e-5, 2.1491764461832140e-5, + 2.0695325418576370e-5, 1.9837853265502040e-5, + /* NOTE: The spec has a duplicated row "160 | 1.7934037335534700e-5" ! */ + 1.8917898053528080e-5, 1.7934037335534700e-5, + 1.6884884022311310e-5, 1.5769086921577900e-5, + 1.4585334740507920e-5, 1.3332356590263080e-5, + 1.2008929083235120e-5, 1.0613876973541650e-5, + 9.1460801506922300e-6, 7.6044740757265500e-6, + 5.9880523825897000e-6, 4.2958677847708840e-6, + 2.5270494199802070e-6, 6.8080315386959900e-7, + -1.2435990827839660e-6, -3.2468187066945930e-6, + -5.3294268968052800e-6, -7.4919036559427900e-6, + -9.7346407524871100e-6, -1.2057941408635810e-5, + -1.4462010500550970e-5, -1.6946953848107710e-5, + -1.9512772389215240e-5, -2.2159361597292710e-5, + -2.4886504491416160e-5, -2.7693871041862060e-5, + -3.0581012081916960e-5, -3.3547358765259040e-5, + -3.6592216716540970e-5, -3.9714765485539260e-5, + -4.2914052387856640e-5, -4.6188991961724560e-5, + -4.9538360176954340e-5, -5.2960794000140600e-5, + -5.6454787620185350e-5, -6.0018691972791050e-5, + -6.3650708053788550e-5, -6.7348886525882700e-5, + -7.1111125753722860e-5, -7.4935171411178040e-5, + -7.8818609806320000e-5, -8.2758867628623800e-5, + -8.6753213062403400e-5, -9.0798755482139240e-5, + -9.4892437636254000e-5, -9.9031035415475500e-5, + -1.0321116057304920e-4, -1.0742926070674010e-4, + -1.1168161614264270e-4, -1.1596433966772030e-4, + -1.2027337376184880e-4, -1.2460449089034750e-4, + -1.2895330270761850e-4, -1.3331525983885840e-4, + -1.3768563787408340e-4, -1.4205953760578120e-4, + -1.4643190426323540e-4, -1.5079752791692290e-4, + -1.5515103314094370e-4, -1.5948687909058970e-4, + -1.6379937154642740e-4, -1.6808266356446820e-4, + -1.7233075773584680e-4, -1.7653750646560020e-4, + -1.8069661584612290e-4, -1.8480164638953740e-4, + -1.8884602526638050e-4, -1.9282304696531290e-4, + -1.9672587556804270e-4, -2.0054754547108610e-4, + -2.0428097498957360e-4, -2.0791896735659270e-4, + -2.1145421910491280e-4, -2.1487932080488700e-4, + -2.1818676491655660e-4, -2.2136894706917190e-4, + -2.2441818635854840e-4, -2.2732672676686290e-4, + -2.3008674810081220e-4, -2.3269036653525150e-4, + -2.3512963563507800e-4, -2.3739654799291240e-4, + -2.3948307023621970e-4, -2.4138114593372380e-4, + -2.4308272452941820e-4, -2.4457975717687980e-4, + -2.4586407616017000e-4, -2.4692741569938220e-4, + -2.4776199025177680e-4, -2.4836046092637280e-4, + -2.4871461830381660e-4, -2.4881540457247040e-4, + -2.4865471770248810e-4, -2.4822543333608940e-4, + -2.4752008219951220e-4, -2.4653081794176570e-4, + -2.4525003217524440e-4, -2.4367037437341020e-4, + /* Bank 2 */ + 2.4178457457919800e-4, 2.3958543985834340e-4, + 2.3706595356421380e-4, 2.3421928008696620e-4, + 2.3103877007019660e-4, 2.2751796132972940e-4, + 2.2365059385031200e-4, 2.1943061159567880e-4, + 2.1485218733324290e-4, 2.0990972538755550e-4, + 2.0459789739171640e-4, 1.9891164424316180e-4, + 1.9284618337957900e-4, 1.8639701070854740e-4, + 1.7955993578371750e-4, 1.7233108395155490e-4, + 1.6470690840351980e-4, 1.5668419239382670e-4, + 1.4826008597798460e-4, 1.3943210818407590e-4, + 1.3019815804235450e-4, 1.2055651618705740e-4, + 1.1050586906665980e-4, 1.0004531116378850e-4, + 8.9174369623037550e-5, 7.7893006105444910e-5, + 6.6201632959158800e-5, 5.4101115008963200e-5, + 4.1592792755171040e-5, 2.8678484003389880e-5, + 1.5360496520469550e-5, 1.6416297019304470e-6, + -1.2474801400564880e-5, -2.6984964757674160e-5, + -4.1884506316022560e-5, -5.7168548169515050e-5, + -7.2831653374563650e-5, -8.8867825335203200e-5, + -1.0527052946041040e-4, -1.2203269185287530e-4, + -1.3914664880465400e-4, -1.5660414556657680e-4, + -1.7439635977956720e-4, -1.9251390142613000e-4, + -2.1094678833176480e-4, -2.2968444457655940e-4, + -2.4871569004884240e-4, -2.6802874127778880e-4, + -2.8761124019708440e-4, -3.0745025297166030e-4, + -3.2753221542219500e-4, -3.4784293347385130e-4, + -3.6836764760397900e-4, -3.8909103335715320e-4, + -4.0999714822829530e-4, -4.3106943097409840e-4, + -4.5229073958127750e-4, -4.7364335350426610e-4, + -4.9510898492628230e-4, -5.1666877822680600e-4, + -5.3830328700499900e-4, -5.5999247625413450e-4, + -5.8171579317559550e-4, -6.0345216810040500e-4, + -6.2517996394886800e-4, -6.4687697763330650e-4, + -6.6852052145861900e-4, -6.9008742526480550e-4, + -7.1155400216196750e-4, -7.3289605035434600e-4, + -7.5408892753413600e-4, -7.7510755325530950e-4, + -7.9592638676398950e-4, -8.1651942936660300e-4, + -8.3686029869896850e-4, -8.5692223230171550e-4, + -8.7667809201044900e-4, -8.9610036547340950e-4, + -9.1516119514986000e-4, -9.3383238324995840e-4, + -9.5208547141354700e-4, -9.6989174214394400e-4, + -9.8722217067251400e-4, -1.0040474297445790e-3, + -1.0203380430448350e-3, -1.0360643900964910e-3, + -1.0511966606168980e-3, -1.0657048556038330e-3, + -1.0795588568782010e-3, -1.0927284332850520e-3, + -1.1051833075734240e-3, -1.1168931605293980e-3, + -1.1278276550234160e-3, -1.1379564405661050e-3, + -1.1472492294891640e-3, -1.1556758000499310e-3, + -1.1632059885511800e-3, -1.1698096960154200e-3, + -1.1754570428998680e-3, -1.1801183720212010e-3, + -1.1837641581852870e-3, -1.1863650153060240e-3, + -1.1878919433902330e-3, -1.1883163316843900e-3, + -1.1876097809178440e-3, -1.1857441072376680e-3, + -1.1826916065321440e-3, -1.1784250628415020e-3, + -1.1729176690707690e-3, -1.1661430294353880e-3, + -1.1580752925519680e-3, -1.1486891568700730e-3, + -1.1379598570807350e-3, -1.1258631690530700e-3, + -1.1123755320313420e-3, -1.0974740543942100e-3, + -1.0811365181610850e-3, -1.0633413819325920e-3, + -1.0440678410743190e-3, -1.0232958338441730e-3, + -1.0010061160103870e-3, -9.7718026613602800e-4, + -9.5180072722007060e-4, -9.2485080945546600e-4, + -8.9631470926558100e-4, -8.6617751390929650e-4, + -8.3442528375666700e-4, -8.0104505655578600e-4, + /* Bank 3 */ + 7.6602485902806300e-4, 7.2935371157849700e-4, + 6.9102172032639350e-4, 6.5102007948960100e-4, + 6.0934103180698750e-4, 5.6597787244591100e-4, + 5.2092507454409450e-4, 4.7417829303612970e-4, + 4.2573432329476060e-4, 3.7559110239316400e-4, + 3.2374777823389440e-4, 2.7020471361387040e-4, + 2.1496350652513040e-4, 1.5802699163104190e-4, + 9.9399252442146460e-5, 3.9085623279149610e-5, + -2.2907279717153710e-5, -8.6571556658577800e-5, + -1.5189801251884410e-4, -2.1887615668780720e-4, + -2.8749420455512610e-4, -3.5773907519488100e-4, + -4.2959633884346400e-4, -5.0305021853266900e-4, + -5.7808367853976800e-4, -6.5467842279709950e-4, + -7.3281477145293300e-4, -8.1247166091487090e-4, + -8.9362676824381250e-4, -9.7625651350435400e-4, + -1.0603359870796300e-3, -1.1458389497708370e-3, + -1.2327379076720450e-3, -1.3210041125919850e-3, + -1.4106074964587530e-3, -1.5015166759080980e-3, + -1.5936991188210680e-3, -1.6871211446584360e-3, + -1.7817477652804130e-3, -1.8775426862784720e-3, + -1.9744684954557180e-3, -2.0724866717198650e-3, + -2.1715575922482770e-3, -2.2716405301701940e-3, + -2.3726935964105480e-3, -2.4746737418493600e-3, + -2.5775368629845300e-3, -2.6812378156433060e-3, + -2.7857306109716460e-3, -2.8909684129992950e-3, + -2.9969032890820140e-3, -3.1034862132032660e-3, + -3.2106673881690480e-3, -3.3183962566563890e-3, + -3.4266214220855450e-3, -3.5352906520539890e-3, + -3.6443510330122110e-3, -3.7537489709635930e-3, + -3.8634300521859240e-3, -3.9733390588103910e-3, + -4.0834204508378470e-3, -4.1936183686073460e-3, + -4.3038762050876900e-3, -4.4141366059086620e-3, + -4.5243418977567100e-3, -4.6344341075783170e-3, + -4.7443549566589130e-3, -4.8540458565358850e-3, + -4.9634478250060780e-3, -5.0725014978718950e-3, + -5.1811474713480250e-3, -5.2893263173827950e-3, + -5.3969785783205650e-3, -5.5040447592375600e-3, + -5.6104651646665850e-3, -5.7161799140263450e-3, + -5.8211294443412250e-3, -5.9252545216101900e-3, + -6.0284959882028950e-3, -6.1307947602360250e-3, + -6.2320920224565700e-3, -6.3323292492425800e-3, + -6.4314484717364400e-3, -6.5293922762311450e-3, + -6.6261035015351700e-3, -6.7215252466922100e-3, + -6.8156013434509950e-3, -6.9082763630156450e-3, + -6.9994952920827200e-3, -7.0892035490577050e-3, + -7.1773476647806300e-3, -7.2638752839566550e-3, + -7.3487345159041400e-3, -7.4318739341000500e-3, + -7.5132432154309250e-3, -7.5927931627681400e-3, + -7.6704755623721500e-3, -7.7462431738117650e-3, + -7.8200496507836000e-3, -7.8918495587816850e-3, + -7.9615988430090790e-3, -8.0292548409052500e-3, + -8.0947760898363200e-3, -8.1581223027535600e-3, + -8.2192540249893810e-3, -8.2781326752680240e-3, + -8.3347217911436610e-3, -8.3889870206274740e-3, + -8.4408946925453690e-3, -8.4904118087845760e-3, + -8.5375073033623590e-3, -8.5821520672029750e-3, + -8.6243182341614300e-3, -8.6639791627160300e-3, + -8.7011097471794110e-3, -8.7356864659172800e-3, + -8.7676881309490440e-3, -8.7970958152554810e-3, + -8.8238905039462850e-3, -8.8480531477483150e-3, + -8.8695681885783190e-3, -8.8884235927356400e-3, + -8.9046080555685600e-3, -8.9181109318560050e-3, + -8.9289234995380550e-3, -8.9370390010903460e-3, + -8.9424522900292110e-3, -8.9451598223763610e-3, + /* Bank 4 */ + 8.9451598223763610e-3, 8.9424522900292110e-3, + 8.9370390010903460e-3, 8.9289234995380550e-3, + 8.9181109318560050e-3, 8.9046080555685600e-3, + 8.8884235927356400e-3, 8.8695681885783190e-3, + 8.8480531477483150e-3, 8.8238905039462850e-3, + 8.7970958152554810e-3, 8.7676881309490440e-3, + 8.7356864659172800e-3, 8.7011097471794110e-3, + 8.6639791627160300e-3, 8.6243182341614300e-3, + 8.5821520672029750e-3, 8.5375073033623590e-3, + 8.4904118087845760e-3, 8.4408946925453690e-3, + 8.3889870206274740e-3, 8.3347217911436610e-3, + 8.2781326752680240e-3, 8.2192540249893810e-3, + 8.1581223027535600e-3, 8.0947760898363200e-3, + 8.0292548409052500e-3, 7.9615988430090790e-3, + 7.8918495587816850e-3, 7.8200496507836000e-3, + 7.7462431738117650e-3, 7.6704755623721500e-3, + 7.5927931627681400e-3, 7.5132432154309250e-3, + 7.4318739341000500e-3, 7.3487345159041400e-3, + 7.2638752839566550e-3, 7.1773476647806300e-3, + 7.0892035490577050e-3, 6.9994952920827200e-3, + 6.9082763630156450e-3, 6.8156013434509950e-3, + 6.7215252466922100e-3, 6.6261035015351700e-3, + 6.5293922762311450e-3, 6.4314484717364400e-3, + 6.3323292492425800e-3, 6.2320920224565700e-3, + 6.1307947602360250e-3, 6.0284959882028950e-3, + 5.9252545216101900e-3, 5.8211294443412250e-3, + 5.7161799140263450e-3, 5.6104651646665850e-3, + 5.5040447592375600e-3, 5.3969785783205650e-3, + 5.2893263173827950e-3, 5.1811474713480250e-3, + 5.0725014978718950e-3, 4.9634478250060780e-3, + 4.8540458565358850e-3, 4.7443549566589130e-3, + 4.6344341075783170e-3, 4.5243418977567100e-3, + 4.4141366059086620e-3, 4.3038762050876900e-3, + 4.1936183686073460e-3, 4.0834204508378470e-3, + 3.9733390588103910e-3, 3.8634300521859240e-3, + 3.7537489709635930e-3, 3.6443510330122110e-3, + 3.5352906520539890e-3, 3.4266214220855450e-3, + 3.3183962566563890e-3, 3.2106673881690480e-3, + 3.1034862132032660e-3, 2.9969032890820140e-3, + 2.8909684129992950e-3, 2.7857306109716460e-3, + 2.6812378156433060e-3, 2.5775368629845300e-3, + 2.4746737418493600e-3, 2.3726935964105480e-3, + 2.2716405301701940e-3, 2.1715575922482770e-3, + 2.0724866717198650e-3, 1.9744684954557180e-3, + 1.8775426862784720e-3, 1.7817477652804130e-3, + 1.6871211446584360e-3, 1.5936991188210680e-3, + 1.5015166759080980e-3, 1.4106074964587530e-3, + 1.3210041125919850e-3, 1.2327379076720450e-3, + 1.1458389497708370e-3, 1.0603359870796300e-3, + 9.7625651350435400e-4, 8.9362676824381250e-4, + 8.1247166091487090e-4, 7.3281477145293300e-4, + 6.5467842279709950e-4, 5.7808367853976800e-4, + 5.0305021853266900e-4, 4.2959633884346400e-4, + 3.5773907519488100e-4, 2.8749420455512610e-4, + 2.1887615668780720e-4, 1.5189801251884410e-4, + 8.6571556658577800e-5, 2.2907279717153710e-5, + -3.9085623279149610e-5, -9.9399252442146460e-5, + -1.5802699163104190e-4, -2.1496350652513040e-4, + -2.7020471361387040e-4, -3.2374777823389440e-4, + -3.7559110239316400e-4, -4.2573432329476060e-4, + -4.7417829303612970e-4, -5.2092507454409450e-4, + -5.6597787244591100e-4, -6.0934103180698750e-4, + -6.5102007948960100e-4, -6.9102172032639350e-4, + -7.2935371157849700e-4, -7.6602485902806300e-4, + /* Bank 5 */ + 8.0104505655578600e-4, 8.3442528375666700e-4, + 8.6617751390929650e-4, 8.9631470926558100e-4, + 9.2485080945546600e-4, 9.5180072722007060e-4, + 9.7718026613602800e-4, 1.0010061160103870e-3, + 1.0232958338441730e-3, 1.0440678410743190e-3, + 1.0633413819325920e-3, 1.0811365181610850e-3, + 1.0974740543942100e-3, 1.1123755320313420e-3, + 1.1258631690530700e-3, 1.1379598570807350e-3, + 1.1486891568700730e-3, 1.1580752925519680e-3, + 1.1661430294353880e-3, 1.1729176690707690e-3, + 1.1784250628415020e-3, 1.1826916065321440e-3, + 1.1857441072376680e-3, 1.1876097809178440e-3, + 1.1883163316843900e-3, 1.1878919433902330e-3, + 1.1863650153060240e-3, 1.1837641581852870e-3, + 1.1801183720212010e-3, 1.1754570428998680e-3, + 1.1698096960154200e-3, 1.1632059885511800e-3, + 1.1556758000499310e-3, 1.1472492294891640e-3, + 1.1379564405661050e-3, 1.1278276550234160e-3, + 1.1168931605293980e-3, 1.1051833075734240e-3, + 1.0927284332850520e-3, 1.0795588568782010e-3, + 1.0657048556038330e-3, 1.0511966606168980e-3, + 1.0360643900964910e-3, 1.0203380430448350e-3, + 1.0040474297445790e-3, 9.8722217067251400e-4, + 9.6989174214394400e-4, 9.5208547141354700e-4, + 9.3383238324995840e-4, 9.1516119514986000e-4, + 8.9610036547340950e-4, 8.7667809201044900e-4, + 8.5692223230171550e-4, 8.3686029869896850e-4, + 8.1651942936660300e-4, 7.9592638676398950e-4, + 7.7510755325530950e-4, 7.5408892753413600e-4, + 7.3289605035434600e-4, 7.1155400216196750e-4, + 6.9008742526480550e-4, 6.6852052145861900e-4, + 6.4687697763330650e-4, 6.2517996394886800e-4, + 6.0345216810040500e-4, 5.8171579317559550e-4, + 5.5999247625413450e-4, 5.3830328700499900e-4, + 5.1666877822680600e-4, 4.9510898492628230e-4, + 4.7364335350426610e-4, 4.5229073958127750e-4, + 4.3106943097409840e-4, 4.0999714822829530e-4, + 3.8909103335715320e-4, 3.6836764760397900e-4, + 3.4784293347385130e-4, 3.2753221542219500e-4, + 3.0745025297166030e-4, 2.8761124019708440e-4, + 2.6802874127778880e-4, 2.4871569004884240e-4, + 2.2968444457655940e-4, 2.1094678833176480e-4, + 1.9251390142613000e-4, 1.7439635977956720e-4, + 1.5660414556657680e-4, 1.3914664880465400e-4, + 1.2203269185287530e-4, 1.0527052946041040e-4, + 8.8867825335203200e-5, 7.2831653374563650e-5, + 5.7168548169515050e-5, 4.1884506316022560e-5, + 2.6984964757674160e-5, 1.2474801400564880e-5, + -1.6416297019304470e-6, -1.5360496520469550e-5, + -2.8678484003389880e-5, -4.1592792755171040e-5, + -5.4101115008963200e-5, -6.6201632959158800e-5, + -7.7893006105444910e-5, -8.9174369623037550e-5, + -1.0004531116378850e-4, -1.1050586906665980e-4, + -1.2055651618705740e-4, -1.3019815804235450e-4, + -1.3943210818407590e-4, -1.4826008597798460e-4, + -1.5668419239382670e-4, -1.6470690840351980e-4, + -1.7233108395155490e-4, -1.7955993578371750e-4, + -1.8639701070854740e-4, -1.9284618337957900e-4, + -1.9891164424316180e-4, -2.0459789739171640e-4, + -2.0990972538755550e-4, -2.1485218733324290e-4, + -2.1943061159567880e-4, -2.2365059385031200e-4, + -2.2751796132972940e-4, -2.3103877007019660e-4, + -2.3421928008696620e-4, -2.3706595356421380e-4, + -2.3958543985834340e-4, -2.4178457457919800e-4, + /* Bank 6 */ + 2.4367037437341020e-4, 2.4525003217524440e-4, + 2.4653081794176570e-4, 2.4752008219951220e-4, + 2.4822543333608940e-4, 2.4865471770248810e-4, + 2.4881540457247040e-4, 2.4871461830381660e-4, + 2.4836046092637280e-4, 2.4776199025177680e-4, + 2.4692741569938220e-4, 2.4586407616017000e-4, + 2.4457975717687980e-4, 2.4308272452941820e-4, + 2.4138114593372380e-4, 2.3948307023621970e-4, + 2.3739654799291240e-4, 2.3512963563507800e-4, + 2.3269036653525150e-4, 2.3008674810081220e-4, + 2.2732672676686290e-4, 2.2441818635854840e-4, + 2.2136894706917190e-4, 2.1818676491655660e-4, + 2.1487932080488700e-4, 2.1145421910491280e-4, + 2.0791896735659270e-4, 2.0428097498957360e-4, + 2.0054754547108610e-4, 1.9672587556804270e-4, + 1.9282304696531290e-4, 1.8884602526638050e-4, + 1.8480164638953740e-4, 1.8069661584612290e-4, + 1.7653750646560020e-4, 1.7233075773584680e-4, + 1.6808266356446820e-4, 1.6379937154642740e-4, + 1.5948687909058970e-4, 1.5515103314094370e-4, + 1.5079752791692290e-4, 1.4643190426323540e-4, + 1.4205953760578120e-4, 1.3768563787408340e-4, + 1.3331525983885840e-4, 1.2895330270761850e-4, + 1.2460449089034750e-4, 1.2027337376184880e-4, + 1.1596433966772030e-4, 1.1168161614264270e-4, + 1.0742926070674010e-4, 1.0321116057304920e-4, + 9.9031035415475500e-5, 9.4892437636254000e-5, + 9.0798755482139240e-5, 8.6753213062403400e-5, + 8.2758867628623800e-5, 7.8818609806320000e-5, + 7.4935171411178040e-5, 7.1111125753722860e-5, + 6.7348886525882700e-5, 6.3650708053788550e-5, + 6.0018691972791050e-5, 5.6454787620185350e-5, + 5.2960794000140600e-5, 4.9538360176954340e-5, + 4.6188991961724560e-5, 4.2914052387856640e-5, + 3.9714765485539260e-5, 3.6592216716540970e-5, + 3.3547358765259040e-5, 3.0581012081916960e-5, + 2.7693871041862060e-5, 2.4886504491416160e-5, + 2.2159361597292710e-5, 1.9512772389215240e-5, + 1.6946953848107710e-5, 1.4462010500550970e-5, + 1.2057941408635810e-5, 9.7346407524871100e-6, + 7.4919036559427900e-6, 5.3294268968052800e-6, + 3.2468187066945930e-6, 1.2435990827839660e-6, + -6.8080315386959900e-7, -2.5270494199802070e-6, + -4.2958677847708840e-6, -5.9880523825897000e-6, + -7.6044740757265500e-6, -9.1460801506922300e-6, + -1.0613876973541650e-5, -1.2008929083235120e-5, + -1.3332356590263080e-5, -1.4585334740507920e-5, + -1.5769086921577900e-5, -1.6884884022311310e-5, + -1.7934037335534700e-5, -1.8917898053528080e-5, + -1.9837853265502040e-5, -2.0695325418576370e-5, + -2.1491764461832140e-5, -2.2228647280994560e-5, + -2.2907473117403740e-5, -2.3529763128539150e-5, + -2.4097055300584120e-5, -2.4610903957661350e-5, + -2.5072874052447260e-5, -2.5484540698002960e-5, + -2.5847484577439320e-5, -2.6163291550639320e-5, + -2.6433548592482960e-5, -2.6659843389908530e-5, + -2.6843759539035120e-5, -2.6986876191054700e-5, + -2.7090765064735940e-5, -2.7156990105794550e-5, + -2.7187102980536760e-5, -2.7182642746157720e-5, + -2.7145133103663890e-5, -2.7076082153012070e-5, + -2.6976979753245170e-5, -2.6849297239997120e-5, + -2.6694483850464800e-5, -2.6513966535124460e-5, + -2.6309149390520640e-5, -2.6081413415833200e-5, + -2.5832111724562040e-5, -2.5562569399199020e-5, + /* Bank 7 */ + 2.5274085082324960e-5, 2.4967930863542620e-5, + 2.4645348200903720e-5, 2.4307547722489910e-5, + 2.3955708939763280e-5, 2.3590980216497750e-5, + 2.3214478371918170e-5, 2.2827288605503470e-5, + 2.2430463239517170e-5, 2.2025021652894630e-5, + 2.1611950084231910e-5, 2.1192201630574280e-5, + 2.0766696417773940e-5, 2.0336321557464510e-5, + 1.9901930030141080e-5, 1.9464340744880170e-5, + 1.9024340970099240e-5, 1.8582686308483550e-5, + 1.8140097714618200e-5, 1.7697261563607500e-5, + 1.7254834143068570e-5, 1.6813441716539560e-5, + 1.6373677426466900e-5, 1.5936101341640500e-5, + 1.5501244597782600e-5, 1.5069609527679710e-5, + 1.4641668383496450e-5, 1.4217863365843780e-5, + 1.3798608540965960e-5, 1.3384289978242060e-5, + 1.2975266858030310e-5, 1.2571871574469220e-5, + 1.2174410889256530e-5, 1.1783166036693560e-5, + 1.1398393880881060e-5, 1.1020327046334650e-5, + 1.0649175634328590e-5, 1.0285127334608450e-5, + 9.9283481667264540e-6, 9.5789825988253100e-6, + 9.2371554195468400e-6, 8.9029718900122000e-6, + 8.5765192154768100e-6, 8.2578666429227760e-6, + 7.9470661364365490e-6, 7.6441525098592000e-6, + 7.3491456697144900e-6, 7.0620507545154100e-6, + 6.7828589565804950e-6, 6.5115476278604000e-6, + 6.2480817863072800e-6, 5.9924142424804800e-6, + 5.7444868785028750e-6, 5.5042307535458100e-6, + 5.2715671455405850e-6, 5.0464076705003400e-6, + 4.8286558658894680e-6, 4.6182073040543900e-6, + 4.4149505043312320e-6, 4.2187670209852250e-6, + 4.0295324657699800e-6, 3.8471166218015830e-6, + 3.6713849262294680e-6, 3.5021985520037540e-6, + 3.3394147240855820e-6, 3.1828867865974640e-6, + 3.0324653639203880e-6, 2.8879984579501380e-6, + 2.7493324266391140e-6, 2.6163120571644820e-6, + 2.4887811970856540e-6, 2.3665828120950560e-6, + 2.2495596253776460e-6, 2.1375541686662320e-6, + 2.0304092660990760e-6, 1.9279680902322050e-6, + 1.8300749104526120e-6, 1.7365751553971340e-6, + 1.6473160377545360e-6, 1.5621465913980060e-6, + 1.4809178634979940e-6, 1.4034829433780260e-6, + 1.3296974052300520e-6, 1.2594193438633260e-6, + 1.1925097184646100e-6, 1.1288323637155430e-6, + 1.0682538906146330e-6, 1.0106437128213760e-6, + 9.5587472540498280e-7, 9.0382333224895500e-7, + 8.5436937020293650e-7, 8.0739610368280600e-7, + 7.6279018172077200e-7, 7.2044165259013450e-7, + 6.8024432849991400e-7, 6.4209580087853050e-7, + 6.0589741192019800e-7, 5.7155423388793000e-7, + 5.3897464223335550e-7, 5.0807031294631050e-7, + 4.7875659112606760e-7, 4.5095249563698380e-7, + 4.2458045296159330e-7, 3.9956628121669190e-7, + 3.7583910465412180e-7, 3.5333134588843600e-7, + 3.3197864040473180e-7, 3.1171981968268900e-7, + 2.9249662541757600e-7, 2.7425370308549580e-7, + 2.5693874615777660e-7, 2.4050245877923400e-7, + 2.2489759047553620e-7, 2.1007899706006800e-7, + 1.9600594587757850e-7, 1.8264184311018150e-7, + 1.6994592926571220e-7, 1.5787424998123710e-7, + 1.4640931821191640e-7, 1.3555636137971380e-7, + 1.2523109645615350e-7, 1.1527363411865760e-7, + 1.0586659510721950e-7, 9.7483190494874640e-8, + 8.9326871281374790e-8, 7.9525034321375090e-8, + 7.0950903150874990e-8, 7.1279389866041690e-8, +}; + /* * D.11 Look-up Table for Downmix Scale Factors * @@ -7534,7 +8128,7 @@ DECLARE_ALIGNED(16, const float, ff_dca_lfe_fir_128)[256] = { * 2) [-29.750 to -15] with resolution of 0.250 dB * 3) [-14.875 to 0] with resolution of 0.125 dB */ -const uint16_t ff_dca_dmixtable[242] = { +const uint16_t ff_dca_dmixtable[FF_DCA_DMIXTABLE_SIZE] = { 0, 33, 35, 37, 39, 41, 44, 46, 49, 52, 55, 58, 62, 65, 69, 73, 78, 82, 87, 92, 98, 104, 110, 116, @@ -7568,6 +8162,35 @@ const uint16_t ff_dca_dmixtable[242] = { 32300, 32768, }; +const uint32_t ff_dca_inv_dmixtable[FF_DCA_INV_DMIXTABLE_SIZE] = { + 6553600, 6186997, 5840902, 5514167, 5205710, 4914507, 4639593, 4380059, + 4135042, 3903731, 3685360, 3479204, 3284581, 3100844, 2927386, 2763630, + 2609035, 2463088, 2325305, 2195230, 2072430, 2013631, 1956500, 1900990, + 1847055, 1794651, 1743733, 1694260, 1646190, 1599484, 1554103, 1510010, + 1467168, 1425542, 1385096, 1345798, 1307615, 1270515, 1234468, 1199444, + 1165413, 1132348, 1100221, 1069005, 1038676, 1009206, 980573, 952752, + 925721, 899456, 873937, 849141, 825049, 801641, 778897, 756798, + 735326, 714463, 694193, 674497, 655360, 636766, 618700, 601146, + 584090, 567518, 551417, 535772, 520571, 505801, 491451, 477507, + 463959, 450796, 438006, 425579, 413504, 401772, 390373, 379297, + 368536, 363270, 358080, 352964, 347920, 342949, 338049, 333219, + 328458, 323765, 319139, 314579, 310084, 305654, 301287, 296982, + 292739, 288556, 284433, 280369, 276363, 272414, 268522, 264685, + 260904, 257176, 253501, 249879, 246309, 242790, 239321, 235901, + 232531, 229208, 225933, 222705, 219523, 216386, 213295, 210247, + 207243, 204282, 201363, 198486, 195650, 192855, 190099, 187383, + 184706, 182066, 179465, 176901, 174373, 171882, 169426, 167005, + 164619, 162267, 159948, 157663, 155410, 153190, 151001, 148844, + 146717, 144621, 142554, 140517, 138510, 136531, 134580, 132657, + 130762, 128893, 127052, 125236, 123447, 121683, 119944, 118231, + 116541, 114876, 113235, 111617, 110022, 108450, 106901, 105373, + 103868, 102383, 100921, 99479, 98057, 96656, 95275, 93914, + 92682, 91249, 89946, 88660, 87394, 86145, 84914, 83701, + 82505, 81326, 80164, 79019, 77890, 76777, 75680, 74598, + 73533, 72482, 71446, 70425, 69419, 68427, 67450, 66486, + 65536, +}; + const float ff_dca_default_coeffs[10][6][2] = { { { 0.707107, 0.707107 }, { 0.000000, 0.000000 }, }, // A [LFE] { { 1.000000, 0.000000 }, { 0.000000, 1.000000 }, { 0.000000, 0.000000 }, }, // A + B (dual mono) [LFE] @@ -7581,6 +8204,11 @@ const float ff_dca_default_coeffs[10][6][2] = { { { 0.501187, 0.501187 }, { 0.707107, 0.000000 }, { 0.000000, 0.707107 }, { 0.501187, 0.000000 }, { 0.000000, 0.501187 }, { 0.000000, 0.000000 }, }, // C + L + R + SL + SR [LFE] }; +const int32_t ff_dca_sampling_freqs[16] = { + 8000, 16000, 32000, 64000, 128000, 22050, 44100, 88200, + 176400, 352800, 12000, 24000, 48000, 96000, 192000, 384000, +}; + /* downmix coeffs * * TABLE 9 -- cgit v1.2.3