Optimisation d'un décodeur AV1 Rust : éviter les zéros inutiles et optimiser les comparaisons de structures

2025-05-22
Optimisation d'un décodeur AV1 Rust : éviter les zéros inutiles et optimiser les comparaisons de structures

En comparant les performances du décodeur AV1 basé sur Rust, rav1d, et celui basé sur C, dav1d, l'auteur, utilisant un profileur d'échantillonnage, a identifié deux goulots d'étranglement de performance. Le premier était le zéro inutile d'une mémoire tampon dans rav1d sur l'architecture ARM, entraînant une dégradation des performances. Le second était une implémentation inefficace des comparaisons de structures dans rav1d. En utilisant `MaybeUninit` pour éviter les zéros inutiles et en optimisant les comparaisons de structures, l'auteur a amélioré les performances de rav1d de près de 2%.

Développement Décodeur AV1