|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|