Nvidia NVENC
Nvidia NVENC (abreviatura de Nvidia Encoder) es una característica de las tarjetas gráficas Nvidia que realiza la codificación de video, descargando esta tarea de cómputo intensivo de la CPU a una parte dedicada de la GPU. Se introdujo con la serie GeForce 600 basada en Kepler en marzo de 2012.[1][2]
El codificador es compatible con muchos programas de grabación y transmisión en vivo, como vMix, Wirecast, Open Broadcaster Software (OBS) y Bandicam, así como con aplicaciones de edición de video, como Adobe Premiere Pro o DaVinci Resolve . También funciona con la captura de juegos Share, que se incluye en el software GeForce Experience de Nvidia.[3][4][5]
Las tarjetas gráficas GeForce dirigidas al consumidor admiten oficialmente no más de 3 transmisiones de video codificadas simultáneamente, independientemente del número de tarjetas instaladas, pero esta restricción se puede eludir en los sistemas Linux y Windows aplicando un parche no oficial a los controladores. Al hacerlo, también se desbloquea NVIDIA Frame Buffer Capture (NVFBC), una rápida API de captura de escritorio que utiliza las capacidades de la GPU y su controlador para acelerar la captura. [6] Las tarjetas profesionales admiten entre 3 y transmisiones simultáneas sin restricciones por tarjeta, según el modelo de tarjeta y la calidad de compresión.[1]
Los chips Nvidia también cuentan con un decodificador integrado, NVDEC (abreviatura de Nvidia Decoder), para descargar la decodificación de video de la CPU a una parte dedicada de la GPU.[1]
Versiones
NVENC ha sido objeto de varias revisiones de hardware desde su presentación con la primera GPU Kepler (GK104).[7]
Hardware de la GPU | H.264 (AVC)
(En H.264, NVENC siempre es compatible con B Frame, resolución máxima de 4096x4096 y profundidad máxima de 8 bits) |
H.265 (HEVC) | AV1 | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Generación NVENC | Nombre de código de GPU | NVENC por chip | Croma | Codificación sin pérdidas | Croma | Codificación sin pérdidas | Resolución | Profundidad del color | B Frames | AV1 | ||||||||||||
4:2:0 | 4:4:4 | 4:2:0 | 4:4:4 | |||||||||||||||||||
1a Gen | GK110 | 1 | H.265 no compatible | AV1 no soportado | ||||||||||||||||||
GK107 | ||||||||||||||||||||||
GK106 | ||||||||||||||||||||||
GK104 | ||||||||||||||||||||||
2a Gen | GM108 | 0 | No hay codificadores NVENC disponibles | |||||||||||||||||||
GM107 | 1 | H.265 no compatible | AV1 no soportado | |||||||||||||||||||
3a Gen | GM208 | 1 | ||||||||||||||||||||
GM206 | Si?[9] No?[8] | Si?[9] No?[8] | 4096 x 4096 | 8-bit | ||||||||||||||||||
GM204 | 2 | |||||||||||||||||||||
GM200 | ||||||||||||||||||||||
4a Gen | GP108 | 0 | No hay codificadores NVENC disponibles | |||||||||||||||||||
GP107 | 1 | 8192 x 8192 | AV1 no soportado | |||||||||||||||||||
GP106 | ||||||||||||||||||||||
GP104-2xx+ | 2 | |||||||||||||||||||||
GP104-1xx | 1 | |||||||||||||||||||||
GP102 | 2 | |||||||||||||||||||||
GP100 | 3 | 4096 x 4096 | ||||||||||||||||||||
5a Gen | GV10x | 8192 x 8192 | ||||||||||||||||||||
TU117 | 1 | |||||||||||||||||||||
6a Gen | TU116 | |||||||||||||||||||||
TU106 | ||||||||||||||||||||||
TU104 | ||||||||||||||||||||||
TU102 | ||||||||||||||||||||||
7a Gen | GA106 | 1 | 8192 x 8192 | |||||||||||||||||||
GA104 | ||||||||||||||||||||||
GA102 | ||||||||||||||||||||||
GA100[10] | 0 | No hay codificadores NVENC disponibles | ||||||||||||||||||||
8a Gen | AD104 | 2 | 8192 x 8192 | |||||||||||||||||||
AD103 | ||||||||||||||||||||||
AD102 |
Primera generación, Kepler GK1xx
La primera generación de NVENC, que es compartida por todas las GPU basadas en Kepler, es compatible con H.264 de alto perfil (YUV420, marcos I/P/B, CAVLC/CABAC), H.264 SVC Temporal Encode VCE y Display Encode Mode (DEM).
La documentación de NVidia establece un rendimiento máximo del codificador de 8 × en tiempo real a una resolución de 1920 × 1080 (donde la línea de base "1 ×" es igual a 30 Hz). El rendimiento real varía según los parámetros y ajustes predeterminados seleccionados y controlados por el usuario, y las frecuencias de reloj de GPU/memoria. La calificación de 8x publicada se puede lograr con el preajuste de alto rendimiento NVENC, que sacrifica la eficiencia y la calidad de la compresión por el rendimiento del codificador. El preajuste de alta calidad es considerablemente más lento pero produce menos artefactos de compresión
Segunda generación, Maxwell GM107
Presentado con la arquitectura Maxwell de primera generación, NVENC de segunda generación agrega soporte para el perfil HP444 de alto rendimiento (YUV4: 4: 4, codificación predictiva sin pérdidas) y aumenta el rendimiento del codificador hasta 16 veces en tiempo real, lo que corresponde a aproximadamente 1080p @ 480 Hz con el preajuste de alto rendimiento.
Maxwell GM108 no es compatible con el codificador de hardware NVENC.
Tercera generación, Maxwell GM20x
Presentado con la arquitectura Maxwell de segunda generación, NVENC de tercera generación implementa el algoritmo de compresión de video Codificación de video de alta eficiencia (también conocido como HEVC, H.265) y también aumenta el rendimiento del codificador H.264 para cubrir la resolución 4K a 60 Hz (2160p60). Sin embargo, no admite fotogramas B para la codificación HEVC (solo fotogramas I y P). El tamaño máximo de unidad de árbol de codificación (CU) NVENC HEVC es 32 (el estándar HEVC permite un máximo de 64) y su tamaño mínimo de CU es 8.
La codificación HEVC también carece de Sample Adaptive Offset (SAO). La cuantificación adaptativa, el control de velocidad anticipada, los fotogramas B adaptativos (solo H.264) y las funciones GOP adaptativas se agregaron con el lanzamiento de Nvidia Video Codec SDK 7. Estas características se basan en núcleos CUDA para la aceleración de hardware.
SDK 7 admite dos formas de cuantificación adaptativa; AQ espacial (H.264 y HEVC) y AQ temporal (solo H.264).
Las tarjetas de nivel de consumidor (GeForce) de Nvidia y algunas de sus tarjetas Quadro profesionales de gama baja están restringidas a tres trabajos de codificación simultáneos. Sus tarjetas Quadro de gama alta no tienen esta restricción.
Cuarta generación, Pascal GP10x
NVENC de cuarta generación implementa la codificación de hardware HEVC Main10 de 10 bits. También duplica el rendimiento de codificación de 4K H.264 y HEVC en comparación con NVENC de la generación anterior. Es compatible con HEVC 8K, submuestreo de croma 4:4:4, codificación sin pérdidas y desplazamiento adaptativo de muestra (SAO).
Nvidia Video Codec SDK 8 agregó la función de predicción ponderada exclusiva de Pascal (basada en CUDA). La predicción ponderada no se admite si la sesión de codificación está configurada con tramas B (H.264).
No hay soporte B-Frame para la codificación HEVC, y el tamaño máximo de CU es 32 × 32.
NVIDIA GT 1030 y Mobile Quadro P500 son chips GP108 que no admiten el codificador NVENC.[8]
En los gráficos para portátiles, los gráficos NVIDIA MX no incluyen NVENC, ya que se basan en un chip GM108 de generación Maxwell o GP108 de generación Pascal.[11] La GeForce MX350 es un chip GP107 cuyo codificador NVENC está desactivado durante la fabricación.
Quinta generación, Volta GV10x/Turing TU117
Volta NVENC tiene un rendimiento similar al NVENC de Pascal.
No ofrece soporte para HEVC B-Frames.
En gráficos móviles, como ocurre con la mayoría de los demás gráficos de la serie GeForce MX, la GeForce MX450 no es compatible con NVENC, ya que es un chip TU117 cuyo codificador de hardware está permanentemente desactivado en su fabricación. Sin embargo, la GeForce MX550 es compatible con NVENC ya que su codificador de hardware permanece habilitado en el nivel de fabricación.
Sexta generación, Turing TU10x/TU116
NVENC de sexta generación implementa la codificación HEVC 8K a 30 FPS, fotogramas B HEVC y fotogramas B HEVC como referencia (con soporte para cada modo y modo medio[12]) y soporte Alpha HEVC[13] y proporciona hasta un 25 % de ahorro de tasa de bits para HEVC y hasta un 15 % de ahorro en la tasa de bits para H.264. Sin embargo, el lanzamiento inicial de la Nvidia GeForce GTX 1650 estuvo exento de esta generación, ya que utilizó Volta NVENC en lugar de Turing. Nvidia actualizó el codificador NVENC de las tarjetas GTX 1650 en 2020 para usar también el motor de Turing.[14] La GTX 1650 Super utiliza el motor Turing NVENC, ya que se basa en el TU116 en lugar del TU117 utilizado en la GTX 1650 original.[15]
Séptima generación, Ampere GA10x
Ampere tiene esencialmente el mismo motor de generación NVENC que Turing.[16] La única diferencia sustancial es que NVDEC recibió soporte para la decodificación AV1 (con grano de película).
En gráficos móviles de nivel de entrada, la GeForce MX570 basada en el chip GA107 viene en dos versiones, una de las cuales (la GeForce MX570 A) tiene el decodificador y codificador de hardware permanentemente desactivados durante la fabricación.
Soporte del sistema operativo
El núcleo Nvidia NVENC SIP debe ser compatible con el controlador del dispositivo. El controlador proporciona una o más interfaces (por ejemplo, OpenMAX IL) a NVENC. Solo se puede acceder al núcleo NVENC SIP a través de la API NVENC patentada (a diferencia de la API VDPAU de código abierto).
Se incluye con el controlador GeForce de Nvidia.
NVENC está disponible para los sistemas operativos Windows y Linux.[1] El controlador de dispositivo nouveau gratuito y de código abierto no es compatible con Nvidia NVENC.[19]
Soporte de software de aplicación
- Adobe Premiere Pro agregó compatibilidad con NVENC en la versión 14.2 en mayo de 2020[20]
- AJA Bridge Live[21]
- Avidemux es compatible con NVENC desde al menos 2016, en H.264 o H.265[22]
- Bandicut
- DaVinci Resolve Studio al exportar video en H.264 o H.265[23]
- FFmpeg es compatible con NVENC desde 2014,[24] y es compatible con los controladores de Nvidia[25]
- HandBrake es compatible con NVENC desde la versión 1.2.0 (diciembre de 2018), para H.264 y H.265[26]
- HitFilm express/pro al previsualizar videos en la línea de tiempo o exportar videos en H.264 o H.265[27]
- Jellyfin tiene soporte para NVENC para transcodificación en tiempo real[28]
- Logitech Capture
- MacroSystem BogartSE admite la exportación NVENC desde la versión 9.4 (octubre de 2017) y la codificación UHD-Disc desde la versión 11.3 (octubre de 2019)[29]
- MediaCoder
- Open Broadcaster Software (OBS)
- Shotcut
- StaxRip
- VideoProc
Rendimiento de GPU
Comparación del rendimiento de codificación[30]
Streams | Codificación H.264 (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 |
Véase también
- Intel Quick Sync Video, el núcleo SIP equivalente de Intel
- Video Coding Engine, el núcleo SIP equivalente de AMD hasta 2017
- Video Core Next, el núcleo de video de AMD que combina la funcionalidad de Video Coding Engine y Unified Video Decoder
- Nvidia PureVideo, decodificación de video por hardware
- Unidades de procesamiento gráfico de Nvidia
- Nvidia NVDEC
Referencias
- «NVIDIA VIDEO CODEC SDK». NVIDIA Developer. Nvidia. Consultado el 12 de noviembre de 2017.
- «Maxwell's Feature Set: Kepler Refined». AnandTech. 18 de febrero de 2014.
- «System Requirements for NVIDIA GeForce Experience | GeForce | GeForce». www.geforce.com. Consultado el 17 de agosto de 2016.
- «Wirecast Tech Specs». telestream.net. Consultado el 19 de diciembre de 2017.
- «Open Broadcaster Software - Index». obsproject.com. Archivado desde el original el 23 de marzo de 2019. Consultado el 17 de agosto de 2016.
- «nvidia-patch». GitHub.
- «S5613 - High-Performance Video Encoding Using NVIDIA GPUs». Nvidia.
- «Video Encode and Decode GPU Support Matrix». NVIDIA Developer (en inglés). 9 de noviembre de 2016. Consultado el 22 de agosto de 2020.
- «NVIDIA VIDEO CODEC SDK». NVIDIA Developer (en inglés). 9 de noviembre de 2016. Consultado el 22 de agosto de 2020.
- «NVIDIA Ampere Architecture In-Depth». NVIDIA Developer Blog (en inglés estadounidense). 14 de mayo de 2020. Consultado el 31 de agosto de 2020.
- «NVIDIA GeForce MX250 i MX230 – dwie "nowe" grafiki do laptopów». Dobre Programy (en polaco). 21 de febrero de 2019.
- «B-Frame reference mode flag in ffmpeg nvenc is bugged and doesn't work. · Issue #2374 · obsproject/obs-studio». GitHub (en inglés). Consultado el 24 de marzo de 2021.
- Harrison, John (30 de enero de 2021). «johnhe4/nvenc_h265_transparency». GitHub. Consultado el 24 de marzo de 2021.
- «NVIDIA GeForce GTX 1650 Graphics Card». NVIDIA (en inglés estadounidense). Consultado el 24 de marzo de 2021.
- Walton, Jarred (23 de noviembre de 2019). «Nvidia GeForce GTX 1650 Super review». PC Gamer (en inglés estadounidense). Consultado el 24 de marzo de 2021.
- «NVIDIA Ampere GA102 GPU Architecture: Second-Generation RTX». NVIDIA. Consultado el 21 de septiembre de 2022.
- Gray, Jon (20 de septiembre de 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. Consultado el 21 de septiembre de 2022.
- «NVIDIA Video Codec SDK». NVIDIA. Consultado el 21 de septiembre de 2022.
- «Nouveau Feature Matrix». Freedesktop.org.
- Tack, Stanley (19 de mayo de 2020). «Cut to the Video: Adobe Premiere Pro Helps Content Creators Work Faster with GPU-Accelerated Exports | NVIDIA Blog». The Official NVIDIA Blog (en inglés estadounidense). Consultado el 24 de marzo de 2021.
- «BRIDGE LIVE is a broadcast-quality, low-latency turnkey system».
- «AviDemux 2.8.1 / 2.8.2 Nightly».
- «Blackmagic Forum • View topic - Davinci studio 16, NVENC unavailable». forum.blackmagicdesign.com. Consultado el 24 de marzo de 2021.
- «nvenc.c H.264 hardware encoding using nvidia nvenc».
- «QUADRO DESKTOP/QUADRO NOTEBOOK DRIVER RELEASE 375».
- «HandBrake: News». handbrake.fr. Consultado el 17 de marzo de 2023.
- «NVIDIA GPU USERS: IMPORTANT PLEASE READ — FXhome Community». community.fxhome.com. 3 de febrero de 2021. Archivado desde el original el 3 de febrero de 2021. Consultado el 17 de marzo de 2023.
- «Transcoding | Jellyfin». jellyfin.org (en inglés). Consultado el 17 de marzo de 2023.
- Expert, Casablanca. «Arabesk 8 Info - Casablanca Expert». www.casablancaexpert.com (en inglés). Consultado el 17 de marzo de 2023.
- «NVIDIA vGPU Resources for Design & VIrtualization». NVIDIA (en inglés estadounidense). Consultado el 24 de marzo de 2021.