如何估计h264视频目标大小的CRF



根据x264编码文档,在CRF主题中,通知每增加6个点,文件大小就会减少约50%。

根据这一说法,假设CRF在减小视频的最终大小方面具有指数级影响。但指数比率是多少?

我不想使用调整了最大速率以达到最终大小的CRF18,因为最大速率对复杂视频场景的破坏更强烈,因为通过最大速率降低比特率并不均匀,但它首先会命中需要最高比特率的场景。

如果不假设要转换的视频的编码情况,就无法估计最终的视频大小。如果初始文件根本没有重新编码,那么转换为CRF18(肉眼无法察觉的质量损失(将导致文件大小大幅减小。

为了估计不同CRF值的最终大小,让我们进行以下假设:编码在";CRF18并且呈现慢";。

通过从这个初始文件中滑动几十个转换,保持目前的速度缓慢并将CRF增加0.2点,可以生成一个数据矩阵来评估CRF变化对最终文件大小的影响。

有了数据,只需应用指数回归来找到最大限度地减少估计误差的因素。我在测试中发现的指数因子是:每增加一个CRF点,指数因子为12.85%

所以我们可以估计:

最终尺寸=(size_crf18 * (1-0.1285)^(crf-18))

隔离CRF变量,估计实现目标视频大小所需的CRF

需要CRF=18+LOG(size_goal/size_crf18)/LOG(1-0,1285)

示例

  • CRF 18中编码配置文件的初始视频预设慢速,3500mb。目标缩小到2000亿

所需CRF=18+LOG(2000/3500)/LOG(1-0.1285)=22.07

我建议四舍五入到小数点后1位,再加0.2点(最终大小较低3%(,以最大限度地减少超过最大期望大小的估计误差。导致所需的CRF22.3/slow将h264/crf18/slow中的原始文件从3500MB减少到2000MB。

最终想法

值得注意的是,只有当所有其他标志都相同时,CRF和文件大小之间12.85%的指数比率才足够。更改present和maxrate等其他标志会极大地影响文件大小。

作为未来的愿景,考虑到初始文件和最终文件之间存在的不同组合,估计CRF的指数比率将是有趣的,因为如果以预设的慢速编码,当前超快的初始文件提供了充分的缩小大小的机会。

最新更新