Higher-order interpolation (HTML5)

Draw sum
$${}$$
4.0

When rendering images from a 2D/3D array of data samples \(f_i\), it is necessary to interpolate between the samples. This applet demonstrates different interpolation methods that are equivalent to convolving the data samples with a reconstruction filter \(h(\cdot)\)

$$g(x)=(f * h)(x)=\sum_{i=-m+1}^{m}f_i\,h(x - \lfloor x \rfloor - i)$$

Here, \(g(x)\) is the interpolated value at a fractional position \(x\) and \(m\) is half the filter width,1 e.g., for cubic filters \(m=2\). The interpolation then involves a weighted sum of \((2m)^3\) samples in 3D. The available filters include a (windowed) sinc, (bi/tri)cubic interpolation (realized by a Catmull-Rom spline), (bi/tri)linear interpolation, and a (bi/tri)cubic B-spline (which only approximates the samples). More details can be found in a book by Engel et al. (2006) as well as articles by Marschner and Lobb (1994) and Mitchell and Netravali (1988).

Applet created by Johannes Kehrer for educational purpose.

Convolution with a reconstruction filter.1 The samples \(f_i\) are given at discrete positions and are multiplied by the corresponding weights \(w_i(x)=h(x-\lfloor x \rfloor-i)\) with \(i\in\) {1,2,3}.

1 K. Engel, M. Hadwiger, J. Kniss, A. Lefohn, C. Rezk-Salama, and D. Weiskopf: Real-time volume graphics, A K Peters, 2006.
2 S. Marschner and R. Lobb: An evaluation of reconstruction filters for volume rendering. In Proc. IEEE Visualization Conf., pp. 100-107, 1994.