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 Lcms-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/lcms-user