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

Reply via email to