Inverse B-spline interpolation |

B-splines represent a particular example of a convolutional basis. Because of their compact support and other attractive numerical properties, B-splines are a good basis choice for the forward interpolation problem and related signal processing problems (Unser, 1999).

B-splines of the order 0 and 1 coincide with the nearest neighbor and
linear interpolants (2) and (3) respectively.
B-splines of a higher order can be defined by a
repetitive convolution of the zeroth-order spline (the
box function) with itself:

which can be proved by induction. Here are the binomial coefficients, and the function is defined as follows:

As follows from formula (11), the most commonly used cubic B-spline has the expression

The corresponding discrete filter is a centered 3-point filter with coefficients 1/6, 2/3, and 1/6. According to the traditional method, a deconvolution with this filter is performed as a tridiagonal matrix inversion (de Boor, 1978). One can accomplish it more efficiently by spectral factorization and recursive filtering (Unser et al., 1993a). The recursive filtering approach generalizes straightforwardly to B-splines of higher orders.

Both the support length and the smoothness of B-splines increase with the order. In the limit, B-slines converge to the Gaussian function. Figures 11 and 12 show the third- and seventh-order splines and and their continuous spectra.

splint3
Third-order B-spline (left)
and its spectrum (right).
Figure 11. |
---|

splint7
Seventh-order B-spline (left)
and its spectrum (right).
Figure 12. |
---|

It is important to realize the difference between B-splines and the
corresponding interpolants , which are sometimes called
*cardinal splines*. An explicit computation of the cardinal
splines is impractical, because they have infinitely long support.
Typically, they are constructed implicitly by the two-step
interpolation method, outlined in the previous subsection. The
cardinal splines of orders 3 and 7 and their spectra are shown in
Figures 13 and 14. As B-splines converge
to the Gaussian function, the corresponding interpolants rapidly
converge to the sinc function (4). A good convergence
is achieved with the help of the infinitely long support, which
results from recursive filtering at the first step of the
interpolation procedure.

crdint3
Effective third-order B-spline interpolant
(left) and its spectrum (right).
Figure 13. |
---|

crdint7
Effective seventh-order B-spline interpolant
(left) and its spectrum (right).
Figure 14. |
---|

In practice, the recursive filtering step adds only marginally to the total interpolation cost. Therefore, an -th order B-spline interpolation is comparable in cost with any other method with an -point interpolant. The comparison in accuracy usually turns out in favor of B-splines. Figures 15 and 16 compare interpolation errors of B-splines and other similar-cost methods on the example from Figure 4.

cubspl4
Interpolation error of the cubic
convolution interpolant (dashed line) compared to that of the
third-order B-spline (solid line).
Figure 15. | |
---|---|

kaispl8
Interpolation error of the 8-point
windowed sinc interpolant (dashed line) compared to that of the
seventh-order B-spline (solid line).
Figure 16. | |
---|---|

Similarly to Figures 8 and 9, we can also compare the discrete responses of B-spline interpolation with those of other methods. The right plots in Figures 17 and 18 show that the discrete spectra of the effective B-spline interpolants are genuinely flat at low frequencies and wider than those of the competitive methods. Although the B-spline responses are infinitely long because of the recursive filtering step, they exhibit a fast amplitude decay.

speccubspl4
Discrete interpolation responses
of cubic convolution and third-order B-spline interpolants (left)
and their discrete spectra (right) for .
Figure 17. | |
---|---|

speckaispl8
Discrete interpolation responses of
8-point windowed sinc and seventh-order B-spline interpolants (left)
and their discrete spectra (right) for .
Figure 18. | |
---|---|

Inverse B-spline interpolation |

2014-02-15