Concept

# Bicubic interpolation

Summary
In mathematics, bicubic interpolation is an extension of cubic spline interpolation (a method of applying cubic interpolation to a data set) for interpolating data points on a two-dimensional regular grid. The interpolated surface (meaning the kernel shape, not the image) 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 , bicubic interpolation is often chosen over bilinear or nearest-neighbor interpolation in image resampling, when speed is not an issue. In contrast to bilinear interpolation, which only takes 4 pixels (2×2) into account, bicubic interpolation considers 16 pixels (4×4). Images resampled with bicubic interpolation can have different interpolation artifacts, depending on the b and c values chosen. 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 as The interpolation problem consists of determining the 16 coefficients . Matching with the function values yields four equations: Likewise, eight equations for the derivatives in the and the directions: And four equations for the mixed partial derivative: The expressions above have used the following identities: This procedure yields a surface on the unit square that is continuous and has 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. Grouping the unknown parameters in a vector and letting the above system of equations can be reformulated into a matrix for the linear equation . Inverting the matrix gives the more useful linear equation , where which allows to be calculated quickly and easily. There can be another concise matrix form for 16 coefficients: or where Often, applications call for bicubic interpolation using data on a rectilinear grid, rather than the unit square.