H.264是由ISO/IEC(國際標(biāo)準(zhǔn)化組織/國際電子技術(shù)委員會)的MPEG和ITU-T(國際電信聯(lián)盟)聯(lián)合成立的JVT(聯(lián)合視頻專家組)制定的新一代數(shù)字視頻壓縮標(biāo)準(zhǔn)。H.264采用很多新的技術(shù),包括可變宏塊大小分割、多參考幀、1/4像素精度運動估計、幀內(nèi)預(yù)測、環(huán)形濾波等,大大提高了編碼性能。從統(tǒng)計的角度和宏塊紋理預(yù)測的角度出發(fā),提出了一種綜合的快速模式選擇算法,大大地減少了編碼時間。
1 宏塊模式選擇
對于每一個宏塊,H.264可以選擇SKIP,inter16×16,inter16×8,inter8×16,inter8×8五種幀間模式和intra16×16,intra4×4兩種幀內(nèi)模式。而其中in-ter8×8又進(jìn)一步可分成inter8×8,inter8×4,inter4×8,inter4×4四種子模式;intra16×16和intra4×4又分別有4種和9種預(yù)測模式。在JM 8.6參考軟件中,選擇所有模式中率失真代價值最小的模式作為最佳模式。其中率失真代價函數(shù)定義如下:
式中:SK為相應(yīng)宏塊;IK為相應(yīng)的編碼模式;Q為量化參數(shù);DREC是失真度;RREC為碼率。
從而每個宏塊都要經(jīng)過168次率失真代價值的計算,才能最終選出一種最佳模式,且每次率失真代價值計算都要對殘差進(jìn)行整數(shù)DCT變換、量化、熵編碼、熵解碼、反量化、逆整數(shù)DCT變換。因此,參考軟件對于模式選擇的計算量非常大。
2 宏塊模式的統(tǒng)計特征分析
表1是JM 8.6模型中,未采用任何快速模式選擇,并且運動搜索采用全搜索的情況下,各序列所采用的編碼模式的百分比。其中編碼幀數(shù)為100幀,I幀周期為30幀,碼率為73 Kb/s,QP=28。
由表1可知,無論哪種序列,7種編碼模式所占的比重并不均衡,SKIP模式和inter16×16模式占據(jù)了很大的比重。這說明圖像細(xì)節(jié)還是占據(jù)了一幀圖像的少部分,視頻序列中大部分依然由緩慢變化的背景組成。而選中概率大的SKIP模式的率失真代價計算很簡單,因為沒有殘差,也就不存在DCT變換,且沒有多參考幀的選擇、運動搜索;inter16×16模式稍顯復(fù)雜,但也遠(yuǎn)遠(yuǎn)沒有其他幾種模式復(fù)雜。相反,出現(xiàn)概率很小的其他模式運算量卻非常大,尤其是inter8×8(inter8×8的運動搜索運算量非常大且子模式多)和intra4×4(預(yù)測模式非常多)。因此,對所有模式進(jìn)行遍歷選擇時,實際上很大一部分時間是消耗在并未最后起決定作用的幾種模式的代價值計算上。因此如果能對概率非常大的幾種模式進(jìn)行早期判決,或者對運算量非常大但選中概率非常小的inter8×8和intra4×4縮小選擇范圍,從整體編碼的性能上來講,應(yīng)該能節(jié)省大量的編碼時間,提高編碼速度。
3 SKIP模式快速判決算法
3.1 SKIP模式的特征
在對當(dāng)前宏塊采用SKIP模式進(jìn)行編碼時,它具有以下4個特征:
(1)它不在5幀備選參考幀中進(jìn)行選擇。只以第0個參考幀作為參考幀;
(2)它并不進(jìn)行運動搜索,因此它的運動矢量經(jīng)過相鄰宏塊的運動矢量的預(yù)測得到預(yù)測值MVp后,并沒有運動矢量的殘差MVD;
(3)在對它進(jìn)行運動矢量的預(yù)測的時候,是以16×16(即一個宏塊)大小為單位;
(4)它經(jīng)過幀間預(yù)測后,并不編碼殘差,那么也就沒有整數(shù)DCT變換,或者可以看成它的DCT值為0。
在采用SKIP模式編碼后,性能是否最佳,通常情況下要用率失真代價值跟其他模式進(jìn)行比較才能決定。但是,如果在采用其他正常方式進(jìn)行編碼后,反過來,發(fā)現(xiàn)整個宏塊的編碼數(shù)據(jù)具有上述的某些或全部特征后,或許可以作為提前判斷當(dāng)前編碼宏塊模式為SKIP模式的依據(jù),即將上述4個必要條件的某幾個作為判斷當(dāng)前宏塊最佳模式為SKIP模式的充分條件。當(dāng)然,這樣處理的結(jié)果并不準(zhǔn)確,但是如果準(zhǔn)確率較高,應(yīng)該對編碼效果的影響并不大。
3.2 SKIP模式快速判決方法分析
文獻(xiàn)[1]提出了一種以DCT系數(shù)是否為全0作為判斷條件來進(jìn)行判斷。這種方法比較簡單,從理論上講應(yīng)該有一定的準(zhǔn)確性,因為除了SKIP模式,其他模式的DCT系數(shù)為全零可能性并不大。文獻(xiàn)[2]則提出提出了一種比較苛刻的方法,它利用SKIP模式的所有特征,然后作為判決條件,即當(dāng)一個宏塊滿足第3.1節(jié)的4個條件時,便判斷為SKIP模式。表2是對兩種方法進(jìn)行實驗后判斷準(zhǔn)確性的統(tǒng)計值。
由表2可知,這兩種方法準(zhǔn)確性比較高,尤其是方法2,因為它的條件非??量?,這也符合文獻(xiàn)[2]中的敘述。但是這兩種方法判斷正確性高,文獻(xiàn)中卻忽略了一個重要參數(shù),即漏判決率。該兩方法對于已經(jīng)判決出的模式,正確性非常高,但是由于條件比較苛刻,它卻未判斷出很多本該是SKIP模式的宏塊,那么這些宏塊依然需要使用最原始的方法進(jìn)行判斷,快速判決也就失去了其意義。
3.3 該文的SKIP模式快速判決方法
基于前一節(jié)的考慮,在此對文獻(xiàn)[2]提出的方法,將整數(shù)DCT系數(shù)為全0這一條件舍去,實驗結(jié)果顯示如表3中方法3所示。由表3可知,漏判率有所下降,但是依然很高。
最終,摒棄了采用SKIP模式的某幾種特征的組合作為判決條件,依然采用率失真代價來判斷。但是實驗中利用SKIP模式的率失真代價跟inter16×16模式的率失真代價值比較作為判決條件,即當(dāng)滿足RDcost (SKIP)≤RDcost(inter16×16)時,認(rèn)為當(dāng)前宏塊的最佳模式為SKIP模式。這出于這樣的假設(shè),即在分塊大小都為16×16的情況下,如果沒有采用多參考幀選擇、運動估計以及對殘差進(jìn)行編碼這樣非常簡陋的模式的率失真代價值依然比采用了相關(guān)技術(shù)的inter16×16模式的率失真代價值還小,則說明這一宏塊的細(xì)節(jié)非常少,該宏塊為SKIP模式的概率應(yīng)該非常大。當(dāng)然不排除一種情況就是當(dāng)前宏塊采用SKIP模式和inter16×16模式本身失真都非常嚴(yán)重,遠(yuǎn)遠(yuǎn)高于其他采用更細(xì)的分塊模式。此時率失真值主要由碼率決定,那么由于SKIP模式的碼率要低得多,從而SKIP的率失真值比inter16×16要小,導(dǎo)致誤判。表3是經(jīng)實驗得到的準(zhǔn)確度表。由該表看出,該方法(方法4)判斷準(zhǔn)確性也很高,但卻沒有一個漏判,這是因為此方法本身用的是率失真代價值與inter16×16的比較,符合所有模式中率失真代價值最低必然符合比inter16×16模式的代價低這一條件。因此這里采用此方法作為SKIP模式的快速判決方法。
4 基于紋理預(yù)測的inter8×8子模式快速選擇
文獻(xiàn)[3]提出一種假設(shè):宏塊的代價值隨分塊方向單調(diào)增減。也就是說宏塊或者子塊如果最佳的分塊方向是縱向(inter8×16或者inter4×8)或者橫向(inter16×8或者inter8×4),那么與相應(yīng)方向相符的分塊方式代價值必然要小于與該最佳方向相反的分塊方式的代價值,即大的分塊方式的宏塊代價值的比較大體反應(yīng)了宏塊的紋理方向。利用這一點,對inter8×8模式的選擇范圍進(jìn)行限定,以縮小子模式選擇范圍。圖1描述了對inter8×8子模式可選范圍的確定。其中Jmode=REF_COST(mode)+MV_COST(mode)。
5 Intra模式快速選擇的簡化算法
采用幀內(nèi)預(yù)測時,宏塊可以分成intra16×16和in-tra4×4兩種模式。其中intra4×4用到了9種預(yù)測模式,它的預(yù)測算法并不復(fù)雜,但是對于率失真代價的計算量卻非常可觀。因此,對于幀內(nèi)模式,人們已經(jīng)提出了很多種快速算法。單純針對幀內(nèi)模式,這些快速算法確實對編碼速度的提高程度非常大。但是從整個視頻序列來看,效果并不明顯。因為對于P幀,從統(tǒng)計結(jié)果來看,in-tra模式所占的比重非常小,而運算量極大的intra4×4模式所占比重更是微乎其微。表4是各序列在P幀及I幀中intra模式所占的百分比統(tǒng)計。
對于I幀,由于采用的全部是intra模式,且由上表可以看出,intra4×4模式所占的比重卻非常高,本可以考慮采用某種快速選擇算法。但是由于I幀在整個序列中所占比重不大,通常每30幀1幀I幀。因此,改進(jìn)I幀的模式選擇,對于整個序列來說,同樣是微乎其微。因此針對intra模式,本文提出了一種簡化算法,即忽略P幀中的intra4×4模式,但為保證視頻質(zhì)量,保留intra16×16模式;對I幀的模式選擇,采用最原始的算法。表5是采用該方法后PSNR和編碼時間與JM 8.6原始算法的性能比較。由表5可看出,編碼時間有了比較大的下降,PSNR下降并不明顯,且算法也并不復(fù)雜。
6 綜合實驗結(jié)果
最后,結(jié)合上述三方面的方法進(jìn)行了實驗,實驗結(jié)果與JM 8.6參考軟件的性能比較如表6和表7。其中,I幀周期是30,起始QP值為28,啟用了碼率控制,編碼幀數(shù)為100。
結(jié)果顯示,除了運動較為劇烈的mobile序列以外,PSNR并沒有明顯的下降,但是編碼時間下降平均達(dá)到37%左右。
7 結(jié) 語
在研究了JM 8.6參考軟件的基礎(chǔ)上,提出了基于統(tǒng)計與紋理預(yù)測的綜合快速模式選擇算法。實驗數(shù)據(jù)顯示,該算法對于整個圖像序列編碼時間平均降低了37%左右,而同時圖像的峰值信躁比降低了0.02~0.08 dB,圖像的質(zhì)量并沒有明顯的下降。由于該算法對于固定背景比較多、運動對象比較少的序列具有更好的優(yōu)化效果,因此更加適用于視頻會議(電話)、遠(yuǎn)程視頻監(jiān)控等場合。