(This one has been driving me nuts for weeks…)
My new MacBook Pro came with iMovie ’09, so I decided to edit some 3-year-old DV tapes of my son that I still hadn’t dealt with. The output quality was really bad – it contained what I can only describe as severe posterization or banding in the shadows, which also had the effect of amplifying the noise in the movie. When I tried the same thing on iMovie ’06 (or “iMovie HD”, to give it its proper name), the result was fine. Here are some stills from that movie:
Original DV footage (click image to enlarge):
iMovie ’06 (Exported with Full Quality option) (click image to enlarge):
iMovie ’09 (Exported with HD option) (click image to enlarge):
Take a look at the shadow below his head. iMovie ’09 has absolutely butchered (I don’t think that’s too strong a term) the footage.
Now if you scour the Apple forums you’ll find many people telling you this is because iMovie ’09 deals poorly with interlaced footage, by dropping every other field from the movie, effectively halving the resolution. However, I eventually realised that the interlacing is not the problem here. Even if I deinterlace the footage first with MPEG Streamclip (which produces a very nice result BTW), iMovie ’09 still butchers the deinterlaced video, producing the same horrid output.
Anyway, for my DV footage I gave up on iMovie ’09 and reverted back to iMovie ’06, and I’m very happy with the results. Ironic that a program from 2006 gives better results than one from 2009, but there you go.
iPhone 4 to the rescue? Erm, no
Recently, though, I got an iPhone 4 which shoots 720p HD. Surely iMovie ’09 should produce perfect results with iPhone footage, right? After all, they’re both Apple products!
Wrong. The posterization is still there in the shadows. It’s usually not so noticeable because the iPhone 4 is higher res, and also much less noisy, than my old DV camera. But it’s definitely there.
Incidentally, although I’m using iMovie ’09, the banding is apparently just as bad in iMovie ’11. (I’ll buy iMovie ’11 at some point – if I can bring myself to – just to confirm this.)
Here’s an example. Here I’ve deliberately used some fairly low quality source footage with subtle, noisy shadows to make the effect clear. However, the effect is noticeable, to a greater or lesser extent, in areas of subtle shadow in most 720p footage.
Original iPhone 4 footage (click image to enlarge):
iMovie ’06 (Exported via QuickTime, H.264, Best quality) (click image to enlarge):
iMovie ’09 (Exported via QuickTime, H.264, Best quality) (click image to enlarge):
Check out the trackpad and surrounding area. Dear oh dear. As you can see, as well as introducing ugly banding, the posterization effect kind of amplifies the noise, making it much more noticeable and annoying:
(By the way, I got a friend to run these tests using Final Cut Pro. The resulting quality was pretty much identical to iMovie ’06 – i.e. acceptable.)
Many people on the Apple forums have reported this problem when using still photos within iMovie (see here and here), but the truth is it happens on any image (still or video) that contains dark, subtle gradients. Unfortunately, many photos contain dark, subtle gradients – and, since they aren’t moving around, you notice the problem more.
What’s interesting is that you don’t get the banding when exporting any iMovie-rendered content such as maps and globes. So it appears to be a problem with the way iMovie transcodes from the source video to the output, rather than a simple output encoding issue.
A bit of perspective
Now many would say I’m being picky here, and they’d probably be right. Colour banding is an inevitable result of transcoding highly compressed footage. Even Final Cut ends up with a bit of banding in many of these scenarios.
iMovie ’09/’11′s banding problems won’t bother many people. They only happen on certain types of footage (subtle and/or noisy shadows), and they look a lot worse on a high-res Mac display than they do on a TV (which is where many people will be watching home movies). In fact you can hardly see the banding on a TV a lot of the time.
Another thing I realised is that if you calibrate your Mac display properly then the banding is less noticeable. My MacBook Pro display was overly bright and washed out; once I calibrated it properly then much of the posterization and banding were “lost” in the shadows. (In fact, if you’re reading this blog post with a properly calibrated display then you may well be wondering what all the fuss is about! Try turning up your brightness…!)
But it’s still bad…
That said, the banding is definitely there in the output, and it’s definitely worse than either iMovie ’06′s or Final Cut’s output. And I want the best possible quality output I can get for my home movies. These movies of my kids are irreplaceable, and what’s more, I might need to transcode them to another format in 20 years’ time. I don’t want to start out with an inferior quality movie.
I’ve tried messing around with virtually every export option, including QuickTime H.264, AIC and None. They all produce the horrid banding. It definitely seems to be a problem with the way iMovie processes the source video, rather than an export issue.
A workaround (YMMV)
The only thing I’ve found that helps is to increase the brightness of the source footage, taking the shadows above the threshold that causes colour banding. You have to do this before you import the footage into iMovie (increasing the brightness using iMovie merely brightens the banding, since iMovie has already butchered the shadows by that point).
The easiest way I’ve found to do this is to use MPEG Streamclip:
- Open the original footage in MPEG Streamclip
- Choose File > Export to QuickTime
- Select H.264 compression (you can also use Apple Intermediate Codec, but H.264 seems less blocky)
- Set the Quality at 100% and the Limit Data Rate to 10000 Kbps
- Leave Frame Size at unscaled
- Now click Adjustments, and drag the Brightness up to, say, +20
- Click OK, then Make Movie
- Import the resulting movie into iMovie, and you should get better results.
You may have to play with the Brightness and maybe Contrast in MPEG Streamclip to get something decent – don’t up the brightness too much or you’ll see artifacting in the blacks in the movie.
For example, here’s the MacBook Pro movie from earlier, with the brightness increased by 15 in MPEG Streamclip before importing into iMovie ’09 and exporting (click image to enlarge):
You can usually do the same trick with still photos before bringing them into iMovie: Open them in Photoshop, use Image > Adjustments / Shadow/Highlight to brighten the shadows, then drag into iMovie. Another trick is to select the shadows using Select > Color Range, then add some noise (Filter > Noise > Add Noise > 5%, Gaussian, Monochromatic). This particularly helps with smoothing out the banding in large subtle gradients.
At the end of the day, though, these are all just band-aids for the fundamental problem – iMovie ’09/’11 is brutal with the tonal range in shadows.
The way forward
The only permanent solutions to this banding problem seem to be:
- Abandon iMovie ’09/’11 and switch to Final Cut Express (or another NLE) that doesn’t exhibit this banding
- Stick with iMovie ’06, or
- Moan at Apple until they fix it
I’d love to stick with iMovie ’09/’11 since they have so many great features (particularly stabilization and – in ’11 – the rolling shutter fix), and they’re really quick and nice to use. But if the quality’s not there then what’s the point?
Does anyone have any other feedback, suggestions, insights, or workarounds for this problem? Please let me know in the comments. If you can fix the problem then I’ll be eternally grateful, and I’ll also buy you a couple of beers (or PayPal you the monetary equivalent!).