JPEG XL: Difference between revisions
No edit summary |
AnimeJanai (talk | contribs) m →Existing support: update squoosh entry since its online media converter site is now available |
||
Line 98: | Line 98: | ||
* [[XnView|XnView MP]]<ref>https://www.xnview.com/mantisbt/view.php?id=1845</ref> – viewer and editor of raster graphics |
* [[XnView|XnView MP]]<ref>https://www.xnview.com/mantisbt/view.php?id=1845</ref> – viewer and editor of raster graphics |
||
* MConverter<ref>https://mconverter.eu</ref> – online media converter |
* MConverter<ref>https://mconverter.eu</ref> – online media converter |
||
* Squoosh<ref>https://squoosh.app</ref> – [[WebAssembly]]-based image converter |
* Squoosh<ref>https://squoosh.app</ref> – [[WebAssembly]]-based image converter (online media converter available) |
||
* [[gThumb]]<ref>https://ubuntuhandbook.org/index.php/tag/jpeg-xl/</ref> – free Linux image viewer |
* [[gThumb]]<ref>https://ubuntuhandbook.org/index.php/tag/jpeg-xl/</ref> – free Linux image viewer |
||
* ImageGlass<ref>https://imageglass.org/</ref> – free and open-source Windows image viewer |
* ImageGlass<ref>https://imageglass.org/</ref> – free and open-source Windows image viewer |
Revision as of 17:55, 2 May 2021
Filename extension |
.jxl |
---|---|
Internet media type |
image/jxl |
Magic number | FF 0A or 00 00 00 0C 4A 58 4C 20 0D 0A 87 0A |
Developed by |
|
Type of format | Lossy/lossless bitmap image format |
Extended from | |
Standard | ISO/IEC 18181 |
Free 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
- JPEG is the Joint Photographic Experts Group, which is the committee that designed the format.
- X is part of the name of several JPEG standards since 2000: JPEG XT, JPEG XR, JPEG XS.
- L means Long-term because the authors' intention for the format is to replace the legacy JPEG and last as long too.[3]
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
- Improved functionality and efficiency compared to traditional image formats (e.g. JPEG, GIF and PNG);
- Progressive decoding (by resolution and precision);
- Lossless JPEG transcoding with ~20% size reduction;
- 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]
- Royalty-free format with an open-source reference implementation.[9]
Technical details
JPEG XL is based on ideas from Google's Pik format and Cloudinary's FUIF format (which was in turn based on FLIF).[10]
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.[11]
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 signalled tree structure and predictor selection per context. Entropy coding is LZ77-enabled and can use both Asymmetric Numeral Systems 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:
- a frame can only update part of the canvas;
- a frame can not just replace the contents on the canvas, but also be blended, added or multiplied to it;[12]
- up to four frames[citation needed] can be 'remembered' and referenced using the "patches" coding tool in later frames.[13]
Software
Codec implementation
- JPEG XL Reference Software (libjxl)
- license: 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
- coder
Existing support
- ImageMagick[14] – toolkit for raster graphics processing
- XnView MP[15] – viewer and editor of raster graphics
- MConverter[16] – online media converter
- Squoosh[17] – WebAssembly-based image converter (online media converter available)
- gThumb[18] – free Linux image viewer
- ImageGlass[19] – free and open-source Windows image viewer
Unofficial support
- Qt / KDE apps[20] – via plugin
- Microsoft Windows[21] – via WIC plugin, i.e. for viewing in Photo Viewer, File Explorer etc.
- macOS[22] – via standalone app and Quick Look plugin
- Chromium[23] – web browser; in testing (as Chrome Canary flag)
- GIMP[3] – raster graphics editor; plugin for GIMP 2.10 available
Proposed support
- Firefox[24] – web browser
- WebKit[25] – browser engine of Safari and others
- IrfanView[26] – image viewer
Standardization status
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 | under development, planned for 2021 | ISO/IEC DIS 18181-2 | JPEG XL Image Coding System — Part 2: File format | |
Part 3 | under development, planned for 2022 | ISO/IEC WD 18181-3 | JPEG XL Image Coding System — Part 3: Conformance testing | |
Part 4 | under development, planned for 2022 | ISO/IEC CD 18181-4 | JPEG XL Image Coding System — Part 4: Reference software |
References
- ^ a b "fuif/README.md". GitHub. Retrieved 2019-04-04.
- ^ https://tech.slashdot.org/story/19/08/17/1855214/can-jpeg-xl-become-the-next-free-and-open-image-format
- ^ a b https://gitlab.gnome.org/GNOME/gimp/-/issues/4681
- ^ "JPEG - Next-Generation Image Compression (JPEG XL) Final Draft Call for Proposals". Jpeg.org. April 23, 2018. Retrieved 29 May 2018.
- ^ "v0.2 JPEG XL Reference Software". GitLab.
- ^ "JPEG XL reaches Committee Draft". JPEG Org. 3 August 2019. Archived from the original (html) 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.
- ^ "JPEG XL White Paper" (PDF). JPEG Org. 22 January 2021. Retrieved 17 March 2021.
- ^ a b Sneyers, Jon. "How JPEG XL Compares to Other Image Codecs". Cloudinary.
- ^ "jpeg / JPEG XL Reference Software". GitLab.
- ^ https://flif.info/#update
- ^ 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: 20. doi:10.1117/12.2529237. ISBN 9781510629677.
- ^ https://gitlab.com/wg1/jpeg-xl/-/blob/b1c6fdcd/lib/jxl/frame_header.h#L178-217
- ^ https://gitlab.com/wg1/jpeg-xl/-/blob/b1c6fdcd/lib/jxl/frame_header.h#L313-315
- ^ https://imagemagick.org/script/formats.php#supported
- ^ https://www.xnview.com/mantisbt/view.php?id=1845
- ^ https://mconverter.eu
- ^ https://squoosh.app
- ^ https://ubuntuhandbook.org/index.php/tag/jpeg-xl/
- ^ https://imageglass.org/
- ^ https://github.com/novomesk/qt-jpegxl-image-plugin
- ^ https://github.com/mirillis/jpegxl-wic
- ^ https://github.com/yllan/JXLook
- ^ https://bugs.chromium.org/p/chromium/issues/detail?id=1178058
- ^ https://bugzilla.mozilla.org/show_bug.cgi?id=1539075
- ^ https://bugs.webkit.org/show_bug.cgi?id=208235
- ^ https://irfanview-forum.de/forum/program/feature-requests/13089-
External links
- Official website
- Reference implementation
- builds for Windows:
- Windows Bin Builds (the page also contains many other programs)
- AppVeyor
- builds for Windows:
- Author's personal page