Add new comment

I think the ACES color profile in libraw is incorrect

This is in reference to using dcraw_emu, though I imagine this could be an issue for libraw in general. I was comparing the output of photos developed with ACES to output with ProPhoto in a color managed photo viewer, and I noticed the colors just seemed a bit off, they looked warmer than I would expect. So, I extracted the ICC profile from the photo and took a look at the primaries, shown in the forward matrix below.

X 1.00600 0.01668 -0.05212
Y 0.36885 0.72124 -0.08864
Z -0.00362 0.01096 0.75758

The rows should sum to a D50 white point. However, they instead sum to 0.97056 1.00145 0.76492. This is approximately a 4700K white point, which is significantly out of line with the ICC specifications.

Further inspecting the profile using argyllCMS's xicclu function revealed further issues. When using the command xicclu -ir -pl -s255 aces.icc and entering 255 255 255 , I should have L*a*b* values of 100,0,0 returned. While it is common for the L*a*b* values for white to be slightly off due to hexadecimal arounding error, the issue here is much more serious. The value I get is 100.05, 0.853, 5.06, which corresponds to an RGB value of 255, 254, 245 which is a pale yellow color. That explains why images developed with dcraw_emu's ACES profile are significantly warmer than they ought to be.

I would propose changing the forward matrix for ACES to

X 0.990854688 0.012242375 -0.03889418
Y 0.361883143 0.722508700 -0.08439184
Z -0.002709415 0.008248784 0.81936603

for consistency with the ICC PCS illuminant (xyz=0.964203, 1, 0.82491). though it's common to see icc profiles use the ASTM values for D50 , that being xyz=0.96422,1,0.82521).

Note that even if the white point is D65 or D60, the rows of the forward matrix should sum to the D50 values. Or is there a reason the ACES profile has an apparently incorrect white point? Anyone have any insight on that?