本文翻译自 https://slhck.info/video/2017/02/24/crf-guide.html ,不当之处,请多指教。

----------------------------正文-------------------------

什么是CRF?

CRF是264和265中默认的质量/码率控制设置。这个值可以在0到51之间,值越低,质量越好,文件大小越大。在x264上面,一般取值为18-28,默认值是23。在ffmpeg中,crf是这么使用的

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

在x265中,默认的crf值是28

ffmpeg -i input.mp4 -c:v libx265 -crf 28 output.mp4

如果你不确定要用哪个crf的值的话,请先用默认值,然后根据你对输出质量的主观印象去调整。大约crf的值差别为6就会导致文件大小的加倍或减半。

你应该在线下的文件存储中使用crf的编码,来获取一个最佳的编码方式。对于其他的使用场景,请使用其他的码率控制模式。

------------------------------------------------------------------------------------

CRF和QP

CRF是恒定质量的编码方式,与恒定码率(CBR)是相反的。通常,为了获取恒定质量的编码,我们可以通过用同样的大小去压缩每一个相同类型的帧,即,扔掉相对来说相同数量的信息。用专业术语来说,就是使用相同的量化参数QP。这个量化参数QP定义了从一个像素宏块中丢掉多少信息。通常这将导致整个视频序列的码率不稳定。

不过,这里所说的CRF比恒定量化参数要复杂一点儿。CRF会用将每一帧的压缩不同的大小,为了让主观的质量感受差不多,会用不同的QP。他是通过把运动也考虑进来做到这一点的。在编码中,如果Qp=18,则每一帧都是QP=18,当然根据帧的类型不同会有一些微小的波动,忽略之。设置CRF=18的时候,对于运动比较大的场景,会把QP设得更高一些,对于运动比较比较不剧烈的帧,会降低QP。这会导致比特率的分配随时间变化不同。

例如,下图展示了两个不同的视频(BBB big buck bunny和TOS tears of steal),用不同的等级去编码(17和23),分别用恒定量化参数CQP和恒定质量CRF模式

我们看到,CRF的线总是比CQP的要低,意味着采用CRF模式的时候,可以省比特数,而采用CQP的时候,稍微会浪费一点文件大小。

为什么运动这么重要?

比起运动的物体,人眼对静止的物体会观察到更多的细节。基于这一想法,编码时,对运动物体给更高的压缩率,而对静止的物体保留更多的细节。

用外行的话说,这是因为你的视觉系统会被运动分散注意力,而不会有足够的时间去注意运动物体的细节。用专业术语来讲,运动掩盖了块效应。从另一个方面来说,当一帧运动不够大时,人就会话更多的时间去注意图像的细节了,所以你希望压缩的越少越好。这个时候的压缩噪声对于人眼来说就比较显著了。

你可能会问,那么CQP是不是会取得好的视频质量呢?事实上,感官感受是差不多的,只是CQP的模式会在你不真正注意的区域浪费更多的空间。

从应用的层面来说,很多人都会在单通道的编码使用CRF,另一个采用CRF的原因是这个是开发者x264或x265时默认选择的码率控制模式。

定量的视频质量怎么样呢?

如果你有一些简单的方式可以比较视频质量的话(比如,比较每一帧的PSNR),你会发现CRF的质量比CQP的要差。但是如果你用人眼去主观评价的话,CRF和CQP看起来差不多。它对于人眼比较关注的地方压缩的比较小。客观质量评价可能会比较差,但主观质量还是可以的。

这其实有一个对于简单的质量评价方式psnr或ssim的一个质疑,它不能把运动之类的影响人眼的感受的因素考虑进去,因为他们是逐帧去评价的。一些评价标准,像VQM和VMAF对于评价视频来说是更好的一种方式。

质量和比特率之间是什么关系?

不是所有的视频都是一样好压缩的。运动较少,细节较少的视频是比较容易压缩的,反之相反了。这里说的容易是指,同样的码率的情况下,比较容易达到更好的图像质量。

CRF解决这一问题,对于不同的视频,不同的CRF参数导致不同的码率。事实上,你无法根据码率估计crf的参数。

例如,你把CRF设成23,对于一个视频源,你会得到1500 kb/s,而对于另一个,你会得到1000kb/s,两个看起来质量差不多。事实上,CRF要做的,就是保留确定数量的细节,不管用多少码率。

云编码服务Bitmovin在正式编码之前,也用CRF来评估视频的复杂度。

需要注意一点,如果你的CRF选的太高(比如30),你会看到在运动比较剧烈的地方有很多的块效应,因为这些地方的码率太低了。编码器会对更复杂的区域用QP32,如本文开头提到的,根据你想要的视频质量选择要的CRF参数。

为什么你还是会在电视或者网络上看到很多块效应呢?

为什么呢?问题是对于这些视频,他们用了太低的码率,特别是在广播中,码流是用固定码率去压缩的,这样就不会考虑运动了。因此,一些电视节目在真正复杂的细节的图像处没有采用相应的压缩率,看起来就比较多的块了。

现在的码流处理会更加的智能一些。youtube和neflix用2-pass甚至3-pass的算法,对于后者来说,采用CRF编码来决定对于某一特定源,应该用某种码率去编码。确保对于复杂场景有足够的码率去使用,而又不超过用户的带宽。

转载于:https://www.cnblogs.com/sunny-li/p/9979796.html

[译]CRF和QP的区别相关推荐

  1. CRF和CQP的区别

    转发自https://www.cnblogs.com/sunny-li/p/9979796.html 本文翻译自 https://slhck.info/video/2017/02/24/crf-gui ...

  2. 条件随机场CRF HMM,MEMM的区别

    http://blog.sina.com.cn/s/blog_605f5b4f010109z3.html 首先,CRF,HMM(隐马模型),MEMM(最大熵隐马模型)都常用来做序列标注的建模,像词性标 ...

  3. 图像编解码:CRF(质量/码率控制)和QP

    什么是CRF? CRF是264和265中默认的质量/码率控制设置.这个值可以在0到51之间,值越低,质量越好,文件大小越大.在x264上面,一般取值为18-28,默认值是23.在ffmpeg中,crf ...

  4. 计算机会计与手工会计的区别与联系,会计电算化与手工会计的差异和共同点各是什么...

    第一,电算化会计与传统手工会计的同声传译.两者都是对经济业务进行记录和核算,目的是加强管理,提供会计信息,参与企业决策,提高企业经济效益. 2.基本的会计理论和方法是一致的.两种会计制度都应遵循基本的 ...

  5. 条件随机场CRF(三)

    上篇博文介绍了CRF的标记序列的概率计算,本片博文专注于CRF的参数学习问题和序列解码问题. CRF模型参数学习思路 在CRF模型参数学习问题中,我们给定训练数据集 X X X和对应的标记序列 Y Y ...

  6. 在…视域下是什么意思_视域论文,关于翻译文化特性视域下汉语文化负载词语英译探析相关参考文献资料-免费论文范文...

    导读:本文是一篇关于视域论文范文,可作为相关选题参考,和写作参考文献. 张几木 (辽宁师范大学外国语学院 116000) 摘 要:翻译作为一种跨文化交流的手段,其重要意义在于将不同文化进行重新阐释,以 ...

  7. x264 代码重点详解 详细分析

    eg mplayer x264 代码重点详解 详细分析 分类: ffmpeg 2012-02-06 09:19 4229人阅读 评论(1) 收藏 举报 h.264codecflv优化initializ ...

  8. ffmpeg mplayer x264 代码重点详解 详细分析

    ffmpeg和mplayer中求平均值得方法 1 ordinary c language level #define avg2(a,b) ((a+b+1)>>1) #define avg4 ...

  9. 客观指标VS主观质量:拨开遮挡高清视频技术的迷雾

    金山云将在LiveVideoStackCon 2020北京站发布金山云图像视频感知评价指标Kingsoft Cloud Perceptual Assessment(KPA),这也是金山云与香港城市大学 ...

最新文章

  1. 爬了20W+条猫咪交易数据,它不愧是人类团宠
  2. linux 自动提权perl脚本
  3. 站在汽修厂的角度看需求
  4. java中常用的包、类、以及包中常用的类、方法、属性----sql和text\swing
  5. CSS基础「四」浮动 \ 常见网页布局
  6. 2999元起!苹果悄然发布两款iPad新品 升级至A12处理器
  7. 08TensorFlow2.0基础--8.5张量运算
  8. Oracle 无备份情况下的恢复--临时文件/在线重做日志/ORA-00205
  9. ArrayList 与 LinkedList 插入、查询效率测试
  10. 2.开发Mip组件的第一个demo(点击关闭按钮,关闭外层dom)
  11. 数分-理论-大数据2-Hadoop
  12. html如何制作水滴效果图,html+css实现充电水滴融合特效代码
  13. 用计算机弹出音乐谱,抖音计算器音乐乐谱有哪些?抖音计算器弹奏简谱音乐大全...
  14. Spring Tips: The Wavefront Observability Platform
  15. s11 day103 luffy项目结算部分+认证+django-redis
  16. 快速切换IP的批处理!
  17. java入门基础掌握单词汇总
  18. 【华为OJ】【099-MP3光标位置】
  19. 数据压缩4 | TGA文件格式分析
  20. css同时设置最大宽度和最小宽度

热门文章

  1. Thymeleaf select 实现默认选中,使用 th:field 字符串无效问题
  2. 第一章 ArcGIS Pro python高级脚本教程介绍
  3. short与Short类型转换其它数据类型
  4. DB 查询分析器7.01 新增的保存执行结果到多个文件功能
  5. SMS发送WapPush
  6. 那些你可能不知道的网易云音乐奇技淫巧
  7. 【Oracle】Oracle导入excel文件(csv格式)
  8. 数据处理小工具:Excel 批量数据文件拆分/整合器...
  9. gpedit.msc打不开的解决办法
  10. Leetcode:Singel Number