-
Notifications
You must be signed in to change notification settings - Fork 28
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
JPEG XL image format #430
Comments
Rather than only providing a link to a previous proposal, please make the case here. This issue is what will be considered and discussed. |
I fear I won't make a proper case by Oct 5, apologies! To post at least something, here's my very subjective view, even without sources, sorry: Therefore I would hope with it being part of Interop to encourage all browsers to support it. |
JPEG-XL is, in my opinion, the best currently available path forward for a true JPEG successor. Many other great image codecs based on video compression technology - like AVIF & WebP - have shown promise and are effective at compressing image data well, but do not have the features to compete properly with a codec as versatile as JPEG-XL. I'll explain my thoughts below by enumerating the areas in which an image codec must excel to be successful, and why JXL does so. Lossless CompressionJPEG-XL offers excellent lossless compression capabilities. While lossless WebP was an improvement over PNG for 8-bit lossless image encoding, JPEG-XL manages not only to outdo lossless WebP in encoding efficiency but also be more versatile for bit depths greater than 8-bit (a category PNG previously dominated). 16-bit lossless imagery, especially HDR images that are becoming more popular & rarely utilize 8-bit color depth, are where JPEG-XL shines, and it is the only codec to compete with PNG in that regard while providing better coding efficiency. Example: JPEG-XL compresses this 16-bit AdobeRGB PNG better than PNG. Using: 16-bit PNG: Lossy CompressionJPEG-XL is equally adept at lossy compression, especially at quality levels that we as humans care about. It promises to be around 60% better than JPEG. While video-based codecs like AVIF can be competitive when given lots of CPU time, JPEG-XL is both fast and efficient for medium to high fidelity photographic imaging. I've done a number of tests myself, which focus on high resolution, high fidelity, high effort encoding and medium resolution, low effort encoding designed for speed. Supported Bit Depth(s)JPEG-XL supports up to 32 bits per channel of bit depth, making it future proof for the increasingly popular HDR photos coming out of smartphones. There is essentially zero downside to encoding high bit depth with JXL relative to the resulting encode's size. Considering many smartphones take HDR photos now, JXL can offer a pipeline for them to make their way to the Web in the future especially as companies like Adobe & Apple have already embraced the new codec. Progressive DecodeJPEG-XL provides actual progressive decode support that you can experiment with here on a supported browser like Safari, Waterfox, Thorium, Mercury, or any browser on iOS. Progressive decode is a feature only JPEG is able to offer a real implementation of, rendering low frequency transform coefficients before the rest of the image arrives to allow an image to display before the entire thing has been sent over the network. Blurhashes do not replace this technology, but rather compliment it, allowing another layer of progressive decode that can be used even before the image begins to load progressively. This is an important feature to improve the user experience on websites featuring large images, or on any website if your Internet connection isn't strong. Lossless JPEG Re-compressionAn incredibly unique JPEG-XL feature that no other codec can currently offer competition to is lossless JPEG re-compression, or the ability to take a JPEG input and provide an output with a smaller filesize (on average, 20% smaller) that is pixel-for-pixel identical. This is why companies like Meta have endorsed JPEG-XL, as it offers a path forward for the existing JPEGs on the Internet. Industry SupportFrom the JPEG-XL Wikipedia page:
Apple also features ecosystem-wide JPEG-XL support as of iOS 17 & macOS Sonoma. Other FeaturesJPEG-XL has the potential to replace popular formats like TIFF for authoring workflows due to its broad feature set. From the JXL Wikipedia, some additional features include:
I am excited for the future of JPEG-XL, and I would like to see it take over on the Web & beyond to compliment the existing set of available codecs as well as compete with the legacy JPEG to hopefully someday take its place. Sources:
Thank you for considering JPEG-XL! |
I would very much enjoy seeing this because JPEG XL is a rare opportunity to finally gain a modern catch-all dedicated image format not only on the web but deep into various industries as well, helping immensely with consistent data interchange and staff costs from data conversions. I think it cannot be underestimated just how big of a deal this is. Here's my take on the main advantages of JPEG XL over competitors and some professional use examples. Of course, there is always a very real issue of "codec overhead" and expanding the surface area for security holes as seen with the recent WebP security issue CVE-2023-4863, but in this case I think the benefits far outweigh these disadvantages where JPEG XL is positioned to be a "format for the decades":
Concrete field use examples: Geological engineering: Since JPEG XL supports height maps in metadata along with high detail (going as far as 32-bit lossless, yet still not sacrificing high compression ratios), this would make JPEG XL excellent containers for this use. Medical industry: Since MRI scans, X-rays and CT scans produce a very large amount of data often also in a wide gamut, hospitals and clinics could have substantial storage cost improvements if adopting JPEG XL without compromising fidelity. The unified format regardless lossy or lossless use without a change of file formats could also assist in training and documentation. Field work: Since JPEG XL supports progressive decoding as well as high compression, scenarios with limited bandwidth would benefit greatly, such as mobile inspections and reports of utility pole damage following harsh weather conditions where damage is photographed and uploaded, or past photography of e.g. electrical cable cabinets is revisted (downloaded) as references in the field at later dates as inspections are made. Photography, journalism, publishing: Thanks to its high 32-bit fidelity and CMYK support, it is a natural sucessor to various camera RAW and TIFF formats. Sources: |
Some more points:
|
I believe JPEG XL is the best currently available option for compressing still images, especially for photography. Adobe Photoshop, Lightroom, and Camera Raw will soon officially import, edit, and export photos in the JPEG XL format. This includes both Standard Dynamic Range (SDR) and High Dynamic Range (HDR) photos. There are several reasons we've added JPEG XL support, most of which have been covered by other posts in this thread (quality, speed, high bit depth, integer and floating-point, lossy and lossles, ease of tuning, lossless transcode from JPEG). These are also the same reasons we've added JPEG XL as a codec option in version 1.7 of Digital Negative (DNG). Our customers use web galleries for a wide variety of imaging workflows, including sharing portfolios, collaborative workspaces, and data review. JPEG XL's high quality and versatility makes it an ideal choice for supporting these workflows. I think browser support and interop for JPEG XL should be a top priority. Eric Chan, Fellow, Adobe |
This appears to be a single test that checks for support, which seems insufficient for measuring interop. Is there a conformance testsuite? Are there any tests checking integration with web APIs ( |
There is https://github.com/libjxl/conformance and https://github.com/libjxl/bench, which are indented at testing decoder implementations. When Chromium was able to decode JPEG XL images, we had an extensive set of test images and blink tests for them. See https://chromium-review.googlesource.com/c/chromium/src/+/4255409 for the types of tests and images, for example also integration tests with the With that it should be straightforward to come up with a good test measuring interop. I'd be happy to help writing such a test! I think the most important aspects of such tests would be to make sure the following works: |
@zcorpan are you aware of any other format-specific Web API test suites that could be used as guidance? I just searched wpt.fyi for "JPEG" and "WebP" and turned up an incomplete handful of things. If a test suite like this doesn't exist yet, I guess this could be an opportunity to put one together. |
There isn't a lot of coverage for other image formats in wpt I think, but a few tests for PNG/APNG: https://wpt.fyi/results/png?label=experimental&label=master&aligned A list of web APIs that fetch an image can be deduced from Fetch Metadata destination being "image" (but also "embed" and "object" and "document"). A doc by @jugglinmike from a few years ago listing those (for web-platform-tests/wpt#25247) is at https://docs.google.com/document/d/1zyV4RzHnP8xqyxH4yHiNanrIoj7tjNYqQtligAgoPN4/edit#heading=h.s32xcig69wzc Each such API probably has some tests in wpt. |
If having a high quality Rust decoder implementation would arise as the only gating factor for choosing JPEG XL into interop 2024, the JPEG XL developer team in Google Research can deliver such by the end of Q2 2024. We have been successfully developing and maintaining Brotli and WOFF2 codecs for almost 10 years and would be able to do this too, safely and professionally, as well as supporting for the HDR needs there (such as ultra HDR, PQ, HLG and others). We can also create the interfacing code for the browsers, including Chrome, Edge and Mozilla. We already have a version of C++ JPEG XL reference implementation interface code for Chrome and Edge ready for deployment, and could do the same for the possible Rust version. Mozilla's JPEG XL interface code has been developed in their org, but we can help there too if needed. Our experience on the interface code is that it is about 6-8 weeks of calendar time for us to build from scratch. |
FWIW: |
We have tested conformance of the jxl-oxide decoder (which is implemented in Rust) and it is a fully conforming alternative implementation of JPEG XL. It correctly decodes all conformance test bitstreams and passes the conformance thresholds described in ISO/IEC 18181-3. |
https://bugs.chromium.org/p/chromium/issues/detail?id=1451807#c35:
|
Here is a small list of a few websites hosting JPEG XL images for various testing purposes, Hope these are helpful in some form even if just for very casual checking of support between browsers.
Warning some of the servers hosting these sites improperly send over .jxl files as |
For me, it's clear. With JXL, we even don't need PNG (used for transparency), WEBP (transparency and compression) or JPG. WebP lacks of progressive load and JXL beats all them in lossless compression. |
Thank you for proposing JPEG XL image format for inclusion in Interop 2024. We wanted to let you know that this proposal was not selected to be part of Interop this year. We did not have consensus to include this proposal. This should not be taken as a comment on the technology as a whole For an overview of our process, see proposal selection. Thank you again for contributing to Interop 2024! Posted on behalf of the Interop team. |
Is there a documented summary of the selection process’ deliberations with regards to this proposal? Pointing to a vague lack of « consensus » (amongst whom and what were the votes?) and the generic process design is… very light. Especially when this is, and by very far, the most demanded proposal and you self-describe (first paragraph of your own readme) with:
|
From the proposal selection process:
The official position of vendors was and still is: Edit: I'm not part of the interop team, I just add the reasons why we won't have any information about the decision |
There's always next year! |
Not if all avenues keep cosplaying chromium’s bug tracker like this (with a sprinkle of opacity by design). |
This was the year, it's January 2024 yet, and Google is more interested in webP. |
rest assured I will propose it again for the next interop (unless already proposed by the time I try)! |
That's it? That's the response to what is, by several times, the most requested feature in Interop 2024? No explanation for rejecting the feature that got 4.5x more support than the runner-up? Really? This isn't even about JPEG-XL, though its rejection does make me sad. This is about the Interop project, which claims to work "for the benefit of users and web developers" failing to be accountable to the users and web developers that engaged with the project. As someone who loves Interop and has been following its progress, the handling of this is extremely disappointing, and I know I'm not alone in that opinion. I really want to see Interop reach its fullest potential! I don't want people losing faith in something as cool as Interop! So please, be transparent and listen to the community! Much love to everyone involved in the proposal and the project regardless <3 Hoping for a better structure next year, for the sake of Interop! |
I fully understand your frustration. I came to this thread thinking that, as this proposal is so high in the rankings, it would be a priority for development, but I have been totally disappointed. It seems that - as has been the case for a decade in the KDE bug forum - "priorities" are relative because of unknown interests. These facts finally make you wonder why such a large group of users bother to participate in forums where you finally get the feeling that our (bug) reports, requests (as in this case) or suggestions are ignored? This is not pessimism or negativity, it is a verifiable reality. Curiously, this is more so in large projects than in small ones. It seems that in large projects, commitments or wills are diluted and nobody commits to resolving the issues. |
An image format replacing JPEG, TIFF, PNG, HEIF, AVIF due to complete coverage of lossy, lossless, progressive and it can't be agreed on that it's obviously moving interop forward of all things. I really lost confidence in this organization's purpose now. Is this just pushing already agreed upon agendas from browser vendors with extra steps? I fail to understand why a community is involved if third parties have decisive powers - why not arrange regular meetings only with browser vendors. |
Situations like this, with JXL, were the exact situations I thought Interop was good for--stopping some singular rogue manager at a company from preventing all of the web from moving on. But instead this was just another development thread Google single-handedly stopped out of nothing but ego? This is incredibly disappointing. |
If a proposal is denied due to the same "rationale" of "lack of consensus" with 1) very obvious and well-articulated advantages over existing formats, 2) wide industry support from Adobe to Facebook to Apple to evidently now Microsoft, and 3) FAR and away the most support from the community (more than 5 times as many votes as the second most popular issue this time around) then I really fail to see what the point of this public-facing repo even is. @jonasnordlund is right, why even bother pretending if the Chromium team can just veto it and none of their reasoning is even made public so that it can face any scrutiny? This whole process just seems like a farce now. Especially considering that this very issue has proof that other parts of Google are actively developing for JXL. Not to mention that the original Chromium issues for flagging JXL for removal and the actual removal itself are authored and/or reviewed and approved by one of the 3 co-authors of WebP and the primary maintainer of libwebp. Feels like an incredibly small group of people at Google abusing their position as maintainers of the browser engine with de facto control over web standards. Interop just gave everyone else another place to impotently scream their opinions into a pillow before giving a response as vague and suspect as Chromium's original "There is not enough interest from the entire ecosystem to continue experimenting with JPEG XL" comment that set off everyone else in the industry. With recent moves from Microsoft looking to add JXL support to WIC, it seems we're fast approaching a state of "everyone who works with 2D raster images supports JXL except Google and, by abuse of their market position, the internet". |
What exactly is the point of the interop project if it can't move the web forward? Just about every single thing on the list for this year is something browsers were already working on. Not even any info on what stage JXL was dropped is just insulting to the community that is pushing for it, those who developed it initially, and every group other than Google that is working on implementing it. I had hoped that Mozilla would so much as mention it, but clearly they are uninterested in anything beyond being almost Chrome. I have the utmost respect for those who work on the browsers we use every day, and a decision not to implement a feature is fine, albeit disappointing, but radio silence on why is simply disappointing. |
@jthoward64 I'm also quite sad about this outcome, but regarding what you said about innovation: I'd say that an interop group is (in essence) a sort of standardisation body, and standardisation always arrives "after the fact". Its purpose is not to innovate or push for innovation, but to "solidify" the innovation that already took place, so we can start focusing on other problems (therefore releasing resources to innovate on other problem spaces), and also so we have good enough documentation about the thing that was "standardised". Having said that, I also think that this decision was self-serving, and not technically motivated. |
Hopefully Chrome reconsiders. Its not that just a couple people on github are demanding it. Its beeing talked a lot on socials too: https://twitter.com/t3dotgg/status/1754689598234722756 |
Thank you for clarifying how this would have been "completed". Note that this is not a proposal for inclusion in Interop 2024. This is a request for inclusion in Interop, period. |
Now that Mozilla's latest position is:
(mozilla/standards-positions#1064) Can we expect to see a Rust decoder from libjxl developers soon? If so, is there any ETA? |
This issue submitted the idea to be considered for Interop 2024. If folks want JPEG XL to be considered for Interop 2025, please be sure to submit a new proposal once the call for proposals has opened. This thread won't automatically be forwarded for consideration in the new year. You can link to this issue, calling out the passionate support, but a new proposal will be needed for Interop 2025. |
This is not a proposal per se, but an issue report. Reports are not filed against each affected version, only 1 is needed. Implicitly, this is a request to solve the issue as soon as possible. @Schweinepriester : It may clarify to title your ticket as an issue report (something like "No coverage of JPEG XL image format"). |
This GitHub repo is not a general space for making requests of web browsers. If you want to make a request that Chrome, Edge or Firefox implement JPEG XL, I suggest going to each of the places where such requests are made. This is a working space for the WPT Interop Project. This issue was opened as a proposal for a focus area to be included in Interop 2024. After much debate and consideration of the 101 proposals received a year ago, Interop 2024 was defined to be a specific set of 17 focus areas. You can see them listed on the Interop 2024 dashboard. Interop 2024 is actively in progress. It will end at the end of 2024. Soon, Interop 2025 will open a call for proposals. If you would like JPEG XL to be considered for Interop 2025, someone will need to create a new proposal. Simply declaring to the universe that you believe all the proposals that did not make it into Interop 2024 will be considered for Interop 2025 will not make that true. Proposals from 2021, 2022, 2023, and 2024 are not automatically considered a second time. Only proposals submitted during the Interop 2025 call for proposals, according to the Interop 2025 process will be considered. In fact, the first two lines of this issue say:
That's because this proposal was a new one submitted for Interop 2024. There was a previous proposal submitted for Interop 2023.
Doing so will not change what this is. This is an old proposal from the process last year. Which is now over. Much like applying for a scholarship, or a research grant, or an even applying to university — you have to submit a new application each year if you want to be considered each year. |
This is not a "request of web browsers"[sic]. The Interop Project analyses weaknesses in WPT and ensures that its members are not too opposed to extending the metrics. For example, before JPEG XL support is tested, Interop would check if Google is opposed.
Issues are not "opened", they just exist. This ticket tracks the lack of a consensual plan for WPT to measure JPEG XL support.
You are the only one talking about proposals or Interop 2025, and I fail to see declarations to the universe here. What I do see is a question asking how this would have been "completed", which unfortunately remains unanswered.
You can read the whole descriptions, but in none will you find them described as proposals. This ticket is in an issue tracker. The database's entries are issue reports. Correspondingly, neither #176 nor this ticket said anything about 2023 or 2024.
Neither the reporter nor anyone else asked to be considered here. As previously indicated, this is not a proposal. The Interop Project may opt to restart its evaluations from scratch every year or every month if it wishes, and letting the ITS know about failure to progress is fine, but governance internals must not complicate issue tracking. |
@Chealer You might want to go look up who I am, and how deeply I've been involved with both getting JPEG XL on the web and in Interop 2022/23/24, before you so confidently declare me wrong. Don't let my gender confuse you. I'm providing advice on how to succeed. A well-written proposal for Interop 2025 that makes a clear & helpful case (free from toxicity) and stands on its own (separate from previous proposals) is the best path forward. |
@jensimmons I can do a new/updated proposal to submit once 2025 opens (if there are no objections). Reference the updated Firefox/Mozilla standards position, the Mozilla Connect submission for JXL support in Firefox, the issue on the Chromium tracker, etc. Or if anyone else beats me to it, hopefully they can flesh it out more and keep it civil. |
Hi @jensimmons,
I'm glad to read that , but if you think you were unduly "declared wrong", I suggest you explain where before bringing attention to your gender or history.
Thanks anyway, but repeating the same work every year is not a great recipe for success, and nobody asked for such advice nor to drive people away. What was asked is to clarify how this would have been "completed".
This project is open. If you're willing to take part in such a proposal, feel free. |
Can a mod just mark this exchange as off topic please? |
@Chealer Stop already. We all want JXL, but your being condescending and rude about it (especially to Jen Simmons from Webkit which has JXL support) is exceptionally annoying, and also makes the entire issue and all of us look bad by association. |
I'm going to lock this discussion now. As Jen said, any further discussion should be in the context of a proposal for Interop 2025 once the proposal period opens on the 17th. |
Description
Same as last year, see #176.
Specification
https://jpeg.org/jpegxl/documentation.html; ISO/IEC 18181
Open Issues
No response
Tests
https://tests.caniuse.com/jpegxl
https://wpt.fyi/results/jpegxl
Current Implementations
Standards Positions
mozilla/standards-positions#522
Browser bug reports
No response
Developer discussions
No response
Polls & Surveys
No response
Existing Usage
No response
Workarounds
No response
Accessibility Impact
No response
Privacy Impact
No response
Other
https://caniuse.com/jpegxl
The text was updated successfully, but these errors were encountered: