The Deinterlacer Test
I'm sick to death with how people are claiming amazing
results using FlasK and VirtualDub's threshold deinterlacers.
These can be used but its about time someone did some comparison
tests on deinterlace methods. And since I've been looking into
this lately I thought I'd share my test examples =). If you do
not know what the interlace problem is I suggest you read my NTSC
/ PAL Interlace guide Here.
The problem with converting any DVD movie is that
(for rather complex reasons) the field orders can get mixed up.
In the ideal world we should be able to match the correct
top filed to the correct bottom field and perform perfect IVTC
on all NTSC movies. Then there would be no combing effects and
we would have a truly perfect movie. However, since we cannot
know the top to bottom field order we end up sticking together
two different frames together!
The proposed solution to solving this is to use
a standard Deinterlacer which merges two wrong fields together
and blend them together. This can be done with a straight blend
or, as in the case of Flask or VirtualDubs Smart Deinterlacer's
they will try to blend only moving areas and keep the non moving
area's unchanged. These Smart Deinterlacers use threshold settings.
The higher the setting the less the moving area's are blended
and the more of a combing effect you get. The lower the threshold
setting the more the motion areas are blended together and the
more of a ghosting effect is produced!
It is hoped that this selective blending will keep
the greatest possible detail and make the best of a bad situation!
The following shows examples of the various methods.
As Picard moves to the right the top field of the frame
with his head on the right is mixed with the bottom field
of his head on the left. These fields are wrong. Lets see
how common deinterlacers try to solve this. |
As you can see on the left, the normal VirtualDub deinterlacer
does pure blending and produces a smooth picture but also
a nasty ghosting effect. On the right we see the smart deinterlacer's
effect. It produces a crisper image but this is also destroyed
by wrongly blended combing effects - there is no solution
to this. If we turn the threshold up the lines look even worse!
If we turn down the threshold the effects of combing disappear
and the ghosting effect appears. In effect turning down the
threshold makes the final image look more like the left picture
above and turning it up makes it look like the one on the
above right. |
The Flask Mpeg smart deinterlacer still doesn't solve the problem,
we get:
As you can see any solution that requires blending
images is a bad solution at best. Its is impossible to blend two
different frames together!
THE BETTER SOLUTION??
In my opinion blending images destroys picture quality!
But there is another solution. DVD players (both hardware and
software) that cannot perform IVTC opt for line doubling solutions
because it's cheaper. They literally separate both interlaced
fields and copy the line above to the same space just underneath
it. This is terrible and is the equivalent of nearest neighbor
resizing vertically. PC DVD players (such as PowerDVD or WinDVD)
usually use Bob deinterlacing or a combination of Bob and Weave.
Bob is really the best of a bad situation for DVD players but
still guarantees deleting all possible remnants of combing and
ghosting effects.
It works by separating all top and bottom fields
of a DVD and making a new frame out of each of them. So a 30fps
movie will now have 60fps! Each field would normally only have
half the amount of lines in them making them 720 x 240 to prevent
this the computer interpolates between them filling in the gaps
with guesswork. So far the only correct Bob deinterlacer that
I have found is the AVISynth Bob deinterlacer. For more information
on using AVISynth go Here. The following
is the final image produced by AVISynth.
Looks much better don't it! And there are no combing
effects or ghosting! There is now also a VirtualDub smart deinterlacer
filer now that has a bob function built in, but it is still not
as good quality as AVISynth. On some commercial DVD players it
is possible to play back at 60fps using the bob style interlacing.
But for making DivX movies this is a wasteful way to do things.
So to get back to the original framerate of 30fps you have to
tell either AVISynth or VirtualDub etc., to only display every
other frame. This brings us back to the original framerate. Since
the Telecine process has six repeated frames per second ignoring
every other frame is very unlikely to cause choppiness in the
same way it would with a PAL movie, and so we have probably taken
the lesser of two evils.
I'm not exactly sure how the interpolation between
lines is achieved on bob deinterlacing but I'd imagine that it
uses some kind of bicubic filtering. For example, it may possible
use these steps:
Step 1. All fields are separated into top
and bottom parts.
Step 2. The lines from all fields are then stacked 1, 2,
3, 4 etc., to produce a single picture with no gaps between lines.
This new picture looks like a squashed pancake and end up 720
x 240.
Step 3. Each field is then High Quality Bicubically resized
back to 720 x 480!
Step 4. The DVD is now played back at 60 frames per second.
This means that even though each frame is only built from half
a frame the details of both are displayed because both frames
are shown in such fast succession.
Resize vs Bob?
If that is truly how Bob deinterlacing works (which I'm am not
100% sure of the details), wouldn't it be just as good to ignore
one field and resize the movie to 320 x 240 or 384 x 288 instead
of resizing back to 720 x 480? That is since disregarding one
field is ignoring half the information?
Well there is a possible valid reason why we would
want to resize the image back to 720 x 480 instead of using 240.
It will give a slight but significant difference in quality! Bicubic
resizing is done by interpolation that takes into account groups
of pixels. This being the case, if we resized a picture from 720
x 240 down to 360 x 240 then we will end up loosing 86,400 pixels
of information! Don't forget that there is still 720 pixels across!
But if we resize a 720 x 240 picture back up to 720 x 480 then
the bicubic interpolation will take into account these extra 86,000
pixels (at least in the horizontal direction) because it matches
pixels above and below.
True Deinterlacing
The Bob deinterlacer is better than the threshold
deinterlacers because it doesn't blend the picture. There are,
however, ways to perform true deinterlacing. That is to work out
what fields belongs to what frames. I intend on writing more information
on this soon in another article and solve the problem. But if
you are using VirtualDub I suggest you check out the filters called
Telecide and Decimate. I have only just recently found out about
them so they are quite new to me. The Telecide compares frames
to each other to determin which order they should appear. So far
the results I have seen have been great and the top and bottom
fields match every time!
Once the correct top and bottom fields are found
and reconstructed into whole frames with Telecide, all that is
needed is to delete every duplicate frame and you would have performed
IVTC. The VirtualDub Deceminate filter can be used for this in
conjunction with AVISynth. This method is not supposed to be 100%
perfect but is very close to perfect. Anyway I will go into all
that stuff when I have more time...
As a final note, the only truly 100% perfect deinterlace
method I have seen seems to be the one that uses TMPGEnc. It is
very hard to do but produces perfect results. My friend Doom9
has a guide on how to do it. Check him out Here.
|