x264的码率控制是基于libavcodec和经验的。这篇文章将尝试说明复杂的码率控制算法背后的理论基础。

几点理论:
1、固定质量并不等价于PSNR或QP完全恒定。复杂场景或者高速场景中难以辨别的细节会被选择性省略,以节省空间;
2、如果运动预测生效,将获得更好的质量:低速场景中,1个错误可能停留好几秒钟。此时如果运动预测启用,只需要更改一个帧,就能增进整个场景的质量;
3、如果有一个帧的一个QP的编码结果,就可以预测这个帧其它QP编码将消耗的空间。QP差距越大,预测越不准确;
4、帧的重要性取决于参照它的帧的数量。因此I帧将根据最近的可被参考帧的复杂程度来调正自己的QP。用作参考帧的B帧(自由B帧)的QP高于P帧,参考的B帧的QP则介于P帧和用作参考帧的B帧之间。

几种码率控制模式:
2pass:指定目标码率,2趟编码
在第1趟编码(比如下面提到的ABR)时为每一帧生成一些统计信息,以助在第2趟编码中时为每一帧找到最好的量化参数。第2趟编码包含以下三部分:
1、第2趟编码开始之前,拿出一些空间用于在帧间灵活分配。空间大小的计算与目标码率无关,只是一个使用恒定QP编码的码率的比值,一般是0.6;
2、用(1)得出来的值和目标码率计算每一帧要使用的QP。使用VBV是方法之一,VBV是一个迭代的过程,因为使用VBV和QP会互相影响;
3、现在开始编码。每编完一帧,按照还剩下的空间重新计算后面将要使用的QP,如果编码过程中第2趟编码的实际码率偏离了目标码率(因为第二趟编码用了更慢的参数)(译者按:也就是使用了快速第一趟编码,所以通常是低于目标码率),会在随后的帧里做出变化(译者按:通常是增大码率)以纠正错误趋势。另外,还会有个小处理,会保证我们不在视频的开始或结束的阶段远远偏离目标码率。

ABR:1趟编码,平均码率
目标是达到和2趟编码同样的效果,但没有第1趟编码的帮助,所以只能一边编码一边控制码率:
1、和2趟编码的(1)过程一样,但因为没有第1趟编码的帧信息,所以把帧缩小为一半分辨率后用一个快速预测算法和SATD(译者按:sum of absolute transform differences绝对变换差值和)(此计算也用于P帧B帧决策)做一个预测来代替。而且也不知道后面的GOP(译者按:图像组)的大小和复杂度,所以I帧的决策基于之前的帧;
2、因为不知道后面帧的复杂度,所以只根据前面的帧来测算QP。测算的因数将定为如果应用于目前所有帧则可以满足目标比特率的数;
3、和2趟编码一样有溢出补偿,调节补偿力度可以得到很接近2趟编码的质量(但大小将在接近正负10%的范围内浮动),通过这种方式可以在一定程度上控制住文件大小而又不太牺牲视频质量。

CBR:1趟编码,恒定码率(用VBV限制)
1、同ABR;
2、测算因子基于一个范围内(由VBV buffer大小决定)的均值,而不是之前所有帧;
3、溢出补偿更加严格,而且在VBV接近0时将会强制限制QP。但在VBV没用完时并不会强制限制QP,所以CBR的结果多少会比目标码率低一点。还要注意的是,如果在所有机制过后,一个帧还是超出了VBV的限制,那它是不会被重新编码的。

CRF:1趟编码,恒定码率因子(译者注:就是crf参数,crf = constant rate factor)
1、同ABR;
2、换算因子恒定为 –crf参数的值;
3、没有溢出补偿。

CQP:恒定量化参数
QP只简单地和帧类型相关。

以上所有类型:
H.264规范允许每个宏块使用不同的QP。x264目前没有实现这一特性,码率控制算法只会为每一帧生成一个QP。

翻译自:http://git.videolan.org/?p=x264.git;a=blob_plain;f=doc/ratecontrol.txt;hb=HEAD

简述x264几种码率控制方式的实现相关推荐

  1. x264编码指南——码率控制

    x264是一个 H.264/MPEG4 AVC 编码器,本指南将指导新手如何创建高质量的H.264视频. 对于普通用户通常有两种码率控制模式:crf(Constant Rate Factor)和Two ...

  2. 爆破专栏丨Spring Security系列教程之Spring Security的四种权限控制方式

    原创:一一哥 前言: 在前面的章节中,一一哥 已经给大家介绍了Spring Security的很多功能,在这些众多功能中,我们知道其核心功能其实就是认证+授权. 在前面我们分别基于内存模型.基于默认的 ...

  3. java按钮权限控制_详解Spring Security 中的四种权限控制方式

    Spring Security 中对于权限控制默认已经提供了很多了,但是,一个优秀的框架必须具备良好的扩展性,恰好,Spring Security 的扩展性就非常棒,我们既可以使用 Spring Se ...

  4. 三种伺服电机控制方式总结

    伺服电机速度控制和转矩控制都是用模拟量来控制,位置控制是通过发脉冲来控制.具体采用什么控制方式要根据客户的要求以及满足何种运动功能来选择. 接下来,给大家介绍伺服电机的三种控制方式: 如果您对电机的速 ...

  5. 3种伺服电机控制方式

    伺服电机速度控制和转矩控制都是用模拟量来控制,位置控制是通过发脉冲来控制.具体采用什么控制方式要根据客户的要求以及满足何种运动功能来选择. 接下来,给大家介绍伺服电机的三种控制方式: 如果您对电机的速 ...

  6. c语言水塔水位控制,简述水塔水位控制器的控制方式

    水塔水位控制器的原理是通过水塔内的水位自动控制水泵的工作状态.即当水位达到预先设定的下限时,水泵自动关闭,当水位达到预先设定的下限时,自动启动水泵,一直到水位升高到上限时水泵停止运转.这可使水塔或高位 ...

  7. X264码率控制总结1——ABR,CQP,CRF

    lakeone X264码率控制总结1--ABR,CQP,CRF 1. X264显式支持的一趟码率控制方法有:ABR, CQP, CRF. 缺省方法是CRF.这三种方式的优先级是ABR > CQ ...

  8. 转: X264码率控制总结1——ABR,CQP,CRF

    2019独角兽企业重金招聘Python工程师标准>>> 1. X264显式支持的一趟码率控制方法有:ABR, CQP, CRF. 缺省方法是CRF.这三种方式的优先级是ABR > ...

  9. ABR CQP CRF码率控制总结

    1. X264显式支持的一趟码率控制方法有:ABR, CQP, CRF. 缺省方法是CRF.这三种方式的优先级是ABR > CQP > CRF. [cpp] view plaincopy ...

  10. 码率控制(一):理解码率控制模式(x264,x264,vpx)

    码率控制(一):理解码率控制模式(x264,x264,vpx) 什么是"码率控制"?它是编码器决定为每帧视频分配多少比特的工具. 视频编码(有损)的目标是尽可能多的节省比特(码率) ...

最新文章

  1. cwRsync 同步时报错 STATUS_ACCESS_VIOLATION
  2. MyBatisPlus插件扩展_SqlExplainInterceptor执行分析插件的使用
  3. Sprint第三阶段(第四天12.12)
  4. JVM学习笔记之-运行时数据区概述及线程概述,程序计数器(PC寄存器),虚拟机栈(栈,局部变量表,操作数栈,动态连接,方法调用,方法返回地址等),本地方法接口,本地方法栈
  5. 「权威发布」2019年大学生电子设计竞赛,仪器设备和主要元器件清单
  6. beta版本项目冲刺
  7. python requests 代理ip_python requests 测试代理ip
  8. 默纳克系统服务器怎么看抱闸,默纳克抱闸制动力检测怎么关闭
  9. Linux之find + sed组合替换命令
  10. 如何用cv2.imread()读取falsk接收的图片
  11. 如何查看VS命令行选项,并使用命令卸载VS
  12. 计算机屏幕画图工具,电脑屏幕画笔工具(Pointofix)
  13. 国赛助力:第三类边界条件热传导方程及基于三对角矩阵的数值计算MATLAB实现(2020A)
  14. android 炫酷图案解锁,16个超级漂亮的手机锁屏图案,炫酷到飞起,总有一款适合你...
  15. JAVA毕业设计vue宿舍管理系统计算机源码+lw文档+系统+调试部署+数据库
  16. phpspider 简单用法和学习,分类一对多爬取数据
  17. html5如何添加图片菜鸟教程,菜鸟入门教程 HTML5的常见用法
  18. mysql查询某学期开设的课程_求各学期开设的课程门数
  19. 大方无隅,大器晚成,大音希声,大象无形
  20. 中央电大 c语言程序设计a 试题,最新中央电大2008年秋C语言程序设计A试题5.doc

热门文章

  1. ADKAR模型简介(转)
  2. eds能谱图分析实例_热场发射扫描电子显微镜与能谱分析仪
  3. 2019年第二届海南省大学生网络攻防竞赛
  4. 自动阅读软件脚本应用开发app头条新闻引流阅读
  5. 【华谋咨询】企业5s管理做大做强的四大措施
  6. 抖音源码为什么会成为短视频源码中的翘楚
  7. 9种免费在线PDF编辑网站
  8. python config方法_Python config.Configuration方法代码示例
  9. diadem2017注册机 ni_NI DIAdem2017下载
  10. 【UE4】UE4蓝图基础