Qué es el códec AV1, cómo funciona, ventajas y hardware soportado
En los últimos años, ha aparecido un códec de vídeo que se ha vuelto extremadamente popular. Nos estamos refiriendo al AV1, el cual recientemente ha conseguido soporte completo en las tarjetas gráficas de última generación de AMD, NVIDIA e Intel. Es por ello que os vamos a contar todos los secretos del mismo y en que se diferencia del resto.
A la hora de hacer streams por internet o distribuir vídeos, la elección del códec adecuado es sumamente importante. Se busca siempre el máximo rendimiento en cuanto a calidad de imagen y con la tasa de bits más baja de todas y en ambos aspectos el AV1 destaca por encima del resto.
Antes de nada, ¿Qué es un códec?
Hemos de partir del hecho de que un códec de vídeo no es más que un formato de archivo que nos permite codificar una secuencia de imágenes y audio con un algoritmo de compresión concreto para que el archivo ocupa mucho menos. De ahí el nombre de códec, ya que es necesario codificar el archivo para guardarlo para posteriormente decodificarlo para poder reproducirlo.
A lo largo de la historia de la reproducción del vídeo en formato digital hemos tenido varios códecs de vídeo, muchos de ellos han pasado a mejor vida por ser menos eficientes en cuanto a calidad de imagen y ratio de compresión, ya que hemos de partir que estos empezaron como formas de almacenar vídeo en discos ópticos como son el CD, el DVD y el Blu-Ray para luego con la llegada del internet de banda ancha para servir para cosas como el streaming de vídeos por internet o el juego en la nube.
A día de hoy la gran preocupación para los creadores de los códecs de vídeo como el AV1 es conseguir una calidad de imagen y sonido lo suficientemente buena con el menor bitrate posible. Es decir, que el archivo ocupe poco y use poco ancho de banda de la red. No solo para que el usuario final pueda reproducir sin problemas el contenido, sino para que los costes de distribución no sean demasiado altos. Todo ello incentiva a la creación de nuevos formatos de vídeo, cada vez más avanzados, que permitan conseguir resoluciones más altas con la menor tasa de bits posible.
De acuerdo, ¿y quién se encarga de ejecutarlo?
Cuando se codifica o descodifica un archivo con un códec de vídeo, no se trabaja por frames enteros, sino por bloques de píxeles. Por lo que es muy importante tener la mayor capacidad de núcleos posible para ejecutarlo. El motivo es sencillo, repartiendo el trabajo entre varias unidades de procesamiento de forma simétrica, se termina el trabajo mucho antes. Pero, ¿dónde se ejecuta el códec AV1?
¿Lo hace la CPU?
Es por ello que la codificación y descodificación de vídeo se suele realizar de forma más eficiente en las tarjetas gráficas que en las CPU. Sin embargo, cuando uno se lanza al mercado por primera vez, lo hace como un programa que depende del procesador central.
¿Es la tarjeta gráfica acaso?
El segundo paso es ejecutarlo en una tarjeta gráfica, esto supone que toma forma de programa shader de propósito general, lo que solemos llamar Compute Shaders y con ello se libera a la CPU de tener que codificar el vídeo. y esto es importante por el hecho que a medida que va pasando el tiempo la carga computacional de los nuevos formatos va creciendo. Ahora bien, si bien los recursos que consume de la GPU y el consumo energético es menor que el de la CPU haciendo el mismo trabajo, la cosa se puede mejorar.
No, se trata de una pieza especializada
Esto nos lleva al tercer paso, el códec de vídeo por hardware, este es un procesador de función fija total o parcial, el cual esta pensado para realizar el algoritmo de decodificación de los bloques de vídeo a gran velocidad. Es decir, en el caso del AV1 el archivo dividido en bloques es enviado a esta pieza que realiza dicha tarea liberando a la GPU y permitiendo que esta cree los frames de nuestro juego favorito sin tenerse que preocupar de codificar y reproducir los streams de vídeo.
Lo mejor de todo es que ocupan una parte muy ínfima del chip y hacen su trabajo con un consumo hasta 100 veces menor que los dos anteriores. ¿Y dónde se encuentra? Pues lo podemos encontrar dentro de todas las GPU y en las CPU con gráfica integrada.
Hardware | Reprodución | Codificación | Resolución máxima | Notas |
---|---|---|---|---|
AMD RX 6000 | Si | No | 8K 10 bits 60 FPS | Las RX 6400 y 6500 (XT) carecen de soporte. |
AMD Ryzen 6000 | Si | No | 4K 10 bits 60 FPS | |
AMD Ryzen 7000 | Si | No | 4K 10 bits 60 FPS | |
AMD RX 7000 | Si | Si | 8K 10 bits 60 FPS | |
Intel Core 11, 12 y 13 | Si | No | 4K 10 bits 60 FPS | |
Intel ARC Alchemist | Si | Si | 8K 10 bits 60 FPS | |
NVIDIA RTX 30 | Si | No | 8K 10 bits 60 FPS | |
NVIDIA RTX 40 | Si | Si | 2 x 8K 10 bits 60 FPS |
Sin embargo, no es lo mismo codificar que descodificar. Es por ello que os hemos dejado una tabla de varias CPU y GPU con dichas unidades para que sepáis sus capacidades respecto al códec AV1 que tienen los diferentes productos disponibles para PC.
Historia del códec de vídeo AV1
Cómo ya sabréis códecs de vídeo han aparecido muchos, unos con mayor éxito que otro, pero los que han sido los más usados han sido siempre los llamados H.26x o más conocidos como los creados por el consorcio MPEG, que han servido para codificar películas comerciales. Por desgracia están cargados de regalías que si bien no pagamos los usuarios, sí que se hace en forma de canon por cada dispositivo vendido que los puede reproducir. El otro problema es se trata de formatos pensados para la reproducción de películas comerciales y, por tanto, no tienen en cuenta el funcionamiento de ciertos medios.
La gestación del AV1 se da en 2015 cuando se crea la Alliance for Open Media, AOM a partir de ahora, por parte de empresas como Amazon, Apple, ARM, Cisco, Google, Huawei, Intel, Meta, Microsoft, Mozilla, Netflix, NVIDIA, Samsung y Tencent. ¿El objetivo? La creación de un códec de video con especificaciones iguales o superiores al H.265, pero totalmente libre de uso, sin patentes y, por tanto, sin tener que pagar regalías por su uso en dispositivos y aplicaciones de software.
El códec se terminó en su primera versión en 2018 y su uso ha ido creciendo hasta que en la última generación de tarjetas gráficas de NVIDIA y AMD, las RTX 40 y las RX 7000, así como las ARC Alchemist de Intel. Todas estas tarjetas gráficas disponen de un códec de vídeo por hardware
¿Qué lo diferencia al AV1 de los otros códecs de vídeo?
Ya hemos visto que todo códec se basa en ir codificando o descodificando los diferentes bloques de píxeles que forman los fotogramas de cada vídeo. Sin embargo, reducir cada vez más el tamaño de estos requiero algoritmos avanzados que a su vez necesitan mucha potencia de procesamiento. Por norma general, cuanto más comprimido están unos datos respecto a su tamaño original, entonces más complejo es algoritmo y más potencia se requiere.
Predicción de movimiento
La primera técnica es la predicción de movimiento, en ella se utiliza la información del fotograma anterior para predecir el fotograma actual. No se trata de la misma técnica usada en los juegos en técnicas como el Temporal AntiAliasing, el DLSS 2 o el FSR 2. Pero casi, lo que se hace es marcar que parte de cada cuadro no cambian de uno a otro sucesivo y los que lo hacen el nivel respecto al anterior.
Esto se debe a que en las escenas, las tomas suelen durar varios segundos y son, por tanto, cientos de frames con información casi idéntica o de muy poca variabilidad en cuanto al valor del color. Lo que permite ahorrar importantes cantidades de información a la hora de generar el archivo de vídeo y retransmitirlo, ya sea en por internet o en una red local.
Transformación de bloques
La otra técnica que utiliza es la de poder dividir los bloques de vídeo en otros más pequeños, esto es clave de cara al uso de tarjetas gráficas de alta potencia y es que hemos de partir que las piezas de hardware especializadas en codificar o descodificar vídeo tienen un límite en su capacidad. Por lo que si hablamos de una gran cantidad de streams simultáneos, a una alta resolución y con una alta tasa de frames por segundo, pues es posible que la pobre pieza se colapse y tengamos que tirar de los núcleos que hacen esos gráficos tan bonitos en 3D.
El problema viene cuando tienes una GPU muy potente y te encuentras con que no aprovecha bien la potencia de la misma. ¿El motivo? Una gran parte del chip está sin hacer nada y es aquí donde entra la transformación de bloques, que permite dividir los bloques (De hasta 128 x 128 píxeles) en otros más pequeños (De hasta 4 x 4 píxeles) a tiempo real.
De esta manera se aprovecha mucho mejor la capacidad de las tarjetas gráficas de gama alta. Esto es sumamente útil en sistemas de transcodificación profesional, así como en el juego en la nube, donde se usan tarjetas gráficas enteras para generar los streams de vídeo.