GPU转码效果为啥不如纯CPU

啧啧。首先呢,这个“问题”还略有问题。Intel的Quick Sync以及NV的GPU加速,我想你说的应该是使用显卡中的encoder/decoder来完成视频转码。这个使用的不是GPU中EU或者流处理器来完成的,换句话说和浮点运算、流处理器没关系,有其中专有的硬件部分完成,但会占用GPU的一些其他组件。另外如果使用的是CUDA实现编码解码的话呢,这就涉及了 @冯东说的算法问题(其实硬件实现也会简化算法)。既然是压缩,一定会和其他数据产生依赖关系,要高度并行化,算法上肯定要有退让的。
■网友
高票回答里说的是对的,这里用“GPU加速”这个词是不准确的,实际上如果用GPU转码那所有实际的编解码工作都是由GPU完成的。不管GPU还是CPU都有一块视频转码的ASIC(英特尔的QuickSync和英伟达的NVCODEC)。使用NVCODEC做转码时只会占用GPU的显存,并不会占用CUDA核心。(当然也存在使用CUDA进行转码的编码器但是效率并不高)GPU转码快正是因为使用了ASIC,ASIC的优势就在于放弃通用性追求速度,也就是说用电路将h.264/HEVC的标准实现出来,而这部分电路只能用来做转码别的什么也干不了,这样的转码称为硬件编解码。
题主说的“纯CPU”指的是软件编解码(x264),就是用代码将视频编码标准进行实现,编译后在CPU上运行。软件的好处是可以快速迭代,当标准中加入新特性后一个升级补丁就可以让编码器支持,相比之下硬件的迭代周期就很长了,英伟达一般一到两年发布一个新构架,一个构架发布后如果想加入新的特性必须要等到下一个构架。比如现在x264里早就支持的RDO (Rate Distortion Optimization),英伟达要等到图灵构架可能才会支持。

■网友
GPU解码和编码是两回事,以前也有人聊过,GPU就像几万个小学生在计算,CPU就像一个全能博士生计算。
这就意味着同档次GPU一定程度上比CPU强,对于简单重复的内容速度更快,复杂的内容得CPU来做。
各有所长,而现有CPU的编码器注重质量,GPU的编码器注重速度。这也很正常。
你想问这个原理,你得问英伟达了
官网有公开的NVENC SDK,配合FFMPEG就能用,都是套用那个的。
编码都是用一个编码规范,H264或者H265。
CPU编码器X264用了很多技术,比如qcomp参数,更复杂的内容侦测之类的。X264也有很多速度预设方案,速度越慢,同码率质量越高。
低预设和显卡编码半斤八两,他可以用更高更复杂的参数来提供更高的质量。
但不是所有的CPU编码器都比GPU强。MAINCONCEPT编码器在游戏方面甚至不如NVENC也是有的。
最后,视频编辑软件的GPU加速跟画质无关,不是编码,能大幅度减轻CPU的负担,加速素材的后期加工处理的预览和解码。编码还是靠CPU,做一些扣绿幕之类的,可以大幅度提高解码速度,实际转码速度提高好几倍,比起纯CPU拉开差距。
解码方案里,视频播放器的MADVR插件可以提供强悍完美的10bit视频GPU解码,去色带,再接近无损的高清文件下,提供更高的清晰度表现。
CPU和GPU做比较,谁强谁弱,取决于用途和方案。
标题直接下结论GPU转码效果为什么不如纯CPU,连CPU编码器有预设都不知道拿出来说
【GPU转码效果为啥不如纯CPU】 要么是不懂,要么就是故意误导钓鱼

■网友
gpu没有软件x264实现的好。


    推荐阅读