This is spelled out in the paper
   P. Thevenaz, T. Blu, and M. Unser (2000). "Interpolation Revisited."
   IEEE Transactions on Medical Imaging, 19: 739-758.
Basically, the idea is that interpolation computes values from a set of 
coefficients:
    y(x) = sum_i coef_i * f_i(dx_i)
where dx_i comes from a displacement of x. For an "interpolating" function, 
the coefficients are the actual on-grid values of the function you're trying to 
interpolate. However, you can generalize the notion to "non-interpolating" 
expressions, where the coefficients are distinct from the on-grid values. You 
can pretty quickly convince yourself that this is necessary, for example, if 
you want to have 3-point quadratic interpolation with continuous derivatives. 
The coefficients turn out to be related to the on-grid values via a simple 
tridiagonal matrix equation (which is fast to invert).

Explicitly, for quadratic interpolation you can convince yourself that the 
only expression with continuous derivatives at the half-point between integers 
is
   y(alpha) = (alpha-0.5)^2*ym/2 + (.75-alpha)^2*y0 + (alpha+0.5)^2*yp/2
where |alpha| <= 0.5 and ym,y0,yp are the interpolation coefficients. Plug in 
alpha=0, and you can see that you don't recover y0. Hence it's "non-
interpolating."

--Tim

On Wednesday, March 26, 2014 05:00:36 PM Stefan Schwarz wrote:
> > Hello Tim,
> 
> this is maybe not the right place to ask this question,
> but may you elaborate on that matter, that interp_invert!
> compensates "the non-interpolating" issue of
> the quadratic?
> 
> Thanks in advance
> 
> Stefan

Reply via email to