为什么视频由cpu而非gpu渲染?


8

嗯,我知道这种力量的声音就像一个非常愚蠢的问题,但使用谷歌,所以是...我无法找到答案
所以,我知道有像OpenCL和CUDA技术,但为什么,在默认情况下,使用的处理器从视频编辑软件渲染例如视频文件?对我来说似乎不直观,图形处理单元不用于处理图形。在玩视频游戏时,GPU还负责在屏幕上生成图像,不是吗?

再说一次,我知道这听起来很愚蠢。请轻度°A°

编辑:我专门谈论诸如Premiere Pro之类的NLE软件的视频输出


3
大多数在线视频都经过压缩,因此实际工作是对文件进行解压缩,这是CPU处理的常规操作。如果库支持的话,GPU实际上可能非常擅长处理文件压缩/解压缩,但是通常它们会利用特定的调用来在屏幕上绘制项目,而不是用于一般的计算。游戏是动态的,因此可以发挥优势,因此它们真正利用了GPU-视频不是即时生成的-它是在此坐标处预定义此彩色像素的,因此GPU对此无用。
ernie 2014年

您是在专门谈论渲染视频文件的视频编辑软件吗?如果没有,您能否提供其他示例?视频编辑器在渲染时使用多少GPU很大程度上取决于所使用的渲染软件包。照原样,这太广泛了(IMO)。
Ƭᴇcʜιᴇ007

是的,我在说那个。抱歉,如果不清楚。
MoritzLost 2014年

然后,请编辑您的问题,以解决您所面临的特定问题,包括您尝试过的软件,所用的操作系统以及所要纠正的内容。然后询问有关该特定问题的特定问题。再说一遍,这太过广泛了,因为如果配置正确,许多视频渲染包都可以使用GPU。然后,我们也许可以帮助您弄清楚为什么不这样做。:)
Ƭᴇcʜιᴇ007

Answers:


14

在高清成为现实之前,CPU可以轻松处理视频解码。HD大约8年前开始流行时,GPU制造商开始在其芯片中实现加速的视频解码。您可以轻松找到销售为支持高清视频和其他口号的图形卡。如今,任何GPU都支持加速视频,甚至包括集成的GPU(如Intel HD Graphics)或其前身Intel GMA。如果不添加这些内容,您的CPU将很难尝试以可接受的帧速率消化1080p视频,更不用说增加能耗了。因此,您已经每天都在使用加速视频。

现在,当GPU具有越来越多的通用计算能力时,它们也被广泛用于加速视频处理。这种趋势大约是在引入加速解码的同时开始的。诸如Badaboom之类的程序开始受到欢迎,因为事实证明,GPU在(重新)编码视频方面比CPU更好。但是,由于GPU缺乏通用的计算能力,因此以前无法做到。

但是GPU自中世纪以来就已经可以缩放,旋转和变换图片,所以为什么我们不能使用这些功能进行视频处理?好吧,这些功能从未实现过以这种方式使用,因此由于各种原因,它们不是最理想的。

在编写游戏程序时,首先将所有图形,效果等上传到GPU,然后渲染多边形并将适当的对象映射到它们。您不必每次都需要发送纹理,就可以加载它们并重新使用它们。在视频处理方面,您必须不断地向GPU馈送帧,对其进行处理,然后将其取回以在CPU上对其重新编码(请记住,我们所谈论的是GPU的计算时间)。这不是GPU应该工作的方式,因此性能不是很好。

另一件事是,在图像转换方面,GPU并非以质量为导向。当您以40+ fps的速度玩游戏时,您不会真正注意到轻微的像素错误表示。即使您愿意,游戏图形的细节也不足以让人关注。有多种用于加速渲染的技巧和窍门,可能会稍微影响质量。视频也以相当高的帧速率播放,因此可以在播放时动态缩放它们,但是重新编码或渲染必须以合理的成本产生像素完美或至少尽可能接近的结果。如果没有在GPU中直接实现适当的功能,就无法实现这一目标。

如今,使用GPU处理视频非常普遍,因为我们需要适当的技术。为什么不是默认选择,这是程序发行人而不是我们的问题,这是他们的选择。也许他们认为他们的客户具有用于在CPU上处理视频的硬件,因此切换到GPU会对性能产生负面影响,但这只是我的猜测。另一个可能性是,他们仍然将GPU渲染视为实验性功能,但还不够稳定,无法将其设置为默认功能。您不想浪费时间来渲染视频,只是为了意识到由于GPU渲染错误而使某些事情搞砸了。如果您决定仍然使用它,那么您不能责怪软件发行商-这是您的决定。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.