Nvidia NVENC: Difference between revisions
→{{Anchor|8.0}}Eighth generation, Ada Lovelace AD10x: Maded Ada Lovelace a link |
Undid revision 1260009970 by 78.83.97.122 (talk) |
||
(48 intermediate revisions by 30 users not shown) | |||
Line 2: | Line 2: | ||
{{use mdy dates|date=September 2022}} |
{{use mdy dates|date=September 2022}} |
||
'''Nvidia NVENC''' (short for |
'''Nvidia NVENC''' (short for Nvidia Encoder)<ref>{{Cite web |title=NVIDIA GeForce RTX 40 Series Graphics Cards |url=https://www.nvidia.com/en-us/geforce/graphics-cards/40-series/ |access-date=2024-02-28 |website=NVIDIA |language=en-us}}</ref> is a feature in [[Nvidia]] graphics cards that performs [[Data compression|video encoding]], offloading this compute-intensive task from the [[Central processing unit|CPU]] to a dedicated part of the [[Graphics processing unit|GPU]]. It was introduced with the [[Kepler (microarchitecture)|Kepler]]-based [[GeForce]] [[GeForce 600 series|600 series]] in March 2012 (GT 610, GT620 and GT630 is Fermi Architecture).<ref name="nvidia-video-codec-sdk">{{cite web |url=https://developer.nvidia.com/nvidia-video-codec-sdk |title=NVIDIA VIDEO CODEC SDK |website=NVIDIA Developer |date=August 23, 2013 |publisher=[[Nvidia]] |access-date=2017-11-12 }}</ref><ref>{{cite web|url=http://www.anandtech.com/show/7764/the-nvidia-geforce-gtx-750-ti-and-gtx-750-review-maxwell/2 |title=Maxwell's Feature Set: Kepler Refined |publisher=[[AnandTech]] |date=2014-02-18}}</ref> |
||
The encoder is supported in many livestreaming and recording programs, such as [[vMix]], [[Wirecast]], [[Open Broadcaster Software]] (OBS) and [[Bandicam]], as well as video editing apps, such as [[Adobe Premiere Pro]] or [[DaVinci Resolve]]. It also works with [[Nvidia Share|Share]] game capture, which is included in Nvidia's GeForce Experience software.<ref>{{Cite web|url=https://www.geforce.com/geforce-experience/system-requirements|title=System Requirements for NVIDIA GeForce Experience {{!}} GeForce {{!}} GeForce|website=www.geforce.com|access-date=2016-08-17}}</ref><ref>{{Cite web|url=https://www.telestream.net/wirecast/tech-specs.htm|title=Wirecast Tech Specs|website=telestream.net|access-date=2017-12-19}}</ref><ref>{{Cite web|url=https://obsproject.com/|title=Open Broadcaster Software |
The encoder is supported in many livestreaming and recording programs, such as [[vMix]], [[Wirecast]], [[Open Broadcaster Software]] (OBS) and [[Bandicam]], as well as video editing apps, such as [[Adobe Premiere Pro]] or [[DaVinci Resolve]]. It also works with [[Nvidia Share|Share]] game capture, which is included in Nvidia's GeForce Experience software.<ref>{{Cite web|url=https://www.geforce.com/geforce-experience/system-requirements|title=System Requirements for NVIDIA GeForce Experience {{!}} GeForce {{!}} GeForce|website=www.geforce.com|access-date=2016-08-17}}</ref><ref>{{Cite web|url=https://www.telestream.net/wirecast/tech-specs.htm|title=Wirecast Tech Specs|website=telestream.net|access-date=2017-12-19}}</ref><ref>{{Cite web|url=https://obsproject.com/|title=Open Broadcaster Software – Index|website=obsproject.com|access-date=2016-08-17|archive-url=https://web.archive.org/web/20190323125707/https://obsproject.com/|archive-date=2019-03-23|url-status=dead}}</ref> |
||
Until March 2023 consumer-targeted [[GeForce]] graphics cards officially support no more than three simultaneously encoding video streams, regardless of the count of the cards installed, but this restriction can be circumvented on [[Linux]] and [[Windows]] systems by applying an unofficial patch to the [[Device driver|drivers]]. Doing so also unlocks ''NVIDIA Frame Buffer Capture (NVFBC)'', a fast desktop capture [[API]] that uses the capabilities of the GPU and its driver to accelerate capture.<ref>{{cite web |url=https://github.com/keylase/nvidia-patch |title=nvidia-patch |publisher=[[GitHub]]}}</ref> Professional cards support between three and unrestricted simultaneous streams per card, depending on card model and compression quality,<ref name="nvidia-video-codec-sdk" /> the restrictions were loosened in 2023 allowing up to 5 simultaneously encoding video streams.<ref>{{cite web |last1=Shilov |first1=Anton |title=Nvidia Lifts Some Video Encoding Limitations from Consumer GPUs |url=https://www.tomshardware.com/news/nvidia-increases-concurrent-nvenc-sessions-on-consumer-gpus |website=tomshardware |date=March 24, 2023 |access-date=26 March 2023}}</ref> From January 2024 onwards, eight simultaneous encoding video streams became the baseline.<ref>{{cite web | url=https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-new | title=Video Encode and Decode GPU Support Matrix }}</ref> |
|||
Nvidia chips also feature an onboard decoder, [[Nvidia NVDEC|NVDEC]] (short for '''Nv'''idia '''Dec'''oder), to offload video ''decoding'' from the CPU to a dedicated part of the GPU.<ref name="nvidia-video-codec-sdk"/> |
Nvidia chips also feature an onboard decoder, [[Nvidia NVDEC|NVDEC]] (short for '''Nv'''idia '''Dec'''oder), to offload video ''decoding'' from the CPU to a dedicated part of the GPU.<ref name="nvidia-video-codec-sdk"/> |
||
== {{Anchor|DEM}}Versions == |
== {{Anchor|DEM}}Versions == |
||
NVENC has undergone several hardware revisions since its introduction with the first [[Kepler (microarchitecture)|Kepler]] GPU (GK104).<ref>{{cite web |url=http://on-demand.gputechconf.com/gtc/2015/video/S5613.html |title=S5613 |
NVENC has undergone several hardware revisions since its introduction with the first [[Kepler (microarchitecture)|Kepler]] GPU (GK104).<ref>{{cite web |url=http://on-demand.gputechconf.com/gtc/2015/video/S5613.html |title=S5613 – High-Performance Video Encoding Using NVIDIA GPUs |publisher=[[Nvidia]]}}</ref> |
||
{| class="wikitable" |
{| class="wikitable" |
||
|+NVENC |
|+NVENC summary<ref name="gpu-support-matrix">{{Cite web|url=https://developer.nvidia.com/video-encode-decode-gpu-support-matrix|title=Video Encode and Decode GPU Support Matrix|date=2016-11-09|website=NVIDIA Developer|language=en|access-date=2020-08-22}}</ref><ref name="video-codec-sdk-features">{{Cite web|url=https://developer.nvidia.com/nvidia-video-codec-sdk#NVENCFeatures|title=NVIDIA VIDEO CODEC SDK|date=2016-11-09|website=NVIDIA Developer|language=en|access-date=2020-08-22}}</ref> |
||
! colspan="3" |GPU Hardware |
! colspan="3" |GPU Hardware |
||
! colspan="3" |[[Advanced Video Coding|H.264 (AVC)]] |
! colspan="3" |[[Advanced Video Coding|H.264 (AVC)]] |
||
(In H.264, NVENC always has B Frame support, max 4096x4096 resolution, and max 8-bit depth) |
(In H.264, NVENC always has B Frame support, max 4096x4096 resolution, and max 8-bit depth) |
||
! colspan="6" |[[High Efficiency Video Coding|H.265 (HEVC)]] |
! colspan="6" |[[High Efficiency Video Coding|H.265 (HEVC)]] |
||
! colspan="1" |[[AOMedia Video 1|AV1]] |
|||
|- |
|- |
||
! rowspan="2" |NVENC Generation |
! rowspan="2" |NVENC Generation |
||
Line 29: | Line 30: | ||
! rowspan="2" |Color Depth |
! rowspan="2" |Color Depth |
||
! rowspan="2" |B Frames |
! rowspan="2" |B Frames |
||
! rowspan="2" |AV1 |
|||
|- |
|- |
||
! 4:2:0 |
! 4:2:0 |
||
Line 42: | Line 44: | ||
| rowspan="4" {{na}} |
| rowspan="4" {{na}} |
||
| colspan="6" rowspan="4" {{no|H.265 not supported}} |
| colspan="6" rowspan="4" {{no|H.265 not supported}} |
||
| colspan="11" rowspan="4" {{no|AV1 not supported}} |
|||
|- |
|- |
||
|GK107 |
|GK107 |
||
Line 49: | Line 52: | ||
|GK104 |
|GK104 |
||
|- |
|- |
||
| rowspan=" |
| rowspan="1" |2nd Gen |
||
|GM108 |
|||
|{{no|0}} |
|||
| colspan="9" {{no|No NVENC encoders available}} |
|||
|- |
|||
|GM107 |
|GM107 |
||
|{{ya|text=1}} |
|{{ya|text=1}} |
||
| rowspan=" |
| rowspan="1" {{ya}} |
||
|{{ya}} |
|{{ya}} |
||
|{{ya}} |
|{{ya}} |
||
| colspan="6" rowspan=" |
| colspan="6" rowspan="1" {{no|H.265 not supported}} |
||
| colspan="11" rowspan="4" {{no|AV1 not supported}} |
|||
|- |
|||
| rowspan="4" |3rd Gen |
|||
|GM208 |
|||
| rowspan="2" {{ya|text=1}} |
|||
|{{na}} |
|||
|{{na}} |
|||
|- |
|- |
||
| rowspan="3" |3rd Gen |
|||
| GM206 |
| GM206 |
||
| rowspan="1" {{ya|text=1}} |
|||
| rowspan="3" {{ya}} |
|||
| rowspan="3" {{ya}} |
| rowspan="3" {{ya}} |
||
| rowspan="3" {{ya}} |
| rowspan="3" {{ya}} |
||
| rowspan="3" {{ya}} |
| rowspan="3" {{ya}} |
||
| {{maybe|Y?<ref name="video-codec-sdk-features" /> N?<ref name="gpu-support-matrix" />}} |
| {{maybe|Y?<ref name="video-codec-sdk-features" /> N?<ref name="gpu-support-matrix" />}} |
||
| rowspan="3" {{na}} |
|||
| {{maybe|Y?<ref name="video-codec-sdk-features" /> N?<ref name="gpu-support-matrix" />}} |
|||
| rowspan="3" {{some|4096 x 4096}} |
| rowspan="3" {{some|4096 x 4096}} |
||
| rowspan="3" {{some|8-bit}} |
| rowspan="3" {{some|8-bit}} |
||
Line 79: | Line 76: | ||
| GM204 |
| GM204 |
||
| rowspan="2" {{ya|text=2}} |
| rowspan="2" {{ya|text=2}} |
||
| rowspan="2" {{na}} |
|||
| rowspan="2" {{na}} |
| rowspan="2" {{na}} |
||
|- |
|- |
||
Line 87: | Line 83: | ||
| GP108 |
| GP108 |
||
|{{no|0}} |
|{{no|0}} |
||
| colspan=" |
| colspan="10" {{no|No NVENC encoders available}} |
||
|- |
|- |
||
| GP107 |
| GP107 |
||
Line 100: | Line 96: | ||
| rowspan="12" {{ya|text=10-bit}} |
| rowspan="12" {{ya|text=10-bit}} |
||
| rowspan="8" {{na}} |
| rowspan="8" {{na}} |
||
| colspan="11" rowspan="12" {{no|AV1 not supported}} |
|||
|- |
|- |
||
| GP106 |
| GP106 |
||
Line 133: | Line 131: | ||
| TU102 |
| TU102 |
||
|- |
|- |
||
| rowspan=" |
| rowspan="5" |7th Gen |
||
| GA107 |
|||
| rowspan="4" {{ya|text=1}} |
|||
| rowspan="4" {{ya}} |
|||
| rowspan="4" {{ya}} |
|||
| rowspan="4" {{ya}} |
|||
| rowspan="4" {{ya}} |
|||
| rowspan="4" {{ya}} |
|||
| rowspan="4" {{ya}} |
|||
| rowspan="4" {{ya|text=8192 x 8192}} |
|||
| rowspan="4" {{ya|text=10-bit}} |
|||
| rowspan="4" {{ya}} |
|||
| rowspan="4" {{Some|Decode only}} |
|||
|- |
|||
| GA106 |
| GA106 |
||
| rowspan="3" {{ya|text=1}} |
|||
| rowspan="3" {{ya}} |
|||
| rowspan="3" {{ya}} |
|||
| rowspan="3" {{ya}} |
|||
| rowspan="3" {{ya}} |
|||
| rowspan="3" {{ya}} |
|||
| rowspan="3" {{ya}} |
|||
| rowspan="3" {{ya|text=8192 x 8192}} |
|||
| rowspan="3" {{ya|text=10-bit}} |
|||
| rowspan="3" {{ya}} |
|||
|- |
|- |
||
| GA104 |
| GA104 |
||
Line 152: | Line 153: | ||
| GA100<ref>{{Cite web|date=2020-05-14|title=NVIDIA Ampere Architecture In-Depth|url=https://developer.nvidia.com/blog/nvidia-ampere-architecture-in-depth/|access-date=2020-08-31|website=NVIDIA Developer Blog|language=en-US}}</ref> |
| GA100<ref>{{Cite web|date=2020-05-14|title=NVIDIA Ampere Architecture In-Depth|url=https://developer.nvidia.com/blog/nvidia-ampere-architecture-in-depth/|access-date=2020-08-31|website=NVIDIA Developer Blog|language=en-US}}</ref> |
||
| {{no|0}} |
| {{no|0}} |
||
| colspan=" |
| colspan="10" {{no|No NVENC encoders available}} |
||
|- |
|- |
||
| rowspan=" |
| rowspan="6" |8th Gen |
||
| |
| AD107 |
||
| rowspan="3" {{ya|text=1}} |
|||
| rowspan="6" {{ya}} |
|||
| rowspan="6" {{ya}} |
|||
| rowspan="6" {{ya}} |
|||
| rowspan="6" {{ya}} |
|||
| rowspan="6" {{ya}} |
|||
| rowspan="6" {{ya}} |
|||
| rowspan="6" {{ya|text=8192 x 8192}} |
|||
| rowspan="6" {{ya|text=10-bit}} |
|||
| rowspan="6" {{ya}} |
|||
| rowspan="6" {{ya}} |
|||
|- |
|||
| AD106 |
|||
|- |
|||
| AD104-250 |
|||
|- |
|||
| AD104-400 |
|||
| rowspan="3" {{ya|text=2}} |
| rowspan="3" {{ya|text=2}} |
||
| rowspan="3" {{ya}} |
|||
| rowspan="3" {{ya}} |
|||
| rowspan="3" {{ya}} |
|||
| rowspan="3" {{ya}} |
|||
| rowspan="3" {{ya}} |
|||
| rowspan="3" {{ya}} |
|||
| rowspan="3" {{ya|text=8192 x 8192}} |
|||
| rowspan="3" {{ya|text=10-bit}} |
|||
| rowspan="3" {{ya}} |
|||
|- |
|- |
||
| AD103 |
| AD103 |
||
Line 171: | Line 180: | ||
| AD102 |
| AD102 |
||
|- |
|- |
||
! rowspan="2" |NVENC Generation |
|||
==={{Anchor|1.0}}First generation, Kepler GK1xx=== |
|||
! rowspan="2" |GPU Code Name |
|||
! rowspan="2" |NVENC per Chip |
|||
! colspan="2" |Chroma |
|||
! rowspan="2" |Lossless Coding |
|||
! colspan="2" |Chroma |
|||
! rowspan="2" |Lossless Coding |
|||
! rowspan="2" |Resolution |
|||
! rowspan="2" |Color Depth |
|||
! rowspan="2" |B Frames |
|||
! rowspan="2" |AV1 |
|||
|- |
|||
!4:2:0 |
|||
!4:4:4 |
|||
!4:2:0 |
|||
!4:4:4 |
|||
|} |
|||
=== {{Anchor|1.0}}First generation, Kepler GK1xx === |
|||
The first generation of NVENC, which is shared by all [[Kepler (microarchitecture)|Kepler]]-based GPUs, supports H.264 high-profile (YUV420, I/P/B frames, CAVLC/CABAC), H.264 SVC Temporal Encode VCE, and [[Video Coding Engine|Display Encode Mode]] (DEM). |
The first generation of NVENC, which is shared by all [[Kepler (microarchitecture)|Kepler]]-based GPUs, supports H.264 high-profile (YUV420, I/P/B frames, CAVLC/CABAC), H.264 SVC Temporal Encode VCE, and [[Video Coding Engine|Display Encode Mode]] (DEM). |
||
Line 206: | Line 233: | ||
It does not offer support for HEVC B-Frames. |
It does not offer support for HEVC B-Frames. |
||
In mobile graphics, as with |
In mobile graphics, as with most other GeForce MX-series graphics, the GeForce MX450 does not support NVENC as it is a TU117 chip whose hardware encoder is permanently disabled in its manufacture. The GeForce MX550, however, does support NVENC as its hardware encoder remains enabled at manufacturing level. |
||
==={{Anchor|6.0}}Sixth generation, Turing TU10x/TU116 === |
==={{Anchor|6.0}}Sixth generation, Turing TU10x/TU116 === |
||
Line 212: | Line 239: | ||
==={{Anchor|7.0}}Seventh generation, Ampere GA10x === |
==={{Anchor|7.0}}Seventh generation, Ampere GA10x === |
||
[[Ampere (microarchitecture)|Ampere]] has essentially the same NVENC generation engine as Turing.<ref>{{cite web |title=NVIDIA Ampere GA102 GPU Architecture: Second-Generation RTX |url=https://www.nvidia.com/content/dam/en-zz/Solutions/geforce/ampere/pdf/NVIDIA-ampere-GA102-GPU-Architecture-Whitepaper-V1.pdf |website=NVIDIA |access-date=September 21, 2022}}</ref> The only substantive difference is that [[Nvidia NVDEC|NVDEC]] received support for AV1 decoding (with film grain). |
[[Ampere (microarchitecture)|Ampere]] has essentially the same NVENC generation engine as Turing.<ref>{{cite web |title=NVIDIA Ampere GA102 GPU Architecture: Second-Generation RTX |url=https://www.nvidia.com/content/dam/en-zz/Solutions/geforce/ampere/pdf/NVIDIA-ampere-GA102-GPU-Architecture-Whitepaper-V1.pdf |website=NVIDIA |access-date=September 21, 2022}}</ref> The only substantive difference is that [[Nvidia NVDEC|NVDEC]] received support for [[AV1]] decoding (with film grain). |
||
In entry-level mobile graphics, the GA107-chip-based GeForce MX570 comes in two versions, one of which (the GeForce MX570 A) has the hardware decoder and encoder permanently disabled during manufacturing. |
|||
==={{Anchor|8.0}}Eighth generation, Ada Lovelace AD10x === |
==={{Anchor|8.0}}Eighth generation, Ada Lovelace AD10x === |
||
Nvidia announced the next-gen NVENC with 8K 10-bit 60FPS AV1 fixed function hardware encoder in [[Ada Lovelace (microarchitecture)|Ada Lovelace]] GPUs.<ref>{{Cite web |last1=Gray |first1=Jon |date=September 20, 2022 |title=Creativity At The Speed of Light: GeForce RTX 40 Series Graphics Cards Unleash Up To 2X Performance in 3D Rendering, AI, and Video Exports For Gamers and Creators |url=https://www.nvidia.com/en-us/geforce/news/rtx-40-series-and-studio-updates-for-content-creation/ |website=NVIDIA |access-date=September 21, 2022}}</ref><ref>{{Cite web |title=NVIDIA Video Codec SDK |url=https://developer.nvidia.com/nvidia-video-codec-sdk |website=NVIDIA |access-date=September 21, 2022}}</ref> |
Nvidia announced the next-gen NVENC with 8K 10-bit 60FPS AV1 fixed function hardware encoder in [[Ada Lovelace (microarchitecture)|Ada Lovelace]] GPUs.<ref>{{Cite web |last1=Gray |first1=Jon |date=September 20, 2022 |title=Creativity At The Speed of Light: GeForce RTX 40 Series Graphics Cards Unleash Up To 2X Performance in 3D Rendering, AI, and Video Exports For Gamers and Creators |url=https://www.nvidia.com/en-us/geforce/news/rtx-40-series-and-studio-updates-for-content-creation/ |website=NVIDIA |access-date=September 21, 2022}}</ref><ref>{{Cite web |title=NVIDIA Video Codec SDK |url=https://developer.nvidia.com/nvidia-video-codec-sdk |website=NVIDIA |date=August 23, 2013 |access-date=September 21, 2022}}</ref> |
||
== Operating system support == |
== Operating system support == |
||
Line 226: | Line 255: | ||
== Application software support == |
== Application software support == |
||
* [[Adobe Premiere Pro]] added NVENC support in version 14.2 in May 2020<ref>{{Cite web|last=Tack|first=Stanley|date=2020-05-19|title=Cut to the Video: Adobe Premiere Pro Helps Content Creators Work Faster with GPU-Accelerated Exports {{!}} NVIDIA Blog|url=https://blogs.nvidia.com/blog/2020/05/19/gpu-acceleration-adobe-premiere-pro/|access-date=2021-03-24|website=The Official NVIDIA Blog|language=en-US}}</ref> |
* [[Adobe Premiere Pro]] added NVENC support in version 14.2 in May 2020<ref>{{Cite web|last=Tack|first=Stanley|date=2020-05-19|title=Cut to the Video: Adobe Premiere Pro Helps Content Creators Work Faster with GPU-Accelerated Exports {{!}} NVIDIA Blog|url=https://blogs.nvidia.com/blog/2020/05/19/gpu-acceleration-adobe-premiere-pro/|access-date=2021-03-24|website=The Official NVIDIA Blog|language=en-US}}</ref> |
||
* [[AJA Bridge Live]]<ref>{{cite web|title=BRIDGE LIVE is a broadcast-quality, low-latency turnkey system | url=https://www.aja.com/products/bridge-live}}</ref> |
|||
* [[Avidemux]] has supported NVENC since at least 2016, in H.264 or H.265<ref>[https://www.videohelp.com/software/AviDemux/version-history#changelog AVIDemux Changelog]</ref> |
* [[Avidemux]] has supported NVENC since at least 2016, in H.264 or H.265<ref>[https://www.videohelp.com/software/AviDemux/version-history#changelog AVIDemux Changelog]</ref> |
||
* [[Bandicut]] |
* [[Bandicut]] |
||
* [[CyberLink PowerDirector]] has supported NVENC since Version 16 GM7 3424 Beta Patch (2016) <ref>[https://forum.cyberlink.com/forum/posts/list/77562.page#317589 CyberLink Forum Official Post]</ref> |
|||
* [[Logitech Capture]] |
|||
* [[Davinci Resolve|DaVinci Resolve Studio]] when exporting video in H.264 or H.265<ref>{{Cite web|title=Blackmagic Forum • View topic |
* [[Davinci Resolve|DaVinci Resolve Studio]] when exporting video in H.264 or H.265<ref>{{Cite web|title=Blackmagic Forum • View topic – Davinci studio 16, NVENC unavailable|url=https://forum.blackmagicdesign.com/viewtopic.php?f=21&t=98035#p543912/|access-date=2021-03-24|website=forum.blackmagicdesign.com}}</ref> |
||
* [[FFmpeg]] has supported NVENC since 2014,<ref>{{cite web|url=https://ffmpeg.org/doxygen/trunk/nvenc_8c_source.html|title=nvenc.c H.264 hardware encoding using nvidia nvenc}}</ref> and is supported in Nvidia drivers<ref>{{cite web |url=http://www.nvidia.com/download/driverResults.aspx/109629/en-us|title=QUADRO DESKTOP/QUADRO NOTEBOOK DRIVER RELEASE 375 |
* [[FFmpeg]] has supported NVENC since 2014,<ref>{{cite web|url=https://ffmpeg.org/doxygen/trunk/nvenc_8c_source.html|title=nvenc.c H.264 hardware encoding using nvidia nvenc}}</ref> and is supported in Nvidia drivers<ref>{{cite web |url=http://www.nvidia.com/download/driverResults.aspx/109629/en-us|title=QUADRO DESKTOP/QUADRO NOTEBOOK DRIVER RELEASE 375 |
||
}}</ref> |
}}</ref> |
||
* [[GStreamer]] through the nvcodec plugin<ref>{{cite web | url=https://gstreamer.freedesktop.org/documentation/nvcodec/index.html?gi-language=c | title=Nvcodec }}</ref> |
|||
* [[HandBrake]] has supported NVENC since version 1.2.0 (December 2018), for H.264 and H.265<ref>[https://handbrake.fr/news.php?article=42 HandBrake 1.2.0 released]</ref> |
* [[HandBrake]] has supported NVENC since version 1.2.0 (December 2018), for H.264 and H.265<ref>[https://handbrake.fr/news.php?article=42 HandBrake 1.2.0 released]</ref> |
||
* [[HitFilm express/pro]] when previewing video on the timeline or exporting video in H.264 or H.265<ref>[https://community.fxhome.com/discussion/53628/nvidia-gpu-users-important-please-read/ forum post by staff member saying there is an issue with the way the software is interacting with the encoder but at the same time saying it exsits]</ref> |
* [[HitFilm express/pro]] when previewing video on the timeline or exporting video in H.264 or H.265<ref>[https://community.fxhome.com/discussion/53628/nvidia-gpu-users-important-please-read/ forum post by staff member saying there is an issue with the way the software is interacting with the encoder but at the same time saying it exsits]</ref> |
||
* [[Jellyfin]] has support for NVENC for realtime transcoding<ref>{{cite web | url=https://jellyfin.org/docs/general/server/transcoding | title=Transcoding | Jellyfin }}</ref> |
|||
* [[Logitech Capture]] |
|||
* [[MacroSystem]] [[BogartSE]] supports NVENC export since v9.4 (October 2017) and [[Ultra HD Blu-ray|UHD-Disc]] encoding since v11.3 (October 2019)<ref>[https://www.casablancaexpert.com/articles/arabesk-8-info MacroSystem Arabesk 8 info from Casablanca Expert]</ref> |
* [[MacroSystem]] [[BogartSE]] supports NVENC export since v9.4 (October 2017) and [[Ultra HD Blu-ray|UHD-Disc]] encoding since v11.3 (October 2019)<ref>[https://www.casablancaexpert.com/articles/arabesk-8-info MacroSystem Arabesk 8 info from Casablanca Expert]</ref> |
||
* [[MediaCoder]] |
* [[MediaCoder]] |
||
Line 239: | Line 272: | ||
* [[Shotcut]] |
* [[Shotcut]] |
||
* [[StaxRip]] |
* [[StaxRip]] |
||
* [[Turbo Play]] |
|||
* [[VidCoder]] |
|||
* [[VideoProc]] |
* [[VideoProc]] |
||
* [[vMix]] has supported NVENC since at least 2016, with H.265 and AV1 support starting from version 27 (January 2024)<ref>[https://blog.vmix.com/vmix-27-is-here/ vMix 27 is here!]</ref> |
|||
* [[AJA Bridge Live]]<ref>{{cite web|title=BRIDGE LIVE is a broadcast-quality, low-latency turnkey system | url=https://www.aja.com/products/bridge-live}}</ref> |
|||
== GPU throughput == |
== GPU throughput == |
||
{{cleanup section|reason=Outdated and failed verification as our friend from June 2022 says. [https://www.tomshardware.com/news/amd-intel-nvidia-video-encoding-performance-quality-tested Tom's Hardware] has a 2023 test for H.264 and H.265 across multiple recent models, maybe use that.|date=January 2024}} |
|||
Comparison of Encode Throughput<ref>{{Cite web |title=NVIDIA vGPU Resources for Design & VIrtualization |url=https://www.nvidia.com/en-us/data-center/virtualization/resources/ |website=NVIDIA |language=en-US |access-date=2021-03-24}}</ref> |
Comparison of Encode Throughput<ref>{{Cite web |title=NVIDIA vGPU Resources for Design & VIrtualization |url=https://www.nvidia.com/en-us/data-center/virtualization/resources/ |website=NVIDIA |language=en-US |access-date=2021-03-24}}</ref> |
||
Latest revision as of 09:16, 28 November 2024
Nvidia NVENC (short for Nvidia Encoder)[1] is a feature in Nvidia graphics cards that performs video encoding, offloading this compute-intensive task from the CPU to a dedicated part of the GPU. It was introduced with the Kepler-based GeForce 600 series in March 2012 (GT 610, GT620 and GT630 is Fermi Architecture).[2][3]
The encoder is supported in many livestreaming and recording programs, such as vMix, Wirecast, Open Broadcaster Software (OBS) and Bandicam, as well as video editing apps, such as Adobe Premiere Pro or DaVinci Resolve. It also works with Share game capture, which is included in Nvidia's GeForce Experience software.[4][5][6]
Until March 2023 consumer-targeted GeForce graphics cards officially support no more than three simultaneously encoding video streams, regardless of the count of the cards installed, but this restriction can be circumvented on Linux and Windows systems by applying an unofficial patch to the drivers. Doing so also unlocks NVIDIA Frame Buffer Capture (NVFBC), a fast desktop capture API that uses the capabilities of the GPU and its driver to accelerate capture.[7] Professional cards support between three and unrestricted simultaneous streams per card, depending on card model and compression quality,[2] the restrictions were loosened in 2023 allowing up to 5 simultaneously encoding video streams.[8] From January 2024 onwards, eight simultaneous encoding video streams became the baseline.[9]
Nvidia chips also feature an onboard decoder, NVDEC (short for Nvidia Decoder), to offload video decoding from the CPU to a dedicated part of the GPU.[2]
Versions
[edit]NVENC has undergone several hardware revisions since its introduction with the first Kepler GPU (GK104).[10]
GPU Hardware | H.264 (AVC)
(In H.264, NVENC always has B Frame support, max 4096x4096 resolution, and max 8-bit depth) |
H.265 (HEVC) | AV1 | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
NVENC Generation | GPU Code Name | NVENC per Chip | Chroma | Lossless Coding | Chroma | Lossless Coding | Resolution | Color Depth | B Frames | AV1 | ||||||||||||
4:2:0 | 4:4:4 | 4:2:0 | 4:4:4 | |||||||||||||||||||
1st Gen | GK110 | 1 | H.265 not supported | AV1 not supported | ||||||||||||||||||
GK107 | ||||||||||||||||||||||
GK106 | ||||||||||||||||||||||
GK104 | ||||||||||||||||||||||
2nd Gen | GM107 | 1 | H.265 not supported | AV1 not supported | ||||||||||||||||||
3rd Gen | GM206 | 1 | Y?[12] N?[11] | 4096 x 4096 | 8-bit | |||||||||||||||||
GM204 | 2 | |||||||||||||||||||||
GM200 | ||||||||||||||||||||||
4th Gen | GP108 | 0 | No NVENC encoders available | |||||||||||||||||||
GP107 | 1 | 8192 x 8192 | 10-bit | AV1 not supported | ||||||||||||||||||
GP106 | ||||||||||||||||||||||
GP104-2xx+ | 2 | |||||||||||||||||||||
GP104-1xx | 1 | |||||||||||||||||||||
GP102 | 2 | |||||||||||||||||||||
GP100 | 3 | 4096 x 4096 | ||||||||||||||||||||
5th Gen | GV10x | 8192 x 8192 | ||||||||||||||||||||
TU117 | 1 | |||||||||||||||||||||
6th Gen | TU116 | |||||||||||||||||||||
TU106 | ||||||||||||||||||||||
TU104 | ||||||||||||||||||||||
TU102 | ||||||||||||||||||||||
7th Gen | GA107 | 1 | 8192 x 8192 | 10-bit | Decode only | |||||||||||||||||
GA106 | ||||||||||||||||||||||
GA104 | ||||||||||||||||||||||
GA102 | ||||||||||||||||||||||
GA100[13] | 0 | No NVENC encoders available | ||||||||||||||||||||
8th Gen | AD107 | 1 | 8192 x 8192 | 10-bit | ||||||||||||||||||
AD106 | ||||||||||||||||||||||
AD104-250 | ||||||||||||||||||||||
AD104-400 | 2 | |||||||||||||||||||||
AD103 | ||||||||||||||||||||||
AD102 | ||||||||||||||||||||||
NVENC Generation | GPU Code Name | NVENC per Chip | Chroma | Lossless Coding | Chroma | Lossless Coding | Resolution | Color Depth | B Frames | AV1 | ||||||||||||
4:2:0 | 4:4:4 | 4:2:0 | 4:4:4 |
First generation, Kepler GK1xx
[edit]The first generation of NVENC, which is shared by all Kepler-based GPUs, supports H.264 high-profile (YUV420, I/P/B frames, CAVLC/CABAC), H.264 SVC Temporal Encode VCE, and Display Encode Mode (DEM).
NVidia's documentation states a peak encoder throughput of 8× realtime at a resolution of 1920×1080 (where the baseline "1×" equals 30 Hz). Actual throughput varies on the selected preset, user-controlled parameters and settings, and the GPU/memory clock frequencies. The published 8× rating is achievable with the NVENC high-performance preset, which sacrifices compression efficiency and quality for encoder throughput. The high-quality preset is considerably slower but produces fewer compression artifacts
Second generation, Maxwell GM107
[edit]Introduced with the first-generation Maxwell architecture, second generation NVENC adds support for the high-performance HP444 profile (YUV4:4:4, predictive lossless encoding), and increases encoder throughput up to 16× realtime, which corresponds to about 1080p @ 480 Hz with the high-performance preset.
Maxwell GM108 does not have NVENC hardware encoder support.
Third generation, Maxwell GM20x
[edit]Introduced with the second-generation Maxwell architecture, third generation NVENC implements the video compression algorithm High Efficiency Video Coding (a.k.a. HEVC, H.265) and also increases the H.264 encoder's throughput to cover 4K-resolution at 60 Hz (2160p60). However, it does not support B-frames for HEVC encoding (just I and P frames). The maximum NVENC HEVC coding tree unit (CU) size is 32 (the HEVC standard allows a maximum of 64), and its minimum CU size is 8.
HEVC encoding also lacks Sample Adaptive Offset (SAO). Adaptive quantization, look-ahead rate control, adaptive B-frames (H.264 only) and adaptive GOP features were added with the release of Nvidia Video Codec SDK 7.[14] These features rely on CUDA cores for hardware acceleration.
SDK 7 supports two forms of adaptive quantization; Spatial AQ (H.264 and HEVC) and Temporal AQ (H.264 only).
Nvidia's consumer-grade (GeForce) cards and some of its lower-end professional Quadro cards are restricted to three simultaneous encoding jobs. Its higher-end Quadro cards do not have this restriction.
Fourth generation, Pascal GP10x
[edit]Fourth generation NVENC implements HEVC Main10 10-bit hardware encoding. It also doubles the encoding performance of 4K H.264 & HEVC when compared to previous generation NVENC. It supports HEVC 8K, 4:4:4 chroma subsampling, lossless encoding, and sample adaptive offset (SAO).
Nvidia Video Codec SDK 8 added Pascal exclusive Weighted Prediction feature (CUDA based). Weighted prediction is not supported if the encode session is configured with B frames (H.264).
There is no B-Frame support for HEVC encoding, and the maximum CU size is 32×32.
The NVIDIA GT 1030 and the Mobile Quadro P500 are GP108 chips that don't support the NVENC encoder.[11]
In laptop graphics, NVIDIA MX Graphics do not include NVENC as they are based on a Maxwell-generation GM108 or a Pascal-generation GP108 chip.[15] The GeForce MX350 is a GP107 chip whose NVENC encoder is disabled during manufacture.
Fifth generation, Volta GV10x/Turing TU117
[edit]Volta NVENC has similar performance as Pascal's NVENC. [1]
It does not offer support for HEVC B-Frames.
In mobile graphics, as with most other GeForce MX-series graphics, the GeForce MX450 does not support NVENC as it is a TU117 chip whose hardware encoder is permanently disabled in its manufacture. The GeForce MX550, however, does support NVENC as its hardware encoder remains enabled at manufacturing level.
Sixth generation, Turing TU10x/TU116
[edit]Sixth generation NVENC implements HEVC 8K encoding at 30 FPS, HEVC B-frames and HEVC B-frames as reference (with support for each and middle modes[16]) and Alpha HEVC[17] support and provides up to 25% bitrate savings for HEVC and up to 15% bitrate savings for H.264. The initial launch of the Nvidia GeForce GTX 1650 was exempt from this generation however, as it used Volta NVENC instead of Turing. Nvidia updated the NVENC encoder of the GTX 1650 cards in 2020 to also use the Turing engine.[18] The GTX 1650 Super uses the Turing NVENC engine as it is based on the TU116 rather than the TU117 used in the original GTX 1650.[19]
Seventh generation, Ampere GA10x
[edit]Ampere has essentially the same NVENC generation engine as Turing.[20] The only substantive difference is that NVDEC received support for AV1 decoding (with film grain).
In entry-level mobile graphics, the GA107-chip-based GeForce MX570 comes in two versions, one of which (the GeForce MX570 A) has the hardware decoder and encoder permanently disabled during manufacturing.
Eighth generation, Ada Lovelace AD10x
[edit]Nvidia announced the next-gen NVENC with 8K 10-bit 60FPS AV1 fixed function hardware encoder in Ada Lovelace GPUs.[21][22]
Operating system support
[edit]The Nvidia NVENC SIP core needs to be supported by the device driver. The driver provides one or more interfaces, (e.g. OpenMAX IL) to NVENC. The NVENC SIP core can only be accessed through the proprietary NVENC API (as opposed to the open-source VDPAU API).
It is bundled with Nvidia's GeForce driver.
NVENC is available for Windows and Linux operating systems.[2] The free and open-source nouveau device driver does not support Nvidia NVENC.[23]
Application software support
[edit]- Adobe Premiere Pro added NVENC support in version 14.2 in May 2020[24]
- AJA Bridge Live[25]
- Avidemux has supported NVENC since at least 2016, in H.264 or H.265[26]
- Bandicut
- CyberLink PowerDirector has supported NVENC since Version 16 GM7 3424 Beta Patch (2016) [27]
- DaVinci Resolve Studio when exporting video in H.264 or H.265[28]
- FFmpeg has supported NVENC since 2014,[29] and is supported in Nvidia drivers[30]
- GStreamer through the nvcodec plugin[31]
- HandBrake has supported NVENC since version 1.2.0 (December 2018), for H.264 and H.265[32]
- HitFilm express/pro when previewing video on the timeline or exporting video in H.264 or H.265[33]
- Jellyfin has support for NVENC for realtime transcoding[34]
- Logitech Capture
- MacroSystem BogartSE supports NVENC export since v9.4 (October 2017) and UHD-Disc encoding since v11.3 (October 2019)[35]
- MediaCoder
- Open Broadcaster Software (OBS)
- Shotcut
- StaxRip
- Turbo Play
- VidCoder
- VideoProc
- vMix has supported NVENC since at least 2016, with H.265 and AV1 support starting from version 27 (January 2024)[36]
GPU throughput
[edit]This section may require cleanup to meet Wikipedia's quality standards. The specific problem is: Outdated and failed verification as our friend from June 2022 says. Tom's Hardware has a 2023 test for H.264 and H.265 across multiple recent models, maybe use that. (January 2024) |
Comparison of Encode Throughput[37][citation needed]
Streams | 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 |
See also
[edit]- Intel Quick Sync Video, Intel's equivalent SIP core
- Video Coding Engine, AMD's equivalent SIP core till 2017
- Video Core Next, AMD's video core which combines the functionality of Video Coding Engine and Unified Video Decoder
- Nvidia PureVideo, hardware video decoding
- List of all Nvidia GPUs
- Nvidia NVDEC
References
[edit]- ^ "NVIDIA GeForce RTX 40 Series Graphics Cards". NVIDIA. Retrieved February 28, 2024.
- ^ a b c d "NVIDIA VIDEO CODEC SDK". NVIDIA Developer. Nvidia. August 23, 2013. Retrieved November 12, 2017.
- ^ "Maxwell's Feature Set: Kepler Refined". AnandTech. February 18, 2014.
- ^ "System Requirements for NVIDIA GeForce Experience | GeForce | GeForce". www.geforce.com. Retrieved August 17, 2016.
- ^ "Wirecast Tech Specs". telestream.net. Retrieved December 19, 2017.
- ^ "Open Broadcaster Software – Index". obsproject.com. Archived from the original on March 23, 2019. Retrieved August 17, 2016.
- ^ "nvidia-patch". GitHub.
- ^ Shilov, Anton (March 24, 2023). "Nvidia Lifts Some Video Encoding Limitations from Consumer GPUs". tomshardware. Retrieved March 26, 2023.
- ^ "Video Encode and Decode GPU Support Matrix".
- ^ "S5613 – High-Performance Video Encoding Using NVIDIA GPUs". Nvidia.
- ^ a b c "Video Encode and Decode GPU Support Matrix". NVIDIA Developer. November 9, 2016. Retrieved August 22, 2020.
- ^ a b "NVIDIA VIDEO CODEC SDK". NVIDIA Developer. November 9, 2016. Retrieved August 22, 2020.
- ^ "NVIDIA Ampere Architecture In-Depth". NVIDIA Developer Blog. May 14, 2020. Retrieved August 31, 2020.
- ^ http://on-demand.gputechconf.com/gtc/2016/presentation/s6226-abhijit-patait-high-performance-video.pdf [bare URL PDF]
- ^ "NVIDIA GeForce MX250 i MX230 – dwie "nowe" grafiki do laptopów". Dobre Programy (in Polish). February 21, 2019.
- ^ "B-Frame reference mode flag in ffmpeg nvenc is bugged and doesn't work. · Issue #2374 · obsproject/obs-studio". GitHub. Retrieved March 24, 2021.
- ^ Harrison, John (January 30, 2021). "johnhe4/nvenc_h265_transparency". GitHub. Retrieved March 24, 2021.
- ^ "NVIDIA GeForce GTX 1650 Graphics Card". NVIDIA. Retrieved March 24, 2021.
- ^ Walton, Jarred (November 23, 2019). "Nvidia GeForce GTX 1650 Super review". PC Gamer. Retrieved March 24, 2021.
- ^ "NVIDIA Ampere GA102 GPU Architecture: Second-Generation RTX" (PDF). NVIDIA. Retrieved September 21, 2022.
- ^ Gray, Jon (September 20, 2022). "Creativity At The Speed of Light: GeForce RTX 40 Series Graphics Cards Unleash Up To 2X Performance in 3D Rendering, AI, and Video Exports For Gamers and Creators". NVIDIA. Retrieved September 21, 2022.
- ^ "NVIDIA Video Codec SDK". NVIDIA. August 23, 2013. Retrieved September 21, 2022.
- ^ "Nouveau Feature Matrix". Freedesktop.org.
- ^ Tack, Stanley (May 19, 2020). "Cut to the Video: Adobe Premiere Pro Helps Content Creators Work Faster with GPU-Accelerated Exports | NVIDIA Blog". The Official NVIDIA Blog. Retrieved March 24, 2021.
- ^ "BRIDGE LIVE is a broadcast-quality, low-latency turnkey system".
- ^ AVIDemux Changelog
- ^ CyberLink Forum Official Post
- ^ "Blackmagic Forum • View topic – Davinci studio 16, NVENC unavailable". forum.blackmagicdesign.com. Retrieved March 24, 2021.
- ^ "nvenc.c H.264 hardware encoding using nvidia nvenc".
- ^ "QUADRO DESKTOP/QUADRO NOTEBOOK DRIVER RELEASE 375".
- ^ "Nvcodec".
- ^ HandBrake 1.2.0 released
- ^ forum post by staff member saying there is an issue with the way the software is interacting with the encoder but at the same time saying it exsits
- ^ "Transcoding | Jellyfin".
- ^ MacroSystem Arabesk 8 info from Casablanca Expert
- ^ vMix 27 is here!
- ^ "NVIDIA vGPU Resources for Design & VIrtualization". NVIDIA. Retrieved March 24, 2021.