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 | 含义 |
---|---|
|
播放。 |
|
视频处理。 |
RGB_Range
指定 RGB 颜色范围。 默认状态值为 0 (全范围) 。
Value | 含义 |
---|---|
|
全范围 (0-255) 。 |
|
有限范围 (16-235) 。 |
YCbCr_Matrix
指定 YCbCr 传输矩阵。 默认状态值为 0 (BT.601) 。
Value | 含义 |
---|---|
|
ITU-R BT.601。 |
|
ITU-R BT.709。 |
YCbCr_xvYCC
指定输出是使用传统的 YCbCr 还是扩展的 YCbCr (xvYCC) 。 传统 YCbCr) (默认状态值为零。
Value | 含义 |
---|---|
|
传统 YCbCr。 |
|
扩展的 YCbCr (xvYCC) 。 |
Reserved
Value
备注
RGB_Range成员适用于 RGB 输出,而YCbCr_Matrix和YCbCr_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 |
请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈