Der Hauptunterschied ist der Compiler, der zum Kompilieren von ffdshow.ax verwendet wird. Es werden vier verschiedene Compiler verwendet: MSVC71, MSVC80, GCC und ICL10.
Die CPU-Anforderungen für die Builds sind wie folgt:
- Generische Builds benötigen einen Pentium-MMX/AMD K6 oder neuer.
- ICL10-Builds benötigen einen Pentium III/Athlon XP oder neuer (SSE erforderlich).
- Experimentelle x64-Builds funktionieren unter Windows XP/Vista x64 Edition in 64bit-Mediaplayern. Installieren Sie die regulären 32bit-Builds unter diesen 64bit-Systemen um es mit 32bit-Mediaplayern zu verwenden.
Alle Builder verwenden den GCC-Compiler um libavcodec, welches ffdshows Hauptbibliothek zum Dekodieren ist, zu erstellen. Diese Bibliothek enthält eine Menge handoptimierten Assembler-Codes, welcher automatisch die von der CPU unterstützten Eigenschaften und Befehlssätze erkennt. Die Verwendung zusätzlicher Compileroptimierungen oder erweiterter Befehlssätze (wie SSE/SSE2) resultiert in keinem signifikanten oder spürbaren Geschwindigkeitszuwachs. Wenn also die reine Dekodiergeschwindigkeit verglichen wird, gibt es nahezu keinen Unterschied zwischen den Builds.
Optimierte Builds von ffdshow.ax haben Auswirkungen auf die Geschwindigkeit, wenn bestimmte Filter in ffdshow verwendet werden.
Unterhalb befindet sich eine Liste von - bis jetzt getesteten - Filtern, die von Optimierungen profitieren:
Das folgende Diagramm stellt die möglichen Zuwächse in der Dekodiergeschwindigkeit, wenn optimierte Builds und Filter verwendet werden, dar:

Testsystem: Pentium 4 2.8GHz (Northwood), Windows XP SP2, Null Renderer verwendet
Testbeispiel: Madagascar.avi (DX50)
Zusammenfassend:
- Wird ohne Filter anzuwenden dekodiert, sind die Ergebnisse nicht zu unterscheiden. Alle Builds bewegen sich innerhalb von 2%.
- Das ICL9-(SSE)-Build zeigte sich als das Schnellste, wenn der xsharpen-Filter verwendet wird. Die Dekodierleistung liegt 88% über den generischen MSVC-Builds.
- SSE2-optimierte Builds zeigten keinerlei Verbesserung gegenüber SSE-Builds.
- GCC-SSE-Builds (nicht im Diagramm dargestellt) geben ebenfalls einen ansehnlichen Geschwindigkeitszuwachs.
- Allerdings unterscheiden sich die Zuwächse gegenüber den generischen Builds von System zu System. Es wird empfohlen die Builds auf dem eigenen System zu testen.
Zu Testzwecken wird Haalis timeCodec.exe [96KB] benötigt. Damit timeCodec.exe funktioniert, ist Haali Media Splitter Voraussetzung.
MSVC-Builds von ffdshow.ax sind vermutlich die stabilsten, allerdings sind auch keine Fehler in GCC-Builds bekannt. Von der Stabilität betrachtet, spielt das Build also keine Rolle.
Die folgende Liste gibt eine Übersicht der Teile ffdshows, die multithreaded sind und somit Verbesserungen zeigen, wenn sie auf einem Multicore-System ausgeführt werden:
- Der Größenänderungsfilter ist vollständig multithreaded. Er ist auf Dualcore-Systemen schneller (auf Pentium 4 HT-CPUs ineffektiv) und benötigt hierfür keinerlei Konfiguration.
- Der Xvid-Enkoder ist multithreaded.
- Der x264-Enkoder ist multithreaded.
- Ist "Queue & misc" -> "Queue output samples" markiert, wird Beschleunigung durch Multicoreunterstützung aktiviert, von dessen positivem Effekt man unter Umständen selbst auf einem Singlecore-CPU profitieren kann.
- libavcodecs MPEG1/2-Dekoder sind multithreaded. Es wird effektiv, wenn "Decoder options" -> "Number of decoding threads" auf die Zahl der vorhandenen Prozessorkerne gesetzt wird. Diese Einstellung hat keinen Effekt auf Pentium-4-HT-CPUs.
- libavcodecs MPEG4/MPEG2/MPEG1-Encoder sind multithreaded.