OK, soooo I circumvented Adobe’s awkward CMM installer and installed the Adobe
CMM manually on OS X – so that I could compare it with Little CMS wrt/ its TRC
behavior.
I also had to reimplement my test program, since the Adobe CMM is 32 bit only,
whereas Apple’s current version of ColorSync is a complete reimplementation
from 2009 which is 64 bit only. So I had to use the old, 32 bit ColorSync API
from before 2009 to be able to access the Adobe CMM; this lead to a few
additional insights.
But first, the Adobe CMM: I can confirm now that Little CMS with
cmsFLAGS_SLOPE_LIMIT_32 does indeed successfully emulate the Adobe CMM. There
are two qualifications, though:
1. The Adobe CMM enables black point compensation by default (you’d have to
install a specific plist file on OS X to disable BPC, as explained in the PDF
documentation that comes with the Adobe CMM). So to actually emulate the Adobe
CMM behavior completely, you’ll need cmsFLAGS_SLOPE_LIMIT_32 |
cmsFLAGS_BLACKPOINTCOMPENSATION. And you have to keep in mind that this is only
confirmed for the 32 bit CMM version from 2008; theoretically, the behavior
could have changed in the unpublished 64 bit version (cf. the behavioral change
in the ColorSync CMM when going from 32 to 64 bit; see below).
2. The Adobe CMM forces values near 1 to be 1 and (unless BPC is applied)
values near 0 to be 0. For instance, the TRC for a conversion from gamma 1.961
to gamma 2.2 (with identical primaries) in Little CMS is:
{{0.000, 0.000}, {0.002, 0.002}, {0.004, 0.004}, {0.006, 0.006}, {0.008,
0.008}, {0.010, 0.010}, {0.012, 0.012}, {0.014, 0.014}, ... , {0.986, 0.988},
{0.988, 0.989}, {0.990, 0.991}, {0.992, 0.993}, {0.994, 0.995}, {0.996, 0.996},
{0.998, 0.998}, {1.000, 1.000}}
whereas in the Adobe CMM it’s:
{{0.000, 0.000}, {0.002, 0.000}, {0.004, 0.000}, {0.006, 0.000}, {0.008,
0.000}, {0.010, 0.000}, {0.012, 0.012}, {0.014, 0.014}, ... , {0.986, 0.988},
{0.988, 0.989}, {0.990, 1.000}, {0.992, 1.000}, {0.994, 1.000}, {0.996, 1.000},
{0.998, 1.000}, {1.000, 1.000}}
When implementing the 32 bit version of my test program, I also found that the
ColorSync CMM in its 32 bit incarnation had *no slope limit*; obviously, this
was only introduced with the 64 bit version in 2009 (OS X 10.6 Snow Leopard).
Finally, I was also able to test the 32 bit ColorGear CMM from Canon. This
turned out to have no slope limit, either.
------------
SUMMARY:
------------
So, to emulate various CMMs with Little CMS (with my slope limit patch), you’d
use the following flags for cmsCreateTransform() and cmsCreateTransformTHR():
Adobe CMM (confirmed for published 32 bit version from 2008):
cmsFLAGS_SLOPE_LIMIT_32 | cmsFLAGS_BLACKPOINTCOMPENSATION
ColorSync CMM (32 bit, up until and including OS X 10.5 Leopard from 2007):
no flags
ColorSync CMM (64 bit, starting with OS X 10.6 Snow Leopard from 2009):
cmsFLAGS_SLOPE_LIMIT_16
ColorGear CMM (from Canon, 32 bit, 2008):
no flags
Kodak CMM (unpublished on OS X, according to documentation from Kodak):
cmsFLAGS_SLOPE_LIMIT_16
Bye
Uli
_________________________________________________________________________
Uli Zappe, Christian-Morgenstern-Straße 16, D-65201 Wiesbaden, Germany
http://www.ritual.org
Fon: +49-700-ULIZAPPE
Fax: +49-700-ZAPPEFAX
_________________________________________________________________________
------------------------------------------------------------------------------
Transform Data into Opportunity.
Accelerate data analysis in your applications with
Intel Data Analytics Acceleration Library.
Click to learn more.
http://pubads.g.doubleclick.net/gampad/clk?id=278785351&iu=/4140
_______________________________________________
Lcms-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/lcms-user