JPEG XL

Info

rules 57
github 35276
reddit 647

JPEG XL

tools 4225
website 1655
adoption 20712
image-compression-forum 0

General chat

welcome 3810
introduce-yourself 291
color 1414
photography 3435
other-codecs 23765
on-topic 24923
off-topic 22701

Voice Channels

General 2147

Archived

bot-spam 4380

adoption

Adoption of jxl: what software supports jxl already, how to get more adoption?

w
2024-07-22 10:59:43
and as general as it can be
Demiurge
2024-07-22 10:59:58
Yeah, if you're generating a fingerprint, it's super useful, because it's not very common/generic information
w
2024-07-22 11:00:14
every other Linux user...
Demiurge
2024-07-22 11:00:33
Every other, yeah. As long as they are using Firefox 128
w
2024-07-22 11:00:35
It's the exact same pattern as this Mozilla/5.0 (Android 12; Mobile; rv:128.0) Gecko/128.0 Firefox/128.0
2024-07-22 11:00:52
Well you did it to yourself for using the odd setup
Demiurge
2024-07-22 11:01:36
It doesn't need to give the version numbers for android and firefox
w
2024-07-22 11:01:57
uhh they are very important
Demiurge
2024-07-22 11:02:35
If you want detailed information it should ask for permission first and get consent.
w
2024-07-22 11:02:43
like knowing which versions you can target for features
Demiurge
2024-07-22 11:03:07
There should be an API to get info which asks the user for consent just like it does for getting your geolocation
w
2024-07-22 11:03:12
anyway fun arguing with armchair webdev
lonjil
2024-07-22 11:03:28
you need the versions because some versions have broken support for stuff
2024-07-22 11:03:58
for example, imaging writing a source set of images, including a webp image. But oops, one user is using an old version of Safari with broken webp support!
Demiurge
2024-07-22 11:04:02
Checking version numbers is even discouraged by all of the docs and manuals I've ever read about web dev
2024-07-22 11:04:10
So why even provide it?
w
Demiurge There should be an API to get info which asks the user for consent just like it does for getting your geolocation
2024-07-22 11:04:10
How would it know that it can use the API??? <:clue:1247768672739659786>
lonjil
2024-07-22 11:04:26
or imagine having an avif variant, but a user is on android 13, which has broken avif support
Demiurge
w How would it know that it can use the API??? <:clue:1247768672739659786>
2024-07-22 11:05:16
It would try, and fail, and then the web page could say that it wasn't able to automatically detect your system.
w
2024-07-22 11:05:27
how would it know it can try and fail?
2024-07-22 11:06:17
what if the user's JavaScript engine acts differently
2024-07-22 11:06:27
or what if they disabled javascript
2024-07-22 11:06:39
I guess we need to send a header
2024-07-22 11:07:02
to tell the server what features we can use
Demiurge
2024-07-22 11:07:20
I also personally believe they should have made a way for a web page to request consent to run javascript in the first place, so it can be disabled by default by all browsers...
w
2024-07-22 11:07:27
and it can't just be a list of features and formats, that's too specific and fingerprintable
2024-07-22 11:07:44
OS+browser version oughta do it
2024-07-22 11:09:06
Whole system for knowing features outside of header and JavaScript? That's too complicated for my embedded kiosk
Demiurge
2024-07-22 11:09:23
I mean browsers that don't have a newish feature will typically just gracefully ignore stuff they don't recognize...
w
2024-07-22 11:09:35
that's a bad assumption
Demiurge
2024-07-22 11:09:55
That's how new HTML tags work
2024-07-22 11:10:07
Assuming unrecognized tags will be ignored by older browsers
w
2024-07-22 11:10:07
Do you not think many people are thinking about this and many people came together to decide the current standard?
Demiurge
2024-07-22 11:10:48
Sure, but apparently quantity does not account for quality... Anyone who's taken a look at the "web platform" knows it's a train wreck.
w
2024-07-22 11:11:04
it's fine
2024-07-22 11:11:32
If you think you can do better then by all means
2024-07-22 11:11:38
go for it
2024-07-22 11:11:43
and quit complaining
Demiurge
2024-07-22 11:11:44
That's why there's healthy competition in the web browser market, eh?
2024-07-22 11:12:01
Because the standards are fine
w
2024-07-22 11:12:15
yeah that's why jxl is useless
Demiurge
2024-07-22 11:12:15
That's why web browser competition is flourishing
2024-07-22 11:14:24
I need to go get something to eat. I respect if you have a different opinion than mine. Not everyone gets everything right 100% of the time and I could be mistaken about some things, but I hope you don't mind me sharing my current opinion. I'm sorry if I annoyed anybody here.
w
2024-07-22 11:14:42
At work we have to make a ton of exceptions for firefox
2024-07-22 11:14:58
soon have to also target safari and that will be horrible
2024-07-22 11:15:37
slowly the exceptions for ff go away
2024-07-22 11:16:27
but we do use the user-agent to tell what exceptions are needed
2024-07-22 11:17:09
esp .for crash logs, knowing the exact setup to reproduce a bug is very useful
2024-07-22 11:17:38
I'm sure for most websites it's used for something like that
2024-07-22 11:18:04
and I'm sure it can only be used for that since it's so general
Demiurge
2024-07-22 11:24:57
I just think browsers should have less dubiously-useful entropy in their headers for both performance and privacy reasons.
w esp .for crash logs, knowing the exact setup to reproduce a bug is very useful
2024-07-22 11:26:56
Debugging scripts on a remote machine without the owner's consent or knowledge is something web devs take for granted in this crazy world
2024-07-22 11:27:38
I know that is going to be unpopular with a lot of web devs, but nowhere else is that even remotely a thing that's considered normal or acceptable
w
2024-07-22 11:27:48
?
Demiurge
2024-07-22 11:29:28
It's kind of off-topic, but I think the web platform is broken by design because it takes for granted that you are running scripts on someone else's machine and you don't need consent or permission to do all kinda of things that would bother most people.
w
2024-07-22 11:30:11
and you don't need consent to load a bunch of images on a web page
2024-07-22 11:30:23
what's your point
Demiurge
2024-07-22 11:31:19
There should be a difference between a user browsing a page or article for information, and a user consenting to run an app on their machine.
w
2024-07-22 11:31:33
or you can just not go to the web page?
Demiurge
2024-07-22 11:31:57
It isn't designed with consent in mind
w
2024-07-22 11:32:04
jeez why do they ask for my id when I go to x place
Demiurge
2024-07-22 11:32:29
At least they ask... they don't just reach into your wallet and take it...
w
2024-07-22 11:32:57
Still have to give them the info
2024-07-22 11:33:05
or I can not go
Demiurge
2024-07-22 11:33:20
Web browsers and web standards are designed by advertising agencies and so it is no surprise they are designed to violate your privacy and consent by default
w
2024-07-22 11:33:46
humans are designed to consume water and pee it out after
2024-07-22 11:33:49
??
Demiurge
2024-07-22 11:34:41
I wish privacy and consent wasn't a punchline in this world
w
2024-07-22 11:34:58
It's not a cause of big water it's just consequence of other factors
2024-07-22 11:35:33
you have a very tunnel vision pessimistic view point
Demiurge
2024-07-22 11:35:51
No, it absolutely is because the people who made the browsers and the standards want to sell you ads more than they want to consider the ethical implications of consent
w
2024-07-22 11:38:07
it's not that they want to sell ads
2024-07-22 11:38:12
they just want to make money
2024-07-22 11:38:20
by selling ads
drkt
w by selling ads
2024-07-23 10:37:41
I can't even tell if this is supposed to be a point or not lol
HCrikki
2024-07-24 12:35:47
web browser Ladybird upgraded its jxl support from its basic inhouse decoder to an integration of libjxl 2 days ago (currently 0.10.2). reportedly it works great - no animations yet but coming
Lucas Chollet
2024-07-24 04:23:20
Support for animation was merged yesterday 🙂
Demiurge
2024-07-24 06:18:36
They... They built a basic inhouse decoder?! Nice...
diskorduser
HCrikki web browser Ladybird upgraded its jxl support from its basic inhouse decoder to an integration of libjxl 2 days ago (currently 0.10.2). reportedly it works great - no animations yet but coming
2024-07-24 03:27:35
firefox base or chromium base
HCrikki
2024-07-24 03:33:03
truly independant (started as serenityOS' html renderer). all components were before made from scratch, really fast improvement pace putting to rest the myth of browsers needing a billion dollar. what changed recently is theyre now open to using existing equivalent libraries where it makes sense
Quackdoc
2024-07-24 04:47:23
that remains to be seen, ladybird is impressive, but it's still waaaaayyyy behind
Demiurge
2024-07-24 09:28:28
How about we all just use gopher or something
2024-07-24 09:28:44
Web browsers were a mistake 😂
VcSaJen
Demiurge Update: Ever since setting my browser to stop sending HTTP "Accept" and "Accept-Language" headers, most things still seem to work just fine, but I noticed that certain websites are a little bit weird if you aren't logged in. Like github. I guess some HTTP servers assume bot traffic if they don't like the HTTP headers.
2024-07-25 08:38:50
My advice: NEVER remove Accept-Encoding header. It will break many sites (but not all, so you'll notice it way later), and you'll spend years hunting down the cause.
Demiurge
2024-07-25 10:48:34
I left accept-encoding alone, because there isn't any non-braindead alternative yet.
VEG
2024-07-26 06:20:43
I wish more websites used accept-language instead of detection by geoip (sorry for offtopic)
_wb_
2024-07-26 09:48:18
Absolutely. I get annoyed that YouTube gives me ads in French just because I live close to Brussels, and last week when I was in Japan, I got ads in Japanese.
TheBigBadBoy - 𝙸𝚛
_wb_ Absolutely. I get annoyed that YouTube gives me ads in French just because I live close to Brussels, and last week when I was in Japan, I got ads in Japanese.
2024-07-26 09:57:37
looool and me being near Liège I get many times my ads in Dutch <:kekw:808717074305122316>
2024-07-26 09:58:41
well, same stuff for website language (even big ones like Amazon) can't they see my whole browser and locales are in French ? <:KekDog:805390049033191445>
SwollowChewingGum
2024-07-26 09:58:54
ip stuff is annoying in general
w
2024-07-26 10:03:07
I would prefer personalized ads over local ads
SwollowChewingGum
2024-07-26 10:03:24
i prefer no ads 🤷‍♂️
w
2024-07-26 10:04:17
On twitter you can block accounts making ads but when traveling it's basically reset every time
Oleksii Matiash
2024-07-26 10:07:14
Lots of sites still believe that if your IP is in ex-USSR countries - russian is the best choice, despite the fact that my Windows and browser are in English. It is just terrible
Quackdoc
TheBigBadBoy - 𝙸𝚛 well, same stuff for website language (even big ones like Amazon) can't they see my whole browser and locales are in French ? <:KekDog:805390049033191445>
2024-07-26 10:24:41
same same, I often get punted into quebec with my geoip which changes everything to french
2024-07-26 10:27:33
all the people who get punted into russia geo ip and software suddenly goes malicious, RIP
VcSaJen
Oleksii Matiash Lots of sites still believe that if your IP is in ex-USSR countries - russian is the best choice, despite the fact that my Windows and browser are in English. It is just terrible
2024-07-26 10:32:28
EA is like that, too. It backfired badly when they decided to block that region from buying games.
Oleksii Matiash
VcSaJen EA is like that, too. It backfired badly when they decided to block that region from buying games.
2024-07-26 12:22:48
I know 😔
paperboyo
2024-07-26 02:37:06
FYI, JPEG XL is now available in supported browsers at www.theguardian.com (most of images on the site).
sklwmp
2024-07-26 05:01:43
I guess they stayed true with their support... now if only browsers other than Safari could make use of it 🙂
Posi832
2024-07-26 08:20:26
I still get JPEGs on Cromite
Demiurge
2024-07-26 08:57:13
what's your Accept: header for img requests?
lonjil
2024-07-26 09:00:45
i just visited with safari, and got a jxl
2024-07-26 11:30:14
does anyone know if shopify actually serves JXL files?
2024-07-26 11:30:25
I've only gotten webp files so far
username
lonjil does anyone know if shopify actually serves JXL files?
2024-07-26 11:40:08
this list still applies: https://discord.com/channels/794206087879852103/803574970180829194/1090307010253308057
2024-07-26 11:40:48
Shopify seems to only make medium-smallish images as JXL files
lonjil
2024-07-26 11:41:11
ah!
bonnibel
_wb_ Absolutely. I get annoyed that YouTube gives me ads in French just because I live close to Brussels, and last week when I was in Japan, I got ads in Japanese.
2024-07-27 01:43:27
I hate when they don't just use it to determine ads but automatically change the language of the _whole website_
2024-07-27 01:44:07
and if there even is a manual language selector to overwrite it, I can't find it, because it's in a language or sometimes an alphabet I don't understand (:
sklwmp
lonjil i just visited with safari, and got a jxl
2024-07-27 03:19:49
to add: i visited with floorp, got jxl
SwollowChewingGum
2024-07-27 03:21:12
Thorium; got jxl
Posi832
Demiurge what's your Accept: header for img requests?
2024-07-27 10:48:33
text/html,application/xhtml+xml,application/xml;q=0.9,image/jxl,image/avif,image/webp,image/apng,\*/\*;q=0.8
Quackdoc
2024-07-27 10:57:02
is there a list of known encoders anywhere (and decoders too would be fine) the only ones I can think of off hand are libjxl, hydrium and zune-jxl
Demiurge
Posi832 text/html,application/xhtml+xml,application/xml;q=0.9,image/jxl,image/avif,image/webp,image/apng,\*/\*;q=0.8
2024-07-27 11:27:33
As long as you're sending a referer header, it should work...
Don Vecchione
2024-07-27 08:18:37
Any good image viewer for linux that supports jxl? My machine defaults to using GIMP which isn't the best user experience for just viewing stuff
RaveSteel
Don Vecchione Any good image viewer for linux that supports jxl? My machine defaults to using GIMP which isn't the best user experience for just viewing stuff
2024-07-27 08:22:49
Which DE are you using?
Don Vecchione
2024-07-27 08:23:16
Well GNOME but I don't have any of the GNOME apps installed.
RaveSteel
2024-07-27 08:23:57
There is a gnome package that gives gtk apps access to jxl, avif etc. I don't have the name of that package though
Quackdoc
2024-07-27 08:23:59
most of them do, gwenview, loupe (kinda bad dont use it) koko photoqt etc. I personally like oculante but it's lacking colourmanagement and large picture support
RaveSteel
2024-07-27 08:24:28
gwenview requieres the kimageformats package to decode jxl IIRC
Quackdoc
2024-07-27 08:24:35
loupe is gnomes new image viewer but it sucks with a capital S
RaveSteel
2024-07-27 08:24:54
It has no settings lmao
Don Vecchione
Quackdoc most of them do, gwenview, loupe (kinda bad dont use it) koko photoqt etc. I personally like oculante but it's lacking colourmanagement and large picture support
2024-07-27 08:26:14
I found gwenview, loupe and koko from my package manager. Which would y'all recommend?
Quackdoc
2024-07-27 08:26:57
personally I would reccomend gwenview, it's popular enough that it's got good support. I like koko better but it lacks ICC support
RaveSteel
2024-07-27 08:27:18
loupe is extremely simplistic with no settings to speak of. use it if that is your jam
2024-07-27 08:27:24
i wouldn't recommend it tho
Quackdoc
RaveSteel loupe is extremely simplistic with no settings to speak of. use it if that is your jam
2024-07-27 08:27:43
loupe is horrid, it actually lags when rendering gifs on my tablet, I didnt even think that was possible, but it does.
RaveSteel
2024-07-27 08:28:12
if you are fine with Qt applications, nomacs is a competent image viewer like gwenview but with a nicer gui IMO
Don Vecchione
2024-07-27 08:31:08
Bruhhh installing gwenview would install 63 packages and koko would 57 packages. Loupe only needs 3 packages
Quackdoc
2024-07-27 08:31:31
loupe is statically linked since it's rust
Don Vecchione
2024-07-27 08:31:35
Ah
2024-07-27 08:32:34
Loupe actually seems good enough
2024-07-27 08:32:39
Thanks!
Quackdoc
RaveSteel i wouldn't recommend it tho
2024-07-27 08:58:12
2024-07-27 08:58:40
koko would be so great if it supported icc
RaveSteel
2024-07-27 09:01:06
left video is rough
Quackdoc
2024-07-27 09:01:33
yeah that's not the video, the app is just like that xD
RaveSteel
2024-07-27 09:16:30
i have the flatpak of it installed, it works fine there
2024-07-27 09:16:48
the flatpak has no support for avif or jxl though, sadly
Demiurge
Don Vecchione Any good image viewer for linux that supports jxl? My machine defaults to using GIMP which isn't the best user experience for just viewing stuff
2024-07-27 09:20:45
Every image viewer on linux supports jxl from what I can see. gdk-pixbuf adds support to gnome, if anyone still uses that aging piece of junk.
RaveSteel
2024-07-27 09:21:20
yes, but there is no flatpak package of gdk-pixbuf, so no support in flatpak apps unless directly packaged by the maintainer
Quackdoc
RaveSteel i have the flatpak of it installed, it works fine there
2024-07-27 09:57:06
the issue is it performs like complete crap
RaveSteel
2024-07-27 09:57:42
My primary issue is the lacking settings, you cannot even disable the hud
2024-07-27 09:57:56
but it's not my main image viewer anyway
TheBigBadBoy - 𝙸𝚛
2024-07-28 11:43:11
there's also `pqiv` for minimalistic (keyboard-oriented) people like me
frep
paperboyo FYI, JPEG XL is now available in supported browsers at www.theguardian.com (most of images on the site).
2024-07-31 07:45:17
It's interesting... They're serving them with jpg extensions in the address bar
2024-07-31 07:47:52
O_o the width is adjustable, so I think they're encoding them live???
2024-07-31 08:02:32
Their encodes are pretty blocky. I think they're using something close to e1, but I think they should really use e5 because that's when deblocking kicks in
2024-07-31 08:03:55
I think they're using distance=5
2024-07-31 08:04:27
For reference, on my PC e5 is 20ms slower than e1. Not a lot!
paperboyo
2024-07-31 08:15:22
To that, is there a table of features available from certain `effort` anywhere? Also, is it expected filesize grows with `effort` (tested e3 vs. e6 and filesizes are consistently larger…)?
username
paperboyo To that, is there a table of features available from certain `effort` anywhere? Also, is it expected filesize grows with `effort` (tested e3 vs. e6 and filesizes are consistently larger…)?
2024-07-31 08:19:44
https://github.com/libjxl/libjxl/blob/main/doc/encode_effort.md
paperboyo
username https://github.com/libjxl/libjxl/blob/main/doc/encode_effort.md
2024-07-31 08:24:12
Thank you! This also answers my second question. > This means that for lossy compression, higher effort does not necessarily mean smaller filesizes for every image — some images may be somewhat lower quality than desired when using lower effort heuristics, and to improve consistency, higher effort heuristics may decide to use more bytes for them.
username
2024-07-31 08:44:40
also I would recommend [Squoosh](https://squoosh.app) to be able to do quick visual comparisons between quality and effort levels, but going towards what Firepal said e5 or higher is probably what should be used since if you compare e4 and e5 the visual difference is pretty big
_wb_
2024-07-31 09:12:01
Basically the low effort lossy settings are mostly useful for very high quality encoding (say d < 1). For lower quality, the coding tools that get enabled at higher effort settings (like bigger blocks / adaptive quantization / better heuristics) and the extra effort spent on entropy coding really make a difference.
frep
2024-07-31 10:39:44
I second the Squoosh recommendation, despite some WASM limitations imposing speed limits it's great. They should add jpegli sometime...
Quackdoc
frep It's interesting... They're serving them with jpg extensions in the address bar
2024-07-31 11:10:50
yes this is how CDNs work, they use accept headers to serve you a different image instead
CrushedAsian255
2024-07-31 12:15:35
MacOS is having big issues trying to load giant jpeg xl images using Preview
2024-07-31 12:16:37
`djxl` decodes it fine in `0.3s` but Preview gives the beachball trying to zoom into anything
Traneptora
Don Vecchione Any good image viewer for linux that supports jxl? My machine defaults to using GIMP which isn't the best user experience for just viewing stuff
2024-07-31 03:44:38
if you install the gdk-pixbuf loader, then it works with eye of gnome and eye of mate
2024-07-31 03:44:39
and the like
jonnyawsom3
frep I second the Squoosh recommendation, despite some WASM limitations imposing speed limits it's great. They should add jpegli sometime...
2024-07-31 05:12:23
Right now Squoosh is in a low activity state libjxl is already [a few years old](<https://github.com/GoogleChromeLabs/squoosh/issues/1402>) (2022) so I wouldn't bet too heavily on jpegli making it in anytime soon https://github.com/GoogleChromeLabs/squoosh/issues/1408
username https://github.com/libjxl/libjxl/blob/main/doc/encode_effort.md
2024-07-31 05:19:34
It'd probably be a good idea to update that chart with the new streaming modes and e10 at some point too, but I'll leave that to someone who's more familiar with the heuristics since as I mentioned in <#840831132009365514> the palette was also extended to e2 and e3 just to name an example
Crite Spranberry
2024-08-06 01:33:24
Had to do a bit of work to get animated JXL in 129, so I figure I'll send https://github.com/Eclipse-Community/r3dfox/releases/tag/v129.0
username
Crite Spranberry Had to do a bit of work to get animated JXL in 129, so I figure I'll send https://github.com/Eclipse-Community/r3dfox/releases/tag/v129.0
2024-08-06 05:04:56
are these the changes?
Crite Spranberry
2024-08-06 05:07:27
Yeah I just had to replace PostDecodeDone with PostLoopCount in the patch It doesn't sound that hard, but I am retarded so first beta release did not have extended JXL
username
2024-08-06 05:09:56
https://bugzilla.mozilla.org/show_bug.cgi?id=1901076
jonnyawsom3
2024-08-14 12:20:20
People mind helping to check this? Seems like Irfanview can't see metadata unless it's at the start of the file and not Brotli compressed https://www.reddit.com/r/jpegxl/comments/1er3ok2/comment/li23yci/
Oleksii Matiash
People mind helping to check this? Seems like Irfanview can't see metadata unless it's at the start of the file and not Brotli compressed https://www.reddit.com/r/jpegxl/comments/1er3ok2/comment/li23yci/
2024-08-14 12:43:45
It does not. So no exif, no color profile
2024-08-14 12:50:35
Also ACR opens non-srgb jxls incorrectly. Active image is in prophoto, second - srgb. Colors in non-srgb image are correct, but gamma is not. Maybe updated ACR fixes that, don't know
_wb_
2024-08-14 01:44:17
Color space info is not separate metadata in jxl, it is part of the codestream. So if an application shows wrong colors, they're using the decoder incorrectly.
Oleksii Matiash
2024-08-14 01:47:05
In case of jpeg-in-jxl too?
_wb_
2024-08-14 01:57:45
Yes
2024-08-14 02:01:44
Every jxl codestream has obligatory color space info, which can be as short as a single bit to signal sRGB or it can be a compressed arbitrary ICC profile, but there has to be something, it is not possible to make a jxl where it is ambiguous how to interpret the image data.
2024-08-14 02:03:01
For JPEG recompression, the color profile is taken from the jxl codestream, it is not part of the jbrd box (except to indicate _where_ in the reconstructed jpeg bitstream the ICC profile is supposed to go).
Oleksii Matiash
2024-08-14 02:21:20
I'm asking because IrfanView correctly displays 'true' non-srgb jxl, and fails to color manage non-srgb jpeg-in-jxl. I thought that in latter case IV can't read metadata and get profile from there, but it seems that problem is somewhere else
_wb_
2024-08-14 03:02:11
Could be that it just asks libjxl using JxlDecoderSetPreferredColorProfile to return an sRGB image if possible (which iirc means that it will do that if the image is XYB or if it is RGB that is already-sRGB, but not if it has to handle an arbitrary ICC profile) and assumes the result will always be sRGB (which is a wrong assumption). With the latest libjxl API you can call JxlDecoderSetOutputColorProfile instead and it will handle arbitrary ICC profiles if needed (using lcms2 or skcms), but with older versions of libjxl that function was not available yet.
Oleksii Matiash
2024-08-14 03:29:07
As far as I can see - it is a total mess: IrfanView correctly shows non-srgb jxl, but fails to color manage jpeg-in-jxl, while ACR does the opposite: fails to apply correct gamma (and only gamma, looks like it is applied 'twice'), but shows correctly non-srgb jpeg-in-jxl. Also I found that Photoshop is stupid enough to accept only default extension, ignoring file content 🤦‍♂️
jonnyawsom3
2024-08-14 03:41:46
The IrfanView plugin could do with a major overhaul. Compressed boxes, mid-stream metadata loading, updated libjxl version... A long way down the wishlist, cropped decoding would be nice too
VcSaJen
2024-08-15 03:10:29
Considering the sheer amount of software that implemented jxl encoding/decoding "incorrectly", could it be documentation problem? Or maybe examples are bad? Or API violated the principle of the least surprise or something. If *everyone* does it wrong, it makes you think.
Quackdoc
2024-08-15 03:13:32
well colour management in general is hard, and most applications still just default to srgb or nothing, so unless the decoder actively converts to sRGB which is fairly rare all things considered, colours will typically look wrong, and ofc since conversion is rare, not many people even go out to look for it
HCrikki
2024-08-15 03:35:48
windows applications have long defaulted on color management disabled so that can be an issue with jxl and jpegli+xyb
2024-08-15 03:37:25
utilities like xnview dont leverage cjxl's quasi-instant jpg->jxl path when source is an unedited jpg so its stuck doing a long export/preview on a single thread
2024-08-15 03:39:03
highest profile fail imo is firefox though. for some reason they think they had color management nailed when the tests they used were obsolete and flawed and havent reevaluated since
jonnyawsom3
HCrikki utilities like xnview dont leverage cjxl's quasi-instant jpg->jxl path when source is an unedited jpg so its stuck doing a long export/preview on a single thread
2024-08-15 04:04:47
Most cases of jpeg transcode missing is simply due to the nature of the programs decoding to pixels instead of sending the data to libjxl
Oleksii Matiash
Oleksii Matiash As far as I can see - it is a total mess: IrfanView correctly shows non-srgb jxl, but fails to color manage jpeg-in-jxl, while ACR does the opposite: fails to apply correct gamma (and only gamma, looks like it is applied 'twice'), but shows correctly non-srgb jpeg-in-jxl. Also I found that Photoshop is stupid enough to accept only default extension, ignoring file content 🤦‍♂️
2024-08-15 05:56:00
Out of curiosity tried IrfanView's color management on various formats - it is.. ehm.. strange. For example this is how it displays avif discussed few days ago somewhere in on\offtopic, when color management is on. The same is for svg
spider-mario
2024-08-15 07:30:10
maybe this person has argyria?
yoochan
2024-08-15 07:49:04
Or ate too many schtroumpfs
_wb_
2024-08-15 08:07:29
jonnyawsom3
2024-08-15 10:17:52
Now we know their favourite song
username
2024-08-19 10:57:23
apparently Final Fantasy 16 (a Video game) has support for JPEG XL‽ https://x.com/NotNite/status/1825577272943751288
Quackdoc
2024-08-20 01:17:52
thats dope
dogelition
2024-08-20 01:58:25
``` $ jxlinfo ffxvi_20240820_035122_001.jxl JPEG XL image, 2194x1234, lossy, 8-bit RGB intensity_target: 10000.000000 nits min_nits: 0.000000 relative_to_max_display: 0 linear_below: 0.000000 Color space: RGB, D65, Rec.2100 primaries, PQ transfer function, rendering intent: Relative ``` 8 bit hdr :/
username
dogelition ``` $ jxlinfo ffxvi_20240820_035122_001.jxl JPEG XL image, 2194x1234, lossy, 8-bit RGB intensity_target: 10000.000000 nits min_nits: 0.000000 relative_to_max_display: 0 linear_below: 0.000000 Color space: RGB, D65, Rec.2100 primaries, PQ transfer function, rendering intent: Relative ``` 8 bit hdr :/
2024-08-20 02:05:32
what does the JXR come out as?
dogelition
username what does the JXR come out as?
2024-08-20 02:15:31
16 bpc (half float) scRGB
2024-08-20 02:15:47
also seems to be lossy from the size, though idk if/how you can check that
Quackdoc
dogelition 16 bpc (half float) scRGB
2024-08-20 02:17:53
based scrgb usage
dogelition
2024-08-20 02:22:49
and the PNG files are just 8 bpc sRGB and look bad, not entirely sure how they're generating those but the HDR highlights seem to be clipped + they take absurdly long to encode, like ~10 seconds
2024-08-20 02:29:57
here's one of my jxl screenshots
Demiurge
username apparently Final Fantasy 16 (a Video game) has support for JPEG XL‽ https://x.com/NotNite/status/1825577272943751288
2024-08-20 05:15:44
That's a screenshot of "decompiled" code lol
dogelition here's one of my jxl screenshots
2024-08-20 05:20:07
I can see a little bit of mosquito noise in the parapets but otherwise cool. Too bad there's no quality slider
Traneptora
dogelition ``` $ jxlinfo ffxvi_20240820_035122_001.jxl JPEG XL image, 2194x1234, lossy, 8-bit RGB intensity_target: 10000.000000 nits min_nits: 0.000000 relative_to_max_display: 0 linear_below: 0.000000 Color space: RGB, D65, Rec.2100 primaries, PQ transfer function, rendering intent: Relative ``` 8 bit hdr :/
2024-08-20 11:35:12
with lossy, bit depth is metadata, not prescriptive
2024-08-20 11:35:21
you can decode it to 16-bit just as well
2024-08-20 11:35:53
just pass `--bits_per_sample 16` on the djxl CLI
dogelition
Traneptora with lossy, bit depth is metadata, not prescriptive
2024-08-20 11:46:15
right, forgot about that. doesn't it suggest that they encoded it from an 8 bit source though?
Traneptora
dogelition right, forgot about that. doesn't it suggest that they encoded it from an 8 bit source though?
2024-08-20 11:54:44
I don't know
jonnyawsom3
dogelition ``` $ jxlinfo ffxvi_20240820_035122_001.jxl JPEG XL image, 2194x1234, lossy, 8-bit RGB intensity_target: 10000.000000 nits min_nits: 0.000000 relative_to_max_display: 0 linear_below: 0.000000 Color space: RGB, D65, Rec.2100 primaries, PQ transfer function, rendering intent: Relative ``` 8 bit hdr :/
2024-08-21 09:42:07
Interestingly, when opening it in Krita, it's set as 32bit float
Kampidh
Interestingly, when opening it in Krita, it's set as 32bit float
2024-08-21 02:45:22
it's a part of linearizing HDR images in krita, I believe it also did the same when opening an HDR AVIF. internally, jxl still get decoded with the same bit depth as the metadata defines.
Traneptora
Kampidh it's a part of linearizing HDR images in krita, I believe it also did the same when opening an HDR AVIF. internally, jxl still get decoded with the same bit depth as the metadata defines.
2024-08-21 03:03:40
nah, internally it's decoded to whatever you request from the library
2024-08-21 03:03:49
which is 32-bit float with libjxl, downscaled
2024-08-21 03:04:00
bit depth is just metadata
Kampidh
2024-08-21 03:04:15
I mean in krita, it's requested the same as the metadata
Traneptora
2024-08-21 03:04:31
oh, huh
Kampidh
2024-08-21 03:05:23
which is indeed got me thinking if it's a good idea to request it as f32 instead hmm~
Traneptora
2024-08-21 03:05:52
if the intention is to conert to float32 to linearize then I don't see why it wouldn't just request float32 in the first place from libjxl
Kampidh
2024-08-21 03:07:37
I'll gonna take a look on it~
Quackdoc
Kampidh it's a part of linearizing HDR images in krita, I believe it also did the same when opening an HDR AVIF. internally, jxl still get decoded with the same bit depth as the metadata defines.
2024-08-21 03:13:29
krita can finally work in linear now?
2024-08-21 03:13:31
[av1_woag](https://cdn.discordapp.com/emojis/852007419474608208.webp?size=48&quality=lossless&name=av1_woag)
Kampidh
2024-08-21 03:15:17
it has been there for a while, yes https://docs.krita.org/en/general_concepts/colors/scene_linear_painting.html
Quackdoc
2024-08-21 03:21:47
I mean for converting things comming into krita
2024-08-21 03:24:13
last time I tested krita it blended without doing linearization https://cdn.discordapp.com/attachments/719811866959806514/1216585057112821851/image.png?ex=66c755e0&is=66c60460&hm=b1f34e13405b298c278f21e941e9a35d7d2c4eea10a805cc20cf42458c48e7f9&
Kampidh
2024-08-21 03:30:43
oh for that you indeed have to work in linear color profiles indicating with `-g10` in their profile name
2024-08-21 03:31:29
no plan on changing that, afaik
gb82
2024-08-21 03:45:57
The new [Zen browser](https://www.zen-browser.app/) based on Firefox apparently supports JPEG-XL: https://github.com/zen-browser/desktop/commit/8a87e3a0afb124c1f31201c5177435b54ee88931
2024-08-21 03:46:07
Did they do this correctly?
username
gb82 Did they do this correctly?
2024-08-21 07:00:01
eh I would say nah not really, it's missing the unmerged patches (which to be far require a tiny bit of work to get working in newer versions of firefox like zen is using) and all I can see from this patch is support for JXL being built into the browser and not enabled by default
gb82
2024-08-21 07:00:45
Is it worth making an issue? I'm not aware of the unmerged patches, but I think Waterfox merged them, right?
username
2024-08-21 07:02:12
yeah Waterfox, Floorp, and r3dfox all have them merged which is why pages like https://jpegxl.info/test-page/ and https://google.github.io/attention-center/ fully work in them
lonjil
gb82 Is it worth making an issue? I'm not aware of the unmerged patches, but I think Waterfox merged them, right?
2024-08-21 08:14:31
I don't think Zen is worth caring about. It seems to being trying to do closed source stuff on top of Firefox
2024-08-21 09:31:47
update: the developer was just clueless about copyright licensing, someone talked with them and got the to fix it
jonnyawsom3
Kampidh which is indeed got me thinking if it's a good idea to request it as f32 instead hmm~
2024-08-22 01:22:08
Do you think it would be possible to change the libjxl request based on the current canvas settings? Request an 8-bit buffer when imported to an 8-bit canvas, ect Currently it's increasing the memory usage and import time using f32 when (supposedly) it was only 8-bit to begin with anyway
2024-08-22 01:23:25
Could do the same using jpegli and 8-bit or 16-bit canvas' too then
yoochan
lonjil I don't think Zen is worth caring about. It seems to being trying to do closed source stuff on top of Firefox
2024-08-22 07:47:32
the wikipedia page for floorp says : _Floorp[a] is a partially free and open-source (open-core)[2][3] web browser based on Firefox_. I don't even know what partially free means 😄
lonjil
2024-08-22 07:48:14
It means some parts are closed source
2024-08-22 07:48:45
The Mozilla Public License allows mixing with proprietary code
Kampidh
Do you think it would be possible to change the libjxl request based on the current canvas settings? Request an 8-bit buffer when imported to an 8-bit canvas, ect Currently it's increasing the memory usage and import time using f32 when (supposedly) it was only 8-bit to begin with anyway
2024-08-22 09:42:57
If it's for importing a layer, I'm sure it'll just converted back to the canvas setting (eg. 8-bit, should be the same for reference image, but I'm not quite sure yet, haven't dive that deep xD)~ And krita is already requesting the same bit depth as the metadata (8-bit, with that screenshot example), it's krita's own internal conversion that convert them to f32 buffers for HDR contents
2024-08-22 09:43:56
non-HDR images should be left intact, though~
jonnyawsom3
Kampidh If it's for importing a layer, I'm sure it'll just converted back to the canvas setting (eg. 8-bit, should be the same for reference image, but I'm not quite sure yet, haven't dive that deep xD)~ And krita is already requesting the same bit depth as the metadata (8-bit, with that screenshot example), it's krita's own internal conversion that convert them to f32 buffers for HDR contents
2024-08-22 09:50:22
When I made an 8-bit canvas, and imported the JXL as a new layer, it was added as 32f, judging by the memory use going to 130~ MB, instead of the 30~ MB after converting back to 8-bit Riight, hence the idea of requesting 32f to start with, since Krita does it anyway for HDR
Traneptora
2024-08-22 03:26:40
GIMP is similar iirc
2024-08-22 03:26:52
you can work in linear with an icc profile
2024-08-22 03:27:22
or in sRGB but if you work in sRGB only scaling with full image scale is done in linear light.
Posi832
2024-08-22 04:12:33
Cromite has temporarily disabled JXL (https://github.com/uazo/cromite/pull/1362/commits/767a4e1ede6880461daba3624110c6b6aa8e1ee1)
Quackdoc
2024-08-22 05:25:15
well that bites
KKT
username yeah Waterfox, Floorp, and r3dfox all have them merged which is why pages like https://jpegxl.info/test-page/ and https://google.github.io/attention-center/ fully work in them
2024-08-22 07:53:10
Why doesn't this work in Safari, and how hard would it be to make it work? (Progressive JPEG XL demo)
username
KKT Why doesn't this work in Safari, and how hard would it be to make it work? (Progressive JPEG XL demo)
2024-08-23 02:01:02
libjxl (which most software and all browsers use for handling JXL files) has the ability for handling/doing progressive decoding and it's what the JPEG XL support that was in Chromium does/uses and also what this unmerged patch that some Firefox forks have uses/does https://phabricator.services.mozilla.com/D122159 It seems like someone has already reported progressive decoding for JXL not working in WebKit/Safari https://bugs.webkit.org/show_bug.cgi?id=272350 (4 months ago). however they don't point out the [Progressive JPEG XL demo](https://google.github.io/attention-center/) which makes testing and validation easier and they also don't point out Firefox working with the unmerged patch that forks contain.
KKT
username libjxl (which most software and all browsers use for handling JXL files) has the ability for handling/doing progressive decoding and it's what the JPEG XL support that was in Chromium does/uses and also what this unmerged patch that some Firefox forks have uses/does https://phabricator.services.mozilla.com/D122159 It seems like someone has already reported progressive decoding for JXL not working in WebKit/Safari https://bugs.webkit.org/show_bug.cgi?id=272350 (4 months ago). however they don't point out the [Progressive JPEG XL demo](https://google.github.io/attention-center/) which makes testing and validation easier and they also don't point out Firefox working with the unmerged patch that forks contain.
2024-08-23 03:17:11
OK, yeah… I knew progressive decoding didn't work in Webkit, but I was hoping it was something in their code. Off to file another bug report
username
KKT OK, yeah… I knew progressive decoding didn't work in Webkit, but I was hoping it was something in their code. Off to file another bug report
2024-08-23 03:38:09
wait how did you interpret my message? I was trying to say it seems like a WebKit/Safari problem and that they/it should use libjxl better. and where are you filing a bug report? because I linked to one that was filed for WebKit
CrushedAsian255
username wait how did you interpret my message? I was trying to say it seems like a WebKit/Safari problem and that they/it should use libjxl better. and where are you filing a bug report? because I linked to one that was filed for WebKit
2024-08-23 03:39:16
does webkit use libjxl or their own implementation?
username
CrushedAsian255 does webkit use libjxl or their own implementation?
2024-08-23 03:41:22
libjxl however depending on platform Safari might call libjxl directly or call for support from the OS which also uses libjxl. or well at least this is what I assume because I don't know what else would cause the weird differences between platforms like animations not working.
2024-08-23 03:42:40
however in all cases the core image decoding is done by libjxl because I'm pretty sure Apple didn't develop their own implementation
CrushedAsian255
2024-08-23 03:45:09
its odd that it can't process animations then, as Core Image itself is able to handle them
2024-08-23 03:45:11
(eg. GIF)
2024-08-23 03:57:24
also i find it funny that the Chromium JXL bug implies that JXL is "obsolete" where it hasn't even had the oppertunity to properly exist
KKT
username wait how did you interpret my message? I was trying to say it seems like a WebKit/Safari problem and that they/it should use libjxl better. and where are you filing a bug report? because I linked to one that was filed for WebKit
2024-08-23 04:06:35
When trying to do some of the work for the new website, I asked <@794205442175402004> about it and I thought he said he figured they'd rolled their own since there were so many things that didn't work that jxl handled. I filed a bug report for Safari right in the Feedback app on MacOS.
HCrikki
CrushedAsian255 does webkit use libjxl or their own implementation?
2024-08-23 04:09:29
in the includes theres mentions of libjxl (0.8 last i checked but it should be 0.10 now)
2024-08-23 04:13:03
decoding shouldnt require an updated libjxl. files generated using 0.10 should normally decode fine even on 0.7 since the bitstream and spec is stable - can anyone confirm so or exceptions ?
CrushedAsian255
2024-08-23 04:13:38
the bitstream is frozen so excluding bugs
_wb_
KKT When trying to do some of the work for the new website, I asked <@794205442175402004> about it and I thought he said he figured they'd rolled their own since there were so many things that didn't work that jxl handled. I filed a bug report for Safari right in the Feedback app on MacOS.
2024-08-23 04:42:47
No, I don't think Apple made their own jxl decoder. I think they integrated jxl support in Safari in the simple way (passing a full bitstream to CoreMedia and getting back pixels) rather than the somewhat more complicated way that is needed for progressive decode.
DZgas Ж
2024-08-23 07:27:49
iphone 12 mini open jxl art in telegram
username
2024-08-23 07:59:15
relevant: https://github.com/uazo/cromite/issues/1365
Moritz Firsching
2024-08-23 12:53:07
likely. Is cromite using this patch or do they maintain their own?
2024-08-23 01:33:00
no, I think their patch is newer
HCrikki
2024-08-24 06:09:57
seems "Special K" is adding jxl support (for hdr screenshoting?)
CrushedAsian255
2024-08-24 06:10:58
the more things that support JXL, the better
HCrikki
2024-08-24 06:11:26
software is a reshade-style improver for pc games. notably can upgrade sdr visuals to hdr. seems it improves ff16's jxl screenshot support on an aside
jonnyawsom3
2024-08-24 06:11:37
Wait WHAT ```* Default quality level is 99%, this is primarily a lossy format. * JXL lossless compression ratio is poor, but not as poor as PNG. * AVIF or PNG are better choices for sharing lossless reference images.```
2024-08-24 06:11:56
https://github.com/SpecialKO/SpecialK/commit/967eebc156423bad619daece79402ecaf4dce5f2
HCrikki
2024-08-24 06:12:31
people arent familiar with the format, adoptions and integrations need handholding. they dont even know fast lossless exists
jonnyawsom3
2024-08-24 06:13:35
Even if you're not familiar with it, how do you end up with that conclusion?
CrushedAsian255
2024-08-24 06:14:00
> lossless compression ratio is poor Did they even do testing?
HCrikki
2024-08-24 06:14:46
result looks expected with d=0.1 / q99
CrushedAsian255
HCrikki result looks expected with d=0.1 / q99
2024-08-24 06:15:30
why not just use -d 0 -e 4 or something?
2024-08-24 06:15:33
why -d 0.1 ? that just sounds silly
jonnyawsom3
2024-08-24 06:16:13
Because they think the lossless is awful
CrushedAsian255
Because they think the lossless is awful
2024-08-24 06:16:56
what would make them think that? speed?
HCrikki
2024-08-24 06:17:56
id suppose they had effort 7 (default) or higher and made em think it playing with distance sounded itd give better tradeoff
2024-08-24 06:19:09
either way i suppose they only need to be made aware of fast lossless and shown it works super well
CrushedAsian255
2024-08-24 06:20:23
is fast lossless `d0e3`
jonnyawsom3
2024-08-24 06:20:38
The only thing they said was the compression ratio is poor, so finding out what they were trying to do and showing them the actual results would probably do
CrushedAsian255
2024-08-24 06:21:32
they probably were doing `-d 0 -e 1` and expecting a 3 MB png to go down to 20 kB
2024-08-24 06:21:33
or something
HCrikki
CrushedAsian255 is fast lossless `d0e3`
2024-08-24 06:25:07
its effort 1 i think. fast lossless is no longer separate but its optimizations got rolled into e1
jonnyawsom3
2024-08-24 06:25:18
I'm just skimming the code at the moment, but having it be a general screenshot option instead of only HDR would be nice too
username
2024-08-24 06:27:48
I joined their Discord server recently because I am able to actually join Discord servers again and I had been meaning to join for a long time and some of the stuff they are saying in there is just baffling
CrushedAsian255
username I joined their Discord server recently because I am able to actually join Discord servers again and I had been meaning to join for a long time and some of the stuff they are saying in there is just baffling
2024-08-24 06:28:49
did you reach the 100 server limit?
2024-08-24 06:28:58
or 200 if you have nitro*
username
CrushedAsian255 did you reach the 100 server limit?
2024-08-24 06:29:57
yes I have been at it for a while and decided to give in and allow a friend to gift me temporary nitro because I got tired of leaving servers to make space
2024-08-24 06:30:26
so uh now I'm pretty much only allowed to join servers if I have nitro now
CrushedAsian255
2024-08-24 06:30:30
oop
2024-08-24 06:30:41
maybe make a second discord account
username
2024-08-24 06:31:13
If my brain worked differently then I would probably do that
jonnyawsom3
username I joined their Discord server recently because I am able to actually join Discord servers again and I had been meaning to join for a long time and some of the stuff they are saying in there is just baffling
2024-08-24 06:32:22
You gonna brave the storm and try to show the lossless is actually pretty good?
username
2024-08-24 06:34:48
maybe although I've only been in there for less then 2 days and anxiety might get the best of me
HCrikki
2024-08-24 06:35:37
try current build first maybe. going aggro on early adopters probably not good
username
2024-08-24 06:38:44
I was thinking of posting screenshots of some of the stuff they are saying but something tells me that falls a bit too close to talking behind someone's back so idk if that would really be a good idea
2024-08-24 06:39:24
I will post this though since it indicates more JPEG XL changes coming soon
username I will post this though since it indicates more JPEG XL changes coming soon
2024-08-24 06:40:11
more full context:
CrushedAsian255
2024-08-24 07:13:51
ummmm
Meow
2024-08-24 11:21:36
If bigger is better, lossless AVIF is definitely better
CrushedAsian255
Meow If bigger is better, lossless AVIF is definitely better
2024-08-24 11:22:31
if bigger is better, then all hail PPM
yoochan
2024-08-24 11:31:13
It is not the spec which needs to be distributed but a full integration guideline to teach them exactly what libjxl is doing and how
CrushedAsian255
2024-08-24 11:31:47
also probably things like best practices and common pitfalls
Orum
2024-08-24 11:43:49
can you even do RGB in AVIF?
CrushedAsian255
Orum can you even do RGB in AVIF?
2024-08-24 11:44:07
it supports lossless so I would hope so
Orum
2024-08-24 11:44:18
it could be lossless YCbCr though...
Quackdoc
Orum can you even do RGB in AVIF?
2024-08-24 11:44:42
yes, it aint great tho as expected
CrushedAsian255
Orum it could be lossless YCbCr though...
2024-08-24 11:44:55
is YCbCr reversible?
Orum
Quackdoc yes, it aint great tho as expected
2024-08-24 11:45:03
how?
CrushedAsian255 is YCbCr reversible?
2024-08-24 11:45:15
with enough depth, anything is 😆
CrushedAsian255
Orum with enough depth, anything is 😆
2024-08-24 11:45:35
ok, touche
Quackdoc
2024-08-24 11:45:42
avifenc with aomenc
username
2024-08-24 11:45:48
as far as I know most AVIF encoders don't even support encoding RGB lossless or make it complex to do
CrushedAsian255
2024-08-24 11:45:48
but is 8 bit RGB and 8 bit YCbCr reversible?
2024-08-24 11:46:21
why don't we just use an actual image format for images instead of a video format in a trench coat?
2024-08-24 11:46:29
oh yeah, <:JXL:805850130203934781>
Orum
Quackdoc avifenc with aomenc
2024-08-24 11:46:33
How with either aomenc or avifenc? Neither seem to support RGB...
Quackdoc
2024-08-24 11:48:33
dunno how to with avifenc anymore. I guess you could just use ffmpeg, it only supports gbrp
HCrikki
Orum can you even do RGB in AVIF?
2024-08-24 12:05:49
afaik yes but involves some colorspace conversion one couldnt call lossless. i think only libaom can, everything else is yuv-only (curse of video codecs)
Orum
2024-08-24 12:06:09
yeah, not really an option then
dogelition
2024-08-24 12:11:57
you can do lossless RGB with no conversion on avif, but it compresses terribly because there's no channel decorrelation
2024-08-24 12:12:26
<https://github.com/AOMediaCodec/av1-avif/issues/129> some relevant discussion here
Kampidh
2024-08-24 12:22:01
Speaking of reshade, recently I give it a spin to give a jxl screenshot support~ https://github.com/kampidh/reshade/tree/jpegxl-support
Orum
2024-08-24 12:23:06
why would I need screenshot support in reshade?
username
Kampidh Speaking of reshade, recently I give it a spin to give a jxl screenshot support~ https://github.com/kampidh/reshade/tree/jpegxl-support
2024-08-24 12:23:28
if possible please see if you can add a option to save the depth channel into the JXL 🙏
jonnyawsom3
2024-08-24 12:23:38
Ooh, good idea
Orum
2024-08-24 12:23:46
still, I suppose it's nice that JXL is supported, since it has support for screenshots 🤷‍♂️
Kampidh
username if possible please see if you can add a option to save the depth channel into the JXL 🙏
2024-08-24 12:27:13
Oooh this should be interesting too~
Quackdoc
2024-08-24 12:27:51
hehehehe I wonder what effects image compression would have when done with a depth buffer, never seen it before, but I bet it would be pretty funky
CrushedAsian255
2024-08-24 12:28:13
are the extra channels stored alongside the main image?
2024-08-24 12:28:22
Or are they stored completely separately?
2024-08-24 12:28:40
I.e. can the depth buffer use prediction from the previous channels?
Orum
2024-08-24 12:29:15
saving the various buffers would be useful, but honestly at that point I'd probably be using renderdoc
username
2024-08-24 12:31:32
a big part of ReShade is depth buffer detection/handling and JXL natively has a spot dedicated for a depth channel so it kinda seems like a no brainer
Orum
2024-08-24 12:31:47
but why stop at depth only then?
Tirr
CrushedAsian255 are the extra channels stored alongside the main image?
2024-08-24 12:32:13
for Modular, yes. for VarDCT, no.
CrushedAsian255
Tirr for Modular, yes. for VarDCT, no.
2024-08-24 12:34:42
Lossy modular?
Kampidh
2024-08-24 12:37:55
Maybe it's feasible to save depth in a different layer instead of channels
username
2024-08-24 12:41:31
why do it like that though? it would mean any application looking for a depth channel wouldn't see/understand it
CrushedAsian255
2024-08-24 12:42:48
Yeah, the depth channel is a channel not a layer
Kampidh
username why do it like that though? it would mean any application looking for a depth channel wouldn't see/understand it
2024-08-24 12:49:59
Well that's true though~ anyway is there any app that already check for jxl depth channels to test it?
Tirr
CrushedAsian255 Lossy modular?
2024-08-24 12:50:30
lossy Modular is also Modular, so extra channels are encoded together with color channels
Oleksii Matiash
Kampidh Maybe it's feasible to save depth in a different layer instead of channels
2024-08-24 12:59:20
Just curious - different layer can be vardct too? Channels 3+ can't, afaik, but maybe layer can?
CrushedAsian255
Tirr lossy Modular is also Modular, so extra channels are encoded together with color channels
2024-08-24 12:59:34
Still very curious on how well lossy Modular works?
2024-08-24 12:59:47
Is it better than VarDCT for non photographics?
2024-08-24 01:00:00
Maybe there is some untapped potential
jonnyawsom3
CrushedAsian255 Still very curious on how well lossy Modular works?
2024-08-24 01:00:08
Best at extremely low distances, non-photo content and then there's Delta Palette https://fixupx.com/jyzg/status/1329067794995011585
Kampidh
Oleksii Matiash Just curious - different layer can be vardct too? Channels 3+ can't, afaik, but maybe layer can?
2024-08-24 01:00:11
Iirc, yes different layers can vardct
Oleksii Matiash
Kampidh Iirc, yes different layers can vardct
2024-08-24 01:00:30
Thank you
username
Kampidh Well that's true though~ anyway is there any app that already check for jxl depth channels to test it?
2024-08-24 01:01:14
sadly I don't know of any applications/tools that check for the dedicated depth channel (unless you count djxl's `--output_extra_channels` option and jxlinfo from libjxl) which is probably partially because there also aren't any tools that encode depth channels into JXLs yet either, though maybe having something like ReShade encoding in depth channels *could* encourage other programs in the future to understand depth channels for JXL.
CrushedAsian255
Best at extremely low distances, non-photo content and then there's Delta Palette https://fixupx.com/jyzg/status/1329067794995011585
2024-08-24 01:02:30
So is VarDCT next gen JPEG and Modular next gen PNG and then JXL is when you add both together and they work together?
jonnyawsom3
2024-08-24 01:02:44
Pretty much
2024-08-24 01:03:36
The jpeg side is good at photos, the png side is good at everything else, and lossless photos
CrushedAsian255
2024-08-24 01:04:19
And the PNG side is also used to add entropy coding with some of the parts of the JPEG side?
2024-08-24 01:04:29
Like the DC coeffs?
Kampidh
username sadly I don't know of any applications/tools that check for the dedicated depth channel (unless you count djxl's `--output_extra_channels` option and jxlinfo from libjxl) which is probably partially because there also aren't any tools that encode depth channels into JXLs yet either, though maybe having something like ReShade encoding in depth channels *could* encourage other programs in the future to understand depth channels for JXL.
2024-08-24 01:07:34
Maybe an option then, I'll try to take a look~
CrushedAsian255
Pretty much
2024-08-24 01:09:32
so lossy modular is like near-lossless webp?
jonnyawsom3
CrushedAsian255 so lossy modular is like near-lossless webp?
2024-08-24 01:11:16
Or there's delta pallete, which I linked a small thread for
CrushedAsian255
2024-08-24 01:11:29
delta pallete?
jonnyawsom3
2024-08-24 01:12:25
Stores a limited amount of colors, and then mixes them to try and reach the same number of colors as the original file
username
Kampidh Maybe an option then, I'll try to take a look~
2024-08-24 01:12:53
oh also do you have the ability to test games with native 10-bit HDR? because ReShade supports injection into HDR games and it seems like some users have been requesting the ability to take HDR screenshots as well https://reshade.me/forum/suggestions/9582-hdr-support-for-screenshot-capture-feature-in-reshade although this seems like it could be a bit more complex to implement
CrushedAsian255
Stores a limited amount of colors, and then mixes them to try and reach the same number of colors as the original file
2024-08-24 01:13:20
so pallete but then take a rolling average?
jonnyawsom3
2024-08-24 01:14:16
<@532010383041363969> has the details, since as far as I'm aware this specific way of encoding was all his idea
CrushedAsian255
2024-08-24 01:17:02
i feel bad for him for people barating him about WebP images
2024-08-24 01:18:19
i don't particularly like WebP (mainly against the idea of video codecs as image codecs in general, if anything prefer lossless WebP over lossy WebP) but it's not his fault that companies suck at adopting formats
2024-08-24 01:19:35
reading the spec, lossless WebP seems like a decent upgrade to PNG
Orum
2024-08-24 01:19:46
it is, but it's more limited
2024-08-24 01:20:14
main annoyance with webp is the encoder uses at most 2 threads 😮‍💨
CrushedAsian255
Orum main annoyance with webp is the encoder uses at most 2 threads 😮‍💨
2024-08-24 01:20:52
you can't pull a PNG and encode multiple slices and concat?
Orum
2024-08-24 01:21:34
🤷‍♂️ not sure, but even if you can, it likely wouldn't be worth it
CrushedAsian255
Orum 🤷‍♂️ not sure, but even if you can, it likely wouldn't be worth it
2024-08-24 01:24:08
can `cjxl` do multhreaded modular?
Orum
2024-08-24 01:24:19
very much so
Kampidh
username oh also do you have the ability to test games with native 10-bit HDR? because ReShade supports injection into HDR games and it seems like some users have been requesting the ability to take HDR screenshots as well https://reshade.me/forum/suggestions/9582-hdr-support-for-screenshot-capture-feature-in-reshade although this seems like it could be a bit more complex to implement
2024-08-24 01:24:59
Haven't test it yet
CrushedAsian255
Orum very much so
2024-08-24 01:25:45
i guess not when using `-e 10`
2024-08-24 01:25:54
that's why it seemed to be broken for me
Orum
2024-08-24 01:26:08
ignore the cjxl effort 1 value, as it's often too fast to even be recording a useful execution time
CrushedAsian255
2024-08-24 01:26:08
just tested, `-e 9` uses all 14 cpu cores
Tirr
2024-08-24 01:26:44
e1 encode is faster than e1 decode
CrushedAsian255
2024-08-24 01:26:50
lol
Orum
CrushedAsian255 i guess not when using `-e 10`
2024-08-24 01:27:21
it should with e10 too 🤷‍♂️
CrushedAsian255
Orum it should with e10 too 🤷‍♂️
2024-08-24 01:27:40
maybe it's an ARM thing
Orum
2024-08-24 01:28:12
are you using `--streaming_input` and `--streaming_output`?
CrushedAsian255
Orum are you using `--streaming_input` and `--streaming_output`?
2024-08-24 01:28:50
are those not default?
Orum
2024-08-24 01:28:57
not to my knowledge
CrushedAsian255
2024-08-24 01:29:29
im using PNG input so `--streaming_input` doesn't work and `--streaming_output` doesn't help
Orum
2024-08-24 01:29:58
😔 hrm, try with ppm then; other than that I'm not sure why it wouldn't
CrushedAsian255
2024-08-24 01:30:47
this is with PNG
Orum
2024-08-24 01:31:41
that just has a blank value for cpu%?
CrushedAsian255
Orum that just has a blank value for cpu%?
2024-08-24 01:32:09
oops
2024-08-24 01:34:07
It said 1295.3
2024-08-24 01:34:13
I suck at screenshotting
2024-08-24 01:34:59
Enabling streaming input with ppm fixed cjxl not multithreading
2024-08-24 01:35:06
It happily used all cores
2024-08-24 01:35:21
Odd that it only multithreads with streaming on
Orum
2024-08-24 01:35:52
yeah, it's annoying that you have to do that, but still much better than not supporting MT at all <:CatSmile:805382488293244929>
CrushedAsian255
2024-08-24 01:36:16
Why can’t it just convert to ppm internally? I guess RAM usage?
Orum
2024-08-24 01:36:36
you'll have to ask a dev here...
CrushedAsian255
2024-08-24 01:36:55
Also ppm doesn’t support storing any metadata so I lose all my metadata when doing that
Orum
2024-08-24 01:37:10
well there are ways to copy metadata over
CrushedAsian255
2024-08-24 01:37:25
How?
_wb_
2024-08-24 01:38:24
We should just make streaming input work for PNG, at least for non-Adam7 ones, so you can do streaming decode.
Quackdoc
2024-08-24 01:38:38
streaming input for png would likely have fixed the one image that was sent a few days ago
Orum
2024-08-24 01:38:58
I think exiv2/exiftool will let you extract metadata from one image and put it into another, IIRC
CrushedAsian255
2024-08-24 01:38:58
Is streaming input default for image formats supporting it?
2024-08-24 01:39:21
If not, is there a reason why not? Decreasing efficiency?
_wb_
2024-08-24 01:40:12
Adding exif/xmp metadata to jxl should be doable with tools like exiftool. For the color profile, you have to encode the ppm with -x color_space=icc_path:bla.icc, or something like that (going by memory here, probably flawed)
CrushedAsian255
Quackdoc streaming input for png would likely have fixed the one image that was sent a few days ago
2024-08-24 01:42:05
Oh yeah that 800MB one that nothing wanted to handle
Quackdoc
2024-08-24 01:46:41
yeah, it was painful finding something to decode and convert it
jonnyawsom3
CrushedAsian255 i guess not when using `-e 10`
2024-08-24 01:48:26
libjxl 0.10 added chunked encoding and streamed PPM input, that meant e 10 was added to re-enable the non-chunked features like patches, dots, ect Using the streaming input flag means e 10 essentially reverts to e 9 as far as I'm aware, while also disabling some other encoding tools
Oleksii Matiash
CrushedAsian255 Oh yeah that 800MB one that nothing wanted to handle
2024-08-24 01:48:44
It is easily viewable, but encoding it to someting else.. ehm
CrushedAsian255
libjxl 0.10 added chunked encoding and streamed PPM input, that meant e 10 was added to re-enable the non-chunked features like patches, dots, ect Using the streaming input flag means e 10 essentially reverts to e 9 as far as I'm aware, while also disabling some other encoding tools
2024-08-24 01:49:46
So e10 is 0.9 e9 and e9 is 0.9 e9 without patches?
2024-08-24 01:50:01
So basically e10 + streaming = e9?
jonnyawsom3
2024-08-24 01:50:28
I think so... Roughly...
CrushedAsian255
2024-08-24 01:57:34
I don’t think this has been updated for 0.10
2024-08-24 01:57:35
https://github.com/libjxl/libjxl/blob/main/doc/encode_effort.md
Orum
CrushedAsian255 So basically e10 + streaming = e9?
2024-08-24 02:03:59
you mean = e9 *without* streaming?
CrushedAsian255
Orum you mean = e9 *without* streaming?
2024-08-24 02:17:33
Yeah
A homosapien
CrushedAsian255 I don’t think this has been updated for 0.10
2024-08-24 06:33:21
I created an issue several months ago and no progress has been made 😔 https://github.com/libjxl/libjxl/issues/3517
jonnyawsom3
2024-08-24 06:41:51
It's been mentioned a few times recently. I'd try but I don't know enough about the 0.10 changes or the underlying heurestics to trust myself
veluca
It's been mentioned a few times recently. I'd try but I don't know enough about the 0.10 changes or the underlying heurestics to trust myself
2024-08-24 07:43:39
you can try and if you write something wrong we'll say it during review
2024-08-24 07:43:41
😛
gb82
2024-08-26 05:20:45
https://github.com/zen-browser/desktop/issues/726
2024-08-26 05:20:59
opened this issue for Zen browser - let's hope it is addressed, as I think the browser is very cool
Foxtrot
2024-08-26 02:37:28
Just reminder that you can vote for JPEG XL idea in Windows Feedback App. And I dont know any other way Microsoft recieves feature requests. Link: https://aka.ms/AAk3a38
TheBigBadBoy - 𝙸𝚛
2024-08-26 06:18:26
wait, I can't access it from my browser ?
HCrikki
2024-08-26 06:26:31
app only, log from a windows vm
Foxtrot
2024-08-26 06:26:46
You need feedback app on windows and windows account I think
2024-08-26 06:27:08
Yeah, it's pain in the ass but it is what it is.
jonnyawsom3
2024-08-26 06:40:36
And to be on the Insider branch
RaveSteel
2024-08-26 06:55:59
https://github.com/Beep6581/RawTherapee/releases/tag/5.11 Rawtherapee 5.11 released two days ago, now supporting opening jxl files. Exporting jxl is currently in progress
Foxtrot
And to be on the Insider branch
2024-08-26 07:05:22
I am not insider and even then I could post feedback.
jonnyawsom3
2024-08-26 07:16:46
Huh, for me it said I don't have access
RaveSteel https://github.com/Beep6581/RawTherapee/releases/tag/5.11 Rawtherapee 5.11 released two days ago, now supporting opening jxl files. Exporting jxl is currently in progress
2024-08-26 07:28:03
Seems they've been having some issues with non-sRGB color spaces in this PR https://github.com/Beep6581/RawTherapee/pull/7097
RaveSteel
2024-08-26 07:31:56
It is on the roadmap for the 6.0 release, so there is a few weeks or even months to get it right
Quackdoc
2024-08-26 07:42:17
> Building with libjxl 0.7.x why are they building 0.7.x [av1_monkastop](https://cdn.discordapp.com/emojis/720662879367332001.webp?size=48&quality=lossless&name=av1_monkastop)
2024-08-26 07:42:31
is ubuntu that far behind?
RaveSteel
2024-08-26 07:43:27
Even Fedora 40 only has libjxl 0.8.3 in the repos <:PepeHands:808829977608323112>
Orum
2024-08-26 07:45:37
the only thing more out of date than Ubuntu is Debian
RaveSteel
2024-08-26 07:46:53
Debian is also on libjxl 0.7.x, same as Ubuntu
HCrikki
2024-08-26 07:47:29
0.10 in 24.10, supposedly some symlinking to a newer libjxl build in the 24.04 lts
Orum
2024-08-26 07:47:40
I mean, in general, not just libjxl
RaveSteel
2024-08-26 07:47:51
true
HCrikki
2024-08-26 07:48:33
to be fair, debian kept asking for help packaging. fresher builds there trickles to a massive number of derivative distros
jonnyawsom3
Quackdoc > Building with libjxl 0.7.x why are they building 0.7.x [av1_monkastop](https://cdn.discordapp.com/emojis/720662879367332001.webp?size=48&quality=lossless&name=av1_monkastop)
2024-08-26 07:52:05
The PR I linked bumps it up all the way to 0.10.3
Demiurge
HCrikki to be fair, debian kept asking for help packaging. fresher builds there trickles to a massive number of derivative distros
2024-08-27 12:00:58
Maybe if creating a debian package and reading their documentation didn't make the average person want to throw themselves out of a window, they would have more help with packaging.
Oleksii Matiash
2024-08-28 11:29:16
Just curious - are there any news about introducing jpeg xl to pdf?
TheBigBadBoy - 𝙸𝚛
2024-08-28 07:29:23
I would love that too
Orum
2024-08-28 08:38:55
honestly I'd love to just get rid of PDF altogether
_wb_
2024-08-28 08:45:34
And replace it with what?
Rega
Foxtrot Just reminder that you can vote for JPEG XL idea in Windows Feedback App. And I dont know any other way Microsoft recieves feature requests. Link: https://aka.ms/AAk3a38
2024-08-28 08:47:46
"Your account doesn't have access to this feedback"
2024-08-28 08:47:52
What
Foxtrot
2024-08-28 08:55:12
ok, this is weird... now I cant find my own feedback post in list of posts I created... and when I search for jpeg xl it doesnt shot this feedback
2024-08-28 08:55:29
but i can still access it with link
Orum
_wb_ And replace it with what?
2024-08-28 08:56:10
html <:CatSmile:805382488293244929>
2024-08-28 08:56:56
of course we need browsers to support JXL though 😮‍💨
Foxtrot
2024-08-28 08:59:42
If you cant access the previous windows feedback post I found another one someone created. Maybe this will work. https://aka.ms/AArzb7k
_wb_
Orum html <:CatSmile:805382488293244929>
2024-08-28 09:05:07
There is a fundamental difference between PDF and HTML though. PDF is all about doing page layout in an interoperable way. HTML is about representing information in a way that can be adapted to various media, mostly screens (with wildly varying viewport sizes). One is about having a fixed layout, the other is about having a flexible, reflowing layout.
Orum
2024-08-28 09:05:48
sure, but who uses print media these days?
Foxtrot
2024-08-28 09:07:49
When I search for car manual online I prefer pdf instead of html pages even if I don't print it
Geniusak
_wb_ And replace it with what?
2024-08-28 09:15:49
epub for text documents. jxl for graphical documents. docx or odt for documents that need editing. Not sure about forms
2024-08-28 09:16:39
the only niche pdf is good for is combined graphics/text that must be displayed in a predefined manner and is not supposed to be edited in any way
2024-08-28 09:16:49
unfortunately, it got used for everything
Orum
2024-08-28 09:22:40
including delivering malware
RaveSteel
2024-08-28 09:37:09
Document formats such as odt or docx don't appear correctly on systems where fonts used in those documents are not present. PDF embeds the fonts, so the document will look the same in all viewers, systems, devices. EPUB is a nice, variable format, but OOTB support is sparse.
2024-08-28 09:38:54
It may be possible to embed fonts in odt or docx, but it is not default behaviour
jonnyawsom3
Foxtrot If you cant access the previous windows feedback post I found another one someone created. Maybe this will work. https://aka.ms/AArzb7k
2024-08-28 10:06:55
That one still says no access, but just searching "JXL" gave me this <https://aka.ms/AArzizt>
Demiurge
Orum sure, but who uses print media these days?
2024-08-28 10:18:41
Everyone...?
2024-08-28 10:22:34
Print media is still vastly superior to screens... requires zero active power consumption, vastly superior dynamic range, lightweight and convenient... Everyone still uses it and it's not going anywhere.
2024-08-28 10:22:48
Less eyestrain too
TheBigBadBoy - 𝙸𝚛
2024-08-28 10:25:16
eink screen ftw
drkt
2024-08-28 10:26:52
isn't eink patented to hell and back
Orum
Demiurge Print media is still vastly superior to screens... requires zero active power consumption, vastly superior dynamic range, lightweight and convenient... Everyone still uses it and it's not going anywhere.
2024-08-28 10:27:00
DR depends on both lighting and the contrast in the media. Even on the whitest of white paper, with the best inks, and reading in direct sunlight, you'll still have less DR than even a half-decent display.
2024-08-28 10:28:21
it's quite an annoyance when printing, believe me 😩
2024-08-28 10:30:40
there are some special inks (or pigments, really) for printing on metal that can be better, but that's the exception and not the norm
Demiurge
Orum DR depends on both lighting and the contrast in the media. Even on the whitest of white paper, with the best inks, and reading in direct sunlight, you'll still have less DR than even a half-decent display.
2024-08-28 11:05:17
Then why do half decent displays look so much darker and harder to read in direct sunlight than a cheap piece of paper with cheap ink from a cheap office printer?
2024-08-28 11:06:12
If it actually was better, then it would be more legible, but it isn't, so it's not
Orum
2024-08-28 11:06:16
well you're comparing the most optimal setting for print vs the least optimal for a display
2024-08-28 11:06:29
if you're going to compare, at least do apples to apples
spider-mario
Demiurge Then why do half decent displays look so much darker and harder to read in direct sunlight than a cheap piece of paper with cheap ink from a cheap office printer?
2024-08-28 11:08:11
because in those specific conditions, its backlight has to compete with the sunlight, whereas the paper benefits from it
Demiurge
2024-08-28 11:09:02
The backlight can't compete with sunlight at all. That is the whole reason why paper has better dynamic range.
2024-08-28 11:10:55
A white sheet of paper in the sunlight is brighter against the black ink, than a digital display's maximum contrast. Unless you have a screen that is as bright as a white sheet in the sun.
2024-08-28 11:12:10
And if the screen really was as bright as a white sheet in the sun, you could take the screen outside and compare it
spider-mario
Demiurge The backlight can't compete with sunlight at all. That is the whole reason why paper has better dynamic range.
2024-08-28 11:15:16
in sunlight
2024-08-28 11:15:33
move indoors and many screens have a distinct advantage in DR
2024-08-28 11:15:46
or at night
2024-08-28 11:15:51
or on a cloudy day
Demiurge
2024-08-28 11:16:26
It seems incredibly obvious to me that, screens actually have really bad dynamic range, compared to... the dynamic range of real life.
spider-mario
2024-08-28 11:18:27
screens and paper+ink are both part of real life, so why would that be obvious?
2024-08-28 11:19:30
dynamic range is pretty much the ratio of maximum to minimum signals; most displays emit their own light so that already means that the higher bound of DR is probably going to be higher than paper’s in dim environments
2024-08-28 11:20:23
if the lower bound is closer to black than “black” ink is, as it can also be with many current displays in dim environments, there’s no contest DR-wise
Demiurge
2024-08-28 11:20:33
The dynamic range of paper is only limited by how bright your light source is, but the range of a screen is determined by how bright the backlight is compared to the ambient light, and the difference between the darkest and brightest region on the screen at the same time. There's a lot more limitations there
spider-mario
2024-08-28 11:20:52
no, it’s also limited by how black your ink actually gets
Demiurge
2024-08-28 11:22:04
Of course, but it scales with the brightness of the light source, whereas a screen backlight power is fixed at birth
spider-mario
2024-08-28 11:22:06
and the fact that the reflection is diffuse means that “how bright your light source is” might have to be _much_ brighter than it would have to be for a screen
jonnyawsom3
2024-08-28 11:22:11
Mayybe <#806898911091753051>, I can see this going on a while xP
Demiurge
2024-08-28 11:23:20
Your eyes will always tell you immediately what is easier to see
spider-mario
spider-mario and the fact that the reflection is diffuse means that “how bright your light source is” might have to be _much_ brighter than it would have to be for a screen
2024-08-28 11:23:40
(which will also reveal how not-black the ink is)
2024-08-28 11:27:19
hm, are we talking about different things? (me: simultaneous DR, vs. you: overall range across all environments)
Demiurge
2024-08-28 11:29:59
Well, a bright screen in the darkness will definitely do better than a sheet of paper.
2024-08-28 11:30:11
Unless you put that paper in sunlight.