搜索 社区服务 统计排行 帮助
  • 94270阅读
  • 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使用数据定义符号
级别: 工作组
注册时间:
2003-08-26
在线时间:
13小时
发帖:
6600
只看该作者 1楼 发表于: 2006-07-25
x264的许多参数可以有-/--两种输入法,笔者也不知道为什么 << 到linux的世界里混一段时间就知道了

-x 是短参数
--xxxxx 是长参数

anyway 这贴不错,鼓励下,继续翻吧~(把mplayer上那篇超详细的解释也翻一下就好了LOL)

催片请点此处: http://bbs.popgo.org/bbs/read.php?tid=502402&displayMode=1#19103164
级别: 新手上路
注册时间:
2003-08-30
在线时间:
0小时
发帖:
446
只看该作者 2楼 发表于: 2006-07-25
引用
最初由 MeteorRain 发布
x264的许多参数可以有-/--两种输入法,笔者也不知道为什么 << 到linux的世界里混一段时间就知道了

-x 是短参数
--xxxxx 是长参数

anyway 这贴不错,鼓励下,继续翻吧~(把mplayer上那篇超详细的解释也翻一下就好了LOL)


[/han] 估计楼主会撑不住....

级别: 侠客
注册时间:
2005-06-19
在线时间:
0小时
发帖:
606
只看该作者 3楼 发表于: 2006-07-25
要是再能介绍一下推荐设置就好了,还没压过X264……

级别: 精灵王
注册时间:
2005-01-21
在线时间:
1小时
发帖:
2565
只看该作者 4楼 发表于: 2006-07-25
引用
最初由 天地逍遥 发布
要是再能介绍一下推荐设置就好了,还没压过X264……
MR大不是之前有过一篇X264新手上路的文章么~那里就有介绍X264的设置啊~

大奶:i5 2300+采融变形金刚+技嘉P67-UD3R+芝奇4G套装+MSI HD5770 HAWK+金士顿64G SSD+联力K58
二奶:i7 870+九州虎鲨+ROG P55 M3E+芝奇8G套装+XFX HD5850+希捷Momentus XT+联力K62R2+银欣SST-ST60F-P
新浪微博:http://weibo.com/kagakadaj
二奶HTPC:
级别: 工作组
注册时间:
2003-10-27
在线时间:
0小时
发帖:
1529
只看该作者 5楼 发表于: 2006-07-25
进来学习下


----------------------------------------
无论是黑底白字的TAB 还是白底黑字的TAB 大家 大家 齐心协力 组成了108键大家族 新新的TAB 一直处在幸福之中 被按坏的TAB 郁闷地眯上了眼睛 要好的TAB们手牵着手 围成了一个TABURISS 在PS2接口上 发出了信号 大家相视而笑
级别: 工作组
注册时间:
2003-11-07
在线时间:
1小时
发帖:
7032
只看该作者 6楼 发表于: 2006-07-25
引用
最初由 MeteorRain 发布
anyway 这贴不错,鼓励下,继续翻吧~(把mplayer上那篇超详细的解释也翻一下就好了LOL)


mplayer的有中文版....

青空が眩しい 君がいる風景は
幸せのオーラ 溢れ出すの とまらないよ
駅前の噴水 虹を作っているよ
君を待つ時間さえも かけがえない プレシャスな時

=========================

FANSUB的历史,又翻过了新的一页
级别: 新手上路
注册时间:
2002-08-01
在线时间:
0小时
发帖:
296
只看该作者 7楼 发表于: 2006-07-25
谢谢大家的回复。
to 天地逍遥:
我不太喜欢所谓的“推荐配置”,因为个人的情况有所不同,而x264的设置太多了,很难有普适的配置。以下我把我较熟悉的参数分类稍加说明,仅供参考。

首先,文件的平均量化值一般不应低于24(相当于XVID的Q=4),否则会有“不堪入目”的感觉(个人感受)。
现在x264在高码率下对细节的保留不如XVID,可能与其内部的环路滤波算法有关。相对的,出现的噪点和马赛克也比XVID少很多。究竟孰优孰劣,大家见仁见智。
不建议使用-B/--vbv*的ABR方式,这种方式对音频很好,对视频并不适合。

帧类型选项,这里几乎都是对压缩比影响较大的参数:
-b/--bframes 可以大大提高压缩比的参数,非用于二次压制的片源一般要设>1。至于设置多少,见仁见智。
-r/--ref 对质量和压缩比都有提高的参数,一般要设>1。具体数值同上。
-I/--keyint;-i/--min-keyint 一般来说压制动画时,可以增大-I,减小-i的值。具体数值可以参考XVID。
--b-pyramid 对速度影响很小,一般开启。

码率控制选项:
--qcomp 2-pass专用。可以参考XVID的曲线压缩说明。建议1.0。

分析选项,这里几乎都是对质量影响较大的参数:
-m/--subme 越大质量越好,不过编码速度也会急剧下降。建议:只要机器撑得住,设为7。
-A/--analyse 分析当然是越多越好。建议:只要机器撑得住,设为all。
-w/--weightb 对质量和压缩比都有提高,且对速度影响极少。建议开启。
--bime 同上,建议开启。
-8/--8x8dct 同上,建议开启。
-t/--trellis 和XVID的差不多,提高质量,降低速度。建议开启。
--b-rdo 同上,建议开启。
--me 建议设为umh,esa实在太慢了,而且质量提高极不明显。
--mixed-refs 有效,但对速度影响较大。建议尽量开启。
--direct 建议auto。

输入、输出选项:
--threads多核、多线程处理器推荐。
--quiet;--no-psnr 可以稍微加快编码速度

需谨慎设置的参数,一般可以不去动:
--qpmin;--qpmax;--qpstep 一般可以不动,有特殊质量要求的除外
--scenecut;--ipratio;--pbratio:--merange 网上争论不少,唯一结论是:没有最优值
--cqm* 可以选择网上制作好的量化矩阵,不过还是那句话:没有最优值

to kagakadaj
MR大大主要讲的是用me-gui的设置,我写的是命令行模式。

to wolfsoft
很遗憾,mplayer的中文版帮助早已outdate了。否则,我根本不用写这篇东西。

另外,--fullrange和--level的作用,有那位大大知道,先谢谢了。
级别: 侠客
注册时间:
2003-08-27
在线时间:
1小时
发帖:
508
只看该作者 8楼 发表于: 2006-07-25
-------------------------------------------------
x264在高码率下对细节的保留不如XVID
-------------------------------------------------
奇怪,這是誰說的???
很久以前測試過,x264沒用自定義矩陣
x264-Q14細節保留相當於XviD的CG MATRIX的Q2
更何況x264-Q14以下的高質量,另外還可以用自定義矩陣

來自
皓月狼影
bbs.lloup.com
级别: 侠客
注册时间:
2006-03-14
在线时间:
0小时
发帖:
593
只看该作者 9楼 发表于: 2006-07-25
好帖子,但是不会用~~
顺便问下,怎么用AVS来写这些参数呢?清闲的大虾们能否HELP ME?

迷茫中…
级别: 新手上路
注册时间:
2002-08-01
在线时间:
0小时
发帖:
296
只看该作者 10楼 发表于: 2006-07-25
引用
最初由 tct66 发布
-------------------------------------------------
x264在高码率下对细节的保留不如XVID
-------------------------------------------------
奇怪,這是誰說的???
很久以前測試過,x264沒用自定義矩陣
x264-Q14細節保留相當於XviD的CG MATRIX的Q2
更何況x264-Q14以下的高質量,另外還可以用自定義矩陣


如你所述,正说明我的说法正确。
x264的Q值与XVID的Q值是不同的。转换公式为:H264QP = 12 + 6*log2(XVIDQP)。也就是说,XviD的Q2相当于x264的Q18。
级别: 新手上路
注册时间:
2002-08-01
在线时间:
0小时
发帖:
296
只看该作者 11楼 发表于: 2006-07-25
引用
最初由 风雪云 发布
好帖子,但是不会用~~
顺便问下,怎么用AVS来写这些参数呢?清闲的大虾们能否HELP ME?


这些不是AVS内滤镜参数,而是外部编码器的参数。
例如:
x264 -q 18 -b 4 OP.avs -o OP.mkv
用量化值18压缩OP.avs,输出文件为OP.mkv,允许最大连续B帧数量为4。
级别: 超级版主
注册时间:
2002-08-18
在线时间:
181小时
发帖:
14839
只看该作者 12楼 发表于: 2006-07-25
置頂.....方便大家

FREEWIND台湾,日本商品团购MSN群: group130599@xiaoi.com 欢迎入群讨论!!
贩售台湾正版CD,DVD,漫畫,輕小說,及台灣各種商品,采Door to Door服务有保障!!请大家告诉大家!!
※FREEWIND工作室官方掏宝店铺,请点我!!!※

※漫游FREEWIND工作室招募人才 請點我!※
※漫游FREEWIND工作室作品汇总 請點我!※
※漫游FREEWIND工作室招募分流FTP&P2P分流员 請點我!※

级别: 工作组
注册时间:
2003-11-07
在线时间:
1小时
发帖:
7032
只看该作者 13楼 发表于: 2006-07-26
我补充一些.正如"视频标准化选项"在描述中所说的,这些选项是需要"设备支持",所以它们压出来的效果一般不为普通电脑播放器支持.就象"--sar"这个,设置非1:1(这里顺便说一下,楼主翻译不完全,应该是"采样比例设置",也就是象素的长宽比,比如人人皆知的NTSC10:11,PAL59:54),在AU经directshow读入及MPC播放时都没有反应.但奇妙的是mplayer回放居然有反应!用mplayer播放时显示成了长长的一条.看来mplayer更象一个"设备".所以这一部分的选项并不是为电脑所订,估计是x264野心勃勃地要为将来支持AVC的HD-DVD player准备.
这样也就可以理解所谓"fullrange",估计跟m2v里的那个一样,就是YUV-RGB的宽度直接转换([0~255]=>[0~255]).至于究竟是output上的还是input上的,连mplayer也无法反映,我更倾向于output上的.

至于level,也就是meGUI里x264设置第一页右下角那个"AVC Level".你就把它理解成xvid里的"profile&level"就行了.反正平时也没人用....

青空が眩しい 君がいる風景は
幸せのオーラ 溢れ出すの とまらないよ
駅前の噴水 虹を作っているよ
君を待つ時間さえも かけがえない プレシャスな時

=========================

FANSUB的历史,又翻过了新的一页
级别: 工作组
注册时间:
2003-11-07
在线时间:
1小时
发帖:
7032
只看该作者 14楼 发表于: 2006-07-26
引用
最初由 kykdu 发布
现在x264在高码率下对细节的保留不如XVID,可能与其内部的环路滤波算法有关。相对的,出现的噪点和马赛克也比XVID少很多。究竟孰优孰劣,大家见仁见智。


如tct所说.即使按照你说的,我甚至用Q20,试压出来码率只有XVID Q2的65%,PSNR仍然高过xvid.而且2pass的话码率只取xvid的一半,psnr仍旧高!可见目前x264已经基本兑现"AVC达到画质要求码率低一半"的诺言.

至于你说的inloop问题,你可以不要选deblocking啊.我做上面的测试时就没有钩这个.

青空が眩しい 君がいる風景は
幸せのオーラ 溢れ出すの とまらないよ
駅前の噴水 虹を作っているよ
君を待つ時間さえも かけがえない プレシャスな時

=========================

FANSUB的历史,又翻过了新的一页
快速回复

限150 字节
上一个 下一个