Fast B-Spline Transforms for Continuous Image Representation and Interpolation
M. Unser, A. Aldroubi, M. Eden
IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 13, no. 3, pp. 277–285, March 1991.
Efficient algorithms for the continuous representation of a discrete signal in terms of B-splines (direct B-spline transform) and for interpolative signal reconstruction (indirect B-spline transform) with an expansion factor m are described. Expressions for the z-transforms of the sampled B-spline functions are determined and a convolution property of these kernels is established. It is shown that both the direct and indirect spline transforms involve linear operators that are space invariant and are implemented efficiently by linear filtering. Fast computational algorithms based on the recursive implementations of these filters are proposed. A B-spline interpolator can also be characterized in terms of its transfer function and its global impulse response (cardinal spline of order n). The case of the cubic spline is treated in greater detail. The present approach is compared with previous methods that are reexamined from a critical point of view. It is concluded that B-spline interpolation correctly applied does not result in a loss of image resolution and that this type of interpolation can be performed in a very efficient manner.
Errata
-
p. 279, the summand of the middle equality of Equation (2.5) is incorrect. The corrected sum should read ∑k = 0+∞ kn z−k instead of ∑k = 0+∞ kk z−k.
-
p. 282, Equation (3.18) has two errors. One sign is wrong, and an index is off by one. The corrected system of equations should read {d+(k) = ƒ'(k) + α d+(k - 1), (k = 2, …, K); c(K) = (-α ⁄ (1 - α2)) (2 d+(K) - ƒ'(K)); c(k) = α (c(k + 1) - d+(k)), (k = K - 1, …, 1)} instead of {d+(k) = ƒ'(k) - α d+(k - 1), (k = 2, …, K); c(K) = (-α ⁄ (1 - α2)) (2 d+(K) - ƒ'(K)); c(k) = α (c(k + 1) - d+(k + 1)), (k = K - 1, …, 1)}.
-
p. 282, the second definition on the line just below Equation (3.18) is not general enough. The corrected definition should read d+(k) = 6 c+(k) instead of d+(1) = 6 c+(1).
@ARTICLE(http://bigwww.epfl.ch/publications/unser9102.html, AUTHOR="Unser, M. and Aldroubi, A. and Eden, M.", TITLE="Fast \mbox{{B}-Spline} Transforms for Continuous Image Representation and Interpolation", JOURNAL="{IEEE} Transactions on Pattern Analysis and Machine Intelligence", YEAR="1991", volume="13", number="3", pages="277--285", month="March", note="")