基于H.264視頻編解碼DSP實現(xiàn)與優(yōu)化
摘要:H.264是最新的視頻編碼國際標(biāo)準(zhǔn),是圖像通信研究領(lǐng)域的熱點問題之一,利用高性能數(shù)字信號處理器來實現(xiàn)H.264:實時編解碼是一種快速有效的方法,有助于H.264視頻標(biāo)準(zhǔn)的迅速推廣和應(yīng)用。TI公司生產(chǎn)的DM64X系列芯片具有很強的并行處理能力和信號處理功能,是實現(xiàn)H.264編解碼的理想平臺。給出視頻編解碼在DSP中實現(xiàn)的一些關(guān)鍵問題,針對DM642的整體系統(tǒng)方案,設(shè)計出為H.264的實時實現(xiàn)搭建了良好的硬件平臺,并給出系統(tǒng)的性能測試結(jié)果。解碼速度達到了實時的效果,圖像主觀質(zhì)量較好,無明顯方塊效應(yīng),碼率也比較低。
關(guān)鍵詞:H.264標(biāo)準(zhǔn);數(shù)字信號處理器;視頻編解碼;DM642
0 引言
基于互聯(lián)網(wǎng)的數(shù)字視頻產(chǎn)業(yè)前景看好,而3G的規(guī)模部署,也會推動移動視頻通信成為現(xiàn)實。但數(shù)字化后的視頻圖像具有數(shù)據(jù)海量性,給圖像的存儲和傳輸造成較大的困難。數(shù)字視頻壓縮編碼技術(shù)是解決這一問題的關(guān)鍵技術(shù)。H.264以其良好的網(wǎng)絡(luò)適應(yīng)性和高編碼壓縮效率,靈活的語法配置,在視頻處理領(lǐng)域比以往的視頻編碼標(biāo)準(zhǔn)更加適合視頻處理的發(fā)展方向,更加適合不同應(yīng)用環(huán)境的對象。H.264充分考慮了多媒體通信對視頻編解碼的各種要求,有著多個技術(shù)閃光點,在保留運動補償和變換編碼技術(shù)的基礎(chǔ)上,加入了諸如類離散余弦整數(shù)變換(DCT)、基于內(nèi)容的自適應(yīng)可變長編碼(CAVLC)、基于上下文的自適應(yīng)二進制算術(shù)編碼(CABAC),以及高精度、多模式的運動估計等新技術(shù),進一步提高了編碼算法的壓縮效率和圖像回放質(zhì)量。在肉眼主觀感受相同的情況下,H.264較之H.263的編碼效率提高了50%左右。
利用高性能數(shù)字信號處理器(DSP)來實現(xiàn)H.264實時編碼器是一種快速有效的方法,有助于H.264視頻標(biāo)準(zhǔn)的迅速推廣和應(yīng)用,也指明了視頻圖像壓縮領(lǐng)域最新的研究方向。
1 H.264編碼的關(guān)鍵技術(shù)
1.1 基于靈活分割宏塊(MB)的運動矢量估計和補償以及增加變換的壓縮效果
H.264根據(jù)宏塊的編碼特性采用亮度塊直流變換,色度塊直流變換與普通差值變換相結(jié)合的方法。在運動估計時,H.264信源編碼采用基于4×4塊的整數(shù)變換,可以靈活地選擇塊的大小。而其他標(biāo)準(zhǔn)處理的像素塊大小均為16×16或者8x8。H.264以可變大小的塊來適應(yīng)不同應(yīng)用環(huán)境和要求,采用16×16,16×8,8×16,8×8四種模式;當(dāng)劃分為8×8模式時,又可進一步采用8×4,4×8,4×4三種子宏塊劃分模式進一步劃分,如圖1所示。根據(jù)需要由不同尺寸的宏塊來執(zhí)行,采用整數(shù)變換既可以使運動物體的劃分更加精確,不可以減小運動物體邊緣的銜接誤差,處理好需要更多運動細節(jié)的場合,即以引入更小運動補償塊可以提高一般和特殊情況下的預(yù)測質(zhì)量,它可以提高主觀視覺效果,同時又減小了變換過程中的計算量。實驗表明,應(yīng)用7種不同大小和形狀的塊可以比單一利用16×16塊進行的編碼提高15%以上的壓縮率。
1.2 支持l/4像素或l/8像素精度的運動估值
運動估計與補償算法是目前視頻壓縮技術(shù)中最為關(guān)鍵的部分,影響著編碼的速度、質(zhì)量和碼率,其編碼的復(fù)雜度也是整個編碼系統(tǒng)中最高的。
在H.264中通過6階FIR濾波器的內(nèi)插獲得1/2像素位置的預(yù)測值。當(dāng)獲得1/2像素值后,通過取整數(shù)像素位置和1/2像素位置像素值均值的方式獲得l/4像素位置的值。在高碼率情況下,提供1/8像素精度的運動估計。采用高精度運動估計會進一步減小幀間預(yù)測誤差,減少經(jīng)變換和量化后的非0比特數(shù),提高了編碼效率。利用1/4像素空間精度可以比原有的一個像素精度(整數(shù)精度)預(yù)測提高20%的編碼效率。
1.3 多參考幀預(yù)測
參考幀是幀間預(yù)測編碼,也就是運動補償?shù)幕A(chǔ),根據(jù)它與待預(yù)測幀之間的位置關(guān)系,可分為前向參考幀和后向參考幀。
以往的編解碼技術(shù)在對P幀圖像進行幀間預(yù)測時,只允許以參考前一幀圖像進行編碼,即以前一個I圖像或P圖像為參考幀,在對B圖像進行預(yù)測時,只允許參考前后幀圖像進行編碼,即以前后兩個I圖像或P圖像為參考圖像。H.264則打破了這些限制,允許在從當(dāng)前幀的前幾幀中選擇一幀作為參考幀圖像,對宏塊進行運動預(yù)測,當(dāng)選用多參考幀模式時。編碼器從幾個參考幀中選擇一個效果最好的參考幀,達到最佳的預(yù)測效果,參考幀圖像甚至可以是采用雙向預(yù)測編碼方式的圖像,大幅度降低了預(yù)測誤差。另外,幀問編碼部分還引入了SP幀,用于有效地實現(xiàn)編碼率環(huán)境下的切換,可用于隨機、快速播放過程,比單參考幀的方法節(jié)省5%~lO%的傳碼率,并且有利于比特流的錯誤恢復(fù)、解碼恢復(fù)更高圖像質(zhì)量。因此,多參考幀預(yù)測對周期性運動和背景切換能夠提供更好的預(yù)測效果。
評論