Hacker News new | ask | show | jobs
by account42 1352 days ago
I've noticed that too with cwebp (and other libwebp-based tools) encoding for darker images. My guess was that they their difference function is using the wrong colorspace so it does not match the perceptive difference. My quick tests of cjxl fared much better so all hope is not lost.

But essentially, losless compression is all about throwing away impercetible details. Noise is an interesting case here because the presence and fequency of the noise (the texture) is significant to the viewer but having the noise match 1:1 is not. Which is why newer codecs remove the noise and then re-add generated noise during decoding.