Neat Image 1.1: No Grain, No Pain

By Klaus Nordby

Dateline: July 2, 2002
Volume 1, Number 3

 

 

Previous columns:
S-Spline 2.2:
The Larger Sharper Image


Aurora 1.0:
Flatland Does 3D

 

It's a noisy world – dammit! At least, the visual world is blessedly quiet . . . ah, peace at last. But still our photos of it are suffused with visual noise: with lumps of silver particles, with clumps of dyes and with pixels that just won't behave well.

In traditional film photography, film grain is inescapable. It is intrinsically part of any film emulsion: it is the more or less densely packed silver or dye particles that makes up the varying tones of the image. Therefore, film grain can never be avoided, only minimized – as the conventional guidance goes – by using slow films, large film formats and "not enlarging too much" (how's that for exact instructions?). But with the advent of digital photography, it has finally become possible to take pictures without any film grain whatsoever – no matter how much you enlarge. In theory, at least. For when receiving the same illumination, two adjacent pixel sensors in a digital camera or scanner should produce ecactly the same color – but they don't. In practice, the sad fact is that most digital cameras produce about as much "film grain" as traditional film, especially in low-light scenes. Why? In a word: noise. Electronic signal noise.

Owing to imperfections in the sensors, as well as in the interpolation of the three adjacent RGB sensors to produce one full-color pixel (which is the current technology), there is always some unwanted difference between the values of the pixels. Put differently, the pixels play a variation around the theme of the base color, and this variation ends up creating a grainy pattern. In low light scenes the problem is exacerbated, as greater strain is put on the circuits, causing more electronic "shaking" – analogous to the greater shaking of your muscles when lifting very heavy objects. Boosting the "film speed" on your camera – the ISO level (a newfangled term for what we called ASA back when I learned about photography) – also increases the amount of pixel noise.

Like film grain, pixel noise is not a problem when printing the photos at smallish – and therefore reasonably high-resolution – sizes. On files printed out at around 250-300 dpi, the effect of halftone screens and inkjet droplets is to cancel out all the noise – in fact, noise can even be indispensible for reproducing smooth, non-banding gradations. True. That's why gradient tools in image editors often have a "dither" option (a sad necessity with 8 bit per channel files, though redundant with 16 bits.) But if you want to make larger prints of your digital photos, at letter or tabloid sizes, the grainy noise will become clearly perceptible – even if you use a high-quality image interpolator like S-Spline. And for Web display, where the file pixels are mapped one-on-one onto the screen pixels, the digital noise will also very often be highly visible.

Here is an example of such noise, from a low-light shot taken with an excellent digital camera, the Nikon CoolPix 950, just a section of the original 1200x1600 image, displayed at 1:1. The photo was taken and saved as TIFF, so there are no JPG compression artifacts in the original image. To make the noise pattern clearer, I have enlarged the lion head two times with "nearest neighbor" interpolation, so as to not destroy the original pixels. (What is displayed here on the Web is of course a JPG file, although I have compressed it very little so as to not introduce any artifacts.)

The lioness is roaring rather noisily, eh? What in reality are smooth, textureless surfaces have here become mottled, dappled, uneven areas. To hone in on the culprit, we can see that while the B&W image of the Red channel is not much marred by noise, the Blue one certainly is (the Green is similar to the Red, so I dropped showing it). It is usually the Blue channel, which suffers most from digital noise (why, I don't know). And while sophisticated image editing programs like Photoshop come with a gazillion filters for all kinds of effects, there is – as yet – no single filter that can adequately eliminate this kind of noise without also introducing fuzzyness.

 

To the rescue . . .

Enter Neat Image from ABSoft. Its sole function in the Grand Scheme of Things is to eliminate digital noise from our photos, whether grabbed with cameras or scanners. On the left is a screenshot of the whole interface (click for larger view). Neat Image is a standalone program, not a plugin, but using the program is quite simple: just open your noisy file (JPG, TIF or BMP), marquee-select an area of flat tones with no details, tell Neat Image to analyze the area, look at the preview and – if it looks fine – apply the noise profile to the whole image. (Do I have to say that you must also save the file?) If you like, you can also apply sharpening at the same time. Neat Image allows for a lot of manual fine-tuning of the parameters, but the automatic procedure works fine in most instances. Here is a before-and-after, side-by-side comparison of the lionness head, also enlarged two times:

Note that all noise has been fully eliminated, without introducing any unsharpness – wonderful! What happens is that Neat Image can extract the noise pattern, which is largely unique to each image, and then "subtract" it from the whole image, without changing tonal values or sharpness.

If you now think that the sharpness has been notably affected, I submit that this is because the overall noise in the original falsely contributes to the appearance of sharpness: you mistake the image noise for object texture. But this object has no texture – I know, because the lady and her lioness live a happy life on my desk – and so we must judge the image's sharpness by examining the abrupt edges between lights and darks. And when you do, you will find that there has hardly been any noticeable changes.

What lurks beneath the tabs?

Delving a bit deeper into the program than the most basic "use it and lose it" function, we find quite a bit of sophistication. The four – most annoyingly non-detachable – function tabs are here shown next to each other, courtesy of my slick cutting and pasting, thus revealing all the various controls. Device Noise Profile is the main control, with the blue little thingy (a ruler?) being used to analyze a sample, once you have marquee selected it. Here you can also pick the color space model to be used, open/save your custom noise profiles and annotate your settings. The idea behind a noise profile is that a given camera under similar light/exposure conditions will produce the same kind of noise. Hence – if you know that a bunch of photos are similar in this respect – you only need to analyze one and can then apply the generated noise profile to all the rest.

Neat Image can work in three different color spaces: YCrCb Symmetric, YCrCb JPEG (also known as YCC) and the trusty RGB. No CMYK, but that's really an irrelevant omission, as no consumer digital imaging device produces CMYK files directly. The vendor advises using the default YCrCb JPEG space for most cases (and I have blithely taken their word for it and not yet tested using the other two).

The second most useful tab is Smart Sharpening, which – when enabled – performs sharpening along with the denoising. I don't know if this function uses the unsharp masking method or not (though I suspect so, owing to the type of sharpening I see), but the quality of the sharping seems fine. The best thing about the Smart Sharpening is that it hardly takes any more time to process an image with sharpening than without, so this is one fast algorithm! But I also found that while the small preview in Neat Image seemed to give a good sharpening result of the previewed areas, when I applied it to the whole file a lot of unforeseen odd effects would occur in areas I had not been able to preview. So, for my own use, I will – for now – mostly forego using Neat Image's sharpening. I find that Photoshop's instant, full-screen preview – together with the three standard variables Amount, Radius, Threshold – is more predictable.

The two other tabs, Noise Filter and Noise Profile Equalizer, are powerful ways of fine-tuning the denoising. But since I have so often found that the profile which Neat Image automatically generates does such a fine denoising job, I have not yet tested these controls extensively. So I will only acknowledge that they may come in handy some day, for that priceless photo which deserves the royal treatment.

 

The Plugin of My Dreams

This is all I want out of life (among many other things, naturally), namely a Photoshop plugin which has:

  • A large, zoomable before-and-after preview
  • The high-quality image interpolation of S-Spline
  • Fractal analysis of textures, and regeneration of higher-resolution textures
  • The denoising capabilities of Neat Image
  • Automatic discovery of flat image areas for noise profiling
  • Deshifting of color shifted pixels along edges
  • The unsharp masking functions of Photoshop
  • Removal of JPG compression artifacts
  • Anti-aliasing of existing jaggies
  • Fully automatic batch processing

Is this really too much to ask of my fellow men? To me, it seems like a modest request. But then, I don't have to code this beautiful beast.



A Perceptive Trick

To make your JPG files quite a bit smaller – about 10-20% – do this:

  • Convert to LAB color space
  • Select the "a" channel 
  • Apply Gaussian Blur - about 2 or 3 pixels 
  • Ditto for the "b" channel
  • Save as JPG

What this accomplishes is to reduce the amount of "sharp" information in the two color channels. This reduction hardly makes any difference to our eyes, but the JPG compression algorithm will have less information to worry about. The higher JPG quality setting you use for the final save, the more you will gain by this procedure. You don't have to start with a JPG file – any format wil do as the original. An additional wise move is to apply, as the second step, some Unsharp Masking to the LAB file's Lightness channel – the web is choking with fuzzy images! 

And making a macro of it all is of course the only sensible thing to do.

Honest shortcomings

In Neat Image's 35-page PDF manual, which is clear in explanation but not exactly great design (see my diatribe against ugly manuals in my previous column), we discover this refreshingly forthright statement: "The current version of Neat Image is the intermediate result of our research on noise filtration." What? It is not The Totally Ultimate Program Of Its Kind? I'm stunned by such honesty. And then follows something I have never seen in a software manual before, but which I strongly applaud: the company's clearly spelled out plans for improvements and additions! I'm stunned again. And in this vast ocean of software non-nondisclosure, we discover that the developers are planning these features, among others: hot pixel removal (better called "stuck pixels"), batch mode, support for gray-scale images, support for 48-bit images – and a plug-in version.

Given that this list, as well as other items mentioned, covers a lot of what I consider to be inadequate in Neat Image now, I will reward this refreshing openness by going somewhat easy on my critical remarks.

For there are a few things that make the program awkward to use. There is no full sized before-and-after preview of your file. Nor can you simultaneously view variants of various filter settings or zoom in on your image. The UI has vast areas of wasted gray space, as the tabbed controls are not detachable. The selection of areas for analysis require you to look at some itty-bitty numbers in the lower-left corner, to check on the pixel size of the selected area – a sure recipe for eyestrain. The area to be analyzed must be a minimum of 60x60 pixels, of smooth, even color – and not all images will have that. You must use scrollbars to move around in the image, instead of a grabber hand. And you can neither open files by drag-and-drop onto the program, nor use regular CTRL-C/V for pasting to and from the Clipboard – reactionary! Oh – and a cropping tool would have been damn handy!

That's as much critical leniency as I can stand.

Speedwise, it must be admitted that Neat Image takes a fair amount of processing power. Even on my well-rigged Athlon XP1800 system it takes about 50 seconds to denoise one 1200x1600 image – and that's only a 2-megapixel image file, with output from the newer "prosumer" cameras now being both 4 and 5 megapixels. But considering how great the photos look after they have been denoised, this CPU time is a small price to pay. (And in The Future Plans the developers promise much speedier execution in the next version.) The also-promised fully automatic batch function would of course allow you to pick a bunch of pictures and leave the machine to itself for some hours, instead of the present manual, tedious one-by-one procedure.

Conclusion

There are competitors to Neat Image, like Grain Surgery and the forthcoming Image Doctor from Alien Skin (now in public beta). Yes, I have looked at those also, but as this is not a comparative review I will just state that – for now – Neat Image is my denoising tool of choice. The two others are plugins and may have slicker UIs, but Neat Image's technology is better and easier to use: its automatic analysis of a sampled area makes noisy-grainy image files look superbly clean, with no loss in sharpness.

And at the price of merely $30, this is a great bargain!

In five years or so, digital camera technology will – hopefully – have developed sufficiently to have eliminated all random noise, and all our photos will be as smooth as silk. But until then, Neat Image will serve you faithfully, and – like a well-trained butler – quite noiselessly.

 

A Noiseless Sandwich

There is an interesting technique which can eliminate all digital camera noise without special software – provided your subject is totally stationary and you have a sturdy tripod. Take five identical shots of the still-life subject – same exposure, same angle, same everything. Then load the files into your bitmap editing program of choice and stack them on top of each other in one layered file. Now change the Transparency (or Opacity) of the top image to 80%, the second from the top to 60%, the one under that to 40% and the next to 20%, with the bottom layer unchanged at 100%. The blending mode for all the layers must be Normal. In this sandwich of totally identical images the only difference is the random variation of noise – and they all pretty much cancel each other out in the transparent sandwhich, making for an almost perfectly smooth, non-noisy image. More shots can be used – at 10 images and blending mode steps of 10%, all perceivable noise will be gone. For nailed-down studio photographers with sitting ducks for subjects, this is a good, fast (with a macro) and cheap technique – but for everybody else it's useless.

Although, on the whole, it's really preferable to use Neat Image – and studio photographes who can afford a 1,000-ton tripod can certainly also afford this underpriced $30 program.

Picture credits: I read about this technique in Photoshop User magazine, in an artice by Jim DiVitale, who credits photographer Bo Lorentzon with the discovery. I have briefly tried it out, and it works as advertised.

Or your money back.

 

Information

Name/Version: Neat Image 1.1
OS: Windows only
Download size: 900 Kb
Price: $30 – waaay underpriced!
Upgrade price: Free for registered users
Demo? Yes, fully working
Vendor: www.neatimage.com
(with a helpful support forum)

Brighteyes & Eyesores

Speed:
Output Quality:
Innovativeness:
Cash Value:
UI Annoyances (fewer is better):

Shortcomings:

Total Rating:
The software was tested on this system:
Enermax 431 Watt PSU, Abit KR7A-RAID, AMD AthlonXP 1800, 768 Mb Apacer DDR, 2 x 40Gb IBM Deskstar 60GXP in RAID 0, Matrox G550 32 Mb, 21" Sony Multiscan E530 (Trinitron) 1200x1600 24 bit @ 90Hz, Windows 2000 Pro SP2

Klaus Nordby is a designer, publisher, painter and writer. Some of his graphics work can be found at www.klausnordby.com/xara. He studies 17th century Dutch painting, the philosophy and psychology of visual perception, rereads Ayn Rand's novel The Fountainhead and tests esoteric graphics software. He is single and commutes between Norway, Sweden and the USA, hopefully to the endless delight of airline stewardesses. They can reach out for him at .