JPEG XL

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]

JPEG XL
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
  • Authors: Jyrki Alakuijala, Jon Sneyers, Luca Versari
  • Developers: Sami Boukortt, Alex Deymo, Moritz Firsching, Thomas Fischbacher, Eugene Kliuchnikov, Robert Obryk, Alexander Rhatushnyak, Zoltán Szabadka, Lode Vandevenne, Jan Wassenberg
  • Joint Photographic Experts Group
  • Google
  • Cloudinary
Type of formatLossy/lossless bitmap image format
Extended from
StandardISO/IEC 18181
Open format?Yes (royalty-free)
Website

Name

History

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 December 25, 2020, meaning that the format is now guaranteed to be decodable by future releases.[5]

Features

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

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).

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

Codec implementation

JPEG XL Reference Software (libjxl)
Initial releaseDecember 27, 2019 (2019-12-27)
Stable release
0.6.1 / October 30, 2021 (2021-10-30)
Repositoryhttps://github.com/libjxl/libjxl[17] 
Written inC++
Operating system
LicenseNew BSD License (previously Apache License 2.0)
Websitejpeg.org/jpegxl 
  • 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

Unofficial support

Preliminary support

Standardization status

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

References

  1. "fuif/README.md". GitHub. Retrieved 2019-04-04.
  2. "Can JPEG XL Become the Next Free and Open Image Format? - Slashdot".
  3. "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. 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)".
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.