H264 エンコード (イントラ予測)
イントラ予測モードでは、予測ブロックPは、符号化された再構成ブロックと現在のブロックに基づいて形成される。輝度ピクセルの場合、P ブロックは 4×4 サブブロックまたは 16×16 マクロブロックの相関演算に使用されます。4×4 輝度サブブロックには 9 種類の予測モードがあり、各 4×4 輝度サブブロックを独立して予測するため、詳細な画像符号化に適しています。16×16 輝度ブロックには 4 種類の予測モードがあり、 16×16 ルマ ブロック全体を予測し、平坦領域での画像符号化に適しています。クロマ ブロックにも、16×16 ルマ ブロック予測モードと同様の 4 つの予測モードがあります。エンコーダは通常、P ブロックとコード化されたブロックの差を最小限にする予測モードを選択します。
4×4ルミナンス予測モード
図 6.14 に示すように、4×4 ルマ ブロックの上と左のピクセル A ~ M が符号化および再構築され、コーデックで予測参照ピクセルとして使用されます。a~p は予測対象のピクセルで、A~M 値と 9 つのモードを使用して実現されます。このうち、モード 2 (DC 予測) は A ~ M の符号化画素に基づいて予測され、他のモードは必要な予測画素がすべて揃った場合にのみ使用できます。図 6.15 矢印は各モードの予測の方向を示します。モード 3 ~ 8 の場合、予測ピクセルは A ~ M の加重平均によって取得されます。たとえば、モード 4 では、d=round(B/4+C/2+D/4) になります。
モデル | 説明する |
---|---|
モード0(縦) | A、B、C、Dから対応するピクセル値を垂直方向に押し出す |
モード1(横) | I、J、K、L レベルから導出された対応するピクセル値 |
モード2(DC) | A〜DとI〜Lの平均値からすべてのピクセル値を推定します |
モード 3 (左下斜め) | 45°方向の画素補間により対応する画素値を取得 |
モード 4 (右下斜め) | 45°方向の画素補間により対応する画素値を取得 |
モード 5 (右垂直) | 対応する画素値は26.6°方向の画素値を補間することで得られます。 |
モード 6 (下位レベル) | 対応する画素値は26.6°方向の画素値を補間することで得られます。 |
モード 7 (左垂直) | 対応する画素値は26.6°方向の画素値を補間することで得られます。 |
モード8(上位レベル) | 対応する画素値は26.6°方向の画素値を補間することで得られます。 |
16×16予測モード
モデル | 説明する |
---|---|
モード0(縦) | 上のピクセルから対応するピクセル値を推定します。 |
モード1(横) | 左のピクセルから対応するピクセル値を推定します。 |
モード2(DC) | 対応するピクセル値は、上と左のピクセルの平均値から導出されます。 |
モード3(フラット) | 線形「平面」関数と左と上のピクセルを使用して、明るさの変化が緩やかな領域に適した、対応するピクセル値を導出します。 |
8×8クロマブロック予測モード
各イントラ符号化マクロブロックの 8×8 色差成分は、符号化された左上の色差ピクセルから予測され、通常、2 つの色差成分は同じ予測モードを使用します。
4 つの予測モードはイントラ 16×16 予測の 4 つの予測モードと似ていますが、モード番号が異なります。その中には、DC (モード 0)、水平 (モード 1)、垂直 (モード 2)、および平面 (モード 3) があります。
現在のブロック C のコーデックは次のように計算されます。
probableprediction mode=
min{prediction mode of A, predictionmodes of B}
当A (或者 B)的预测模式不可用时,
prediction mode of A= 2.
例えば
A ブロックと B ブロックの予測モードはそれぞれ 3 と 1 です。
most probable mode for block C =1
エンコーダは 4x4 ブロックごとにフラグを送信し、デコーダは次のようにデコードします。
Ifflag==1, prediction mode=most_probable_mode
Ifflag==0
If rem_intra4×4_pred_mode< most_probable_mode
prediction mode=rem_intra4×4_pred_mode
else
prediction mode=rem_intra4×4_pred_mode+1
これは、9 つの予測モードに必要な値は 8 つだけ (0 ~ 7) であることを意味します。