JPEG XL

Info

rules 57
github 35276
reddit 647

JPEG XL

tools 4225
website 1655
adoption 20712
image-compression-forum 0

General chat

welcome 3810
introduce-yourself 291
color 1414
photography 3435
other-codecs 23765
on-topic 24923
off-topic 22701

Voice Channels

General 2147

Archived

bot-spam 4380

on-topic

Whatever else

fab
HCrikki is there a way to deliberately corrupt images in a predictable way? curious as to how error resilience and correction works for some formats, notably jpg (mozjpg and jpegli), webp, aivif and jxl
2024-04-02 11:09:00
Did it know with my cousin neomelodic song but I will not tell you what I did
2024-04-02 11:09:13
Probably this encoder would be released and flessible
Quackdoc
username someone did some tests back in 2021 https://www.ctrl.blog/entry/bitrot-avif-jxl-comparison.html
2024-04-02 11:29:48
a little off topic, but I hate pages that are layed out like this, so much dead space
fab
2024-04-03 02:50:25
I have a bit of warm head stomach so I stay now 6 minutes to unlock some new JXXL images
Demiurge
2024-04-03 06:50:05
https://lzip.nongnu.org/xz_inadequate.html
yurume
2024-04-03 06:57:39
some legit but relatively minor criticisms, mixed with some "what?" claims.
2024-04-03 06:58:02
honestly speaking lzip is not good either
2024-04-03 06:58:31
in some sense, the core design decision of xz mirrors that of 7z, and xz is in fact significantly simpler than 7z
2024-04-03 06:59:30
so the design has to be evaluated under the use cases imagined, but the document just "assumes" those use cases
spider-mario
2024-04-03 07:38:42
I'm curious – why is lzip not good?
2024-04-03 07:39:05
which ones are the “what” claims?
yurume
2024-04-03 07:39:28
I have spent too much time to elaborate this on HN (haha), so: https://news.ycombinator.com/item?id=39873122
spider-mario which ones are the “what” claims?
2024-04-03 07:41:27
the "what" factor is mostly about corruption handling, which is a technically correct but very marginal criticism for compression formats.
Tirr
username someone did some tests back in 2021 https://www.ctrl.blog/entry/bitrot-avif-jxl-comparison.html
2024-04-03 07:41:36
for most of the jxl images, impact of a single bit filp is likely to be isolated within a pass group or an LF group afaik (when errors are ignored)
yurume
2024-04-03 07:42:05
(for me, corruption resistance is something that is good to have for compression formats if can be added without much cost, but is never mandatory.)
Tirr
2024-04-03 07:43:23
errors will propagate further for progressive lossless (aka squeezed) images
Demiurge
2024-04-03 07:44:03
Seems like a pretty sound article to me.
2024-04-03 07:44:21
And comparing to bzip2 is pretty interesting
yurume
2024-04-03 07:44:35
technically not incorrect, but too marginal to me.
2024-04-03 07:45:18
and I felt that, after analyzing the lzip format, that incompleteness contributed to the design of lzip as well
2024-04-03 07:47:01
there are many questionable statements as well, like this:
2024-04-03 07:47:06
> A LZMA stream is a check sequence in itself, and large errors seem less probable to escape detection than small ones.
2024-04-03 07:47:42
this is in general not true, and the truth of this statement will greatly depend on the specifics
2024-04-03 07:48:38
I think this can be reasonably said for, for example, DEFLATE where its tree construction step is quite redundant and can be filtered out
2024-04-03 07:49:59
but I can comfortably say so because I'm aware of a library that makes use of this fact: https://github.com/mxmlnkn/rapidgzip
2024-04-03 07:51:09
the rapidgzip paper comes with a very detailed analysis of such "unlikely" DEFLATE trees, and successfully argues that speculative decompression at all possible start bit positions can be actually made work
2024-04-03 07:51:59
finding such filterable feature from more modern formats would be much harder, because that naturally means more wasted information entropy
spider-mario
2024-04-03 10:19:47
I don’t know about zstd generally being efficient enough; there are some cases where it seems to be significantly beaten by lzma
2024-04-03 10:19:55
(or by brotli)
2024-04-03 10:20:12
too bad brotli still lacks tar integration
2024-04-03 10:20:27
(lz, xz and zstd have it)
fab
2024-04-03 10:31:06
Also probably grain synth has to be tried on jpeg xl
2024-04-03 10:40:16
That's my first attempt best to just forgot it
2024-04-03 10:41:29
2024-04-03 10:58:27
I can't see anything when Im at home i download Libjxl ♎
lonjil
spider-mario I don’t know about zstd generally being efficient enough; there are some cases where it seems to be significantly beaten by lzma
2024-04-03 12:20:42
what are you responding to?
2024-04-03 12:29:34
I thought everyone had already stopped using xz due to it being slow
2024-04-03 12:34:09
e.g. Arch <https://archlinux.org/news/now-using-zstandard-instead-of-xz-for-package-compression/>: > zstd and xz trade blows in their compression ratio. Recompressing all packages to zstd with our options yields a total ~0.8% increase in package size on all of our packages combined, but the decompression time for all packages saw a ~1300% speedup.
yurume
2024-04-03 12:53:47
Maybe I should... Thank you for the pointer BTW.
spider-mario
lonjil what are you responding to?
2024-04-03 06:17:01
to https://news.ycombinator.com/item?id=39873122
yoochan
2024-04-03 07:13:37
Thanks for the link, I swam back to the main thread, read most of it and still love lzip 😍 (and brotli)
2024-04-04 10:03:15
google invested in jpeg xl too... google disproportionate ability to push for new standards is a fact which can been attested : compression (brotli, snappy), protocols (SPDY then HTTP/2 and /3), image and video formats. Owning two monopolistic windows on the webternet : android and chrome, they can steer the boat their way, and they will
yurume
2024-04-04 10:14:14
if they will steer the boat in any way, at least they should make it more smooth, not more rough...
Quackdoc
yoochan google invested in jpeg xl too... google disproportionate ability to push for new standards is a fact which can been attested : compression (brotli, snappy), protocols (SPDY then HTTP/2 and /3), image and video formats. Owning two monopolistic windows on the webternet : android and chrome, they can steer the boat their way, and they will
2024-04-04 10:15:36
It doesn't help when they're only competition. Real competition are useless pieces of trash.
2024-04-04 10:16:06
ios doesn't *really* compete with android in the same way that firefox competes with chrome
yurume
2024-04-04 10:17:32
agreed: we want diversity and/or plurality, not exactly competition
Quackdoc
2024-04-04 10:18:40
this is why I want servo to succeed so badly, since it can be a real competitor since its very much oriented towards a community project
yoochan
2024-04-04 10:18:52
what was a big hit to diversity was when EVERY browsers (opera, edge, vivaldi, etc.) all went to use blink
Quackdoc
2024-04-04 10:19:01
~~also it can load some porn sites now~~
lonjil
2024-04-04 10:19:24
it couldn't before? 🤨
2024-04-04 10:19:32
Then Servo is way further behind than I imagined
HCrikki
2024-04-04 10:20:29
ladybird progresses ridiculously fast and well too
yurume
2024-04-04 10:20:30
if my understanding is correct, Servo was something like 80% done at every level, but the remaining 20% requires yet another 80% of time each
2024-04-04 10:20:40
which is the reality of web standards
Quackdoc
lonjil it couldn't before? 🤨
2024-04-04 10:21:27
Servo has two layout engines. The old engine was much more further along, but technically interior than the new engine, so the current maintainers decided to deprecate the old engine and focus on the new engine because it is technically superior and will be better in the long run.
yurume
2024-04-04 10:21:43
it is, well, a standard and one that has been written pretty well, and you can even implement one or two perfectly, but implementing 100s of them means a lot of inevitable unexplored edge cases
lonjil
yurume if my understanding is correct, Servo was something like 80% done at every level, but the remaining 20% requires yet another 80% of time each
2024-04-04 10:22:31
Yeah. When some Servo components were integrated into Gecko, what made it take multiple years before they could make them enabled by default was that they didn't support the web properly, and didn't support all hardware properly.
yurume
2024-04-04 10:22:38
plurality is required solely for exploring a majority of them after all
HCrikki
2024-04-04 10:22:41
engines can focus on whats in actual use rather than endlessly chase after chrome's weekly api additions*
yurume
2024-04-04 10:23:20
these are for most cases long tails meaningful for some users, but many users have their own long tails 😦
2024-04-04 10:23:37
(a smaller portion of them of course include things like FLoC...)
Quackdoc
lonjil Yeah. When some Servo components were integrated into Gecko, what made it take multiple years before they could make them enabled by default was that they didn't support the web properly, and didn't support all hardware properly.
2024-04-04 10:23:40
its worth noting that servo still shares a lot of that same code like webrender and stylo
yurume
2024-04-04 10:24:52
so I think a focused browser actually means something more like a tailor-made set of browsers than a single well-made browser
2024-04-04 10:25:22
which would have been possible if there are less than 100s of standards to implement 😦
Quackdoc
yurume so I think a focused browser actually means something more like a tailor-made set of browsers than a single well-made browser
2024-04-04 10:25:44
The issue is you can't really have A tailor-made browser, they don't really work like that. Unless you have one very specific app. But at that point, you're sacrificing so much, it's not worth the effort.
yurume
2024-04-04 10:26:04
like, in the early day of WWW, there was a web browser written in *Python*
2024-04-04 10:26:23
https://en.wikipedia.org/wiki/Grail_(web_browser)
Quackdoc The issue is you can't really have A tailor-made browser, they don't really work like that. Unless you have one very specific app. But at that point, you're sacrificing so much, it's not worth the effort.
2024-04-04 10:27:15
yup, I meant that it would be the real limiting factor for alternative browser engines
yoochan
2024-04-04 10:27:18
client side python ! my dream !
yurume
2024-04-04 10:27:56
LadyBird is an exciting project but I don't expect too much from that either, there is a very steep road ahead
yoochan
2024-04-04 10:29:02
if the energy spent on ladybird could be spent on servo it would be nice 😄
username
2024-04-04 10:29:55
I still think it's interesting that [NetSurf](https://www.netsurf-browser.org/) supports JPEG XL
yurume
2024-04-04 10:30:23
the last "independent" browser engine with a substantial coverage in my mind has been, by the way, that of the OmniWeb
2024-04-04 10:32:38
hmm, my recollection was a bit flaky, was that OmniWeb or iCab? I'm not sure now...
2024-04-04 10:33:02
anyway, I think one of the last independent engines was written by two people where one dealt with layouts and another dealt with scripting
2024-04-04 10:34:23
I think that point was the most productive point: you can implement the most of actually usable web browsers after, say, 5 person-year of work, which is not a small task but doable if you had a vision
2024-04-04 10:34:51
now it's more like >1000 person-year, I can't even estimate the lower bound
Quackdoc
2024-04-04 10:36:12
I still think servo is the most promissing browser, partially because of how open it is to the community work, but mostly due to how easy it is to actually hack on it. this is a list of the "sys" packages, which is the non rust components, it is a really small ammount of stuff, and the vast majority of it is platform enablement stuff
2024-04-04 10:37:05
the barrier to contribution is very low
2024-04-04 10:38:41
servo uses image-rs for decoding so getting servo working with JXL was really easy
lonjil
2024-04-04 11:09:35
I thought r/jpegxl and Hacker News had the worst commentary on this announcement, but of course Phoronix manages to be infinitely worse.
Cacodemon345
2024-04-04 11:16:54
Phoronix is full of Linux fanboys.
Quackdoc
Cacodemon345 Phoronix is full of Linux fanboys.
2024-04-04 11:21:23
i mean, yeah ofc. its an opensource/linux news forum
2024-04-04 11:21:56
thats like saying "A candy store is full of people with a sweetooth"
fab
Quackdoc i mean, yeah ofc. its an opensource/linux news forum
2024-04-04 11:59:07
Well said
spider-mario
2024-04-04 10:06:17
https://twitter.com/ccwscott/status/1773431658798289335
2024-04-04 10:08:18
(original: https://www.yogli.net/tigersuit?pgid=jlaqoedt-93c32eaa-a430-49b6-bc0f-d4607b0b63c5 )
CQ | (☞゚ヮ゚)☞
lonjil I thought r/jpegxl and Hacker News had the worst commentary on this announcement, but of course Phoronix manages to be infinitely worse.
2024-04-04 10:11:26
Phoronix always manages to have the most incompetent takes on new projects, it's like some natural law
lonjil
2024-04-04 10:16:48
indeed
Nova Aurora
Quackdoc I still think servo is the most promissing browser, partially because of how open it is to the community work, but mostly due to how easy it is to actually hack on it. this is a list of the "sys" packages, which is the non rust components, it is a really small ammount of stuff, and the vast majority of it is platform enablement stuff
2024-04-05 07:20:01
A large part of it's self contained nature is that it was the first non-trivial rust software written, making it unsually portable and self-contained for a rust codebase
Quackdoc
Nova Aurora A large part of it's self contained nature is that it was the first non-trivial rust software written, making it unsually portable and self-contained for a rust codebase
2024-04-05 07:45:32
I wouldn't say it's unusually portable. Most rust applications are more or less the same now. Some ofc rely on non rust libraries. but I wouldnt even say it's the majority.
yoochan
spider-mario https://twitter.com/ccwscott/status/1773431658798289335
2024-04-05 08:21:21
for a lena replacement, my favorite remains this one : https://mortenhannemose.github.io/lena/
lonjil
Nova Aurora A large part of it's self contained nature is that it was the first non-trivial rust software written, making it unsually portable and self-contained for a rust codebase
2024-04-05 08:47:49
Most Rust devs try to minimize non Rust dependencies IME.
Demiurge
spider-mario https://twitter.com/ccwscott/status/1773431658798289335
2024-04-07 09:47:59
How does soy always give people the same face
lonjil
2024-04-07 09:48:48
the fuck are you talking about
spider-mario
2024-04-07 09:51:18
I doubt soy has that much power
lonjil
2024-04-07 09:52:59
if soy gave everyone the same face, like 25% of the world's population would have the same face
spider-mario
2024-04-07 10:07:56
some racists will claim it to be the case
lonjil
2024-04-07 10:11:00
yea :/
Demiurge
2024-04-08 07:28:04
I was kinda joking lol, I am a fan of deep fried tofu, soy sauce, etc
2024-04-08 07:29:05
But people call that particular face "soy face" and I don't know what the true cause is 😂
2024-04-08 07:29:37
They all look exactly like that
2024-04-08 07:31:08
That unhinged jaw look, eyes popping
2024-04-08 07:37:56
This guy looks much more normal by comparison
2024-04-08 07:40:32
He isn't about to detach his jaw
_wb_
yurume agreed: we want diversity and/or plurality, not exactly competition
2024-04-08 07:45:01
This is a good point. Competition leads to winners and losers, and often there are Matthew effects that make things converge to a monopoly (or oligopoly) situation. What is needed is not "more competition", but more diversity and maybe even more importantly: a more democratic decision processes. It is OK not to have dozens of different web engines: it's enough if there is one good one that is steered in a democratic/community way, not in a corporate/bureaucratic way. We currently don't have that though: Chrome/ium is owned by Google gatekeepers, Safari/Webkit is owned by Apple, Firefox by Mozilla, and they all claim to take community input seriously (and to some extent they do), but ultimately the gatekeepers have the final say and if they choose to ignore the community there is no way to force them to change their mind — they are not elected, cannot be held accountable, and do not have to motivate or explain their decisions.
Demiurge
2024-04-08 08:27:57
Owned by Mozilla? lol, how independent are they?
2024-04-08 08:28:58
We don't even know how they come to their decisions
2024-04-08 08:29:05
Or who
2024-04-08 08:30:27
Why are there so few browser engines? Because it's unbelievably difficult and complex to maintain one. Why? Because the modern web is a broken POS by design
2024-04-08 08:31:07
It's almost as if it's designed in a way that you need a multimillion dollar company
2024-04-08 08:32:17
Because of how inherently insecure and badly designed web standards are
2024-04-08 08:33:07
Javascript should be off-by-default and web pages should have to request extra privileges to run scripts on your computer, at the bare minimum.
2024-04-08 08:33:29
Why that isn't common sense, idfk
HCrikki
2024-04-08 08:33:53
ton of features now handled by engines used to be part of operating systems
2024-04-08 08:36:04
serenityos' ladybird is kicking that impossibru nonsense excuses with ridiculously fast and ultralowcost development
Demiurge
2024-04-08 08:36:10
Just like asking permission to access your microphone or GPS data, there ought to be a permission dialog for JS
2024-04-08 08:36:29
If web standards cared about privacy and security that would have happened decades ago
2024-04-08 08:36:59
But I think they want to keep the web horrible so that only multimillion dollar companies can be gatekeepers
HCrikki serenityos' ladybird is kicking that impossibru nonsense excuses with ridiculously fast and ultralowcost development
2024-04-08 08:37:41
I heard good things about Ladybird and SerenityOS
2024-04-08 08:40:28
I also think part of the problem with web standards is a general public lack of awareness of the inherent design issues with the browser security model
2024-04-08 08:42:26
Most people only care about adding extra convenience features like JS and CSS additions
2024-04-08 08:43:18
Not re-thinking the whole model of security and user consent
2024-04-08 08:45:33
Users are expected to not give meaningful consent when trying to simply read and browse
HCrikki
2024-04-08 08:46:05
a lot of complexity could be chopped off if the most popular web services simply moved to their own installable apps on desktop/mobile. theyd still be powered by an embedded browsers but at least its theirs to develop at their dime
Demiurge
2024-04-08 08:46:08
Websites expect to be able to do all kinds of things users wouldn't consent to without having to gain permission first
2024-04-08 08:46:46
And the website totally breaks if that feature is disabled
2024-04-08 08:47:08
That's a problem with web standard design and expectations
2024-04-08 08:47:54
Only way to fix it is to add standard ways of obtaining consent and restrict what web pages can do without consent
HCrikki
2024-04-08 08:48:48
a lot of basic interactions should be accessible through cli
2024-04-08 08:49:16
purely visual interaction will always be bloated
2024-04-08 08:50:24
modern webdev is messed because this added complexity means job security
Demiurge
2024-04-08 08:50:56
Yes, just because I want to browse somewhere and read something doesn't mean I want to give the website permission to run arbitrary scripts on my PC and analyze the type of environment I'm running and report back to mother base
2024-04-08 08:51:26
It's called hyper TEXT
HCrikki
2024-04-08 08:51:35
instead of using simple ways of obtaining the result you want, you gotta code everything yourself, document nothing, use [current framework of the year]
Demiurge
2024-04-08 08:51:39
Not hyper violation of my PC
2024-04-08 08:52:01
Or phone or whatever
2024-04-08 08:52:43
Hyper violation of my battery life too
HCrikki
2024-04-08 08:53:02
its only become an issue cuz chromium kept adding new stuff and google search/webmasters/lighthouse demand everyone urgently adopt it
Demiurge
2024-04-08 08:53:34
Get permission first at least, idk why that's not a standard expectation for everything in life, consent
HCrikki
2024-04-08 08:54:03
a slower release cycle like safari' was perfectly fine and kept the web taking its time evolving without anyone burning out or other browsers chasing after a moving target always rocketing away
Demiurge
2024-04-08 08:54:18
How did the web get so fecked up?
username
2024-04-08 08:56:25
I think it would be nice if there was just a long period of no (or at least minimal amount) new web specs, or a restriction on the amount and complexity of new specs each year
2024-04-08 08:57:01
because iirc there's still a bunch of things/specs from over 10 years ago that only some browsers support today
HCrikki
2024-04-08 08:57:22
chrome is google's 'superapp'. ship inside chrome what you want exclusive, store in chromium what you want massively deployed
2024-04-08 08:57:49
chromium and youtube should be taken out from google's control and fully independant
username
username because iirc there's still a bunch of things/specs from over 10 years ago that only some browsers support today
2024-04-08 08:58:40
would be nice if browsers actually had time to reach parity rather then having to chase new things every year.
HCrikki
2024-04-08 08:58:41
this mess is only possible when web services also control where theyre delivered
2024-04-08 08:59:48
about current tracking, we had concerns the moment chrome initially shipped - at the time, we just imagined the problem would be chrome integrating google analytics so that "runs best on chrome" sites would be lightweight while firefox would be served the bloated javascripts
Demiurge
username I think it would be nice if there was just a long period of no (or at least minimal amount) new web specs, or a restriction on the amount and complexity of new specs each year
2024-04-08 10:17:53
A lot of the time the new features are helpful and obvious additions that get rid of worse alternatives like bloated javascript "frameworks"
HCrikki
2024-04-08 10:19:19
frameworks are optional code. merging their functionalty inside browsers makes them bloated unmaintainable blackholes
2024-04-08 10:21:23
that competing browser makers feel forced to fork as is or made simple derivatives of
2024-04-08 10:22:46
mozilla messed its own browser similarly, coupling the engine and browser code in an unseparable all or nothing package that prevents the creation of gecko-powered browsers that reuse an existing shared gecko engine package
2024-04-08 10:25:16
in the IE era, we had tons of 'IE shells' that were comparatively simple to maintain and improve and nobody needed to think about the engine internals as long as it wasnt an ancient Trident version
Demiurge
2024-04-08 10:38:28
A lot of the additions make things simpler.
2024-04-08 10:39:39
But most of the time it does increase the amount of work for browser developers unless it replaces/removes old crap
2024-04-08 10:39:59
Directly I mean
yurume
2024-04-11 05:19:16
Highway on Rust thread, following the comment by veluca:
spider-mario
2024-04-16 05:00:10
SIMD apparently coming natively to Java: https://coderoasis.com/java-23-new-features/
Nova Aurora
spider-mario SIMD apparently coming natively to Java: https://coderoasis.com/java-23-new-features/
2024-04-17 05:54:21
Did WASM SIMD come before Java SIMD?
190n
2024-04-17 06:13:22
wasm simd is widely available so i guess so
Tirr
2024-04-17 06:41:35
jxl-oxide demo also uses wasm simd https://jxl-oxide.tirr.dev/demo/index.html
HCrikki
2024-04-17 01:25:17
is it possible for an encoder to perform against a number of passes? like, instead of generating one final output and serving the result, consider what the quality would be after say 30 generations reencodes using the same parameters
2024-04-17 01:25:47
figured jpg is low complexity enough it could be feasible and that could be one way for image farms to reduce generational loss even if they stuck to jpg
2024-04-21 06:21:09
someone made an updated visual comparator for image codecs that includes latest versions of everything and jpegli
2024-04-21 06:24:32
some first impressions like in for anime-style images were formed based on ancient code so maybe better to reference it in place of the old one that wasnt updated since forever https://afontenot.github.io/image-formats-comparison/
spider-mario
2024-04-21 10:38:20
it’s not decoded by jpegli, is it?
Jyrki Alakuijala
2024-04-22 05:02:43
looks nice
_wb_
2024-04-23 08:39:02
I forgot how FLIF can do a reasonable job at lossy, for a lossless codec: https://afontenot.github.io/image-formats-comparison/#abandoned-factory&FLIF=s&MOZJPEG=s
jonnyawsom3
2024-04-23 12:21:19
Interesting how it adds a lot of 'specks' around fine details
_wb_
2024-04-23 01:12:42
that's also how its progressive passes look like: since it always only encodes actual sample values (no frequency transform whatsoever, just funky interlacing), you get basically something like nearest neighbor resampling, with all the aliasing issues that brings but also more "crispness" than the usual blur you get from chopping off the high frequencies after a frequency transform
Deleted User
2024-04-23 01:28:07
Hello, i am writing c code on lzss compression using hash table string matching approach. can i ask about code help here?
_wb_
2024-04-23 01:30:46
don't ask to ask, just ask 🙂 no guarantees that there will be an answer but at least it saves a roundtrip 🙂
Deleted User
2024-04-23 01:32:15
okay thanks, i will let you know!
2024-04-23 01:34:20
i am looking for simple code for lzss compressor which uses hash table to find match. anyone here has experience with writing LZ family of compressors ?
HCrikki
2024-04-23 05:47:34
about above, do the results for jpegli and jxl look proper? idk why but i felt they shouldve had better results. any flaw in the conversion method or more appropriate way to generate results, like decoding jpgs using jpegli instead of native browser decode then converting that to png?
a goat
2024-04-24 06:55:27
What would be the best method for taking the sRGB colorspace and sorting it all into 256 luminance values that, as a whole, do not demonstrate a color shift when each color sharing the same value is placed next to one another. OKHSV does what I need well, but I'm hoping for the ability to further push the perceptual luminance farther apart. I was thinking about multiplying the value in OKHSV by the saturation and sort the colorspace that way, as highly saturated colors tend to have a higher luminance, but that didn't work
2024-04-24 07:02:42
I only need the 2^16 colors that share the same luminance to not hold any noticeable color shift when they're chosen randomly and placed close to one another, but they don't need to actually contain as rigorous of a chroma balance as OKHSV has
_wb_
2024-04-24 07:03:20
Did you try the L of CIELab?
2024-04-24 07:04:15
Your assumption that among the 2^24 colors in 8-bit sRGB there are 2^16 colors sharing the same luminance for 256 luminance values, is a wrong assumption
2024-04-24 07:05:14
There are way more colors per luminance level in the mid-luminance range than there are in the darks or in the brights
2024-04-24 07:05:47
For 0 luminance there is only one color: perfect black. For max luminance there is only one color: perfect white.
a goat
2024-04-24 07:06:09
Yes, I noticed there's a significantly higher distribution of luminance values for some values, but I'm not super concerned with that
2024-04-24 07:07:43
As long as they don't differ too much, I'd happily accept some variation in actual luminance, though to what amount I unfortunately don't have a concrete figure to give
_wb_
2024-04-24 07:07:49
Tirr
2024-04-24 07:08:59
i think there's interactive figure of oklab
_wb_
2024-04-24 07:15:35
you cannot map colors 1-to-1 into a 2D rectangle where one axis is luminance, that's like making a 2D map of the earth without any distortion. You'd have to stretch out the "poles" of dark and bright to take more area than the actual number of colors.
yoochan
Tirr i think there's interactive figure of oklab
2024-04-24 07:18:23
like that ? https://oklch.com/#70,0.1,51,100
Tirr
2024-04-24 07:18:54
yes exactly that
yoochan
2024-04-24 07:21:21
this website is awful ! it shows how the usual RGB don't allow access to MANY saturated colors 😭
_wb_
2024-04-24 07:27:27
quite nice to see the difference between the sRGB and P3 gamut
Crite Spranberry
2024-04-24 05:35:55
If I were to show a screenshot of the JPEG XL test page in my browser on my website, showing it supports JPEG XL, would that be allowed? No legal issues or anything?
2024-04-24 05:37:19
This would be the screenshot
_wb_
2024-04-24 06:16:29
Yes that is fine, right <@532010383041363969> ? I think that image is yours.
spider-mario
2024-04-24 06:31:44
is that Windows Vista/7?
Crite Spranberry
2024-04-24 06:33:26
7
_wb_ Yes that is fine, right <@532010383041363969> ? I think that image is yours.
2024-04-24 06:33:42
<:yay1:1097749673780973588>
Jyrki Alakuijala
Crite Spranberry If I were to show a screenshot of the JPEG XL test page in my browser on my website, showing it supports JPEG XL, would that be allowed? No legal issues or anything?
2024-04-26 07:35:35
I took the photo in the hermitage museum in Saint Petersburg. I have given it to public with a license to use. I am not aware of Russian or international laws that would complicate its use. It is one of my all-time favorite test images, since the red-gray contrasts are difficult for compression.
Meow
Jyrki Alakuijala I took the photo in the hermitage museum in Saint Petersburg. I have given it to public with a license to use. I am not aware of Russian or international laws that would complicate its use. It is one of my all-time favorite test images, since the red-gray contrasts are difficult for compression.
2024-04-26 07:41:40
Unless the interior is copyrighted
2024-04-26 07:43:15
Fortunately there isn't any statue or painting in it
Crite Spranberry
2024-04-26 08:37:02
<:astolfoarc_thumbs_up:1152603499230675054>
Jyrki Alakuijala
2024-04-26 03:18:13
Unless the interior is copyrighted -- that sounds like a French concept
2024-04-26 03:19:12
did you run the jpeg with jpegli ? ... with or without xyb 🙂
spider-mario
2024-04-26 03:54:31
https://github.com/kode54/dumb/blob/master/LICENSE <:Thonk:805904896879493180>
Meow
Jyrki Alakuijala did you run the jpeg with jpegli ? ... with or without xyb 🙂
2024-04-26 03:55:42
I could presume that currently most people would use Jpegli without XYB
spider-mario https://github.com/kode54/dumb/blob/master/LICENSE <:Thonk:805904896879493180>
2024-04-26 03:55:59
I have Cog forked by him
TheBigBadBoy - 𝙸𝚛
2024-04-26 07:06:52
I've been trying to make FFmpeg support ICC profiles in the last few hours, without any success.... My goal is to have an input with an ICC profile (i.e. XYB JPG), and a PNG output without attached ICC (the color-space should be applied to the "image data itself"). Using `ffprobe -flags2 icc_profiles -show_frames xyb.jpg`, we can see FFmpeg can see the ICC: ```[SIDE_DATA] side_data_type=ICC profile size=720 [/SIDE_DATA]``` When converting from JPG with ICC to PNG (`ffmpeg -i in.jpg out.png`), somehow FFmpeg copy the ICC for `BRG` color-space (see attachment) but not the ICC for the `XYB` (see attachment). The converted `XYB` is therefore wrong. "Corresponding" ticket: [ffmpeg not writing ICC profiles in images](<https://fftrac-bg.ffmpeg.org/ticket/9672>). From this ticket: [ffmpeg not reading color information from JPEG ICC profile](https://fftrac-bg.ffmpeg.org/ticket/9673), I discovered that there is a [video filter `iccdetect`](https://ffmpeg.org/ffmpeg-all.html#iccdetect), and from what they say in the ticket comments, it is used to read the ICC and apply the color-space. For some reason this filter is not available by default on Arch packages, but it is in Termux packages. So... yeah I've been playing quite some time with `iccdetect` and `flags2` without any success (makeing FFmpeg apply the ICC color-space on the "image data itself" - and then remove the ICC). Anyone could help me please ? https://cdn.discordapp.com/attachments/587033245061873759/1146176676628267098/DSC_4313.jpg
spider-mario
2024-04-26 07:23:23
by “applying the colorspace to the image data itself”, do you mean converting to sRGB?
2024-04-26 07:23:31
I think the libplacebo filter might be able to do that
2024-04-26 07:23:52
if not, in the worst case, you could generate an XYB->sRGB LUT and then apply it using the `lut3d` filter
TheBigBadBoy - 𝙸𝚛
spider-mario by “applying the colorspace to the image data itself”, do you mean converting to sRGB?
2024-04-26 07:28:14
I think sRGB, yeah. Sorry because I know almost nothing about color-spaces and stuff. My only goal is to have the output without ICC but right colors.
spider-mario I think the libplacebo filter might be able to do that
2024-04-26 07:29:26
could you give some guidance please? Would be really grateful <:FeelsReadingMan:808827102278451241>
spider-mario
TheBigBadBoy - 𝙸𝚛 I think sRGB, yeah. Sorry because I know almost nothing about color-spaces and stuff. My only goal is to have the output without ICC but right colors.
2024-04-26 07:35:15
the basic idea is that all RGB images have to be interpreted in *some* colorspace which tells you, notably, _which_ red, green and blue the RGB values are in relation to; “sRGB” (HP and Microsoft, 1996) just so happens to be the colorspace that most software assumes in the absence of other information, and the one that more or less matches the average ’90s CRT monitor (and later displays that have tried to emulate them, although this is less and less true), such that images might happen to accidentally look correct even in the absence of color management
TheBigBadBoy - 𝙸𝚛 could you give some guidance please? Would be really grateful <:FeelsReadingMan:808827102278451241>
2024-04-26 07:35:46
I’m not fully sure but I think this is worth a try: ```shell $ ffmpeg -i 'input.jpg' -vf libplacebo='color_primaries=1:color_trc=13' 'output.png' ```
2024-04-26 07:37:25
if that doesn’t work, then DisplayCAL’s “3DLUT Maker” could be used to generate a LUT from XYB to sRGB, which could then be applied like this: ```shell $ ffmpeg -i 'input.jpg' -vf lut3d='xyb-to-srgb.cube' 'output.png' ```
2024-04-26 07:38:10
(libjxl also contains a couple of tools that can help in generating such LUTs)
TheBigBadBoy - 𝙸𝚛
spider-mario I’m not fully sure but I think this is worth a try: ```shell $ ffmpeg -i 'input.jpg' -vf libplacebo='color_primaries=1:color_trc=13' 'output.png' ```
2024-04-26 07:49:54
output does not have anymore the side data ICC, but got output with wrong colors also these warnings, but apparently it should still apply the ICC: ``` [libplacebo @ 0x5908774cb000] Detected profile gamma (3.543) very far from pure power response (stddev=3.7), suspected unusual or broken profile. Using anyway, but results may be poor. [libplacebo @ 0x5908774cb000] ICC profile too wide to handle, colors may be clipped! [libplacebo @ 0x5908774cb000] Detected profile gamma (3.543) very far from pure power response (stddev=3.7), suspected unusual or broken profile. Using anyway, but results may be poor. [libplacebo @ 0x5908774cb000] ICC profile too wide to handle, colors may be clipped! ```
2024-04-26 07:50:01
trying lut3d rn
spider-mario if that doesn’t work, then DisplayCAL’s “3DLUT Maker” could be used to generate a LUT from XYB to sRGB, which could then be applied like this: ```shell $ ffmpeg -i 'input.jpg' -vf lut3d='xyb-to-srgb.cube' 'output.png' ```
2024-04-26 08:01:56
it says "ICC version 4 is not supported" when importing the "source profile" with the extracted ICC from above image <:PepeHands:808829977608323112>
spider-mario
2024-04-26 08:03:09
oh, then maybe it will have to be done with the libjxl tool + lcms; one sec
2024-04-26 08:05:42
```shell $ .../libjxl/build/tools/generate_lut_template --lut_size=32 'identity.ppm' $ convert 'identity.ppm' 'identity.tif' # ImageMagick $ tificc -i 'XYB.icc' 'identity.tif' 'xyb-to-srgb.tif' # lcms2 $ convert 'xyb-to-srgb.tif' 'xyb-to-srgb.png' $ .../libjxl/build/tools/texture_to_cube 'xyb-to-srgb.png' 'xyb-to-srgb.cube' ```
2024-04-26 08:05:45
something like this
2024-04-26 08:06:45
(I think ffmpeg supports up to a LUT size of 65×65×65, but from what I recall, YouTube silently ignored those larger than 32×32×32, so I’ve gotten into the habit of using that size)
yoochan
Jyrki Alakuijala Unless the interior is copyrighted -- that sounds like a French concept
2024-04-26 08:15:32
Yet in France you have the right to take a picture of an artwork exposed in a museum, no copyright whatsoever exists in this case.
Crite Spranberry
Crite Spranberry If I were to show a screenshot of the JPEG XL test page in my browser on my website, showing it supports JPEG XL, would that be allowed? No legal issues or anything?
2024-04-27 06:48:11
Should mention, I made the page live yesterday https://eclipse.cx/projects/r3dfox.htm
Nova Aurora
yoochan Yet in France you have the right to take a picture of an artwork exposed in a museum, no copyright whatsoever exists in this case.
2024-04-27 08:00:00
Really? I have a painting in a French gallery I want a high quality photo of, but all the images are either potato quality, heavily paywalled, or both.
Meow
2024-04-27 09:40:34
I'm a long time Wikimedia Commons contributor and I've seen many pictures about Taiwan being removed due to including modern paintings or statues
2024-04-27 09:45:54
Besides this is stalled https://phabricator.wikimedia.org/T270855
yoochan
Nova Aurora Really? I have a painting in a French gallery I want a high quality photo of, but all the images are either potato quality, heavily paywalled, or both.
2024-04-27 08:13:01
You can take it yourself to the quality you want then 😊
2024-04-27 08:14:12
The rule I know is applicable in France, I don't know for other countries
2024-04-27 08:18:08
https://www.radiofrance.fr/franceculture/podcasts/le-journal-de-la-culture/peut-on-ou-non-prendre-des-photos-dans-les-musees-7527009
spider-mario
2024-04-27 08:25:45
> Alors que l’expo Vermeer fait polémique, car , victime de son succès, elle force les visiteurs à patienter dans de longues files d’attentes, même quand ils ont réservé, mais aussi car les photos y sont interdites. what a badly written sentence
2024-04-27 08:25:50
alors que [x], what?
Demiurge
HCrikki some first impressions like in for anime-style images were formed based on ancient code so maybe better to reference it in place of the old one that wasnt updated since forever https://afontenot.github.io/image-formats-comparison/
2024-04-28 04:58:35
Amazing website
2024-04-28 04:58:57
jxl looks very noticeably worse than avif though, unfortunately.
2024-04-28 04:59:45
Like in the abandoned factory scene, the orange color of the foliage is noticeably washed out.
2024-04-28 05:00:34
It's actually shockingly bad
2024-04-28 05:00:55
like hard to believe bad
2024-04-28 05:02:47
Like it might even be some kind of color translation error because it's a totally different color even at Large size
2024-04-28 05:03:44
I have partial color blindness too
2024-04-28 05:04:15
So either I'm seeing something that you need to be color blind in order to notice, or it's even worse than I think it is
2024-04-28 05:04:47
Probably the latter.
2024-04-28 05:05:48
Can anyone else look at this image and confirm? https://afontenot.github.io/image-formats-comparison/#abandoned-factory&JPEGXL=m&original=m
2024-04-28 05:06:45
I'm sure it's not just me.
w
2024-04-28 05:12:09
it is that much worse
2024-04-28 05:13:09
And slide comparisons are awful
HCrikki
2024-04-28 05:29:18
the images generated for jxl and jpegli couldve been gimped by author's unfamiliarity with both iinm like with mozjpeg, chroma subsampling may changes with the chosen quality level for a better final result with higher perceptual quality and less deviation from input browsers my be decoding jpegs less eficiently than generating pngs from the output jpegs and displaying those instead of direct decodes
w
2024-04-28 05:33:21
It has the settings at the bottom.
Oleksii Matiash
Demiurge Can anyone else look at this image and confirm? https://afontenot.github.io/image-formats-comparison/#abandoned-factory&JPEGXL=m&original=m
2024-04-28 07:03:14
I want to believe that I have good color vision, and my mon is nice, but for me the difference is very small, if noticeable at all. Other compression artifacts are much more visible
Demiurge
2024-04-28 08:51:31
Well from a distance you can tell the difference in color
2024-04-28 08:52:34
Speckles and ringing and blurring are harder to notice from a distance than an image-wide shift in color
Oleksii Matiash
2024-04-28 08:53:55
I tried to look both close to monitor, where ringing\blurring is visible and from my usual distance (70-80 cm) - no, color is almost the same. BTW, asked my father to have a look, he has red-green color blindness, waiting for the response.
Demiurge
2024-04-28 08:55:37
That's what I have. Deuteranomaly
spider-mario
2024-04-28 09:19:16
the difference I think I’m seeing is AVIF being slightly too green compared to the original
2024-04-28 09:19:43
(normal colour vision, profiled monitor)
2024-04-28 09:20:52
ah, yeah, jxl is maybe slightly less saturated
2024-04-28 09:21:14
though it doesn’t seem to be a change in hue, as far as I can tell
Oleksii Matiash
spider-mario though it doesn’t seem to be a change in hue, as far as I can tell
2024-04-28 09:40:18
Yes, my impression is the same
username
Demiurge Can anyone else look at this image and confirm? https://afontenot.github.io/image-formats-comparison/#abandoned-factory&JPEGXL=m&original=m
2024-04-28 09:52:31
on my end the difference with color is very noticeable, I feel like there is something else going on here
2024-04-28 09:54:00
ok yeah this is a Firefox vs Chrome thing
2024-04-28 09:55:05
as I suspected one of the images is being color managed while the other isn't in Firefox/Gecko's default configuration
w
2024-04-28 09:55:26
canvas double calibration
Oleksii Matiash
username ok yeah this is a Firefox vs Chrome thing
2024-04-28 09:57:54
I'm on FF
username
Oleksii Matiash I'm on FF
2024-04-28 10:01:02
it heavily depends on what monitor you have and if you have a color profile setup for said monitor, For me I have a P3 monitor with a color profile set so the difference in the images becomes very noticeable since only one of them is being color managed in Firefox
2024-04-28 10:01:51
meanwhile in Chromium the colors are pretty much identical for me
Oleksii Matiash
2024-04-28 10:02:49
I have ~AdobeRGB monitor, and it is used with it's profile. But on my machine images are exactly the same both on FF and Chrome. Mb it is because I have non-default color settings in FF?
username
2024-04-28 10:03:57
https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/3.5/ICC_color_correction_in_Firefox
2024-04-28 10:04:18
did you change `gfx.color_management.mode`? because that would explain it
Oleksii Matiash
username did you change `gfx.color_management.mode`? because that would explain it
2024-04-28 10:04:42
Yes, I have 1 there
2024-04-28 10:05:38
Otherwise images without profile built-in are acid
w
2024-04-28 10:18:55
I'm pretty sure it's because of using canvas
2024-04-28 10:19:17
the image decode comes calibrated then painted onto canvas and calibrated again
Demiurge
2024-04-28 10:58:22
Hmm
2024-04-28 10:58:30
Tricky.
2024-04-28 10:59:56
It's extremely noticeable in thorium on windows.
2024-04-28 11:00:16
Except in the "large" image
2024-04-28 11:01:10
the "medium" image the color is extremely changed
2024-04-28 11:01:56
but since it's harder to notice in the larger image, it leads me to believe it's a problem with the lossy encoder
2024-04-28 11:02:31
I can see the difference from a distance without even trying
2024-04-28 11:02:50
And I'm color blind so, that's pretty awful
2024-04-28 11:03:49
at 1 bbp, it should not rape the colors that badly
2024-04-28 11:04:30
I think the format is capable of better fidelity than that
2024-04-28 11:05:29
it seems to be very far behind avif too unfortunately
2024-04-28 11:06:45
which I'm a little worried about, since I think avif is an objectively worse format aside from subjective lossy quality, and blurry lossy mode isn't that important to me.
lonjil
2024-04-28 11:07:38
there is literally zero difference in color on my computer
Demiurge
2024-04-28 11:09:16
I tried it on both firefox/linux and thorium/windows, on two different computers and monitors, same results
username
2024-04-28 11:09:35
after zooming in I think I see what you are talking about
Demiurge
2024-04-28 11:09:45
I also tried comparing JX Large vs JX Medium and there's the same obvious difference
2024-04-28 11:09:50
The Large image is fine
2024-04-28 11:10:06
The Medium and below is completely different colors
2024-04-28 11:10:29
Since I'm comparing JXL against JXL it can't be a difference in the decoding process
2024-04-28 11:10:48
It's definitely a problem with the encoder.
2024-04-28 11:11:19
I'm convinced now but idk maybe it's only visible to my colorblind eyes and not to normal people
2024-04-28 11:11:38
But that would be pretty unlikely
lonjil
2024-04-28 11:12:22
if I zoom in, I see that some orange details disappear
username
2024-04-28 11:12:22
I'm seeing it now it's just the color management thing with Firefox and my monitor distracted me
Demiurge
2024-04-28 11:12:46
I'm looking at the foliage on the left side of the image.
2024-04-28 11:13:17
The red and orange
2024-04-28 11:14:11
The color of the foilage pops and sticks out on the Large and Original images and it seems very different even from far away on Medium and below
lonjil
2024-04-28 11:14:37
does anyone know where the images can be found for download?
username
2024-04-28 11:16:16
weird thing is I remember doing a very simple test against AVIF and JPEG XL a few years ago and the JXL kept colors but lost details while the AVIF kept details but shifted around and lost colors
lonjil does anyone know where the images can be found for download?
2024-04-28 11:17:31
the source image can be found here: https://afontenot.github.io/image-formats-comparison/cite_images.txt and the bottom of the main page says what versions of encoders where used
Demiurge
username weird thing is I remember doing a very simple test against AVIF and JPEG XL a few years ago and the JXL kept colors but lost details while the AVIF kept details but shifted around and lost colors
2024-04-28 11:17:43
I remember that too, seems the tables have turned
lonjil
2024-04-28 11:18:01
here are the images <https://github.com/afontenot/image-formats-comparison/tree/master/comparisonfiles/subset1>
Demiurge
2024-04-28 11:18:10
I notice the same desaturated colors in the mercado image too
username
2024-04-28 11:19:26
https://discord.com/channels/794206087879852103/794206170445119489/1232016102750683137
2024-04-28 11:19:43
should probably be tested against the master branch of libjxl
2024-04-28 11:20:13
since libjxl 0.10.2 does not have the improvement I linked
2024-04-28 11:20:58
(not saying the website should but us)
Demiurge
2024-04-28 11:29:07
That's a pretty significant change yes
2024-04-28 11:29:30
At least it looks like it could be
2024-04-28 11:29:39
Gotta test it...
2024-04-28 11:30:05
The bad colors is very noticeable across a lot of images here, like "end of show"
2024-04-28 11:30:47
It's a shame this comparison gives a very poor impression of jpegxl
2024-04-28 11:35:42
Lots of cases where they're tied, a few cases where jpegxl looks better, but when jpegxl looks worse it looks obviously worse by a huge margin.
2024-04-28 11:45:11
Personally I hate blocky and smudgy artifacts, I hate it when the color significantly changes, and I hate color banding. But I don't mind high-frequency noise that's hard to see from a distance, that obscures other artifacts like blur. I think the human eye is most commonly forgiving when it sees noise instead of weird low-frequency distinct shapes of other common image artifacts. I wonder... Would it be possible for jpegxl to mask lossy artifacts as dither-like noisy-looking artifacts instead of blocks and smudges? I have a feeling automated metrics would hate that sort of thing but human eyes would love it.
2024-04-28 11:53:07
I would be a lot more willing to consider to use lossy compression if it added fine grainy noise instead of smudges and smears and blocks. It would look very "photographic" and natural by comparison. idk how feasible it is though.
Oleksii Matiash
Demiurge I would be a lot more willing to consider to use lossy compression if it added fine grainy noise instead of smudges and smears and blocks. It would look very "photographic" and natural by comparison. idk how feasible it is though.
2024-04-28 01:04:50
Then the next recompression iteration will be like: Ah sh.., here we go again
Oleksii Matiash I tried to look both close to monitor, where ringing\blurring is visible and from my usual distance (70-80 cm) - no, color is almost the same. BTW, asked my father to have a look, he has red-green color blindness, waiting for the response.
2024-04-28 02:11:28
Got response (from red-green blind person): no, there is no difference
spider-mario
2024-04-28 02:35:27
smells a bit like colour management shenanigans
username
2024-04-28 02:39:23
some of it was but once that was sorted out it seems like there actually is something with the colors although I assume the merged pull request I pointed out probably improves the situation or negates the issue
Demiurge
2024-04-28 07:18:27
Hmm, so maybe I'm actually seeing something that a lot of people don't seem to notice well, despite my colorblindness. Like I said, I'm looking at the red and orange foliage on the left. It's very noticeable even from a distance to me.
2024-04-28 07:18:39
Even just comparing Large and Medium
2024-04-28 07:19:44
I don't think it should be that hard to notice
jonnyawsom3
2024-04-28 08:18:52
I noticed it the other day, JXL seems less vibrant compared to the original of AVIF, but hopefully the increased chroma quality merged recently helps
Jyrki Alakuijala
Demiurge I would be a lot more willing to consider to use lossy compression if it added fine grainy noise instead of smudges and smears and blocks. It would look very "photographic" and natural by comparison. idk how feasible it is though.
2024-04-29 12:06:59
we could do this -- now we are opting towards smoothness, but to a lesser degree than most other codecs -- we used to do this a lot more, but Jon changed it (with a 2-3 % objective score improvement) back in the day, perhaps three years ago -- we could have modes for this
Demiurge
2024-04-29 08:18:47
Human eyes are very different than metrics unfortunately. And I think lossy codecs should be designed for human eyes, not metrics. I think in general, human eyes are more accepting and forgiving of noise and grain compared to smears and blocks. I think the reasoning is very simple actually. It's high-frequency noise and distortion, instead of low-frequency.
2024-04-29 08:19:56
Low-frequency signals are easier to mistake for spurious structure and geometry that isn't supposed to exist
2024-04-29 08:21:01
High-frequency blue noise has no structure so it's harder to confuse our visual cortex into recognizing shapes and patterns that weren't in the original image.
2024-04-29 08:22:10
It's easier for our eyes to ignore.
Jyrki Alakuijala we could do this -- now we are opting towards smoothness, but to a lesser degree than most other codecs -- we used to do this a lot more, but Jon changed it (with a 2-3 % objective score improvement) back in the day, perhaps three years ago -- we could have modes for this
2024-04-29 10:06:25
Personally I would be ecstatic if libjxl went in that direction, and metrics be damned.
2024-04-29 11:59:34
btw, I notice HEIF also has a similar problem with colors in the comparison...
2024-04-30 04:30:33
What's the name of that test image that has a table with grapes, a clock in the background, a color palette, some kind of wheel in the foreground...? Often used for testing image codecs
yoochan
2024-04-30 05:13:28
Wasn't it the test setting used by dpreview.com? I don't know if an original image exists...
Demiurge
2024-04-30 07:03:55
I just want to see it again, it's one of the best test images
yoochan
2024-04-30 07:17:48
I can't find it again 😄
spider-mario
2024-04-30 08:07:52
the one with the lobster?
Oleksii Matiash
yoochan Wasn't it the test setting used by dpreview.com? I don't know if an original image exists...
2024-04-30 08:16:12
It seems that dpr have never had grapes in the test scene https://www.dpreview.com/articles/8217017575/a-history-of-the-test-scene , also imaging-resource does not have it
w
2024-04-30 08:18:13
the one with the bicycle wheel or something like that
Jyrki Alakuijala
2024-04-30 08:19:41
it is important to have some details on a red background -- that is the most challenging environment for digital photography and for compression
Oleksii Matiash
Jyrki Alakuijala it is important to have some details on a red background -- that is the most challenging environment for digital photography and for compression
2024-04-30 08:29:56
Could you explain why it is the most challenging for digital photography, please? In a few words, to get the main idea
w
2024-04-30 08:35:30
This one https://github.com/libjxl/conformance/blob/master/testcases/bike/ref.png?raw=true
_wb_
2024-04-30 09:10:48
It's a good test image because it has a variety of tricky things: the subtle background on the wall that easily gets smoothed away, as well as the texture of that tablecloth; the colors and textures of the fruits, plants, lobster/salad; the reflections in the glass; the lettering of the clock; the high-contrast spikes of the wheel that are prone to ringing; the interference between the tennis racket and the bike and the test patterns below the clock that can easily cause aliasing, etc. That said, it is also a bit of an exaggerated "demo image" that can be used to showcase directional prediction modes but that isn't very representative for typical image content.
2024-04-30 09:16:26
here's the original image btw, the one in the conformance repo is lossy
spider-mario
2024-04-30 09:22:40
this one seems to be missing the ICC profile, though (iirc, it’s supposed to use the Rec. 709 transfer function, not sRGB)
_wb_
2024-04-30 09:24:41
oh, right, they're not sRGB — these test images are really old
yoochan
_wb_ here's the original image btw, the one in the conformance repo is lossy
2024-04-30 09:28:49
yes ! the lobster ! what is the source ? Who took it first ?
_wb_
2024-04-30 09:29:27
https://github.com/libjxl/conformance/blob/master/testcases/bike/itu-t.24_ReadMe.txt
yoochan
2024-04-30 09:29:36
the racket in front of the spokes is amazing 😄
Oleksii Matiash It seems that dpr have never had grapes in the test scene https://www.dpreview.com/articles/8217017575/a-history-of-the-test-scene , also imaging-resource does not have it
2024-04-30 09:30:13
indeed, my bad
_wb_
2024-04-30 09:30:20
it comes from this: https://www.itu.int/rec/T-REC-T.24/
2024-04-30 09:35:15
the version from 1998 was a TIFF in CMYK and was distributed on a CD-ROM
yoochan
2024-04-30 09:35:44
so last century
_wb_
2024-04-30 09:35:52
I don't know where it came from and when/how it was converted to RGB
2024-04-30 09:36:53
but yeah the image must be at least 26 years old and probably more
yoochan
2024-04-30 09:37:05
it was most certainly a scanned film of an analog camera
_wb_
2024-04-30 09:47:02
yes, I don't think there was a digital camera that could do that back then. It does look like a scanned film with some mild digital postprocessing (some unsharp masking, and the addition of the "ISO 400" text)
Oleksii Matiash
_wb_ yes, I don't think there was a digital camera that could do that back then. It does look like a scanned film with some mild digital postprocessing (some unsharp masking, and the addition of the "ISO 400" text)
2024-04-30 10:26:14
Maybe some scanning DB? However I'm not familiar with that era, my DB knowledge starts at 2002 🙂
Demiurge
Oleksii Matiash Could you explain why it is the most challenging for digital photography, please? In a few words, to get the main idea
2024-04-30 10:30:57
I'm not sure why, but it's true. Red textures tend to get blurred by lossy codecs or the color often changes.
Oleksii Matiash
Demiurge I'm not sure why, but it's true. Red textures tend to get blurred by lossy codecs or the color often changes.
2024-04-30 10:31:31
No, the question is about digital photography, not encoding
Demiurge
2024-04-30 10:31:43
Not exactly sure, but maybe most phychovisual models greatly underestimate our ability to see details and texture in red surfaces.
2024-04-30 10:32:54
He says "that is the most challenging environment for digital photography and for compression" - I assume he is referring to lossy compression.
2024-04-30 10:33:27
Mosaic color filters in digital sensors tend to have less red as well.
2024-04-30 10:33:58
Usually mosaic filters have extra green
2024-04-30 10:34:17
I think the human eye is least sensitive to blue, if I recall correctly.
_wb_ here's the original image btw, the one in the conformance repo is lossy
2024-04-30 11:04:30
Is there a convenient way to correct the colors or get a version of this image with correct colors? This one is washed out.
jonnyawsom3
2024-04-30 11:20:03
That'll be from the missing ICC
Oleksii Matiash
Demiurge Mosaic color filters in digital sensors tend to have less red as well.
2024-04-30 11:20:42
But the same is for blue, because number of red and blue pixels is the same. My guess is that usually (but not always) red is the least sensitive channel, and for red colors there are no\few signal in green\blue channels. But let's wait for Jyrki
jonnyawsom3
2024-04-30 11:26:09
I think that's right
Demiurge
2024-04-30 11:29:46
Red and blue textures commonly get very ugly thanks to lossy compression and chroma subsampling.
2024-04-30 11:30:02
But our eyes are probably better at noticing it with red than with blue.
jonnyawsom3
Oleksii Matiash No, the question is about digital photography, not encoding
2024-04-30 11:33:19
I think you missed that
Demiurge
2024-04-30 11:37:44
when it's captured, the blues and reds have a lower resolution than the greens, thanks to the nature of the sensor. It's encoded in a bayer matrix because that's how the sensor itself encodes it when it's captured. You cannot somehow "separate" digital photography from digital encoding.
2024-04-30 11:39:14
"that is the most challenging environment for digital photography and for compression" - compression is digital encoding too.
_wb_
2024-04-30 11:42:50
Here is a version with a correct color profile. It's not a huge difference compared to the one misinterpreted as sRGB but there is some noticeable difference.
Demiurge
_wb_ here's the original image btw, the one in the conformance repo is lossy
2024-04-30 12:34:54
When you say the one in conformance repo is lossy, do yoy mean the PNG is a decode of a lossy JXL or something?
_wb_
2024-04-30 01:07:48
yes, the conformance repo is for testing decoders and the png files there are reference decoded images
Demiurge
2024-04-30 06:17:30
I notice that it looks amazing despite being a very small jxl file. Was it made by hand somehow?
spider-mario
2024-04-30 08:02:01
does it? it looks rather artifacty to me
2024-04-30 08:02:25
with that said, I have no idea how (say) AVIF would compare because I don’t know what flags I would be supposed to use
2024-04-30 08:03:56
ah, I have some flags in my shell history
2024-04-30 08:06:01
I guess it’s crisper (but also slightly larger)
2024-04-30 08:06:28
Oleksii Matiash
spider-mario
2024-05-01 06:16:26
IrfanView seems to struggle with CMS and new image formats 😦 For jxl it just ignores built-in profile, for avif it shows completely wrong colors when CMS is enabled in IrfanView settings (keep in mind that dulliness is because of Discord does not understand that my mon is wide gamut and screenshots must be tagged\converted)
HCrikki
2024-05-01 06:54:52
windows apps in particular tend to default to color management off as a default it seems rarely gets revisited over time. opposite for store apps like Photos
Oleksii Matiash
2024-05-01 11:35:55
Also worth mentioning that avif needs 390 ms to open, and jxl - 45
LMP88959
_wb_ Here is a version with a correct color profile. It's not a huge difference compared to the one misinterpreted as sRGB but there is some noticeable difference.
2024-05-01 11:51:54
are these intentional artifacts
_wb_
2024-05-01 11:52:50
No idea
a goat
2024-05-01 12:03:15
I just wrote out the full XYZ to CIECAM16 transform and I feel so drained. Are there any other widely used colorspaces that are this complex, conversion wise?
Oleksii Matiash
LMP88959 are these intentional artifacts
2024-05-01 12:09:57
I believe this is moire caused by scanning non-ideal horizontal-vertical target orientation
LMP88959
2024-05-01 12:31:39
👌
2024-05-01 12:31:59
I didnt realize those were patterns that were physically in the scene
Tirr
2024-05-01 12:36:42
that scene (in jxl conformance test suite) has caught numerous bugs in jxl-oxide
Crite Spranberry
2024-05-01 01:22:30
Is there a way in HTML to have a fallback image? Say I have a website, and I give it a JPG, WebP, and JPEG XL image to display. Is there a way to say have it try JPEGXL image first, and if it fails go back to WebP, and if that fails go back to JPG?
Tirr
2024-05-01 01:26:44
`<picture>` is exactly for that https://developer.mozilla.org/en-US/docs/Web/HTML/Element/picture
username
2024-05-01 01:29:50
see here for a simple example of it used in a page: https://github.com/jxl-community/jxl-community.github.io/blob/main/index.html#L287
Demiurge
Crite Spranberry Is there a way in HTML to have a fallback image? Say I have a website, and I give it a JPG, WebP, and JPEG XL image to display. Is there a way to say have it try JPEGXL image first, and if it fails go back to WebP, and if that fails go back to JPG?
2024-05-01 05:27:09
Please don't even bother with webp, I'm begging you...
Crite Spranberry
2024-05-01 05:29:51
<:Think2:826218556453945364>
Demiurge
2024-05-01 05:33:07
If you use mozjpeg or cjpegli, the quality and filesize ought to be similar. Plus you get the benefit of progressive decode if you don't use webp...
Crite Spranberry
2024-05-01 06:10:25
idk I've just used paint.net
2024-05-01 06:10:45
But if there's an easy tool you can give me to do basic 80% quality encodes I am willing to try
2024-05-01 06:48:25
It seems that the picture thing falls back even in browsers that have no hope of supporting picture, so I might use it
2024-05-01 07:00:35
I think I iwll just use cjpegli
2024-05-01 07:07:01
When will a v0.10.3 or v0.11.0 exist I want to wait until a new version to try
Meow
Demiurge Please don't even bother with webp, I'm begging you...
2024-05-01 07:38:22
Much better when using lossless
Demiurge
2024-05-01 09:15:22
A good lossless codec that was needlessly and intentionally crippled and limited to match the half-baked lossy codec it's unfortunately attached to.
w
2024-05-01 09:46:53
webp is pretty good you have no idea what you're talking about
Demiurge
2024-05-01 10:48:23
Ever since it was first shoved down our throats codec experts warned it was no better than ordinary JPEG
2024-05-01 10:50:17
Less features, worse quality, and a good lossless mode with arbitrary limitations forced on it by committee.
2024-05-01 10:51:53
It's an absurd format
w
2024-05-01 10:56:01
?
HCrikki
2024-05-01 11:27:44
PDF week begins May 6 in tokyo, physical and remote. Imaging model will de discussed May 6 and 7 https://pdfa.org/pdf-week-tokyo-starts-may-6/
2024-05-01 11:28:54
anyone attending as a member or expert ?
LMP88959
Demiurge Ever since it was first shoved down our throats codec experts warned it was no better than ordinary JPEG
2024-05-01 11:28:55
ordinary jpeg??
2024-05-01 11:29:04
ordinary jpeg is such a low bar for lossy compression
2024-05-01 11:29:15
webp is definitely better especially at lower bitrates
Demiurge
2024-05-01 11:34:57
That it's unable to beat ordinary JPEG is exactly why it's so ludicrously bad and the whole reason why the codec team at mozilla and xiph objected to the standardization of a new mediocre format.
2024-05-01 11:35:24
But I'll do a test right now, just to confirm and make sure.
HCrikki
2024-05-01 11:40:41
jpeg was 'alien technology from the future'
2024-05-01 11:41:22
even in 2024 the full scope of its specifications havent been implemented
2024-05-01 11:43:44
video-based codecs dont even satisfy today's needs and have unfixable limitations baked in. hardly futureproof
LMP88959
Demiurge That it's unable to beat ordinary JPEG is exactly why it's so ludicrously bad and the whole reason why the codec team at mozilla and xiph objected to the standardization of a new mediocre format.
2024-05-01 11:47:01
Where are examples of jpeg beating it? All the examples ive made and seen have webp do much better than jpeg
Demiurge
2024-05-01 11:52:35
I tried making a comparison just now with the bike image, but cwebp ignored the color profile and messed up the colors.
LMP88959 Where are examples of jpeg beating it? All the examples ive made and seen have webp do much better than jpeg
2024-05-01 11:53:24
In comparisons by mozilla and xiph and cloudinary, mostly.
LMP88959
2024-05-01 11:53:41
Ah
2024-05-01 11:54:04
I use whatever jpeg library GIMP uses lol
Demiurge
2024-05-01 11:54:06
But I am happy to test it myself right now. But already cwebp messed up the colors.
2024-05-01 11:54:31
2024-05-01 11:54:54
I used the image wb posted with the corrected color profile
2024-05-01 11:55:08
but it looks like the one with the wrong profile
2024-05-01 11:55:19
cjpegli did not mess it up somehow
2024-05-01 11:55:31
Even though I used XYB mode
monad
2024-05-01 11:55:45
-metadata all
Demiurge
2024-05-02 12:00:25
lol, thanks, I'll try that. Interesting how something that affects the visual result and fidelity is an option that's off by default.
2024-05-02 12:05:50
webp arguably looks slightly better here, I'll admit.
LMP88959
2024-05-02 12:06:20
Lmao
Demiurge
2024-05-02 12:07:17
But, it lacks progressive decode, so jpeg actually shows up on the screen faster. And it lacks other features that boring old jpeg has like 4:4:4 chroma sampling
LMP88959
2024-05-02 12:07:40
Webp is only subsampled?
Demiurge
2024-05-02 12:07:52
in lossy mode yes
LMP88959
2024-05-02 12:07:59
Im highly unfamiliar with webp
Demiurge
2024-05-02 12:08:35
and lossless mode has arbitrary limitations imposed on it, like on image size and bit depth (only 8 bits)
LMP88959
2024-05-02 12:08:52
Mmm
Demiurge
2024-05-02 12:09:01
I don't mean to be a buzzkill lol I just really hate that webp is even a thing
LMP88959
2024-05-02 12:09:11
Believe me i also hate webp
2024-05-02 12:09:35
JPEG is fantastic
2024-05-02 12:09:47
Heic?
2024-05-02 12:10:02
Webp just seems like google trying too hard
lonjil
Demiurge In comparisons by mozilla and xiph and cloudinary, mostly.
2024-05-02 12:44:57
mozjpeg beating webp is outdated data, so mozilla's old comparisons aren't really relevant
LMP88959 Webp just seems like google trying too hard
2024-05-02 12:45:27
lossless webp is pretty darn good
LMP88959
2024-05-02 12:46:37
oh i personally dont work with lossless stuff
2024-05-02 12:46:44
so im not familiar
2024-05-02 12:47:06
it must be better than PNG but im pretty sure JXL is better than webp?
lonjil
2024-05-02 12:47:43
the gap from png to webp is a lot bigger than from webp to jxl
2024-05-02 12:48:27
but lossless jxl should improve over time, I think the devs spend a lot more time improving lossy
LMP88959
lonjil the gap from png to webp is a lot bigger than from webp to jxl
2024-05-02 12:52:24
ah okay
HCrikki
2024-05-02 12:52:29
lossless jxls are consistently half the size of a png (closer to 55%, higher with clean sources with large flats color regions like in digital art and digital comics
2024-05-02 12:52:32
imo the best sources for lossless compares and best candidates for offering downloadable or prioritize displauy of jxl versions of their creations)
2024-05-02 12:54:36
for small clipart-like iconry, afaik the video-based codecs have a *minimum* resolution limit hurting their efficiency (64x64 pixels ?)
LMP88959
2024-05-02 12:55:19
oh really?
2024-05-02 12:55:43
i understand their efficiency being hurt
HCrikki
2024-05-02 12:55:46
another reason theyre not suitable to use for say compression avatars or thumbnails
LMP88959
2024-05-02 12:55:59
makes sense
HCrikki
2024-05-02 12:58:03
a few months before, someone compared formats generating thumbnails for hundreds large images using recommended or default settings. almost all formats generated thumbs in less than 2 seconds, avif alone did so in like 35 seconds each (!)
2024-05-02 12:58:21
a shame i couldnt find it back, bro swore off that in no time
LMP88959
2024-05-02 12:59:37
holy cow that's insane
HCrikki
2024-05-02 12:59:56
in hindsight its understandable why even cloudflare doesnt generate avifs for anything but relatively small images and generates/serves webp for everything else
Demiurge
2024-05-02 01:13:07
2024-05-02 01:13:29
The JPEG is progressive.
2024-05-02 01:14:24
Wow, I didn't expect this
2024-05-02 01:14:40
It looks a lot better than the webp, especially areas with red edges
2024-05-02 01:14:45
It's very noticeable
2024-05-02 01:15:11
This is just using: `cwebp -o mercado.webp -metadata all mercado.png`
2024-05-02 01:15:48
Then I made a JPEG the same size with jpegli
2024-05-02 01:16:12
It utterly destroys webp at this image.
2024-05-02 01:16:32
I did the same process with the other test image with the crab and the bike.
2024-05-02 01:18:35
Anyways, this is why you should never ever use webp ever for any reason >:(
HCrikki
2024-05-02 01:20:06
webp stores to yuv420, so lossy conversions will always reduce color accuracy even at the highest quality. across say 200 recompressions, colors naturally shift towards green
2024-05-02 01:22:18
image editors generally edit in rgb so thered be some precision loss from doing colorspace conversions but it can be minimized
2024-05-02 01:23:28
much of the touted file savings of video-based codecs come from *discarding too much data*
Demiurge
2024-05-02 01:28:30
JPEG is just plain better.
2024-05-02 01:29:09
It often beats webp at quality at the same size, or gets close, and it's more compatible and faster, and has pregressive decoding.
lonjil
2024-05-02 01:29:22
lossy webp is quite good at medium high and lower
Demiurge
2024-05-02 01:29:38
webp is good for... video
2024-05-02 01:29:50
because it's VP8
lonjil
2024-05-02 01:29:56
keep in mind that the webp devs actually forked the vp8 encoder and optimized it for still image photography
Demiurge
2024-05-02 01:30:17
at least video is something JPEG can't do as good
lonjil
2024-05-02 01:30:21
like until jpegli, webp actually did win against jpeg for anything where 420 was fine
2024-05-02 01:30:41
this wasn't true when webp was new, but they did good making the webp encoder better
2024-05-02 01:31:02
it still beats jpegli below like, q=75? idk the exact number.
LMP88959
Demiurge at least video is something JPEG can't do as good
2024-05-02 01:35:59
Mjpeg (barely a video format) mpeg-1/2?
2024-05-02 01:36:06
Basically jpeg for i frames
lonjil
2024-05-02 01:36:58
I bought a webcam a few years back. Then I found out that the newer more expensive model didn't have h264 output, only mjpeg.
LMP88959
2024-05-02 01:38:04
😳not even mpeg-1?
2024-05-02 01:38:10
Or mpeg-4 part 2
2024-05-02 01:38:16
That’s insane
2024-05-02 01:38:40
Mjpeg has such a high bitrate compared to something that actually compresses temporally
lonjil
2024-05-02 01:41:03
yep, mjpeg 😬
LMP88959
2024-05-02 01:41:20
How much was the webcam
2024-05-02 01:41:33
That’s inexcusable on the manufacturers part
lonjil
2024-05-02 01:44:33
like $250?