Dipublikasikan: 6 Oktober 2026
Dengan senang hati kami umumkan bahwa Chrome akan menyediakan dukungan decoding untuk format gambar JPEG
XL (.jxl) mulai dari Chrome 155. JPEG XL adalah format gambar generasi berikutnya yang dirancang untuk memenuhi kebutuhan developer web dan fotografer modern. Format ini menawarkan kompresi 30-50% lebih baik daripada JPEG, kompresi
lossless, dukungan HDR bawaan, transcoding JPEG lossless, dan banyak lagi.
Secara umum, sebaiknya coba AVIF dan JPEG XL untuk mendapatkan hasil terbaik. Kami berharap JPEG XL akan sangat membantu untuk kompresi lossless atau dengan kualitas tinggi, terutama untuk gambar fotografi atau dalam kasus ketika decoding progresif yang terperinci lebih disukai.
Dalam postingan ini, kami membagikan alasan kami menghadirkan JPEG XL ke Chrome, cara kami menggunakan Rust untuk memastikan keamanan memori terlebih dahulu, upaya performa ekstensif yang membuatnya cepat, dan apa yang kami pelajari dari perjalanan ini tentang masukan developer dan ekosistem standar web.
Utamakan keamanan: Mengimplementasikan ulang decoder di Rust (jxl-rs)
Dekoder gambar adalah salah satu permukaan serangan yang paling penting dan ditargetkan di browser web modern mana pun. Mereka memproses struktur biner yang kompleks dan tidak tepercaya secara langsung dari jaringan dan berjalan di dalam proses perender. Secara historis, dekoder yang ditulis dalam bahasa yang tidak aman untuk memori seperti C++ rentan terhadap kerentanan seperti pembacaan di luar batas, heap overflow, dan bug use-after-free.
Model keamanan kami mengandalkan sandboxing dan defense in depth, yang dipandu oleh
aturan
dua.
Namun, sandbox adalah lapisan pertahanan sekunder. Untuk menghilangkan risiko keamanan ini di sumbernya, kami telah mengintegrasikan jxl-rs, implementasi Rust murni dari decoder JPEG XL.
Didesain untuk kecepatan, tanpa mengorbankan keselamatan
Keamanan memori sangat penting, tetapi decoder yang aman untuk memori yang kira-kira secepat alternatif non-aman untuk memori terbaik adalah pilihan yang jauh lebih jelas daripada pilihan dengan kompromi performa yang signifikan.
Bagian mendasar dari performa codec modern adalah memanfaatkan sepenuhnya hardware SIMD yang tersedia di perangkat modern. Untuk melakukannya dengan aman, fitur target_feature_11 Rust harus distabilkan, yang memungkinkan penggunaan instruksi SIMD tanpa memerlukan kode unsafe.
Langkah berikutnya adalah membangun lapisan abstraksi SIMD (jxl_simd), yang terinspirasi oleh
library Highway C++ (yang awalnya dikembangkan untuk libjxl, implementasi referensi JPEG XL C++). Bersama-sama,
pengembangan tersebut memungkinkan penulisan library multiplatform yang tidak
mengorbankan pengoptimalan performa SIMD, sekaligus membatasi operasi yang tidak aman
ke sejumlah kecil lokasi yang telah diperiksa secara ketat.
Pengoptimalan performa di jxl-rs dibangun berdasarkan pengoptimalan di libjxl. Hal ini mencakup
pipeline pemrosesan generik untuk langkah-langkah yang melintasi batas wilayah, sekaligus
meminimalkan salinan data untuk memaksimalkan performa hardware. Kami telah melacak performa penerapan ulang Rust di berbagai platform hardware pada dasbor performa jxl-rs.
Kami memverifikasi penerapan jxl-rs dengan berbagai teknik canggih, termasuk fuzzing dan peninjauan kode AI, dan tidak menemukan bug keamanan memori apa pun di seluruh histori penerapan, sehingga memberikan validasi lain atas peningkatan besar yang dibawa Rust pada keamanan memori.
Masukan developer dan Project Interop
Tim Chrome mempertimbangkan masukan developer web dari berbagai saluran, seperti bug, survei, Project Sinyal Developer, dan Project Interop. Keputusan kami untuk mengirimkan JPEG XL didasarkan pada masukan dan permintaan yang konsisten dari developer web, yang paling terlihat dalam Proses Interop, di mana JPEG XL menjadi proposal populer pada tahun 2026 dan beberapa tahun sebelumnya.
Untuk memastikan formatnya dapat beroperasi di seluruh browser, kami telah berpartisipasi dalam Penyelidikan JPEG XL Interop 2026 untuk memastikan ada cakupan pengujian untuk semua fitur JPEG XL di browser, dan pengujian tersebut lulus di Chrome.
Cobalah
Dengan hadirnya JPEG XL secara resmi di Chrome, web menjadi lebih cepat, lebih kaya, dan lebih aman. Kami mendorong developer, kreator konten, dan pemilik platform untuk mulai menggunakan gambar dan animasi .jxl dalam pipeline mereka.
Cobalah, laporkan bug, dan bantu kami terus membangun web yang lebih cepat dan aman untuk semua orang.
Ucapan terima kasih
Kami ingin berterima kasih kepada semua orang yang berkontribusi pada jxl-rs atau integrasinya di Chrome, dan terutama Helmut Januschka atas kontribusinya yang signifikan baik pada integrasi Chrome maupun jxl-rs, serta Martin Bruse, Zoltan Szabadka, Sami Boukortt, dan Wonwoo Choi atas kontribusi signifikan mereka pada jxl-rs itu sendiri.