[argyllcms] Re: Black turning down problem (the -r trick)

  • From: Gerhard Fuernkranz <nospam456@xxxxxx>
  • To: argyllcms@xxxxxxxxxxxxx
  • Date: Sat, 15 Jan 2011 19:51:39 +0100

Am 15.01.2011 13:51, schrieb Elena [service address]:
> On 15-Jan-2011, Nikolay Pokhilchenko wrote:
>> As Enena mentioned, (here IMHO) the ArgyllCMS in current state will work 
>> worse, when frequency of sampling increases. I mean the case of sharp bumps. 
>> From this point I recommend to perform an LPF.
> Unfortunately I still don't understand well if it's the case here or not.

My feeling is too that the actual origin of your problem is still not
clear yet.

> Keep in mind that to test with thousands (3000-6000) samples I'm almost 
> forced to use measuring tricks,

And even 6000 CMYK patches (which already sounds to be a pretty large
number) correspond to only about 9 patches per dimension on average,
which is on the other hand still a rather coarse sampling. A really fine
sampling (say on a grid with 100 points in each dimension, i.e using
100,000,000 patches) that would be able to capture and characterize even
rather narrow bumps in the device response w/o aliasing is simply not
practicable.

> As for the splines... I don't know how they're are actually implemented.
> There're many ways afaik: lagrangians, trilinear, bicubic, etc.

Basically Argyll is using N-linear B-splines on a regular grid. Greame
has chosen linear splines, because this resembles the way how the CLUT
tables in the profile are eventually interpolated (and the fitted
B-spline grid indeed becomes directly the CLUT of the profile's A2B1
table, w/o need for any additional resamping). Due to the huge number of
parameters of such a B-spline model (each grid point corresponds to one
model parameter), applying a regularization (or call it smoothing if you
want) is an inevitable part of the spline fitting process. The
regularization attempts to minimize the overall curvature [or more
precisely, the integral of the squared 2nd derivates]. In the literature
splines with this kind of regularization are also called "thin-plate
splines" or "smoothing splines". The result is a trade-off between
fitting the samples as exact as possible and minimizing overall
curvature of the splines. When increasing the smoothing factor more and
more, the splines become stiffer and stiffer, approaching more and more
a (hyper)plane.

[Graeme may have added some additional heuristics to the spline fitting,
though, which I'm not ware of.]

> And then there's to see what further interpolation method the software which 
> actually make use of the profile employ (photoshop, cctiff, etc.)

Good point to note.

1-dimensional linear interpolation (which is equivalent to the
evaluation of linear B-splines) of a 1D LUT results in a piecewise
linear function approximating the true function. The first derivatives
are typically discontinuous at the grid points (except for the center
point of three adjacent grid points, if they happen to lie on a straight
line), but the interpolation does not result in any bumps between the
grid points.

Unfortunately, the same does NOT apply to N-linear interpolation (i.e.
evaluation of linear tensor product B-splines). Different from what the
name suggests, a N-linear interpolator is no longer a piecewise linear
function, and the interpolation can/does even introduce bumps between
the grid points! (depending on the actual data)

Regards,
Gerhard


Other related posts: