浅析Vulkan Video如何实现GPU加速视频编码与解码

描述

Vulkan是一套跨平台的图形API,由Khronos组织牵头进行制定,普遍被看作是OpenGL的后继者,目前版本已经来到1.2.175,仍然在不停地进行更新,其在非Windows平台上面已经逐渐变成了首选使用的图形API。在未来,Vulkan甚至会提供模拟DirectX等其他图形API的功能,有很大的发展前景。

多年来,我们一直渴望了解更多关于Vulkan Video API的信息,该API本应在2020年上半年推出,现在终于推出了1.2.175临时更新版。新的Vulkan Video扩展允许GPU加速视频编解码。最初的公共工程被视为一个临时规范,编解码器覆盖范围有限,但会随着时间的推移而迭代更新。

Vulkan Video允许GPU加速编解码,并通过调度、同步和其他Vulkan功能与Vulkan API集成。Vulkan Video的主要新扩展是VK_KHR_video_queue,VK_KHR_video_decode _queue和VK_KHR_video_encode_queue。

Vulkan Video被设计在编解码器覆盖范围方面是可扩展性的,而最初的新扩展有VK_EXT_video_encode_h264,VK_EXT_video_decode_h264和VK_EXT _video_decode_h265。

目前还没有VP9和AV1开源/免费视频编解码器。庆幸的是Khronos组织[1]声明,他们将在未来的Vulkan更新中推出。他们最初的重点是确保核心架构组件准备就绪,一旦这一切解决,他们将扩大编解码器的支持。很遗憾它们没能在今天的首次亮相中登场,但将来不久就能看到。Vulkan H.265编码扩展也仍在开发中。

Khronos组织在Khronos.org上发布了一篇博客文章,其中更详细地概述了Vulkan Video功能,可以从中了解Vulkan视频编码/解码/转码。

最早可以使用Vulkan驱动程序覆盖视频扩展的是NVIDIA。NVIDIA发布了一个新的测试版Vulkan驱动程序,支持这些Vulkan Video扩展。AMD或Intel暂时还未计划,通过其(开源)Linux Vulkan驱动程序引入Vulkan Video支持。至少在Intel,鉴于ANV的资源和已经拥有的领先的开源多媒体堆栈,有望很快就会引入。在AMD方面,到目前为止,他们一直依赖于基于Gallium3D的视频加速技术,他们是否/何时将AMDVLK应用于Vulkan Video,以及独立的RADV驱动程序是否也能支持这些视频扩展,这将是一个值得期待的问题。

NVIDIA已经发布了一个Vulkan Video解码器的开源示例[2]。Khronos组织和他们的合作伙伴还致力于一致性测试套件、更多的代码样本,以及围绕Vulkan Video的其他补充内容。

相比现在不同视频接口(尤其是Windows和Linux之间支持不同API)的碎片化,希望一旦Vulkan Video 1.0规范定稿,我们将看到更多的多媒体软件使用此视频编码/解码API。有了Vulkan Video 1.0,当扩展的编解码器支持出现时,它很有可能成为GPU加速视频编码/解码的主流接口,希望它比OpenMAX做得更好热度更高。

临时的Vulkan Video扩展是目前规范更新中最重要的工作,不过在Vulkan 1.2.175中还有其他新扩展。
编辑:lyn

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分