Resizing small digital images

I carry a small point-and-shoot camera almost everywhere I go; that, and the fact that I do not own a digital camera larger than 5 megapixels, means I have to either be content with small images or find a way to make them bigger without it being (too) obvious. A second limitation present in such cameras is that the images are output in JPEG format, with the inevitable flaws that the compression algorithm produces. The result is low resolution overlaid with noise.

One of the problems of digital noise is that it is inherently unappealing. Unlike film grain, which has a pleasing character all its own, digital noise (unless you deliberately want a pixellated appearance in your images) has little to commend it; as soon as you start to see the noise, you’re out of road, so to speak. Film grain, on the other hand, is an analogue noise, and can therefore stand some degree of enlargement before it becomes objectionable (think artistic grainy film images).

I have therefore been trying to find a ‘recipe’ that will enable me to resize images by 2 or 3 times, without them dissolving into digital mush. I have in the past tried a number of approaches, involving a mix of resizing, adding noise, digital noise reduction, JPEG artefact removal, median filter, sharpening, and so on. One thing that became apparent early on, was that you should avoid this degree of resizing in one single step; if you do that, you will probably see the original pixels fairly clearly, so it’s a dead end approach. Far better is to resize in small increments.

I use Paint Shop Pro, version 9. It differs in many ways from both old and current versions of Photoshop, so some of the following may not apply to PS users (or any other editing software, for that matter). PSP has a number of resizing options, including Smart Size, Bicubic, and Bilinear; the latter 2 are probably similar to the standard options in many other programs, while Smart Size probably has a counterpart in the options PS now offers for size reduction and increase (smoother/sharper?).

My dabbling has hardly been exhaustive, or even very focused and diligent, but I seem to have arrived at a method that has worked somewhat more to my satisfaction than earlier trials. Here’s the process used for this image:

First, apply all the essential post-processing (cropping, colour, levels, removal of unwanted detail, etc), then:

  • resize 125%, using Smart Size
  • apply 5% Noise, Gaussian, monochrome
  • resize 125%, using Bilinear
  • apply 6% Noise, Gaussian, monochrome
  • resize 125%, using Smart Size
  • apply 7% Noise, Gaussian, monochrome
  • resize 125%, using Bilinear
  • apply 8% Noise, Gaussian, monochrome
  • resize 125%, using Smart Size
  • apply 9% Noise, Gaussian, monochrome

If I were to use all Smart Size in this repetitive way, the result would be an unpleasant effect whereby edge contrast is over-enhanced; using all Bilinear would give a result laking in ‘bite’ (see below). Used together though, a good balance can be had. Of course, the actual result will depend of various factors, including the quality of your original image (eg, JPEG artifacts), degree of enlargement, and personal preferences.


All ‘Smart Size’ (5 steps) …………………………….. All ‘Bilinear’

One point to note about addition of noise, is to be very careful if there are significant very light areas in the image. If you add noise to an area that is almost white, it will be an effective and obvious degradation of the image. The answer is to select the light areas first, using a degree of feathering, and then apply the noise and resizing steps. I usually select the lightest area in the image and use an appropriate tolerance for the selection so as to include the right amount of light tone in the image (usually around 20-30 in PSP).

After this process, I have an image that is large enough to make a 20×16 print, or thereabouts, and which could even be taken for a film image. Of course, it does not have great resolution – you cannot put in detail where there was none in the original – but it can now pass for something more than a P&S image. (I also used image stitching software, combining several images into one to increase the effective number of pixels, but in the end the resulting image was cropped almost back to a 5 MP image!) I should also note that the image was desaturated and then split-toned, so that the unwelcome false colour introduced in the original output to JPEG has been side-stepped.

How much resizing you do at each step may depend on the original image; resizing can itself introduce unwanted artefacts, so be careful and look closely at what is happening. Again, the level of added noise is partly a matter of personal choice, but I have found that adding it after (or even before) each resizing step, rather than all in one go, gives a pleasing effect, not unlike film grain. Changing the amount added at each step also seems to be worthwhile.

Now, I know that current versions of the major editing programs allow you to add a film grain effect, but I don’t know how convincing it is, and I certainly don’t have that option at present, so for others in the same boat, this may be a useful technique. Ultimately, it doesn’t beat having a better camera, but is a lesson on working with what you’ve got.

Finally, a comparison of one-step resizing against the method applied above (bottom image is one-step). The final image is 5964 × 7952 pixels, approximately a 325% increase in scale.

If you want to try this on your own images, feel free to link to the results here.

Journal Comments

  • JanT
  • Duncan Waldron