X264码率参数解析

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

x264的许多参数可以有-/--两种输入法,以下等价参数用“参数1/参数2 <必需数值格式>”表示

-I/--keyint <整数> 最大IDR帧间距,默认250,也是GOP的最大值.

-i/--min-keyint <整数> 最小IDR帧间距,默认25,也是GOP的最小值

IDR-frame就是该帧的另一边没有可参照的帧。IDR-Frame需要I-Frame,但是不是所有的I-Frame都是IDR-Frame。大多数情况x264会把场景的第一个帧做为IDR-Frame。

GOP意思是画面组,一个GOP就是一组连续的画面。在X264中GOP被定义为IDR帧之间的距离

建议值:

Blu-Ray设置为framerate的10被,其他设置为5~10倍。

min-keyint

IDR-frame之间的最短长度。

建议及默认值:

默认25,建议默认或者1xframerate。

--scenecut <整数> 画面动态变化限,当超出此值时插入I帧,默认40

设定I/IDR帧放置的阀值。x264会计算每个帧和前面帧的不同,如果不同值低于“scenecut”,那么就确定为是一个scenecut,如果同时又少于min-keyint帧数,那么就随后放置一个I-frame,否则会放置一个IDR-frame。这个值越高,增加scenecut被侦测的几率。

默认值40

-b/--bframes <整数> 在IP帧之间可插入的B帧数量最大值,范围0~16,默认3

设定x264最多能同时使用多少个b-frame,如果没有b-frame,那么x264的帧类型如下:IPPPPP...PI,如果--bframe 2,那么就最多两个连续的P可以被替换为B,比如IBPBBPBPPPB..PI

B-frame和P-frame的区别在于B可以对将来的帧使用动态预测(motion prediction)。可以显著的提高压缩率。平均质量通过pbratio参数控制。如果可能的话,用b-adapt来强制x264使用固定的B-frames。

--b-adapt <整数> 设定B-frame放置决定算法。

控制x264如何决定是放置一个B还是一个P帧。多pass下时,该参数仅对Pass1有效,因为在pass1中frame types就决定了。

如果是--b-adapt 2,--bframes越高会显著的降低压缩速度,但是没有太多的好处。一般设置为2~5。Blu-Ray 限制了最大B-frames到3。

如果不是--b-adapt 2,那么使用--bframes 16(怎么这么拗口...:lol),也就是最大值。这是最合适以及最快的压制参数。

即:--b-adapt影响到--b-frame的选择。

1.0,禁用。始终选择B-frames。等同与--no-b-adapt参数。

2.1,老式算法。更快,在高--b-frames的情况下略微提高速度。

3.2,新算法。速度慢,高--b-frames下时略微减慢速度。

建议参数

2,如果你不怕耽误时间的话。

--b-bias <整数> 控制插入B帧判定,范围-100~+100,越高越容易插入B帧,默认0

控制代替P-frames的B-frames的可能性。大于0的数值增加B-frames的权重,小于0的相反。不是数值型的,只是主观的度量。数值从-100~+100,100并不代表保证所有的P-frame会被替代,使用--b-badapt 0

效果更好。

建议参数

0,除非你认为你比x264更好的控制。

--b-pyramid 允许B帧做参考帧

如果没有这个设定那么只能用I/P帧。虽然I/P用起来效果更好(IP的画质好),但是B-frame同样可用。作为参考帧的B-frame会得到P-frame以及正常B-frame的一般quantizer(容器,编码器?)。在b-pyramid 工作前,至少需要2个B-frame。

参数有3种,

1.none,不使用B-frame作为参考帧。

2.strict,使用一个B-frame作为参考帧,是Blu-Ray规范制定的。(allow one B-frame per minigop

to be used as reference,什么是minigop...)

3.normal,允许多个B-frame作为参考帧。

默认以及建议参数

设置为Normal。如果是Blu-Ray,使用None或者Strict。

--no-cabac 关闭内容自适应二进制算术编码(CABAC,高效率的熵编码)(会提高速度,但严重影响质量)

建议值

建议使用CABAC。

-r/--ref <整数> 最大参考帧数,范围0~16,默认1

ref控制DPB(Decoded Picture Buffer)的大小。从0~16。这个值代表每个P-frame可以用来作为参考帧的个数。根据B-frames本身是否被用作参考帧,它用到的会少 1~2个。最小值为1。

需要注意的是ITU-T(国际电信联盟)标准限制了DPB以及每个level的ref数目。如果遵守 Level 4.1标准的话,1080p和720p的大小分别是4以及9。如果视频高度非标准高度,应该使用高一点的ref值。Blu- Ray和HD-DVD用到的就是Level 4.1标准,并且是众多播放器比如xbox,ps3所支持的最高标准。这也是为什么设置错误的ref会造成无法硬解的原因。

公式:

1.maximum ref = MaxDPB * 1024 / ( width * height * 1.5)

2.or

相关文档
最新文档