Publié le : 6 octobre 2026
Nous avons le plaisir de vous annoncer que Chrome prend en charge le décodage du format d'image JPEG
XL (.jxl) à partir de Chrome 155. JPEG XL est un format d'image de nouvelle génération conçu pour répondre aux besoins des développeurs Web et des photographes modernes. Il offre une compression 30 à 50% supérieure à celle du format JPEG, une compression sans perte, une prise en charge HDR intégrée, un transcodage JPEG sans perte et plus encore.
En général, nous vous recommandons d'essayer les deux formats pour obtenir les meilleurs résultats. Nous pensons que JPEG XL est particulièrement utile pour la compression haute fidélité ou sans perte, en particulier pour les images photographiques ou dans les cas où un décodage progressif précis est préférable.
Dans cet article, nous vous expliquons pourquoi nous avons intégré JPEG XL à Chrome, comment nous avons utilisé Rust pour garantir la sécurité de la mémoire en premier lieu, le travail considérable sur les performances qui le rend rapide et ce que ce parcours nous apprend sur les commentaires des développeurs et l'écosystème des normes Web.
La sécurité avant tout : réimplémenter le décodeur en Rust (jxl-rs)
Les décodeurs d'images constituent l'une des surfaces d'attaque les plus critiques et ciblées de tout navigateur Web moderne. Ils traitent des structures binaires complexes et non fiables directement à partir du réseau et s'exécutent dans le processus de rendu. Historiquement, les décodeurs écrits dans des langages non sécurisés comme C++ ont été sujets à des failles telles que les lectures hors limites, les dépassements de tas et les bugs d'utilisation après libération.
Notre modèle de sécurité repose sur le sandboxing et la défense en profondeur, guidés par la règle des deux.
Toutefois, l'exécution en bac à sable est une couche de défense secondaire. Pour éliminer ces risques de sécurité à la source, nous avons intégré jxl-rs, une implémentation pure de Rust du décodeur JPEG XL.
Concevez des applications rapides, sans compromettre la sécurité
La sécurité de la mémoire est essentielle, mais un décodeur à mémoire sécurisée qui est à peu près aussi rapide que la meilleure alternative non sécurisée est un choix beaucoup plus évident qu'un choix avec un compromis de performances important.
Une partie fondamentale des performances des codecs modernes consiste à utiliser pleinement le matériel SIMD disponible sur les appareils modernes. Pour ce faire en toute sécurité, la fonctionnalité target_feature_11 Rust a dû être stabilisée, ce qui a permis d'utiliser les instructions SIMD sans nécessiter de code unsafe.
L'étape suivante consistait à créer une couche d'abstraction SIMD (jxl_simd), inspirée de la bibliothèque Highway C++ (elle-même initialement développée pour libjxl, l'implémentation de référence C++ de JPEG XL). Ensemble, ces développements ont permis d'écrire une bibliothèque multiplate-forme qui ne compromet pas les optimisations des performances SIMD, tout en limitant les opérations non sécurisées à un petit nombre d'emplacements hautement vérifiés.
Les optimisations des performances dans jxl-rs s'appuient sur celles de libjxl. Cela inclut un pipeline de traitement générique pour les étapes qui franchissent les frontières régionales, tout en minimisant les copies de données pour maximiser les performances matérielles. Nous avons suivi les performances de la réimplémentation Rust sur différentes plates-formes matérielles dans le tableau de bord des performances jxl-rs.
Nous avons vérifié l'implémentation de jxl-rs à l'aide de diverses techniques de pointe, y compris le fuzzing et l'examen du code par l'IA. Nous n'avons trouvé aucun bug de sécurité de la mémoire tout au long de l'historique d'implémentation, ce qui confirme une fois de plus les énormes améliorations que Rust apporte à la sécurité de la mémoire.
Commentaires des développeurs et projet Interop
L'équipe Chrome prend en compte les commentaires des développeurs Web provenant de différents canaux, tels que les bugs, les enquêtes, le projet Developer Signals et le projet Interop. Notre décision de proposer JPEG XL s'appuyait sur les commentaires et les demandes réguliers des développeurs Web, qui étaient particulièrement visibles dans le processus Interop, où il s'agissait d'une proposition populaire en 2026 et plusieurs années auparavant.
Pour garantir l'interopérabilité du format entre les navigateurs, nous avons participé à l'étude Interop 2026 sur JPEG XL afin de nous assurer que toutes les fonctionnalités de JPEG XL sont couvertes par des tests dans les navigateurs et que ces tests sont réussis dans Chrome.
Essayer
Avec l'arrivée officielle de JPEG XL dans Chrome, le Web devient plus rapide, plus riche et plus sûr. Nous encourageons les développeurs, les créateurs de contenu et les propriétaires de plates-formes à commencer à utiliser des images et des animations .jxl dans leurs pipelines.
Essayez-le, signalez les bugs et aidez-nous à continuer à créer un Web plus rapide et plus sûr pour tous.
Remerciements
Nous tenons à remercier toutes les personnes qui ont contribué à jxl-rs ou à son intégration dans Chrome, et en particulier Helmut Januschka pour ses contributions importantes à l'intégration de Chrome et à jxl-rs, ainsi que Martin Bruse, Zoltan Szabadka, Sami Boukortt et Wonwoo Choi pour leurs contributions importantes à jxl-rs lui-même.