AW: Nvidia Turing: Höhere Qualität beim Spiele-Livestreaming mit OBS
Immerhin tun sie noch was für die Gamer u Streamer , ....*Sinnloser Hate*...., und bei den Decodern wie hier auch tote Hose, ...*wieder Sinnloser Hate*....
Der Polaris HW Encoder / Decoder (VCE 3.4) und alle nachfolgenden AMD GPU's können h.264 & h.265/HEVC Main10 [4]. Dies konnte bis zu diesem Zeitpunkt nur der GM206 Chip [1][2], der Rest der Maxwell Serie hingegen nicht. Erst mit Pascal Serie (welche nach der Polaris Karte erschien) unterstütze dies Nvidia auch. Die Nvidia "Video Encode and Decode GPU Support Matrix" zeigt das ganz schön[3]. Um Maxvell v2 zu sehen muss man unten alle Grafikkarten anzeigen
AMD Tonga (2014) konnte auch schon HEVC decoding, jedoch noch kein encoding. Das kam wie schon erwähnt erst mit Polaris[4]
AVC/H.264 ist hingegen schon unendlich alt (2003 spezifiziert) und wurde als Serieller Algorithmus ausgearbeitet[5], erst H.265/HEVC bietet Mechanismen wie zB "wavefront parallel processing" für eine MultiCore Optimierte Umgebung[6].
Frage1: gibt es Gaming-Streaming Software, die tatsächlich den x265 bereits einsetzt (streaming, nicht recording) und unterstützt?
Ich habe einen HEVC Streamer entwickelt

Ob du da ein Game oder sonstiges streamst ist meinem Tool völlig egal^^ Ich greife das Bild über die Bitblt Funktion ab und schicke es anschliessen an meinen Streamer (winGDI [9] und winUser header[10]). Eingesetzt wurden sowohl CPU (x265 [7]) als auch GPU (AMF [8]) Implementationen.
x265 (CPU) nutzt schön alle verfügbaren Kerne aus, für die RGB zu YUV420 (Convert & Chroma Subsampling) Konvertierung nutze ich einen eigenen OpenCL oder CPU Algorithmus. Wenn hier die GPU nichts zu tun hat, ist die OpenCL Variante natürlich viel schneller als wenn ein Game läuft.
AMF hingegen benutze ich mit einer RX580 oder meinem Kaby Lake G Notebook. Da muss die CPU nicht mehr so viel übernehmen und ich bin bei ~10% CPU last bei einem 4K60Hz Stream

Ist schön anzusehen, dass ein Notebook das locker stemmt, ist ja keine kleine Datenmenge
Ende zu Ende in einem Lokalen Netzt hatte ich dann (meiner Messung nach) gute 43ms delay

Assassins Creed Origins lief auf dem Ipad
Nun zur eigentlichen Frage von allen, die bis hier hin gelesen haben

Wie sieht es mit der Qualität aus? Kurz: x265 sieht definitiv besser aus, als die AMD HW Implementation. Noch dazu habe ich festgestellt, dass irgendwas in der Fixed Function schwingt^^ ich werde dem noch nachgehen

Wieso haben wir uns aber dafür entschieden, auf AMD statt auf Nvidia zu setzen?
1. GPUOpen --> Open Source code ist immer besser^^
2. Hatte per Zufall einen Kaby Lage G im Notebook und eine 1080ti im PC. Die AMD Implementation war aber jedoch mit dem GPUOpen Code so schnell fertig und erfüllte den Zweck, weshalb ich mir gar nicht die Mühe gemacht habe NVENC zu implementieren. Hole ich eventuell noch nach

.
Nvidia hat ja Mitte letzten Jahres auch Beispielcode auf Github geladen[11]. Mein Projekt war da leider schon beendet. Da wir aber mehrere Turing GPU's hier haben, wäre es noch spannend zu sehen ob auch die HEVC Qualität gesteigert wurde
Quellen:
[1]
https://forums.geforce.com/default/topic/998393/hvec-h-265-hardware-decoding-with-980-ti/
[2]
https://forums.geforce.com/default/...-900-series/gtx-960m-hevc-encode-and-decode-/
[3]
Video Encode and Decode GPU Support Matrix | NVIDIA Developer
[4]
Video Coding Engine - Wikipedia
[5]
https://www.h264soft.com/downloads/h264_overview.pdf
[6]
http://iphome.hhi.de/wiegand/assets/pdfs/2012_12_IEEE-HEVC-Overview.pdf
[7]
http://x265.org/
[8]
https://github.com/GPUOpen-LibrariesAndSDKs/AMF
[9]
https://docs.microsoft.com/en-us/windows/desktop/api/wingdi/nf-wingdi-bitblt
[10]
https://docs.microsoft.com/en-us/windows/desktop/api/winuser/
[11]
https://github.com/NVIDIA/NvPipe