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

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

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


还有就是 N 卡阵营里,1650Ti 和 2060,压片速度有多大差异?
11301 次点击
所在节点    问与答
82 条回复
May725
2020-07-02 13:58:35 +08:00
是的,不仅如此,用电也有讲究,风电柔,火电画面燥点就比较多,用水电就比较中性了,通常以三峡水电站的为佳。狗头
zhangsimon
2020-07-02 14:01:15 +08:00
@May725 这个梗已经一点意思都没有了…
Cavolo
2020-07-02 14:12:14 +08:00
这问题似乎也没什么意义
zhangsimon
2020-07-02 14:15:55 +08:00
@Cavolo 什么意思?
woodensail
2020-07-02 14:23:49 +08:00
https://www.zhihu.com/question/303525717
搜索引擎是个好东西。
across
2020-07-02 14:28:30 +08:00
那是性能差异。

标准都一样,参数一样,出来的不同,不是 bug 么....
azh7138m
2020-07-02 14:32:47 +08:00
@across
不是,走硬件加速确实不如 CPU 画质好
当初做对比的那期 mc 我还留着呢(狗头
kop1989
2020-07-02 14:33:16 +08:00
@across #6 还真不是,一开始我和 1L 的想法一样,以为是玄学。
后来一想可能有道理,因为 CPU 和 GPU 的架构设计不同,算法不同。相同码率出来的视频确实可能不一样,一搜还真是如此。
zhangsimon
2020-07-02 14:39:01 +08:00
@azh7138m N 卡哪款现在压片性价比比较高啊 0,0 看什么参数?
Nvdia 倒是给了 Video Encode 的性能列表,但我不清楚该对比哪个数据…
https://developer.nvidia.com/video-encode-decode-gpu-support-matrix#Encoder
libook
2020-07-02 14:49:32 +08:00
画质和转码参数有关,和用什么硬件没关系。

要选择什么硬件搭配,要看你压片用的软件用了哪些硬件的接口,这方面去问软件的开发者,或者看官方文档就行了。
libook
2020-07-02 15:13:40 +08:00
补充一下,很多视频转码软件对 GPU 的利用非常有限,很多都是完全依赖 CPU 来做转码的,用上了 GPU 也仅仅是借用部分功能来适当提升性能。

如果你的软件能利用硬件编码、解码器的话,不出意外的话是新出的硬件会好,相比于旧硬件做了优化以及修复缺陷,硬件编码、解码器通常因为算法固化在硬件上了所以通常无法通过打补丁的方式改进。

我司的产品主要就是视频,压片常年就是 FFMPEG+i7 4790k,没有用任何 GPU 。选型这方面理论只是给你一个大概的方向,实际还是得看文档、问开发者、做压测。
futou
2020-07-02 15:36:57 +08:00
如果问的是软编码和硬编码哪个在相同码率下能得到更高的质量,在不考虑加特技的条件下,[当前]一定是软编码更好。因为硬编码一定会阉割掉一些高计算复杂度的技术。而且当前的视频编码框架天生不适合 gpu 这种多核架构,gpu 那么多 cuda 核心也就在 memc 这种地方有用武之地,还很难用。不过英伟达是个 bug,有 nvenc,过两年一切都很难说了。利益相关:软编算法...

如果问的是 intel 的 QuickSync 和英伟达的 nvenc 的话,我不懂...不过要比画质的话,只要是在相同码率下对比就行。
zhangsimon
2020-07-02 15:41:17 +08:00
@futou 就是看中了 N 的 nvenc ;
上面 Nvida 参数列表里给出了 number OF NVDEC/CHIP 参数,那就看这个数量来衡量显卡的 H.265 转码效率吗?
msg7086
2020-07-02 15:44:35 +08:00
@across 是标准又不是实现。
现代视频编码很大一部分实现在于动态预测,换句话说就是在画面里找出「动了的部分」,这样就可以重用之前编码过的数据,提高编码效率。

比如,第 1 帧的时候画面上有一只手,第 2 帧的时候这只手往右移了 2cm 。
可能 x265 编码器在跑第 2 帧搜索的时候找到了这只手,于是重用了第 1 帧里的这只手来编码,节约了不少码率。
而 nvenc 在跑的时候可能这只手他没找到,就只能老老实实把手重新画一遍。

这两个流跑出来的画面结果是相同的,但是因为 x265 节约了一只手的码率,所以同样画质下容量小了很多。
差异主要来自这里。
LiYanHong
2020-07-02 15:45:11 +08:00
KBr 压片比较常见,不过我们现在的仪器可以直接测固体粉末了
futou
2020-07-02 15:45:57 +08:00
@zhangsimon 不好意思,应用上建议参照#10 #11,以及 b 站油管搜一搜,我外行不懂
zhangsimon
2020-07-02 15:47:34 +08:00
@msg7086 喵喵喵 那 N 卡 转码效率 看 nvenc 核心数就可以了吗? 我看 Nvidia 官网给的 1650 到 2080 里,nvenc 都是数字 1… 所以他们跑起来速度差异不大?
msg7086
2020-07-02 15:48:50 +08:00
@zhangsimon 视频编码的核心问题是:
如何让(画质 / 大小)的值尽可能高。

单看画质没有意义,因为只要你把码率逼近到无穷大,画质可以做到无损。但是显然无穷大没有意义。
单看大小也没意义,只要把画质压烂,文件自然能变小。

所以视频编码的效率就是单位大小上的画质。
比如同样给 1000kbps,谁更保真?或者同样画面保真度的情况下,谁能压得更小?
zhangsimon
2020-07-02 15:50:19 +08:00
@msg7086 -- 我理解画质和码率直接的关系。我意思是我想选用 N 卡的加速的话,选显卡时看显卡的哪个参数…
msg7086
2020-07-02 15:51:57 +08:00
@zhangsimon #17
我们一般把速度叫做编码速度,画质大小比值叫做编码效率。

速度的话我倒是不太清楚,因为我不用 nvenc 的。你可以找找各种显卡的测评,有些可能会测 nvenc 速度,可以给你一定的参考。

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

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

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

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

© 2021 V2EX