|
Demiurge
|
2025-03-18 03:36:09
|
At least it's only the frame start, and not something even more crucial. Like image size or something.
|
|
|
Traneptora
|
2025-03-18 03:44:51
|
yea the super tiny header is useful for many super tiny images
|
|
2025-03-18 03:45:12
|
but in those cases the TLS handshake and the HTTP roundtrip is more important than the size of the image
|
|
|
AccessViolation_
|
2025-03-18 03:50:59
|
that's true
|
|
2025-03-18 03:51:14
|
that's why I'm a big QUIC proponent as well
|
|
|
_wb_
|
|
Traneptora
but in those cases the TLS handshake and the HTTP roundtrip is more important than the size of the image
|
|
2025-03-18 07:28:20
|
Images can be data-uri inlined in a page, and requests can be multiplexed etc...
|
|
|
CrushedAsian255
|
2025-03-19 09:37:52
|
<:JXL:805850130203934781>
|
|
2025-03-19 09:39:11
|
For this small of an image you can probably afford `-e 10` in which i get a 1775 byte JXL file for that emoji
|
|
|
AccessViolation_
|
2025-03-19 09:44:46
|
it's probably still more efficient to put them all in a sprite sheet and make browsers selectively render parts of them (which I think HTML/CSS can do natively?), but it's only economical if you know you're going to be using most of them
|
|
2025-03-19 09:49:03
|
for example Discord could just make you download the sprite sheet that contains all of a server's custom emoji at react size, and then at message size. Twitch could have a sprite sheet for global emotes and make you download the channel-specific emotes for the specific channel you're watching, and still use a request per emote for any emotes from external channels that are posted in the stream from someone else
|
|
2025-03-19 09:50:26
|
but loading them individually when needed gets more efficient if you serve many different sizes of the same image in many different places, because all size options would require their own sprite sheet
|
|
|
jonnyawsom3
|
|
CrushedAsian255
For this small of an image you can probably afford `-e 10` in which i get a 1775 byte JXL file for that emoji
|
|
2025-03-19 11:37:08
|
I'd try lossless with --keep_invisible 0
|
|
|
CrushedAsian255
|
2025-03-19 11:41:25
|
still 1775 bytes
|
|
|
_wb_
|
2025-03-19 07:56:09
|
.svg.br is the way to go for such images
|
|
2025-03-19 07:56:28
|
Don't rasterize vectors unless you have to
|
|
|
couleur
|
|
_wb_
.svg.br is the way to go for such images
|
|
2025-03-19 08:35:22
|
whats .br
|
|
|
TheBigBadBoy - 𝙸𝚛
|
2025-03-19 08:35:39
|
brotli
|
|
|
CrushedAsian255
For this small of an image you can probably afford `-e 10` in which i get a 1775 byte JXL file for that emoji
|
|
2025-03-19 08:36:04
|
`-e 11` ftw
|
|
|
_wb_
Don't rasterize vectors unless you have to
|
|
2025-03-19 08:36:28
|
yeah but JXL's splines [⠀](https://cdn.discordapp.com/emojis/1059276598660059136.webp?size=48&name=av1_trollhq)
|
|
|
AccessViolation_
|
2025-03-19 08:37:58
|
for brotli they really took the "compact header" idea to the next level didn't they <:tfw:843857104439607327>
|
|
2025-03-19 08:39:00
|
who needs magic signatures
|
|
|
_wb_
|
2025-03-19 09:01:29
|
Aren't all compressed streams like that? IIRC, a raw deflate stream is also headerless
|
|
|
AccessViolation_
|
2025-03-19 09:22:00
|
hmm maybe, but the problem is that you if you just brotli compress a file you end up with a nondistinct blob that software can't automatically check the format of. whereas zstd for example includes a magic number
|
|
2025-03-19 09:22:56
|
i'm only now realizing that this isn't an issue at all if you use a container format compatible with brotli
|
|
|
_wb_
|
2025-03-19 10:23:23
|
It's like gzip vs raw deflate. Both have their uses.
|
|
|
|
5peak
|
|
Traneptora
but in those cases the TLS handshake and the HTTP roundtrip is more important than the size of the image
|
|
2025-03-25 04:14:08
|
This is different problem domain. Speed of light is the limit.
|
|
|
Demiurge
|
2025-04-10 03:24:17
|
So there was some talk earlier about good images to use for visual comparison demos versus other codecs to showcase the strengths of JXL. I think I found some really impressive samples where jxl utterly dominates.
|
|
2025-04-10 03:26:14
|
And it would be cool to show these actual real life examples on the fan website. Photos where other codecs don't even come close and libjxl seems decades ahead.
|
|
2025-04-10 03:34:25
|
https://afontenot.github.io/image-formats-comparison
I was looking at this comparison again recently, and it has some examples where libjxl is unbelievably superior compared to others, as well as a few examples of libjxl doing poorly, but overall libjxl tends to outperform other codecs if you overlook 3 main weaknesses with libjxl. In order of how noticeable the flaws are, they are: Reduced color saturation across a wide range of images, excessive punishment of darker shaded image regions, and excessive ringing and colorful specks at lower bitrates
|
|
2025-04-10 03:36:39
|
One of the best examples of supreme libjxl domination over competitors is the "Sunset" image.
|
|
2025-04-10 03:37:55
|
There are many images where entire details and textures completely disappear in avif and only libjxl preserves them! This would be great on the fan site!
|
|
2025-04-10 03:41:38
|
Take a look at "Sunset," "Seikima," and "White Dune" for some good examples of libjxl domination.
|
|
2025-04-10 03:45:55
|
Also the water and trees in "Reykjavik." Or the red details on the merry-go-round or the texture on the black fish and foliage texture in "Kopenhagen."
|
|
2025-04-10 04:21:47
|
"Mercado" also is a very dramatic difference on that page. With the tiles, and stone surfaces, completely smoothed away by avif but not by libjxl
|
|
2025-04-10 04:22:24
|
I can also list some examples where libjxl does particularly poorly and highlights the 3 flaws I mentioned.
|
|
2025-04-10 04:22:32
|
If anyone's interested
|
|
2025-04-10 04:22:58
|
Either way someone should put these demos on the fan site for sure, in my opinion
|
|
2025-04-10 04:23:47
|
I would credit the source too, "afontenot"
|
|
|
gb82
|
|
Demiurge
https://afontenot.github.io/image-formats-comparison
I was looking at this comparison again recently, and it has some examples where libjxl is unbelievably superior compared to others, as well as a few examples of libjxl doing poorly, but overall libjxl tends to outperform other codecs if you overlook 3 main weaknesses with libjxl. In order of how noticeable the flaws are, they are: Reduced color saturation across a wide range of images, excessive punishment of darker shaded image regions, and excessive ringing and colorful specks at lower bitrates
|
|
2025-04-11 05:21:59
|
Looks like they aren’t using tune iq for avif, that’s a big disadvantage to avif
|
|
|
Demiurge
|
2025-04-11 05:24:23
|
Is that a recently added thing?
|
|
|
gb82
|
2025-04-11 05:54:39
|
Yeah pretty recent
|
|
|
Demiurge
|
2025-04-11 11:56:04
|
Part of psy tuning fork merge?
|
|
2025-04-11 11:59:19
|
Really hope those folks patch libjxl next 😂
|
|
2025-04-12 12:00:32
|
libjxl is already really impressive for a DCT codec but it's got some stiff competition from libaom, sometimes it even looks like av1 is using splines
|
|
|
gb82
|
|
Demiurge
Part of psy tuning fork merge?
|
|
2025-04-13 03:43:48
|
yeah, we created Tune 4 in SVT-AV1-PSY for still image performance & it did well, but it had some inherent limitations (like 4:2:0-only) so its being ported to libaom
|
|
|
Demiurge
Really hope those folks patch libjxl next 😂
|
|
2025-04-13 03:44:10
|
actually a lot of our inspiration came from libjxl, and some from x264
|
|
|
Demiurge
|
2025-04-13 03:57:25
|
Damn, it's too bad libaom is benefitting from libjxl innovations instead of the other way around 😂
|
|
2025-04-13 03:58:33
|
I'm pretty mad at the tech lead of libaom for his childish removal of libjxl from chromium
|
|
2025-04-13 04:00:01
|
I honestly want libaom to fail after that, since the entire planet is being set back on image compression for the sake of his petty ego
|
|
2025-04-13 04:00:21
|
So equally petty I want libaom to utterly fail
|
|
2025-04-13 04:00:42
|
And libjxl to succeed ♥️
|
|
2025-04-13 04:30:58
|
I know libjxl is an utterly nightmarish pile of old coagulated spaghetti code but I really hope someone shows it some love, dikes out some of the old cruft and complexity, and gives it some tuning love. If I have time I might even do it one of these days since no one else seems to -_-
|
|
2025-04-13 04:33:10
|
The devs seem afraid to make major overhauls/changes/refactors because alleged, unfounded fear of messing things up
|
|
2025-04-13 04:33:19
|
libjxl-tiny is the only other encoder afaik
|
|
|
gb82
actually a lot of our inspiration came from libjxl, and some from x264
|
|
2025-04-13 04:34:44
|
Is there anything x264 does that libjxl could copy?
|
|
|
gb82
|
2025-04-13 05:26:50
|
im not really sure, I don't think there's as much overlap compared to SVT-AV1 or libaom because they're video encoders first and foremost
|
|
|
Demiurge
|
2025-04-13 06:29:14
|
Well x264 does have tune=stillimage or something and an intra-only mode without any motion vectors.
|
|
|
jonnyawsom3
|
|
Demiurge
libjxl-tiny is the only other encoder afaik
|
|
2025-04-13 08:05:29
|
hydrium does ultra-low memory lossy encoding
|
|
2025-04-13 08:07:07
|
libjxl is an unwieldy beast, but exposing so many paramters has come in useful. Everything in <#1358733203619319858> has just been changes to if statements and variables, enabling and disabling existing features under different conditions
|
|
|
Demiurge
|
2025-04-13 08:07:11
|
I forgot about that one. That's pretty cool... and it's pretty simple to tune the parameters for these extra-simplified lossy encoders too, so they can benefit a lot from visual testing and tuning
|
|
|
jonnyawsom3
|
2025-04-13 08:10:40
|
I also cooked up a new group size heuristic. Currently it's 256 x 256 unless the image is <= 400 tall and wide, or it's effort 11. Mine will try and use the largest group size that maximizes thread utilization. Roughly speaking, an 8 core 16 thread CPU will use g1 (256 x 256) for 1080p, g2 (512 x 512) for 4K and g3 (1024 x 1024) for 8K.
Need to do a bit more testing on it's impact though, may limit g3 to effort 9+ due to the memory increase
|
|
|
Demiurge
|
2025-04-13 08:14:40
|
I think it's better if the criteria is based on the image rather than the particular environment it's being run on
|
|
2025-04-13 08:17:31
|
I think there's too many effort levels too... certain features would be better as their own separate experimental option rather than adding yet another gradation to the effort knob
|
|
2025-04-13 08:18:47
|
Unless/until those features become solid enough to enable by default in a certain effort setting. The current state of the effort setting are pretty poor tradeoffs.
|
|
|
jonnyawsom3
|
2025-04-13 08:19:02
|
If you mean using the block size that gives the best density, the only option is brute forcing all of them currently, which is what effort 11 does. It would check that the image is at least as big on both axis as the chosen block size, to avoid cases like a 1 pixel long strip using 99% empty 1024 x 1024 groups, instead using 128x128
|
|
|
Demiurge
|
|
If you mean using the block size that gives the best density, the only option is brute forcing all of them currently, which is what effort 11 does. It would check that the image is at least as big on both axis as the chosen block size, to avoid cases like a 1 pixel long strip using 99% empty 1024 x 1024 groups, instead using 128x128
|
|
2025-04-13 08:19:58
|
No, it can be a heuristic like the same as your proposed algorithm except not dependent on the host environment (always assume X hypothetical threads for example)
|
|
|
jonnyawsom3
|
2025-04-13 08:20:55
|
Heuristic... How? See if it has lots of HF data and use smaller blocks for more locality, with big blocks for smooth images?
|
|
2025-04-13 08:22:26
|
Wait, this is the website channel...
|
|
|
Demiurge
|
2025-04-13 08:22:33
|
Like I said, it could be the same as what you are proposing, but instead of being dependent on the host environment, it can use static values
|
|
2025-04-13 08:23:12
|
I just personally would prefer the compression parameters weren't affected by the host system
|
|
2025-04-13 08:23:24
|
Unless explicitly asked
|
|
|
jonnyawsom3
|
2025-04-13 08:23:28
|
Continuing in https://discord.com/channels/794206087879852103/804324493420920833/1360893182203789332
|
|
2025-04-20 10:21:30
|
Maybe we shouldn't have *all* our email addresses publicly listed... <@594623456415449088> <https://jpegxl.info/about/contributors.html>
|
|
|
monad
|
2025-04-20 06:59:31
|
an ironic criticism given they were published publicly by each individual to an enduring and widely disseminated git repo
|
|
|
jonnyawsom3
|
2025-04-20 07:01:29
|
The git repo is less likely to be found by random members of the public, including mischievous kids, than the front facing page for the format
|
|
|
KKT
|
2025-04-21 03:29:46
|
Yeah, we had a debate about it back in the day and decided to go ahead since they were already public… Maybe they should be links to their github pages or LinkedIn?
|
|
|
jonnyawsom3
|
2025-04-21 08:28:50
|
Could link to their contributions to libjxl (or eventually jxl-rs)
|
|
|
Jyrki Alakuijala
|
|
Demiurge
One of the best examples of supreme libjxl domination over competitors is the "Sunset" image.
|
|
2025-05-13 12:38:12
|
Clouds are not easy for usual compressors, I paid quite a bit of attention to get natural looking clouds in JPEG XL. I like how the sky looks, and I like clouds particularly 😄
|
|
|
Demiurge
|
2025-05-13 12:39:08
|
Not just the clouds but also the foliage
|
|
|
Fab
|
2025-05-13 01:45:04
|
How is the yt encoder of today at encoding the clouds at 1080p resolution and av1?
|
|
|
Tirr
|
2025-06-02 05:51:54
|
Duplicate Image Finders section of <https://jpegxl.info/resources/supported-software.html>: I think [czkawka](https://github.com/qarmin/czkawka) also supports jxl, via jxl-oxide
|
|
|
Quackdoc
|
|
Tirr
Duplicate Image Finders section of <https://jpegxl.info/resources/supported-software.html>: I think [czkawka](https://github.com/qarmin/czkawka) also supports jxl, via jxl-oxide
|
|
2025-06-02 08:33:52
|
correct. I use krokiet, the slint frontend for czkawka a lot :D
|
|
|
jonnyawsom3
|
2025-06-11 12:52:26
|
It'd be nice to do some minor Cleanup of the site that never got done months ago.
Fixing the bad compression of the background image, making the effort vs quality sliders more coarse to reduce the amount of files needed
|
|
|
KKT
|
2025-06-11 03:58:23
|
At this point I'm probably just going to rebuild it in Webstudio and use Decap as the CMS. Just need to find a bit more time.
For the background image, I used the largest size available on the download. It's the full width, so the JPEG artifacts are baked in. I guess I could try an AI upscale it or something. As well, I thought it was only really noticeable when we had that bug that scaled it to like 2000% on some Linux browsers.
I don't think it's worth it on the effort vs quality side. It was suggested we use jxl-oxide to do the compression and decompression. Not sure how performant that will be, but I guess we can try.
|
|
|
jonnyawsom3
|
2025-06-11 05:13:32
|
Well jxl-oxide is a decoder only, you'd need to lobotomize Squoosh for a WASM encoder.
I think effort vs quality still has a place, but significantly cut it down. Generally the people moving at distance 0.1 increments are the kind to do testing locally, we just need a general showcase of Distance 0-5, maybe 0.25 increments and use the oxide WASM decoder so we don't need to store hundreds of extra images for fallback
|
|
|
KKT
|
2025-06-11 07:07:58
|
As a photographer I find it interesting to look at those kind of increments. We can certainly cut down the high distances. Does it hurt to have more? Performance seems fine
|
|
|
jonnyawsom3
|
2025-06-11 07:23:45
|
....
|
|
2025-06-11 07:26:24
|
It makes it an absolute nightmare to edit and maintain, when 90% of visitors don't even use the page, yet alone test all 100 distance notches at all 10 effort levels per image
|
|
2025-06-11 07:27:50
|
Personally I go for distance 0.3 when using lossy, so I too would like fine grained control, but when the images are only a few hundred pixels wide anyway, you can't see the difference between distance 0 and distance 0.5 yet alone distance 0 and 0.1
|
|
2025-06-11 07:31:41
|
Maybe a dynamic distance slider? 0.1 increments up to distance 1, 0.25 up to distance 2, 0.5 up to distance 5, and 1 up to distance 15
|
|
2025-06-11 07:35:02
|
That cuts it down to 300 images from 1,500. Then add the WASM decoder and the repo is 20x smaller, far smaller in filesize too since we don't need lossless fallbacks
|
|
|
KKT
|
2025-06-12 12:44:18
|
Background image has been updated and recompressed. Best I could do with that image. Scaled up using AI, scaled down, then converted to greyscale PNG, the convert to JXL & webp. Maybe looks slghtly better? Otherwise we'll have to find a replacement.
|
|
|
jonnyawsom3
|
|
Maybe a dynamic distance slider? 0.1 increments up to distance 1, 0.25 up to distance 2, 0.5 up to distance 5, and 1 up to distance 15
|
|
2025-06-12 01:10:16
|
Since it's meant to be a showcase of the format... v0.8 up to distance 9.9, then main for distance 10-15 should give the best visual results... Effort 9 and 10 are identical for images under 2048*2048 too
|
|
2025-06-12 08:27:20
|
Actually ignore that, v0.8 is still better all round, you'll just want to manually enable resampling at distance 10+ to match the behaviour of main
|
|
|
monad
|
2025-06-12 09:31:58
|
No, old versions shouldn't be used in general and impressions shouldn't be artificially manipulated. It's bad enough people still propagate the generation loss resistance claim based solely on Jon's old videos without any practical substantiation in years.
|
|
|
A homosapien
|
2025-06-12 10:00:50
|
I agree with monad, using the latest version is what most people would normally use anyways. Also, there is generation loss resistance but only for distances ≤0.5.
|
|
|
jonnyawsom3
|
2025-06-12 12:10:50
|
I also agree with monad, we shouldn't need to use old versions, but here we are
|
|
2025-06-12 12:11:24
|
You could say the same about JXL art, the tiny sizes aren't representative of normal encoding, but we still show them off and boast
|
|
|
HCrikki
|
2025-06-12 12:28:36
|
decode speed is super important too. for some one given image, itd be helpful to demonstrate that it has no direct relation to *filesize* and depending on the encoding parameters, efforts, flags (decoding not so much since i assume images are almost always decoded at the highest precision possible), an image can be made to load instantly even on old weak hardware
|
|
2025-06-12 12:30:44
|
could help influence the scripters and integrators away from insanely ressource-hungry settings, efforts and implementations that damage jxl's reputation
|
|
2025-06-12 12:33:08
|
like, ok you inconstently save 10 kilobytes for the average 10 megapixel image but was it worth making images take 10x more cycles and time to decode now that the cost of energy for server and cloud compute has drastically increased ?
consider comics and danbooru-like galleries, some scripts cause ludicrously huge increases in computing cost, encode durations and decode speeds, to the point site ops prefer nopeing off to avif or stick to jpg for another decade
anything above effort 8 shouldve been locked down as developper-only not meant to be used except for intentionally specific purposes or allowed only for images smaller than 2 megapixels if system isnt known to benchmark very high for jxl encoding and decoding (flawed as it is, see phoronix test suite results for an idea)
|
|
|
jonnyawsom3
|
2025-06-12 12:40:26
|
When the next version releases, we can definitely rerun the numbers and get some solid results for decode speed, progressive loading, ect
|
|
|
monad
|
|
You could say the same about JXL art, the tiny sizes aren't representative of normal encoding, but we still show them off and boast
|
|
2025-06-12 05:19:26
|
Latest releases incorporate improvements regardless of coding efficiency observations. They are most accessible as integrations update. JXL art as a process could be misunderstood, but that's separate to my argument.
|
|
|
diskorduser
|
2025-07-19 07:07:38
|
this look weird. hits counter
|
|
|
_wb_
|
2025-07-19 07:54:13
|
Does that happen at a specific viewport width? On my phone it looks normal
|
|
|
diskorduser
|
|
_wb_
Does that happen at a specific viewport width? On my phone it looks normal
|
|
2025-07-19 08:05:41
|
I used waterfox on desktop. 1920x1080 on windows 11.
|
|
2025-07-19 08:07:27
|
may be the problem with firefox based browsers? it looks like that in android waterfox but on chrome it looks ok.
|
|
2025-07-19 08:08:57
|
|
|
|
KKT
|
2025-07-19 07:24:52
|
I'll fix
|
|
2025-07-19 07:29:08
|
Done
|
|
|
jonnyawsom3
|
2025-10-18 07:29:19
|
A very minor nit pick, but in light of [this](<https://redd.it/1oa4ip9>) Reddit post, maybe we should use underscores instead of dashes for spaces, to avoid `JPEG-XL` confusion xD
<https://jpegxl.info/resources/jpeg-xl-test-page.html>
|
|
|
KKT
|
2025-10-18 11:36:04
|
Hmm, I usually use hyphens for SEO best practices, but it probably doesn't matter much. I wonder if we should just create a JPEG XL branding guidelines page?
|
|
|
monad
|
2025-10-19 02:50:38
|
Actually, the dash is correct on Reddit.
|
|
|
KKT
|
2025-11-11 04:07:46
|
I added Shutter Encoder and updated the Affinity logo/link on the software page.
|
|
2025-11-23 06:00:20
|
I've updated the website with a bunch of the new articles (JPEG XL in hardware, PDF support, Chrome support). Let me know if there are other good ones…
|
|
2025-11-23 07:12:24
|
Hey, I'm trying to update the HDR image on the website (remove the video for Safari now that HDR images are supported). I couldn't find my original source file, so I recreated it (in Affinity, like before). I'm exporting as an EXR and it looks exactly like the source. I export as PNG and it's much more saturated but significantly less bright. I'm converting to AVIF and JXL. Both are coming out dark. I guess I could use them this way, but I thought they looked better brighter. Any idease?
|
|
2025-11-23 07:17:29
|
AVIF:
`avifenc -q 90 -s 0 -r f -d 10 -y 444 --nclx 9/16/9`
JXL:
`cjxl -d 1.5 -e 7`
|
|
2025-11-23 07:18:48
|
|
|
2025-11-23 07:19:34
|
I created the JXL from both the EXR & PNG and they both end up looking exactly the same.
|
|
2025-11-23 07:28:27
|
I guess now that Affinity is free, you can take a run at the original too:
|
|
2025-11-23 07:28:35
|
Had to split in two to upload.
|
|
|
spider-mario
|
|
KKT
Hey, I'm trying to update the HDR image on the website (remove the video for Safari now that HDR images are supported). I couldn't find my original source file, so I recreated it (in Affinity, like before). I'm exporting as an EXR and it looks exactly like the source. I export as PNG and it's much more saturated but significantly less bright. I'm converting to AVIF and JXL. Both are coming out dark. I guess I could use them this way, but I thought they looked better brighter. Any idease?
|
|
2025-11-23 07:31:22
|
maybe using `exr_to_pq` from libjxl?
|
|
2025-11-23 07:45:40
|
ah, it seems it doesn’t behave well with alpha, I should fix that
|
|
2025-11-23 07:57:13
|
is this how it’s supposed to look?
|
|
2025-11-23 07:57:58
|
ah, one second, forgot the `--intensity_target=829`
|
|
2025-11-23 07:58:10
|
there
|
|
|
jonnyawsom3
|
2025-11-23 08:28:54
|
I thought we were trying to avoid using AI generated content on the site?
|
|
|
AccessViolation_
|
2025-11-23 08:35:15
|
there are so many nice freely usable images out there
https://commons.wikimedia.org/wiki/Commons:Picture_of_the_Year
|
|
|
KKT
|
2025-11-23 09:04:25
|
I chose that one so I could crank the HDR-ness without messing with the actual intent of the image.
|
|
2025-11-23 09:05:43
|
And those are great images, but I don't see any HDR ones in there.
|
|
|
spider-mario
there
|
|
2025-11-23 09:15:53
|
Thanks! That looks good. Can we get it closer to the 180KB from the 1.8MB for the web? Anything I can do to make the AVIF look closer?
|
|
|
spider-mario
|
2025-11-23 09:23:55
|
that was lossless, so we could in principle recompress this lossily for JXL, and decompress to PNG / recompress with `avifenc --ignore-icc --cicp 9/16/9` for AVIF
|
|
|
KKT
|
2025-11-23 09:30:10
|
I was using the PNG to create the AVIF but it was dark too. What were the flags for the JXL?
|
|
|
spider-mario
|
2025-11-23 10:00:35
|
mainly, I used `tools/exr_to_pq --luminance white=203 original.exr pq.ppm`, which said “The resulting image should be compressed with `--intensity_target=828.486`.”, so then I ran `tools/cjxl -d 0 -x color_space=RGB_D65_202_Rel_PeQ --intensity_target=829 pq.ppm image.jxl`
|
|
2025-11-23 10:00:58
|
because that image is now in PQ, decompressing that jxl to png and then encoding that png to avif should not be dark anymore
|
|
2025-11-23 10:01:30
|
(I really mainly used JXL as an alternative to PNG here, to convey the result of the PQ conversion)
|
|
|
KKT
|
2025-11-24 01:12:23
|
Mmm. `avifenc -q 90 -s 0 -r f -d 10 -y 444 --nclx 9/16/9` from the PNG is giving me this:
|
|
2025-11-24 01:12:30
|
Looks non-HDR
|
|
2025-11-24 01:12:49
|
In case Discord is messing around with it
|
|
|
juliobbv
|
2025-11-24 02:33:34
|
discord tonemaps preview images down to SDR
|
|
2025-11-24 02:33:50
|
but if I open the original AVIF I can see it's HDR
|
|
|
KKT
|
2025-11-24 02:43:59
|
It's not nearly the same as the JXL though.
|
|
2025-11-24 03:43:41
|
OK, I updated the site. Looks good on the Mac in Safari and Chrome. Not so much on Firefox. Can some others test it out on Windows & Linux?
|
|
2025-11-24 03:44:55
|
I have an non-HDR windows machine and you can tell the difference between the HDR & SDR but it doesn't look great.
|
|
|
monad
|
2025-11-24 04:00:29
|
my linux sys
|
|
|
KKT
|
2025-11-24 04:02:05
|
Would an HDR JPEG work better as a fallback?
|
|
|
spider-mario
|
|
KKT
Mmm. `avifenc -q 90 -s 0 -r f -d 10 -y 444 --nclx 9/16/9` from the PNG is giving me this:
|
|
2025-11-24 07:58:05
|
maybe it needs the `--ignore-icc`?
|
|
2025-11-24 07:58:31
|
otherwise libjxl's tone-mapping ICC might be taking precedence over the CICP
|
|
2025-11-24 07:59:43
|
ah, never mind, didn't read the rest quite right
|
|
2025-11-24 07:59:55
|
(just woke up 😅)
|
|
|
AccessViolation_
|
2025-11-24 06:42:38
|
I'm pretty sure Firefox's color management isn't available on Linux, and changing about:config flags doesn't help
|
|
2025-11-24 06:45:09
|
I went down that rabbit hole like a week or two ago
|
|
2025-11-24 06:47:01
|
likewise it doesn't work on Firefox for Android
|
|
|
RaveSteel
|
2025-11-24 07:32:24
|
It used to work in firefox 135 IIRC, but has stopped working since
|
|
2025-11-24 07:32:35
|
heck, at this time I cannot even get Youtube with HDR to work anymore
|
|