2011/10/27

Avisynthビデオ入力プラグインベンチ結果(MPEG2)

Avisynthのビデオ入力プラグイン3種類

・ FFmpegSource (2.16)
・ DirectShowSource + Microsoft DTV-DVD Video Decoder
・ LoadAviUtlInputPlugin +  m2v.vfp (0.7.5)

での1440x1080のm2vファイルの読み込み速度を
avs2pipemod-20110919(Ch's barn
でベンチマークしてみました。数回実行してGOPリスト、インデックス等が作成され、m2vファイルがキャッシュされた状態で測定しています。

テスト環境
・Avisynth 2.58 x86
・Windows 7 x64
・Intel Core i7-860(定格)
・DDR3-1333 Dual Channel

使用したavs
各m2v入力処理
Trim(0,29999)
ConvertToYV12()
return last

結果-benchmarkオプション指定)
FFmpegSource (2.16) 592 fps
DirectShowSource
+
Microsoft DTV-DVD
Video Decoder
148 fps
LoadAviUtlInputPlugin
+
m2v.vfp (0.7.5)
80 fps

FFmpegSource:
今回初めて試してみましたが、非常に速いです。初回読み込み時は*.ffindexファイルが作成されます。

DirectShowSource:
うちの環境では総フレーム数が実際よりも少なく認識されるので使用していません。

m2v.vfp:
初回読み込み時に*.glファイルを作成する設定で使用しています。
LoadAviUtlInputPlugin経由のせいか思ったより遅いですが、80fps出ているのでHDサイズのエンコードではまず律速要因にはならないでしょう。
中途半端に切れたファイルを読ませても問題なくデコードしてくれるので、AvisynthでもAviutlでも常用しています。

最後に
-benchmarkオプションを指定せずに
-rawvideo "test.avs" > nul
としてNULLに出力してみたところ、FFmpegSourceで413fpsまで速度が落ちました。意外に標準入力への書き出しで遅くなるようですね。

今まではavs2yuv+pipebufの組み合わせでエンコードしてきましたが、特に理由がない限りは本家より書き込み用バッファが拡張されているavs2pipe/avs2pipemodを使用するのが良さそうです。

関連記事
MPEG2形式の動画をAvisynthから読み込む方法4種

エンコード関連記事一覧