H.264學習筆記2——幀內預測


幀內預測:根據經過反量化和反變換(沒有進行去塊效應)之后的同一條帶內的塊進行預測。

A、4x4亮度塊預測:

  用到的像素和預測方向如圖:

    

  a~f是4x4塊中要預測的像素值,A~Q是臨塊中解碼后的參考值。0~8是4x4的亮度塊的9個預測方向(模式)。當E~H不可得時,用D代替。

  A~Q在下面情況下不可用:

    》不在當前圖像或條帶;在該4x4塊之前還沒有被編碼;位於幀間編碼宏塊,且constrained_intra_pred為1;

  對於9個預測模式,簡述如下:

    》模式0:垂直模式,條件:A~D可用。

    》模式1:水平模式,條件:I~L可用。

    》模式2:DC模式,條件:A~D或I~L可用。

    》模式3~8:方向模式,條件和預測值參考書籍。

  其中模式0~5的預測值計算方法如下圖:

    

B、16x16的亮度塊預測:

  參考像素為左邊16個、上邊16個和左上1個共33個像素,分別記為p(-1,y)、p(x,-1)、p(-1,-1)。參考像素在下面情況下不可用:

    》不位於當前圖像或條帶;位於幀間宏塊,且constrained_intra_pred為1;

  預測模式有4種:

    》模式0:垂直預測,條件:p(x,-1)可用;

    》模式1:水平預測,條件:p(-1,y)可用;

    》模式2:DC預測,條件:p(x,-1)或p(-1,y)可用;

    》模式3:平面(plane)預測。

C、8x8的色度塊預測:

  色度塊類似16x16的亮度塊,參考像素為17個,共垂直、水平、DC和平面1中預測模式。

D、幀內預測模式的選擇:

  亮度和色度的幀內預測,都有多種預測策略,因此實際應用中要選擇最優的幀內預測策略。

  對於色度塊預測,只能采用8x8的分塊大小,只需要比較4中模式的代價(用RDO模型),選擇代價最小的模式即可。

  對於亮度塊預測,可以采用16x16和4x4的塊大小,所以需要先后計算出9中4x4預測模式的最小代價(RDO模型)和4中16x16預測模式的最小代價(SATD公式),然后從中選擇較小的預測模式。

E、4x4亮度塊的預測模式編碼:

  由於4x4塊有9種預測模式,如果完全編碼需要4bits,所以根據該塊周圍(上和左)邊的4x4塊的預測方式來推斷當前塊的預測模式。如果推斷的預測模式一直,則只需要傳輸1bit(pred_intra4x4_pred_mode_flags=0),否則傳輸需要4(rem_intra4x4_pred_mode為4x4亮度塊預測模式的編碼值)+1(pred_intra4x4_pred_mode_flags=1)=5bits。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM