1. 程式人生 > >H.264預測編碼之幀內預測

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充分考慮了幀內畫素的統計分佈規律,詳細設定了多種方向的預測模式,能夠更好地匹配影象畫素分佈的真是情況,減少預測誤差。對於不同型別的影象,這種幀內預測方法能夠有效低逼進真實值,保證較高的預測精度。