首页 > 其他分享 >Vulkan Video实现GPU加速视频编码/解码

Vulkan Video实现GPU加速视频编码/解码

时间:2023-07-27 23:06:18浏览次数:43  
标签:视频 Video VK API video GPU Vulkan


Vulkan Video实现GPU加速视频编码/解码_java

正文字数:929  阅读时长:2分钟

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

文 / Michael Larabel

整理、审校 / LiveVideoStack

多年来,我们一直渴望了解更多关于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 Video实现GPU加速视频编码/解码_区块链_02

最早可以使用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中还有其他新扩展。

 

参考链接

[1]https://www.khronos.org/blog/an-introduction-to-vulkan-video

[2]https://github.com/nvpro-samples/vk_video_samples

标签:视频,Video,VK,API,video,GPU,Vulkan
From: https://blog.51cto.com/u_13530535/6874974

相关文章

  • multi-GPU环境下的batch normalization需要特殊实现吗?
    3年前曾经写过关于分布式环境下batchnormalization是否需要特殊实现的讨论:batchnormalization的multi-GPU版本该怎么实现?【Tensorflow分布式PS/Worker模式下异步更新的情况】  当时我给出的观点就是在多卡环境下batchnormalization使用每个step内的各显卡batch上......
  • nvidia-smi显示GPU上无进程但GPU显存却被占用
        问题:有时我们在使用GPU的时候,因为某个原因,导致GPU被占,但有无法通过nvidia-smi看到进程编号,就会产生一个现象,GPU被未知程序所占用,我们只能使用GPU的一部分,针对这种现象怎么解决呢   方法1.重启电脑,如果win系统的话,直接关机重启即可;如果是linux系统,有图形界面......
  • 多节点高性能计算GPU集群的构建
    建议参考原文:https://www.volcengine.com/docs/6535/78310 ============================================= 一直都在使用超算的GPU集群,但是从来没有实际操作过,虽然在自己的个人的三台主机上安装过小型的MPI集群,但是毕竟没有实际超算平台的构建经验,比如NCCL的超算平台上的......
  • GPU的硬件组成及运行原理
    GPU的硬件组成GPU是一种专门为图形处理而设计的处理器,它的设计目标是在处理大规模、高并发的图形数据时提供高效的计算能力。与CPU相比,GPU的处理器数量更多,每个处理器的计算能力相对较弱,但它们可以同时处理大量的数据,从而提供更高的计算效率。GPU的硬件组成包括:处理器单......
  • Unsupervised Learning of Depth and Ego-Motion from Video(CVPR2017)论文阅读
    深度估计问题 从输入的单目或双目图像,计算图像物体与摄像头之间距离(输出距离图),双目的距离估计应该是比较成熟和完善,但往单目上考虑主要还是成本的问题,所以做好单目的深度估计有一定的意义。单目的意思是只有一个摄像头,同一个时间点只有一张图片。就象你闭上一只眼睛,只用一......
  • pytorch 选定多GPU训练
    PyTorch多GPU训练实现在本文中,我将向你介绍如何使用PyTorch进行多GPU训练。作为一名经验丰富的开发者,我将以表格的形式展示整个实现流程,并在每一步中提供需要使用的代码和对其意义的注释。实现流程步骤代码说明1importtorch导入PyTorch库2importtorch.nnasn......
  • Android VideoView播放进度条
    AndroidVideoView播放进度条实现流程为了实现AndroidVideoView的播放进度条,我们需要按照以下步骤进行操作:步骤操作1在布局文件中添加VideoView和SeekBar控件2在Activity中找到并初始化VideoView和SeekBar控件3设置VideoView的路径和准备监听4设置SeekBar......
  • android.provider.MediaStore.Video.Media
    实现android.provider.MediaStore.Video.Media的步骤对于刚入行的小白开发者来说,实现android.provider.MediaStore.Video.Media可能会感到困惑。不用担心,本文将指导你完成这个任务。下面是实现该功能的步骤及相应的代码解释。步骤步骤描述1.导入所需的库2.创建查......
  • jquery获取video
    如何使用jQuery获取video元素作为一名经验丰富的开发者,我很高兴能够教会你如何使用jQuery来获取video元素。下面是一份使用表格展示的步骤,以及每一步需要做的事情和相应的代码。步骤操作代码1.引入jQuery库`<scriptsrc="2.等待页面加载完成$(document).ready(f......
  • 如何知道游戏中不同型号GPU带宽的瓶颈
    1)如何知道游戏中不同型号GPU带宽的瓶颈​2)​Unity如何避免文字单字成行3)如何检测部分安卓机型是否支持GPUInstance4)如何筛选重复动画这是第344篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖了UWA问答、社区帖子等技术知识点,助力大家更全面地掌握和学习。UWA社区主页:com......