Digital Digest
  • About the Author
  • Email
  • Disclaimer
  • Essential Links
  • Essential Tools
  • Ethics, Piracy & Philosophy
    Convert DVDs with Flask Mpeg
  • Extracting the DVD
  • Using FlasK Mpeg
  • Resizing in Flask
  • Convert DVDs with Mpeg2avi
  • Extracting the DVD
  • Using Mpeg2avi
  • Resizing in Mpeg2avi
  • Advanced DVD Conversion
    Convert DVDs with DVD2AVI
    Nandub SBC Encoding
  • Using Nandub
  • Using DivX 4.0
  • Audio / Video Editing
    Advanced VirtualDub
    Digital Video Capture
  • Video Capture: Part 1
  • Special FX Tutorials
  • Morphing Buffy Style
  • Star Wars LightSaber Effects
  • The Exorcist Effect
  • Other Video Formats
    VCD & SVCD Guides
  • DVD to VCD
  • AVI to VCD
  • Multimedia Guides
  • DivX with Subtitles
  • Mutilanguage DivX
  • Multimedia DivX Pt 1
  • Multimedia DivX Pt 2
  • Appendix / Tips
  • Aspect Ratio's
  • Resizing DVD's
  • DivX Quality Guide
  • Bicubic vs Bilinear Resizing
  • Deinterlace Method Test
  • Video Comparisons
  • WM8 Quality
  • Basic DVD Structure
  • NTSC / PAL & Interlace
  • AVI 4GB Limit
  • Key Frames & Delta
  • Monitor Setup Guide
  • FAQ's
  • Questions Answered
  • Downloadable PDF Guides
  • Glossary
  • Word Definitions
  • My Guides Translated
  • Go Here
  • 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!



    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.

    Duplication of links or content is strictly prohibited. (C) NICKY PAGE 2000