应用可以向用户模式显示驱动程序发出信号,以利用从 Windows 8.1 开始的扩展范围 [0, 255] YUV 视频格式,如下表所示:
| YUV 范围 | 输入数据范围 | 典型用法 | 标准 |
|---|---|---|---|
| 扩展范围 | [0, 255] | 消费者设备:网络摄像头和点拍摄摄像头 | JFIF 标准和 MJPEG 视频格式使用为默认格式 |
| 工作室亮度范围 | [16, 235] | 专业相机和视频设备 | 国际电信联盟 BT.601 和 BT.709 |
内容和广播行业制作的大多数视频在工作室范围内,而个人消费者制作的视频范围很广。 扩展范围也称为 全亮度范围。
在 Windows 8.1 之前,Microsoft Media Foundation 视频处理管线处理所有输入数据,就好像数据处于标准范围内一样,这会导致动态范围减少,并且如果输入数据实际处于扩展范围内,则通常会形成生硬的对比。
从 Windows 8.1 开始,当视频输入 YUV 格式处于扩展范围内时,应用可以通知驱动程序此更高的动态范围。
转换扩展范围的YUV格式
这些图像显示了从深色到浅色值的 YUV 扩展范围内容如何转换为 RGB 格式:
- 顶部图像显示扩展范围内容被错误解读,如同是工作室范围一样。
- 底部图像显示正确解释的扩展范围内容。
顶部图像中的错误解释显示,在达到纯白色之前,对比度增加,高光变得过于明亮。
扩展范围的 YUV 接口
在 Windows 8.1 之前,Media Foundation 仅支持工作室亮度范围,因此对扩展范围图像的解释会导致对比度增加,如上图所示。 从 Windows 8.1 开始,媒体基础架构管道使用这些结构和枚举以指示 Windows 显示驱动程序模型(WDDM)1.3 及更高版本的用户模式显示驱动程序,是否正在播放或捕获扩展范围或标准范围的 YUV 内容:
新枚举
已更改的结构和枚举
- D3D11_1DDI_VIDEO_PROCESSOR_COLOR_SPACE
- D3D11_1DDI_VIDEO_PROCESSOR_DEVICE_CAPS
- DXVAHDDDI_BLT_STATE_OUTPUT_COLOR_SPACE_DATA
- DXVAHDDDI_STREAM_STATE_INPUT_COLOR_SPACE_DATA
- DXVAHDDDI_VPDEVCAPS
WDDM 1.3 及更大的用户模式显示驱动程序必须支持所有这些新的和已更改的结构和枚举。
有关如何在不同输入 RGB 和 YUV 格式之间进行转换的详细信息,请参阅 YUV-RGB 数据范围转换 。