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

coverage

Post links to articles, blog posts, reddit / hackernews / forum posts, media coverage about or related to JXL here!

CrushedAsian255
2024-09-18 12:43:39
is that just the transcript?
2024-09-18 12:43:53
wait, is JPEG XL already been shipped to the new phones?
2024-09-18 12:44:48
so i can go to the store and buy a phone with JXL and it's not a leak
2024-09-18 12:45:32
🎉 🎉 🎉
2024-09-18 12:46:11
do we know what codec they're using?
2024-09-18 12:46:15
probably just libjxl?
Oleksii Matiash
https://tinydng.com/
2024-09-18 12:47:16
I hate these 'online' converters. Only console apps is fine
CrushedAsian255
2024-09-18 12:47:30
more hyphens :/
2024-09-18 12:48:05
fair
2024-09-18 12:48:58
this seems like a good first step for mass adoption, it's already making waves in the raw format scene, time will tell if/how this propagates to the processed delivery format scene
2024-09-18 12:49:16
hope they eventually discard HEIC for JXL
2024-09-18 12:49:24
maybe they're just waiting for more installed base
2024-09-18 12:49:28
maybe iOS 19?
2024-09-18 12:51:10
only thing is, I could imagine people being like "oh my goodne ss another damn image format, i was finally getting used to heic"
Meow
2024-09-18 12:58:42
JXL compression inside DNG is a subtle beginning in contrast to HEIC
CrushedAsian255
2024-09-18 01:01:39
maybe JXL-in-HEIF? although that sounds like a terrible idea
Oleksii Matiash
CrushedAsian255 maybe JXL-in-HEIF? although that sounds like a terrible idea
2024-09-18 01:06:29
Well, it is terrible idea, but probably someone will write jxl-from-heic lossless extractor
CrushedAsian255
2024-09-18 01:06:56
JXLIF?
jonnyawsom3
2024-09-18 01:10:21
That just sounds like FLIF
CrushedAsian255
2024-09-18 01:10:49
JXL in TIFF? or is that just called DNG
jonnyawsom3
CrushedAsian255 do we know what codec they're using?
2024-09-18 01:11:48
libjxl is the only finished encoder, and hardware implementation is still at least a year away unless Apple randomly decided to make Silicon on an accelerated schedule and then not mention anything about it...
CrushedAsian255 JXL in TIFF? or is that just called DNG
2024-09-18 01:12:05
DNG is just TIFF with extra steps
CrushedAsian255
2024-09-18 01:41:43
I used an AI upscaler, I should now have a JPEG-XXL
2024-09-18 01:42:06
Well JPEG XS exists, and JPEG L could mean JPEG LS (lossless)
2024-09-18 01:42:24
Also JPEG M could be M-JPEG (motion jpeg)
2024-09-18 01:42:28
So technically not wrong
lonjil
2024-09-18 02:01:58
JPEG-LL and JPEG-LS are very common spellings
CrushedAsian255
2024-09-18 02:03:18
if it's lossless jpeg 1 i call it L-JPEG to distinguish it from JPEG-LS which is more akin to JPEG 2000, argh too many codecs
2024-09-18 02:03:35
although now I don't really use any of those because I can just use JPEG XL
_wb_
2024-09-18 02:21:19
JPEG -2000
CrushedAsian255
2024-09-18 02:23:28
JPEG d/dx sin(x)
KKT
2024-09-18 03:48:29
Asked some contacts to see if they could get the hyphens removed. Hyphens aside, it's definitely great coverage.
2024-09-18 03:52:26
Ugh. The response from PetaPixel
Quackdoc
2024-09-18 03:52:58
this server gonna wage the war against the hyphens
2024-09-18 03:55:06
this is actually a fairly solid move for apple, since they can push jxl into assured usage, without screwing over their customers sharing photos. ofc this falls apart when you realize HEIC literally has less support then JXL does, ~~but we can ignore that for apple's sake~~
2024-09-18 03:55:08
[av1_omegalul](https://cdn.discordapp.com/emojis/885026577618980904.webp?size=48&quality=lossless&name=av1_omegalul)
jonnyawsom3
2024-09-18 03:55:25
```To Tim@Apple.com Please remove the hyphen from your upcoming iPhone 16. I understand it's not been announced yet but this has been a big issue with our representation.```
Cacodemon345
2024-09-18 04:11:46
Inb4 somebody suggests the cursed idea of pushing DNG for the Web.
_wb_
2024-09-18 04:36:28
https://caniuse.com/?search=dng
Cacodemon345
2024-09-18 04:44:36
https://tenor.com/view/no-shit-sherlock-genius-sherlock-holmes-big-brain-gif-21242595
Meow
```To Tim@Apple.com Please remove the hyphen from your upcoming iPhone 16. I understand it's not been announced yet but this has been a big issue with our representation.```
2024-09-18 05:02:16
tcook@apple.com
KKT
2024-09-18 05:03:00
Looks like PetaPixel is going to update the article. 👍
_wb_
2024-09-18 05:44:44
Looks like they did
2024-09-18 05:45:00
https://petapixel.com/2024/09/18/why-apple-uses-jpeg-xl-in-the-iphone-16-and-what-it-means-for-your-photos/
TheBigBadBoy - 𝙸𝚛
2024-09-18 07:13:02
[⠀](https://cdn.discordapp.com/emojis/852007419474608208.webp?size=48&quality=lossless&name=av1_woag)
Demiurge
2024-09-19 01:01:08
Is the hyphen really a big deal?
CrushedAsian255
Demiurge Is the hyphen really a big deal?
2024-09-19 01:01:59
At this point is more like a meme
2024-09-19 01:02:37
It’s a text version of GIF vs GIF
username
2024-09-19 01:03:51
honestly I don't mind the hyphen/dash. and also it's not anything new as people did the same thing back in the day with JPEG 2000 and JPEG XR
monad
2024-09-19 01:04:03
no-it's-not-a-big-deal
2024-09-19 01:04:35
it's-more-funny-how-often-people-mention-it-here
CrushedAsian255
2024-09-19 01:52:09
`JpegXl` is how it is in my source code •_°
Quackdoc
2024-09-19 07:03:58
imma start saying jPEG-xl from now on
username
2024-09-19 07:06:26
jpEg_xl
CrushedAsian255
2024-09-19 07:07:07
JPEGxl
Foxtrot
2024-09-19 07:33:42
I just hope this doesn't make jxl seem like project with crazy fans that flip out just because someone writes hyphen.
CrushedAsian255
2024-09-19 07:34:28
The AVIF team seem like a group of people that flip out whenever anyone suggests a different format so yeah
Foxtrot
2024-09-19 07:36:26
Maybe devs, but in AV1 discord server image channel it's more jxl than avif which is funny
CrushedAsian255
2024-09-19 07:36:41
Yeah I meant the devs
2024-09-19 07:36:52
It’s funny seeing the av1 server suggest jpeg xl
Foxtrot
2024-09-19 07:36:57
Yeah
yoochan
Foxtrot Maybe devs, but in AV1 discord server image channel it's more jxl than avif which is funny
2024-09-19 08:06:26
do you have the link of the av1 discord ? When I search these terms on google, I get links about how well discord supports AV1
CrushedAsian255
2024-09-19 08:20:14
not sure if i am allowed to advertise it but it's on the r/av1 subreddit
2024-09-19 08:20:49
both AV1 for dummies and the main AV1 server
Quackdoc
Foxtrot Maybe devs, but in AV1 discord server image channel it's more jxl than avif which is funny
2024-09-19 10:11:10
it's just a matter of being sane, people joined the AV1 communities because they want good compression with reasonable restrictions and performance
2024-09-19 10:12:30
Av1 is a sane codec for video and long animations, and JXL is a sane codec stills and short animations
Meow
2024-09-19 07:43:15
camelCase
HCrikki
2024-09-20 12:37:44
seems interop is attracting negativity early. wouldnt be too hard asessing who blocks or shuns. those in favour can lift all doubt by just publicly demonstrate theyre aware of proposal, read/understood it well, researched and asked for details if any they needed to *properly evaluate it* - easily done on twitter or privately
2024-09-20 12:39:00
on an aside, i wonder if ladybird doesnt already qualify as a strong independant browser deserving of a seat there. maybe next year
lonjil
2024-09-20 12:39:22
there's literally no point to put something into interop that only one browser has
2024-09-20 12:39:45
if firefox gets jxl next year. there'd be a much better case for getting jxl into interop
HCrikki
2024-09-20 12:39:59
chromium and firefox do too. the code might have been deleted or limited to specific release channels but the implementations do exist. those browsers have lots of 'inert' code implementations locked behind build parameters or flags but theyre still considered done
2024-09-20 12:44:29
either way, without a way to confirm that proposals are seriously considered or even read (ie a simple 'has viewed this page'), i doubt this time will be any more transparent. insiders will backdeal while the webdev community theyre supposed to be interoping in service of will be locked away from even disambuiguing anything needing clarifications or extra info about
VcSaJen
2024-09-20 01:51:19
Interop is basically browsers announcing that they all agreed to implement a feature. As long as Chrome does not plan to implement it, proposing it for Interop is kinda useless.
_wb_
2024-09-20 05:33:27
https://news.ycombinator.com/item?id=41598170
Meow
2024-09-20 06:06:02
Did I say anything wrong? https://www.reddit.com/r/jpegxl/s/HXmpQK2RXO
2024-09-20 06:07:33
How the f shall we handle that OP's mother's 105 "gb" pictures if we don't know anything else?
2024-09-20 06:08:52
People are foolishly too generous in this subreddit
A homosapien
2024-09-20 06:35:27
Judging by the lack of a response, It seems like his question was already answered.
2024-09-20 06:37:14
In my opinion, the jxl subreddit is not a good place for questions, most people give bad/confusing responses. If you want good answers just join the discord.
CrushedAsian255
A homosapien In my opinion, the jxl subreddit is not a good place for questions, most people give bad/confusing responses. If you want good answers just join the discord.
2024-09-20 07:59:41
It’s also just a nice community if you’re interested in compression
A homosapien
2024-09-20 08:07:30
I suppose
Meow
2024-09-20 08:07:44
If the person is serious about the question, providing conditions like operating systems, desired compression rate of JXL should be necessary
2024-09-20 08:08:19
And why a mom would ask her children converting such huge amounts of pictures into JXL
spider-mario
2024-09-20 08:09:12
> In lossy mode I think there is no difference between AVIF, HEIC or JXL. AVIF is even a little bit ahead. :|
2024-09-20 08:09:16
(from that Hacker News thread)
2024-09-20 08:11:45
> If people are going to take credit for crunching something down from 10 MB to 8 MB, I wish they'd also take the blame for massively bloating something into a modern monstrosity out of sheer laziness or betting that profit margins will be higher if they waste user time, storage, and cpu for the sake of releasing the project faster.
2024-09-20 08:11:55
https://tenor.com/view/confused-nick-young-what-question-marks-idk-gif-14135308
CrushedAsian255
2024-09-20 08:13:14
> crunching something down from 10 MB to 8 MB > waste user storage
yoochan
2024-09-20 09:07:33
the less you know, the more you speak about ! old internet rule
Foxtrot
2024-09-20 09:54:57
https://github.com/web-platform-tests/interop/issues/700#issuecomment-2362136562 > Basically, if Chrome opposes JPEG XL then it won't be approved, period. Ohh, so its basically UN Security Council 😄
Cacodemon345
2024-09-20 10:14:12
The Interop team then needs a "veto override" mechanism as well, lol.
username
2024-09-20 10:22:58
the thing about WPT interop is it's just for making sure that web features that all browsers have all work properly between said browsers. last year a large amount if not most of the top submissions where rejected because they wheren't supported by all browsers
2024-09-20 10:24:53
the entire web as a platform is a giant mess that will never gear down. constant creation and adding of new features while not even bothering to add or finish older officially standardized ones
2024-09-20 10:26:38
I'm pretty sure there are still quite a few web standards/features from 10 or so years ago that are **still** not fully supported by some or all browsers
jonnyawsom3
A homosapien In my opinion, the jxl subreddit is not a good place for questions, most people give bad/confusing responses. If you want good answers just join the discord.
2024-09-20 11:00:37
That's what I said to someone asking about storing IR, R, G channels with a ROI mask. The reddit has some fans but most of them have no idea what they're talking about
yoochan
2024-09-20 11:04:25
but, contrary to this discord, reddit posts appears in google searches... perhaps it would be better to ensure that good answers are given too...
A homosapien
2024-09-20 11:11:46
I wish I had the energy and will to use reddit again. Reddit showing up in search results *is* a big deal.
2024-09-20 11:13:34
I distanced myself from reddit once they jacked up the prices for their API, killing off all third-party apps.
CrushedAsian255
2024-09-20 11:17:17
same
_wb_
2024-09-20 11:51:18
https://www.youtube.com/watch?v=QqTSnI0bfFk&t=673s
jonnyawsom3
2024-09-20 11:54:12
Oh god, my phone's HDR is horrible. I'm not sure I've actually seen a person on it before, only test videos
2024-09-20 11:56:19
The beach is just pure white and he looks like a cherry tomato xD
CrushedAsian255
The beach is just pure white and he looks like a cherry tomato xD
2024-09-20 12:03:26
what phone?
jonnyawsom3
2024-09-20 12:03:40
Huawei Mate 10 Pro
Meow If the person is serious about the question, providing conditions like operating systems, desired compression rate of JXL should be necessary
2024-09-20 12:06:55
Saying "JPEG to JXL" we can assume they mean transcoding, OS is generally Windows 9/10 times, especially on legacy devices
VcSaJen
A homosapien In my opinion, the jxl subreddit is not a good place for questions, most people give bad/confusing responses. If you want good answers just join the discord.
2024-09-20 12:17:04
Discord is a black box that's not indexed, not archived, not public and could disappear overnight. It's for chatting, that's it.
RaveSteel
2024-09-20 12:18:40
And yet it has replaced forums in 80% of cases
2024-09-20 12:18:44
Sad reality
lonjil
2024-09-20 12:19:17
it also replaced IRC
2024-09-20 12:19:26
which in 99% of cases is also not indexed
username
2024-09-20 12:19:35
I've even seen some projects lock off downloads to Discord
CrushedAsian255
VcSaJen Discord is a black box that's not indexed, not archived, not public and could disappear overnight. It's for chatting, that's it.
2024-09-20 12:20:07
> not archived Looks at my 54 gb discord download folder
2024-09-20 12:20:43
Also I think a conversation based system like discord is better for getting advice
2024-09-20 12:20:50
As you can have real time conversations
2024-09-20 12:20:57
Instead of waiting hours for a reply
2024-09-20 12:21:20
Maybe someone should make a read only mirror of the discord?
2024-09-20 12:21:26
So it can be indexed
2024-09-20 12:21:29
Split into file
2024-09-20 12:21:43
I could probably set it up, just don’t have the money to host it
VcSaJen
lonjil which in 99% of cases is also not indexed
2024-09-20 12:22:15
Not true. IRC web-archives were pretty mainstream.
A homosapien
CrushedAsian255 Maybe someone should make a read only mirror of the discord?
2024-09-20 12:22:48
Like an interactive chat bot that hooks into the server?
CrushedAsian255
A homosapien Like an interactive chat bot that hooks into the server?
2024-09-20 12:25:32
More just using that discord scraper tool which outputs static HTML
2024-09-20 12:25:43
Then hosting that on a webserver and occasionally updating it
A homosapien Like an interactive chat bot that hooks into the server?
2024-09-20 12:26:07
That could work but having an open system for people to post sounds like a recipe for spam
A homosapien
2024-09-20 12:27:08
I see
2024-09-20 12:28:32
In a perfect world public discord servers would be search indexed so we wouldn't have to resort to such measures.
lonjil
VcSaJen Not true. IRC web-archives were pretty mainstream.
2024-09-20 12:39:23
*some* irc channels had logging. But it was extremely common to forbid logging. If you published logs you'd be banned from the channel. It's a pretty common opinion among IRC enjoyers, that they don't want what they write to be saved.
Quackdoc
2024-09-20 12:45:26
I miss the IRC matrix bridge, not that matrix is any good, but it was nice for actually not dropping a conversation
2024-09-20 12:46:02
- ask for help in morning - wait all day with irc channel open - turn of PC for the night - someone replies - wake up in the morning and ask for help again
2024-09-20 12:46:06
many such cases
jonnyawsom3
2024-09-20 01:22:27
I've already had to reply and correct half a dozen answers like that, all getting upvoted because no one actually knows what they're talking about 😔
CrushedAsian255
2024-09-20 01:25:53
Argh, don’t use image magic it doesn’t support lossless transcode 😦
jonnyawsom3
2024-09-20 01:27:49
I tried https://www.reddit.com/r/photography/comments/1f48b2g/comment/lo1qkzd/
2024-09-20 01:28:03
10/10 embed Discord
CrushedAsian255
2024-09-20 01:29:16
Just logged into reddit after 3 months just to upvote it
Meow
I tried https://www.reddit.com/r/photography/comments/1f48b2g/comment/lo1qkzd/
2024-09-20 02:50:06
Mom is gone
2024-09-20 02:50:30
Oh it is now mentioned below
spider-mario
2024-09-20 02:58:18
https://www.journaldugeek.com/2024/09/20/quest-ce-que-le-jpeg-xl-lance-par-apple-sur-liphone-16/
_wb_
2024-09-20 03:18:35
huh, I didn't realize you can say "Qu'est ce que le JPEG XL", I always say "qu'est ce que **c'est**"
2024-09-20 03:19:59
(in any case it is funny how many words French uses for "what is .,..")
Meow
2024-09-20 03:22:41
So JPEG XL is a masculine term
2024-09-20 03:30:02
nighty-eight years ago -> il y a quatre-vingt-dix-huit ans
spider-mario
2024-09-20 03:31:27
unless you’re Swiss or Belgian, then it’s « il y a nonante-huit ans »
Meow
2024-09-20 03:32:32
Something my Duolingo would never teach
spider-mario
2024-09-20 03:33:17
“too easy” — Duolingo, probably
_wb_
2024-09-20 03:39:17
Septante and nonante are very convenient
2024-09-20 03:39:31
Unfortunately we don't have octante
2024-09-20 03:39:49
Still the 4x20 thing
spider-mario
2024-09-20 03:54:54
some Swiss cantons have huitante
yoochan
spider-mario some Swiss cantons have huitante
2024-09-20 05:15:57
This seems the most logical way to do it
_wb_
2024-09-20 05:17:26
Just need to replace vingt with dante
Meow
2024-09-20 05:44:52
https://www.macrumors.com/how-to/iphone-16-pro-choose-jpeg-xl-proraw-formats/
2024-09-20 05:47:02
What's the -d for "perceptively lossless"?
jonnyawsom3
2024-09-20 06:00:15
cjxl defaults at d1, which is perceptually lossless at 100% zoom. Adobe uses 0.2 for their DNGs for editing
Meow
2024-09-20 06:06:50
That size resembles 0.5 for me
jonnyawsom3
2024-09-20 07:39:50
Generally I consider 0.3 a good number. Adobe's setting sometimes results in larger than lossless files, but we'll hopefully be able to figre out what Apple are using
CrushedAsian255
2024-09-21 12:33:17
I use 0.8 for standard images just for a bit of headroom
2024-09-21 02:53:59
Here is a DNG with lossy JXL
2024-09-21 02:54:15
2024-09-21 02:56:15
I also have one with lossless but it’s too big for Discord
monad
cjxl defaults at d1, which is perceptually lossless at 100% zoom. Adobe uses 0.2 for their DNGs for editing
2024-09-21 03:05:37
well, the idea is it's lossless at 1000 pixel viewing distance in particular lighting conditions, but this is less true today than in the past. you have to decrease the distance for such claims today.
Meow
CrushedAsian255 Here is a DNG with lossy JXL
2024-09-21 05:11:49
By iPhone 16 Pro?
CrushedAsian255
2024-09-21 05:27:23
Yes
2024-09-21 05:27:27
I went to the Apple Store
Meow
2024-09-21 05:28:56
Have you recorded the file size of the lossless one?
CrushedAsian255
2024-09-21 05:29:48
Lossless
2024-09-21 05:29:52
Lossy
2024-09-21 05:29:52
2024-09-21 05:29:55
Meow
2024-09-21 05:31:02
The difference is quite larger for this
CrushedAsian255
2024-09-21 05:33:10
The image itself is basically blank
2024-09-21 05:33:14
So lossy can do a good job
2024-09-21 05:33:29
Meow
2024-09-21 05:40:34
https://www.reddit.com/r/jpegxl/s/s0PLWewyLH
2024-09-21 05:41:21
> Personally, I prefer AVIF. Its lossless. And it works better in lower quality images, older cameras for instance with 24mp sensors .
2024-09-21 05:44:24
Does that mean converting old JPEG pictures into lossless AVIF?
CrushedAsian255
2024-09-21 05:53:28
What the hell
2024-09-21 05:53:30
There is a format designed specifically for converting JPEGs into losslessly
2024-09-21 05:53:48
That would probably be a better choice
2024-09-21 06:07:59
> JPXL That’s new
Meow
2024-09-21 06:27:16
https://forums.macrumors.com/threads/jpegxl-and-less-file-size-dont-support-older-models.2436976/
2024-09-21 06:28:39
b and B are different for file sizes
CrushedAsian255
2024-09-21 06:39:26
mb is milli-bits
2024-09-21 06:39:39
8 billion mb is one MB
_wb_
2024-09-21 06:45:18
Lol, millibits is a funny unit. We should express jxl art sizes in millibits per kilopixel
Meow
2024-09-21 07:04:54
Is a unit smaller than bit possible?
CrushedAsian255
Meow Is a unit smaller than bit possible?
2024-09-21 07:12:29
Well you can have fractional bits (Shannon’s) when talking about information theory
2024-09-21 07:12:48
Like if you have a weighted coin that has less than 1 bit
_wb_ Lol, millibits is a funny unit. We should express jxl art sizes in millibits per kilopixel
2024-09-21 07:16:35
1 millibit per kilopixel is 1 bit per megapixe, since JXL art is 1024x1024 (1.05 MPx) it could actually work
2024-09-21 07:17:00
100 byte JXL art is around 780 mb/kPx
jonnyawsom3
Meow https://forums.macrumors.com/threads/jpegxl-and-less-file-size-dont-support-older-models.2436976/
2024-09-21 08:07:53
> ProRAW images on 16 Pro are only about 20 mb when JPEG XL lossy is used, with losless option they are bigger... Who could've predicted that
CrushedAsian255
2024-09-21 08:08:22
well i guess sometimes lossless is bigger, although this situation it's kinda silly
2024-09-21 08:08:35
like a png of a flat shaded logo is usually smaller than a jpeg
jonnyawsom3
CrushedAsian255
2024-09-21 08:18:57
Can someone run `exiftool -a -u -s -G1 IMG_0051.dng` on it and dump the output in a code block here. I'm stuck on my phone
CrushedAsian255 I also have one with lossless but it’s too big for Discord
2024-09-21 08:19:39
Could split into 9 MB parts with 7zip
CrushedAsian255
2024-09-21 08:23:47
2024-09-21 08:25:02
2024-09-21 08:25:06
2024-09-21 08:25:37
2024-09-21 08:25:42
sorry about wrong order
Oleksii Matiash
Can someone run `exiftool -a -u -s -G1 IMG_0051.dng` on it and dump the output in a code block here. I'm stuck on my phone
2024-09-21 08:40:40
CrushedAsian255
2024-09-21 08:46:16
``` [SubIFD] TileWidth : 2016 [SubIFD] TileLength : 2016 ```
2024-09-21 08:46:23
that's way better than whatever adobe was doing
jonnyawsom3
Oleksii Matiash
2024-09-21 08:56:36
Could you on the lossless too?
Oleksii Matiash
Could you on the lossless too?
2024-09-21 08:58:17
What do you mean?
CrushedAsian255
2024-09-21 08:58:51
jonnyawsom3
2024-09-21 08:59:52
Thanks. Strange that it has half as much
CrushedAsian255
2024-09-21 09:00:17
i think it's because <@1102876331986927627> used different exiftool settings
Oleksii Matiash
2024-09-21 09:00:30
I just copypasted your command line
CrushedAsian255
2024-09-21 09:00:37
oh i just used `exiftool`
jonnyawsom3
Can someone run `exiftool -a -u -s -G1 IMG_0051.dng` on it and dump the output in a code block here. I'm stuck on my phone
2024-09-21 09:00:51
That one
CrushedAsian255
2024-09-21 09:00:59
?
2024-09-21 09:01:12
jonnyawsom3
2024-09-21 09:01:16
Just pointing to the command
CrushedAsian255
2024-09-21 09:01:18
now they're the same size
2024-09-21 09:01:32
or did i do the wrong file
2024-09-21 09:01:33
lmao
2024-09-21 09:01:45
wait what
2024-09-21 09:01:46
hang on
2024-09-21 09:02:07
_wb_
2024-09-21 09:04:10
So that's an 8-bit JPEG preview and then 10-bit lossless jxl?
2024-09-21 09:04:14
Only 10-bit?
2024-09-21 09:04:28
But then there's also this: [SubIFD] ProfileGainTableMap : (Binary data 3158080 bytes, use -b option to extract)
2024-09-21 09:05:15
3 MB of gain map data? Can you extract that and see how it is encoded?
CrushedAsian255
2024-09-21 09:05:43
apple proraw does some weird stuff to images i think
2024-09-21 09:06:01
there is a lot of proprietary apple coding stuff apparently
2024-09-21 09:07:05
2024-09-21 09:07:20
2024-09-21 09:08:59
i think it's probably f32be data
2024-09-21 09:09:11
ikr
_wb_
2024-09-21 09:10:37
There's also [SubIFD] LinearizationTable : (Binary data 5284 bytes, use -b option to extract) so maybe they're encoding it as a 10-bit image with some transfer function to bring it to 16-bit linear, and then on top of that some gain map?
CrushedAsian255
2024-09-21 09:14:17
i found this video that might explain things
2024-09-21 09:14:18
https://developer.apple.com/videos/play/wwdc2021/10160/
2024-09-21 09:14:33
it explains what most of the tags do
2024-09-21 09:14:54
Apple goes to great effort tuning the quality of our images. ProRAW images have a default look that is consistent with the look of our HEICs and JPEGs. This is achieved by embedding special tags in the DNG file. These tags are documented in the DNG spec and provide the recipe for how to render the default look of each image. The first tag applied is the LinearizationTable which decompands the 12-bit stored data to linear scene values. We use the BaselineExposure tag because ProRAW images adapt to the dynamic range of the scene. The BaselineSharpness tag allows us to specify how much edge sharpening to apply by default. The ProfileGainTableMap tag -- which is new in the DNG 1.6 spec -- allows us to describe how the adjust the bright and shadow regions. Lastly, is the ProfileToneCurve that specifies the output global tone curve. All of these tags are unique to each image.
2024-09-21 09:18:06
this is the data from an 48mpx shot from iphone 14 pro max
CrushedAsian255 this is the data from an 48mpx shot from iphone 14 pro max
2024-09-21 09:18:13
```[SubIFD] SubfileType : Full-resolution image [SubIFD] ImageWidth : 8064 [SubIFD] ImageHeight : 6048 [SubIFD] BitsPerSample : 10 10 10 [SubIFD] Compression : JPEG [SubIFD] PhotometricInterpretation : Linear Raw [SubIFD] SamplesPerPixel : 3 [SubIFD] PlanarConfiguration : Chunky [SubIFD] TileWidth : 1008 [SubIFD] TileLength : 1008 [SubIFD] TileOffsets : (Binary data 431 bytes, use -b option to extract) [SubIFD] TileByteCounts : (Binary data 382 bytes, use -b option to extract) [SubIFD] LinearizationTable : (Binary data 5438 bytes, use -b option to extract) [SubIFD] BlackLevel : 0 0 0 [SubIFD] WhiteLevel : 65535 65535 65535 [SubIFD] NoiseProfile : 3e-05 3e-08 [SubIFD] DefaultBlackRender : None [SubIFD] ProfileGainTableMap : (Binary data 3158080 bytes, use -b option to extract) ```
jonnyawsom3
2024-09-21 09:19:22
Okay, so they did adjust some values for JXL at least, although no higher bit depth
CrushedAsian255
2024-09-21 09:19:52
they probably wanted more compression, not higher quality
2024-09-21 09:20:26
not sure why they never mentioned this in the event even once
2024-09-21 09:20:34
at least now we know where that rumour came from
2024-09-21 09:20:39
it was about ProRAW
jonnyawsom3
2024-09-21 09:34:29
Could be because it's only on the Pro and they didn't want backlash, could be a late addition, could be they don't think saving storage is worth announcing compared to the other features
2024-09-21 09:42:29
<@386612331288723469> I'm guessing you didn't take a normal DNG at the same time? Could've roughly compared compression then (even if it is mostly white)
CrushedAsian255
2024-09-21 09:42:49
sadly no
2024-09-21 09:43:47
took a photo of a white wall
2024-09-21 09:43:50
52.1 MiB
jonnyawsom3
2024-09-21 09:45:10
So 40% smaller, very, very roughly. Lines up with expectations of around 45
CrushedAsian255
2024-09-21 09:46:40
Such an inconspicuous image holding so much information
CrushedAsian255
2024-09-21 09:48:37
took it while going to see a movie with a friend is JXL or friends more important
2024-09-21 09:48:52
ahh whatever, took photos with my friends in JXL
_wb_
2024-09-21 09:52:49
the jxl payloads inside look like this: ``` box: type: "JXL " size: 12, contents size: 4 JPEG XL file format container (ISO/IEC 18181-2) box: type: "ftyp" size: 20, contents size: 12 box: type: "jxll" size: 9, contents size: 1 box: type: "jxlc" size: 2660374, contents size: 2660366 JPEG XL image, 2016x2016, (possibly) lossless, 16-bit RGB num_color_channels: 3 num_extra_channels: 0 have_preview: 0 have_animation: 0 Intrinsic dimensions: 2016x2016 Orientation: 1 (Normal) Color space: RGB, D65, Rec.2100 primaries, Linear transfer function, rendering intent: Perceptual ```
CrushedAsian255
2024-09-21 09:53:40
wonder why they used the container
2024-09-21 09:53:56
what level does the `jxll` signify?
2024-09-21 09:54:44
is that lossy or lossless?
2024-09-21 09:55:04
strange that it's 16 bit RGB
2024-09-21 09:55:08
maybe to store out-of-gamut?
_wb_
2024-09-21 09:56:20
jxll is just to signal that it's conforming to level 10, which is needed if you want to do 16-bit
CrushedAsian255
2024-09-21 09:56:38
that makes sense
2024-09-21 09:56:45
is the `BitsPerSample : 10 10 10` just wrong then?
_wb_
2024-09-21 09:57:03
so looks like it stores 16-bit linear RGB with rec2020 primaries (or rec2100, that's the same thing)
2024-09-21 10:00:41
ugh
2024-09-21 10:00:48
``` Image statistics: Overall: min: 339 (0.00517281) max: 885 (0.0135042) mean: 784.204 (0.0119662) ```
2024-09-21 10:01:05
that looks like the actual data is 10-bit
jonnyawsom3
CrushedAsian255 is the `BitsPerSample : 10 10 10` just wrong then?
2024-09-21 10:01:27
Likely just calling a 16 bit encode in the API instead of using the exact bitdepth of the camera, happens a lot
_wb_
2024-09-21 10:01:42
but they're encoding it as if it is 16-bit, just using only the bottom 1/64th of the range
jonnyawsom3
2024-09-21 10:02:03
I'm guessing palette doesn't help much?
_wb_
2024-09-21 10:04:49
doesn't make that much of a difference if they're doing the padding in the msb
2024-09-21 10:05:38
but just silly that they're pretending it is 16-bit if it's not. The e1 encoder should be a little faster for 10-bit than for 16-bit
2024-09-21 10:05:51
(and also you can stay within level 5 so no need for the container)
CrushedAsian255
2024-09-21 10:06:04
is there any signalling to be able to tell which effort they're using?
2024-09-21 10:06:16
like what coding tools they're using?
jonnyawsom3
2024-09-21 10:06:23
Could we test how much of a difference it makes using one of the extracted tiles?
CrushedAsian255 is there any signalling to be able to tell which effort they're using?
2024-09-21 10:07:03
Could just run cjxl on the tile at every level and see what matches or is close
_wb_
2024-09-21 10:32:51
looks like it's doing e3, doesn't quite match exactly though so maybe some custom options or maybe an older version of libjxl
2024-09-21 10:41:53
oh wait, if I encode with cjxl with 10-bit ppm as input, I can get an exact match at e3
CrushedAsian255
2024-09-21 10:42:24
Which JXL version are you using ?
_wb_
2024-09-21 10:45:55
0.11
2024-09-21 10:46:21
though 0.10 would be identical I think
CrushedAsian255
2024-09-21 10:46:46
Is there a list of what commits were made in between🚗
2024-09-21 10:46:51
Whoops no car
_wb_
2024-09-21 10:47:04
I don't think for lossless e3 anything has changed since 0.10
jonnyawsom3
2024-09-21 10:47:06
Yeah, I don't think much was done to lossless apart from some palette tweaks
_wb_
2024-09-21 10:47:33
anyway, so it's pretty much OK what they're doing, lossless e3 makes sense for photographic images
2024-09-21 10:48:13
telling libjxl it is 16-bit instead of 10-bit is a bit silly because it makes it add the container and the level box, which isn't really needed
jonnyawsom3
_wb_ oh wait, if I encode with cjxl with 10-bit ppm as input, I can get an exact match at e3
2024-09-21 10:49:03
Only e3 and d0 with no other parameters? Means they didn't use faster decoding like Adobe too
CrushedAsian255
2024-09-21 10:49:18
It’s 49 bytes though so not the end of the world
2024-09-21 10:49:28
Less than 1 kB total for the whole image
Only e3 and d0 with no other parameters? Means they didn't use faster decoding like Adobe too
2024-09-21 10:49:44
I guess their CPUs are fast enough to handle them
2024-09-21 10:51:17
Would be interesting to see what lossy settings they chose
jonnyawsom3
CrushedAsian255 I guess their CPUs are fast enough to handle them
2024-09-21 10:51:33
It doesn't make much difference but bloats lossless files, so I'm glad
CrushedAsian255
2024-09-21 10:51:54
What does faster decoding disable?
2024-09-21 10:51:59
Deep MA trees?
jonnyawsom3
CrushedAsian255 It’s 49 bytes though so not the end of the world
2024-09-21 10:53:27
They already save more than that by using 2016 tiles instead of 764 or whatever like Adobe
CrushedAsian255
2024-09-21 10:53:40
lol fair
lonjil
2024-09-21 11:02:22
I always heard that ProRaw is 12 bit, but I looked into it now. Apparently Apple used to say 12 bit, on older iPhones, but now they say 10 bit. I wonder if it was always 10 bit, and they were lying before, or if they actually reduced it.
CrushedAsian255
2024-09-21 11:02:45
maybe it's 10bit + gain map info?
2024-09-21 11:03:01
or maybe it's 10 bit with dithering?
jonnyawsom3
2024-09-21 11:22:08
Actually, what format is the gain map in?
lonjil I always heard that ProRaw is 12 bit, but I looked into it now. Apparently Apple used to say 12 bit, on older iPhones, but now they say 10 bit. I wonder if it was always 10 bit, and they were lying before, or if they actually reduced it.
2024-09-21 11:22:43
"16 bit RAW*" *JXL files are 16 bit, data contained may be lower
CrushedAsian255
2024-09-21 11:25:29
haven't been able to decode it yet
jonnyawsom3
2024-09-21 11:30:51
Huh, it's the same size for both lossy and lossless...
2024-09-21 11:42:40
Half of the lossy and 20% of the lossless are just embedded preview and gain map images
CrushedAsian255
2024-09-21 11:43:53
isn't there also a semantic map somewhere in there?
2024-09-21 11:44:00
is that also JXLified or is that still JPEG
2024-09-21 11:44:11
actually the images i sent probably don't have a semantic map
Oleksii Matiash
Actually, what format is the gain map in?
2024-09-21 01:22:59
Something not- or very slightly compressed, however I can't guess exact format
CrushedAsian255
2024-09-21 01:23:47
It looked like big endian float32s to me
2024-09-21 01:23:54
Haven’t tried actually visualising it though
username
2024-09-21 10:27:00
so wait to get things straight are the ProRAW JXL files 16-bit JXLs that are given 10-bit data and then brought up to 16-bit with a external gainmap?
2024-09-21 10:27:28
I guess it could have been worse..
CrushedAsian255
2024-09-21 10:28:56
They’re 10 bit images with padding to 16 bit
2024-09-21 10:29:02
Not sure about gainmap
2024-09-21 10:29:12
Haven’t looked into it further
2024-09-22 12:18:18
https://youtu.be/WMRzK-yCbr8?si=28Qw9jaJSBBXdGd3
2024-09-22 12:19:02
@ 9:10 People need to understand that “Google” didn’t remove JXL support, the “Chrome Codec Team” specifically did
drkt
2024-09-22 05:35:19
I don't see anything wrong with blaming Google as long as the guy works under Google and Google doesn't make a statement disavowing his actions
Foxtrot
2024-09-22 05:59:03
The question is who at Google should do it? His manager?
Demiurge
2024-09-22 09:56:42
Everyone stays in their lane probably. He acts like he has almost no oversight as lead of the Chrome Codec Team, a proven expert in the field no one else is around to challenge his ridiculous conclusion
2024-09-22 09:58:10
Especially when he explains it away using weasel words such as "we" and "I had a discussion with... partners, trust me bro"
2024-09-22 09:58:47
Like someone trying to avoid taking responsibility for his own decisions.
2024-09-22 10:00:04
Weaseling out of accountability, as they say
2024-09-22 10:03:16
He's just doing the will of the "wider community" you see. He speaks for the "wider community" and they have spoken and said there's not enough interest!
CrushedAsian255
Demiurge Especially when he explains it away using weasel words such as "we" and "I had a discussion with... partners, trust me bro"
2024-09-22 10:03:22
i had a discussion with me, myself and I
Demiurge
2024-09-22 10:04:05
There just isn't enough interest, trust me bro, I spoke with the "wider community" and this is what "we all" want.
2024-09-22 10:05:12
He literally speaks like that and I’m surprised more people didn't respond or even ridicule him personally for such vague weaselly language
CrushedAsian255
Demiurge There just isn't enough interest, trust me bro, I spoke with the "wider community" and this is what "we all" want.
2024-09-22 10:05:50
> "not enough interest" apple, intel, meta, shopify, the guardian: 🤷‍♂️
Demiurge
2024-09-22 10:06:43
Especially since this is coming from the webp/avif guy and we know how much enthusiasm there was for those formats when they were added to Chrome
2024-09-22 10:07:30
The complete shameless hypocrisy is staggering.
2024-09-22 10:08:07
webp and avif did not have anywhere near same level of ecosystem interest as jxl
2024-09-22 10:09:04
And I guess that bothers him
2024-09-22 10:09:11
I guess he took that personally
CrushedAsian255
2024-09-22 10:09:17
WebP interest: argh a new image format that nothing supports AVIF interest: new format, slightly better compression, nice i guess i don't care though JPEG XL interest: This is the best thing since sliced bread
2024-09-22 10:09:31
Chrome codec team: 🧂
Demiurge
Demiurge Especially since this is coming from the webp/avif guy and we know how much enthusiasm there was for those formats when they were added to Chrome
2024-09-22 10:12:19
Pardon me. When he added them to Chrome...
2024-09-22 10:14:19
Since as head of the Chrome codec team he's directly responsible for not only overseeing the development of avif/webp but also fast tracking them into Chrome
HCrikki
2024-09-22 10:27:59
integrating the support isnt the win they might think. sites are still free to use any formats they want - even with all the forcing, nobody uploads webp or avif, theyre literal 'final delivery' formats only cdns serve as reduced quality substitutes for large jpgs and pngs, and those would gladly switch to jxl the month chromium decodes it out of the box
CrushedAsian255
2024-09-22 10:35:24
so it's just "how long can we keep up this charade of jxl not having ecosystem interest"
2024-09-22 10:35:30
and for what? these are all FOSS
2024-09-22 10:39:46
Correct me if I’m wrong but there is no financial gain for Google for pushing AVIF?
2024-09-22 10:40:54
Or are they just playing favourites for the sake of it?
HCrikki
2024-09-22 10:42:07
imo its just they continued believing video-based codecs make sense and now theyre too deep to course correct
CrushedAsian255
2024-09-22 10:42:35
And they just don’t want to say “sorry we were wrong”
HCrikki
2024-09-22 10:42:36
they knew avif had no chance at adoption if the competition wasnt kneecapped in some way. its not good even at converting gifs (jxl is better in lossy and lossless converting existing gifs), you have to go back to the original video to make an av1 video stream to smuggle into an avif extension
2024-09-22 10:46:29
av1 is good, avif being short/small av1 videos makes sense, almost nothing else does. storage is cheap - keep your original jpgs, wether youre a user or web service
CrushedAsian255
2024-09-22 10:47:27
Basically AVIF is a good replacement for GIF
HCrikki
2024-09-22 10:48:55
only if regenerated from an original video, but then even ancient divx wouldve been adequate
CrushedAsian255
2024-09-22 10:49:55
Sadly not
2024-09-22 10:49:56
https://caniuse.com/?search=divx
Demiurge
2024-09-23 02:51:36
It just seems like this guy Jim for whatever reason has something personal against what he perceives as a competitor to his life's work.
CrushedAsian255
2024-09-23 02:51:58
Can’t they just be friends
Demiurge
2024-09-23 02:52:45
It never even occurred to me that jxl and avif are competitors until after he made his absurd announcement
2024-09-23 02:53:03
I always assumed they would be used together for different purposes
CrushedAsian255
2024-09-23 02:57:56
Same
2024-09-23 02:58:06
I use AVIF for thumbnails all the time
Cacodemon345
Demiurge It just seems like this guy Jim for whatever reason has something personal against what he perceives as a competitor to his life's work.
2024-09-23 07:58:47
Ego issues.
VcSaJen
2024-09-23 08:11:34
Why so angry? Firefox is going to support JPEG XL at some point, one of the most popular FOSS gallery apps on android now support JPEG XL, some amount of Android support is being considered, rumors of Windows support, good news all around
CrushedAsian255
2024-09-23 08:12:06
Don’t forget Apple charging in head first
AccessViolation_
VcSaJen Why so angry? Firefox is going to support JPEG XL at some point, one of the most popular FOSS gallery apps on android now support JPEG XL, some amount of Android support is being considered, rumors of Windows support, good news all around
2024-09-23 08:24:24
> one of the most popular FOSS gallery apps on android now support JPEG XL Which one? Currently using Aves Libre which doesn't want to add support until Android has native support for JPEG XL
2024-09-23 08:29:11
Oh this one I guess? https://discord.com/channels/794206087879852103/803574970180829194/1287159313697341525
VcSaJen
2024-09-23 08:34:58
Simple Gallery is popular, and Fossify Gallery is it's successor
Posi832
CrushedAsian255 i had a discussion with me, myself and I
2024-09-23 02:13:19
I'm so stealing this : P
KKT
2024-09-23 06:39:45
https://www.threads.net/@stalman/post/DAOv7JVSZx6/?xmt=AQGzIhpZk6GzFwdmdSn8Pnyq-VvCQo2hFxPsm9QejSBDYA
dogelition
2024-09-23 06:41:23
https://www.youtube.com/watch?v=SzsM4HMKmEI
yoochan
2024-09-23 06:59:56
"Jpeg XL create a sandwich of superiority" ! amazing
jonnyawsom3
2024-09-23 07:09:11
As I'm watching the video, I wonder what settings the photoshop(?) export actually uses... And if the 0.8 release could've given sharper images due to the regression since
2024-09-23 07:14:05
ISO noise could've helped too, but that's only in Krita or cjxl if I recall
Meow
dogelition https://www.youtube.com/watch?v=SzsM4HMKmEI
2024-09-23 08:02:55
Who's this
_wb_
2024-09-23 08:29:56
Just one image and one person's opinion, but the comparison methodology is OK.
spider-mario
2024-09-23 08:46:46
there was maybe a bit of a gap in between “medium” and “high” quality
2024-09-23 08:48:58
the sandwich of superiority was a nice analogy
Foxtrot
2024-09-23 08:49:35
Sad he didn't compare lossless. I think jxl as replacement of png is also important
spider-mario
2024-09-23 08:50:22
yes, it compresses so much better/faster
_wb_
2024-09-23 08:57:50
It is quite telling that Adobe didn't even bother to have lossless avif as an option.
2024-09-23 08:58:22
In terms of interop, it's hard to beat PNG — but then again the same is true for JPEG
Foxtrot
2024-09-23 09:01:46
I wonder what effort photoshop uses. Would be shame to say jxl is bad if low effort is used even thou higher could be used with small difference in encode time
_wb_
2024-09-23 09:05:12
And yes, that "sandwich of superiority" was a funny way of putting it, but I do think it's quite correct to think of it that way. Basically the cases where 1) the network is fast enough not to have to worry about progressive rendering, and 2) the network is slow enough to make low quality images an acceptable trade-off (to the point where you're in the low-quality region where avif is usually better than jxl) — the range where both are true at the same time seem quite narrow, if not empty...
Meow
_wb_ And yes, that "sandwich of superiority" was a funny way of putting it, but I do think it's quite correct to think of it that way. Basically the cases where 1) the network is fast enough not to have to worry about progressive rendering, and 2) the network is slow enough to make low quality images an acceptable trade-off (to the point where you're in the low-quality region where avif is usually better than jxl) — the range where both are true at the same time seem quite narrow, if not empty...
2024-09-23 09:22:31
1) users 2) companies , they believe
HCrikki
2024-09-23 09:27:18
lossless recompression of jpg is worth its own video
2024-09-23 09:28:38
normally any recompression from jpg either results in a massively bigger lossless file (in avif, webp or even jxl), or degraded quality without even a guarantee of lower filesize (unless you lower quality level even more until you hit that final filesize)
2024-09-23 09:29:43
no loss AND guaranteed lower filesize AND in less than 50 milliseconds per file of common resolution (20megapixel-ish) at default effort? thats massive for galleries and image hosts and near-realtime
2024-09-23 09:33:38
afaik jpg->jxl transcoding also turns what were non-progressive jpgs progressive
jonnyawsom3
Foxtrot I wonder what effort photoshop uses. Would be shame to say jxl is bad if low effort is used even thou higher could be used with small difference in encode time
2024-09-23 09:38:48
No idea of the effort or the actual quality because of the Photoshop UI, or what libjxl version since like I said before, 0.8 was much sharper and photon noise could've made low efforts easily beat AVIF
lonjil
dogelition https://www.youtube.com/watch?v=SzsM4HMKmEI
2024-09-23 10:48:49
I would want a "more grain less blobby mess" mode in cjxl 😄
A homosapien
2024-09-23 11:06:06
Libjxl 0.8 ftw <:Stonks:806137886726553651>
2024-09-23 11:13:44
It looks like jxl has been getting progressively smoother over the years. ¯\_(ツ)_/¯
2024-09-23 11:15:27
Not all hope is lost though, https://discord.com/channels/794206087879852103/1278292301038227489 A corpus of images is being made to re-tune jxl to be sharp again <:Hypers:808826266060193874> <:pancakexl:1283670260209156128>
jonnyawsom3
lonjil I would want a "more grain less blobby mess" mode in cjxl 😄
2024-09-23 11:36:21
`--photon_noise_iso=2000000`
lonjil
`--photon_noise_iso=2000000`
2024-09-23 11:42:28
that's above the maximum 😛
jonnyawsom3
2024-09-23 11:43:55
Not on my cjxl
A homosapien
2024-09-23 11:54:50
The max is `--photon_noise_iso 445536` for me
jonnyawsom3
2024-09-24 12:07:24
Oh, weird. The limit goes up to around 2 million when the input is a jpeg with `-j 0 -d 1`
2024-09-24 12:09:02
And the weird chromatic abberation still happens in lossless
2024-09-24 12:09:50
And yet a different output with transcode enabled... Very odd
2024-09-24 12:12:17
Original, Transcode, Lossless, Lossy `--photon_noise_iso=2000000` (Beautiful artwork I know)
A homosapien
2024-09-24 01:00:32
For a .jpg input, the max photon noise is 2202244, for a png input it's 445536
2024-09-24 01:03:38
wait a minute
2024-09-24 01:03:46
does the max noise vary per image?
The Bull's Eyed Womprat
2024-09-24 04:40:33
In the video he shows exporting from photoshop as a JPEG XL. It doesn't show as a supported export format in Adobe's documentation. Does photoshop support it as an export format now?
jonnyawsom3
2024-09-24 05:49:02
Could've been exporting from lightroom, all I know is that it's Adobe because of the arbitrary quality settings
AccessViolation_
2024-09-24 07:50:58
I'm quite surprised AVIF retained this much detail without even using noise synthesis at such a low file size. I was under the impression that the reason AVIF looked better at lower bitrates was specifically because it chose to smooth out detail instead of trying to retain it
2024-09-24 08:11:30
If anyone has Lightroom(?) installed, maybe you could check the "open source licenses" to see which encoder and which version they used?
Demiurge
dogelition https://www.youtube.com/watch?v=SzsM4HMKmEI
2024-09-24 09:17:10
;_; This video is painful to watch. JXL really struggles perceptually against AVIF and his criticism is exactly what I've been worried about... About how AVIF surprisingly preserves the grain better than JXL, and how the grain helps preserve more of the original details...
lonjil I would want a "more grain less blobby mess" mode in cjxl 😄
2024-09-24 09:24:29
Forget a mode, this should be the default... "blobby mess" mode should be either nuked from orbit or turned into a "--tune=objective" mode for tricking naive objective metrics
2024-09-24 09:25:06
Preferably nuked from orbit though, metrics be completely damned
2024-09-24 09:26:37
On one hand I am glad this video is bringing attention to this problem so it has a better chance of getting improved or even fixed... but on the other hand embarrassing videos of poor performance makes it harder to promote adoption :(
AccessViolation_
2024-09-24 09:41:16
I still feel like this may be because of poorly chosen encoder settings or a poor encoder in general if Adobe rolled their own instead of using libjxl. I'm going to try to reproduce this with the reference encoders when I get home
2024-09-24 09:42:38
If AVIF is indeed much better, it's still possible that this is more of an encoder thing than an image format thing. We're not comparing the best theoretical JPEG XL to the best theoretical AVIF. We're just working with what we've currently got
Demiurge
2024-09-24 09:44:19
He also makes the observation that grain "is more pleasing to look at" and "helps preserve the extra detail and patterns" compared to "blurry messes" which I've been saying for a long time.
AccessViolation_ If AVIF is indeed much better, it's still possible that this is more of an encoder thing than an image format thing. We're not comparing the best theoretical JPEG XL to the best theoretical AVIF. We're just working with what we've currently got
2024-09-24 09:46:17
Yes, it's a matter of tuning the encoder. there is a lot of quality left on the JXL table waiting to be unlocked
2024-09-24 09:47:06
And really old versions of the encoder had better lossy performance too from what I've consistently seen
Meow
2024-09-24 10:03:53
Wasn't AVIF the one that had been criticised more for being blurrier?
Demiurge
2024-09-24 10:05:01
In the past, yes, when AVIF was blurrier and JXL was sharper.
2024-09-24 10:05:13
Since then aom has gotten sharper and libjxl has gotten blurrier.
2024-09-24 10:05:37
it's weird but they somehow traded places
Meow
2024-09-24 10:07:28
Some people took the blurrier details on AVIF as an advantage however
Foxtrot
2024-09-24 10:24:17
in the past I asked why is AVIF sharper in small images https://discord.com/channels/794206087879852103/794206170445119489/1100446546123825192
Oleksii Matiash
AccessViolation_ If anyone has Lightroom(?) installed, maybe you could check the "open source licenses" to see which encoder and which version they used?
2024-09-24 12:00:34
I can't find anything about jxl
damian101
AccessViolation_ I'm quite surprised AVIF retained this much detail without even using noise synthesis at such a low file size. I was under the impression that the reason AVIF looked better at lower bitrates was specifically because it chose to smooth out detail instead of trying to retain it
2024-09-24 12:11:59
people don't like the smoothing, actually, from a pure appeal standpoint, because they know how the world looks like, and unnatural smoothing stands out, especially if it happens inconsistently across the image
Meow Wasn't AVIF the one that had been criticised more for being blurrier?
2024-09-24 12:13:38
aom devs put a lot of work into allintra mode few years back, since then it performs quite well even with default settings
runr855
_wb_ It is quite telling that Adobe didn't even bother to have lossless avif as an option.
2024-09-24 04:35:36
Does Camera Raw have .jxl lossless as an export option? Affinity Photo 2 does not, but it does have lossless for WebP
2024-09-24 04:36:32
And now I've named Affinity, does anyone know what version of libjxl they use? They don't have libjxl mentioned at all in their third-party licenses
_wb_
runr855 Does Camera Raw have .jxl lossless as an export option? Affinity Photo 2 does not, but it does have lossless for WebP
2024-09-24 04:45:01
Yes it does.
Demiurge
AccessViolation_ I still feel like this may be because of poorly chosen encoder settings or a poor encoder in general if Adobe rolled their own instead of using libjxl. I'm going to try to reproduce this with the reference encoders when I get home
2024-09-24 07:11:23
I doubt they rolled their own encoder. The excessive blurring is a well known problem with libjxl.
2024-09-24 07:12:20
Yeah, Apple has lossless JXL-DNG capture as well as lossy.
_wb_
2024-09-24 08:31:26
Since which version did libjxl start blurring more than it should? Maybe we should tweak it a bit...
Traneptora
runr855 And now I've named Affinity, does anyone know what version of libjxl they use? They don't have libjxl mentioned at all in their third-party licenses
2024-09-24 09:30:22
really? check Licenses.rtf
runr855
2024-09-24 10:39:40
I've already done. There are license notices for other libraries like WebP's, LibTiff, LIBPng, JXRlib and more. None for JPEG XL
A homosapien
_wb_ Since which version did libjxl start blurring more than it should? Maybe we should tweak it a bit...
2024-09-24 11:00:13
Libjxl 0.9 onwards started blurring a lot. I made a couple github issues [here](https://github.com/libjxl/libjxl/issues/3754) and [here](https://github.com/libjxl/libjxl/issues/3530)
2024-09-24 11:09:02
Jyrki mentioned that the blurring degradations are likely due to the filtering strength, which is now butteraugli tuned instead of tuning by the human eye. He also said that fixing this issue will be easier if he receives more material to test with. So I opened a thread here for anybody to upload their own images. https://discord.com/channels/794206087879852103/1278292301038227489
KKT
2024-09-25 12:29:07
Timecode 22:45, Episode 606: https://atp.fm
Meow
2024-09-25 05:33:45
https://chatgpt.com/share/66f3a0a1-9a10-8009-b59e-77357f7aefa1
2024-09-25 05:34:46
ChatGPT prefers AVIF over JPEG XL, QOI and WebP
Fox Wizard
2024-09-25 05:41:52
<:KekDog:884736660376535040>
Traneptora
runr855 I've already done. There are license notices for other libraries like WebP's, LibTiff, LIBPng, JXRlib and more. None for JPEG XL
2024-09-25 09:27:52
did you search "jpeg xl" or "libjxl"
yoochan
Fox Wizard <:KekDog:884736660376535040>
2024-09-25 09:29:20
LLM are just hallucinations machines
spider-mario
2024-09-25 09:51:03
industrialised Dunning-Kruger
Demiurge
A homosapien Jyrki mentioned that the blurring degradations are likely due to the filtering strength, which is now butteraugli tuned instead of tuning by the human eye. He also said that fixing this issue will be easier if he receives more material to test with. So I opened a thread here for anybody to upload their own images. https://discord.com/channels/794206087879852103/1278292301038227489
2024-09-25 09:58:36
using metrics to tune the encoder will inevitably lead to embarrassingly bad blurring. Metrics harshly punish what looks great to the human eye and reward what looks awful.
2024-09-25 09:59:13
including butteraugli and ssimu2
2024-09-25 10:03:45
It's worrying that at a crucial time of jxl adoption, avif encoders are producing better-looking output while the libjxl encoder is getting progressively uglier over time.
2024-09-25 10:04:09
At least libjxl is improving in other ways.
Orum
dogelition https://www.youtube.com/watch?v=SzsM4HMKmEI
2024-09-25 10:51:09
I really wish he used the CLI encoder and tried out the intensity target in order to bias <:JXL:805850130203934781>'s encoding to the darker areas
2024-09-25 10:51:36
because that's what I'm always doing for lossy JXL <:YEP:808828808127971399>
Foxtrot
2024-09-25 11:09:23
well, especially for low quality more sharpness looks better than less
Demiurge
2024-09-25 04:12:51
You shouldn't have to use additional settings and explicitly TELL the encoder not to blur and destroy details and texture in shaded regions. Detailed shadows is what make images pop and have depth
2024-09-25 04:18:23
A perceptual codec with "perceptually uniform quantization" should realize that small differences in light intensity make a bigger difference in dark regions because our eyes adjust and use a different scale in the darkness.
2024-09-25 04:21:41
Whenever there are many adjacent dark pixels that aren't next to really bright pixels
2024-09-25 04:24:42
Unless there's something really bright in the same region preventing the eye from adjusting
2024-09-25 04:25:29
With bright and dark overlapping each other.
2024-09-25 04:27:10
If it's a continuous, shaded region then humans are going to notice if they suddenly can't see anything in the shadows anymore after encoding to jxl
CrushedAsian255
2024-09-25 05:10:05
We need to stop tuning for just metrics
jonnyawsom3
2024-09-25 05:39:52
<@532010383041363969> what *was* the reason for changing from manually adjusted to butteraugli based filtering? To handle a more diverse image set?
runr855
Traneptora did you search "jpeg xl" or "libjxl"
2024-09-25 09:26:54
There is no mention of anything relating to any reasonable way you'd spell JPEG XL or libjxl
Traneptora
runr855 There is no mention of anything relating to any reasonable way you'd spell JPEG XL or libjxl
2024-09-26 02:38:23
interesting, cause I don't have the program and can only google it but someone on the internet (I know, I know) said they found it
Demiurge
2024-09-26 04:23:16
`Filename.jpegxl`
2024-09-26 04:29:16
Moral of the story is metrics are completely useless nonsense and none of the metrics have any clue what "perceptually uniform" is, nor even tell the difference between uncorrelated noise that is easy to "see through" to the original signal underneath, and distortion that completely hides and destroys the original signal. All of the metrics seem to prefer distortion that hides and destroys the original signal
2024-09-26 04:35:31
I still think it's important to come up with better metrics though. Metrics and codecs need to be tuned by human perception. Tuning a codec with metrics is like circular logic
2024-09-26 04:37:51
It's like trying to tune two guitars that need tuning by listening to each other
runr855
Traneptora interesting, cause I don't have the program and can only google it but someone on the internet (I know, I know) said they found it
2024-09-26 02:24:20
This is from version 2.5.5 of Affinity Photo
2024-09-26 02:24:32
I'll remove the file again if it isn't allowed to be distributed
KKT
2024-09-26 05:13:00
I dug around inside the app, and it's not in the Frameworks: `liblibacs.dylib liblibaffinity.dylib liblibbmp.dylib liblibbook.dylib liblibcfitsio.dylib liblibcommands.dylib liblibcurl.dylib liblibde265.dylib liblibdwgimport.dylib liblibeps.dylib liblibepub.dylib liblibexpat.dylib liblibfonttools.dylib liblibgeometry.dylib liblibgif.dylib liblibgl.dylib liblibhdphoto.dylib liblibheif.dylib liblibhunspell.dylib liblibicu.dylib liblibidmlimport.dylib liblibipc.dylib liblibjbig2dec.dylib liblibjpeg.dylib liblibjpeg2k.dylib liblibjsoncpp.dylib liblibkernel.dylib libliblf.dylib libliblittlecms.dylib liblibmetadata.dylib liblibnetwork.dylib liblibocio.dylib liblibopenexr.dylib liblibp2p.dylib liblibpersona.dylib liblibpk.dylib liblibplugins.dylib liblibpng.dylib liblibpsd.dylib liblibraster.dylib liblibrastertools.dylib liblibraw.dylib liblibregex.dylib liblibrenderer.dylib liblibscripting.dylib liblibsnowplow.dylib liblibstacktrace.dylib liblibstemmer.dylib liblibstory.dylib liblibtga.dylib liblibtiff.dylib liblibwebp.dylib liblibxml.dylib liblibzlib.dylib liblibzstd.dylib libpdfimport.dylib libpdflib.dylib libxmp.dylib`
_wb_
2024-09-26 05:16:32
That's interesting, did they link statically to it or something?
KKT
2024-09-26 05:22:40
`find *.dylib -type f -print0 | parallel -0 'if strings "{}" | grep -qi "jxl\|jpeg xl"; then echo "{}"; fi'` produced: `liblibplugins.dylib liblibraw.dylib liblibpersona.dylib`
Cacodemon345
2024-09-26 05:23:06
ProRAW-only?
AccessViolation_
2024-09-26 05:24:31
This moment really makes me regret not continuing my project for detecting object code reuse
KKT
2024-09-26 05:29:39
`find *.dylib -type f -print0 | parallel -0 'if strings "{}" | grep -qi "libjxl"; then echo "{}"; fi'` produced `liblibplugins.dylib`
Cacodemon345
2024-09-26 05:31:06
And the size of that?
KKT
2024-09-27 03:34:34
11.2 MB
2024-09-27 03:35:03
Traneptora
runr855 This is from version 2.5.5 of Affinity Photo
2024-09-27 10:00:19
they list the adobe DNG sdk so they may be doing it through that?
KKT `find *.dylib -type f -print0 | parallel -0 'if strings "{}" | grep -qi "libjxl"; then echo "{}"; fi'` produced `liblibplugins.dylib`
2024-09-27 10:05:00
protip: `grep -al 'libjxl' *.dylib`
2024-09-27 10:05:37
`grep -a` is `--binary=files=text` which tells it to grep files detected as binary anyway
2024-09-27 10:05:50
and `grep -l` is `-l, --files-with-matches print only names of FILEs with selected lines`
2024-09-27 10:07:31
allows you to do tricks like this
2024-09-27 10:07:34
``` $ grep -al 'eXIf' /usr/lib/*.so /usr/lib/libexiv2.so /usr/lib/libMagickCore-7.Q16HDRI.so /usr/lib/libopencv_imgcodecs.so /usr/lib/libOpenImageIO.so /usr/lib/libpng16.so /usr/lib/libpng.so /usr/lib/libspng.so ```
runr855
2024-09-27 11:19:38
Would the Adobe DNG SDK allow them to export and import .jxl files? AP2 doesn't support DNG 1.7 with JPEG XL compression
2024-09-27 11:20:45
For RAW photos they use libraw
Foxtrot
2024-09-27 11:45:51
https://community.adobe.com/t5/lightroom-classic-discussions/certain-raw-files-export-unusually-large-with-jpeg-xl/m-p/14881167
2024-09-27 11:46:45
looks like lightroom implementation isnt much good
_wb_
2024-09-27 01:17:34
it produces a jxl with alpha?
2024-09-27 01:17:39
``` Alpha: min: 64069 (0.97763) max: 65535 (1) mean: 65535 (1) median: 65535 (1) standard deviation: 3.74241 (5.71055e-05) kurtosis: 91367.7 skewness: -293.478 entropy: 5.80654e-05 ```
2024-09-27 01:17:41
why?
spider-mario
2024-09-27 02:31:05
my first guess would be a merged HDR stack
2024-09-27 02:31:19
the images don’t align perfectly and so there’s a small border
_wb_
2024-09-27 02:34:25
it's just a few pixels that are not fully opaque, and even those are over 97% opaque
2024-09-27 02:34:55
when exporting to avif or jpeg, it just drops that alpha channel, but when exporting to jxl it keeps it
2024-09-27 02:37:52
it doesn't make a big difference for compression but it is quite bad for decode speed to add unnecessary alpha channels to big images
2024-09-27 02:39:56
oh wait
2024-09-27 02:40:11
looks like they do some non-standard setting of faster_decoding
2024-09-27 02:40:29
which does something messed up when there's alpha, it seems
2024-09-27 02:41:26
``` bash-3.2$ cjxl skyline_cemetery_20240628_0J7A5396-HDR-2.jxl -d 1 skyline_cemetery_20240628_0J7A5396-HDR-2.jxl.jxl -e 6 JPEG XL encoder v0.11.0 0.11.0 [NEON] Encoding [VarDCT, d1.000, effort: 6] Compressed to 5548.6 kB including container (1.377 bpp). 6954 x 4636, 10.394 MP/s [10.39, 10.39], , 1 reps, 12 threads. bash-3.2$ cjxl skyline_cemetery_20240628_0J7A5396-HDR-2.jxl -d 1 skyline_cemetery_20240628_0J7A5396-HDR-2.jxl.jxl -e 6 --faster_decoding=3 JPEG XL encoder v0.11.0 0.11.0 [NEON] Encoding [VarDCT, d1.000, effort: 6] Compressed to 62014.7 kB including container (15.389 bpp). 6954 x 4636, 16.259 MP/s [16.26, 16.26], , 1 reps, 12 threads. ```
2024-09-27 02:42:43
<@179701849576833024> could you take a look? seems like faster_decoding is causing some really bad choices for alpha
2024-09-27 02:44:01
It doesn't happen on images without alpha, just when there's an alpha channel: ``` bash-3.2$ cjxl skyline_cemetery_20240628_0J7A5396-HDR-2.jxl.ppm -d 1 skyline_cemetery_20240628_0J7A5396-HDR-2.jxl.ppm.jxl -e 6 -x color_space=Rec2100PQ JPEG XL encoder v0.11.0 0.11.0 [NEON] Encoding [VarDCT, d1.000, effort: 6] Compressed to 5537.4 kB (1.374 bpp). 6954 x 4636, 11.637 MP/s [11.64, 11.64], , 1 reps, 12 threads. bash-3.2$ cjxl skyline_cemetery_20240628_0J7A5396-HDR-2.jxl.ppm -d 1 skyline_cemetery_20240628_0J7A5396-HDR-2.jxl.ppm.jxl -e 6 -x color_space=Rec2100PQ --faster_decoding=3 JPEG XL encoder v0.11.0 0.11.0 [NEON] Encoding [VarDCT, d1.000, effort: 6] Compressed to 5592.8 kB (1.388 bpp). 6954 x 4636, 17.512 MP/s [17.51, 17.51], , 1 reps, 12 threads. ```
jonnyawsom3
_wb_ <@179701849576833024> could you take a look? seems like faster_decoding is causing some really bad choices for alpha
2024-09-27 02:46:55
Alpha defaults to lossless currently even with a lossy quality set, right? So it's just the usual bloat from faster decoding of lossless files
2024-09-27 02:49:12
Try adding `-a 1` too
_wb_
2024-09-27 03:00:10
Yeah but the gap between default and faster decoding should not be that big, that's ridiculous
2024-09-27 03:11:19
It's storing alpha almost uncompressed, looking at that bpp difference. Something must be very wrong.
jonnyawsom3
2024-09-27 03:23:24
https://github.com/libjxl/libjxl/issues/3532
2024-09-27 03:23:46
Seems like 3 and 4 are affected now too