PDA

View Full Version : Ghosting and interlaced 29,970FPS NTSC


rhaz
7th November 2011, 13:26
Hello. I am trying to encode my DVD disc to the .avi using XviD GKnot, but I get very poor result with very heavy ghosting on faster movement scenes. Like this i.e.:
http://i.imgur.com/V12DS.jpg

It is a simple NTSC 29,970FPS. My question is what should I use on my .avs script? And together with the ghosting filter what deinterlacer would you recommend? I have tried Yadif, KernelDeint, LeakKernelDeint (and what is the difference between those two?) and TDeint. I always set the correct Order and looks like always get a good deinterlaced .avi of PAL 25FPS with all those tools, so which is the best one and why? I have no problems with PAL sources, never had a ghosting one... I think... Now got this NTSC and here you go, can't find a solution.

If .vob sample needed I can provide that.

Thanks everyone for replying.

sneaker_ger
7th November 2011, 14:44
If .vob sample needed I can provide that.

Do that.

rhaz
7th November 2011, 15:32
There's (http://www.mediafire.com/?6utw65qe9kpqp59) a 10MB size .vob with same scene like in the image.

sneaker_ger
7th November 2011, 17:12
Looks like some strange telecine pattern, 3 interlaced frames/2 progressive frames, instead of the usual 2 interlaced frames/3 progressive frames. Maybe some of the gurus in the AviSynth section can help.

rhaz
7th November 2011, 17:29
Should I create another topic at Avisynth Usage section? Maybe this thread can be moved?

sneaker_ger
7th November 2011, 17:34
Ask a mod to move it.

I've come so far:
SeparateFields()
Trim(2,0)
SelectEvery(5,0,1,2,3)
Weave()

Replace the "1" with "n+1" of "trim() until it fits the complete movie. (Or even better: don't use Trim(), but change SelectEvery() accordingly, until you hit the correct field). But this would only work, if the pattern is constant throughout the whole movie. Maybe it can serve as a starting point for one of the AviSynth guys.

/edit:
simplified a bit, removing every 5th and 10th field out of 10 is the same as removing every 5th field out of 5.

Didée
7th November 2011, 19:22
----------
bob(0,0) # or yadif(mode=1), or tdeint(mode=1), or any other bob filter
Srestore(frate=25.000) # link (http://avisynth.org/mediawiki/Srestore)
----------

sneaker_ger
7th November 2011, 19:31
bob(0,0)
Srestore(frate=25.000)
instead of
bob(0,0)
Srestore(frate=23.976)
AssumeFPS(25)
means that the original was already PAL and my script would have destroyed everything?

/edit:
frate=25.000 seems to create duplicates, so I assume Didée either doesn't like PAL speedups or he made a minor mistake in an otherwise good solution.

Didée
7th November 2011, 19:41
Actually, I didn't even try it. If a fieldblended source is 29.97 NTSC, then the origin "usually" is 25.0 PAL.

rhaz
7th November 2011, 19:42
Didée that don't affect ghosting at all. I think none of those helps, I still get same ghosting. Deinterlacing works fine.

sneaker_ger
7th November 2011, 19:50
I don't get any ghosting with Didée's script, must be something else you're doing wrong.

Here, with frate=23.976, then speedup to 25 fps for PAL:
http://www.mediafire.com/?m8a2rx93u8muidm

Didée
7th November 2011, 20:03
It's indeed 24p fieldblended to 30i, so the call should be "Srestore(frate=23.976)".

There is no blending or ghosting after this call. The result on the sample is clean 23.976 progressive.

Sample video result: bob(0,0).Srestore(frate=23.976) (http://www.mediafire.com/?l18a1j4nl7k35id) (2MB, MediaFire)

Note that you can't judge anything when you wildly jump around on the timeline. Srestore needs linear source access to work properly.

rhaz
7th November 2011, 21:12
Ohh yes! It works now! Here's my final script:
LoadPlugin("DGDecode.dll")
LoadPlugin("mt_masktools-25.dll")
LoadPlugin("UnDot.dll")
Import("Srestore.avsi")
mpeg2source("VTS_02_2.d2v")
bob(0,0)
Srestore(frate=23.976)
crop(0,0,720,480)
LanczosResize(640,464)
Undot()

Thanks guys for helping me out on that one. I'm gonna save that script for future.

rhaz
8th November 2011, 12:02
Hmm. I don't know. Just encoded a whole movie, and it is shaking up and down all the time. This (http://www.mediafire.com/?p1cqt0cjai4h9f7) can be seen at the top/bottom sides (i.e. best at the end of the sample). And also it has those interlaced stripes in some places.

Didée
8th November 2011, 12:20
it is shaking up and down all the time.
Sure. What did I write at first?

----------
bob(0,0) # or yadif(mode=1), or tdeint(mode=1), or any other bob filter
Srestore(frate=25.000) # link (http://avisynth.org/mediawiki/Srestore)
----------

See that I mentioned other alternative bob filters? Avisynth's internal "Bob()" is the most simple / most "dumb" bob filter out there. In this case, it was mostly meant as an example to get you started quickly.

YadifMod(mode=1,edeint=NNedi3(field=-2))

is not a bad choice either.