Llançament del codificador SVT-AV1 2.0 i el descodificador dav1d 1.4 per al format de vídeo AV1

S'ha publicat el llançament de la biblioteca SVT-AV1 2.0 (Scalable Video Technology AV1) amb implementacions del codificador i descodificador del format de codificació de vídeo AV1, per a l'acceleració del qual s'utilitzen els mitjans de computació paral·lel de maquinari presents a les CPU Intel modernes. El projecte va ser creat per Intel en col·laboració amb Netflix amb l'objectiu d'aconseguir un nivell de rendiment adequat per a la transcodificació de vídeo sobre la marxa i l'ús en serveis de vídeo sota demanda (VOD). Actualment, el desenvolupament s'està duent a terme sota els auspicis de l'Open Media Alliance (AOMedia), que supervisa el desenvolupament del format de codificació de vídeo AV1. Anteriorment, el projecte es va desenvolupar en el marc del projecte OpenVisualCloud, que també desenvolupa els codificadors SVT-HEVC i SVT-VP9. El codi es distribueix sota la llicència BSD.

SVT-AV1 es pot muntar per a sistemes basats en qualsevol arquitectura per als quals hi hagi un compilador que admeti l'estàndard C99, però el millor rendiment s'aconsegueix en sistemes x86_64, per als quals s'utilitzen optimitzacions de muntatge basades en instruccions SIMD (és desitjable tenir Suport AVX2 a la CPU, però com a mínim és suficient i SS2). El consum de memòria depèn del nombre de nuclis de processador utilitzats durant la codificació, regulat per l'opció "-lp". A causa de la complexitat dels algorismes utilitzats a AV1, la codificació d'aquest format requereix molt més recursos que altres formats, la qual cosa no permet l'ús del codificador AV1 estàndard per a la transcodificació en temps real. Per exemple, el codificador d'estoc del projecte AV1 requereix 5721, 5869 i 658 vegades més càlculs en comparació amb els codificadors x264 (perfil principal), x264 (perfil alt) i libvpx-vp9.

Entre els canvis en la nova versió de SVT-AV1:

  • S'ha fet una transició a una nova numeració de versió, segons la qual el primer dígit de la versió canviarà amb cada canvi d'API/ABI.
  • S'han fet canvis a l'API relacionats amb la transició a la indicació de finalització del flux (EOS - End Of Stream) a l'últim fotograma en comptes d'utilitzar un fotograma buit, la qual cosa va eliminar el retard en l'espera d'un fotograma addicional. El canvi de l'API ja es reflecteix a la base de codi FFmpeg.
  • S'ha eliminat el mode de velocitat de bits variable de tres passades (VBR de tres passades) i ara se substitueix per un mecanisme de VBR de múltiples passades. El mode multipass VBR s'ha reduït a dues passades per garantir la integració amb FFmpeg.
  • S'han afegit optimitzacions al codificador, com a resultat de la qual cosa l'eficiència de compressió dels presets M9-M13 ha augmentat en un 1-4% i el consum de memòria del preajust M5 ha disminuït entre un 20 i un 35% en mode LP 8 i un 1-5% en altres modes. El consum de memòria en altres presets es va reduir entre un 1 i un 5%.
  • S'ha dut a terme l'optimització dels compromisos qualitat/velocitat per a presets que estableixen un alt nivell de qualitat. La qualitat de referència predeterminada MR s'ha accelerat un 100%.
  • S'han afegit optimitzacions específiques d'ARM a les funcions només C.

A més, podem destacar el llançament del projecte dav1d 1.4.1, dins del qual les comunitats VideoLAN i FFmpeg estan desenvolupant una biblioteca amb la implementació d'un descodificador gratuït alternatiu per al format de codificació de vídeo AV1. La biblioteca dav1d admet totes les característiques d'AV1, inclosos els tipus avançats de submostreig i tots els paràmetres de control de profunditat de color indicats a l'especificació (8, 10 i 12 bits). La característica clau de dav1d és el seu enfocament a aconseguir el rendiment de descodificació més alt possible i garantir un treball d'alta qualitat en mode multiprocés. El codi del projecte està escrit en C (C99) amb insercions de muntatge (NASM/GAS) i es distribueix sota la llicència BSD. S'ha implementat el suport per a les arquitectures x86, x86_64, ARMv7 i ARMv8 i els sistemes operatius FreeBSD, Linux, Windows, macOS, Android i iOS.

La versió dav1d 1.4 destaca per donar suport a les noves arquitectures Loongarch i RISC-V, així com per introduir optimitzacions addicionals basades en instruccions AVX-512, accelerar l'operació de filtres de 6 taps en sistemes ARM, augmentar l'eficiència del treball multifils i reduir la mida de les dades binàries als sistemes ARM64, ARM32 i RISC V. S'ha solucionat la vulnerabilitat CVE-2024-1580, que provocava una escriptura fora de límits a causa d'un desbordament d'enters en processar mides de fotogrames molt grans.

Font: opennet.ru

Afegeix comentari