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

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

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


还有就是 N 卡阵营里,1650Ti 和 2060,压片速度有多大差异?
11966 次点击
所在节点    问与答
82 条回复
happinessnch
2022-03-01 09:52:01 +08:00
@ungrown
就运动预测来说,通过相位相关算法在参数完全一样的情况下,CPU 会和 GPU 算出来的结果不一样?
同样的滤波算法,同样的参数,CPU 会和 GPU 算出来的结果不一样?
如果如果分辨范围不一样,说明参数不一致,如果逻辑判断不一样,那压根就不是一个算法。

你再发我不回了哈,这么久的帖子,就让它沉了吧。
ungrown
2022-03-01 15:25:34 +08:00
@happinessnch #81 你回不回的,又如何,at 你的楼层是为了明确上下文,写了又不是只给你一个人看的。就算你不特意说明接下来不回,难不成我还催着你回复吗?我要真那么做了,屏蔽是干嘛用的?虽然我自己坚决不拉黑别人,但并不认为这个功能的存在有何不妥。

为什么总有人要把视频编解码这么复杂的体系看成一个单独的算法?哪怕是这个体系中的每一个环节,也都是由多个不同算法构成的,并且有些算法还不是强制的、固定的,是可增减的、根据条件选择的。选择的根据不仅仅是用户指定的参数,还取决于各个软件、硬件的具体实现,即使严格遵照标准依然有巨大的灵活发挥空间。
再说用户只能指定更改哪些参数,剩下大量参数既然没有被用户指定,那就保持默认值,而这个默认值不同的软硬件实现也可以不一样。至于参数本身,标准体系内的参数也不是非得全部暴露出来,标准之外的参数也不是不可以加进来。
说到底,还是前述的那样,标准体系之下有着巨大的灵活发挥空间,软硬件编码器怎么实现、怎么设计、怎么在标准的基础上取舍、乃至魔改,八仙过海各凭本事。

你心心念念的所谓“一样的算法”“一样的参数”这些前提,从一开始就不存在。除非我们是在讨论同一个软硬件实体的同一个版本,而不是现在这样在讨论众多不同的软硬件实现。

运动预测这方面,标准只规定要按照怎样的“语法”来描述运动,至于这些运动偏移是怎么估算出来的,标准才不管那么多。其他方面也是,标准的存在是为了统一用来描述静态和动态画面的方式及相关的数据结构,只要能保证这方面的统一性,就能保证统一的可解码性,并能保证解码结果的统一性,至于是怎么编码出来的,根本不在乎,反正编码结果数据的语义和数据结构符合标准就行了。

所以编码器在对画面作运动预测时,是以一整个画面为范围,还是划分成 4 个、16 个、64 个小块来提高并行度,这是编码器的自由,也不会违反编码标准,反正不管用何种方式进行预测,只要预测的结果能被其他解码器读懂就行。给 CPU 用的软件编码器有着充足的内存空间和强大的运算单元,不需要再考虑把单帧画面进一步切割。GPU 上的运算单元都是些功能孱弱的弱单元,显存也不够一众核心分,所以在给核心分配任务的同时限定各自的搜索范围,这都是在客观因素制约下的因地制宜的手段。

所以你结尾总算说了一句事实,(同一视频编码标准下的,各种不同的软件编码器实现,和各种硬件编码器)压根就不是一个算法。所以也别拿自己参与过的项目来类比这个项目之外的、更广阔的的、你所不熟悉的领域了。

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

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

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

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

© 2021 V2EX