SD to HD with AviSynth



NTSC DV original (audio removed)

     If you're not impressed by what you see above, I have nothing to offer you, sorry. Please do have a nice day. Those of you interested in achieving similar results, read on.

     Sometimes your SD needs to be HD. Modern hardware and software can do respectable work on the fly, scaling things on playback, but on occasion you'll want, for example, to fit an old SD clip into an HD project, and you just have to do the best you can scaling it yourself, beforehand.

     "Garbage in, garbage out." Yes, I know. Everyone loves to say that, and it's true, but also true is "'pretty good' in, 'Hey, that's a lot better than I thought it could be' out." Doesn't roll off the tongue quite as well, but that's beside the point. Along those lines, after some months of hunting and experimentation, wiling away the hours testing every plugin and script I could get my hands on and comparing results, I came across a set of tools that allowed me to upscale standard definition video clips to high definition dimensions at a quality level that astonished me.

     The tools in question are, specifically, the AviSynth scripting engine, and one addon in particular, a motion compensated bob deinterlacer called "TempGaussMC". Since the necessary pieces of this puzzle can be difficult to find, and intimidating to use when you're unfamilar with them, I decided to write a wrapper of sorts to help out.

     The script I ended up producing provides for more than just stretching SD up to HD sizes, however; are you interested in scaling some HD material down to SD sizes? You can do that. Or, if you don't care about high definition at all, and just want good 16:9 footage from a 4:3 camera, I've provided for that as well. Actually, the approach I've taken allows any size input, with any pixel aspect ratio, to turn into anything else. And thanks to the AviSynth/TempGauss combination, you can do it all at a quality level that's an order of magnitude beyond what you get from most deinterlace-and-resize workflows. For the purpose of this tutorial I'll restrict my instructions to DV->HD upscaling, so if you're interested in different input and output sizes, read up on the script's details on its page.

     Most of you are likely unfamiliar with AviSynth and have, at best, only heard the name whispered in hushed tones, by hooded figures inhabiting the darkest corners of the internet. Don't worry. Experience would make this easier, yes, but a determined reader should be able to keep up. I'll walk through everything step by step, while assuming on your part only a basic knowledge of video processing concepts.

     You'll need a multi-core PC running a 32 bit version of Windows (I don't have a 64 bit copy to use for testing, sorry), lots of time to process the scripts we'll be running, and the patience to sit through my obnoxiously lengthy explanations. If you meet those criteria, we can get started.