|
lonjil
|
2025-11-14 02:52:44
|
> The JPEG-XL-E core accepts input samples in IEEE 754 single- or half-precision floating-point format and outputs the JPEG XL compressed payload.
interesting
|
|
|
Meow
|
2025-11-14 02:58:07
|
JPEG-XL-E now even more hyphens
|
|
|
lonjil
|
2025-11-14 03:05:43
|
at least that's just a product ID, in the prose and title they write JPEG XL
|
|
|
jonnyawsom3
|
2025-11-17 12:39:34
|
Well, that was fast https://github.com/crosire/reshade/pull/399
|
|
|
username
|
2025-11-17 12:50:09
|
ooh nice
|
|
2025-11-17 01:25:07
|
I wonder how hard it would be to have the depth channel get saved to the resulting file within the scope of the simple lossless encoder and ReShade?
|
|
2025-11-17 01:25:40
|
would be cool to get use out of the dedicated depth channel slot JXL provides
|
|
|
Kampidh
|
2025-11-17 01:29:55
|
Haven't scoped into that section yet, would be nice to have that too
|
|
|
AccessViolation_
|
2025-11-17 10:46:04
|
apparently Element Web (the Matrix client) can preview JXL images but not the images itself in browsers that support JXL, and we have no idea how
|
|
2025-11-17 10:49:24
|
hmm maybe it's using something like imagemagick or ffmpeg to generate previews of images, including JXLs, and serving them in some other format
|
|
|
lonjil
|
2025-11-17 10:58:35
|
that's definitely it
|
|
|
AccessViolation_
|
2025-11-17 11:46:08
|
update: I was looking at a blurhash so I gave someone a completely wrong explanation of how some JXL art was able to look like that with so few bytes. <:galaxybrain:821831336372338729>
|
|
2025-11-17 11:49:30
|
to be fair, that could have easily been JXL art too
|
|
|
VcSaJen
|
|
AccessViolation_
hmm maybe it's using something like imagemagick or ffmpeg to generate previews of images, including JXLs, and serving them in some other format
|
|
2025-11-21 10:02:46
|
Might want to whitelist formats. As recent Google vs ffmpeg debacle showed, old formats are full of vulnerabilities (so many that it's hopeless trying to fix them all, there's no manpower).
|
|
|
Jarek Duda
|
2025-11-21 08:03:47
|
"Subject: Re: [blink-dev] Intent to Prototype: JPEG XL decoding support (image/jxl) in blink
Date: Fri, 21 Nov 2025 15:01:23 -0500
From: Rick Byers <rbyers@chromium.org>
To: Ad <adpocalyptic@gmail.com>
CC: blink-dev <blink-dev@chromium.org>, ― <hmz2798@gmail.com>, Andy Foxman <foxtrot2cz@gmail.com>, zco...@mozilla.com <zcorpan@mozilla.com>, Albert Andaluz González <albertandaluz@gmail.com>, Jarek Duda <dudajar@gmail.com>, Markus K. <markus.krainz@gmail.com>, Tomáš Poledný <saljacky@gmail.com>, Yaowu Xu <yaowu@google.com>, ash...@scirra.com <ashley@scirra.com>, jimba...@google.com <jimbankoski@google.com>, jz...@google.com <jzern@google.com>, vign...@google.com <vigneshv@google.com>, s...@chromium.org <sky@chromium.org>, w...@google.com <wtc@google.com>, yoav...@chromium.org <yoavweiss@chromium.org>, dah...@chromium.org <dahlke@chromium.org>
Hi everyone,
Since JPEG XL was last evaluated, Safari has shipped support and Firefox has updated their position. We also continue to see developer signals for this in bug upvotes, Interop proposals, and survey data. There was also a recent announcement that JPEG XL will be added to PDF.
Given these positive signals, we would welcome contributions to integrate a performant and memory-safe JPEG XL decoder in Chromium. In order to enable it by default in Chromium we would need a commitment to long-term maintenance. With those and our usual launch criteria met, we would ship it in Chrome.
Rick (on behalf of Chrome ATLs)"
|
|
|
AccessViolation_
|
|
jonnyawsom3
|
2025-11-21 08:05:43
|
2025 sure is going out with a bang
|
|
2025-11-21 08:06:13
|
Thanks for forwarding it here
|
|
|
Jarek Duda
|
2025-11-21 08:09:01
|
Congratulations! here is the link: https://groups.google.com/a/chromium.org/g/blink-dev/c/WjCKcBw219k/m/NmOyvMCCBAAJ
|
|
|
AccessViolation_
|
2025-11-21 08:09:47
|
oh man this just made my weekend
|
|
|
Cacodemon345
|
2025-11-21 08:26:09
|
This year sure is fucking insane lol.
|
|
2025-11-21 08:26:21
|
The year where everything happens.
|
|
|
A homosapien
|
2025-11-21 08:26:22
|
The best possible JXL news just dropped my god 🥳
|
|
|
jonnyawsom3
|
2025-11-21 08:31:36
|
Pour one out for the poor devs, as if they weren't busy enough 😅
|
|
2025-11-21 08:32:23
|
And now I have more incentive to hury up my encoder improvements
|
|
|
AccessViolation_
|
2025-11-21 08:35:12
|
they even spelled it right, that's how you know they're serious
|
|
|
monad
|
|
AccessViolation_
they even spelled it right, that's how you know they're serious
|
|
2025-11-21 09:19:21
|
nope
|
|
|
AccessViolation_
|
2025-11-21 09:20:05
|
still no love for the non-breaking space...
|
|
|
lonjil
|
2025-11-21 09:39:36
|
One thing to note here, is that unlike Firefox, Chrome doesn't use a JS-based PDF reader. PDFium is a native library that depends on native image libraries.
So they would've had to add a JXL decoder to PDFium, and thus Chrome, sooner or later. Mayne not until like 2027 or so, but definitely eventually.
The whole argument against jxl was increased attack area, increased maintenance burden, and increased code size on constrained platforms like phones. But all of that is irrelevant if they need to ship it anyway.
|
|
|
AccessViolation_
|
2025-11-21 09:46:34
|
I wonder how Interop is going to go now
|
|
|
dogelition
|
2025-11-21 09:47:56
|
jxl sweep
|
|
|
Jim
|
2025-11-21 10:02:23
|
The other day Firefox assigned someone to the JXL bug so looks like they are moving forward as well.
|
|
|
jonnyawsom3
|
2025-11-21 10:03:04
|
They've been working on it for weeks, just a lot of dependencies to sort out first
|
|
|
Mine18
|
2025-11-21 10:11:40
|
how ready are jxl-oxide and jxl-rs for integration?
|
|
|
CrushedAsian255
|
|
Mine18
how ready are jxl-oxide and jxl-rs for integration?
|
|
2025-11-21 10:29:41
|
I think JXL-rs once finished is designed to be the integration
|
|
|
Jarek Duda
"Subject: Re: [blink-dev] Intent to Prototype: JPEG XL decoding support (image/jxl) in blink
Date: Fri, 21 Nov 2025 15:01:23 -0500
From: Rick Byers <rbyers@chromium.org>
To: Ad <adpocalyptic@gmail.com>
CC: blink-dev <blink-dev@chromium.org>, ― <hmz2798@gmail.com>, Andy Foxman <foxtrot2cz@gmail.com>, zco...@mozilla.com <zcorpan@mozilla.com>, Albert Andaluz González <albertandaluz@gmail.com>, Jarek Duda <dudajar@gmail.com>, Markus K. <markus.krainz@gmail.com>, Tomáš Poledný <saljacky@gmail.com>, Yaowu Xu <yaowu@google.com>, ash...@scirra.com <ashley@scirra.com>, jimba...@google.com <jimbankoski@google.com>, jz...@google.com <jzern@google.com>, vign...@google.com <vigneshv@google.com>, s...@chromium.org <sky@chromium.org>, w...@google.com <wtc@google.com>, yoav...@chromium.org <yoavweiss@chromium.org>, dah...@chromium.org <dahlke@chromium.org>
Hi everyone,
Since JPEG XL was last evaluated, Safari has shipped support and Firefox has updated their position. We also continue to see developer signals for this in bug upvotes, Interop proposals, and survey data. There was also a recent announcement that JPEG XL will be added to PDF.
Given these positive signals, we would welcome contributions to integrate a performant and memory-safe JPEG XL decoder in Chromium. In order to enable it by default in Chromium we would need a commitment to long-term maintenance. With those and our usual launch criteria met, we would ship it in Chrome.
Rick (on behalf of Chrome ATLs)"
|
|
2025-11-21 10:30:35
|
YES!!!
|
|
|
Quackdoc
|
|
Mine18
how ready are jxl-oxide and jxl-rs for integration?
|
|
2025-11-22 12:08:38
|
not yet but soon™️
|
|
2025-11-22 12:09:28
|
honestly all they really need is a somewhat stable api anyways
|
|
|
jonnyawsom3
|
|
CrushedAsian255
I think JXL-rs once finished is designed to be the integration
|
|
2025-11-22 02:27:12
|
It already is integrated https://discord.com/channels/794206087879852103/803574970180829194/1412813772988612718
|
|
|
.vulcansphere
|
|
Jarek Duda
"Subject: Re: [blink-dev] Intent to Prototype: JPEG XL decoding support (image/jxl) in blink
Date: Fri, 21 Nov 2025 15:01:23 -0500
From: Rick Byers <rbyers@chromium.org>
To: Ad <adpocalyptic@gmail.com>
CC: blink-dev <blink-dev@chromium.org>, ― <hmz2798@gmail.com>, Andy Foxman <foxtrot2cz@gmail.com>, zco...@mozilla.com <zcorpan@mozilla.com>, Albert Andaluz González <albertandaluz@gmail.com>, Jarek Duda <dudajar@gmail.com>, Markus K. <markus.krainz@gmail.com>, Tomáš Poledný <saljacky@gmail.com>, Yaowu Xu <yaowu@google.com>, ash...@scirra.com <ashley@scirra.com>, jimba...@google.com <jimbankoski@google.com>, jz...@google.com <jzern@google.com>, vign...@google.com <vigneshv@google.com>, s...@chromium.org <sky@chromium.org>, w...@google.com <wtc@google.com>, yoav...@chromium.org <yoavweiss@chromium.org>, dah...@chromium.org <dahlke@chromium.org>
Hi everyone,
Since JPEG XL was last evaluated, Safari has shipped support and Firefox has updated their position. We also continue to see developer signals for this in bug upvotes, Interop proposals, and survey data. There was also a recent announcement that JPEG XL will be added to PDF.
Given these positive signals, we would welcome contributions to integrate a performant and memory-safe JPEG XL decoder in Chromium. In order to enable it by default in Chromium we would need a commitment to long-term maintenance. With those and our usual launch criteria met, we would ship it in Chrome.
Rick (on behalf of Chrome ATLs)"
|
|
2025-11-22 07:40:41
|
Yay, well done everyone <:heyjam2Jamcheer:1436610418033557534>
|
|
|
_wb_
|
|
Jarek Duda
"Subject: Re: [blink-dev] Intent to Prototype: JPEG XL decoding support (image/jxl) in blink
Date: Fri, 21 Nov 2025 15:01:23 -0500
From: Rick Byers <rbyers@chromium.org>
To: Ad <adpocalyptic@gmail.com>
CC: blink-dev <blink-dev@chromium.org>, ― <hmz2798@gmail.com>, Andy Foxman <foxtrot2cz@gmail.com>, zco...@mozilla.com <zcorpan@mozilla.com>, Albert Andaluz González <albertandaluz@gmail.com>, Jarek Duda <dudajar@gmail.com>, Markus K. <markus.krainz@gmail.com>, Tomáš Poledný <saljacky@gmail.com>, Yaowu Xu <yaowu@google.com>, ash...@scirra.com <ashley@scirra.com>, jimba...@google.com <jimbankoski@google.com>, jz...@google.com <jzern@google.com>, vign...@google.com <vigneshv@google.com>, s...@chromium.org <sky@chromium.org>, w...@google.com <wtc@google.com>, yoav...@chromium.org <yoavweiss@chromium.org>, dah...@chromium.org <dahlke@chromium.org>
Hi everyone,
Since JPEG XL was last evaluated, Safari has shipped support and Firefox has updated their position. We also continue to see developer signals for this in bug upvotes, Interop proposals, and survey data. There was also a recent announcement that JPEG XL will be added to PDF.
Given these positive signals, we would welcome contributions to integrate a performant and memory-safe JPEG XL decoder in Chromium. In order to enable it by default in Chromium we would need a commitment to long-term maintenance. With those and our usual launch criteria met, we would ship it in Chrome.
Rick (on behalf of Chrome ATLs)"
|
|
2025-11-22 08:03:22
|
HUGE news! GREAT NEWS!
|
|
|
jonnyawsom3
|
2025-11-22 08:15:36
|
Wow, you know it's big when <#803379415106584626> finally gets updated xD
|
|
|
Cacodemon345
|
2025-11-22 08:43:19
|
Still no sight of libjxl's 1.0 release.
|
|
|
A homosapien
|
2025-11-22 09:07:27
|
All eyes are now on jxl-rs to be production ready for Chrome and Mozilla
|
|
|
dogelition
|
|
Jarek Duda
Congratulations! here is the link: https://groups.google.com/a/chromium.org/g/blink-dev/c/WjCKcBw219k/m/NmOyvMCCBAAJ
|
|
2025-11-22 09:20:10
|
new post just now with a wip implementation
(still using the c++ libjxl)
|
|
|
jonnyawsom3
|
2025-11-22 09:25:17
|
Damn, that was fast
>>> Great to hear this! Recently started working on this -> https://chromium-review.googlesource.com/c/chromium/src/+/7170439
Current status:
- Feature complete - used the previous JXL implementation as a blueprint and updated to the most recent reference implementation
- Added animation support (Chromium would be the first browser to support JXL animations)
- bots are green (Except size increase jobs; i have no clou why it ignores my commit hint)
- guess still needs several rounds of feedback and optimization work. I'm happy to collaborate with anyone interested in reviewing and optimizing this further.
Here's a demo video showing it: https://youtu.be/zVkX4bP6qSo
cheers,
|
|
|
AccessViolation_
|
2025-11-22 09:56:55
|
we'll need to update this now
|
|
2025-11-22 09:58:07
|
|
|
|
Cacodemon345
|
2025-11-22 09:58:51
|
In my opinion the C++ libjxl library should be finished as well; no one's gonna want to use the Rust library for their C/C++ projects.
|
|
|
AccessViolation_
|
2025-11-22 09:59:17
|
it is finished
|
|
2025-11-22 09:59:48
|
well finished is a big word
|
|
|
Cacodemon345
|
2025-11-22 10:00:15
|
Many projects don't consider libjxl finished until the 1.0 release.
|
|
|
AccessViolation_
|
2025-11-22 10:00:53
|
that's not necessarily an indicator of whether a project is finished
|
|
|
HCrikki
|
2025-11-22 10:01:13
|
libjxl isnt getting abandoned. decoding was pretty much 1.0 since long with 100% conformance. encoder will keep getting improvements, tuning, profiling, etc - do note it was supposed to only be a reference implementation, it just raised the bar really high
|
|
|
Cacodemon345
|
2025-11-22 10:01:42
|
I mean the 1.0 release would be considered formally finished by many FOSS projects.
|
|
|
AccessViolation_
|
2025-11-22 10:03:35
|
I think you might be overestimating their reliance of the version number, to be fair
|
|
|
HCrikki
|
2025-11-22 10:03:52
|
the versioning is only misleading for folks unfamiliar with why 0.10 comes after 0.9 - decoder's version only matches encoder's since improvements to both are rolled at the same time, not because decoder was alpha-state
|
|
|
AccessViolation_
|
2025-11-22 10:05:10
|
if projects don't want to integrate libjxl until it's "done" because they see it's still on 0.X, it's probably good to tell them that the decoder is fully feature complete and already used in many mainstream software
|
|
|
Cacodemon345
|
2025-11-22 10:11:31
|
Many projects also want the encoder to be finished and tested to work correctly with the decoder hence the reason they're asking for 1.0.
|
|
|
AccessViolation_
|
2025-11-22 10:12:09
|
what does it mean for the encoder to be finished
|
|
|
A homosapien
|
|
Cacodemon345
Many projects also want the encoder to be finished and tested to work correctly with the decoder hence the reason they're asking for 1.0.
|
|
2025-11-22 10:13:37
|
I thought v1.0 was just API stabilizing not necessarily the encoder being "done"
|
|
|
AccessViolation_
|
2025-11-22 10:13:39
|
with how many features JXL has it might be [wild guess] decades before the encoder tries to utilize *all* coding tools
|
|
|
HCrikki
|
2025-11-22 10:22:35
|
its 2025 and jpeg1 still doesnt have its full features implemented by anyone. even jpegli caps itself at level 6.2 just because its what became the defacto standard since 2000
|
|
2025-11-22 10:24:38
|
some ecosystem advances are only possible when both encoders and decoders update in tandem, like through auto or platform updates
|
|
|
Cacodemon345
|
|
A homosapien
I thought v1.0 was just API stabilizing not necessarily the encoder being "done"
|
|
2025-11-22 10:28:06
|
Even that'd be desirable.
|
|
|
jonnyawsom3
|
|
HCrikki
libjxl isnt getting abandoned. decoding was pretty much 1.0 since long with 100% conformance. encoder will keep getting improvements, tuning, profiling, etc - do note it was supposed to only be a reference implementation, it just raised the bar really high
|
|
2025-11-22 10:37:03
|
If conformance means 1.0, jxl-rs was finished weeks ago
|
|
|
A homosapien
I thought v1.0 was just API stabilizing not necessarily the encoder being "done"
|
|
2025-11-22 10:38:34
|
https://github.com/libjxl/libjxl/issues?q=state%3Aopen%20label%3Av1.0
|
|
|
Cacodemon345
|
2025-11-22 10:43:19
|
Yeah some issues are tagged with "decoder". Not exactly ready.
|
|
|
jonnyawsom3
|
2025-11-22 10:46:41
|
Only two, one is something about XYB and ICC, the other is adding a new feature for cropped decoding
|
|
|
HCrikki
|
2025-11-22 11:01:34
|
the conformance table needs an update properly reporting the latest progress (timestamped, or automatically checked/updated?). verbal assurances do nothing when anyone sees this suggesting pre-alpha conformance https://libjxl.github.io/bench/
|
|
|
jonnyawsom3
|
2025-11-22 11:11:20
|
It'd be nice if it could run as a github action once a week or something
|
|
|
monad
|
|
Cacodemon345
Many projects don't consider libjxl finished until the 1.0 release.
|
|
2025-11-22 12:38:55
|
which ones
|
|
|
Snafuh
|
|
Damn, that was fast
>>> Great to hear this! Recently started working on this -> https://chromium-review.googlesource.com/c/chromium/src/+/7170439
Current status:
- Feature complete - used the previous JXL implementation as a blueprint and updated to the most recent reference implementation
- Added animation support (Chromium would be the first browser to support JXL animations)
- bots are green (Except size increase jobs; i have no clou why it ignores my commit hint)
- guess still needs several rounds of feedback and optimization work. I'm happy to collaborate with anyone interested in reviewing and optimizing this further.
Here's a demo video showing it: https://youtu.be/zVkX4bP6qSo
cheers,
|
|
2025-11-22 01:02:24
|
Isn't this kinda pointless as their announcement specifically said "memory-safe"? I read this as clear notch towards the rust decoder
|
|
|
_wb_
|
2025-11-22 01:07:45
|
Probably. But I am assuming Safari has been using libjxl for a while now, so there has been quite some exposure already. If there's a libjxl security bug, it would impact all iphones.
|
|
|
lonjil
|
2025-11-22 01:24:28
|
yes, but Chromium presumably will not integrate anything but jxl-rs
|
|
|
|
afed
|
2025-11-22 01:24:29
|
though, it's not bad for comparing capabilities, performance, and decoding accuracy, and also, if there is already a base, it will be easier to replace it with a different decoder, especially if some APIs are similar
also it's not like starting from scratch, since libjxl has been added before (just need to update for new versions and api changes)
|
|
|
Cacodemon345
|
|
monad
which ones
|
|
2025-11-22 01:28:08
|
At least GZDoom was not considering it until 1.0 releases. The API isn't finalized yet if the 1.0 tagged issues in the repo is anything to look at.
|
|
|
lonjil
|
2025-11-22 01:28:46
|
I don't think that there any any breaking changes planned for the decoder side of things (just feature additions)
|
|
2025-11-22 01:29:00
|
but for the encoder, fair enough
|
|
|
Cacodemon345
|
2025-11-22 01:30:44
|
At least ability to simply detect JXL files in a fast manner would be appreciated.
|
|
|
monad
|
2025-11-22 01:32:30
|
i see, I thought there were many projects
|
|
|
jonnyawsom3
|
|
Cacodemon345
At least ability to simply detect JXL files in a fast manner would be appreciated.
|
|
2025-11-22 02:13:47
|
Can't that be done with the signature at the start of the file?
|
|
|
_wb_
|
2025-11-22 02:23:34
|
FF0A
|
|
2025-11-22 02:24:34
|
or if the ISOBMF container is used, 00 00 00 0C 4A 58 4C 20 0D 0A 87 0A
|
|
|
Cacodemon345
|
|
_wb_
FF0A
|
|
2025-11-22 02:35:10
|
I'm presuming this is in little endian.
|
|
2025-11-22 02:35:47
|
And that both signatures are guaranteed to start at the beginning of the file.
|
|
|
_wb_
|
2025-11-22 03:02:09
|
Yes, these are initial bytes
|
|
|
Tirr
|
2025-11-22 04:53:07
|
it's `ff 0a`, `0x0aff` in little endian
|
|
|
Cacodemon345
|
2025-11-22 04:56:10
|
Thanks for clarification.
|
|
|
0xC0000054
|
|
Cacodemon345
At least ability to simply detect JXL files in a fast manner would be appreciated.
|
|
2025-11-22 08:23:19
|
libjxl already has a method to do that: `JxlSignatureCheck`.
|
|
|
Traneptora
|
|
Cacodemon345
At least ability to simply detect JXL files in a fast manner would be appreciated.
|
|
2025-11-22 11:05:47
|
yea you can just `memcmp(file, "\xff\x0a", 2)` pmuch
|
|
2025-11-22 11:05:55
|
but JxlSignatureCheck also works
|
|
|
VcSaJen
|
|
Jarek Duda
"Subject: Re: [blink-dev] Intent to Prototype: JPEG XL decoding support (image/jxl) in blink
Date: Fri, 21 Nov 2025 15:01:23 -0500
From: Rick Byers <rbyers@chromium.org>
To: Ad <adpocalyptic@gmail.com>
CC: blink-dev <blink-dev@chromium.org>, ― <hmz2798@gmail.com>, Andy Foxman <foxtrot2cz@gmail.com>, zco...@mozilla.com <zcorpan@mozilla.com>, Albert Andaluz González <albertandaluz@gmail.com>, Jarek Duda <dudajar@gmail.com>, Markus K. <markus.krainz@gmail.com>, Tomáš Poledný <saljacky@gmail.com>, Yaowu Xu <yaowu@google.com>, ash...@scirra.com <ashley@scirra.com>, jimba...@google.com <jimbankoski@google.com>, jz...@google.com <jzern@google.com>, vign...@google.com <vigneshv@google.com>, s...@chromium.org <sky@chromium.org>, w...@google.com <wtc@google.com>, yoav...@chromium.org <yoavweiss@chromium.org>, dah...@chromium.org <dahlke@chromium.org>
Hi everyone,
Since JPEG XL was last evaluated, Safari has shipped support and Firefox has updated their position. We also continue to see developer signals for this in bug upvotes, Interop proposals, and survey data. There was also a recent announcement that JPEG XL will be added to PDF.
Given these positive signals, we would welcome contributions to integrate a performant and memory-safe JPEG XL decoder in Chromium. In order to enable it by default in Chromium we would need a commitment to long-term maintenance. With those and our usual launch criteria met, we would ship it in Chrome.
Rick (on behalf of Chrome ATLs)"
|
|
2025-11-23 12:00:37
|
This is BIG. Native default Android support next?..
What's the status of the rustlang? Does it support stuff required to make jxl-rs fast yet?
|
|
|
AccessViolation_
|
|
VcSaJen
This is BIG. Native default Android support next?..
What's the status of the rustlang? Does it support stuff required to make jxl-rs fast yet?
|
|
2025-11-23 12:03:44
|
Rust does yeah. I'm not actively following development but jxl-rs is feature complete and most effort is spent optimizing it at this point I believe
|
|
|
jonnyawsom3
|
|
AccessViolation_
Rust does yeah. I'm not actively following development but jxl-rs is feature complete and most effort is spent optimizing it at this point I believe
|
|
2025-11-23 12:12:16
|
It's only around 2x slower now for most decoding, and multithreading isn't implemented yet https://discord.com/channels/794206087879852103/803645746661425173/1439179374044909599
|
|
2025-11-23 12:17:38
|
(Effort 1 has since been sped up 2x)
|
|
|
Foxtrot
|
2025-11-23 12:35:39
|
Add JPEG XL decoding support to Chromium using jxl-rs
https://issues.chromium.org/issues/462919304
|
|
|
jonnyawsom3
|
2025-11-23 12:52:07
|
Oh nice, I was just looking at the PR they made on rs for HDR ICC tonemapping
|
|
|
dogelition
|
2025-11-23 01:07:36
|
slightly confused by that hdr stuff, because it seems like libjxl-rs already writes a cicp tag? so why wouldn't that get passed through to chromium like with pngs
|
|
2025-11-23 01:10:42
|
also, what software is that tonemapping clut in the icc profile even useful for? firefox used to support them but last time i checked they don't anymore, and chromium never used them afaik
|
|
2025-11-23 01:14:56
|
nvm i can't read, icc profiles for hdr just didn't work in libjxl-rs
|
|
2025-11-23 01:15:16
|
still not sure what software actually uses those luts though
|
|
|
sklwmp
|
|
Foxtrot
Add JPEG XL decoding support to Chromium using jxl-rs
https://issues.chromium.org/issues/462919304
|
|
2025-11-23 01:22:19
|
who made this issue though? anyone can open chromium issues
|
|
2025-11-23 01:23:00
|
oh _Helmut Januschka_ im assuming
|
|
2025-11-23 01:23:13
|
are they part of chromium or not? its kind of hard to tell
|
|
|
dogelition
|
2025-11-23 01:24:04
|
> I work as Head of Engineering at krone.at, focusing on engineering management, technical strategy, and system reliability. My background spans 25+ years across various technology domains.
>
> I contribute to open source projects including Chromium, LLVM, PDFium, and Fastlane. Areas of interest include system performance, developer tooling, and infrastructure automation.
|
|
2025-11-23 01:24:30
|
> Major contributor to Google's open-source web browser project. Led modernization efforts including StringPiece to std::string_view migration and GoogleTest naming convention improvements across multiple modules.
|
|
2025-11-23 01:24:41
|
so good chance of that getting merged i guess
|
|
|
jonnyawsom3
|
|
sklwmp
are they part of chromium or not? its kind of hard to tell
|
|
2025-11-23 01:28:32
|
They're the one who did the libjxl integration yesterday, made the youtube video, and then did jxl-rs integration today
<https://groups.google.com/a/chromium.org/g/blink-dev/c/WjCKcBw219k/m/NeiCV32tBAAJ>
<https://chromium-review.googlesource.com/c/chromium/src/+/7170439>
<https://chromium-review.googlesource.com/c/chromium/src/+/7184969>
|
|
|
|
afed
|
2025-11-23 01:39:32
|
also
https://github.com/libjxl/jxl-rs/pull/491
|
|
|
Quackdoc
|
|
VcSaJen
This is BIG. Native default Android support next?..
What's the status of the rustlang? Does it support stuff required to make jxl-rs fast yet?
|
|
2025-11-23 01:45:54
|
unfortunately its not so simple for image formats
|
|
|
Cacodemon345
|
2025-11-23 02:52:54
|
Even WebP support on Android has been inconsistent as fuck.
|
|
|
AccessViolation_
|
2025-11-23 03:54:46
|
unlike WebP, JPEG XL is intended for things other than web delivery so it's more likely to be useful and wanted in apps than WebP is
|
|
|
Quackdoc
|
2025-11-23 04:00:32
|
that's not the issue
|
|
2025-11-23 04:00:45
|
the issue is "adding support for android" isn't a thing
|
|
2025-11-23 04:00:56
|
many apps use many different frameworks
|
|
|
RaveSteel
|
2025-11-23 04:01:32
|
If Samsung adds support to their preinstalled gallery we will have finished a good amount of the way
|
|
|
AccessViolation_
|
2025-11-23 04:03:26
|
I was moreso talking about that the main reason there is demand for WebP support, is that people inevitably end up with them because they're used for delivery. it's not an appealing format per se (except the really good 8-bit lossless mode)
|
|
|
Quackdoc
|
2025-11-23 04:05:38
|
the best you can do is make sure the mime is recognized, which iirc it already is, and add support to https://developer.android.com/ndk/guides/image-decoder
|
|
2025-11-23 04:05:55
|
which is in the android NDK and AFAIK I dont actually think the ndk is open source is it?
|
|
2025-11-23 04:06:06
|
dunno it's been literal years since I touched this part of android
|
|
2025-11-23 05:00:04
|
basically, get skia working with jxl nice and well, and go from there, I don't have the time to work on this, but now would be the time for an android dev to do so
https://cs.android.com/android/platform/superproject/main/+/main:frameworks/base/native/graphics/jni/imagedecoder.cpp
https://cs.android.com/android/platform/superproject/main/+/main:external/skia/include/codec/
|
|
|
VcSaJen
|
|
AccessViolation_
Rust does yeah. I'm not actively following development but jxl-rs is feature complete and most effort is spent optimizing it at this point I believe
|
|
2025-11-23 07:25:59
|
> Rust does yeah.
I looked it up, looks like not yet.
|
|
|
AccessViolation_
|
2025-11-23 07:47:39
|
stuff required to make jxl fast like simd and multithreading?
|
|
2025-11-23 07:47:49
|
you weren't very specific
|
|
|
|
veluca
|
2025-11-23 10:02:53
|
I don't believe we're blocked on anything on the Rust side
|
|
2025-11-23 10:03:00
|
there's plenty of stuff that would be *nice*
|
|
2025-11-23 10:03:13
|
but nothing *necessary*
|
|
|
MSLP
|
2025-11-24 06:10:58
|
Well that escalated quickly. Wondering how the second attempt at chromium integration goes.
Chromium seem to be building with recent rust versions <https://github.com/chromium/chromium/blob/6e1ca2e0c395e4bf4ba4ab55170346ff108c1a4e/tools/rust/update_rust.py#L39C18-L39C58> -> this goes to fairly recent rustc commit <https://github.com/rust-lang/rust/commit/11339a0ef5ed586bb7ea4f85a9b7287880caac3a>. At least on the toolchain side there are no blockers for integration like in the case of Firefox. Still think it'd be worth freezing jxl-rs MSRV to at most 1.90 to give Firefox a chance.
|
|
2025-11-25 02:24:59
|
Interesting: <https://issues.chromium.org/issues/462919304#comment2>
> While Microsoft goes through our internal evaluation process for adding support to our browser [...]
|
|
2025-11-25 02:25:42
|
So there's a confirmation that JXL support may land in MS Edge regardless if it lands in chromium
|
|
|
VcSaJen
|
|
MSLP
Interesting: <https://issues.chromium.org/issues/462919304#comment2>
> While Microsoft goes through our internal evaluation process for adding support to our browser [...]
|
|
2025-11-25 06:21:31
|
I think it's the opposite. MS wants it so that you need to install JPEG XL extension from MS Store before you can view JXLs in Edge.
AVIF went through similar process on Edge, it was literal years before MS's bureaucracy machine allowed it to be on by default.
|
|
|
0xC0000054
|
|
VcSaJen
I think it's the opposite. MS wants it so that you need to install JPEG XL extension from MS Store before you can view JXLs in Edge.
AVIF went through similar process on Edge, it was literal years before MS's bureaucracy machine allowed it to be on by default.
|
|
2025-11-25 06:42:41
|
Plus the MS AVIF and WebP codecs were broken beta software the last I checked, but maybe they fixed them at some point in the last few years. The MS AVIF codec couldn't even correctly load the test images with transparency that Microsoft contributed to the AVIF conformance suite. 🤣
|
|
|
VcSaJen
|
2025-11-25 06:44:40
|
Though JPEG XL is not as encumbered with patents as AVIF, so hopefully "evaluation" will be quicker
|
|
|
Exorcist
|
2025-11-25 06:48:44
|
MS AVIF can't decode YUV444, and other bugs
|
|
|
jonnyawsom3
|
2025-11-25 09:23:06
|
They fixed that in an update a few weeks ago
|
|
|
MSLP
|
|
VcSaJen
I think it's the opposite. MS wants it so that you need to install JPEG XL extension from MS Store before you can view JXLs in Edge.
AVIF went through similar process on Edge, it was literal years before MS's bureaucracy machine allowed it to be on by default.
|
|
2025-11-25 05:24:25
|
Ah, so not good then :(. Indeed AVIF in MSEdge landed more than 3 years after chromium inclusion.
|
|
|
VcSaJen
Though JPEG XL is not as encumbered with patents as AVIF, so hopefully "evaluation" will be quicker
|
|
2025-11-25 05:25:27
|
Wasn't one of the main points of AVIF that it's royalty free?
|
|
|
Cacodemon345
|
2025-11-25 05:28:24
|
AV1's status is questionable at best.
|
|
2025-11-25 05:28:46
|
A better bet would be to wait for HEVC patents to expire in 2035 or something.
|
|
2025-11-25 05:29:00
|
At least that should replace the ancient VPx codecs.
|
|
|
lonjil
|
|
MSLP
Wasn't one of the main points of AVIF that it's royalty free?
|
|
2025-11-25 05:52:45
|
even if AV1 is free from patents, AVIF uses a container that isn't
|
|
2025-11-25 05:52:49
|
not sure why they made that choice
|
|
|
dogelition
|
|
lonjil
even if AV1 is free from patents, AVIF uses a container that isn't
|
|
2025-11-25 06:01:57
|
not quite free from patents, but you get a free license with a defensive termination clause
|
|
|
Demiurge
|
|
lonjil
even if AV1 is free from patents, AVIF uses a container that isn't
|
|
2025-11-26 09:05:06
|
Doesn't jxl also use isobmff?
|
|
|
spider-mario
|
2025-11-26 09:05:53
|
optionally
|
|
|
Demiurge
|
2025-11-26 09:05:56
|
Also known as .mov/.mp4/.3gp/.heif
|
|
2025-11-26 09:06:54
|
If it was a patent issue then jxl wouldn't have chosen it...
|
|
|
_wb_
|
2025-11-26 10:43:19
|
there's the simple container format that is used in the jxl file format: this one is pretty safe patent-wise since the only "technology" is basically from the 1980s/1990s and is pretty straightforward (4-byte box names with a 4-byte size field, even PNG uses that concept)
and then there's the more complicated HEIF that is using that syntax but defines lots of additional stuff like layering, tiling, rotation, cropping, etc.
That's a newer thing and Nokia does claim to hold essential patents
|
|
|
Demiurge
|
2025-11-26 11:45:04
|
Oh, I see. I didn't realize heif has patented parts
|
|
|
0xC0000054
|
2025-11-26 12:45:12
|
The ISO documents referenced in the AVIF container format specification are also expensive. Although the ISO makes some versions available for free, IIRC that included an older version of the ISOBMFF spec.
|
|
|
_wb_
|
2025-11-26 01:29:02
|
probably in a next edition of 18181-2 we'll also define HEIF with JXL payload, but just as an optional thing. So then there will be three types of jxl files:
- raw codestreams (just a naked 18181-1 bitstream) are valid files and can do anything you need to fully represent an image (sample data, colorspace, orientation, etc)
- jxl container: simple and lightweight container, useful to embed metadata (XMP/Exif), jpeg bitstream reconstruction data, gainmaps, and whatever other "additional stuff" you may want to include besides the image itself
- heif: more complicated container with more container-level functionality, also can store image collections etc
|
|
|
username
|
2025-11-26 01:41:14
|
speaking of the spec, I remember a few months ago hearing that something was being added or changed related to JPEG recompression to allow for handling/decoding of some types of side data (like gainmaps? \🤢) that would normally only get used during JPEG reconstruction. but I have to ask since I'm unfamiliar with the changes/additions exactly but is it structured in a generic enough way to theoretically allow/support things such as [JPEG XT](https://jpeg.org/jpegxt/)? <@794205442175402004>
|
|
2025-11-26 01:42:16
|
~~off-topic but it seems like Discord's markdown support doesn't like rendering non-breaking spaces~~
|
|
|
_wb_
|
2025-11-26 01:42:16
|
we have been discussing that but there's no concrete proposal yet, probably we'd first implement that in an experimental branch of libjxl before adding it to the spec
|
|
|
Exorcist
|
2025-11-26 01:50:28
|
Why use ISOBMFF when not need multi stream and random seek?
|
|
2025-11-26 01:52:51
|
(AVIF use 2nd stream as alpha channel, support inter prediction same as video)
|
|
|
Foxtrot
|
2025-11-26 01:53:19
|
Since Heif with av1 is Avif, then Heif with JPEG-XL will be JEIF? 😄
|
|
|
AccessViolation_
|
2025-11-26 01:59:59
|
JEIF sounds like an ultra cursed pronunciation of GIF
|
|
|
Cacodemon345
|
2025-11-26 02:00:46
|
Reminds me of JNG.
|
|
|
VcSaJen
|
2025-11-26 02:01:17
|
Well, there's HEIC. JPEG1-in-HEIF doesn't have any special file extension.
|
|
|
Cacodemon345
|
2025-11-26 02:01:56
|
Nokia's lawsuit will get laughed out of the courts tbh; patenting container formats is just dumb.
|
|
2025-11-26 02:02:20
|
IIRC ISOBMFF was used in MP3?
|
|
|
0xC0000054
|
|
Cacodemon345
IIRC ISOBMFF was used in MP3?
|
|
2025-11-26 02:06:32
|
MP4
|
|
|
Cacodemon345
|
2025-11-26 02:06:47
|
Makes sense.
|
|
|
0xC0000054
MP4
|
|
2025-11-26 02:08:41
|
But yeah, ISOBMFF was created in 2004, so Nokia is grasping for straws.
|
|
|
_wb_
|
2025-11-26 02:34:20
|
There wouldn't be much reason to use the heif container with jxl payload, actually I resisted defining it exactly because it's not really needed — at least not like it is needed for heic and avif where without heif you wouldn't have a way to do alpha or arbitrary ICC profiles.
But there's an interest from the heif folks to do this, so if they want to add that option, I'm not going to stop them.
|
|
2025-11-26 02:41:09
|
HEIF (23008-12) is more recent than ISOBMFF (14496-12). ISOBMFF is from 2004 as an ISO standard but it was already used earlier in MP4 and also in JPEG 2000, and it's basically just QuickTime. HEIF is from 2015 and it's currently 145 pages of spec that has ISOBMFF as a dependency.
|
|
|
VcSaJen
|
2025-11-26 03:11:09
|
Yeah I remember that https://discord.com/channels/794206087879852103/805176455658733570/1056109820979183676
|
|
|
AshRatte
|
|
AccessViolation_
JEIF sounds like an ultra cursed pronunciation of GIF
|
|
2025-11-26 03:35:37
|
https://tenor.com/view/jod-gif-22535623
|
|
|
AccessViolation_
|
2025-11-26 03:43:28
|
the cloud cover splits. an opening appears. rays of light illuminate the lands below. down from the heavens they descend. not in physical form, but certainly there. not observed by any senses yet palpably, definitively, manifestly, present. not a person, not an animal, not a being, not alive, nor dead, but a concept.
God.
they've been here for 15 seconds, but it feels like you and everyone around you have been stuck here for days, nay, weeks.
then, they communicate but once
"it's pronounced Jod"
they leave
|
|
|
Cacodemon345
|
|
VcSaJen
Yeah I remember that https://discord.com/channels/794206087879852103/805176455658733570/1056109820979183676
|
|
2025-11-26 03:43:46
|
jxrlib doesn't support JXR-in-HEIF though?
|
|
|
AccessViolation_
|
2025-11-26 03:50:37
|
I like how in Captain Disillusion's video about alpha transparency, in an effort to intentionally produce PNG wrong, they incidentally pronounce it right as something very close to "ping"
|
|
|
|
5peak
|
|
_wb_
there's the simple container format that is used in the jxl file format: this one is pretty safe patent-wise since the only "technology" is basically from the 1980s/1990s and is pretty straightforward (4-byte box names with a 4-byte size field, even PNG uses that concept)
and then there's the more complicated HEIF that is using that syntax but defines lots of additional stuff like layering, tiling, rotation, cropping, etc.
That's a newer thing and Nokia does claim to hold essential patents
|
|
2025-11-27 01:11:43
|
Used 2 B NOKIA. NOKAI nowadays. HAIP3D.
|
|
|
_wb_
HEIF (23008-12) is more recent than ISOBMFF (14496-12). ISOBMFF is from 2004 as an ISO standard but it was already used earlier in MP4 and also in JPEG 2000, and it's basically just QuickTime. HEIF is from 2015 and it's currently 145 pages of spec that has ISOBMFF as a dependency.
|
|
2025-11-27 01:14:24
|
Nevermore https://bugzilla.redhat.com/show_bug.cgi?id=1979565
|
|
|
KKT
|
2025-11-27 08:34:57
|
I wonder if Adobe and Affinity will start using JXL lossless in PSD and Affinity files… Would make sense.
|
|
2025-11-27 08:35:15
|
My drive could certainly use it.
|
|
|
username
|
2025-11-27 08:39:12
|
If they did they would probably misuse the JXL format in some annoying way. like for example treating JXL like it doesn't support layers and rolling their own layering system with unneeded overhead
|
|
|
jonnyawsom3
|
2025-11-27 08:39:35
|
I mentioned a similar idea to the Krita devs a while back https://bugs.kde.org/show_bug.cgi?id=500877
|
|
|
HCrikki
|
2025-11-27 08:40:17
|
imo some use of jxl for psd at least will happen eventually. imaging-focused proprietary formats could rebase on clean jxl-based specification to simplify futureproofing them
|
|
2025-11-27 08:41:08
|
simple steps first. some apps like gimp silently flatten multilayer images to jxl without even a warning. big issue
|
|
|
novomesk
|
|
HCrikki
simple steps first. some apps like gimp silently flatten multilayer images to jxl without even a warning. big issue
|
|
2025-11-27 08:44:34
|
That's why it is called Export and not Save as...
|
|
|
VcSaJen
|
|
username
If they did they would probably misuse the JXL format in some annoying way. like for example treating JXL like it doesn't support layers and rolling their own layering system with unneeded overhead
|
|
2025-11-27 09:16:46
|
Photoshop layers are quite convoluted, though. No format is designed to take those layers except psd.
|
|
|
_wb_
|
2025-11-27 09:20:01
|
I was hoping that Photoshop/Affinity/Krita/Gimp could use JXL as a "Save" format, where the (layered) image data is stored as jxl layers, if needed as invisible layers and with an explicit merged image (because funky blend modes or other fancy stuff is used that cannot be represented in jxl), and all the proprietary/additional stuff that is editor-specific is stuffed in some application-specific box that is only used when loading the image in the editor.
|
|
2025-11-27 09:20:50
|
Photoshop kind of does something like that when you save as TIFF or PDF, it just stuffs all the photoshop stuff in metadata blobs in those formats.
|
|
|
AccessViolation_
|
2025-11-27 09:28:07
|
I'm still a bit disappointed that DNG doesn't use CFA layers
|
|
2025-11-27 09:29:56
|
not that it matters for any practical reasons, but it would have been nice
|
|
|
_wb_
|
2025-11-27 09:30:51
|
I guess for now the main one using JXL DNG is the iPhone Pro, which doesn't use CFA anyway but "linear RGB", so for that it doesn't really make a difference
|
|
2025-11-27 09:31:59
|
but yes, it would have been nice to use CFA channels instead of just using single-component codestreams; it would potentially allow better compression since you could use RCTs and prevchannel MA properties...
|
|
2025-11-27 09:32:38
|
also would have been nice to use the jxl internal tiling instead of using dng tiling with lots of small codestreams
|
|
2025-11-27 09:33:05
|
would have been even nicer to use the JXL file format and put the DNG stuff in a box in there 🙂
|
|
2025-11-27 09:35:01
|
but there's still a strong tendency to see payload codecs as a black box that encodes a 2D array of numbers and anything else is application-specific and reinvented again in every container whether it's DNG or DICOM or HEIF or PSD
|
|
|
AccessViolation_
|
|
_wb_
but yes, it would have been nice to use CFA channels instead of just using single-component codestreams; it would potentially allow better compression since you could use RCTs and prevchannel MA properties...
|
|
2025-11-27 09:36:29
|
especially the two green filter channels that are in basically the same channel twice
|
|
2025-11-27 09:38:59
|
DNG being a JXL with special metadata would have been really nice yeah
|
|
2025-11-27 09:51:58
|
one thing I can see JXL adopted in is game dev, where assets can have color channels, normal maps, reflectivity and all sorts of other properties efficiently stored in a single file per texture asset
|
|
2025-11-27 09:54:52
|
at least during development and distribution, you'd have to decode them to something else to get it onto the gpu
|
|
|
_wb_
|
|
_wb_
Update to this chart from some time ago: we (Cloudinary) are currently seeing jxl support in around 27-28% of the requests we get (based on the Accept header; it has been fluctuating around this percentage for a year now), and we are serving around 1 billion jxl images per day now, which is about 3x as much as a year ago.
|
|
2025-11-28 10:50:30
|
The 1 billion jxl per day number was a bit of a peak (stable number is more like 700-800 million), but this week we're hitting new peaks — as always this time of the year, the Black Friday / holiday season effect is kicking in — and we're now around 1.5 billion jxl images delivered per day.
|
|
|
HCrikki
|
2025-11-28 12:05:54
|
possible to give an idea about some point? what percentage of the total jxls *generated* is generated from a jpg original and from a png original (assuming originals only get one jxl output generated instead of several in multiple resolutions)
|
|
|
Elias
|
|
AccessViolation_
at least during development and distribution, you'd have to decode them to something else to get it onto the gpu
|
|
2025-11-28 12:33:06
|
https://github.com/elias1518693/jpeg_textures
I've been working on something so that you could even use JPEGs without decoding them to something else. But currently it only works for JPEG because writing a JPEG XL decoder on the GPU is a bit complex and you have issues with all prediction it does since it further complicates random access 😅
|
|
|
_wb_
|
|
HCrikki
possible to give an idea about some point? what percentage of the total jxls *generated* is generated from a jpg original and from a png original (assuming originals only get one jxl output generated instead of several in multiple resolutions)
|
|
2025-11-28 12:42:47
|
I cannot answer that in general, but for Cloudinary: most original images are jpegs, though we have all kinds of other formats being used for originals (png, psd, tiff, heic, camera raws,...). But it's very rare to just transcode originals without doing at least a downscale, and usually other transformations (crop to change aspect ratio, add overlays, sharpen, etc etc). So we always encode from pixels and it's hard to say what the original format even was, e.g. say you start from a camera jpeg, downscale and crop it, sharpen it, and add some text overlay and a logo from an svg file, would you still consider that "a jpeg original"?
|
|
|
jonnyawsom3
|
|
Elias
https://github.com/elias1518693/jpeg_textures
I've been working on something so that you could even use JPEGs without decoding them to something else. But currently it only works for JPEG because writing a JPEG XL decoder on the GPU is a bit complex and you have issues with all prediction it does since it further complicates random access 😅
|
|
2025-11-28 02:05:16
|
Interesting. I'm not sure what settings you encoded the JPEGs as, but doing XYB JPEG on the GPU could give a few more percent. For JXL, you might wanna look at the features the recent hardware encoder is using. You probably don't need all the features of the format for a game texture
|
|
|
Elias
|
|
Interesting. I'm not sure what settings you encoded the JPEGs as, but doing XYB JPEG on the GPU could give a few more percent. For JXL, you might wanna look at the features the recent hardware encoder is using. You probably don't need all the features of the format for a game texture
|
|
2025-11-28 02:22:55
|
yeah I tried that but did not get the correct color conversion to work. Currently I support 4:2:0 subsampling to get 16x16 MCUs which lets me also store less offsets (which are needed for random access)
|
|
|
|
Squid Baron
|
2025-11-29 04:14:56
|
after all this time, i'm still surprised that it was apple of all companies that pioneered having jxl support
|
|
|
AccessViolation_
|
2025-11-29 04:39:37
|
right?
|
|
2025-11-29 04:39:53
|
having Safari be the main major browser to support JXL was wild
|
|
2025-11-29 04:41:05
|
I guess they saw the importance of adopting it into their ecosystem because unlike Google and Mozilla they're also big in media production with their video formats and editing software
|
|
|
Quackdoc
|
2025-11-29 04:46:32
|
Apple really likes premium things, and JXL is a premium thing
|
|
|
KKT
|
2025-11-29 04:54:48
|
Just wish they'd let us convert our JPEGs in Photos already.
|
|
|
VcSaJen
|
2025-11-29 08:23:08
|
Once patches are ready, I wonder which browser will be the first to integrate it in non-nightly non-beta build: Chrome or Firefox.
|
|
|
Quackdoc
|
2025-11-29 08:48:21
|
probably chrome, ff takes forever to move features
|
|
|
HCrikki
|
2025-11-29 08:57:46
|
origin trials will make the difference. those for chrome, firefox and edge are separate
|
|
2025-11-29 08:58:15
|
i hope this time the mistake of not doing them is not repeated - origin trials are how browsers forcefully enable a certain flag for predetermined list of websites
|
|
|
whatsurname
|
2025-11-30 03:49:38
|
Will it go through origin trials? AVIF didn't get one https://chromium-review.googlesource.com/c/chromium/src/+/2261172
And I think some of the reasons listed there also apply to JPEG XL
|
|
|
Quackdoc
|
|
whatsurname
Will it go through origin trials? AVIF didn't get one https://chromium-review.googlesource.com/c/chromium/src/+/2261172
And I think some of the reasons listed there also apply to JPEG XL
|
|
2025-11-30 12:56:52
|
the difference is that there was next to no risk in enabling it
|
|
|
HCrikki
|
2025-11-30 01:17:21
|
enabled by default would be fine if it goes through the normal continuity (canary->dev->beta->stable). thats at least a month's worth of feedback and tuning.
will still need cooperating partners (cdns are ideal but shouldnt be the only source of feedback)
|
|
|
Exorcist
|
2025-11-30 01:17:21
|
Why Google's git so hard to use
|
|
|
Quackdoc
|
2025-12-01 01:52:52
|
gerrit?
|
|
|
HCrikki
|
2025-12-01 08:59:10
|
https://github.com/bearcove/dodeca/commit/edd0f8601872d8f35e8b382a213127b7397950a3
|
|
2025-12-01 09:00:41
|
not sure how handy this static site generator is but hes got hundreds of paying backers and corporate sponsorships from aws and zed editor
|
|
|
Magnap
|
|
HCrikki
not sure how handy this static site generator is but hes got hundreds of paying backers and corporate sponsorships from aws and zed editor
|
|
2025-12-01 09:04:11
|
I've always thought of the software an excuse for them to write articles about building it 😛
|
|
|
HCrikki
|
2025-12-01 09:04:49
|
nobody gets views praising webp
|
|
|
Magnap
|
|
HCrikki
nobody gets views praising webp
|
|
2025-12-01 09:07:52
|
to be clear I didn't mean in a clickbait sense: they write educational articles about Rust, and you can get a lot of educational content out of writing about writing the static site generator you conveniently happen to need in order to hold the site that contains said content
|
|
|
AccessViolation_
|
2025-12-02 10:45:01
|
I like [their videos](https://www.youtube.com/@fasterthanlime/videos) too
|
|
|
Traneptora
|
2025-12-03 06:45:16
|
Guys guys guys guys
|
|
2025-12-03 06:45:27
|
bragging about JXL to a friend. send a JXL file to facebook messenger
|
|
2025-12-03 06:45:37
|
|
|
2025-12-03 06:45:53
|
did you know this?
|
|
|
lonjil
|
2025-12-03 06:49:01
|
yeah, since 2022 IIRC?
|
|
|
jonnyawsom3
|
2025-12-03 06:49:03
|
https://www.reddit.com/r/jpegxl/comments/pr2sk6/facebook_now_seems_to_accept_jpeg_xl_image_uploads/
|
|
2025-12-03 06:49:30
|
2021 apparently
|
|
|
Traneptora
|
2025-12-03 07:05:14
|
ah, so it's apparently very much not new
|
|
2025-12-03 07:05:24
|
I wonder if it *serves* JXLs based on the user-agent or accept header?
|
|
|
|
veluca
|
2025-12-03 07:17:25
|
they did an experiment for serving jxl (on mobile, most likely) in 2021/2
|
|
|
HCrikki
|
2025-12-03 07:33:06
|
im more surprised it could even parse jxl art and show a preview of that too
|
|
|
lonjil
|
2025-12-03 07:35:45
|
Seems like support has improved, in that thread people mention that bare JXL doesn't work, but JXL art obviously never uses the ISOBMFF container.
|
|
|
HCrikki
|
2025-12-03 07:37:29
|
anyone here from fb can talk this up?
|
|
|
Magnap
|
2025-12-03 07:37:39
|
telegram also supports JXL, but it "compresses" JXL to a low-quality much bigger JPEG lol
|
|
|
jonnyawsom3
|
|
Magnap
telegram also supports JXL, but it "compresses" JXL to a low-quality much bigger JPEG lol
|
|
2025-12-03 08:22:27
|
Sending as a file allows the in-app viewer to load JXLs on desktop
|
|
|
Magnap
|
|
Sending as a file allows the in-app viewer to load JXLs on desktop
|
|
2025-12-03 08:23:17
|
oh! so it does! very cool 😄
|
|
|
jonnyawsom3
|
2025-12-03 08:24:12
|
It even recognises animated JXL... But doesn't display it properly, just gives it the `GIF` tag like muted videos
|
|
|
Magnap
|
|
It even recognises animated JXL... But doesn't display it properly, just gives it the `GIF` tag like muted videos
|
|
2025-12-03 08:25:41
|
at least EOG displays animated JXL, that way I don't have to go and hunt down a viewer just for that
|
|
|
jonnyawsom3
|
|
HCrikki
anyone here from fb can talk this up?
|
|
2025-12-03 08:25:55
|
The only official source we have is this <https://issues.chromium.org/issues/40168998#comment17>
|
|
|
HCrikki
|
2025-12-03 08:34:11
|
who's that guy from meta? maybe a rep of the jpeg group or the jxl authors could contact them to at least bring up awareness blink itself (not just chrome or chromium) is restoring jxl and want it enabled by default
|
|
2025-12-03 08:35:27
|
smugmug/flickr could probably use a highprofile nudge so they could be part of upcoming early adoption testing
|
|
|
jonnyawsom3
|
2025-12-03 08:58:23
|
I think they'll notice
|
|
2025-12-06 10:22:25
|
More info on a hardware encoder
> Thanks to its efficient architecture, the compact encoder core achieves a latency of just one frame and a processing throughput of one sample per clock cycle. A single instance can encode 4K-resolution images in real time, while multiple cores can be instantiated in parallel to support higher resolutions. The JPEG-XL-E core accepts input samples in IEEE 754 single- or half-precision floating-point format and outputs the JPEG XL compressed payload.
https://www.cast-inc.com/compression/jpeg-image-compression/jpeg-xl-e
|
|
|
username
|
|
More info on a hardware encoder
> Thanks to its efficient architecture, the compact encoder core achieves a latency of just one frame and a processing throughput of one sample per clock cycle. A single instance can encode 4K-resolution images in real time, while multiple cores can be instantiated in parallel to support higher resolutions. The JPEG-XL-E core accepts input samples in IEEE 754 single- or half-precision floating-point format and outputs the JPEG XL compressed payload.
https://www.cast-inc.com/compression/jpeg-image-compression/jpeg-xl-e
|
|
2025-12-06 12:09:28
|
ooo there's even some details on the right side of the website about encoding features and supported input(s):
> ## JPEG XL Encoder
>
> * Compliant to JPEG XL ISO/IEC 18181
> * Lossy (Var-DCT) compression
> * Supported Features
> * Gaborish filter
> * Quantization/Field value: 1-255
> * Quantization/Scale value: Arbitrary
> * Quantization/Matrix value: Fixed
> * DCT block size: 8x8, 16x8, 8x16
> * TOC order: Fixed
> * Entropy coding: Prefix code (fixed table value)
>
> ## Input Format
>
> * Horizontal Resolution: 320-4096
> * Vertical Resolution: 16-4096
> * Color format: LinearRGB,
> * RGB (perceptual quantization)
> * Bit depth: IEEE 754
> * Single- or half-precision floating point
>
> ## Throughput & Latency
>
> * 1 sample/clock throughput
> * 1 frame latency
|
|
2025-12-06 12:10:01
|
nice to see it uses more then one block size IMO
|
|
|
lonjil
|
2025-12-06 12:11:40
|
This is probably a pretty direct translation of jxl-tiny
|
|
2025-12-06 12:11:53
|
Which uses those block sizes
|
|
|
username
|
2025-12-06 12:13:51
|
oh huh yeah: https://github.com/libjxl/libjxl-tiny/blob/main/doc/coding_tools.md
|
|
|
_wb_
|
2025-12-06 12:16:57
|
Yeah, Shikino did use libjxl-tiny as a starting point; but of course lots of stuff needed to be adjusted to make it hw-friendly, in particular everything is done in fixedpoint, and the hw version traverses the data in a more parallel way also within a group. But in terms of compression performance it should be more or less similar to libjxl-tiny.
|
|
|
AccessViolation_
|
2025-12-06 12:40:24
|
I'm surprised it uses different block sizes at all, pretty nice
|
|
2025-12-06 12:40:51
|
prefix coding is unfortunate
|
|
2025-12-06 12:43:17
|
I imagine it's possible to construct an ANS JXL from one that uses Huffman coding though
|
|
2025-12-06 12:44:15
|
I'll note that down for CSALT in case people do JXL -> JXL
|
|
|
whatsurname
|
2025-12-06 12:57:26
|
https://github.com/webmproject/CrabbyAvif/pull/703
I didn't expect that
|
|
|
Magnap
|
|
AccessViolation_
I'll note that down for CSALT in case people do JXL -> JXL
|
|
2025-12-06 01:01:58
|
CSALT lossless mode? 😉 looking at libjxl-tiny, you can also do the coefficient reordering you've mentioned before as well as redo the LF image at a higher Modular effort (it uses a fixed tree)
|
|
|
AccessViolation_
|
2025-12-06 01:04:20
|
> CSALT lossless mode?
I guess so! it doesn't really fit does it
|
|
2025-12-06 01:04:49
|
optimizing JXLs losslessly sounds like it could be a different tool entirely
|
|
|
Magnap
|
|
AccessViolation_
optimizing JXLs losslessly sounds like it could be a different tool entirely
|
|
2025-12-06 01:08:08
|
yeah I agree, but potentially fairly valuable in a world with hardware coders and/or as an archival tool (jumping to https://canary.discord.com/channels/794206087879852103/794206087879852106/1446849837155877006)
|
|
|
_wb_
|
2025-12-06 01:39:21
|
prefix coding is in the spec specifically because it is convenient for hardware encoding. The encode side of ANS is hard for a hw implementation.
|
|
2025-12-06 01:41:22
|
so yes there should be room for lossless jxl->jxl recompression by applying better entropy coding, the hw encoder is limited to predefined huffman codes because anything better would require more buffers and a two-pass approach
|
|
|
AccessViolation_
|
2025-12-06 01:43:30
|
we were talking about it in <#794206087879852106>. I think if hardware-encoded JXLs become common, it'd be nice if cjxl had a mode specifically to losslessly optimize lossy JXLs, as a default mode when the input is VarDCT and the distance is 0. just like how it already has an implicit mode for JPEG recompression
|
|
|
Quackdoc
|
|
whatsurname
https://github.com/webmproject/CrabbyAvif/pull/703
I didn't expect that
|
|
2025-12-06 03:13:49
|
https://tenor.com/view/why-huh-but-why-gif-13199396
|
|
|
Meow
|
2025-12-07 08:04:59
|
"JPEG-XL" from an iPhone 17 Pro Max at Apple Store Taipei 101
|
|
|
adap
|
|
Meow
"JPEG-XL" from an iPhone 17 Pro Max at Apple Store Taipei 101
|
|
2025-12-07 08:25:10
|
iphones had jxl for proraw for over a year hasn't it?
|
|
|
Meow
|
2025-12-07 08:25:48
|
Just wanted to confirm if the hyphen still exists
|
|
|
Cacodemon345
|
2025-12-07 08:31:25
|
<@&807636211489177661>
|
|
|
Mine18
|
|
More info on a hardware encoder
> Thanks to its efficient architecture, the compact encoder core achieves a latency of just one frame and a processing throughput of one sample per clock cycle. A single instance can encode 4K-resolution images in real time, while multiple cores can be instantiated in parallel to support higher resolutions. The JPEG-XL-E core accepts input samples in IEEE 754 single- or half-precision floating-point format and outputs the JPEG XL compressed payload.
https://www.cast-inc.com/compression/jpeg-image-compression/jpeg-xl-e
|
|
2025-12-07 09:05:37
|
i wonder when will the first android phone incorporate this
|
|
|
RaveSteel
|
2025-12-07 09:44:21
|
surely we will get general software support for android in 2026 [copium](https://cdn.discordapp.com/emojis/1309186253652234281.gif?size=64&animated=true&name=copium)
|
|
|
Demiurge
|
|
_wb_
Yeah, Shikino did use libjxl-tiny as a starting point; but of course lots of stuff needed to be adjusted to make it hw-friendly, in particular everything is done in fixedpoint, and the hw version traverses the data in a more parallel way also within a group. But in terms of compression performance it should be more or less similar to libjxl-tiny.
|
|
2025-12-08 12:56:49
|
And how is the subjective quality of libjxl-tiny?
|
|
2025-12-08 01:15:52
|
Better than mozjpeg?
|
|
|
jonnyawsom3
|
|
Demiurge
Better than mozjpeg?
|
|
2025-12-08 01:26:58
|
You mean at the same filesize I assume?
|
|
|
Demiurge
|
2025-12-08 01:27:12
|
Of course
|
|
2025-12-08 01:28:30
|
I never saw anyone do any detailed subjective quality analysis of the -tiny encoder.
|
|
2025-12-08 01:29:12
|
Does it beat libwebp?
|
|
2025-12-08 01:30:06
|
What sort of artifacts are expected?
|
|
|
jonnyawsom3
|
|
Demiurge
Does it beat libwebp?
|
|
2025-12-08 01:30:36
|
Considering the target quality is 90-95, yes
|
|
|
_wb_
|
2025-12-08 07:37:58
|
We haven't done subjective tests but in this very high fidelity range, the metrics are probably reliable enough.
|
|
|
qdwang
|
|
Meow
"JPEG-XL" from an iPhone 17 Pro Max at Apple Store Taipei 101
|
|
2025-12-08 07:39:20
|
Actually, apple removed lossy bayer JXL DNG support starting from iOS 26.1 (I don’t know if it’s a bug or on purpose)
|
|
|
jonnyawsom3
|
2025-12-08 07:40:39
|
Apple never had Bayer DNG
|
|
|
qdwang
|
2025-12-08 07:41:30
|
Yes, they don’t output bayer DNG. I mean in previous iOS versions(17.0 - 26.0.1), they can render bayer dngs correctly but not after iOS 26.1
|
|
2025-12-08 07:46:16
|
They failed to render interleave stored bayer data(needed for lossy JXL). My guess is they use a new DNG decoding process on iOS 26.1 but forgot to add the interleave data pattern support.😅
|
|
2025-12-08 07:50:25
|
I’ve already sent feedback to apple but no replies and iOS 26.2 still has the issue.
Does JXL developers have connections with apple developers?
|
|
2025-12-08 07:54:18
|
One can reproduce the issue by using Adobe DNG convertor with parameter -lossyMosaicJXL on a normal bayer DNG.
The converted DNG will render complete black on devices after 26.1
|
|
|
jonnyawsom3
|
|
_wb_
We haven't done subjective tests but in this very high fidelity range, the metrics are probably reliable enough.
|
|
2025-12-08 07:54:33
|
I was going to ask, do you know if the HW encoder's block merging and quality decisions are based on libjxl, or was it tuned standalone since it only goes up to 16x16 blocks and is focused on high quality?
|
|
2025-12-08 07:55:09
|
I'm wondering if the overzealous merging and B desaturation of main got into it...
|
|
|
_wb_
|
2025-12-08 07:55:21
|
It should be similar to whatever libjxl-tiny does
|
|
|
A homosapien
|
2025-12-08 10:20:45
|
libjxl-tiny has the same desaturation issues as libjxl from what I've seen
|
|
|
_wb_
|
2025-12-08 03:41:05
|
https://github.com/web-platform-dx/developer-signals/issues/215
|
|
|
jonnyawsom3
|
2025-12-08 07:08:59
|
I'm glad I raised attention about that. The interop has been running for years with hundreds of votes, but the dev signal only had 40
|
|
|
Demiurge
|
2025-12-09 01:14:38
|
The desaturation issue is an achilles heel and I really hope jxl doesn't become known for and associated with desaturated colors. I'm pretty sure the cause is due to the quant rounding error always undershooting the target on average because it doesn't take gamma into account when computing the error
|
|
|
jonnyawsom3
|
2025-12-09 01:16:25
|
It's a theoretically easy fix, the issue is parameterized quant tables is the one kind that isn't implemented yet, so we'd have to do it from scratch
|
|
|
Demiurge
|
2025-12-09 01:16:31
|
So the encoder doesn't actually calculate the true severity of the rounding error and does not attempt to compensate at all for consistently undershooting the target
|
|
2025-12-09 01:17:08
|
You don't actually need to change the quant tables to fix. You just need better error prediction and compensation technically.
|
|
2025-12-09 01:18:08
|
Preferably using some fast, good-enough heuristic that can even out the bias
|
|
2025-12-09 01:21:54
|
Some black magic multiplier that causes the rounding error to average out closer to the center of the target rather than consistently beneath the target
|
|
|
jonnyawsom3
|
2025-12-09 01:22:30
|
Yeah, it rounds towards 0 rather than the closest number
|
|
|
Demiurge
|
2025-12-09 01:24:20
|
Hopefully it gets fixed in libjxl-tiny as well, before hardware encoders cement desaturation into libjxl reputation...
|
|
2025-12-09 01:25:25
|
Luckily since it's a problem with rounding error, it's not a big deal on high quality settings
|
|
|
jonnyawsom3
|
2025-12-09 01:26:45
|
I did my testing of libjxl-tiny at `-d 0.45` and it was still noticable in some areas
|
|
2025-12-09 01:27:25
|
Hopefully it's less prominent in photos where there's a lot more going on in general
|
|
|
Demiurge
|
2025-12-09 04:09:47
|
Hopefully someone comes up with a fast little hack that's good enough to offset the bias
|
|
|
AccessViolation_
|
2025-12-09 04:11:23
|
do we know if these hardware encoders necessarily have the relevant parameters hard-coded? maybe they can be configured properly to get around it?
|
|
2025-12-09 04:12:20
|
maybe it has support for parameterized quant tables, despite software encoders not having those. it'd make sense to go through that effort for a hardware encoder since there's a high risk of...well, stuff like this, and not being able to fix it down the line
|
|
|
Demiurge
|
2025-12-09 04:14:27
|
Hopefully the desaturation issue can be patched before it becomes something people notice enough to become a part of JXL's reputation
|
|
2025-12-09 04:14:53
|
"That format that washes out all your colors"
|
|
2025-12-09 04:17:03
|
It's not a problem that's inherent to XYB or JXL, but just with how it's implemented.
|
|
2025-12-09 04:18:25
|
It's theoretically possible to compensate for.
|
|
2025-12-09 04:18:35
|
In the encoder.
|
|
|
tokyovigilante
|
2025-12-09 09:06:11
|
https://github.com/kaitakeradiology/orthanc-jxl
|
|
|
jonnyawsom3
|
2025-12-09 09:17:31
|
> Center-first group ordering for streaming applications
Yes but actually no, chunked broke it
> The plugin currently defaults to ProgressiveLossless mode with center-first group ordering.
Ah, well that disables chunked... And is 40% larger than it should be because v0.12 still isn't out, along with being singlethreaded
|
|
|
Demiurge
|
|
> Center-first group ordering for streaming applications
Yes but actually no, chunked broke it
> The plugin currently defaults to ProgressiveLossless mode with center-first group ordering.
Ah, well that disables chunked... And is 40% larger than it should be because v0.12 still isn't out, along with being singlethreaded
|
|
2025-12-09 09:37:18
|
|
|
|
tokyovigilante
|
|
> Center-first group ordering for streaming applications
Yes but actually no, chunked broke it
> The plugin currently defaults to ProgressiveLossless mode with center-first group ordering.
Ah, well that disables chunked... And is 40% larger than it should be because v0.12 still isn't out, along with being singlethreaded
|
|
2025-12-09 09:47:38
|
Thanks AI... I did install a nightly locally. Will make a few updates.
|
|
|
HCrikki
|
2025-12-10 12:40:21
|
https://github.com/hjanuschka/jxl-ui
|
|
2025-12-10 12:41:27
|
hjanuscha is on a roll. mentioning because this (mac) image viewer specifically implements jxl-rs as a decoder
|
|
|
jonnyawsom3
|
2025-12-10 01:23:41
|
Interesting logo
|
|
2025-12-10 01:23:42
|
https://raw.githubusercontent.com/hjanuschka/jxl-ui/refs/heads/main/assets/icon.png
|
|
|
username
|
2025-12-10 01:36:06
|
there's a bit too much empty space and it causes it to look out of place next to other apps: https://cdn.discordapp.com/attachments/978083166239744081/1448113376399069297/Screenshot_2025-12-09_at_6.45.28_PM.png
|
|
|
Meow
|
|
username
there's a bit too much empty space and it causes it to look out of place next to other apps: https://cdn.discordapp.com/attachments/978083166239744081/1448113376399069297/Screenshot_2025-12-09_at_6.45.28_PM.png
|
|
2025-12-10 02:17:46
|
Unnecessary name on an icon
|
|
|
username
there's a bit too much empty space and it causes it to look out of place next to other apps: https://cdn.discordapp.com/attachments/978083166239744081/1448113376399069297/Screenshot_2025-12-09_at_6.45.28_PM.png
|
|
2025-12-10 11:09:01
|
Keka's icon has been updated for macOS 26 Tahoe however
|
|
|
HCrikki
|
2025-12-10 12:43:34
|
seems jxl-rs got some initial merge into chromium yesterday? code appears to be part of 145.0.07572.1
|
|
2025-12-10 12:45:57
|
the rust lib got a ton of improvements, ressource consumption reduction and faster so does that mean theyre confident further implementation adjusting can be continued as part of the browser or blink ?
|
|
|
RaveSteel
|
2025-12-10 12:58:04
|
https://chromium.googlesource.com/chromium/src/+/740e9bb6eda1faec82bb17e11f87b7313b46a137
https://chromium.googlesource.com/chromium/src/+/refs/heads/main/third_party/rust/
|
|
|
|
veluca
|
2025-12-10 01:22:17
|
for now it's just initial integration, connecting this to Chrome can be done mostly in parallel to improving jxl-rs 🙂
|
|
2025-12-10 01:23:04
|
in particular, a lot easier to have 0.1.4 and use that to build the Chrome scaffholding and then update everything later
|
|
|
username
|
|
veluca
for now it's just initial integration, connecting this to Chrome can be done mostly in parallel to improving jxl-rs 🙂
|
|
2025-12-10 08:07:42
|
speaking of, how much communication is there between you and the Chrome dev who has been submitting a bunch of PRs? I'm asking because it seems like they are generally unaware of what your plans/roadmap are in relation to jxl-rs.
|
|
|
|
veluca
|
2025-12-10 08:08:20
|
I mean he opened a million PRs, we're talking 😛
|
|
2025-12-10 08:08:39
|
I just have been too busy trying to write a bunch of code before reviewing them
|
|
|
Demiurge
|
2025-12-11 08:12:46
|
You mean Helmut?
|
|
|
|
veluca
|
|
AccessViolation_
|
2025-12-11 10:09:54
|
I wonder if an eventual encoder implementation could make it into browsers for cache compression? for losslessly transcoding cached JPEGs into JXL to reduce the amount of data stored, or rather increasing the amount of images that fit in the cache, typically limited to 1 GB total
|
|
|
jonnyawsom3
|
|
AccessViolation_
I wonder if an eventual encoder implementation could make it into browsers for cache compression? for losslessly transcoding cached JPEGs into JXL to reduce the amount of data stored, or rather increasing the amount of images that fit in the cache, typically limited to 1 GB total
|
|
2025-12-11 02:28:56
|
There was a Chromium issue open about JPEG XL content encoding, but the issue errors when I try to open it now
|
|
2025-12-11 02:29:24
|
The group works though https://groups.google.com/a/chromium.org/g/blink-dev/c/4hFGYxBRIBU/m/dUgy9SUVAgAJ
|
|
|
AccessViolation_
|
2025-12-11 04:23:32
|
that'd be nice
|
|
2025-12-11 04:24:20
|
I assume responses are cached in their original encoding so it'd benefit cache capacity too
|
|
|
MSLP
|
|
There was a Chromium issue open about JPEG XL content encoding, but the issue errors when I try to open it now
|
|
2025-12-12 04:49:13
|
Maybe this one? https://issues.chromium.org/issues/40141863
|
|
|
jonnyawsom3
|
2025-12-12 04:50:46
|
Nearly
>>> See: https://bugs.chromium.org/p/chromium/issues/detail?id=1088429
|
|
|
Cacodemon345
|
|
Nearly
>>> See: https://bugs.chromium.org/p/chromium/issues/detail?id=1088429
|
|
2025-12-12 07:01:00
|
Leads to intranet.
|
|
|
AccessViolation_
|
2025-12-14 12:33:13
|
I've been thinking, should someone reach out to that company making the hardware encoder to tell them about the desaturation issues their encoder likely inherits from the software encoder they used?
|
|
|
_wb_
|
2025-12-14 12:53:22
|
I can reach out to them but it would be better to have a libjxl-tiny patch ready first to show how to fix it
|
|
|
|
runr855
|
2025-12-14 06:08:10
|
Is the saturation bug only present in libjxl-tiny or also present in libjxl? It's seems like a pretty serious bug
|
|
2025-12-14 06:09:26
|
Reaching out would be a pretty good idea. As many implementations of libjxl shows the end-user devs of the library often don't research in depth (misusing stuff etc.)
|
|
|
AccessViolation_
|
2025-12-14 06:16:30
|
it's also in libjxl. the issue is with the default spec-defined quantization tables
|
|
2025-12-14 06:17:45
|
the format allows signaling different quantization tables, but that's currently not supported in many (any?) encoders
|
|
2025-12-14 06:21:29
|
if the hardware encoder allows signalling different quantization tables via parameters, the issue will be easy to fix by any device using it. but I don't know whether that's the case
|
|
|
lonjil
|
2025-12-14 06:22:23
|
Probably no device is using it yet
|
|
|
jonnyawsom3
|
|
AccessViolation_
the format allows signaling different quantization tables, but that's currently not supported in many (any?) encoders
|
|
2025-12-14 06:33:15
|
libjxl has an API for full quant tables, but not the parameter version
|
|
|
|
runr855
|
2025-12-14 07:48:00
|
Will this be fixed in libjxl before next release? And what can I currently do without being impacted when converting to JXL?
|
|
|
jonnyawsom3
|
2025-12-14 07:55:18
|
That depends when the next release is
|
|
|
|
runr855
|
2025-12-14 08:03:14
|
Is there any way to prevent the bug currently?
|
|
2025-12-14 08:04:11
|
And in what situations does it show up? If it's always been a part of JPEG XL it has been unknown for quite a few years I guess
|
|
2025-12-14 08:04:37
|
Quite fascinating in a way. Hopefully it won't have any long-term impact
|
|
|
jonnyawsom3
|
2025-12-15 05:41:15
|
It only affects highly saturated yellows and sometimes reds from what I've seen, so you won't notice it unless you're comparing to the original or know what to look for
|
|
|
_wb_
|
2025-12-15 08:40:07
|
I would say it's not as bad as the desaturation of reds and blues you can get with JPEG, but it is something that would be good to improve.
|
|
|
tokyovigilante
|
|
> Center-first group ordering for streaming applications
Yes but actually no, chunked broke it
> The plugin currently defaults to ProgressiveLossless mode with center-first group ordering.
Ah, well that disables chunked... And is 40% larger than it should be because v0.12 still isn't out, along with being singlethreaded
|
|
2025-12-15 09:35:56
|
Could I impose on you to expand on this a bit? I'm really struggling to understand best practice for lossless progressive compression, the docs are fairly sparse and the encoder seems to have moved on quite a bit without a formal release.
|
|
|
|
runr855
|
|
_wb_
I would say it's not as bad as the desaturation of reds and blues you can get with JPEG, but it is something that would be good to improve.
|
|
2025-12-15 03:28:15
|
So it's actually not really a unique mistake to have? To be fair doesn't all codecs have their own "look" in a way? In a way we're for example used to look at how JPEG artifacts can look at decent quality settings
|
|
2025-12-15 03:29:28
|
It's almost expected when looking at images. If I remember correctly I've seen criticisms of JPEG XL probably relating to this exact thing. We're so used to how JPEG compression artifacts look we expect them as part of the picture
|
|
|
_wb_
|
2025-12-15 03:32:04
|
I mean in jxl we can in principle avoid this specific problem. Unlike JPEG's problem with red and blues which is hard to avoid since it's mostly caused by YCbCr and chroma subsampling.
|
|
|
Demiurge
|
|
It only affects highly saturated yellows and sometimes reds from what I've seen, so you won't notice it unless you're comparing to the original or know what to look for
|
|
2025-12-16 02:42:01
|
Yellows, orange, reds, and even greens too.
|
|
2025-12-16 02:42:26
|
I haven't noticed it with blues but that makes sense since the human eye is much less sensitive to blue
|
|
2025-12-16 02:43:49
|
And yeah most encoders have a lot worse artifacts but libaom has made huge leaps and strides recently
|
|
2025-12-16 02:44:17
|
libaom does a really good job these days
|
|
|
NovaZone
|
2025-12-16 02:50:54
|
Yee, can't do 0,255,0 for instance
|
|
|
Demiurge
|
|
runr855
So it's actually not really a unique mistake to have? To be fair doesn't all codecs have their own "look" in a way? In a way we're for example used to look at how JPEG artifacts can look at decent quality settings
|
|
2025-12-16 02:58:42
|
The color desaturation problem is somewhat unique to the XYB conversion process. Other codecs do not have a similar desaturation effect, but they have different problems such as chroma blurring and resampling artifacts when chroma subsampling is used, or heavy artifacts in dark, low-contrast regions is another common issue with a lot of codecs.
|
|
|
jonnyawsom3
|
|
Demiurge
I haven't noticed it with blues but that makes sense since the human eye is much less sensitive to blue
|
|
2025-12-16 02:06:58
|
The B channel rounding/quantizing towards 0 makes it stronger, so it makes sense you wouldn't notice desaturation, since it would only make it stronger (As far as my testing showed)
|
|
|
tokyovigilante
Could I impose on you to expand on this a bit? I'm really struggling to understand best practice for lossless progressive compression, the docs are fairly sparse and the encoder seems to have moved on quite a bit without a formal release.
|
|
2025-12-16 02:11:15
|
A TLDR is: Use main instead of 0.11, `-d 0 -p -e 9 --group_order 1`
There are some more tweaks you can do, but they have varied results for only slight improvements
|
|
|
tokyovigilante
|
|
A TLDR is: Use main instead of 0.11, `-d 0 -p -e 9 --group_order 1`
There are some more tweaks you can do, but they have varied results for only slight improvements
|
|
2025-12-16 09:54:00
|
That's awesome, thanks for clarifying. I'm running a nightly in my testing.
|
|
2025-12-16 10:05:17
|
I might stick with e=7 though:
``` Benchmark Results (512x512 16-bit CT)
| Mode | Effort | Encode | Decode | Size | Ratio |
|---------------------|--------|--------|--------|-------|-------|
| ProgressiveLossless | 7 | 63ms | 6.5ms | 114KB | 4.5x |
| ProgressiveLossless | 9 | 191ms | 11ms | 113KB | 4.5x |
| Lossless | 7 | 25ms | 6ms | 92KB | 5.5x |
| Lossless | 9 | 87ms | 4ms | 90KB | 5.7x |
| Lossy (d=1.0) | 7 | 35ms | 2ms | 20KB | 25.6x |```
|
|
|
Demiurge
|
|
The B channel rounding/quantizing towards 0 makes it stronger, so it makes sense you wouldn't notice desaturation, since it would only make it stronger (As far as my testing showed)
|
|
2025-12-16 10:42:35
|
I thought 0 means "not blue nor yellow"
|
|
2025-12-16 10:42:56
|
Like how if everything is zero in the chroma channels, it's grey.
|
|
|
jonnyawsom3
|
|
tokyovigilante
I might stick with e=7 though:
``` Benchmark Results (512x512 16-bit CT)
| Mode | Effort | Encode | Decode | Size | Ratio |
|---------------------|--------|--------|--------|-------|-------|
| ProgressiveLossless | 7 | 63ms | 6.5ms | 114KB | 4.5x |
| ProgressiveLossless | 9 | 191ms | 11ms | 113KB | 4.5x |
| Lossless | 7 | 25ms | 6ms | 92KB | 5.5x |
| Lossless | 9 | 87ms | 4ms | 90KB | 5.7x |
| Lossy (d=1.0) | 7 | 35ms | 2ms | 20KB | 25.6x |```
|
|
2025-12-17 07:51:11
|
Huh, I hadn't seen that decode speed penalty from e9 on progressive before. I might look into that later
|
|
|
Kleis Auke
|
2025-12-18 02:01:37
|
https://github.com/weserv/images/commit/a8abac275128ecc8fa43d203f5551c99fc98a0a9 - coming soon to https://wsrv.nl/
|
|
|
lonjil
|
2025-12-18 02:23:00
|
hooray
|
|
|
.vulcansphere
|
|
jonnyawsom3
|
2025-12-19 12:49:05
|
Was checking on the Chromium integration and I'm a little unsure about this. Before it was only a filesize check, which for things like JXL art, wouldn't stop anything. But now it's limited to 67 MP, so anything above 8192 * 8192 will fail to decode. Definitely not a common scenario, but seems quite low even compared to WebP's 16383 * 16383. The original libjxl implementation never had a limit at all
|
|
2025-12-19 12:49:57
|
It was only done for AVIF to detect invalid files
> // The maximum AVIF file size we are willing to decode. This helps libavif
> // detect invalid sizes and offsets in an AVIF file before the file size is
> // known.
> constexpr uint64_t kMaxAvifFileSize = 0x10000000; // 256 MB
|
|
|
username
|
|
Was checking on the Chromium integration and I'm a little unsure about this. Before it was only a filesize check, which for things like JXL art, wouldn't stop anything. But now it's limited to 67 MP, so anything above 8192 * 8192 will fail to decode. Definitely not a common scenario, but seems quite low even compared to WebP's 16383 * 16383. The original libjxl implementation never had a limit at all
|
|
2025-12-19 12:58:18
|
<@179701849576833024> thoughts on this? I'm unfamiliar with the code but if it really is limiting to files with a max res of 8K with the changes hjanuschka made here then that's wayyyy too low
|
|
|
|
veluca
|
2025-12-19 12:58:56
|
ah no, the size is too low for sure
|
|
|
username
|
2025-12-19 01:04:23
|
what would be a good res limit? 32K? 64K? something else?
|
|
2025-12-19 01:07:00
|
I'm in favor of 64K although I haven't really thought much about it and maybe there's stuff I'm not considering 🤷
|
|
|
jonnyawsom3
|
2025-12-19 01:15:15
|
`1024 * 1024 * 1024` would be 16K, 1GB of memory as an 8bit image
|
|
|
username
|
2025-12-19 01:15:49
|
what are the limits for PNG and JPEG? or are those just file size based?
|
|
|
|
veluca
|
2025-12-19 01:16:18
|
level 5
|
|
2025-12-19 01:16:32
|
so `1024*1024*1024`
|
|
|
_wb_
|
2025-12-19 01:17:39
|
what would make sense is to just use the Level 5 limits, which is 262144px max for each dimension and 268 Mpx max in area.
|
|
2025-12-19 01:19:40
|
JPEG is limited to 65535x65535 since it cannot signal anything larger; PNG has no signaling limits but I assume there will be some dimension limits implemented (since PNG can represent huge images in few bytes too, e.g. single-color images).
|
|
2025-12-19 01:20:36
|
|
|
2025-12-19 01:21:04
|
> The Main profile has two levels. Level 5 is suitable for end-user image delivery, including web browsers and mobile apps. Level 10 corresponds to a broad range of use cases such as image authoring workflows, print, scientific applications, satellite imagery, etc.
>
> Levels are defined in such a way that if a decoder supports level N, it also supports lower levels.
>
> Unless signalled otherwise, a JPEG XL codestream is assumed to be conforming to the Main profile, level 5.
|
|
|
jonnyawsom3
|
2025-12-19 01:21:20
|
Alternatively, Chrome uses `max_decoded_bytes` as a global limit for all formats (from what I can see)
|
|
2025-12-19 01:25:27
|
Seems to have handling for high bit-depth images using half-float too
<https://chromium.googlesource.com/chromium/src/+/1ade7e92edd967c0d54c64f262f9c149b48d0a96/third_party/blink/renderer/platform/image-decoders/image_decoder.cc#79>
|
|
2025-12-19 04:19:31
|
<@179701849576833024> I see you updated your comment, not sure if you want to append it and mention `max_decoded_bytes` too, which the other formats seem to use
Depends if you want to match Level 5 with `1024 * 1024 * 1024`, or match the other formats in Chrome with `max_decoded_bytes`
|
|
|
|
veluca
|
2025-12-19 04:23:18
|
Eh, it's pretty close to max decoded bytes anyway
|
|
|
jonnyawsom3
|
2025-12-19 04:26:18
|
Ah, fair
|
|
|
awxkee
|
2025-12-19 07:08:24
|
Since integration in Chromium has started, I'm wondering that exotic JXL variants will appear, and it's not very clear how CMYK, CMYKA, CMYKOGV, and other exotic formats should be handled in current libjxl API. FOr CMYKA should it be num_color_channels = 5 && alpha_bits or num_color_channels = 3 &&. num_extra_channels = 2 && alpha_bits or num_color_channels == 4 && num_extra_channels ==1 && alpha_bits ?
|
|
2025-12-19 07:09:09
|
This seems to be over generalized for the one who don't have access to spec
|
|
|
Tirr
|
2025-12-19 07:10:40
|
num_color_channels = 3 (CMY, signalled as RGB with CMYK ICC profile), one extra channel of kind Black, one extra channel of kind Alpha
|
|
|
awxkee
|
2025-12-19 07:12:59
|
So is it` num_color_channels = 3 &&. num_extra_channels = 2 && alpha_bits` ? I don't see any API allowing to distinguish types of extra channels in libjxl
|
|
|
Tirr
|
2025-12-19 07:13:32
|
I'm not familiar with libjxl API, but there should be one?
|
|
|
username
|
2025-12-19 07:13:54
|
this might be more relevant for https://discord.com/channels/794206087879852103/804324493420920833
|
|
|
jonnyawsom3
|
2025-12-19 07:16:27
|
Moved to https://discord.com/channels/794206087879852103/804324493420920833/1451654298328105173 (Message link)
|
|
|
AccessViolation_
|
2025-12-19 11:02:15
|
any guesses on whether we're going to see Chrome or Firefox integration of jxl-rs in an unstable release first?
|
|
|
jonnyawsom3
|
2025-12-19 11:03:25
|
Firefox still has a chain of around 5 blocking issues to fix first, Chrome is mostly signed off but probably next year in case of issues cropping up
|
|
|
|
veluca
|
2025-12-20 12:06:10
|
also it's generally considered bad juju to submit non-trivial stuff around Christmas
|
|
|
Quackdoc
|
|
veluca
also it's generally considered bad juju to submit non-trivial stuff around Christmas
|
|
2025-12-20 12:17:17
|
absolutely
|
|
2025-12-20 12:17:50
|
anyone who wants to become a villain should do so
|
|
2025-12-20 12:17:59
|
no better time for overtime
|
|
|
jonnyawsom3
|
2025-12-20 12:18:49
|
After leaving some comments with advice, they got their online converter to do JPEG transcoding instead of lossless encoding
https://www.reddit.com/r/jpegxl/comments/1plukes/comment/nuxptk8/
|
|
2025-12-20 12:18:53
|
https://picperf.io/convert/jpeg-to-jpegxl
|
|
|
HCrikki
|
2025-12-20 01:26:43
|
at what effort? given even e1 gives the size decrease in instant transcodes, im curious as to wether theyre trying to max the byte reductions with injustified high effort and metadata wipe
|
|
2025-12-20 01:27:53
|
just tried a 100 and 30 megapixel jpg. fast but got a 7 kilobyte output (used firefox but fails in chrome too). 10 megapixels and ultratall 6mp jpg worked. is there a maximum resolution ?
|
|
|
jonnyawsom3
|
2025-12-25 05:37:03
|
Libraw's first official release with JXL DNG just landed
https://github.com/LibRaw/LibRaw/releases/tag/0.22.0
|
|
2025-12-25 05:37:45
|
My tree may be empty, but it looks like I'm still getting a gift this Christmas
|
|
2025-12-25 05:44:10
|
Can't wait for v0.12 so we can have Faster Decoding DNGs
|
|
|
HCrikki
|
2025-12-25 09:00:02
|
anyone got a list of devices that generate dng **1.7**? software and devices almost never specify wich dng spec version they support
|
|
|
jonnyawsom3
|
|
My tree may be empty, but it looks like I'm still getting a gift this Christmas
|
|
2025-12-25 10:57:10
|
Aaand they deleted it while I was asleep....
|
|
|
TheBigBadBoy - 𝙸𝚛
|
2025-12-25 11:17:27
|
yeah getting a 404 too
|
|
|
HCrikki
|
2025-12-25 11:20:33
|
probably just a minor continuity blip, refreshed 0.21 ought to be split before main as 0.22 sets its dedicated tag for lts maintainance
|
|
2025-12-25 11:25:19
|
if you want it *right now*, here's a dl link
- **libraw.org/data/LibRaw-0.22.0-Win64.zip**
- **libraw.org/data/LibRaw-0.22.0-macOS.zip**
|
|
2025-12-25 11:28:30
|
the full changelog is listed in the archive
|
|
2025-12-25 11:33:13
|
jxl support is added through adobe's DNG converter 1.7.x - any efficiency improvements in upstream sdk probably could trickle down without a minor spec refresh but not libjxl
|
|
2025-12-25 11:42:55
|
reddit submission deleted. was this not meant to go public yet ?
|
|
|
jonnyawsom3
|
|
HCrikki
jxl support is added through adobe's DNG converter 1.7.x - any efficiency improvements in upstream sdk probably could trickle down without a minor spec refresh but not libjxl
|
|
2025-12-25 11:43:16
|
The SDK uses libjxl
|
|
|
HCrikki
reddit submission deleted. was this not meant to go public yet ?
|
|
2025-12-25 11:43:46
|
Because the link was dead it got downvoted into oblivion, I'll just remake it when they re-release it
|
|
|
HCrikki
|
2025-12-25 11:44:00
|
files above if you need them
|
|
|
jonnyawsom3
|
2025-12-31 12:26:56
|
Well that's nice, they used Oxide for DNG decoding https://github.com/dnglab/dnglab/pull/562
|
|
2026-01-04 07:06:15
|
Ezgif updated their JXL support to add JPEG transcoding and client side encoding https://www.reddit.com/r/jpegxl/comments/1plukes/comment/nxm2h09/
|
|
2026-01-04 07:06:29
|
https://ezgif.com/jpg-to-jxl-bulk-converter
|
|
|
Snafuh
|
2026-01-08 11:33:49
|
jxl-rs was merged into Chromium.
https://chromium-review.googlesource.com/c/chromium/src/+/7319379
Kinda crazy chrome will probably beat firefox to it
|
|
|
AccessViolation_
|
2026-01-08 11:52:29
|
does this mean it'll be in the next release?
|
|
2026-01-08 11:52:48
|
or will it be in canary first or something?
|
|
2026-01-08 11:52:59
|
I'm not very familiar with Chrome's release process
|
|
|
HCrikki
|
2026-01-08 11:54:21
|
doubt, it should normally go into canary first with a flag - planned built by default but enabled by default might not come this soon. origin trials can forcefully activate the flag with for specific websites to test impact
|
|
2026-01-09 12:13:20
|
https://github.com/chromium/chromium/commit/3badff27281339878293e935a5e0fbb41da553bf
|
|
2026-01-09 12:21:31
|
assuming its complete (builds and flags), i presume canary should be available to try tomorrow (newer than *145.0.7623.1*)
|
|
|
hjanuschka
|
2026-01-09 12:22:13
|
it will take a while, this is part 2/3 - the actuall wiring runs in another CL! but we are getting there!
|
|
|
lonjil
|
2026-01-09 12:31:09
|
For reference, that one is here: <https://chromium-review.googlesource.com/c/chromium/src/+/7184969/74>
|
|
|
hjanuschka
|
2026-01-09 12:39:45
|
yes, once that is in canary, about://flags is your friend 🥳
|
|
|
adap
|
2026-01-09 12:43:43
|
https://tenor.com/view/fast-cat-cat-excited-jumping-gif-5054843775616689213
|
|
|
jonnyawsom3
|
|
hjanuschka
it will take a while, this is part 2/3 - the actuall wiring runs in another CL! but we are getting there!
|
|
2026-01-09 12:44:36
|
I did want to ask, is the Eager progressive mode being used/tested at all? <https://github.com/libjxl/jxl-rs/blob/main/jxl/src/api/options.rs#L10>
It's what allows Progressive_DC to render (I think) and there was previously a discussion around disabling the current Progressive_AC in favour of it by default
Progressive AC is what gives an intermediary between 1:8 DC and full quality, Progressive DC allows any resolution up to 1:8 in powers of 2 (8x8, 16x16, 32x32, ect)
Progressive lossless may also be effected, and may not work at all without Eager, but I haven't been able to test it myself. Thanks for all the hard work on Chrome!
|
|
|
hjanuschka
|
2026-01-09 12:50:13
|
from my understanding, it ends up in FullFrame mode so no eager. we'd need to do this in jxl-rs first i guess!
|
|
|
whatsurname
|
2026-01-09 03:03:13
|
It will probably land in 146 since 145 will be cut on Monday
|
|
|
AccessViolation_
|
2026-01-09 08:04:16
|
exciting!
|
|
2026-01-09 08:08:02
|
<@794205442175402004> it would be cool to see more of those Cloudinary graphs covering the rollout phases of JXL in Chrone and Firefox, when that happens <:BlobYay:806132268186861619>
|
|
2026-01-09 09:56:00
|
https://wasm-vips.kleisauke.nl/playground
|
|
|
_wb_
|
|
AccessViolation_
<@794205442175402004> it would be cool to see more of those Cloudinary graphs covering the rollout phases of JXL in Chrone and Firefox, when that happens <:BlobYay:806132268186861619>
|
|
2026-01-09 10:00:35
|
I will certainly keep an eye on that!
|
|
2026-01-09 10:07:39
|
this is what it looks like for now, basically saturation corresponding to the market share of iPhones. It's funny to see we always get spikes around holidays (thanksgiving and xmas/eoy) when people are doing more stuff on their phones and less on their desktop/laptop.
|
|
|
lonjil
|
2026-01-09 02:05:05
|
noice
|
|
2026-01-09 02:05:33
|
can I share that graph elsewhere?
|
|
|
AccessViolation_
|
|
AccessViolation_
https://wasm-vips.kleisauke.nl/playground
|
|
2026-01-09 02:07:55
|
oh wow <@208917283693789185> I didn't know you were here!
|
|
2026-01-09 02:08:25
|
really cool thing you've made
|
|
|
Kleis Auke
|
2026-01-09 02:09:06
|
Thank you! It's one of my pet projects. 🙂
|
|
|
Kleis Auke
https://github.com/weserv/images/commit/a8abac275128ecc8fa43d203f5551c99fc98a0a9 - coming soon to https://wsrv.nl/
|
|
2026-01-09 02:37:08
|
This has now been deployed. For example:
https://wsrv.nl/?url=https://github.com/libjxl/conformance/raw/master/testcases/animation_icos4d/input.jxl&n=-1&output=webp
However, some custom bitdepth images are currently broken due to the issue described in PR <https://github.com/libvips/libvips/pull/4830> (e.g. <https://wsrv.nl/?url=https://github.com/libjxl/conformance/raw/master/testcases/sunset_logo/input.jxl&output=png>).
|
|
|
AccessViolation_
|
2026-01-09 02:38:22
|
you made wsrv too??
|
|
2026-01-09 02:38:29
|
I was actually looking at that
|
|
|
Kleis Auke
|
2026-01-09 02:38:39
|
Yes, one of my other pet projects.
|
|
|
AccessViolation_
|
2026-01-09 02:39:05
|
I like your pet projects
|
|
|
RaveSteel
|
|
Kleis Auke
This has now been deployed. For example:
https://wsrv.nl/?url=https://github.com/libjxl/conformance/raw/master/testcases/animation_icos4d/input.jxl&n=-1&output=webp
However, some custom bitdepth images are currently broken due to the issue described in PR <https://github.com/libvips/libvips/pull/4830> (e.g. <https://wsrv.nl/?url=https://github.com/libjxl/conformance/raw/master/testcases/sunset_logo/input.jxl&output=png>).
|
|
2026-01-09 03:10:02
|
good glitchart in the PR
|
|
|
|
cioute
|
2026-01-11 02:16:51
|
whats new for android?
|
|
|
RaveSteel
|
2026-01-11 02:19:27
|
Why do you ask? Was there anything announced?
|
|
|
|
cioute
|
2026-01-11 02:24:20
|
no, i just search a android gallery app with zooming for jpegxl
|
|
|
AccessViolation_
|
2026-01-11 02:46:36
|
we have some in <#822120855449894942>
|
|
|
whatsurname
|
2026-01-11 02:55:14
|
I don't think Fossify Gallery is what he's looking for though
https://github.com/FossifyOrg/Gallery/issues/252
|
|
|
HCrikki
|
2026-01-11 06:37:13
|
i think that was fixed at some point but its still an issue with avif
|
|
|
jonnyawsom3
|
2026-01-11 07:04:11
|
https://github.com/FossifyOrg/Gallery/issues/318
|
|
|
_wb_
this is what it looks like for now, basically saturation corresponding to the market share of iPhones. It's funny to see we always get spikes around holidays (thanksgiving and xmas/eoy) when people are doing more stuff on their phones and less on their desktop/laptop.
|
|
2026-01-11 08:58:56
|
I misread that the first few times, didn't realise we hit 1B/d
|
|
|
adap
|
2026-01-11 11:46:24
|
https://reshade.me/releases/10207-6-7
JXL screenshot feature in official reshade build now
|
|
|
jonnyawsom3
|
2026-01-12 01:18:39
|
Thanks <@274048677851430913>
|
|
|
AccessViolation_
|
2026-01-12 07:52:24
|
it feels like things are moving so quickly now :D
|
|
2026-01-12 07:52:33
|
love to see it
|
|
|
jonnyawsom3
|
2026-01-12 11:24:17
|
Inteeeresting... They removed it from the blog and redirected the URL
https://aboutsignal.com/news/signal-ios-update-bug-fixes-jpeg-xl-and-pinned-messages-are-getting-closer/
|
|
2026-01-12 11:24:46
|
|
|
|
hjanuschka
it will take a while, this is part 2/3 - the actuall wiring runs in another CL! but we are getting there!
|
|
2026-01-13 12:44:34
|
Part 3/3 if I'm not mistaken https://github.com/chromium/chromium/commit/8215ebd5eb9d45b42bbc68e1ceff039a319b35d6
|
|
|
|
veluca
|
2026-01-13 01:07:36
|
correct
|
|
|
HCrikki
|
2026-01-13 01:15:03
|
if so, i presume itll be in upcoming canary build *after 145.0.7631.2*
|
|
|
_wb_
|
2026-01-13 01:21:28
|
this is oddly satisfying
|
|
|
|
veluca
|
|
HCrikki
if so, i presume itll be in upcoming canary build *after 145.0.7631.2*
|
|
2026-01-13 01:23:28
|
I believe it should be in 146.x
|
|
2026-01-13 01:23:39
|
(branch cut for 145 was today)
|
|
|
whatsurname
|
|
HCrikki
if so, i presume itll be in upcoming canary build *after 145.0.7631.2*
|
|
2026-01-13 02:01:36
|
You can check https://chromiumdash.appspot.com/commit/8215ebd5eb9d45b42bbc68e1ceff039a319b35d6 for which build it's shipped with
|
|
|
jonnyawsom3
|
|
veluca
(branch cut for 145 was today)
|
|
2026-01-13 05:08:03
|
It says `Landed 145.0.7632.0`, so I think it might've slipped in
|
|
|
whatsurname
|
2026-01-13 05:27:54
|
https://chromium.googlesource.com/chromium/src/+log/refs/tags/145.0.7632.0
It's so close, 80 minutes before the last commit
|
|
|
Tirr
|
2026-01-13 06:26:44
|
maybe I'm going to install chromium canary build
|
|
|
hjanuschka
|
2026-01-13 09:16:01
|
canary is released you'd need to opt in via chrome://flags/ (search jxl) - and make sure to restart canar atleast once!
|
|
2026-01-13 09:16:54
|
|
|
|
It says `Landed 145.0.7632.0`, so I think it might've slipped in
|
|
2026-01-13 09:20:09
|
also think it might slipt in 🙂 but we will see, the label/tag on chromiumdash does give me hope
|
|
|
whatsurname
|
2026-01-13 09:47:02
|
I just tested https://random-stuff.jakearchibald.com/apps/img-decode-bench/ and JXL is 20x slower than AVIF
I wonder if the SIMD feature is not enabled
|
|
|
hjanuschka
|
2026-01-13 09:50:37
|
it should, no matter what build flavor, jxl-rs always uses release/optimized flags
|
|
2026-01-13 09:50:50
|
but perfromance is still a thing, getting it in was prio.
|
|
|
AccessViolation_
|
2026-01-13 09:54:40
|
it's happening it's happening
|
|
|
Meow
|
|
hjanuschka
|
|
2026-01-13 10:01:27
|
Is JXL really functional on Chrome Canary now?
|
|
|
whatsurname
|
2026-01-13 10:06:40
|
It's a default feature of jxl_cli but I didn't see where it gets enabled in Chromium
|
|
|
hjanuschka
|
|
Meow
Is JXL really functional on Chrome Canary now?
|
|
2026-01-13 10:18:22
|
if you enable it with chrome://flags (and restart once) yes
|
|
|
Meow
|
2026-01-13 10:19:35
|
Great so it's not a placeholder flag there
|
|
|
monad
|
2026-01-13 11:11:37
|
time to compress the web
|
|
|
Tirr
|
2026-01-13 11:21:14
|
jxl-rs has SIMD but it's still singlethreaded now
|
|
2026-01-13 11:23:00
|
and it doesn't match the performance of singlethreaded libjxl yet
|
|
|
dogelition
|
2026-01-13 11:34:38
|
yep that's definitely working, including hdr, awesome
no idea if this is even supposed to be a supported use case for jxl in "normal" viewers, but i noticed that a jxl converted 1:1 from jxr (hdr using linear half float srgb, with (1,1,1) = 80 nits white) is not displayed as hdr in chrome. it does work when importing into krita though
jxlinfo for reference:
```
JPEG XL file format container (ISO/IEC 18181-2)
JPEG XL image, 3840x2160, (possibly) lossless, 16-bit float (5 exponent bits) RGB+Alpha
intensity_target: 80.000000 nits
min_nits: 0.000000
relative_to_max_display: 0
linear_below: 0.000000
Color space: RGB, D65, sRGB primaries, Linear transfer function, rendering intent: Relative
```
i assume the issue there is that there's no indication for the maximum luminance in the image, so it's hard to tell if it's even supposed to be hdr or not.
|
|
|
jonnyawsom3
|
|
whatsurname
I just tested https://random-stuff.jakearchibald.com/apps/img-decode-bench/ and JXL is 20x slower than AVIF
I wonder if the SIMD feature is not enabled
|
|
2026-01-13 11:37:01
|
I specifically left a comment warning about comparing to other formats
https://issues.chromium.org/issues/462919304#comment22
|
|
|
whatsurname
|
|
hjanuschka
it should, no matter what build flavor, jxl-rs always uses release/optimized flags
|
|
2026-01-13 11:40:30
|
Can you check if `features = ["all-simd"]` should be added here: https://source.chromium.org/chromium/chromium/src/+/main:third_party/rust/chromium_crates_io/Cargo.toml;l=30
|
|