Hmm, sorry, for now I’ll have to say: I don’t fully understand ICC profiles.
However, I’ll make a couple of observations:
-
An ICC profile contains instructions for converting between a colorspace and the connection space which is either XYZ or LAB, in principle in either direction. So it may have two different whitepoints: one for the colorspace, the other for the connection space. In ICC v2 and v4, the connection space WP is always D50, so the tag is technically redundant. (But ICCmax allows other connection space WPs.) However, the colorspace WP doesn’t need to be D50.
-
dcraw embeds an sRGB profile with these primaries:
<XYZType>
<TagSignature>rXYZ</TagSignature>
<XYZNumber X="0.43608093" Y="0.22250366" Z="0.01393127"/>
</XYZType>
<XYZType>
<TagSignature>gXYZ</TagSignature>
<XYZNumber X="0.38508606" Y="0.71688843" Z="0.09709167"/>
</XYZType>
<XYZType>
<TagSignature>bXYZ</TagSignature>
<XYZNumber X="0.14305115" Y="0.06060791" Z="0.71401978"/>
</XYZType>
Using the formulae…
x = X / (X+Y+Z)
y = Y / (X+Y+Z)
… we can easily calculate the chromaticies (x,y) of the primaries to 6 decimal places…
red = (0.648432, 0.330853)
green = (0.321155, 0.597872)
blue = (0.155884, 0.066045)
These are the sRGB standard primaries, chromatically adapted from D65 to D50. But if the primaries are D50, how come the media white point is D65? I don’t know.
I fear that to understand ICC profiles, I need to play with LCMS. I don’t currently have time.