Before I began, I'd like to give a special thanks to Aleksander Kozak for his help in testing and providing the HD footage used in this post.
Also, this is part 1 of a series of posts. When I've finished part 2, I'll link to it here.
Background
One of the things about working as an editor is that the technology is constantly changing. There are new pieces of software, plugins, and even hardware that are released on a regular basis, and keeping up with all of it can be challenging.
Roughly about 10 years ago, deinterlacing had four general types of solutions:
- Hardware-based video conversion boxes like the Teranex that are designed to perform resolution and frame rate conversions in real time. Simple, but not always the best quality, and the hardware is pretty expensive (especially when you consider that you also need both a separate dedicated playback device and a recording device in addition to the conversion box).
- Services like Cinnafilm's Tachyon that do the same sort of job using very complex and proprietary software and hardware on a rental (or on-premises, for a higher fee) basis. Great results, but very expensive.
- Built-in deinterlacing within video editing programs. I haven't used either Media Composer or Final Cut Pro X's implementation, but with everything else I've tried, this is garbage. Unless your entire project from beginning to end uses interlaced settings, editing programs tend to toss out every other field and line double the remaining field, which cuts both motion detail and frame detail essentially in half. The only way I've seen to get around this inside an editing program is to use the FieldsKit plugin, which works a bit better than real-time conversion boxes, but not as well as SAAS options like Tachyon.
- Open source video filters. For a while, your only options here were frame blending and "bob" deinterlacing, neither of which were particularly great. Most early tools for dealing with interlacing in this space focused more on combining similar fields together - mainly as a result of them being geared towards processing TV captures of anime. Slightly later methods like Yadif improved on deinterlacing quality, but were still only working on individual fields, using still image interpolation to essentially round off the edges of aliasing after line doubling.
That all changed when QTGMC came along. Like its less-optimized forerunner TempGaussMC (which I've never used), QTGMC is an AVISynth deinterlacing script that uses a combination of several different plugins. It separates out individual fields and tries to use data from surrounding fields to generate full resolution progressive frames from them. This is very similar to what "motion flow" and other motion interpolation algorithms do on modern TV sets, but focuses on accuracy rather than wow factor. While it's not trivial to set up, the end results are excellent, combining greater detail with highly configurable noise reduction and other options. In some ways, the results can actually be better than many of the above solutions.
But it's always good to do a reality check periodically - which of these methods works best? I don't have access to a Teranex or the cash to use Tachyon, so I'll be comparing mostly free options and/or ones embedded in >$300 programs.
TL:DR
If you don't want to read through the entire post, here's my opinion about each of the options that I currently have access to:
QTGMC: Best retention of original image detail and handling of edge case artifacts, but you have to watch for colorspace issues when working with Adobe programs if you render out using FFMPEG. Also, different options can change smoothing and noise reduction quite dramatically.
Topaz AI: Excellent results that can be occasionally thrown off by oversaturated colors and constantly fluctuating semi-transparent detail (like heat haze). Best used for upconverting content to higher resolutions. Also uses FFMPEG to render out results, so some codecs can have the above-mentioned colorspace issues.
DaVinci Resolve 17 Studio: Solid deinterlacing, but can also be thrown off by oversaturated colors. Not as much smoothed detail as the other options, but in motion most viewers probably wouldn't notice.
Bwdif (FFMPEG): Good at reconstructing smooth lines and retaining overall image detail with SD content, faster than QTGMC but not as good.
Estdif (FFMPEG): Good at reconstructing smooth lines and retaining overall image detail with HD content, faster than QTGMC but not as good.
Yadif (FFMPEG): Just does interpolated line double of each single field rather than taking surrounding fields into account. Diagonal high contrast lines have weird "rounded" jaggies that some (like me) might find displeasing. Very fast.
Bob, Weave, etc - These are all variations on very basic line-doubled deinterlacing. Bob would be my preference out of these, but in general I would only use them if you absolutely have to.
Premiere, Resolve (non-Studio), editing programs in general - Garbage. Cuts both resolution and framerate in half. Note that I'm only talking about the standard deinterlacing inside of these programs - you can get/install plugins that can do a much better job.
Let's check out some examples:
First clip - 25i HD material
This was a tough clip for the commercial options to deal with due to some issues with the very oversaturated reds, but I feel like it shows off the differences between deinterlacing methods pretty well. Also, the differences between these methods are much less noticeable in motion.
(Please click pictures to enlarge)
Original
This is what an interlaced frame looks like - two fields woven together. Obvious combing artifacts. If you look close, you can see the issue with the edges of the oversaturated reds - some interlacing artifacts don't line up with the interlacing lines. I've actually never seen this before, but I feel like it turns out to be an interesting indicator for what various methods actually do.
Bob (After Effects, Premiere Pro, many other editing programs)
This is just the original image run through After Effects. By default, AE uses a terrible method to display interlaced footage that drops every other field and does a simple line double for the remainder. However, it does get rid of the interlacing artifacts in the oversaturated red.