# JPEG XL

JPEG XL ist ein lizenzgebührenfreier offener Standard für die komprimierte Repräsentation von Rastergrafiken. Er definiert ein Bilddateiformat und den abstrakten Apparat für die Kodierung von JPEG-XL-Bitströmen. Es wurde von der Joint Photographic Experts Group (JPEG) entwickelt und von der Internationalen Elektrotechnische Kommission (IEC) und der Internationalen Organisation für Normung (ISO) als die internationale Norm ISO/IEC 18181 standardisiert. Es handelt sich um eine Obermenge des JPEG-/JFIF-Formats, mit einem Kompressionsmodus, der auf traditioneller blockbasierter Frequenztransformations-Kodierung aufbaut, und einem „modularen Modus“ für synthetische Bildinhalte und verlustfreie Kompression. Optionale Quantisierung der Frequenzkoeffizienten ermöglicht sowohl verlustfreie als auch verlustbehaftete Kompression.
Dateien im ursprünglichen JPEG-Format sollen in JPEG XL transcodiert werden können und umgekehrt, ohne dabei an Qualität zu verlieren.
Die Qualität der komprimierten Bilder relativ zur Datei-Größe wurde gegenüber den älteren Bildformaten JPEG, JPEG 2000 und WebP verbessert. Im Vergleich zu den moderneren Formaten HEIC und AVIF besteht lediglich ein leichter Vorteil bei Bildern mit einer hohen Bildqualität (geringe Kompression) bzw. in Originalqualität (verlustlose Kompression). AVIF hat einen kleinen Vorteil bei Bildern mit sehr geringer Qualität (starke Kompression). Auch ist im Gegensatz etwa zu GIF und AVIF die Wiedergabe von animierten Bilderfolgen nur eingeschränkt möglich.
Ab der Version 0.10 des Encoders libjxl können Bilder in allen Qualitäten schneller in JPEG XL komprimiert werden, als in konkurrierende Formate.

## Geschichte

2018 veröffentlichte die Joint Photographic Experts Group (JPEG) eine Aufforderung zur Einreichung von Vorschlägen für JPEG XL, den Bildcodierungsstandard der nächsten Generation. Aus sieben Vorschlägen wählte das Komitee zwei aus, die zum Ausgangspunkt für die Entwicklung des neuen Formates werden sollten: Das Format FUIF des Unternehmens Cloudinary und das PIK-Format von Google. Nach Beginn der Entwicklung wurde das Dateiformat (Bitstream) am 24. Dezember 2020 eingefroren und im Oktober 2021 (Teil 2: Dateiformat) bzw. im März 2022 (Teil 1: Kodierverfahren) formell standardisiert. Dateien, die diesem Standard entsprechen, werden garantiert auch von zukünftigen Versionen der Referenz-Software dekodiert.
Im September 2022 erreichte die Referenz-Software den Versionsstand 0.7.0.
Das Chromium-Team kündigte Ende Oktober 2022 an, aus dem Chromium-Browser (der die Grundlage für Google Chrome ist) die experimentelle Unterstützung für die JXL-Bilddecodierung wieder entfernen zu wollen, was dann auch geschah. Die Argumente, mit denen dieser Schritt begründet wurde, erschienen allerdings höchst fragwürdig. Entwickler Jon Sneyers entgegnete der Entfernung mit einem Blogposting über die Vorteile des neuen Verfahrens.
Die Browser-Unterstützung wurde in einigen Derivaten von Chrome und Firefox wiederhergestellt (siehe unten), auch ist eine Implementierung als Erweiterung auf Basis von WebAssembly verfügbar. Am 3. September 2024 kündigte Mozilla an, eine von Google zu entwickelnde (Stand September 2024) neue Implementierung des JPEG XL Standards in Rust für eine Integration in Firefox in Betracht zu ziehen.
Im Februar 2023 wurde die Version 0.8.1 von JPEG XL freigegeben.
Die JPEG XL-Kompression wurde im Juni 2023 als Bestandteil der DNG-Spezifikation ab Version 1.7.0 aufgenommen. Damit wurde eine Grundlage geschaffen für die spätere Verwendung als Bestandteil von "Expert RAW" in Samsung Galaxy Smartphones und "ProRAW" bei Apple.
Der Apple-Browser Safari unterstützt seit der Version 17 JPEG XL.
Im Dezember 2023 erschien die Version 0.9.0 von JPEG XL. Enthalten war mit JPEGLI auch ein neuer, gegenüber den bisherigen Implementierungen verbesserter JPEG-Encoder und -Decoder. Dieser erhielt im Juli 2024 ein eigenes Repository auf Github.
Die Version 0.10.0 vom Februar 2024 implementiert zusätzlich API-Funktionen für streaming encoding (schonender Umgang mit Arbeitsspeicher durch serielle Abarbeitung kleinerer Einheiten bei großen Bildern).
Die Version 0.11.0 vom September 2024 enthält u. a. zusätzliche Unterstützung für gain maps (zur Verbesserung der Darstellung von HDR-Bildern).
Mit dem iPhone 16 Pro kann JPEG XL für Aufnahmen von ProRAW-Fotos verwendet werden.

## Name

* JPEG ist die Joint Photographic Experts Group, welche das Format entworfen hat.
* X ist das Präfix für mehrere JPEG-Standards seit 2000: JPEG XT, JPEG XR und JPEG XS.
* L steht für long-term, da das bestehende JPEG-Format dauerhaft abgelöst werden soll.

## Eigenschaften

Die Entwurfsziele des Formats sind:
* bessere Funktionalität und Effizienz verglichen mit traditionellen Bildformaten (z. B. JPEG, GIF und PNG)
* progressives Decoding (nach Auflösung und Präzision)
* verlustfreies JPEG-Transcoding mit einer Dateigrößen-Einsparung von ca. 20 %
* verlustfreies Encoding (einschließlich Unterstützung des Alpha-Kanals)
* Unterstützung für alle Arten von Bildern (z. B. Fotografie, Computergrafik)
* möglichst minimaler Qualitätsverlust beim Senken der Bitrate
* wahrnehmungsoptimierte Referenz-Encoder
* Unterstützung von breiten Farbspektren und HDR
* Unterstützung von animierten Inhalten
* effizientes Encoding und Decoding ohne spezialisierte Hardware. Bei der Implementierung wird durch die Nutzung einer neuen Bibliothek mit Namen „Google Highway“ (libhwy) eine effiziente Verwendung von SIMD-/Vektoranweisungen für viele Architekturen möglich.
* Lizenzfreiheit sowie eine quelloffene Referenzimplementierung.

## Software-Unterstützung
### Encoder/Decoder

* JPEG-XL-Referenzsoftware (libjxl)
** Lizenz: 3-Klausel-BSD-Lizenz
** Beinhaltet (u. a.):
*** Encoder cjxl
*** Decoder djxl
*** Benchmark-Tool benchmark_xl, um die Geschwindigkeit und Qualität von Bildcodecs zu testen
*** GIMP- und Gtk-pixbuf-Plugin file-jxl
* jxl-oxide - JPEG XL Decoder in Rust
* jxlatte - JPEG XL Decoder in Java

### Offizielle Unterstützung

* Affinity Photo - kommerzielles Bildbearbeitungsprogramm von Serif
* DarkTable - Bildbearbeitungsprogramm
* DICOM - Standard in der Medizin, ab Version 2024d
* FFmpeg unterstützt JXL (seit Ende April 2022 in aktuellen Builds der Windows-Version verfügbar) Ab Version 6.1 wird auch die Dekodierung von JXL-Animationen unterstützt.
* Gnome Web und Wallpapers unterstützen ab Gnome-Version 46 JPEG XL
* GraphicsMagic (ab Version 1.3.38)
* gThumb – Linux-Bildanzeigeprogramm
* ImageGlass – Open-Source-Windows-Bildanzeigeprogramm
* ImageMagick – Software zur Erstellung und Bearbeitung von Grafiken
* IrfanView – Windows-Bildanzeigeprogramm (mit Plugin JPEG_XL)
* Krita (ab Version 5.1)
* libvips - Bildverarbeitungsbibliothek, auch für/mit Kommandozeile
* MConverter – Online-Tool zur Konvertierung von Medien
* Midori (Browser)
* Pale Moon – Webbrowser (ab Version 31.4.0)
* Qt- und KDE-Anwendungen
* Safari (ab Version 17)
* Squoosh – WebAssembly-basierter Browser-Bildkonverter
* Thorium - Webbrowser (Fork von Chromium, der die dort entfernte JPEG XL Funktionalität wiederherstellt)
* Waterfox - Webbrowser (ab Version G5.1.2 ist JPEG XL standardmäßig aktiviert. Die Unterstützung für Animationen, progressiven Download, Transparenz sowie Farbprofile ist auch enthalten.)
* XnView MP – Bildanzeige- und Bearbeitungsprogramm
* macOS (ab Version 14.0)
* iOS (ab Version 17)
* iPadOS (ab Version 17)

### Inoffizielle Unterstützung

* Windows – mit Plugin, um die Bilder in der Windows-Fotoanzeige, Explorer etc. anzuzeigen
* macOS – mit der Standalone-Anwendung Quick Look und Plugin
* GIMP – Bildbearbeitungsprogramm; Plugin für GIMP 2.10 verfügbar

### Vorübergehende Unterstützung

* Chromium und Google Chrome – Webbrowser, konnte in den Versionen 91–109 durch Einschalten eines Flag getestet werden. Auch in Microsoft Edge ist die vorübergehend vorhandene experimentelle Unterstützung wieder entfernt worden. Seit Anfang 2024 gibt es im Google Chrome Webstore die Erweiterung „JPEG XL Viewer“.

### Abgekündigte Unterstützung

* Firefox – Webbrowser, im Teststadium (nur in der Variante Firefox Nightly, ab Version 90 mit image.jxl.enabled aktivierbar). In der Produktivversion soll die Unterstützung erst aktiviert werden, wenn eine breite Nutzerbasis vorliegt. Mozilla betonte vorerst eine neutrale Einstellung gegenüber dem Format, kündigte dann aber an, es nicht zu unterstützen. Im September 2024 änderte Mozilla diese Position zugunsten eines noch zu entwickelnden Decoders in Rust, der von einem Google Research Team für Firefox implementiert werden soll.