Une nouvelle implémentation en Rust du décodeur AV1 suscite un débat sur le coût, la performance et la sécurité dans le logiciel multimédia
Le monde du logiciel multimédia open source vient de connaître un nouvel épisode de tension technologique. FFmpeg, l’un des projets les plus influents dans le traitement de la vidéo et de l’audio, a émis un commentaire sarcastique à propos de rav1d, un décodeur AV1 écrit en Rust et développé par la fondation Prossimo.
Ce commentaire est survenu à la suite d’un programme de récompenses lancé par Prossimo, offrant jusqu’à 20 000 dollars à quiconque parviendrait à égaler la performance de dav1d, le décodeur AV1 le plus rapide du monde, écrit en C. Selon FFmpeg : “Rust est si bon que vous pouvez être payé 20 000 dollars pour le rendre aussi rapide que C”, dans une critique claire des différences de performance et de l’approche adoptée par Prossimo.
Qu’est-ce que rav1d ?
Rav1d est une implémentation en Rust du décodeur AV1, conçue comme une alternative plus sécurisée à dav1d, qui est écrit en C. AV1 est un codec vidéo moderne et libre de droits, largement utilisé par des géants tels que Netflix, YouTube et Twitch pour la compression efficace de la vidéo sur Internet.
Rust a gagné en popularité comme langage orienté vers la sécurité de la mémoire, une propriété critique pour les logiciels de bas niveau, notamment pour les bibliothèques utilisées dans des millions de dispositifs et systèmes.
Sécurité vs performance
Le but de Prossimo avec rav1d n’est pas seulement d’égaler la performance de dav1d, mais aussi d’offrir une base de code qui réduit les erreurs de sécurité résultant de la gestion manuelle de la mémoire, fréquente dans C et C++. La récompense vise à réduire un écart de performance de 5 % entre rav1d et dav1d, ce qui peut être significatif dans le domaine de la décompression vidéo.
Cependant, les règles du programme excluent une grande partie de la communauté mondiale des développeurs, limitant la participation pour des raisons légales et réglementaires à certaines régions. Cela a suscité des critiques concernant l’inclusivité de l’initiative.
La position de FFmpeg et de l’industrie
Le ton sarcastique de FFmpeg reflète un courant de scepticisme à l’égard de Rust au sein d’une partie de la communauté des développeurs de C. Bien que beaucoup reconnaissent les avantages de Rust en matière de sécurité, d’autres doutent de son efficacité dans des projets où la performance est prioritaire et le contrôle à bas niveau est essentiel.
Ce n’est pas la première fois que Rust suscite la controverse. Au sein même du noyau de Linux, son inclusion a fait l’objet de débats internes, conduisant récemment à la formalisation d’une politique visant à éviter les conflits découlant de l’introduction de ce nouveau langage.
Le contexte géopolitique de la sécurité de la mémoire
La discussion autour de rav1d ne se déroule pas dans le vide. En 2024, la Maison Blanche a publié un rapport officiel appelant à l’adoption de langages sûrs pour la mémoire afin de réduire les vulnérabilités exploitables, soutenant explicitement des langages comme Rust. Dans cette optique, des projets comme rav1d représentent une évolution naturelle dans la chaîne de logiciels critiques.
Est-il judicieux d’investir pour égaler C ?
La question centrale est de savoir s’il vaut la peine d’investir des dizaines de milliers de dollars juste pour égaler la performance d’une implémentation en C. Pour ceux qui privilégient la sécurité, la réponse est oui : Rust permet de maintenir un équilibre entre performance acceptable et moindre risque de défaillances catastrophiques. Pour d’autres, il s’agit d’une duplication d’efforts avec un résultat encore inférieur.
Quoi qu’il en soit, le débat reste ouvert, et l’industrie assiste en temps réel à la redéfinition de l’équilibre entre performance, coût et sécurité dans le logiciel d’infrastructure.
Plus d’informations et code source
Références : itsfoss et Memory Safety