|
jonnyawsom3
|
2025-06-26 10:05:49
|
Huh? I thought PNG only has premultiplied?
|
|
|
Demiurge
|
2025-06-26 10:21:15
|
PNG is a really badly designed format that shoots itself in the foot repeatedly
|
|
2025-06-26 10:22:19
|
It will never be good
|
|
2025-06-26 10:22:53
|
Although it is "good enough" most of the time
|
|
|
lonjil
|
|
Huh? I thought PNG only has premultiplied?
|
|
2025-06-26 10:28:38
|
No, the spec specifically forbids premultiplied
|
|
|
AccessViolation_
|
|
Huh? I thought PNG only has premultiplied?
|
|
2025-06-26 10:35:29
|
> When I and the other creators of PNG were defining the way alpha channels are stored, we generally all agreed that the only benefit of premultiplication was faster compositing. File formats designed for long-term information storage should contain all the information, not just what shows up in the final image, and premultiplication involves irreversible information loss. So technically, if a PNG image is premultiplied, it is not a compilant PNG (though that doesn't prevent software from producing them anyway). But that's why there's no metadata to indicate premultiplication in a PNG--it's strictly not allowed.
|
|
|
jonnyawsom3
|
2025-06-26 10:37:01
|
Oh, so every viewer just does the multiplication themselves?
|
|
|
Cacodemon345
|
|
lonjil
No, the spec specifically forbids premultiplied
|
|
2025-06-26 11:42:48
|
I thought Apple introduced premultiplied PNGs? Or am I wrong?
|
|
|
lonjil
|
|
Cacodemon345
I thought Apple introduced premultiplied PNGs? Or am I wrong?
|
|
2025-06-26 11:43:29
|
yes, as a private extension
|
|
2025-06-26 11:44:33
|
some discussion here: https://github.com/w3c/png/issues/45
|
|
|
Quackdoc
|
|
Oh, so every viewer just does the multiplication themselves?
|
|
2025-06-26 05:19:21
|
most just pass alpha through as is
|
|
2025-06-26 05:19:34
|
some good viewers will do it properly
|
|
|
Cacodemon345
|
|
lonjil
some discussion here: https://github.com/w3c/png/issues/45
|
|
2025-06-26 06:10:30
|
I bet they aren't going to add another way of associated alpha until they get response from Apple.
|
|
|
Demiurge
|
2025-06-28 05:33:06
|
Actually, <:JXL:805850130203934781> has already been deboonked by Chrome Codec Team. PNG and WebP should be used instead of a JPEG.
|
|
|
Mine18
|
|
Demiurge
Actually, <:JXL:805850130203934781> has already been deboonked by Chrome Codec Team. PNG and WebP should be used instead of a JPEG.
|
|
2025-06-28 08:47:01
|
debonked 🔨
|
|
|
Demiurge
|
2025-06-28 08:48:08
|
:)
|
|
2025-06-28 08:56:12
|
PNG is the next gen format of the future
|
|
|
CrushedAsian255
|
2025-06-28 08:56:59
|
No! BMP is the best format!!
|
|
|
jonnyawsom3
|
2025-06-28 09:27:26
|
PPM.br
|
|
2025-06-28 09:29:46
|
JPEG XL is future proof by allowing storage of images in the brob box
|
|
|
Demiurge
|
2025-06-28 01:22:34
|
`.farbfeld.bz2`
|
|
|
username
|
2025-06-28 10:38:46
|
the [APNG patch for libpng](https://sourceforge.net/projects/libpng-apng/) which has existed and been maintained since at least 2010 (at least 15 years) has finally been merged into mainline libpng as of yesterday \🎉 https://github.com/pnggroup/libpng/pull/706
|
|
|
HCrikki
|
2025-06-28 10:56:52
|
would there be any merit for jxl to be decodable to this png v3 in place of current png profile ?
|
|
2025-06-28 10:58:01
|
like if jxl has true/gainmap hdr or any other features not previously supported by this newer png spec
|
|
|
jonnyawsom3
|
2025-06-29 12:40:55
|
AFAIK all were already implemented
|
|
|
Demiurge
|
|
username
the [APNG patch for libpng](https://sourceforge.net/projects/libpng-apng/) which has existed and been maintained since at least 2010 (at least 15 years) has finally been merged into mainline libpng as of yesterday \🎉 https://github.com/pnggroup/libpng/pull/706
|
|
2025-06-29 04:17:40
|
|
|
2025-06-29 04:20:47
|
Now we just have to wait for debian to update to the new version
|
|
2025-06-29 08:55:54
|
Like seriously when Mozilla first introduced apng everyone adopted it very quickly while the PNG guys were still trying to insist on their failed and doomed MNG format
|
|
2025-06-29 08:56:16
|
Which was already flat out rejected by everyone
|
|
2025-06-29 08:56:37
|
It took this long for them to get the message
|
|
2025-06-29 08:57:00
|
Probably because everyone died of old age and were replaced by different people
|
|
2025-06-29 08:59:05
|
Those were the days, back when Mozilla actually did things and invested in world changing tech, before Michelle Baker fleeced and hollowed out the company for her own personal gain
|
|
|
Meow
|
|
Demiurge
Those were the days, back when Mozilla actually did things and invested in world changing tech, before Michelle Baker fleeced and hollowed out the company for her own personal gain
|
|
2025-06-29 09:01:19
|
Yeah APNG and mozjpeg are innovative
|
|
2025-06-29 09:02:24
|
and later the foundation was struggling with buying some services and shutting them down
|
|
|
HCrikki
|
2025-06-29 11:49:36
|
firefox should be funding firefox. let any other side projects run off their own funding or take an internal loan meant to be repaid from success
|
|
2025-06-29 11:50:37
|
biggest mozilla fumbles was dreamcasting itself. web services *independant* from the firefox browser shouldve thrived even if you didnt use firefox
|
|
2025-06-29 11:51:47
|
take deviantart and tumbler, they had the chance to acquire both at less than 30 million dollars, be profitable from year 2 with massive potential for monetization and tech pushing and they lost this chance to web grifters
|
|
2025-06-29 11:52:24
|
same with cliqz wich they lost (sorry its 'brave search' now)
|
|
2025-06-29 11:54:35
|
web services like a (mozilla-owned, NOT mozilla-branded) webhost, blog hosting generated massive profit even before cloud hosting padded em even higher
|
|
|
Demiurge
|
2025-06-29 08:03:06
|
Yeah but they HAVE to raise their own salaries and spend over 30% of their money on paying their executives. How else are they going to stay competitive when attracting new talent? Never mind the fact that their fat asses are glued to the executive chair and no fresh blood is coming in.
|
|
2025-06-29 08:03:56
|
They're literally just giving themselves money and hollowing out the foundation like termites
|
|
|
HCrikki
take deviantart and tumbler, they had the chance to acquire both at less than 30 million dollars, be profitable from year 2 with massive potential for monetization and tech pushing and they lost this chance to web grifters
|
|
2025-06-29 08:09:28
|
I never knew about this. Good thing they're getting paid competitive compensation for their masterful management of mozilla though
|
|
2025-06-29 08:10:52
|
They've really earned it, by thinking inside of the box, cracking down on any ambition, and just focusing on giving themselves more money without any plan for the future.
|
|
|
jonnyawsom3
|
2025-06-29 08:14:34
|
So... Other codecs huh?
|
|
|
Demiurge
|
2025-06-29 08:18:26
|
PNG = best codec of the future
|
|
2025-06-30 01:11:51
|
No further innovation needed now that we have the ultimate format
|
|
|
Meow
|
|
Demiurge
No further innovation needed now that we have the ultimate format
|
|
2025-06-30 02:12:36
|
But the working group wants further innovation like better compression rate
|
|
|
Demiurge
|
2025-06-30 02:13:29
|
No, it's already perfect with its misaligned data structures and zlib compression
|
|
2025-06-30 02:13:55
|
It's all part of the larger genius of PNG
|
|
|
Meow
|
2025-06-30 02:15:07
|
"Better compression" may simply be with current techniques from some optimisation tools
|
|
|
Quackdoc
|
|
Demiurge
No further innovation needed now that we have the ultimate format
|
|
2025-06-30 02:29:34
|
~~I think you mean tiff~~
|
|
|
_wb_
|
2025-06-30 02:41:04
|
TBH, I think it would be better to freeze PNG as it is now, rather than adding new compression methods or other backwards-incompatible new stuff. As it is now, it is fine. Very interoperable. Adding incompatible new compression methods will just turn it into a TIFF.
|
|
|
Meow
|
2025-06-30 02:46:37
|
It's just got defrosted
|
|
|
Demiurge
|
2025-06-30 05:51:58
|
We need to add iJXL chunk
|
|
|
gb82
|
|
_wb_
TBH, I think it would be better to freeze PNG as it is now, rather than adding new compression methods or other backwards-incompatible new stuff. As it is now, it is fine. Very interoperable. Adding incompatible new compression methods will just turn it into a TIFF.
|
|
2025-06-30 06:03:23
|
completely agreed. one of the reasons people claim JXL was rejected was that it increases a browser's attack surface; this will happen if we update old specs as well
|
|
|
_wb_
|
2025-06-30 07:31:18
|
It's just very annoying from an interoperability point of view: imagine I do an upgrade of my libpng and suddenly the PNGs I produce are no longer decodable anymore by most other people. This kind of thing makes people very angry and frustrated, understandably so.
|
|
|
Quackdoc
|
2025-06-30 07:46:48
|
if that happens imma be pissed im not gonna lie. I will be one of the *worst* issue reporter folk lol
|
|
|
Meow
|
2025-06-30 07:48:00
|
At least this doesn't happen with spec 3rd
|
|
|
_wb_
|
2025-06-30 07:50:18
|
I assume it will never happen. If you introduce such breaking changes, you might as well call it a new format.
|
|
|
CrushedAsian255
|
2025-06-30 07:59:13
|
advanced network graphics ANG
|
|
|
Quackdoc
|
2025-06-30 07:59:55
|
PXL
|
|
2025-06-30 08:01:39
|
technically, some of the new stuff *could* be critical for rendering like the metadata stuff, but nothing a decoder should ever get hung up on
|
|
|
Meow
|
2025-06-30 08:07:04
|
> PNG Fourth Edition, which we are working on now, is likely to add gain maps.
>
> However, gain maps are extra data. So there is a trade off.
>
> The reason gain maps didn't make it into Third Edition is it isn't yet a formal standard. We have a bunch of the work ready to go once their standard launches.
|
|
|
CrushedAsian255
|
2025-06-30 08:08:53
|
PNG Eleventh Edition, which is currently in the planning stage, will add support for a new compression mode named Modular mode.
However, Modular mode is not forwards compatible with existing decoders. So there is a trade off.
The reason Modular mode didn't make it into Third Edition is due to it already being a standard. That standard is called JPEG XL. We have a bunch of the work ready to go once their standard becomes mainstream. What?
|
|
|
Meow
|
2025-06-30 08:11:03
|
> Q: Does it have any advantage over Lossless encoding in JPEG XL?
> A:
> Yes, lots.
>
> The big one is adoption. I love JPEG XL and hope it becomes more widely adopted. It is very scary to add a format to a browser because you can never remove it. Photoshop and MSPaint no longer support ICO files, but browsers do. So it makes sense for browsers to add support last, after it is clearly universal. I think JPEG XL is well on their way using this approach. But they aren't there yet and PNG is.
>
> There is also longevity and staying power. I can grab an ancient version of Photoshop off eBay and it'll support PNG. This also benefits archivists.
>
> As a quick side note on that: I want people to think about their storage and bandwidth. Have they ever hit storage/bandwidth limits? If so, were PNGs the cause? Was their site slow to load because of PNGs? I think we battle on file size as an old habit from the '90s image compression wars. Back then, we wanted pixels on the screen quickly. The slow image loads were noticeable on dial-up. So file size was actually important then. But today?? We're being penny-wise and pound-foolish.
|
|
2025-06-30 08:13:17
|
> Our first goal is to see what we can get for "free" right now. Most of the time, people save a PNG which is pretty far from optimally compressed. Then they compare that to another format which is closer to optimal and draw a poor comparison.
>
> You can see this with PNG optimizers like OptiPNG and pngcrush.
>
> So step 1 is to improve libpng. This requires no spec change.
>
> Step 2 is to enable parallel encoding and decoding. We expect this to increase the file size, but aren't sure how much. It might be surprisingly small (a few hundred bytes?). It will be optional.
>
> Step 3 is the major changes like zstd. This would prevent a new PNG from being viewable in old software, so there is a considerably higher bar for adoption. If we find step 1 got us within 1% of zstd, it might not be worth such a major change.
>
> I don't yet know what results we'll find or if all the work will be done in time. So please don't take this as promises or something to expect. I'm just being open and honest about our intentions and goals.
|
|
2025-06-30 08:13:26
|
Some interesting quotes from the chair
|
|
2025-06-30 08:16:24
|
https://news.ycombinator.com/item?id=44365754
|
|
2025-06-30 08:17:23
|
It would be more fun if he joins this server
|
|
|
username
|
2025-06-30 08:23:45
|
I will say that at the very least the PNG spec has always had dedicated space for new incompatible compression schemes and delta filters marked as "reserved for future use" so to a certain extent adding new compression methods and such wouldn't *entirely* be wrong exactly
|
|
|
Meow
|
2025-06-30 08:24:39
|
He already said W3C won't approve if it breaks compatibility
|
|
|
HCrikki
|
2025-06-30 08:25:19
|
it doesnt matter if a library is updated or supports more stuff but specs should stay frozen. we had profile levels since forever for videos and hw decoding limits compliance for images
|
|
|
|
veluca
|
2025-06-30 08:25:33
|
there's 0 chances there will be a completely backwards incompatible update to the png spec 🙂
|
|
|
HCrikki
|
2025-06-30 08:26:20
|
the breakage will occur when web services start generating only 'png v3' and force everyone to update their own libraries. we already saw that with uhdr (google tried shaming software makers by calling anything that didnt add support 'naive/legacy readers'
|
|
|
Meow
|
2025-06-30 08:27:09
|
Would be possible in 2040s
|
|
|
Quackdoc
|
|
Meow
> Q: Does it have any advantage over Lossless encoding in JPEG XL?
> A:
> Yes, lots.
>
> The big one is adoption. I love JPEG XL and hope it becomes more widely adopted. It is very scary to add a format to a browser because you can never remove it. Photoshop and MSPaint no longer support ICO files, but browsers do. So it makes sense for browsers to add support last, after it is clearly universal. I think JPEG XL is well on their way using this approach. But they aren't there yet and PNG is.
>
> There is also longevity and staying power. I can grab an ancient version of Photoshop off eBay and it'll support PNG. This also benefits archivists.
>
> As a quick side note on that: I want people to think about their storage and bandwidth. Have they ever hit storage/bandwidth limits? If so, were PNGs the cause? Was their site slow to load because of PNGs? I think we battle on file size as an old habit from the '90s image compression wars. Back then, we wanted pixels on the screen quickly. The slow image loads were noticeable on dial-up. So file size was actually important then. But today?? We're being penny-wise and pound-foolish.
|
|
2025-06-30 08:27:42
|
> As a quick side note on that: I want people to think about their storage and bandwidth. Have they ever hit storage/bandwidth limits?
yes
> If so, were PNGs the cause?
yes
> Was their site slow to load because of PNGs?
yes
> I think we battle on file size as an old habit from the '90s image compression wars. Back then, we wanted pixels on the screen quickly. The slow image loads were noticeable on dial-up. So file size was actually important then. But today?? We're being penny-wise and pound-foolish.
wrong. I still regularly get less then 1mbps down when im outside because signal is so bad
|
|
2025-06-30 08:27:56
|
I **hate** takes like these so much because they ooze of ignorance
|
|
2025-06-30 08:28:27
|
im glad everyone lives in a first world country and has great internet in every single place they will ever be
|
|
|
username
|
2025-06-30 08:29:38
|
idea: have browsers update their cache-ing systems to cache files/data as received in their compressed form from servers then websites can simply ship "uncompressed" PNG files to users and benefit from improved compression without breaking backwards compat :)
|
|
|
Quackdoc
|
2025-06-30 08:30:16
|
[av1_omegalul](https://cdn.discordapp.com/emojis/885026577618980904.webp?size=48&name=av1_omegalul)
|
|
|
username
|
2025-06-30 08:31:36
|
1000% idea no one will complain ! (except when their hard drives fill up from downloading 10 PNG files)
|
|
|
Meow
|
2025-06-30 08:31:51
|
Uncompressed PNG could be as large as BMP
|
|
|
username
|
2025-06-30 08:32:29
|
would be slightly larger because of the container overhead
|
|
|
HCrikki
|
2025-06-30 08:34:04
|
gainmaps arent the win people think. all it means (for jpg and png) is that hdr-like data will be available without making the files much larger in filesize - hardly a win since a big complaint about those was their inefficient compression compared to the storage consumption
|
|
2025-06-30 08:35:37
|
wether with true or gainmap hdr, jxl would trounce both at lossy and lossless at consistently half the filesize
|
|
|
Meow
|
2025-06-30 08:40:43
|
QOI is a good alternative if sizes don't matter
|
|
|
Quackdoc
|
|
HCrikki
gainmaps arent the win people think. all it means (for jpg and png) is that hdr-like data will be available without making the files much larger in filesize - hardly a win since a big complaint about those was their inefficient compression compared to the storage consumption
|
|
2025-06-30 08:44:55
|
imo gainmaps are one of the current most important technology for HDR adoption
|
|
|
DZgas Ж
|
|
Meow
Uncompressed PNG could be as large as BMP
|
|
2025-06-30 08:54:57
|
finally
|
|
|
Meow
QOI is a good alternative if sizes don't matter
|
|
2025-06-30 08:56:47
|
QOI is no longer an alternative because FJXL just killed it, and is now built into libjxl as -e 1
|
|
|
_wb_
|
|
Quackdoc
imo gainmaps are one of the current most important technology for HDR adoption
|
|
2025-06-30 09:04:46
|
They are certainly the way the big players are going. In my opinion though, it will mostly cause the transition to be longer and more painful. At some point, if you want to render HDR, you just need to get it done. Graceful degradation provides an excuse to postpone it, since you can be lazy and nothing will break. Gain maps make being lazy easy while making things unnecessarily complicated if you don't want to be lazy. That's a recipe for a protracted transition period where images will be rendered inconsistently for maybe a decade or two.
|
|
|
DZgas Ж
|
|
Meow
> Our first goal is to see what we can get for "free" right now. Most of the time, people save a PNG which is pretty far from optimally compressed. Then they compare that to another format which is closer to optimal and draw a poor comparison.
>
> You can see this with PNG optimizers like OptiPNG and pngcrush.
>
> So step 1 is to improve libpng. This requires no spec change.
>
> Step 2 is to enable parallel encoding and decoding. We expect this to increase the file size, but aren't sure how much. It might be surprisingly small (a few hundred bytes?). It will be optional.
>
> Step 3 is the major changes like zstd. This would prevent a new PNG from being viewable in old software, so there is a considerably higher bar for adoption. If we find step 1 got us within 1% of zstd, it might not be worth such a major change.
>
> I don't yet know what results we'll find or if all the work will be done in time. So please don't take this as promises or something to expect. I'm just being open and honest about our intentions and goals.
|
|
2025-06-30 09:12:58
|
what's the point of ZSTD in terms of improvements. It's a direct alternative to deflate which is in png. It's faster, it's not so better. To save PNG, you probably need to take the most powerful one that has good support, parallelism, like LZMA2
Now look at it from the other side: why try so hard with old PNG if you can just use WEBP which also has full support everywhere, and compresses much better with its VP8L algorithm
|
|
2025-06-30 09:15:04
|
-- if you want to compress 16 bits-pixel as much as possible then why not choose jpeg xl
|
|
|
YAGPDB.xyz
|
2025-06-30 09:15:04
|
"TakeRep" command returned an error: strconv.ParseInt: parsing "if": invalid syntax
|
|
|
Meow
|
2025-06-30 09:40:55
|
We're pretty peaceful comparing to https://www.phoronix.com/forums/forum/software/programming-compilers/1555914-png-spec-updated-for-hdr-images-animated-pngs
|
|
|
spider-mario
|
2025-06-30 10:03:43
|
> [WebP] lumps lossy and lossless into the same format, which means that, for practical purposes, in a world full of non-technical users and amateur archivists who don't want more work made for them, its lossless mode may as well not exist. (i.e. If you see the WebP extension/icon, you wind up just assuming it's in lossy mode. EDIT: Just like JPEG... yes, JPEG has a 100% quality mode with terrible compression.)
are they mixing up JPEG-LS and q100 JPEG?
|
|
|
username
|
2025-06-30 10:34:57
|
there's a lot of people that just assume "q100 JPEG = lossless" and in a lot of cases even use it as an intermediate format due to this assumption as well
|
|
|
DZgas Ж
|
|
spider-mario
> [WebP] lumps lossy and lossless into the same format, which means that, for practical purposes, in a world full of non-technical users and amateur archivists who don't want more work made for them, its lossless mode may as well not exist. (i.e. If you see the WebP extension/icon, you wind up just assuming it's in lossy mode. EDIT: Just like JPEG... yes, JPEG has a 100% quality mode with terrible compression.)
are they mixing up JPEG-LS and q100 JPEG?
|
|
2025-06-30 10:42:24
|
people also forget that webp has a transparency layer, which can also be in lossy compression. This is the ultimate. the best of both modes. png and jpeg separately do not have this
|
|
2025-06-30 10:43:31
|
the era of picture-stickers has arrived
|
|
|
jonnyawsom3
|
|
username
there's a lot of people that just assume "q100 JPEG = lossless" and in a lot of cases even use it as an intermediate format due to this assumption as well
|
|
2025-06-30 10:44:39
|
Which is why we wanted to enable RGB encoding at. q100, to either make it closer to lossless or discourage using it due to higher filesizes
|
|
|
DZgas Ж
|
2025-06-30 10:46:18
|
no yuv444, no interframe compression, no HDR and 10+ bit. Is it true that if WEBP had all this then all the others would be doomed? 16k x 16k limitation... one format to rule them all
|
|
2025-06-30 10:47:09
|
AVIF has all this... and where is it?
oh yeah... even webp can be read from top to bottom block by block.
|
|
2025-06-30 10:48:28
|
apparently jpeg xl is the best...? what do you mean there is no animation compression between frames? aren't you based on the video codec ?! pfff
|
|
2025-06-30 10:49:59
|
maybe people don't need 10 bits, hdr, or yuv444. is it possible that we stuck here on 24 RGB because that's enough.
|
|
2025-06-30 10:51:57
|
does anyone have statistics on how many JPEG images on the internet are compressed not in yuv420 but in yuv444?
<:SadCheems:890866831047417898>
what will I see there? ~0%?
|
|
|
jonnyawsom3
|
2025-06-30 10:55:09
|
Nearly all tools use the defaults, so 420. We want to change that in jpegli, and even adapt to 420 based on quality, but I'm not 100% sure if we have it implemented correctly for the API
|
|
|
A homosapien
|
2025-06-30 10:55:47
|
I want to write a proper program using cjpegli's API and combine it with sharp yuv one day
|
|
2025-06-30 10:56:16
|
should be possible in theory
|
|
|
username
|
|
Nearly all tools use the defaults, so 420. We want to change that in jpegli, and even adapt to 420 based on quality, but I'm not 100% sure if we have it implemented correctly for the API
|
|
2025-06-30 10:56:58
|
iirc afaik it depends on the order in which someone calls API functions as to weather or not the auto switching stuff works with the way we did it although idk if there is a better way
|
|
|
jonnyawsom3
|
|
Nearly all tools use the defaults, so 420. We want to change that in jpegli, and even adapt to 420 based on quality, but I'm not 100% sure if we have it implemented correctly for the API
|
|
2025-06-30 10:57:08
|
https://github.com/google/jpegli/pull/136
|
|
2025-06-30 10:57:11
|
https://github.com/google/jpegli/pull/137
|
|
|
A homosapien
|
|
Nearly all tools use the defaults, so 420. We want to change that in jpegli, and even adapt to 420 based on quality, but I'm not 100% sure if we have it implemented correctly for the API
|
|
2025-06-30 10:58:57
|
I thought libjpeg changes chroma subsampling based on quality level?
|
|
2025-06-30 10:59:05
|
Oh wait I'm thinking of the CLI
|
|
2025-06-30 10:59:17
|
maybe the API is different
|
|
|
DZgas Ж
|
|
A homosapien
I want to write a proper program using cjpegli's API and combine it with sharp yuv one day
|
|
2025-06-30 11:00:38
|
you can say it straight, i've been using it for a long time, but all i see is an increase in quality on the UV channels, so why is it being presented as a new technology ?
it's true that jpeg doesn't have it, but it's always been in AVC & HEVC and i actively use it in my av1 fork through many iterations of CfL
|
|
|
jonnyawsom3
|
|
A homosapien
I thought libjpeg changes chroma subsampling based on quality level?
|
|
2025-06-30 11:05:18
|
I tried looking, but the codebase is monolithic, with readability rivaling libjxl.
One idea is we figure out what happens when subsampling isn't specified in the API, and do like libjxl with a -1 default which runs our auto code, that can be overridden
|
|
|
A homosapien
|
|
I tried looking, but the codebase is monolithic, with readability rivaling libjxl.
One idea is we figure out what happens when subsampling isn't specified in the API, and do like libjxl with a -1 default which runs our auto code, that can be overridden
|
|
2025-06-30 11:08:20
|
Shouldn't be too hard, I had a few moments of clarity where I almost understood what I was doing with the API/CLI
|
|
|
jonnyawsom3
|
2025-06-30 11:11:01
|
Then we could wedge it into the API handling code so that ordering doesn't matter
|
|
|
A homosapien
|
2025-06-30 11:13:11
|
I should learn how to compile more complex things, like libavif with sharpyuv and multiple encoders to learn the ropes properly
|
|
2025-06-30 11:15:53
|
it getting a bit tiring having to scrounge around for avif binaries to see the latest AVIF advancements
|
|
|
Quackdoc
|
|
_wb_
They are certainly the way the big players are going. In my opinion though, it will mostly cause the transition to be longer and more painful. At some point, if you want to render HDR, you just need to get it done. Graceful degradation provides an excuse to postpone it, since you can be lazy and nothing will break. Gain maps make being lazy easy while making things unnecessarily complicated if you don't want to be lazy. That's a recipe for a protracted transition period where images will be rendered inconsistently for maybe a decade or two.
|
|
2025-06-30 06:16:37
|
for the folk I deal with its the chicken and egg problem. gain maps are a blunt force "just take both the chicken and egg and just do it"
|
|
|
Demiurge
|
2025-07-01 03:13:30
|
Is it just me or is the wikipedia article for UltraHDR ridiculous and hilarious
|
|
2025-07-01 03:15:54
|
I really hope this format never takes off. No software supports it now or in the foreseeable future and it's just a JPEG with a 2nd JPEG in an XMP metadata tag
|
|
|
HCrikki
|
2025-07-01 03:25:27
|
agreed. its heavily pushed but still has all the flaws of jpeg
|
|
|
Demiurge
|
2025-07-01 03:27:41
|
Whoops, I mean, it is literally just concatenated onto the tail end of the JPEG
|
|
2025-07-01 03:27:52
|
https://www.cipa.jp/std/documents/e/DC-X007-KEY_E.pdf
|
|
2025-07-01 03:27:55
|
Like so
|
|
2025-07-01 03:28:07
|
This is the most brainlet format ever conceived
|
|
|
HCrikki
|
2025-07-01 03:28:09
|
camera apps with uhdr variants just give it lesser bitrate (gotta pretend if more efficiently stores images but starve it of bitrate and photographers will riot at believing lies that outrageous), no lossless of any kind, no layers at all, alpha transparency
|
|
|
Demiurge
|
2025-07-01 03:28:33
|
I can't imagine it will ever be supported by any software
|
|
2025-07-01 03:28:57
|
I think it should be considered a bug to output this format
|
|
2025-07-01 03:29:13
|
It's like a troll format
|
|
|
HCrikki
|
2025-07-01 03:29:28
|
image readers eventually will, if just cuz its pushers actively work with big companies to get it adopted
|
|
|
Demiurge
|
2025-07-01 03:30:34
|
It would be like if Microsoft made a "supra HDR" that was just a new version of BMP
|
|
|
HCrikki
|
2025-07-01 03:30:41
|
it shouldnt become *the norm* at least - this is another reminder of how EEE works in the opensource world
|
|
2025-07-01 03:31:42
|
make your proprietary version that you control the default, and through forced/auto updates you can force the world to adopt and update it even if future versions are known to be harmful
|
|
2025-07-01 03:39:29
|
producing excellent software only through an 'as is' basis does not get it adopted properly. big vendors need forms of guaranteed support and assistance and format specs are the most sensisitve that require the most flawless and well thought integrations (ie dng 1.7 and presumably upcoming pdf/tiff-ng)
|
|
|
Demiurge
|
2025-07-01 03:40:22
|
I don't think anyone is going to adopt this... everyone is just going to be really pissed that their HDR images are just SDR JPEGs that nothing can decode properly
|
|
2025-07-01 03:41:52
|
The effort they spent plumbing this new useless format could have easily been spent plumbing in libjxl
|
|
|
Meow
|
|
Demiurge
It would be like if Microsoft made a "supra HDR" that was just a new version of BMP
|
|
2025-07-01 03:48:05
|
Already JXR
|
|
|
Demiurge
|
2025-07-01 03:49:00
|
Ah that's right...
|
|
|
username
|
2025-07-01 03:57:38
|
well JXR is an actual format with it's own core features so it has that going for it although it's always suffered from having a mediocre implementation so who even knows how bad or good it *can* be visually or compression wise and such
|
|
|
Demiurge
|
2025-07-01 04:46:09
|
Is it ever able to outperform libjpeg-turbo?
|
|
2025-07-01 04:46:38
|
It's kind of surprising that it's so bad
|
|
|
_wb_
|
|
Demiurge
Is it just me or is the wikipedia article for UltraHDR ridiculous and hilarious
|
|
2025-07-01 05:23:25
|
Yes it looks like some chatGPT nonsense tbh... Like this:
> Ultra HDR format is an enhancement of conventional HDR, where gain mapping technology allows further pushing the boundaries of existing HDR.
|
|
|
Demiurge
|
2025-07-01 05:30:00
|
Yeah it tells you close to nothing about it and just looks like some bizarre corporate babble
|
|
|
_wb_
|
2025-07-01 05:33:09
|
UltraHDR is not an enhancement of conventional HDR, it is a trade-off to sacrifice HDR fidelity and compression performance in exchange for graceful degradation.
|
|
2025-07-01 05:33:34
|
In that sense the name is quite poorly chosen since there is nothing "Ultra" about it.
|
|
|
username
|
2025-07-01 05:36:46
|
I've heavily disliked the name since I first heard it with the context of what it was actually for
|
|
|
Demiurge
|
2025-07-01 05:51:18
|
So it's more accurate to say it's "a compromise and half-measure of conventional HDR"
|
|
|
Meow
|
|
_wb_
Yes it looks like some chatGPT nonsense tbh... Like this:
> Ultra HDR format is an enhancement of conventional HDR, where gain mapping technology allows further pushing the boundaries of existing HDR.
|
|
2025-07-01 06:15:25
|
Actually it's not given any reference
|
|
2025-07-01 06:15:36
|
Feel free to remove
|
|
|
Quackdoc
|
2025-07-01 07:40:21
|
what the fuck is this article?
|
|
2025-07-01 07:41:08
|
the entire thing ought to be deleted
|
|
2025-07-01 07:43:57
|
this is a list of everything correct in the article
* However, not all displays can render the full capabilities of HDR and Ultra HDR formats
* To overcome this issue, a tone mapping technique is used to adjust the brightness and contrast to match the quality of capable displays
** HDR has the capability of recording a much wider color gamut in comparison to a traditional 24-bit RGB (SDR). -- (maybe accurate in some cases) --
|
|
2025-07-01 07:46:14
|
>RBG Model
yeah 100% confident this was AI
|
|
|
Meow
|
2025-07-01 07:47:57
|
It requires to be rewritten not deleted
|
|
|
Quackdoc
|
2025-07-01 08:04:05
|
hows this for a review?
```
The overwhelmingly vast majority of this article is wrong. UltraHDR is a technically inferior format to "traditional HDR", not an enhancement to it. It takes an SDR image and applies a gainmap to it in order to make it an HDR image. The primary concern of the image format is to increase compatibility of HDR imagery with legacy systems.
It is on nearly all technical levels inferior to traditional HDR images with the sole exception of support in applications and hardware that do not support HDR imagery. HDR10 is not limited to 1000 nits nor is it limited to DCI-P3 colorspace.
```
|
|
|
Meow
|
2025-07-01 08:27:35
|
On Wikipedia it just requires references to prove
|
|
2025-07-01 08:37:40
|
The article is mainly written by User:Chae07
|
|
|
jonnyawsom3
|
|
_wb_
In that sense the name is quite poorly chosen since there is nothing "Ultra" about it.
|
|
2025-07-01 10:55:36
|
Mid Dynamic Range
|
|
|
Meow
|
|
Mid Dynamic Range
|
|
2025-07-01 02:30:58
|
Mediocre Dynamic Range
|
|
|
_wb_
|
2025-07-01 02:49:09
|
Although not obligatory, the way UltraHDR is commonly used (with a downscaled gain map) they are effectively doing Luma Subsampling. At least for the msb of the luma.
|
|
|
Demiurge
|
2025-07-01 10:46:06
|
InfraHDR
|
|
|
Meow
|
2025-07-02 02:50:08
|
https://en.wikipedia.org/wiki/Ultra_HDR
|
|
2025-07-02 02:50:23
|
Someone got the courage to remove them all
|
|
2025-07-02 02:51:13
|
with a comment
> everything past the lead appears to be nonsense
|
|
|
HCrikki
|
2025-07-02 02:54:32
|
"incompatible decoders"
|
|
2025-07-02 02:55:36
|
at least they didnt use even more charged language like non-mediocre, naive, legacy
|
|
|
Meow
|
2025-07-02 03:21:52
|
There should be an article about ISO 21496-1
|
|
2025-07-02 03:22:16
|
and then Ultra HDR doesn't require its article
|
|
|
Quackdoc
|
|
Meow
https://en.wikipedia.org/wiki/Ultra_HDR
|
|
2025-07-02 03:24:42
|
yeah <@272986016242204672> did it
|
|
2025-07-02 03:25:34
|
I probably would have used applications instead of decoders
|
|
|
Meow
|
2025-07-02 07:10:11
|
A related fix from PowerToys v0.92.0
> Updated QOI reader so 3-channel QOI images preview correctly in Peek and File Explorer.
|
|
|
Fox Wizard
|
|
Meow
Someone got the courage to remove them all
|
|
2025-07-02 10:06:43
|
<@272986016242204672> 👀
|
|
|
nathanielcwm
|
2025-07-02 10:06:56
|
[gunthonk](https://cdn.discordapp.com/emojis/865117245013098547.webp?size=64&name=gunthonk)
|
|
|
juliobbv
|
2025-07-03 01:20:23
|
https://netflixtechblog.com/av1-scale-film-grain-synthesis-the-awakening-ee09cfdff40b
|
|
2025-07-03 01:20:38
|
interesting read on Netflix using FGS in production
|
|
|
jonnyawsom3
|
2025-07-03 01:22:44
|
Oh, so I was right when I watched a movie earlier and thought it seemed extra grainy
|
|
|
damian101
|
2025-07-03 01:37:52
|
x264 also does that, though...
|
|
|
jonnyawsom3
|
2025-07-03 04:06:47
|
Turns out Adobe are using v0.9 or earlier for their SDK... I wish I was surprised https://github.com/libjxl/libjxl/issues/4321
|
|
|
Demiurge
|
|
juliobbv
https://netflixtechblog.com/av1-scale-film-grain-synthesis-the-awakening-ee09cfdff40b
|
|
2025-07-04 03:39:18
|
> Additionally, synthesized noise effectively masks compression artifacts, resulting in a more visually appealing experience.
👀
|
|
|
jonnyawsom3
|
2025-07-04 03:42:30
|
It's effectively dithering for video, since they refuse to add it on decode for whatever reason
|
|
|
Demiurge
|
2025-07-04 03:49:28
|
No, it's more than that. It does more than breaking up banding artifacts. The noise signal is also a mask that helps break up the outline of other DCT artifacts.
|
|
2025-07-04 03:55:09
|
DCT artifacts tend to contain a lot of high frequency noise so they are masked very effectively by blue noise.
|
|
2025-07-04 03:57:56
|
> Currently, we lack a dedicated quality model for film grain synthesis. The noise appearing at different pixel locations between the source and decoded video poses challenges for pixelwise comparison methods like PSNR or VMAF, leading to penalized quality scores. Despite this, our internal assessment highlights the improvements in visual quality and the value of these advancements.
So in other words we don't have any objective metrics that accurately reflect the obvious improvement in quality. All current metrics think it's worse because they're easily tricked by random noise and think it's important for the random noise to exactly match in the spatial domain rather than frequency domain.
|
|
|
damian101
|
|
Demiurge
> Currently, we lack a dedicated quality model for film grain synthesis. The noise appearing at different pixel locations between the source and decoded video poses challenges for pixelwise comparison methods like PSNR or VMAF, leading to penalized quality scores. Despite this, our internal assessment highlights the improvements in visual quality and the value of these advancements.
So in other words we don't have any objective metrics that accurately reflect the obvious improvement in quality. All current metrics think it's worse because they're easily tricked by random noise and think it's important for the random noise to exactly match in the spatial domain rather than frequency domain.
|
|
2025-07-04 07:57:11
|
Noise synthesis at significant strengths pretty much always significantly harms fidelity with current implementations.
And the generated noise is also of completely different frequencies than the source noise. And introduces patterns.
But yes, current metrics are also generally poorly suited to reflect the perceptual effects of noise.
|
|
|
Demiurge
|
2025-07-04 08:24:23
|
But DCT quantization itself is pretty good at preserving noise even without noise synthesis.
|
|
2025-07-04 08:28:13
|
A lot of quantizers simply blur and eliminate noise by rounding down or zeroing out high frequency DCT coefficients when they could just as easily just use coarse quantization to preserve a more grainy appearance and take advantage of the masking effect
|
|
|
|
afed
|
2025-07-04 03:07:59
|
https://www.techradar.com/pro/british-startup-claims-to-have-developed-tech-that-can-deliver-65-lossless-file-compression-but-you-will-have-to-pay-for-it
|
|
|
jonnyawsom3
|
2025-07-04 03:19:18
|
> The startup highlights several features intended to set CompressionX apart, including GDPR-compliant archiving, XChaCha20 encryption, and compatibility with .zip and .7z formats.
>
> While this might suggest it is among the best file managers for handling compressed content, many of these capabilities are already common in mature tools such as WinZip, 7-Zip, and PeaZip.
>
> Whether the software genuinely delivers market-leading compression or simply repackages existing solutions with fresh branding is something only long-term use and independent testing will confirm.
Nice to have an journalist that knows what's already out there
|
|
2025-07-04 03:20:27
|
No clue what they mean by "65% losless compression". On what? Images? Because you can't lossily compress arbritrary data, and the compression depends on the content
|
|
|
DZgas Ж
|
|
Meow
https://en.wikipedia.org/wiki/Ultra_HDR
|
|
2025-07-04 09:24:51
|
Finally
HDR 2
|
|
|
Kupitman
|
|
DZgas Ж
Finally
HDR 2
|
|
2025-07-05 07:12:07
|
What a difference?
|
|
|
DZgas Ж
|
|
Kupitman
What a difference?
|
|
2025-07-05 08:09:48
|
Its joke
|
|
|
spider-mario
|
2025-07-05 04:03:31
|
I’ve been trying out JPEG 2000 vs JPEG on https://x0.at/qIo3.png (to test which one would be better for scans inside a PDF), but it seems JPEG just works better for high quality, whether at full size (which appears to be 1200ppi) or downsampled 50% (to 600ppi)
|
|
2025-07-05 04:05:02
|
(I’ve been using OpenJPEG and Grok, the latter apparently originating as a fork of the former)
|
|
|
jonnyawsom3
|
2025-07-05 04:28:48
|
I thought you meant you were making JPEGs using Elon's Grok AI for a second
|
|
2025-07-05 04:29:01
|
Jpegli I assume?
|
|
|
spider-mario
|
2025-07-05 04:33:20
|
actually even libjpeg-turbo
|
|
2025-07-05 04:33:26
|
jpegli seems to blur the image slightly more
|
|
2025-07-05 04:33:53
|
Grok = https://github.com/GrokImageCompression/grok (AGPL)
|
|
|
jonnyawsom3
|
|
spider-mario
jpegli seems to blur the image slightly more
|
|
2025-07-05 04:34:09
|
That's probably due to this (Ignore the RGB part) <https://github.com/google/jpegli/pull/137>
|
|
|
spider-mario
|
2025-07-05 04:34:59
|
it was with #130 applied
|
|
2025-07-05 04:35:21
|
(I was a bit lazy to apply the split PRs)
|
|
|
jonnyawsom3
|
2025-07-05 04:36:08
|
Ah right, hmm. I know the jpegli decoding has a slight blur to it, but I wasn't aware of it during encoding too
|
|
|
spider-mario
|
2025-07-05 04:45:21
|
`avifenc`:
```
WARNING: --min and --max are deprecated, please use -q 0..100 instead. --min 0 --max 63 is equivalent to -q 51
```
what
|
|
|
RaveSteel
|
|
|
afed
|
2025-07-05 04:50:09
|
now it's just `-q`
|
|
|
spider-mario
|
2025-07-05 04:50:36
|
interestingly, at ~0.53bpp, AVIF degrades better than JPEG 2000 but not as well as JXL (at least in my attempt)
|
|
2025-07-05 04:50:40
|
can’t wait for JXL to be in PDF
|
|
|
|
afed
|
2025-07-05 04:55:25
|
and better to use with `-a tune=iq` (it will be the default setting in the future)
like
`avifenc -q xx -a tune=iq -s X -j X`
+ `-a screen-detection-mode=2` if there are images where sc is beneficial, this is sort of like patches and a reduced palette
|
|
|
jonnyawsom3
|
|
spider-mario
interestingly, at ~0.53bpp, AVIF degrades better than JPEG 2000 but not as well as JXL (at least in my attempt)
|
|
2025-07-05 04:59:12
|
What distance was the JXL at?
|
|
|
spider-mario
|
|
jonnyawsom3
|
2025-07-05 05:03:30
|
Ah right, wondered if my resampling tweaks were playing a part
|
|
|
diskorduser
|
|
spider-mario
can’t wait for JXL to be in PDF
|
|
2025-07-05 06:45:11
|
Is there any possibility for Avif inside pdf in future?
|
|
|
HCrikki
|
2025-07-05 07:07:23
|
absolutely zero, im convinced
|
|
|
jonnyawsom3
|
|
diskorduser
Is there any possibility for Avif inside pdf in future?
|
|
2025-07-05 07:09:11
|
https://pdfa.org/pdf-moves-ahead-with-hdr/
|
|
|
HCrikki
|
2025-07-05 07:09:39
|
inserting as file such as archives could be possible like in .doc files but they wouldnt be rendered or parsed in any way as non-standard
|
|
2025-07-05 07:16:51
|
jxl is a true image format and massively futureproof. aivif didnt suit even today's needs and video-based formats add complexities due to requiring bitstream refreshes based on newer major 'versions' of the codec (youd end up required to support multiple generations in addition to abandoning the oldest ones someday)
|
|
2025-07-05 07:18:20
|
huge for archival: reversible lossless recompressing of existing jpg images to jxl (unique to jxl- normally lossless recompression causes filesizes to multiply, and lossy doesnt event guarantee smaller filesize unless you sacrifice even more quality until you hit a smaller target filesize)
|
|
|
AccessViolation_
|
|
afed
https://www.techradar.com/pro/british-startup-claims-to-have-developed-tech-that-can-deliver-65-lossless-file-compression-but-you-will-have-to-pay-for-it
|
|
2025-07-05 07:28:12
|
I found their patent
https://patents.google.com/patent/US10700701B2/en?q=(%22sisp%22+compression+algorithm)&oq=%22sisp%22+compression+algorithm
|
|
|
spider-mario
|
|
afed
and better to use with `-a tune=iq` (it will be the default setting in the future)
like
`avifenc -q xx -a tune=iq -s X -j X`
+ `-a screen-detection-mode=2` if there are images where sc is beneficial, this is sort of like patches and a reduced palette
|
|
2025-07-05 07:32:24
|
`-a tune=iq` indeed seems pretty good, thanks
|
|
2025-07-05 07:32:38
|
(not that I have any use for avif here, but good to know)
|
|
2025-07-05 07:53:44
|
> New tuning mode `AOM_TUNE_IQ` (image quality) for the `AOME_SET_TUNING` codec control (`--tune=iq`) in all-intra mode. […] The image quality optimizations in `AOM_TUNE_IQ` were developed by using the SSIMULACRA 2 metric for guidance and validated with subjective visual quality checks.
oh, yeah, okay
|
|
2025-07-05 07:54:45
|
it suddenly makes avif so much more competitive
|
|
2025-07-05 07:56:19
|
(still not sure how I’d choose a cq-level, though, so even then, I’d be tempted to first use `cjxl -d 1` and then target a similar size)
|
|
|
|
afed
|
|
spider-mario
> New tuning mode `AOM_TUNE_IQ` (image quality) for the `AOME_SET_TUNING` codec control (`--tune=iq`) in all-intra mode. […] The image quality optimizations in `AOM_TUNE_IQ` were developed by using the SSIMULACRA 2 metric for guidance and validated with subjective visual quality checks.
oh, yeah, okay
|
|
2025-07-05 08:00:20
|
yeah, it's <@297955493698076672> work
https://discord.com/channels/794206087879852103/805176455658733570/1375999430456508456
|
|
|
spider-mario
(still not sure how I’d choose a cq-level, though, so even then, I’d be tempted to first use `cjxl -d 1` and then target a similar size)
|
|
2025-07-05 08:04:39
|
just `-q`, like cjpeg `-quality`
|
|
|
spider-mario
|
2025-07-05 08:05:21
|
no more need for that `-q 0..100 -a end-usage=q -a cq-level=<quality you want>` dance?
|
|
|
|
veluca
|
2025-07-05 08:05:42
|
yup
|
|
2025-07-05 08:05:49
|
that's been the case for a while, fwiw
|
|
|
|
afed
|
2025-07-05 08:06:58
|
yeah, the other stuff is picked automatically
`avifenc -q "quality" -a tune=iq -s "preset" -j "threads"`
|
|
|
spider-mario
|
2025-07-05 08:07:30
|
how reliably does a given `-q` match a certain image quality across images?
|
|
2025-07-05 08:07:47
|
this is where I’m not sure how I’d choose a `-q`
|
|
|
|
afed
|
2025-07-05 08:11:18
|
there is some mapping for `--min --max`, but some -q values doesn't work, like every second one works, the other one is the same as the previous one or something like that
as I recall, so it's not very accurate
but easier to use
|
|
|
juliobbv
|
|
afed
yeah, it's <@297955493698076672> work
https://discord.com/channels/794206087879852103/805176455658733570/1375999430456508456
|
|
2025-07-05 08:43:57
|
yeah, tune iq is the port of SVT-AV1-PSY's "still picture" tune that <@703028154431832094> and I worked on
|
|
|
spider-mario
|
2025-07-05 08:55:54
|
well, congratulations, I’m impressed
|
|
|
juliobbv
|
|
spider-mario
well, congratulations, I’m impressed
|
|
2025-07-05 08:57:11
|
thanks! it's even more special coming from a JXL dev 😄
|
|
|
spider-mario
how reliably does a given `-q` match a certain image quality across images?
|
|
2025-07-05 08:57:37
|
`-q` levels track much more closely with perceived quality across images with tune iq (compared to the current default, tune ssim)
|
|
2025-07-05 08:58:12
|
the value itself isn't normalized to any metric
|
|
2025-07-05 08:59:33
|
I'd recommend testing `-q` with a small image corpus in increments of 10
|
|
2025-07-05 08:59:46
|
the usable range IMO is 40 to 90
|
|
|
afed
yeah, the other stuff is picked automatically
`avifenc -q "quality" -a tune=iq -s "preset" -j "threads"`
|
|
2025-07-05 09:00:46
|
btw I'd do `-a c:tune=iq` so the tune isn't accidentally applied to alpha
|
|
|
afed
there is some mapping for `--min --max`, but some -q values doesn't work, like every second one works, the other one is the same as the previous one or something like that
as I recall, so it's not very accurate
but easier to use
|
|
2025-07-05 09:31:24
|
it's 64 AV1 CQ values mapped to 101 [0-100], so some will be duplicated
|
|
|
spider-mario
|
2025-07-05 09:42:40
|
it feels a bit odd that `avifenc` and `avifdec` are used so differently
|
|
2025-07-05 09:42:57
|
`avifenc input.png -o output.avif`, but `avifdec input.avif output.png`
|
|
2025-07-05 09:43:07
|
`avifenc` accepts `--no-overwrite` but `avifdec` doesn’t
|
|
|
jonnyawsom3
|
2025-07-05 09:44:38
|
Oh that reminds me, I was messing with cjxl parameters last night and realised `--centre_x` and `--centre_y` don't work with chunked encoding
|
|
2025-07-05 09:45:32
|
Surprisingly `--group_order ` does work, which is centre first, but adding the others causes it to use scanline instead unless using effort 10, ect
|
|
|
spider-mario
|
2025-07-05 09:58:15
|
I wonder how much JPEG 2000 could be improved using a similar approach
|
|
2025-07-05 09:58:22
|
today’s testing did not leave a great impression
|
|
|
jonnyawsom3
|
2025-07-05 10:01:35
|
There were whispers of improving JPEG XL with the same techniques. Jyrki does well, but is only a single man at the end of the day
|
|
|
spider-mario
|
2025-07-05 10:06:20
|
that could be interesting
|
|
2025-07-05 10:06:37
|
on this test image with jxl, I’m a bit concerned by the purple tint I am noticing in the dark areas
|
|
2025-07-05 10:06:55
|
seems to happen even at d0.1
|
|
2025-07-05 10:07:30
|
correction: not dark areas, plural, but the specific dark area I was looking at (left of Jolteon’s face)
|
|
|
jonnyawsom3
|
2025-07-05 10:07:48
|
Could you send a closeup of the area?
|
|
|
spider-mario
|
2025-07-05 10:10:35
|
|
|
2025-07-05 10:10:49
|
wait, I don’t see it here
|
|
2025-07-05 10:12:12
|
ugh, is this a quirk from the comparison tool, maybe in combination with my monitor profile?
|
|
|
jonnyawsom3
|
2025-07-05 10:20:39
|
How are you viewing it? The tool in libjxl?
|
|
|
spider-mario
|
2025-07-05 10:27:24
|
yes, the `compare_codecs` tool
|
|
2025-07-05 10:29:34
|
with the jxl loaded as jxl
|
|
2025-07-05 10:32:38
|
oh, wait
|
|
2025-07-05 10:33:43
|
it’s only with https://github.com/libjxl/libjxl/pull/4325
|
|
2025-07-05 10:33:54
|
so I guess it’s faster but less accurate then
|
|
|
jonnyawsom3
|
2025-07-05 10:55:30
|
Ohh, that might be why some applications/CDNs give XYB JPEGs purple color bleed even when converted to 'sRGB'. They're not accurate enough for the conversion
|
|
|
|
afed
|
|
juliobbv
it's 64 AV1 CQ values mapped to 101 [0-100], so some will be duplicated
|
|
2025-07-05 11:52:57
|
yeah, maybe, I just remember that avifenc also gave the same size images when I was doing some comparisons
though, maybe it was before the q changes
|
|
|
diskorduser
|
|
HCrikki
absolutely zero, im convinced
|
|
2025-07-06 12:52:00
|
It says both avif and jxl on pdfa org 😶
|
|
|
_wb_
|
|
spider-mario
(I’ve been using OpenJPEG and Grok, the latter apparently originating as a fork of the former)
|
|
2025-07-06 01:23:52
|
Kakadu is supposed to be a lot better than OpenJPEG. I think OpenJPEG has no perceptual encode mode at all, just psnr
|
|
|
|
paperboyo
|
|
juliobbv
btw I'd do `-a c:tune=iq` so the tune isn't accidentally applied to alpha
|
|
2025-07-06 04:26:22
|
Could I ask why applying `tune=iq` to alpha be problematic? And which `tune`, if any, is best/default for alpha? (I also find `tune=iq` a massive improvement over `tune=ssim` 🙏 )
|
|
|
|
afed
|
|
paperboyo
Could I ask why applying `tune=iq` to alpha be problematic? And which `tune`, if any, is best/default for alpha? (I also find `tune=iq` a massive improvement over `tune=ssim` 🙏 )
|
|
2025-07-06 04:27:33
|
https://github.com/AOMediaCodec/libavif/pull/2830#discussion_r2155240594
|
|
|
juliobbv
|
|
paperboyo
Could I ask why applying `tune=iq` to alpha be problematic? And which `tune`, if any, is best/default for alpha? (I also find `tune=iq` a massive improvement over `tune=ssim` 🙏 )
|
|
2025-07-06 04:27:38
|
because alpha isn't amenable to be encoded with psychovisual optimizations
|
|
|
afed
https://github.com/AOMediaCodec/libavif/pull/2830#discussion_r2155240594
|
|
2025-07-06 04:29:43
|
but this does have a more comprehensive explanation
|
|
|
|
paperboyo
|
2025-07-06 04:56:35
|
Sorry for a flurry of questions, <@297955493698076672> (I’m trying to get `iq` the default for the site, tests are extremely encouraging, most overcompressed images look much better and the savings from undercompressed ones, which look more or less the same anyhow, offset that increased weight nicely; given same quality setting on a largish corpus), but I can’t find an explanation of how to specify tuning for different planes (`c:tune=`)… How to specify `psnr` for alpha, so that it works both before and after PR linked above is merged?
|
|
|
juliobbv
|
|
paperboyo
Sorry for a flurry of questions, <@297955493698076672> (I’m trying to get `iq` the default for the site, tests are extremely encouraging, most overcompressed images look much better and the savings from undercompressed ones, which look more or less the same anyhow, offset that increased weight nicely; given same quality setting on a largish corpus), but I can’t find an explanation of how to specify tuning for different planes (`c:tune=`)… How to specify `psnr` for alpha, so that it works both before and after PR linked above is merged?
|
|
2025-07-06 04:57:48
|
you can keep using the default tune (ssim) for alpha
|
|
2025-07-06 04:58:16
|
c: stands for the YUV planes
|
|
2025-07-06 04:58:29
|
so you're just overriding the tune for those YUV planes
|
|
2025-07-06 04:59:01
|
after the PR is merged, you won't need to specify any tune at all
|
|
|
|
paperboyo
|
2025-07-06 05:02:10
|
Ah! [Here](https://man.archlinux.org/man/avifenc.1.en#AOM-SPECIFIC_ADVANCED_OPTIONS). So if I would like to be explicit, I would go `-a c:tune=iq a:tune=psnr`.
|
|
|
juliobbv
|
2025-07-06 05:02:27
|
correct!
|
|
|
|
paperboyo
|
2025-07-06 05:07:38
|
Anecdotally (and admittedly my corpus is smallish, I do tests half-manually), I would love `tune=iq` to be a lever which I would crank harder (I would like poor-looking “LF” images to go even larger and already good-looking “HF” ones to decrease in size even more; and for the effect to be even more pronounced the larger the image dimensions). But the switch from `ssim` to `iq` is transformational already.
EDIT: And, thinking about it, one could replace “images” in above sentence with “image areas”, if one was dreaming.
|
|
|
juliobbv
|
2025-07-06 06:08:11
|
<@810102077895344159> if you can build from source and want to experiment, you can change the scaling of Variance Boost to make it stronger (all_intravis.c, line 1111):
```c
int boost = (int)round((base_qindex + 544.0) * (base_qindex - target_qindex) /
1279.0);
```
to something like this:
```c
int boost = (int)round((base_qindex + 544.0) * (base_qindex - target_qindex) /
800.0);
```
|
|
|
spider-mario
|
|
spider-mario
it’s only with https://github.com/libjxl/libjxl/pull/4325
|
|
2025-07-06 08:15:13
|
there, this should be quality-neutral: https://github.com/libjxl/libjxl/pull/4326
|
|
|
_wb_
Kakadu is supposed to be a lot better than OpenJPEG. I think OpenJPEG has no perceptual encode mode at all, just psnr
|
|
2025-07-06 08:18:18
|
ah, right – too bad that the licensing is such a pain
|
|
2025-07-06 09:34:02
|
https://scispace.com/pdf/jpeg-vs-jpeg-2000-an-objective-comparison-of-image-encoding-1n02yfm70l.pdf seems to have found better performance from jasper than from kakadu
|
|
2025-07-06 09:34:26
|
but they also noted:
> For low compression ratios (below 20:1) JPEG produces slightly better images (mainly due to the greater perceived sharpness, cf. Figure 11b below), whereas for medium to high compression ratios we obtain higher quality with JPEG2000. This confirms the common observation that JPEG2000 works best for high compression ratios.
|
|
2025-07-06 09:35:04
|
and also:
> If we just consider PSNR to compare JPEG and JPEG2000, which is shown in Figure 10, we find JPEG2000 to be a better encoder than JPEG for all compression ratios. This confirms again that the MOS prediction by Image Optimacy is a better indicator of image quality than PSNR.
|
|
2025-07-06 09:44:07
|
https://stackoverflow.com/questions/57342487/ultimate-jpeg-2000-compression
> ImageMagick, GraphicsMagick, OpenJPEG all showed identical results (I assume, due to usage of Jasper to encode JPEG-2000) and all lacked options for encoding. Using Kakadu or online/basic converters didn't help either.
well, all right
|
|
2025-07-06 09:44:11
|
time to give up, maybe
|
|
2025-07-06 09:45:21
|
kornel:
> It's a mostly dead format, for a good reason. It's been hailed as "20% better" two decades ago, mainly based on flawed PSNR scores. You're not missing anything, you're not doing anything wrong. There's nothing great hidden in JPEG 2000.
|
|
|
A homosapien
|
2025-07-06 09:59:04
|
JXL is the answer
|
|
|
spider-mario
|
2025-07-06 10:00:17
|
I was hoping for something embeddable in PDFs, but it seems that until JXL makes its way there, good old JPEG is still the best option
|
|
|
username
|
|
A homosapien
JXL is the answer
|
|
2025-07-06 10:00:18
|
~~erm but what if I want all my extra channels to be DWT compressed \🤓~~
|
|
|
_wb_
|
2025-07-06 10:02:55
|
The main thing J2K has going for it is a huge amount of features and extensions. It can do almost arbitrary bitstream reordering, it has extensions for volumetric data etc, lots of stuff.
That's of course both a pro and a con since it makes it hard to really completely support all of J2K (all parts of the standard), and while the baseline codec is royalty-free, probably some of the additional parts are not.
|
|
2025-07-06 10:11:02
|
Even some of the original J2K devs understood that it wasn't actually bringing better compression in the typical quality range, only in the range where bitrates are so low that JPEG breaks down, or in the range where you need higher fidelity than what JPEG can bring (i.e. high bit depth, lossless and lossy at q > 98). In this paper from 2000 introducing J2K at the DCC conference, they're quite clear in the conclusion:
> JPEG-2000 is unlikely to replace JPEG in low complexity applications at bitrates in the range where JPEG performs well. However, for applications requiring either higher quality or lower bitrates, or any of the features provided, JPEG-2000 should be a welcome standard.
|
|
|
spider-mario
|
2025-07-06 03:28:54
|
even for lower bitrates, I’m finding that a high-quality jpeg of a downsampled version of the image does better than a same-filesize j2k from the original image
|
|
|
jonnyawsom3
|
2025-07-06 03:54:11
|
That's why I briefly experimented with subsampling in jpegli, to try and recreate JXL style resampling at very low qualities, but it always came out wonky
|
|
|
CrushedAsian255
|
|
That's why I briefly experimented with subsampling in jpegli, to try and recreate JXL style resampling at very low qualities, but it always came out wonky
|
|
2025-07-07 11:43:31
|
You could potentially get the same effect by zeroing all HF coefficients
|
|
|
jonnyawsom3
|
|
CrushedAsian255
You could potentially get the same effect by zeroing all HF coefficients
|
|
2025-07-07 11:44:27
|
8x resampling is far too much, even 4x I ended up scrapping in libjxl when adjusting thresholds
|
|
|
DZgas Ж
|
2025-07-07 09:26:37
|
I noticed that the native webp decoder does a very sneaky trick that no one does natively. When decoding, it natively immediately interpolates the color plane. While AVIF does standard nearest neighbor interpolation, and JPEG works depending on the decoder settings in individual applications.
But this also means that, for example, if the input image for encoding is yuv420 inside PNG, then I completely lose the ability to compare the webp output with the original, because of this native interpolation and it's annoying
original | avif | webp sharp_yuv | webp
|
|
|
DZgas Ж
you can say it straight, i've been using it for a long time, but all i see is an increase in quality on the UV channels, so why is it being presented as a new technology ?
it's true that jpeg doesn't have it, but it's always been in AVC & HEVC and i actively use it in my av1 fork through many iterations of CfL
|
|
2025-07-07 09:43:20
|
well and of course I would like to say that the sharp_yuv algorithm does not work quite as I thought all these years, in fact, at quality, for example, q100, it can even spoil the picture if the input is yuv420.
You know, earlier, looking at the examples, and looking at the results themselves, I thought, well, the colors became better, the image began to file size more. Apparently, they up the bitrate for color.
But looking now, I would say, perhaps, probably, everything is connected just in the sense that if the interpolation is performed natively, it would be possible to make it so that the colors were arranged in such a way that after interpolation it would give more quality, like the original.
This also answers the question why only Webp has something like this and why it was not implemented in jpeg many years ago. Because Webp does not act professionally here, but very clearly for a very limited type - the Internet, pictures on the Internet, nothing more.
|
|
|
A homosapien
I want to write a proper program using cjpegli's API and combine it with sharp yuv one day
|
|
2025-07-07 09:46:24
|
This all leads to this question: do you know what you're doing? Will you start doing it?
|
|
2025-07-07 09:49:41
|
and also a question -- when Webp encodes an image -- does it do PSNR an already interpolated color <:Thonk:805904896879493180> because if interpolation is unavoidable during decoding, this could provide an advantage
|
|
|
_wb_
|
2025-07-07 09:55:56
|
What is "yuv420 inside PNG"? PNG only supports RGB...
|
|
|
jonnyawsom3
|
|
DZgas Ж
This all leads to this question: do you know what you're doing? Will you start doing it?
|
|
2025-07-07 10:07:09
|
We did it a few hours ago in the voice channel, soon we'll try and integrate it properly and make a PR
|
|
|
DZgas Ж
|
|
_wb_
What is "yuv420 inside PNG"? PNG only supports RGB...
|
|
2025-07-07 10:07:31
|
yuv420 inside RGB inside PNG
|
|
|
jonnyawsom3
|
2025-07-07 10:07:53
|
AKA recompressed 420 in a PNG
|
|
|
DZgas Ж
|
|
We did it a few hours ago in the voice channel, soon we'll try and integrate it properly and make a PR
|
|
2025-07-07 10:08:26
|
successfully?
|
|
2025-07-07 10:09:51
|
because i can't just open webp and see how it works pixel by pixel. extracting UV channels. i'm curious how it looks in practice
|
|
2025-07-07 10:10:18
|
due to interpolation on decoding
|
|
|
jonnyawsom3
|
2025-07-07 10:17:17
|
<@207980494892040194> you still got the test encode?
|
|
|
A homosapien
|
2025-07-07 10:42:48
|
Yeah it works well
|
|
|
DZgas Ж
This all leads to this question: do you know what you're doing? Will you start doing it?
|
|
2025-07-07 10:48:30
|
Do I know what I'm doing? No not really. I'm learning as I go. That's the fun part.
Will I start doing it? I have proof that it works at least. It will be ready when it's done. I have college and a job that requires my attention first and foremost.
|
|
|
gb82
|
|
Lumen
okay so it was not trivial especially when there was entities on the screen, here is my little summary (for --preset 2)
- 1080p 60fps had a lot of trouble
- --fast-decode=2 was clearly not enough
- --fast-decode=2 --tile-columns=1 helped visibly but wasnt enough to watch a flawless av1 on my phone
- --fast-decode=2 --tile-columns=2 --tile-rows=1 was almost enough, I almost could watch it nicely. This is due to the fact that phone uses ARM so each core is quite weak and tiles allows to improve multithreaded decoding
- same but applied for 720p 60 fps which was sadly still not enough for some specific scenes
- same but applied for 720p 30 fps, this time finally it worked flawlessly
[result](https://discord.nfp.is/?v=https%3A%2F%2Ffiles.catbox.moe%2Fyceto2.mp4)
my conclusion is: av1 is harder to decode on phone than I thought, I admit that
I still think that for 720p 30 fps, the compression is great here but I cannot say about other codecs because I did not have a proper comparison on that
|
|
2025-07-08 08:32:20
|
Were u using dav1d?
|
|
|
Lumen
|
|
gb82
Were u using dav1d?
|
|
2025-07-08 08:32:47
|
Mpv on mobile
|
|
|
gb82
|
|
Lumen
|
2025-07-08 08:32:55
|
Updated
|
|
2025-07-08 08:33:22
|
Anime 1080p 24 fps plays fine
|
|
2025-07-08 08:33:33
|
But minecraft content 60 fps dont x)
|
|
|
gb82
|
2025-07-08 08:34:30
|
https://www.streamingmedia.com/Articles/ReadArticle.aspx?ArticleID=168126
|
|
2025-07-08 08:34:40
|
Meta is attempting to look into this I guess
|
|
2025-07-08 10:47:41
|
|
|
2025-07-08 10:47:42
|
AMA
|
|
|
A homosapien
|
|
gb82
AMA
|
|
2025-07-08 11:19:14
|
Wow! Good work tuning WebP for ssim2! I have a few questions.
Considering webp only has 420, what is the baseline ssimulacra2 quality for 0%? 75? 70?
Does this extra quality come with a performance cost or was it just a matter of using more effective/efficient algorithms? Does sharpyuv play a role here?
|
|
|
𝕰𝖒𝖗𝖊
|
|
A homosapien
Wow! Good work tuning WebP for ssim2! I have a few questions.
Considering webp only has 420, what is the baseline ssimulacra2 quality for 0%? 75? 70?
Does this extra quality come with a performance cost or was it just a matter of using more effective/efficient algorithms? Does sharpyuv play a role here?
|
|
2025-07-08 11:20:46
|
420 and 8bit only were huge limitations but this is still impressive
|
|
|
username
|
|
gb82
AMA
|
|
2025-07-08 11:29:15
|
few misc questions:
1. Has there been any tune-ing or handling or otherwise done for image data that goes beyond sRGB such as P3?
2. Is it heavily modified version of libwebp or an encoder from scratch or something else/in-between?
3. Not really a specific question but what features of VP8 where taken advantage of or tuned encoder side?
|
|
2025-07-08 11:31:34
|
libwebp seems to be extra bad when it comes to P3 so I'm curious if iris has any sort of tune-ing or otherwise related to such images or if all testing and tune-ing has just been done against sRGB data
|
|
2025-07-08 11:47:49
|
oh I guess another question:
4. What is the availability of this gonna look like? the website screams to me that it's gonna be one of those things your gonna need to contact and pay for kinda like [Kakadu](https://kakadusoftware.com/) or [Bink](https://www.radgametools.com/bnkmain.htm)
|
|
|
gb82
|
|
A homosapien
Wow! Good work tuning WebP for ssim2! I have a few questions.
Considering webp only has 420, what is the baseline ssimulacra2 quality for 0%? 75? 70?
Does this extra quality come with a performance cost or was it just a matter of using more effective/efficient algorithms? Does sharpyuv play a role here?
|
|
2025-07-08 11:57:38
|
> Good work tuning WebP for ssim2!
heh i feel like this is like saying "SVT-AV1 is AV1 tuned for VMAF" but thanks I guess. fwiw, Iris is a bespoke implementation in a number of ways, and does well on Butteraugli too
> Considering webp only has 420, what is the baseline ssimulacra2 quality for 0%? 75? 70?
for this particular graph, its around 0 to 80 (just for the sake of demonstrating encoder performance). however, Iris is competitive at much higher fidelity; a lot of the hurdles that libwebp faces with higher fidelity have been overcome, in my opinion. it has been really hard, but it is very important to me and many of us here
> Does this extra quality come with a performance cost or was it just a matter of using more effective/efficient algorithms? Does sharpyuv play a role here?
the graph I'm sharing is speed-to-BDrate, so for any given speed, Iris should be better than libwebp on average. our slowest mode (speed 0) is actually faster than libwebp's slowest (m6) while being much better looking, while our fastest mode is faster (speed 6 is more comparable to m0 using the encoder binaries, while speed 7 is faster). I won't speak to algorithms, but there is a lot of new research in here that isn't seen in libjxl, tune iq, or other video/image encoders from what I've been able to observe
|
|
|
username
few misc questions:
1. Has there been any tune-ing or handling or otherwise done for image data that goes beyond sRGB such as P3?
2. Is it heavily modified version of libwebp or an encoder from scratch or something else/in-between?
3. Not really a specific question but what features of VP8 where taken advantage of or tuned encoder side?
|
|
2025-07-09 12:00:03
|
> Has there been any tune-ing or handling or otherwise done for image data that goes beyond sRGB such as P3?
honestly, not really yet ... currently things should generalize well (I don't see why they wouldn't outside of HDR, which WebP doesn't support anyway) but if they aren't generalizing there will be work put in there
> Is it heavily modified version of libwebp or an encoder from scratch or something else/in-between?
I won't say too much, but it is something in between
> Not really a specific question but what features of VP8 where taken advantage of or tuned encoder side?
i don't want to disclose my exact methodology, but VP8 in particular doesn't have the biggest set of coding tools compared to AV1 where you have a lot of decisions that you are able to make (420/444, 8/10bit, etc)
> What is the availability of this gonna look like? the website screams to me that it's gonna be one of those things your gonna need to contact and pay for kinda like Kakadu or Bink
for now I'm looking into licensing, but I'd strongly consider making this open-source because I love open source. I just need to be able to support myself while working on this
|
|
|
𝕰𝖒𝖗𝖊
420 and 8bit only were huge limitations but this is still impressive
|
|
2025-07-09 12:00:57
|
they're still really big limitations, but one of my goals here has been to try to overcome them. I think it isn't impossible, despite what the discourse has been for a while
|
|
|
Quackdoc
|
|
Lumen
Mpv on mobile
|
|
2025-07-09 02:51:05
|
its worth noting that grainsynth hits really bloody hard on arm devices if you don't have that either disabled or gpu accelerated
|
|
|
chocolatkey
|
|
gb82
AMA
|
|
2025-07-09 05:38:54
|
Would there be a point in considering something like this for grayscale images as well? Or did you primarily optimize for color?
|
|
|
gb82
|
|
chocolatkey
Would there be a point in considering something like this for grayscale images as well? Or did you primarily optimize for color?
|
|
2025-07-09 06:50:10
|
im not "optimizing," im building a new encoder, which involves making generally good decisions. some will benefit luma, some chroma, some both
|
|
|
A homosapien
|
|
gb82
> Good work tuning WebP for ssim2!
heh i feel like this is like saying "SVT-AV1 is AV1 tuned for VMAF" but thanks I guess. fwiw, Iris is a bespoke implementation in a number of ways, and does well on Butteraugli too
> Considering webp only has 420, what is the baseline ssimulacra2 quality for 0%? 75? 70?
for this particular graph, its around 0 to 80 (just for the sake of demonstrating encoder performance). however, Iris is competitive at much higher fidelity; a lot of the hurdles that libwebp faces with higher fidelity have been overcome, in my opinion. it has been really hard, but it is very important to me and many of us here
> Does this extra quality come with a performance cost or was it just a matter of using more effective/efficient algorithms? Does sharpyuv play a role here?
the graph I'm sharing is speed-to-BDrate, so for any given speed, Iris should be better than libwebp on average. our slowest mode (speed 0) is actually faster than libwebp's slowest (m6) while being much better looking, while our fastest mode is faster (speed 6 is more comparable to m0 using the encoder binaries, while speed 7 is faster). I won't speak to algorithms, but there is a lot of new research in here that isn't seen in libjxl, tune iq, or other video/image encoders from what I've been able to observe
|
|
2025-07-09 07:57:15
|
> heh i feel like this is like saying "SVT-AV1 is AV1 tuned for VMAF" but thanks I guess. fwiw, Iris is a bespoke implementation in a number of ways, and does well on Butteraugli too
At least ssim2 has a much better reputation than VMAF. Sorry if that came off as dismissive 😅 , I know you are doing much more than just tuning for metrics, it's really cool how much more you can get out of 8-bit 420, disproving the idea that it can't reach higher fidelities.
Speaking of the website, are the WebP images present in the website encoded with Iris or libwebp?
I also noticed you distribute jxl versions for compatible browsers (hell yeah <:JXL:805850130203934781> ). These jxl versions are more vibrant with more contrast than their WebP counterparts, is that intentional?
Any ideas/plans for the future, what's next? (Iris or otherwise)
|
|
|
chocolatkey
|
|
gb82
im not "optimizing," im building a new encoder, which involves making generally good decisions. some will benefit luma, some chroma, some both
|
|
2025-07-09 09:31:15
|
OK. I would suggest setting up a way for people to try your encoder, possibly through an upload form
|
|
|
gb82
|
|
A homosapien
> heh i feel like this is like saying "SVT-AV1 is AV1 tuned for VMAF" but thanks I guess. fwiw, Iris is a bespoke implementation in a number of ways, and does well on Butteraugli too
At least ssim2 has a much better reputation than VMAF. Sorry if that came off as dismissive 😅 , I know you are doing much more than just tuning for metrics, it's really cool how much more you can get out of 8-bit 420, disproving the idea that it can't reach higher fidelities.
Speaking of the website, are the WebP images present in the website encoded with Iris or libwebp?
I also noticed you distribute jxl versions for compatible browsers (hell yeah <:JXL:805850130203934781> ). These jxl versions are more vibrant with more contrast than their WebP counterparts, is that intentional?
Any ideas/plans for the future, what's next? (Iris or otherwise)
|
|
2025-07-09 03:07:42
|
yeah ICC profiles got messed up. those are encoded with an early version of Iris that represents ~50% of the gains we have realized today (I should probably reencode them, but it isn't the end of the world)
|
|
|
A homosapien
> heh i feel like this is like saying "SVT-AV1 is AV1 tuned for VMAF" but thanks I guess. fwiw, Iris is a bespoke implementation in a number of ways, and does well on Butteraugli too
At least ssim2 has a much better reputation than VMAF. Sorry if that came off as dismissive 😅 , I know you are doing much more than just tuning for metrics, it's really cool how much more you can get out of 8-bit 420, disproving the idea that it can't reach higher fidelities.
Speaking of the website, are the WebP images present in the website encoded with Iris or libwebp?
I also noticed you distribute jxl versions for compatible browsers (hell yeah <:JXL:805850130203934781> ). These jxl versions are more vibrant with more contrast than their WebP counterparts, is that intentional?
Any ideas/plans for the future, what's next? (Iris or otherwise)
|
|
2025-07-09 03:08:33
|
plans for the future include making Iris-WebP better; includes speed, quality, etc
|
|
|
chocolatkey
OK. I would suggest setting up a way for people to try your encoder, possibly through an upload form
|
|
2025-07-09 03:08:56
|
ill think about this, but I like having a static site, and I don't really care about community feedback (no proprietary encoder developer does, really)
|
|
|
damian101
|
|
DZgas Ж
I noticed that the native webp decoder does a very sneaky trick that no one does natively. When decoding, it natively immediately interpolates the color plane. While AVIF does standard nearest neighbor interpolation, and JPEG works depending on the decoder settings in individual applications.
But this also means that, for example, if the input image for encoding is yuv420 inside PNG, then I completely lose the ability to compare the webp output with the original, because of this native interpolation and it's annoying
original | avif | webp sharp_yuv | webp
|
|
2025-07-09 05:06:03
|
avifdec decodes to RGB...
|
|
|
DZgas Ж
|
2025-07-09 07:00:16
|
and what does this mean? who doesn't do this? the image on the monitor is RGB
|
|
|
damian101
|
|
DZgas Ж
and what does this mean? who doesn't do this? the image on the monitor is RGB
|
|
2025-07-09 07:05:58
|
anything that uses avifdec instead of decoding the raw AV1 stream in the AVIF container should not have to do any YCbCr to RGB conversion.
|
|
|
DZgas Ж
|
|
anything that uses avifdec instead of decoding the raw AV1 stream in the AVIF container should not have to do any YCbCr to RGB conversion.
|
|
2025-07-09 07:07:41
|
This doesn't sound like precise knowledge, and what is it supposed to mean? I don't understand.
|
|
|
avifdec decodes to RGB...
|
|
2025-07-09 07:09:32
|
I don't understand at all what this has to do with it, what it's for, what it affects in the conversation about the webp decoder doing color interpolation natively
|
|
2025-07-09 07:09:56
|
<:Thonk:805904896879493180>
|
|
|
damian101
|
|
DZgas Ж
I don't understand at all what this has to do with it, what it's for, what it affects in the conversation about the webp decoder doing color interpolation natively
|
|
2025-07-09 07:28:22
|
avifdec also does proper chroma interpolation natively, that's my point
|
|
|
DZgas Ж
|
|
avifdec also does proper chroma interpolation natively, that's my point
|
|
2025-07-09 07:29:15
|
proper? I see that avifdec doesn't do it.
|
|
|
damian101
|
|
DZgas Ж
proper? I see that avifdec doesn't do it.
|
|
2025-07-09 07:29:23
|
where do you see that?
|
|
|
DZgas Ж
|
2025-07-09 07:29:42
|
this should be done individually by the programs that display the images
|
|
|
damian101
|
|
DZgas Ж
this should be done individually by the programs that display the images
|
|
2025-07-09 07:29:52
|
no, it shouldn't
|
|
|
DZgas Ж
|
|
where do you see that?
|
|
2025-07-09 07:30:17
|
open image and zoom in. i see subsample 2x2 yuv420
|
|
|
damian101
|
|
DZgas Ж
open image and zoom in. i see subsample 2x2 yuv420
|
|
2025-07-09 07:30:29
|
then it's not decoded using avifdec
|
|
|
DZgas Ж
|
2025-07-09 07:30:44
|
displayed by nearest neighbor scaling
|
|
|
damian101
|
|
DZgas Ж
open image and zoom in. i see subsample 2x2 yuv420
|
|
2025-07-09 07:30:51
|
you mean nearest-neighbour upscaled 4:2:0 chroma?
|
|
|
DZgas Ж
|
|
damian101
|
2025-07-09 07:31:35
|
implementation fault then
|
|
|
DZgas Ж
|
|
implementation fault then
|
|
2025-07-09 07:35:02
|
what
|
|
|
_wb_
|
2025-07-09 07:35:14
|
Does the avif spec define how to upsample chroma?
|
|
|
damian101
|
|
DZgas Ж
what
|
|
2025-07-09 07:35:27
|
if the application does the chroma upscaling, it obviously is its fault for doing it poorly
|
|
|
_wb_
Does the avif spec define how to upsample chroma?
|
|
2025-07-09 07:40:04
|
Very most likely no.
Avifdec actually used to support a higher quality chroma upsampling method. But then they noticed it didn't work well with "sharpyuv" (downscaling in linear light to produce the chroma planes), and removed it again.
On paper, avifdec uses simple bilinear interpolation for the chroma upsampling. However, for some reason it produces better results than the bilinear upscaling I've tried...
|
|
2025-07-09 07:42:45
|
I know that for downscaling, there is sharp (2x2 source samples) and blurry (4x4 source samples) bilinear/triangle downscaling, with the blurry method being more common in image processing.
|
|
|
spider-mario
|
|
Very most likely no.
Avifdec actually used to support a higher quality chroma upsampling method. But then they noticed it didn't work well with "sharpyuv" (downscaling in linear light to produce the chroma planes), and removed it again.
On paper, avifdec uses simple bilinear interpolation for the chroma upsampling. However, for some reason it produces better results than the bilinear upscaling I've tried...
|
|
2025-07-09 07:43:37
|
might that relate to this? https://g.co/gemini/share/1dd0228a4251
|
|
|
DZgas Ж
|
|
Very most likely no.
Avifdec actually used to support a higher quality chroma upsampling method. But then they noticed it didn't work well with "sharpyuv" (downscaling in linear light to produce the chroma planes), and removed it again.
On paper, avifdec uses simple bilinear interpolation for the chroma upsampling. However, for some reason it produces better results than the bilinear upscaling I've tried...
|
|
2025-07-09 07:43:47
|
it does not perform color interpolation, but this is unnoticeable if general interpolation is performed. But for example, if you make an increase of 1% by performing full interpolation of the entire image, it is clear that the color is not scaled separately. color decoding in the nearest neighbor mode. While Webp looks better precisely because it natively performs interpolation......
There is a completely logical answer - AV1 as a codec has YUV420 native decoding, while displaying video in the buffer, all media players, mpc-hc vlc mpv have parameters for separate interpolation of Y and UV channels. It works in the browser in the same way
|
|
|
spider-mario
might that relate to this? https://g.co/gemini/share/1dd0228a4251
|
|
2025-07-09 07:44:47
|
neural answer bruh
|
|
|
spider-mario
|
2025-07-09 07:45:53
|
is it inaccurate?
|
|
|
DZgas Ж
|
|
DZgas Ж
it does not perform color interpolation, but this is unnoticeable if general interpolation is performed. But for example, if you make an increase of 1% by performing full interpolation of the entire image, it is clear that the color is not scaled separately. color decoding in the nearest neighbor mode. While Webp looks better precisely because it natively performs interpolation......
There is a completely logical answer - AV1 as a codec has YUV420 native decoding, while displaying video in the buffer, all media players, mpc-hc vlc mpv have parameters for separate interpolation of Y and UV channels. It works in the browser in the same way
|
|
2025-07-09 07:46:19
|
MPV has --scale (Y+UV) and --cscale (UV separately)
|
|
|
spider-mario
is it inaccurate?
|
|
2025-07-09 07:47:35
|
I didn't read, too much text, which I don't even trust. No respect for such an answer.
|
|
2025-07-09 07:47:45
|
besides, I gave my answer
|
|
|
spider-mario
|
2025-07-09 07:48:25
|
I read it and it seemed plausible
|
|
|
DZgas Ж
|
2025-07-09 07:49:41
|
since I have a lot of experience watching videos that are very lagg on a smartphone or computer, changing the scaling type can greatly affect performance
and for example there is such a thing as BICUBLIN which does "Select bicubic scaling algorithm for the luma component, bilinear for chroma components" just for these cases
|
|
|
_wb_
|
2025-07-09 07:54:49
|
I think not specifying what upsampling to use is a mistake. An encoder needs to know what a decoder will do.
|
|
2025-07-09 07:56:19
|
But it's not surprising. The video codec philosophy has always been "we just compress matrices of numbers, how to interpret them is not our problem"
|
|
|
DZgas Ж
|
2025-07-09 07:57:49
|
I mean that the video is made in such a way that there is a 90% chance that it will be scaled.
There are only 2 cases when it is not, a 1280x1024 monitor for viewing 1280x720 video and 1920x1080 for the same size. Everything else will inevitably be scaled, and in all video codecs this is done at the decoding level when the data is still in YUV444 on all components.
BUT when you take an image, this is suddenly a problem. This is not a problem if it is a heavily compressed JPEG. But for example, AVIF q0 yuv420 has a problem, how to decode it? And WEBP decided not to ask, but to do interpolation. Because AVIF is literally the first frame of AV1 without exceptions. And WEBP is a completely independent format.
I confirmed this fact quite simply by opening an AVIF yuv420 file in the MPV player -- UV Chroma interpolation is present there. While XnView and PaintDotNet do not do this.
|
|
2025-07-09 07:58:34
|
<:SadCheems:890866831047417898> puzzle is solved👍
|
|
|
damian101
|
|
spider-mario
might that relate to this? https://g.co/gemini/share/1dd0228a4251
|
|
2025-07-09 08:00:49
|
Sorry, didn't read properly, but sample position is a non-issue with still images, it's always center there.
Actually, if an application extracts the raw AV1 stream instead instead of using avifdec, whatever does the upscaling might assume left position 🫤
|
|
|
DZgas Ж
|
|
_wb_
But it's not surprising. The video codec philosophy has always been "we just compress matrices of numbers, how to interpret them is not our problem"
|
|
2025-07-09 08:01:55
|
perhaps that's fair, perhaps...
|
|
2025-07-09 08:03:16
|
color interpolation has always been done, but it can be so subtle that we don't even notice it
|
|
2025-07-09 08:04:54
|
even with 1920x1080 video, which is perfect pixel for pixel on your monitor. this is actually a lie, because the color is 960x540 that needs to be interpolated, and if it is bilinear, it can give worse quality, and there will be noticeable blur
|
|
|
_wb_
|
2025-07-09 08:05:34
|
It's a classic engineer trick to formulate the problem in such a way that it becomes easy to measure performance of a solution. Color spaces and image quality are messy stuff, just computing the PSNR of an array of numbers is easier.
|
|
|
DZgas Ж
|
|
_wb_
It's a classic engineer trick to formulate the problem in such a way that it becomes easy to measure performance of a solution. Color spaces and image quality are messy stuff, just computing the PSNR of an array of numbers is easier.
|
|
2025-07-09 08:07:33
|
from my experience I could say this - if the image will be scaled up 2 times or more from the original, it is better to use PSNR. and if not, then SSIM is better. At 1280x720 SSIM is better and at 640x360 PSNR is better - it is impossible because the image will be scaled up many times more strongly
|
|
2025-07-09 08:09:39
|
since I am the only person on the planet, besides the AV1 developers, whoever tried to compile AV1 Butteraugli, I can say that encoding is so unimaginably slow, and the result is so small advantages (but it is there) that perhaps we will forever remain in SSIM for video
|
|
|
DZgas Ж
from my experience I could say this - if the image will be scaled up 2 times or more from the original, it is better to use PSNR. and if not, then SSIM is better. At 1280x720 SSIM is better and at 640x360 PSNR is better - it is impossible because the image will be scaled up many times more strongly
|
|
2025-07-09 08:11:33
|
also, i see a big problem with this approach in jpeg XL. if you scale the image, it looks very problematic, but if you look at it as intended, pixel in pixel, it looks very good
|
|
2025-07-09 08:14:28
|
Hmm, I suddenly became interested in whether this problem can be solved <#848189884614705192>
|
|
|
|
veluca
|
|
DZgas Ж
since I am the only person on the planet, besides the AV1 developers, whoever tried to compile AV1 Butteraugli, I can say that encoding is so unimaginably slow, and the result is so small advantages (but it is there) that perhaps we will forever remain in SSIM for video
|
|
2025-07-09 08:16:27
|
AV1 butteraugli was never meant for video 😄 butteraugli doesn't model a lot of the video effects
|
|
|
DZgas Ж
|
|
veluca
AV1 butteraugli was never meant for video 😄 butteraugli doesn't model a lot of the video effects
|
|
2025-07-09 08:19:54
|
I don't see a problem with that. Video is still a lot of frames. Just like SSIM, there is no "time frames" coding or anything like that
Moreover, I saw with my own eyes small quality improvements. But as I said, they are so insignificant, like a more correct line shift by 2-4 pixels along the original location vector. That it's all useless. It is much more profitable to use SSIM but increase the preset to get better quality. Since butteraugli takes power like 2-3 presets down
|
|
2025-07-09 08:21:34
|
This will probably give an advantage on the slowest possible preset, but Netflix invented VMAF specifically for this purpose.
|
|
|
spider-mario
|
|
DZgas Ж
since I am the only person on the planet, besides the AV1 developers, whoever tried to compile AV1 Butteraugli, I can say that encoding is so unimaginably slow, and the result is so small advantages (but it is there) that perhaps we will forever remain in SSIM for video
|
|
2025-07-09 08:22:47
|
have you tried the new `tune=iq`?
|
|
|
DZgas Ж
|
|
spider-mario
have you tried the new `tune=iq`?
|
|
2025-07-09 08:24:10
|
no. I have my own fork. I recently tested comparisons with version svt-av1 3.1.2 and came to the conclusion that what I did a year ago is still better than what they do with AV1
|
|
2025-07-09 08:24:35
|
the main problem is that AV1 is more dead than HEVC, it's annoying
|
|
|
spider-mario
|
2025-07-09 08:24:50
|
I have literally just mentioned something new in the AV1 world?
|
|
2025-07-09 08:24:59
|
you just immediately dismissed it
|
|
2025-07-09 08:25:44
|
you seem adamant that what you did a year ago is better than this thing you haven’t tested
|
|
|
DZgas Ж
|
|
spider-mario
I have literally just mentioned something new in the AV1 world?
|
|
2025-07-09 08:25:48
|
In my world there is only tune=0 tune=1 tune=2
|
|
|
spider-mario
you seem adamant that what you did a year ago is better than this thing you haven’t tested
|
|
2025-07-09 08:27:39
|
I am adamant convinced that it is impossible to make 10%+ better with one tune, in a year, with identical encoding speed. Practice shows that this is an impossible achievement for a codec that is already 7 years old.
|
|
|
spider-mario
|
2025-07-09 08:28:33
|
didn’t jpegli do it for a 20+-year-old codec?
|
|
|
|
afed
|
2025-07-09 08:29:38
|
`The Joint Photographic Experts Group created the standard in 1992`
|
|
|
DZgas Ж
|
|
spider-mario
didn’t jpegli do it for a 20+-year-old codec?
|
|
2025-07-09 08:30:17
|
guetzli release 8 years ago
|
|
|
spider-mario
|
2025-07-09 08:30:37
|
then same question for guetzli?
|
|
2025-07-09 08:31:08
|
but also, that’s clearly not “with identical encoding speed”
|
|
|
DZgas Ж
|
|
spider-mario
then same question for guetzli?
|
|
2025-07-09 08:31:40
|
not so long ago
|
|
|
spider-mario
|
2025-07-09 08:32:30
|
the goalposts seem to be shifting
|
|
|
DZgas Ж
|
|
spider-mario
didn’t jpegli do it for a 20+-year-old codec?
|
|
2025-07-09 08:33:12
|
ok, what do you want to hear? is there any example other than jpeg?
mp3? vorbis?
png?
webp?
AVC?
vp8?
vp9?
|
|
|
spider-mario
|
2025-07-09 08:33:49
|
well, maybe `tune=iq` for AVIF?
|
|
|
DZgas Ж
|
|
spider-mario
well, maybe `tune=iq` for AVIF?
|
|
2025-07-09 08:35:57
|
Okay, let's. Under Av1 specifically AOMENC?
|
|
|
spider-mario
|
|
DZgas Ж
|
2025-07-09 08:37:04
|
ok, i'll do some tests and compare with my fork
|
|
|
gb82
|
|
_wb_
But it's not surprising. The video codec philosophy has always been "we just compress matrices of numbers, how to interpret them is not our problem"
|
|
2025-07-09 08:40:40
|
it is unfortunate that this is the reality when video codecs become image codecs almost as an externality. ideally there are some encoders that can consider this, but they'd be held back severely by inconsiderate scenarios like this
|
|
2025-07-09 08:40:56
|
esp w/ regards to decode
|
|
|
DZgas Ж
I am adamant convinced that it is impossible to make 10%+ better with one tune, in a year, with identical encoding speed. Practice shows that this is an impossible achievement for a codec that is already 7 years old.
|
|
2025-07-09 08:41:53
|
The first person to solve a problem is usually the one to consider that "impossible" might be possible
|
|
|
|
afed
|
2025-07-09 08:43:49
|
basically all of these formats got better encoders only after some time
even like an old and at first glance simple png
|
|
|
spider-mario
|
|
gb82
The first person to solve a problem is usually the one to consider that "impossible" might be possible
|
|
2025-07-09 08:56:21
|
“they didn’t know it was impossible, so they did it”
|
|
|
DZgas Ж
|
|
afed
basically all of these formats got better encoders only after some time
even like an old and at first glance simple png
|
|
2025-07-09 09:04:57
|
how many encoders for webp? and for jpeg xl? and for vp8? flac?
Sometimes there are just no studies, no interested parties, to do everything from scratch, solving possible current fundamental problems. The fact that av1 has many codecs is nothing less than a miracle. But this does not mean that its the best of all possible
|
|
|
_wb_
|
2025-07-09 09:08:21
|
The number of encoder implementations does not mean that much imo. The important thing is if there's a good one available for free.
|
|
|
gb82
|
|
DZgas Ж
how many encoders for webp? and for jpeg xl? and for vp8? flac?
Sometimes there are just no studies, no interested parties, to do everything from scratch, solving possible current fundamental problems. The fact that av1 has many codecs is nothing less than a miracle. But this does not mean that its the best of all possible
|
|
2025-07-09 09:11:06
|
libjxl is still getting better – are you saying WebP/VP8 has hit its ceiling?
|
|
|
DZgas Ж
|
|
spider-mario
well, maybe `tune=iq` for AVIF?
|
|
2025-07-09 09:12:52
|
not work in ffmpeg
|
|
|
|
afed
|
2025-07-09 09:16:37
|
even the same encoder at the beginning and after some time very different
vp9 was at first like 100x slower and worse quality, even considering it's still not very good, but such not very popular formats didn't last long, so people and developers quickly switched to other more promising ones, but there is still a lot of room for improvement
vp8 also, it was much, much worse on release, as was lossy webp, it only got better over time
x264 for avc made a big leap in quality, although even x264 was not immediately good, it took a long time
lame for mp3 etc
there are new more efficient or super fast encoders for png that didn't exist before, although it's a very old format where it seems hard to improve anything
|
|
|
DZgas Ж
|
|
gb82
libjxl is still getting better – are you saying WebP/VP8 has hit its ceiling?
|
|
2025-07-09 09:16:41
|
Webp is the main format of the Internet besides Jpeg. It is actively being improved. But one can say unnoticeably. Nothing global. vp8 is simply dead. It simply died right after the release of vp9 because the realtime preset makes the existence of vp8 meaningless
|
|
|
afed
even the same encoder at the beginning and after some time very different
vp9 was at first like 100x slower and worse quality, even considering it's still not very good, but such not very popular formats didn't last long, so people and developers quickly switched to other more promising ones, but there is still a lot of room for improvement
vp8 also, it was much, much worse on release, as was lossy webp, it only got better over time
x264 for avc made a big leap in quality, although even x264 was not immediately good, it took a long time
lame for mp3 etc
there are new more efficient or super fast encoders for png that didn't exist before, although it's a very old format where it seems hard to improve anything
|
|
2025-07-09 09:18:00
|
vp9 is still worse than hevc at the same video size and encoding speed. except for the realtime preset cpu 8 and minecrat
|
|
|
|
afed
|
2025-07-09 09:19:29
|
even if vp9 is worse than hevc, still the newer versions are better than the oldest ones
|
|
|
gb82
|
|
DZgas Ж
vp9 is still worse than hevc at the same video size and encoding speed. except for the realtime preset cpu 8 and minecrat
|
|
2025-07-09 09:19:32
|
libvpx* is worse
|
|
|
DZgas Ж
Webp is the main format of the Internet besides Jpeg. It is actively being improved. But one can say unnoticeably. Nothing global. vp8 is simply dead. It simply died right after the release of vp9 because the realtime preset makes the existence of vp8 meaningless
|
|
2025-07-09 09:19:59
|
WebP in general, or just libwebp?
|
|
|
DZgas Ж
|
|
gb82
libvpx* is worse
|
|
2025-07-09 09:20:05
|
and these are already facts, and will not change. the potential for development and improvement due to the prostate of the codec turned out to be not so much realizable after 10 years
|
|
|
gb82
|
2025-07-09 09:20:29
|
that’s actively disproven by eve-vp9
|
|
|
DZgas Ж
|
|
gb82
that’s actively disproven by eve-vp9
|
|
2025-07-09 09:21:00
|
great scam
|
|
|
gb82
|
2025-07-09 09:21:30
|
okay then, I don’t see this conversation going anywhere, I’m gonna leave it here 👋
|
|
|
DZgas Ж
|
|
gb82
okay then, I don’t see this conversation going anywhere, I’m gonna leave it here 👋
|
|
2025-07-09 09:22:38
|
lol what? you're just going to leave? have you seen the screenshots on eve's website? i saw them 5 years ago and they were claiming quality that AV1 still can't reach on its slowest preset
|
|
|
gb82
|
2025-07-09 09:23:47
|
not only have I seen the screenshots, I worked on eve myself
|
|
2025-07-09 09:24:23
|
I don’t feel like elaborating if you aren’t going to ask meaningful questions, so again, leaving it here
|
|
|
DZgas Ж
|
|
gb82
I don’t feel like elaborating if you aren’t going to ask meaningful questions, so again, leaving it here
|
|
2025-07-09 09:24:46
|
No thanks, it's a business, and their job is to sell their product, to foist it off. Never, never said: damn, why do we even need AV1 if there's eve-vp9 which is much better.
|
|
|
|
afed
|
2025-07-09 09:25:28
|
because eve-av1 is even better <:kekw:808717074305122316>
|
|
|
DZgas Ж
|
|
afed
because eve-av1 is even better <:kekw:808717074305122316>
|
|
2025-07-09 09:27:44
|
so is this rofl or trolling?
|
|
|
juliobbv
|
|
_wb_
Does the avif spec define how to upsample chroma?
|
|
2025-07-09 09:30:24
|
it doesn't, unfortunately
|
|
|
DZgas Ж
|
|
gb82
not only have I seen the screenshots, I worked on eve myself
|
|
2025-07-09 09:33:04
|
like "objective tests"
|
|
|
|
afed
|
|
DZgas Ж
so is this rofl or trolling?
|
|
2025-07-09 09:34:05
|
no, eve-av1 is better than eve-vp9, and again, formats and encoders are different things
even if eve-vp9 is better than open source av1 encoders, it doesn't mean eve-av1 can't be even better
|
|
|
DZgas Ж
|
|
DZgas Ж
like "objective tests"
|
|
2025-07-09 09:34:19
|
really a masterpiece image that i saw in the article about vvc. This is the peak
|
|
|
afed
no, eve-av1 is better than eve-vp9, and again, formats and encoders are different things
even if eve-vp9 is better than open source av1 encoders, it doesn't mean eve-av1 can't be even better
|
|
2025-07-09 09:36:55
|
ok ok. Let's do it this way:
I can admit that eve vp9 is better than libpv9
eve av1 is better than svt-av1
But what they show on the site and in tests is a lie. I have been working with this for too long to say -- no, this codec can't do that, no way, this is a lie to sell your product, this is false advertising and tests, this is business
|
|
|
|
afed
|
2025-07-09 09:40:29
|
although I also have no proof, but theoretically and also considering that open source encoders are usually not the best encoders (with some exceptions and because we are used to x264 being the best for a long time)
so why not, although there is always some marketing exaggeration, but it is not something impossible, vp9 and av1 are still very far from their efficiency limits
|
|
|
DZgas Ж
|
|
DZgas Ж
not work in ffmpeg
|
|
2025-07-09 09:45:15
|
<:SadCheems:890866831047417898>
|
|
|
afed
although I also have no proof, but theoretically and also considering that open source encoders are usually not the best encoders (with some exceptions and because we are used to x264 being the best for a long time)
so why not, although there is always some marketing exaggeration, but it is not something impossible, vp9 and av1 are still very far from their efficiency limits
|
|
2025-07-09 09:46:47
|
> vp9 and av1 are still very far from their efficiency limits
This is blind faith
|
|
2025-07-09 09:47:29
|
x264 didn't become the best yesterday, it's been like that for about 10 years
|
|
|
A homosapien
|
2025-07-09 09:56:40
|
That's the exception, not the rule. Most formats used today are not using 100% of their potential.
|
|
|
|
afed
|
|
DZgas Ж
x264 didn't become the best yesterday, it's been like that for about 10 years
|
|
2025-07-09 10:02:26
|
i said the same thing, encoders and even decoders have a very large, even almost infinite potential for improvement
and if the formats are modern, then this is still a very early stage (vp9, av1 are very recent, modern formats)
and even now and in another 50 years, it is still possible to improve some old formats, even jpeg can still be improved even more, it is more difficult each time, but possible
i do not even take ai, for example for a decoders, because it is an endless abyss of possibilities
|
|
|
NovaZone
|
|
DZgas Ж
like "objective tests"
|
|
2025-07-09 10:07:19
|
vvc <:kekw:808717074305122316> forever the meme codec
|
|
2025-07-09 10:08:08
|
slower than aom and barely anything native can even play it
|
|
|
jonnyawsom3
|
|
DZgas Ж
x264 didn't become the best yesterday, it's been like that for about 10 years
|
|
2025-07-09 10:09:32
|
Region Of Interest encoding my beloved
|
|
|
DZgas Ж
|
|
spider-mario
you just immediately dismissed it
|
|
2025-07-09 10:09:39
|
original | my fork | your recommendation (aom -s 0 tune=iq)
|
|
2025-07-09 10:10:29
|
Well, what can I say, yes, there are details that my fork doesn't have. And there are artifacts that my don't have.
|
|
2025-07-09 10:12:08
|
I see that in this mode, unlike SSIM, AOM try to preserve more low frequencies, at a cost that I consider unacceptable.
|
|
|
NovaZone
|
2025-07-09 10:12:38
|
meanwhile proper avif with native libs from xl-convert
|
|
2025-07-09 10:13:58
|
444/q80/bd-10/regular tune
|
|
|
DZgas Ж
|
|
NovaZone
444/q80/bd-10/regular tune
|
|
2025-07-09 10:15:31
|
420
|
|
|
NovaZone
|
2025-07-09 10:16:15
|
blame discord for that
|
|
2025-07-09 10:16:40
|
|
|
2025-07-09 10:18:43
|
point is avif ='s and sometimes even surpasses jxl
|
|
|
DZgas Ж
|
2025-07-09 10:18:52
|
I see that tune=iq is better than just AOM . but it is not better than my fork. So I am still not happy
|
|
|
NovaZone
|
|
NovaZone
meanwhile proper avif with native libs from xl-convert
|
|
2025-07-09 10:19:18
|
bruh its dang near identical to the og img wdym 🤣
|
|
2025-07-09 10:19:26
|
without tune=iq
|
|
|
spider-mario
|
|
NovaZone
point is avif ='s and sometimes even surpasses jxl
|
|
2025-07-09 10:19:56
|
independently of the truth value of that statement, I’m not sure a single screenshot with no bitrate information does much to corroborate it
|
|
|
DZgas Ж
|
|
spider-mario
independently of the truth value of that statement, I’m not sure a single screenshot with no bitrate information does much to corroborate it
|
|
2025-07-09 10:22:06
|
|
|
|
NovaZone
|
|
spider-mario
independently of the truth value of that statement, I’m not sure a single screenshot with no bitrate information does much to corroborate it
|
|
2025-07-09 10:24:21
|
true (but try it and see metrics) have noticed that jxl tends to smooth just as much if not more than avif depending on the content, img viewer, instance-to-instance lib imps etc
|
|
|
DZgas Ж
|
2025-07-09 10:24:26
|
Nah, I'd won
|
|
|
NovaZone
|
|
NovaZone
true (but try it and see metrics) have noticed that jxl tends to smooth just as much if not more than avif depending on the content, img viewer, instance-to-instance lib imps etc
|
|
2025-07-09 10:25:29
|
doesn't help that discord converts basically everything to webp 420
|
|
|
jonnyawsom3
|
|
NovaZone
true (but try it and see metrics) have noticed that jxl tends to smooth just as much if not more than avif depending on the content, img viewer, instance-to-instance lib imps etc
|
|
2025-07-09 10:36:01
|
Arguably that's been happening since v0.9, when encoder heuristics were replaced and larger VarDCT block sizes became more common
|
|
|
NovaZone
|
2025-07-09 10:36:36
|
yep constant issue with the forks of av1
|
|
2025-07-09 10:36:59
|
superblock errors i like to call em 🤣
|
|
|
DZgas Ж
|
|
NovaZone
superblock errors i like to call em 🤣
|
|
2025-07-09 10:38:24
|
funny, this is exactly what I was solving as the main problem of my fork
|
|
|
jonnyawsom3
|
2025-07-09 10:38:40
|
VarDCT block difference https://discord.com/channels/794206087879852103/1278292301038227489/1297641489240817734
SSIMULACRA2 scores https://discord.com/channels/794206087879852103/1278292301038227489/1309307664387276820
|
|
|
NovaZone
|
2025-07-09 10:39:25
|
such fine art xD
|
|
|
DZgas Ж
|
|
DZgas Ж
|
|
2025-07-09 10:39:35
|
<@604964375924834314>I don't know in general... here are my arguments, and a picture, can someone create AVIF of better quality than mine? I don't know... AOM is not capable, even with tune=iq
|
|
|
NovaZone
|
|
NovaZone
meanwhile proper avif with native libs from xl-convert
|
|
2025-07-09 10:40:18
|
it clearly is tho
|
|
2025-07-09 10:41:41
|
even on weird tests kek
|
|
|
jonnyawsom3
|
|
NovaZone
such fine art xD
|
|
2025-07-09 10:42:13
|
Seems to me like it's more biased to "Are there identical block sizes that can be merged" rather than "Are these blocks correlated" since v0.9
|
|
|
DZgas Ж
|
|
VarDCT block difference https://discord.com/channels/794206087879852103/1278292301038227489/1297641489240817734
SSIMULACRA2 scores https://discord.com/channels/794206087879852103/1278292301038227489/1309307664387276820
|
|
2025-07-09 10:42:40
|
💀
|
|
|
jonnyawsom3
|
2025-07-09 10:43:48
|
We planned to do some tests reverting the change or tweaking values to their previous states, but we've been too busy lately
|
|
|
NovaZone
|
|
Seems to me like it's more biased to "Are there identical block sizes that can be merged" rather than "Are these blocks correlated" since v0.9
|
|
2025-07-09 10:44:47
|
yee can kinda see that happen in my above weird example
|
|
2025-07-09 10:45:08
|
altered the top left greens color
|
|
|
jonnyawsom3
|
2025-07-09 10:46:14
|
Encoding that image as a JXL might actually show another issue with the encoder lately. Desaturation in high frequency vibrant colors
The AC of the B needs to be boosted like Jon said previously, but that requires making new quant tables for the first time instead of using the spec defaults
|
|
|
DZgas Ж
|
|
We planned to do some tests reverting the change or tweaking values to their previous states, but we've been too busy lately
|
|
2025-07-09 10:46:32
|
Am I right in understanding that there is no single general testing after each commit? That is, there is just no actual tracking like "libjxl versions quality graph" built into the development?
|
|
|
NovaZone
|
|
Encoding that image as a JXL might actually show another issue with the encoder lately. Desaturation in high frequency vibrant colors
The AC of the B needs to be boosted like Jon said previously, but that requires making new quant tables for the first time instead of using the spec defaults
|
|
2025-07-09 10:47:38
|
yea can see it primarily in the pure noise at bottom right
|
|
2025-07-09 10:48:05
|
but def the top colors as well
|
|
|
jonnyawsom3
|
|
DZgas Ж
Am I right in understanding that there is no single general testing after each commit? That is, there is just no actual tracking like "libjxl versions quality graph" built into the development?
|
|
2025-07-09 10:49:10
|
They were based on your complains about image quality, but on that fateful day, you decided not to test... https://discord.com/channels/794206087879852103/794206170445119489/1159227239024566394
|
|
|
DZgas Ж
|
|
Encoding that image as a JXL might actually show another issue with the encoder lately. Desaturation in high frequency vibrant colors
The AC of the B needs to be boosted like Jon said previously, but that requires making new quant tables for the first time instead of using the spec defaults
|
|
2025-07-09 10:49:13
|
I've been on the server for 3 years now and this is the problem that is the most important, but for some reason no one sees it. What's the elephant in the room. Am I the only one who sees it?
|
|
|
jonnyawsom3
|
2025-07-09 10:50:24
|
I can notice it too, but apparently others in the server are less sensitive which is interesting. Jyrki asked me to have a call to discuss how to test the desaturation, but life has just been too busy to sit down and make it happen
|
|
|
DZgas Ж
|
2025-07-09 10:51:09
|
I mean literally every image encoded in JPEG XL vardct EVER has a problem with colors being desaturated compared to the original. All of them. And no one sees it?
|
|
|
jonnyawsom3
|
2025-07-09 10:51:34
|
https://github.com/libjxl/libjxl/issues/3616
|
|
|
DZgas Ж
|
2025-07-09 10:51:54
|
Everything that was encoded today and day 4 years ago.
|
|
|
NovaZone
|
|
DZgas Ж
I mean literally every image encoded in JPEG XL vardct EVER has a problem with colors being desaturated compared to the original. All of them. And no one sees it?
|
|
2025-07-09 10:52:05
|
weird cause technically doesnt jxl support a higher color gamut than avif?
|
|
|
DZgas Ж
|
|
NovaZone
weird cause technically doesnt jxl support a higher color gamut than avif?
|
|
2025-07-09 10:54:00
|
in fact, avif also suffers from this disease. but it is much more invisible, almost not there, but it is there. And here I have no answer. Because in Webp this problem is completely absent. But I observed similar effects in jpeg and jpeg xr
|
|
2025-07-09 10:55:05
|
https://discord.com/channels/794206087879852103/794206170445119489/1209828125450702908
|
|
2025-07-09 10:55:19
|
UV
|
|
|
jonnyawsom3
|
|
NovaZone
weird cause technically doesnt jxl support a higher color gamut than avif?
|
|
2025-07-09 10:55:40
|
Internally it's 32float and an absolute XYB colorspace, but the quantization is too harsh on the B channel, causing the values to raise and make the image shift towards white
|
|
|
DZgas Ж
|
2025-07-09 10:57:25
|
it's a bit funny that the problem is easy to solve, just increase the quantizer for the UV color plane and the artifacts will become unnoticeable... wait, you have XYB..... ohuh
|
|
2025-07-09 10:58:39
|
the problem is that fading and a general drop in color quality is observed very early, not when there is very low compression, but right at very high bitrates like d 1 or even d 0.5
|
|
2025-07-09 11:00:10
|
https://cdn.discordapp.com/attachments/794206170445119489/1210507187320000553/jxl_animation.gif?ex=687025eb&is=686ed46b&hm=3cedd3f4f693b79756fabaa520c31ff47dcd9e2e51f4332558d2c46b54097313&
|
|
|
jonnyawsom3
|
|
Internally it's 32float and an absolute XYB colorspace, but the quantization is too harsh on the B channel, causing the values to raise and make the image shift towards white
|
|
2025-07-09 11:01:28
|
Here's the issue demonstrated https://discord.com/channels/794206087879852103/794206170445119489/1375334116102242374. The link a few messages above the comparison has a good demo of XYB, where you can see how moving the B channel slightly can quickly make it lighter
|
|
|
DZgas Ж
|
|
They were based on your complains about image quality, but on that fateful day, you decided not to test... https://discord.com/channels/794206087879852103/794206170445119489/1159227239024566394
|
|
2025-07-09 11:03:00
|
call me anytime, i'm always ready to take part in it, i want to live in the future <:jxl:1300131149867126814> <:Stonks:806137886726553651>
|
|
|
jonnyawsom3
|
2025-07-09 11:03:54
|
The benchmarks said it was an improvement in all metrics, apart from SSIMULACRA2... And our eyes...
|
|
|
A homosapien
|
2025-07-09 11:04:24
|
maybe we should swap out butteraugli with ssimulacra2 for the internal metric for libjxl
|
|
2025-07-09 11:04:35
|
I remember somebody saying it was doable
|
|