DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE_DATA 结构 (dxvahd.h)

指定使用 Microsoft DirectX 视频加速高清 (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。

Value 含义
0
播放。
1
视频处理。

RGB_Range

指定 RGB 颜色范围。 默认状态值为 0 (全范围) 。

Value 含义
0
全范围 (0-255) 。
1
有限范围 (16-235) 。

YCbCr_Matrix

指定 YCbCr 传输矩阵。 默认状态值为 0 (BT.601) 。

Value 含义
0
ITU-R BT.601。
1
ITU-R BT.709。

YCbCr_xvYCC

指定输出是使用传统的 YCbCr 还是扩展的 YCbCr (xvYCC) 。 传统 YCbCr) (默认状态值为零。

Value 含义
0
传统 YCbCr。
1
扩展的 YCbCr (xvYCC) 。

Reserved

Value

备注

RGB_Range成员适用于 RGB 输出,而YCbCr_MatrixYCbCr_xvYCC成员适用于 YCbCr (YUV) 输出。 如果设备对背景色执行颜色空间转换,它将使用应用于这两个颜色空间的值。

扩展 YCbCr 可与任一传输矩阵一起使用。 扩展的 YCbCr 不会更改黑点或白点 - 黑点仍为 16,白点仍为 235。 但是,扩展的 YCbCr 显式允许 1–15 范围内的黑比黑值,允许在 236-254 范围内使用比白色更白的值。 使用扩展 YCbCr 时,驱动程序不应将 luma 值剪裁到名义 16–235 范围内。

如果设备支持扩展的 YCbCr,则会在 DXVAHD_VPDEVCAPS 结构的 DeviceCaps 成员中设置 DXVAHD_DEVICE_CAPS_xvYCC 功能标志。 否则,设备将忽略 YCbCr_xvYCC 成员的值,并将所有 YCbCr 输出视为传统的 YCbCr。 若要获取设备的功能,请调用 IDXVAHD_Device::GetVideoProcessorDeviceCaps

如果输出格式为宽域 RGB 格式,则输出可能超出 sRGB 的名义 [0...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 [仅限桌面应用]
标头 dxvahd.h

请参阅

DXVA-HD

DXVAHD_BLT_STATE

Direct3D 视频结构

IDXVAHD_VideoProcessor::SetVideoProcessBltState

媒体基础结构