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

jxl

Anything JPEG XL related

jonnyawsom3
hi! I just tried this, apple-hdr-heic managed to convert the HEIC to avif (a very heavy file if compared with the source) preserving the hdr, but using vips to convert from avif to jxl makes a grey-ish photo
2025-04-05 10:02:24
Grey likely means the viewer doesn't support color management, or not HDR JXLs
Meow That would be 10-bit to 16-bit which would be meaningless
2025-04-05 10:04:58
Cjxl used to have both EXR input and internal paletting to the original bit depth. I think the latter still works for half float input
Demiurge
Meow If the purpose is simply archival I would just leave them alone
2025-04-05 10:24:51
Nah
that makes sense ๐Ÿ˜… I was just looking for good compression without sacrificing much quality, but since iphone's heic are not that heavy, I think I can live with that
2025-04-05 10:25:10
I think HEIC is actually kinda heavy
2025-04-05 10:25:36
compared to lossy, visually-transparent JXL
Meow That would be 10-bit to 16-bit which would be meaningless
2025-04-05 10:27:52
I think it's worth converting to JXL. 16-bit EXR is just an intermediate format before converting to lossy JXL in the end.
jonnyawsom3
2025-04-05 10:34:25
And lossy JXL is always 32f internally anyway, bitdepth is just a suggestion
Meow
2025-04-05 10:59:12
You think you think but have you really tried?
fabmenore
Grey likely means the viewer doesn't support color management, or not HDR JXLs
2025-04-05 11:12:42
don't think so, I am using a Mac, which is supposed to have native support, but even that I tried opening the image on Firefox, Chrome (with flags turned on), Safari, and the Photos app, also tried opening it on my phone. It looks grey on all of those.
jonnyawsom3
2025-04-05 11:25:38
Hmm, maybe the color space isn't being copied over. Could you upload an example or run `jxlinfo -v -v` on it?
CrushedAsian255
Demiurge Looks like almost nothing can decode Apple's dumb HEIC into a normal HDR file. your best bet is maybe https://github.com/johncf/apple-hdr-heic but it's not very easy to use. You can decode HEIC to EXR or AVIF and then use vips to convert to JXL. `apple-hdr-heic-decode input.heic output.avif -b 12 -y 444` `vips jxlsave output.avif output.jxl --distance=1`
2025-04-05 11:54:58
I remember I made a modification that outputs PFM but I can't find the code anywhere
2025-04-05 11:55:37
does anyone here know what colourspace would be correct to output? Display P3 Linear?
2025-04-05 11:55:45
cause then libjxl can take that as input
2025-04-05 11:55:50
metadata is an issue however
Demiurge
Meow You think you think but have you really tried?
2025-04-05 12:05:05
Well I tried but I don't think I properly converted the HEIC into a normal HDR file.
2025-04-05 12:05:18
since that's almost impossible (thanks apple)
Meow
2025-04-05 12:06:28
Maybe wait until we can directly convert HEIC to JXL on Preview or Apple ditches HEIC
CrushedAsian255
2025-04-05 12:11:42
I got this working ```python import cv2 from apple_hdr_heic import load_as_bt2020_linear, quantize_bt2020_to_bt2100_pq input_image = "input.heic" output_image = "output.ppm" bt2020_linear = load_as_bt2020_linear(input_image) bt2020_pq = quantize_bt2020_to_bt2100_pq(bt2020_linear) cv2.imwrite(output_image,bt2020_pq[:,:,::-1]) ``` Then: ``` cjxl output.ppm output.jxl -x color_space=Rec2100PQ ```
2025-04-05 12:12:11
The problem is Finder only activates HDR mode if using HLG / PQ transfer, I couldn't get it to register a linear JXL as HDR
2025-04-05 12:12:27
it loads EXR images as HDR though -_-
2025-04-05 12:13:08
still not 100% exact, but DIFFERENT PARTS OF APPLE'S OWN OS DISPLAYS IT SLIGHTLY DIFFERENTLY
2025-04-05 12:13:09
AHHHHH
Demiurge
2025-04-05 12:21:37
Can't you decode heic as 16 bit PQ?
CrushedAsian255
2025-04-05 12:26:49
Thatโ€™s what the code above is doing
2025-04-05 12:27:11
Wait I should probably use display p3 instead of rec2100
2025-04-05 12:27:25
Also what is a rendering intent? Perceptual vs relative vs all the other options
2025-04-05 12:27:35
What does it actually do?
Demiurge
2025-04-05 12:27:56
Yeah apple uses apple p3 color primaries
CrushedAsian255 What does it actually do?
2025-04-05 12:28:20
Uh... My guess is: Don't even ask lol
Tirr
2025-04-05 12:28:52
rendering intent affects how out-of-gamut colors are mapped
Demiurge
2025-04-05 12:29:07
I think theoretically it's to decide if you want to clip colors that are out of bounds or if you want to scale them relative to the available space.
CrushedAsian255
2025-04-05 12:29:43
so.. uh.. which do i use
Tirr
2025-04-05 12:29:58
you'll want relative colorimetric in most cases
Demiurge
2025-04-05 12:30:03
no idea why there are so many different, vague-sounding choices for intent, with completely unhelpful descriptions and names
Tirr
2025-04-05 12:32:05
iiuc colorimetric intents (relative, absolute) has defined behavior, and behavior of perceptual and saturate is vendor-specific
CrushedAsian255
2025-04-05 12:32:18
``` import cv2 from apple_hdr_heic import load_as_displayp3_linear, quantize_bt2020_to_bt2100_pq input_image = "input.heic" output_image = "output.ppm" p3_linear = load_as_displayp3_linear(input_image) p3_pq = quantize_bt2020_to_bt2100_pq(p3_linear) cv2.imwrite(output_image,p3_pq[:,:,::-1]) ``` `cjxl output.ppm output.jxl -x color_space=RGB_D65_DCI_Rel_PeQ`
2025-04-05 12:34:52
here's the Apple docs btw https://developer.apple.com/documentation/appkit/applying-apple-hdr-effect-to-your-photos
Demiurge
2025-04-05 12:35:13
Isn't perceptual "choose what's best for me" and saturation is "lulz" and absolute is "clip" and relative is the same as "perceptual?"
2025-04-05 12:36:06
So confusing and bonkers
CrushedAsian255
2025-04-05 12:36:10
The one that I select is "idk just make it look good"
2025-04-05 12:36:40
not to be confused with "just make it *work*"
Tirr
2025-04-05 12:38:51
not sure it's accurate, but I refer to this when I'm confused about rendering intents https://www.colourphil.co.uk/rendering_intents.shtml
spider-mario
Demiurge Isn't perceptual "choose what's best for me" and saturation is "lulz" and absolute is "clip" and relative is the same as "perceptual?"
2025-04-05 01:09:30
perceptual is supposed to do gamut mapping with some roll-off, but in practice is often equivalent to relative (clip) because the necessary tables are absent from ICC profiles
2025-04-05 01:09:41
absolute is like relative but without chromatic adaptation
2025-04-05 01:10:10
so the result will likely look warmer or cooler (when adapted to the white point of the destination profile)
2025-04-05 01:10:54
https://www.cambridgeincolour.com/tutorials/color-space-conversion.htm
2025-04-05 01:12:09
https://www.argyllcms.com/doc/iccgamutmapping.html
2025-04-05 01:13:09
โ€œrelativeโ€ is usually a decent default if you donโ€™t have specific reasons to use something else
damian101
spider-mario perceptual is supposed to do gamut mapping with some roll-off, but in practice is often equivalent to relative (clip) because the necessary tables are absent from ICC profiles
2025-04-05 05:29:52
ICC perceptual mapping actually often just means no mapping at all, because in a time when there were there were barely any wide color gamuts used, all the common gamuts were rather similar.
2025-04-05 05:33:09
So the reasoning was that just shifting everything into the new gamut was likely to the most appealing, since it avoided things like gamut clipping artifacts or slight desaturation without shfting the colors too much, which probably were rarely accurate back then anyway.
A homosapien
CrushedAsian255 so.. uh.. which do i use
2025-04-05 05:50:34
This article explains why relative colorimetric or perceptual is the better intent to choose. It also has some nice visual diagrams showing what happens to out of gamut color. https://www.permajet.com/blog/rendering-intents-explained/?srsltid=AfmBOoqJHV4LpytkE4Maz4oBsQ7XmM1EkHiuFS-pWapDDMd1x-zEOQSI
spider-mario
2025-04-05 05:55:41
slightly odd choice to choose a greyscale photo as an example for which to use perceptual
Demiurge
2025-04-07 02:11:25
jxl stores a low-resolution version of the image and reconstructs the original size image using residuals and prediction... but the math is really simple and doesn't take into account gamma scale vs linear scale when resizing and predicting residuals, so I'm wondering, doesn't that waste some efficiency having to encode the error between the actual linear-scale values and the predicted gamma-scale values?
2025-04-07 02:14:29
My guess is this was already thought of and considered not to significantly inflate the cost of the high frequency residual data
2025-04-07 02:17:41
But I'm kind of skeptical, because it seems like some prediction is being left on the table. Like if you need to predict the pixels in between a light and dark region, you would get less error and better prediction by going halfway between them on a linear light scale rather than the gamma scale.
2025-04-07 02:18:54
Is it just not enough to matter?
jonnyawsom3
2025-04-07 02:19:40
You're specifically thinking of Modular Squeeze encoding
Demiurge
2025-04-07 02:20:21
Well DCT does the same thing too with the DC/LF image and gamma=3
jonnyawsom3
2025-04-07 02:20:51
Yes, because the DC/LF is a squeeze encoded modular substream
2025-04-07 02:21:29
Though, you're making me wonder if our progressive lossless work could also improve the DC frame...
Demiurge
2025-04-07 02:21:58
And since it's using really simple and naive gamma scaling functions it introduces a lot of avoidable errors that you end up paying for in the residuals.
2025-04-07 02:24:38
I don't know how significant those errors are but it's more information than necessary in order to correct the mistakes from the incorrect downscaling.
2025-04-07 02:29:35
Come to think of it, what if the only the encoder were to use linear-light downscaling when creating the DC image?
2025-04-07 02:30:00
Without any changes to the decoder
2025-04-07 02:31:00
Maybe that could increase density by creating less residual energy?
2025-04-07 02:32:15
Would that cause a problem?
2025-04-07 02:43:23
Even without any decoder changes, that would be a slight improvement right?
2025-04-07 02:44:39
Since the DC would be more accurate to start with, less correcting after
jonnyawsom3
2025-04-07 02:51:49
Does lossy even retain those differences? This may be a minor quality improvement instead of density
Demiurge
2025-04-07 03:12:44
Well when it comes to lossy, density and quality improvements are the same thing at the end of the day
2025-04-07 03:13:51
Either way, less residual energy is good for the quantizer right?
_wb_
2025-04-07 07:08:27
Might be worth trying if lossy squeeze modular works better in a "linear XYB" space
Demiurge
2025-04-07 08:22:13
I mean I don't see why it wouldn't equally apply to the downscaled DC images in DCT mode either. Really any place where downscaling happens, wouldn't it save some bits to downscale it in whichever way will result in the smallest residuals possible?
2025-04-07 08:22:34
That should be the goal always yeah?
2025-04-07 08:24:13
It's free density sitting on the table
2025-04-07 08:27:25
Just during the downsampling step
2025-04-07 08:31:04
I imagine the difference could be very small depending on the image. But maybe a resampling algorithm with linear light and maybe even a little bit of aliasing too! Whatever will result in the smallest possible residuals.
jonnyawsom3
2025-04-07 09:07:32
There's already 3 different downsampling methods in libjxl, with the most expensive and most accurate being used currently
Demiurge
2025-04-07 09:17:55
Well the most accurate is not necessarily the one that creates the smallest residuals? It's possible some aliasing might help?
jonnyawsom3
2025-04-07 09:25:12
Well it's also multiple times slower, which is why I aim to disable it unless at effort 11
Rega
2025-04-08 05:56:22
I'm not sure if this is the correct place to ask this but
2025-04-08 05:56:46
Can you guys upvote this bug report in feedback Hub
2025-04-08 05:56:47
https://aka.ms/AAvf2lz
2025-04-08 05:59:42
Some of jxl images aren't showing thumbnails and shown as corrupted in windows photos app
2025-04-08 06:00:01
For example
HCrikki
2025-04-08 06:02:08
extension specific it seems, had that issue before for limited number of images
Demiurge
2025-04-08 08:10:24
Those images work on my iPhone
Traneptora
_wb_ Anyway I think the exif orientations are closed under composition so it will just be a headache-inducing exercise to make the composition table without errors ๐Ÿ™‚
2025-04-08 11:15:52
it wouldn't be too hard, cause it's just D4, i.e. the dihedral group. but I think it may be easier to convert each one to a 2x2 transform matrix, multiply the matrices, and convert back. I already have utility functions orientation_to_matrix and matrix_to_orientation
2025-04-08 11:16:18
been busy so haven't had time to work on this in the last few weeks tho
Rega
Demiurge Those images work on my iPhone
2025-04-09 01:38:25
Yeah third party image viewers also works
2025-04-09 01:40:54
Point was please upvote ๐Ÿ˜ญ ๐ŸคŒ
2025-04-09 01:41:22
So they can fix that.
Demiurge
2025-04-09 02:38:16
Yeah, so it works with Apple's decoder but not Microsoft I guess?
jonnyawsom3
2025-04-09 02:56:01
It seems to be a resolution limit in the Microsoft extension https://discord.com/channels/794206087879852103/803574970180829194/1346059712273186909
Quackdoc
2025-04-09 02:58:42
well thats an odd limitation
HCrikki
2025-04-09 03:10:18
100MP decodes fine. thumbnailing and read mostly takes time, but some specific outputs from the same (jpg) source dont preview or read
jonnyawsom3
2025-04-09 03:14:29
Could someone try with and without gaborish?
Demiurge
2025-04-09 03:25:08
What's the resolution limit
Orum
2025-04-13 04:26:14
cjpegli is producing some weird color shifts, though I suppose I should expect that at -d 2 <:SadOrange:806131742636507177>
jonnyawsom3
2025-04-13 04:56:45
IIRC it still defaults to 4:2:0 too doesn't it?
Orum
2025-04-13 05:05:55
IDK, but that's not the issue
2025-04-13 05:06:13
there's major banding and chroma shift
2025-04-13 05:06:34
it's a lot better at `-d 1` but still somewhat noticeable
jonnyawsom3
2025-04-13 05:20:03
What about disabling adaptive quant?
Orum
2025-04-13 05:21:29
I will test, give me a min
2025-04-13 05:24:09
doesn't help
A homosapien
2025-04-13 06:53:55
Send image pls ๐Ÿ™
Demiurge
2025-04-13 07:20:32
It probably happens with jxl too? They have similar problems with color.
Orum
A homosapien Send image pls ๐Ÿ™
2025-04-14 08:31:04
2025-04-14 08:31:38
at `-d 2` in cjpegli you get this red, arch-shaped banding on the left
2025-04-14 08:35:00
cjxl is much better at the same distance
Demiurge
2025-04-14 08:37:11
"Better" meaning it has the same problem but at d=3 for example?
Orum
2025-04-14 08:37:47
meaning it's not completely eliminated but it's much less noticeable; I haven't tried d 3 in cjxl, but I can RN
2025-04-14 08:38:29
even cjxl at d3 is not as bad as cjpegli at d2
2025-04-14 08:38:58
there's just this really sharp cutoff on jpg where you have these reddish blocks and these not-so-reddish blocks
2025-04-14 08:41:14
cjxl at d3 has a similarish problem with a faint green/yellow color, but it's not as noticeable as the red in jpg
Demiurge
2025-04-14 08:41:38
To be fair d2 on jpegli is very severe compression, all distance values are more severe compared to cjxl values
Orum
2025-04-14 08:41:48
oh, that's intentional?
Demiurge
2025-04-14 08:42:04
I don't know if it's intentional. It's my experience.
Orum
2025-04-14 08:42:09
ah
2025-04-14 08:42:32
I've found there's just huuuuge bias with brightness when it comes to distance
2025-04-14 08:42:58
bright images can get away with much higher distances than dark ones
Demiurge
2025-04-14 08:43:28
In jxl too?
Orum
2025-04-14 08:44:17
yes, but IIRC it's less so... I've not tested a recent libjxl in lossy enough to know
Meow
2025-04-14 08:44:31
q100 and d0 aren't lossless for cjpegli
Orum
2025-04-14 08:45:11
I always forget lossless JPG exists so I really don't care <:CatSmile:805382488293244929>
Demiurge
2025-04-14 08:45:23
I'm glad you notice this too. Hopefully the extreme prejudice against dark shaded image regions can be recognized as a critical issue and fixed like one
2025-04-14 08:46:09
Along with the extremely weird color changing ringing artifacts
Orum
2025-04-14 08:46:22
yeah, I suspect a big part of the problem is the people judging the quality aren't doing so with a high contrast monitor with deep blacks in a dark room
Demiurge
2025-04-14 08:46:57
And desaturation that's noticeable even when sitting a good distance away from the monitor
Orum
2025-04-14 08:47:49
I've noticed that mostly on things with lots of chroma detail (especially images with noisy chroma)
2025-04-14 08:48:10
it used to just color shift a lot but I think it's desaturating more than that now
Demiurge
Orum yeah, I suspect a big part of the problem is the people judging the quality aren't doing so with a high contrast monitor with deep blacks in a dark room
2025-04-14 08:49:22
They aren't looking at dark images like https://afontenot.github.io/image-formats-comparison/#pont-de-quebec&JPEGXL=m&AV1=m
A homosapien
Orum I've noticed that mostly on things with lots of chroma detail (especially images with noisy chroma)
2025-04-14 08:49:41
Try `--xyb`, it doesn't has the chroma shift issues you describe
Demiurge
2025-04-14 08:50:50
Desaturation is a major problem with libjxl compared to other codec libraries. Even mozjpeg doesn't desaturate like libjxl does
2025-04-14 08:51:00
On d=1 even
2025-04-14 08:51:06
But especially d=2
Orum
2025-04-14 08:51:10
> Last updated: April 2024. so not latest libjxl <:FeelsSadMan:808221433243107338>
Demiurge
2025-04-14 08:51:41
I doubt significant perceptual changes happened between v0.10 and v0.11
Orum
A homosapien Try `--xyb`, it doesn't has the chroma shift issues you describe
2025-04-14 08:52:20
if I can find a viewer that will open them properly <:kekw:808717074305122316>
2025-04-14 08:53:17
well xyb is better but still has some rainbowing
jonnyawsom3
Orum > Last updated: April 2024. so not latest libjxl <:FeelsSadMan:808221433243107338>
2025-04-14 08:53:24
v0.8 was the best lossy encoder we had, but still slightly desaturates yellows
Orum
2025-04-14 08:54:31
solution: just crank up the saturation before encoding <:kkomrade:896822813414011002>
_wb_
Demiurge Desaturation is a major problem with libjxl compared to other codec libraries. Even mozjpeg doesn't desaturate like libjxl does
2025-04-14 08:57:47
Can you give an example where the desaturation is bad? It could be just a matter of doing less rounding towards zero in the quantization of X and B...
A homosapien
2025-04-14 09:00:02
There was a furry image here that illustrated the yellow desturation issue really well
Demiurge
_wb_ Can you give an example where the desaturation is bad? It could be just a matter of doing less rounding towards zero in the quantization of X and B...
2025-04-14 09:00:30
Sure, I mentioned this before, but pretty much any image with vibrant yellows and orange. Or gold, bronze, etc. "Abandoned Factory" flowers "Ohashi" the vibrant greenish-yellow paint "Japan Expo" the green dress and to a lesser extent the hair too
A homosapien
2025-04-14 09:00:35
I made an issue with a photographic example here: https://github.com/libjxl/libjxl/issues/3616
username
A homosapien There was a furry image here that illustrated the yellow desturation issue really well
2025-04-14 09:00:49
https://discord.com/channels/794206087879852103/804324493420920833/1245897728047714366
A homosapien
2025-04-14 09:00:56
Thanks
Demiurge
2025-04-14 09:03:54
I think the best and most obvious example of desaturation is with the flowers in "Abandoned factory" image which I mentioned to Jyrki way back when
A homosapien I made an issue with a photographic example here: https://github.com/libjxl/libjxl/issues/3616
2025-04-14 09:05:28
Thanks, this is a really good explanation
2025-04-14 09:07:51
Sometimes when you notice something subtly weird about an image and then come back to it later, it's hard to see the same thing again. But the saturation issue is pretty consistently bad versus other codecs, even mozjpeg preserves saturation better
_wb_
2025-04-14 09:19:11
Does it also occur in larger smooth saturated color regions, or only in smaller details like those yellow leaves?
2025-04-14 09:20:41
If it's mostly yellows getting desaturated in non-smooth regions, it suggests we need to allocate relatively more bits to the AC of the B component.
jonnyawsom3
A homosapien I made an issue with a photographic example here: https://github.com/libjxl/libjxl/issues/3616
2025-04-14 09:31:25
That reminded me, maybe we should make a new build reverting the quality regression, just to play around with for fun https://discord.com/channels/794206087879852103/1278292301038227489/1309307664387276820
Demiurge
_wb_ Does it also occur in larger smooth saturated color regions, or only in smaller details like those yellow leaves?
2025-04-14 09:32:28
Yes, it appears in large regions that are obvious even viewed from a distance.
2025-04-14 09:32:59
Like the green dress in Japan Expo
jonnyawsom3
2025-04-14 09:34:15
A while back I did a comparison against 0.8 too. Still desaturated, but less than current https://discord.com/channels/794206087879852103/794206170445119489/1351548537980321852
Demiurge
2025-04-14 09:35:51
I'm pretty sure it unfortunately affects all colors. Quantization is just supposed to reduce accuracy, not universally reduce saturation lower across the entire image
2025-04-14 09:36:40
Reduced accuracy and quantization noise should be evenly spread and noise-shaped, not have a perceivable bias in only one direction
jonnyawsom3
2025-04-14 09:39:09
It's like the colors are being scaled down rather than rounded to a nearby point. I would've thought the values of bright yellow and dim yellow would compress about the same
Demiurge Reduced accuracy and quantization noise should be evenly spread and noise-shaped, not have a perceivable bias in only one direction
2025-04-14 09:39:49
Back to 0 days without mentioning noise shaped artifacts
Orum
Demiurge Like the green dress in Japan Expo
2025-04-14 10:56:55
looks to me like the dress is actually yellow-green (or at least reflecting some yellow light in addition to the green), and that yellow gets obliterated by libjxl
2025-04-14 10:57:54
the green actually gets *more* saturated in some areas, possibly just because the yellowish tint is lost
2025-04-14 10:58:32
that's really weird, but not too different from some of the color shifting I've seen it do
2025-04-14 10:59:27
oh nvm, I had the original and JXL backwards; it's JXL adding in the yellow tint, and the dress is originally green
Demiurge
Back to 0 days without mentioning noise shaped artifacts
2025-04-14 11:07:59
I'm using "noise" in a general sense here, "quantization noise" is synonymous with "quant error"
2025-04-14 11:08:39
Either way there's no reason for a reduction in quantization accuracy to uniformly decrease saturation like that
2025-04-14 11:10:04
For the same bitrate it could just as easily increase saturation, or most preferably, spread out the error so it averages out, and try to mask it.
2025-04-14 11:11:05
That's usually called rate-distortion optimization or RDO
2025-04-14 11:12:04
A big buzzword here
2025-04-14 11:12:39
Or anywhere there's talk about image/video codecs
jonnyawsom3
It's like the colors are being scaled down rather than rounded to a nearby point. I would've thought the values of bright yellow and dim yellow would compress about the same
2025-04-14 11:13:23
Yeah, that's what I tried to say
Demiurge
2025-04-14 11:14:06
You said it well too
2025-04-14 11:20:26
It seems like it could be a very basic mistake that's easy to patch. Finding the best error-diffusion algorithm is not easy, but fixing a simple rounding mistake?
2025-04-14 11:21:01
Seems like low hanging fruit
igrok
2025-04-14 07:04:20
Hello everyone, can I ask for help in this channel?
monad
2025-04-14 07:05:15
yes
igrok
2025-04-14 07:15:39
I have an unusual jxl file (texture from a game), according to the script where it is used this texture contains several images inside, but none of the decoders can convert it. I assume that it has an unusual structure (hex structure definitely indicates that it is jxl) any suggestions how to decode it?
monad
2025-04-14 07:30:40
if you can't decode it then it's likely not a jxl
2025-04-14 07:32:29
whatever makes it appear like a jxl could be coincidence
2025-04-14 07:40:15
consider this case which reads similarly without more context https://discord.com/channels/794206087879852103/804324493420920833/1335434938576670770
HCrikki
2025-04-14 08:27:22
was image generated by Special K ?
Oleksii Matiash
igrok Hello everyone, can I ask for help in this channel?
2025-04-15 11:42:25
I would be very cautious to respond to a user with such nickname
Fab
2025-04-15 11:44:07
2025-04-15 11:44:19
Svt - Jpeg encoder
2025-04-15 11:45:00
What you think <@532010383041363969>
Oleksii Matiash
2025-04-15 11:45:32
Summon anyone with banhammer
Fab
2025-04-15 11:45:37
https://www.hdblog.it/green/articoli/n615342/dubbi-phase-out-carbone-italia/
Oleksii Matiash Summon anyone with banhammer
2025-04-15 11:46:19
You don't know how many effort I spend up making this encoder so please shut
jonnyawsom3
2025-04-15 11:46:48
This is <#794206170445119489>, at least put it into <#805176455658733570>
Fab
2025-04-15 12:34:35
I've run an antivirus
_wb_
2025-04-15 03:17:47
Is there a demo website somewhere doing wasm jxl decoding?
A homosapien
2025-04-15 04:30:46
Here: https://giannirosato.com/blog/post/corpus-lossy/
2025-04-15 04:31:38
It's a bit heavy, maybe it could benefit from our new faster decoding improvements
_wb_
2025-04-15 04:39:32
2025-04-15 04:39:41
Doesn't seem to work for me
jonnyawsom3
2025-04-15 04:39:55
Me neither, there's no WASM or js being downloaded
A homosapien
2025-04-15 04:41:18
oops
2025-04-15 04:44:05
I shared the wrong page, Gianni said he forgot which of his pages uses the WASM jxl decoder
2025-04-15 04:44:32
https://discord.com/channels/794206087879852103/794206170445119489/1355704370787778580
Fab
2025-04-15 04:47:38
I copied an antispam cookie in cloudinary.com
_wb_
2025-04-15 04:47:58
Maybe this one? https://giannirosato.com/blog/post/jpegli/
jonnyawsom3
A homosapien It's a bit heavy, maybe it could benefit from our new faster decoding improvements
2025-04-15 04:53:49
1605 ms by default vs 531 ms with FD4 for a lossless 1080p image. 10.6 bpp to 12 bpp <https://jxl-oxide.tirr.dev/demo/index.html>
2025-04-15 04:54:40
Bear in mind, that page is a lossy corpus, our changes are only to lossless
A homosapien
2025-04-15 05:44:46
Lossy is even faster to decode even compared to our changes
jonnyawsom3
2025-04-15 05:49:20
Yeah. The new Lossless FD2 (very) roughly matches default VarDCT
Tirr
1605 ms by default vs 531 ms with FD4 for a lossless 1080p image. 10.6 bpp to 12 bpp <https://jxl-oxide.tirr.dev/demo/index.html>
2025-04-15 06:19:41
> jxl-oxide-wasm 0.10.0 yeah I need to update that...
jonnyawsom3
2025-04-15 06:32:39
I had a hunch, so I dug up the old Oxide browser extension https://discord.com/channels/794206087879852103/822105409312653333/1333582170790428724... Yep, LQIP is working beautifully
2025-04-15 06:34:20
Huh.. I'd never tried progressively loading Delta Pallete before. Looks cool
I had a hunch, so I dug up the old Oxide browser extension https://discord.com/channels/794206087879852103/822105409312653333/1333582170790428724... Yep, LQIP is working beautifully
2025-04-15 06:43:15
The same 'image' in Waterfox.... Yeah....
Traneptora
The same 'image' in Waterfox.... Yeah....
2025-04-15 10:12:18
waterfox doesn't support progressive decode
2025-04-15 10:12:55
to do so requires you to call specific API calls to fill a buffer with the partial data
2025-04-15 10:13:10
unless you do that, you'll just get `JXL_DECODER_NEED_MORE_INPUT`
jonnyawsom3
Traneptora waterfox doesn't support progressive decode
2025-04-15 10:13:54
It does, but libjxl disables LQIP so it requires a higher percentage
Traneptora
2025-04-15 10:14:16
oh, I see, that must be new then
2025-04-15 10:14:16
nvm
2025-04-15 10:14:25
it wasn't back when I tried it
jonnyawsom3
2025-04-15 10:14:55
Added a few months ago IIRC
Traneptora
2025-04-15 10:15:05
ye, it's been a year for me
2025-04-15 10:15:07
probably
2025-04-15 10:15:11
I currentlly use stock Firefox, hopefully Oxide will be integrated into it at some point
jonnyawsom3
2025-04-15 10:17:06
Another interesting note, Oxide uses NN upsampling for the progressive scans, while libjxl (presumably) uses the non-seperable upsampling, or something that smooths. So you end up with progressive scans almost immediately, but possibly looking worse than the slower libjxl ones
Traneptora
2025-04-15 10:29:55
bilinear is probably a good compromise
2025-04-15 10:30:01
over nearest neighbor
2025-04-15 10:30:06
the non-separable is very slow
Quackdoc
A homosapien Here: https://giannirosato.com/blog/post/corpus-lossy/
2025-04-16 01:57:14
he removed it because it was too harsh on wasm
2025-04-16 01:58:13
https://giannirosato.com/blog/post/nvenc-v-qsv/
2025-04-16 01:58:15
this was the page
A homosapien
2025-04-16 01:59:58
<@794205442175402004> here's the actual page containing the WASM decoder
Aerocatia
2025-04-16 12:43:05
Is there any chance jxl-rs cold be no_std? From a quick glance a lot of std usage is in `core`
Quackdoc
2025-04-16 07:56:59
no-std would be really nice, ~~imagine using jxl-rs as a shader~~
Demiurge
2025-04-16 10:27:13
Yes
2025-04-16 10:28:12
Extremely yes
2025-04-17 12:26:50
As a side effect the codec library would be much more secure, without access to filesystem or memory allocation :)
2025-04-17 12:27:20
So much yes
Traneptora
2025-04-17 01:11:01
what is `no-std`?
Quackdoc
2025-04-17 01:22:29
basically just allows compiling without std which is useful for compiling to targets with no real stdlib like microcontrollers and other weird targets (like spirv shaders)
Traneptora
Quackdoc basically just allows compiling without std which is useful for compiling to targets with no real stdlib like microcontrollers and other weird targets (like spirv shaders)
2025-04-17 01:24:32
oh, it's without the standard lib?
Quackdoc
2025-04-17 01:24:46
yup
Traneptora
2025-04-17 01:27:27
oh so it's like `gcc -nolibc`
Quackdoc
2025-04-17 01:29:36
yeah, basically a crate will define no_std support and make it so that other projects can incorporate it, microcontrols are basically the only real consumer for stuff like this, but rust-gpu can compile no-std code into spirv shaders. it would perform terribly im sure, but you could in theory make a rust decoder for anything, make it nostd, and compile it to a spirv shader
Traneptora
2025-04-17 01:30:03
I'd imagine a spirv shader would be terrible for most things, but useful for, e.g. RGB to XYB
2025-04-17 01:30:09
since GPUs eat that kind of thing alive
2025-04-17 01:30:25
sRGB to XYB is one of the biggest bottlenecks in libhydrium
2025-04-17 01:30:38
and I'm considering figuring out a 3Dlut method to make it faster
2025-04-17 01:30:52
but I'm really not an expert on it. I'd have to ask haasn
Quackdoc
2025-04-17 01:32:33
sRGB to XYB was pretty decent as a shader, I did experiment a bit getting the rust crate ported over to rust-gpu and the conversions themselves were pretty fast, but well, you had to set up everything else yourself so it was not great for me lol
2025-04-17 01:33:34
if you can make it in a way that auto vectorization actually works then that would probably be ideal [av1_dogelol](https://cdn.discordapp.com/emojis/867794291652558888.webp?size=48&name=av1_dogelol)
CrushedAsian255
2025-04-17 06:05:19
could things like calculating metric scores also be improved by shaders?
2025-04-17 06:05:43
things like lz77 backref calculation would probably not do particularly well as shaders
Quackdoc
2025-04-17 06:06:19
yes. I was working on a ssimulacra2 shader, but the ssimu2 blur function really didnt map out well, and didnt feel like playing wack-a-mole trying to figure out how to write my own blur shader from scratch that gets close to it
Demiurge
2025-04-17 05:44:38
Copying buffers between system ram and vram would slow things down unless you could avoid that
2025-04-17 05:47:33
I think the main benefit would be no memory allocations or access to the operating system
2025-04-17 05:48:12
That's really great for a codec
Lumen
Quackdoc yes. I was working on a ssimulacra2 shader, but the ssimu2 blur function really didnt map out well, and didnt feel like playing wack-a-mole trying to figure out how to write my own blur shader from scratch that gets close to it
2025-04-17 07:02:45
vszip and vship chose the route of using a standard gaussian blur
2025-04-17 07:02:50
instead of the recursive one they use (recursive gaussian is atrocious for gpus)
2025-04-17 07:03:01
you are creating a gpu ssimu2? ๐Ÿ‘€
CrushedAsian255 could things like calculating metric scores also be improved by shaders?
2025-04-17 07:04:57
there is already an implem of butteraugli and ssimulacra2 on gpu
2025-04-17 07:05:04
in HIP
2025-04-17 07:05:09
(and Cuda)
2025-04-17 07:07:53
someone was also able to turn hip into spir-V/opencl using CHIP-STAR
2025-04-17 07:10:23
(side note, SSIMU2 is not bottlenecked by the GPU here, using gpu decoding and get the frame directly on the gpu would probably allow me to get around 500 fps with my current implem)
2025-04-17 07:11:52
RTX 4080 super is able to get 150 fps butteraugli ๐Ÿ˜ตโ€๐Ÿ’ซ
2025-04-17 07:23:03
the gaussian blur being non recursive can sometime create a wide gap with jxl implem but I am not sure that it is a regression to MOS. I noticed the opposite when the difference was really large for butteraugli the difference in gaussian blur doesnt create a big difference in result
Quackdoc
Lumen you are creating a gpu ssimu2? ๐Ÿ‘€
2025-04-17 09:50:56
I was, RSI typing hurts too much so I do as little as possible now
spider-mario
Quackdoc I was, RSI typing hurts too much so I do as little as possible now
2025-04-17 11:38:22
this might be relevant: https://youtu.be/8SkdfdXWYaI
Quackdoc
spider-mario this might be relevant: https://youtu.be/8SkdfdXWYaI
2025-04-17 11:52:36
this is really neat
2025-04-17 11:52:49
ive just been using LLMs lol
Demiurge
2025-04-18 12:19:57
I have heard some people claim that their RSI improved after switching to US Dvorak keyboard layout
2025-04-18 12:23:17
But you have to re-learn and forget your existing keyboard layout memory. It's much easier to learn though compared to, say, QWERTY.
w
2025-04-18 02:56:21
RSI is not real you just have to move every 30 seconds
Quackdoc
2025-04-18 02:58:39
tru
spider-mario
2025-04-18 08:02:08
โ€œhave you tried yoga?โ€ (https://www.painscience.com/articles/tyranny-of-yoga.php)
fabmenore
Demiurge I have heard some people claim that their RSI improved after switching to US Dvorak keyboard layout
2025-04-18 08:38:22
You get used quite fast! I use it all the time just because it allows me to stop watching the keyboard, since the visual layout is still QWERTY, it has been a shorter journey than I expected.
Quackdoc
spider-mario โ€œhave you tried yoga?โ€ (https://www.painscience.com/articles/tyranny-of-yoga.php)
2025-04-18 09:03:19
actually yeah, but a lot of the RSI damage I have is compounded from the factory work and boxing I did in the past, it does genuinely help though, so does the standard excercises like finger push ups, but it's easy to over do them
Demiurge
2025-04-18 09:46:23
Yeah, it's a lot faster to learn than it was to learn QWERTY. If you already have existing memory of a different layout you end up forgetting the old layout at first. But your memory of the old layout can eventually be restored later on, if you choose. It's even possible to have both layouts memorized at the same time, but that's a lot harder.
w RSI is not real you just have to move every 30 seconds
2025-04-18 09:48:19
You need to stop doing the thing that hurts. That's why there's an "R" there for "repetitive stress injury"
2025-04-18 09:50:59
But yeah I have heard a lot or stories of people allegedly having improvement to their RSI after switching keyboard layout. In my own experience it actually felt really strange and weird for my fingers to hardly move at all compared to QWERTY. My fingers were used to moving more than twice as much, and it felt like the words were just appearing and typing themselves after I got into the cadence and rhythm of it, and my fingers felt like they were mostly holding still...
2025-04-18 09:51:54
It was an odd sensation and took a while to get used to, since the finger movement is more evenly spread out across all fingers and mostly on the home row, rarely having to move at all...
2025-04-18 09:52:47
It really just feels like you're holding your hands almost still while the words are just appearing and typing themselves.
spider-mario โ€œhave you tried yoga?โ€ (https://www.painscience.com/articles/tyranny-of-yoga.php)
2025-04-18 10:00:04
I think there's a difference between "general mindfulness" and a specific physical or mental exercise.
2025-04-18 10:02:01
We should be mindful and you should feel guilty if you don't enjoy being mindful because if you aren't mindful and living in the present moment then you are literally not present, and might as well be somewhere else, asleep or not alive.
2025-04-18 10:03:53
Out to lunch
2025-04-18 10:06:10
Guilt is meant to make us correct our behavior so we can live like who we want to be. Being half alive and lacking mindfulness and self awareness and thoughtfulness is a very healthy thing to feel guilty of!
2025-04-18 10:07:00
Everyone with a healthy conscience feels guilty of that exact thing because we can ALWAYS be MORE mindfully conscious.
Quackdoc
2025-04-18 12:45:40
the "mentality stuff" behind yoga can get a bit... cultish sometimes,. but the physical benefits of yoga are undeniable
Demiurge
2025-04-18 12:48:31
A lot of people also religiously push certain specific physical and mental exercises that work for them but not for everyone
2025-04-18 12:49:46
You have to discover what works for you. Everyone is slightly different.
igrok
monad consider this case which reads similarly without more context https://discord.com/channels/794206087879852103/804324493420920833/1335434938576670770
2025-04-18 06:52:23
I contacted this guy and he still hasn't found a solution <:PepeSad:815718285877444619>
2025-04-18 06:53:12
it would be much easier if i had knowledge in reverse engineering ...
w
2025-04-18 07:27:32
Switching layout causes them to move -> less RSI ๐Ÿคฏ
Traneptora
CrushedAsian255 could things like calculating metric scores also be improved by shaders?
2025-04-19 03:52:13
anything relating to the image processing itself is very fast on a shader but stuff like entropy coding is pretty useless to do on a gpu
Demiurge I have heard some people claim that their RSI improved after switching to US Dvorak keyboard layout
2025-04-19 03:53:46
there's actually no evidence to suggest that dvorak is faster than qwerty for typical typists, once you control for the population type
2025-04-19 03:54:17
a lot of dvorak fans will like to say "qwerty was intentionally designed to make you slow so typewriter keys wouldn't get stuck" but there's also no evidence to suggest this at all
Demiurge
2025-04-19 03:54:34
True. There's no evidence that it helps you type faster.
Traneptora
2025-04-19 03:55:01
the actual origin of qwerty isn't even fully known, but what is known is that some of the earlier typewriter designs used it because alternating left-vs-right hand caused keys to get stuck less
Demiurge
2025-04-19 03:55:03
You can definitely reach the same speeds with qwerty.
Traneptora
2025-04-19 03:55:06
but that has an effect of making you faster, not slower
Quackdoc
Traneptora anything relating to the image processing itself is very fast on a shader but stuff like entropy coding is pretty useless to do on a gpu
2025-04-19 03:55:33
well, assuming you can actually fit everything you need in the gpu, if you are performing a lot of copies on large images... it's rough...
2025-04-19 03:55:46
memory management is pain
Traneptora
2025-04-19 03:56:00
ye, but stuff like, sRGB -> XYB is the sort of operation that gpus eat alive
Quackdoc
2025-04-19 03:56:03
yee
Demiurge
Traneptora the actual origin of qwerty isn't even fully known, but what is known is that some of the earlier typewriter designs used it because alternating left-vs-right hand caused keys to get stuck less
2025-04-19 03:56:19
It was designed by Sholes. It was based off an alphabetical keyboard layout with some common keys moved around to make it slightly better. It is only slightly better than an "ABCDEF" layout.
Quackdoc
2025-04-19 03:56:31
I really like rust-gpu, or really any language that lets you write shader and cpu code at the same time for stuff like this
Traneptora
Demiurge It was designed by Sholes. It was based off an alphabetical keyboard layout with some common keys moved around to make it slightly better. It is only slightly better than an "ABCDEF" layout.
2025-04-19 03:57:42
the Remmington was the first QWERTY typewriter and Sholes filed a patent for it but there's not a ton of historical evidence that sholes unilaterally invented it
2025-04-19 03:58:19
we have the patent filed with the US Patent Office in the 1860s
2025-04-19 03:58:25
but minimal sources other than that one
Demiurge
2025-04-19 03:58:30
Sholes tried to incrementally improve it by moving more keys around but Remington said "too late, bad time to change it when it's already getting so successful"
2025-04-19 03:59:14
Therefore we are still using this alphabetical-based layout that's only slightly better than ABCDEF
2025-04-19 03:59:38
It was a very early prototype basically
2025-04-19 04:00:12
With still a lot of alphabetical sequences left like DFGHJKL
Traneptora
2025-04-19 04:01:23
there's a lot of misconceptions about QWERTY's origins tho
Demiurge
2025-04-19 04:01:32
Yep, true.
Traneptora
2025-04-19 04:01:44
these are largely in part because of a 1980 article a journal of informaion processing
2025-04-19 04:01:59
which made a few incorrect assertions, like that the layout was designed to slow people down
Demiurge
2025-04-19 04:02:11
Sholes was trying to design a good layout when he made QWERTY but he just was not allowed to actually finish.
Traneptora
2025-04-19 04:02:15
here's a really good 2009 paper about it
2025-04-19 04:02:15
https://repository.kulib.kyoto-u.ac.jp/dspace/bitstream/2433/139379/1/42_161.pdf
2025-04-19 04:03:01
it includes gems like how scientific american reported that you could type from 60 to 80 wpm on it
2025-04-19 04:03:12
most Americans today, even those who touch-type, don't type that quickly on regular keyboards
Demiurge
2025-04-19 04:04:30
People on both sides say a lot of questionable things :)
2025-04-19 04:06:12
It won't make you type faster but it's certainly much much faster to learn. You'll be touch typing much sooner than the time it takes to learn the Sholes layout QWERTY
2025-04-19 04:07:19
The US Navy trial by Earle Strong definitely had multiple major problems too.
2025-04-19 04:07:36
And people on both sides reach strange conclusions both pro and contra.
2025-04-19 04:20:32
It's absolutely faster to learn, it absolutely eliminates most of the required hand movement compared to QWERTY, and, surprisingly, you absolutely can type just as fast with QWERTY. Those are the 3 major takeaways.
Traneptora
2025-04-19 04:21:11
my opinion on QWERTY is that "it works" and trying to do anything except it ends up just putting you in an uphill battle
2025-04-19 04:21:39
it's like deciding that using miles is stupid while living in the US so you will choose to only use kilometers. you can do that. but everything around you will still be in miles. so you still have to know it
2025-04-19 04:21:53
since people do not exclusively use their own keyboards
Demiurge
2025-04-19 04:22:17
Some would argue Dvorak just works for them too. And yeah, using miles and ounces and whatnot is pretty infuriating :)
Traneptora
2025-04-19 04:22:42
yea, but the problem is that you can't just *decide* to not use them when your recipe is in ounces
2025-04-19 04:22:55
or when the sign is in miles
2025-04-19 04:23:04
like, you have to know how to work with them *anyway*
Demiurge
2025-04-19 04:23:15
Personally, I learned QWERTY first while in school and it took a very very long time before I stopped looking at the keyboard keys.
2025-04-19 04:23:43
I didn't learn any other layout until recently.
Traneptora
2025-04-19 04:23:44
like even if dvorak is easier to learn or whatever you still *have* to learn qwerty if you work in any place where you do not own the hardware. which is most people
2025-04-19 04:24:23
institutions have restrictions on those sorts of things because they have help desk that has to be able to type on your keyboard if something breaks
2025-04-19 04:24:36
so they won't let you use anything else in your cubicle
Demiurge
2025-04-19 04:24:52
Usually you can switch layouts with "logo+space" key combo.
2025-04-19 04:28:07
I think it's good if people decide what they think works for them, depending on what their priorities are. Some people are more or less worried about theoretical or real problems with going against the status quo.
2025-04-19 04:28:42
I don't want to pressure people either way.
2025-04-19 04:29:22
But I am biased obviously and I think it's cool when people try new things ;)
2025-04-19 04:29:29
Like JPEG XL for example
2025-04-19 04:29:42
<:JXL:805850130203934781>
2025-04-19 04:31:03
I personally decided to try learning a new keyboard layout just to test my own elasticity.
2025-04-19 04:31:25
Not because of unrealistic expectations
_wb_
2025-04-19 08:09:30
QWERTY was designed to have the letters of the word TYPEWRITER all on the top row so salesmen could more easily find those keys when demoing a typewriter by typing the word "typewriter".
2025-04-19 08:10:28
I don't know what the other design criteria were but avoiding stuck hammers was one of them iirc
Traneptora
_wb_ QWERTY was designed to have the letters of the word TYPEWRITER all on the top row so salesmen could more easily find those keys when demoing a typewriter by typing the word "typewriter".
2025-04-19 08:15:16
this is often cited, but there's no primary source evidence to suggest this is the case. the brand name had been decided before the position of the keys was finalized, and the marketing demonstrations were typically done by having someone typing out a live feed like a telegraph or a speaker
_wb_
2025-04-19 08:16:19
Maybe it's just a coincidence then that those letters are all on the top row
Traneptora
2025-04-19 08:16:29
as far as I'm aware, yea
2025-04-19 08:16:53
considering the brand name was Sholes & Glidden Type-Writer
2025-04-19 08:16:58
with a hyphen
2025-04-19 08:17:57
see the patent
2025-04-19 08:18:57
there was a hyphen but it was Shift+6
2025-04-19 08:19:03
(in the remmington no. 2 model)
2025-04-19 08:19:26
so it wouldn't have been possible to type Type-Writer on the first model, and wouldn't have been only the first row on the second
jonnyawsom3
2025-04-19 08:36:56
Perhaps <#806898911091753051>
Demiurge
_wb_ QWERTY was designed to have the letters of the word TYPEWRITER all on the top row so salesmen could more easily find those keys when demoing a typewriter by typing the word "typewriter".
2025-04-19 10:37:18
I forget the name of the friend of Sholes who allegedly suggested to Sholes to put those keys in the top row.
2025-04-19 10:42:13
Might have been Glidden
2025-04-19 10:42:21
Might have been hearsay
2025-04-19 10:43:48
Wikipedia says something about it too, with attribution to > Gould, S.J., The Panda's Thumb of Technology. *Bully for Brontosaurus: Reflections in Natural History.* New York: W.W. Norton & Company, 1991.
Artysiq
2025-04-20 01:14:48
hello guys
2025-04-20 01:15:24
https://jxl-art.surma.technology/?zcode=7Vy9btwwDN7vKdSpQNAilm2dz0v3Dp36BEGRAhmKAm2G9O0bJNadf0SRpn4syc50J9onmfz4kaLo3N%2BJr88f%2F4oH8evxk%2Fj28Ofp9wdxd386Pf0UP8QXUZ2EGD7K149vX%2F69flHy%2Fet1oDt3w4AQn8X3x2dRq%2Fo6Mlx0bvrr0O3OqhkN3oYbNRl%2BE7xMpr79LWec3VQrtRBdhc2lMQj1r1ZGmb5V9kaxbUnThV064AL7%2FNgUkMyixEE0tiRtruHGqXWpmtAL6pRdUeeqYymCokpIujF4qpSgo124kxEQlZlBUnHE5NSmL1AyCFJXOYM6e%2FMGHQRnnKVdZMFUG5Cu%2Ft2qcaGYpbevNRygdZT1SctTbeNq9BydBQ904GNbxAllDCh49QWNCs0ruAdw044sY9wK5GiSXPjoAagDULvaABFj8QGdEPn2QEPjRxiGpgsfBtu2M7FY2%2FV7whEzqwOFLjgaxHPDrEx5IKWUQiHkAOa%2FSuIhn08YOJUn2GgikWpP6RBnI%2BKzJuh%2FfREQiWRMSwh52PWWl04lW9ogg5dpxq3Aqy%2Fo%2BlDPlZoD6ERylsbqYSUPZ4l3%2FJOZt3hCOlfvZXG9Qw5XHWan5K3LMk2GaCCzGfOsqNzTbEdcH1wUBX2wdCmZjtDbemR7idzWM57RX2GydapMmta0sqwtJebg5kkgmZtHmOcidfZAuvDHhbC2EWtaxJsjSNZpIShQgw8LWESqhRVgtVAQTBAjZOuc%2BrUVExbOwMyElTIEjxuhkBtHuISxjpWUP1aK22i1DdrIaSHu%2BNxNCY2a8G4r3PSxSZdck2SzajznRZMgWP02eU7MTT6X8sB0uEOy09KAMSR08F8BoUANYAeycLrBqB6NRgSul5G5PjC%2B97Rvp%2BYsMYCMGNRD9cA5tJvkhWQtSewV02zRS92zcBqyVomlqreof6A5KqCZUpiVnmewmdOZWfmpYAoAkrUnAAXq2Es%2Ff2VtI73W%2B4OsMQY4sfQSL%2B8SymfeEF54wYwPI49QZptzMyiTs0%2BXZ0vQH%2BJ28%2BXvO%2BGPffPzHX%2BwZ%2Bu%2FsDCgjiPekLYP1N63DSTo7KYSYLfEmlpc0X2wUiQIwtKlZDwy6%2FFbdPi9X9vPXpwda8rY2gc09oHGm01DgK4VuEMfozyfVlcxgZUQzwMG1Tb21vMe6sXsa5q6LEgHZ7CC3PLUCLmh1GZVqN1UsHQzYECmjYoMoCsvHlwQRrQ%2Fq80Gvu2NxC87%2BNDUzH67XQ9OaEuVRrLBhQMPoL05bE9fwSM1sgOiQMPYRwd00WUCITTRonms9U0QKBCSuARuoaDZNRozovU%2BF%2B6L4X9YwsF8WyZVakWPenywEuZXrCQvDLUHC7pEaAB9bgdenPFComEkQGA0jD12BmgtdqtKShCC4tJqLcd9sltAXUpzTg822zgtes8MnWfGvjOg66wo50C5kfPKdqCNvTXJ6%2BtTMaxHDOcsYnOiPV5KtSEqzEtlVOfmZaPSUj%2FOP27wEyN9rywo2pD8DC0uKo7LFlkfDBqfPGVvyoVgoyGTmr0xnyYRaBtbt4DGrX25QL97D%2FACYJaas6ZmJLLu5kjP2bJAh1Um5qYes6w%2FpCqs3cAJq3sjkZCoAkSz4evX%2Fw%3D%3D Who made this ? i wanna contact him
username
Artysiq https://jxl-art.surma.technology/?zcode=7Vy9btwwDN7vKdSpQNAilm2dz0v3Dp36BEGRAhmKAm2G9O0bJNadf0SRpn4syc50J9onmfz4kaLo3N%2BJr88f%2F4oH8evxk%2Fj28Ofp9wdxd386Pf0UP8QXUZ2EGD7K149vX%2F69flHy%2Fet1oDt3w4AQn8X3x2dRq%2Fo6Mlx0bvrr0O3OqhkN3oYbNRl%2BE7xMpr79LWec3VQrtRBdhc2lMQj1r1ZGmb5V9kaxbUnThV064AL7%2FNgUkMyixEE0tiRtruHGqXWpmtAL6pRdUeeqYymCokpIujF4qpSgo124kxEQlZlBUnHE5NSmL1AyCFJXOYM6e%2FMGHQRnnKVdZMFUG5Cu%2Ft2qcaGYpbevNRygdZT1SctTbeNq9BydBQ904GNbxAllDCh49QWNCs0ruAdw044sY9wK5GiSXPjoAagDULvaABFj8QGdEPn2QEPjRxiGpgsfBtu2M7FY2%2FV7whEzqwOFLjgaxHPDrEx5IKWUQiHkAOa%2FSuIhn08YOJUn2GgikWpP6RBnI%2BKzJuh%2FfREQiWRMSwh52PWWl04lW9ogg5dpxq3Aqy%2Fo%2BlDPlZoD6ERylsbqYSUPZ4l3%2FJOZt3hCOlfvZXG9Qw5XHWan5K3LMk2GaCCzGfOsqNzTbEdcH1wUBX2wdCmZjtDbemR7idzWM57RX2GydapMmta0sqwtJebg5kkgmZtHmOcidfZAuvDHhbC2EWtaxJsjSNZpIShQgw8LWESqhRVgtVAQTBAjZOuc%2BrUVExbOwMyElTIEjxuhkBtHuISxjpWUP1aK22i1DdrIaSHu%2BNxNCY2a8G4r3PSxSZdck2SzajznRZMgWP02eU7MTT6X8sB0uEOy09KAMSR08F8BoUANYAeycLrBqB6NRgSul5G5PjC%2B97Rvp%2BYsMYCMGNRD9cA5tJvkhWQtSewV02zRS92zcBqyVomlqreof6A5KqCZUpiVnmewmdOZWfmpYAoAkrUnAAXq2Es%2Ff2VtI73W%2B4OsMQY4sfQSL%2B8SymfeEF54wYwPI49QZptzMyiTs0%2BXZ0vQH%2BJ28%2BXvO%2BGPffPzHX%2BwZ%2Bu%2FsDCgjiPekLYP1N63DSTo7KYSYLfEmlpc0X2wUiQIwtKlZDwy6%2FFbdPi9X9vPXpwda8rY2gc09oHGm01DgK4VuEMfozyfVlcxgZUQzwMG1Tb21vMe6sXsa5q6LEgHZ7CC3PLUCLmh1GZVqN1UsHQzYECmjYoMoCsvHlwQRrQ%2Fq80Gvu2NxC87%2BNDUzH67XQ9OaEuVRrLBhQMPoL05bE9fwSM1sgOiQMPYRwd00WUCITTRonms9U0QKBCSuARuoaDZNRozovU%2BF%2B6L4X9YwsF8WyZVakWPenywEuZXrCQvDLUHC7pEaAB9bgdenPFComEkQGA0jD12BmgtdqtKShCC4tJqLcd9sltAXUpzTg822zgtes8MnWfGvjOg66wo50C5kfPKdqCNvTXJ6%2BtTMaxHDOcsYnOiPV5KtSEqzEtlVOfmZaPSUj%2FOP27wEyN9rywo2pD8DC0uKo7LFlkfDBqfPGVvyoVgoyGTmr0xnyYRaBtbt4DGrX25QL97D%2FACYJaas6ZmJLLu5kjP2bJAh1Um5qYes6w%2FpCqs3cAJq3sjkZCoAkSz4evX%2Fw%3D%3D Who made this ? i wanna contact him
2025-04-20 02:03:32
it was made by someone in 2021 who is no longer in this server. I am curious as to what reason(s) you have for wanting to contact the creator.
Artysiq
username it was made by someone in 2021 who is no longer in this server. I am curious as to what reason(s) you have for wanting to contact the creator.
2025-04-20 02:19:06
I tried to study this code, and the complexity of its execution drove me crazy. I'd like to do something like this
CrushedAsian255
2025-04-20 05:38:26
Itโ€™s basically just a bunch of row and column checks
TheBigBadBoy - ๐™ธ๐š›
2025-04-20 07:01:08
I am pretty sure a simple commandline `cjxl -d 0` will compress better thqn that
Demiurge
2025-04-20 07:05:00
Um, is that actually less bytes than just... a normal bitmap?
_wb_
2025-04-20 10:01:08
-d 0 -e 10 -g 3 -I 0 -P 0
embed
_wb_ -d 0 -e 10 -g 3 -I 0 -P 0
2025-04-20 10:01:38
https://embed.moe/https://cdn.discordapp.com/attachments/794206170445119489/1363454430229561434/mario.jxl?ex=68061763&is=6804c5e3&hm=44ebfa5bb4d718e9ee2bc9e4ddfe01ad5e3df9eff23e782aef6426d2afb93574&
jonnyawsom3
2025-04-20 10:30:09
Squeeze would work well, if it were limited to 32x32 as the smallest step
_wb_ -d 0 -e 10 -g 3 -I 0 -P 0
2025-04-20 10:33:06
embed
2025-04-20 10:33:17
https://embed.moe/https://cdn.discordapp.com/attachments/794206170445119489/1363462475327995924/MarioButSmaller.jxl?ex=68061ee2&is=6804cd62&hm=f72ef24fbf5a130479104a318a64d7c642ee351122a26f5b98674d0ee946f316&
jonnyawsom3
2025-04-20 10:43:27
I assume the 7 bytes are from the recent ANS commits, since I ran the same command but it works at e9 too
TheBigBadBoy - ๐™ธ๐š›
2025-04-20 07:22:05
why does my funky command produce a bigger file <:PepeHands:808829977608323112> ```cjxl -d 0 -e 11 --allow_expert_options --resampling=8 --already_downsampled --upsampling_mode=0 new.png new.jxl JPEG XL encoder v0.11.1 794a5dcf [AVX2,SSE4,SSE2] Encoding [Modular, lossless, effort: 11] Compressed to 586 bytes (0.286 bpp)```
jonnyawsom3
TheBigBadBoy - ๐™ธ๐š› why does my funky command produce a bigger file <:PepeHands:808829977608323112> ```cjxl -d 0 -e 11 --allow_expert_options --resampling=8 --already_downsampled --upsampling_mode=0 new.png new.jxl JPEG XL encoder v0.11.1 794a5dcf [AVX2,SSE4,SSE2] Encoding [Modular, lossless, effort: 11] Compressed to 586 bytes (0.286 bpp)```
2025-04-20 07:23:37
Yeah I tried that too. The upsampling weights for making it NN is too much overhead
TheBigBadBoy - ๐™ธ๐š›
2025-04-20 07:24:33
that's weird I really thought NN was pretty straightforward doesn't it just store the multiplier (8 here) and... that's all ???
jonnyawsom3
2025-04-20 07:24:44
Eventually I'll try encoding it with a custom 32 step squeeze transform, to return it to 1:1 pixel scale internally
monad
TheBigBadBoy - ๐™ธ๐š› that's weird I really thought NN was pretty straightforward doesn't it just store the multiplier (8 here) and... that's all ???
2025-04-20 07:25:08
it's custom weights in this case
jonnyawsom3
TheBigBadBoy - ๐™ธ๐š› that's weird I really thought NN was pretty straightforward doesn't it just store the multiplier (8 here) and... that's all ???
2025-04-20 07:25:10
The default is the fancy non-seperable upsampling in the decoder, so NN has to signal data to reverse that
TheBigBadBoy - ๐™ธ๐š›
2025-04-20 07:26:29
[โ €](https://cdn.discordapp.com/emojis/902695649198374962.webp?size=48&name=chad%7E1)
2025-04-20 07:27:12
`cjxl -d 0 -e 11 --allow_expert_options` v0.11.1 794a5dcf [AVX2,SSE4,SSE2]
jonnyawsom3
2025-04-20 07:30:36
Huh, that's interesting. I wonder where that extra byte came from in main, and why my e11 was worse than e9
monad
2025-04-20 07:37:03
compressing the weights can yield a smaller file: ```927 art.png 587 art_jixel.jxl 196 art_jixel.jxl.paq8px208fix1 240 MarioButSmaller.jxl 254 MarioButSmaller.jxl.paq8px208fix1```
2025-04-20 07:49:50
pointless
jonnyawsom3
2025-04-20 08:51:53
Interesting, the LZ77 build I used should've compressed the weights too
screwball
2025-04-21 01:00:59
this is a 10k scan of imax film and i took the massive TIFF file (491 MB) and compressed it to a JXL (9 MB) the film grain at the individual pixel level is literally identical to the original how the hell is this possible? what does JXL do differently than JPEG that allows for this insane efficiency?
2025-04-21 01:08:47
it seems impossible to me i dont see any blocky artifacting or anything
2025-04-21 01:08:54
its literally perfect
RaveSteel
2025-04-21 01:12:28
Can you link the original?
screwball
2025-04-21 01:12:39
TIFF (left) vs JXL (right)
RaveSteel Can you link the original?
2025-04-21 01:12:48
i can try to find the download
RaveSteel Can you link the original?
2025-04-21 01:14:25
https://pixeldrain.com/u/acuWaWDJ
RaveSteel
2025-04-21 01:18:14
Thank you
screwball
RaveSteel Thank you
2025-04-21 01:22:12
am i crazy?
2025-04-21 01:22:55
the compression is not even detectable but its like 50x smaller
Quackdoc
2025-04-21 01:23:17
how is the tiff compressed?
screwball
Quackdoc how is the tiff compressed?
2025-04-21 01:24:53
not sure its one thing for the image to have a lot smooth regions and structured data, and that be compressed well but i dont understand how the film grain gets compressed this well because film grain is pretty much random
Demiurge
2025-04-21 01:40:59
Haha
Quackdoc
2025-04-21 01:41:00
downloaded, two images have LZW comression, the rest are uncompressed tiff files, so they will be significantly massive. It is true that grain doesn't compress super well, but comparing from uncompressed to compressed will always be better. ofc jxl is also just really good at what it does, zero doubts about that. but even encoding the folder to png, it brings it from, 2.07gib to 829mib, encoding to jxl losslessly using d0 e4 is 747mib
CrushedAsian255
Quackdoc downloaded, two images have LZW comression, the rest are uncompressed tiff files, so they will be significantly massive. It is true that grain doesn't compress super well, but comparing from uncompressed to compressed will always be better. ofc jxl is also just really good at what it does, zero doubts about that. but even encoding the folder to png, it brings it from, 2.07gib to 829mib, encoding to jxl losslessly using d0 e4 is 747mib
2025-04-21 02:14:21
I think they were using low distance lossy
Demiurge
screwball am i crazy?
2025-04-21 02:51:25
Nah, it's legitimately really good at preserving grain textures. Aside from a few strange quality bugs involving chroma and shadows, it's a really groundbreaking, revolutionary DCT image encoder. It can do things AVIF can't do and it's even inspired a lot of improvements in avif.
2025-04-21 02:52:47
It has the potential, in the future, with incremental improvements to jxl encoders, to eventually become the best at everything. Every category of image compression.
2025-04-21 02:55:45
It's already really good at most things. But encoder improvements happen slow because libjxl is kind of old and hard to read code.
A homosapien
2025-04-21 03:31:13
Libjxl is more like an unkept garden, it just needs some TLC, also quality improvements are not just a priority right now, mass adoption is the key focus at the moment.
2025-04-21 03:32:28
And like half of the devs are working on the rust decoder.
CrushedAsian255
A homosapien And like half of the devs are working on the rust decoder.
2025-04-21 04:10:35
Will there ever be a Rust encoder?
A homosapien
2025-04-21 04:20:16
There has been talk of making a simple encoder to complement the decoder
Quackdoc
2025-04-21 04:21:50
well, there is a basic jxl encoder in zune image
Demiurge
2025-04-21 05:02:18
Mass adoption is fueled by quality improvements that keep it competitive without any embarrassing gaffes that stand out in comparisons
2025-04-21 05:05:14
You can't expect people to mass adopt something unless it makes the competition look unreasonably poor by comparison... not the other way around.
screwball
Demiurge Nah, it's legitimately really good at preserving grain textures. Aside from a few strange quality bugs involving chroma and shadows, it's a really groundbreaking, revolutionary DCT image encoder. It can do things AVIF can't do and it's even inspired a lot of improvements in avif.
2025-04-21 05:45:19
do you have any examples of weird chroma/shadow artifacts?
Demiurge It has the potential, in the future, with incremental improvements to jxl encoders, to eventually become the best at everything. Every category of image compression.
2025-04-21 05:45:45
that would make me so happy because of how applicable it is
Demiurge
2025-04-21 05:51:42
Yeah. Common to a lot of video encoders, libjxl unfairly crushes dark shadowy image features a lot worse than brighter ones. And it has a tendency to desaturate a lot of color images like deep yellows, orange, and green, as well as strange color distortion/ringing artifacts in some colorful photos... I can show some examples later if you must see.
2025-04-21 05:53:00
These are simple and fixable defects in the current libjxl encoder.
screwball
Demiurge These are simple and fixable defects in the current libjxl encoder.
2025-04-21 05:54:34
dont worry, im just curious, its not a *must* also, does that mean the artifacts are not due to a design flaw in the jpeg xl spec or anything? its specifically an issue with this encoder?
Demiurge
2025-04-21 05:58:13
Exactly. It's specifically with this specific encoder version. Aside from those specific defects, it's very impressive and state of the art, for a relatively simple DCT-based image compression algorithm.
2025-04-21 05:59:24
The fact is, the current encoder is not even that sophisticated, it's pretty basic and does not use all of the available technologies possible in the decoder
2025-04-21 06:01:20
It was designed to continuously improve far into the future with advancements in the encoder, without requiring changes in the decoder.
screwball
Demiurge The fact is, the current encoder is not even that sophisticated, it's pretty basic and does not use all of the available technologies possible in the decoder
2025-04-21 06:01:32
is libjxl heavily optimized or is it made simply as a proof of concept implementation? im assuming that libjxl is powering the JPEG XL support in GIMP, which on the slower settings can be *really* slow on larger, detailed images and i wonder how much faster that could get if we had dedicated jxl encoding hardware
2025-04-21 06:02:08
or even just speed improvements to libjxl over time
Demiurge
2025-04-21 06:04:03
It's close to a quick demo or initial proof of concept. A taste of what's possible.
screwball
2025-04-21 06:04:43
thats good because it means theres lots of room to improve
Demiurge
2025-04-21 06:16:40
There is... but as you just heard, quality improvements are low on the list of priorities. "Accelerating adoption" is the priority, whatever that means... To me that sounds contradictory. Quality improvements ARE ultimately what accelerates adoption.
2025-04-21 06:17:18
People adopt something new because the alternatives are unacceptable or completely outclassed.
screwball
Demiurge There is... but as you just heard, quality improvements are low on the list of priorities. "Accelerating adoption" is the priority, whatever that means... To me that sounds contradictory. Quality improvements ARE ultimately what accelerates adoption.
2025-04-21 06:18:08
im already hyped about the current quality and i imagine that mainly performance improvements just need to happen for adoption to be easier
2025-04-21 06:18:31
it will have to compete with AVIF tho
2025-04-21 06:18:38
so i get what youre saying
username
2025-04-21 06:19:31
Mozilla have stated that they will likely include JXL support for Firefox if a fast and full rust based decoder is made by Google devs. this is what I suspect people mean when they say the focus is adoption right now
Demiurge
2025-04-21 06:19:33
People don't just make a major switch when it's "slightly better, in certain situations."
username Mozilla have stated that they will likely include JXL support for Firefox if a fast and full rust based decoder is made by Google devs. this is what I suspect people mean when they say the focus is adoption right now
2025-04-21 06:21:00
It's mostly the work of Luca though.
2025-04-21 06:21:39
As far as I understand it.
2025-04-21 06:22:57
I am looking forward to firefox including it too but if you think rationally about this, if firefox were to adopt it right now, firefox is a dead and irrelevant browser and doesn't have much impact on adoption.
screwball
2025-04-21 06:23:35
what about safari? i thought apple said they were likely adding support as well?
username
Demiurge As far as I understand it.
2025-04-21 06:23:56
Moritz has been working on it quite a bit as well and also there are other people as well
screwball
2025-04-21 06:23:59
i know chromium is the biggest fish
2025-04-21 06:24:03
dont get me wrong
Demiurge
2025-04-21 06:24:04
Firefox getting on board will not ultimately drive adoption unless it helps pressure Chrome to follow, and there is no evidence of that
username
2025-04-21 06:24:53
not caring about Firefox's adoption seems like a very bad idea especially since Safari/WebKit is onboard with support
Demiurge
screwball what about safari? i thought apple said they were likely adding support as well?
2025-04-21 06:25:00
It's already up and running on all Apple products across the board
screwball
Demiurge It's already up and running on all Apple products across the board
2025-04-21 06:25:07
thats awesome
Demiurge
2025-04-21 06:25:10
Yep
2025-04-21 06:25:16
Windows added support too
screwball
2025-04-21 06:25:28
you think thats gonna be able to swap chrome or no?
Demiurge
2025-04-21 06:25:28
In their official photo viewer app
screwball you think thats gonna be able to swap chrome or no?
2025-04-21 06:27:28
No one knows since it ultimately seems to be up to the AVIF tech lead to decide what codecs are allowed in Chromium and he shocked the world by announcing that all the interest in jxl is just a figment of our collective imagination and he's pulling the plug.
2025-04-21 06:29:04
With no one above him second guessing his decision as the lead subject matter expert and head of the "Chrome codec team" no one knows what it will take for his arbitrary decision to be reversed.
2025-04-21 06:30:35
As the head of the team that brought us both AVIF and WebP, he says there's no justification for JXL. But he'll probably add AVIF2 when that's ready ๐Ÿ˜‚
2025-04-21 06:31:44
Flooding the web with his half baked formats forever and blocking any actual image codecs that weren't made by him
Quackdoc
Demiurge Firefox getting on board will not ultimately drive adoption unless it helps pressure Chrome to follow, and there is no evidence of that
2025-04-21 06:32:40
historically, chrome doesn't like being the odd one out, if it's just apple or just firefox supporting it, whatever, but when firefox comes along and supports it too it pressures them
Demiurge
Quackdoc historically, chrome doesn't like being the odd one out, if it's just apple or just firefox supporting it, whatever, but when firefox comes along and supports it too it pressures them
2025-04-21 06:33:15
That's just a theory. I hope you're right.
Quackdoc
2025-04-21 06:33:17
I can't remeber what the chromium team calls it but they do track what firefox and apple support
Demiurge
2025-04-21 06:33:48
It's purely theoretical but I sure hope so
2025-04-21 06:34:19
For sure they will be the very last...
Quackdoc
2025-04-21 06:35:20
well right now the biggest thing to do is pressure android into supporting it by reporting jxl as broken pictures to google images app reviews and your phones manufacturer help portal
username
2025-04-21 06:36:04
if other teams/people at/on Google/Chromium see that all major browser engines besides Chromium support JXL then there will be at least some sort of pressure to implement support and the excuse can't be "only Apple randomly supports it"
2025-04-21 06:41:23
funny thing is if JXL does end up getting implemented in all 3 major browser engines then it might make JXL look more enticing to web devs over AVIF just because of how much newer it is/seems by date of inclusion
Demiurge
2025-04-21 06:54:50
<:JXL:805850130203934781>
2025-04-21 06:56:22
On the bright side, when it does eventually become supported in Chromium, it looks like it really will be here for the long haul. It will be the new benchmark all other formats will have to measure up to.
2025-04-21 06:56:36
There probably won't be a new image format standard for a long long time after that.
2025-04-21 07:07:02
Just like how modern formats still struggle to compete with ancient crusty old JPEG '92
2025-04-21 07:07:20
jpegli is great
Traneptora
2025-04-21 07:07:33
I'm currently working on a major speedup to hydrium so I hope it's as faster as I think it is
2025-04-21 07:07:51
that might make things easier
2025-04-21 07:10:32
Since hydrium has such a small codebase it could be audited more easily
Mine18
Demiurge There is... but as you just heard, quality improvements are low on the list of priorities. "Accelerating adoption" is the priority, whatever that means... To me that sounds contradictory. Quality improvements ARE ultimately what accelerates adoption.
2025-04-21 07:47:15
there's lots of reasons to adopt jxl over avif outside of purely compression quality, many companies have expressed their interest in the format, jxl is extremely flexible with virtually infinite resolution, bit depth and channel amount, progressive decoding, animation, and transparency support while quality at low bpp is situational, there's many other advantages to jxl so if people could adopt it rn, more people could help develop the quality at lower bpp and improve encoding tools for everyone unrelated but man is animation support for formats not called gif so inconsistent
Demiurge
2025-04-21 08:03:52
Yes
HCrikki
2025-04-21 08:06:39
just the fact *reversible* lossless transcode also transforms baseline jpegs into images with a minimum progressiveness is big
Mine18
HCrikki just the fact *reversible* lossless transcode also transforms baseline jpegs into images with a minimum progressiveness is big
2025-04-21 08:07:13
this is news to me, could you explain?
Demiurge
2025-04-21 08:08:04
Old JPEG is compatible with JXL and can be converted losslessly. Always results in a progressive image
HCrikki
2025-04-21 08:08:10
iinm jxls are progressive by design at all profile levels, and you can make them *more* progressive
A homosapien
2025-04-21 08:08:34
Bit-identical btw
Mine18
2025-04-21 08:09:26
Huh, didnt know that jxl is progressive at all times (thought you had to specify when encoding), and i didnt know that lossless trancodes to jpeg were always progressive
HCrikki
2025-04-21 08:09:31
that reversible lossless conversion that guarantees smaller filesize *and* is quasi-instant too is unique in the entire multimedia ecosystem
jonnyawsom3
screwball do you have any examples of weird chroma/shadow artifacts?
2025-04-21 08:12:01
https://discord.com/channels/794206087879852103/1278292301038227489 <https://github.com/libjxl/libjxl/issues/3754> <https://github.com/libjxl/libjxl/issues/3616>
HCrikki
2025-04-21 08:12:42
itd be a massive deal for providers of cloud services. even my ghetto desktop cpu crunches 15 typical photo-tier images per seconds with guaranteed smaller filesie on effort 7 and handles as high as 50/second on e1 while still shrinking the filesize from original
Mine18
HCrikki itd be a massive deal for providers of cloud services. even my ghetto desktop cpu crunches 15 typical photo-tier images per seconds with guaranteed smaller filesie on effort 7 and handles as high as 50/second on e1 while still shrinking the filesize from original
2025-04-21 08:13:25
afaik jxl encoding is generally faster than avif, even when using svt, right?
HCrikki
2025-04-21 08:15:08
converting anything to wepb/avif has the major issue that doing it losslessly will increase filesize severalfold, while doing it lossy will lose visual detail without even any guarantee of smaller filesize (you have to lower loss % enough until you get a smaller filesize, for *even more* loss of visual detail)
jonnyawsom3
2025-04-21 08:16:39
*Only AVIF, Lossless WebP isn't far off JXL right now
HCrikki
2025-04-21 08:18:05
people shouldnt focus too much on minute performance and file fluectuations. libjxl's compressor in particular just sorts efforts according to typical ressource consuption cost, and over time this cost will fluctuate (techniques that were once slow and only attempted in e10 could become fast and added to all efforts for example)
Mine18
2025-04-21 08:18:57
prog. decoding is the most appealing part of jxl for me from the point of a regular user
HCrikki
2025-04-21 08:19:03
or specific distributions of libjxl could be tuned for specific image types like greyscale comics, or to focus less stringently on preserving visual detail at all quality targets
jonnyawsom3
2025-04-21 08:19:30
<#1358733203619319858>
2025-04-21 08:19:32
:>
Demiurge
Mine18 Huh, didnt know that jxl is progressive at all times (thought you had to specify when encoding), and i didnt know that lossless trancodes to jpeg were always progressive
2025-04-21 08:19:36
Lossless mode is not progressive, most of the time
jonnyawsom3
2025-04-21 08:20:35
Lossless is group by group progressive by default, -p enables squeeze which allows under 1% of the file to be viewed
Mine18
<#1358733203619319858>
2025-04-21 08:21:03
improvements are always appreciated, although its shocking how broken fd was
A homosapien
2025-04-21 08:22:23
It was neglected in favor for the lossy mode of libjxl.
2025-04-21 08:22:52
~~"Faster decoding" for lossless just lowering the effort level, now we actually have a functional flag~~
Demiurge
Lossless is group by group progressive by default, -p enables squeeze which allows under 1% of the file to be viewed
2025-04-21 08:24:01
Group by group sequential. Nothing progressive about it.
jonnyawsom3
2025-04-21 08:25:03
Better than AVIF and the order can be controlled :P
Demiurge
2025-04-21 08:25:07
Yep
jonnyawsom3
A homosapien ~~"Faster decoding" for lossless just lowering the effort level, now we actually have a functional flag~~
2025-04-21 08:25:47
It didn't just lower the effort level, it disabled compression entirely
A homosapien
2025-04-21 08:26:58
What I meant to say was that if you wanted faster decoding the only way was using lower effort levels.
jonnyawsom3
2025-04-21 08:27:20
Right yeah, e1 and e2
Demiurge
2025-04-21 08:36:07
e1 and e2 are truly amazing
jonnyawsom3
2025-04-21 08:52:12
At some point we might rework the effort settings predictors. Right now it only uses Weighted and Gradient until e10, but Weighted is 1/4 the speed of Gradient for decoding while only being about 2% better in most cases
2025-04-21 08:53:13
All FD1 does in our fork is disable Weighted, and it's already a 2x increase
screwball is libjxl heavily optimized or is it made simply as a proof of concept implementation? im assuming that libjxl is powering the JPEG XL support in GIMP, which on the slower settings can be *really* slow on larger, detailed images and i wonder how much faster that could get if we had dedicated jxl encoding hardware
2025-04-21 08:56:05
A little bit of both. libjxl is the original testgrounds for the format, with code dating back to the original PIK, FLIF and some WebP mixed in too. It was quite heavily multithreaded and fast codepaths added for common use cases, but it still has nearly a decade worth of technical debt at its core that makes deeper changes hard to implement