20
x264のパラメータをガチで調べてみた。
恐らくSSIMに大きく関わっていく部分「フレーム」を地道に検証していく。
ソースは640x480、格闘ゲームのプレイ動画を10800フレーム(3分)に切った。
fpsはCPUが遊んだりするためあまり参考にならないだろうけど、SSIMはあまり変化がないから信用していい数値だと思う。
me
me | SSIM | fps |
---|---|---|
DS | 0.7664984 | 102.44 |
HS | 0.7682769 | 75.02 |
UMH | 0.7743812 | 57.89 |
ES | 0.7741471 | 36.54 |
HE | 0.7738186 | 31.34 |
恐らく高くすればするほど効果は高い。
が、このソースだとUMH以降時間対効果を見込めなくなっているので、高くてもUMHぐらいが良さげな気がする。
動きが激しい動画に限ってはESにしても良さそう。
※画像がUMXになってるのはミスです。
subme
subme | SSIM | fps |
---|---|---|
0 | 0.7471964 | 155.36 |
1 | 0.7474077 | 131.72 |
2 | 0.7544082 | 98.20 |
3 | 0.7557401 | 91.55 |
4 | 0.7567368 | 83.37 |
5 | 0.7595655 | 80.02 |
6 | 0.7520546 | 73.96 |
7 | 0.7682769 | 63.50 |
8 | 0.7635101 | 60.14 |
9 | 0.7647065 | 50.23 |
10 | 0.7647065 | 49.41 |
11 | 0.7647065 | 50.53 |
このソースだとsubme 7ぐらいが(たまたま)高い効果を得られる結果になった。
サブピクセルの精度が上がるらしいので、基本的に上げるだけ上げて損はないと思う。
このソースだと、subme9からSSIMが変化していないので、subme9ぐらいにしたほうが良さげ。
subme10以降はtrellisが2に設定されるらしいので。。。(それにしてはfpsの変化がないけど)
merange
merange | SSIM | fps |
---|---|---|
0 | 0.7667059 | 97.45 |
4 | 0.7667059 | 68.76 |
8 | 0.7679027 | 79.45 |
12 | 0.7681813 | 67.83 |
16 | 0.7682769 | 70.82 |
20 | 0.7682769 | 78.26 |
24 | 0.7682769 | 70.34 |
28 | 0.7682769 | 67.25 |
32 | 0.7682769 | 77.37 |
36 | 0.7682769 | 68.61 |
40 | 0.7682769 | 68.34 |
44 | 0.7682769 | 67.21 |
48 | 0.7682769 | 63.71 |
52 | 0.7682769 | 67.48 |
56 | 0.7682769 | 68.86 |
60 | 0.7682769 | 68.18 |
64 | 0.7682769 | 66.84 |
EX | 0.7681505 | 99.79 |
どれぐらい設定すれば効果があるかわからないから、とりあえず4刻みで設定してみた。
けれど、16から全くSSIMが動かない結果に。。。あまり高くしても効果はなさそうです。
理由は分からないけれどmerange-8から12刻みでfpsが上がっているので、32辺りに設定するのが無難かも。
別の人の検証結果ではmerange-48までは圧縮率も上がるみたいなので。(ただしHDソース)
EXはmerange-64かつchroma-meを切った結果です。SSIM減少が約0.0001なのに対し、fpsがかなり上がっているので切るのもアリかもしれない。
ref
ref | SSIM | fps |
---|---|---|
0 | 0.7623158 | 107.30 |
1 | 0.7623158 | 86.24 |
2 | 0.7658487 | 71.42 |
3 | 0.7682769 | 67.04 |
4 | 0.7685136 | 68.46 |
5 | 0.7706139 | 64.02 |
6 | 0.7726545 | 58.28 |
7 | 0.7737657 | 54.84 |
8 | 0.7743881 | 49.20 |
9 | 0.7752243 | 47.44 |
10 | 0.7759795 | 43.46 |
11 | 0.7764360 | 42.04 |
12 | 0.7773242 | 39.90 |
13 | 0.7778076 | 38.11 |
14 | 0.7782226 | 33.79 |
15 | 0.7785406 | 31.05 |
16 | 0.7788488 | 30.95 |
EX | 0.7768580 | 44.76 |
設定すればするぶんだけSSIMが伸びる結果に。探索範囲増えるから当然っちゃあ当然だけど。。。
時間と相談で上げれるだけ上げて損はないはず。最低でも2~3、できれば12~16まで上げたいところ。
EXはref-16かつmixed-refを切った結果。fpsは少し上がるがSSIMの落ち方が激しいので切らないほうがいいと思う。。。
一応数値だけで見ればref-10~11には勝っているけど…
Bframes
Bframes | SSIM | fps |
---|---|---|
0 | 0.7518905 | 113.61 |
1 | 0.7622059 | 87.26 |
2 | 0.7669510 | 72.15 |
3 | 0.7682769 | 67.50 |
4 | 0.7678517 | 65.42 |
5 | 0.7681419 | 64.10 |
6 | 0.7682378 | 56.30 |
7 | 0.7682217 | 52.00 |
8 | 0.7682276 | 46.98 |
9 | 0.7682437 | 45.64 |
10 | 0.7681723 | 40.42 |
11 | 0.7685148 | 38.72 |
12 | 0.7683563 | 35.06 |
13 | 0.7685392 | 33.44 |
14 | 0.7684268 | 30.87 |
15 | 0.7683992 | 29.99 |
16 | 0.7684706 | 27.74 |
Bframes-3までは欲しいところ。それ以降は増やさないほうがいいかも。
一応ここまで作ってみました。
次はレート、QP設定辺りを検証してみたい。面倒だったらveryslow辺りの設定パクって終わる。