Mulai Chrome 155 yang dirilis awal Oktober 2026, browser Google resmi bisa menampilkan gambar JPEG XL (.jxl) secara native. Bagi pengelola website — terutama situs instansi, sekolah, dan toko online yang penuh foto — ini kabar penting: format baru ini diklaim mengompres gambar 30-50% lebih efisien daripada JPEG, sehingga halaman lebih cepat dibuka dan kuota pengunjung lebih hemat, tanpa mengorbankan kualitas visual.
Apa Itu JPEG XL dan Kenapa Baru Ramai Sekarang
JPEG XL (JXL) distandarkan sebagai ISO/IEC 18181 dan memang dirancang sebagai penerus JPEG, PNG, dan GIF. Fiturnya lengkap: kompresi lebih padat pada kualitas setara, mode lossless, dukungan HDR dan wide color gamut, bit depth tinggi, animasi dalam satu file, serta progressive decoding yang membuat gambar tampil bertahap saat masih diunduh.
Yang membuat momen ini istimewa adalah dukungan browser. Selama beberapa tahun Safari praktis menjadi satu-satunya browser besar yang bisa membuka JXL. Kini Chrome 155 mengaktifkan decoding JPEG XL secara default di desktop, Android, dan WebView, dan Firefox 157 menyusul tak lama setelahnya. Setelah dukungan menyebar ke mesin browser besar, JXL akhirnya layak dipertimbangkan untuk situs produksi.
Decoder Ditulis Ulang di Rust, Bukan Sekadar Diport
Detail teknis yang paling menarik: decoder JXL di Chrome bukan hasil pemindahan kode C++, melainkan implementasi ulang bernama jxl-rs yang ditulis penuh dengan Rust. Alasannya keamanan. Decoder gambar adalah salah satu permukaan serangan paling kritis di browser karena langsung mengolah data biner dari jaringan, dan decoder C++ klasik rawan bug seperti out-of-bounds read, heap overflow, dan use-after-free.
Menariknya, keamanan tidak dibayar dengan penurunan performa. Tim Chrome memanfaatkan instruksi SIMD secara aman lewat stabilisasi fitur Rust target_feature_11, lalu membangun lapisan abstraksi SIMD jxl_simd yang terinspirasi library Highway milik proyek libjxl. Kombinasi pengujian fuzzing dan review kode oleh AI tidak menemukan satu pun bug memory safety di sepanjang riwayat implementasi jxl-rs — bukti tambahan bahwa Rust serius soal keamanan memori.
Seberapa Besar Penghematannya
- Kompresi 30-50% lebih baik daripada JPEG pada kualitas setara (angka dari tim Chrome).
- Mode lossless matematis tersedia, misalnya
cjxl -d 0. - Transcoding JPEG lossless: foto JPEG lama bisa dibungkus menjadi .jxl, dan JPEG aslinya tetap bisa direkonstruksi bit-for-bit.
- Progressive decoding membuat gambar terasa lebih cepat muncul di koneksi lambat.
- Animasi, HDR, dan bit depth tinggi didukung tanpa format tambahan.
Tim Chrome tetap menyarankan mencoba AVIF dan JPEG XL, karena keduanya punya kekuatan berbeda — JXL unggul untuk kompresi high-fidelity atau lossless dan decoding bertahap. Pada uji cepat di server kami (gambar uji 1280x720, encode libjxl dengan -distance 1), file JXL keluar sekitar 40 KB dibanding ~78 KB pada JPEG kualitas sebanding. Angka nyata sangat bergantung pada jenis foto, jadi selalu uji dengan gambar Anda sendiri.
Cara Aman Memakainya di Situs
Jangan langsung mengganti semua gambar. Dukungan JXL baru ada di Chrome 155 ke atas, jadi gunakan elemen <picture> dengan fallback JPEG agar semua pengunjung tetap terlayani:
<picture>
<source srcset="/img/gedung.jxl" type="image/jxl">
<img src="/img/gedung.jpg" alt="Kantor desa"
width="1200" height="800" loading="lazy">
</picture>
Browser yang mengenal MIME type image/jxl akan mengambil versi .jxl; browser lain otomatis memakai JPEG. Chrome juga sudah menambahkan image/jxl ke header Accept, sehingga server atau CDN yang mendukung content negotiation bisa menyajikan JXL hanya ke browser yang memintanya.
Langkah Praktis Konversi ke JPEG XL
- Pasang encodernya. Di Ubuntu/Debian:
sudo apt install libjxl-tools— paket ini menyediakan perintahcjxldandjxl. Alternatif lain, ffmpeg sudah menyertakan encoder libjxl. - Uji satu file dulu:
Untuk input JPEG, cjxl otomatis mengompres secara lossless. Untuk file dari PNG, gunakancjxl foto-desa.jpg foto-desa.jxl-d 1(visually lossless) atau-d 2untuk kebutuhan web. - Bandingkan ukuran dan kualitas visual:
ls -l foto-desa.jpg foto-desa.jxl - Konversi massal setelah hasilnya memuaskan:
Opsifor f in *.jpg; do cjxl -d 1.5 -e 7 "$f" "${f%.jpg}.jxl"; done-emengatur effort encoder (1-10, default 7): makin tinggi, makin kecil file tetapi makin lama prosesnya. - Ubah markup gambar besar (banner, foto hero, galeri) menjadi
<picture>dengan fallback. - Uji dengan PageSpeed Insights atau Lighthouse, lalu bandingkan skor sebelum dan sesudah.
Yang Perlu Diperhatikan
- Pastikan web server mengirim MIME type yang benar. Di nginx tambahkan
types { image/jxl jxl; }, di ApacheAddType image/jxl .jxl. - Tidak semua panel hosting, plugin, atau alat desain sudah mengenali ekstensi .jxl — simpan selalu file master atau JPEG asli sebagai fallback.
- Prioritaskan foto berukuran besar di halaman utama; mengonversi ikon kecil dan gambar SVG tidak memberi manfaat berarti.
- Perhatikan juga beban CPU encoding saat konversi batch besar, terutama di server dengan spesifikasi pas-pasan.
Kesimpulan
Dukungan JPEG XL di Chrome 155 (dan Firefox 157) menjadikan JXL pilihan realistis untuk mempercepat situs, terutama bagi situs pemerintahan, sekolah, dan UMKM yang banyak memuat foto dan diakses dari koneksi terbatas. Mulailah dari satu halaman dengan beberapa foto besar, ukur hasilnya, lalu perluas bertahap sambil tetap menyediakan fallback JPEG. Pendekatan dua format — AVIF atau JXL dengan cadangan JPEG lewat <picture> — adalah cara paling aman untuk menikmati penghematan ini tanpa risiko merusak tampilan situs.
Sumber: Shipping JPEG XL in Chrome (Chrome for Developers), Chrome 155 Release Notes (Chrome Platform Status), Can I use: JPEG XL, Neowin: Google Chrome 155 brings support for JPEG XL, Man page cjxl (libjxl-tools).
