モーション補正予測

ブロック モーション補正予測 (MCP) は予測の一種で、DirectX VA によって実装されます。 この種の予測は、MPEG/H.26x ファミリのコーデックに、JPEG などの純粋な静止フレーム コーディング方法にはない利点をもたらします。 ブロックベースの予測以外の種類のモーション補正予測は、DirectX VA によっては実装されません。

モーション補正予測では、以前に送信およびデコードされたデータが、現在のデータの予測として機能します。 予測値と実際の現在のデータ値の相違が、予測エラーです。 予測エラーはコード化されて予測に追加され、入力データの最終的な表現が取得されます。 コード化された予測エラーが MCP に追加されると、最終的にデコードされた画像が MCP で使用され、後続のコード化された画像が生成されます。

この再帰ループは、予測される要素に固有の、さまざまな種類のリセットによって中断されることがあります。 リセットは、デコード プロセスのセマンティクスによって記述されます (たとえばモーション ベクトルと係数の予測はスライス境界でリセットされ、時間枠予測チェーン全体はイントラ リフレッシュ フレームによってリセットされます)。

次の図は、モーション補正予測の信号フローを示しています。

Diagram illustrating the signal flow for motion-compensated prediction.

画像のモーション補正予測コーディングに必要な手順は、以下のとおりです。

  1. 参照ブロックは、以前にデコードされたフレームから抽出され、エンコードされたモード選択、モーション ベクトル、その他の予測コマンドによって指定されたとおりに変更されて、それぞれの画像ブロックの予測を形成します。

  2. 現在の入力データ ブロックと予測の差は変換され、エンコーダーで利用可能なビット レート内で可能な限り近似化され、その結果がコード化された予測エラーとして送信されます。

  3. 予測と逆変換された予測エラーが合計され、再構築された画像ブロックが形成されます。

  4. 再構築された画像ブロックは、後続の画像の予測に使用される参照フレーム バッファーに格納されます。

  5. 手順 1 に戻ってプロセスを繰り返します。

MCP プロセスに直接含まれないモーション ベクトル、DCT 係数、その他のデータでも、データの送信形式をよりコンパクトにするために予測が使用されます。 これらの予測インスタンスは、ホスト CPU プロセッサかビットストリーム パーサー/可変長デコード ユニットで実行されます。