A VideoLAN anunciou o lançamento do dav1d 1.5.4, atualização que recebe o codinome “Sonic”. A nova versão do popular decodificador de vídeo open source foca primariamente em otimizações de baixo nível e na manutenção do código. O grande destaque deste ciclo é o esforço da equipe em extrair mais eficiência na reprodução de vídeos no formato AV1 em processadores baseados nas arquiteturas ARM e RISC-V por meio de ajustes precisos em linguagem assembly.
O formato AV1 é conhecido por oferecer alta qualidade de imagem consumindo menos banda de internet, mas o processo de decodificação exige bastante poder computacional. O dav1d existe justamente para tornar essa tarefa mais leve, e a versão 1.5.4 refina ainda mais esse objetivo.
Melhorias diretas no silício para ARM e RISC-V
Para dispositivos móveis e computadores mais modernos, o dav1d 1.5.4 introduz melhorias significativas na arquitetura AArch64 (ARM de 64 bits). Os desenvolvedores otimizaram funções de predição espacial (como ipred_v, ipred_h e a família ipred_smooth) para vídeos de 8 bits por canal. Essas alterações não apenas aceleram a execução, mas também conseguem reduzir o tamanho do código executável na memória. Aparelhos mais antigos não foram esquecidos, já que a arquitetura ARM32 recebeu melhorias na função prep_neon.
O quesito segurança em hardware ARM também ganhou atenção. A VideoLAN adicionou suporte à tecnologia Armv9.3-A GCS (Guarded Control Stack), um recurso de proteção no nível do processador que ajuda a prevenir ataques e vulnerabilidades de corrupção de memória durante a reprodução de mídias.
A arquitetura RISC-V, que continua ganhando espaço no desenvolvimento de hardware de código aberto, recebeu um pacote robusto de aprimoramentos. O decodificador agora conta com otimizações em múltiplos caminhos de predição (ipred) para 8 e 16 bits, além de rotinas mais rápidas para a geração de granulação de filme (generate_grain_y) e operações de cópia. Na prática, placas e sistemas embarcados equipados com RISC-V terão uma reprodução de mídia muito mais fluida e exigirão menos do hardware.
Ganhos de velocidade globais e escalonamento de threads
Além das mudanças atreladas a hardwares específicos, o projeto implementou melhorias estruturais que beneficiam qualquer computador. Uma das alterações de maior impacto para o desempenho geral ocorreu no sistema de multiprocessamento. O decodificador passou a agendar as tarefas dos blocos de vídeo (tiles) para todas as passagens de uma só vez. Isso otimiza o uso das threads, fazendo com que processadores com múltiplos núcleos trabalhem de forma mais sincronizada.
Outras abordagens para poupar ciclos de CPU incluem a pré-computação das tabelas da matriz de quantização diretamente no momento da compilação do software (build time), removendo essa carga da hora da execução. A equipe também moveu cálculos repetitivos (invariáveis) para fora dos loops críticos de processamento, garantindo que o programa perca menos tempo em operações redundantes.
No campo da portabilidade, o dav1d 1.5.4 melhora a compatibilidade com sistemas operacionais fora do padrão POSIX e adota o uso de um checkasm externo. A atualização traz ainda uma adição curiosa e técnica: o suporte oficial ao clássico sistema OS/2, contemplando exportações de API e código assembly próprio.
Essas novidades chegarão gradativamente aos usuários finais à medida que navegadores, reprodutores multimídia e distribuições Linux atualizarem a biblioteca em seus repositórios e aplicativos.