亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于ARM處理器的AAC音頻解碼算法優(yōu)化和仿真

        2018-07-12 01:07:52林飛成都東軟學(xué)院實驗實訓(xùn)中心
        數(shù)碼世界 2018年6期
        關(guān)鍵詞:解碼音頻指令

        林飛 成都東軟學(xué)院實驗實訓(xùn)中心

        引言:2017年5月互聯(lián)網(wǎng)上一則關(guān)于“MP3格式宣告死亡”的新聞[1]引起熱議,當(dāng)民眾熟悉的MP3格式面臨退出歷史舞臺之時,它的最有力繼任者AAC音頻格式逐步引發(fā)關(guān)注。其實,早在1999年MPEG組織便制定了ISO/IEC14496標準[2](俗稱MPEG4標準)。MPEG4_AAC 作為ISO/IEC 14496 part 3中的一部分于2000年公布初版,最近一個版本更新到2009年。

        對于MPEG的音視頻標準,ISO/IEC都公開提供標準C語言的參考軟件,另外,其他組織也有相應(yīng)的開放源碼項目。而對于嵌入式系統(tǒng)而言,當(dāng)前主要是ARM處理器,和基于x86處理器的PC平臺相比,在性能和各種硬件資源上非常受限。因此這些參考軟件代碼能夠根據(jù)嵌入式ARM處理器做一定優(yōu)化,比如通過利用ARM處理器新增的DSP擴展指令完成常規(guī)的數(shù)字信號處理運算,則可以大大節(jié)省常規(guī)指令的低效率調(diào)用時間。解碼函數(shù)調(diào)用時間的縮短,有利于終端設(shè)備節(jié)省寶貴的電池資源,也有利于APP程序的用戶流暢體驗。

        本文將以Audio Coding組織開發(fā)的FAAD工具包(Open Source項目)為基礎(chǔ)來實現(xiàn)AAC音頻解碼算法優(yōu)化,并在ARM公司官方的仿真工具上提供分析和結(jié)論。

        1 AAC音頻解碼算法概述

        AAC音頻編解碼系統(tǒng)算法借鑒了MP3感知編碼的成功經(jīng)驗,也以心理聲學(xué)模型運用為主,通過添加新的工具集,使得其具備了相當(dāng)?shù)撵`活性。下圖給出了典型的AAC音頻解碼流程圖。

        圖1 AAC的解碼流程圖

        其中,粗箭頭部分代表音頻碼流,細箭頭代表編碼器控制信息。TNS即瞬時噪聲成形,用于控制編碼噪聲的細微時間結(jié)構(gòu)。濾波器組利用M=4的多相正交濾波器(PQF)劃分為四個等寬的子帶,完成對輸入碼流的IMDCT變換,從時域轉(zhuǎn)為頻域。M/S工具用于提高編碼效率,在M/S判決信息控制下,把中/邊(Mid/Side)聲道的一對輸出頻譜轉(zhuǎn)至左/右(L/R)聲道。熵編碼應(yīng)用Huffman編碼及其指定Huffman表。

        從上述AAC的解碼過程不難看出,解碼算法工作量主要集中在濾波器組IMDCT變換數(shù)學(xué)運算部分,本文將闡述這個部分的算法優(yōu)化思路,以及基于ARM處理器仿真工具的軟件實現(xiàn)。

        2 反濾波器組IMDCT運算優(yōu)化

        反濾波器組運算是由IMDCT(Inverse Modified Discrete Cosine Transform改進的離散余弦反變換)完成的,由ARMulator仿真數(shù)據(jù)可以看出它要占整個AAC解碼過程中一半以上的運算量。因此很有必要對IMDCT做重點優(yōu)化。近年來國內(nèi)外對IMDCT的快速算法研究比較多,這些快速算法普遍利用了IMDCT和IDCT的密切關(guān)系,要么直接用快速DCT變換,要么利用FFT來計算,在窗函數(shù)處理上都是相似的,它們的運算復(fù)雜度也相差不大。由于在AAC標準中,窗長均是2的冪,且FFT算法相當(dāng)成熟,比較適合ARM處理器上實現(xiàn),故選擇Duhamel & Mahieux[3]提出的快速MDCT/IMDCT算法作為本文研究對象。

        為敘述方便,這里免去該算法的理論推導(dǎo),直接給出該算法的簡單計算步驟:

        1.預(yù)運算

        預(yù)運算的目的是對頻域數(shù)據(jù)進行一定的處理,使之可以直接利用FFT運算;

        2.IFFT

        直接利用一般的IFFT運算,對于不同的處理器架構(gòu)可以選擇不同的實現(xiàn)方式;

        3.后運算

        后運算將IFFT后的數(shù)據(jù)再進行適當(dāng)縮放,再將實部和虛部分開,得到對應(yīng)的時域數(shù)據(jù)。

        在MP3標準中,對MDCT規(guī)定了兩種窗長,即長窗為36點,短窗為12點。由于這兩種窗長都不是2的冪,故一般的快速MDCT算法都采用基3 FFT來計算。另外,MP3標準對窗函數(shù)只規(guī)定了正弦窗,使得這些算法采用了正弦窗函數(shù)的對稱性來減少計算量。

        在AAC標準中,MDCT還是兩種窗長,不過長窗為2048點,短窗為256點。兩種窗長都是2的冪,但不是4的冪,一般的快速算法采用基2 FFT[4]來計算。采用基2和基4的組合構(gòu)成的分裂基計算可以獲得更好的性能,但由于其特殊的結(jié)構(gòu)不利于ARM匯編語言快速實現(xiàn)。因此可以對長窗仍采用基2 FFT(512點)運算,而對于短窗可以采用效率更高的基4 FFT(64點)運算。

        值得說明的是在AAC標準[2]中也允許對小幀長的支持,這樣長窗為1920點,短窗為240點,這些數(shù)值非2的冪不能套用上面的算法。此外這將會增加程序兼容性的負擔(dān)。

        ARM處理器在ARMv5TE架構(gòu)開始就加入了DSP增強擴展指令,下面給出了ARMv5TE架構(gòu)下利用匯編宏函數(shù)實現(xiàn)復(fù)數(shù)乘法的示例:

        圖2 32×16位單周期乘法指令應(yīng)用示意

        3 仿真結(jié)果和分析

        仿真工具為ARM公司的開發(fā)工具ARMulator[5](指令集仿真器),包含于ADS(ARM Developer Suite)集成開發(fā)環(huán)境中。ARMulator不僅可以仿真ARM處理器的體系結(jié)構(gòu)和指令集,還可以仿真Cache,MMU,存儲器甚至某些外圍設(shè)備,ADS軟件包內(nèi)提供了這些參考模塊,另外開發(fā)者還可以通過規(guī)范編寫用戶模塊。ARM公司當(dāng)前流行的開發(fā)工具RealView包含一個類似的指令集仿真器(Instruction Set Simulator),兩者提供的功能是相同的,因此不再贅述。本文用到的仿真結(jié)果包括統(tǒng)計(Statistics)信息和剖析(profiling)信息,前者用于數(shù)據(jù)流和功耗估計,后者用于算法和編程優(yōu)化。

        ARMulator比較可取的地方是能夠完整執(zhí)行整個解碼軟件程序,從測試文件輸入到生成輸出文件。測試文件為AAC文件,輸出文件為WAV文件,便于音質(zhì)(誤差)的定量分析。

        圖2可以看到負荷最重的IMDCT模塊在優(yōu)化后占用時間由37.35%降到16.93%,而使得其他模塊的占用時間相對上升(例如Huffman相對略有抬升),但絕對解碼時間明顯縮短了。

        圖3 算法優(yōu)化剖析信息對比

        通過上面的分析我們可以對IMDCT模塊優(yōu)化前后在ARMulator中獲取更詳細的Statistics信息。在測試例中分別對長窗(N=2048)和短窗(N=256)的FFT變換做比較。基4 FFT匯編優(yōu)化方法得到的性能提升是顯著的,在指令周期上節(jié)省了50%的運算量,而堆棧大小同時也縮小了,指令數(shù)減少使得間接提高了Cache命中率。Cache行填充次數(shù)的顯著減少使得外部存儲器訪問頻率大大降低,速度功耗比得到了顯著增強。

        4 結(jié)束語

        隨著消費類電子軟硬件技術(shù)的飛速發(fā)展,更高品質(zhì)的音頻會帶給用戶更好的體驗。而當(dāng)前不斷涌現(xiàn)更新的音頻編解碼算法,對于資源受限的嵌入式系統(tǒng)而言,需要更高效的軟件算法和優(yōu)化手段。本文對AAC音頻解碼運算中耗時最多的三個模塊的快速算法實現(xiàn)和優(yōu)化的問題。通過ARM軟件系統(tǒng)的仿真,相比普通解碼軟件實現(xiàn),本優(yōu)化實例節(jié)省了20%左右的解碼時間,對ARM處理器在嵌入式數(shù)字信號處理領(lǐng)用有一定借鑒意義。

        猜你喜歡
        解碼音頻指令
        聽我指令:大催眠術(shù)
        《解碼萬噸站》
        解碼eUCP2.0
        中國外匯(2019年19期)2019-11-26 00:57:32
        必須了解的音頻基礎(chǔ)知識 家庭影院入門攻略:音頻認證與推薦標準篇
        NAD C368解碼/放大器一體機
        Quad(國都)Vena解碼/放大器一體機
        ARINC661顯控指令快速驗證方法
        基于Daubechies(dbN)的飛行器音頻特征提取
        電子制作(2018年19期)2018-11-14 02:37:08
        LED照明產(chǎn)品歐盟ErP指令要求解讀
        電子測試(2018年18期)2018-11-14 02:30:34
        音頻分析儀中低失真音頻信號的發(fā)生方法
        電子制作(2017年9期)2017-04-17 03:00:46
        亚洲第一成人网站| 日本中文字幕有码网站| 精品无码人妻夜人多侵犯18| 亚洲热妇无码av在线播放| 亚洲av无码之日韩精品| 2020国产精品久久久久| 一区二区三区精彩视频在线观看| 大香蕉国产av一区二区三区 | 国产情侣一区二区三区| 中文字幕乱码亚洲精品一区| 中日av乱码一区二区三区乱码| 99精品国产闺蜜国产在线闺蜜| 日本二区三区视频在线观看| 精品亚洲第一区二区三区 | 亚洲第一成人网站| 久久精品国产亚洲av热九九热 | 亚洲精品国产美女久久久| av无码精品一区二区三区四区| 久久久99久久久国产自输拍| 亚洲国产91精品一区二区 | av无码国产在线看免费网站| 东方aⅴ免费观看久久av| 亚洲国产成人精品激情| 亚洲精品综合久久中文字幕 | 日本视频一区二区三区免费观看| 少妇激情一区二区三区| 极品美女一区二区三区免费| 成人性生交大片免费看96| 四虎影院在线观看| 蜜桃一区二区免费视频观看| 成人av毛片免费大全| 人妻在卧室被老板疯狂进入| 一本大道色婷婷在线| 久久中文字幕久久久久91| 亚洲日本高清一区二区| 中国无码人妻丰满熟妇啪啪软件| 日韩无套内射视频6| 一区二区三区国产97| 三级日本理论在线观看| 午夜免费福利小电影| 亚洲女人被黑人巨大进入|