イントラ予測モードの図示
AV1 specification を読む (デコード処理:イントラ予測)について、図を交えて解説します。
http://qiita.com/srmfsan/items/4e3936243baaf4975b82
AV1のイントラ予測は8方向+TM予測+DC予測で、H.264/AVCとほぼ同等です。
予測方向を示します。
予測ブロックサイズ=変換ブロックサイズです。
予測ブロックに隣接する画素を使って、予測ブロック内の画素を生成します。
隣接画素は、1-2-1フィルタ・1-1フィルタ・単純コピーのどれかを適用します。
このページでの表記法は以下の通りとします。
●で開始する矢印は隣接画素にフィルタを適用したものを、矢印の先の画素の予測値とするものです。
画素中心に●がある場合(上段)では、隣接3画素に1-2-1フィルタを適用します。
画素間に●がある場合(中段)では、隣接2画素に1-1フィルタを適用します。
単なる矢印(下段)では、フィルタを適用せずに画素をコピーします。
橙色の隣接画素は、その予測モードでブロックを予測する場合に参照される画素です。
では、順番に予測モードごとの処理をみていきましょう。
V_PRED, H_PRED
V_PREDは垂直方向の予測、H_PREDは水平予測の予測です。
それぞれ、上・左の隣接画素の単純コピーです。
D45_PRED, D135_PRED(45度方向の予測)
D45_PREDは右上-左下方向の予測です。
1-2-1フィルタをかけて予測します。
予測ブロック右下端だけは特殊で、1-3-0 フィルタとなります。
これは、右上方向の隣接画素の制限によるものです。
D135_PREDは左上-右下方向の予測です。
D45_PREDと同様、1-2-1フィルタをかけて予測します。
D117_PRED, D153_PRED
斜め方向の予測です。
D117_PREDでは、偶数行と奇数行に分けて図示しています。
予測方向に対する隣接画素の位置に応じて、1-2-1フィルタ、1-1フィルタを使い分けていることに注意しましょう。
D153_PREDはD117_PREDを90度回転させたものです。
D63_PRED, D207_PRED
こちらも斜め方向の予測です。
D63_PREDでは、偶数列と奇数列に分けて図示しています。
予測方向に対する隣接画素の位置に応じて、1-2-1フィルタ、1-1フィルタを使い分けていることに注意しましょう。
また、連続する2行の画素値が同じになることにも注意しましょう。
D207_PREDはD63_PREDを90度回転させたものです。
TM予測
TM_PREDは予測対象の画素の真上・真左・左上画素を使って予測します。
H.264のPlane予測、H.265のPlanar予測と似ていますが、予測対象ブロックが平面や曲面となるような予測ではありません。
傾きを予測するのではなく直接画素値を使用するので、隣接画素のテクスチャ情報を保存したまま予測することになります。
隣接画素の取得
イントラ予測では、予測モードに応じて予測ブロックの右上・上・左上・左の隣接画素を必要とします。
隣接画素は常に利用可能 (available) であるわけではなく、画面端・未処理ブロックなどのために利用できない (not available) 場合があります。
ここでは、どのように隣接画素を取得するかについて説明します。
・・・後で書く