《電子技術(shù)應(yīng)用》
基于SoPC的二維IDCT分布式算法的IP核研究
來源:電子技術(shù)應(yīng)用2011年第4期
付 揚(yáng), 鄧 超
北京工商大學(xué) 計(jì)算機(jī)與信息工程學(xué)院, 北京 100048
摘要: 研究基于SoPC的視頻解碼系統(tǒng)中二維IDCT 硬件設(shè)計(jì)與實(shí)現(xiàn)。針對二維IDCT的運(yùn)算量大、乘法運(yùn)算多,導(dǎo)致占用FPGA資源多和系統(tǒng)速度慢等問題,其設(shè)計(jì)采用一維IDCT復(fù)用,研究分布式算法實(shí)現(xiàn)乘法累加,并使用偏移二進(jìn)制編碼來減小其查找表大小,其直接占用FPGA邏輯單元內(nèi)的查找表LUT,沒有寄存器或內(nèi)置RAM。綜合結(jié)果表明,芯片占用資源少、訪問速度快,其最高可綜合工作頻率達(dá)到140.39 MHz。此外,基于Avalon總線接口實(shí)現(xiàn)二維IDCT IP核的SoPC Builder系統(tǒng)構(gòu)建,在以Nios II處理器為核心SoPC視頻解碼系統(tǒng)中測試,結(jié)果表明,該IP核能提高視頻解碼速度20%以上,很大程度上增強(qiáng)了解碼的實(shí)時(shí)性。
中圖分類號: TP391
文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2011)04-0126-04
The IP core research of 2D IDCT distributed algorithm based on SoPC
Fu Yang, Deng Chao
Computer and Information Engineering Institute, Beijing Technology and Business University, Beijing 100048, China
Abstract: Research SoPC system of two-dimensional IDCT hardware design and implementation. Two-dimensional IDCT for computing capacity, multiplication and more, making the occupation of FPGA resources and system slow and so many disadvantages, the design uses a distributed algorithm multiply-accumulate, and use the offset binary coding to reduce the size of the lookup table can be directly FPGA logic cells using the look-up table LUT, there are no registers or internal RAM. The synthesis results show that the chip takes fewer resources, access speed, two-dimensional IDCT integrated work a maximum frequency of 140.39 MHz. Avalon bus interface based on two-dimensional IDCT IP core of the SoPC builder system construction, Testing based on SoPC video decoding system In Nios II processor as the core, the test results show that the IP core rate increased more than 20%, largely enhanced real-time decoding.
Key words : SoPC; IP core; IDCT; DA; OBC


    離散余弦變換(DCT)是最廣泛使用的圖像和視頻壓縮變換編碼方法之一,它可以去除數(shù)據(jù)之間的相關(guān)性、聚集圖像中的能量,使數(shù)據(jù)便于壓縮,是目前大多數(shù)圖像和視頻編碼標(biāo)準(zhǔn)(如JPEG、H.26x系列、MPEGx系列標(biāo)準(zhǔn)等)的核心。在圖像和視頻解碼系統(tǒng)中,則使用離散余弦逆變換(IDCT)對數(shù)據(jù)進(jìn)行還原,而常用8×8的二維離散余弦逆變換(2D IDCT)的運(yùn)算量較大,直接影響到圖像和視頻解碼系統(tǒng)的實(shí)時(shí)性。本文在基于SoPC視頻解碼系統(tǒng)設(shè)計(jì)中,考慮到充分利用SoPC具有的軟硬件協(xié)同設(shè)計(jì)優(yōu)勢,對二維IDCT優(yōu)化的硬件設(shè)計(jì)與實(shí)現(xiàn)進(jìn)行了研究。
    研究采用IDCT的分布式算法(DA),并結(jié)合偏移二進(jìn)制編碼(OBC)的查找表方式,設(shè)計(jì)基于SoPC解碼系統(tǒng)8×8的二維 IDCT IP核。在以Nios II處理器為核心的SoPC視頻解碼系統(tǒng)中,該 IP核設(shè)計(jì)滿足Avalon總線標(biāo)準(zhǔn)的接口。經(jīng)綜合測試表明,該IP核的應(yīng)用提高了解碼的實(shí)時(shí)性,具有一定的應(yīng)用價(jià)值。
1 IDCT算法
1.1二維IDCT分解

    8×8二維IDCT的定義式[1]如下:

其中Fx,y為DCT變換后的系數(shù),fi,j為原始數(shù)據(jù),當(dāng)x,y=


    從式(9)可以看出,如果預(yù)先計(jì)算好部分和Dj并存入查找表,則通過移位累加操作,同樣可以計(jì)算出向量內(nèi)積Px。dij的取值只可能是-1或+1,部分和Dj關(guān)于向量d的正負(fù)值成鏡像對稱。下面以計(jì)算P1為例,來說明這種部分和的對稱關(guān)系:
 
2 二維IDCT硬件設(shè)計(jì)
2.1 二維IDCT硬件結(jié)構(gòu)

    設(shè)計(jì)方案利用2D IDCT的行列分解特性,使用一個(gè)1D IDCT核、8×8轉(zhuǎn)置RAM和復(fù)用器等模塊來構(gòu)成2D IDCT硬件系統(tǒng)。2D IDCT的結(jié)構(gòu)框圖如圖2所示。

    圖中,串并轉(zhuǎn)換緩沖器,每收到8個(gè)數(shù)據(jù)后將其作為一行數(shù)據(jù)同時(shí)輸出,該模塊還是輸入數(shù)據(jù)的緩存模塊。并串轉(zhuǎn)換緩沖器功能與此模塊類似。轉(zhuǎn)置RAM用來完成8×8數(shù)據(jù)的行列轉(zhuǎn)換,按行輸入按列輸出。1D IDCT模塊為整個(gè)IP的核心,用來計(jì)算8點(diǎn)1D IDCT的值??刂破髫?fù)責(zé)整個(gè)IP核的工作時(shí)序,保證其運(yùn)行無誤。工作時(shí)先按行順序讀入數(shù)據(jù),然后由1D IDCT計(jì)算每行8點(diǎn)的逆變換值,再按行順序?qū)懭朕D(zhuǎn)置RAM中,然后控制器切換復(fù)用器,按列順序從轉(zhuǎn)置RAM中讀出數(shù)據(jù),計(jì)算每列IDCT值后按列順序?qū)懭胼敵鼍彺?,最后按行順序讀出最終結(jié)果。
2.2 一維IDCT硬件設(shè)計(jì)
    實(shí)現(xiàn)2D IDCT硬件的關(guān)鍵是如何實(shí)現(xiàn)1D IDCT。本設(shè)計(jì)使用OBC編碼的分布式算法來完成1D IDCT的硬件設(shè)計(jì),其核心是4輸入的移位累加模塊的設(shè)計(jì),其結(jié)構(gòu)如圖3所示。移位累加模塊可以計(jì)算一個(gè)乘積和,并行使用8個(gè)移位累加模塊及1個(gè)后處理模塊,組成完整的1D IDCT模塊。后處理模塊用于式(5)、式(6)的計(jì)算,其輸出為最終8點(diǎn)1D IDCT的結(jié)果。在設(shè)計(jì)移位累加器時(shí),要注意初始值Dapp的設(shè)置。在視頻解碼系統(tǒng)中,對IDCT輸出數(shù)據(jù)的準(zhǔn)確性較敏感,對數(shù)據(jù)的舍入要求較高。因此設(shè)計(jì)時(shí),對輸出數(shù)據(jù)采用四舍五入,將累加器的初始值加上4 096,右移13次后將輸出結(jié)果補(bǔ)償0.5。

    圖4為1D IDCT的硬件結(jié)構(gòu)圖。1D IDCT模塊的輸入數(shù)據(jù)精度為13 bit,輸出為16 bit。其中移位寄存器輸入13 bit,輸出為8 bit。為防止數(shù)據(jù)溢出,移位累加器的輸出為14 bit,而非13 bit。經(jīng)后處理模塊將精度擴(kuò)展為16 bit后,作為最后結(jié)果輸出。

    1D IDCT是整個(gè)設(shè)計(jì)的核心,該模塊功能的正確與否將影響整個(gè)系統(tǒng)的性能。
2.3 Avalon總線接口2D IDCT IP核設(shè)計(jì)
    基于SoPC視頻解碼中,IP核還應(yīng)包含Avalon總線接口以及控制寄存器組。Avalon總線接口包含對總線進(jìn)行讀寫操作,它是2D IDCT IP核與Avalon總線數(shù)據(jù)傳輸?shù)臉蛄篬5]。通過接口模塊,可以將IP核加入到SoPC系統(tǒng)中??刂萍拇嫫鹘M用于存儲控制狀態(tài)字,以及控制IP核的參數(shù)數(shù)據(jù)[5]。
    圖5為基于Avalon總線接口的2D IDCT IP核的總體結(jié)構(gòu)圖。


    Avalon總線讀取模塊根據(jù)寄存器中的操作地址,將要處理的64個(gè)數(shù)據(jù)讀入輸入緩存,經(jīng)2D IDCT模塊處理后由總線寫入模塊將結(jié)果寫回原地址。模塊運(yùn)行時(shí),首先向控制寄存器寫入控制數(shù)據(jù),然后IP核發(fā)起總線數(shù)據(jù)讀取操作,等IP核接收到Avalon總線返回的數(shù)據(jù)后開始對數(shù)據(jù)進(jìn)行處理,最后再將結(jié)果寫回Avalon總線。
3 二維IDCT IP核的綜合與測試
3.1 二維IDCT IP核的綜合

    使用以Cyclone II EP2C35F672C8 FPGA芯片為核心的SoPC開發(fā)平臺,硬件設(shè)計(jì)使用Verilog HDL硬件描述語言編寫,在Quartus II軟件進(jìn)行綜合,綜合報(bào)告如圖6所示。由此可見,整個(gè)2D IDCT占用了4 336個(gè)邏輯單元,核心模塊1D IDCT只占用了632個(gè)邏輯單元。8個(gè)查找表模塊直接使用了FPGA邏輯單元內(nèi)的查找表LUT,沒有寄存器或內(nèi)置RAM。這種查找表模塊的實(shí)現(xiàn)方式簡單靈活,并且芯片訪問速度快。2D IDCT IP核的最高可綜合工作頻率為140.39 MHz。其時(shí)序分析報(bào)告如圖7所示。

3.2 二維IDCT IP核的SoPC測試結(jié)果
    在以Nios II 為處理器的SoPC系統(tǒng)中,進(jìn)行實(shí)際視頻解碼測試。將 IDCT IP核添加到SoPC Builder中,將編碼過的視頻測試文件燒入到Flash中,移植解碼程序到Nios II IDE中,刪除原有的IDCT軟件函數(shù),用C語言編寫2D IDCT IP核的驅(qū)動函數(shù)。經(jīng)系統(tǒng)解碼后,通過帶VGA接口的LCD進(jìn)行播放[6]。
    測試結(jié)果看出系統(tǒng)加入IDCT IP核后,LCD顯示畫面清晰,沒有降低系統(tǒng)的解碼質(zhì)量。
    對于不同的測試視頻,解碼速度是有差異的,為了能更準(zhǔn)確地測試出IP核的性能,本研究選用了多個(gè)視頻文件進(jìn)行比較如表1所示。從表1可以看出,加入2D IDCT IP核以后,  解碼每幀所需時(shí)間平均減少了約6 ms,幀率平均提高了6~8幀,使系統(tǒng)的解碼速率平均提高了20%以上。

    本文研究設(shè)計(jì)的2D IDCT IP核針對FPGA的硬件特點(diǎn),采用分布式算法實(shí)現(xiàn)乘法累加模塊,使用OBC編碼減小了查找表的大小,節(jié)省了FPGA資源,優(yōu)化了硬件設(shè)計(jì)。
    該IP核的研究基于先進(jìn)的SoPC技術(shù),應(yīng)用于視頻解碼系統(tǒng)中,結(jié)果表明,該IP核很大程度上提高了視頻解碼速度,增強(qiáng)了視頻解碼系統(tǒng)的實(shí)時(shí)性。由于SoPC的IP核復(fù)用技術(shù),該設(shè)計(jì)將具有很強(qiáng)的實(shí)用性、通用性和擴(kuò)展性。
參考文獻(xiàn)
[1] RICHARDSON I E G.視頻編解碼器的設(shè)計(jì)-開發(fā)圖像與視頻壓縮系統(tǒng)[M]. 北京:國防科技大學(xué)出版社, 2005.
[2] CHEN W H. A fast computational algorithm for the discrete cosine transforms [J]. IEEE Transactions on Communications, 1977,25(9):1004-1009.
[3] 梁剛.分布算術(shù)的并行計(jì)算技術(shù)研究[J]. 微電子學(xué)與計(jì)算機(jī), 2009(5).
[4] 紀(jì)秀花.用查表法快速實(shí)現(xiàn)二維8×8離散余弦逆變換的研究[J]. 電子學(xué)報(bào),2008(4):639-645.
[5] 劉家良,任懷魯,陳新華.AVS視頻解碼中幀內(nèi)預(yù)測模塊的硬件化設(shè)計(jì)及SOPC驗(yàn)證 [J].電子技術(shù)應(yīng)2009,
35(10):18-21.
[6] Altera. Avalon Interface Specifications [DB/OL].2009-11.
 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。