Spedizione di JPEG XL in Chrome

Data di pubblicazione: 6 ottobre 2026

Siamo felici di annunciare che Chrome supporta la decodifica del formato immagine JPEG XL (.jxl) a partire da Chrome 155. JPEG XL è un formato immagine di nuova generazione progettato per soddisfare le esigenze di sviluppatori web e fotografi moderni. Offre una compressione migliore del 30-50% rispetto a JPEG, compressione senza perdita di dati, supporto HDR integrato, transcodifica JPEG senza perdita di dati e altro ancora.

In generale, ti consigliamo di provare sia AVIF che JPEG XL per ottenere i migliori risultati. Prevediamo che JPEG XL sia più utile per la compressione ad alta fedeltà o senza perdita, soprattutto di immagini fotografiche o nei casi in cui è preferibile una decodifica progressiva granulare.

In questo post, spieghiamo perché abbiamo introdotto JPEG XL in Chrome, come abbiamo utilizzato Rust per garantire innanzitutto la sicurezza della memoria, l'ampio lavoro sulle prestazioni che lo rende veloce e cosa ci insegna questo percorso sul feedback degli sviluppatori e sull'ecosistema degli standard web.

La sicurezza prima di tutto: implementazione del decodificatore in Rust (jxl-rs)

I decodificatori di immagini sono una delle superfici di attacco più critiche e mirate in qualsiasi browser web moderno. Elaborano strutture binarie complesse e non attendibili direttamente dalla rete e vengono eseguite all'interno del processo di rendering. Storicamente, i decoder scritti in linguaggi non sicuri per la memoria come C++ sono stati soggetti a vulnerabilità come letture fuori dai limiti, overflow dell'heap e bug use-after-free.

Il nostro modello di sicurezza si basa sul sandboxing e sulla difesa in profondità, guidati dalla regola dei due. Tuttavia, il sandboxing è un livello di difesa secondario. Per eliminare questi rischi per la sicurezza alla fonte, abbiamo integrato jxl-rs, un'implementazione in Rust puro del decodificatore JPEG XL.

Progettato per la velocità, senza compromettere la sicurezza

La sicurezza della memoria è fondamentale, ma un decodificatore sicuro per la memoria che sia veloce quanto la migliore alternativa non sicura per la memoria è una scelta molto più ovvia rispetto a una scelta con un compromesso significativo in termini di prestazioni.

Una parte fondamentale delle prestazioni dei codec moderni è l'utilizzo completo dell'hardware SIMD disponibile sui dispositivi moderni. Per farlo in sicurezza, è stato necessario stabilizzare la funzionalità target_feature_11 di Rust, che ha consentito l'utilizzo delle istruzioni SIMD senza richiedere codice unsafe.

Il passaggio successivo è stato creare un livello di astrazione SIMD (jxl_simd), ispirato alla libreria C++ Highway (originariamente sviluppata per libjxl, l'implementazione di riferimento di JPEG XL in C++). Insieme, questi sviluppi hanno consentito di scrivere una libreria multipiattaforma che non compromette le ottimizzazioni delle prestazioni SIMD, limitando al contempo le operazioni non sicure a un numero ridotto di posizioni altamente verificate.

Le ottimizzazioni del rendimento in jxl-rs si basano su quelle in libjxl. Ciò include una pipeline di elaborazione generica per i passaggi che attraversano i confini delle regioni, riducendo al minimo le copie dei dati per massimizzare le prestazioni hardware. Abbiamo monitorato il rendimento della reimplementazione di Rust su diverse piattaforme hardware nella dashboard del rendimento di jxl-rs.

Abbiamo verificato l'implementazione di jxl-rs con varie tecniche allo stato dell'arte, tra cui fuzzing e revisione del codice basata sull'AI, e non abbiamo riscontrato bug di sicurezza della memoria nell'intera cronologia di implementazione, fornendo un'ulteriore convalida dei grandi miglioramenti che Rust apporta alla sicurezza della memoria.

Feedback degli sviluppatori e progetto di interoperabilità

Il team di Chrome prende in considerazione i feedback degli sviluppatori web provenienti da un'ampia gamma di canali, come bug, sondaggi, il progetto Developer Signals e il progetto Interop. La nostra decisione di distribuire JPEG XL si è basata su feedback e richieste coerenti degli sviluppatori web, più visibili nel processo Interop, in cui è stata una proposta popolare nel 2026 e negli anni precedenti.

Per garantire l'interoperabilità del formato tra i browser, abbiamo partecipato all'indagine Interop 2026 JPEG XL per assicurarci che esista una copertura dei test per tutte le funzionalità di JPEG XL nei browser e che questi test vengano superati in Chrome.

Prova

Con l'introduzione ufficiale di JPEG XL in Chrome, il web diventa più veloce, più ricco e più sicuro. Incoraggiamo sviluppatori, creator di contenuti e proprietari di piattaforme a iniziare a utilizzare immagini e animazioni .jxl nelle loro pipeline.

Provalo, segnala bug e aiutaci a continuare a creare un web più veloce e sicuro per tutti.

Ringraziamenti

Vogliamo ringraziare tutte le persone che hanno contribuito a jxl-rs o alla sua integrazione in Chrome, in particolare Helmut Januschka per i suoi sostanziali contributi sia all'integrazione di Chrome sia a jxl-rs, e Martin Bruse, Zoltan Szabadka, Sami Boukortt e Wonwoo Choi per i loro sostanziali contributi a jxl-rs stesso.