Petteri's Pontifications RSS feed
PDF version Digital Black and White

Grain

I like grain, especially black and white film grain. I'm not too particular about the brand, T-Max looks just about as good to me as Tri-X or one of the Ilfords. But I like it to be there; it gives a sense of structure and texture to the image that's quite pleasing. I don't like grain in color images at all as much, though, and the grain in color neg isn't nice at all. Therefore, even though I like to think of digital B/W as a whole new medium and feel quite strongly that trying to imitate B/W film is usually not the best way to go about it, it's not very surprising that I've tried any number of techniques of simulating grain on clean digital captures. I've tried a variety of noise-adding and Photoshop grain filter techniques, until I finally decided to try the obvious: get off my lazy ass, scan in a frame of B/W neg with some boring flat sky, and try to incorporate that into digital B/W images.

Guess what? It worked. Miles better than anything else I've tried. I guess the folks at Grain Surgery were right all along, but I'll be damned if I'm going to pay for software that just adds and removes grain.

The tricky part was preparing the field of grain. After that's done, it's so simple it's hardly even worth calling a technique:

An actual-pixels crop of one of the B/W pictures I processed for this article. No grain, and just a touch soft, too.

  1. Take your prepared grain field. Copy and paste it into a new layer on top of the image you want to grainify.
  2. Set mode to Overlay.
  3. Pick up jaw from floor.
  4. To control the look of the grain, adjust opacity, apply Gaussian blur, or scale the grain field up or down.

The same image after adding grain. Is it real, or is it Photoshop? -- Actually, this is rather more grain than I would want for the picture; for the one I eventually ended up with I downsampled the grain to about 75% and turned down the opacity too, for a subtler effect. I decided to show this version anyway, since it illustrates the effect better.

To get my even field of grain, here's what I did:

  1. Scanned in a frame of B/W neg at 16-bit gray (since I would be doing violent things to it in post-processing). I picked one I took in Budapest, that consisted mostly of boring, uniform, flat gray sky. One specially shot for the occasion would've saved a bit of work later, of course.
  2. Since I wanted a big chunk of grain, I copy-pasted the scan four times flipping each copy so that there wouldn't be abrupt lightness changes, and cloned out the seams. Because of vignetting, my cheap-o scanner, and the fact that it was, after all, cloudy sky, my grain field was rather variable in lightness.
  3. Did stuff to it to get rid of lightness variations. I don't recall exactly what I did, but in essence I duplicated the background layer, added Gaussian blur to get rid of the grain in the top layer, inverted it, and jiggled with the blend modes and opacity until the grainless negative canceled out the lightness variations in the grainy positive.
  4. Adjust Levels so that the histogram ends up neatly in the middle. Makes a nice Gaussian bell curve too.
  5. Convert to 8-bit, since the violent parts are now over.
  6. Apply the Dust and Scratches filter to get rid of, well, dust and scratches (but leave the grain structure alone). Then clone out the rest of the bigger boogers.
  7. Apply Unsharp Mask pretty aggressively, to sharpen and accentuate the grain. Voilà, I had a moby frame of grain -- uniform, very nearly 50% gray, and structured.
  8. Save as PNG -- grain doesn't compress well at all, so JPEG is a no-no. Lossless compression is the way to go.

Now I can just open up my saved grain field, slap it on the picture, set it to Overlay, and I'm done. Faster than waiting for the Film Grain filter to calculate its stuff, and the result is miles better. If I want finer grain, I just scale down the grain field (it's big enough for that!), if I want more accentuated grain, I increase its contrast, if I want subtler grain, I turn down the opacity or apply some Gaussian blur to it. Easy!

A small sample of the grain field I prepared. You can download the full-sized PNG from David Gandy's website -- thanks for the bandwidth, Dave.

By the way, Russell Brown has a QuickTime tutorial on adding film grain that uses a pretty elaborate mask-and-screen technique. The advantage is that the scanned grain field doesn't need to be a uniform gray. The disadvantage is that it doesn't work -- not with Photoshop CS anyway. He says so himself on the site. I get a feeling that it actually exploits a bug in older versions of PS to work. To my mind, screening an image through the grain and the negative image of the grain should cancel out the grain, and in fact this is exactly what happened when I tried it -- perhaps older versions of Photoshop had a rounding error somewhere that kept the grain in. In any case, it's a lot more complicated than my technique, once you've prepared your even grain field, that is.