張 玢
(渭南師范學院數(shù)學與信息科學學院,陜西渭南714000)
H.264是新一代的視頻壓縮標準,通過該標準,在同等圖像質(zhì)量下的壓縮效率比以前的標準(MPEG2)提高了2倍左右,因此,H.264被普遍認為是最有影響力的行業(yè)標準.
H.264視頻壓縮標準中引入了當前視頻編碼的許多新技術(shù),包括幀內(nèi)預測、幀間預測、多種宏塊大小模式、去塊效應濾波、統(tǒng)一熵編碼、4×4整數(shù)變換等,與現(xiàn)有的視頻編碼標準相比,這些新技術(shù)使得H.264在相同條件下可以得到更好的圖像質(zhì)量和更高的壓縮比,但由于嵌入式開發(fā)環(huán)境具有一定的局限性,這些復雜的壓縮算法將為H.264壓縮標準的嵌入式應用帶來巨大障礙.因此驗證H.264編碼芯片能否正確編碼,以及芯片是否具有高效率的編碼性能,將是一個重要的研究課題.
在芯片設(shè)計周期中,對芯片進行軟硬件驗證所花費的時間,約占整個設(shè)計周期的70% ~80%,驗證已成為大規(guī)模集成電路設(shè)計的主要瓶頸.一方面,視頻編碼芯片編碼算法實現(xiàn)復雜,測試時需要對大量不同規(guī)格的視頻源進行驗證,純軟件的虛擬仿真速度非常慢,而且其運行環(huán)境與實際工作環(huán)境相差較遠,并不能真正達到實際的驗證效果.[1]另一方面,數(shù)百萬門級以上的芯片,每次投片費用以及一次性投片成功的風險巨大,因此投片前必須進行充分有效的驗證以降低風險.隨著FPGA工藝及技術(shù)的發(fā)展,其密度、速度和容量都大大增加,但成本和功耗都在不斷降低,基于FPGA的原型驗證可以比軟件虛擬仿真速度高出4~6個數(shù)量級,而且還可以提高流片成功的概率,并為軟件開發(fā)提供硬件平臺,加速軟件的開發(fā)速度.FPGA所具有的這些良好性能,非常適合用于具有復雜算法的H.264編碼芯片的驗證工作.
本文針對 H.264視頻編碼芯片的仿真和驗證要求,采用 Xilinx公司的兩片 FPGA,分別為XC5VFX200T和XC5VLX330完成驗證平臺的設(shè)計.
在芯片的設(shè)計階段,根據(jù)驗證需求所搭建的硬件驗證平臺可以作為仿真驗證平臺,要求能夠獨立完成整個視頻編碼過程,驗證平臺應該具有可重用的特點.一方面可以通過驗證平臺將視頻編碼系統(tǒng)的硬件模塊載入,以驗證硬件模塊的功能;另一方面可以基于已搭建好的硬件平臺,載入視頻編碼系統(tǒng)的軟件部分,包括底層驅(qū)動軟件、頂層應用軟件、測試軟件和操作系統(tǒng)等,已達到在同一平臺下實現(xiàn)軟硬件協(xié)同工作的目的,以最接近實際的工作環(huán)境驗證整個編碼系統(tǒng)功能的正確性,快速準確地驗證視頻編碼的全過程.
FPGA原型驗證是SoC設(shè)計中的一個重要環(huán)節(jié),其驗證環(huán)境最接近于芯片的實際運行環(huán)境,能夠最大限度、最高效率地測試出芯片的功能.[2]一方面作為硬件驗證工具和驗證手段,可以將在虛擬原型驗證階段所設(shè)計的RTL(Register Transfer Level,寄存器傳輸級)級代碼綜合后下載到FPGA芯片中進行調(diào)試;另一方面可以在FPGA硬件平臺還沒有搭建完成之前,同時在主機端并行研發(fā)測試過程中所需要的軟件代碼,并可在驗證板上對軟件程序進行初步調(diào)試,如運行初始化代碼、底層驅(qū)動程序、應用程序、移植并啟動操作系統(tǒng)等,設(shè)計的FPGA原型驗證平臺原理圖如圖1所示.
圖1 FPGA原型驗證平臺原理圖
圖2 H.264編碼芯片F(xiàn)PGA原型驗證平臺
FPGA原型驗證平臺的工作原理:將在虛擬原型驗證階段調(diào)試正確的系統(tǒng)邏輯,綜合后下載到FPGA芯片中進行測試驗證.硬件驗證板上的外部設(shè)備對應虛擬原型驗證平臺的周邊邏輯單元,核心模塊是兩塊用于下載綜合邏輯的FPGA芯片.[3]驗證平臺的工作流程:事先將測試程序的邏輯映像燒寫入FLASH存儲單元,F(xiàn)PGA驗證板上電后PowerPC處理器將從FLASH中取指執(zhí)行程序,基于FPGA驗證平臺的工作原理和工作流程,就達到了與芯片實際工作環(huán)境相同的效果,能夠方便準確地驗證芯片的編碼過程.
基于PowerPC440處理器的FPGA原型驗證平臺,主要包含軟件和硬件兩部分,軟硬件功能的劃分對系統(tǒng)性能起著至關(guān)重要的作用.該平臺是將H.264編碼核心單元和其他周邊IP系統(tǒng)集成的邏輯,使用特定工具將綜合后的邏輯下載到FPGA芯片中,編碼芯片的輸入/輸出通過FPGA開發(fā)板上的其他外部設(shè)備來完成,如IDE電子盤、視頻輸入和視頻輸出,通過這些外部設(shè)備能夠更好地完善視頻編碼芯片的功能.通過Xilinx編程電纜將ELF格式(Executive Linked File,即一種為linux系統(tǒng)所采用的通用文件格式)可執(zhí)行程序加載到片內(nèi)DPRAM存儲單元中,對驗證程序進行在線調(diào)試,或?qū)y試程序的映像文件燒寫入FPGA驗證板上的FLASH存儲單元,F(xiàn)PGA驗證板上電后PowerPC處理器將從FLASH中取指執(zhí)行程序.在線調(diào)試能夠達到快速驗證的目的,但仍受編程電纜的影響,與實際工作環(huán)境有差異,因此我們首先對程序進行在線調(diào)試,測試通過后再將其映像文件燒寫入存儲單元中.H.264編碼芯片F(xiàn)PGA原型驗證平臺如圖2所示.
1.2.1 軟件組成
根據(jù)H.264視頻編碼芯片的功能需求,該平臺的驗證軟件由三部分構(gòu)成:運行于硬件驗證板的軟件、運行于主機板的軟件和運行于PC主機端的軟件.運行于主機板的軟件采用VxWorks 5.5開發(fā),運行于PC端的軟件開發(fā)環(huán)境為VC 6.0.每個測試項所對應的軟件代碼主要包括三部分:初始化代碼(起到初始化應用環(huán)境,引導后續(xù)程序的作用)、驗證測試代碼(充分全面地驗證系統(tǒng)的各項功能)、主程序(驗證項的核心部分).其中運行于主體程序之前的初始化代碼非常關(guān)鍵,起到資源配置、環(huán)境準備的作用,一旦初始化發(fā)生異常,后續(xù)測試工作將沒有任何可參考性.[4]本系統(tǒng)開發(fā)的所有軟件具有可重用性的特點,如FPGA原型驗證階段涉及的所有軟件,在虛擬原型驗證階段已經(jīng)開發(fā)完成并得到充分驗證,在該階段只需做少量調(diào)整即可使用,不僅節(jié)省開發(fā)時間,而且提高驗證效率,使得系統(tǒng)得到更加充分的驗證.
1.2.2 硬件組成
H.264編碼芯片的FPGA驗證板上,提供了XC5VFX200T和XC5VLX330兩片用于下載芯片系統(tǒng)邏輯的FPGA,其中XC5VFX200T和XC5VLX330T管腳兼容.基于PowerPC440的FPGA原型驗證平臺主要由以下幾部分組成:H.264編碼芯片系統(tǒng)集成后的邏輯、自制的H.264編碼硬件驗證板、帶PCI接口的MPC8245主機板、PC機和Xilinx編程電纜,其示意圖如圖3所示.其他外部設(shè)備主要包括電子盤、FLASH存儲器、SSRAM存儲器、DDR2存儲器、GPIO、串口、以太網(wǎng)、以太網(wǎng)外接物理器件等.FPGA驗證板上的外部設(shè)備均對應于虛擬原型驗證平臺的周邊邏輯,雖然在虛擬驗證階段已經(jīng)對周邊邏輯與編碼核心的協(xié)調(diào)工作能力進行了驗證,但邏輯代碼與硬件工作環(huán)境仍有一定差距,所以基于FPGA驗證板還需要進行大量而全面的驗證工作.
FPGA具有高性能、靈活性、不過時、低成本等特點,而理想的編碼器結(jié)構(gòu)應具有高性能、靈活性、方便更新、低開發(fā)成本等特點,并且隨著應用的成熟和產(chǎn)量的提高,需要能夠提供低成本移植的途徑,并能夠同時支持多種標準的編碼壓縮方法.[5]因此,F(xiàn)PGA的特性非常適合視頻和圖像處理的體系結(jié)構(gòu),F(xiàn)PGA虛擬原型驗證平臺方案設(shè)計如圖4所示.
圖4 FPGA平臺設(shè)計方案
只有進行了編碼器虛擬原型的充分驗證后,才可以進行FPGA平臺的驗證.首先,虛擬原型平臺能夠充分并且方便驗證編碼芯片周邊邏輯的正確性,以及周邊模塊與編碼核心模塊之間協(xié)同工作是否有誤,所以在虛擬原型驗證的基礎(chǔ)上進行FPGA驗證,能夠更加高效地驗證系統(tǒng)性能;其次,在于準確驗證編碼芯片能否正確編碼,虛擬原型平臺驗證階段,會用標準軟件模型產(chǎn)生的視頻編碼信息和驗證平臺生成的數(shù)據(jù)信息進行比對,也會產(chǎn)生波形用以進行錯誤分析,但基于FPGA平臺的驗證依據(jù)不直觀,不利于開發(fā)人員分析系統(tǒng)錯誤,其依據(jù)只是編出的碼流能夠用標準解碼程序正確解碼,即說明編碼碼流符合H.264標準,從而驗證了H.264編碼器功能的正確性,所以如果在該階段發(fā)現(xiàn)編碼出錯,就需回退到虛擬原型驗證階段查錯,修改后重新綜合邏輯并進行調(diào)試,依次不斷疊加驗證.
為了充分測試視頻編碼系統(tǒng)的性能以及編碼功能,并依據(jù)驗證方案中設(shè)計的驗證原則,實際中采用主觀和客觀質(zhì)量評定相結(jié)合的方法,將標準編碼器和自研的H.264編碼器編碼結(jié)果進行對比,并通過兩種編碼模式(CBR/VBR,Constant Bit Rate即恒定比特率,Variable Bit Rate即非固定的比特率)進行測試,于此同時,測試項選用了多種格式的視頻源作為數(shù)據(jù)輸入,盡可能做到測試全面.H.264編碼芯片對碼率控制算法進行了優(yōu)化,與標準編碼器相比能夠更好地控制實際碼率,使碼率控制的精度在10%之內(nèi).通過實驗發(fā)現(xiàn),H.264編碼器和標準編碼器的編碼性能在大多數(shù)情況下相近,實際證明了本系統(tǒng)具有良好的性能,并且能夠正確高效編碼.
在硬件系統(tǒng)設(shè)計過程中,F(xiàn)PGA原型驗證能夠最直接和全面地驗證設(shè)計的正確性和完備性.[6]本文提出了視頻編碼芯片的驗證框架,并設(shè)計實現(xiàn)了基于FPGA的視頻編碼驗證平臺.該硬件驗證平臺包括碼流輸出系統(tǒng)、以太網(wǎng)傳輸系統(tǒng)、視頻編碼系統(tǒng)、視頻輸入系統(tǒng)和IDE記錄系統(tǒng)五部分,具有操作靈活、驗證效率高、可重用性強等優(yōu)點.基于該驗證平臺已實現(xiàn)了多個硬件模塊和H.264視頻編碼芯片的驗證.
[1]張玢.H.264編解碼器軟硬件協(xié)同設(shè)計與驗證技術(shù)研究[D].西安:西安石油大學碩士學位論文,2011.
[2]劉娟.光纖通道的核心技術(shù)研究與實現(xiàn)[D].西安:西安石油大學碩士學位論文,2010.
[3]劉志剛.基于FPGA的H.264編碼器的硬件的實現(xiàn)[D].西安:西安電子科技大學碩士學位論文,2009.
[4]魏先政,李鳳志,秦盼,等.基于FPGA的AVS視頻編碼芯片驗證平臺設(shè)計[J].電子技術(shù)應用,2012,(1):38-40.
[5]閆效鶯.uC/OS-II對SOC驗證支持的研究[J].自動化技術(shù)與應用,2010,29(7):23-25.
[6]熊明霞,雷宏,馬小兵.FPGA片上PowerPC系統(tǒng)設(shè)計[J].計算機測量與控制,2007,15(9):1223-1225.