《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于SoPC的二維IDCT分布式算法的IP核研究
基于SoPC的二維IDCT分布式算法的IP核研究
來源:電子技術應用2011年第4期
付 揚, 鄧 超
北京工商大學 計算機與信息工程學院, 北京 100048
摘要: 研究基于SoPC的視頻解碼系統中二維IDCT 硬件設計與實現。針對二維IDCT的運算量大、乘法運算多,導致占用FPGA資源多和系統速度慢等問題,其設計采用一維IDCT復用,研究分布式算法實現乘法累加,并使用偏移二進制編碼來減小其查找表大小,其直接占用FPGA邏輯單元內的查找表LUT,沒有寄存器或內置RAM。綜合結果表明,芯片占用資源少、訪問速度快,其最高可綜合工作頻率達到140.39 MHz。此外,基于Avalon總線接口實現二維IDCT IP核的SoPC Builder系統構建,在以Nios II處理器為核心SoPC視頻解碼系統中測試,結果表明,該IP核能提高視頻解碼速度20%以上,很大程度上增強了解碼的實時性。
中圖分類號: TP391
文獻標識碼: 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)是最廣泛使用的圖像和視頻壓縮變換編碼方法之一,它可以去除數據之間的相關性、聚集圖像中的能量,使數據便于壓縮,是目前大多數圖像和視頻編碼標準(如JPEG、H.26x系列、MPEGx系列標準等)的核心。在圖像和視頻解碼系統中,則使用離散余弦逆變換(IDCT)對數據進行還原,而常用8×8的二維離散余弦逆變換(2D IDCT)的運算量較大,直接影響到圖像和視頻解碼系統的實時性。本文在基于SoPC視頻解碼系統設計中,考慮到充分利用SoPC具有的軟硬件協同設計優勢,對二維IDCT優化的硬件設計與實現進行了研究。
    研究采用IDCT的分布式算法(DA),并結合偏移二進制編碼(OBC)的查找表方式,設計基于SoPC解碼系統8×8的二維 IDCT IP核。在以Nios II處理器為核心的SoPC視頻解碼系統中,該 IP核設計滿足Avalon總線標準的接口。經綜合測試表明,該IP核的應用提高了解碼的實時性,具有一定的應用價值。
1 IDCT算法
1.1二維IDCT分解

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

其中Fx,y為DCT變換后的系數,fi,j為原始數據,當x,y=


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

    設計方案利用2D IDCT的行列分解特性,使用一個1D IDCT核、8×8轉置RAM和復用器等模塊來構成2D IDCT硬件系統。2D IDCT的結構框圖如圖2所示。

    圖中,串并轉換緩沖器,每收到8個數據后將其作為一行數據同時輸出,該模塊還是輸入數據的緩存模塊。并串轉換緩沖器功能與此模塊類似。轉置RAM用來完成8×8數據的行列轉換,按行輸入按列輸出。1D IDCT模塊為整個IP的核心,用來計算8點1D IDCT的值。控制器負責整個IP核的工作時序,保證其運行無誤。工作時先按行順序讀入數據,然后由1D IDCT計算每行8點的逆變換值,再按行順序寫入轉置RAM中,然后控制器切換復用器,按列順序從轉置RAM中讀出數據,計算每列IDCT值后按列順序寫入輸出緩存,最后按行順序讀出最終結果。
2.2 一維IDCT硬件設計
    實現2D IDCT硬件的關鍵是如何實現1D IDCT。本設計使用OBC編碼的分布式算法來完成1D IDCT的硬件設計,其核心是4輸入的移位累加模塊的設計,其結構如圖3所示。移位累加模塊可以計算一個乘積和,并行使用8個移位累加模塊及1個后處理模塊,組成完整的1D IDCT模塊。后處理模塊用于式(5)、式(6)的計算,其輸出為最終8點1D IDCT的結果。在設計移位累加器時,要注意初始值Dapp的設置。在視頻解碼系統中,對IDCT輸出數據的準確性較敏感,對數據的舍入要求較高。因此設計時,對輸出數據采用四舍五入,將累加器的初始值加上4 096,右移13次后將輸出結果補償0.5。

    圖4為1D IDCT的硬件結構圖。1D IDCT模塊的輸入數據精度為13 bit,輸出為16 bit。其中移位寄存器輸入13 bit,輸出為8 bit。為防止數據溢出,移位累加器的輸出為14 bit,而非13 bit。經后處理模塊將精度擴展為16 bit后,作為最后結果輸出。

    1D IDCT是整個設計的核心,該模塊功能的正確與否將影響整個系統的性能。
2.3 Avalon總線接口2D IDCT IP核設計
    基于SoPC視頻解碼中,IP核還應包含Avalon總線接口以及控制寄存器組。Avalon總線接口包含對總線進行讀寫操作,它是2D IDCT IP核與Avalon總線數據傳輸的橋梁[5]。通過接口模塊,可以將IP核加入到SoPC系統中。控制寄存器組用于存儲控制狀態字,以及控制IP核的參數數據[5]。
    圖5為基于Avalon總線接口的2D IDCT IP核的總體結構圖。


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

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

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

    本文研究設計的2D IDCT IP核針對FPGA的硬件特點,采用分布式算法實現乘法累加模塊,使用OBC編碼減小了查找表的大小,節省了FPGA資源,優化了硬件設計。
    該IP核的研究基于先進的SoPC技術,應用于視頻解碼系統中,結果表明,該IP核很大程度上提高了視頻解碼速度,增強了視頻解碼系統的實時性。由于SoPC的IP核復用技術,該設計將具有很強的實用性、通用性和擴展性。
參考文獻
[1] RICHARDSON I E G.視頻編解碼器的設計-開發圖像與視頻壓縮系統[M]. 北京:國防科技大學出版社, 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] 梁剛.分布算術的并行計算技術研究[J]. 微電子學與計算機, 2009(5).
[4] 紀秀花.用查表法快速實現二維8×8離散余弦逆變換的研究[J]. 電子學報,2008(4):639-645.
[5] 劉家良,任懷魯,陳新華.AVS視頻解碼中幀內預測模塊的硬件化設計及SOPC驗證 [J].電子技術應2009,
35(10):18-21.
[6] Altera. Avalon Interface Specifications [DB/OL].2009-11.
 

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 特级毛片aaaa级毛片免费 | 精品在线99 | 成人精品一区二区www | 全部免费的毛片在线看美国 | 欧美日韩免费一区二区在线观看 | 国产精品免费aⅴ片在线观看 | 欧美特级一级毛片 | 黄色一级网址 | a毛片免费 | 一级毛片免费不卡在线 | 成人精品一区二区三区中文字幕 | 一级做a爰性色毛片 | 窝窝人体色 | 97国产大学生情侣11在线视频 | m男亚洲一区中文字幕 | 一机毛片 | 亚洲视频男人的天堂 | 国产三级a| 国产精品99r8在线观看 | 手机国产日韩高清免费看片 | 初爱视频教程在线观看高清 | 免费看一级毛片欧美 | 国产成人久久 | 久久精品国产欧美日韩99热 | www成人国产在线观看网站 | 免费特黄一级欧美大片在线看 | 国产四区| 国产午夜精品理论片免费观看 | 男女性关系视频免费观看软件 | 日韩一区二区三区在线 | 国产免费影院 | 国产黄色在线网站 | 4tube高清性欧美 | 精品日本久久久久久久久久 | 三级毛片大全 | 香蕉网影院在线观看免费 | a级国产精品片在线观看 | 国产91啦| 中国a级黄色片 | 国产亚洲欧美日韩在线观看一区二区 | 在线观看亚洲免费 |