摘 要:最新H.264國際視頻壓縮標準為達到高效率的壓縮性能而采用了復雜的算法,使得采用該標準實現高清視頻編碼壓縮變得異常困難。參考相關論文,給出一種基于多條帶、多DSP的并行編碼系統。該系統按照DSP的數目及各DSP的處理能力,將當前高清視頻圖像橫向上分割為大小不一的若干子圖像并分別送各DSP進行并行編碼壓縮,最終合并各DSP生成的子碼流,輸出整幀圖像編碼壓縮碼流。測試結果顯示,該系統對1 920×1 080 P高清視頻圖像,在2~8 Mb/s的碼率下,可以達到每秒25幀以上的實時編碼壓縮。
關鍵詞:H.264;DSP;高清;視頻壓縮
中圖分類號:TP391文獻標識碼:A
文章編號:1004-373X(2010)05-135-03
Real-time H.264 HD Video Encoding System Based on Multi-DSP
GUO Chunhui
(AVCON Information Technology Co. Ltd.,Shanghai,200433,China)
Abstract:It is a big challenge to realize one HD video encoding system using the latest international H.264 video compre-ssion standard,it adopts some really complex algorithms to achieve efficient compression performance.After referring to a few papers,a parallel encoding system based on multi-slice and multi-DSP is proposed.The system horizontally divides the current HD video image into a number of sub-image according to the number of DSPs and the power of one DSP in system,then sends them to each DSP for parallel encoding and eventually merges the sub-streams and outputs full-frame bit stream.The experimental results show that the system can reach up to the speed of 25fps real-time encoding for 1 920×1 080 P high-definition video at the bit rate of 2~8 Mb/s.
Keywords:H.264; DSP;HD;video compression
0 引 言
隨著數字化進程的加速普及,人們對視頻的需求提出了更高的要求,電視、內容、數字攝像機等提供的各種形式視頻正在由傳統的標清向高清轉變。數據量巨大的高清視頻內容的存儲、傳輸離不開視頻壓縮和解壓縮技術。新一代國際視頻壓縮標準H.264由于較之傳統標準具有更優的性能,因而在高清視頻領域得到了越來越廣泛的應用。但是,一方面由于需要進行壓縮的高清視頻數據量巨大,另一方面,為達到高效的性能,H.264采用了復雜的壓縮算法,因此,普通處理器難以實現對視頻圖像的實時編碼壓縮。
目前解決該問題的主要途徑是采用專用的硬件編碼芯片或采用專用數字信號處理器(DSP)。采用硬件編碼芯片的方案,如富士通微電子、海思半導體、意法半導體、安霸公司等的高清壓縮芯片,可以實現1 080 P視頻的實時壓縮編碼,但其由于編碼算法固化,可配置性和擴展性差,無法實現靈活應用和有效升級。相反,采用DSP(數字信號處理器)的方案由于采用的是軟件編碼算法,具有很好的靈活性和可擴展性,但其不足在于,由于單個DSP處理能力有限,難以實現對高清視頻的實時編碼壓縮。
為了克服在高速實時視頻圖像處理領域中傳統單DSP系統處理能力的瓶頸,多DSP并行處理技術應運而生,成為本領域研究的熱點。參考已有方案,給出了一種基于多條帶、多DSP的并行編碼系統。該系統按照DSP的數目及各DSP的處理能力,將當前高清視頻圖像橫向上分割為大小不一的若干子圖像并分別送各DSP進行并行編碼壓縮,最終合并各DSP生成的子碼流,輸出整幀圖像編碼壓縮碼流。測試結果顯示,該系統對1 920×1 080 P高清視頻圖像,在2~8 Mb/s的碼率下,可以達到每秒25幀以上的實時編碼壓縮。
1 基于多DSP的H.264高清視頻實時編碼系統實現
1.1 基于多DSP的H.264并行編碼算法
由于H.264編碼算法極為復雜,宏塊編碼預測不僅需要參考當前幀內宏,還需要參考幀間宏塊,數據間具有很強的相關性,導致并行編碼算法的設計難度非常大。基于多DSP核編碼的并行編碼算法設計通常做法(如德州儀器公司提供的多DSP并行編碼算法)如圖1所示,按宏塊編碼過程劃分為預測(含幀內預測、幀間預測)、變換、量化、熵編碼、反量化、反變換、圖像重構等模塊,并將這些模塊分配到不同的DSP核,通過宏塊級流水并行的方式,使各DSP并行執行不同宏塊編碼的不同階段的計算任務。這種方法將編碼預測置于單獨的DSP核,避免了編碼預測參考數據在多個DSP間的傳輸拷貝,有效地降低了數據的相關性,可以很好地實現模塊的并行運算。但其不足是,單個模塊的執行耗時很容易成為整個并行算法的性能瓶頸。例如,負責預測計算的模塊由于耗時過大,將往往導致其后續變換、量化、熵編碼、反量化、反變換、重構等模塊的空閑等待,因而降低了系統整體性能。
圖1 基于宏塊級流水并行編碼的模塊劃分
不同于宏塊級流水并行,在參考了文獻基礎上,本文提出一種基于條帶編碼的H.264高清并行編碼算法。該算法的基本思想是,按照目標DSP的數目及各DSP的處理能力,將當前高清視頻圖像橫向上分割為若干子圖像(條帶),將各子圖像分別送各DSP進行編碼壓縮,合并各DSP生成的子碼流,輸出當前圖像編碼碼流,如圖2所示。
圖2 基于子圖像劃分的并行編碼的模塊劃分
這種將編碼圖像劃分為子圖像并行編碼的方法避免了目前基于模塊流水的并行方法由于某個模塊負擔過重而出現流水瓶頸的問題,可以根據目標DSP處理能力靈活分配大小合適的子圖像,保證多個DSP的負載均衡和高度并行,從而提升了系統整體性能。
1.2 基于多DSP的H.264高清視頻壓縮硬件系統
為實現對1 080 P高清視頻的實時編碼壓縮,本文采用了四顆德州儀器公司(TI公司)的TMS320DM642 DSP(DM642)。DM642是TI公司推出的一款專門針對多媒體處理領域應用的DSP,為了滿足視頻和圖像處理的需要,該DSP單顆主頻高達720 MHz,并采用了VelociTI體系結構和高級超長指令字結構,非常適合視頻壓縮編碼算法的實現。以單顆DM642能夠實時編碼704×576大小D1圖像的能力計算,四顆DM642基本能夠達到實時編碼1 080 P高清視頻圖像的要求(系統最后測試顯示,硬件配置完全能夠滿足性能需求)。
硬件架構上,四個DSP一主三從,采用了通過HPI接口(Host Port Interface)通信級聯。HPI是德州儀器公司在新一代、高性能DSP芯片上配置的與主機進行通信的主機接口。它可以實現與主機之間并行、高速的數據交換,構成多機系統。其通信方式電路連接簡單,方便靈活,且DSP在通過HPI接口和主機通信的過程中完全沒有硬件和軟件開銷,由DSP自身的硬件協調沖突,從而不會打斷DSP正常程序的運行。具體硬件布線設計上,從DSP芯片21,22,23分別通過各自的HPI接口并通過主DSP的EMIFA與主DSP實現連接。同時,主DSP芯片1還通過 EMIFA接口連接主存儲器10,從DSP芯片21,22,23分別通過EMIFA接口連接各自的存儲器210,220,230,參見圖3。
另外,存儲器為SDRAM存儲器,用于存儲數據和程序,采用MICRON公司的MT48LC4M32A2TG-6存儲器;視頻數轉換模塊采用ADI公司的AD9880KSTZ-150芯片。
圖3 硬件系統結構圖
高清視頻源1 080 P圖像通過高清攝像機輸入,由視頻采集程序完成對當前圖像的采集,并將其保存于主存儲器10中,經編碼壓縮算法軟件壓縮之后通過主DSP芯片1的PCI接口輸出。
1.3 多DSP間的軟件通信
本文硬件上通過HPI接口級聯的多DSP系統,在軟件上采用了存儲共享、中斷通知讀寫的方式實現DSP之間的協同通信和數據傳輸。
存儲共享的具體實現方法是:在每個從DSP的IRAM片上存儲器上起始地址為0x1f800處預留了長度為512 B的交換數據區,參見圖4,其中,前四個字的空間分別用以存儲從DSP的YUV原始數據緩沖區起始地址、編碼控制信息(編碼參數)緩沖區起始地址、編碼比特流緩沖區起始地址、編碼比特流大小字節數,主DSP只讀;其后的空間用以存儲連續的兩個編碼控制信息,其中包含YUV數據的長度以及壓縮編碼參數,從DSP只讀。同時,需要在每個從DSP上分別分配兩個足夠大的緩沖區用以存儲YUV數據,從DSP只讀。之所以使用了兩個編碼控制信息緩沖區及兩個YUV數據緩沖區是因為YUV數據量大,需要使用乒乓緩沖區讀寫機制以保證最大的數據帶寬利用率。
圖4 主從DSP間數據共享存儲區
主從DSP間通過HPI中斷信號和對共享存儲空間的讀寫實現同步和信息交互,參見圖5。首先,系統啟動后,從DSP初始化共享緩沖區,寫入YUV原始數據緩沖區起始地址、編碼控制信息(編碼參數)緩沖區起始地址,并給主DSP發Ready中斷。主DSP接收到Ready中斷后,通過HPI口讀取到目標YUV緩沖區起始地址和編碼控制信息緩沖區起始地址,啟動EDMA將YUV數據和編碼參數寫入從DSP方,并在YUV數據傳輸結束時向從DSP發送HPI中斷。從DSP收到中斷后,啟動對當前收到的YUV數據進行編碼,更新YUV原始數據緩沖區起始地址、編碼控制信息(編碼參數)緩沖區起始地址,并給主DSP發Ready中斷。當從DSP完成當前YUV數據的編碼時,將編碼比特流緩沖區起始地址、編碼比特流大小字節數寫入共享緩沖區,同時,更新YUV原始數據緩沖區起始地址、編碼控制信息(編碼參數)緩沖區起始地址,并給主DSP發Ready中斷。主DSP通過HPI口讀取碼流起始地址和大小,啟動EDMA將碼流從DSP讀出。
圖5 主從DSP間讀寫交互流程圖
2 系統性能和特點
測試結果顯示,對1 920×1 080 P高清圖像,在2~8 Mb/s的碼率下,采用H.264基準規范(即只有I幀、P幀編碼,并采用VLC變長編碼),系統可以達到每秒25幀以上的碼流輸出,達到實時編碼壓縮的要求。另外,系統還具有結構簡單、易于實現、較之ASIC或SoC更易于升級和更新的特點。
3 結 語
由于H.264標準較之前的各種視頻編碼標準具有更高的壓縮率、更優的圖像質量和更強的靈活性,目前,其已成為HD-DVD(高清DVD)以及廣播、有線、視頻會議和消費電子產品的強制標準。基于多DSP的H.264高清視頻實時編碼系統的實現具有較大的實際應用價值。目前,已經在該系統的基礎上添加外圍部件開發出了高清視頻實時采集壓縮卡,并應用到了商業的視頻會議系統中。在其他應用環境中,也具有很強的實用性。
參考文獻
[1]Wiegand T,Sullivan G J,Bjontegaard G,et al.Overview of the H.264/AVC Video Coding Standard[J].IEEE Trans.on Circuits Syst.Video Technol.,2003,13(7):560-576.
[2]ISO/IEC 14496-10.Information Technology-Coding of Audio-visual Objects -Part 10: Advance Video Coding.ITU-T and ISO/IEC,2003.
[3]劉志國,景新幸,楊海燕,等.基于多DSP的MPEG-4系統的設計[J].微計算機信息,2005,21(20):46-47.
[4]胡君紅,江浩洋,樊榮,等.一種基于C64x的多DSP實時圖像處理系統[J].計算機工程,2006,32(11):268-270.
[5]李恒中,夏衛平,王貞松,等.基于多DSP的MPEG-2高速視頻壓縮系統設計與實現[J].計算機應用研究,2007(8):236-239.
[6]趙峰,袁東風,張海霞,等.多DSP圖像壓縮實時并行處理系統[J].光學精密工程,2007(9):1 451-1 453.
[7]何艷輝,朱珍民,寧華.H.264視頻編碼軟件的并行化處理[J].計算機工程與應用,2004,40(5):72-75.
[8]寧華,梅錚,李錦濤.基于Slice的H.264并行視頻編碼算法[J].計算機工程,2005(4):181-182.
[9]蔣興昌,周軍,羅傳飛.H.264并行編碼算法的研究[J].電視技術,2008(2):33-35.
[10]楊小康,張文軍,余松煜.HDTV視頻編碼器的并行處理結構[J].上海交通大學學報,1999,33(9):1 068-1 070.
熊紅凱,余松煜,葉瑋.基于水平條狀分割HDTV視頻編碼器的設計與實現[J].上海交通大學學報,2002,36(12):1 736-1 740.