Vulkan Video 使开发人员可以选择一个强大的新 API 来访问视频处理加速。 NVIDIA 正在通过工具和示例扩展其对 Vulkan 视频的承诺,以帮助应用程序有效利用这一重要的新功能。这篇文章将帮助您发现 Vulkan 视频是否适合您的应用程序,如果适合,如何开始。
为什么选择 Vulkan 视频?
Khronos Group 的开放标准 Vulkan API 使应用程序能够实现灵活的低级别 GPU 加速,包括对调度、同步和内存分配的细粒度控制。
Vulkan 视频将硬件加速流压缩和解压缩与 Vulkan 的全部功能无缝集成。这使开发人员能够在单个有效的运行时间内将 GPU 渲染和计算加速与视频处理相结合。
Vulkan 视频为机器学习、视频编辑、智能视频分析、视频转码、游戏和电影流,甚至虚拟桌面体验的推理和培训等应用程序提供了新的机会。
此外, Vulkan 视频是业界首个跨平台视频加速 API ,支持跨多个操作系统和硬件供应商的软件可移植性,这对于寻求扩展其富媒体应用程序和引擎市场范围的开发人员来说是一个重大的胜利。

Vulkan 视频发展
NVIDIA 一直是 Khronos Vulkan 视频开发的驱动力。 Vulkan Video extension specifications for fully accelerated H.264 and H.265 decode 于 2022 年 12 月发布, NVIDIA 当天发布了适用于 Windows 和 Linux 的测试版驱动程序。
LunarG 刚刚发布了新版本的开源 Vulkan SDK Vulkan SDK 1.3.239 。此版本集成了使用 Vulkan 视频扩展所需的所有组件,包括 SDK 验证层内的支持,这是为开发人员简化 Vulkan Video 开发的重要一步。
Vulkan 视频的设计具有灵活的扩展性,通过利用通用“核心”扩展来适应各种现有和未来的视频格式,从而实现额外的编解码器特定解码和编码扩展。 NVIDIA 致力于继续与 Khronos 合作,以扩展 Vulkan 视频对流行编解码器的支持,包括 H.264 和 HEVC 编码,以及对 AV1 的完全解码和编码支持,并提供加速驱动程序。
作为该开发过程的下一步,所有开发人员都被邀请就 H.264 和 HEVC 编码的 Khronos 草稿 Vulkan 视频扩展提供反馈,如下所示:
有关如何提供反馈,请参阅文章末尾的资源部分。
NVIDIA 的视频编解码器 API
NVIDIA 已通过 NVIDIA Video Codec SDK 在 GPU 上提供硬件加速视频处理十多年。这是一组全面的 API 、高性能工具、示例和文档,用于 Windows 和 Linux 上的硬件加速视频编码和解码。
视频编解码器 SDK API 提供了对视频加速的高级访问,简化了许多常见用例的应用程序开发。视频编解码器 SDK 还展示了最新的 NVIDIA 视频处理技术。例如,视频编解码器 SDK 12.0 将支持 NVIDIA Ada Lovelace architecture 中跨多个编码器的拆分编码,从而支持 AV1 和 HEVC 格式的实时 8k60 编码。
NVIDIA 还支持通过 Microsoft 的 DirectX Video (一种面向 Windows 开发人员的跨供应商 API )进行 GPU 加速编码和解码。与 NVIDIA 视频编解码器 SDK 不同, DirectX 视频和 Vulkan 视频都是低级 API 。虽然视频编解码器 SDK 为 C ++开发人员提供了自动化,但 DirectX 视频和 Vulkan 视频可以对数据流如何通过视频加速硬件进行路由和处理进行精细调整。
无论您喜欢 DirectX 还是 Vulkan ,您都可以使用自己选择的语言,将灵活的 GPU 加速视频编码和解码与其他 GPU 加速(如 3D 和 AI )相结合。
低级 Vulkan 视频扩展对流行的开源流媒体框架(如 GStreamer 和 FFmpeg )的开发人员也很有吸引力,这两个框架都被主动移植到 Vulkan Video 。 Vulkan 的跨平台可用性将使这些框架能够跨多个平台加速 GPU 处理,而无需移植到多个专有视频 API 。
视频编解码器 SDK 、 DirectX 视频和 Vulkan 视频为 GPU 加速视频工作流提供了补充支持。 NVIDIA 将继续支持这三项,为开发人员提供使用最适合其需求的 API 的选项。
Vulkan NVIDIA 的视频支持
具有 Vulkan 视频支持的 NVIDIA Vulkan 1.3 drivers 预计将于 2023 年 2 月离开测试版,并在通用版驱动程序中发布。 NVIDIA 对 Vulkan 视频的支持不仅限于优化的驱动程序,还包括工具和示例代码,以帮助开发人员充分发挥 Vulkan Video 的潜力。
NVIDIA Nsight Developer Tools 是一组调试器、分析器和优化器,它们支持使用许多图形 API (包括 Vulkan )对应用程序进行性能调整。预计 2023 年 2 月将发布 2022.7 版本, NVIDIA Nsight Graphics 帧调试器将明确支持 Vulkan 视频,使开发人员能够快速浏览导致解码视频帧的所有事件,并浏览相应的资源分配。

此外, NVIDIA Nsight Systems 系统分析器将能够解析 Vulkan 视频解码队列的特定工作负载,从而深入了解应用程序上下文中的处理瓶颈。

Vulkan 视频扩展提供了强大的低级别灵活性,并且可以为开发人员提供学习曲线。为了帮助应用程序快速利用 Vulkan 视频, NVIDIA 将 Vulkan Video 视频解码和编码示例应用程序添加到开源示例库中,展示了扩展如何与图形和视频解码计算队列高效交互。
访问 GitHub 上的 nvpro-samples/vk_video_samples ,查看一个示例,该示例封装了如何从输入文件解析视频流,采用硬件加速解码,并将解码后的流逐帧传递到图形处理和演示中,所有这些都由 Vulkan API 处理。
这些 Vulkan 视频示例应用程序可以用作可定制的库,使开发人员能够使用更高级别的抽象来提高编码效率,同时在需要时仍然直接利用 Vulkan Video 低级功能。
Vulkan 视频资源
如果您有兴趣了解 Vulkan 视频的更多信息,请参阅 An Introduction to Vulkan Video 和 Khronos Finalizes Vulkan Video Extensions for Accelerated H.264 and H.265 Decode 。您还可以下载新发布的具有 Vulkan 视频支持的 LunarG Vulkan SDK 。
想开始分析 Vulkan 基于视频的应用程序吗?检查 Optimizing Vulkan 1.3 Applications with N V I D A Nsight Graphics and NVIDIA Nsight Systems 和 NVIDIA Nsight Systems – Vulkan Trace 。作为 Vulkan API 的扩展,分析 Vulkan 视频符合这些最佳实践。您还可以了解有关 Vulkan at NVIDIA. 的更多信息
最后, NVIDIA 的 Tony Zlatinski 将于 2 月 7 日至 9 日在慕尼黑举行的 Khronos Group 的 Vulkanized 2023 活动上,就 Vulkan 视频的设置和使用进行现场演示。
随着 Vulkan 视频的不断发展,我们重视您的反馈。我们鼓励您使用 Vulkan Video Developer Survey 提供您希望在 Vulkan 视频中看到的功能的输入。您也可以通过 NVIDIA Vulkan Developer Forum 或 NVIDIA Vulkan Developer Discord Channel 联系我们。
Khronos 和 Vulkan 是 Khronos Group , Inc.的注册商标。