ITU-T H.263

ITU-T 推奨 H.263 は、低ビット レート通信用のビデオ コーディングと題されています。 この推奨事項では、H.261、MPEG-1、MPEG-2 に比べて圧縮パフォーマンスが向上します。 H.263 標準には、H.263 の最も基本的な機能のみをサポートするベースライン モードの操作が含まれています。 また、さまざまな目的に使用できる多数の、オプションとなる拡張操作モードも含まれています。 ベースライン H.263 予測は、MPEG-1 機能のサブセットを使用して、このインターフェイスで動作します。 ベースライン モードには、双方向の予測は含まれず、前方予測のみが含まれます。

丸め制御: いくつかのH.263オプションモードでは丸め制御が必要となります。 この機能は、DXVA_PictureParametersbRcontrol メンバーによってサポートされています。

画像境界上のモーション ベクトル: H.263 Annex D で定義されているように、いくつかの H.263 オプション モードを使用すると、画像の境界外の位置に対応するモーション ベクトルを使用できます。DXVA_PictureParametersbPicExtrapolation メンバーは、アクセラレータがこのようなモーションをサポートする必要があるかどうかを示します。 アクセラレータが画像境界上のモーション ベクトルをサポートするには、2 つの方法があります。 いずれの場合も、結果は同じとなります。

  • 各サンプル フェッチのアドレスの値をクリップして、画像の境界内に収まるようにします。

  • 複製されたサンプルを使用して画像を埋め込み、1 つのマクロブロックの幅と高さで使用される実際のメモリ領域を図の各境界線全体に広げます。

双方向モーション予測: オプションの H.263 予測操作で使用される双方向モーション予測では、MPEG-1 とは異なる丸め演算子が使用されます。 (上向き丸めではなく、半分の整数値の下向き丸めを使用します)。DXVA_PictureParametersbBidirectionalAveragingMode メンバーは、双方向のモーション補正で予測平面を結合するために使用される丸め方法を示します。

4 MV モーション補正 (INTER4V): H.263 の各マクロブロックのサイズは 16x16 ですが、オプションのモード (H.263 の Annex F や Annex J など) では、4 つのモーション ベクトルを 1 つのマクロブロックに対して送信でき、マクロブロック内の 4 つの 8x8 輝度ブロックごとに 1 つのモーション ベクトルが送信されます。 対応する 8x8 クロミナンス領域では、1 つの派生モーション ベクトルが使用されます。

オーバーラップブロックモーション補正(OBMC):H.263 Annex Fには、INTER4Vサポートに加えて、輝度サンプル用のオーバーラップブロックモーション補正(OBMC)が含まれています。 OBMC 予測は、マクロブロックの前方予測のために 12 個のモーション ベクトルを送信できるようにすることでサポートされています。

OBMC 予測ブロックは、ハードウェア アクセラレータで次の 3 つの平面に編成された予測の組み合わせとして実現できます。

  • 現在の平面 (平面インデックスが 0)

  • 上/下の平面 (平面インデックスが 1)

  • 左/右平面 (平面インデックスが 2)

3 つの平面は、H.263 セクション F.3 で定義されているブロック q(x,y)、r(x,y)、および s(x,y) の一時ストレージとして機能できます。 3 つの平面のそれぞれが 4 つのブロックすべてに対して入力された後、H.263 セクション F.3 の式に従って結合し、H.263 Annex F で与えられたそれぞれの H 行列によって重み付けすることができます。

一例として、OBMC 輝度マクロブロック予測は、8x4 図形の 8 つの上下予測ブロック、4x8 図形の 8 つの左右ブロック、および 8x8 図形の 4 つの現在のブロックで構成できます。 インデックス 0 を持つ平面の 4 つのモーション ベクトルすべてが同じモーション ベクトル (つまり、INTER4V マクロブロックにない場合) がある場合は、16x16 のマクロブロック予測を 16x16 平面全体に格納できます。

DirectX VA で OBMC プロセスを実装するために、次の図に示すように、マクロ ブロックに対して 10 個のモーション ベクトルが送信されます。 最初の 4 つのモーション ベクトルは、現在のマクロ ブロックの Y₀、Y₁、Y₂、Y₃ ブロック用です。 その後、リモート モーション ベクトルは次の順序で送信されます。

  1. マクロ ブロックの上部の左右の半分。

  2. マクロ ブロックの左側の上下の半分。

  3. マクロ ブロックの右側の上下の半分。

次の図は、OBMC 処理を使用するときにマクロ ブロックに送信されるモーション ベクトルを示しています。 (文字 C は、現在のマクロ ブロックのモーション ベクトルを示します。文字 R は、現在のマクロ ブロックに関してリモートであるモーション ベクトルを示します。

Diagram showing ten motion vectors for a macroblock in OBMC processing.

H.263 では、マクロブロックの下部の左右の半分に個別のリモート ベクトルが使用されず、現在のマクロブロックのベクトルが再利用されることに注意してください。

次の図は、H.263 の OBMC 処理で使用される 3 種類の予測プレーンに 1 つの 8x8 ブロックがどのように配置されるかを示しています。

Diagram depicting H.263 registration of an 8x8 block in OBMC prediction planes.

PB フレーム (Annex G および M):このモードでは、P フレームと疑似 B フレームのマクロブロックが、ユニークなPB フレーム画像コーディングタイプに多重化されます。 各マクロブロックの B 部分は、マクロ ブロックの P 部分にエンコードされた情報から借用されます。B フレームの前方および後方のモーション ベクトルは P フレーム ベクターからスケーリングされ、再構築された P フレーム マクロブロックは B 部分の後方参照として機能します。 PB フレームには擬似的なB フレームのみが含まれます。各マクロ ブロックの後方予測では、同じ PB マクロブロック内に含まれる再構築された P マクロブロックのみを参照できるためです。 ただし、従来の B フレーム セマンティクスと同様に、PB フレーム内の B マクロブロックは前方参照フレーム内の任意の場所を参照できます。 後方参照の制限により、下位予測ブロック図形が小さくなります (H.263 図 G.2 に記載のとおり)。 PB フレームは、PB フレームの P 部分を P フレームとして表すことによって DirectX VA でサポートされ、PB フレームの B 部分は、2 つのモーション ベクトルを持つユニークな B-in-PB タイプのマクロブロックを含む個別の B-in-P 双方向予測画像として表されます。

ブロック解除フィルタ (Annex J):特別なコマンドは、Annex J と同様にモーション補正された予測ループ内で 使用される場合でも、H.261 画像または H.263 ベースライン画像をブロック解除する場合と同様に、ループ外で使用される場合でも、ブロック解除フィルタを高速化するために定義されます。 ホスト CPU、必要に応じてブロックのグループ (GOB) またはスライス セグメントの境界を観察するブロック解除コマンドを作成する必要があります。

参照画像の選択 (Annex N および U):各予測ブロックの画像インデックス選択フィールドを使用して、アクセラレータによって複数の参照フレームがサポートされます。

スケーラビリティ (Annex O):テンポラル、SNR、および空間スケーラビリティ機能は、H.263 Annex O で指定されています。H.263 テンポラル スケーラビリティ B フレームは、DirectX VA において MPEG-1 B フレームと非常によく似ています。 空間スケーラビリティでは、下位レイヤーの参照画像をアップサンプリングしてから、アップサンプリングされた画像を拡張レイヤーの図をコーディングするための参照図として使用する必要があります (他のすべての側面では、空間スケーラビリティは基本的に、信号対ノイズ比と一時的なスケーラビリティと同じです)。 H.263 では、適切な双方向平均丸め制御を下向きバイアス平均に設定する必要があります。 (MPEG-1 と MPEG-2 は上向きバイアス平均を使用し、H.263 では下向きバイアス平均を使用します)。

参照画像のリサンプリング (Annex P):このAnnexの単純な形式は、参照バッファーのリサンプリングによってサポートされています。 Annex P リサンプリングの高度な形式では、参照フレームとして機能する再構築されたフレームを外部手段によってリサンプリングし、アクセラレータでアドレス指定可能な参照フレーム バッファーとして格納する必要があります。

低解像度更新プログラム (Annex Q):H.263 の縮小解像度更新モードは、異常な残留アップサンプリング要件、異なる形式のブロック解除フィルタ、および別の形式の高度な予測 OBMC があるため、現在サポートされていません。 ただし、ブロック解除フィルタ モードと高度な予測モードが非アクティブな場合は、ホスト ベースの IDCT 処理を使用して、このインターフェイスで解像度の低下の更新モード操作をサポートできます。

独立セグメントのデコード (Annex R):独立セグメントの境界線に対するアクセラレータ認識はありません。 一部の形式の Annex R は、特別な処理 (例:ベースラインと Annex R) なしでサポートできます。 画像セグメントの推定を必要とする Annex R の形式は、各セグメントを画像としてデコードし、これらの小さい画像から完全な出力画像を構築することでサポートできます。

IDCT (Annex W): このインターフェイスは、H.263 の Annex W で指定された逆離散コサイン変換 (IDCT) をサポートします。

その他の H.263 オプション機能: H.263 のその他のオプション機能は、DirectX VA 設計に影響を与えることなくサポートできます。 たとえば、Annex I、K、S、T は、アクセラレータに影響を与えずにソフトウェア デコーダーを変更することで簡単に処理できます。