Contexte et motivations
Depuis plusieurs années, les développeurs web recherchent un format d’image capable de réduire la taille des fichiers tout en conservant la qualité, notamment pour les photographies haute fidélité et les contenus HDR. Chrome 155, publié en octobre 2026, ajoute le support natif du décodage du format JPEG XL (.jxl). Selon les spécifications du format, JPEG XL offre entre 30 % et 50 % de compression supérieure à JPEG, tout en proposant une compression sans perte, la prise en charge du HDR et la conversion sans perte depuis JPEG.
Réécriture du décodeur en Rust
Les décodeurs d’images représentent une surface d’attaque importante dans les navigateurs, car ils traitent des flux binaires non fiables provenant du réseau. Historiquement, les implémentations en C++ ont présenté des vulnérabilités telles que des lectures hors limites ou des débordements de tas. Pour éliminer ces risques à la source, l’équipe Chrome a intégré jxl‑rs, une réimplémentation purement Rust du décodeur JPEG XL. Rust garantit la sécurité mémoire grâce à son système de possession, ce qui a permis de réduire le nombre d’opérations potentiellement dangereuses à un petit nombre de points soigneusement audités.
Optimisations SIMD et performances
La performance d’un codec moderne dépend largement de l’exploitation des instructions SIMD disponibles sur les processeurs. Le projet a stabilisé la fonctionnalité target_feature_11 de Rust, autorisant l’usage d’instructions SIMD sans recourir à du code unsafe. Un niveau d’abstraction SIMD (jxl_simd) a été construit, inspiré de la bibliothèque C++ Highway utilisée dans la référence libjxl. Cette couche permet d’écrire du code portable tout en conservant des optimisations spécifiques à chaque architecture. Le pipeline de traitement minimise les copies de données, ce qui améliore le débit sur les plateformes x86, ARM et WebAssembly. Les mesures publiées sur le tableau de bord de performance de jxl‑rs montrent que le décodage Rust se situe à quelques pourcents du décodage C++ le plus rapide, tout en conservant la garantie d’absence de bugs de sécurité, confirmée par un programme de fuzzing intensif et une revue assistée par IA.
Retour des développeurs et perspectives
Le choix d’intégrer JPEG XL repose sur un suivi continu des retours des développeurs via le Developer Signals Project, les rapports de bugs et le Interop Project. Le format a été largement soutenu lors du processus Interop 2026, où il a reçu une couverture de test exhaustive pour chaque fonctionnalité du standard. Chrome a participé aux investigations Interop 2026 afin de valider la conformité du décodage. L’équipe encourage désormais les créateurs de contenu et les plateformes à adopter le format .jxl dans leurs pipelines, tout en invitant les développeurs à soumettre des rapports de bugs pour affiner l’implémentation. Cette intégration illustre la capacité du navigateur à évoluer rapidement en réponse aux besoins du web tout en maintenant un niveau élevé de sécurité et de performance.