x264, x264gui, x264guiEx 32bit,64bit 速度比較
パイプ方式を作ってみた最大の理由は64bitx264を使ってエンコードを少しでも高速化しようってことなんで、その検証をしてみる。
比較するのは
・Avisynth 64bit + x264 64bit
・Avisynth 32bit + x264 32bit
・Avisynth 32bit + avs2yuv 32bit + パイプ + x264 64bit
・Aviutl + x264guiEx + x264r1804 64bit
・Aviutl + x264guiEx + x264r1804 32bit
・Aviutl + 改造版x264gui r1804+350
もちろん、AvisynthもAviutlもフィルタはなし。
予想としては、64bitなら速くなるかなと。
入力データ
解像度 : 1280x720p
fps : 30.000fps
コーデック : UtVideo (ULY0) x86/x64ともにあり
フレーム数 : 3052 frame (約 1分42秒)
音声 : なし
その他 : アニメ絵
AvisynthではAVISourceを使い、pixel_typeにはYV12を指定した。
x264.exe は http://x264.nl/のバイナリを使用
x264のオプション(適当)
--crf 21 --preset slow --qcomp 0.75 -i 4 -I 300 --aq-strength 0 -t 2 --no-fast-pskip --no-dct-decimate
共通
Aviutl0.99i8
今回はいろんな環境で試して、その違いも見てみようかと。
環境1
OS : Win7 64bit
CPU : Xeon W3680 (6C/12T, L3=12MB) @ 4070MHz (Core i系)
RAM : 12GB
環境2
OS : Win7 64bit
CPU : Core2Duo P8600 (2C/2T, L2=3MB) @ 2400MHz
RAM : 4GB
環境3 (64bit系のテストはできない)
OS : WinXP 32bit
CPU : Core2Quad Q6600 (4C/4T, L2=4MB×2) @ 2400MHz
RAM : 2GB
速度比較にはログに最後に表示されるfpsを使う。

これだとよくわからんので、Avisynth32bit + x264 32bit を基準にそろえると、

どこでそろえるかで印象が変わるので、今度はx264guiにそろえたもの。

というか、環境2と3ではAviutlの処理がやけに遅い気がする。逆に環境1はAviutlのほうが速い(ぇ
ちょっと変なぐらい。
このことに注意しながら見ると、
・64bitで高速化。ただし、環境2よりも環境1のほうが64bit化による高速化の割合が高い。Avisynthにそろえたグラフでみるとよくわかり、環境1では約15%、環境2では~10%ぐらい。Core2よりもCoreiのほうが64bit最適化が進んでいるといわれているので、そのせいかもしれない。
・パイプ使用による速度低下はあまり見られない。
・改造版x264guiのバイナリはたぶん遅い…orz(x264guiExでパイプした32bitx264のほうが速いし…だけどたぶんそんなはずはないということはバイナリのせい)
あとは実験環境ではメモリがかなり余ってる状態だけど、パイプ処理はメモリの空きがじり貧だと遅くなりそう。バッファ的に。
まあ64bitで速くなることがわかれば十分。
ただ10~15%高速化ってのは結構大きいものの、体感できるかどうかは微妙かな。
それにこれは全くフィルタをかけてないからいいけど、フィルタのほうで詰まってしまって律速になって、x264の速度はあんまり関係なかったりすることもある。もちろん、その場合でも2つ同時にエンコードする場合とかには高速化も意味があるだろうけど。
比較するのは
・Avisynth 64bit + x264 64bit
・Avisynth 32bit + x264 32bit
・Avisynth 32bit + avs2yuv 32bit + パイプ + x264 64bit
・Aviutl + x264guiEx + x264r1804 64bit
・Aviutl + x264guiEx + x264r1804 32bit
・Aviutl + 改造版x264gui r1804+350
もちろん、AvisynthもAviutlもフィルタはなし。
予想としては、64bitなら速くなるかなと。
入力データ
解像度 : 1280x720p
fps : 30.000fps
コーデック : UtVideo (ULY0) x86/x64ともにあり
フレーム数 : 3052 frame (約 1分42秒)
音声 : なし
その他 : アニメ絵
AvisynthではAVISourceを使い、pixel_typeにはYV12を指定した。
x264.exe は http://x264.nl/のバイナリを使用
x264のオプション(適当)
--crf 21 --preset slow --qcomp 0.75 -i 4 -I 300 --aq-strength 0 -t 2 --no-fast-pskip --no-dct-decimate
共通
Aviutl0.99i8
今回はいろんな環境で試して、その違いも見てみようかと。
環境1
OS : Win7 64bit
CPU : Xeon W3680 (6C/12T, L3=12MB) @ 4070MHz (Core i系)
RAM : 12GB
環境2
OS : Win7 64bit
CPU : Core2Duo P8600 (2C/2T, L2=3MB) @ 2400MHz
RAM : 4GB
環境3 (64bit系のテストはできない)
OS : WinXP 32bit
CPU : Core2Quad Q6600 (4C/4T, L2=4MB×2) @ 2400MHz
RAM : 2GB
速度比較にはログに最後に表示されるfpsを使う。

これだとよくわからんので、Avisynth32bit + x264 32bit を基準にそろえると、

どこでそろえるかで印象が変わるので、今度はx264guiにそろえたもの。

というか、環境2と3ではAviutlの処理がやけに遅い気がする。逆に環境1はAviutlのほうが速い(ぇ
ちょっと変なぐらい。
このことに注意しながら見ると、
・64bitで高速化。ただし、環境2よりも環境1のほうが64bit化による高速化の割合が高い。Avisynthにそろえたグラフでみるとよくわかり、環境1では約15%、環境2では~10%ぐらい。Core2よりもCoreiのほうが64bit最適化が進んでいるといわれているので、そのせいかもしれない。
・パイプ使用による速度低下はあまり見られない。
・改造版x264guiのバイナリはたぶん遅い…orz(x264guiExでパイプした32bitx264のほうが速いし…だけどたぶんそんなはずはないということはバイナリのせい)
あとは実験環境ではメモリがかなり余ってる状態だけど、パイプ処理はメモリの空きがじり貧だと遅くなりそう。バッファ的に。
まあ64bitで速くなることがわかれば十分。
ただ10~15%高速化ってのは結構大きいものの、体感できるかどうかは微妙かな。
それにこれは全くフィルタをかけてないからいいけど、フィルタのほうで詰まってしまって律速になって、x264の速度はあんまり関係なかったりすることもある。もちろん、その場合でも2つ同時にエンコードする場合とかには高速化も意味があるだろうけど。
スポンサーサイト