-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Disable libjxl lossless mode for float16 #17624
base: master
Are you sure you want to change the base?
Conversation
Although a neat workaround, not 100% sure this is the way to go, there might be other side effects of settings distance to 0 here (IIRC it's been mentioned that could be considerably worse than true lossless mode for file size and encoding time, especially if original color space is kept)? It'd be ideal if we just totally disable this for fp16... |
Tested on the good old Debian logo:
Looking at the pixels samples, the distance 0 is indeed closer to original. Now the next question could be: "Should lossless be optional for quality 100?", but that's out of scope for this PR. |
I feel that the discussion is not fully resolved, should this be accepted or a better way found? In other word what is the status of this PR? |
IMHO not, as that was the design premise and what the tooltip promised/promises... Until this is fixed upstream, I'd still rather just totally skip fp16 at q=100/d=0 and limit this to q=99 (which is already ridiculously high anyway for the lossy mode)... |
It's sensible, but then we need to make a special case for quality=100 to specify uses_original_profile which makes float16 ever more diverging from all other formats... It's a lot of effort for an edge case that virtually nobody will encounter; upstream is plain broken and nobody really noticed. |
How about this?
|
I don't think we can punt this to 5.2, it crashes dt currently? |
68d637d
to
25353a5
Compare
I rebased on master and mentioned the problem in the release notes. Considering there is no sign of life in the relevant issues upstream, I think we should just merge this now. |
Closes #17487.
As discussed in the issue, libjxl lossless encoding of float16 is actually broken.
This patch disables the real lossless mode of libjxl, while still asking for a distance of 0 (basically lossless).
It didn't feel useful to mention this in tooltip of the quality slider.