Am 07.04.2014 18:17, schrieb Elle Stone:
> Different results obtain from converting to a built-in profile in memory 
> vs "the same" profile save to disk.
>
> Is it accurate to say that the results are different because the added 
> precision in the profile in memory means the profile in memory really 
> isn't the same profile.

ICC profiles may contain a hash value sometimes called a ID. That is
computed out of nearly all content of the profile including all
colorimetric tags. In order to create a profile precisely representing
your above mentioned lcms build-in, in memory profiles, different tag
types would be needed to represent the higher precission. That would in
effect mean that the ID of such profile would be different than what can
now be written to disk. Hence the profiles are different by that definition.

Caching of profiles and transforms depend on the ID in order to work
relyable. So there is prectical use in this information.

> A consequence of this situation is that pure white in the image on disk 
> will become slightly off white after being converted to the built-in 
> profile, even if the embedded profile and the built-in profile are 
> nominally "the same", because really they aren't the same:
>
>> transicc -w -c0 -b -t1 -i sRGB-lcms-built-in.icc -o *sRGB
>> R? G? B? 255 255 255
>> R=254.9988 G=255.0029 B=254.9981

Correct round tripping was at some point an argument to implement non
ICC colour matching engines. So I guess your point is spot on for some
users.

> If one wants to preserve white when converting from the profile on disk 
> to the "same" profile in memory, is there a way to tell the built-in 
> profile in memory to *not* use the extra precision?

As a side note, correct round tripping became possible with the
introduction of the mpet tag type. However mpet tags are only optional
substitutes for A2Bx and B2Ax tags. So they can not be used for matrix
shaper profiles. The later are the ones written by lcms for the build-in
profiles you examined.

If matrix shaper profiles could use a XYZ tag type with floating point
precission your issue would be gone.

kind regards
Kai-Uwe
-- 
www.behrmann.name

------------------------------------------------------------------------------
Put Bad Developers to Shame
Dominate Development with Jenkins Continuous Integration
Continuously Automate Build, Test & Deployment 
Start a new project now. Try Jenkins in the cloud.
http://p.sf.net/sfu/13600_Cloudbees
_______________________________________________
Lcms-user mailing list
Lcms-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lcms-user

Reply via email to