曹朋朋,田 澤,許宏杰,趙 強,陳威宇
(中國航空計算技術(shù)研究所 集成電路與微系統(tǒng)設(shè)計航空科技重點實驗室,陜西 西安 710068)
H.264/AVC解碼芯片體系結(jié)構(gòu)與驗證
曹朋朋,田 澤,許宏杰,趙 強,陳威宇
(中國航空計算技術(shù)研究所 集成電路與微系統(tǒng)設(shè)計航空科技重點實驗室,陜西 西安 710068)
H.264是一種高性能的視頻編解碼技術(shù),在編解碼效率和性能大幅提高的同時,增強了錯誤恢復及網(wǎng)絡(luò)自適應(yīng)等功能,具有廣泛的應(yīng)用前景,體系結(jié)構(gòu)的合理設(shè)計與驗證對H.264/AVC芯片至關(guān)重要。文中基于對H.264/AVC解碼芯片體系結(jié)構(gòu)的研究,構(gòu)建FPGA驗證平臺,并對編程結(jié)構(gòu)、軟件框架及驗證的實施進行了深入探索。首先確定了芯片的體系結(jié)構(gòu),為H.264/AVC解碼芯片的設(shè)計驗證提供了有力支撐,并通過搭建FPGA的測試,在FPGA對所設(shè)計的芯片功能和性能進行驗證。驗證結(jié)果表明,基于該體系結(jié)構(gòu)的芯片功能正確,可滿足實時解碼需求,體系結(jié)構(gòu)的設(shè)計與驗證為整個芯片的設(shè)計提供了重要保障。
H.264;解碼;FPGA;驗證
H.264/AVC是一種高性能的視頻編解碼技術(shù)[1-2],其最大的優(yōu)勢是具有很高的數(shù)據(jù)壓縮比率。如圖1所示,H.264/AVC標準可分為三類[3-4]:
(1)基本類。簡單版本,應(yīng)用面廣。
(2)主類。采用了多項提高圖像質(zhì)量和增加壓縮比的技術(shù)措施,可用于SDTV、HDTV和DVD等。
(3)擴展類??捎糜诟鞣N網(wǎng)絡(luò)的視頻流傳輸。
實現(xiàn)H.264編解碼主要可以分為硬件實現(xiàn)和軟件實現(xiàn)。文中利用H.264/AVC視頻解碼核構(gòu)造H.264/AVC視頻解碼驗證平臺,H.264/AVC解碼核是基于H.264/AVC標準,實現(xiàn)H.264/AVC解碼的。根據(jù)軟硬件的功能劃分,對軟硬件的交互機制與軟件框架做了細致劃分,由視頻解碼核硬件完成對264碼流的解碼,由解碼核軟件(FW)實現(xiàn)對解碼芯片的控制,實現(xiàn)軟硬件協(xié)同功能共同解碼功能[5]。此外,該系統(tǒng)中還集成了音頻解碼模塊,可實現(xiàn)對音頻AAC碼流的解碼功能[6]。
1.1 視頻解碼核功能介紹
H.264視頻解碼過程中,分為四個主要步驟,分別是NAL解碼、逆變換、動態(tài)補償、去方塊濾波。這四步也是資源消耗的主要部分[7]。如果四個步驟全采用處理器純軟件解碼運算,處理器的負載會非常巨大,視頻解碼模塊將通過硬件解碼的方式,實現(xiàn)上述解碼過程中耗時最多的四個步驟。
一個完整的視頻解碼器如圖2所示,由碼流輸入接口、視頻輸出接口(顯示)、外部存儲器接口(包括程序存儲器接口和圖像數(shù)據(jù)存儲器接口)組成。視頻解碼模塊由視頻解碼核、視頻輸出控制模塊(簡稱VOC模塊)和存儲器接口三部分組成[8-9]。前端與存儲器控制器連接,讀取存儲器中的視頻數(shù)據(jù)。該模塊具有PCI通路和Video通路。PCI通路與PCI主機連接,將從存儲器讀出的視頻數(shù)據(jù)進行緩存,然后由PCI主機讀出;Video通路與顯示模塊相連,將從存儲器讀出的視頻數(shù)據(jù)進行緩存、采樣格式轉(zhuǎn)換和顏色空間轉(zhuǎn)換,然后按照相應(yīng)視頻格式標準組幀輸出到顯示模塊。
圖2 視頻解碼核體系結(jié)構(gòu)
1.2 視頻解碼體系結(jié)構(gòu)
視頻解碼系統(tǒng)由視頻解碼核和視頻解碼核Firmware組成,解碼核Firmware軟件符合H.264/AVC標準,為SoC架構(gòu)中的芯片控制部分軟件程序,完成對解碼引擎的控制。Firmware對解碼核狀態(tài)的控制和跳轉(zhuǎn)應(yīng)符合H.264/AVC標準中相關(guān)章節(jié)的解碼控制的要求。
該系統(tǒng)從碼流輸入模塊輸入的原始碼流輸入格式為符合ISO13818-1標準的TS流,并可擴展支持其他封裝的格式[10]。根據(jù)應(yīng)用需求,由處理器接收來自碼流輸入模塊、以太網(wǎng)、IDE三個模塊輸入的碼流。程序運行中需在EMC模塊外部掛接的同步SRAM中維護碼流環(huán)形緩沖區(qū)。當碼流輸入中斷產(chǎn)生時,從TS流輸入模塊(分碼流輸入模塊、以太網(wǎng)、IDE三種輸入方式)讀取碼流后,存儲于碼流緩沖區(qū)中;在中斷服務(wù)程序外,查詢ES緩沖區(qū)狀態(tài),若有剩余空間,則根據(jù)ISO13818-1完成對TS流的解析,分別將解析的視頻ES、音頻ES存入碼流輸入模塊中對應(yīng)的DPRAM中。由視頻解碼核BSDMA模塊根據(jù)數(shù)據(jù)請求將輸入的碼流寫入DDR2外存中[11]。
外存空間分配如圖3所示。
圖3 外存空間分配
H.264/AVC視頻解碼核中通過bs2rbsp模塊輸入碼流,或BSDMA模式將碼流讀入進行解析。碼流讀入后經(jīng)過一個8字節(jié)深度的FIFO進行緩存,然后將碼流交給PES解析模塊解析成ES流,如果碼流本身就是ES流則無需經(jīng)過PES解析模塊,然后ES流進入SCD模塊進行NAL頭的解析,最后將NAL的字節(jié)數(shù)據(jù)交由解碼引擎進行解碼。在解碼核解碼檢測到NAL起始碼后,將產(chǎn)生Start_Code中斷,處理器接收到中斷程序后,根據(jù)NAL類型,解碼NAL。
在整個解碼平臺的設(shè)計中,涉及較多的軟硬件交互機制。解碼核使用bsdma從碼流輸入模塊讀入視頻ES流,存入DDR中后,由解碼核檢測264碼流的起始碼,檢測到起始碼后,由解碼核解碼出NAL類型,產(chǎn)生Start_code進入軟件中斷處理程序,并在軟件中斷處理程序中,根據(jù)NAL類型,完成對相關(guān)NAL的解碼。
序列的參數(shù)集(SPS)包括一個圖像序列的所有信息,圖像的參數(shù)集(PPS)包括一個圖像所有片的信息。多個不同的序列和圖像參數(shù)集經(jīng)排序存放在解碼器。編碼器參考序列參數(shù)集設(shè)置圖像參數(shù)集,依據(jù)每一個已編碼片的片頭的存儲地址選擇合適的圖像參數(shù)集來使用。
圖像參數(shù)集管理完成對圖像參數(shù)集(PPS)進行管理,用于由每一個條帶頭中圖像參數(shù)集決定的NAL單元的解碼過程。圖像參數(shù)集RBSP包括一些參數(shù),這些參數(shù)可以被一個或多個編碼圖像的編碼條帶NAL單元或編碼條帶數(shù)據(jù)分割塊A的NAL單元使用。
文中涉及的系統(tǒng)為基于Xillinx Virtex5 XC5VFX200T內(nèi)部集成的PPC440硬核的EDK驗證系統(tǒng)。該系統(tǒng)內(nèi)部集成了視頻解碼模塊和音頻解碼模塊工作的必要元件以及功能模型(見圖4),利用該FPGA測試平臺可測試H.264/AVC解碼芯片視頻解碼模塊的功能。
圖4 H.264/AVC解碼FPGA驗證平臺
H.264/AVC協(xié)議中,Main Profile解碼器支持對各種不同幀場模式、不同圖像序列,以及不同熵編碼方式的碼流進行解碼。為驗證解碼核解碼功能的正確性,通過JM生成各種不同的碼流,只要該碼流符合H.264/AVC協(xié)議中Main Profile標準,視頻解碼核都應(yīng)該能夠正確進行解碼。在驗證過程中,對解碼核的驗證項分為基本驗證項和擴展驗證項?;掘炞C項的選取策略如表1所示[12-13]。此外,Main Profile標準還支持用不同宏塊分割方式、幀場自適應(yīng)方式、不同slice劃分方式等不同的編碼方式。在解碼驗證平臺中,均可完成對以上不同編碼方式生成碼流的解碼,并通過PCI主機輸出解碼后的YUV數(shù)據(jù)。與JM解碼后生成的YUV文件進行比較,以判斷解碼核解碼數(shù)據(jù)的正確性[14]。
文中結(jié)合H.264視頻解碼芯片的研制需求,結(jié)合周邊資源,利用FPGA驗證平臺,完成了視頻解碼核的驗證。在PPC440處理器時鐘為405 M,解碼核時鐘為45 M情況下,完成了分辨率為1 024*768解碼每秒25幀的速度[14-15],并通過數(shù)據(jù)比較,證明了解碼后數(shù)據(jù)的正確性。為H.264視頻解碼芯片的研制開發(fā)提供了可靠的支撐,對具有同類需求的芯片的研制具有借鑒意義。
表1 H.264基本驗證項碼源格式
[1] 陳 佳,田 澤,黎小玉,等.H.264/AVC視頻編碼核基于FPGA驗證的設(shè)計與實現(xiàn)[J].計算機技術(shù)與發(fā)展,2013,23(7):10-13.
[2] 畢厚杰.新一代視頻壓縮編碼標準-H.264/AVC[M].人民郵電出版社,2005.
[3]H.264/MPEG-4Part10whitepaper[S].[s.l.]:[s.n.],2003.
[4]ITU-TH.241.ExtendedvideoproceduresandcontrolsignalsforH.300seriesterminals[R].[s.l.]:[s.n.],2003.
[5] 沈敏一,高新波.H.264視頻編碼系統(tǒng)中多參考幀的選擇算法研究[J].電路與系統(tǒng)學報,2008,13(4):50-54.
[6] 王維哲,周 兵,張行進.H.264編碼幀中的幀內(nèi)預測模式選擇算法[J].計算機工程,2008,34(2):226-228.
[7] 陳 芳.一種基于錯切原理的圖像旋轉(zhuǎn)方法[J].淮陰師范學院學報:自然科學版,2004,3(4):319-322.
[8] 邱 航,陳雷霆.基于點的計算機圖形學研究與進展[J].計算機科學,2009,36(6):10-15.
[9]BosiM,GoldbergR.Introductiontodigitalaudiocodingandstandards[M].Massachusetts:KluwerAcademicPublishers,2003.
[10] 武 丹,許如星.淺析《計算機圖形學》中線裁剪算法的講授方法[J].科技創(chuàng)新導報,2009(30):182-182.
[11] 郭 亮,李 玲,田 澤,等.ARINC659總線接口芯片的FPGA原型驗證[J].計算機技術(shù)與發(fā)展,2009,19(12):240-242.
[12] 范飛虎.基于FPGA的MPEG-2/4AAC音頻解碼器的設(shè)計與驗證[D].西安:西安電子科技大學,2013.
[13]ISO/IEC.ISO/IEC13818-7:MPEG-2AAC,SecondEdition[S].[s.l.]:ISO/IEC,2003.
[14] 申 敏,曹聰玲.基于SoC設(shè)計的軟硬件協(xié)同驗證技術(shù)研究[J].電子測試,2009(3):9-12.
Architecture and Verification for H.264/AVC Decode SoC
CAO Peng-peng,TIAN Ze,XU Hong-jie,ZHAO Qiang,CHEN Wei-yu
(Key Laboratory of Aviation Science and Technology on Integrated Circuit and Micro-system Design,AVIC Computing Technique Research Institute,Xi’an 710068,China)
H.264 is a high performance video codec technology.It is enhanced in the performance and efficiency of video codec,and also improved in error recovery,network adaptive function and so on.So it has broad prospect.The raional design and verification of the architecture is very important to the H.264/AVC SoC.Based on the research of H.264/AVC SoC architecture,it constructs FPGA verification platform,and studies the programming structure,the software framework and implementation of verification in depth.Firstly,the architecture of the SoC is designed,which provides a powerful support for the verification of H.264/AVC Decode SoC.Secondly,by building the FPGA test platform,the function and performance of the SoC is verified in FPGA.The verification results show that the system based on the architecture is correct.It can meet the needs of real-time decoding and provides a important support for the design and verification for H.264/AVC Decode SoC.
H.264;decode;FPGA;verification
2014-10-13
2015-01-05
時間:2016-05-05
中國航空科學基金(2015ZC51036)
曹朋朋(1984-),男,碩士,研究方向為集成電路設(shè)計;田 澤,博士,研究員,中國航空工業(yè)集團首席技術(shù)專家,研究方向為SoC設(shè)計、嵌入式系統(tǒng)設(shè)計、VLSI設(shè)計。
http://www.cnki.net/kcms/detail/61.1450.TP.20160505.0814.008.html
TP39
A
1673-629X(2016)05-0153-03
10.3969/j.issn.1673-629X.2016.05.033