JPEG XL

Last updated
JPEG XL
JPEG XL logo.svg
Filename extension
.jxl
Internet media type
image/jxl [1]
Magic number FF 0A or 00 00 00 0C 4A 58 4C 20 0D 0A 87 0A [2]
Developed by
Type of format Lossy/lossless bitmap image format
Extended from
Standard ISO/IEC 18181 [4]
Open format?Yes (royalty-free [5] )
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 become their universal replacement. [5]

Contents

Name

The name consists of JPEG (for the Joint Photographic Experts Group , which is the committee which designed the format), X (part of the name of several JPEG standards since 2000: JPEG XT, JPEG XR, JPEG XS), and L (for long-term). The L was included because the authors' intention is for the format to replace the legacy JPEG and last just as long, too. [6]

Authors

The main authors of the specification are Jyrki Alakuijala, Jon Sneyers, and Luca Versari. Other collaborators are Sami Boukortt, Alex Deymo, Moritz Firsching, Thomas Fischbacher, Eugene Kliuchnikov, Robert Obryk, Alexander Rhatushnyak, Zoltan Szabadka, Lode Vandevenne, and Jan Wassenberg.

History

In August 2017, JTC1 / SC29 / WG1 (JPEG) published a call for proposals for JPEG XL, the next generation image encoding standard. [7] The proposals were submitted by September 2018, leading to a committee draft in July 2019. [8] It was mainly based on a combination of a proposal called PIK, [9] submitted by Google, and a proposal called FUIF [10] — itself based on FLIF — submitted by Cloudinary.

The bitstream was informally frozen on 24 December 2020 with the release of version 0.2 of the libjxl reference software. [11] The file format and core coding system were formally standardized on 13 October 2021 and 30 March 2022 respectively. [4] [12]

Description

The JPEG XL call for proposals [7] talks about the requirement of a next generation image compression standard with substantially better compression efficiency (60% improvement) comparing to JPEG. The standard is expected to outperform the still image compression performance shown by HEIC, AVIF, WebP, and JPEG 2000. It also provides efficient lossless recompression options for images in the traditional/legacy JPEG format.

JPEG XL supports lossy compression and lossless compression of ultra-high-resolution images (up to 1 terapixel), up to 32 bits per component, up to 4099 components (including alpha transparency), animated images, and embedded previews. It has features aimed at web delivery such as advanced progressive decoding [13] and minimal header overhead, as well as features aimed at image editing and digital printing, such as support for multiple layers, CMYK, and spot colors. It is specifically designed to seamlessly handle wide color gamut color spaces with high dynamic range such as Rec. 2100 with the PQ or HLG transfer function.

Features

The main features are: [14] [15] [16]

Technical details

JPEG XL codec architecture diagram JPEG XL codec architecture.svg
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). [20]

The format is mainly based on two encoding modes:

Any additional/extra channels (e.g. alpha, depth, thermal, spot colors, etc.) are always encoded in the modular mode. It was based on FUIF, combined with elements of lossless PIK, lossless WebP, and new ideas that have been developed during the collaborative phase of the standardization process. [22] Modular mode allows lossy compression with the help of the modified Haar transform called "squeeze" which has progressive properties, quality of the image increases with the amount of data loaded.

One of the ways VarDCT-based images can be loaded more progressively is by saving the DC coefficients in a separate "DC frame" that uses modular squeeze: allowing previews corresponding to 1:16, 1:32 etc subsampled images. A squeeze transform can also be used to encode the alpha channel progressively together with VarDCT-encoded color channels, making both modes work in tandem.

JPEG XL defaults to a visually near-lossless setting that still provides good compression. [17]

These modes can be assisted by separate modeling of specific image features called:

JPEG XL codec can losslessly transcode a widely-supported subset of JPEG files, by directly copying JPEG's DCT block coefficients to 8×8 VarDCT blocks, making smaller file sizes possible due to JPEG XL's superior entropy coding. This process is reversible and it allows for the original JPEG file to be reconstructed bit-for-bit, although constraints limit support for some files. [23]

Prediction is run using a pixel-by-pixel decorrelator without side information, including a parameterized 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 either asymmetric numeral systems or Prefix codes (useful for low-complexity encoders, or reducing the overhead of short streams). [15]

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

Industry support and adoption

Besides Cloudinary, throughout JPEG XL's preliminary implementation in web browsers, various representatives of well-known industry brand names have publicly voiced support for JPEG XL as their preferred choice, including Facebook, [25] [26] Adobe, [27] [28] Intel and the Video Electronics Standards Association, [29] [30] The Guardian, [31] [32] Flickr and SmugMug, [33] Shopify, [34] the Krita Foundation, [35] and Serif Ltd. [36]

Google's stance on JPEG XL is ambiguous, as it has contributed to the format but refrained from shipping an implementation of it in Chromium and Google Chrome. An extension to enable JPEG XL support in Chrome [37] and Firefox [38] became available in January 2024.

Software

Codec implementations

JPEG XL Reference Software (libjxl)
Initial releaseDecember 27, 2019;4 years ago (2019-12-27) [39]
Stable release
0.10.2 / March 8, 2024;37 days ago (2024-03-08)
Repository https://github.com/libjxl/libjxl [40]   OOjs UI icon edit-ltr-progressive.svg
Written in C++
Operating system
License New BSD License (previously Apache License 2.0)
Website jpeg.org/jpegxl   OOjs UI icon edit-ltr-progressive.svg

Official software support

Unofficial or indirect support

Preliminary web browser support

Support for JPEG XL in Chromium and Chrome web browsers was introduced for testing April 1, 2021 [66] and removed on December 9, 2022 - with support removed in version 110. [67] [68] The Chrome team cited a lack of interest from the ecosystem, insufficient improvements, and a wish to focus on improving existing formats as reasons for removing JPEG XL support. [66] [69] [67] The decision was met with opposition from the community, with many voicing support for JPEG XL on Chromium's bug tracker. [66] [70] [69] Jon Sneyers, co-author of the JPEG XL spec, has questioned the conclusions drawn by the Chrome team, saying: "I think there has been an unfortunate misinterpretation of the data ... which has unfortunately lead [ sic ] to an incorrect decision." [71] The decision was also criticized by Greg Farough from the Free Software Foundation, who said it demonstrated Google's "disturbing amount of control" over the web and web browsers. [72]

Standardization status

Common NamePartFirst public release date (First edition)ISO/IEC NumberFormal Title
JPEG XLPart 130 March 2022 ISO/IEC 18181-1 JPEG XL Image Coding System — Part 1: Core coding system [4]
Part 213 October 2021 ISO/IEC 18181-2 JPEG XL Image Coding System — Part 2: File format [12]
Part 33 October 2022 ISO/IEC 18181-3 JPEG XL Image Coding System — Part 3: Conformance testing
Part 45 August 2022 ISO/IEC 18181-4 JPEG XL Image Coding System — Part 4: Reference software

Rivals

Notes

    Related Research Articles

    A codec is a device or computer program that encodes or decodes a data stream or signal. Codec is a portmanteau of coder/decoder.

    In information theory, data compression, source coding, or bit-rate reduction is the process of encoding information using fewer bits than the original representation. Any particular compression is either lossy or lossless. Lossless compression reduces bits by identifying and eliminating statistical redundancy. No information is lost in lossless compression. Lossy compression reduces bits by removing unnecessary or less important information. Typically, a device that performs data compression is referred to as an encoder, and one that performs the reversal of the process (decompression) as a decoder.

    <span class="mw-page-title-main">JPEG</span> Lossy compression method for reducing the size of digital images

    JPEG is a commonly used method of lossy compression for digital images, particularly for those images produced by digital photography. The degree of compression can be adjusted, allowing a selectable tradeoff between storage size and image quality. JPEG typically achieves 10:1 compression with little perceptible loss in image quality. Since its introduction in 1992, JPEG has been the most widely used image compression standard in the world, and the most widely used digital image format, with several billion JPEG images produced every day as of 2015.

    JPEG Network Graphics is a JPEG-based graphics file format which is closely related to PNG: it uses the PNG file structure as a container format to wrap JPEG-encoded image data.

    <span class="mw-page-title-main">Lossy compression</span> Data compression approach that reduces data size while discarding or changing some of it

    In information technology, lossy compression or irreversible compression is the class of data compression methods that uses inexact approximations and partial data discarding to represent the content. These techniques are used to reduce data size for storing, handling, and transmitting content. The different versions of the photo of the cat on this page show how higher degrees of approximation create coarser images as more details are removed. This is opposed to lossless data compression which does not degrade the data. The amount of data reduction possible using lossy compression is much higher than using lossless techniques.

    <span class="mw-page-title-main">Image compression</span> Reduction of image size to save storage and transmission costs

    Image compression is a type of data compression applied to digital images, to reduce their cost for storage or transmission. Algorithms may take advantage of visual perception and the statistical properties of image data to provide superior results compared with generic data compression methods which are used for other digital data.

    <span class="mw-page-title-main">Compression artifact</span> Distortion of media caused by lossy data compression

    A compression artifact is a noticeable distortion of media caused by the application of lossy compression. Lossy data compression involves discarding some of the media's data so that it becomes small enough to be stored within the desired disk space or transmitted (streamed) within the available bandwidth. If the compressor cannot store enough data in the compressed version, the result is a loss of quality, or introduction of artifacts. The compression algorithm may not be intelligent enough to discriminate between distortions of little subjective importance and those objectionable to the user.

    ICER is a wavelet-based image compression file format used by the NASA Mars rovers. ICER has both lossy and lossless compression modes.

    libjpeg Free software library for handling the JPEG image format

    libjpeg is a free library with functions for handling the JPEG image data format. It implements a JPEG codec alongside various utilities for handling JPEG data. It is written in C and distributed as free software together with its source code under the terms of a custom permissive (BSD-like) free software license, which demands attribution. The original variant is maintained and published by the Independent JPEG Group (IJG). Meanwhile, there are several forks with additional features.

    libavcodec is a free and open-source library of codecs for encoding and decoding video and audio data.

    Lossless JPEG is a 1993 addition to JPEG standard by the Joint Photographic Experts Group to enable lossless compression. However, the term may also be used to refer to all lossless compression schemes developed by the group, including JPEG 2000 and JPEG-LS.

    JPEG XR is an image compression standard for continuous tone photographic images, based on the HD Photo specifications that Microsoft originally developed and patented. It supports both lossy and lossless compression, and is the preferred image format for Ecma-388 Open XML Paper Specification documents.

    <span class="mw-page-title-main">Progressive Graphics File</span> File format

    PGF is a wavelet-based bitmapped image format that employs lossless and lossy data compression. PGF was created to improve upon and replace the JPEG format. It was developed at the same time as JPEG 2000 but with a focus on speed over compression ratio.

    CineForm Intermediate is an open source video codec developed for CineForm Inc by David Taylor, David Newman and Brian Schunck. On March 30, 2011, the company was acquired by GoPro which in particular wanted to use the 3D film capabilities of the CineForm 444 Codec for its 3D HERO System.

    WebP is a raster graphics file format developed by Google intended as a replacement for JPEG, PNG, and GIF file formats. It supports both lossy and lossless compression, as well as animation and alpha transparency.

    A video coding format is a content representation format of digital video content, such as in a data file or bitstream. It typically uses a standardized video compression algorithm, most commonly based on discrete cosine transform (DCT) coding and motion compensation. A specific software, firmware, or hardware implementation capable of compression or decompression in a specific video coding format is called a video codec.

    <span class="mw-page-title-main">Free Lossless Image Format</span> Raster graphics format

    Free Lossless Image Format (FLIF) is a lossless image format claiming to outperform PNG, lossless WebP, lossless BPG and lossless JPEG 2000 in terms of compression ratio on a variety of inputs.

    JPEG XT is an image compression standard which specifies backward-compatible extensions of the base JPEG standard.

    AV1 Image File Format (AVIF) is an open, royalty-free image file format specification for storing images or image sequences compressed with AV1 in the HEIF container format. It competes with HEIC, which uses the same container format built upon ISOBMFF, but HEVC for compression. Version 1.0.0 of the AVIF specification was finalized in February 2019.

    References

    1. "Media Types". IANA. Archived from the original on 2024-03-05. Retrieved 2024-03-06.
    2. "JPEG XL Format Overview". GitHub. Archived from the original on 2022-10-20. Retrieved 2022-10-20.
    3. 1 2 "fuif/README.md". GitHub. 2019-04-04. Archived from the original on 2021-04-24.
    4. 1 2 3 ISO/IEC 18181-1:2022 Information technology — JPEG XL image coding system — Part 1: Core coding system.
    5. 1 2 "Can JPEG XL Become the Next Free and Open Image Format? - Slashdot". 2021-02-20. Archived from the original on 2021-12-30.
    6. "Support for reading/Writing JPEG XL images (#4681) · Issues · GNOME / GIMP". 2021-02-26. Archived from the original on 2021-12-30.
    7. 1 2 "N79010 Final Call for Proposals for a Next-Generation Image Coding Standard (JPEG XL)" (PDF). ISO/IEC JTC 1/SC 29/WG 1 (ITU-T SG16). 15 April 2018.
    8. Rhatushnyak, Alexander; Wassenberg, Jan; Sneyers, Jon; Alakuijala, Jyrki; Vandevenne, Lode; Versari, Luca; Obryk, Robert; Szabadka, Zoltan; Kliuchnikov, Evgenii; Comsa, Iulia-Maria; Potempa, Krzysztof; Bruse, Martin; Firsching, Moritz; Khasanova, Renata; Ruud van Asseldonk; Boukortt, Sami; Gomez, Sebastian; Fischbacher, Thomas (2019). "Committee Draft of JPEG XL Image Coding System". arXiv: 1908.03565 [eess.IV].
    9. "PIK, A new lossy/lossless image format for photos and the internet". GitHub . Retrieved 2022-10-17.
    10. "FUIF, Free Universal Image Format". GitHub . Retrieved 2022-10-17.
    11. "v0.2 JPEG XL Reference Software". GitLab. 2021-02-19. Archived from the original on 2021-10-20.
    12. 1 2 ISO/IEC 18181-2:2021 Information technology — JPEG XL image coding system — Part 2: File format.
    13. "Using Saliency in progressive JPEG XL images" . Retrieved 2022-10-17.
    14. "JPEG XL reaches Committee Draft". JPEG.org. 2019-08-03. Archived from the original on 2019-08-03. Retrieved 2019-08-03. The current contributors have committed to releasing it publicly under a royalty-free and open source license.
    15. 1 2 "JPEG XL White Paper" (PDF). JPEG.org. 2021-01-29. Archived (PDF) from the original on 2 May 2021. Retrieved 2021-03-17.
    16. "JPEG XL vs. AVIF - Page 6". encode.su. Retrieved 2022-10-22.
    17. 1 2 3 4 Sneyers, Jon (26 May 2020). "How JPEG XL Compares to Other Image Codecs". Cloudinary. Archived from the original on 2021-12-30. Retrieved 2021-02-19.
    18. Alakuijala, Jyrki; Boukortt, Sami; Ebrahimi, Touradj; Kliuchnikov, Evgenii; Sneyers, Jon; Upenik, Evgeniy; Vandevenne, Lode; Versari, Luca; Wassenberg, Jan (2020). "Benchmarking JPEG XL image compression". In Schelkens, Peter; Kozacki, Tomasz (eds.). Optics, Photonics and Digital Technologies for Imaging Applications VI. p. 32. doi:10.1117/12.2556264. ISBN   978-1-5106-3478-7.
    19. "libjxl/libjxl: JPEG XL image format reference implementation". GitHub . Archived from the original on 2022-05-22. Retrieved 2022-06-05.
    20. "FLIF - Free Lossless Image Format". Archived from the original on 2021-12-21. Retrieved 2021-04-06.
    21. 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). "JPEG XL next-generation image compression architecture and coding tools". In Tescher, Andrew G; Ebrahimi, Touradj (eds.). Applications of Digital Image Processing XLII. Vol. 11137. p. 20. Bibcode:2019SPIE11137E..0KA. doi: 10.1117/12.2529237 . ISBN   9781510629677.
    22. "FLIF, 3 Sep 2021, jonsneyers comment". GitHub .
    23. Sneyers, Jon (2021-12-10). "Feature request: allow jbrd to reconstruct a part of the file when it's not possible for the whole file". GitHub.
    24. "JPEG XL reference implementation". GitHub . 3 December 2021. Archived from the original on 30 December 2021. Retrieved 24 June 2021.
    25. Andre, Erik (2021-04-20). "Statement of support by Facebook on Chromium's issue #1178058". bugs.chromium.org. Retrieved 2022-11-03.
    26. Andre, Erik (2021-05-24). "Statement of support by Facebook on Firefox's issue #1539075". bugzilla.mozilla.org. Retrieved 2022-11-03.
    27. Rosenthol, Leonard (2021-06-07). "Statement of support by Adobe on Firefox's issue #1539075". bugzilla.mozilla.org. Retrieved 2022-11-03.
    28. Chan, Eric (2022-08-23). "Statement of support by Adobe on Chromium's issue #1178058". bugs.chromium.org. Retrieved 2022-11-03.
    29. Wooster, Roland (2022-08-24). "Statement of support on Chromium's issue #1178058 by VESA's DisplayHDR Chairman and Principal Engineer at Intel's Client Computing Group". bugs.chromium.org. Retrieved 2022-11-03.
    30. Wooster, Roland (2022-11-11). "Reinforced statement of support on Chromium's issue #1178058 by VESA's DisplayHDR Chairman and Principal Engineer at Intel's Client Computing Group". bugs.chromium.org. Retrieved 2022-11-11.
    31. Chauvin, Mariot (2022-08-26). "Statement of support by The Guardian on Chromium's issue #1178058". bugs.chromium.org. Retrieved 2022-11-03.
    32. Chauvin, Mariot (2022-01-13). "Statement of support by The Guardian on Firefox's issue #1539075". bugzilla.mozilla.org. Retrieved 2022-11-03.
    33. MacAskill, Don (2022-01-04). "Statement of support by Flickr and SmugMug on Firefox's issue #1539075". bugzilla.mozilla.org. Retrieved 2022-11-03.
    34. Bendell, Colin (2022-10-17). "Statement of support by Shopify on Chromium's issue #1178058". bugs.chromium.org. Retrieved 2022-11-03.
    35. Rempt, Rempt (2022-11-10). "Statement of support by the Krita Foundation on Chromium's issue #1178058". bugs.chromium.org. Retrieved 2022-11-11.
    36. Brightman, Tony (2022-11-11). "Statement of support by Serif Ltd.'s SerifLabs on Chromium's issue #1178058". bugs.chromium.org. Retrieved 2022-11-11.
    37. "JPEG XL Viewer". chromewebstore.google.com. Retrieved 2024-02-07.
    38. "JPEG XL viewer – Get this Extension for 🦊 Firefox (en-US)". addons.mozilla.org. Retrieved 2024-02-20.
    39. "Update JPEG-XL with latest changes". GitHub. 2019-12-27. Retrieved 10 October 2022.
    40. "PLEASE DO NOT OPEN NEW ISSUES HERE" . Retrieved 27 May 2021.
    41. J40: Independent, self-contained JPEG XL decoder
    42. "libjxl-tiny". GitHub . 4 November 2022.
    43. "jxlatte". GitHub . 23 December 2022.
    44. "jxl_decode". GitHub . 8 June 2023.
    45. Siipola, Johannes (2022-10-31), JPEG XL Encode , retrieved 2022-11-29
    46. Leo Izen (6 March 2023). "hydrium". GitHub . Retrieved 2023-04-02.
    47. Wonwoo Choi (29 October 2023). "jxl-oxide". GitHub . Retrieved 2023-09-29.
    48. "JPEG XL: How It Started, How It's Going". Cloudinary. 12 July 2023. Retrieved 3 November 2023.
    49. "macOS 14 Sonoma: The Ars Technica review". ArsTechnica. 2023-10-29. Retrieved 2023-10-29.
    50. "Explore media formats for the web - WWDC23 - Videos". Apple Developer. Retrieved 2023-06-06.
    51. "Safari 17 Beta Release Notes". Apple Developer Documentation. Retrieved 2023-06-06.
    52. "208235 – Support JPEG XL images". bugs.webkit.org. Retrieved 2023-07-28.
    53. "Introducing the Galaxy S24 Camera/Gallery!". Samsung Community. Retrieved 2024-03-28.
    54. "JPEG XL Image Viewer". Google Play Store. Retrieved 2024-04-14.
    55. "Pale Moon - Release Notes for Archived Versions" . Retrieved 2024-01-17.
    56. "Support for JPEG-XL (#2040) · Issues · GNOME / Epiphany · GitLab". GitLab. 2023-04-12. Retrieved 2023-07-28.
    57. "257871 – [CMake] Enable JPEG XL by default, no longer experimental". bugs.webkit.org. Retrieved 2023-07-28.
    58. "KImageFormats". KDE Invent . Retrieved 29 October 2023.
    59. "Supported graphic and image formats". XnView.com. Retrieved 2024-01-17.
    60. "Jpeg Xl Wic". GitHub . 27 November 2021. Archived from the original on 30 December 2021. Retrieved 23 March 2021.
    61. "JXL WIN Thumb". GitHub . 11 June 2022. Retrieved 27 December 2022.
    62. "JXLook". GitHub . December 2021. Archived from the original on 2021-12-30. Retrieved 2021-03-01.
    63. "libjxl gdk-pixbuf plugin". GitHub. Retrieved 2022-11-26.
    64. "Qt jpegxl image plugin". GitHub . Retrieved 29 October 2023.
    65. "1539075 - (JPEG-XL) Implement support for JPEG XL (Image/JXL)". Archived from the original on 2022-01-04. Retrieved 2021-03-01.
    66. 1 2 3 "Issue 1178058: JPEG XL decoding support (image/jxl) in blink (tracking bug)". bugs.chromium.org. Retrieved 2022-12-16.
    67. 1 2 Proven, Liam. "Google drops forthcoming version of JPEG from Chromium". www.theregister.com. Retrieved 2023-06-06.
    68. JPEG XL support
    69. 1 2 Sneyers, Jon (2022-11-02). "The Case for JPEG-XL". Cloudinary Blog. Retrieved 2022-12-30.
    70. Shankland, Stephen (2022-11-03). "Chrome Banishes JPEG XL Photo Format That Could Save Phone Space". CNET. Retrieved 2022-11-03.
    71. Sneyers, Jon (2022-12-14). "Re: Intent to Prototype: JPEG XL decoding support (image/jxl) in blink". blink-dev (Mailing list). Retrieved 2022-12-30.
    72. Purdy, Kevin (2023-04-17). "FSF: Chrome's JPEG XL killing shows how the web works under browser hegemony". Ars Technica. Retrieved 2023-06-06.