La version 2.0 de la bibliothÚque SVT-AV1 (Scalable Video Technology AV1) a été publiée, avec des implémentations de l'encodeur et du décodeur du format vidéo AV1, accélérées par les outils de parallélisation des calculs présents dans les CPU Intel modernes. Le projet a été créé par Intel en partenariat avec Netflix afin d'atteindre un niveau de performance adéquat pour le transcodage vidéo en temps réel et son utilisation dans les services de vidéo à la demande (VOD). Actuellement, le développement est mené sous l'égide de l'alliance Open Media (AOMedia), qui supervise l'évolution du format de compression vidéo AV1. Auparavant, le projet était développé dans le cadre d'OpenVisualCloud, qui développe également les encodeurs SVT-HEVC et SVT-VP9. Le code est distribué sous licence BSD.
SVT-AV1 peut ĂȘtre compilĂ© pour des systĂšmes basĂ©s sur n'importe quelle architecture disposant d'un compilateur prenant en charge la norme C99, mais les meilleures performances sont atteintes sur les systĂšmes x86_64 grĂące aux optimisations en assembleur basĂ©es sur les instructions SIMD (la prise en charge AVX2 dans le CPU est souhaitable, mais SS2 suffit comme minimum). La consommation de mĂ©moire dĂ©pend du nombre de cĆurs de processeur utilisĂ©s lors de l'encodage, rĂ©gis par l'option « âlp ». En raison de la complexitĂ© accrue des algorithmes utilisĂ©s dans AV1, l'encodage de ce format nĂ©cessite beaucoup plus de ressources que pour d'autres formats, ce qui empĂȘche l'utilisation de l'encodeur AV1 standard pour le transcodage en temps rĂ©el. Par exemple, l'encodeur standard du projet AV1 nĂ©cessite de 5721 Ă 6589 fois plus de calculs par rapport aux encodeurs x264 (profil « main »), x264 (profil « high ») et libvpx-vp9.
Parmi les changements dans la nouvelle version de SVT-AV1 :
- Un passage à une nouvelle numérotation des versions a été effectué, selon laquelle le premier chiffre de la version changera à chaque modification de l'API/ABI.
- Des modifications ont Ă©tĂ© apportĂ©es Ă l'API, liĂ©es Ă la transition vers l'indication de la fin du flux (EOS â End Of Stream) dans la derniĂšre image, au lieu d'utiliser une image vide, ce qui a permis d'Ă©liminer le dĂ©lai d'attente pour une image superflue. La modification de l'API est dĂ©jĂ reflĂ©tĂ©e dans la base de code de FFmpeg.
- Le mode à trois passes de débit binaire variable (3-pass VBR) a été supprimé, étant remplacé par le mécanisme du VBR multi-pass. Le mode multi-pass du VBR a été réduit à deux passes pour garantir l'intégration avec FFmpeg.
- Des optimisations ont été ajoutées au codificateur, augmentant ainsi l'efficacité de compression des préréglages M9-M13 de 1 à 4 %, tandis que la consommation de mémoire en préréglage M5 a été réduite de 20 à 35 % en mode LP 8 et de 1 à 5 % dans d'autres modes. La consommation de mémoire dans les autres préréglages a diminué de 1 à 5 %.
- Une optimisation des compromis qualité/vitesse a été réalisée pour les préréglages visant un niveau de qualité élevé. La fonctionnalité du préréglage MR, offrant une qualité de référence, a été accélérée de 100 %.
- Des optimisations spécifiques à l'architecture ARM ont été ajoutées aux fonctions écrites uniquement en langage C.
De plus, on peut noter la sortie du projet dav1d 1.4.1, dans le cadre duquel les communautés VideoLAN et FFmpeg développent une bibliothÚque implémentant un décodeur alternatif et libre pour le format de codage vidéo AV1. La bibliothÚque dav1d prend en charge toutes les fonctionnalités d'AV1, y compris les types de sous-échantillonnage avancés et tous les paramÚtres de contrÎle de profondeur de couleur spécifiés (8, 10 et 12 bits). Une caractéristique clé de dav1d est son objectif de parvenir à la meilleure performance de décodage possible et d'assurer un fonctionnement de qualité en mode multithread. Le code du projet est écrit en langage C (C99) avec des insertions en assembleur (NASM/GAS) et est distribué sous licence BSD. Le support pour les architectures x86, x86_64, ARMv7 et ARMv8, ainsi que pour les systÚmes d'exploitation FreeBSD, Linux, Windows, macOS, Android et iOS, a été implémenté.
La version dav1d 1.4 est notable pour le support de nouvelles architectures Loongarch et RISC-V, ainsi que pour l'utilisation d'optimisations supplémentaires basées sur les instructions AVX-512, l'accélération des filtres 6tap sur les systÚmes ARM, l'amélioration de l'efficacité du travail multithread et la réduction de la taille des données binaires sur les systÚmes ARM64, ARM32 et RISC-V. La vulnérabilité CVE-2024-1580, qui entraßnait un écriture hors limites du tampon en raison d'un débordement d'entier lors du traitement de trÚs grandes images, a été corrigée.
Source : opennet.ru
