DirectX 12: API für H.264/265-Enkodierung für Intel- und Nivdia-GPUs verfügbar

PCGH-Redaktion

Kommentar-System
Teammitglied
Jetzt ist Ihre Meinung gefragt zu DirectX 12: API für H.264/265-Enkodierung für Intel- und Nivdia-GPUs verfügbar

DirectX 12 wurde um eine neue API ergänzt. Diese ermöglicht GPU-Beschleunigung bei der Enkodierung der Video-Codecs H.264 und HEVC (H.265). Support gibt es zunächst allerdings lediglich für GPUs von Intel und Nvidia sowie begrenzt auf ausgewählte Produktreihen der Hersteller. AMD bleibt noch außen vor, soll aber nach aktueller Schätzung ab dem zweiten Quartal 2022 bedient werden.

Bitte beachten Sie: Der Kommentarbereich wird gemäß der Forenregeln moderiert. Allgemeine Fragen und Kritik zu Online-Artikeln von PC Games Hardware sind im Feedback-Unterforum zu veröffentlichen und nicht im Kommentarthread zu einer News. Dort werden sie ohne Nachfragen entfernt.

Zurück zum Artikel: DirectX 12: API für H.264/265-Enkodierung für Intel- und Nivdia-GPUs verfügbar
 
AMD bleibt noch außen vor, soll aber nach aktueller Schätzung ab dem zweiten Quartal 2022 bedient werden.
Ein weiterer "A**hole Move" von Microsoft gegen AMD.

Warum man eine API auf bestimmte Hersteller zuschneidet und nicht Herstellerübergreifend baut,
und stattdessen die Hersteller ihre Treiber anpassen lässt verstehe ich sowieso nicht.

Nach XBox360, Win11, AoE 4, jetzt noch DX12. Ich verstehe das Verhalten von Microsoft ggü. AMD nicht.
Umso weniger da ihre XBox ja auch auf AMD Hardware baut.

Also ich als AMD wäre von Microsofts Verhalten halt langsam echt angepisst...
 
Und wo bekommt man das neue DirectX12? Link zu einem Download wäre nicht verkehrt oder ist das im jeweiligen Treiber z. B. von Nvidia integriert?
 
Ein weiterer "A**hole Move" von Microsoft gegen AMD.

Warum man eine API auf bestimmte Hersteller zuschneidet und nicht Herstellerübergreifend baut,
und stattdessen die Hersteller ihre Treiber anpassen lässt verstehe ich sowieso nicht.

Nach XBox360, Win11, AoE 4, jetzt noch DX12. Ich verstehe das Verhalten von Microsoft ggü. AMD nicht.
Umso weniger da ihre XBox ja auch auf AMD Hardware baut.

Also ich als AMD wäre von Microsofts Verhalten halt langsam echt angepisst...

Man kennt hier die Hintergründe nicht, eine neue API muss vom Treiber unterstützt werden damit sie überhaupt angesprochen werden kann. "Herstellerübergreifend" sind APIs nie, jeder Hersteller muss seine Software anpassen damit diese die neue Schnittstelle ansprechen kann. Von allein zaubert sich da nichts in den Code.

Es könnte genau so gut sein dass AMD beim Treiber einfach mehr Zeit braucht, wäre nicht das erste Mal. Nvidia und Intel haben in dem Bereich anscheinend auch deutlich mehr Personal.
 
EDIT: Mittlerweile hat sich herausgestellt, dass es keine GPGPU-Lösung ist, sondern die Hardwareeinheiten durchgeschleift werden. Ich lasse das Posting aber zu Gunsten der Nachvollziehbarkeit stehen.

Erinnert hier sich noch wer daran, wie vor etwa fünfzehn Jahren GPGPU als das nächste große Ding für Privatanwender angepriesen wurde? Was würden wir nicht alles für Anwendungen in Zukunft auch über die GPU laufen lassen und unfassbare Geschwindigkeitsboosts erleben. Tja, geworden ist daraus echt wenig --- vielleicht ja jetzt über diesen bzw. einen verwandten Weg.
Sorry, aber mein Kaffee will gerade nicht wirken. Wo liegt nun der Unterschied zu NVENC ?
Hier geht es um GPGPU, also Berechnung auf allen Einheiten, die die GPU mit sich bringt. Entsprechend ist das Ganze nicht auf die spezifischen Eigenheiten der festverdrahteten Schaltungen limitiert, sondern kann quasi beliebige Settings fahren.

EDIT: Mittlerweile hat sich herausgestellt, dass es keine GPGPU-Lösung ist, sondern die Hardwareeinheiten durchgeschleift werden. Ich lasse das Posting aber zu Gunsten der Nachvollziehbarkeit stehen.
 
Zuletzt bearbeitet:
Microsoft, die schnelle Eingreiftruppe. Schön das ihr uns jetzt das bringt, was nvidia und co uns schon seit Jahren bzw Jahrzehnten bieten. Das ganze natürlich als Windows 11 exklusiv Feature :).
 
Sorry, aber mein Kaffee will gerade nicht wirken. Wo liegt nun der Unterschied zu NVENC ?

NVENC = AVC und HEVC von Nvidia umgesetzt.
h264 und h265 sind alternative Namen für AVC und HEVC


AVC und dessen Nachfolger HEVEC sind die Namen Endodierungs-Standards. Im Wesentlichen ein Konglomerat an Forschung die ihre Patente bündeln (zur MPEG Licencing Administration LLC) und am Ende steht da ein Prinzip von dem man sagen kann, so wird Video encodiert, so funktioniert das, so reduziert das Datenrate.

Jetzt muss man das halt in konkrete Produkte verwandeln.
Bei AVC gibt es dann kommerzielle Produkte wie Quicktime auf dem Mac, oder Main Concept, oder Nero. Aber es gibt auch freie Umsetzungen wie x264, nicht zu verwechseln mit h.264 (der Name des Standards). Der Teufel bei diesen ganzen Versionen, der von Nvidia eingeschlossen steckt im Detail).

Denn AVC hat irrsinnig viele Features, man kann sich das vorstellen wie 3D Features in DirectX. Nicht jeder Hersteller einer AVC Umsetzung unterstützt alle Features die h264 bietet. 4:4:4 Farbraum in Quicktime AVC? Vergiss es. Je weniger die Umsetzung kann, umso besser performt sie meist. Ist halt wie beim Raytracing, wenn man es weglässt als Hersteller kommen schon mal mehr fps raus. Deswegen benutzt man lieber den offenen x264 Encoder statt dem NVENC auch wenn letzterer schneller ist.

auf AVC h264 folgt HEVC h265 und das gleiche Spiel wiederholt sich. Damit es wirklich unübersichtlich wird wirft Nvidia für ihr Produkt NVENC einfach AVC und HEVC in einen Topf und tut so als könnte man beides, im Encoder der Leute taucht aber nur der h264 Encoder auf, nicht der h265 Encoder. Danke für nix Nvidia, HVEC Decodieren hätte ich auch so gekonnt, alt genug ist der Standard.

Natürlich soll jetzt auch VVC, oder h266 kommen, vor allem wegen 8k oder so, aber von einer Integration in Mainstream Hardware und Windows bei voller Unterstützung aller Features sind wir noch ein Stück. Codec Enthusiasten können sich hier austoben (https://github.com/fraunhoferhhi/vvenc)

Konkurrent von h264 und h265 ist der von Google befeuerte Standard VP8 und VP9 (und dessen Nachfolger AV1). Die haben oben im Text auch Konglomerat an Forschung die Patente bündeln gelesen und sich zurecht gedacht, Mensch das wird teuer mit Youtube, lass uns mal unser eigenes Ding machen..

Deswegen sehen Videos die man auf Youtube lädt auch immer schlechter aus. Nicht dass VP8 oder VP9 schlechter wären, das sind sie nicht. Aber man jagt sein Video erst lokal durch eine verlustbehaftete Komprimierung und das meist nach h265 oder h265 und anschließend jagt Youtube das Video durch seine verlustbehaftete Komprimierung und damit hat man das schlechteste aus beiden Welten in einem Video vereint.

Mit dem Wissen formulieren wir die News mal um.
Microsoft pusht also zwei Standards, die schon etwas angegraut sind, weil bei den Streaming Anbietern (Netflix, Amazon, Disney und wie sie alle heißen) gerade die Entscheidung ansteht was man denn nun langfristig für 4k Streaming einsetzt. Irgendeine HEVC Implementierung (=Lizenzkosten) oder das von Google (und Amazon und Netflix) gepushte VP9 und dessen Nachfolger (=Entwicklungskosten). Aktuell muss man beides benutzen, einfach weil noch nicht so viel AV1 kompatible Hardware in den TVs (Smartphones, etc) verbaut wurde und 4k TVs bisher aber sehr wohl HEVC unterstützt haben, einfach weil das verfügbar war. Jeder würde es aber bevorzugen, wenn alle Hardware AV1 unterstützt.

Während h266 noch in den Kinderschuhen steckt, ist der direkte Konkurrent AV1 schon weiter. Kurzum die MPEG Licencing Administration LLC kann damit rechnen, dass ihr Geschäftsmodell zerbricht wenn jeder von AVC oder HEVC rüber zu AV1 wechselt. Denn dafür drückt man keine Kohle an MPEG ab. Alle Zeichen stehen auf AV1.

Hardwareunterstützung für AV1 haben am PC aktuell nur 11.Gen Intel, RDNA2 und RTX30. Dennoch wirkt es relativ rückständig wenn jetzt gegen Ende des kommerziellen Lebens von h265 plötzlich die Encoderbeschleunigung per API kommt. Es wird ja locker 8 Jahre dauern bis jeder einfach alle Hardware die AV1 nicht direkt unterstützt einfach von der Platform wirft. Da will man von HEVC wohl noch mitnehmen was geht.
 
Ich glaube für Streamer ist das interessant. Von Nvidia gibt es ja den H264 Codec speziell für OBS. Dann wird die Berechnung auf der Grafikkarte statt auf der CPU durchgeführt. Ich glaube dafür werden dann die CUDA Einheiten verwendet.
 
Ein weiterer "A**hole Move" von Microsoft gegen AMD.

Warum man eine API auf bestimmte Hersteller zuschneidet und nicht Herstellerübergreifend baut,
und stattdessen die Hersteller ihre Treiber anpassen lässt verstehe ich sowieso nicht.

Nach XBox360, Win11, AoE 4, jetzt noch DX12. Ich verstehe das Verhalten von Microsoft ggü. AMD nicht.
Umso weniger da ihre XBox ja auch auf AMD Hardware baut.

Also ich als AMD wäre von Microsofts Verhalten halt langsam echt angepisst...
Ein Schelm, wer böses denkt.
Genau das kam mir auch in den Sinn.
Sympathetischer wird mir Microsoft dadurch jedenfalls nicht.
 
Ein weiterer "A**hole Move" von Microsoft gegen AMD.

Warum man eine API auf bestimmte Hersteller zuschneidet und nicht Herstellerübergreifend baut,
und stattdessen die Hersteller ihre Treiber anpassen lässt verstehe ich sowieso nicht.

Nach XBox360, Win11, AoE 4, jetzt noch DX12. Ich verstehe das Verhalten von Microsoft ggü. AMD nicht.
Umso weniger da ihre XBox ja auch auf AMD Hardware baut.

Also ich als AMD wäre von Microsofts Verhalten halt langsam echt angepisst...

DirectX wird von Microsoft 'gemeinsam' mit den Herstellern wie AMD, Intel, Nvidia... entwickelt (jep, die sitzen auch öfter alle gemeinsam an einem Tisch und denken sich Zeug aus) und genau diese Hersteller müssen logischerweise für ihre Hardware die geeigneten Schnittstellen zur Verfügung stellen.

Das AMD hier permanent hinterherhinkt und auch warum ist kein Geheimnis. Und genauso wenig ist es ein Geheimnis, dass z. B. Intel oder gar Nvidia mit seiner Armee von Programmierern hier eindeutig im Vorteil sind (einmal ganz abgesehen von AMD's vergleichsweise schwachem Encoder...).

Also eigentlich, falls man überhaupt sich wegen so etwas angepisst fühlen möchte, dann von AMD :P.
 
Mit dem Wissen formulieren wir die News mal um.
Microsoft pusht also zwei Standards, die schon etwas angegraut sind, weil bei den Streaming Anbietern (Netflix, Amazon, Disney und wie sie alle heißen) gerade die Entscheidung ansteht was man denn nun langfristig für 4k Streaming einsetzt. Irgendeine HEVC Implementierung (=Lizenzkosten) oder das von Google (und Amazon und Netflix) gepushte VP9 und dessen Nachfolger (=Entwicklungskosten). Aktuell muss man beides benutzen, einfach weil noch nicht so viel AV1 kompatible Hardware in den TVs (Smartphones, etc) verbaut wurde und 4k TVs bisher aber sehr wohl HEVC unterstützt haben, einfach weil das verfügbar war. Jeder würde es aber bevorzugen, wenn alle Hardware AV1 unterstützt.
Bis hierhin ein Top-Beitrag. Doch was soll der Schwenk rüber zu den Film- und Serienstreaming-Anbietern? Es geht hier ja gerade darum, Endkonsumenten (mittelbar vielleicht auch über GameDevs, direkt in die Spiele integriert?) mehr Endoding, nicht Decodingmöglichkeiten zur Verfügung zu stellen. Endkonsumenten encoden aber nicht für die Film- und Serienstreaminganbieter... :ugly:
 
Bis hierhin ein Top-Beitrag. Doch was soll der Schwenk rüber zu den Film- und Serienstreaming-Anbietern? Es geht hier ja gerade darum, Endkonsumenten (mittelbar vielleicht auch über GameDevs, direkt in die Spiele integriert?) mehr Endoding, nicht Decodingmöglichkeiten zur Verfügung zu stellen. Endkonsumenten encoden aber nicht für die Film- und Serienstreaminganbieter... :ugly:

Google, Amazon, Netflix und Disney haben schon etwas mehr Einfluss wohin die Reise beim Streaming geht als Microsoft, EA, Activision und Ubisoft.

Wer jetzt zu Hause encodiert macht das für Twitch, Youtube, TikTok oder ähnliches. Da wäre es aber nicht wichtig eine API zu haben damit der Software Hersteller das capturen kann was man eh schon mit OBS captured. Es wäre besser den Quantisierer der Zielplattform abzubilden. Der Quantisierer ist der Teil, der von der Eingangsinformation alle Sachen wegschneidet die man als Zuschauer "eh nicht sieht". Dabei folgen aber AV1 und HEVC unterschiedlichen Ansätzen. Durch einen Quantisierer jagen, kein Problem. Zweimal durch den gleichen Quantisierer jagen auch weniger ein Problem, solange der zweite Durchlauf eine niedrigere Bitrate als der erste Durchgang hat (vgl. Bildqualität einer Bluray vs einem Re-Encoding aus dem Internet, gut genug, oder?).

Aber erst duch einen HEVC Quantisierer jagen und anschließend durch den AV1 Quantisierer ist ein böses Foul. Das ist aber trotzdem was jeder jeden Tag macht. OBS x264 oder NVENC capture und dann ab auf Twitch zum AV1 konverter, der das Resultat davon dann weiter über HEVC runterbricht. Die Römer haben Leute für weniger zu den Löwen in die Arena geschickt. Selbst Digital Foundry macht das und verweist in den Videos dann darauf, dass der Youtube Re-Encoder (diesmal dank Quantisierer und seiner erbärmlichen Bitrate obendrauf) die Unterschiede beim Pixelvergleich FSR vs. DLSS gefressen hat (und deren Hausaufgaben).

Ein Signal erst durch den HEVC und dann den AVC Quantisierer zu jagen ist auch nicht so prall, oder will zumindest gelernt sein, wenn man HDR richtig in SDR konvertieren will und verhindern will, dass zu viel Brei entsteht. Der PayTV Sender Sky kommt da als Negativbeispiel in den Sinn. Wer seinen TV nicht auf Sky kalibriert der sieht dort nur Bronzestatuen in Neonfarbenen Trikots über den Rasen laufen. Und bei der Formel 1 darf man dann wieder zurückstellen, denn das Signal wird nicht von Sky produziert und siehe da es hat Referenzqualität (und Geheule der moderatoren im 10 Minuten Abstand, dass man die Wiederholung nicht von der eigenen Regie einblenden kann).

Wer also für AV1, sprich Amazon Twitch und Youtube encodiert, dem hilft es wenig wenn jeder Spielehersteller die API benutzt und das Signal durch den HEVC Quantisierer jagt. Aber es ist leider so, dass Microsoft hier lieber etwas haben möchte, das sie an 80% der Masse verkaufen können die meint sie würde das brauchen, einmal im Leben draufdrückt und dann hätten die eh kein Auge für den Pixelbrei der da rauskommt.

Endkunden encodieren vielleicht nicht für Netflix, aber für Twitch und Youtube. Da bin ich halt der Meinung, wenn man etwas macht, könnte man es richtig machen. Im bezug auf Microsoft wäre das keine API die etwas in HEVC ausspuckt, das eh bald veraltet ist, sondern eine API die den Framebuffer and den Quantisierer der Wahl und den Encoder dahinter bereitstellt. Revisionen, Revisionen würde ich da sagen.
 
Und warum gehen dann nur Intel + Nvidia?
Weil AMD die Treiber noch nicht fertig hat?

Weisst Du was eine API ist? Die Abkürzung steht für "Application Programming Interface", heißt es wird nur eine Schnittstelle angeboten. Wie und ob diese Schnittstelle benutzt wird, das liegt in der Hand der Software. Und die GPU Treiber Software schreibt bestimmt nicht Microsoft für Intel / NV / AMD. ;-)
 
Zurück