DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE_DATA構造体 (dxvahd.h)
Microsoft DirectX Video Acceleration High Definition (DXVA-HD) を使用する場合の blit 操作の出力色空間を指定します。
構文
typedef struct _DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE_DATA {
union {
struct {
UINT Usage : 1;
UINT RGB_Range : 1;
UINT YCbCr_Matrix : 1;
UINT YCbCr_xvYCC : 1;
UINT Reserved : 28;
};
UINT Value;
};
} DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE_DATA;
メンバー
Usage
出力が再生またはビデオ処理 (編集や作成など) を目的としているかどうかを指定します。 デバイスは、種類に基づいて処理を最適化できます。 既定の状態値は 0 (再生) です。
値 | 意味 |
---|---|
|
再生。 |
|
ビデオ処理。 |
RGB_Range
RGB の色範囲を指定します。 既定の状態値は 0 (全範囲) です。
値 | 意味 |
---|---|
|
全範囲 (0 ~ 255)。 |
|
限られた範囲 (16 から 235)。 |
YCbCr_Matrix
YCbCr 転送マトリックスを指定します。 既定の状態値は 0 (BT.601) です。
値 | 意味 |
---|---|
|
ITU-R BT.601。 |
|
ITU-R BT.709。 |
YCbCr_xvYCC
出力で従来の YCbCr または拡張 YCbCr (xvYCC) のどちらを使用するかを指定します。 既定の状態値は 0 (従来の YCbCr) です。
値 | 意味 |
---|---|
|
従来の YCbCr。 |
|
拡張 YCbCr (xvYCC)。 |
Reserved
Value
解説
RGB_Range メンバーは RGB 出力に適用され、YCbCr_MatrixメンバーとYCbCr_xvYCC メンバーは YCbCr (YUV) 出力に適用されます。 デバイスが背景色に対して色空間変換を実行する場合は、両方の色空間に適用される値が使用されます。
拡張 YCbCr は、どちらの転送マトリックスでも使用できます。 拡張 YCbCr では、黒点または白点は変更されません。黒い点は 16 のままで、白点は 235 のままです。 ただし、拡張 YCbCr では、1 ~ 15 の範囲の黒より黒い値と、236 から 254 の範囲の white-than-white 値が明示的に許可されます。 拡張 YCbCr を使用する場合、ドライバーはルマ値を公称 16 ~ 235 の範囲にクリップしないでください。
デバイスが拡張 YCbCr をサポートしている場合は、 DXVAHD_VPDEVCAPS 構造体の DeviceCaps メンバーに DXVAHD_DEVICE_CAPS_xvYCC 機能フラグを設定します。 それ以外の場合、デバイスは YCbCr_xvYCC メンバーの値を無視し、すべての YCbCr 出力を従来の YCbCr として扱います。 デバイスの機能を取得するには、 IDXVAHD_Device::GetVideoProcessorDeviceCaps を呼び出します。
出力形式が広色域 RGB 形式の場合、出力が sRGB の標準 [0....1] の範囲外になる可能性があります。 これは、1 つ以上の入力ストリームで拡張 YCbCr を使用する場合に特に当てはまります。
例
HRESULT DXVAHD_SetOutputColorSpace(
IDXVAHD_VideoProcessor *pVP,
BOOL bPlayback, // TRUE = playback, FALSE = video processing
UINT RGB_Range, // 0 = 0-255, 1 = 16-235
UINT YCbCr_Matrix, // 0 = BT.601, 1 = BT.709
UINT YCbCr_xvYCC // 0 = Conventional YCbCr, 1 = xvYCC
)
{
DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE_DATA data =
{
bPlayback ? 0 : 1,
RGB_Range ? 1 : 0,
YCbCr_Matrix ? 1 : 0,
YCbCr_xvYCC ? 1 : 0
};
HRESULT hr = pVP->SetVideoProcessBltState(
DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE,
sizeof(data),
&data
);
return hr;
}
要件
サポートされている最小のクライアント | Windows 7 [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 R2 [デスクトップ アプリのみ] |
Header | dxvahd.h |