Seitdem Intel mit QuickSync dedizierte Hardware für das Dekodieren von Video eingeführt hat, hat sich mir die Frage gestellt, was das für Video Editing in Final Cut Pro bedeutet, im besonderen mit den AMD Grafikkarten ab Polaris.
Nachdem ich viel im Netz gesucht habe, ohne eine klare Antwort zu finden, habe ich mal einen kleinen Selbstversuch gestartet.
Dabei haben mich vor allem zwei Dinge interessiert:
- Nutzt FCPX (10.4.8) eigentlich das volle Potenzial meiner Grafikkarten AMD RX-570 ? Schliesslich wurde die Grafik-Engine gerade auf Metal umgestellt
- Kann ich mit meinem betagten System noch halbwegs vernünftig in 4K arbeiten ?
Da ich Videos nur als Hobby betreibe, war mir zunächst wichtig, mal die Grenzen des vernünftigen Arbeitens auszuloten.
Daher habe ich mal folgendes Projekt in FCPX 10.4.8 unter macOS 10.15.6 aufgesetzt, welches nur Clips mit h.264 und h.265 nach dem Import beinhaltet und einige Effekte.
Hauptakteure in diesem Versuch sind die IvyBridge CPU i5-3570K mit 4,3GHz und 16GB RAM und die Sapphire RX-570 Nitro+ mit 4GB RAM (angebunden über 8 PCI3.0 Lanes des Prozessors)
Die Mediendaten werden von einer Samsung 970-EVO SSD gelesen und auch dorthin geschrieben. Sie ist über PCI3.0 mit 4 Lanes direkt an den Prozessor angebunden und liefert mehr als ausreichend Bandbreite.
Gemessen habe ich jeweils die Last beim Abspielen des Projektes im Viewer. Dabei sei noch zu sagen, dass ich das Background Rendering abgeschaltet habe, um das Rendern während des Abspielens von der Graphikkarten zu erzwingen.
Ich habe dann in zwei Stufen zunächst den langen Basisclip in ProRes transkodiert (create optimized media) und dann auch den ersten Clip in der Mitte.
Alle Daten habe ich in der folgenden Tabelle zusammengefasst.
Zunächst werden die Original-Clips mit dem Hardware Decoder der RX-570 dekodiert, was ich mit AMD GPU Menue überprüft habe. Das erklärt auch die relativ niedrige Last auf der CPU.
Man sieht ebenfalls sehr schön, dass mit der steigenden Komplexität die Last der RX-570 für das Rendern hochgeht.
Die Überraschung kam dann im Schritt 2. Mit dem Vorhandensein von ProRes "optimized media" für den Basis Clip steigt die CPU Last an. Die Last auf der RX-570 sinkt nur geringfügig.
Noch deutlicher wird der Effekt, wenn auch der mittlere Clip eine ProRes Version im Projekt hat.
Man sieht ebenfalls, dass der Clip mit doppelter Bildrate und 10Bit keinen Einbruch erzeugt, sowohl der Hardware-Decoder als auch ProRes scheinen da sehr effizient zu sein.
Als Referenz habe ich dann mal das ganze Projekt offline gerendert und siehe da, jetzt hat wie erwartet praktisch nur noch die CPU zu tun - dekodieren der gerederten ProRes Caches.
In der Grafik, die nur fokussiert auf die Phasen A, B und C erstellt wurde, wird das nochmal deutlicher.
Beim Offline-Rendern läuft übrigens sowohl der i5-3570K als auch die RX-570 auf praktisch 100%, inkl hardware decoder - so toll es sein.
Hardware encoding funktioniert übrigens auch, allerdings habe ich noch keine Qualitätsvergleiche angestellt und da ich das offline Rendering auch zur Not über Nacht laufen lassen kann, habe ich mir die Zeit für Benchmarks hier mal gespart.
Das Fazit für mich ist nun, dass der Einbau einer potenten Grafikkarte die Schwäche meines in die Jahre gekommenen Prozessors für den Videoschnitt zu einem ausreichende Grad kompensieren kann und dass "optimized media" in Form von ProRes mit potentestem Hardware-Dekoder eher kontraproduktiv zu sein scheint. Das gilt zumindest für die Performance beim Editieren. Da meine Videoquellen aber ohnehin kein ProRes oder Raw Format erzeugen, ergibt sich auch kein zusätzlicher Qualitätsverlust.
Vermutlich sieht das Ganze anders aus, wenn man noch intensiver Filter und Effekte einsetzt oder gar Color Grading anwirft, bei dem dann praktisch jeder einzelne Frame durch die Mangel gedreht wird.
Ich für meinen Teil bin erstmal zufrieden und kann vermutlich noch ein bisschen mit meinem System leben.