Description
I might be missing something, but it looks like lcms2 is currently not using the information in the CICP tag.
When I am saving HDR images from Adobe Camera Raw, it includes an ICC profile with curves that hard-clip the HDR headroom, mapping everything brighter than SDR white to 1. It also includes a CICP tag that describes the 'real' transfer curve (e.g. PQ). When using lcms2 to do color conversions with such profiles, it uses the curves as a transfer function, not the transfer function of the CICP tag. This means that e.g. converting an image to linear and back is now a very lossy operation that introduces bad artifacts.
Am I missing something? Is there an API option to make it give precedence to the CICP tag info? If not, having such an option would be great, and it probably should be enabled by default. The ICC 4.4 spec says the information in the CICP tag shall be equivalent to the information in the profile, so technically the profiles embedded by Adobe Camera Raw are not conforming, but I think it would make sense if lcms2 would in that case choose to believe the CICP tag and not the fallback curves which I think are only there to make applications that don't know about the CICP tag do something somewhat sensible.
Activity