X264码率控制总结2

X264码率控制方法定性概述

x264/doc/ratecontrol.txt

A qualitative overview of x264‘s ratecontrol methods

By Loren Merritt

历史笔记:

本文件是过时的,但相当一部分叙述仍然是准确的,以下是一些重要的码率控制算法更新:

1. 默认情况下,MB-tree代替了qcomp用以计算各帧的复杂度,MB-tree是qcomp在宏块级的有效推广。MB-tree还替代了B帧QP固定偏移。

2. 现在自适应量化(Adaptive quantization)被用来在各帧之间分配质量(distribute quality);即使关闭MB-tree,帧内各MB也不再是恒定QP。

3. 为了提高码率控制精度,VBV(Video Buffer Verifier)运行在每行而不是每帧。

x264的码率控制算法主要是基于libavcodec中的经验算法。但仍基于以下一些理论点:

1.我们常常希望能够获得恒定质量(constant quality)的视频序列,但是恒定质量并不意味着恒定的PSNR或者恒定的QP。对于人眼不敏感的高细节复杂度或者高运动场景,可以增加QP而不会损失太多的视觉质量;

2.另一方面,将稍多一些的比特分配给影响运动补偿效果的场景更能提升视频序列质量;

3. 上面两点都与给定QP时编码一帧图像使用的比特数相关。

4. 根据一个QP值编码一帧的输出比特,可以预测其他QP值编码相同帧的输出比特,当然QP值相差越大,预测的越不准确。

5. 帧的重要性取决于参考这帧的其他帧的数目,由于I帧是其后P/B帧的参考基础,它需要更低的QP值,以保证它的质量。I帧>P帧>做参考B帧>非参考B帧。

码率控制方法:

二次编码:

基于第一次编码得到的各帧数据,我们可以在保证文件总字节数的情况下,选择QP来尽可能的提升视觉质量,这可分为3步:

(1)在开始第二次编码前,选择帧间比特分配相关数。缺省的公式是“复杂性*0.6”,其中的复杂性是指在一个恒定QP下帧编码输出比特数(基于第一次的编码结果预测而来)。

(2)在视频序列全局缩放步骤(1)中的结果,以满足总的编码输出文件大小要求。

(3)开始编码。编码一帧后,更新QP与帧输出比特数的预测误差。如果第二次编码输出比特数偏离第一次的预测(通常是因为第二次使用了较慢,但性能较好的编码设置),在其后所有帧的qscales上都乘以这个误差倒数。

此外还有一个短时补偿算法去阻止视频开始阶段(此时没有多少数据做全局补偿)和视频结尾阶段(此时没有足够的帧数做反应)的结果偏离初始设置太远。

一次编码,ABR:

目标和二次编码的第二遍编码相同,但是没有第一遍编码结果做参考,所有的码率控制都是在一次编码内完成。

(1)和二次编码类此,选择帧间比特分配相关数。但由于没有第一遍编码的结果做预测,x264会运行一个1/2分辨率(lowres)的快速运算估计算法,使用SATD的结果来预测输出比特数。同时,因为不知道下面GOP的大小和各帧复杂度,I帧的相关数继承前面GOP的结果。

(2)由于不知道将来帧的复杂度,所以只能根据前向帧做缩放。缩放因子(Scaling factor)的选择标准是,如果使用此因子到后续所有帧,总的输出比特数满足预先要求。

(3)溢出补偿和2次编码相同。通过调节补偿力度,可以满足合理的文件大小,但质量会低于二次编码。

一次编码,CBR(VBV兼容):

(1)同ABR。

(2)缩放因子是基于局部平均(依赖VBV缓冲区大小)而不是所有前向帧。

(3)严格的溢出补偿,并在VBV快要空(?)的时候有强制条件限制QP。注意:a.CBR的输出可能比所要求的比特数少一点;b.即使一帧违反了VBV的约束,它也不会被重新编码。

一次编码, CRF:

(1) 同ABR.

(2) 缩放因子是一个常量,--crf。

(3) 无溢出补偿.

CQP:

每帧QP只是简单的基于帧类型改变。

时间: 2024-10-02 21:30:19

X264码率控制总结2的相关文章

x264码率控制总结3——码率控制参数详解

x264码率控制参数详解 -q, --qp <integer>          Force constant QP (0-51, 0=lossless) 默认:无 说明:三种可选的码率控制方法(bitrate, CQP,CRF)之一.设置x264使用固定QP模式.设定的QP将被作为P帧的量化参数,I帧和B帧的量化参数由–ipratio and –pbratio参数进一步算出.CQP模式使用固定的QP,这意味着最终的文件大小是不可知的.设置为0将产出无损输出.相同视觉质量时,CQP模式编码输出

X264码率控制总结1

1.  X264显式支持的一趟码率控制方法有:ABR, CQP, CRF. 缺省方法是CRF.这三种方式的优先级是ABR > CQP > CRF. if ( bitrate ) rc_method = ABR; else if ( qp || qp_constant ) rc_method = CQP; else rc_method = CRF; bitrate和QP都没有缺省值,一旦设置他们就表示要按照相应的码率控制方法进行编码,CRF有缺省值23,没有任何关于编码控制的设置时就按照CRF缺

2016-06-06:X264码率控制

H.264与x264 H264是一个视频压缩编码标准.https://zh.wikipedia.org/wiki/H.264/MPEG-4_AVC X264实现H264视频压缩标准的开源项目.http://www.videolan.org/developers/x264.html 码率控制模式 ABR(Average Bitrate)平均目标码率 CBR(Constant Bitrate)固定码率 X264尽可能使整体码率与给定码率相等,因此编码文件大小确定,适合需要精确控制文件大小场景.另外,

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

1.  X264显式支持的一趟码率控制方法有:ABR, CQP, CRF. 缺省方法是CRF.这三种方式的优先级是ABR > CQP > CRF. if ( bitrate ) rc_method = ABR; else if ( qp || qp_constant ) rc_method = CQP; else rc_method = CRF;     bitrate和QP都没有缺省值,一旦设置他们就表示要按照相应的码率控制方法进行编码,CRF有缺省值23,没有任何关于编码控制的设置时就按照

x264码率控制方法介绍1

1.  X264显式支持的一趟码率控制方法有:ABR, CQP, CRF. 缺省方法是CRF.这三种方式的优先级是ABR > CQP > CRF. if ( bitrate )                rc_method = ABR; else if ( qp || qp_constant ) rc_method = CQP; else                          rc_method = CRF; bitrate和QP都没有缺省值,一旦设置他们就表示要按照相应的码率

x264码率控制方法介绍

转自:http://www.bubuko.com/infodetail-471698.html 1.  X264显式支持的一趟码率控制方法有:ABR, CQP, CRF. 缺省方法是CRF.这三种方式的优先级是ABR > CQP > CRF.    if ( bitrate )                rc_method = ABR;    else if ( qp || qp_constant ) rc_method = CQP;    else                    

FFMpeg的码率控制

mediaxyz是一位研究ffmpeg有三年的高人了,这几天一直在折腾ffmpeg中的x264,就是不知道该如何控制码率,主要是参数太多,也不知道该如何设置,在google上search了一下,这方面的介绍为0,那就找mediaxyz请教请教吧,这些可都是经验,非常宝贵! 以下是与mediaxyz在QQ上聊天的记录,只有一部分,因为QQ把之前的谈话删除了,但基本上精髓都可这里了. mediaxyz 23:40:26 你说的qsable是c->global_quality吧 Leon 23:40:

mediaxyz访谈录:ffmpeg的码率控制

mediaxyz是一位研究ffmpeg有三年的高人了,这几天一直在折腾ffmpeg中的x264,就是不知道该如何控制码率,主要是参数太多,也不知道该如何设置,在 google上search了一下,这方面的介绍为0,那就找mediaxyz请教请教吧,这些可都是经验,非常宝贵! 以下是与mediaxyz在QQ上聊天的记录,只有一部分,因为QQ把之前的谈话删除了,但基本上精髓都可这里了. mediaxyz 23:40:26你说的qsable是c->global_quality吧 Leon 23:40:

ffmpeg码率控制

一.VBR与CBR的含义和区别 VBR是动态码率.CBR是静态码率. VBR(Variable Bitrate)动态比特率.也就是没有固定的比特率,压缩软件在压缩时根据音频数据即时确定使用什么比特率,这是以质量为前提兼顾文件大小的方式. VBR也称为动态比特率编码,使用这个方式时,你可以选择从最差音质/最大压缩比到最好音质/最低压缩比之间的种种过渡级数,在MP3文件编码之时,程序 会尝试保持所选定的整个文件的品质,将选择适合音乐文件的不同部分的比特率来编码.主要优点是可以让整首歌都能大致达到我们