DXVA_QmatrixData 構造体 (dxva.h)

DXVA_QmatrixData構造は、ホスト デコーダーによってアクセラレータに送信され、オフホスト ビットストリーム圧縮ビデオ画像デコード用の逆量子化マトリックス データを読み込みます。

構文

typedef struct _DXVA_QmatrixData {
  BYTE bNewQmatrix[4];
  WORD *Qmatrix[4][DXVA_USUAL_BLOCK_WIDTH  DXVA_USUAL_BLOCK_HEIGHT];
} DXVA_QmatrixData, *LPDXVA_QmatrixData;

メンバー

bNewQmatrix[4]

逆量子化行列バッファーに存在する新しい逆量子化行列を示します。 この配列の各要素は、逆量子化行列型に対応し、その型の新しい逆量子化行列がバッファーに存在するかどうかを示します。 bNewQmatrix 配列内の要素に値 1 が含まれている場合、その配列要素に指定された型の新しい逆量子化行列は、逆量子化行列バッファーの後に続きます。 使用できる逆量子化行列は次のとおりです。

NewQmatrix 要素 Inverse-Quantization マトリックス型
0 輝度内量子化を指定します。
1 輝度間量子化を指定します。
2 クロミナンス内量子化を指定します。
3 クロム間量子化を指定します。

bNewQmatrix[0] と bNewQmatrix[1] の値の両方を 0 にすることはできません。

bNewQmatrix[2] または bNewQmatrix[3] の値が 0 の場合、次のことが適用されます。

bNewQmatrix[i - 2] が 0 の場合、i番目の要素によって定義された前の逆量子化行列は、アクセラレータによって引き続き使用される必要があります。

bNewQmatrix[i - 2] が 1 の場合、i番目の要素によって定義される逆量子化行列は、i - 2 の新しい逆量子化行列と等しく設定されます。

Qmatrix[4]

逆量子化行列バッファーを指定する 2 次元配列。 この配列は、 bNewQmatrix 内の 1 に等しい各要素にのみ存在します。 マトリックスは (bBlockWidthMinus1+1) X (bBlockHeightMinus1+1) 符号なし単語 (各単語の下位 8 ビットのみが主要なビデオ コーディング標準に使用されます) で構成されます。 ここで、bBlockWidthMinus1bBlockHeightMinus1DXVA_PictureParameters 構造体のメンバーです。

メモ MPEG-2 ビットストリームの場合、Qmatrix 内のデータ値は、MPEG-2 のサブクラス 7.3.1 および図 7-2 で指定されている、ジグザグ逆スキャン順になります。
 

注釈

ビデオ コーディングで逆量子化行列 (H.261 や H.263 など) が必要ない場合は、逆量子化行列バッファーを送信しないでください。 ビデオコーディングで逆量子化行列が必要な場合は、ビデオデコードプロセスの開始時にビットストリームデータバッファを転送する前に、ホストがこれらの逆量子化行列に対して何らかの値を提供する必要があります。

ホストから事前に送信された値がない場合、アクセラレータでは逆量子化行列の既定値を想定できません。 量子化マトリックス値は、関連するビデオ コーディング仕様で既定で使用できる値が含まれている場合でも、明示的に送信する必要があります。

逆量子化行列バッファーは、DXVA_ConfigPictureDecode構造体の bConfigBitstreamRaw メンバーが 1 の場合にのみ送信されます。

逆量子化行列内のデータ値の順序は、関連するビデオ コーディング仕様で指定されています。

要件

要件
Header dxva.h (Dxva.h を含む)

こちらもご覧ください

DXVA_ConfigPictureDecode

DXVA_PictureParameters