JPEG XL

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
JPEG XL
JPEG XL logo.svg
Filename extension
.jxl
Internet media type
image/jxl
Magic numberFF 0A or 00 00 00 0C 4A 58 4C 20 0D 0A 87 0A
Developed by
Type of formatLossy/lossless bitmap image format
Extended from
StandardISO/IEC 18181
Open format?Yes (royalty-free)
Website

JPEG XL is a royalty-free raster-graphics file format that supports both lossy and lossless compression. It is designed to outperform existing raster formats and thus to become their universal replacement.[2]

Name[edit]

History[edit]

In 2017, JTC1/SC29/WG1 (JPEG) issued a Call for proposals for JPEG XL – the next generation image coding standard.[4]

The file format (bitstream) was frozen on 25 December 2020, meaning that the format is now guaranteed to be decodable by future releases.[5]

Features[edit]

The main features are:[6][7]

  • Improved functionality and efficiency compared to traditional image formats (e.g. JPEG, GIF and PNG);
  • Image dimensions of over a billion (230-1) pixels on each side;[8]
  • Up to 4100 channels i.e grayscale or RGB, optional alpha, and up to 4096 "extra" channels;[8]
  • Progressive decoding (by resolution and precision);
  • Lossless JPEG transcoding with ~20% size reduction;
    • CMYK JPEGs are not supported for transcoding, but they are very rare;[9]
    • Transcoding to progressive JPEG XLs is supported by the format but not yet implemented in the reference software;[10]
  • Lossless encoding and lossless alpha encoding;
  • Support for both photographic and synthetic imagery;
  • Graceful quality degradation across a large range of bitrates;
  • Perceptually optimized reference encoder;
  • Support for wide color gamut and HDR;
  • Support for animated content,
  • Efficient encoding and decoding without requiring specialized hardware
    • In particular, JPEG XL is about as fast to encode and decode as old JPEG using libjpeg-turbo and an order of magnitude faster to encode and decode compared to HEIC with x265.[8] It is also parallelizable.
  • Royalty-free format with an open-source reference implementation.[11]

Technical details[edit]

refer to caption
JPEG XL codec architecture diagram

JPEG XL is based on ideas from Google's PIK format and Cloudinary's FUIF format (which was in turn based on FLIF).[12]

The format has a variety of encoding modes. On the legacy side, it has a mode that transcodes legacy JPEG in a more compact way for storage. On the more modern side, it has a lossy mode called VarDCT (variable-blocksize DCT) and a lossless/near-lossless/responsive mode called Modular which optionally uses a modified Haar transform (called "squeeze") and which is also used to encode the DC (1:8 scale) image in VarDCT mode as well as various auxiliary images such as adaptive quantization fields or additional channels like alpha. Both modes can use separate modeling of specific image features: splines, repeating "patches" like text or dots, and noise synthesis. Lossy modes typically use the XYB color space derived from LMS.[13]

Prediction is run using a pixel-by-pixel decorrelator without side information, including a parametrized self-correcting weighted ensemble of predictors. Context modeling includes specialized static models and powerful meta-adaptive models that take local error into account, with a signaled tree structure and predictor selection per context. Entropy coding is LZ77-enabled and can use both asymmetric numeral systems (ANS) and Huffman coding (for low complexity encoders or for reducing overhead of short streams).[citation needed]

It defaults to a visually near-lossless setting that still provides good compression.[8]

Animated (multi-frame) images do not perform advanced inter-frame prediction, though some rudimentary inter-frame coding tools are available:

  • frames can update only parts of the canvas;
  • besides replacing parts of the canvas, frames can also be blended, added or multiplied to parts of it;[14]
  • up to four frames[15] can be remembered and referenced using the "patches" coding tool in later frames.[16]

Software[edit]

Codec implementation[edit]

JPEG XL Reference Software (libjxl)
Libjxl 0.6.1 screenshot.png
Initial releaseDecember 27, 2019; 23 months ago (2019-12-27)
Stable release
0.6.1 / October 30, 2021; 52 days ago (2021-10-30)
Repositoryhttps://github.com/libjxl/libjxl[17] Edit this on Wikidata
Written inC++
Operating system
LicenseNew BSD License (previously Apache License 2.0)
Websitejpeg.org/jpegxl Edit this on Wikidata
  • JPEG XL Reference Software (libjxl)
    • license: New BSD License (previously Apache License 2.0)
    • contains (among others):
      • coder cjxl
      • decoder djxl
      • tool for benchmarking speed and quality of image codecs benchmark_xl
      • GIMP and Gtk pixbuf plugin file-jxl

Official support[edit]

Unofficial support[edit]

Preliminary support[edit]

Standardization status[edit]

Common Name Part First public release date (First edition) ISO/IEC Number Formal Title
JPEG XL Part 1 under development, planned for 2021 ISO/IEC FDIS 18181-1 JPEG XL Image Coding System — Part 1: Core coding system
Part 2 13 October 2021 ISO/IEC 18181-2 JPEG XL Image Coding System — Part 2: File format
Part 3 under development, planned for 2022 ISO/IEC DIS 18181-3 JPEG XL Image Coding System — Part 3: Conformance testing
Part 4 under development, planned for 2022 ISO/IEC DIS 18181-4 JPEG XL Image Coding System — Part 4: Reference software

References[edit]

  1. ^ a b "fuif/README.md". GitHub. Retrieved 2019-04-04.
  2. ^ "Can JPEG XL Become the Next Free and Open Image Format? - Slashdot".
  3. ^ a b "Support for reading/Writing JPEG XL images (#4681) · Issues · GNOME / GIMP".
  4. ^ "JPEG - Next-Generation Image Compression (JPEG XL) Final Draft Call for Proposals". Jpeg.org. April 23, 2018. Retrieved 29 May 2018.
  5. ^ "v0.2 JPEG XL Reference Software". GitLab.
  6. ^ "JPEG XL reaches Committee Draft" (html). JPEG Org. 3 August 2019. Archived from the original on 3 August 2019. Retrieved 3 August 2019. The current contributors have committed to releasing it publicly under a royalty-free and open source license.
  7. ^ "JPEG XL White Paper" (PDF). JPEG Org. 22 January 2021. Retrieved 17 March 2021.
  8. ^ a b c d Sneyers, Jon. "How JPEG XL Compares to Other Image Codecs". Cloudinary.
  9. ^ Jon Sneyers (2021-01-03). "JPEG XL as PSD transfer/storage alternative". Reddit.
  10. ^ Jon Sneyers (2021-06-03). "Progressive Transcoding". GitHub.
  11. ^ "jpeg / JPEG XL Reference Software". GitLab.
  12. ^ "FLIF - Free Lossless Image Format".
  13. ^ Alakuijala, Jyrki; van Asseldonk, Ruud; Boukortt, Sami; Szabadka, Zoltan; Bruse, Martin; Comsa, Iulia-Maria; Firsching, Moritz; Fischbacher, Thomas; Kliuchnikov, Evgenii; Gomez, Sebastian; Obryk, Robert; Potempa, Krzysztof; Rhatushnyak, Alexander; Sneyers, Jon; Szabadka, Zoltan; Vandervenne, Lode; Versari, Luca; Wassenberg, Jan (6 September 2019). Tescher, Andrew G; Ebrahimi, Touradj (eds.). "JPEG XL next-generation image compression architecture and coding tools". Applications of Digital Image Processing XLII. 11137: 20. Bibcode:2019SPIE11137E..0KA. doi:10.1117/12.2529237. ISBN 9781510629677.
  14. ^ "JPEG XL reference implementation". GitHub. 3 December 2021.
  15. ^ "JPEG XL reference implementation". GitHub. 3 December 2021.
  16. ^ "JPEG XL reference implementation". GitHub. 3 December 2021.
  17. ^ "PLEASE DO NOT OPEN NEW ISSUES HERE". Retrieved 27 May 2021.
  18. ^ "ImageMagick".
  19. ^ "0001845: JPEG XL - MantisBT".
  20. ^ "GThumb Image Viewer 3.11.3 Adds JPEG XL (.JXL) Support [Ubuntu PPA] | UbuntuHandbook".
  21. ^ "IrfanView PlugIns".
  22. ^ "Qt-jpegxl-image-plugin". GitHub. December 2021.
  23. ^ "Jpeg Xl Wic". GitHub. 27 November 2021.
  24. ^ "JXLook". GitHub. December 2021.
  25. ^ "1178058 - chromium - an open-source project to help move the web forward. - Monorail".
  26. ^ "1539075 - (JPEG-XL) Implement support for JPEG XL (Image/JXL)".

External links[edit]