Llega la nueva versión de dav1d 1.0.0,el decodificador AV1 desarrollador por VideoLAN

marzo 26, 2022 , 0 Comments

Hace pocos dias las comunidades de VideoLAN y FFmpeg dieron a conocer el lanzamiento de la nueva versión de la biblioteca dav1d 1.0.0. Esta es una implementación de un decodificador gratuito alternativo del formato de codificación de video AV1.

La biblioteca dav1d admite todas las características de AV1, incluidos los tipos avanzados de disminución de resolución y todos los parámetros de control de profundidad de color declarados en la especificación (8, 10 y 12 bits). La biblioteca se probó en una gran colección de archivos en formato AV1.

El codec de video AV1 fue desarrollado por Open Media Alliance.(AOMedia), en el que están representadas compañías como Mozilla, Google, Microsoft, Intel, ARM, NVIDIA, IBM, Cisco, Amazon, Netflix, AMD, VideoLAN, CCN y Realtek

AV1 se posiciona como un formato de codificación de video de acceso libre que no requiere el pago de tarifas, lo que es notablemente superior a H.264 y VP9 en términos de compresión.

El decodificador de referencia para AV1 es excelente, pero es una base de código de investigación, por lo que tiene mucho que mejorar. Es por ello que las comunidades VideoLAN, VLC y FFmpeg comenzaron a trabajar en un nuevo decodificador, patrocinado por la Alliance of Open Media, para crear el decodificador optimizado de referencia para AV1.

Una característica clave de dav1d es su enfoque en lograr el rendimiento de decodificación más alto posible y garantizar un funcionamiento multiproceso de alta calidad.

Principales novedades de dav1d 1.0.0

En esta nueva versión que se presenta del decodificador se han realizado diversas correcciones de errores pequeños que se informaron desde el principio, ademas de que se han implementado funciones importantes.

Y es que en esta nueva versión de dav1d 1.0.0 se ha rehecho la organización de subprocesos múltiples, incluido el control de flujo automático, con lo cual se ha mejorado el rendimiento con respecto a AVX2 frente a SSE 4.1

Otro de los cambios que se destacan de esta nueva versión es que se agregó la capacidad de acelerar los cálculos usando instrucciones vectoriales AVX-512, ademas de que se mejoraron las optimizaciones agregadas previamente basadas en las instrucciones SSE2 y AVX2.

Por otra parte podremos encontrar que se ha propuesto una nueva API para facilitar el uso de la GPU para la aceleración y que se ha agregado una API para obtener información sobre los marcos con los que hubo problemas durante la decodificación.

Mientras que por la parte de los errores solucionados en esta nueva versión, se mencionan los siguientes:

  • Se solucionó un problema con la DLL de Windows de 32 bits que fallaba en las funciones dav1d_ipred_*_ssse3
  • Solución a un bloqueo cuando al realizar una reproducción, si no hay un fotograma clave en el primer fotograma.
  • Errores de desbordamiento de enteros detectados a través de Libfuzzer
  • arm64 ASM falla en Apple M1
  • Compilación de Android rota (símbolo indefinido: pthread_getaffinity_np)
  • Solución a los problemas para compilar ffmpeg con libdav1d en Windows
  • Error de compilación (errores del enlazador de «referencia indefinida») en Linux si el indicador -fprofile-instr-generate de Clang está en CFLAGS
  • La búsqueda intensa en un archivo de video crea artefactos de bloqueo aleatorios
  • Los errores no se propagan al usar subprocesos de marco
  • Permitir que dav1d_get_picture devuelva información sobre qué paquete era malo
  • Agregar subprocesos múltiples predeterminados básicos
  • El caso de prueba de Fuzzer da como resultado 3 fotogramas con dav1d frente a 0 fotogramas con libaom.
  • Implementar valores predeterminados de subprocesos inteligentes basados ​​en el contenido y el sistema

Finalmente si quieres conocer más al respecto sobre esta nueva versión y también sobre el proyecto de este decodificador, puedes consultar los detalles en el siguiente enlace.

¿Como instalar el decodificador dav1d en Ubuntu y derivados?

Para quienes estén interesados en poder instalar este decodificador en sus sistemas, podrán hacerlo siguiendo las instrucciones que compartimos a continuación.

De manera general, para la mayoría de las distribuciones de Linux, los chicos del proyecto VideoLan, ofrecen el paquete del decodificador por medio de un paquete Snap.

Por lo que para instarlo por este medio, solo requiere que su distribución cuente con el soporte para este tipo de paquetes.

En una terminal solo tienen que ejecutar el siguiente comando:

sudo snap install dav1d --edge


Some say he’s half man half fish, others say he’s more of a seventy/thirty split. Either way he’s a fishy bastard.