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

[原创]x264参数解释

楼层直达
级别: 新手上路
注册时间:
2002-08-01
在线时间:
0小时
发帖:
296
x264参数解释(revision: 1024)
本文对应的是x264命令行模式,VFW方式也用相同的参数,不过是图形界面,可以自己找对应的英文。
新版本x264取消了--no-b-adapt、--nf、--b-rdo、--bime、--rceq参数,请不要再使用。

使用格式:x264 默认选项 -o 输出文件 输入文件 [长x宽]
输入支持格式:RAW/y4m/avi/avs(编译时可选)
输出支持格式:264/mkv/mp4(编译时可选)

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

-h/--help 列出较常用的选项
--longhelp 列出较常用的选项,更详细的帮助

帧类型选项:

-I/--keyint <整数> 最大IDR帧间距,默认250
-i/--min-keyint <整数> 最小IDR帧间距,默认25
--scenecut <整数> 画面动态变化限,当超出此值时插入I帧,默认40
--pre-scenecut 更快,但低精度的画面动态检测,需要多线程,并且在启用多线程时自动打开。
-b/--bframes <整数> 在IP帧之间可插入的B帧数量最大值,范围0~16,默认0
-b-adapt自适应B帧判定模式。 0:关闭;1:快速;2:优化(高B帧时速度大大下降),默认1
--b-bias <整数> 控制插入B帧判定,范围-100~+100,越高越容易插入B帧,默认0
--b-pyramid 允许B帧做参考帧
--no-cabac 关闭内容自适应二进制算术编码(CABAC,高效率的熵编码)(会提高速度,但严重影响质量)
-r/--ref <整数> 最大参考帧数,范围0~16,默认1
--no-deblock关闭环路滤波(一种除马赛克算法)
-f/--filter 设置环路滤波的AlphaC和Beta的参数,范围-6-6,默认都为0
--interlaced 启用纯交错模式(用于隔行扫描的源)

码率控制选项:

-q/--qp <整数>固定量化模式并设置使用的量化值,范围0~51,0为无损压缩,默认26
-B/--bitrate <整数> 设置平均码率
--crf <整数>质量模式,量化值动态可变
--vbv-maxrate <整数> 平均码率模式下,最大瞬时码率,默认0(与-B设置相同)
--vbv-bufsize <整数> 码率控制缓冲区的大小,单位kbit,默认0
--vbv-init <小数> 码率控制缓冲区数据保留的最大数据量与缓冲区大小之比,范围0~1.0,默认0.9
--qpmin <整数>设置最小量化值,范围0~51,默认10
--qpmax <整数>设置最大量化值,范围0~51,默认51
--qpstep <整数>设置相邻帧之间的量化值差,范围0~50,默认4
--ratetol <小数> 平均码率模式下,瞬时码率可以偏离的倍数,范围0.1~100.0,默认1.0
--ipratio <小数> I帧和P帧之间的量化系数,默认1.40
--pbratio <小数> P帧和B帧之间的量化系数,默认1.30
--chroma-qp-offset <整数> 色度和亮度之间的量化差,范围-12~+12,默认0
--aq-mode <整数> 自适应量化模式,可以在1帧中不同宏块间重新分配量化值,能提高暗部细节,但会提高码率。与--qp不能同时使用,0关闭,1开启,默认1
--aq-strength <小数> AQ强度,减小低细节宏块的量化值,默认1.0
-p/--pass <1|2|3> 多次压缩码率控制
1:第一次压缩,创建统计文件
2:按建立的统计文件压缩并输出,不覆盖统计文件,
3:按建立的统计文件压缩,优化统计文件
--stats <字符串> 统计文件的名称,默认"x264_2pass.log"
--qcomp <小数> 线性量化控制,0.0为固定码率,1.0为固定量化值,默认0.6,只用于2-pass和质量模式
--cplxblur <小数> 根据相邻帧平滑量化值比例的最大值,范围0~99.9,默认20.0,只用于2-pass和质量模式
--qblur <小数> 对统计文件结果平滑量化值比例的最大值,范围0~99.9,默认0.5,只用于2-pass
--zones //… 分段量化,格式为:<开始帧>,<结束帧>,<选项>,可选项为:q=<整数>(量化值)或b=<小数>(码率倍数)
--qpfile <字符串> 强制帧的类型和量化值

分析选项:

-A/--analyse <字符串> 动态块划分方法,默认"p8x8,b8x8,i8x8,i4x4"。可选项:p8x8/p4x4/b8x8/i8x8/i4x4;none/all(p4x4需要p8x8. i8x8需要--8x8dct)
--direct <字符串> 动态预测方式,默认"spatial"。可选项:none/spatial/temporal/auto
--direct-8x8 <-1|0|1> 动态预测方式宏块大小。 0: 4x4、1: 8x8、-1:尽可能减小体积,默认1
-w/--weightb允许B帧加权预测(可以减少相邻B帧质量低的影响)
--me <字符串>对全像素块动态预测搜索的方式,默认"hex",可选项:
dia:菱形搜索,半径1 (快)
hex:正六边形搜索,半径2
umh:可变半径六边形搜索
esa:全面搜索(很慢,而且效果与umh几乎相同)
tesa: 用hadamard方式进行全面搜索,比esa更慢
--merange <整数> --me为umh/esa时的搜索半径,最大64,默认16
--mvrange <整数> 设置运动矢量的最大范围,默认-1(自动确定)
--mvrange-thread <整数> 线程间最小缓冲,用于一些播放器的兼容性,默认-1(自动确定)
-m/--subme <整数> 动态预测和分区方式,可选项1~9,默认6(与压缩质量和时间关系密切,1是7速度的四倍以上)
1:用全像素块进行动态搜索,对每个块再用快速模式进行四分之一像素块精确搜索
2:用半像素块进行动态搜索,对每个块再用快速模式进行四分之一像素块精确搜索
3:用半像素块进行动态搜索,对每个块再用质量模式进行四分之一像素块精确搜索
4:用快速模式进行四分之一像素块精确搜索
5:用质量模式进行四分之一像素块精确搜索
6:进行I、P帧像素块的速率失真最优化(rdo)
7:进行全部帧像素块的速率失真最优化
8:进行I、P帧运动矢量及块内部的速率失真最优化
9:进行全部帧运动矢量及块内部的速率失真最优化(质量最好)
--psy-rd在rdo中使用Psy算法(一种心理视觉模型)和Psy-Trellis量化,可提高细节,但会大幅提高码率。需要-m>6。默认 ["1.0:0.0"]。第一个值为Psy-rdo强度,第二个值为Psy-Trellis强度。
--mixed-refs可以在一帧内使用不同参考帧
--no-chroma-me不进行色度的动态预测
-8/--8x8dct可以使用8x8的离散余弦变换(DCT)
-t/--trellis <整数> Trellis量化,对每个8x8的块寻找合适的量化值,需要CABAC,默认0
0:关闭
1:只在最后编码时使用
2:一直使用
--no-fast-pskip关闭快速P帧跳过检测
--no-dct-decimate 关闭P帧联合编码(可以增加细节,但也会增大体积)
--nr <整数>噪声去除,范围0~100000,默认0
--deadzone-inter <整数> 设置inter模式下,亮度死区量化值,范围0~32,默认21。
--deadzone-intra <整数> 设置intra模式下,亮度死区量化值,范围0~32,默认11。
--cqm <字符串>设置外部量化矩阵格式,默认"flat",可选项:jvt/flat
--cqmfile <字符串> 读取JM格式的外部量化矩阵文件,自动忽略其他--cqm*选项
--cqm4 设置4x4的量化矩阵,用逗号分开,范围1~255的16个整数
--cqm8 设置8x8的量化矩阵,用逗号分开,范围1~255的64个整数
--cqm4i/--cqm4p/--cqm8i/--cqm8p 设置I、P帧不同的量化矩阵
--cqm4iy/--cqm4ic/--cqm4py/--cqm4pc 设置亮度、色度不同的量化矩阵

视频标准化选项:
这些选项与编码无关,不过如果要用mp4之类的播放器,可以设置,风险自担

--overscan <字符串> 过扫描线,默认"undef"(不设置),可选项:show(观看)/crop(去除)
--videoformat <字符串> 视频格式,默认"undef",可选项:component/pal/ntsc/secam/mac/undef
--fullrange <字符串>Specify full range samples setting,默认"off",可选项:off/on(我也不明白这是干什么的,请高手指点)
--colorprim <字符串>原始色度格式,默认"undef",可选项:undef/bt709/bt470m/bt470bg,

smpte170m/smpte240m/film
--transfer <字符串> 转换方式,默认"undef",可选项:

undef/bt709/bt470m/bt470bg/linear,log100/log316/smpte170m/smpte240m
--colormatrix <字符串> 色度矩阵设置,默认"undef",undef/bt709/fcc/bt470bg,smpte170m/smpte240m/GBR/YCgCo
--chromaloc <整数> 色度样本指定,范围0~5,默认0

输入、输出选项:

-o/--output 指定输出文件
--sar width:height 设置采样比例设置,表示采样像素长宽比
--fps <小数|rational> 设定帧率
--seek <整数> 设定起始帧
--frames <整数> 最大编码帧数
--level <字符串> 类似于MPEG4里的"profile&level",表示编/解码等级
-v/--verbose 显示每一个帧的信息
--progress显示编码进程
--quiet安静模式
--no-psnr关闭PSNR计算
--no-ssim关闭SSIM计算
--threads <整数> 编码线程(使用多线程技术)
--thread-input 在自有线程中运行Avisynth
--non-deterministic 非确定性。可以稍微减少多线程的开销
--asm <整数> 覆盖CPU检测
--no-asm关闭全部CPU优化指令
--visualize 显示编码帧信息图,和XVID类似
--dump-yuv <字符串> 保存帧为yuv格式
--sps-id <整数> 设置SPS和PPS的ID值,默认0
--aud使用数据定义符号
级别: 新手上路
注册时间:
2010-05-17
在线时间:
0小时
发帖:
1
只看该作者 57楼 发表于: 2010-05-17
=受教了!!!
级别: 新手上路
注册时间:
2009-05-21
在线时间:
0小时
发帖:
1
只看该作者 56楼 发表于: 2009-05-21
新来的,学习了
级别: 精灵王
注册时间:
2008-04-08
在线时间:
44小时
发帖:
2855
只看该作者 55楼 发表于: 2009-03-09
Re: -m/--subme <整数> 动态预测和分区方式,可选项1~9,默认6(这个1和9质量变化大吗?)
引用
最初由 binlisizu 发布
-m/--subme <整数> 动态预测和分区方式,可选项1~9,默认6(与压缩质量和时间关系密切,1是7速度的四倍以上)
1:用全像素块进行动态搜索,对每个块再用快速模式进行四分之一像素块精确搜索
2:用半像素块进行动态搜索,对每个块再用快速模式进行四分之一像素块精确搜索
3:用半像素块进行动态搜索,对每个块再用质量模式进行四分之一像素块精确搜索
4:用快速模式进行四分之一像素块精确搜索
5:用质量模式进行四分之一像素块精确搜索
6:进行I、P帧像素块的速率失真最优化(rdo)
7:进行全部帧像素块的速率失真最优化
8:进行I、P帧运动矢量及块内部的速率失真最优化
9:进行全部帧运动矢量及块内部的速率失真最优化(质量最好)


这翻译成什么东西了...
说实话,不大。现在还多了个subme 0
级别: 新手上路
注册时间:
2009-03-08
在线时间:
0小时
发帖:
29
只看该作者 54楼 发表于: 2009-03-09
-m/--subme <整数> 动态预测和分区方式,可选项1~9,默认6(这个1和9质量变化大吗?)
-m/--subme <整数> 动态预测和分区方式,可选项1~9,默认6(与压缩质量和时间关系密切,1是7速度的四倍以上)
1:用全像素块进行动态搜索,对每个块再用快速模式进行四分之一像素块精确搜索
2:用半像素块进行动态搜索,对每个块再用快速模式进行四分之一像素块精确搜索
3:用半像素块进行动态搜索,对每个块再用质量模式进行四分之一像素块精确搜索
4:用快速模式进行四分之一像素块精确搜索
5:用质量模式进行四分之一像素块精确搜索
6:进行I、P帧像素块的速率失真最优化(rdo)
7:进行全部帧像素块的速率失真最优化
8:进行I、P帧运动矢量及块内部的速率失真最优化
9:进行全部帧运动矢量及块内部的速率失真最优化(质量最好)
级别: 新手上路
注册时间:
2008-12-05
在线时间:
0小时
发帖:
11
只看该作者 53楼 发表于: 2009-01-29
引用
最初由 kykdu 发布


看来这句话有误导大家的嫌疑。其实我的意思很明白,x264在高码率下对细节的保留不如XVID的原因是内部的环路滤波算法。像wolfsoft大大这样关闭in-loop之后,当然会使PSNR值提高。而且,提高的相当大。我个人测试,可以提高2~4个量化值(CQ模式)。但是,是否因此关闭deblocking呢?如我所说,大家见仁见智。

以下是个人观点,欢迎发表不同意见。
一开始我也是关闭deblocking的,但是有一些因素使我改变了初衷。
1、mencoder的帮助中明确指出:it is not recommended to disable it.(不推荐关闭)
2、x264的profiles(mirror05.x264.nl/Sharktooth/force.php?file=./MeGUI/profiles/MeGUI-x264_generic_profiles_v27.zip)里,只有三个文件设置关闭deblock,分别是1P-Maxspeed、CQ-Lossless和PD-Xbox_HiRes。大家看名字就可以知道都是干嘛用的。而像AE-Maxquality、HQ-Insane之类都没有关闭deblock。DOOM9里大部分人也都是开启deblock的。
3、我个人喜欢柔和干净的画面,对噪点和杂波十分反感。当然,这是个人的问题。
因此,我个人是倾向于开启deblock。个人观点,仅供参考。

最后,感谢wolfsoft对sar/level的解释。


做20个sample比较一下...:D
级别: 新手上路
注册时间:
2009-01-27
在线时间:
4小时
发帖:
182
只看该作者 52楼 发表于: 2009-01-29
新人问下所谓的Q20是不是就是指参数中的q/--qp <整数> 固定量化模式并设置使用的量化值,范围0~51,0为无损压缩,默认26?

级别: 新手上路
注册时间:
2008-12-05
在线时间:
0小时
发帖:
12
只看该作者 51楼 发表于: 2008-12-31
现在比较关注CQM文件的定制...
级别: 新手上路
注册时间:
2008-11-25
在线时间:
0小时
发帖:
3
只看该作者 50楼 发表于: 2008-11-25
好帖子 得收藏了
级别: 新手上路
注册时间:
2008-10-07
在线时间:
0小时
发帖:
1
只看该作者 49楼 发表于: 2008-10-07
谢谢楼主,学习
级别: 新手上路
注册时间:
2006-01-24
在线时间:
0小时
发帖:
24
只看该作者 48楼 发表于: 2007-12-28
引用
最初由 风无韵 发布
其中LEVELUP这项如果设置为2.1,则可以放在3.30以前的支持H264编码的AVC播放的PSP版本上播放,而设置成3后就只能在完全开放H264 AVC硬件解码限制的3.30固件版本以上才能识别。

注意红圈的部分:
http://www.yourupload.de/images/071228/H8GPsPCK.jpg
当然可能的原因是level2.1和level3的最高码率不一样,level3的瞬时码率超过level2.1的最大值所以播放不了吧。
ps:我现在手头没有psp所以想问下ls的:如果我转的分辨率是704*396放psp3.30以上的识别起来没问题吧?

目前为止最喜欢的5部TV动画:

1.鸟的骨架,光着脚在雪地里走,红色的月亮
2.扑地loli,穿制服打工的jj,工口岛
3.什么都握不住,满地打滚的宇宙人,薛定谔的小鸡
4.24小时营业拉面馆,蓝色的莫西干头,跳高时变成飞机飞走了
5.下雨天把干燥剂扔院子里,富士山,隔着落地窗说话
级别: 圣骑士
注册时间:
2005-04-02
在线时间:
23小时
发帖:
1378
只看该作者 47楼 发表于: 2007-11-28
喜欢研究的菜鸟一只,看到不少好东东,不过还是有些我在用的工具里没有提到和弄懂的,就是说那个LEVEL吧,其实我也很想弄懂...
我压2声道MP4用于PSP播放用的是LEVELUP影音小组的EZ BUILDER,这个用AVC编码的GUI软件编码设置是完全开放的,所以喜欢自己DIY参数调整自己满意的效果,其中LEVELUP这项如果设置为2.1,则可以放在3.30以前的支持H264编码的AVC播放的PSP版本上播放,而设置成3后就只能在完全开放H264 AVC硬件解码限制的3.30固件版本以上才能识别。

咱来自遥远的冥王星

——这个世上最脆弱的东西叫做纯洁,如白纸、如雪地,一滴墨一个脚印便能污染?
——这个世上最坚强的东西同样是纯洁,披上由世上所有不纯的元素织成的外衣,没有东西能够污染她。
引用

我说的不会有错,有错的话只是你的理解力还不够。。。

可怕的腹黑QB(重口慎点)/人◕ ‿‿ ◕人\
级别: 新手上路
注册时间:
2007-11-11
在线时间:
0小时
发帖:
1
只看该作者 46楼 发表于: 2007-11-11
呵呵,这下真是学习了
级别: 工作组
注册时间:
2006-11-03
在线时间:
0小时
发帖:
24
只看该作者 45楼 发表于: 2007-09-27
谢谢大大分享哦,我找了半天的说

漫无止境的学业中,ORZ
级别: 新手上路
注册时间:
2007-08-09
在线时间:
0小时
发帖:
1
只看该作者 44楼 发表于: 2007-08-09
好复杂,还要学习……
快速回复

限150 字节
上一个 下一个