搜索 社区服务 统计排行 帮助
  • 3855阅读
  • 2回复

x264预设类参数详解

楼层直达
级别: 新手上路
注册时间:
2011-11-17
在线时间:
7小时
发帖:
11
http://www.cnblogs.com/zyl910/archive/2011/12/04/x264_presets.html
x264预设类参数详解

  x264版本——
  1. x264 core:116 r2074 2641b9e


  加上“fullhelp”参数可以查看x264的完全版帮助——
  1. x264 --fullhelp


  其中对预设类参数的说明是——
  1. Presets:
  2.       --profile <string>      Force the limits of an H.264 profile
  3.                                   Overrides all settings.
  4.                                   - baseline:
  5.                                     --no-8x8dct --bframes 0 --no-cabac
  6.                                     --cqm flat --weightp 0
  7.                                     No interlaced.
  8.                                     No lossless.
  9.                                   - main:
  10.                                     --no-8x8dct --cqm flat
  11.                                     No lossless.
  12.                                   - high:
  13.                                     No lossless.
  14.                                   - high10:
  15.                                     No lossless.
  16.                                     Support for bit depth 8-10.
  17.       --preset <string>       Use a preset to select encoding settings [medium]
  18.                                   Overridden by user settings.
  19.                                   - ultrafast:
  20.                                     --no-8x8dct --aq-mode 0 --b-adapt 0
  21.                                     --bframes 0 --no-cabac --no-deblock
  22.                                     --no-mbtree --me dia --no-mixed-refs
  23.                                     --partitions none --rc-lookahead 0 --ref 1
  24.                                     --scenecut 0 --subme 0 --trellis 0
  25.                                     --no-weightb --weightp 0
  26.                                   - superfast:
  27.                                     --no-mbtree --me dia --no-mixed-refs
  28.                                     --partitions i8x8,i4x4 --rc-lookahead 0
  29.                                     --ref 1 --subme 1 --trellis 0 --weightp 1
  30.                                   - veryfast:
  31.                                     --no-mixed-refs --rc-lookahead 10
  32.                                     --ref 1 --subme 2 --trellis 0 --weightp 1
  33.                                   - faster:
  34.                                     --no-mixed-refs --rc-lookahead 20
  35.                                     --ref 2 --subme 4 --weightp 1
  36.                                   - fast:
  37.                                     --rc-lookahead 30 --ref 2 --subme 6
  38.                                     --weightp 1
  39.                                   - medium:
  40.                                     Default settings apply.
  41.                                   - slow:
  42.                                     --b-adapt 2 --direct auto --me umh
  43.                                     --rc-lookahead 50 --ref 5 --subme 8
  44.                                   - slower:
  45.                                     --b-adapt 2 --direct auto --me umh
  46.                                     --partitions all --rc-lookahead 60
  47.                                     --ref 8 --subme 9 --trellis 2
  48.                                   - veryslow:
  49.                                     --b-adapt 2 --bframes 8 --direct auto
  50.                                     --me umh --merange 24 --partitions all
  51.                                     --ref 16 --subme 10 --trellis 2
  52.                                     --rc-lookahead 60
  53.                                   - placebo:
  54.                                     --bframes 16 --b-adapt 2 --direct auto
  55.                                     --slow-firstpass --no-fast-pskip
  56.                                     --me tesa --merange 24 --partitions all
  57.                                     --rc-lookahead 60 --ref 16 --subme 11
  58.                                     --trellis 2
  59.       --tune <string>         Tune the settings for a particular type of source
  60.                               or situation
  61.                                   Overridden by user settings.
  62.                                   Multiple tunings are separated by commas.
  63.                                   Only one psy tuning can be used at a time.
  64.                                   - film (psy tuning):
  65.                                     --deblock -1:-1 --psy-rd <unset>:0.15
  66.                                   - animation (psy tuning):
  67.                                     --bframes {+2} --deblock 1:1
  68.                                     --psy-rd 0.4:<unset> --aq-strength 0.6
  69.                                     --ref {Double if >1 else 1}
  70.                                   - grain (psy tuning):
  71.                                     --aq-strength 0.5 --no-dct-decimate
  72.                                     --deadzone-inter 6 --deadzone-intra 6
  73.                                     --deblock -2:-2 --ipratio 1.1
  74.                                     --pbratio 1.1 --psy-rd <unset>:0.25
  75.                                     --qcomp 0.8
  76.                                   - stillimage (psy tuning):
  77.                                     --aq-strength 1.2 --deblock -3:-3
  78.                                     --psy-rd 2.0:0.7
  79.                                   - psnr (psy tuning):
  80.                                     --aq-mode 0 --no-psy
  81.                                   - ssim (psy tuning):
  82.                                     --aq-mode 2 --no-psy
  83.                                   - fastdecode:
  84.                                     --no-cabac --no-deblock --no-weightb
  85.                                     --weightp 0
  86.                                   - zerolatency:
  87.                                     --bframes 0 --force-cfr --no-mbtree
  88.                                     --sync-lookahead 0 --sliced-threads
  89.                                     --rc-lookahead 0

  文字太多看起来有点晕,于是我整理为表格。


1 profile(配置)

name名称8x8dctcqmbframescabacweightpinterlaced
baseline基线noflat0no0no
main主要noflat不限不限不限不限
high不限不限不限不限不限不限
high10高10位不限不限不限不限不限不限

bframes:在I帧与P帧之间可插入B帧数量(Number of B-frames)的最大值,范围0-16。
cqm:自订量化矩阵(custom quantization matrices)。默认有flat和JVT。
weightp:使x264能够使用明确加权预测(explicit weighted prediction)来改善P帧的压缩。亦改善淡入/淡出的品质。模式越高越慢。
8x8dct:弹性8x8离散余弦转换(Adaptive 8x8 DCT)。
cabac:弹性内容的二进制算数编码(CABAC:Context Adaptive Binary Arithmetic Coder)。
interlaced:隔行扫描。        


2 preset(预设)

name名称b-adaptbframesdirectmemerangepartitionsrc-lookaheadrefsubmetrellisweightpother
ultrafast极快00dianone01000no-8x8dct aq-mode0 no-cabac no-deblock no-mbtree no-mixed-refs scenecut0 no-weightb
superfast超快diai8x8,i4x401101no-mixed-refs no-mbtree
veryfast很快101201no-mixed-refs
faster较快20241no-mixed-refs
fast30261
medium
slow2autoumh5058
slower较慢2autoumhall60892
veryslow很慢28autoumh24all6016102
placebo216autotesa24all6016112slow-firstpass no-fast-pskip

b-adapt:设定弹性B帧位置决策算法。此设定控制x264如何决定要放置P帧或B帧。
bframes:在I帧与P帧之间可插入B帧数量(Number of B-frames)的最大值,范围0-16。
direct:"direct"动态向量(motion vectors)的预测模式。有两种模式可用:spatial和temporal。可以指定none来停用direct动态向量,和指定auto来允许x264在两者之间切换为适合的模式。
me:全像素(full-pixel)运动估计(motion estimation)的算法。
merange:控制运动估计的最大范围(单位是像素)。对于hex和dia,范围限制在4~16。对于umh和esa,它可以增加到超过默认值16来允许范围更广的动态搜寻,对于HD视讯和高动态镜头很有用。注意,对于umh、esa和tesa,增加merange会大幅减慢编码速度。
partitions:H.264视讯在压缩过程中划分为16x16的宏区块。这些区块可以进一步划分为更小的分割,这就是此选项要控制的部分。
rc-lookahead:设定mb-tree位元率控制和vbv-lookahead使用的帧数。最大允许值是250。对于mb-tree部分,增加帧数带来更好的效果但也会更慢。mb-tree使用的最大缓冲值是MIN(rc-lookahead, --keyint)。
ref:控制解码图片缓冲(DPB:Decoded Picture Buffer)的大小。范围是从0到16。总之,此值是每个P帧可以使用先前多少帧作为参照帧的数目(B帧可以使用的数目要少一或两个,取决于它们是否作为参照帧)。可以被参照的最小ref数是1。
subme:设定子像素(subpixel)估算复杂度。值越高越好。层级1~5只是控制子像素细分(refinement)强度。层级6为模式决策启用RDO,而层级8为动态向量和内部预测模式启用RDO。RDO层级明显慢于先前的层级。
trellis:执行Trellis quantization来提高效率。
weightp:使x264能够使用明确加权预测(explicit weighted prediction)来改善P帧的压缩。亦改善淡入/淡出的品质。模式越高越慢。
no-8x8dct:停用弹性8x8离散余弦转换(Adaptive 8x8 DCT)。
aq-mode:弹性量化模式。没有AQ时,x264很容易分配不足的位元数到细节较少的部分。AQ是用来更好地分配视讯里所有宏区块之间的可用位元数。
no-cabac:停用弹性内容的二进制算数编码(CABAC:Context Adaptive Binary Arithmetic Coder)资料流压缩,切换回效率较低的弹性内容的可变长度编码(CAVLC:Context Adaptive Variable Length Coder)系统。大幅降低压缩效率(通常10~20%)和解码的硬件需求。
no-deblock:停用循环筛选(loop filter。亦称为持续循环去区块(inloop deblocker))。
no-mbtree:停用宏区块树(macroblock tree)位元率控制。使用宏区块树位元率控制会改善整体压缩率,借由追踪跨帧的时间传播(temporal propagation)并相应地加权。
no-mixed-refs:混合参照会以每个8x8分割为基础来选取参照,而不是以每个宏区块为基础。当使用多个参照帧时这会改善品质,虽然要损失一些速度。设定此选项会停用该功能。
scenecut:设定I/IDR帧位置的阈值(场景变更侦测)。
no-weightb:停用“加权”B帧的参照。
slow-firstpass:慢速pass。
no-fast-pskip:停用P帧的早期略过侦测(early skip detection)。非常轻微地提高品质,但要损失很多速度。


3 tune(调校)

name名称refbframesdeblockpsy-rdaq-strengthother
film电影-1:-1<unset>:0.15
animation动画{Double if >1 else 1}{+2}1:10.4:<unset>0.6
grain颗粒-2:-2<unset>:0.250.5no-dct-decimate deadzone-inter6 deadzone-intra6 ipratio1.1 pbratio1.1 qcomp0.8
stillimage静态图像-3:-32.0:0.71.2
psnrPSNR测试noaq-mode0
ssimSSIM测试noaq-mode2
fastdecode快速解码nono-cabac no-weightb weightp0
zerolatency零延迟0force-cfr no-mbtree sync-lookahead0 sliced-threads rc-lookahead0

ref:控制解码图片缓冲(DPB:Decoded Picture Buffer)的大小。范围是从0到16。总之,此值是每个P帧可以使用先前多少帧作为参照帧的数目(B帧可以使用的数目要少一或两个,取决于它们是否作为参照帧)。可以被参照的最小ref数是1。
bframes:在I帧与P帧之间可插入B帧数量(Number of B-frames)的最大值,范围0-16。
deblock:控制循环筛选(亦称为持续循环去区块(inloop deblocker))。
psy-rd:第一个数是Psy-RDO的强度(需要subme>=6)。第二个数是Psy-Trellis的强度(需要trellis>=1)。
aq-strength:弹性量化强度。设定AQ偏向低细节(平面)的宏区块之强度。不允许为负数。0.0~2.0以外的值不建议。
no-dct-decimate:停用DCT Decimation。DCT Decimation会舍弃它认为“不必要的”DCT区块。这会改善编码效率,而降低的品质通常微不足道。
deadzone-inter/intra:设定inter/intra亮度量化反应区(deadzone)的大小。反应区的范围应该在0~32。此值设定x264会任意舍弃而不尝试保留细微细节的层级。非常细微的细节既难以看见又耗费位元数,舍弃这些细节可以不用浪费位元数在视讯的此类低收益画面上。反应区与--trellis不相容。
ipratio:修改I帧量化值相比P帧量化值的目标平均增量。越大的值会提高I帧的品质。
pbratio:修改B帧量化值相比P帧量化值的目标平均减量。越大的值会降低B帧的品质。当mbtree启用时(默认启用),此设定无作用,mbtree会自动计算最佳值。
qcomp:量化值曲线压缩系数。0.0是固定位元率,1.0则是固定量化值。当mbtree启用时,它会影响mbtree的强度(qcomp越大,mbtree越弱)。
aq-mode:弹性量化模式。没有AQ时,x264很容易分配不足的位元数到细节较少的部分。AQ是用来更好地分配视讯里所有宏区块之间的可用位元数。
no-cabac:停用弹性内容的二进制算数编码(CABAC:Context Adaptive Binary Arithmetic Coder)资料流压缩,切换回效率较低的弹性内容的可变长度编码(CAVLC:Context Adaptive Variable Length Coder)系统。大幅降低压缩效率(通常10~20%)和解码的硬件需求。
weightp:使x264能够使用明确加权预测(explicit weighted prediction)来改善P帧的压缩。亦改善淡入/淡出的品质。模式越高越慢。
force-cfr:如果使用 ffms2 或 lavf 分离器,且输出文件不是 raw 格式,则从输入文件复制时间码。此选项关闭这个功能,并强制 x264 自己产生。当使用此选项时估计你也会设置 --fps。
no-mbtree:停用宏区块树(macroblock tree)位元率控制。使用宏区块树位元率控制会改善整体压缩率,借由追踪跨帧的时间传播(temporal propagation)并相应地加权。
sync-lookahead:设置用于线程预测的帧缓存大小。最大值是250。在第二遍及更多遍编码或基于分片线程时自动关闭。设为0将关闭线程预测,将减小延迟,但是以降低性能为代价。
sliced-threads:开启基于分片的线程。比默认方式质量低、效率低,但是没有编码延迟。
rc-lookahead:设定mb-tree位元率控制和vbv-lookahead使用的帧数。最大允许值是250。对于mb-tree部分,增加帧数带来更好的效果但也会更慢。mb-tree使用的最大缓冲值是MIN(rc-lookahead, --keyint)。


作者:zyl910
出处:http://www.cnblogs.com/zyl910/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.



x264编码参数测试: 549335
级别: 精灵王
注册时间:
2008-04-08
在线时间:
44小时
发帖:
2855
只看该作者 1楼 发表于: 2011-12-06
表格的排版好乱
级别: 新手上路
注册时间:
2011-11-17
在线时间:
7小时
发帖:
11
只看该作者 2楼 发表于: 2011-12-06
没办法,这个论坛的表格宽度最多只支持600像素。
我尝试调了很多次列宽,勉强只能调成这个样子。

x264编码参数测试: 549335
快速回复

限150 字节
上一个 下一个