CLANNAD OP
full quality(ideal frame decision)
--pass 1 --bitrate 2065 --keyint 240 --min-keyint 24 --ref 10 --mixed-refs --no-fast-pskip --bframes 16 --b-adapt 2 --b-pyramid --b-rdo --bime --weightb --direct auto --subme 7 --trellis 2 --psy-rd 0.0:0 --partitions all --8x8dct --me tesa --merange 32 --threads 3 --thread-input --progress --no-dct-decimate --output NUL
x264 [info]: slice I:25Avg QP:13.64 size: 17373 PSNR Mean Y:52.42 U:54.60 V:54.78 Avg:52.75 Global:51.30
x264 [info]: slice P:979 Avg QP:17.47 size: 16141 PSNR Mean Y:45.88 U:47.90 V:48.09 Avg:46.43 Global:44.71
x264 [info]: slice B:1149 Avg QP:18.97 size: 5754 PSNR Mean Y:45.43 U:47.69 V:47.92 Avg:46.03 Global:44.24
encoded 2153 frames, 1.37 fps, 2035.61 kb/s
old turbo->subme1
--pass 1 --bitrate 2065 --keyint 240 --min-keyint 24 --bframes 16 --b-adapt 2 --b-pyramid --direct auto --subme 1 --partitions none --me dia --threads 3 --thread-input --progress --no-dct-decimate --output NUL
x264 [info]: slice I:24Avg QP:15.70 size: 17849 PSNR Mean Y:50.45 U:53.45 V:53.70 Avg:50.99 Global:48.41
x264 [info]: slice P:1081 Avg QP:19.43 size: 15963 PSNR Mean Y:43.73 U:46.68 V:46.86 Avg:44.47 Global:42.30
x264 [info]: slice B:1048 Avg QP:21.30 size: 4855 PSNR Mean Y:43.07 U:46.46 V:46.73 Avg:43.90 Global:41.70
encoded 2153 frames, 10.13 fps, 2028.89 kb/s
new turbo->subme2
--pass 1 --bitrate 2065 --keyint 240 --min-keyint 24 --bframes 16 --b-adapt 2 --b-pyramid --direct auto --subme 2 --partitions none --me dia --threads 3 --thread-input --progress --no-dct-decimate --output NUL
x264 [info]: slice I:26Avg QP:14.79 size: 17604 PSNR Mean Y:51.37 U:54.08 V:54.31 Avg:51.85 Global:49.99
x264 [info]: slice P:1030 Avg QP:19.35 size: 16229 PSNR Mean Y:43.87 U:46.79 V:47.00 Avg:44.61 Global:42.45
x264 [info]: slice B:1097 Avg QP:21.00 size: 5163 PSNR Mean Y:43.38 U:46.62 V:46.89 Avg:44.18 Global:41.99
encoded 2153 frames, 7.96 fps, 2034.74 kb/s
normal subme6+hex
--pass 1 --bitrate 2065 --keyint 240 --min-keyint 24 --bframes 16 --b-adapt 2 --b-pyramid --direct auto --psy-rd 0.0:0 --partitions none --threads 3 --thread-input --progress --no-dct-decimate --output NUL
x264 [info]: slice I:27Avg QP:14.56 size: 17692 PSNR Mean Y:51.48 U:54.17 V:54.40 Avg:51.97 Global:50.14
x264 [info]: slice P:991 Avg QP:19.16 size: 16147 PSNR Mean Y:44.13 U:47.07 V:47.27 Avg:44.88 Global:42.78
x264 [info]: slice B:1135 Avg QP:20.84 size: 5568 PSNR Mean Y:43.56 U:46.64 V:46.93 Avg:44.33 Global:42.17
encoded 2153 frames, 7.75 fps, 2031.30 kb/s
slower subme6+hex+bframe related options (near ideal decision)
--pass 1 --bitrate 2065 --keyint 240 --min-keyint 24 --bframes 16 --b-adapt 2 --b-pyramid --b-rdo --bime --weightb --direct auto --psy-rd 0.0:0 --partitions none --threads 3 --thread-input --progress --no-dct-decimate --output NUL
x264 [info]: slice I:27Avg QP:14.40 size: 18063 PSNR Mean Y:51.63 U:54.20 V:54.45 Avg:52.11 Global:50.23
x264 [info]: slice P:979 Avg QP:19.16 size: 16824 PSNR Mean Y:44.12 U:46.97 V:47.16 Avg:44.85 Global:42.76
x264 [info]: slice B:1147 Avg QP:20.87 size: 5109 PSNR Mean Y:43.85 U:46.90 V:47.17 Avg:44.62 Global:42.48
encoded 2153 frames, 7.25 fps, 2032.98 kb/s
lower ME to dia (bad result)
--pass 1 --bitrate 2065 --keyint 240 --min-keyint 24 --bframes 16 --b-adapt 2 --b-pyramid --b-rdo --bime --weightb --direct auto --psy-rd 0.0:0 --partitions none --me dia --threads 3 --thread-input --sar 1:1 --progress --no-dct-decimate --output NUL
x264 [info]: slice I:26Avg QP:14.52 size: 17864 PSNR Mean Y:51.61 U:54.17 V:54.41 Avg:52.08 Global:50.16
x264 [info]: slice P:1002 Avg QP:19.22 size: 16749 PSNR Mean Y:44.11 U:46.96 V:47.15 Avg:44.83 Global:42.72
x264 [info]: slice B:1125 Avg QP:20.90 size: 4950 PSNR Mean Y:43.81 U:46.91 V:47.15 Avg:44.59 Global:42.43
encoded 2153 frames, 7.42 fps, 2032.78 kb/s
rise to subme7+umh+no-fast-pskip, no change in frame decision
best result: subme6+hex+bframe related options for 1st pass.
subme1和subme2的区别是最大的(这次测试里不太明显,因为较短且片段内容比较特殊),因为前者使用SAD,2开始使用SATD,这也是为什么MeGUI的turbo将subme从1提升到了2。
但即使是subme2,精度仍旧与理想的有较大差距,所以我做了上面这些测试,得出的结论是subme6+hex+bframe related options。尽量提高精度的前提下不在1stpass中做更多无谓的运算(比如trellis,partitioning,ref什么的)