董文忠,張歆奕
?
基于FPGA的子帶濾波硬件加速器設(shè)計(jì)
董文忠,張歆奕
(五邑大學(xué) 信息工程學(xué)院,廣東 江門 529020)
為了提高M(jìn)P3編碼運(yùn)算速度,利用基于FPGA的硬件加速方式實(shí)現(xiàn)子帶濾波算法. 實(shí)驗(yàn)結(jié)果表明,采用FPGA實(shí)現(xiàn)子帶濾波硬件加速器加速后,其編碼速度是軟件處理速度的4.06倍.
MP3編碼;FPGA;子帶濾波;硬件加速
MP3(Moving Picture Experts Group Audio Layer III)是一種應(yīng)用廣泛的音頻壓縮標(biāo)準(zhǔn). 為了提高M(jìn)P3的編碼速度,保證編碼的實(shí)時(shí)性,本文把MP3編碼中計(jì)算量較大,且易于硬件實(shí)現(xiàn)的子帶濾波算法設(shè)計(jì)成硬件加速器,即用硬件模塊代替軟件算法[1],具體是利用可編程片上系統(tǒng)(System on a Programmable Chip,SOPC)技術(shù)的軟硬件協(xié)同設(shè)計(jì)來實(shí)現(xiàn)硬件加速模塊的掛載[2].
本文首先使用C語言在VC++6.0上實(shí)現(xiàn)子帶濾波算法,其后通過硬件描述語言在QuartusII上實(shí)現(xiàn)硬件加速模塊的設(shè)計(jì),軟硬件通過SOPC Builder橋接,把硬件加速模塊掛載到Avalon總線上,完成現(xiàn)場(chǎng)可編程門陣列(Field Programmable Gate Array,F(xiàn)PGA)硬件加速器設(shè)計(jì),最后比較了軟硬件算法的耗時(shí)情況.
1 子帶濾波算法
子帶濾波器組是MP3編碼算法中的關(guān)鍵部分,其作用是完成輸入樣本從時(shí)域到頻域的映射[3-4]. 子帶濾波器組包括子帶濾波和MDCT變換,本文只討論子帶濾波部分. 輸入的PCM音頻數(shù)據(jù)按幀進(jìn)行處理,每幀個(gè)樣本,再分成兩個(gè)顆粒,每個(gè)顆粒576個(gè)樣本. PCM樣本送入子帶濾波器組后被均勻分成32個(gè)子帶,每個(gè)子帶包含18個(gè)樣本數(shù)據(jù). 子帶濾波算法實(shí)現(xiàn)步驟如下:
步驟1:每次輸入32個(gè)樣本,一共進(jìn)行18次.
上述子帶濾波算法實(shí)現(xiàn)的計(jì)算量比較大,本文提出的子帶濾波硬件加速器就是實(shí)現(xiàn)此部分算法.
2 硬件加速器設(shè)計(jì)
子帶濾波硬件加速器是以自定義IP的形式添加到FPGA中,通過Avalon總線和其他模塊進(jìn)行相互通信,并作為系統(tǒng)的協(xié)處理器,用以實(shí)現(xiàn)復(fù)雜的運(yùn)算,從而提高系統(tǒng)性能. 子帶濾波硬件加速器如圖1所示,其結(jié)構(gòu)包括Avalon Bus Module 1、Avalon Bus Module 2、Multi_ROM1模塊、Multi_ROM2模塊、X_TO_Y計(jì)算單元、Y_TO_S計(jì)算單元、Parallel to Serial模塊、FIFO等8個(gè)部分.
圖1 子帶濾波硬件加速器結(jié)構(gòu)圖
多ROM模塊:硬件加速器中有2個(gè)多ROM模塊,其中Multi_ROM1模塊用于存放MPEG標(biāo)準(zhǔn)窗,這里將中的512個(gè)元素分成8個(gè)ROM存儲(chǔ),每個(gè)ROM存放64個(gè)元素;圖1加速器模塊中Multi_ROM2模塊存儲(chǔ)的是余弦參數(shù),這里的包含2 048個(gè)元素,用32個(gè)ROM存儲(chǔ),每個(gè)ROM包含64個(gè)元素. 由于運(yùn)算中這些參數(shù)多帶有小數(shù),為了保證計(jì)算的精度,這里將參數(shù)全部轉(zhuǎn)換為32位單精度浮點(diǎn)數(shù)存入ROM中.
圖2 X_TO_Y模塊結(jié)構(gòu)圖
圖3 模塊Y_TO_DATA結(jié)構(gòu)圖
圖4 模塊DATA_TO_S結(jié)構(gòu)圖
Parallel to Serial模塊和FIFO模塊:將矢量進(jìn)行并串轉(zhuǎn)換,然后存儲(chǔ)矢量轉(zhuǎn)換后的數(shù)據(jù). 其中Parallel to Serial模塊用于的并串轉(zhuǎn)換,F(xiàn)IFO模塊用于存儲(chǔ)并串轉(zhuǎn)換后的數(shù)據(jù),這里的FIFO模塊擁有32個(gè)存儲(chǔ)單元. 當(dāng)FIFO中數(shù)據(jù)有效時(shí),通過NIOSII指令將FIFO數(shù)據(jù)寫入內(nèi)存.
Avalon接口控制模塊:協(xié)調(diào)IP核、自定義模塊、NIOSII軟核處理器、硬件加速模塊之間的數(shù)據(jù)通信.
整個(gè)硬件加速器采用浮點(diǎn)運(yùn)算,為了保證數(shù)據(jù)的有效和可靠,所有的浮點(diǎn)加法器和浮點(diǎn)乘法器采用流水級(jí)實(shí)現(xiàn). 硬件加速器的時(shí)鐘頻率是100 MHz的標(biāo)準(zhǔn)時(shí)鐘,對(duì)于圖2中的浮點(diǎn)加法器和浮點(diǎn)乘法器采用10級(jí)流水線. 圖3中所示的乘累加器進(jìn)行乘法和累加運(yùn)算,其中乘法器使用的是10級(jí)流水線,加法器使用的是8個(gè)流水線. 實(shí)驗(yàn)中充分利用FPGA設(shè)計(jì)的并行處理思想,將算法分解成多級(jí)處理,每一級(jí)可以多個(gè)模塊并行處理,大大提高了整個(gè)運(yùn)算的速度.
3 實(shí)驗(yàn)結(jié)果與分析
本文實(shí)驗(yàn)分別以軟件形式和FPGA硬件形式實(shí)現(xiàn)子帶濾波算法. 軟件方案是在主頻為2.4 GHz的PC上實(shí)現(xiàn)的,其使用的軟件環(huán)境是VC++6.0,在VC++6.0上按照步驟1至5的算法流程編程,在C代碼中加入時(shí)間函數(shù),最終算出一次子帶濾波的耗時(shí)是;硬件加速器方案的工作頻率則為100 MHz,每次子帶濾波輸入32個(gè)數(shù)據(jù),經(jīng)過若干時(shí)間處理后輸出32個(gè)數(shù)據(jù),通過Signal tap II對(duì)讀寫數(shù)據(jù)進(jìn)行抓取,總共需要6 622個(gè)時(shí)鐘周期,即耗時(shí). 可見PC的主頻雖然很高,但因其是以串行的方式實(shí)現(xiàn)的,所以運(yùn)算速度不理想;而硬件加速器的實(shí)現(xiàn)方式為并行運(yùn)算,因此可以達(dá)到提速的目標(biāo). 由表1的實(shí)驗(yàn)數(shù)據(jù)可以看出,相對(duì)于純軟件設(shè)計(jì)而言,硬件加速模塊能較大提高運(yùn)算速度.
表1 子帶濾波硬件加速器性能分析
4 結(jié)論
文章通過硬件加速方式實(shí)現(xiàn)子帶濾波算法,使用了并行的設(shè)計(jì)方式,提高了加速器處理速度,對(duì)以后的FPGA開發(fā)也具有很大的參考價(jià)值. 子帶濾波硬件加速器在MP3編碼算法中的使用,證明了MP3編碼算法中復(fù)雜運(yùn)算部分用硬件加速實(shí)現(xiàn)的可行性. 為了提高處理速度,并行處理的設(shè)計(jì)使用了較多的乘法器和加法器,處理時(shí)占用系統(tǒng)資源較多,如何在提高處理速度的同時(shí)減少對(duì)系統(tǒng)資源的占用,將是下一步的研究方向.
[1] 郭磊. 矩陣運(yùn)算的硬件加速技術(shù)研究[D]. 長(zhǎng)沙:國(guó)防科技大學(xué),2001.
[2] 李輝. 硬件資源消耗少的IMDCT分解算法[J]. 電子科技大學(xué)學(xué)報(bào),2011, 4(1): 26-29.
[3] 安穎,侯國(guó)強(qiáng). 自適應(yīng)濾波研究與DSP實(shí)現(xiàn)[J]. 現(xiàn)代電子技術(shù),2007(11): 42-43.
[4] 豐帆. MP3數(shù)字音頻編解碼算法的研究及實(shí)現(xiàn)[D]. 西安:西安電子科技大學(xué),2008.
[5] BAKHMUTOVA V, GUSEV VD, TITKOVA T N. ISO/IEC 11172-3 Information technology-coding of moving pictures and associated audio for dititial storage media at up to about 1.5Mbit/s, Part3: Audio[S]. Switzerland: ISO/IEC JTC, 1933.
[6] 毛利萍. MP3音頻編解碼運(yùn)算中IMDCT算法研究及其FPGA實(shí)現(xiàn)[D]. 上海:華東師范大學(xué),2007.
[責(zé)任編輯:韋 韜]
Design of Subband Filterbank Hardware Accelerators Based on FPGA
DONGWen-zhong, ZHANG Xin-yi
(School of Information Engineering, Wuyi University, Jiangmen 529020, China)
In order to improve the computing speed of MP3’s encoding, this paper implements the subband filterbank algorithm by adopting hardware accelerators based on FPGA. Experimental results prove that the processing speed when hardware accelerators based on FPGA are adopted is 4.06 times faster than that by software implementation.
MP3’s encoding; field programmable gate array; subband filterbank; hardware accelerators
1006-7302(2015)03-0075-04
TN912.3
A
2014-11-14
董文忠(1989—),男,湖北孝感人,在讀碩士生,研究方向?yàn)镕PGA開發(fā);張歆奕,副教授,博士,碩士生導(dǎo)師,通信作者,研究方向?yàn)檎Z音信號(hào)處理.