Das hat aber nichts mit der Rechengenauigkeit zu tun
. Fakt ist: die Streamprozessoren einer Grafikkarte (die ja beim Videoencoding per GPU zum Einsatz kommen) arbeiten nicht "ungenauer" als eine stinknormale CPU. Wäre ja auch schlimm, wenn das der Fall wäre - dann gäb's ja bei Spielen ständig Darstellungsfehler
.
Fakt ist aber auch: Streamprozessoren ziehen ihre enorme Rechenleistung aus dem Zusammenschluss aller vorhandenen Recheneinheiten. Das aber wiederum bedeutet: vor allem viele parallel durchführbare Berechnungen profitieren von ihrer Ausführung auf Streamprozessoren. Pixel-Shader-Effekte sind ein gutes Beispiel dafür: da muss für jeden Pixel ein bestimmter Farbwert berechnet werden - zig Pixel = zig parallel durchzuführende Berechnungen = PERFEKT für Streamprozessoren!
Videoencoding ist aber nur begrenzt parallelisierbar. Das ist auch ganz logisch: ein Großteil der Schritte
MUSS einfach nacheinander ausgeführt werden. Man stelle sich dafür einfach mal zwanzig Köche vor, die einen einzigen Kuchen backen. Die werden kaum bis gar nicht schneller als zwei Köche arbeiten - einfach weil die meisten Schritte nacheinander ausgeführt werden müssen (man kann ja den Teig nicht in den Ofen schieben, BEVOR er angerührt wurde
)... was in der Praxis bedeutet: 1-2 Köche machen etwas, während die anderen 18-19 Köche darauf warten müssen, dass diese 1-2 Köche fertig werden.
Und genauso sieht es bei Streamprozessoren und Videoencoding aus: einige wenige Streamprozessoren werden genutzt, während die restlichen auf das Ergebnis dieser Berechnungen warten müssen, um es dann weiter zu verarbeiten.
Hinzu kommt, dass die Daten zur Berechnung per Streamprozessoren ständig vom Hauptspeicher in's Grafik-RAM und zur Verifizierung nach der Berechnung wieder in den Hauptspeicher geladen werden müssen. Im Gegensatz zu CPUs, die üblicherweise eine direkte und flotte Speicheranbindung zum Hauptspeicher besitzen, ist das ein vergleichsweise gigantischer Umweg, der einiges an Zeit kostet.
Lange Rede - kurzer Sinn:
Videoencoding per GPU ist laaaaangsaaaam ! Da sich das aber schlecht in diversen Marketingversprechungen lesen würde, erkaufen sich alle GPU-basierten Encoder den Geschwindigkeitsvorteil durch eine schlechtere Encodingqualität - sprich: durch eingeschränkte Bewegungssuche, weniger Reference-Frames u.ä. "Kleinigkeiten" scheinen(!) solche Encoder recht flott zu arbeiten - können aber von einem Software-Encoder leicht geschlagen werden, wenn man ihn ähnlich moderat konfiguriert.