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