Videos mit GPU Unterstützung konvertieren. Aber Wie?

Jack_Carver

Ensign
Registriert
Nov. 2010
Beiträge
227
Hallo

Es ist ja bekannt, dass Grafikkarten deutlich mehr Rechenleistung haben wie CPU's
(GFLOPS). So kann man auch innerhalb von 10 Minuten einen zweitündigen HD Film konvertieren, habe ich gehört. In meinem Grafikkartentreiber "ATi Catalyst" gibt es unter Video die Funktion "Videokonverter". Diesen habe ich gestartet, da GPU Unterstützung.
Dieser unterstützt jedoch kaum Formate (nicht mal alle Codecs, die angegeben sind).

Gibt es einen Videokonverter, wie z.B.: Nero Vision, der GPU gestützt arbeitet?
 
Zuletzt bearbeitet:
Zum Encodieren ist CUDA völlig ungeeignet.

x264 Entwickler usw bleiben nicht ohne Grund auf CPU Basis. Weil CPU einfach rechenmäßig genauer arbeitet als eine GPU.
 
Nein das ist NICHT bullshit...

x264 nutzt genau aus diesem Grunde kein CUDA.

Glaubste die x264 (beste H.264 Encoder) Entwickler wissen nichts von CUDA bzw GPU Support?

Sie weigern sich allerdings wehement dagegen - weil eben die Qualität darunter leidet.
 
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 :p .

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 :D ! 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.
 
@ Tom Keller
Das ist doch mal eine ordentliche Erklärung - danke!

Ich bleib dann mal bei meinem Xilisoft Ultimate - der befeuert auf jeden Fall alle 4 Kerne und hat Einstellmöglichkeiten ohne Ende und man kann sogar eigene Konvertierungsprofile anlegen.
 
Also ich hab mal nen Benchmark auf CB gelesen (finde den Link aber nicht).
ATi Grafikkarten sind deutlich schneller wie nvidia (wg StreamProzessoren).
Wo ein QuadCore 10 Minuten braucht, benötigt dann eine ATi 5870 nur 40 Sekunden.
Dieser Leistungsunterschied ist schon der Hammer. Das muss doch irgendwie gefördert werden.
Es muss einfach mehr Programme dafür geben!! Ich glaub nicht, dass darunter die Qualität leidet.
Man muss sich nur einen anderen Prozessor vorstellen der halt statt 4 Kerne, 1600 Streamprozessoren hat!
 
Auch von mir danke nochmal.

Ich werde mir den Post von dir notieren, zudem half er auch mir weiter, weil das hab ich nicht gewusst, das es so ist. Von daher, danke^^.

__

Wie Tom Keller dir bereits geschrieben hat, das Encoding via GPU ist im Prinzip langsamer und wird durch beschissenen Encodiereinstellungen ausgeglichen.

Und was Tom Keller schreibt hat eig. Hand und Fuß denn er kennt sich verdammt gut aus in Sachen Video.
 
Kann ich nur bestätigen, die über Avio encodeten Videos sind qualtitativ schlechter, auch wenns schneller bei der Umrechnung ging.
ATI GPU Encoder gibts hier ATIXCoder Gpu
 
Also der ATi Catalyst Video Konverter ist für den Müll.
Probiers jetzt mal mit Cyberlink Media Espresso.
Danke an euch alle für eure Unterstützung.
 
Die Hinweise darauf, das die Qualität sehr gedrückt wird, damit der Geschwindigkeitszuwachs vorgegaukelt wird, scheint dem Threadersteller nicht zu interessieren.
 
Es gibt ja auch Fälle, wo die super Videoqualität keine übergeordnete Rolle spielt!
Wenn ich mir z.B. Trailer zum Anschauen auf meinem iPhone konvertiere, dann nehme ich dazu CUDA. Am liebsten Badaboom oder MediaCoder. Auf dem Display von meinem iPhone bemerke ich die schlechtere Qualität nicht wirklich und mit einem gelegentliches Rauschen/Verpixeln kann ich da auch leben. Hier finde ich es einfach super praktisch, dass CUDA viel schneller ist. ;)

Sobald man aber Qualität will, dann führt wie ihr schon gesagt habt kein Weg an einem normalen CPU-Konverter vorbei!
 
Man kann aber auch rein CPU-basierte Encoder auf Geschwindigkeit statt Qualität trimmen (x264 kommt z.B. schon von Haus aus mit einigen Fast- und Ultrafast-Presets), die ähnliche Qualität bei ähnlicher Geschwindigkeit bieten, wie eben die GPU-basierten Encoder...
 
Das ist maßgeblich PureVideo HD und nicht CUDA.

Außerdem müsste man nochmal genauer nachlesen. DGMPGDec ist unter GPL veröffentlicht...
 
powerfx schrieb:
Außerdem müsste man nochmal genauer nachlesen. DGMPGDec ist unter GPL veröffentlicht...
da steht DGDecNV AVC/MPG/VC1 Decoder and Frame Server, der kann alle wichtigen formate und nicht nur mpeg und unter gpl läuft das ding auch nicht, kostet $15.00.;)

mfg:)

p.s.: TMPGEnc Video Mastering Works 5 (auf Deutsch) wurde veröffentlicht: http://tmpgenc.pegasys-inc.com/de/press/11_0314.html
 
Zuletzt bearbeitet:
Zurück
Oben