Log in

View Full Version : Getting good Bob Deinterlacing?


futurex
2nd April 2006, 23:52
Hi all,

i encode a lot of dvb stuff to mpeg4, and a lot of it is interlaced. what i want to do is bob to get a 50fps file, which is the way its meant to be viewed.

my current method is using avisynth for deinterlacing (tdeint), cropping and resizing, then feeding through to meGUI or virtualdubmod.

this is what my script generally looks like (the cropping & resizing values here are just made up) :

mpeg2source("c:\project.d2v")
tdeint(mode=1,order=1,mthreshl=10)
crop(94,4,532,568)
LanczosResize(720,576)

the only setting i "tweak" with tdeint is the mthreshl, using map=2 and choosing the value where the background has no or very few "pink" areas. is that the correct way of doing it?

is there a better deinterlacer than tdeint i should be using? i know there is mvbob and a couple others, but i'm confused and dont know how to actually use them :scared: i've searched the forums and the readme's but its much too technical and doesnt seem to explain how to use it, just how the deinterlacing is accomplished

any help on getting the "highest quality without taking a rediculously large amount of time" appreciated!

thanks :)

Mug Funky
3rd April 2006, 08:43
if you want high quality without rediculous encoding times, then you're doing the right thing with tdeint. there's not much out there better than that (basically all better looking solutions are script based and use tdeint as a building block).

mvbob is fine when you get it installed (which isn't hard either). just call "mvbob()" and feed it the correct field-order (no problem for DVB - it's all top-first).

Chainmax
3rd April 2006, 12:52
The best possible bob with TDeint is said to be this:

For TFF Clips:
Interp = SeparateFields().EEDI2(field=3)
TDeint(mode=1,order=1,edeint=Interp)

For BFF Clips:
Interp = SeparateFields().EEDI2(field=2)
TDeint(mode=1,order=0,edeint=Interp)

dukey
3rd April 2006, 19:20
i got some convert videos
NTSC -> PAL

and blend deinterlace often looks really bad with them
and even field sometimes leaves them kinda jerky. I want a good bob deinterlacer which leaves the progressive fields intact without halving the vertical resolution. Final fps = 50 Any suggestions ? :)

foxyshadis
3rd April 2006, 20:26
Er, that's exactly what chainmax's and futurex's suggestions do. (It's a lot slower than Tdeint alone, and mvbob is slower still, while leakkernelbob is faster, but it's all about that quality vs speed tradeoff.)

btw, chainmax, you can simplify it like:

AssumeXff() # Tff or Bff
Interp = SeparateFields().EEDI2(field=-2)
TDeint(mode=1,edeint=Interp)

This goes for the tfm version, too. Much easier to use universally.

Chainmax
3rd April 2006, 20:50
¿What TFM version? Also, I thought the point of using these recs was to not rely on the filter's or Avisynth's automatic field order detection.

foxyshadis
3rd April 2006, 21:11
Well, you have to pick one anyway, so you might as well specify the field order in one place instead of 3. Makes my life easier when I'm copying it to new scripts or when I don't know offhand what the order is. The tfm version being:


AssumeXff() # Tff or Bff
Interp = SeparateFields().EEDI2(field=-2)
deint = TDeint(mode=2,edeint=Interp)
TFM(clip2=deint)

or

AssumeXff() # Tff or Bff
Interp = EEDI2(field=-1)
deint = TDeint(mode=0,edeint=Interp)
TFM(clip2=deint)

futurex
4th April 2006, 01:52
thanks guys :)

but a couple of questions, what exactly is "edeint=interp"? should i not use mthreshl?

Chainmax
4th April 2006, 02:26
foxyshadis: oh, the IVTC part.

thanks guys :)

but a couple of questions, what exactly is "edeint=interp"? should i not use mthreshl?

From TDeint's readme:

edeint:

Allows the specification of an external clip from which to take interpolated pixels
instead of having TDeint use one of its internal interpolation methods. If a clip
is specified then TDeint will process everything as usual except that instead of
computing interpolated pixels itself it will take the needed pixels from the corresponding
spatial positions in the same frame of edeint clip. To disable the use of an edeint
clip simply don't specify a value for edeint.

default - NULL (PClip)

About mthreshl, all switches have a default value, so unless you deactivate it yourself it will be used.

futurex
4th April 2006, 11:07
thanks all of you for your help, much appreciated, will try out all suggestions!! :)