x264の設定を見直す その2
前回はプリセットによる変化を試してみたが、今度は個々の設定の影響を調べてみる。
基準とするのはプリセットslowの2pass-1.35Mbpsの値。
6/3追記:
バックグラウンドで動いているソフトを止める為、クリーンブートでAVIUtlのみ立ち上げて再評価。
色々試していてわかったのだが、どうもx264gui.auoの自動マルチパスだとターボのチェックを外しても--slow-firstpassにはならない模様。
なので、エンコ時間は2pass目のみを比較。
(多分これは不具合。でも、掲示板が機能してないから報告しようがなかったりzzz)
merange
merange | ssim | kbps | fps(1pass+2pass) | 綺麗さ | エンコ時間 |
4 | 0.9654822 | 1347.34 | 8.15+3.15 | 0.968 | 0.841 |
8 | 0.9660768 | 1344.03 | 8.13+2.97 | 0.988 | 0.892 |
16 | 0.9663921 | 1339.74 | 8.13+2.65 | 1 | 1 |
24 | 0.9664978 | 1338.43 | 8.12+2.46 | 1.004 | 1.077 |
32 | 0.9666689 | 1337.31 | 8.11+2.24 | 1.01 | 1.183 |
48 | 0.966674 | 1336.83 | 8.13+1.86 | 1.011 | 1.425 |
64 | 0.9667148 | 1337.68 | 8.12+1.55 | 1.011 | 1.71 |
デフォルトの16から8に下げると、1%強の画質劣化で10%も速度を稼げる。
ROのドット絵&画面の移動が穏やかなのが好影響しているのかもしれない。
逆に数値を上げれば画質は向上するけれど、上げ過ぎは時間の無駄。
merange=32以上でほんの僅か(0.1%程度)画質改善されているけど、増える時間を考えると割に合わなさすぎる。
(そこまでするならビットレートを切り詰めて調整したほうがマシかと・・・)
数値を増やしても思ったよりエンコ時間に与える影響が少ない印象。
検索範囲は距離の2乗で広がるはずだが、検索自体は負荷が低いのか?
ref
エンコ時間に大きな影響を与えると思われるrefの数値を変更してみる。
ref | ssim | kbps | fps(1pass+2pass) | 綺麗さ | エンコ時間 |
1 | 0.9646794 | 1341.47 | 8.13+4.15 | 0.95 | 0.648 |
2 | 0.9655246 | 1341.46 | 8.12+3.40 | 0.974 | 0.791 |
3 | 0.9659823 | 1340.5 | 8.13+3.10 | 0.987 | 0.868 |
4 | 0.966084 | 1339.95 | 8.13+3.06 | 0.991 | 0.879 |
5 | 0.9663921 | 1339.74 | 8.10+2.69 | 1 | 1 |
6 | 0.9666059 | 1339.51 | 8.17+2.38 | 1.007 | 1.13 |
7 | 0.966899 | 1339.64 | 8.14+2.14 | 1.015 | 1.257 |
8 | 0.9669691 | 1339.96 | 8.16+1.93 | 1.017 | 1.394 |
12 | 0.967574 | 1342.57 | 8.15+1.40 | 1.034 | 1.921 |
16 | 0.9678601 | 1342.26 | 8.14+1.10 | 1.044 | 2.445 |
増やしただけ画質は上がるけど、増やし過ぎるとエンコにかかる時間が跳ね上がる。
探す場所がコレの数だけ増えるんだから当然ではあるけれど・・・
3〜4に設定しても画質への影響は1〜2%。merange同様、エンコ時間を減らすには調整すべき項目か。
b-frame
ssimのみで評価するなら数値を上げれば結果が良くなるはずの項目。
bframe | ssim | kbps | fps(1pass+2pass) | 綺麗さ | エンコ時間 |
0 | 0.9623017 | 1331.48 | 10.77+2.57 | 0.897 | 0.971 |
1 | 0.9649596 | 1334.25 | 10.33+2.47 | 0.963 | 1.011 |
2 | 0.9662931 | 1339.32 | 8.72+2.46 | 0.997 | 1.05 |
3 | 0.9663921 | 1339.74 | 8.12+2.68 | 1 | 1 |
4 | 0.9663943 | 1337.59 | 7.05+2.69 | 1.002 | 1.035 |
5 | 0.9664211 | 1337.25 | 6.61+2.72 | 1.003 | 1.046 |
6 | 0.9665245 | 1338.55 | 5.85+2.70 | 1.005 | 1.091 |
この項目はターボのチェックの影響を受けないので、エンコ時間は1passも考慮。
・・・というか、1pass目のIPBフレーム判定に大きな影響を与えるのだから、1pass目のfpsこそ評価すべきなのか?
(2pass目のfpsが伸びるのはサイズの小さなBフレームの処理が増えるからだろうな)
refより小さな値にした方がいいのかな? BフレームからPフレームに手が届く方が良さそうな気がする。
っと、ここまで。
追記:
上のエンコは作業用PCによるものなので、結果が微妙に異なりそう。
同じソースをエンコ用PCでエンコしてみた。設定は上のb-frame=3と同じもの。
うん、なんか比較にならんなzzz とりあえず同じソース・同じ設定でも結果が異なるのだけはわかる。
やはりスレッド数が変わる影響なんだろうな〜