摘 要:H.264是最新的視頻編碼國(guó)際標(biāo)準(zhǔn),是圖像通信研究領(lǐng)域的熱點(diǎn)問(wèn)題之一,利用高性能數(shù)字信號(hào)處理器來(lái)實(shí)現(xiàn)H.264實(shí)時(shí)編解碼是一種快速有效的方法,有助于H.264視頻標(biāo)準(zhǔn)的迅速推廣和應(yīng)用。TI公司生產(chǎn)的DM64X系列芯片具有很強(qiáng)的并行處理能力和信號(hào)處理功能,是實(shí)現(xiàn)H.264編解碼的理想平臺(tái)。給出視頻編解碼在DSP中實(shí)現(xiàn)的一些關(guān)鍵問(wèn)題,針對(duì)DM642的整體系統(tǒng)方案,設(shè)計(jì)出為H.264的實(shí)時(shí)實(shí)現(xiàn)搭建了良好的硬件平臺(tái),并給出系統(tǒng)的性能測(cè)試結(jié)果。解碼速度達(dá)到了實(shí)時(shí)的效果,圖像主觀質(zhì)量較好,無(wú)明顯方塊效應(yīng),碼率也比較低。
關(guān)鍵詞:H.264標(biāo)準(zhǔn);數(shù)字信號(hào)處理器;視頻編解碼;DM642
中圖分類(lèi)號(hào):TN919.81文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):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 引 言
基于互聯(lián)網(wǎng)的數(shù)字視頻產(chǎn)業(yè)前景看好,而3G的規(guī)模部署,也會(huì)推動(dòng)移動(dòng)視頻通信成為現(xiàn)實(shí)。但數(shù)字化后的視頻圖像具有數(shù)據(jù)海量性,給圖像的存儲(chǔ)和傳輸造成較大的困難。數(shù)字視頻壓縮編碼技術(shù)是解決這一問(wèn)題的關(guān)鍵技術(shù)[1]。H.264 以其良好的網(wǎng)絡(luò)適應(yīng)性和高編碼壓縮效率,靈活的語(yǔ)法配置,在視頻處理領(lǐng)域比以往的視頻編碼標(biāo)準(zhǔn)更加適合視頻處理的發(fā)展方向,更加適合不同應(yīng)用環(huán)境的對(duì)象。H.264充分考慮了多媒體通信對(duì)視頻編解碼的各種要求,有著多個(gè)技術(shù)閃光點(diǎn),在保留運(yùn)動(dòng)補(bǔ)償和變換編碼技術(shù)的基礎(chǔ)上,加入了諸如類(lèi)離散余弦整數(shù)變換(DCT)[2]、基于內(nèi)容的自適應(yīng)可變長(zhǎng)編碼(CAVLC)、基于上下文的自適應(yīng)二進(jìn)制算術(shù)編碼(CABAC),以及高精度、多模式的運(yùn)動(dòng)估計(jì)等新技術(shù),進(jìn)一步提高了編碼算法的壓縮效率和圖像回放質(zhì)量[3]。在肉眼主觀感受相同的情況下,H.264 較之H.263的編碼效率提高了50%左右[4,5]。
利用高性能數(shù)字信號(hào)處理器(DSP)來(lái)實(shí)現(xiàn) H.264 實(shí)時(shí)編碼器是一種快速有效的方法,有助于 H.264 視頻標(biāo)準(zhǔn)的迅速推廣和應(yīng)用,也指明了視頻圖像壓縮領(lǐng)域最新的研究方向。
1 H.264編碼的關(guān)鍵技術(shù)
1.1 基于靈活分割宏塊(MB)的運(yùn)動(dòng)矢量估計(jì)和補(bǔ)償以及增加變換的壓縮效果
H.264根據(jù)宏塊的編碼特性采用亮度塊直流變換,色度塊直流變換與普通差值變換相結(jié)合的方法。在運(yùn)動(dòng)估計(jì)時(shí),H.264信源編碼采用基于4×4塊的整數(shù)變換[6],可以靈活地選擇塊的大小[7,8]。而其他標(biāo)準(zhǔn)處理的像素塊大小均為16×16或者8×8。H.264以可變大小的塊來(lái)適應(yīng)不同應(yīng)用環(huán)境和要求,采用16×16,16 ×8,8×16,8×8四種模式;當(dāng)劃分為8×8模式時(shí),又可進(jìn)一步采用8×4,4×8,4×4三種子宏塊劃分模式進(jìn)一步劃分,如圖1所示。根據(jù)需要由不同尺寸的宏塊來(lái)執(zhí)行,采用整數(shù)變換既可以使運(yùn)動(dòng)物體的劃分更加精確,不可以減小運(yùn)動(dòng)物體邊緣的銜接誤差,處理好需要更多運(yùn)動(dòng)細(xì)節(jié)的場(chǎng)合,即以引入更小運(yùn)動(dòng)補(bǔ)償塊可以提高一般和特殊情況下的預(yù)測(cè)質(zhì)量,它可以提高主觀視覺(jué)效果,同時(shí)又減小了變換過(guò)程中的計(jì)算量。實(shí)驗(yàn)表明,應(yīng)用7種不同大小和形狀的塊可以比單一利用16×16塊進(jìn)行的編碼提高15%以上的壓縮率[9]。
圖1 宏塊與子宏塊的分解
1.2 支持1/4像素或1/8像素精度的運(yùn)動(dòng)估值
運(yùn)動(dòng)估計(jì)與補(bǔ)償算法是目前視頻壓縮技術(shù)中最為關(guān)鍵的部分,影響著編碼的速度、質(zhì)量和碼率,其編碼的復(fù)雜度也是整個(gè)編碼系統(tǒng)中最高的。
在H.264中通過(guò)6階FIR濾波器的內(nèi)插獲得1/2像素位置的預(yù)測(cè)值。當(dāng)獲得1/2像素值后,通過(guò)取整數(shù)像素位置和1/2像素位置像素值均值的方式獲得1/4像素位置的值。在高碼率情況下,提供1/8像素精度的運(yùn)動(dòng)估計(jì)。采用高精度運(yùn)動(dòng)估計(jì)會(huì)進(jìn)一步減小幀間預(yù)測(cè)誤差,減少經(jīng)變換和量化后的非0比特?cái)?shù),提高了編碼效率。利用1/4像素空間精度可以比原有的一個(gè)像素精度(整數(shù)精度)預(yù)測(cè)提高20%的編碼效率[9]。
1.3 多參考幀預(yù)測(cè)
參考幀是幀間預(yù)測(cè)編碼,也就是運(yùn)動(dòng)補(bǔ)償?shù)幕A(chǔ),根據(jù)它與待預(yù)測(cè)幀之間的位置關(guān)系,可分為前向參考幀和后向參考幀。
以往的編解碼技術(shù)在對(duì)P幀圖像進(jìn)行幀間預(yù)測(cè)時(shí),只允許以參考前一幀圖像進(jìn)行編碼,即以前一個(gè)I圖像或P圖像為參考幀,在對(duì)B圖像進(jìn)行預(yù)測(cè)時(shí),只允許參考前后幀圖像進(jìn)行編碼,即以前后兩個(gè)I圖像或P圖像為參考圖像。H.264則打破了這些限制,允許在從當(dāng)前幀的前幾幀中選擇一幀作為參考幀圖像,對(duì)宏塊進(jìn)行運(yùn)動(dòng)預(yù)測(cè),當(dāng)選用多參考幀模式時(shí),編碼器從幾個(gè)參考幀中選擇一個(gè)效果最好的參考幀,達(dá)到最佳的預(yù)測(cè)效果,參考幀圖像甚至可以是采用雙向預(yù)測(cè)編碼方式的圖像,大幅度降低了預(yù)測(cè)誤差。另外,幀間編碼部分還引入了SP幀,用于有效地實(shí)現(xiàn)編碼率環(huán)境下的切換,可用于隨機(jī)、快速播放過(guò)程,比單參考幀的方法節(jié)省5%~10%的傳碼率[10],并且有利于比特流的錯(cuò)誤恢復(fù)、解碼恢復(fù)更高圖像質(zhì)量。因此,多參考幀預(yù)測(cè)對(duì)周期性運(yùn)動(dòng)和背景切換能夠提供更好的預(yù)測(cè)效果。
1.4 消除塊效應(yīng)適應(yīng)性濾波器
基于分塊處理的變換編碼算法,忽略了物體邊緣的連續(xù)性,在低碼率情況下,容易出現(xiàn)方塊效應(yīng)。為消除在預(yù)測(cè)和變換過(guò)程中引入的塊效應(yīng),H.264對(duì)此采用了消除塊效應(yīng)適應(yīng)性濾波器,對(duì)宏塊邊緣進(jìn)行平滑,有效改進(jìn)圖像的主觀質(zhì)量[11]。但與以往標(biāo)準(zhǔn)不同的是,H.264的消除塊效應(yīng)濾波器位于運(yùn)動(dòng)估計(jì)循環(huán)內(nèi)部,可以利用消除塊效應(yīng)以后的圖像去預(yù)測(cè)其他圖像的運(yùn)動(dòng),即濾波后宏塊用于運(yùn)動(dòng)估計(jì),以產(chǎn)生更小的幀差進(jìn)行編碼,進(jìn)一步提高預(yù)測(cè)精度。
1.5 增強(qiáng)的熵編碼
以往標(biāo)準(zhǔn)的熵編碼采用變長(zhǎng)的哈夫曼編碼,碼表統(tǒng)一,不能適應(yīng)變換多端的視頻內(nèi)容,影響編碼效率。根據(jù)視頻內(nèi)容的不同,H.264利用較短的碼字來(lái)代表出現(xiàn)高頻率的符號(hào),可進(jìn)一步去除碼流中的冗余,提供兩種熵編碼,即上下文自適應(yīng)二進(jìn)制算術(shù)編碼(CABAC)和基于內(nèi)容的自適應(yīng)可變長(zhǎng)編碼(CAVLC),CABAC的編碼效率更高,也更復(fù)雜,在相同圖像質(zhì)量下,使用CABAC編碼電視信號(hào)可降低10%左右(10%~15%)的碼率,后者具有較強(qiáng)抗誤碼能力。
2 H.264的視頻編解碼的DSP平臺(tái)實(shí)現(xiàn)
在數(shù)字圖像處理中,要完成大量的數(shù)字信號(hào)處理工作,特別是對(duì)于H.264這樣的新一代視頻壓縮編碼標(biāo)準(zhǔn)。就其Baseline而言,其解碼復(fù)雜度是同等情況下H.263的2倍,而編碼復(fù)雜度更是H.263的3倍,解決這種高運(yùn)算量問(wèn)題,很大程度上依賴(lài)于高速DSP技術(shù),而且采用半導(dǎo)體制造工藝生產(chǎn)的DSP處理器可以有更低的功耗。因此為圖像的實(shí)時(shí)壓縮處理搭建了一個(gè)合理的DSP硬件平臺(tái)。
TI公司生產(chǎn)的DM64X系列芯片具有超高主頻、很強(qiáng)的并行處理能力和信號(hào)處理功能,是實(shí)現(xiàn)H.264編解碼的理想平臺(tái)。
TI公司生產(chǎn)的642系列是一款專(zhuān)門(mén)面向多媒體應(yīng)用的專(zhuān)用DSP,該DSP時(shí)鐘頻率高達(dá)600 MHz,8個(gè)并行運(yùn)算單元,處理能力達(dá)4 800 MIPS。它是在C64X的基礎(chǔ)上,增加了很多外圍設(shè)備和接口。可見(jiàn),DM642是一個(gè)強(qiáng)大的多媒體處理器,是構(gòu)成多媒體通信系統(tǒng)的良好平臺(tái)。它豐富的外圍接口使得它近乎是一個(gè)多媒體嵌入式系統(tǒng)的單芯片硬件平臺(tái);它的完全可編程性,又使它能夠兼容正在發(fā)展的各種多媒體信號(hào)處理標(biāo)準(zhǔn),構(gòu)成通用的軟件平臺(tái)。
該系統(tǒng)主要是為了對(duì)模擬視頻圖像(PAL制式)進(jìn)行采集,之后對(duì)其進(jìn)行壓縮,然后把壓縮后的數(shù)據(jù)通過(guò)擴(kuò)頻的方式發(fā)送到接收端,在接收端接收碼流后由DSP進(jìn)行解壓縮,之后再由DSP負(fù)責(zé)圖像的顯示,存儲(chǔ)等。所以總體設(shè)計(jì)方案必須包括視頻的輸入/輸出、網(wǎng)絡(luò)等接口。設(shè)計(jì)圖如圖2所示。
圖2 系統(tǒng)硬件框圖
在發(fā)送端,視頻輸出由視頻A/D芯片先轉(zhuǎn)換為數(shù)字視頻信號(hào),然后輸入到DM642的視頻端口2,由DM642進(jìn)行圖像采集,并把圖像數(shù)據(jù)送入SDRAM中,同時(shí)DM642對(duì)視頻圖像進(jìn)行實(shí)時(shí)壓縮,并把壓縮后的數(shù)據(jù)通過(guò)McBSP發(fā)送到信道編碼部分,完成發(fā)送端的工作。在接收端,接收由信道譯碼部分送來(lái)的壓縮圖像數(shù)據(jù),然后由DM642完成圖像的實(shí)時(shí)解壓,并把解壓后的數(shù)據(jù)送到SDRAM中,然后把解壓后的圖像數(shù)據(jù)送入視頻端口0,再由視頻端口0把數(shù)據(jù)送入視頻D/A,完成視頻的實(shí)時(shí)顯示。圖2中音頻/視頻接口作為擴(kuò)展,10/100 Mb/s的以太網(wǎng)卡以及USB控制器外設(shè)主要是為了方便接收端直接把數(shù)字視頻信號(hào)傳送到計(jì)算機(jī)或者終端各處,供電及復(fù)位電路完成對(duì)電路板的供電及復(fù)位功能。
3 H.264的視頻編解碼的DSP優(yōu)化
將H.264編碼器移植到DM642圖像處理平臺(tái)上,由于H.264的核心算法不僅在代碼結(jié)構(gòu)上需要改進(jìn),而且在具體的核心算法上也需要做較大的改動(dòng),因此整個(gè)系統(tǒng)的編碼速度非常令人不滿(mǎn)意,達(dá)不到實(shí)時(shí)應(yīng)用的要求,因此需要從各個(gè)方面對(duì)該系統(tǒng)進(jìn)行優(yōu)化,將編碼的時(shí)間減少下去。首先去除了編碼器中的冗余代碼,然后優(yōu)化工作分三步:在PC機(jī)上實(shí)現(xiàn)H.264算法并進(jìn)行優(yōu)化;PC機(jī)H.264代碼的DSP化,可以在DSP上實(shí)現(xiàn)H.264的編解碼算法,但是,這樣實(shí)現(xiàn)的算法運(yùn)行效率很低,因?yàn)樗械拇a都是由C語(yǔ)言編寫(xiě),并沒(méi)有完全利用DSP的各種性能,所以必須結(jié)合DSP本身的特點(diǎn),對(duì)其進(jìn)一步優(yōu)化,才能實(shí)現(xiàn)H.264視頻解碼器算法對(duì)視頻圖像的實(shí)時(shí)處理,即要H.264的DSP算法優(yōu)化。對(duì)于DSP代碼的優(yōu)化共分為三個(gè)層次: 項(xiàng)目級(jí)優(yōu)化、C程序級(jí)優(yōu)化、匯編程序級(jí)優(yōu)化。
4 結(jié) 語(yǔ)
在上述環(huán)境下,解碼器算法對(duì)QCIF測(cè)試序列已經(jīng)能夠達(dá)到45~60 f/s的解碼速度,達(dá)到了實(shí)時(shí)性解碼的目的。測(cè)試結(jié)果表明,圖像主觀質(zhì)量較好,無(wú)明顯方塊效應(yīng),碼率也比較低。另外,圖像編碼的實(shí)時(shí)性能與圖像的內(nèi)容、運(yùn)動(dòng)的劇烈程度等都有一定的關(guān)系。在DM642板卡上實(shí)現(xiàn)的H.264視頻編解碼器具有功能強(qiáng),使用靈活等特點(diǎn),有廣泛的應(yīng)用前景。相信在不久的將來(lái),基于H.264算法和DSP處理器的可視電話(huà)、視頻會(huì)議、有線(xiàn)電視、無(wú)線(xiàn)流媒體通信等產(chǎn)品會(huì)逐漸地走進(jìn)千家萬(wàn)戶(hù),視頻編解碼器在嵌入式處理終端上的應(yīng)用會(huì)漸漸地成為應(yīng)用的主流。
參考文獻(xiàn)
[1]仲元紅.基于H.264的視頻編解碼及DSP實(shí)現(xiàn)[D].重慶:重慶大學(xué),2006.
[2]林琳.基于H.264的視頻芯片核心電路硬件設(shè)計(jì)[D].合肥:合肥工業(yè)大學(xué),2007.
[3]何凌.基于 H.264的碼率控制算法研究與改進(jìn)[J].電視技術(shù),2004(11):20-23.
[4]H.264/ MPEG-4 Part 10 White Paper[EB/OL].http://www.vcodex.com,2002.
[5]脫冬然.基于H.264的視頻通信業(yè)務(wù)研究[D].長(zhǎng)春:吉林大學(xué),2007.
[6]王澎.H.264視頻編碼器在DSP平臺(tái)上的移植和優(yōu)化[D].南京:東南大學(xué),2006.
[7]張文俊.H.264視頻編碼的復(fù)雜度、碼率控制與質(zhì)量評(píng)價(jià)[D].杭州:浙江大學(xué),2005.
[8]楊芳芳.H.264編碼器的DSP實(shí)驗(yàn)與優(yōu)化[D].西安:西安電子科技大學(xué),2008.
[9]李賓,高平.H.264編碼系統(tǒng)的特點(diǎn)及其應(yīng)用前景[J].數(shù)字電視與數(shù)字視頻,2007(6):19-20.
[10]劉喜龍.基于H.264的嵌入式視頻服務(wù)器的設(shè)計(jì)[J].微計(jì)算機(jī)信息,2005,21(1):133-135.
[11]王超.基于網(wǎng)絡(luò)的H.264視頻監(jiān)控系統(tǒng)的研究與實(shí)現(xiàn)[D].上海:上海交通大學(xué),2007.
[12]梅俠.H.264核心算法的優(yōu)化及基于DSP平臺(tái)的移植[D].南京:河海大學(xué),2007.
[13]魏振宇.H.264快速算法研究及其在高速DSP平臺(tái)上的實(shí)現(xiàn)[D].北京:清華大學(xué),2005.
[14]高博.基于H.264的視頻壓縮的DSP實(shí)現(xiàn)[D].西安:西北工業(yè)大學(xué),2007.