Log in

View Full Version : AviSynth Deinterlacers Comparison


Grafisher
3rd April 2006, 21:39
I made a little visual comparison of some popular deinterlacers for AviSynth 2.5. It's in no way extensive, but still may be used to decide between various methods.

http://heptium.sh.cvut.cz/~integra/deint/
(contains approx. 7 MiB of PNG pictures)

IanB
4th April 2006, 06:23
Not bad ;)

To aid the uninitiated you could add comments about the defects in each image, maybe painting a ring around the defect if they are subtle.

e.g. there is the problem with the 2 lines you noted in your summary. Another examples could be the Yellow circle on the floor and how it has much varied treatment.

tritical
4th April 2006, 11:57
If you have the time could you try using "maxd=36" in the eedi2() call for the methods using it (tdeint+eedi2, securedeint, and mvbob). The larger search area will allow it to connect those two middle lines and the far back line, but does make some parts of it worse (the yellow circle), unfortunately.

scharfis_brain
4th April 2006, 12:30
But unfortunately you need to edit all eedi2() - calls in mvbob.avs to adjust the maxd parameter.

It is not - yet - parameterized in my deinterlacing functions.

shpitz
4th April 2006, 13:48
it is kind of hard to tell which one is better visually, even much better than others. for example, i get around 40fps using leakkerneldeint which gives good results, yet using eedi2 i get around 8fps.
i would like to know how i can compare 2 encodes of the same short clip in a visual and mathematical way, so i can determine if the big encoding speed drop is worth it.
can someone help me out here?
thanks

Grafisher
4th April 2006, 15:55
Unfortunately, I no longer have the original source, so I used a very similar interlaced frame, which has the same problems.

I added a few more pictures with various settings of "maxd" and "nt", which seem to help the edge reconstruction. The value of maxd=20 appears to be the best choice for this source.

Only TDeint, SecureDeint, and MVbob are tested in combination with EEDI2:

http://heptium.sh.cvut.cz/~integra/deint/tweaked/

Revgen
4th April 2006, 16:44
MVBob looks the best to me.

TDeint+EEDI2 and SecureDeint tie for 2nd.

This is fairly consistent with my experience with TDeint+EEDI2 and MVBob.

Grafisher
4th April 2006, 17:34
i would like to know how i can compare 2 encodes of the same short clip in a visual and mathematical way, so i can determine if the big encoding speed drop is worth it.
You may need to download the pictures to a local directory, and compare them in a picture viewer.

It is hard to compare them "mathematically", because we don't have the original progressive frame, which was never even captured.

The last 3 compared deinterlacers are clearly superior to the rest, mainly because they use EEDI2, which does a good job in eliminating jaggies, but somewhat slows down deinterlacing.

MVbob is slow for certain.

communist
4th April 2006, 17:51
i would like to know how i can compare 2 encodes of the same short clip in a visual and mathematical way
For a visual way you can try out the following methods:
- Interleave(encode1,encode2)
- StackHorizontal / StackVertical
- mg262's CompareVersions (do a search in the forum)
- open 2 instances of VirtualDub

scharfis_brain
4th April 2006, 19:00
please note, that all deinterlacers besides bob(), smoothdeinterlace(), securedeint(), mvbob() and tomsmocomp() produce the "hole-problem" especially with short shutter footage and lineary pan of patterned strucures.

So I recommend (leak)kerneldeint/bob(), tdeint() and the other deinterlacers only for using with telecined and/or fieldblended footage.

The above mentioned deinterlacers all prefer bobbing over weaving and thus never try to enforce static areas where there aren't any. This is at first caused due to a weak or non-exsistant motionmask:
bob() -> none
tomsmocomp() -> none, but has a motionsearch for its limited MoComp
smoothdeinterlace() -> weak, has a long temporal mask, but isn't stable on true static areas

My tests with a long temporal masks with try to avoid holes at every cost while preserving static areas:
securedeint() -> long temporal mask with care of true static contents
mvbob() -> bases on securedeint() (previous version were based on kernelbob() or tdeint() so these prev. versions were producing holes, too)

CruNcher
6th April 2006, 23:44
scharfis_brain you remember the standup.vob and spin.vob samples i showed you some years ago :) you really did it your kernelbober is really one of the most fastes and quality deinterlacers i ever saw congrats and also to trbarry,fitzick and manao without you the motion deinterlacers wouldn't have been possible :) http://files.x264.nl/50to25fps-krnlbob-logofix-smoothcam.avi thx to Jarod for hosting :)

scharfis_brain
8th April 2006, 11:02
@cruncer: this video is NOT suitable for mocomp!
this video is standards conversted from 24p.

this means: use RESTORE24()
afterwards you may use some mocomping.

even mocomped deinterlace like mvbob() will give worse results than tdeint(mode=1, type=2). TDeint is the only deinterlacer that is able to sqeeze out the last bit of detail when deinterlacing standards converted stuff. mvbob() won't be good on this.

ALso the blending in this video will infere with the motionestimation/compensation for framerate changes.

further, a change from 50 to 25 with whatever filter is nonsens, cause a plain selecteven() will (mostly) do the same.

CruNcher
8th April 2006, 17:16
Hi scharfis_brain ooops ok i used Restore24 v1.0 RC1 now, but the camera spin is absolutely hacked now :(

MPEG2Source("spin.d2v").restore24().selecteven <- no smooth motion
MPEG2Source("spin.d2v").restore24().ChangeFPS(25) <- still not perfect smooth, black dots in the Edge Lines of the MTV Logo when the camera moves
MPEG2Source("spin.d2v").restore24().temporalsoften(1,255,255,0,2).ChangeFPS(25) <- still not as smooth same problems as above

MPEG2Source("spin.d2v").securedeint(th=3,l=0,type=2).temporalsoften(1,255,255,0,2).ChangeFPS(25) <- the nicest quality/speed setting i found so far (no distortions (black dots) @ the edge lines of the Logo when the camera moves, no frenzy edges @ the bottom of the frame as with mvbob and a absolute smooth camera spin, background even detailfull visible in motion (audience, set))

here the result of restore24 and securekrnlbob side by side http://rapidshare.de/files/17517838/restore24-50to25.avi.html

and here is the source again http://rapidshare.de/files/17491820/spin.vob.html

btw just by experimenting a little and mixing restore24 and my together http://rapidshare.de/files/17504344/crazy-spin.avi.html ;)

Didée
8th April 2006, 20:22
ok i used Restore24 v1.0 RC1 now, but the camera spin is absolutely hacked now :(
Probably wrong usage. Same for the "black dots" artefacts - that's not "a problem of Restore24". It is a problem of most (all?) motion-adaptive deinterlacers. And R24 can only use what is out there ...

Using this pack (http://forum.doom9.org/showthread.php?p=774197&highlight=restore24#post774197) of Restore24, and calling it with

Restore24(numr=2997,deno=6250,useLL=true,r24deint=4,r24deintth=0,fra=1,frr=1,edgetype=0,r24size=.75,nr=-5,ldmp=32.0)

gave me this result (http://rapidshare.de/files/17516698/normal-spin.avi.html). Actually, *this* should be 100% regular motion.

Your last script with securedeint-bobbing plus averaging can't be *really* smooth, because nothing is done against the basic motion problem: the uneven distribution of unique frames over time. It just gets kind of hidden in the temporal smear.

scharfis_brain
8th April 2006, 21:12
@cruncher: you're not doing the things step by step.

restore24 CANNOT be called in multiple instances.

also restore24 puts out 23.976 fps, which is the initial framerate of the underlying video.
PLEASE do not alter it, if you want to retain smoothness.

here I get very stable results with restore24. not a single dupe or drop.

scharfis_brain
8th April 2006, 21:13
@didee: I just identified the black-dot problem!
I was MY fault! please knock out link=0 from the Tdeint call and everthing WILL be fine!
Sorry!

CruNcher
9th April 2006, 14:45
thx scharfis_brain thx Didée works great (looks much better, really smooth, background is even more detailfull) and is as fast with r24deint=2 :)

zlab
9th April 2006, 16:33
Hi,
Since it's several version of mvbob floating around, would anyone kind enough to post the latest version or just a link?
Thanks.

scharfis_brain
9th April 2006, 17:25
This is the latest version of mvbob() I made public.
http://home.arcor.de/scharfis_brain/mvbob/mvbob.rar

zlab
9th April 2006, 18:17
Thanks, that's was so nice.

Terka
6th September 2007, 12:43
what about to add yadif to comparsion?

ficofico
6th September 2007, 13:08
and mcbob...

Gerard V
7th September 2007, 02:34
FWIW it seems to me that this community need a library, a smallish pool of short video segments of various types, and a few single frames etc. available to the entire community, and alongside that, a few scripts to automatically regenerate tests such as these. This would greatly aid comparison testing and regression testing and comparison of new versions of "things". That way your questions above would be resolved by adding in the filters you mention to the relevant script and rerunning the whole test . . . .

Fizick
7th September 2007, 15:33
there are a lot "standard" video sequences used in codec development and scientific researches