Mark,

The internal logic is complex, an V4 profile implemented
as matrix shaper do have a zero black point, which is not
the case if the profile is implemented by using LUTs.
That was already implemented in lcms 1. Lcms 2 behaves
as lcms 1 in the cases lcms 1 is right.

But I think you have not to worry about all those details.
If you want to do a comparative ColorSync/Lcms, all what
you need is to use same file-based ICC profiles for both
CMM. They should agree. If not then we can try to see why.

Regards
Marti.


Quoting Mark <d...@cine-scan.com>:

> Hi Marti
>
> I saved the sRGB input profile and see I'ts labelled as V4.2. So, 
> what's the logic followed by LCMS?
> Something like, if no Black Point is defined assume it's X=Y=Z = 0 
> and scale that to be L*=3. Otherwise scale the Black Point.
>
> Is there a way to make LCMS2 behave like LCMS1 or will it always 
> perform Black Point Compensation?
> The reason I ask is I intend to compare some LCMS transforms to 
> current code that uses Apples ColorSync API. I do not think ColorSync 
> is doing BPC.
>
> Best regards
> Mark
>
>
> On 06.06.2010, at 19:16, marti.ma...@littlecms.com wrote:
>
>>
>> Hi Mark,
>>
>> That's black point compensation, V4 perceptual and saturation
>> have non-zero black points. sRGB built-in is basically a V2
>> profile, so for going from V2 black (which is zero) to v4 black
>> (which is about L*=3) we need some sort of scaling.
>>
>> Regards
>> Marti
>>
>>
>> Quoting Mark <d...@cine-scan.com>:
>>
>>> Hi Marti
>>>
>>> looking at the stages created for a sRGB -> XYZ transform I see 3 
>>> stages are generated
>>> - curve set stage for the gamma curves
>>> - matrix float stage converting device rgb to xyz (I see the matrix 
>>> is scaled so by 1/MAX_ENCODEABLE_XYZ)
>>> - a second matrix including offset:
>>>     Offset:         0.0016800256 0.0017365765 0.0014350219
>>>     Matrix:         0.9965152458 0.0000000000 0.0000000000
>>>                     0.0000000000 0.9965269000 0.0000000000
>>>                     0.0000000000 0.0000000000 0.9965207904
>>>
>>> Can you tell me what the second matrix stage does?
>>> The matrix varies according to the intent passed creating the 
>>> transform. The data above is for INTENT_PERCEPTUAL and 
>>> INTENT_SATURATION (IIRC).
>>> INTENT_ABSOLUTE_COLORIMETRIC uses other values, without offset.
>>> INTENT_RELATIVE_COLORIMETRIC does not have this second matrix stage.
>>>
>>> Best regards
>>> Mark
>>> ------------------------------------------------------------------------------
>>> ThinkGeek and WIRED's GeekDad team up for the Ultimate
>>> GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
>>> lucky parental unit.  See the prize list and enter to win:
>>> http://p.sf.net/sfu/thinkgeek-promo
>>> _______________________________________________
>>> Lcms-user mailing list
>>> Lcms-user@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/lcms-user
>>>
>>
>>
>
>
> ------------------------------------------------------------------------------
> ThinkGeek and WIRED's GeekDad team up for the Ultimate
> GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
> lucky parental unit.  See the prize list and enter to win:
> http://p.sf.net/sfu/thinkgeek-promo
> _______________________________________________
> Lcms-user mailing list
> Lcms-user@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/lcms-user
>



------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate 
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the 
lucky parental unit.  See the prize list and enter to win: 
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
Lcms-user mailing list
Lcms-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lcms-user

Reply via email to