macOS 14 will support JPEG XL(twitter.com) |
macOS 14 will support JPEG XL(twitter.com) |
On the other hand there is something that seems almost infantile about image support in the "operating system" being pivotal. If you read a review of a new MacOS in ArsTechnica you might get the idea that 99% of an OS is about what the buttons look like but in terms of the computer science definition, image codecs are definitely a userspace thing and as a Windows or Linux user I never wait for my OS to support an image format, I just install the codec and code away.
The OS is what comes with the computer or gets installed in the default setup if you're installing yourself. Most of it is userspace.
Distros like Arch & Gentoo allow you to build a custom OS which in doing so blurs the definition quite a lot, but ultimately when people say "macOS" that term includes quite a lot of userspace things. Bundled software is absolutely a core part of every popularly used definition of the word "OS".
Of course kennels and operating systems are highly complex and represent a ton of work… but what is left to impress with a press release?
My OS does everything I can imagine needing it to and the only thing I can imagine wanting it to do going forward is more or less just maintenance (UX/UI excluded)
Any comparision photos out there?
As if people would have the screen to properly watch them? Perhaps a handful of high-end laptop owners... Except if those are the intended audience.
>image codecs are definitely a userspace thing and as a Windows or Linux user I never wait for my OS to support an image format, I just install the codec and code away.
That's how you get half the apps supporting them (if you're lucky) and others not, and generally a hell of a time...
- Better compression ratios
- Ability to modify effort of lossless compression (good for real time transcoding)
- Multi-threaded encode and decode
- Far superior progressive decoding (great for low bandwidth scenarios, just stream in the lossless quality over time)
If things with Apple go well and JPEG XL is supported natively on macOS, iOS and iPadOS this fall, it would be on its way to becoming a thing.
After all, 2 billion devices isn't nothin’.
I take this to suggest that Chrome actively decided against implementing JPEG XL? Did they consider supporting it and reject support for it, or has it simply not been prioritized, but still might be prioritized one day?
If the decision was intentional: did they state a reason why?
https://bugs.chromium.org/p/chromium/issues/detail?id=117805...
"Thank you everyone for your comments and feedback regarding JPEG XL. We will be removing the JPEG XL code and flag from Chromium for the following reasons:
- Experimental flags and code should not remain indefinitely
- There is not enough interest from the entire ecosystem to continue experimenting with JPEG XL
- The new image format does not bring sufficient incremental benefits over existing formats to warrant enabling it by default
- By removing the flag and the code in M110, it reduces the maintenance burden and allows us to focus on improving existing formats in Chrome"
The issue on the Chromium tracker is now one of the most-starred and most-commented-on of all time because people from all over came to tell Google that they're insane, from Intel to Adobe to Facebook to Krita to Cloudinary to Shopify to Serif/Affinity to the VESA DisplayHDR Chairman.
It may also be worth noting that the author of commit to remove support from Chromium appears to be a WebP co-author, having given talks about WebP and being the primary contributor to libwebp.
https://chromium-review.googlesource.com/c/chromium/src/+/40...
My personal conspiracy theory is that some Google engineer who works on Chrome, came up with "JPEG XL support" as a feature they could work on, pushed it through to prod, patted themselves on the back, and forgot about it; but this was all done without first getting sign-off from whoever at Google is trying to push for WebP to be a thing. When that person or group noticed "Chrome now supports JPEG XL", they got that support ripped out.
JPEG XL has gained broader industry interest than any of the previous attempts to replace JPEG.
I think someone is very hurt that their web p pet project has earned more hate than love
Discussed several times previously on HN:
https://news.ycombinator.com/item?id=35589179
Yes It was intentional.
They stated AVIF is as good if not better than JPEG XL.
A mammogram on the other hand, might be 300 images of lossless 4k resolution, which could clock in at about 2 gigabytes. That could be per breast in a given study, and a study could have prior mammograms attached as well.
You will hit memory limits, so you need to be able to unload and load data intelligently and quickly.
(I didn't downvote, BTW; it's a reasonable question.)
Learn about the latest image formats and video technologies supported in Safari 17. Discover how you can use JPEG XL, AVIF, and HEIC in your websites and experiences and learn how they differ from previous formats. We’ll also show you how the Managed Media Source API draws less power than Media Source Extensions (MSE) and explore how you can use it to more efficiently manage streaming video over 5G.
The link isn't live yet as the session is scheduled for Thursday, June 8th.
[1]: https://developer.apple.com/videos/play/wwdc2023/10122/
Just the JPEG recompression is arguably worth the price of entry; it's less savings than AVIF, of course, but it's easier to adopt now, where re-encoding everything as AVIF is a much larger hump to get over. Its other modes provide some real benefits for users for very-high-quality and lossless images as well as any situation where progressive display helps. For folks producing images, is much easier to fit in than AVIF for anyone who needs to encode a lot on the CPU.
I'm pretty sure the Chrome team knew at the time they dropped JPEG XL that there was a decent chance Apple would implement it--there's certainly enough of a backchannel between the browser teams at Google, Apple, Mozilla and Microsoft.
But if the Chrome folks did know they had all three major browser engines were ready to go, along with the positive noises from Facebook, Adobe, other parts of Google, and a few other notable folks, that seems like a solid base of support, unless you're really expecting the world to go all-in on a format before a browser supports it without a flag. So I guess I wonder if it's that the Chrome team had set the bar high, that they hadn't expected Apple to support JXL at the time they made the call, or something else.
Your move, Google.
I see the HDR mentioned in other comments which is interesting.
Are there any (potential conspiracy) reasons they would choose not to go for another format?
I'm trying to understand how they arrived at this answer given it was available for years and ignored in popular software.
The way Apple does it, it's cleaner to implement the APIs for this sort of thing in a new operating system version, especially if it requires features not present in the current versions of the operating system.
They could make an exception for Safari by including the required code to support JPEG XL in Safari Technology Preview on Ventura to allow developers to test their sites and web apps until macOS, iOS, etc. ship in the fall.
I suspect we'll learn what the plan is as the Safari/WebKit team make more announcements during WWDC: https://www.webkit.org/blog/14203/web-technology-sessions-at...
WebP isn't good enough. AVIF isn't good enough. JPEG XL is good enough.
AFAIK (correct me if I’m wrong!) first-party and third-party codecs in media players are kinda equal: you load a file, and the media player picks which codec to delegate that file to. You can’t do that in with a Chrome extension – the extensions can manipulate HTML and run custom JS, but that’s more or less it (plus some basic browser-level stuff like work with tabs and intercept network requests).
This doesn’t mean an extension isn’t possible at all – eg there’s https://github.com/zamfofex/jxl-crx/ that detects JXL images and decodes them with JS – but that’s slower.
Plus the bigger issue is adoption. You want all users to get your JPEG XL images, not just the 0.1% of users that installed the extension.
Firefox: https://addons.mozilla.org/en-US/firefox/addon/jxl/?utm_sour...
Chrome: https://chrome.google.com/webstore/detail/add-jxl-support/kh...
Adobe has partial support (in Camera RAW) with presumably further support coming considering their website recommends JXL alongside AVIF for HDR images. It's also supported by Affinity Photo 2, Krita, Darkroom, GIMP, ffmpeg, ImageMagick, Paint.net, anything Qt/KDE-based via plugin, Pale Moon, libvips, and almost every third-party image viewer that I've ever used or heard of (nomacs, Irfanview, ImageGlass, xnView, etc.). It also has had vocal support from senior engineers at a variety of companies like Facebook, Shopify, Cloudinary, Intel, Flickr, etc.
My first thought when I heard about JXL several months ago was "oh, a new JPEG-2000?" but I've quickly become a JXL evangelist after reading more about it and then playing around with libjxl myself.
https://jpegxl.info/why-jxl.html
Honestly I think the biggest risk to adoption of JPEG XL might be this prior brand dilution.
https://en.wikipedia.org/wiki/Lossless_JPEG#JPEG-LS
https://en.wikipedia.org/wiki/JPEG_2000
https://en.wikipedia.org/wiki/JPEG_XR
Also AVIF and HEIC as specified don't support >8k images.
I think it’s something else.
I’ve read enough CSS Working Group (and other groups) meeting minutes to know when Google wants to implement something, that’s what they do, often when the WebKit and Mozilla teams don’t agree.
Whatever happened for Google to reverse their position on JPEG XL, I don’t believe it has anything to do with the technical merits of the format or whether Apple had planned to implement it.
And TIFF as a container for JXL would no less require JXL adoption than plain JXL.
But no one is doing HW decode for web images. (other than maybe Apple with JPEG? I've seen conflicting reports). AVIF images that aren't actually videos are always software decoded.
Mozilla is many things, but "limited resources" Mozilla is not.
That is if they would stop paying their CEO their entire coffer, anyway.
>be the early adopters of an image codec when nobody is going to use it on the web until the browser engine with de facto control over the market starts supporting it.
The exact opposite mentality was how Firefox and then Chrome usurped the throne from Internet Explorer. Firefox is never going to usurp anything again so long as Mozilla is content to play second and third fiddle.
Especially handy that it wouldn't require a new file format. It only requires the encoder to support variable compression. (I know Photoshop supported this for JPEG many decades ago.)
Foveated compression sounds like a super cool idea I've never thought about before.
Before that, you would need to get radiologists onboard with the idea of something being "diagnostically lossless" (think visually lossless), which is currently a hard sell (some promising research does exist on this)!
At this point it should really just be deprecated in favor of JPEG XL. And let's skip AVIF completely please.
Oh, and adoption rates, but considering JXL's standard was finalized less than a year ago and it's already gotten support in so many things and from so many large companies, I really don't see any way that it fails other than Google abusing their monopolistic position in the browser engine space. The people arguing against adding support for a brand new codec because it doesn't magically have 100% support is circular reasoning and feels very disingenuous considering WebP and AVIF were never held to the same standard.
You say that now, try doing that between 2020 all the way to 2022 you get attacked by AOM Strike Force.
Is there something wrong with the other phrasing? You need to have a progressively encoded image before you can decode it progressively.
Actually, Google employs 2 of the 3 main authors of the JPEG XL spec, and the main contributors to libjxl.
Also, it wasn't a few months, and others had explicitly said no.
You can argue it was a dumb decision, but like, can we at least get facts straight instead of making up random stories?
There people in this thread arguing they have no idea what they are doing and have no expertise, while they simultaneously employ the spec authors to work on it and are one of the two primary contributors to the reference library.
A bit silly and incongruous.
Just because someone does something you don't like doesn't make them stupid or wrong. You'd be much better off if you would gather facts first, listen to the perspectives of others, and then respond.
> There people in this thread arguing they have no idea what they are doing and have no expertise, while they simultaneously employ the spec authors to work on it and are one of the two primary contributors to the reference library.
Google is not a monolith. The JXL people are at Google Research Zurich, while the people who decided to not include JXL in Chrome are members of the Chrome team. The Chrome team obviously does not employ the people over in Zurich, nor do they presumably control what they work on.
And much like Microsoft, I will put any research arm of a company as a separate company.
[1] http://storage.googleapis.com/avif-comparison/index.html
Another framework, CoreImage, provides generic operations to filter and transform images decoded by ImageIO. This provides hardware acceleration and other good stuff that make things like CSS transforms super fast and efficient.
While it can be done in JavaScript it would be much much slower, less efficient, and kill your battery.
If you use a high-powered device you might not appreciate that performance of a low-end Android device hasn't really improved since 2017. I test with an Android Go device that does pretty well if you feed it scaled images but would struggle with the soft decoder.
The native implementation of the decompressor can be much better than one in WebAssembly in that it can use SIMD units on the CPU and many other tricks, including special purpose hardware. That's why Apple is so keen to say that an image format is now supported in the OS, because they codesign the hardware, the OS and the file formats to take advantage of all that.
Come on, people.
(Btw, there's nothing about this that's specific to mirrorless and wouldn't also apply to a DSLR with big dynamic range).
A better comparison with audio would be the terrible quality of a 64 kbps Mp3 file which is going to sound awful on the cheapest bluetooth speakers or a $5000 set of speakers compared to 128 kbps Mp3 which sounds OK superficially but falls apart when compared to the source CD, or higher bit rates which are close to transparent. Many images for the web are highly compressed but nobody really notices.
My current boggle w/ screens is actually what to do with "high color gamut" screens like the one on my iPad. I am into red-cyan anaglyph images where the most important thing is getting separation between the left and right channels.
https://en.wikipedia.org/wiki/Anaglyph_3D
The green in a high color gamut display is more saturated than the sRGB primary so when you ask for sRGB green you get some red and blue mixed in which is an absolute disaster for a stereogram.
The answer to this is to master a high color gamut image just for those devices and serve everyone else an sRGB. I will get around to it one day but it's been a higher priority for me to deal with the same problem in print, where the green on my printer is very saturated but also very dark and the color management system blends in some red to make it brighter. Turning off color management works but really I should be blending in some red into green areas of the left image because that will make the colors closer to the original and also help with stereo imaging by reducing the difference in brightness between the left and right channels.
The Chromium issue where they made this decision is full of "hardware and software vendors" (Adobe, Serif/Affinity, Krita, Facebook, Shopify, Cloudinary, Intel, Nvidia, the VESA DisplayHDR Chairman) telling them they're making a terrible decision and is one of the most-starred and most-commented-on issues of all time for Chromium.
https://bugs.chromium.org/p/chromium/issues/detail?id=117805...
"and the commit to remove support was created by a co-author of WebP who gives talks on WebP and is the primary contributor to libwebp."
Google also employs two of the co-authors of JPEG XL, who give talks on JPEG XL, and was were two of the primary contributors to libjxl.
The main authors of the JPEG XL specification are Jyrki Alakuijala, Jon Sneyers, and Luca Versari. Jyrki is a Googler. Jon is at Cloudinary. Luca is also at Google.
If you are going to try to come up with a silly conspiracy about this being WebP related, it probably would help if this wasn't the case.
Maybe consider that they do in fact have the expertise necessary to decide whether JPEG-XL is something they want to do?
I mean, seriously. You can disagree with the decision, but your argument that they have no idea what they are doing WRT to JPEG-XL seems pretty silly - the only company who arguably has any better idea would be cloudinary.
It's not the expertise of your employer that is in question but the morals.
Which is completely nonsensical. Hardware support is meaningless for web images.
Or they do but they just assume that's the way things are. They don't know why an image that's been reposted from Facebook to Twitter to Instagram to Reddit to Imgur and back a dozen times has artifacting and color banding, and as long as they can still get the gist of the image, it doesn't matter to them. Besides, it's not like they can just ask the platform to magically fix the image, so they just don't think about it.
In many cases, the original high quality source has been lost to 404s and unpaid webhosting bills. The original is probably still on someone's hard drive, but it's unlikely to be remembered, much less surface again, so compressed messes are all that's left.
With JPEG XL, many of those compressed messes would be much closer to the original image due to its extremely strong generational loss resilience (see the webm attachment to [0]).
JPEG XL is a massive step forward for images on the web for a number of reasons, but it has especially massive benefits when it comes to preserving image quality across the web. And this is especially true when you consider that you can reversibly reencode the billions of existing JPEGs on people's drives and on the web as JPEG-XLs losslessly for 20+% space savings [0].
[0]: https://bugs.chromium.org/p/chromium/issues/detail?id=117805...
> No it wasn't.
https://news.ycombinator.com/item?id=33935355: "Wasm does not have the hardware acceleration necessary to efficiently do codecs."