littlepox
帖子: 115
注册: 2012-08-26 16:56

一些x265的参数测试结论分享,希望可以让后来的测试者少做些重复工作,也希望其他一些做过测试的来分享一些结论

2015-01-25 20:38

测试时间是2015年年初,使用的是x265 1.4+285, 16bpp ver.

测试的片源是pp s2 Vol.1里面的一个特典。片源类型是60i,夜间录像,重噪点。做了Deint和适度SMDegrain后,可以认为片源是噪点并不多,暗场多,1920x1080 60p的视频。

因为测试样本比较少,所以以下结论可能具有偶然性。

测试参数基于fch1993的调整,原来参数:
--preset veryslow --crf 16.0 --tu-intra-depth 4 --tu-inter-depth 4 --rdpenalty 2 --me 3 --subme 5 --merange 57 --b-intra --rect --amp --ref 8 --weightb --keyint 9000000 --min-keyint 1 --bframes 8 --aq-mode 1 --aq-strength 0.75 --rd 5 --psy-rd 0.65 --no-sao --no-open-gop --rc-lookahead 72 --scenecut 40 --max-merge 4 --qcomp 0.65 --no-strong-intra-smoothing --pmode --pme --threads 24 --no-cutree

调整后的参数结果:
--preset slower --crf 18.0 --tu-intra-depth 4 --tu-inter-depth 4 --rdpenalty 2 --me 3 --subme 5 --merange 57 --b-intra --rect --amp --ref 5 --weightb --keyint 900 --min-keyint 1 --bframes 8 --aq-mode 1 --aq-strength 1.0 --rd 5 --psy-rd 0.9 --psy-rdoq 1.0 --no-sao --no-open-gop --rc-lookahead 120 --scenecut 40 --max-merge 4 --qcomp 0.70 --no-strong-intra-smoothing --pmode --threads 24 --input-depth 16


测试结果,相比10bit x264 (参数:ref=12 / deblock=1:0:0 / me=umh / subme=10 / fade_compensate=0.00 / psy_rd=0.90:0.10 / me_range=24 / fast_pskip=0 / chroma_qp_offset=-3 / fgo=0 / bframes=8 / b_adapt=2 / weightb=1 / weightp=2 / keyint=900 / keyint_min=1 / mbtree=1 / crf=18.5000 / qcomp=0.65 / aq=3:1.00 / aq2=0 / aq3=0 ),调整后的x265参数大约可以做到画质不分上下(avspmod里面采样ab对比,用眼睛看。至于psnr/ssim数据我没看。psy开了看这些数据就没意义了),同时码率降低25%~30%


几个详细测试的部分和结论:

1. ref=5提升到ref=8,基本上毫无区别。文件大小改变不足1%,画质也没有高下(虽然特定帧画面区别还是有,但是难说哪个好那个坏),所以基本认为现在x265 ref=5就够了。

2. --me 3 降低到 --me 2,就是star降低到umh,速度,码率,画质几乎没有什么改变。但是--me 4(full)据fch测试非常非常慢,效果也没有提升,故不做测试。

3. --subme 5 降低到4,速度,码率,画质几乎没有什么改变,输出基本完全一样。6未做测试。

4. sao要关闭已经是常识了,然后默认关闭的psy,开了好处很多,而且--psy-rdoq的效果大概相当于x264的--psy-trellis,开了可以大幅避免之前的“糊你一脸”。所以这个参数开启了--psy-rdoq,只不过没有量化的测试,用的是默认值1.0

5. 这样的参数在一片 3.7GHz的E3 1230v3/4770K上大约速度是 0.4fps。如果考虑avs等影响,速度还会更慢。这个速度意味着如果要编码一个2小时,Deint后为59.940fps的演唱会,需要连续不停挂机半个月。编码一个24分钟,24p的1920x1080动漫,需要正好一整天。

6. x265多线程优化良好(或者说胃口极大?)。--threads 24 --pmode 的设定下可以轻松跑满8C16T的PC,无需开pme

7. 尽管目前的优化多半针对avx2, 非haswell架构劣势并不是很多,尽管老如i7 980X 或类似架构,比如说一片3.9GHz的i7 980X跑x264基本打平4.5GHz的4770K,两者运行x265,i7 980X速度上大概最多落后5%。所以在目前E5 v3平台成本昂贵的环境下,考虑SNB-E/Ivy-E构建多核心平台跑x265依然可行。

haswell同频同核心,性能比Ivy高36%,比SNB高42%
所以结论是:想玩x265,再不济也得咬牙上E3v3
上次由 littlepox 在 2015-06-09 22:34,总共编辑 2 次。

sadouxi
帖子: 13
注册: 2011-03-05 20:09

Re: 一些x265的参数测试结论分享,希望可以让后来的测试者少做些重复工作,也希望其他一些做过测试的来分享一些结论

2015-01-26 14:27

看来要改一下参数了。年内打算5820K走起

【开坑】HEVC目前已知平台解码记录:https://www.nmm-hd.org/newbbs/viewtopic.php?f=17&t=1563

netsky123
帖子: 53
注册: 2015-01-26 14:18

Re: 一些x265的参数测试结论分享,希望可以让后来的测试者少做些重复工作,也希望其他一些做过测试的来分享一些结论

2015-01-26 15:07

问题较多,见谅。
sao要关闭是为什么呢?
x265新引入的一些参数,比如tu-intra-depth、tu-inter-depth、rect、amp等等,在help中的描述并不清晰,在哪里能看到它们的一些解释?

我自己用hevc做一点片子主要是裸压的真人片(电视剧集),偏向小体积,参数也很简单:--preset medium --ref 4 --bframes 5 --b-adapt 1 --psy-rd 1.0 --me 2 --subme 5 --merange 24 --keyint 600 --min-keyint 1 --crf 21。
体积上x265优势很大,画面方面我不好评价,反正真人片的观众老爷没那么多要求。 {:cat_2}
图片
x265默认的merange 57实在是太慢了,速度只有1-2fps,改成merange 24能提升到4-6fps,如果嫌慢的话,把这个改了能快很多。

littlepox
帖子: 115
注册: 2012-08-26 16:56

Re: 一些x265的参数测试结论分享,希望可以让后来的测试者少做些重复工作,也希望其他一些做过测试的来分享一些结论

2015-01-26 22:31

netsky123 写了:问题较多,见谅。
sao要关闭是为什么呢?
x265新引入的一些参数,比如tu-intra-depth、tu-inter-depth、rect、amp等等,在help中的描述并不清晰,在哪里能看到它们的一些解释?

我自己用hevc做一点片子主要是裸压的真人片(电视剧集),偏向小体积,参数也很简单:--preset medium --ref 4 --bframes 5 --b-adapt 1 --psy-rd 1.0 --me 2 --subme 5 --merange 24 --keyint 600 --min-keyint 1 --crf 21。
体积上x265优势很大,画面方面我不好评价,反正真人片的观众老爷没那么多要求。 {:cat_2}
图片
x265默认的merange 57实在是太慢了,速度只有1-2fps,改成merange 24能提升到4-6fps,如果嫌慢的话,把这个改了能快很多。


1. 你使用的是--crf 21,画质定位比我上面的--crf 18要低一些。事实上--crf 18左右跑出来应该是 near-transparent 级别的还原度;这个还原度下,sao开启后的画面很模糊。

2. 参数的介绍这里有:http://x265.readthedocs.org/en/default/cli.html

3. 实在看不懂默认的merange 57怎么来的,而且各种preset 都是这么高。我现在正在跑调低到25的测试。

littlepox
帖子: 115
注册: 2012-08-26 16:56

Re: 一些x265的参数测试结论分享,希望可以让后来的测试者少做些重复工作,也希望其他一些做过测试的来分享一些结论

2015-01-26 22:51

然后今天晚上又做了一个测试,这次是一个24p 1080p的PV,也是真人拍摄,不过亮场较多。原片噪点较少,但是有不少头发等致密纹理。

用之前的参数跑一次,发现体积比x264低了将近50%(82.5 vs 153.5),画面也明显模糊的多,很多头发丝的细节都被blur掉了。
而且速度降到了0.26fps。。。4770K

于是试着调了一些参数:
--psy-rd 0.9->0.8
--psy-rdoq 1.0->10.0
--deblock -1:-1

基本上是参照x265自带的--tune grain跑的。
跑完后,体积增大到99.5MB,提升超过20%,还是比x264低35%;模糊有一定的缓解,但是总体画面锐度还是稍低x264一点点,不过也基本无从区别优劣。

20%的体积提升,感觉换来这点改进有点不足。不知道是不是使用--psy-rdoq 5.0,然后降低crf更好使。

(果然只有一个测试,偶然性太大了)

头像
翡璃月
帖子: 78
注册: 2010-11-11 23:36
地址: 台灣宜蘭
联系: 网站 WLM

Re: 一些x265的参数测试结论分享,希望可以让后来的测试者少做些重复工作,也希望其他一些做过测试的来分享一些结论

2015-01-27 2:08

不管怎樣 追求畫質的話 影響畫質最多的SAO還是要關掉阿...
图片

fch1993
帖子: 199
注册: 2012-06-12 11:56

Re: 一些x265的参数测试结论分享,希望可以让后来的测试者少做些重复工作,也希望其他一些做过测试的来分享一些结论

2015-01-27 11:38

翡璃月 写了:不管怎樣 追求畫質的話 影響畫質最多的SAO還是要關掉阿...

只是现在的sao实现机制还是有问题,x265的todo list也写了会改善subme和sao的。

头像
upyzl
帖子: 446
注册: 2010-12-25 18:44
地址: 湘/京
联系: 网站

Re: 一些x265的参数测试结论分享,希望可以让后来的测试者少做些重复工作,也希望其他一些做过测试的来分享一些结论

2015-01-27 21:11

littlepox 写了:3. 实在看不懂默认的merange 57怎么来的,而且各种preset 都是这么高。我现在正在跑调低到25的测试。

The default is derived from the default CTU size (64) minus the luma interpolation half-length (4) minus maximum subpel distance (2) minus one extra pixel just in case the hex search method is used. If the search range were any larger than this, another CTU row of latency would be required for reference frames.

还有 http://forum.doom9.org/showthread.php?p ... ost1688270

嘛……但是MCW也没公开具体测试数据(要不然就是我没找到)。而且也有些时间了。
我觉得还是以自己的同类型视频测试数据为准好了

littlepox
帖子: 115
注册: 2012-08-26 16:56

Re: 一些x265的参数测试结论分享,希望可以让后来的测试者少做些重复工作,也希望其他一些做过测试的来分享一些结论

2015-01-27 21:48

upyzl 写了:The default is derived from the default CTU size (64) minus the luma interpolation half-length (4) minus maximum subpel distance (2) minus one extra pixel just in case the hex search method is used. If the search range were any larger than this, another CTU row of latency would be required for reference frames.


这段看了啊,问题就是没看懂这段话。每个单词都认识,摆在一起what the fxxk am I reading?

upyzl 写了:还有 http://forum.doom9.org/showthread.php?p ... ost1688270

嘛……但是MCW也没公开具体测试数据(要不然就是我没找到)。而且也有些时间了。
我觉得还是以自己的同类型视频测试数据为准好了


这还真有些时间了。所以打算自己测试一下:

--tu-intra-depth 4 -> 3
--tu-inter-depth 4 -> 3
//这俩是我猜应该没啥影响

--me-range 57->25 降低了32

结果,速度增加了50%。成品体积增加不到2%,画面截图对比看不出什么明显的优劣,都是互有胜负,区别极小。

一次降低了3个参数,但是这三个参数于码率于画质的影响都很小。但是考虑到使用的源其实动态很低,于是换了个高动态高复杂度的:
Love Live S1的NCOP

原参数(fch1993目前压BDRip的,已经调低两个depth):
program --crf 16.0 --tu-intra-depth 3 --tu-inter-depth 3 --me 3 --subme 5 --merange 57 --b-intra --rect --amp --ref 5 --weightb --keyint 900 --min-keyint 1 --bframes 8 --aq-mode 1 --aq-strength 0.9 --rd 5 --no-sao --no-open-gop --rc-lookahead 60 --scenecut 40 --max-merge 4 --qcomp 0.8 --no-strong-intra-smoothing --pmode --threads 16 --input-depth 16 --psy-rdoq 0.9 --psy-rd 0.8 --output "output" "input"

新参数,me-range 57->25

测试结果,还是码率增大2%不到,画面截图没有什么区别,速度提升了35%。所以我不懂x265作者说降低me_range对速度没啥影响,这个结论怎么来的。以后就果断--me_range 25走起吧。

纯视频部分,成品体积是102MB/104MB。拿了跟VCB-Studio的10bit AVC发布(视频体积153MB)对比,画质是完败,被10bit AVC版吊打。不过因为码率领先很多,而且avs部分我有过针对性预处理,所以这个对比不公平;后来拿10bit x264 用2pass压了一个106MB的10bit AVC版(比预定码率高了点,本来准备是103MB出来):

整体对比,大概随机10帧,10bit AVC版能好4~5帧,x265版(以me_range 57为准)能好2~3帧,剩下的说不上谁好谁不好。欠码的趋势还是一致,x264烂边毛刺,x265一地浆糊

在跑10bit x264, 1pass的时候跑出10.3K码率,x264给出的预计crf是18.3. 2pass码率是9.4K,但是qp值好于1pass。结合这些以及成品,我判断2pass出来的成品大概是crf=18.0~17.5 mbtree=1 qcomp=0.75的水准。也就是说,这个水准差不多正好是x265在同码率能打平x264的极限。而国内外追求质量的raw组/字幕组,BDRip的设定普遍比这个来得高。(关mbtree大概相当于crf降低1.0)

LL相关的测试可以在这里下载:
http://pan.baidu.com/s/1i3uyyLR

目前我个人优化到现在打算给的参数:
--preset slower --crf 18.0 --tu-intra-depth 3 --tu-inter-depth 3 --rdpenalty 1 --me 3 --subme 5 --merange 25 --b-intra --rect --amp --ref 5 --weightb --keyint 600 --min-keyint 1 --bframes 8 --aq-mode 1 --aq-strength 1.0 --rd 5 --psy-rd 0.9 --psy-rdoq 4.0 --no-sao --no-open-gop --rc-lookahead 80 --scenecut 40 --max-merge 4 --qcomp 0.70 --no-strong-intra-smoothing --pmode --threads 16 --deblock -1:-1 --input-depth 16

正在测试--rect和--amp的影响。

头像
upyzl
帖子: 446
注册: 2010-12-25 18:44
地址: 湘/京
联系: 网站

Re: 一些x265的参数测试结论分享,希望可以让后来的测试者少做些重复工作,也希望其他一些做过测试的来分享一些结论

2015-01-27 22:26

littlepox 写了:这段看了啊,问题就是没看懂这段话。每个单词都认识,摆在一起what the fxxk am I reading?

我觉得按字面意思理解就行了……至少知道57来的有个理由。要继续深入到原理不得搞明白H.265 motion estimation技术细节了 {:cat_12} ,当然直接有菊苣来讲解就更好不过了
有些off-topic,我打止吧。当然有自己测试数据也不必管这些有的没的了,更何况他们自己也有说是通过了测试(但我们没看到数据)决定…
littlepox 写了:正在测试--rect和--amp的影响。

很早之前就看到有人建议给这两个参数分级,而不是非开即关。但到现在也没实现的样子(当时倒是也回复实现很困难)…这参数在以前默认开启时就不少人质疑其效率/时间问题了 {:cat_15}

回到 “视频编码器 / Video encoder discussion”