基于ARM的MP3解碼算法的優(yōu)化設(shè)計(jì)算法._第1頁
基于ARM的MP3解碼算法的優(yōu)化設(shè)計(jì)算法._第2頁
基于ARM的MP3解碼算法的優(yōu)化設(shè)計(jì)算法._第3頁
基于ARM的MP3解碼算法的優(yōu)化設(shè)計(jì)算法._第4頁
基于ARM的MP3解碼算法的優(yōu)化設(shè)計(jì)算法._第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、第22卷第5期Vol.22.No.52003年10月懷化學(xué)院學(xué)報(bào)JOURNALOFHUAIHUAUNIVERSITYOct.,2003信息技術(shù)基于ARM的MP3解碼算法的優(yōu)化設(shè)計(jì)算法江巍,羅嵐楊軍,胡晨(東南大學(xué)國家專用集成電路系統(tǒng)工程技術(shù)研究中心,江蘇南京 210096)摘 要:提出一種針對ARM平臺進(jìn)行優(yōu)化的定點(diǎn) MP3解碼算法,將MP3解碼過程 分為控制、數(shù)值計(jì)算和矢量運(yùn)算等三種過程分別完成算法和代碼優(yōu)化,并使用ARM長整數(shù)乘加指令實(shí)現(xiàn)高速矢量運(yùn)算.該算法在基于ARM7TDMI的FPGA開 發(fā)板上完成了實(shí)現(xiàn),經(jīng)過驗(yàn)證其性能和音質(zhì)完全可以達(dá)到設(shè)計(jì)要求.文章編號:1671-9743(2003

2、)05-0068-關(guān)鍵詞:ARM; MP3;定點(diǎn)算法中圖分類號:TN402文獻(xiàn)標(biāo)識碼:A041引言MP3是MPEGn IIAudioLayer3的縮寫,.MP3編碼壓縮率很高,CD音質(zhì)的MP31.,其 中約80%的CPU時(shí)間用于進(jìn)行數(shù)值計(jì)算,的解碼速度和音質(zhì).傳統(tǒng)浮點(diǎn)MP3算法無 法滿足目前嵌入式系統(tǒng)的要求,.ARM7TDMI處理器為核心的SoC平臺,支持ARMv4T指令集,存儲器包括 eSRAM、FLASHROM和SDRAM,外部設(shè)備包括 USB控制器丄CD控制器和 AC97控制器.其中eSRAM為32KB片內(nèi)高速存儲器,等待周期短、訪問速度快,主 要用于存儲MP3解碼過程的中間臨時(shí)變量;F

3、LASHROM存儲程序代碼和常 量;SDRAM用于存儲MP3文件.對MP3文件解碼得到的PCM采樣將被送入AC97 控制器中播放輸出.ARM7TDMI核心是一款32位嵌入式RISC處理器,最高運(yùn)行速度約為66MHZ.ARM7TDMI使用ARMv4T指令集,同時(shí)支持16位ARMThumb指令集以 及長整數(shù)乘加指令集.ARM7TDMI能夠處理32位算術(shù)邏輯運(yùn)算,包含高性能乘法 器,性能、功耗和面積都進(jìn)行了最佳優(yōu)化.基于ARM7TDMI處理器和ARMv4T指令集,本文提出了一種新型快速 MP3定點(diǎn) 解碼算法,取代傳統(tǒng)浮點(diǎn)算法,以便應(yīng)用于以ARM為核心的嵌入式系統(tǒng)中.本文的 設(shè)計(jì)思想就是采用定點(diǎn)計(jì)算提

4、高 MP3數(shù)據(jù)在嵌入式系統(tǒng)中的解碼速度;使用查表 運(yùn)算完成快速的三角函數(shù)運(yùn)算、乘方運(yùn)算和指數(shù)運(yùn)算等復(fù)雜計(jì)算過程;利用ARM特有的32位和64位整數(shù)乘加指令構(gòu)造矢量乘法例程,進(jìn)行高速度高精度的矢量運(yùn) 算.經(jīng)過優(yōu)化的MP3解碼系統(tǒng)大大減少了解碼過程中的計(jì)算量,提高了解碼速度,降 低了對CPU要求,從而簡化了系統(tǒng)設(shè)計(jì)難度,節(jié)約了設(shè)計(jì)和制造成本.2設(shè)計(jì)思想本文介紹的定點(diǎn)算法的設(shè)計(jì)思想如圖1所示.MP3解碼算法已經(jīng)有比較成熟的傳統(tǒng) 浮點(diǎn)算法實(shí)現(xiàn),但無法直接用于我們的SoC平臺中,需要對其進(jìn)行重新設(shè)計(jì)和實(shí)現(xiàn). 我們的作法是首先將原浮點(diǎn)算法改進(jìn)為定點(diǎn)算法,用定點(diǎn)數(shù)表示浮點(diǎn)數(shù),用定點(diǎn)算 法代替浮點(diǎn)運(yùn)算.改進(jìn)的

5、定點(diǎn)算法需要進(jìn)行解碼功能驗(yàn)證,以保證算法的正確性和 準(zhǔn)確性.然后對定點(diǎn)算法進(jìn)行優(yōu)化,根據(jù)不同過程解碼的各自特點(diǎn)選擇特定的方式 進(jìn)行優(yōu)化,并用ARM指令實(shí)現(xiàn)其核心算法.優(yōu)化后的混合語言代碼需要進(jìn)行功能驗(yàn) 證和性能驗(yàn)證,以保證解碼的速度和效率.MP3解碼過程如圖2所示,具體算法可以細(xì)分為三個操作步驟,幀同步、邊帶信息 解碼和Huffman解碼以數(shù)據(jù)控制為主,涉及的運(yùn)算主要是位尋址和位操作,計(jì)算量 較小;反量化、立體聲解碼、IMDCT變換和反鋸齒處理主要以復(fù)雜數(shù)值計(jì)算為主, 涉收稿日期:2003-08-28作者簡介:江巍(1976-),男,江蘇淮安人,東南大學(xué)碩士研究生,主要研究微電子學(xué); 羅嵐(1

6、977-),女,湖南瀏陽人,東南大學(xué)博士研究生,主要研究微電子學(xué)與集成電路.1 I4I過ft柚化1»值I借優(yōu)憂|餐*陡憂田¥ *怔的宜點(diǎn)MP3 云社n1rssssEZK鬢培*fl*述6 1予*厲J91 H円咅#現(xiàn)第22卷第5期江巍,等:基于ARM的MP3解碼算法的優(yōu)化設(shè)計(jì)算法? 69?及指數(shù)運(yùn)算、三角函數(shù)運(yùn)算和乘方運(yùn)算,這些運(yùn)算本身的實(shí)現(xiàn)比較 復(fù)雜,運(yùn)算速度依賴于傳統(tǒng)浮點(diǎn)算法的實(shí)現(xiàn);而子帶合成運(yùn)算需要進(jìn)行大量的矢量 計(jì)算,其中又以矢量乘法計(jì)算為主,普通優(yōu)化方式難以發(fā)揮作用.對于這三種不同類型的解碼操作,本文中的定點(diǎn)算法針對ARM體系結(jié)構(gòu)采取了不 同的優(yōu)化方式,以提供最優(yōu)的性

7、能.A. 控制型過程控制型過程中使用最多的操作是位取值操作,.傳統(tǒng)的MP3解碼軟件使用純C實(shí)現(xiàn), 對位操作的優(yōu)化十分有限,址和取值操作Huffman解碼的效率.B. 數(shù)值計(jì)算型過程MP3解碼過程中的數(shù)值計(jì)算主要采用定點(diǎn)算法來代替原浮點(diǎn)算法,使用經(jīng)過處理 的定點(diǎn)數(shù)代替原浮點(diǎn)數(shù)參與運(yùn)算.將浮點(diǎn)數(shù)擴(kuò)大2N倍并取整就是對應(yīng)的定點(diǎn)數(shù)(對 于ARM處理器,該定點(diǎn)數(shù)字長為32位,其中最高位為符號位),其中不同過程中浮點(diǎn) 數(shù)的取值范圍不同,則N的取值也不同.N取較大值,則定點(diǎn)數(shù)的表示精度高,但是表 示的浮點(diǎn)數(shù)范圍較小;N取較小值,則定點(diǎn)數(shù)表示的浮點(diǎn)數(shù)范圍比較大,但精度較低. 因此必須根據(jù)具體的運(yùn)算情況針對不同

8、過程分別取N值.此外,反量化過程需要處理指數(shù)和乘方運(yùn)算,IMDCT變換則需要余弦函數(shù)運(yùn)算,而這 幾種運(yùn)算使用定點(diǎn)算法實(shí)時(shí)計(jì)算比較困難,精度也較低.因此,我們采用查表插值的 方法,預(yù)先計(jì)算指數(shù)函數(shù)表、乘方表和余弦函數(shù)表,并存為常量數(shù)組保存在代碼中. 實(shí)際計(jì)算時(shí)直接查表,如果不在表中的,則利用線性插值的方法求出計(jì)算結(jié)果.C. 矢量運(yùn)算型過程子帶合成運(yùn)算可分解為兩步計(jì)算,第一步是36位或12位離散余弦變換(DCT36或 DCT12),第二步是加窗和PCM碼輸出.子帶合成運(yùn)算中大量使用乘法,對系統(tǒng)的實(shí) 時(shí)性能影響較大.為了提高乘法的運(yùn)算速度,本文的優(yōu)化算法使用了 ARM7TDMI提 供的乘加指令和64

9、位長整數(shù)乘加指令(第3節(jié)將有詳細(xì)介紹),將子帶合成運(yùn)算中的 大量乘法運(yùn)算變換為矢量乘加和點(diǎn)乘兩種運(yùn)算,并使用長整數(shù)乘加指令重寫矢量乘 法函數(shù).另一方面,由于計(jì)算時(shí)可以選擇使用32位或64位計(jì)算精度,因此可以有效 的提高輸出PCM編碼的音質(zhì).這三種優(yōu)化方式均使用ARM匯編指令實(shí)現(xiàn)其核心算法,外圍部分仍使用原代碼.這 樣的設(shè)計(jì)方法提供了較高的代碼密度和運(yùn)行效率.3 ARM乘加指令及矢量乘法ARM7TDMI核心是32位的ARM系列通用微處理家族的一員,其結(jié)構(gòu)基于RISC(精減指令集計(jì)算機(jī),ReducedlnstructionSetComputer類型,使用三段并行流水 線技術(shù).ARM7TDMI的乘法

10、系列指令,尤其是長整數(shù)乘法和乘加指令,可用來進(jìn)行高速度高 精度的乘法n加法綜合運(yùn)算,完全可以取代復(fù)雜的浮點(diǎn)計(jì)算.ARM7TDMI在核心中 使用專用硬件實(shí)現(xiàn)乘法運(yùn)算.按照計(jì)算精度的不同,可分為兩類乘法:(1) 標(biāo)準(zhǔn)乘法-32位運(yùn)算結(jié)果,包括乘和乘加,如表1所示.(2) 長整數(shù)乘法-64位運(yùn)算結(jié)果,分為無符號乘和乘加以及有符號乘和乘加,結(jié)果保 存在兩個寄存器中,分別表示如表2所示.長整數(shù)乘法運(yùn)算可以獲得較高計(jì)算精度,但運(yùn)算速度要比標(biāo)準(zhǔn)乘法慢.因此可以對MP3解碼的性能和音質(zhì)進(jìn)行折衷考慮,? 70?懷化學(xué)院學(xué)報(bào)2003年10月即對于需要高精度的計(jì)算過程可以考慮使用長整數(shù)乘法以改善輸出音質(zhì) ,而對需要

11、 較高速度的計(jì)算過程則使用標(biāo)準(zhǔn)乘法以提高解碼的實(shí)時(shí)性能 ,這樣便可以使性能和 音質(zhì)均達(dá)到最優(yōu)化.表1標(biāo)準(zhǔn)乘法指令MULRd,Rm,RsRd:=RmXRsMLARd,Rm,Rs,R nRd:=RmXRs+R n表2長整數(shù)乘法指令UMULLRdLo,RdHi,Rm,RsRdHi,RdLo:=RmXRsUMLALRdLo,RdHi,Rm,Rs RdHi,RdLo:=RmXRs+RdHi,RdLoSMULLRdLo,RdHi,Rm,RsRdHi,RdLo:RmXRs SMLALRdLo,RdHi,Rm,RsRdHi,RdLo:RmXRs+RdHi,RdLo4定點(diǎn)算法實(shí)現(xiàn)和驗(yàn)證本文所述的MP3定點(diǎn)解碼算

12、法的實(shí)現(xiàn)和驗(yàn)證基于以 ARM7TDM處理器為核心的片上系統(tǒng)(System-0n-Chip)平臺,并利用ARM體系軟件開發(fā)環(huán)境進(jìn)行仿真調(diào)試,并最終在ARM開發(fā)板上進(jìn)行驗(yàn)證.A. 系統(tǒng)選擇使用ARM7TDMI基于兩點(diǎn)考慮,即MP3解碼的速度和精度.實(shí)現(xiàn)實(shí)時(shí)解碼和播放功能要求解碼器和相應(yīng)軟件能夠至少提供30PCM采樣.ARM7TDMI內(nèi)核運(yùn)行在高達(dá)66MHz的時(shí)鐘頻率上,相當(dāng)于約(包含AHB高速總線 和APB夕卜設(shè)總線)提供了高速外設(shè)接口與,極大地提高了MP3解碼的運(yùn)算速度.MP3,CD音質(zhì)的MP3音樂.一般而言,CD音質(zhì)指44.1KHZ采樣頻率、雙聲道以及128KBPS的數(shù)據(jù)量,其中解碼輸出采樣點(diǎn)

13、為16位.ARM7TDMI為32 位RISC處理器,定點(diǎn)計(jì)算可以達(dá)到31位的運(yùn)算精度(除去1位符號位).ARM的長 整數(shù)乘法和乘加運(yùn)算支持64位運(yùn)算結(jié)果,可以達(dá)到63位運(yùn)算精度,完全可以保證CD音質(zhì)MP3音樂的解碼和播放要求.B. 設(shè)計(jì)實(shí)現(xiàn)本文所述的MP3定點(diǎn)解碼算法使用混合語言完成代碼,直接利用高效的ARM指令 提高系統(tǒng)的解碼性能.解碼軟件代碼基于ISO13818-3.2MPEG-2音頻解碼器的參考設(shè)計(jì).我們使用定點(diǎn)數(shù)和定點(diǎn)數(shù)值算法取 代原浮點(diǎn)運(yùn)算,同時(shí)使用ARM匯編指令實(shí)現(xiàn)定點(diǎn)運(yùn)算的幾個核心函數(shù),包括位尋址和取值函數(shù)、查表函數(shù)以及矢量乘法函數(shù) 等.其它非核心部分仍然使用高級語言完成.所有的

14、代碼均分別在ARM模擬開發(fā)環(huán) 境和ARM開發(fā)板上進(jìn)行仿真和調(diào)試并通過.C. 性能和音質(zhì)驗(yàn)證為了驗(yàn)證本文所述的定點(diǎn)算法及相應(yīng)實(shí)現(xiàn)的性能和音質(zhì)特性,我們分別在ARM模 擬器和FPGA上進(jìn)行了測試.表3定點(diǎn)解碼性能評估MP3音樂長度32KBn 約 2 秒 63935681902911606953352414711016183828561026273971.482926 秒 48MHz表4定點(diǎn)解碼過程CPU占用比較MP3解碼過程CPU 占用 41.01%21.22%11.80%10.15%48MHz66MHz指令數(shù)核心周期數(shù)S周期數(shù)N周期數(shù)I周期數(shù)總時(shí)鐘周期數(shù)運(yùn)行時(shí)間估計(jì)()最低時(shí)鐘頻率子帶合成IMD

15、CTDCT36n 3 反量化總計(jì)工作頻率表3是在ARM模擬器(AXDDebugger)上使用定點(diǎn)算法對一段 2秒左右CD音 質(zhì)的MP3音樂片斷進(jìn)行解碼所得性能評估.可見,使用定點(diǎn)算法和指令級優(yōu)化,MP3 解碼器可以工作在最低48MHz的時(shí)鐘頻率左右.表4是MP3解碼過程中最消耗CPU資源的函數(shù)列表.其中子帶合成過程主要包括1次64 :32 >32 X的矢量乘法和32次1 X6 >16 X的矢量乘法.第22卷第5期江巍,等:基于ARM的MP3解碼算法的優(yōu)化設(shè)計(jì)算法? 71?根據(jù)ARM公司的資料,目前針對ARM體系的完全優(yōu)化方案最低 可以工作在約30MHz時(shí)鐘頻率.考慮到本文提交的算法

16、僅對核心計(jì)算過程進(jìn)行了 指令級優(yōu)化,其他部分仍使用C語言實(shí)現(xiàn),因此MP3的解碼效率還可以得到進(jìn)一步 的提高.我們對使用MP3優(yōu)化解碼算法得到的PCM音頻的音質(zhì)也進(jìn)行了檢驗(yàn),音質(zhì)效果令 人滿意,完全可以滿足一般情況的需要.5結(jié)論本文提出了一種基于ARM7TDMI核心并以SoC系統(tǒng)為目標(biāo)平臺的MP3定點(diǎn)解碼 算法,該算法使用定點(diǎn)整數(shù)取代浮點(diǎn)數(shù)進(jìn)行 MP3解碼運(yùn)算并充分利用ARMV4T指 令集構(gòu)造核心運(yùn)算函數(shù)以提高代碼的工作速度和效率.該算法將MP3解碼過程分 為三種不同的類型:控制型過程、數(shù)值運(yùn)算型過程和矢量運(yùn)算型過程 ,并提出了根 據(jù)這三種過程的不同特點(diǎn)分別進(jìn)行設(shè)計(jì)和優(yōu)化的方法 .經(jīng)過優(yōu)化的代碼

17、可以在 ARM7TDMI這種通用32位CPU核心上完成具有CD音 質(zhì)MP3音樂的實(shí)時(shí)解碼和播放.我們在ARM軟件模擬器和FPGA上分別對該算 法的解碼速度和播放音質(zhì)進(jìn)行驗(yàn)證,輸出結(jié)果完全可以達(dá)到設(shè)計(jì)要求,從而肯定了 該算法提出的設(shè)計(jì)方法.參考文獻(xiàn):1 IS0 n IEC3818-3Ge nericCodi ngofMovi ngP icturesa ndAssociatedAudio( Part3:M PEG-Audio),Feb.,1997.2 SoftwareO ptimizatio nofthe MP EG-AudioDecoderUs in ga32-bitMCURISC Proces

18、sor,K.Lee,Y. ParkQ.H.You n,Aug.,2002.3 ARM7TDMI(Rev3)Tech nicalRefere nceMa nual,ARM,2000.4 ARMArchitectualRefere nceMa nual,ARM,2000. FastIMDCTa ndMDCTAIg,M.,Y.H.Hsu,Ja n.,2003.6 AHardwareStreami ngCa pabilities,Staffa nGadd &ThomasLe nart,Nov.,2001.7 ARMLtd.Homepage( n )Op timizedDesig nforARM-Based MP 3DecoderJIANGWe

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論