How to upsize an image

Printing in larger sizes

I have a Canon 350D digital camera. At 8 megapixels, it’s in the semi-pro league, and allows me to make 293mm x 192mm (11.5″ x 7.7″) hi-quality prints. That’s slightly smaller than an A4 (or Letter) sheet. Imagine now I would want to print on an A0 format or 1189mm x 841mm (46.8″ x 33.1″). That’s 16 times as big (height x 4 and width x 4). I could take a ‘normal’ image and rescale it to that size, but what would that look like? For every 16 pixels of the new picture, 1 would be an original one, and the other 15 would have been guessed from that and the surrounding pixels. This process is called image interpolation and there are different algorithms to do this. Let me show what that looks like.

Interpolation algorithms

Image sizes

In the next images, I simulated this upsizing operation: I took an normal-resolution picture and made its dimensions smaller by 2x, 4x, 8x, … and then resized it to the original resolution with a number of different algorithms (I used the Irfanview image editor for this). You always see the original picture in the top left corner. The one to the right is a simulation of an upscaling of 4x (width and height x 2), the one in the right top corner: upscaling of 16x (both sides x 4). The one on the left bottom (both sides x 8, so total image x 64) is most interesting, because it shows best the differences between the algorithms for still not too distorted images. The image on the bottom right is there to show that 32 x 32 magnification (total image x 1024) is generally not a good idea. (click the images for more detail).

Nearest neighbour (simple)

A pixel becomes a square 2×2 block of the same colour, then a 4×4, … Main advantage of this system: no calculation is necessary, so it is blazing fast. This is actually the way your browser upsizes images.
Resize effect: no interpolation

Hermite filter

This is slightly better than the naive method. For mathematical details, check the Hermite Interpolating Polynomial.
Resize effect: Hermite filter

Triangle/tent filter

Bilinear interpolation considers the closest 2×2 neighborhood of known pixel values surrounding the unknown pixel. It then takes a weighted average of these 4 pixels to arrive at its final interpolated value. This results in much smoother looking images than nearest neighbor. (from cambridgeincolour.com)

Resize effect: Triangle filter

B-spline filter

Math background on sepwww.stanford.edu.
Resize effect: B-spline filter

Lanczos filter

Lanczos is the most complex, and slowest method, which should give the best results. Although:

Finally, the popular freeware IrfanView (Version 3.92) offers a Lanczos resizing option which uses too few sample points and therefore can produce an unwanted shadow pattern in some images. (from enlargingsplugins)

Resize effect: Lanczos filter

So here’s my roundup of some interpolation algorithms for making images bigger. Keep in mind that larger resolutions cause larger files. An image good enough for A0 printing (14000 x 10000 pixels) could amount to a 800MB TIFF file.

Some tools:

3 thoughts on “How to upsize an image”

  1. way back when photoshop was still 5.5 and digital cams of 5 mpixel were the best of the best, there was one general rule:
    enlarge your file in photshop by 110percent.
    When you take steps of 110, the interpolation is best and quality loss minimum.

    Don’t ask me why, it probably had something to do with the algorytm.
    But it was something everybody did when working for a pressagency.
    *110 *110 *110 …
    There was one good plugin for photoshop. But I forgot its name…

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.