调调编码器的CRF,它背后的唯物辩证法

作者:手撕编解码
原文:https://mp.weixin.qq.com/s/Us3hO03krIbf0puol0hQDA

已知许多视频编码器,都支持Constant Rate Factor,CRF码率控制方式。

此外,对于有损视频编码应用场景,同一视频如果保持其他编码参数不变,一般设置的CRF值越大,转码视频码率越小,视频画质越差,反之亦然。CRF的取值范围可以通过编码器的用户手册或者命令行帮助参数获取,比如0~51.0的小数。

那么请问,如果人眼发现有一些视频的画质较差,让你来调节CRF值提提画质,这件事需要几岁的小孩能够胜任?

或许这件事听起来很简单,但如果稍微包装一下:比如调调CRF叫它算法策略调优提提画质叫它用户体验升级,给不同的视频调出不同的CRF,叫它对垂直用户的精准做功,等等。这样听起来是不是就感觉难度增加了很多呢?

但实际上,比起之前笔者介绍过的编解码算法优化的移植,调参和测试三大法宝,调调CRF要更加简单,也更倾向于上层应用。不管懂不懂编解码,甚至都不需要懂音视频,也能迅速在项目中“拿到收益”。

简单的事,复杂着说,音视频这块现在或许确实很需要故事。

但当我们试图以更高维度来看这个问题,那调调编码器CRF这个动作,实际是在尝试解决视频码率和视频画质之间的矛盾问题。

根据唯物辩证法的观点,矛盾存在于一切事物发展的过程中,也贯串于每一事物发展过程的始终,这是矛盾的普遍性和绝对性,视频编解码中当然也不例外。视频编解码领域的(根本)矛盾就是视频的画质和码率(成本)的矛盾,即所谓的RDO率失真优化,它这种特殊的矛盾也决定了视频编解码区别于其他科学研究领域的本质

视频编解码领域的不断发展,根本原因是视频画质和码率之间对立统一的不断运动发展。而我们这些人一直努力做的,是尽可能缓和视频编解码的这个矛盾,也导致了视频编解码的发展表现为各个不同的阶段性和过程性,比如从H.264发展到H.265,到现在的H.266。

但我们知道,事物发展过程的根本矛盾及为此根本矛盾所规定的过程的本质,非到过程完结之日,是不会消灭的。所以,视频编解码存在和发展着,可以认为那就是矛盾没有被解决,甚至可能是被逐渐激化了。

在音视频项目实践活动中,我们会在不同的视频编码标准下去研究码率和画质问题,这实际就是在矛盾运动发展的不同阶段,去研究矛盾的可能的解决方案。例如在H.265编码器上去调调CRF,那其实就是在暂时地缓和码率和画质的矛盾并寻找矛盾双方的平衡点。而之所以可以通过调CRF值来实现这一目的,是因为作为对立统一的码率和画质这二者,可以在CRF这个条件下进行互相的转化(即矛盾具有同一性)。

而当你对不同的视频去调出不同的CRF,实际这就是具体问题具体分析的科学方法,也是研究不同视频包含的矛盾特殊性的客观手段。当你把CRF调低去提升画质的时候,此时矛盾的主要方面可能是画质,反之,当你把CRF调高去降码率的时候,矛盾的主要方面是成本。如果你准确抓住了一定阶段矛盾的主要方面,那么你就可以很好的解决视频编解码的问题。

版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。

(0)

相关推荐

发表回复

登录后才能评论