張 玢
(渭南師范學院數學與信息科學學院,陜西渭南714000)
H.264是新一代的視頻壓縮標準,通過該標準,在同等圖像質量下的壓縮效率比以前的標準(MPEG2)提高了2倍左右,因此,H.264被普遍認為是最有影響力的行業標準.
H.264視頻壓縮標準中引入了當前視頻編碼的許多新技術,包括幀內預測、幀間預測、多種宏塊大小模式、去塊效應濾波、統一熵編碼、4×4整數變換等,與現有的視頻編碼標準相比,這些新技術使得H.264在相同條件下可以得到更好的圖像質量和更高的壓縮比,但由于嵌入式開發環境具有一定的局限性,這些復雜的壓縮算法將為H.264壓縮標準的嵌入式應用帶來巨大障礙.因此驗證H.264編碼芯片能否正確編碼,以及芯片是否具有高效率的編碼性能,將是一個重要的研究課題.
在芯片設計周期中,對芯片進行軟硬件驗證所花費的時間,約占整個設計周期的70% ~80%,驗證已成為大規模集成電路設計的主要瓶頸.一方面,視頻編碼芯片編碼算法實現復雜,測試時需要對大量不同規格的視頻源進行驗證,純軟件的虛擬仿真速度非常慢,而且其運行環境與實際工作環境相差較遠,并不能真正達到實際的驗證效果.[1]另一方面,數百萬門級以上的芯片,每次投片費用以及一次性投片成功的風險巨大,因此投片前必須進行充分有效的驗證以降低風險.隨著FPGA工藝及技術的發展,其密度、速度和容量都大大增加,但成本和功耗都在不斷降低,基于FPGA的原型驗證可以比軟件虛擬仿真速度高出4~6個數量級,而且還可以提高流片成功的概率,并為軟件開發提供硬件平臺,加速軟件的開發速度.FPGA所具有的這些良好性能,非常適合用于具有復雜算法的H.264編碼芯片的驗證工作.
本文針對 H.264視頻編碼芯片的仿真和驗證要求,采用 Xilinx公司的兩片 FPGA,分別為XC5VFX200T和XC5VLX330完成驗證平臺的設計.
在芯片的設計階段,根據驗證需求所搭建的硬件驗證平臺可以作為仿真驗證平臺,要求能夠獨立完成整個視頻編碼過程,驗證平臺應該具有可重用的特點.一方面可以通過驗證平臺將視頻編碼系統的硬件模塊載入,以驗證硬件模塊的功能;另一方面可以基于已搭建好的硬件平臺,載入視頻編碼系統的軟件部分,包括底層驅動軟件、頂層應用軟件、測試軟件和操作系統等,已達到在同一平臺下實現軟硬件協同工作的目的,以最接近實際的工作環境驗證整個編碼系統功能的正確性,快速準確地驗證視頻編碼的全過程.
FPGA原型驗證是SoC設計中的一個重要環節,其驗證環境最接近于芯片的實際運行環境,能夠最大限度、最高效率地測試出芯片的功能.[2]一方面作為硬件驗證工具和驗證手段,可以將在虛擬原型驗證階段所設計的RTL(Register Transfer Level,寄存器傳輸級)級代碼綜合后下載到FPGA芯片中進行調試;另一方面可以在FPGA硬件平臺還沒有搭建完成之前,同時在主機端并行研發測試過程中所需要的軟件代碼,并可在驗證板上對軟件程序進行初步調試,如運行初始化代碼、底層驅動程序、應用程序、移植并啟動操作系統等,設計的FPGA原型驗證平臺原理圖如圖1所示.

圖1 FPGA原型驗證平臺原理圖

圖2 H.264編碼芯片FPGA原型驗證平臺
FPGA原型驗證平臺的工作原理:將在虛擬原型驗證階段調試正確的系統邏輯,綜合后下載到FPGA芯片中進行測試驗證.硬件驗證板上的外部設備對應虛擬原型驗證平臺的周邊邏輯單元,核心模塊是兩塊用于下載綜合邏輯的FPGA芯片.[3]驗證平臺的工作流程:事先將測試程序的邏輯映像燒寫入FLASH存儲單元,FPGA驗證板上電后PowerPC處理器將從FLASH中取指執行程序,基于FPGA驗證平臺的工作原理和工作流程,就達到了與芯片實際工作環境相同的效果,能夠方便準確地驗證芯片的編碼過程.
基于PowerPC440處理器的FPGA原型驗證平臺,主要包含軟件和硬件兩部分,軟硬件功能的劃分對系統性能起著至關重要的作用.該平臺是將H.264編碼核心單元和其他周邊IP系統集成的邏輯,使用特定工具將綜合后的邏輯下載到FPGA芯片中,編碼芯片的輸入/輸出通過FPGA開發板上的其他外部設備來完成,如IDE電子盤、視頻輸入和視頻輸出,通過這些外部設備能夠更好地完善視頻編碼芯片的功能.通過Xilinx編程電纜將ELF格式(Executive Linked File,即一種為linux系統所采用的通用文件格式)可執行程序加載到片內DPRAM存儲單元中,對驗證程序進行在線調試,或將測試程序的映像文件燒寫入FPGA驗證板上的FLASH存儲單元,FPGA驗證板上電后PowerPC處理器將從FLASH中取指執行程序.在線調試能夠達到快速驗證的目的,但仍受編程電纜的影響,與實際工作環境有差異,因此我們首先對程序進行在線調試,測試通過后再將其映像文件燒寫入存儲單元中.H.264編碼芯片FPGA原型驗證平臺如圖2所示.
1.2.1 軟件組成
根據H.264視頻編碼芯片的功能需求,該平臺的驗證軟件由三部分構成:運行于硬件驗證板的軟件、運行于主機板的軟件和運行于PC主機端的軟件.運行于主機板的軟件采用VxWorks 5.5開發,運行于PC端的軟件開發環境為VC 6.0.每個測試項所對應的軟件代碼主要包括三部分:初始化代碼(起到初始化應用環境,引導后續程序的作用)、驗證測試代碼(充分全面地驗證系統的各項功能)、主程序(驗證項的核心部分).其中運行于主體程序之前的初始化代碼非常關鍵,起到資源配置、環境準備的作用,一旦初始化發生異常,后續測試工作將沒有任何可參考性.[4]本系統開發的所有軟件具有可重用性的特點,如FPGA原型驗證階段涉及的所有軟件,在虛擬原型驗證階段已經開發完成并得到充分驗證,在該階段只需做少量調整即可使用,不僅節省開發時間,而且提高驗證效率,使得系統得到更加充分的驗證.
1.2.2 硬件組成
H.264編碼芯片的FPGA驗證板上,提供了XC5VFX200T和XC5VLX330兩片用于下載芯片系統邏輯的FPGA,其中XC5VFX200T和XC5VLX330T管腳兼容.基于PowerPC440的FPGA原型驗證平臺主要由以下幾部分組成:H.264編碼芯片系統集成后的邏輯、自制的H.264編碼硬件驗證板、帶PCI接口的MPC8245主機板、PC機和Xilinx編程電纜,其示意圖如圖3所示.其他外部設備主要包括電子盤、FLASH存儲器、SSRAM存儲器、DDR2存儲器、GPIO、串口、以太網、以太網外接物理器件等.FPGA驗證板上的外部設備均對應于虛擬原型驗證平臺的周邊邏輯,雖然在虛擬驗證階段已經對周邊邏輯與編碼核心的協調工作能力進行了驗證,但邏輯代碼與硬件工作環境仍有一定差距,所以基于FPGA驗證板還需要進行大量而全面的驗證工作.

FPGA具有高性能、靈活性、不過時、低成本等特點,而理想的編碼器結構應具有高性能、靈活性、方便更新、低開發成本等特點,并且隨著應用的成熟和產量的提高,需要能夠提供低成本移植的途徑,并能夠同時支持多種標準的編碼壓縮方法.[5]因此,FPGA的特性非常適合視頻和圖像處理的體系結構,FPGA虛擬原型驗證平臺方案設計如圖4所示.

圖4 FPGA平臺設計方案
只有進行了編碼器虛擬原型的充分驗證后,才可以進行FPGA平臺的驗證.首先,虛擬原型平臺能夠充分并且方便驗證編碼芯片周邊邏輯的正確性,以及周邊模塊與編碼核心模塊之間協同工作是否有誤,所以在虛擬原型驗證的基礎上進行FPGA驗證,能夠更加高效地驗證系統性能;其次,在于準確驗證編碼芯片能否正確編碼,虛擬原型平臺驗證階段,會用標準軟件模型產生的視頻編碼信息和驗證平臺生成的數據信息進行比對,也會產生波形用以進行錯誤分析,但基于FPGA平臺的驗證依據不直觀,不利于開發人員分析系統錯誤,其依據只是編出的碼流能夠用標準解碼程序正確解碼,即說明編碼碼流符合H.264標準,從而驗證了H.264編碼器功能的正確性,所以如果在該階段發現編碼出錯,就需回退到虛擬原型驗證階段查錯,修改后重新綜合邏輯并進行調試,依次不斷疊加驗證.
為了充分測試視頻編碼系統的性能以及編碼功能,并依據驗證方案中設計的驗證原則,實際中采用主觀和客觀質量評定相結合的方法,將標準編碼器和自研的H.264編碼器編碼結果進行對比,并通過兩種編碼模式(CBR/VBR,Constant Bit Rate即恒定比特率,Variable Bit Rate即非固定的比特率)進行測試,于此同時,測試項選用了多種格式的視頻源作為數據輸入,盡可能做到測試全面.H.264編碼芯片對碼率控制算法進行了優化,與標準編碼器相比能夠更好地控制實際碼率,使碼率控制的精度在10%之內.通過實驗發現,H.264編碼器和標準編碼器的編碼性能在大多數情況下相近,實際證明了本系統具有良好的性能,并且能夠正確高效編碼.
在硬件系統設計過程中,FPGA原型驗證能夠最直接和全面地驗證設計的正確性和完備性.[6]本文提出了視頻編碼芯片的驗證框架,并設計實現了基于FPGA的視頻編碼驗證平臺.該硬件驗證平臺包括碼流輸出系統、以太網傳輸系統、視頻編碼系統、視頻輸入系統和IDE記錄系統五部分,具有操作靈活、驗證效率高、可重用性強等優點.基于該驗證平臺已實現了多個硬件模塊和H.264視頻編碼芯片的驗證.
[1]張玢.H.264編解碼器軟硬件協同設計與驗證技術研究[D].西安:西安石油大學碩士學位論文,2011.
[2]劉娟.光纖通道的核心技術研究與實現[D].西安:西安石油大學碩士學位論文,2010.
[3]劉志剛.基于FPGA的H.264編碼器的硬件的實現[D].西安:西安電子科技大學碩士學位論文,2009.
[4]魏先政,李鳳志,秦盼,等.基于FPGA的AVS視頻編碼芯片驗證平臺設計[J].電子技術應用,2012,(1):38-40.
[5]閆效鶯.uC/OS-II對SOC驗證支持的研究[J].自動化技術與應用,2010,29(7):23-25.
[6]熊明霞,雷宏,馬小兵.FPGA片上PowerPC系統設計[J].計算機測量與控制,2007,15(9):1223-1225.