Windows 图形显示驱动开发-WDDM 3.2- D3D12 AV1 视频编码(一)

对速率控制的扩展

以下现有枚举通过速率控制扩展和速率控制支持进行更新:

  1. 将速率控制支持标志添加到 D3D12DDI_VIDEO_ENCODER_SUPPORT_FLAGS_0083_0
  2. 将速率控制标志添加到 D3D12DDI_VIDEO_ENCODER_RATE_CONTROL_FLAGS_0080
  3. 添加了以下扩展(扩展 1)D3D12DDI_VIDEO_ENCODER_RATE_CONTROL_XXX1 结构,并更新了D3D12DDI_VIDEO_ENCODER_RATE_CONTROL_CONFIGURATION_PARAMS 以包括它们。 所有模式均添加了 QualityVsSpeed;此外,还向 _QVBR1 添加了 VBVCapacity 和 InitialVBVFullness。
  • D3D12DDI_VIDEO_ENCODER_RATE_CONTROL_CQP1_0096
  • D3D12DDI_VIDEO_ENCODER_RATE_CONTROL_CBR1_0096
  • D3D12DDI_VIDEO_ENCODER_RATE_CONTROL_VBR1_0096
  • D3D12DDI_VIDEO_ENCODER_RATE_CONTROL_QVBR1_0096
  • D3D12DDI_VIDEO_ENCODER_RATE_CONTROL_ABSOLUTE_QP_MAP_0096

启用 D3D12DDI_VIDEO_ENCODER_RATE_CONTROL_FLAG_0096_ENABLE_EXTENSION1_SUPPORT 后,扩展速率控制结构用于 D3D12DDI_VIDEO_ENCODER_RATE_CONTROL_CONFIGURATION_PARAMS_0080_2.pConfiguration_XXX;否则,根据 D3D12DDI_VIDEO_ENCODER_RATE_CONTROL_FLAGS_0080 参考页上记录的表禁用时,将使用旧结构。

视频编码支持扩展

扩展了现有的视频相关框架,以允许驱动程序报告 AV1 视频编码支持和功能。 本节列出了用于查询和报告 AV1 视频编码支持的新增或更新的结构和枚举。

  • D3D12DDI_FEATURE_VERSION_VIDEO_0095_0 是定义在 Windows 11 版本 24H2 (WDDM 3.2) 中引入的所有 D3D12 视频编码里程碑的最低实现的版本号。
  • D3D12DDICAPS_TYPE_VIDEO_0020 枚举已扩展为包括以下视频编码支持值:
  1. D3D12DDICAPS_TYPE_VIDEO_0095_ENCODER_FRAME_SUBREGION_LAYOUT_CONFIG
  2. D3D12DDICAPS_TYPE_VIDEO_0096_ENCODER_SUPPORT1
  • D3D12DDI_VIDEO_ENCODER_CODEC_0095_AV1 已添加到 D3D12DDI_VIDEO_ENCODER_CODEC_0080
  • 添加了 D3D12DDI_VIDEO_ENCODER_AV1_PROFILE_0095 枚举,以定义驱动程序支持的 AV1 配置文件。 驱动程序使用 D3D12DDICAPS_VIDEO_ENCODER_INPUT_FORMAT_DATA_0080_2 为查询提供给定 D3D12DDI_VIDEO_ENCODER_AV1_PROFILE_0095 输入报告可选支持的格式。
  • D3D12DDI_VIDEO_ENCODER_PROFILE_DESC_0080_2 更新为包括 AV1 配置文件 (pAV1Profile)。
  • 添加或扩展了以下结构和枚举以支持 AV1 编码:
  1. D3D12DDI_VIDEO_ENCODER_AV1_LEVELS_0095
  2. D3D12DDI_VIDEO_ENCODER_AV1_TIER_0095
  3. D3D12DDI_VIDEO_ENCODER_AV1_LEVEL_TIER_CONSTRAINTS_0095 (pAV1LevelSetting 已添加到 D3D12DDI_VIDEO_ENCODER_LEVEL_SETTING_0080_2)
  4. D3D12DDI_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_0080 已扩展为包括 D3D12DDI_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_0095_UNIFORM_GRID_PARTITION 和 D3D12DDI_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_0095_CONFIGURABLE_GRID_PARTITION.
  5. D3D12DDI_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE_EIGHTH_PIXEL_0095 已添加到 D3D12DDI_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE_0080
  6. D3D12DDI_VIDEO_ENCODER_AV1_FEATURE_0095_FLAGS
  7. D3D12DDI_VIDEO_ENCODER_AV1_TX_MODE_0095 和 D3D12DDI_VIDEO_ENCODER_AV1_TX_MODE_0095_FLAGS
  8. D3D12DDI_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_0095 和 D3D12DDI_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_0095_FLAGS
  9. D3D12DDI_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE_0095
  10. D3D12DDI_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_0095 和 D3D12DDI_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_0095_FLAGS
  11. D3D12DDI_VIDEO_ENCODER_AV1_RESTORATION_TYPE_0095
  12. D3D12DDI_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE_0095
  13. D3D12DDI_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_0095 和 D3D12DDI_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_0095_FLAGS
  14. D3D12DDI_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_0095_FLAGS
  15. D3D12DDI_VIDEO_ENCODER_AV1_CODEC_CONFIGURATION_SUPPORT,pAV1Support 已添加到 D3D12DDI_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_0083_0
  16. D3D12DDI_VIDEO_ENCODER_AV1_FRAME_TYPE_0095 和 D3D12DDI_VIDEO_ENCODER_AV1_FRAME_TYPE_0095_FLAGS
  17. D3D12DDI_VIDEO_ENCODER_AV1_COMP_PREDICTION_TYPE_0095
  18. D3D12DDI_VIDEO_ENCODER_CODEC_AV1_PICTURE_CONTROL_SUPPORT_0095,pAV1Support 已添加到 D3D12DDI_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT_0080_2
  19. D3D12DDI_VIDEO_ENCODER_AV1_CODEC_CONFIGURATION_0095
  20. D3D12DDI_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_SUPPORT_0095 和 D3D12DDI_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_0095_FLAGS
  21. D3D12DDI_FEATURE_DATA_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_CONFIG_0095 和 D3D12DDI_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_CONFIG_SUPPORT_0095
  22. pAV1Config 已添加到 D3D12DDI_VIDEO_ENCODER_CODEC_CONFIGURATION_0082_0
  23. D3D12DDI_VIDEO_ENCODER_VALIDATION_FLAG_0080_SUBREGION_LAYOUT_MODE_NOT_SUPPORTED 标志将添加到 D3D12DDI_VIDEO_ENCODER_VALIDATION_FLAGS_0080,以便与扩展 D3D12DDICAPS_TYPE_VIDEO_0096_ENCODER_SUPPORT1 查询上限一起使用。
  24. 添加了 D3D12DDICAPS_VIDEO_ENCODER_SUPPORT1_DATA_0096,以扩展以前的 D3D12DDICAPS_VIDEO_ENCODER_SUPPORT_DATA_0083_0 查询,并在结构底部添加参数。 此扩展查询可以与所有 H264、HEVC 和 AV1 编解码器一起使用,并且必须完全按照 D3D12_FEATURE_VIDEO_ENCODER_SUPPORT 语义执行。
  25. 对于 AV1,更新了 D3D12DDI_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS_0080_2 的MaxSubregionsNumber、SubregionBlockPixelsSize 和 QPMapRegionPixelsSize 成员的语义。
  26. 添加了 _D3D12DDI_VIDEO_ENCODER_AV1_SEQUENCE_STRUCTURE_0095,并将 pAV1SequenceStructure 添加到 D3D12DDI_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_0082_0。
相关推荐
熊明才12 小时前
WSL2 网络突然瘫痪(Network is unreachable / 没有 eth0)最短修复指南(2026年9月20日亲测可用)
linux·windows·wsl2
离凌寒15 小时前
一、关于linux开发板上移植ubuntu根文件系统并配置桌面环境笔记记录
驱动开发·单片机
临期冰淇淋15 小时前
Unisoc 展锐平台Camera摄像头分辨率适配
linux·c语言·驱动开发
Rsingstarzengjx16 小时前
第二十八章 Linux 并发与竞争实验
驱动开发·嵌入式硬件·stm32mp157
xbzb16 小时前
Windows 启动故障修复知识整理:蓝屏 / 无限重启 / 盘符 X / 无 PE 盘
windows
我命由我1234517 小时前
Mac 操作系统 - 一些使用记录
运维·windows·学习·系统安全·运维开发·mac·学习方法
ysu_03141 天前
TinyML 模型部署:从 Edge Impulse 到 STM32F103
驱动开发·stm32·嵌入式硬件·mcu·硬件架构·硬件工程·dsp开发
kakakahahahaha1 天前
Windows Steam 游戏存档在哪里?定位和恢复排查流程
windows·其他·电脑·笔记本电脑·内容运营·软件需求
Xy-unu1 天前
Windows 开启外接显示器 HDR 后外接显示器无信号、无法扩展模式故障记录
windows
troy1281 天前
Codex 安全盲区:代码漏洞生成实测
windows·python·ci/cd·pycharm·django·github·fastapi