主な違いはffdshow.ax をコンパイルするのに使用されたコンパイラです。現在4つのコンパイラが使用されています。MSVC71(Microsoft Visual C++ 7.1), MSVC80, GCC と ICL10です。
それぞれに対して必要なCPUは以下のとおりです。
- generic buildsはPentium-MMX/AMD K6以降で使用可能です。
- ICL10 buildsはPentium III/Athlon XP以降のCPU(SSE対応)が必要です。
- experimental x64は64bit CPUとWindows XP/Vistaのx64 Editionが必要です。低速ですしまだ不具合もあると思います。なおこれらの64bit OSに32bit版をインストールすることも出来ます。
どのビルダーもffdshowの主力デコーダであるlibavcodec はGCCを使ってコンパイルしています。libavcodec はCPUのサポートする命令セット(SSE/SSE2など)を自動検出し利用できるアセンブラで書かれたコードをたくさん持っています。コンパイラによる最適化の余地はほとんどないと言えます。したがって純粋なデコーダとしての性能を比較した場合ビルドによる違いはありません。
ffdshow.ax を最適化したビルドはある種のフィルタを使用する場合パフォーマンスに違いが見られます。
下のリストは最適化によってメリットが得られるフィルタです。
次のグラフは画像処理フィルタを使用したときに最適化されたビルドでパフォーマンスの改善が見られることを示します。

Test setup: Pentium 4 2.8GHz (Northwood), Windows XP SP2, null renderer使用
Test sample: Madagascar.avi (DX50)
まとめ
- 画像処理フィルタを使用しない場合、ほとんど差がありません。
- ICL9 (SSE) ビルドはxsharpen使用時には最速であることが証明されました。MSVCビルドと比較して88%の高速化がなされています。
- SSE2ビルドはSSEビルドに対する優位性を証明できませんでした。
- グラフには示していませんが、GCCによるSSEビルドもまた良好な性能を示しました。
- 改善の程度はPCによって異なりますので理想的には御自身のシステムでテストされると良いでしょう。
ベンチマークにはHaaliのtimeCodec.exe[96KB] を使用します。timeCodec.exeが動作するためには Haali Media Splitter が必要です。
多分generic buildsが最も安定しています。しかしGCC,ICLによるビルドに既知の問題はありません。したがって安定性の面ではどのビルドを使ってもよいと言えるでしょう。
- リサイズは完全にマルチスレッド化されておりデュアルコアCPUなどでより高速に処理されます(設定不要)。ただしPentium4 HTでは効果がありません。
- xvidエンコーダはマルチスレッドに対応しています。
- x264エンコーダはマルチスレッドに対応しています。
- 「キュー、その他」の「出力サンプルをキューに入れる」をチェックするとマルチスレッド処理を使った高速化がなされます。シングルCPUでも効果が得られる場合があります。
- libavcodecのmpeg1/2デコーダはマルチスレッド対応しており、「デコーダーオプション」のスレッド数を設定することで高速化されます。Pentium4 HTでは効果が見られません。
- libavcodecのMPEG4/MPEG2/MPEG1エンコーダはマルチスレッドに対応しています 。