版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
嵌入式MP3解碼器中Huffman算法的硬件加速
摘要Huffman解碼是MP3解碼流程中的一個重要部分,其運算量在整個流程中占有相當(dāng)比重,其算法實現(xiàn)的優(yōu)劣直接關(guān)系到MP3的實時解碼。傳統(tǒng)的Huffman解碼多采用軟件實現(xiàn),從而增大了CPU的負(fù)擔(dān)。本文介紹一種Huffman解碼的硬件加速方案,并對Huffman碼表進(jìn)行了改進(jìn),而MP3解碼器已在Altera的FPGA上進(jìn)行驗證,結(jié)果表明在實時解碼的前提下,節(jié)約了CPU資源,并可顯著降低CPU的工作頻率。關(guān)鍵字MP3;Huffman編碼;硬件加速;實時解碼
1引言Huffman編碼是一種無損的、可變長熵編碼,其理論依據(jù)是使各個符號的概率均勻化,即出現(xiàn)概率大的符號編成短碼,出現(xiàn)概率小的編成長碼。在MPEG1_III中,根據(jù)音頻數(shù)據(jù)的統(tǒng)計特性建有34張碼表,為了實現(xiàn)最優(yōu)的編碼,編碼器會根據(jù)當(dāng)前處理的數(shù)據(jù)類型來選擇碼表進(jìn)行編碼。由于是對頻域量化值進(jìn)行編碼,一般大值主要集中在低頻部分,而零值則集中于高頻部分,所以各個頻段可以靈活選擇編碼效率更高的Huffman表。按照MPEG1_III標(biāo)準(zhǔn),從零到Nyquist采樣頻率范圍上的量化值被分成bigvalue,count1,zero三個區(qū)域,對于bigvalue區(qū)和count1區(qū)采用不同的編碼方案。為提高編碼效率,在bigvalue區(qū)每兩個絕對量化值轉(zhuǎn)換為一個Huffman碼字;count1區(qū)4個絕對量化值轉(zhuǎn)換為一個Huffman字;zero區(qū)的量化值全為零,從而不需編碼和傳輸。另外為了進(jìn)一步提高bigvalue區(qū)的編碼效率,將其細(xì)分為region0,region1,region2三個區(qū)域,允許每個區(qū)域選擇不同的碼表。
2Huffman解碼算法分析經(jīng)過分析,Huffman硬件加速實現(xiàn)的難點在于Huffman碼表的設(shè)計,碼表效率的高低直接決定了Huffman硬件解碼的速度。本設(shè)計采用分步查表法進(jìn)行Huffman解碼,其主要思路是在碼表中加入索引來指明下一次查表的碼表位置,這樣查表工作就被分為若干次完成,每次讀入固定的比特數(shù),如命中則輸出解碼值,否則根據(jù)當(dāng)前位置的索引值去碼表中進(jìn)行下一步搜索,圖1為所示步驟。這樣,只需增加少量存儲碼表空間就可以實現(xiàn)快速查找,一次讀入的比特數(shù)越多查找速度就越快。在對查表速度和存儲空間進(jìn)行權(quán)衡后,對于MPEG1_III協(xié)議中的表1,表2及表3采用3bit的搜索步長,其它表采用4bit;同時也改進(jìn)協(xié)議中的Huffman碼表以適應(yīng)分步查表法。Huffman碼表的每一項都由碼字和碼表構(gòu)成,且碼表中的每一項都按照輸入碼字的順序進(jìn)行排列。下面以count1區(qū)的tableA為例加以說明。圖1分步查表法圖2為MPEG1_III協(xié)議中的tableA,圖3為根據(jù)分步查表法特點,將協(xié)議中的tableA調(diào)整后的新碼表。當(dāng)輸入的碼字為0100時,它在碼表中對應(yīng)的位置為地址0100。這樣排列可以很方便地根據(jù)輸入的碼字進(jìn)行地址映射,減少了計算映射的邏輯單元。如果一次查表未能命中,則根據(jù)碼表中給出的跳轉(zhuǎn)地址進(jìn)行二次查表。調(diào)整后的新碼表比原先有所增大,其目的是當(dāng)輸入固定比特長度的碼字都可以在表中直接查找到,而不需額外的計算。在查表得到解碼
結(jié)果的同時也可讀出碼長,這樣也節(jié)省了額外的計算單元。圖2MPEG1_III協(xié)議中的tableA圖3tableA調(diào)整后的新碼表
3Huffman解碼器的硬件實現(xiàn)整個MP3解碼系統(tǒng)采用Altera公司的FPGA實現(xiàn),其中的Huffman解碼器的硬件結(jié)構(gòu)如圖4所示。Huffman解碼模塊與CPU之間的數(shù)據(jù)傳輸通過Wishbone總線進(jìn)行。在解碼的時候CPU取出碼字以及相應(yīng)的碼表號傳給Huffman硬件加速器,在完成解碼后將解碼值以及碼長傳送給CPU。Huffman碼表存儲在ROM中,Huffman解碼的過程也就是在計算ROM的地址。經(jīng)過對碼表的統(tǒng)計,在bigvalue區(qū),總的碼表長度位2147,最大的x,y值都為15。在count1區(qū),總的碼表長度為44,解碼值為0或1。在所有碼表中,最大的碼長為19bits,所以ROM的位寬為13bits,深度為2191。ROM的地址由基址和偏移地址兩部分構(gòu)成?;穼?yīng)的是每個碼表在ROM中的起始地址,被固化在解碼器內(nèi)的基址寄存器中,可以根據(jù)碼流中指明的碼表序號進(jìn)行輸出。偏移地址是根據(jù)實際輸入的碼字計算得到的解碼值在每個碼表中的相對地址,由于Huffman碼表是根據(jù)碼字進(jìn)行排列的,所以偏移地址只要通過輸入的碼字進(jìn)行簡單計算就可以得到。最后,將基址和偏移地址相加就得到了實際解碼值在ROM中所對應(yīng)的地址。本設(shè)計對分步查表法進(jìn)行了優(yōu)化,多次查表要多次讀取ROM而影響了速度,所以將多次查表在計算偏移地址的時候?qū)崿F(xiàn)。偏移地址計算單元可根據(jù)輸入的碼字和碼表進(jìn)行計算,首先讀入4bit的碼字,如果一次命中則輸出偏移地址,否則將下面的若干比特輸入控制碼字寄存器,具體的比特數(shù)要根據(jù)選用的碼表來決定,這樣在查找若干次后就可以得到查表所需要的偏移地址。協(xié)議中規(guī)定的最長的Huffman碼字為19bit,因此最多只需進(jìn)行5次迭代,與軟件實現(xiàn)所消耗的時鐘周期相比,有很大改進(jìn)。圖4Huffman解碼器的硬件結(jié)構(gòu)4結(jié)束語本文所提出的Huffman解碼的硬件加速方案,采用分步查表的方法,不僅可以做到MP3的實時解碼,而且經(jīng)過實際驗證,與Huffman解碼的軟件實現(xiàn)相比,減少了CPU的運算量,CPU的主頻可由原來的18M降至13M左右。本設(shè)計思想為相關(guān)領(lǐng)域的Huffman解碼電路提供了更有效的解決方法。
參考文獻(xiàn)[1]HashemianR.DirectHuffmancodinganddecodingusingthetableofcode-lengthsInformationTechnology:CodingandComputing[ComputerandCommunications],2003WatkinsonJohn,TheMPE
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 服裝廠縫紉工聘用合同
- 外資企業(yè)律師聘用合同樣本
- 農(nóng)田水利箱涵施工合同
- 羊毛制品生產(chǎn)線采購招標(biāo)合同三篇
- 軟件著作權(quán)實施許可合同(2篇)
- 土方分包合同的付款方式
- 集體土地變更國有土地出讓合同范本
- 集體合同簽訂 簡報
- 市政綠化項目合同范例
- 草籽播種合同范例
- [北京]輸變電工程標(biāo)準(zhǔn)工藝應(yīng)用圖冊(圖文并茂)
- 高中學(xué)生英語寫作能力培養(yǎng)研究課題實施方案
- 部編版小學(xué)語文一年級上冊期末復(fù)習(xí)計劃
- 大貓英語分級閱讀 三級1 How to Have a Party 課件
- 常用焊接英語詞匯大全
- 數(shù)控技術(shù)專業(yè)實踐教學(xué)體系
- 福伊特液力變矩器的結(jié)構(gòu)及工作原理的使用
- 制漿造紙廠樹脂沉積的機(jī)理及其控制_圖文
- 涼山中小學(xué)期末考試題-涼山州2017-2018學(xué)年度上期期末試題八年級數(shù)學(xué)答案
- 單片機(jī)倒計時秒表課程設(shè)計報告書
- 六年級分?jǐn)?shù)乘法簡便運算練習(xí)題
評論
0/150
提交評論