Uno de los aspectos más complicados en la informática y más pesados es la codificación de vídeo. El streaming requiere de una gran potencia de cómputo para comprimir la imagen y mandar, sin pérdida de calidad de video. Las tarjetas gráficas NVIDIA agregan la tecnología NVENC y te vamos a explicar qué es y para qué sirve y, sobre todo, cómo puedes beneficiarte de ella.
Las tarjetas gráficas sirven para muchas más cosas que jugar. Aunque las asociamos al gaming, debido a la capacidad de paralelización de tareas, pueden hacer muchas otras tareas complejas. Se utilizan en medicina para simulación de medicamentos, en muchas ramás de la medicina o en biología, entre muchos otros campos y ni qué decir de los tiempos en los que se minaban criptomonedas gracias a su capacidad y potencia de proceso.
Donde también tienen importancia es en la edición de fotografía, en la tarea de compresión de imágenes o renderizado de vídeos, sobre todo los más grandes 4K que necesitan de mucha potencia de proceso en bruto. Obviamente, también en compresión/descompresión de transmisiones de video. Vamos, que ofrecen grandes capacidades en muchos ámbitos aunque en casa solo nos ciñamos a la parte de los videojuegos.
¿Qué es NVENC?
Es una tecnología integrada en las tarjetas gráficas de NVIDIA para la codificación de video. Se utiliza la GPU, ya que la misma tarea realizada por el procesador requeriría de mucho más tiempo. La tecnología fue introducida en las tarjetas gráficas GTX 600 Series de arquitectura Kepler, lanzadas en 2012.
Actualmente, es un componente vital en las transmisiones de video en vivo, vamos, en la realización de streaming en plataformas de Twitch o YouTube. También es especialmente importante en tareas de edición de video con herramientas como Adobe Premire o After Effects, donde acelera muchos de los procesos que, hasta hace relativamente poco, eran muy exigentes en cuanto a horas de trabajo y renderizado.
Eso sí, debes tener en cuenta que estas gráficas presentan NVENC (abreviatura de NVIDIA Encoder) una limitación importante. Los modelos de consumidor (GTX y RTX) admiten un máximo de 3 transmisiones de video codificadas de manera simultánea. Da igual si hablamos de una o cinco tarjetas gráficas, dicha limitación se mantiene. Para tarjetas gráficas profesionales se permiten hasta 21 flujos de transmisión de vídeo.
¿Dónde se encuentra el NVENC?
Dentro de la GPU tenemos un codificador de video integrado, situado en la memoria VRAM. Se sitúa en este punto, ya que el búfer de imagen se genera y almacena en este punto. Gracias a este sistema, todo el proceso de codificación y decodificación se realiza en la GPU. Se consigue liberar al procesador de una tarea de cómputo pesada que le costaba gestionar por sus limitaciones técnicas. El motivo es la cantidad de núcleos que tiene una GPU, bastante superior a las de un procesador, por lo que ayuda en la tarea de acelerar este tipo de trabajos.
¿Qué beneficios aporta?
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. Así que, de alguna manera, también nos ayuda a ahorrar energía.
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, pero se trata de dispositivos orientados a grandes empresas audiovisuales que viven de la distribución o creación de este tipo de contenidos.
Compatibilidad con el software
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.
Proceso de decodificación
NVENC viene acompañado por NVDEC (NVIDIA Video DECoder) para hacer la operación contraria, complementándose el uno con el otro. En el esquema que os dejamos más abajo podéis encontrar toda la información relativa a ello pero básicamente viene a explicarnos que el decodificador realiza la tarea contraria al codificador, en un flujo que obviamente siempre se mantiene constante cuando llevamos a cabo una de estas retransmisiones.
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 soporta 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.