When it comes to converting your files, what’s the difference between ‘mild’ and ‘aggressive’?

A friend of mine suggested that I write this article (as his camera choices have inspired a couple of articles in the past, he deserves a credit – so thank you, Dr Iain Nicholl, for another good idea). Iain’s question was about his raw converter, which allows him to select the level of raw conversion, between ‘mild’ and ‘aggressive.’ As with a lot of software, its functions are described by metaphor rather than precise functional specification, so the gist of the question was, what does ‘mild’ and aggressive’ mean in terms of raw conversion? While I have no information on his particular manufacturer’s raw- conversion algorithms, I can comment in a general sense.

One of the major parts of converting a raw image is the process known as ‘demosaicing’. Most digital cameras use a Bayer array sensor, in which individual sensor pixels may only detect red, green or blue light. In the output file, it is usually required to have a red, green and blue value for each pixel. One way to produce this is simply to reduce the resolution by one half in each linear direction, leading to one quarter the number of pixels in the output image, where each output pixel’s value is computed using a red, blue and two green pixels (thus resulting in a four to one pixel reduction). This can be a very good solution for modern digital photography in cases where the resolution of the output device is much smaller than that of the camera. For instance, high- definition TV is only 2.1MP, so this simple demosaicing method would be fine for producing HDTV imagery from a camera with 8MP or above.

The problem arises when an output file is needed that has the same number of pixels as the camera sensor. Since each camera pixel only carries red, or green, or blue information, the other two values (the green and blue values, for instance, if the camera pixel was a red one) must be estimated. The usual method for doing this is a process known as interpolation. Perhaps the easiest way to understand this is by reference to a graph as shown in the illustration. The red line represents the brightness of the red channel in our image. The solid squares represent the values of the red channel measured by the red pixels. To create a full-resolution image, we must interpolate the in-between values. One of the simplest ways of doing this is a ‘linear’ interpolation, where we simply take the average of the pixels either side, shown by the red crosses. This has produced a reasonable reconstruction, but the brightness step in the middle has become more of a slope than a step. If this was a sharp edge, now it’s somewhat fuzzy.

More sophisticated demosaicing algorithms will take the slope (the derivative) of the line into account, or even the slope of the slope (the second derivative). This can produce a better result, shown by the red circles. The downside is that the slope can be perturbed by noise, causing false details in the image.

Returning to Iain’s question, in this model the simple linear interpolation is ‘mild’: it produces less apparent detail, but is not so susceptible to noise artefacts. The sophisticated, slope- dependent algorithms are ‘aggressive’: they produce apparently sharper results, but may suffer from artefacts.

Bob Newman is currently Professor of Computer Science at the University of Wolverhampton. He has been working with the design and development of high-technology equipment for 35 years and two of his products have won innovation awards. Bob is also a camera nut and a keen amateur photographer