Log in

View Full Version : FieldDeinterlace question


pijetro
5th July 2003, 07:51
I apologize ahead of time for the shallow question, but it's late and I'm tired. It seems that field deinterlacing might be the answer to my dreams, so here's two questions....

I've got a PAL home made video (pure interlaced), that I want to convert to NTSC(pure interlaced).

Ver.2.08

Avisource("f:\Europe.avi")
AssumeFPS(23.976)
Fielddeinterlace()
SeparateFields()
_2dcleanYUY2(1,3,2,3)
Weave()
Crop(8,8,-8,-8)
BicubicResize(352,480)
ResampleAudio(48000)

Yes it's bland. Questions

1) Since my output wants to support interlacing (DVD), how much information does FieldDeinterlace remove (such as, say, SeparateFields(), SelectOdd?), which would be undesirable.

2) Since cropping and resizing create different interlacing effects, is this the filter for me, or should i look into something else.

What intrigued me was the statement from the guide, saying that FieldDeinterlacing creates progressive streams. If that's the case, then a simple pulldown.exe can be run on this file, and I'll have the closest thing to a proper PAL>NTSC conversion I can think of.
Thanxx.......

FredThompson
5th July 2003, 08:25
Check your thoughts about resizing here:

http://www.uwasa.fi/~f76998/video/conversion/

This is a better way to deinterlace:

http://forum.doom9.org/showthread.php?s=&threadid=54456

Wilbert
5th July 2003, 13:27
For PAL(interlaced)->NTSC(interlaced), try this:

Get smoothdeinterlace.dll, and make the following script:

# SmartBob uses Smoothdeinterlace to bob the video.
# Parameter Topfirst = 1 (default) will use the top field as the first field
# 0 will use the bottom field as first field

function SmartBob(clip clip, int "Topfirst")
{
t = default(Topfirst, 1)
top = (t==1) ? true : false
clip.SmoothDeinterlace(tff=true, doublerate=true)
}

function PAL2NTSC(clip video)
{
clip1 = SmartBob(video.ConvertToYUY2, 1)
clip2 = clip1.AssumeFieldBased.Separatefields.selectEvery(10, 0, 3, 4, 5, 6, 9).Weave
clip3 = clip2.BicubicResize(clip2.width, (clip2.height*240)/288, 0, 0.5) :
return = clip3.AssumeFPS(29.97)
}