¿Para qué sirve NVIDIA NVENC y cómo beneficia a los usuarios?

¿Para qué sirve NVIDIA NVENC y cómo beneficia a los usuarios?

Rodrigo Alonso

Probablemente habréis oído el término NVENC de NVIDIA en varias ocasiones, especialmente cuando se trata de codificación de vídeo, ya sea en streaming o a la hora de renderizarlo. En este artículo vamos a contaros qué es NVENC, para qué sirve y qué beneficios aporta a quien lo utiliza.

Como su propio nombre indica, NVENC es una tecnología propietaria de NVIDIA, ya que su nombre proviene del acrónimo NVIDIA Video ENCoding, ni más ni menos. Por lo tanto, uno de los requisitos para poder usarlo es tener una tarjeta gráfica de la marca, pero como vamos a explicar a continuación no vale cualquiera.

¿Qué es NVENC?

Bajo el nombre de NVENC existe un pequeño coprocesador dentro de las GPU de NVIDIA cuyo trabajo es el de codificar vídeo, es decir, recoger varios fotogramas y su audio correspondiente para codificarlos en un formato de vídeo concreto que sea soportado por este. Gracias a esta función no solo el procesador queda liberado de realizar esta tarea, sino también a la tarjeta gráfica.

El motivo de ello es que sería posible efectuar codificación de vídeo a través computación vía shaders, pero el consumo energético por hacerlo sería mucho mayor. Se introdujo por primera vez con las tarjetas gráficas GeForce GTX 600 Series de arquitectura Kepler, y, por lo tanto, uno de los requisitos para poder utilizarlo es contar con una de estas GPU o más moderna.

El NVENC se encuentra dentro de la GPU por el hecho que el búfer de imagen que genera se almacena en la memoria local de la tarjeta gráfica, también conocida como VRAM, y es necesario que el codificador de vídeo tenga acceso al contenido de dicha memoria, la cual es de uso exclusivo de la tarjeta gráfica.

¿Qué beneficios aporta?

Diagrama NVENC

Como hemos explicado hace un momento, NVENC permite hacer codificación y decodificación por hardware directamente en la GPU, liberando a la CPU de esta tarea de cómputo intensiva. Al tener muchos más núcleos a su disposición y que además están optimizados para gestionar información de vídeo, no solo se consigue un rendimiento muchísimo más elevado, sino que también más eficiente en cuanto a rendimiento por vatio por los motivos que os hemos comentado antes.

En realidad es gracias a este tipo de unidades que podemos ver vídeos en un smartphone por ejemplo, no hay diferencia en funcionamiento en este tipo de unidades en su versión de PC respecto a las versiones para otro tipo de hardware. Formulado de otra forma, no tiene sentido hacer que un PC gaste decenas e incluso cientos de vatios para realizar la misma tarea que un teléfono móvil.

Eso si, el NVENC tiene una limitación si utilizas una GeForce, ya que únicamente admiten 2 transmisiones de vídeo de codificación al mismo tiempo, independientemente del número de tarjetas gráficas instaladas, así que incluso en configuraciones Quad-SLI solamente podrás codificar dos vídeos simultáneamente. Por su parte, las gráficas profesionales admiten hasta 21 transmisiones simultáneas por tarjeta gráfica, según el modelo y la calidad de compresión escogida.

Compatibilidad con el software

Cambiar de encoder en OBS

El codificador NVENC es compatible de manera nativa con muchos programas de transmisión y grabación como Wirecast, Open Broadcaster Software (OBS) y Bandicam, y también funciona con la captura de juegos Share que se incluye en el software GeForce Experience.

La parte buena de este sistema es que la mayoría de software de codificación de vídeo lo soporta de manera nativa, por lo que como usuarios tan solo tendremos que seleccionarlo en las opciones de dicho programa. Por ejemplo, en Open Broadcaster Software podemos escoger procesar el vídeo mediante NVENC en las opciones para que inmediatamente deje de utilizar el procesador principal para ello y creednos que la diferencia en rendimiento se nota.

Para los usuarios que tengan una tarjeta gráfica NVIDIA, el poder utilizar esta característica liberará muchos recursos al procesador a la hora de grabar nuestras partidas y transmitirlas a través de la red permitiendo un mejor rendimiento en este y esto es crucial si tienes una CPU poco potente. El problema viene por lo que os hemos contado antes, la cantidad de streams que soporta el NVENC está limitado, por lo que hay que ir con cuidado a la hora de retransmitir contenido para las plataformas de emisión en directo, ya que nos podemos ver a nuestro procesador ahogado por un tercero o cuarto emisión a codificar a tiempo real.

NVDEC, la contrapartida de NVENC

NVENC y NVDEC

NVENC viene acompañado por NVDEC (NVIDIA Video DECoder) para hacer la operación contraria, complementándose el uno con el otro. En el siguiente esquema podéis encontrar toda la información relativa a ello.

El NVDEC es mucho más veterano que el NVENC, ya que los codificadores de vídeo empezaron a integrarse en las tarjetas gráficas en la primera década de los 2000, lo que llevo a que no fuera necesario comprarse una tarjeta descodificadora MPEG-2 para ver vídeos en DVD. Ya cuando llego la alta definición los coprocesadores integrados en las GPU ya llegaron a la suficiente capacidad para realizar su tarea que dicho hardware de manera separada no hizo falta nunca más.

NVIDIA le hizo un borrón y cuenta nueva a su NVDEC a partir de su arquitectura Kepler, y desde entonces ha ido aumentando a un ratio de casi una versión por generación. Así, la segunda generación llegó con las GPUs Maxwell GM107, la tercera con Maxwell GM20X, la cuarta con Pascal GP10X, la quinta con Volta GV10X y Turing TU117, y la sexta generación con Turing TU10X / TU116, la séptima generación ha llegado con las RTX 30 con arquitectura Ampere.

Cada nueva generación de las tarjetas NVIDIA GeForce tienen tanto un NVENC  como un NVDEC mejorados, los cual soportas nuevos formatos de vídeo a codificar y aumenta la cantidad de resoluciones y tasas de fotogramas de los formatos ya previamente soportados. Por lo que se trata de una característica que va evolucionando con el tiempo, todo gracias a que NVIDIA va mejorando la unidad encargada de codificar vídeo, ya que NVENC no hace referencia a la GPU en sí misma, sino a un pequeño procesador o acelerador en el interior del mismo.

1 Comentario