压片时用 CPU 和 GPU 效果差异很大吗?

2020-07-02 13:53:15 +08:00
 zhangsimon
如果用 H.265 标准压片
都知道 GPU 相对 CPU 的速度是有显著增益的
但搜了下有说 GPU 出来的画质差 CPU 画质很多
也有说差异不大的
说画质差异大的:把码率稍微调高点,两者画质差异就不大了

所以画质上,上面的理论哪个更准?


还有就是 N 卡阵营里,1650Ti 和 2060,压片速度有多大差异?
11947 次点击
所在节点    问与答
82 条回复
ohao
2020-07-02 15:54:46 +08:00
这问题很复杂

我们相关研究有好几年,大概有几百篇内部文档了

从前从 cpu 开始测试,e3 e5 系列,一直到 i7 i9 系列
后来因为效率,又开始测 gpu,从 1080,2070s,2080ti

最近开始测了最新的 e2288 处理器的核显

测试 cpu 的 cbr vbr crf 各种模式
测试 gpu 的 n 卡 cuda 和 intel 的 qsv
各种工况下的处理效率 帧 质量 有无花屏容错等等

这个效果取决于你的需求
视频处理速度 /视频文件输出大小 /处理适配的规则
还有很多外在因素
比如源视频是什么编码器输出的,音频什么编码器和码率
你重新转码的时候,选择的模式是恒定还是可变,还是指定清晰度,这个主要是靠参数来调,

实际上我们现在调到测试 gpu 和 cpu 视频质量一致(肉眼无法区分)的时候,输出文件大小也相差不大

所以这个问题本身是没正确答案的
还是靠参数和需求来定
zhangsimon
2020-07-02 16:05:42 +08:00
@ohao 哭了,我就想压 h.265 的视频,对画质和文件大小要求一般,就是希望速度快点。
我就是看 GPU 在压制速度上这一块是优势,所以在考虑下一台硬件把 GPU 预算上加强;
但我搜了下文章好像说 2060 对比 1060 这种看上去其他参数差异很大的显卡,在压片上差异又不大,
所以在求证压片时,选显卡的话应该看显卡的哪个硬件参数…
stoneabc
2020-07-02 16:09:56 +08:00
@libook 和硬件当然有关系…
msg7086
2020-07-02 16:29:39 +08:00
@zhangsimon Turing 的编码器相比之前几代又有提升了,据说和 x265 的 ultrafast 有得一拼。

不知道你具体的使用场景是什么。通常不考虑画质和大小的硬件编码主要是用在串流上,比如直播,还有比如串流到移动设备上观看等等。如果是要收藏存储的话,应该不会考虑用这么低的参数来压制,我觉得至少也要到 x265 medium 的级别才有使用的价值。
libook
2020-07-02 16:32:54 +08:00
@stoneabc 这里的关系主要是因为算法差异吧,如果是一模一样的算法,除非引入模拟信号,否则不会有差异吧。
ohao
2020-07-02 17:07:45 +08:00
wangsd
2020-07-02 17:08:43 +08:00
压制出来的体积会差不少
stoneabc
2020-07-02 17:21:38 +08:00
@libook 硬编码器基本不存在一模一样的算法,都是自己实现。软编当然一般都用 x264/x265,一样的算法。
zhs227
2020-07-02 17:24:18 +08:00
在 AVC 时代,x264 在很长一段时间内被公认为画质最好的编码器。但是 HEVC 时代 x265 并没有压倒性的优势。同样压缩率的情况下,先编几个场景用肉眼评估一下,如果区别不大就选那个快的。
zhangsimon
2020-07-02 17:35:28 +08:00
@ohao 收到👌 多谢
zhangsimon
2020-07-02 17:36:45 +08:00
@zhs227 -。-手上如果有测试环境我肯定直接跑了,现在是想升级硬件,想看升级哪款显卡压片价值更高些…
edius
2020-07-02 18:16:29 +08:00
可以肯定的是 GPU 的编码质量要差一些。FCPX 下如果直接输出 H264,输出速度非常快,在活动监视器里能看到 GPU 能工作到满载,CPU 不怎么工作,如果调用 compressor 输出,GPU 基本不怎么工作,CPU 压制。265 格式不确定,在 DVD 时代,专业的视频编码卡输出画面质量一定高于 CPU 压缩。
edius
2020-07-02 18:19:12 +08:00
如果 GPU 压缩质量高,苹果就不会再单独开发一个编码软件 compressor 了。ADOBE 编码也有单独的软件 encoder.而 canopus,matrox 都有专业编码卡。
happinessnch
2020-07-02 18:33:23 +08:00
和 11 楼想法一样,
和硬件没有关系,用 CPU 计算出来的结果为什么 GPU 算出来的不一样?
如果是不一样肯定是 BUG,
如果算法或者参数不一样, 那也和 CPU 、GPU 没关系啊。
换一个好 GPU 算出来的数值会有变化?
ayconanw
2020-07-02 18:35:05 +08:00
希望不懂的人,不要随便抖机灵回帖,更不要想当然的进行误导。
比如 6 楼的看法,很显然是错的。cpu 和 gpu 压视频,用的完全是两套不同的算法。

回复下楼主,目前的编码模式,cpu 在同码率(非严重溢出)的情况下,画质一定是比 gpu 更好的,但是压片速度也会相应的比显卡慢一些。静态场景还好,激烈运动场景,gpu 压出来的会比较差。
如果一定要用显卡压,注意两点,首先码率要给足够,在码率非常足的情况下,二者画质差距就比较小了。高参数极限小码率的情况下,cpu 会好很多。
n 卡尽量用图灵卡压,无论速度和画质都会比 10 系有提升。
love
2020-07-02 19:00:27 +08:00
@happinessnch 这不是一个问题好吧,这不是算 hash,压视频软件和硬件算法差别大了去了。
happinessnch
2020-07-02 19:19:52 +08:00
@love
我从头到尾读了一遍,
你看我理解的对不对,
是不是意思是说,
由于在大部分拥有编码软件上,CPU 编码和 GPU 编码都不会使用相同的算法,
所以,就直接省略算法,可以直接讲“CPU 编码一般情况下比 GPU 编码质量好”?
而如果这句话要完整的说,应该是“CPU 编码使用的算法比 GPU 编码使用的算法质量好”。
我理解的对吗?
love
2020-07-02 19:25:32 +08:00
@happinessnch 别说复杂的视频压缩了,就是简单的 zip,都有一大堆压缩库,都有不同的压缩率和速度,虽然出来的都是标准的 zip 。
Semidio
2020-07-02 19:31:31 +08:00
编码速度优先,GPU 编码,单纯 NVENC 性能,从 1650S 到 2080TI 都一样
编码质量优先,CPU 编码,一分价钱一分性能
happinessnch
2020-07-02 19:32:53 +08:00
@love
12 年做过一个项目,为一家海外老牌的视频公司做硬件加速,我们用 OpenCL 重新实现其公司算法,要求就是 GPU 计算出来的编码要与现在 CPU 的计算完全相同。
“CPU 编码一般情况下比 GPU 编码质量好”,当时我们绝对不会有这样的说法,这个说法有明显的语义歧义,当然,可能是我过时了,已经快 8 年没碰过视频处理相关的内容了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/686547

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX