摘 要:H.264是最新的視頻編碼國際標準,是圖像通信研究領域的熱點問題之一,利用高性能數字信號處理器來實現H.264實時編解碼是一種快速有效的方法,有助于H.264視頻標準的迅速推廣和應用。TI公司生產的DM64X系列芯片具有很強的并行處理能力和信號處理功能,是實現H.264編解碼的理想平臺。給出視頻編解碼在DSP中實現的一些關鍵問題,針對DM642的整體系統方案,設計出為H.264的實時實現搭建了良好的硬件平臺,并給出系統的性能測試結果。解碼速度達到了實時的效果,圖像主觀質量較好,無明顯方塊效應,碼率也比較低。
關鍵詞:H.264標準;數字信號處理器;視頻編解碼;DM642
中圖分類號:TN919.81文獻標識碼:A
文章編號:1004-373X(2010)04-055-03
Video Encoding Decoding Based on H.264 andIts Realization and Optimization on DSP
WU Qiong
(Suqian College,Suqian,223800,China)
Abstract:H.264 is a new video international standard.It becomes an important content of image communication research field.Based on high-performance Digital Signal Processor(DSP) to implement H.264 video Encoder is one of most efficient methods,which also helps to promote the application of H.264.DM64X produced by TI Company have strong capacity of parallel processing and signal processing that it is considered to be just the ideal platform.The key points to realize video encoding in DSP.The whole system scheme based on DM642 is given.H.264 is realized and the performance of this system is given.The decoding speed has achieved the real-time effect,the image subjective quality is good,not obvious block effect,the code rate is also quite low.
Keywords:H.264 standard;DSP;video encoding and decoding;DM642
0 引 言
基于互聯網的數字視頻產業前景看好,而3G的規模部署,也會推動移動視頻通信成為現實。但數字化后的視頻圖像具有數據海量性,給圖像的存儲和傳輸造成較大的困難。數字視頻壓縮編碼技術是解決這一問題的關鍵技術[1]。H.264 以其良好的網絡適應性和高編碼壓縮效率,靈活的語法配置,在視頻處理領域比以往的視頻編碼標準更加適合視頻處理的發展方向,更加適合不同應用環境的對象。H.264充分考慮了多媒體通信對視頻編解碼的各種要求,有著多個技術閃光點,在保留運動補償和變換編碼技術的基礎上,加入了諸如類離散余弦整數變換(DCT)[2]、基于內容的自適應可變長編碼(CAVLC)、基于上下文的自適應二進制算術編碼(CABAC),以及高精度、多模式的運動估計等新技術,進一步提高了編碼算法的壓縮效率和圖像回放質量[3]。在肉眼主觀感受相同的情況下,H.264 較之H.263的編碼效率提高了50%左右[4,5]。
利用高性能數字信號處理器(DSP)來實現 H.264 實時編碼器是一種快速有效的方法,有助于 H.264 視頻標準的迅速推廣和應用,也指明了視頻圖像壓縮領域最新的研究方向。
1 H.264編碼的關鍵技術
1.1 基于靈活分割宏塊(MB)的運動矢量估計和補償以及增加變換的壓縮效果
H.264根據宏塊的編碼特性采用亮度塊直流變換,色度塊直流變換與普通差值變換相結合的方法。在運動估計時,H.264信源編碼采用基于4×4塊的整數變換[6],可以靈活地選擇塊的大小[7,8]。而其他標準處理的像素塊大小均為16×16或者8×8。H.264以可變大小的塊來適應不同應用環境和要求,采用16×16,16 ×8,8×16,8×8四種模式;當劃分為8×8模式時,又可進一步采用8×4,4×8,4×4三種子宏塊劃分模式進一步劃分,如圖1所示。根據需要由不同尺寸的宏塊來執行,采用整數變換既可以使運動物體的劃分更加精確,不可以減小運動物體邊緣的銜接誤差,處理好需要更多運動細節的場合,即以引入更小運動補償塊可以提高一般和特殊情況下的預測質量,它可以提高主觀視覺效果,同時又減小了變換過程中的計算量。實驗表明,應用7種不同大小和形狀的塊可以比單一利用16×16塊進行的編碼提高15%以上的壓縮率[9]。
圖1 宏塊與子宏塊的分解
1.2 支持1/4像素或1/8像素精度的運動估值
運動估計與補償算法是目前視頻壓縮技術中最為關鍵的部分,影響著編碼的速度、質量和碼率,其編碼的復雜度也是整個編碼系統中最高的。
在H.264中通過6階FIR濾波器的內插獲得1/2像素位置的預測值。當獲得1/2像素值后,通過取整數像素位置和1/2像素位置像素值均值的方式獲得1/4像素位置的值。在高碼率情況下,提供1/8像素精度的運動估計。采用高精度運動估計會進一步減小幀間預測誤差,減少經變換和量化后的非0比特數,提高了編碼效率。利用1/4像素空間精度可以比原有的一個像素精度(整數精度)預測提高20%的編碼效率[9]。
1.3 多參考幀預測
參考幀是幀間預測編碼,也就是運動補償的基礎,根據它與待預測幀之間的位置關系,可分為前向參考幀和后向參考幀。
以往的編解碼技術在對P幀圖像進行幀間預測時,只允許以參考前一幀圖像進行編碼,即以前一個I圖像或P圖像為參考幀,在對B圖像進行預測時,只允許參考前后幀圖像進行編碼,即以前后兩個I圖像或P圖像為參考圖像。H.264則打破了這些限制,允許在從當前幀的前幾幀中選擇一幀作為參考幀圖像,對宏塊進行運動預測,當選用多參考幀模式時,編碼器從幾個參考幀中選擇一個效果最好的參考幀,達到最佳的預測效果,參考幀圖像甚至可以是采用雙向預測編碼方式的圖像,大幅度降低了預測誤差。另外,幀間編碼部分還引入了SP幀,用于有效地實現編碼率環境下的切換,可用于隨機、快速播放過程,比單參考幀的方法節省5%~10%的傳碼率[10],并且有利于比特流的錯誤恢復、解碼恢復更高圖像質量。因此,多參考幀預測對周期性運動和背景切換能夠提供更好的預測效果。
1.4 消除塊效應適應性濾波器
基于分塊處理的變換編碼算法,忽略了物體邊緣的連續性,在低碼率情況下,容易出現方塊效應。為消除在預測和變換過程中引入的塊效應,H.264對此采用了消除塊效應適應性濾波器,對宏塊邊緣進行平滑,有效改進圖像的主觀質量[11]。但與以往標準不同的是,H.264的消除塊效應濾波器位于運動估計循環內部,可以利用消除塊效應以后的圖像去預測其他圖像的運動,即濾波后宏塊用于運動估計,以產生更小的幀差進行編碼,進一步提高預測精度。
1.5 增強的熵編碼
以往標準的熵編碼采用變長的哈夫曼編碼,碼表統一,不能適應變換多端的視頻內容,影響編碼效率。根據視頻內容的不同,H.264利用較短的碼字來代表出現高頻率的符號,可進一步去除碼流中的冗余,提供兩種熵編碼,即上下文自適應二進制算術編碼(CABAC)和基于內容的自適應可變長編碼(CAVLC),CABAC的編碼效率更高,也更復雜,在相同圖像質量下,使用CABAC編碼電視信號可降低10%左右(10%~15%)的碼率,后者具有較強抗誤碼能力。
2 H.264的視頻編解碼的DSP平臺實現
在數字圖像處理中,要完成大量的數字信號處理工作,特別是對于H.264這樣的新一代視頻壓縮編碼標準。就其Baseline而言,其解碼復雜度是同等情況下H.263的2倍,而編碼復雜度更是H.263的3倍,解決這種高運算量問題,很大程度上依賴于高速DSP技術,而且采用半導體制造工藝生產的DSP處理器可以有更低的功耗。因此為圖像的實時壓縮處理搭建了一個合理的DSP硬件平臺。
TI公司生產的DM64X系列芯片具有超高主頻、很強的并行處理能力和信號處理功能,是實現H.264編解碼的理想平臺。
TI公司生產的642系列是一款專門面向多媒體應用的專用DSP,該DSP時鐘頻率高達600 MHz,8個并行運算單元,處理能力達4 800 MIPS。它是在C64X的基礎上,增加了很多外圍設備和接口。可見,DM642是一個強大的多媒體處理器,是構成多媒體通信系統的良好平臺。它豐富的外圍接口使得它近乎是一個多媒體嵌入式系統的單芯片硬件平臺;它的完全可編程性,又使它能夠兼容正在發展的各種多媒體信號處理標準,構成通用的軟件平臺。
該系統主要是為了對模擬視頻圖像(PAL制式)進行采集,之后對其進行壓縮,然后把壓縮后的數據通過擴頻的方式發送到接收端,在接收端接收碼流后由DSP進行解壓縮,之后再由DSP負責圖像的顯示,存儲等。所以總體設計方案必須包括視頻的輸入/輸出、網絡等接口。設計圖如圖2所示。
圖2 系統硬件框圖
在發送端,視頻輸出由視頻A/D芯片先轉換為數字視頻信號,然后輸入到DM642的視頻端口2,由DM642進行圖像采集,并把圖像數據送入SDRAM中,同時DM642對視頻圖像進行實時壓縮,并把壓縮后的數據通過McBSP發送到信道編碼部分,完成發送端的工作。在接收端,接收由信道譯碼部分送來的壓縮圖像數據,然后由DM642完成圖像的實時解壓,并把解壓后的數據送到SDRAM中,然后把解壓后的圖像數據送入視頻端口0,再由視頻端口0把數據送入視頻D/A,完成視頻的實時顯示。圖2中音頻/視頻接口作為擴展,10/100 Mb/s的以太網卡以及USB控制器外設主要是為了方便接收端直接把數字視頻信號傳送到計算機或者終端各處,供電及復位電路完成對電路板的供電及復位功能。
3 H.264的視頻編解碼的DSP優化
將H.264編碼器移植到DM642圖像處理平臺上,由于H.264的核心算法不僅在代碼結構上需要改進,而且在具體的核心算法上也需要做較大的改動,因此整個系統的編碼速度非常令人不滿意,達不到實時應用的要求,因此需要從各個方面對該系統進行優化,將編碼的時間減少下去。首先去除了編碼器中的冗余代碼,然后優化工作分三步:在PC機上實現H.264算法并進行優化;PC機H.264代碼的DSP化,可以在DSP上實現H.264的編解碼算法,但是,這樣實現的算法運行效率很低,因為所有的代碼都是由C語言編寫,并沒有完全利用DSP的各種性能,所以必須結合DSP本身的特點,對其進一步優化,才能實現H.264視頻解碼器算法對視頻圖像的實時處理,即要H.264的DSP算法優化。對于DSP代碼的優化共分為三個層次: 項目級優化、C程序級優化、匯編程序級優化。
4 結 語
在上述環境下,解碼器算法對QCIF測試序列已經能夠達到45~60 f/s的解碼速度,達到了實時性解碼的目的。測試結果表明,圖像主觀質量較好,無明顯方塊效應,碼率也比較低。另外,圖像編碼的實時性能與圖像的內容、運動的劇烈程度等都有一定的關系。在DM642板卡上實現的H.264視頻編解碼器具有功能強,使用靈活等特點,有廣泛的應用前景。相信在不久的將來,基于H.264算法和DSP處理器的可視電話、視頻會議、有線電視、無線流媒體通信等產品會逐漸地走進千家萬戶,視頻編解碼器在嵌入式處理終端上的應用會漸漸地成為應用的主流。
參考文獻
[1]仲元紅.基于H.264的視頻編解碼及DSP實現[D].重慶:重慶大學,2006.
[2]林琳.基于H.264的視頻芯片核心電路硬件設計[D].合肥:合肥工業大學,2007.
[3]何凌.基于 H.264的碼率控制算法研究與改進[J].電視技術,2004(11):20-23.
[4]H.264/ MPEG-4 Part 10 White Paper[EB/OL].http://www.vcodex.com,2002.
[5]脫冬然.基于H.264的視頻通信業務研究[D].長春:吉林大學,2007.
[6]王澎.H.264視頻編碼器在DSP平臺上的移植和優化[D].南京:東南大學,2006.
[7]張文俊.H.264視頻編碼的復雜度、碼率控制與質量評價[D].杭州:浙江大學,2005.
[8]楊芳芳.H.264編碼器的DSP實驗與優化[D].西安:西安電子科技大學,2008.
[9]李賓,高平.H.264編碼系統的特點及其應用前景[J].數字電視與數字視頻,2007(6):19-20.
[10]劉喜龍.基于H.264的嵌入式視頻服務器的設計[J].微計算機信息,2005,21(1):133-135.
[11]王超.基于網絡的H.264視頻監控系統的研究與實現[D].上海:上海交通大學,2007.
[12]梅俠.H.264核心算法的優化及基于DSP平臺的移植[D].南京:河海大學,2007.
[13]魏振宇.H.264快速算法研究及其在高速DSP平臺上的實現[D].北京:清華大學,2005.
[14]高博.基于H.264的視頻壓縮的DSP實現[D].西安:西北工業大學,2007.