Nvidia NVENC - Nvidia NVENC
Nvidia NVENC (kurz für Nv idia Enc oder) ist eine Funktion in Nvidia - Grafikkarten , dass führt Video - Encoding , Offloading diese rechenintensive Aufgabe von der CPU auf einen dedizierten Teil der GPU . Es wurde im März 2012 mit der Kepler- basierten GeForce 600-Serie eingeführt .
Der Encoder wird von vielen Livestreaming- und Aufnahmeprogrammen wie vMix , Wirecast , Open Broadcaster Software (OBS) und Bandicam sowie Videobearbeitungs-Apps wie Adobe Premiere Pro oder DaVinci Resolve unterstützt . Es funktioniert auch mit Share Game Capture, das in Nvidias GeForce Experience-Software enthalten ist.
GeForce- Grafikkarten für Verbraucher unterstützen offiziell nicht mehr als 3 gleichzeitige Codierung von Videostreams, unabhängig von der Anzahl der installierten Karten. Diese Einschränkung kann jedoch auf Linux- und Windows- Systemen durch Anwenden eines inoffiziellen Patches auf die Treiber umgangen werden . Dadurch wird auch NVIDIA Frame Buffer Capture (NVFBC) freigeschaltet , eine schnelle Desktop-Capture- API , die die Fähigkeiten der GPU und ihres Treibers nutzt , um die Erfassung zu beschleunigen. Professionelle Karten unterstützen je nach Kartenmodell und Komprimierungsqualität zwischen 3 und uneingeschränkt gleichzeitige Streams pro Karte.
Nvidia Chips verfügen auch über einen Onboard - Decoder, NVDEC (kurz für Nv idia Dezember oder), Video abzuladen Decodierung von der CPU auf einen dedizierten Teil der GPU.
Versionen
NVENC hat seit seiner Einführung mit der ersten Kepler- GPU (GK104) mehrere Hardware-Revisionen durchlaufen .
| GPU-Hardware |
H.264 (AVC)
(In H.264 hat NVENC immer B-Frame-Unterstützung, eine maximale Auflösung von 4096 x 4096 und eine maximale 8-Bit-Tiefe) |
H.265 (HEVC) | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| NVENC-Generation | GPU-Codename | NVENC pro Chip | Chroma | Verlustfreie Codierung | Chroma | Verlustfreie Codierung | Auflösung | Farbtiefe | B-Rahmen | ||
| 4:2:0 | 4:4:4 | 4:2:0 | 4:4:4 | ||||||||
| 1. Gen | GK110 | 1 |
|
|
|
H.265 wird nicht unterstützt | |||||
| GK107 | |||||||||||
| GK106 | |||||||||||
| GK104 | |||||||||||
| 2. Generation | GM108 | 0 | Keine NVENC-Encoder verfügbar | ||||||||
| GM107 | 1 |
|
|
|
H.265 wird nicht unterstützt | ||||||
| 3. Generation | GM208 | 1 |
|
|
|||||||
| GM206 |
|
|
|
Ja? N? | Ja? N? | 4096 x 4096 | 8 Bit |
|
|||
| GM204 | 2 |
|
|
||||||||
| GM200 | |||||||||||
| 4. Gen | GP108 | 0 | Keine NVENC-Encoder verfügbar | ||||||||
| GP107 | 1 |
|
|
|
|
|
|
8192 x 8192 | 10-Bit |
|
|
| GP106 | |||||||||||
| GP104-2xx+ | 2 | ||||||||||
| GP104-1xx | 1 | ||||||||||
| GP102 | 2 | ||||||||||
| GP100 | 3 | 4096 x 4096 | |||||||||
| 5. Gen | GV10x | 8192 x 8192 | |||||||||
| TU117 | 1 | ||||||||||
| 6. Gen | TU116 |
|
|||||||||
| TU106 | |||||||||||
| TU104 | |||||||||||
| TU102 | |||||||||||
| 7. Gen | GA106 | 1 |
|
|
|
|
|
|
8192 x 8192 | 10-Bit |
|
| GA104 | |||||||||||
| GA102 | |||||||||||
| GA100 | 0 | Keine NVENC-Encoder verfügbar | |||||||||
Erste Generation, Kepler GK1xx
Die erste Generation von NVENC, die von allen Kepler- basierten GPUs geteilt wird, unterstützt H.264 High-Profile (YUV420, I/P/B-Frames, CAVLC/CABAC), H.264 SVC Temporal Encode VCE und Display Encode Mode (DEM).
Die Dokumentation von NVidia gibt einen maximalen Encoder-Durchsatz von 8× Echtzeit bei einer Auflösung von 1920×1080 an (wobei die Basislinie "1×" 30 Hz entspricht). Der tatsächliche Durchsatz hängt von den ausgewählten voreingestellten, benutzergesteuerten Parametern und Einstellungen sowie den GPU-/Speichertaktfrequenzen ab. Die veröffentlichte 8-fache Bewertung ist mit der NVENC-Hochleistungsvoreinstellung erreichbar, die Komprimierungseffizienz und -qualität für den Encoder-Durchsatz opfert. Das High-Quality-Preset ist deutlich langsamer, erzeugt aber weniger Kompressionsartefakte .
Zweite Generation, Maxwell GM107
Eingeführt mit der Maxwell- Architektur der ersten Generation , bietet NVENC der zweiten Generation Unterstützung für das leistungsstarke HP444-Profil (YUV4:4:4, Predictive Lossless Encoding) und erhöht den Encoder-Durchsatz auf bis zu 16-fache Echtzeit, was etwa 1080p @ 480 . entspricht Hz mit dem Hochleistungs-Preset.
Maxwell GM108 bietet keine Unterstützung für NVENC-Hardware-Encoder.
Dritte Generation, Maxwell GM20x
Eingeführt mit der Maxwell-Architektur der zweiten Generation implementiert NVENC der dritten Generation den Videokompressionsalgorithmus High Efficiency Video Coding (auch bekannt als HEVC, H.265) und erhöht auch den Durchsatz des H.264-Encoders, um eine 4K-Auflösung bei 60 Hz (2160p60) abzudecken. Es unterstützt jedoch keine B-Frames für die HEVC-Codierung (nur I- und P-Frames ). Die maximale NVENC HEVC Coding Tree Unit (CU)-Größe beträgt 32 (der HEVC-Standard lässt maximal 64 zu) und die minimale CU-Größe beträgt 8.
Der HEVC- Codierung fehlt außerdem der Sample Adaptive Offset (SAO). Adaptive Quantisierung, Look-Ahead-Rate-Steuerung, adaptive B-Frames (nur H.264) und adaptive GOP-Funktionen wurden mit der Veröffentlichung von Nvidia Video Codec SDK 7 hinzugefügt. Diese Funktionen basieren auf CUDA-Kernen für die Hardwarebeschleunigung.
SDK 7 unterstützt zwei Formen der adaptiven Quantisierung; Räumliche AQ ( H.264 und HEVC) und zeitliche AQ (nur H.264).
Nvidias Consumer-Grade-Karten (GeForce) und einige seiner unteren professionellen Quadro- Karten sind auf drei gleichzeitige Codierungsjobs beschränkt. Seine höherwertigen Quadro-Karten haben diese Einschränkung nicht.
Vierte Generation, Pascal GP10x
NVENC der vierten Generation implementiert HEVC Main10 10-Bit-Hardwarecodierung. Es verdoppelt auch die Codierungsleistung von 4K H.264 & HEVC im Vergleich zu NVENC der vorherigen Generation. Es unterstützt HEVC 8K, 4:4:4 Chroma-Subsampling , verlustfreie Codierung und Sample Adaptive Offset (SAO).
Nvidia Video Codec SDK 8 hat die exklusive Funktion Weighted Prediction von Pascal hinzugefügt ( CUDA- basiert). Die gewichtete Vorhersage wird nicht unterstützt, wenn die Codierungssitzung mit B-Frames (H.264) konfiguriert ist.
Es gibt keine B-Frame-Unterstützung für HEVC- Codierung und die maximale CU-Größe beträgt 32 × 32.
NVIDIA GT 1030 und Mobile Quadro P500 sind GP108-Chips, die den NVENC-Encoder nicht unterstützen.
Bei Laptop-Grafiken enthält NVIDIA MX Graphics kein NVENC, da sie auf einem GM108-Chip der Maxwell -Generation oder einem GP108-Chip der Pascal-Generation basieren. Die GeForce MX350 ist ein GP107-Chip, dessen NVENC-Encoder bei der Herstellung deaktiviert ist.
Fünfte Generation, Volta GV10x/Turing TU117
Volta NVENC hat eine ähnliche Leistung wie Pascals NVENC. [1]
Es bietet keine Unterstützung für HEVC B-Frames.
Sechste Generation, Turing TU10x/TU116
NVENC der sechsten Generation implementiert HEVC 8K-Codierung mit 30 FPS, HEVC B-Frames und HEVC B-Frames als Referenz (mit Unterstützung für jeden und mittleren Modus) und Alpha HEVC-Unterstützung und bietet bis zu 25 % Bitrateneinsparungen für HEVC und bis zu 15 % Bitrateneinsparungen für H.264. Die anfängliche Einführung der Nvidia GeForce GTX 1650 war jedoch von dieser Generation ausgenommen, da sie Volta NVENC anstelle von Turing verwendete. Nvidia hat 2020 den NVENC-Encoder der GTX 1650-Karten aktualisiert, um auch die Turing-Engine zu verwenden. Die GTX 1650 Super verwendet die Turing- NVENC-Engine, da sie auf der TU116 basiert und nicht auf der TU117, die in der ursprünglichen GTX 1650 verwendet wird.
Siebte Generation, Ampere GA10x
Ampere hat im Wesentlichen den gleichen Motor der NVENC-Generation wie Turing. Nur NVDEC unterstützt die AV1-Decodierung (mit Filmkörnung).
Betriebssystemunterstützung
Der Nvidia NVENC SIP Core muss vom Gerätetreiber unterstützt werden . Der Treiber stellt eine oder mehrere Schnittstellen (zB OpenMAX IL ) zu NVENC bereit. Auf den NVENC-SIP-Kern kann nur über die proprietäre NVENC- API (im Gegensatz zur Open-Source- VDPAU- API) zugegriffen werden.
Es ist mit Nvidias GeForce-Treiber gebündelt .
NVENC ist für Windows- und Linux-Betriebssysteme verfügbar. Der kostenlose und Open-Source-Nouveau-Gerätetreiber unterstützt Nvidia NVENC nicht.
Anwendungssoftware-Support
- Adobe Premiere Pro hat im Mai 2020 die NVENC-Unterstützung in Version 14.2 hinzugefügt
- Avidemux unterstützt NVENC seit mindestens 2016, in H.264 oder H.265
- Bandicut
- Logitech-Erfassung
- DaVinci Resolve Studio beim Exportieren von Videos in H.264 oder H.265
- FFmpeg unterstützt NVENC seit 2014 und wird in Nvidia-Treibern unterstützt
- HandBrake hat im Dezember 2018 in Version 1.2.0 NVENC-Unterstützung hinzugefügt, unterstützt H.264 und H.265
- HitFilm express/pro beim Anzeigen einer Videovorschau auf der Timeline oder beim Exportieren von Videos in H.264 oder H.265
- MacroSystem BogartSE unterstützt NVENC-Export seit v9.4 (Oktober 2017) und UHD-Disc- Encoding seit v11.3 (Oktober 2019)
- MediaCoder
- Open Broadcaster-Software (OBS)
- Shotcut
- StaxRip
- VideoProc
- XMedia Recode unterstützt den NVENC-Export in H.264 oder H.265
GPU-Durchsatz
Vergleich des Codierungsdurchsatzes
| Streams | H.264-Kodierung (1080p30) |
|---|---|
| GM204 (Tesla M6) | 18 |
| GM107 (Tesla M10) | 28 |
| GP104 (Tesla P4) | 24 |
| TU104 (Tesla T4) | 32 |
| P100 | 36 |
| V100 | 36 |
Siehe auch
- Intel Quick Sync Video , Intels äquivalenter SIP-Kern
- Video Coding Engine , AMDs äquivalenter SIP-Kern bis 2017
- Video Core Next , AMDs Video-Core, der die Funktionalität von Video Coding Engine und Unified Video Decoder kombiniert
- Nvidia PureVideo , Hardware-Videodecodierung
- Liste aller Nvidia-GPUs
- Nvidia NVDEC