Nvidia NVENC

Nvidia NVENC (förkortning av Nvidia Enc oder) är en funktion i Nvidia -grafikkort som utför videokodning och överför denna beräkningsintensiva uppgift från CPU:n till en dedikerad del av GPU :n . Den introducerades med den Kepler -baserade GeForce 600-serien i mars 2012.

Kodaren stöds i många livestreaming- och inspelningsprogram, såsom vMix , Wirecast , Open Broadcaster Software (OBS) och Bandicam , samt videoredigeringsappar, såsom Adobe Premiere Pro eller DaVinci Resolve . Det fungerar även med Share game capture, som ingår i Nvidias programvara GeForce Experience.

Konsumentriktade GeForce- grafikkort stöder officiellt inte mer än 3 samtidigt kodande videoströmmar, oavsett antalet installerade kort, men denna begränsning kan kringgås på Linux- och Windows -system genom att applicera en inofficiell patch drivrutinerna . Genom att göra det låser man också upp NVIDIA Frame Buffer Capture (NVFBC), en snabb desktop capture API som använder funktionerna hos GPU:n och dess drivrutin för att accelerera infångningen. Professionella kort stöder mellan 3 och obegränsade samtidiga strömmar per kort, beroende på kortmodell och komprimeringskvalitet.

Nvidia-chips har också en inbyggd dekoder, NVDEC (förkortning för Nv idia Dec oder), för att ladda av videoavkodning från CPU:n till en dedikerad del av GPU:n.

Versioner

NVENC har genomgått flera hårdvaruversioner sedan introduktionen med den första Kepler GPU (GK104).

NVENC Sammanfattning
GPU hårdvara H.264 (AVC)

(I H.264 har NVENC alltid stöd för B Frame, max 4096x4096 upplösning och max 8-bitars djup)

H.265 (HEVC) AV1
NVENC Generation GPU-kodnamn NVENC per chip Chroma Förlustfri kodning Chroma Förlustfri kodning Upplösning Färgdjup B Ramar AV1
4:2:0 4:4:4 4:2:0 4:4:4
1:a Gen GK110 1 Yes No No H.265 stöds inte AV1 stöds inte
GK107
GK106
GK104
2nd Gen GM108 0 Inga NVENC-kodare tillgängliga
GM107 1 Yes Yes Yes H.265 stöds inte AV1 stöds inte
3:e Gen GM208 1 No No
GM206 Yes Yes Yes Y? N? Y? N? 4096 x 4096 8-bitars No
GM204 2 No No
GM200
4:e Gen GP108 0 Inga NVENC-kodare tillgängliga
GP107 1 Yes Yes Yes Yes Yes Yes 8192 x 8192 10-bitars No AV1 stöds inte
GP106
GP104-2xx+ 2
GP104-1xx 1
GP102 2
GP100 3 4096 x 4096
5:e Gen GV10x 8192 x 8192
TU117 1
6:e Gen TU116 Yes
TU106
TU104
TU102
7:e Gen GA106 1 Yes Yes Yes Yes Yes Yes 8192 x 8192 10-bitars Yes
GA104
GA102
GA100 0 Inga NVENC-kodare tillgängliga
8:e Gen AD104 2 Yes Yes Yes Yes Yes Yes 8192 x 8192 10-bitars Yes Yes
AD103
AD102

Första generationen, Kepler GK1xx

Den första generationen av NVENC, som delas av alla Kepler -baserade GPU:er, stöder H.264 högprofil (YUV420, I/P/B-ramar, CAVLC/CABAC), H.264 SVC Temporal Encode VCE och Display Encode Mode (DEM).

  NVidias dokumentation anger en maximal kodargenomströmning på 8× realtid vid en upplösning på 1920×1080 (där baslinjen "1×" är lika med 30 Hz). Den faktiska genomströmningen varierar på den valda förinställningen, användarkontrollerade parametrar och inställningar samt GPU/minnets klockfrekvenser. Det publicerade betyget 8× kan uppnås med NVENC högpresterande förinställning, som offrar komprimeringseffektivitet och kvalitet för kodarens genomströmning. Den högkvalitativa förinställningen är betydligt långsammare men ger färre komprimeringsartefakter

Andra generationen, Maxwell GM107

  Introducerad med första generationens Maxwell- arkitektur, andra generationens NVENC lägger till stöd för den högpresterande HP444-profilen (YUV4:4:4, prediktiv förlustfri kodning), och ökar kodarens genomströmning upp till 16× realtid, vilket motsvarar cirka 1080p @ 480 Hz med högpresterande förinställning.

Maxwell GM108 har inte stöd för NVENC-hårdvarukodare.

Tredje generationen, Maxwell GM20x

  Introducerad med andra generationens Maxwell-arkitektur, implementerar tredje generationens NVENC videokomprimeringsalgoritmen High Efficiency Video Coding (alias HEVC, H.265) och ökar även H.264-kodarens genomströmning för att täcka 4K-upplösning vid 60 Hz (2160p60). Den stöder dock inte B-ramar för HEVC-kodning (bara I- och P-ramar) . Den maximala storleken på NVENC HEVC- kodningsträdenheten (CU) är 32 (HEVC-standarden tillåter maximalt 64), och dess minsta CU-storlek är 8.

HEVC- kodning saknar också Sample Adaptive Offset (SAO). Adaptiv kvantisering, framåtblickshastighetskontroll, adaptiva B-frames (endast H.264) och adaptiva GOP-funktioner lades till med lanseringen av Nvidia Video Codec SDK 7. Dessa funktioner förlitar sig på CUDA-kärnor för hårdvaruacceleration.

SDK 7 stöder två former av adaptiv kvantisering; Spatial AQ ( H.264 och HEVC) och Temporal AQ (endast H.264).

Nvidias konsumentklassade (GeForce) kort och några av dess lägre professionella Quadro- kort är begränsade till tre samtidiga kodningsjobb. Dess mer avancerade Quadro-kort har inte denna begränsning.

Fjärde generationen, Pascal GP10x

Fjärde generationens NVENC implementerar HEVC Main10 10-bitars hårdvarukodning. Den fördubblar också kodningsprestandan för 4K H.264 & HEVC jämfört med föregående generations NVENC. Den stöder HEVC 8K, 4:4:4 chroma subsampling , förlustfri kodning och sample adaptive offset (SAO).

Nvidia Video Codec SDK 8 lade till Pascals exklusiva Weighted Prediction-funktion ( CUDA -baserad). Viktad förutsägelse stöds inte om kodningssessionen är konfigurerad med B-ramar (H.264).

Det finns inget B-Frame-stöd för HEVC- kodning, och den maximala CU-storleken är 32×32.

NVIDIA GT 1030 och Mobile Quadro P500 är GP108-chips som inte stöder NVENC-kodaren.

I bärbar grafik inkluderar NVIDIA MX Graphics inte NVENC eftersom de är baserade på ett Maxwell -generation GM108 eller ett Pascal-generation GP108-chip. GeForce MX350 är ett GP107-chip vars NVENC-kodare är inaktiverad under tillverkningen.

Femte generationen, Volta GV10x/Turing TU117

Volta NVENC har liknande prestanda som Pascals NVENC. [1]

Den erbjuder inte stöd för HEVC B-ramar.

Inom mobil grafik, som med de flesta andra grafikkort i GeForce MX-serien, stöder inte GeForce MX450 NVENC eftersom det är ett TU117-chip vars hårdvarukodare är permanent inaktiverad vid tillverkningen. GeForce MX550 stöder dock NVENC eftersom dess hårdvarukodare förblir aktiverad på tillverkningsnivå.

Sjätte generationen, Turing TU10x/TU116

Sjätte generationens NVENC implementerar HEVC 8K-kodning vid 30 FPS, HEVC B-ramar och HEVC B-ramar som referens (med stöd för varje och mellanlägen) och Alpha HEVC-stöd och ger upp till 25 % bithastighetsbesparingar för HEVC och upp till 15 % bithastighetsbesparingar för H.264. Den första lanseringen av Nvidia GeForce GTX 1650 var dock undantagen från denna generation, eftersom den använde Volta NVENC istället för Turing. Nvidia uppdaterade NVENC-kodaren för GTX 1650-korten 2020 för att även använda Turing-motorn. GTX 1650 Super använder Turing NVENC-motorn eftersom den är baserad på TU116 snarare än TU117 som används i den ursprungliga GTX 1650.

Sjunde generationen, Ampere GA10x

Ampere har i princip samma NVENC-generationsmotor som Turing. Den enda väsentliga skillnaden är att NVDEC fick stöd för AV1- avkodning (med filmkorn).

Inom mobilgrafik på nybörjarnivå kommer den GA107-chipbaserade GeForce MX570 i två versioner, varav en (GeForce MX570 A) har hårdvaruavkodaren och kodaren permanent inaktiverade under tillverkningen.

Åttonde generationen, Ada Lovelace AD10x

Nvidia tillkännagav nästa generations NVENC med 8K 10-bitars 60FPS AV1 hårdvarukodare med fast funktion i Ada Lovelace GPU:er.

Stöd för operativsystem

Nvidia NVENC SIP- kärnan måste stödjas av enhetsdrivrutinen . Drivrutinen tillhandahåller ett eller flera gränssnitt (t.ex. OpenMAX IL) till NVENC. NVENC SIP-kärnan kan endast nås via det proprietära NVENC API (till skillnad från VDPAU API med öppen källkod).

Den levereras med Nvidias GeForce-drivrutin .

NVENC är tillgängligt för Windows och Linux operativsystem. Den fria och öppen källkod nouveau enhetsdrivrutinen stöder inte Nvidia NVENC.

Programvarustöd

  • Adobe Premiere Pro lade till NVENC-stöd i version 14.2 i maj 2020
  • AJA Bridge Live
  • Avidemux har stött NVENC sedan åtminstone 2016, i H.264 eller H.265
  • Bandicut
  • DaVinci Resolve Studio vid export av video i H.264 eller H.265
  • FFmpeg har stödt NVENC sedan 2014 och stöds i Nvidia-drivrutiner
  • HandBrake har stöd för NVENC sedan version 1.2.0 (december 2018), för H.264 och H.265
  • HitFilm express/pro när du förhandsgranskar video på tidslinjen eller exporterar video i H.264 eller H.265
  • Jellyfin har stöd för NVENC för omkodning i realtid
  • Logitech Capture
  • MacroSystem BogartSE stöder NVENC-export sedan v9.4 (oktober 2017) och UHD-Disc- kodning sedan v11.3 (oktober 2019)
  • MediaCoder
  • Open Broadcaster Software (OBS)
  • Shotcut
  • StaxRip
  • VideoProc

GPU genomströmning

Jämförelse av kodningsgenomströmning [ citat behövs ]

Strömmar H.264 Encode (1080p30)
GM204 (Tesla M6) 18
GM107 (Tesla M10) 28
GM200 (Tesla M40) 18
GM204 (Tesla M60) 36
GP104 (Tesla P4) 24
TU104(Tesla T4) 32
P100 36
V100 36

Se även

externa länkar