天天看点

CRF(Constant Rate Factor)的定义及使用

名称

        CRF(Constant Rate Factor) / CQF(Constant Quality Factor) 恒定质量因子.

定义

        CRF 是码率控制 rate control 的一种,是​​x264​​​和​​x265​​​编码器的默认质量(和码率控制)设置,也可用于​​libvpx​​.

        QP 是把某个量化值作为目标,而 bitrate 是把某个档案大小作为目标,CRF 则是把某个 “品质” 作为目标.

        CRF与恒定QP ( Const QP, CQP) 类似,但追求主观感知到的质量恒定,瞬时码率也会随场景复杂度波动.

        构想是让 CRF n提供的视觉品质与 QP n相同,只是档案更小一点;CRF 值的度量单位是位元率系数 (ratefactor).

        越小的 CRF 越可能带来更高的视频质量,随之文件体积也会变大;CRF 越大,视频压缩率越高,但视频质量越低.

        与码控一样,CRF 对快速运动或细节丰富的场景会适当增大量化失真(因人眼不敏感),而对静止或平坦区域则减少量化失真.

        各codec的CRF取值范围、默认值和建议值见下表。

codec 取值范围 默认值 建议值
x264 [0, 51] 23 [18, 28]
x265 [0, 51] 28 1080p HD视频建议31
VP9 [0, 63] - [15, 35]

        下表为 CRF 与码率的对应关系

CRF(Constant Rate Factor)的定义及使用

        另一个 CRF 与码率的关系图为

CRF(Constant Rate Factor)的定义及使用

使用

ffmpeg 在 x264 中指定 CRF 为23

ffmpeg -i input.mp4 -c:v libx264 -crf 23 output.mp4      

适用场景

        离线视频存储、档案备份

  1. ​​视频编码-码率控制CQP/CRF/ABR/CBR/VBV​​
  2. ​​Understanding Rate Control Modes (x264, x265, vpx)​​
  3. ​​CRF Guide (Constant Rate Factor in x264, x265 and libvpx)​​
  4. ​​x264编码参数大测试:01 subme与crf(a)​​
  5. ​​mediacoder固定质量CRF​​
  6. ​​机器学习如何帮助Youtube实现高效转码?​​