Log in

View Full Version : Fast Deinterlacer Better Than Yadif?


horrormaster34
30th January 2012, 00:03
I've been using Yadif in Mencoder for a few years, but since getting into AviSynth I wanted to know if there's a better and faster (or equally as fast) deinterlacer? I've tried QTGMC, but it slowed everything down to 2-5 FPS. I see that there's also a YadifMod, but don't understand when it says "This version doesn't internally generate spatial predictions, but takes them from an external clip."

Blue_MiSfit
30th January 2012, 08:48
Part of deinterlacing involves interpolating fields into full-height frames.

There are several ways to do this, including a simple bicubic resize (which is what Bob() does by default I think). You can also be clever and use some very fancy interpolators like NNEDI3 or EEDI2 which are basically purpose built to do the best possible job at this task.

YadifMOD lets you use Yadif's other deinterlacing logic, but supply your own interpolation.

Yadif is fast and simple, and is usually better than a dumb Bob(). QTGMC has lots of options, but you'll never make it as fast as Yadif as far as I know. Quality means lots of calculations, which usually means lots of time spent encoding ;)

You can always try TDeint, though it tends to cause artifacts a bit too much with my limited experience.

Derek

smok3
30th January 2012, 08:59
better and faster (or equally as fast) deinterlacer?
nope (from what i tested), they are either worse and slower or a lot slower and slightly better. QTGMC seems to be modern right now.
(this is only from my very limited testing, but i was trying to find something better than yadif in ffmpeg)

edit: replaced "the best" with "modern".

Selur
30th January 2012, 09:15
@smok3: in ffmpeg you can combine yadif&mcdeint (but normally mcdeint will get really slow :( ); but this has nothing to do with the original thread,..

smok3
30th January 2012, 21:34
@Selur: yeah, i tested that, really uber-slow. On a second note, i would be really helpfull to pick into your ffmpeg commands, do you have that handy or is your software closed-source?

Selur
31st January 2012, 01:10
it's closed source but you can see all the command lines used in the job register of Hybrid (when you disable 'minimize job command lines') other than that the command line generation is separated into a bunch of methods&classes depending on what they are ment for (i.e. video/audio extraction, video/audio encoding/, multiplexing,...).

Mini-Me
1st February 2012, 19:51
I've been using Yadif in Mencoder for a few years, but since getting into AviSynth I wanted to know if there's a better and faster (or equally as fast) deinterlacer? I've tried QTGMC, but it slowed everything down to 2-5 FPS. I see that there's also a YadifMod, but don't understand when it says "This version doesn't internally generate spatial predictions, but takes them from an external clip."

You said you tried QTGMC, but did you try the super fast preset?
QTGMC(preset = "super fast")

This is still significantly higher quality than Yadif, but it runs in realtime on my old Q6600 (without using an MT build or anything). That's the thing about QTGMC: It's extremely configurable, and all the different settings span about two orders of magnitude in terms of speed!

horrormaster34
1st February 2012, 22:07
At first I used QTGMC on a music video that was interlaced and it didn't work at all. Turns out the video itself is just screwed up as two other deinterlacers didn't do any better. Then I used a TV show episode and put QTGMC on Very Fast mode. Things went below 10 FPS. I then realized I was trying to deinterlace after cropping and resizing. Moved it to the begin of the chain and it shot up a good 10 FPS. Now it's actually usable and really good.

Blue_MiSfit
2nd February 2012, 08:36
yadifmod+nnedi3 isn't too bad... I'd imagine qtgmc on super fast preset is probably a better bang for your buck though...

manolito
2nd February 2012, 12:20
yadifmod+nnedi3 isn't too bad... I'd imagine qtgmc on super fast preset is probably a better bang for your buck though...
True, but nnedi3 is quite slow already. You get much better speed using TDeint as the interpolator for yadifmod. Have a look here:
http://forum.doom9.org/showthread.php?p=1541533#post1541533
You should check how this compares to qtgmc in superfast mode...


Cheers
manolito

librarian
2nd February 2012, 16:44
At first I used QTGMC on a music video that was interlaced and it didn't work at all. Turns out the video itself is just screwed up as two other deinterlacers didn't do any better.

May be that music video was originally film telecined with 3:2 pulldown and not interlaced at all. In this case Telecide+Decimate (or TFM+Tdecimate) are the right tools.
To be in topic: previous suggestions are really good, for completeness you may consider this post too:
It's not always necessary to run full-rigged TGMC. Depending on the source, it may embarrass other contestants even with vastly reduced settings. Not necessarily, but possibly.


clip_576i.avi

YadifMod(mode=1,edeint=XX)

- with -

XX=separatefields().eedi2(field=-2) : 3.7 fps
XX=nnedi2(field=-2) : 3.8 fps (benefits from Core Duo CPU)
2.2 fps (single threaded, for comparison)
---

tempgaussmc_beta1u(1,1,0,edimode="--",SVthin=0.0) # 2.8 fps
tempgaussmc_beta1u(1,1,0,3,3,0,edimode="--",SVthin=0.0,pelsearch=1) # 3.15 fps
tempgaussmc_beta1u(1,1,0,0,0,0,edimode="--",SVthin=0.0,pelsearch=1) # 6.1 fps

Sure TGMC is slow, but it's not out of the world either. Those who say "TGMC is unusable slow! NNEDI rulez!!" are those who cry much but understand little.

... And after all, using motion compensation of course comes at a price, compared to *not* using motion compensation. That's not a surprise.