DXVA_BlendCombination 構造体 (dxva.h)
DXVA_BlendCombination構造は、ソース図と、アルファ ブレンド情報を伴うグラフィック イメージからブレンドされた画像を作成する方法を指定するために、ホスト デコーダーによってアクセラレータに送信されます。
構文
typedef struct _DXVA_BlendCombination {
WORD wPictureSourceIndex;
WORD wBlendedDestinationIndex;
RECT PictureSourceRect16thPel;
RECT PictureDestinationRect;
RECT GraphicSourceRect;
RECT GraphicDestinationRect;
WORD wBlendDelay;
BYTE bBlendOn;
BYTE bWholePlaneAlpha;
DXVA_AYUVsample2 OutsideYUVcolor;
} DXVA_BlendCombination, *LPDXVA_BlendCombination;
メンバー
wPictureSourceIndex
図と組み合わせる図の DdMoCompBeginFrame の前の呼び出しで、DD_BEGINMOCOMPFRAMEDATA の lpInputData メンバーが指す DWORD の内容によって定義される、圧縮されていないサーフェス インデックスを指定します。 この値は、バックエンド ハードウェア アルファ ブレンドが使用されている場合に0xFFFFされます (DXVA_ConfigAlphaCombine の bConfigBlendType メンバー が 1 の場合)。
wBlendedDestinationIndex
作成する画像の DdMoCompBeginFrame の以前の呼び出しで、DD_BEGINMOCOMPFRAMEDATA の lpInputData メンバーが指す DWORD の内容によって定義される、圧縮されていないサーフェス インデックスを指定します。 この値は、バックエンド ハードウェア アルファ ブレンドが使用されている場合 ( DXVA_ConfigAlphaCombine の bConfigBlendType メンバーが 1 の場合) に0xFFFFされます。
バックエンド ハードウェア アルファ ブレンドが使用されている場合を除き、この値を wPictureSourceIndex と等しくすることはできません。
PictureSourceRect16thPel
RECT 構造体としてグラフィック イメージと組み合わせるソース図の領域を指定します。 寸法は、輝度成分のサンプル値間の距離の16分の1の単位で指定されます。 (つまり、RECT 構造体のメンバーは、バイナリ ポイントの前に 28 ビット、バイナリ ポイントの後に 4 ビットを持つ固定ポイント表現です)。この 16 番目のサンプル精度により、 PictureSourceRect16thPel には 、MPEG-2 ビデオのframe_centre_horizontal_offsetおよび frame_centre_vertical_offset パン スキャン変数と同じ精度を含めることができます。
DXVA_ConfigAlphaCombineの bConfigPictureResizing メンバーが 0 の場合、 PictureSourceRect16thPel 内のすべてのディメンションは 16 の整数の倍数である必要があります。
PictureDestinationRect
変換先の図の領域を RECT 構造体として指定します。 これには、 PictureSourceRect16thPel によってソース画像に対して定義された領域が含まれます。
DXVA_ConfigAlphaCombineの bConfigPictureResizing メンバーが 0 の場合、PictureDestinationRect で指定された領域の幅と高さは、PictureSourceRect16thPel で指定された領域と同じである必要があります。 PictureDestinationRect のサイズが PictureSourceRect16thPel と異なる場合、適用するリサンプリング メソッドは指定されませんが、少なくともバイリニア リサンプリングと同等の品質が必要です。
GraphicSourceRect
ソース グラフィック イメージの領域を RECT 構造体として指定します。 この領域は、 PictureSourceRect16thPel で指定されたソース図の一部と組み合わせて、アルファ ブレンドされた図を作成します。
GraphicDestinationRect
コピー先のグラフィック イメージの領域を RECT 構造体として指定します。
DXVA_ConfigAlphaCombineの bConfigGraphicResizing メンバーが 0 の場合、コピー先の図の幅と高さは GraphicSourceRect で指定された領域と同じである必要があります。 GraphicDestinationRect のサイズが GraphicSourceRect と異なる場合、グラフィック イメージに適用するリサンプリング メソッドは指定されません。 ただし、使用されるリサンプリング方法には、ブレンド情報を表す AYUV サーフェスのバイリニア リサンプリングと少なくとも同等の品質が必要です。
wBlendDelay
ブレンドの組み合わせが有効になる前の遅延時間 (ミリ秒) を指定します。 バックエンド ハードウェア ブレンドが使用されている場合 (たとえば、DXVA_ConfigAlphaCombineの bConfigBlendType メンバーが 1 の場合)、wBlendDelay には、ブレンドの組み合わせが有効になる前の遅延のミリ秒数が含まれます。 フロントエンド ブレンドが使用されている場合、このメンバーは意味がなく、ゼロである必要があります。
bBlendOn
ブレンドの組み合わせ操作が開始および停止するタイミングを指定します。 バックエンド ハードウェア ブレンドが使用されている場合、ブレンドは、ブレンドの組み合わせ操作で指定された時間 ( bBlendOn が 1 の場合) から、新しいブレンドの組み合わせの実行時間 ( bBlendOn が 1 に等しい場合) まで、またはブレンドの組み合わせ操作 ( bBlendOn が 0 に等しい) によってブレンドが無効になるまで適用されます。 バックエンド ハードウェア ブレンドが使用中で 、bBlendOn が 0 の場合、意味のあるアルファ ブレンドの組み合わせバッファー内の他の値は wBlendDelay のみです。 フロントエンド ブレンドが使用されている場合、このメンバーには意味がなく、0 である必要があります。
bWholePlaneAlpha
グラフィック イメージのアルファ チャネルの不透明度の乗数が含まれます。 値 0 は、グラフィック イメージが透明であることを示します (そのため、グラフィック コンテンツは、結果のブレンドされた画像には影響しません)。 値 255 は、グラフィック イメージが完全なサンプル不透明度を使用していることを示します。 bWholePlaneAlpha が 0 に等しくない場合、指定されたブレンドは、グラフィック コンテンツ内の各位置の不透明度を (bWholePlaneAlpha+1)/256 で乗算することです。 bWholePlaneAlpha の値が 0 の場合、使用するブレンドは、変更せずにグラフィック イメージで指定された不透明度です。 DXVA_ConfigAlphaCombineの bConfigWholePlaneAlpha メンバーが 0 の場合、これは 255 に等しい必要があります。
OutsideYUVcolor
PictureDestinationRect の外側の領域がブレンドに一定の色を使用するかどうかを示します。 その場合、このメンバーはその色定数を指定します。 OutsideYUVcolor メンバーは、DXVA_AYUVsample2構造体として定義されます。 詳細については、「解説」セクションを参照してください。
注釈
ソースとコピー先の図が 4:4:4 形式でない場合、必要に応じて、グラフィックス ブレンド情報の 2 つ目のサンプル (1 つ目、3 つ目、または 5 番目など) が、ブレンドされた結果を生成するために必要に応じて垂直方向または水平方向のサブサンプリングされたソース クロミナンス情報に適用されます。
次のセクションでは、RECT 構造体の 左、 右、 上、 および下 のメンバーに適用される制限を示します。
PictureSourceRect16thPel の RECT 構造体の制限
PictureSourceRect16thPel の RECT ディメンションには、次の制限が適用されます。- left と top は 0 以上である必要があります。
- right と bottom は、それぞれ left と top 以上である必要があります。
- right が左と等しい場合、または top が bottom と等しい場合、すべての RECT メンバーは、ソース画像が使用されていないことを示す値 0 を持つ必要があります。 このケースは、DXVA_ConfigAlphaCombineの bConfigOnlyUsePicDestRectArea メンバーが 0 の場合にのみ許可されます。
- 右側 と 下部 は、圧縮されていないソース画像サーフェスの割り当てられた幅と高さのそれぞれ 16 倍を超えてはなりません。
- left = 0
- top = 0
- right = 16 X horizontal_size
- bottom = 16 X vertical_size
PictureDestinationRect の RECT 構造体の制限
PictureDestinationRect の RECT ディメンションには、次の制限が適用されます。- left と top は 0 以上である必要があります。
- right と bottom は、それぞれ left と top 以上である必要があります。
- right が left または top と等しい場合 (DXVA_ConfigAlphaCombine の bConfigOnlyUsePicDestRectArea メンバーが 0 の場合にのみ使用できます)、すべての RECT メンバーは値 0 を持ち、PictureSourceRect16thPel も値 0 を持つすべての値を指定する必要があります。
- DXVA_ConfigAlphaCombineの bConfigBlendType メンバーが 0 の場合、 right と bottom は、圧縮されていないコピー先の図サーフェスの割り当てられた幅と高さを超えてはなりません。
- DXVA_ConfigAlphaCombineの bConfigBlendType メンバーが 1 の場合、 右 と 下 は、ソース グラフィックサーフェイスの割り当てられた幅と高さを超えてはなりません。
GraphicSourceRect の RECT 構造体の制限
アルファ ブレンド データの読み込みで、値が 2 の DXVA_ConfigAlphaLoad の bConfigDataType メンバーを使用する場合、GraphicSourceRect の RECT ディメンションには次の制限が適用されます。- top と left は 0 である必要があります。
- right は、「 GraphicDestinationRect の RECT 構造体の制限」セクションで説明されているように、異なる四角形の解釈に合わせて調整するには、直前の DVD SET_DAREA DCCMD の最後の X 座標から開始 X 座標を引いた値に 1 を加えた値に等しい必要があります。
- 異 なる四角形の解釈に合わせて調整するには、bottom は、直前の DVD SET_DAREA DCCMD の最後の Y 座標から開始 Y 座標を引いた 1 を引いた値に等しい必要があります。
- left と top は 0 以上である必要があります。
- right と bottom は、それぞれ left と top 以上である必要があります。
- right が左に等しい場合、または top が下に等しい場合、すべての RECT メンバーは、グラフィック画像を使用しない値 0 を持つ必要があります。
- right と bottom は、グラフィック ソース イメージの割り当てられた幅と高さを超えてはなりません。 割り当てられた幅と高さは、DXVA_ConfigAlphaLoadの bConfigDataType メンバーが 2 の場合、それぞれ 720 サンプルと 576 サンプルとして定義されます。
GraphicDestinationRect の RECT 構造体の制限
GraphicDestinationRect の RECT ディメンションには、次の制限が適用されます。- left と top は、8 つのサンプルでグラフィックをオフセットする必要性と競合しない限り、0 以上である必要があります。 これは、次のシナリオの場合です。
- アルファ ブレンド データ読み込みでは、値が 2 の DXVA_ConfigAlphaCombine の bConfigDataType メンバーと、値が 0 のDXVA_ConfigAlphaCombineの bConfigGraphicResizing メンバーを使用します。
- 操作は、DVD 704 全体のパン スキャン以外に設定されています ( DVD 704 全体のパン スキャン以外の例を参照)。
- 操作は DVD 352 全体に設定されます ( DVD 352 全体の例を参照)。
- right と bottom は、それぞれ left と top 以上である必要があります。 right が left または top と等しい場合、RECT 構造体のすべてのこれらのメンバーは値 0 を持ち、GraphicSourceRect はそのすべてのメンバーに値 0 を指定する必要があります。
- DXVA_ConfigAlphaCombineの bConfigBlendType メンバーが 0 に等しい場合、right と bottom は、圧縮されていないコピー先の図サーフェスの割り当てられた幅と高さを超えないようにする必要があります。
- DXVA_ConfigAlphaCombineの bConfigBlendType メンバーが 1 に等しい場合、 right と bottom は、ソース グラフィック イメージの割り当てられた幅と高さを超えてはなりません。
- top は、直前の DVD SET_DAREA DCCMD の Start Y 座標と等しい必要があります。
- left は、直前の DVD SET_DAREA DCCMD の Start X 座標、またはその値から 8 を引いた値のいずれかと等しい必要があります。 詳細については、「 DVD 704 全体のパン スキャン以外の例 」および 「DVD 352 全体の例」を参照してください。
- right は 、次の注で説明する異なる四角形の解釈に合わせて調整するには、left の値に加えて、最後の DVD SET_DAREA DCCMD の開始 X 座標を引いた End X 座標と 1 を加算した値に等しい必要があります。
- bottom は、次の注で説明する異なる四角形の解釈に合わせて調整するには、 top と End Y 座標から DCCMD の直前の DVD SET_DAREA DCCMD の開始 Y 座標を引いた値に 1 を加えた値と等しい必要があります。
OutsideYUVcolor 値の設定
OutsideYUVcolor 構造体の値は次のとおりです。- PictureDestinationRect の外側の領域がブレンドに使用する定数色として生成される場合、OutsideYUVcolor.bSampleAlpha8 の値は 255 である必要があります。
- 次の 2 つのケースのいずれかが適用される場合、 OutsideYUVcolor.bSampleAlpha8 の値は 0 である必要があります。
- PictureDestinationRect の外側の領域は、ブレンドの影響を受けません。
- PictureDestinationRect の外部の領域は使用できません (値が 1 の bConfigStayInPicDestRectArea メンバー DXVA_ConfigAlphaCombine示されます)。
DXVA_ConfigAlphaCombine構造体の bConfigStayInPicDestRectArea メンバーが 1 の場合、OutsideYUVcolor.bSampleAlpha8 の値は 0 である必要があります。
OutsideYUVcolor.bSampleAlpha8 が 0 の場合、ブレンドの影響を受けるターゲット サーフェスの領域は PictureDestinationRect 内のパーツだけです。
OutsideYUVcolor.bSampleAlpha8 が 255 の場合、PictureDestinationRect の外側にあるが GraphicDestinationRect 内にある宛先サーフェスの領域は、OutsideYUVcolor の nonalpha メンバーで指定された色でグラフィックをブレンドすることによって生成されます。 この場合、 PictureDestinationRect と GraphicDestinationRect の両方の外側にある宛先サーフェスの割り当てられた領域全体が 、OutsideYUVcolor の nonalpha メンバーで指定された色に設定されます。 DXVA_ConfigAlphaCombine構造体の bConfigBlendType メンバーが 1 の場合、OutsideYUVcolor メンバーは、bSampleAlpha8 = 255、bY_Value = 16、bCbValue = bCrValue = 128 を指定して、黒とのブレンドを示すように設定されます。
DXVA_ConfigAlphaCombine構造体の bConfigBlendType メンバーが 1 (バックエンド ハードウェア ブレンド) の場合、ブレンド操作は、このリファレンスで説明されているものと多少異なる場合があります。 ソース画像からコピー先の画像サイズにビデオ画像をマップするために使用される一部のサイズ変更パラメーターは、変更された方法で適用され、グラフィックイメージをソース画像に対する適切な位置にマップできます。 ただし、ブレンド結果は、このリファレンスのアルファ ブレンドの組み合わせコマンドによって得られるブレンド結果と同じになります。
要件
要件 | 値 |
---|---|
Header | dxva.h (Dxva.h を含む) |