You are on page 1of 4

Bicubic interpolation

1
Bicubic interpolation
Bicubic interpolation on the square
consisting of 9 unit squares
patched together. Bicubic interpolation as per
MATLAB's implementation. Colour indicates
function value. The black dots are the locations of
the prescribed data being interpolated. Note how
the color samples are not radially symmetric.
Bilinear interpolation on the same dataset as
above. Derivatives of the surface are not
continuous over the square boundaries.
Nearest-neighbor interpolation on the same
dataset as above. Note that the information
content in all these three examples is equivalent.
In mathematics, bicubic interpolation is an extension of cubic
interpolation for interpolating data points on a two dimensional regular
grid. The interpolated surface is smoother than corresponding surfaces
obtained by bilinear interpolation or nearest-neighbor interpolation.
Bicubic interpolation can be accomplished using either Lagrange
polynomials, cubic splines, or cubic convolution algorithm.
In image processing, bicubic interpolation is often chosen over bilinear
interpolation or nearest neighbor in image resampling, when speed is
not an issue. In contrast to bilinear interpolation, which only takes 4
pixels (22) into account, bicubic interpolation considers 16 pixels
(44). Images resampled with bicubic interpolation are smoother and
have fewer interpolation artifacts.
Bicubic interpolation
Suppose the function values and the derivatives , and
are known at the four corners , , , and of
the unit square. The interpolated surface can then be written
The interpolation problem consists of determining the 16 coefficients
. Matching with the function values yields four
equations,
1.
2.
3.
4.
Likewise, eight equations for the derivatives in the -direction and
the -direction
1.
2.
3.
4.
5.
6.
7.
8.
And four equations for the cross derivative .
1.
2.
3.
Bicubic interpolation
2
4.
where the expressions above have used the following identities,
.
This procedure yields a surface on the unit square which is continuous and with continuous
derivatives. Bicubic interpolation on an arbitrarily sized regular grid can then be accomplished by patching together
such bicubic surfaces, ensuring that the derivatives match on the boundaries.
If the derivatives are unknown, they are typically approximated from the function values at points neighbouring the
corners of the unit square, e.g. using finite differences.
Grouping the unknown parameters in a vector,
and letting
,
the problem can be reformulated into a linear equation where its inverse is:
.
Bicubic convolution algorithm
Bicubic spline interpolation requires the solution of the linear system described above for each grid cell. An
interpolator with similar properties can be obtained by applying a convolution with the following kernel in both
dimensions:
where is usually set to -0.5 or -0.75. Note that and for all nonzero integers .
This approach was proposed by Keys who showed that (which corresponds to cubic Hermite spline)
produces third-order convergence with respect to the original function.
If we use the matrix notation for the common case , we can express the equation in a more friendly
manner:
for between 0 and 1 for one dimension. for two dimensions first applied once in and again in :
Bicubic interpolation
3
Use in computer graphics
Bicubic interpolation causes overshoot, which increases acutance.
The bicubic algorithm is frequently used for scaling
images and video for display (see bitmap resampling).
It preserves fine detail better than the common bilinear
algorithm.
However, due to the negative lobes on the kernel, it
causes overshoot (haloing). This can cause clipping,
and is an artifact (see also ringing artifacts), but it
increases acutance (apparent sharpness), and can be
desirable.
References
External links
Application of interpolation to elevation samples
(http:/ / www. geovista. psu. edu/ sites/ geocomp99/
Gc99/ 082/ gc_082. htm)
Interpolation theory (http:/ / sepwww. stanford. edu/ public/ docs/ sep107/ paper_html/ node20. html)
Explanation and Java/C++ implementation of (bi)cubic interpolation (http:/ / www. paulinternet. nl/
?page=bicubic)
Excel Worksheet Function for Bicubic Lagrange Interpolation (http:/ / mathformeremortals. wordpress. com/
2013/ 01/ 15/ bicubic-interpolation-excel-worksheet-function/ )
Article Sources and Contributors
4
Article Sources and Contributors
Bicubic interpolation Source: https://en.wikipedia.org/w/index.php?oldid=604287317 Contributors: Amux, Anakin101, Ansell, Ati3414, BIS Suma, BenFrantzDale, Berland, Btyner, Cburnett,
Crotalus horridus, Davidhorman, Dicklyon, DocWatson42, Dudzcom, Enzo Aquarius, Faleichik, Fedra, Fgnievinski, Freederick, Frietjes, GabrielSjoberg, George100, Hu, LilHelpa, ManiacK,
Mark viking, MattieTK, Mblumber, Michael Hardy, Mwtoews, Mtys, Nbarth, Nrobidoux, Oleg Alexandrov, Omicronpersei8, Paul Breeuwsma, PhilKnight, Plesatejvlk, Qutezuce, Rasmus
Faber, Silverfish, Simoneau, Smyth, Stephen e nelson, Sterrys, Steve Checkoway, Svick, The Anome, Ti chris, Tomash, Turkishbob, Weedwhacker128, 84 anonymous edits
Image Sources, Licenses and Contributors
Image:BicubicInterpolationExample.png Source: https://en.wikipedia.org/w/index.php?title=File:BicubicInterpolationExample.png License: Public Domain Contributors: Berland
Image:BilinearInterpolExample.png Source: https://en.wikipedia.org/w/index.php?title=File:BilinearInterpolExample.png License: Public Domain Contributors: Berland
Image:Nearest2DInterpolExample.png Source: https://en.wikipedia.org/w/index.php?title=File:Nearest2DInterpolExample.png License: Public Domain Contributors: Berland
Image:Accutance.svg Source: https://en.wikipedia.org/w/index.php?title=File:Accutance.svg License: GNU Free Documentation License Contributors: Accutance.png derivative work: Beao
(talk)
License
Creative Commons Attribution-Share Alike 3.0
//creativecommons.org/licenses/by-sa/3.0/

You might also like