Share via


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 (再生) です。

意味
0
再生。
1
ビデオ処理。

RGB_Range

RGB の色範囲を指定します。 既定の状態値は 0 (全範囲) です。

意味
0
全範囲 (0 ~ 255)。
1
限られた範囲 (16 から 235)。

YCbCr_Matrix

YCbCr 転送マトリックスを指定します。 既定の状態値は 0 (BT.601) です。

意味
0
ITU-R BT.601。
1
ITU-R BT.709。

YCbCr_xvYCC

出力で従来の YCbCr または拡張 YCbCr (xvYCC) のどちらを使用するかを指定します。 既定の状態値は 0 (従来の YCbCr) です。

意味
0
従来の YCbCr。
1
拡張 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

関連項目

DXVA-HD

DXVAHD_BLT_STATE

Direct3D ビデオ構造

IDXVAHD_VideoProcessor::SetVideoProcessBltState

Media Foundation Structures