• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于SOPC的Filterbank快速算法硬件加速器設(shè)計

      2016-04-18 08:38:00裴明敬符茂勝
      宿州學(xué)院學(xué)報 2016年1期
      關(guān)鍵詞:浮點加速器解碼

      裴明敬,符茂勝,楊 洋

      皖西學(xué)院信息工程學(xué)院,安徽六安,237012

      ?

      基于SOPC的Filterbank快速算法硬件加速器設(shè)計

      裴明敬,符茂勝,楊洋

      皖西學(xué)院信息工程學(xué)院,安徽六安,237012

      摘要:針對MP3解碼中Filterbank算法計算量大、耗時長的缺點,從以下兩個方面進(jìn)行了研究:一方面對算法進(jìn)行改進(jìn),使用Filterbank快速算法;另一方面采用硬件實現(xiàn)Filterbank快速算法,其中,內(nèi)部采用并行運(yùn)算和流水線式設(shè)計。實驗測試表明,采用硬件加速器來實現(xiàn)Filterbank快速算法,和傳統(tǒng)的用純軟件設(shè)計相比,不僅提高了系統(tǒng)的運(yùn)算能力,而且大大提高了整個系統(tǒng)的解碼速度,使得實時性效果更好。實驗結(jié)果顯示硬件加速器的速度是軟件實現(xiàn)速度的4.21倍。

      關(guān)鍵詞:Filterbank快速算法;硬件加速器;SOPC

      為了提高解碼速度,可把MP3解碼算法當(dāng)中最復(fù)雜且運(yùn)算量最大的部分用硬件來實現(xiàn),本文考慮使用SOPC嵌入式系統(tǒng)來實現(xiàn)整個解碼過程。SOPC技術(shù)具有軟硬件系統(tǒng)協(xié)同設(shè)計、并行設(shè)計和動態(tài)可重構(gòu)性等優(yōu)點[1]。

      硬件加速是指利用硬件模塊代替軟件算法的實現(xiàn)過程。從軟件角度看,硬件加速的接口如同軟件中函數(shù)的輸入與輸出,整個硬件模塊相當(dāng)于函數(shù)體,不同點是這個函數(shù)固化在硬件中。對于SOPC技術(shù)開發(fā)[2],可以充分利用軟硬件協(xié)同設(shè)計的優(yōu)勢。對于硬件部分,通過硬件描述語言在Quartus Ⅱ軟件上實現(xiàn);對于軟件部分,可以運(yùn)用C語言在NIOSII軟件上實現(xiàn)。軟硬件通過SOPC Builder關(guān)聯(lián),其中,用C語言實現(xiàn)比較耗時的部分,可以通過硬件加速實現(xiàn),然后將硬件加速模塊掛載到Avalon 總線上,完成硬件加速。

      對MP3解碼中Filterbank算法改進(jìn)不是很多,常用的就是對其中使用到的IMDCT算法進(jìn)行改進(jìn),如文獻(xiàn)[3]基于DCT/DST的算法,雖然算法復(fù)雜度有些降低,但是乘法次數(shù)還是比較多。本文采用文獻(xiàn)[4]的方案,算法里的加法和乘法次數(shù)明顯降低,而且適合用硬件實現(xiàn)。

      1Filterbank算法

      在MP3解碼中,F(xiàn)ilterbank算法如下[7]。

      第一步:32個子帶樣本輸入值進(jìn)行IMDCT變換,輸出64個值,如(1)式所示:

      i=0,1,…,63

      (1)

      第二步:把64個值放入到一個容量為1024點FIFO的存儲器中。

      第三步:把存儲器中1024個值抽取一半,組成一個向量。

      第四步:對第三步得到的向量進(jìn)行加窗,得到一個W矢量。

      第五步:對W矢量每隔32個值抽取一個值,并乘以相應(yīng)的系數(shù),得到32個時域輸出,這就是PCM數(shù)據(jù),這個步驟用到的公式如(2)式所示:

      j=0,1,…,31

      (2)

      在文獻(xiàn)[4]中,根據(jù)SIMDCT矩陣的正弦系數(shù)在水平和垂直兩個方向上均有對稱性,v(i)可以由(3)到(6)式得到:

      +(-1)·s(31-k)]17≤i≤48

      (3)

      其他輸出結(jié)果可以從(3)式得出:

      v(i)=-v(32-i),0≤i≤15

      (4)

      v(i)=0,i=16

      (5)

      v(i)=-v(i-16),49≤i≤63

      (6)

      本文使用的算法就是把第一步公式用文獻(xiàn)[4]的方案來代替,其他步驟不變,新的算法不僅降低了計算復(fù)雜度,而且還適合用硬件來實現(xiàn)。

      2硬件加速器設(shè)計

      本文硬件加速器結(jié)構(gòu)如圖1所示,它包括ROM1模塊、ROM2模塊、S_TO_V模塊、V_TO_U模塊、U_TO_PCM模塊、FIFO模塊和接口控制器7個部分。下面詳細(xì)說明各個模塊功能和設(shè)計思路。

      圖1 硬件加速器結(jié)構(gòu)圖

      圖2 S_TO_V模塊結(jié)構(gòu)

      (1)ROM1模塊:內(nèi)部存放的主要是公式(3)中的余弦定點系數(shù)。此ROM模塊中有512個數(shù),由于本系統(tǒng)全部采用32位浮點計算,所以將小數(shù)轉(zhuǎn)換成單精度浮點標(biāo)準(zhǔn)的數(shù)存放在ROM1 模塊每個地址單元中,這樣使用時就可直接進(jìn)行調(diào)用。

      (2)S_TO_V模塊:此模塊結(jié)構(gòu)圖如圖2所示。主要功能是用于計算公式(3)~(6),由于考慮到硬件資源的消耗,設(shè)計時使用最少的硬件資源,所以設(shè)計成流水線結(jié)構(gòu)。每次讀取兩個數(shù)據(jù),16個時鐘周期就能把32個數(shù)據(jù)讀取完畢。這里余弦系數(shù)是從ROM1單元讀取。Acc為累加器,可由Quartus Ⅱ軟件直接定制,sel是控制信號,當(dāng)sel等于1時,說明已經(jīng)累加16次,否則sel等于0。累加的結(jié)果送到ram單元進(jìn)行存儲,也就是v1,最后,根據(jù)式(4)和式(6)同時計算v2和v3。整個S_TO_V模塊設(shè)計采用流水線結(jié)構(gòu),為了能更好地控制數(shù)據(jù),這里所用的浮點乘法器和浮點減法器都采用10級流水線結(jié)構(gòu)。

      (3)V_TO_U模塊:此模塊實質(zhì)就是RAM存儲器,主要完成算法中的第二步和第三步,這樣數(shù)據(jù)可以直接根據(jù)地址存取和調(diào)用。

      (4)ROM2模塊:在算法的第四步和第五步中,有一個共同點就是乘以一個系數(shù),所以為節(jié)約ROM和乘法器的數(shù)量,把第四步中窗系數(shù)和第五步中D系數(shù)進(jìn)行相乘得到,并存儲在ROM2單元中。

      (5)U_TO_PCM模塊:此模塊結(jié)構(gòu)如圖3所示。圖3中,U(0)至U(15)總共16個數(shù),這16個數(shù)在512個數(shù)中每隔32個數(shù)進(jìn)行抽取。Coeff_0至Coeff_15這16個數(shù)可以直接從ROM2單元中調(diào)用。本模塊采用流水線式設(shè)計,每次在RAM單元中讀取16個數(shù),這樣32個時鐘周期就可以讀完。這里采用浮點乘法器和浮點加法器和S_TO_V模塊一樣,都是采用10級流水線結(jié)構(gòu)。

      圖3 U_TO_PCM模塊結(jié)構(gòu)圖

      (6)FIFO模塊:存放U_TO_PCM模塊計算的結(jié)果。當(dāng)有數(shù)據(jù)時,可以由SOPC系統(tǒng)發(fā)出指令調(diào)用。

      (7)接口控制器模塊:主要功能是協(xié)調(diào)各個模塊工作,使整個系統(tǒng)有條不紊地進(jìn)行數(shù)據(jù)讀取和運(yùn)算。

      整個硬件加速器內(nèi)部數(shù)據(jù)采用的都是浮點運(yùn)算,目的是為了保證數(shù)據(jù)的精確性,同時為了程序設(shè)計的方便,所用的浮點加減法器、浮點乘法器、ROM和FIFO等都是系統(tǒng)自帶的IP核。另外,本文硬件加速器的時鐘頻率是100 MHz的標(biāo)準(zhǔn)時鐘。

      3實驗結(jié)果與分析

      實驗中,為了測試加速器的性能,使用Quartus Ⅱ和Nios Ⅱ IDE軟件[8]。在Quartus Ⅱ軟件中,使用Verilog hdl語言來描述硬件加速器,并用SOPC Builer工具搭建一個MP3解碼系統(tǒng)[9],通過一系列向?qū)?,將Filterbank快速算法的硬件加速器模塊作為自定義的IP核加載到定制系統(tǒng)中,這樣就可以和Avalon總線進(jìn)行連接,當(dāng)系統(tǒng)生成后,會生成相應(yīng)的接口函數(shù)供軟件調(diào)用。在Nios Ⅱ IDE軟件中,使用C語言來調(diào)用各種接口函數(shù)來實現(xiàn)整個系統(tǒng)的解碼。

      中圖分類號:TP332.2

      文獻(xiàn)標(biāo)識碼:A

      文章編號:1673-2006(2016)01-0106-03

      作者簡介:裴明敬(1988-),安徽六安人,碩士,助教,主要研究方向:圖像處理、語音處理和SOPC技術(shù)。

      基金項目:安徽省教育廳自然科學(xué)研究重大項目“面向人群場景的視頻軌跡語義模型研究及應(yīng)用”(KJ2015ZD44);安徽省科技廳自然科學(xué)基金面上項目“基于流形學(xué)習(xí)的視頻軌跡分析及語義建模”(1308085MF97);皖西學(xué)院校級自然科學(xué)基金青年項目“基于稀疏表示的圖像處理快速算法研究”(WXZR1505)。

      收稿日期:2015-08-05

      doi:(責(zé)任編輯:汪材印)10.3969/j.issn.1673-2006.2016.01.029

      猜你喜歡
      浮點加速器解碼
      輪滑加速器
      化學(xué)工業(yè)的“加速器”
      《解碼萬噸站》
      LEO星座增強(qiáng)GNSS PPP模糊度浮點解與固定解性能評估
      全民小康路上的“加速器”
      少先隊活動(2021年6期)2021-07-22 08:44:24
      解碼eUCP2.0
      中國外匯(2019年19期)2019-11-26 00:57:32
      基于浮點DSP的鐵路FSK信號檢測
      NAD C368解碼/放大器一體機(jī)
      Quad(國都)Vena解碼/放大器一體機(jī)
      等待“加速器”
      新余市| 樟树市| 漾濞| 江口县| 平果县| 扶余县| 利津县| 开原市| 南溪县| 玛曲县| 交城县| 西宁市| 浮梁县| 崇文区| 平塘县| 兰考县| 东明县| 昭通市| 泸水县| 营口市| 文登市| 乳山市| 东平县| 独山县| 彭阳县| SHOW| 台前县| 弥勒县| 尼玛县| 绥江县| 清流县| 贵溪市| 崇明县| 汪清县| 邵阳县| 营口市| 开江县| 万荣县| 揭阳市| 鄂托克旗| 宜阳县|