On Mar 27, 2016, at 3:27 AM, Graeme Gill <graeme2@argyllcms.com> wrote:
edward taffel wrote:
i gather then, you claim superior precision, & this may account for ben’s superior results; but, what of the ‘edge cases’ ben mentions? are these obviated by precision?
I'm not sure where you gather any such thing from my general statement about CMM’s.
please don’t get me wrong, graeme: i view ben’s comments as very encouraging, & assumed your general statement an intimation of possible rationale for “ArgyllCMS is so far superior to anything and everything else out there”.
Ben will have to explain what he implies by "edge cases" - that term could apply to a multitude of different aspects of color management.
i have found that colorsync may fail to match a color it reported out-of-gamut, i.e. transforms the coordinates, but the transformed color remains out-of-gamut.
You'll have to be more precise in what you are referring to.
Reported to be out of gamut using what operation ?
Transformed in what direction - device to PCS, PCS to device, what ?
colorsync is negotiated [by a programmer] via ColorSyncTransformConvert the operation is configured in the first argument, ColorSyncTransformRef, created by CSEXTERN ColorSyncTransformRef ColorSyncTransformCreate (CFArrayRef profileSequence, CFDictionaryRef options); /* * profileSequence - array of dictionaries, each one containing a profile object and the * information on the usage of the profile in the transform. * * Required keys: * ============== * kColorSyncProfile : ColorSyncProfileRef * kColorSyncRenderingIntent : CFStringRef defining rendering intent * kColorSyncTransformTag : CFStringRef defining which tags to use * Optional key: * ============= * kColorSyncBlackPointCompensation : CFBooleanRef to enable/disable BPC * * options - dictionary with additional public global options (e.g. preferred CMM, quality, * etc... It can also contain custom options that are CMM specific. * * returns ColorSyncTransformRef or NULL in case of failure */ in my example the profile sequence was: 1) source -> kColorSyncTransformDeviceToPCS 2) kColorSyncTransformPCSToDevice -> destination to get the gamut-check operation assign kColorSyncTransformGamutCheck to kTransformTagKey in the destination transform dictionary.
can you enlighten us as to the handling of ‘edge cases’?
Precisely what do you mean by edge cases ?
i don’t mean anything by it; ben mentioned
Graeme instead has put insane amounts of time into investigating edge cases, figuring out why this-or-that is close but not perfect, and so on.
i assumed edge a synonym for boundary [perhaps falsely]. i understand boundary to mean geometry [convex hull] containing a color space: a boundary case, e.g., when a cmm attempts to transform [clip] a color into destination gamut but hits just outside or on the boundary. best regards, edward
Graeme Gill. _______________________________________________ Do not post admin requests to the list. They will be ignored. Colorsync-users mailing list (Colorsync-users@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/colorsync-users/etaffel%40me.com
This email sent to etaffel@me.com