Image Processing Reference
Where the scaling is applied in two dimensions, the interpolation is calculated on
two axes and a value is selected according to the X and Y positions. This is also a curve-
fitting process and is called bi-linear interpolation.
The curve-fitting process is used again here, but a more complex algorithm is used than in
the linear interpolation. This approach is a little more computationally complex. It derives
a spline curve that models the intensity value and ensures that it passes through the inten-
sity values of the pixels in the source image. The position for the output value is calculated
proportionally as a distance along that curve but the interpolation of intensity values is
nonlinear. Figure 34-9 must be compared carefully with Figure 34-8 to see the difference in
the output values.
A two-dimensional variant of the cubic interpolation technique is used to interpolate
across an X-Y grid of pixels. This is called bi-cubic interpolation.
Separate Interpolations in Different Axes/Color Spaces
In situations where limited CPU capacity is available, it may be worth applying a bi-cubic
interpolation in the luma channel and a computationally less intensive bi-linear algorithm
in the chroma channels. This would improve performance when a high throughput is
required. The color information is stored at a lower resolution, but that's fine because the
eye is more sensitive to light intensity than color. The compromise occurs where the effects
are least likely to be noticed.
Converting video down from higher to lower resolution throws away information but still
results in good quality at the target-picture size. This is sometimes called sub-sampling.
Scaling up cannot introduce any extra information. But good results can be achieved by
interpolation when the scaling is less than 150% of the original size. Going larger than this
will result in a compromised picture.
Four adjacent pixels of different values
Pixel color values
Pixel color values
Figure 34-9 Cubic interpolation.