999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

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

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

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

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

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

1 AAC音頻解碼算法概述

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

圖1 AAC的解碼流程圖

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

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

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

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

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

1.預(yù)運(yùn)算

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

2.IFFT

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

3.后運(yùn)算

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

在MP3標(biāo)準(zhǔn)中,對(duì)MDCT規(guī)定了兩種窗長(zhǎng),即長(zhǎng)窗為36點(diǎn),短窗為12點(diǎn)。由于這兩種窗長(zhǎng)都不是2的冪,故一般的快速M(fèi)DCT算法都采用基3 FFT來(lái)計(jì)算。另外,MP3標(biāo)準(zhǔn)對(duì)窗函數(shù)只規(guī)定了正弦窗,使得這些算法采用了正弦窗函數(shù)的對(duì)稱性來(lái)減少計(jì)算量。

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

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

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

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

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

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

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

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

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

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

4 結(jié)束語(yǔ)

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

猜你喜歡
指令優(yōu)化
聽(tīng)我指令:大催眠術(shù)
超限高層建筑結(jié)構(gòu)設(shè)計(jì)與優(yōu)化思考
民用建筑防煙排煙設(shè)計(jì)優(yōu)化探討
關(guān)于優(yōu)化消防安全告知承諾的一些思考
一道優(yōu)化題的幾何解法
由“形”啟“數(shù)”優(yōu)化運(yùn)算——以2021年解析幾何高考題為例
ARINC661顯控指令快速驗(yàn)證方法
LED照明產(chǎn)品歐盟ErP指令要求解讀
殺毒軟件中指令虛擬機(jī)的脆弱性分析
基于低碳物流的公路運(yùn)輸優(yōu)化
主站蜘蛛池模板: 亚洲第一成年免费网站| 国产精鲁鲁网在线视频| 国产传媒一区二区三区四区五区| 就去吻亚洲精品国产欧美| 中文字幕伦视频| 91精品aⅴ无码中文字字幕蜜桃| 亚洲欧美综合另类图片小说区| 久久鸭综合久久国产| 国产又粗又猛又爽视频| 2021天堂在线亚洲精品专区| 成人自拍视频在线观看| 免费高清毛片| 亚洲成人一区二区三区| 91在线播放国产| 欧美激情视频一区| 国产精品亚洲综合久久小说| 成人小视频网| 亚洲精品福利视频| 蜜芽国产尤物av尤物在线看| 国产一区二区三区精品久久呦| 日本在线欧美在线| 亚洲无码A视频在线| 国产男人天堂| 亚洲Av综合日韩精品久久久| 老色鬼久久亚洲AV综合| 国产91视频观看| 一区二区三区精品视频在线观看| 亚洲欧美成人在线视频| 先锋资源久久| 三上悠亚在线精品二区| 欧美专区在线观看| 欧美日韩国产在线观看一区二区三区 | 99在线国产| 国产二级毛片| 波多野结衣AV无码久久一区| 无码网站免费观看| 亚洲第一区精品日韩在线播放| 亚洲成肉网| 国产天天色| 免费高清毛片| 少妇被粗大的猛烈进出免费视频| 日韩一区精品视频一区二区| 中文字幕乱码二三区免费| 精品无码视频在线观看| 欧美激情福利| 成人无码一区二区三区视频在线观看| 国产第一色| 亚洲天堂2014| 五月婷婷精品| 无码精品国产dvd在线观看9久| 亚州AV秘 一区二区三区| 超碰aⅴ人人做人人爽欧美| 亚洲制服中文字幕一区二区| 这里只有精品在线播放| 婷婷伊人五月| 54pao国产成人免费视频| 综合色在线| 国产成人午夜福利免费无码r| 91无码人妻精品一区| 国产呦精品一区二区三区下载 | 伊人久久久久久久| 国产欧美亚洲精品第3页在线| 伊人久久久久久久| 亚洲国产欧洲精品路线久久| 尤物成AV人片在线观看| 欧美在线黄| 亚洲天堂精品视频| 亚洲自偷自拍另类小说| 综合天天色| 国产香蕉在线视频| 久久久久久午夜精品| 91美女视频在线| 亚洲AV无码一二区三区在线播放| 欧美日韩中文国产| 露脸一二三区国语对白| 国产剧情无码视频在线观看| 伊伊人成亚洲综合人网7777| 亚洲无线观看| 久久成人国产精品免费软件| 国产性猛交XXXX免费看| 在线观看精品自拍视频| 日韩毛片基地|