基于PLB總線(xiàn)的H.264整數變換量化軟核的設計

發(fā)布時(shí)間:2009-3-20 16:32    發(fā)布者:李寬
關(guān)鍵詞: PLB , 量化 , 軟核 , 整數 , 總線(xiàn)
H.264以其高復雜度為代價(jià)獲得了優(yōu)異的編碼效率, 其中除部分控制流程的復雜模塊外,H.264中的很多模塊適合用硬件實(shí)現。應用中通常使用CPU+FPGA結構,將耗時(shí)較多的模塊用FPGA實(shí)現,CPU僅負責一些低復雜度的算法和編碼流程參數的設置。

參考文獻[1]、[4]、[5]介紹了整數變換量化的硬件實(shí)現,但沒(méi)有考慮數據在處理過(guò)程中的寬度問(wèn)題,因此會(huì )造成FPGA資源的浪費。本文充分考慮了數據在處理過(guò)程中的動(dòng)態(tài)范圍,使用更少的FPGA資源來(lái)實(shí)現H.264中的整數變換量化
結合實(shí)際應用,文中對該軟核在計算速度和硬件資源方面分別做了優(yōu)化。經(jīng)過(guò)速度優(yōu)化的軟核性能明顯優(yōu)于文獻[1]、[4]、[5]中的設計,經(jīng)過(guò)消耗資源優(yōu)化的軟核也完全能夠勝任高分辨率的實(shí)時(shí)編碼。
1 整數變換

在完成幀內和幀間預測以后,需要對圖像參差數據進(jìn)行整數變換和量化,使圖像數據的能量集中到一小部分系數上,進(jìn)一步降低碼流速率。
1.1 整數變換原理

H.264中對圖像參差進(jìn)行二維DCT變換,表達式為:
  

其中:



X為輸入數據,A為變換矩陣,Y為變換結果。H.264對4×4的圖像塊進(jìn)行操作,則相應的4×4 DCT變換矩陣A為:
  
防止解碼后的數據失配,H.264對4×4 DCT中的A進(jìn)行改造,采用整數DCT技術(shù),取 則(1)式可分解為:
  


與E的乘法被歸納到量化運算中,這樣(CXCT)中只剩下整數的加法、減法和移位運算,因此可以大大降低硬件實(shí)現的復雜度,變換結果最多只需要16位的數據。
1.2 整數變換硬件結構

本設計H.264中的4×4整數變換采用蝶形快速算法,如圖1所示。首先對4×4塊的每一行做一維整數變換,然后再對行變換結果做列的一維整數變換,最終得到4×4的整數變換結果。圖1模塊需要32個(gè)加法器和32個(gè)減法器,這樣在一個(gè)時(shí)鐘周期內就可以完成一個(gè)4×4塊的整數變換。


整數變換通常的做法是全部使用16位加法器和減法器,這樣可以簡(jiǎn)化設計。然而在實(shí)際應用中,輸入的像素點(diǎn)范圍是[0,255],如果第一級變換就使用16位,則數據寬度無(wú)疑會(huì )占用更多的硬件資源。根據分析可知,計算一維行變換以后,數據輸出范圍為[-765,1020],只需使用11位二進(jìn)制數表示。計算一維列變換以后,數據輸出范圍是[-3 060,4080],需要使用13位二進(jìn)制數表示。因此整數變換模塊的數據寬度可以確定為:進(jìn)行一維行變換時(shí)的加法器和減法器使用11位數據寬度,一維列變換的加法器和減法器使用13位數據寬度。

由于數據單向流動(dòng)的特點(diǎn),即沒(méi)有反饋,可以使用流水線(xiàn)提高系統性能。使用流水線(xiàn)時(shí)需要注意前后模塊處理速率的匹配。如本模塊中在行變換與列變換插入緩存構成前后模塊,前后模塊用同一時(shí)鐘,并且整個(gè)模塊的工作頻率以最低工作頻率的模塊來(lái)確定。本設計用1級流水線(xiàn)來(lái)提高工作頻率。如果流水線(xiàn)級數過(guò)多會(huì )消耗大量FPGA資源,仿真實(shí)驗證明,此模塊使用1級流水線(xiàn)時(shí),只增加極少FPGA資源。
2 量化

為了進(jìn)一步降低圖像傳輸碼率,需要對圖像進(jìn)一步壓縮,方法是使用變換編碼及量化技術(shù)。
2.1 量化原理

H.264中采用標量量化器。標量量化器的原理是:
  

其中,y為輸入樣本點(diǎn)編碼,Qstep為量化步長(cháng),FQ為y的量化值。H.264標準支持52個(gè)量化步長(cháng)。量化的簡(jiǎn)化操作如下:
  

其中,Wij為輸入樣本點(diǎn)編碼,MF是標準中定義的值,QP為量化系數,f為偏移量,對幀內預測圖像塊f取2qbits/3,對幀間預測圖像塊f取2qbits/6。

2.2 量化器實(shí)現

量化器硬件結構如圖2所示,其結果是實(shí)現對式(4)和式(5)的組合電路。W是需要量化的數據,MF是根據QP和當前點(diǎn)位置在查找表中得到的值。f和qbits是根據QP查表的輸出。


為了硬件資源消耗最少,需要分析數據在計算過(guò)程中的動(dòng)態(tài)范圍,使用最少的數據寬度來(lái)表示傳輸的數據,從而使用最少的硬件資源來(lái)實(shí)現組合運算邏輯。W是整數變換結果,根據整數變換部分的分析,其取值范圍是[-3 060,4 080],MF最大取13107,乘法器輸出動(dòng)態(tài)范圍是[-40 107 420,53 476560],至少用27位二進(jìn)制數表示。本量化器的乘法器使用Vetex-Ⅱ中的18×18硬件乘法器,因此在輸入加法器之前需要將數據寬度調整為27bit。加法器輸出的27位數據通過(guò)移位模塊調整為16位數據寬度。

綜合考慮工作頻率和資源占用率,設計中使用2級流水線(xiàn)來(lái)提高性能。
2.3 量化器優(yōu)化

本量化器一次只能量化一個(gè)點(diǎn),無(wú)法滿(mǎn)足高質(zhì)量圖像編碼的要求。針對高質(zhì)量圖像編碼對此量化器進(jìn)行速度優(yōu)化,即將n個(gè)量化器并聯(lián),一個(gè)時(shí)鐘周期計算n個(gè)點(diǎn)。n根據實(shí)際需要進(jìn)行選擇?紤]到與變換模塊的速度匹配,選擇16個(gè)量化器并聯(lián)。

3 軟核設計及測試

3.1 PLB總線(xiàn)的軟核結構

PLB(Processor Local Bus)總線(xiàn)是IBM開(kāi)發(fā)的一種高性能片上總線(xiàn),主要應用于PowerPC405處理器系統中,它支持32位、64位和128位數據寬度。本設計使用64位總線(xiàn)寬度,最大速據傳輸速率達800Mb/s。

如圖3,PLB的軟核設計分為總線(xiàn)接口和H.264整數變換量化模塊兩部分。PLB總線(xiàn)接口是與硬件體系結構相關(guān)的部分,它是整數變換量化模塊與PLB總線(xiàn)上其他設備進(jìn)行交互的橋梁。整數變換量化模塊與體系結構無(wú)關(guān),它也可以被移植到ARM體系結構中。


整數變換量化模塊的硬件結構如圖4。寄存器組包含9個(gè)32bit的寄存器,0、1、2、3為輸入的4×4參差數據寄存器;5、6、7、8為輸出數據寄存器;4為控制寄存器,包括go、done、reset、intra、DCT、ZSCAN、QP、datacount,分別對應啟動(dòng)、完成、復位、幀內/幀間、DCT/Hadamard變換、Z掃描輸出、量化級數、數據輸出計數器。第二個(gè)模塊對寄存器組中數據進(jìn)行4×4整數變換,使用1級流水線(xiàn)。第三個(gè)模塊對輸入的整數變換結果按QP進(jìn)行量化,量化模塊中的MF、f、qbits使用FPGA中的查找表保存。數據輸出模塊受ZSCAN位控制,當ZSCAN=1時(shí),輸出數據寄存器中的數據按Z掃描排列;ZSCAN=0時(shí),按矩陣排列。

3.2 軟核的測試

首先使用IBM的CoreConnect工具和Modelsim6.0a來(lái)仿真設計的軟核并使用虛擬平臺進(jìn)行測試,仿真的目的是保證PLB總線(xiàn)接口能被處理器正確訪(fǎng)問(wèn)。仿真測試平臺結構如圖5所示。通過(guò)虛擬處理器將虛擬內存中的數據寫(xiě)入待測軟核,然后讀取待測軟核中的數據并判斷是否正確。


仿真通過(guò)以后,再將軟核集成到系統中,以便驗證軟核在實(shí)際系統中的工作是否符合要求。驗證平臺系統結構如圖6,軟核驗證使用PC機和目標板相結合的方法,目標板使用Xilinx公司XUP Virtex-II PRO開(kāi)發(fā)板,內部含有兩個(gè)PowerPC內核。



驗證流程如圖7。首先通過(guò)USB口下載目標板程序,程序開(kāi)始運行以后通過(guò)RS232從上位機下載待編碼的圖像參差數據,下載的數據保存在目標板上的256MB DDRSDRAM中。數據下載完畢后,程序將待編碼數據依次寫(xiě)入軟核并啟動(dòng)轉換,并將計算完的數據寫(xiě)入DDRSDRAM,待全部數據編碼完畢,PowerPC將處理結果一起發(fā)送給上位機。上位機將結果與本機C代碼執行結果相比較,最終確認軟核是否正確工作。


4 綜合結果分析

本設計中的整數變化量化模塊在Xilinx的XC2VP30 FPGA中進(jìn)行綜合。XC2P30含有13 696個(gè)Slices和136個(gè)18×18乘法器。綜合工具使用Xilinx的ISE9.1。

整數變換模塊綜合結果如表1。

對量化器在速度和硬件資源上分別做了優(yōu)化,表2給出了兩種優(yōu)化的綜合結果。

表3給出本設計整數變換量化模塊與文獻[1]的比較結果。對照發(fā)現速度優(yōu)化軟核編碼性能遠遠高于文獻[1]的設計,資源優(yōu)化的軟核性能也略高于文獻[1]的設計。



軟核綜合結果如表4。目前該軟核中的PLB接口部分資源占用較大,后續工作對這部分進(jìn)一步優(yōu)化。

本文將H.264中的整數變換量化與微處理器系統相結合,針對不同的應用場(chǎng)合實(shí)現了兩個(gè)基于PLB總線(xiàn)的H.264 整數變換量化軟核,并在Xilinx XUP Virtex-IIPRO開(kāi)發(fā)板中做了驗證。實(shí)驗結果表明,兩個(gè)軟核均能在系統中穩定工作,并能滿(mǎn)足不同分辨率的實(shí)時(shí)應用。
本文地址:http://selenalain.com/thread-2986-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页