Log in

View Full Version : Is there any way to get rid of those annoying duplicate frames ? (pic inside)


Lagoon
10th February 2004, 23:02
I've tried decimate with various settings, still can't get it right, I dunno if it's at all possible ?

Source is 25FPS PAL.

http://membres.lycos.fr/risoli/cff.jpg

Thanks :)

Edit : I think the good framerate would be 12.5 as in every frame is basically the current movement and a "ghost" image of the next real frame.

Edit 2 : I encoded a small clip if anyone wanna do some tests.

http://membres.lycos.fr/risoli/cfff_2.avi

Bogalvator
11th February 2004, 01:06
This looks to me like the original source was interlaced and was resized without any field matching and/or deinterlacing done on it.

Try using Telecide(order=?,guide=2) on the original source it to see if that works.

There probably isn't too much you can do if you haven't got the original interlaced source. These 2 threads might be able to help your case:

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

scharfis_brain
11th February 2004, 07:38
try to use this command sequence:

#assumetff #depends on fieldsorder
kernelbob(4)
assumeframebased
converttoyv12(interlaced=false)
unblend()
smartdecimate(25,200)

Lagoon
11th February 2004, 20:22
Thanks, I'll check those threads and this method :)

Edit : I tried searching but didnt find the kernelbob dll, where can I get it ?

Thanks.

Bogalvator
12th February 2004, 00:30
Originally posted by Lagoon
I tried searching but didnt find the kernelbob dll, where can I get it ?

Not a *.dll, but a script function using KernelDeint:

function kernelbob(clip a, int th, int ord)
{
f=a.kerneldeint(order=ord,sharp=true,twoway=false,threshold=th)
e=a.separatefields.trim(1,0).weave.kerneldeint(order=1-ord,sharp=true, twoway=false, threshold=th)
interleave(f,e)
}

Just put it at the top of your script and use as normal.

P.S. This was scharfis_brain's script originally - I copied and pasted it from the SSTomsMoComp thread (which is well worth a read by the way)

Lagoon
12th February 2004, 00:38
Thanks.

Yes I read that thread already, couldn't understand much of it since I started using avisynth a few days ago :D

I still have a problem, it says invalid arguments to kernelbob.

Did I have to change something in the function? Here's my current script :

-------------

AviSource("F:\Animes\High School Kimengumi\High School Kimengumi - 21A - Au feu.avi")
Trim(0,1000)
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\kerneldeint\kerneldeint140.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\unblend\unblend.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\smartd\avisynth_c.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\smartd\smartdecimate.dll")
#LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\dgbob\dgbob.dll")

function kernelbob(clip a, int th, int ord)
{
f=a.kerneldeint(order=ord,sharp=true,twoway=false,threshold=th)
e=a.separatefields.trim(1,0).weave.kerneldeint(order=1-ord,sharp=true, twoway=false, threshold=th)
interleave(f,e)
}

assumetff()
kernelbob(4)
assumeframebased
converttoyv12(interlaced=false)
unblend()
smartdecimate(25,200)

-------------


Thanks.

Wilbert
12th February 2004, 10:20
kernelbob needs two arguments: th and ord. The latter is the field order.

Find the field order first:

assumetff()
separatefields()

or

assumebff()
separatefields()

Scroll through the frames in vdub, and see which one is correct. If it is the first script use

assumetff()
kernelbob(4,0)

else

assumetff()
kernelbob(4,1)

Lagoon
13th February 2004, 16:12
Thanks, it worked, however it didnt do anything to those frame, oh well guess that's not possible, I even think the show is actually broadcasted like that :rolleyes:

Mug Funky
13th February 2004, 16:45
if a source was originally in NTSC, then a PAL version of it will have blended fields. that's at full resolution, too.

the pic you've shown here looks blended because it was originally interlaced and then resized down, blending the fields together (unfortunately this cannot be recovered without some artificial intelligence :()

you could try running unblend() on the raw file... it will most probably be jerky as hell, but it'll compress better :)