H.264預測編碼之幀內預測
預測編碼是視訊壓縮中最基本的編碼工具,常見的預測編碼為幀間預測和幀內預測。
視訊編碼中,主要的冗餘資訊是時間冗餘,其次是空間冗餘,視訊編碼通過幀間預測消除時間冗餘,通過幀內預測消除空間冗餘。接下來說說幀內預測。
幀內預測的具體方法分兩種,一維預測和二維預測。
一維預測是利用同行相鄰畫素點的相關性進行預測,一般下一個畫素點值總和它前一個畫素值比較接近,這樣我們就可以將前一個畫素值作為當前畫素點的預測值。
二維預測除了利用本行的相鄰畫素點進行預測外,還使用前一行的畫素點進行預測。通過給不同行的畫素值賦予相應的加權值,最後獲得預測值。
說完預測方法之後,接下來是針對具體的預測實現。
1、4x4亮度塊預測模式
圖一是獲取到的亮度巨集塊及要進行預測的4x4亮度塊。
圖二
圖二-a是利用畫素A~Q對a~p畫素進行4x4幀內預測。
圖二-b是預測方向,一個九個。
預測模式一共有九種:
0、Vertical。
1、horizontal。
2、DC。
3、diagonal down-left。
4、diagonal down-right。
5、vertical-right。
6、horizontal-down。
7、veritical-left。
8、horizontal-up。
九種預測模式如下圖:
圖三
九種預測模式對應的效果圖如下圖:
圖四
從效果圖可看出最佳預測模式為模式7(vertical-left)。
2、16x16亮度塊預測模式
16x16預測模式是4x4亮度預測模式的一種替代方法,預測模式共有四種。
模式0(垂直):從塊上部取樣推出(H)。
模式1(水平):從塊左側取樣推出(V)。
模式2(直流):從塊上部和左側的取樣的均值推出(H+V)。
模式3(平面): 對塊上部和左側的取樣H和V使用一個線性“平面”函式。
四種模式方向圖如下:
圖五
獲取到的16x16亮度巨集塊如下圖:
圖六
四種預測模式對應的效果圖如下:
圖七
從效果圖可知,效果最好的是模式3(plane)平面模式。
3、8x8色度塊預測模式
一個巨集塊的每個8x8色度分量從之前已編碼重構的上部和(或)左側的色度取樣中預測。色度塊的四種預測模式和16x16亮度塊預測模式非常相似,除模式號不同:直流(模式0)、橫向(模式1)、垂直(模式2)和平面(模式3)。相同的預測模式在色度塊中也始終適用。
最後對幀內預測技術進行總結:
a、H.264幀內預測提供了4x4和16x16兩種方式,使預測更加靈活準確,其中4x4塊用於影象細節部分的預測,可以提高預測精度;16x16塊用於預測平坦的影象區域,能夠在保證幀內預測精度的同時降低運算複雜度和位元速率。
b、H.264充分考慮了幀內畫素的統計分佈規律,詳細設定了多種方向的預測模式,能夠更好地匹配影象畫素分佈的真是情況,減少預測誤差。對於不同型別的影象,這種幀內預測方法能夠有效低逼進真實值,保證較高的預測精度。