Skip to content
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

Discussion of perceptual rendering intent and HDR-capable color spaces #920

Open
benstevens48 opened this issue May 19, 2023 · 0 comments
Open

Comments

@benstevens48
Copy link

I just wanted to post a few comments on perceptual rendering intent and HDR-capable color spaces somewhere where the DirectX team might see it.

In my opinion, the scRGB profile used by Direct2D makes a mess of the perceptual rendering intent. Unfortunately, the DtoB0 tag which specifies the perceptual intent, is identical to the relative colorimetric intent. This creates issues when combining with a classic (TRC and matrix-based) non-HDR profile. When mapping with the perceptual intent using classic profiles, (0,0,0) is mapped to the perceptual colour gamut black point (non-zero), so the transform is basically relative colorimetric with black point compensation, where the output black point is the perceptual gamut black point. This needs to be undone by the reverse transform, otherwise black will be mapped to something lighter than black. So this is what happens if you combine scRGB (or other built-in HDR profiles) with a standard color profile, with one exception. Direct2D seems to have an exception for sRGB to/from scRGB using the perceptual intent, which behaves the same as the relative colorimetric intent (sRGB ICC profiles are recognised if they use the sRGB value in the model field). So this fixes the problem for sRGB but not for anything else such as Adobe RGB, which just adds to the confusion.

In my opinion, profiles like scRGB should use a perceptual intent that is compatible with that of class profiles. Indeed, since it is just a black point compensation on top of relative colorimetric, it is easy to create a DtoB0 tag that does this and avoids clipping.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant