[argyllcms] Re: Version 0.53 - Gamut mapping warning message.

Gerhard Fuernkranz wrote:

Non-monotonicty is IMO a different issue and does not only apply
to badly-behaved devices. Even for a well linearized CMYK-printer,
IMO monotonicity isn'n granted in general. E.g. CMYK(0,0,20,0) is
darker than CMYK(0,0,0,0), but CMYK(0,0,20,100) is usually rather
brighter then CMYK(0,0,0,100), which implies non-monotonicity; i.e.
in some regions of the gamut the gradient dL/dY (where L=lightness
and Y=yellow) is positive, and in other regions it is negative.

One of the things that makes multidimensional function non-monotonicity difficult to identify, is that while a local minima or maxima in an individual PCS channel is a necessary condition for non-monotonicity, it is not sufficient. The color is the combination of PCS values, so actual non-monotonicity is when the same PCS combination value can be produced by more than one device value (a many-to-one mapping). I'm not sure if it's possible to arrive at a deterministic mathematical test for this, given an arbitrary, continuous device function.

Given a discrete representation of the device characteristic (such as
a CLUT table), it is certainly possible to create a precise non-monotonicity
test. If simplex interpolation is assumed (for instance), then the whole
mapping is composed of a set of simplexes, with each vertex having a device
and PCS co-ordinate, and the mapping within each simplex being strictly
linear in both spaces. The individual simplexes are adjacent in device
and PCS space with all their neighbours, but if any two simplicies have
an overlapping volume in PCS space, then this is an area of non-monotonicity.

[ The crude test I have in RSPL just looks for local minima or maxima
  on the individual PCS channels. Doing an accurate test would be some work
  to implement efficiently, although some of the necessary structure is
  present in rspl/rev.]

Graeme Gill.

Other related posts: