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?

AccessViolation_
Foxtrot i still dont understand what problem image-rs has with adopting jxl... if they want specs for free they can just come here and grab drafts
2024-10-09 04:30:56
My interpretation of their messages is that they've got some bias or other unmentioned reason for not wanting to support JPEG XL. They simultaneously think some formats not having open specs is fine, but it apparently only becomes an issue when it applies to JPEG XL. This basically tells me all I need to know, this is only something you'd say if you specifically held a grudge against it, it reads like they think something is being unfairly taken from them: > But I'd imagine some users may feel differently (especially JXL's "enthusiastic" supporters who hope it will one day replace all other image formats...) I could be wrong, but I'm not holding my breath
Foxtrot
2024-10-09 05:03:49
I wonder how someone gets into developing tool for decoding image formats if they hate new and promising formats...
VcSaJen
2024-10-09 05:31:30
this sort of attitude kinda proves that guy right ('"enthusiastic" supporters'). it might help to have a more contructive mindset
jonnyawsom3
2024-10-09 05:37:42
Ideally we could round up enough interested companies to make this happen for JPEG XL https://pdfa.org/sponsored-standards
2024-10-09 05:38:11
We already want to make it open, it's just ISO rules that keep it locked inside this server
_wb_
2024-10-09 10:05:34
should I keep updating this? ๐Ÿ™‚
jonnyawsom3
2024-10-09 10:11:14
I'd almost say we need an in-between section for both wanting browers support *and* already supporting it themselves. DICOM said they want browser support, but will make do with WASM. Naturally Cloudinary, The Guardian, Shopify and Adobe already support it, and just want wider adoption. Facebook, Flickr, VESA and Intel are all waiting before rollout AFAIK
_wb_
2024-10-09 10:16:47
Facebook/Meta already supports jxl as an upload format
2024-10-09 10:18:38
Basically there is no clear separation between the two categories, but I just put companies on the left and products on the right
2024-10-09 10:19:44
(for some broad definition of "products" that includes container formats and various kinds of software)
jonnyawsom3
2024-10-09 10:23:46
Ah right, I remember it being discussed here before but thought we came to the conclusion it was some kind of iOS transcoding rather than actual support
_wb_
2024-10-09 10:26:21
No, they actually support it, even since before iOS did. You can upload jxl images on facebook from any browser or any OS, it will work. Of course they will transcode them since they cannot deliver the images as jxl, but ingress as jxl works just fine.
jonnyawsom3
2024-10-09 10:33:27
Huh, nice
HCrikki
2024-10-09 10:38:49
smugmug/flickr needs an update smacked out of em before photobucket steals their thunder. photography sites need to be able to handle current formats and raws. And even if theyre not viewable in browser it doesnt matter. The files should be *downloadable* - whats shown in browsers is lower quality recompressed versions in multiple resolutions anyway Additionally, web services that have their own apps can support jxl regardless of browsers. Serve bloated jpgs and pngs to chrome, fast small jxl to your apps as competitive advantage even
Demiurge
_wb_ should I keep updating this? ๐Ÿ™‚
2024-10-09 10:53:22
yeah lol. And move Guardian to "already support" :)
Quackdoc
Quackdoc whether they choose to go with jpegxl-rs or jxl-oxide I dunno, I need to sleep, but at least I have them another option
2024-10-10 01:22:30
they merged jxl-oxide
Meow
_wb_ should I keep updating this? ๐Ÿ™‚
2024-10-10 05:02:50
Could Pixelmator Pro be counted?
HCrikki
2024-10-10 05:11:33
Ladybird sure should, as an actually independant browser that first made its own jxl decoder as part of serenity then integrated libjxl. for android users, Fossify Gallery - people have been waiting forever for one and awareness needs to be raised (not even mentioned in supported software or the info site currently)
2024-10-11 12:15:16
checked package lists, seems all editions of *ubuntu 24.10 ship libjxl (0.10) unlike the main edition?
AccessViolation_
_wb_ should I keep updating this? ๐Ÿ™‚
2024-10-11 08:17:19
Worth mentioning that JPEG XL runs on Doom <:KekDog:805390049033191445> <https://github.com/ZDoom/gzdoom/pull/2133/>
Cacodemon345
2024-10-11 08:17:39
That one got reverted though.
AccessViolation_
2024-10-11 08:17:59
Ah, damn
CrushedAsian255
2024-10-11 08:18:04
why?
Quackdoc
2024-10-11 08:40:36
wasn't it compiler issues?
2024-10-11 08:41:11
yeah https://github.com/ZDoom/gzdoom/commit/53d8a5bb2cb3b4f5576d9286731ad5a4bd972949
2024-10-11 08:41:38
I wonder if jxl-oxide could be used here [Hmm](https://cdn.discordapp.com/emojis/1113499891314991275.webp?size=48&quality=lossless&name=Hmm)
Cacodemon345
2024-10-11 08:42:05
The library was also deemed too big, and unfinished.
username
2024-10-11 08:43:14
I remember it's one of the reasons this pull request was created for libjxl https://github.com/libjxl/libjxl/pull/2766
2024-10-11 08:45:57
but uh yeah iirc other image format support in GZDoom was put off as a consideration for the future when stuff is more mature
Quackdoc
2024-10-11 08:46:11
jxl-rs, time for a C api
Mine18
2024-10-11 10:46:30
can someone clarify this point?
Oleksii Matiash
Mine18 can someone clarify this point?
2024-10-11 10:58:13
PS can only open jxl via Camera raw plugin, but can not save as jxl
Mine18
2024-10-11 11:01:28
the recent 2kliksphilip video about image compression mentioned using photoshop to export avif and jxl, what's up with that? third party plugin or smth?
Oleksii Matiash
Mine18 the recent 2kliksphilip video about image compression mentioned using photoshop to export avif and jxl, what's up with that? third party plugin or smth?
2024-10-11 11:10:13
IDK, ps itself can't save or export to jxl or avif. Maybe it was told about lightroom? Lightroom can export to both
2024-10-11 11:10:40
Lr
Mine18
2024-10-11 11:10:50
does it have the effort paramater?
Oleksii Matiash
2024-10-11 11:11:00
No
Mine18
2024-10-11 11:11:14
that really sucks
jonnyawsom3
2024-10-11 12:02:42
Judging from the closeups in the video, it seems like effort 3... Which is essentially a glorified JPEG
CrushedAsian255
Judging from the closeups in the video, it seems like effort 3... Which is essentially a glorified JPEG
2024-10-11 12:03:47
what's the p;oint then?
jonnyawsom3
2024-10-11 12:04:26
I dunno, ask Adobe why they keep using such weird and arbitrary restrictions
CrushedAsian255
2024-10-11 12:04:32
speed?
jonnyawsom3
2024-10-11 12:09:16
It seems like they never did any testing and just chose random values. DNG is tiles between group sizes 2 and 3, with faster decoding which cripples lossless compression, fixed effort 3 export in lightroom and [incorrect distance settings](https://community.adobe.com/t5/camera-raw-discussions/artifacts-with-super-resolution-on-lossy-compressed-dng-with-cr16/m-p/14153772#M23367) at launch Strangely the last was by MadManChan, who has been on the libjxl repo and posted to Reddit about converting his gallery to JXL and supporting the format. Yet there seems to be misunderstandings about the settings
CrushedAsian255 speed?
2024-10-11 12:10:42
Could be that they based it on speeds before chunked encoding was added, so someone would need to tell them to increase it after 0.10, but there's so many strange quirks I'm not sure that's why
2024-10-11 12:11:43
Apparently he's actually in this server, not sure if the account is active though
Oleksii Matiash
2024-10-11 12:14:07
Adobe is just a deaf wall to speak with. I reported them a bug in Lightroom 2 years ago, guess what they did with it.
2024-10-11 12:14:56
I ended up writing my own app to do what lr cant due to that bug
afed
2024-10-11 01:07:00
```Added jxl support - #1358 Added avif support(via external C library, not enabled by default) - #1358``` https://github.com/qarmin/czkawka/releases/tag/8.0.0
jonnyawsom3
2024-10-11 03:07:48
> Added basic libavif library support(only 8bit, used C library, not enabled by default) > Added support for jxl files (only basic 8 bit RGB/RGBA files, with not optimal performance - it is really slow)
Quackdoc
2024-10-11 06:07:06
originally for some reason I though jxl was added via gdk, but apparently its oxide
Tirr
2024-10-11 06:39:46
(without rayon)
raspin7932
2024-10-12 03:08:38
Does AVIF require a separate implementation or is it using AV1?
Quackdoc
2024-10-12 03:12:07
av1
Demiurge
2024-10-12 10:49:39
well it still requires libavif
2024-10-12 10:49:43
or libheif
2024-10-12 10:50:01
it's a separate implementation...
2024-10-12 10:51:25
the only thing it's able to reuse is libdav1d, assuming that's the decoder being used.
2024-10-12 10:51:44
but that isn't enough to handle an avif image by itself.
Quackdoc
2024-10-13 03:08:50
if you only care about a single frame, you can usually get away with just an mp4demuxer, but yeah, you need a full avif demuxer for a proper impl
CrushedAsian255
2024-10-13 03:20:23
for a supposedlyy open format it has a lot of reliance on the miaf heif specs
2024-10-13 03:20:30
which cost more than jxl
Arcane
2024-10-13 04:00:41
perk
2024-10-13 04:01:26
Cool button, ignore me pressing random stuff
_wb_
2024-10-13 06:39:22
Lol, I didn't know that bot could reply in-channel, I thought I had configured them to output only to <#805414133788180491>
Quackdoc if you only care about a single frame, you can usually get away with just an mp4demuxer, but yeah, you need a full avif demuxer for a proper impl
2024-10-13 06:40:05
That will not work if there's an alpha channel...
CrushedAsian255
_wb_ Lol, I didn't know that bot could reply in-channel, I thought I had configured them to output only to <#805414133788180491>
2024-10-13 07:35:39
i think it's because it has Admin permission
Quackdoc
_wb_ That will not work if there's an alpha channel...
2024-10-13 07:47:38
you could probably get away with treating any second track that is monochrome as alpha, It's not super reliable, but I wouldn't be surprised if plenty of apps would never run into issues with it
_wb_
2024-10-13 09:19:07
It could also be a depth map
CrushedAsian255
2024-10-13 10:07:48
who is actually using avif with a depth map though
Demiurge
2024-10-14 10:53:47
I hate discord and I also hate discord bots
2024-10-14 10:54:48
And I hate how no matter how many times you mute the bot spam channel it's never actually muted
CrushedAsian255
2024-10-14 11:04:01
Itโ€™s cause youโ€™re getting pinged
2024-10-14 11:04:10
Pings bypass the mute
Foxtrot
2024-10-14 11:41:38
Can't we get rid off the bot?
lonjil
2024-10-14 11:42:31
you could just make it not ping people
w
2024-10-14 11:45:01
I vote for getting rid of the bot
CrushedAsian255
2024-10-14 12:59:27
I vote for it not pinging people
2024-10-14 12:59:37
Otherwise how would things like levels work
Quackdoc
2024-10-14 01:52:23
the level things kinda silly, I mean look at me, I type in broken sentences a lot so my score skyrocketed lol
CrushedAsian255
2024-10-14 02:04:34
Yeah I do that a lot on mobile
2024-10-14 02:04:39
Donโ€™t do it as much on desktop though
2024-10-14 02:04:44
(Iโ€™m currently on mobile)
2024-10-14 02:05:42
Some levelling bots have a thing where it only counts once per minute to remedy that
2024-10-14 02:05:48
Not sure if Arcane does
spider-mario
Quackdoc the level things kinda silly, I mean look at me, I type in broken sentences a lot so my score skyrocketed lol
2024-10-14 03:08:46
I believe itโ€™s supposed to account for that by not counting messages within one minute of one another, or something like that
Foxtrot
2024-10-14 03:51:44
Not pinging would be enough for me if possible.
_wb_
2024-10-14 04:05:46
If it went well, it should now only ping you if you get a new role, not if it's only a level change.
Demiurge
CrushedAsian255 Pings bypass the mute
2024-10-14 04:40:38
Because discord sucks
RaveSteel
2024-10-14 04:43:26
Yes
2024-10-14 04:43:44
And it gets worse every year
spider-mario
2024-10-14 04:55:53
thankfully, the levels are more and more spaced out as you gain them
2024-10-14 04:55:59
therefore so are the pings
yoochan
2024-10-14 06:13:17
Indeed the bot pings are too rare to be a real annoyance
jonnyawsom3
2024-10-14 06:55:10
I've been getting pings for every level, so now it's a reminder of "Oh god just how much did I talk about upsampling last night" since there's no roles higher
CrushedAsian255
2024-10-14 11:29:29
Why do some websites think it's a good idea to use quality 100 JPEGs on their website
2024-10-14 11:29:34
might as well use PNG at that point
2024-10-14 11:30:24
quality 100 jpeg: 1.2 MB png: 1.5 MB (probably would be smaller if source was lossless)
2024-10-14 11:30:42
jpeg xl -d 1: 250 kB
jonnyawsom3
2024-10-14 11:34:20
I was actually talking to an artist earlier who's been using max quality JPEGs because the gallery sites don't support WebP or JXL. Pointed out that using PNG with a run of PINGO (That they already have installed) would probably be about equal or smaller since they do flat colors
username
2024-10-14 11:35:34
depending on the site it might secretly support WebP (Edit: I just realized you didn't specify it as being one singular site but what I said still kinda stands)
CrushedAsian255
2024-10-14 11:40:30
currently im on the amnesty international website
VcSaJen
CrushedAsian255 jpeg xl -d 1: 250 kB
2024-10-15 02:12:43
-d 1 isn't really Q100
CrushedAsian255
VcSaJen -d 1 isn't really Q100
2024-10-15 02:19:21
i know but you don't need q100 for a background on the web
2024-10-15 02:19:38
my point was why are they using lossless / near-lossless for web backgorunds
HCrikki
2024-10-15 03:41:05
develop locally on intranet or fast fiber and you lose touch with web performance
2024-10-15 03:42:08
sites like epic are super bad at this, a single page can weight over 50 megabytes with giant pngs and jpgs exceeding your monitor's resolution
Meow
2024-10-15 04:44:53
In my tests JXL d1.0 is closer to Jpegli q92
CrushedAsian255
HCrikki sites like epic are super bad at this, a single page can weight over 50 megabytes with giant pngs and jpgs exceeding your monitor's resolution
2024-10-15 05:32:30
And that giant gif
Meow In my tests JXL d1.0 is closer to Jpegli q92
2024-10-15 05:32:57
Is jpegli the best in class jpeg encoder?
Meow
2024-10-15 05:43:54
Absolutely the best for above medium quality
2024-10-15 05:45:10
literally JPEG JXL
CrushedAsian255
Meow literally JPEG JXL
2024-10-15 06:58:22
So JPEG XL with Huffman and 8x8 only?
_wb_
2024-10-15 07:00:36
And a poor man's version of adaptive quantization, and no gaborish/epf
CrushedAsian255
2024-10-15 07:01:34
And no patches or fun Modular stuff
2024-10-15 07:01:55
Since when did JPEG support other colour spaces ? ICC?
_wb_
2024-10-15 07:02:53
Yeah it's an ICC profile that tries to squeeze XYB in an uint8 range
2024-10-15 07:03:57
Though probably it is safer to use regular ycbcr so you don't get green images in viewers that cannot handle ICC profiles
2024-10-15 07:04:22
(or a flash of green in those that apply it only afterwards)
CrushedAsian255
2024-10-15 07:05:22
What if the image is mainly green?
2024-10-15 07:05:37
Like a photo of a grassy field
2024-10-15 07:05:46
Then I want it to be green
2024-10-15 07:07:37
Also JPEG XL should be renamed to JPEG cause now JPEG (comparatively) now has the eXtra Large file sizes
VcSaJen
2024-10-15 07:21:21
\*flashbacks to USB 3.0/3.1 Gen 1/3.2 Gen 1x1*
CrushedAsian255
VcSaJen \*flashbacks to USB 3.0/3.1 Gen 1/3.2 Gen 1x1*
2024-10-15 07:23:01
JPEG 2024 AI XRSTL - Trust Systems NFT DNA Draft International Standard
2024-10-15 07:23:25
Leaked new spec name for JPEG and USB collab
2024-10-15 07:24:54
Off _wb\_ JXL DNG . WebP
Quackdoc
VcSaJen \*flashbacks to USB 3.0/3.1 Gen 1/3.2 Gen 1x1*
2024-10-15 07:26:33
you know, this was never a real issue. tech dudes literally made it an issue
2024-10-15 07:28:20
USBIF has always defined terms that are supposed to be used. USB hi-speed, usb superspeed, usb superspeed+ etc. then when usb-c did roll around, they revised the names to literally USB5gbps, USB10gbps, USB20gbps etc.
2024-10-15 07:28:41
but techbros and media are idiots
Mine18
2024-10-15 07:29:52
the problem is that not everyone uses the data naming scheme, or lists all the compatibilities of the port (power, dp, data, tb)
VcSaJen
Quackdoc USBIF has always defined terms that are supposed to be used. USB hi-speed, usb superspeed, usb superspeed+ etc. then when usb-c did roll around, they revised the names to literally USB5gbps, USB10gbps, USB20gbps etc.
2024-10-15 07:31:20
Bloat
Quackdoc
Mine18 the problem is that not everyone uses the data naming scheme, or lists all the compatibilities of the port (power, dp, data, tb)
2024-10-15 07:31:44
USB-IF certified products all list the port/cable speed
2024-10-15 07:32:02
Mobos, Laptops etc. the exception being ports on devices that are properly color coded
Demiurge
_wb_ Though probably it is safer to use regular ycbcr so you don't get green images in viewers that cannot handle ICC profiles
2024-10-15 09:20:34
that's not really the problem. The problem is the missing app14 header marking the file as RGB...
2024-10-15 09:22:21
Otherwise almost everything would support XYB JPEG by now
jonnyawsom3
CrushedAsian255 So JPEG XL with Huffman and 8x8 only?
2024-10-15 10:46:34
It's almost the same as effort 3 lossy
lonjil
2024-10-15 10:53:05
I don't think that's right
CrushedAsian255
2024-10-15 11:10:13
Latest Immich update now uses Jpegli for jpeg encoding
2024-10-15 11:10:21
_wb_
lonjil I don't think that's right
2024-10-15 11:23:58
In terms of coding tools I think it's more or less correct. But jxl still has better entropy coding, so there's still that ~20% gap.
damian101
lonjil I don't think that's right
2024-10-15 12:10:40
what doesn't look right to you?
lonjil
what doesn't look right to you?
2024-10-15 12:11:39
I was responding to jonnyawsom3 saying that jpegli is almost the same as libjxl vardct e3
damian101
2024-10-15 12:11:57
ah
jonnyawsom3
2024-10-15 12:29:51
Yeah, in terms of quality they look quite similar, since it's 8x8 with adaptive quant and optionally XYB
CrushedAsian255
2024-10-15 12:32:04
> Better JPEG compression > Immich now uses [Jpegli](https://opensource.googleblog.com/2024/04/introducing-jpegli-new-jpeg-coding-library.html), a new library leveraging the advancements of JPEG XL to shrink JPEG file size at the same (or higher) quality. This change narrows the gap between JPEG and WebP compression considerably, especially at high quality.
A homosapien
2024-10-15 12:36:27
Jpegli even outperforms webp at higher quality ranges ๐Ÿ˜Ž
jonnyawsom3
2024-10-15 12:36:39
Strange thing is, there's not a single reference to `jpegli` anywhere else on the github
CrushedAsian255
A homosapien Jpegli even outperforms webp at higher quality ranges ๐Ÿ˜Ž
2024-10-15 12:37:02
It does?
2024-10-15 12:37:06
What cutoff?
2024-10-15 12:37:16
Iโ€™m still telling it to use 480p WebPs for thumbnails
2024-10-15 12:37:23
Quality 90
jonnyawsom3
lonjil I don't think that's right
2024-10-15 12:37:46
^
CrushedAsian255
CrushedAsian255 Iโ€™m still telling it to use 480p WebPs for thumbnails
2024-10-15 12:38:10
Would Jpegli help here?
jonnyawsom3
2024-10-15 12:39:04
So long as it's quality 90, it should do
A homosapien
2024-10-15 12:40:20
I would say for visually lossless images, jpegli comfortably outpaces webp
CrushedAsian255
2024-10-15 12:40:50
How does Jpegli quality numbers correspond to actual perceptual quality ?
lonjil
2024-10-15 12:41:27
d=1.0 -> very good
CrushedAsian255
2024-10-15 12:42:13
D = Q?
jonnyawsom3
2024-10-15 12:43:29
Jpegli has the same quality and distance system as JXL, so quality 90 is distance 1
2024-10-15 12:44:37
There's once or twice WebP beats it with specific method settings, but overall cjpegli set to the same quality number beats it https://cloudinary.com/blog/jpeg-xl-and-the-pareto-front#the_lossy_pareto_front
CrushedAsian255
2024-10-15 12:46:40
Someone could make WebPli? Or does the spec fundamentally make that infeasible we
HCrikki
2024-10-15 12:46:59
using cjpegli you can target an exact filesize and it'll suit your bw/preload strategy for thumbnails or size for current webp versions and still be progressive
lonjil
CrushedAsian255 Someone could make WebPli? Or does the spec fundamentally make that infeasible we
2024-10-15 12:47:08
someone would need to figure out if there are any tricks you could do to improve it
CrushedAsian255
2024-10-15 12:48:00
Can Jpegli images not load properly on some systems? I think I remember hearing about that
HCrikki
2024-10-15 12:49:26
dont use xyb, it just decreases filesize **further** but isnt necessary for more bit-efficient jpgs than files generated by mozjpg and webp
CrushedAsian255
2024-10-15 12:49:38
I canโ€™t control what Immich is doing
2024-10-15 12:49:44
I do not know what they are using
A homosapien
CrushedAsian255 Someone could make WebPli? Or does the spec fundamentally make that infeasible we
2024-10-15 12:55:11
Yes, but making webp target the visually lossless quality range just doesn't make sense unfortunately
2024-10-15 12:56:02
The format is hard limited to tv range 420 yuv, it literally can't reach visually lossless
2024-10-15 12:58:20
So by nature webp performs really well in lower quality ranges
CrushedAsian255
HCrikki dont use xyb, it just decreases filesize **further** but isnt necessary for more bit-efficient jpgs than files generated by mozjpg and webp
2024-10-15 01:03:41
Does xyb break things?
A homosapien
2024-10-15 01:07:40
It breaks things in the sense that a lot of apps are not color managed
HCrikki
2024-10-15 01:07:48
as far as i know, xyb requires your app to have color management active at least. on windows, apps still default to lcms inactive. if you ship to only your own apps (ie youre running a web service to sends/displays images directly or only to your own apps) you could use it but its preferable to stick to mainstream accepted parameters
CrushedAsian255
2024-10-15 01:08:41
Is xyb default
A homosapien
2024-10-15 01:08:59
You have to specify the `--xyb` flag
CrushedAsian255
2024-10-15 01:09:02
Good
2024-10-15 01:09:16
Even without xyb is it still beating WebP ?
lonjil
2024-10-15 01:09:30
the graph above was not with xyb afaik
HCrikki
2024-10-15 01:10:54
seemed so. moreso, within the compatibility constrainst of libjpg6.2 (the specification level that gained the most mainstream acceptance)
CrushedAsian255
2024-10-15 01:12:18
So they should be fine on compatibility front?
2024-10-15 01:13:00
If still better than WebP why ever use WebP other than Google page rank nonsense
HCrikki
2024-10-15 01:13:26
naturally always check. workflows change, and sometimes tools dont properly take into consideration new concepts
2024-10-15 01:14:33
webp is mainly used as heavily recompressed cached versions of whats still uploaded and used as jpg/png original images
2024-10-15 01:15:31
you can serve more efficiently smaller/resized jpg versions of the originals just fine without another format bloating your pipeline
CrushedAsian255
2024-10-15 01:17:42
So for image server where quality is important use Jpegli ?
HCrikki
2024-10-15 01:23:16
depends on your project but its one way to get even more efficiency from your current use of the jpg format. at low compression/high quality, average user wont notice much difference and storage consumption difference is essentially a rounding error
2024-10-15 01:23:45
progressive loading would be more important imo since webp completely lacks any form of it
CrushedAsian255
2024-10-15 01:23:46
Iโ€™m just wondering for my Immich server
HCrikki progressive loading would be more important imo since webp completely lacks any form of it
2024-10-15 01:24:05
Do Jpegli JPEGs progressive by default ?
jonnyawsom3
2024-10-15 01:28:10
Yes
CrushedAsian255
2024-10-15 01:28:24
Does Jpegli add any markers to the file that will confirm it is a Jpegli encoded file?
spider-mario
HCrikki as far as i know, xyb requires your app to have color management active at least. on windows, apps still default to lcms inactive. if you ship to only your own apps (ie youre running a web service to sends/displays images directly or only to your own apps) you could use it but its preferable to stick to mainstream accepted parameters
2024-10-15 01:31:55
XYB JPEGs donโ€™t need apps to be fully colour-managed, only to at least take image profiles into account and convert that to, say, sRGB
2024-10-15 01:32:07
the Photos app on Windows 10 did that, iirc
2024-10-15 01:32:23
(on Windows 11, at last, it seems to take the monitor profile into account as well)
HCrikki
2024-10-15 01:35:31
iinm photos app does not take this into consideration when editing images - shows xyb jpegli fine, shows green mess when editing it. its just safer to not use xyb since by the time its support is no longer problematic jpegxl would have gained more acceptance
CrushedAsian255
2024-10-15 01:38:04
Why green though
jonnyawsom3
CrushedAsian255 Does Jpegli add any markers to the file that will confirm it is a Jpegli encoded file?
2024-10-15 01:38:17
One way to check is by seeing it it has a strange quantization table, since it does 'poor mans adaptive quantization'
CrushedAsian255 Why green though
2024-10-15 01:38:45
The JPEG is RGB, but the ICC turns it into XYB, with the green channel being used the most
CrushedAsian255
One way to check is by seeing it it has a strange quantization table, since it does 'poor mans adaptive quantization'
2024-10-15 01:39:13
Like 1 2 2 8 4 3 9 4 1 4 2 2 3 9 8 7 2 2 6 5 9 8 1 1 Etcโ€ฆ V
The JPEG is RGB, but the ICC turns it into XYB, with the green channel being used the most
2024-10-15 01:39:27
For the Y channel?
jonnyawsom3
2024-10-15 01:40:04
Non-XYB is YCbCr, XYB is an RGB Jpeg
CrushedAsian255
One way to check is by seeing it it has a strange quantization table, since it does 'poor mans adaptive quantization'
2024-10-15 01:42:00
DQT right?
HCrikki
2024-10-15 01:42:44
id too like to have encoder details in metadata, like when gimp, photoshop and libav specificy they were used to generate a file. much simpler to identify and manage a collection in need of (re?)compressing
CrushedAsian255
2024-10-15 01:43:22
OK ly problemvkeoigf
2024-10-15 01:43:31
แปž lu problem ฤ‘i PVE hร 
2024-10-15 01:43:33
wtf
2024-10-15 01:43:38
Only problem is Overhead**
2024-10-15 01:44:46
ฤiแป‡n thoแบกi cแปงa em muแป‘n nรณi tiแบฟng Viแป‡tโ€ฆ
jonnyawsom3
CrushedAsian255 DQT right?
2024-10-15 01:54:16
Comparing it to a mozjpeg file, it has 3 tables, one per plane, with two of them reaching quantization values of 200 while mozjpeg doesn't even hit 100
CrushedAsian255
2024-10-15 01:54:45
Can JPEG have multiple sets of quantisation tables per image
2024-10-15 01:54:51
Like for different strips
2024-10-15 01:55:03
Ie can you DQT after a RST?
paperboyo
_wb_ (or a flash of green in those that apply it only afterwards)
2024-10-15 02:59:38
> (or a flash of green in those that apply it only afterwards) Oh, interested: do any browsers do this?
A homosapien
2024-10-15 03:42:21
None that I know of
CrushedAsian255
2024-10-15 08:24:28
Dont testing
2024-10-15 08:24:30
Doing*
Meow
2024-10-19 06:39:46
SECRETLY testing JXL files on a wiki with my customised skin on I2P
2024-10-22 06:36:39
This even supports JXL and... QOI! https://compressjpg.io
CrushedAsian255
2024-10-22 06:41:04
that seems like a nice clever site
Oleksii Matiash
2024-10-22 07:03:23
IrfanView plugin is updated, however no changelog is available. Exif and color profiles in jpg-in-jxl are still not supported
RaveSteel
2024-10-22 11:56:22
While still quite early, there is now active development in darktable to support JXL DNGs https://github.com/darktable-org/rawspeed/pull/755
Demiurge
Meow This even supports JXL and... QOI! https://compressjpg.io
2024-10-22 01:02:56
What "algorithm" does it use? Also it can only convert from those formats, not to
Meow
2024-10-22 01:03:18
Uh that's silly
jonnyawsom3
Oleksii Matiash IrfanView plugin is updated, however no changelog is available. Exif and color profiles in jpg-in-jxl are still not supported
2024-10-22 03:21:16
I could be wrong, but seems to have slightly faster decoding. Lower bitdepths still load as 24bit, and the new transparency option makes my images brown if enabled :P
Oleksii Matiash
I could be wrong, but seems to have slightly faster decoding. Lower bitdepths still load as 24bit, and the new transparency option makes my images brown if enabled :P
2024-10-22 04:04:58
Hmm, yes, seems so. 300 ms for 80 MP jpg-in-jxl and 90 ms for 22 MP lossy jxl. Nice
jonnyawsom3
It was a bugfix > Fixed an issue where it wasnโ€™t possible to select .JXL files for your wallpaper slideshow.
2024-10-23 04:50:52
Looking back on that, I wonder if it *was* a genuine mistake by an engineer who was thinking of JXR
2024-10-23 05:07:56
Unsurprisingly, animated just does 1 frame https://bsky.app/profile/jonnyawsom3.bsky.social/post/3l75r6tsr4g2c
2024-10-24 05:56:57
Not sure when this happened https://www.amazon.com/gp/help/customer/display.html?nodeId=GGU2SU8Y22DZYRMQ
CrushedAsian255
2024-10-24 05:58:00
What happened?
veluca
2024-10-24 05:58:40
> Photos: JPEG, JPEG XL presumably
CrushedAsian255
2024-10-24 06:00:22
ooh nice
jonnyawsom3
2024-10-24 06:00:39
Noticed it while checking the wiki page for updates
Meow
2024-10-24 09:04:55
Hmm Bluesky supports uploading JXL but the results are horrible
2024-10-24 09:05:48
A larger image regardless Alpha channel is converted to a 2000 * 2000 pixels JPEG file
2024-10-24 09:12:25
Even 8-bit PNG is converted
jonnyawsom3
Unsurprisingly, animated just does 1 frame https://bsky.app/profile/jonnyawsom3.bsky.social/post/3l75r6tsr4g2c
2024-10-24 03:59:48
Me and Kampidh had a brief discussion about it in the comments of that https://bsky.app/profile/jonnyawsom3.bsky.social/post/3l776qx7gkf2f
Mine18
2024-10-25 10:30:35
any notable websites that serve jxl? other than jxl demo sites
CrushedAsian255
2024-10-25 10:31:28
lots of i2p hentai sites lol
lonjil
2024-10-25 10:34:06
Some websites that use Cloudinary have opted into it
2024-10-25 10:34:50
Actually, <@794205442175402004> how are the JXL statistics at Cloudinary these days?
_wb_
2024-10-25 10:37:03
Let me get some up to date numbers. Two weeks ago we saw 27.24% of requests coming from a user agent that signals jxl support, and we delivered about 285 million jxl images per day.
lonjil
2024-10-25 10:42:19
oh, that's a large increase in images per day over last time you reported figures!
CrushedAsian255
_wb_ Let me get some up to date numbers. Two weeks ago we saw 27.24% of requests coming from a user agent that signals jxl support, and we delivered about 285 million jxl images per day.
2024-10-25 10:54:15
Are most Safari / WebKit based?
2024-10-25 10:54:40
Also Iโ€™m guessing it prioritises JXL when available?
_wb_
CrushedAsian255 Are most Safari / WebKit based?
2024-10-25 10:56:52
Yes, nearly all. Mostly iPhones. The market share of non-Safari browsers with jxl support is very tiny. I can see some Thorium, Waterfox, Pale Moon etc but the numbers are in the 0.00something percents.
CrushedAsian255
2024-10-25 10:57:25
I got my parents onto Thorium so add another 0.00001% ๐Ÿ˜„
_wb_
CrushedAsian255 Also Iโ€™m guessing it prioritises JXL when available?
2024-10-25 10:59:00
Depends on customer settings. If jxl is enabled and they use f_auto, then yes it prioritizes jxl if available.
CrushedAsian255
_wb_ Depends on customer settings. If jxl is enabled and they use f_auto, then yes it prioritizes jxl if available.
2024-10-25 10:59:14
is there a way to get the original image?
_wb_
2024-10-25 11:04:27
In typical Cloudinary hosted urls, you can just remove the transformations from the url and that gives you a url for the original
CrushedAsian255
2024-10-25 11:05:48
so
2024-10-25 11:06:05
``` https://res.cloudinary.com/cloudinary-marketing/images/f_auto/v1689095239/Web_Assets/blog/JPEG-XL_2/JPEG-XL_2-png?_i=AA ``` becomes ``` https://res.cloudinary.com/cloudinary-marketing/images/v1689095239/Web_Assets/blog/JPEG-XL_2/JPEG-XL_2-png?_i=AA ```
Mine18
_wb_ Let me get some up to date numbers. Two weeks ago we saw 27.24% of requests coming from a user agent that signals jxl support, and we delivered about 285 million jxl images per day.
2024-10-25 11:14:05
some interesting numbers!
HCrikki
2024-10-25 11:45:09
can those stats be separated for certain countries (mainly us, uk, canada, japan, germany) ? mobile-only split too if possible (gives an idea how many passive receivers can be sent jxl overnight if cdns started served em at higher priority than other formats)
2024-10-25 11:47:42
btw, for **tracked mobile users**, caniuse reports 40% mobile devices in active use in us and canada support jxl (uk and japan at 32%). whats huge is its literally fueled just by apple, chromium wouldve pushed it close to 90%
Meow
Mine18 any notable websites that serve jxl? other than jxl demo sites
2024-10-25 11:50:20
Like what I said Bluesky accepts JXL and converts to badly compressed JPEG
Mine18
Meow Like what I said Bluesky accepts JXL and converts to badly compressed JPEG
2024-10-25 12:35:33
but that's not serving jxl
_wb_
2024-10-25 12:39:00
Two weeks ago we had this: (note our traffic is probably biased towards North America and Europe) - Desktop Chrome: 17.3% - Mobile Safari with jxl support: 14.5% - Mobile Chrome: 8.4% - iOS apps, i.e. Mobile Safari UI/WKWebView without signaling jxl support: 6.6% - "Mozilla": 4.4% (not sure which browsers this actually are, not Firefox) - Edge: 4.2% - Desktop Safari with jxl support: 3.3% - Android apps: 3.1% - Mobile Safari without jxl support: 2.2% - Firefox: 2.0% - Chrome on iOS, with jxl support: 1.8% - iOS apps that do signal jxl support: 1.7% - Desktop Safari without jxl support: 1.6% Also some specific mobile apps show up: - Google (I presume the app version of search): with jxl support: 1.4% | without: 0.2% - Facebook: with jxl support: 1.3% | without: 1.2% - Instagram: with jxl support: 1.3% | without: 0.5%
2024-10-25 12:41:56
not sure how representative all of this is, in our data I also see apps of specific customers show up as user agents such as the Just Eat app and some Adidas app, and these do add up to a substantial percentage in our logs but of course that's just because we handle _all_ of the image traffic those apps generate
_wb_ Let me get some up to date numbers. Two weeks ago we saw 27.24% of requests coming from a user agent that signals jxl support, and we delivered about 285 million jxl images per day.
2024-10-25 12:50:36
The daily number for this week (or rather, for Tuesday October 22nd) went up a bit, to 317 million jxl images.
CrushedAsian255
2024-10-25 12:52:48
\*sets up a botnet just to load JXL images from cloudinary\*
Quackdoc
Mine18 any notable websites that serve jxl? other than jxl demo sites
2024-10-25 01:14:28
every (almost) cloudinary and lemmy instance for me [av1_chad](https://cdn.discordapp.com/emojis/862625638238257183.webp?size=48&quality=lossless&name=av1_chad)
Mine18
2024-10-25 01:15:30
interesting
Meow
_wb_ Two weeks ago we had this: (note our traffic is probably biased towards North America and Europe) - Desktop Chrome: 17.3% - Mobile Safari with jxl support: 14.5% - Mobile Chrome: 8.4% - iOS apps, i.e. Mobile Safari UI/WKWebView without signaling jxl support: 6.6% - "Mozilla": 4.4% (not sure which browsers this actually are, not Firefox) - Edge: 4.2% - Desktop Safari with jxl support: 3.3% - Android apps: 3.1% - Mobile Safari without jxl support: 2.2% - Firefox: 2.0% - Chrome on iOS, with jxl support: 1.8% - iOS apps that do signal jxl support: 1.7% - Desktop Safari without jxl support: 1.6% Also some specific mobile apps show up: - Google (I presume the app version of search): with jxl support: 1.4% | without: 0.2% - Facebook: with jxl support: 1.3% | without: 1.2% - Instagram: with jxl support: 1.3% | without: 0.5%
2024-10-25 01:32:58
"Not many people using JXL" โ€” Google Chrome
VcSaJen
Mine18 any notable websites that serve jxl? other than jxl demo sites
2024-10-25 02:41:52
All sites based on Shopify.
jonnyawsom3
2024-10-25 10:08:35
Don't suppose we have a member in here? https://pdfa.org/liaison-with-tc-42-brings-hdr-closer/
username
Don't suppose we have a member in here? https://pdfa.org/liaison-with-tc-42-brings-hdr-closer/
2024-10-25 10:12:42
I tried looking into this and it seems like it might just be talking about gainmaps
_wb_
2024-10-25 10:17:52
TC 42 is doing gain maps, yes. We are adding a jhgm box to jxl for them.
jonnyawsom3
2024-10-25 10:18:49
Ahh right
CrushedAsian255
_wb_ TC 42 is doing gain maps, yes. We are adding a jhgm box to jxl for them.
2024-10-25 10:31:29
Gainmaps which way round?
2024-10-25 10:31:44
Also would this allow UltraHDR jpeg reconstruction?
KKT
VcSaJen All sites based on Shopify.
2024-10-26 12:05:02
Yeah, always surprised when I see a site that's a Shopify backend and get delivered at JPEG XL.
Demiurge
Mine18 any notable websites that serve jxl? other than jxl demo sites
2024-10-26 02:13:43
Nintendo
Mine18
Demiurge Nintendo
2024-10-26 02:15:24
could you show me an instance?
CrushedAsian255
2024-10-26 02:17:09
> Cloudinary Programmable Media offers AI-powered APIs to automate image and video management, transformation and optimized delivery at scale What AI?
2024-10-26 02:17:26
What/why is an AI being used?
2024-10-26 02:17:50
Or is it just marketing
Demiurge
Mine18 could you show me an instance?
2024-10-26 02:24:12
The Nintendo website was using it for their marketing images for the Nintendo switch for example, maybe they were using shopify...
2024-10-26 02:24:25
I just returned to their website to check and for some reason they are using avif now
Quackdoc
2024-10-26 02:24:58
Nintendo uses cloudinary iirc
Demiurge
2024-10-26 02:25:03
๐Ÿค”
2024-10-26 02:25:41
๐Ÿง
CrushedAsian255
Demiurge I just returned to their website to check and for some reason they are using avif now
2024-10-26 02:27:19
AVIFs strengths really represent Nintendo: low quality
jonnyawsom3
CrushedAsian255 > Cloudinary Programmable Media offers AI-powered APIs to automate image and video management, transformation and optimized delivery at scale What AI?
2024-10-26 02:34:53
AI based image repair for low quality jpegs, outcropping, ect
CrushedAsian255
2024-10-26 02:35:14
Huh, sounds interesting
2024-10-26 02:35:23
Might have to look into that more
Meow
2024-10-26 05:07:32
I will check if Nintendo still serves me JPEG 2000
lonjil
Demiurge Nintendo
2024-10-26 07:57:04
No, the Nintendo website never used JXL. But Nintendo uses Cloudinary, which means that if you take an image link from Nintendo and change it from f_auto to f_jxl, you get a JXL.
_wb_
CrushedAsian255 Gainmaps which way round?
2024-10-26 08:04:55
Mostly HDR->SDR ones, that makes the most sense in codecs that can handle HDR.
jonnyawsom3
lonjil No, the Nintendo website never used JXL. But Nintendo uses Cloudinary, which means that if you take an image link from Nintendo and change it from f_auto to f_jxl, you get a JXL.
2024-10-26 08:08:57
I'm *pretty* sure they did, but maybe they disabled it again to save some CDN money
CrushedAsian255
_wb_ Mostly HDR->SDR ones, that makes the most sense in codecs that can handle HDR.
2024-10-26 08:19:18
*can* you do it the other way round in the spec?
Demiurge
2024-10-26 08:34:34
Why would it use avif if they use cloudinary?
lonjil
Demiurge Why would it use avif if they use cloudinary?
2024-10-26 08:38:24
because Cloudinary serves AVIF...?
2024-10-26 08:38:47
Especially to user agents that don't support JXL.
_wb_
CrushedAsian255 *can* you do it the other way round in the spec?
2024-10-26 09:11:34
Both directions are possible
Meow
2024-10-26 09:53:01
Now the Nintendo website gives my Safari 18 only JPEG and PNG
Demiurge
2024-10-26 10:05:35
I'm using Safari
2024-10-26 10:05:47
It should give jxl
lonjil
2024-10-26 10:08:05
The Nintendo website has never served JXLs as far as anyone knows
Demiurge
2024-10-26 10:08:40
I remember it used to
lonjil
2024-10-26 10:09:29
You probably remember that time when a lot of people were saying that it did, but at a closer look it was only because someone had changed a link to be f_jxl instead of f_auto
Demiurge
2024-10-26 10:11:49
I think it was f_auto
HCrikki
2024-10-26 11:09:23
even when implemented, issue is always priority. if your client/app supports jxl, it should be the top served format in increasing capacity - optional, low priority and jxl-demoting defaults a website never modifies do little good
_wb_
2024-10-26 11:59:48
Nintendo does have multiple subaccounts iirc, so could be they have jxl enabled in one but not another, I dunno
Meow
2024-10-26 12:46:12
I tested on the U.S. site
jonnyawsom3
Silikone https://assets.nintendo.com/image/upload/ar_16:9,b_auto:border,c_lpad/b_white/f_jxl/q_auto/dpr_1.0/c_scale,w_1200/ncom/en_US/products/hardware/nintendo-switch-oled-model-white-set/115461-switch-oled-white-boxart-1200x675
2024-10-26 08:13:25
Apparently Mandela punched us in the face
CrushedAsian255
lonjil But Cloudinary doesn't serve JXL by default yet
2024-10-26 08:20:57
Any reason for that?
lonjil
2024-10-26 08:21:34
You'd have to ask someone who works at Cloudinary
CrushedAsian255
lonjil You'd have to ask someone who works at Cloudinary
2024-10-26 08:22:14
Was primarily asking \_wb\_
lonjil
2024-10-26 08:22:50
by pinging me ๐Ÿค”
CrushedAsian255
2024-10-26 08:24:15
Oops
tufty
2024-10-28 12:32:21
libvips 8.16 is out now with support for JXL animation, and much better JXL metadata (icc profiles etc.) https://github.com/libvips/libvips/releases/tag/v8.16.0
Demiurge
tufty libvips 8.16 is out now with support for JXL animation, and much better JXL metadata (icc profiles etc.) https://github.com/libvips/libvips/releases/tag/v8.16.0
2024-10-28 01:32:31
Wow!
2024-10-28 01:32:43
Hell yeah, vips #1
tufty
2024-10-28 06:37:48
hehe still no HDR though ๐Ÿ˜ฆ next version maybe
jonnyawsom3
2024-10-29 11:01:15
I only just thought, bluesky is one of the few social apps with the entire app open source on Github. Wonder if JXL support could be added like it was for telegram desktop (yes uploads work on a supported browser, but that's just sending a blob to the CDN)
Dejay
2024-10-29 10:33:23
Is there already workflow to encode all images/pages of a cbr/cbz comic book archive into a single jxl with multiple frames? And a viewer to read them comfortably? This would require supporting different resolutions per image frame and layouts like side by side plus wide screen (double) pages etc
2024-10-29 10:34:30
Also theoretically patches could be used there too, to compress the text glyphs like for scanned documents. And then combine multiple issues of a comic book into a volume and single jxl for better compression
2024-10-29 10:35:45
I guess the question is if it's worth the hassle. Currently using NeeView to read cbz files with jxl inside
spider-mario
2024-10-29 10:40:49
I doubt it would be
2024-10-29 10:41:44
the theoretical patch advantage is the only one I see right now and itโ€™s still quite theoretical indeed
Dejay
2024-10-29 10:42:42
I mean for scanned documents or books using patches to extract a rough "font" and compress the document would be worthwhile. So the code to use that for comics would already be there. But it's probably very marginal gains for comics / webtoons
Meow Looks like there are over 10 thousand .jxl on the main page
2024-10-29 10:46:41
This mentions "in browser translated webtoons" - how does that work? image based ocr extraction and translation all done in browser?
2024-10-29 10:47:49
Not that I'd ever want to read an automatically translated comic ๐Ÿ˜„ Just curious. Automatic Japanese/Korean translation has to be pretty wacky
Meow
2024-10-30 02:45:31
I don't know Russian so I can't say if they are automatically translated, or they are just a huge collection of translated comics
2024-10-30 02:46:13
Those JXL thumbnails are barely readable however
Dejay
Meow Those JXL thumbnails are barely readable however
2024-10-30 02:51:01
Well I can't access the i2p domain, I guess you need to install i2p for that
Meow
2024-10-30 02:52:01
I meant the quality of those is bad. Possibly worse than d3.0
Dejay
2024-10-30 02:52:21
Ah
2024-10-30 02:52:23
Theoretically you could encode multiple languages into one jxl using different set of patches / glyphs
2024-10-30 02:52:38
And reuse the same image background
Meow
2024-10-30 02:53:47
Even a thumbnail is so small, the main page still loads dozens of MiBs
Dejay
2024-10-30 02:53:52
Basically have an image and multiple text layers
2024-10-30 02:54:58
Would the html api for jxl images support multiple frames and layers that can be displayed side by side or overlayed using javascript code?
Meow
2024-10-30 02:55:43
This should be answered by a JXL developer
Dejay
2024-10-30 02:57:26
This is probably more a question of web standard
2024-10-30 03:20:27
From what I gather the javascript browser api doesn't support anything like this, so you'd need a separate "ImageElement" object for each layer or frame in a jpegXL file
Meow
2024-10-30 03:32:22
I know SVG can do that
Demiurge
2024-10-30 10:30:18
I mean there is likely to be redundancy between pages of a comic book
2024-10-30 10:32:06
So much redundancy that a cb7 of jpeg often compresses better than converting the jpegs to jxl
2024-10-30 10:32:27
So I don't think it's a theoretical advantage
2024-10-30 10:32:38
Multi page jxl like tiff would be cool
2024-10-30 10:32:51
Otherwise you need to wrap it in a tiff container
2024-10-30 10:33:11
Which isn't that bad...
2024-10-30 10:35:41
But it's definitely less efficient. No different than a cbz
Dejay
Demiurge So much redundancy that a cb7 of jpeg often compresses better than converting the jpegs to jxl
2024-10-30 10:59:28
Oh that's interesting. I tried this with precomp once but didn't realize it would utilize redundancy
Demiurge
2024-10-30 11:00:33
Apparently JPEGs of comic books have a lot of redundancy in them in my experience
2024-10-30 11:00:56
Or even a zip file of multiple variations of the same image
2024-10-30 11:01:54
That last case would be extremely efficient using layers in jxl
Dejay
2024-10-30 11:03:45
Yeah if you had an image editing / painting program that saves as jxl and is designed specifically to make use of jxl compression features would be most efficient.
2024-10-30 11:04:40
Huh, maybe generative AI could do this
2024-10-30 11:05:27
I imagine in a few years comic books and webtoons will be illustrated mostly using generative AI, or a mix
HCrikki
2024-10-30 11:12:42
imo some light filtering around both deep white/black could give stronger gains since noise would compress poorly in a multipage context anyway - assuming source is not an own creation but scanned/jpgs whose artifacts you couldnt initially prevent
CrushedAsian255
Dejay Yeah if you had an image editing / painting program that saves as jxl and is designed specifically to make use of jxl compression features would be most efficient.
2024-10-30 11:14:26
Still hoping for a <#824000991891554375> based image software
Dejay
CrushedAsian255 Still hoping for a <#824000991891554375> based image software
2024-10-30 11:37:11
Or maybe adapt a software that helps with translation of comic book archives / webtoons to use more efficient jxl features
2024-10-30 11:37:35
And a webviewer
spider-mario
Demiurge Apparently JPEGs of comic books have a lot of redundancy in them in my experience
2024-10-30 11:37:39
but can jxl take advantage of it?
2024-10-30 11:38:07
thatโ€™s arguably what would make the advantage theoretical or not
Dejay
2024-10-30 11:41:53
I wonder what's being taken advantage of. If it's just metadata or headers or actual 8x8 patches of jpeg data
jonnyawsom3
2024-10-30 11:43:50
Presumably 8x8 blocks, since metadata and headers are negligible by comparison
2024-10-30 11:44:34
I've also seen near linear compression when storing image alts in a 7z file
Dejay
Presumably 8x8 blocks, since metadata and headers are negligible by comparison
2024-10-30 11:45:59
I guess that would depend on the art style and if it contains actual repeating elements.
2024-10-30 11:46:45
But theoretically a specifically tuned multi page jxl compressor should be able to improve on that
jonnyawsom3
2024-10-30 11:46:54
In my case it was the same image each time with slight edits, but for the comic any white space would be compressed together for example
Dejay
2024-10-30 11:52:09
Ah now I get it... panels with slight alterations
CrushedAsian255
Dejay But theoretically a specifically tuned multi page jxl compressor should be able to improve on that
2024-10-30 11:54:20
Would multi page JXL use different frames for each page?
Dejay
2024-10-30 11:55:15
You mean different page sizes / resolution per frame? I would hope so... I kinda assumed jxl supports that?
CrushedAsian255
2024-10-30 11:55:34
No I mean like would each page be a frame or a layer?
Dejay
2024-10-30 11:56:03
Yeah
CrushedAsian255
2024-10-30 11:56:31
Wouldnโ€™t trying to open the file in any other viewer then just show the last page (top layer) only? Maybe the top layer can say something like โ€œPlease use a JXL enabled comic readerโ€ or something
Dejay
2024-10-30 11:56:45
Or maybe if you have 4 languages, you'd have 5 frames. 1 base layer + 1 text layer out of 4 that is selected by the web viewer
CrushedAsian255
Dejay Or maybe if you have 4 languages, you'd have 5 frames. 1 base layer + 1 text layer out of 4 that is selected by the web viewer
2024-10-30 11:57:16
That would be clever
Dejay
2024-10-30 11:58:18
Well ideally I imagine some sort of standard. Like with PDF where the default would be to just show the multiple pages as one long scrollable page
2024-10-30 11:58:48
I think jxl could be good for scanned documents or books with the right compressor, basically replace "raster PDF"
CrushedAsian255
2024-10-30 11:58:59
Does JXL support multiple pages?
2024-10-30 11:59:26
I know it does different frames and different layers but can it specify the concept of a page?
2024-10-30 11:59:54
frames would be the closest but not sure how the viewer could distinguish between an animation and a multi page JXL
2024-10-30 12:00:09
Can the animation frame length be infinite or something?
2024-10-30 12:00:21
Or maybe animation loops = -1 or something idk
Dejay
2024-10-30 12:00:26
Frames with no animation timing I think. But you'd definitely need to establish a "norm". Or even have specific metadata tags
jonnyawsom3
2024-10-30 12:01:47
If you use layers an unsupported viewer would just show the cover page
Tirr
2024-10-30 12:01:52
it's multipage image if animation TPS is `0xffff_ffff`
Demiurge
spider-mario but can jxl take advantage of it?
2024-10-30 12:01:54
If zip can take advantage of the redundancy then why wouldnโ€™t the superior entropy coding of jxl?
Tirr
2024-10-30 12:01:58
it's defined in that way
CrushedAsian255
Tirr it's multipage image if animation TPS is `0xffff_ffff`
2024-10-30 12:02:24
i was about to think of that myself lol
Tirr
2024-10-30 12:02:47
oh not tps, it's its inverse
CrushedAsian255
2024-10-30 12:02:53
animation duration
2024-10-30 12:02:55
just checked the spec
jonnyawsom3
Demiurge If zip can take advantage of the redundancy then why wouldnโ€™t the superior entropy coding of jxl?
2024-10-30 12:03:40
Because JXL encodes per frame/layer/page, CBZ is all compressed together (I think)
CrushedAsian255
2024-10-30 12:04:05
so duration: ``` Duration = 0: non-top layer of a frame Duration = 0xffff_ffff: end of a page (next frame is new page) Else: Animation ```
Dejay
2024-10-30 12:04:07
That's why I think it would be cool if JXL supports some multi page stuff like with pdf right out of the box when it's finally added to firefox mainstream. To create a platform that people can use.
CrushedAsian255
2024-10-30 12:04:12
at least that's how i read the spec
2024-10-30 12:06:28
i guess multipage can be interpreted as an animation where the user specifies when to go to the next frame, like the STEP button on a LaserDisc player that's what I'm assuming the rationale is
jonnyawsom3
2024-10-30 12:07:37
> If duration has the value 0xFFFFFFFF, the decoder presents the next frame as the next page in a multi-page image. Directly from the spec :P
Dejay
CrushedAsian255 i guess multipage can be interpreted as an animation where the user specifies when to go to the next frame, like the STEP button on a LaserDisc player that's what I'm assuming the rationale is
2024-10-30 12:08:49
Well my ideal would be if I open a multi page JXL file in firefox, it displays it like a pdf, as all pages vertically scrollable
2024-10-30 12:08:59
Like foolproof
jonnyawsom3
Dejay That's why I think it would be cool if JXL supports some multi page stuff like with pdf right out of the box when it's finally added to firefox mainstream. To create a platform that people can use.
2024-10-30 12:09:14
I mean, it should be supported by the API already, but we don't decide what the browsers do
CrushedAsian255
> If duration has the value 0xFFFFFFFF, the decoder presents the next frame as the next page in a multi-page image. Directly from the spec :P
2024-10-30 12:09:18
i know thats what the spec says, im thinking about the rationale behind the way the spec was written
jonnyawsom3
2024-10-30 12:10:03
Yeah, I was copying it directly
CrushedAsian255
2024-10-30 12:10:11
pretty much every time i think "geez, it would be nice if jpeg xl supported feature X", feature X is actually supported and I just missed the place in the spec where it talk about it
Dejay
I mean, it should be supported by the API already, but we don't decide what the browsers do
2024-10-30 12:10:28
Yeah, outside of bitching and moaning there is not much one can do ๐Ÿ˜„
2024-10-30 12:10:44
Well a cool showcase might help
CrushedAsian255
2024-10-30 12:11:58
happened with: - named frame - page support - quantised (lossy) modular - reordered passes
jonnyawsom3
2024-10-30 12:12:00
Technically you should be able to make multi page JXLs using Kampidh's frame stitcher, would be curious if Irfanview noticed it and enabled the page buttons
CrushedAsian255
2024-10-30 12:12:17
can someone quickly generate one so i can test on macOS?
2024-10-30 12:12:59
seems like jpeg xl can do everything
jonnyawsom3
2024-10-30 12:13:08
https://github.com/kampidh/JXL-Frame-Stitcher
CrushedAsian255
CrushedAsian255 seems like jpeg xl can do everything
2024-10-30 12:13:43
apart from DCT on extra channels lol (it (mostly) makes sense though why not ๐Ÿคท)
Oleksii Matiash
Because JXL encodes per frame/layer/page, CBZ is all compressed together (I think)
2024-10-30 12:22:04
If CBZ is usual zip, then no, I believe, as zip is compressing file by file, not as one stream of data. So it can't take advantage of similarities between files inside it
jonnyawsom3
Oleksii Matiash If CBZ is usual zip, then no, I believe, as zip is compressing file by file, not as one stream of data. So it can't take advantage of similarities between files inside it
2024-10-30 12:24:20
That's why I said "All compressed together", I'm just making assumptions but it has to be as a blob otherwise there'd be no compression gains at all for just jpeg files
Oleksii Matiash
That's why I said "All compressed together", I'm just making assumptions but it has to be as a blob otherwise there'd be no compression gains at all for just jpeg files
2024-10-30 12:26:09
It would be very annoying to view such archives, as for accessing each page the whole archive has to be decompressed somewhere. So I believe it is usual zip with it's limitations
Demiurge
> If duration has the value 0xFFFFFFFF, the decoder presents the next frame as the next page in a multi-page image. Directly from the spec :P
2024-10-30 12:26:14
But how do you interpret the frame size or the canvas window size for a multi page jxl?
2024-10-30 12:26:48
How do you determine the size of each page? Is it possible for different pages to be different sizes?
2024-10-30 12:27:21
Does the spec define that? I think it was overlooked
Dejay
2024-10-30 12:30:51
Yeah different sizes and even "frame anchor" per page is supported. Just made a file with jxl frame sticher but not even gimp loads it properly
2024-10-30 12:30:59
Maybe need newest version of gimp (nope, already got latest dev version)
Demiurge
2024-10-30 12:31:32
Really?
2024-10-30 12:32:02
That's great. I hope some good altruistic person can improve software support for multi page jxl then ๐Ÿ˜‚
2024-10-30 12:32:12
Cuz that would be awesome
Dejay
2024-10-30 12:32:39
The best would probably this web / wasm viewer to show a demo
2024-10-30 12:32:52
What was the name again? I just saw that somewhere lol
2024-10-30 12:34:55
<https://github.com/tirr-c/jxl-oxide-wasm-demo>
jonnyawsom3
2024-10-30 12:36:22
I could be wrong, but I think this was using WASM decoding of extra channels in JXL files https://reakt.io/temp/
2024-10-30 12:36:40
So you *can* already do a lot in the browser
Demiurge But how do you interpret the frame size or the canvas window size for a multi page jxl?
2024-10-30 12:37:54
A page is just a frame with infinite duration, so it's still the same behaviour with dimensions in the header, cropped frames, ect
Dejay
2024-10-30 12:38:10
well jxl-oxide-wasm loads the 6mb multi frame jxl, but doesn't display it correctly
tufty
2024-10-30 12:41:53
wasm-vips has animated JXL support too https://wasm-vips.kleisauke.nl/playground/
2024-10-30 12:43:04
it's about 4.5mb of wasm that you can use in any web page, it's getting quite popular now I think
2024-10-30 12:43:52
vipsdisp 3.1 is out! it has animated and multipage JXL support too https://github.com/jcupitt/vipsdisp/releases/tag/v3.1.0
2024-10-30 12:44:16
you can load an animated webp or GIF image and save as JXL
2024-10-30 12:44:32
multipage TIFFs can be saved as multipage JXL too
2024-10-30 12:44:35
PDF too I think
2024-10-30 12:44:52
there'#s no interface for modifying duration though ๐Ÿ˜ฆ
2024-10-30 12:45:16
that vipsdisp link has linux, win and macos binaries
jonnyawsom3
2024-10-30 12:49:16
This morning I spent an hour helping my technical artist friend try and find a format that supports 16bit layers, with the big blocker being Blender's importer. Strange that multipage/layer comes up here too haha
tufty vipsdisp 3.1 is out! it has animated and multipage JXL support too https://github.com/jcupitt/vipsdisp/releases/tag/v3.1.0
2024-10-30 12:54:39
Are you sure it does multipage JXL? I can't see any mention of 0xFFFFFFFF or 4294967295 in libvips to detect a page
tufty
2024-10-30 12:55:25
oh hmmm maybe not
2024-10-30 12:56:23
if you load an animated jxl image with 0xffffffff fur the duration, you can flip though the pages with ctrl-< and >
2024-10-30 12:57:04
so kind-of I guess? libvips doesn't really distinguish between animated and multipage
jonnyawsom3
2024-10-30 12:57:31
Does the hot key also change animation frame?
tufty
2024-10-30 12:58:26
yes, if you do View / Display control bar you get a thing at the bottom
2024-10-30 12:59:12
animated images normally autopageflip, but if you clock on the burger menu you can pick multipage instead and then flip between pages by hand
2024-10-30 12:59:27
"toilet roll" mode shows an animation like a film strip
jonnyawsom3
2024-10-30 12:59:35
I guess libjxl would see the page, and just never advance since it's an infinite duration animation essentially. Although it should be a relatively simple addition at least, since TIFF is already supported and then you could save between the formats
tufty
2024-10-30 01:00:08
yes, it should work I think, you just can't set the duration in vipsdisp
2024-10-30 01:01:03
you can have multipage 16-bit TIFF with alpha and save as jxl too float TIFF too I think
2024-10-30 01:01:47
the < and > in the titlebar step though images in the direcgtory you loaded the iamge from fwiw
jonnyawsom3
2024-10-30 01:01:56
Heh... Now if only Bsky used libvips for the app along with the CDN, then we could have comic uploads xD
Kampidh
2024-10-30 01:04:21
to decode multipage / multilayer JXL (with libjxl), need to disable coalescing first, otherwise it got flattened https://libjxl.readthedocs.io/en/latest/api_decoder.html#_CPPv423JxlDecoderSetCoalescingP10JxlDecoder8JXL_BOOL
tufty
2024-10-30 01:07:22
oh, interesting! could someone recommend a good multipage JXL image for testing?
Dejay
2024-10-30 01:07:39
So this file I saved with "jxl frame stitching" with "animated" disabled didn't show as multiple frames in vipsdisp.
Kampidh
2024-10-30 01:08:48
hmm lemme whip that image real quick
Dejay
2024-10-30 01:09:32
Oh ok but as animated it works
jonnyawsom3
2024-10-30 01:09:59
Yeah, it's 'animated' but with maximum duration set
Dejay
2024-10-30 01:11:31
Well the maximum frame duration you can set with jxl sticher is 99. I mean why would you ever want to set it higher than that? ๐Ÿ˜„
jonnyawsom3
2024-10-30 01:11:50
Ah... A slight issue xD
2024-10-30 01:12:08
Guess it would better be served as a checkbox anyway
Kampidh
tufty oh, interesting! could someone recommend a good multipage JXL image for testing?
2024-10-30 01:13:41
here you go, it consists of 5 pages with similar dimensions
2024-10-30 01:15:14
or that bouncy slime animation can be considered as a multipage as well haha
Dejay
2024-10-30 01:16:10
That plot also doesn't show multiple frames with vipsdisp
2024-10-30 01:17:06
So that is presumably a limitation of vipsdisp so far
Kampidh
2024-10-30 01:17:34
can try opening them in Krita as well, my frame stitcher contains a roughly similar codepath like what I did in Krita
Dejay
2024-10-30 01:19:40
Well I'm only playing around so far. For this to be really useful you'd need a viewer that is optimized for reading comic books and then only loads a few pages progressively
2024-10-30 01:19:56
especially for mobile / web
2024-10-30 01:21:02
And then would want a compressor that can take advantage while still allow progressive loading
2024-10-30 01:21:36
I'm not big into comics or webtoons anyway, but it could be a good usecase
2024-10-30 01:24:32
But it would be cool to add this to NeeView
tufty
Kampidh or that bouncy slime animation can be considered as a multipage as well haha
2024-10-30 01:27:15
yes, the bouncy slime works well in libvips and vipsdisp I was worried by what you said by coalescing
jonnyawsom3
2024-10-30 01:27:37
I used to think the slime JXL was a worst case scenario for a decoder, but what about animated, multilayer, multipage?
tufty
2024-10-30 01:29:37
eeek, can you have a many-page animated image? I suppose 0xffffffff marks a page boundary
Dejay
2024-10-30 01:30:29
Multiple animated pages, plus multiple text layers in different languages ๐Ÿ˜„
tufty
2024-10-30 01:30:56
oooof
Kampidh
tufty yes, the bouncy slime works well in libvips and vipsdisp I was worried by what you said by coalescing
2024-10-30 01:32:15
yes that slime is a worst case scenario~ there are 3 layers per frame in that bouncy slime, 1 background (put as a reference frame), 1 for slime on the floor, 1 for the main slime and when it's decoded as coalescing (libjxl default), those layers will get flattened as a single frame per tick
tufty
Dejay Well I'm only playing around so far. For this to be really useful you'd need a viewer that is optimized for reading comic books and then only loads a few pages progressively
2024-10-30 01:32:41
yes, random access to pages is on the TODO list for the libvips jxl loader
Kampidh here you go, it consists of 5 pages with similar dimensions
2024-10-30 01:33:36
thanks! I'll experiment with that
Kampidh
tufty eeek, can you have a many-page animated image? I suppose 0xffffffff marks a page boundary
2024-10-30 01:35:39
this is mostly why I deliberately coalesce / flatten the frames when import/exporting animated JXL in Krita, haha
jonnyawsom3
2024-10-30 01:37:35
Ahh, so it was an intentional decision rather than a limitation
Kampidh
2024-10-30 01:41:32
this is settings overview of that bouncing slime, `0000` is the background image and saved to reference frame 1, while `000xa` are the floor slime frames and `000xb` are the main slime frames: https://raw.githubusercontent.com/kampidh/JXL-Frame-Stitcher/refs/heads/main/jxlframess-030.png
2024-10-30 01:43:44
frame duration is only set on the top layer
VcSaJen
Oleksii Matiash If CBZ is usual zip, then no, I believe, as zip is compressing file by file, not as one stream of data. So it can't take advantage of similarities between files inside it
2024-10-30 02:16:49
There's also CBR, which is RAR. RAR supports solid archives.
Oleksii Matiash
VcSaJen There's also CBR, which is RAR. RAR supports solid archives.
2024-10-30 02:31:25
Yes, I know, was speaking about CBZ only
tufty
Kampidh here you go, it consists of 5 pages with similar dimensions
2024-10-30 04:16:43
ah the pages are in the layer dimension, I understand I don't think libvips will support this ... people should put pages into frames with duration 0xffffffff (I think!)
jonnyawsom3
2024-10-30 04:18:03
Yeah, (unsurprisingly) I think we got a bit confused between layers, frames, pages and animation
2024-10-30 04:20:31
The rough order is Page > Animation > Layers You can have multiple layers per frame of animation, multiple frames of animation per page, and multiple pages per JXL
Kampidh
2024-10-30 04:28:04
Ah yes that's a pretty solid idea as well
jonnyawsom3
2024-10-30 05:15:06
I think this makes JPEG XL the only format to have animated pages, no? Yet alone with layers too
tufty
2024-10-30 05:17:13
yes, I think so
2024-10-30 05:17:39
except for TIFF! you can do anything with TIFF, disturbingly
Kampidh
tufty ah the pages are in the layer dimension, I understand I don't think libvips will support this ... people should put pages into frames with duration 0xffffffff (I think!)
2024-10-30 05:45:48
something like this? tried to set the frame duration to `0xffffffff`
tufty
2024-10-30 06:03:27
hey, it works in vipsdisp kinda anyway, it detects duration as -21747483648 sigh
2024-10-30 06:03:35
a simple fix
2024-10-30 06:04:11
if you change vipsdisp to multipage view, you can flip between pages correctly
Kampidh
2024-10-30 06:06:46
okay I'm gonna add that switch to frame stitcher as well
jonnyawsom3
2024-10-30 06:36:25
Encoder and decoder being improved in unison. Nothing more beautiful
2024-10-30 06:39:52
But yeah, VIPS just needs to check if the duration is actually a page and then mark it as such
Kampidh
2024-10-30 07:54:23
https://github.com/kampidh/JXL-Frame-Stitcher/releases/tag/v0.3.1
Dejay
Kampidh https://github.com/kampidh/JXL-Frame-Stitcher/releases/tag/v0.3.1
2024-10-30 09:23:40
Thanks! So if I disable global "animated", are the frames automatically marked as "page end"?
Kampidh
2024-10-30 09:26:11
nope, unfortunately global animated need to be enabled for multipage, otherwise it will saved as multilayered instead
Dejay
Kampidh nope, unfortunately global animated need to be enabled for multipage, otherwise it will saved as multilayered instead
2024-10-30 09:26:36
Ah cheers
Kampidh
2024-10-30 09:30:01
whoops careful when opening multipage image in krita, as it can trigger a deadlock ><
Dejay
2024-10-30 09:37:23
So libjxl already supports multiple frames, but cjxl.exe doesn't? Like a simple flag "--pages" where multiple input images with wild cards are just added as simple pages would be nice.