Image glossary

Bicubic interpolation

Also known as bicubic, image interpolation, resampling

Bicubic interpolation is a resampling method that estimates each new pixel from a weighted cubic function of the sixteen surrounding source pixels, producing smoother results than simpler methods without adding any real detail.

How it works

Resizing an image means computing pixel values at positions that did not exist in the source. Interpolation methods differ in how many neighbours they consult and how they weight them.

Nearest-neighbour takes the closest source pixel, which is fast and produces hard blocky edges. Bilinear averages the four nearest, which is smoother and slightly soft. Bicubic fits a cubic function through a 4x4 neighbourhood, which preserves edges better and is the general-purpose default in most software.

Lanczos uses a wider windowed sinc function over more neighbours. It is sharper than bicubic and can produce faint ringing next to very high-contrast edges, which is a fair trade for most photographic work.

The ceiling, which is mathematical

No interpolation adds information. Every method computes a weighted average of values that already exist, so enlarging a face that occupies forty pixels produces a larger, smoother version of forty pixels' worth of information. There are no eyelashes to recover because no eyelash data was ever recorded.

Sharpening afterwards increases local contrast, which reads as crisper while adding nothing and frequently introducing halos along edges. This is worth knowing because it is the source of the belief that upscaling "sort of works" — what improved was acutance, not detail.

Choosing a method

Downscaling is where quality is easiest to win and most often lost. Reducing by a large factor in one step aliases fine detail into moiré unless the method averages properly; a good downscaler filters before sampling, and the result is essentially free in quality terms because you are discarding information you did not need.

Upscaling by a small factor — up to about 1.5x — is fine with bicubic or Lanczos and nobody will notice. Beyond about 2x, interpolation visibly softens, and the honest options are to print or display smaller, or to use a model that generates plausible detail rather than averaging existing detail.

Tools that work with this

Back to the full glossary.