Log in

View Full Version : Yadif deinterlacer does have any known problems or enconding artifacts?


cesm23
20th February 2012, 09:31
Recently, i FINALLY moved from avidemux to megui ! I have been using always yadif (from avidemux) as a interlacer and i think i never found any visible artifacts with it so far, however now that i use avisynth in megui i am faced with more choice in deinterlacers for deinterlacing tv captures (mpeg2 720x576 pal videos), the problem is i do way too much tv captures, and i need a deinterlacer that works best with any video at all without having to tweak every setting of the deinterlacer to avoid artifacts in each mpeg video, and since i have done literally hundreds of tv captures and watched all of them and never noticed any visible artifact or problem from using yadif with default settings (mode 0 order1 on avidemux) of course i have a lot of trust in yadif because of this. The people that teached me how to use megui and avisynth recommended using two of the following ones saying they are a lot better than yadif :

method 1:

TFM(clip2=nnedi3).vinverse()

or
method 2 :

interp = nnedi3(field=1)
tdeint(mode=0,order=1,field=1,edeint=interp,slow=2,emask=TMM(mode=0,order=1,field=1))

or
method 3:

edeintted = TDeint(edeint=TomsMoComp(-1,11,0),order=-1,mode=0,sharp=true,mtnmode=3,full=true,tryWeave=false,type=1,slow=2,emask=TMM(mode=0))
Yadifmod(mode=0,edeint=edeintted)

Altough they don't recomend me using yadif for avisynth, saying that it makes the image lose some detail (i already confirmed that part altough it's ridiculously so hard to notice and i had to do a 400% zoom on the image to notice it that i don't mind this at all, it's almost insignificant) or lose some horizontal lines :

method 4 : (my favorite of course and in top of that it's fast like method 1)
LoadCplugin("C:\yadif17\yadif.dll")
Yadif()

Altough in the first method, with TFM i already found 2 distinct problems in diferent kind of mpeg (animation and the other live action), one of then was decomb leftovers, so they recommended me to use vinverse which did indeed solved the problem, but then in another video, i had problems with the tv channel logo which it's horizontal lines dissapear/appear several times along the whole video even tough i haven't noticed ANYTHING at all on the interlacing parts of the tvshow image itself at all, just on the tv channel logo.

That second problem with the flashing interlacing lines wasn't possible to solve with TFM no matter how much settings was tweaked, altoughh i tried with method 4 and it got immediatly fixed, but they recommended me using instead method 2 or 3 instead. Those two also solved the problem, BUT created another important one... they are a LOT slower than TFM and yadif and of course made the general encode almost duplicate in encoding time... Besides i don't trust TFM anymore not, i don't want to be finding artifacts like this for example after i have done already a few dozen encodes that i haven't noticed the problems yet but finding them later and then not having the original video to encode again... This is what i fear most and hence why i always used yadif in avidemux since that one got very well tested for a long time.

So what i do now ? I know i shouldn't be asking what is the best deinterlacer but my doubt is a bit similar to when someone ask what we should use, x264 vs x264vfw or virtual vs avidemux vs megui, so i ask instead, is it recommended sticking with yadif 1.7 ? Is it depreciated ? There is some known known issues with yadif that justify having to use other interlacers and that it's NOT required to always tweak settings for every single video? All i want is the one that requires less tweaking with settings between each video, which works with all videos in general without causing serious artifacts, i am not sure if this yadif is the exact same one used in avidemux (it seems it is) but if it is then i have a lot of trust on it since i done tons of testing with it, the only small problem i noticed was some ghosting a in a few frames BUT i confirmed that almost always the ghosting appears in the exact same frames that most deinterlacers do as well so i guess it's normal.

Anyone had serious problems with yadif at all ? Of course i already done some google searches but for for haven't found any major complains about it, besides i would appreciate expert advice here on this place :D

TheFluff
20th February 2012, 10:09
TFM and yadif have completely different purposes and solve two completely different problems, and the only reason TFM even sorta works at all for you is mostly a side-effect of it having a funny fallback mode for when its usual way of solving problems fails. Please take some time to study the difference between interlacing and telecining.

Didée
20th February 2012, 10:39
Speaking of Yadif, it depends if your TV-source/capture is more like mushy mulligan or more like biting bouillon. As soon as there is any "detail" worth using the noun, Yadif is over-prone to throw artifacts. Yadif works best when the source is rather blurry without too sharp details.

One little source (realworld SD DVB stream), two little results: click! (http://forum.doom9.org/showthread.php?p=1555682#post1555682)

cesm23
26th February 2012, 00:29
Thanks a lot for the sample now i understand why sometimes i had that problem and i tought it was like that in the original tv capture... i am now using this :
interp = nnedi3(field=1)
tdeint(mode=0,order=1,field=1,edeint=interp,slow=2,emask=TMM(mode=0,order=1,field=1)).vinverse

And i am really satisfyed, so far i haven't found problems, besides the encoding time of the encodes, which has DOUBLED using this deinterlacer...

Gser
26th February 2012, 02:56
Thanks a lot for the sample now i understand why sometimes i had that problem and i tought it was like that in the original tv capture... i am now using this :
interp = nnedi3(field=1)
tdeint(mode=0,order=1,field=1,edeint=interp,slow=2,emask=TMM(mode=0,order=1,field=1)).vinverse

And i am really satisfyed, so far i haven't found problems, besides the encoding time of the encodes, which has DOUBLED using this deinterlacer...
Try QTMC(super fast).

Asmodian
27th February 2012, 20:01
It is QTGMC()

:)