Chrome Responds "No" to JPEG XL
groups.google.com
groups.google.com
Removing the JPEG XL code and flag from Chromium - https://news.ycombinator.com/item?id=33412340 - Oct 2022 (42 comments)
Chrome drops JPEG XL, “not enough interest” - https://news.ycombinator.com/item?id=33404840 - Oct 2022 (4 comments)
Google set to deprecate JPEG XL support in Chrome 110 - https://news.ycombinator.com/item?id=33399940 - Oct 2022 (93 comments)
Google Chrome Is Already Preparing to Deprecate JPEG-XL - https://news.ycombinator.com/item?id=33383880 - Oct 2022 (20 comments)
Also:
The case for JPEG XL - https://news.ycombinator.com/item?id=33442281 - Nov 2022 (207 comments)
Is there SNI (https://hn.algolia.com/?dateRange=all&page=0&prefix=false&so...) in the current post? - if there is I can't find it.
The overlap between advocacy and interesting conversation is not zero but repetitions diminish it a lot. And just generally, even if it's not the intent, posting project bug trackers on HN (which is much bigger than most bug trackers) tends to have effect of brigading the particular issue which is not great for the project and not great for HN.
> Helping the web to evolve is challenging, and it requires us to make difficult choices. We've also heard from our browser and device partners that every additional format adds costs (monetary or hardware), and we’re very much aware that these costs are borne by those outside of Google. When we evaluate new media formats, the first question we have to ask is whether the format works best for the web. With respect to new image formats such as JPEG XL, that means we have to look comprehensively at many factors: compression performance across a broad range of images; is the decoder fast, allowing for speedy rendering of smaller images; are there fast encoders, ideally with hardware support, that keep encoding costs reasonable for large users; can we optimize existing formats to meet any new use-cases, rather than adding support for an additional format; do other browsers and OSes support it?
> After weighing the data, we’ve decided to stop Chrome’s JPEG XL experiment and remove the code associated with the experiment. We'll work to publish data in the next couple of weeks.
> For those who want to use JPEG XL in Chrome, we believe a WebAssembly (Wasm) implementation is both performant and a great path forward.
> Jim
JPEG XL's problem is that WebP has now existed for 10 years and has widespread support.
https://research.mozilla.org/2013/10/17/studying-lossy-image...
More recent coverage: https://siipo.la/blog/is-webp-really-better-than-jpeg
Instead, what happened was that WebP started to be used on the web and this broke websites for Firefox users.
Since Firefox is by no means dominant on the web, we had to follow suit or lose more users.
Mozilla didn't support WebP for years. I'm fairly certain one of the official reasons they gave for not doing it was that it wasn't a massive jump in quality over JPEG, which obviously would have been good for the web if it was true and motivation for them to support it sooner than they did.
Notably, when they did add it, Edge did so around the same time, which seems to me suggests some politics in the background, (not in a conspiracy sense, just an agreement based on interperability) which I suspect might apply this time too.
It was kind of an artificial split, much like text, alpha transparency or line drawing might be done as PNG, not because you wanted them to be "lossless" but because JPEG would mess them up due to a lack of tools for reproducing non-natural photo content.
See the lossless comparison here for more:
here, a better comparison: https://siipo.la/blog/whats-the-best-lossless-image-format-c...
this one is also good: https://www.reddit.com/r/AV1/comments/fjddcj/lossless_image_...
basically: JPEG XL does things right, WebP lossless is also not bad (14.8 % worse than JPEG XL), PNG is ok for its age (46.3 % worse), AVIF didn't focus on lossless (63.0 % worse)
If they invested the same resources into improving and promoting JPEG XL, we'd be using JPEG XL. I'm not saying the outcome is objectively worse, but ultimately, they did pick the winner here.
If you look at slide #14, you'll see Opera was an early adopter. Firefox published a "No" blog-post in 2013, and Safari removed WebP support from Sierra preview in 2016, eventually adding it back in 2020. Stuff happened.
And yes, when WebP was created there was a real, non-incremental, need for a Web-oriented image format. Nowadays, it's just incremental improvement on this idea for browsers.
(disclaimer: WebP initiator here)
Basically, AVIF won the OS-level support race by a landslide. And then got natively supported in all the common browsers by a landslide. JXL hasn't taken any victories in OS-level support yet, or any victories as an enabled-by-default option in any browser. With the winner increasingly becoming obvious, time to cut the losses on JXL and run. And thus the "we don't need another format" argument when AVIF is clearly winning now.
Part of this may be as well that AVIF is basically just an AV1 still. If you implement AV1, you've got 95% of your AVIF support already done.
Edit: And for those wondering why AVIF won, it might just be timing. The AVIF spec was finalized in 2019, while JXL was only informally finalized in 2020, and had different parts formally finalized in 2021 and 2022. AVIF had the head start and the implementation advantage.
Edit 2 for @jonsneyers: True... but AVIF was ready to go before JXL, and so logically was enabled first. Chrome enabled AVIF before JXL even had an informal spec completed (Chrome enabled AVIF on August 24, 2020; versus, December 24, 2020 for the informal JXL spec being "finished", with formal standardization dragging on into 2021 and 2022). I take that as a sign the JPEG XL team was way too late and needed to be ~2 years quicker. When your competition has literally designed, formalized, implemented, and enabled a spec before you've even finished the informal standard, you're toast.
Edit 3: And a third reason, because I've not found enough already. If you join the AOM, you don't just get patents for AV1 and AVIF - you also get assistance from all the other members to defend AVIF and AV1 from patent lawsuits on any of them. JXL is just Apache 2, which means it is patent-free... from contributors only, outsiders can still sue JXL implementers for patents. As a result, AVIF has a much, much larger stick to hit patent trolls with - definitely preferable for an open format.
Edit 4: Because I'm probably going to reference this post in the future, I guess I'll add yet another reason. AV1 is a new standard being widely worked on and accepted by almost everyone, and AVIF is following. JPEG meanwhile has released JPEG 2000, JPEG XR, JPEG XS, and JPEG XT standards, all of which failed to take off. What makes anyone think that JPEG's "5th time's the charm" replacement for JPEG will be successful? I wouldn't hope in it. Neither, probably, would any other tech company, who would just look at it as the JPEG Forum's latest fad.
> The bitstream was informally frozen on 24 December 2020 (...) The file format and core coding system were formally standardized on 13 October 2021 and 30 March 2022 respectively.
There's https://github.com/GoogleChromeLabs/squoosh/tree/dev/codecs/... that provides `JXLModule.decode(data: BufferSource): ImageData | null`, but for a polyfill I suspect you'd want a method to get the dimensions of the image and an IntersectionObserver to defer actually decoding the image until it scrolls into view. Having to load the image with XHR is annoying.
This is one reason why I am thankful that Apple still only allows webkit on iOS even if philosophically I believe people should be able to run the software they want on their phone — it's basically the only check against pure Google hegemony over the web.
> can we optimize existing formats to meet any new use-cases, rather than adding support for an additional format; do other browsers and OSes support it?
They did not show this restraint at all when it came to implementing and pushing their own formats.
(And, uh, I don't know where you're getting webp from here. The competition for this generation of image formats is AVIF; AVIF has been blessed by Apple, so no matter how distasteful it is that's what we'll get.)
> They did not show this restraint at all when it came to implementing and pushing their own formats.
JPEG XL was largely a Google-created format.
I think it's a legitimately different tradeoff because the recompression is not like a new lossy format--less code, plus you don't need the whole ecosystem to move, big sites and CDNs can transparently start using it--but still substantial (22% on JPEG content out there). And by being very CPU-light it fills a fairly large gap where people are not ready to use AVIF, which needs either dedicated hardware or tons of CPU to encode.
One thing this is right about is a WASM polyfill is interesting. With that and a ServiceWorker, you can make the recompression pretty transparent (right-click saves a .jpg) but still save your 22%. The performance penalty of doing it in WASM is a question, but it's definitely possible.
The WASM model doesn't seem to be a good replacement for browser plugins. Amusingly, when Chrome killed off plugins one of the rationales they gave was "reducing code complexity". The enormous bloat in the code and HTML5 specs that followed did many things, but reducing Chrome's code complexity isn't one of them.
If you have large JPEGs it's not hard to earn the bandwidth cost back. I am definitely curious about other aspects of WASM performance including speed on first run.
What's that mean? What's a browser partner? What's a device partner? How do additional formats cost to those "partners", as the format handling would be performed by Chrome already?
I doubt device vendors are thoroughly testing every image and video format that the software on the device can render.
Smells to me like BS
I do have sympathy for the not adding lots of formats to the web argument though.
That's a trivial "problem" for the HackerNews audience, but it's a pain point for webp with the broader windows audience.
To add some info, JPEG XL can still be enabled on the latest Edge, Opera, and Firefox Nightly versions. It can be enabled on Chrome 91 - 110 (not included).
You know, if you did that in the other order, you might avoid a lot of sturm und drang.
One advantage for AVIF is that an AVIF file is very close to just being an AV1 still, so if you implement AV1, you've basically got 95% of AVIF already. AVIF is also now natively supported by both Windows, macOS, iOS, and Android, whereas JXL is supported natively by none. The fact that AVIF has gotten OS-level support and JXL hasn't is a sign JXL is dead.