摘要:H.264視頻編解碼標(biāo)準(zhǔn)中,幀內(nèi)預(yù)測是很重要的組成部分,它顯著提高了壓縮率,但增加了計(jì)算復(fù)雜性。文章研究了采用率失真優(yōu)化(RDO)技術(shù)進(jìn)行幀內(nèi)模式選擇以及目前常用的快速幀內(nèi)模式選擇方法。
關(guān)鍵詞:H.264標(biāo)準(zhǔn);幀內(nèi)預(yù)測;率失真優(yōu)化;模式選擇
0 引言
H.264編碼標(biāo)準(zhǔn)是當(dāng)前最新的視頻壓縮編碼國際標(biāo)準(zhǔn)。為了提高幀編碼的效率,它引入了幀內(nèi)預(yù)測算法,充分利用了幀內(nèi)相鄰宏塊間的信息相關(guān)性,只對預(yù)測值與實(shí)際值的差值進(jìn)行編碼,就可以只用很少的比特來表示該宏塊的信息。H.264采用RDO技術(shù)進(jìn)行幀內(nèi)預(yù)測模式選擇,用最少的比特獲得了最好的編碼效果,但為了確定一個(gè)宏塊的幀內(nèi)預(yù)測模式,需要計(jì)算592種組合模式的RD代價(jià),所以編碼器的復(fù)雜度很高。因此,研究RDO模式下的快速幀內(nèi)預(yù)測模式選擇算法具有重要的應(yīng)用價(jià)值。
1 H.264幀內(nèi)預(yù)測原理
宏塊采用RDO技術(shù)確定幀內(nèi)預(yù)測模式的過程如下:
(1)分別計(jì)算9種Intra4×4模式的代價(jià)RDCost,選擇具有最小代價(jià)的模式。
(2)把16個(gè)4×4塊最小的RDCost相加得到當(dāng)前宏塊Intra4×4方式下的RDCost。
(3)分別計(jì)算4種Intra16×16模式的SATD(Sum of Abso-lute Transformed Difference),選擇具有最小SATD的模式。計(jì)算該模式下的RDCost,得到當(dāng)前宏塊Intra16×16方式下的RDCost。
(4)比較前兩步獲得的RDCost,選擇具有最小RDCost的模式作為該宏塊的幀內(nèi)預(yù)測模式。
由上面的計(jì)算過程可知,為了確定一個(gè)宏塊的幀內(nèi)預(yù)測模式,需要計(jì)算592種不同的模式組合,RDCost的計(jì)算量相當(dāng)大。幀內(nèi)預(yù)測的模式選擇總體計(jì)算復(fù)雜度大,尤其體現(xiàn)在Intra4×4預(yù)測上。
2 幀內(nèi)預(yù)測模式研究
目前,對幀內(nèi)預(yù)測模式的優(yōu)化主要集中在兩個(gè)方面:一是對代價(jià)函數(shù)的簡化,選擇比RDO計(jì)算量更小的代價(jià)函數(shù);二是減少待選預(yù)測模式數(shù),可以基于一定的分析,預(yù)先排除不可能的模式。減少參與判別的模式個(gè)數(shù)是目前比較流行的研究方向,以下是常用的幾種方法:
(1)對宏塊避行4×4塊和16×16塊的預(yù)判
在H.264的幀內(nèi)預(yù)測中,對于亮度信息的預(yù)測有兩種類型,分別是4×4塊和16×16塊,其中4×4塊有9種預(yù)測模式,而16×16塊只有4種預(yù)測模式。通常,4×4亮度塊適合于紋理比較豐富的區(qū)域,而16×16塊適合于較為平坦的區(qū)域。H.264原有算法中遍歷所有模式后取最優(yōu)的方法,并沒有利用到宏塊本身平坦度的特征。因此可以考慮對于平坦的宏塊直接選擇16×16塊的預(yù)測模式,避免4x4塊方式的搜索,從而減少計(jì)算量。
文獻(xiàn)中的算法充分利用宏塊的MAD信息及時(shí)間/空間相關(guān)性,對宏塊進(jìn)行預(yù)判,在幀內(nèi)4×4塊和幀內(nèi)16×16塊預(yù)測模式之間進(jìn)行選擇。文獻(xiàn)中提出的算法是依據(jù)宏塊的某種特征來表征宏塊的平坦程度,對于平坦明顯的宏塊直接選擇16×16塊的預(yù)測模式,避免4×4塊方式的全搜索,從而減少計(jì)算量。
(2)估計(jì)圖像紋理特征,減少候選模式數(shù)量
H.264的幀內(nèi)預(yù)測模式中,大部分的預(yù)測模式都是基于方向的模式,在編碼中,如果選擇了某一方向?qū)?yīng)的預(yù)測模式,也就說明該塊的紋理具有該模式對應(yīng)的方向,最優(yōu)的幀內(nèi)預(yù)測模式是和視頻圖像塊的紋理方向密切相關(guān)的。
文獻(xiàn)通過計(jì)算相鄰宏塊的邊界像素差值,估計(jì)圖像的紋理方向,再根據(jù)此方向選擇相應(yīng)的幀內(nèi)預(yù)測模式,由此減少候選模式數(shù)量,簡化模式選擇過程,降低幀內(nèi)預(yù)測的計(jì)算復(fù)雜度。
(3)利用模式相關(guān)性減少候選模式數(shù)量
每個(gè)4×4塊的8種預(yù)測模式(DC模式除外)在方向上有一定的相關(guān)性,最佳預(yù)測模式和其他效果較好的模式具有相同的方向,即如果一種模式可以獲得最佳的預(yù)測效果,那么與它預(yù)測方向相同的模式也同樣可以產(chǎn)生較好的預(yù)測效果。
文獻(xiàn)利用幀內(nèi)4×4塊最優(yōu)預(yù)測模式與和它相鄰的預(yù)測模式之間率失真代價(jià)的高相關(guān)性,以及絕對變換誤差和與率失真性能之間的強(qiáng)相關(guān)性,有效地跳過一些不太可能的預(yù)測模式,對于幀內(nèi)4×4塊模式選擇過程只需進(jìn)行4次率失真代價(jià)計(jì)算即可。
(4)設(shè)置閾值,提前中止
雖然4×4塊共有九種預(yù)測方向,但在實(shí)際預(yù)測過程中,對大多數(shù)的子塊而言,前面的預(yù)測方向中已經(jīng)找到了最佳預(yù)測方向,后面的預(yù)測就顯得多余了。所以,可以通過設(shè)置閾值,提前中止預(yù)測過程。
文獻(xiàn)提出設(shè)定一閾值,在計(jì)算某種可能預(yù)測模式的代價(jià)值的過程中,將RDCost與這一設(shè)定的閾值作比較,如果大于設(shè)定的閾值,就可以排除這種預(yù)測模式,提前中止這種預(yù)測模式代價(jià)值的計(jì)算。文獻(xiàn)中還指出,閾值應(yīng)是一個(gè)動(dòng)態(tài)值,可根據(jù)相鄰宏塊的預(yù)測模式的代價(jià)值做出修正。
實(shí)際上,很多快速幀內(nèi)預(yù)測算法將上述的幾種方法結(jié)合在一起,以達(dá)到更好的優(yōu)化效果。例如,文獻(xiàn)首先依據(jù)圖像的紋理特征從9種4×4塊的預(yù)測模式中選出4種備選模式,然后根據(jù)SATD的特征以及相鄰塊的預(yù)測模式之間的相關(guān)性,選出最佳預(yù)測模式,從而有效減少預(yù)測模式,避免了不必要的RDCost計(jì)算。
3 結(jié)束語
幀內(nèi)預(yù)測技術(shù)的發(fā)展今后將集中在兩個(gè)方面:
(1)在原有標(biāo)準(zhǔn)的基礎(chǔ)上進(jìn)一步提高編碼效率?,F(xiàn)在針對H.254標(biāo)準(zhǔn)有了很多新的提案,例如雙向幀內(nèi)預(yù)測技術(shù),它比原有標(biāo)準(zhǔn)具有更好的編碼性能。
(2)在H.264編碼性能得到提高的同時(shí),編碼的復(fù)雜程度也大大提高了,從而也增加了運(yùn)算量,降低了運(yùn)算速度,所以為了滿足某些需求,比如實(shí)時(shí)視頻通信的需求,必須使用快速算法,還要盡量降低幀內(nèi)預(yù)測的運(yùn)算復(fù)雜度。