Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Video Encoding > (Auto) Gordian Knot

Reply
 
Thread Tools Search this Thread Display Modes
Old 7th November 2011, 14:26   #1  |  Link
rhaz
Registered User
 
Join Date: Mar 2010
Posts: 115
Ghosting and interlaced 29,970FPS NTSC

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.
rhaz is offline   Reply With Quote
Old 7th November 2011, 15:44   #2  |  Link
sneaker_ger
Registered User
 
Join Date: Dec 2002
Posts: 5,565
Quote:
Originally Posted by rhaz View Post
If .vob sample needed I can provide that.
Do that.
sneaker_ger is offline   Reply With Quote
Old 7th November 2011, 16:32   #3  |  Link
rhaz
Registered User
 
Join Date: Mar 2010
Posts: 115
There's a 10MB size .vob with same scene like in the image.
rhaz is offline   Reply With Quote
Old 7th November 2011, 18:12   #4  |  Link
sneaker_ger
Registered User
 
Join Date: Dec 2002
Posts: 5,565
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.
sneaker_ger is offline   Reply With Quote
Old 7th November 2011, 18:29   #5  |  Link
rhaz
Registered User
 
Join Date: Mar 2010
Posts: 115
Should I create another topic at Avisynth Usage section? Maybe this thread can be moved?
rhaz is offline   Reply With Quote
Old 7th November 2011, 18:34   #6  |  Link
sneaker_ger
Registered User
 
Join Date: Dec 2002
Posts: 5,565
Ask a mod to move it.

I've come so far:
Code:
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.

Last edited by sneaker_ger; 7th November 2011 at 19:22.
sneaker_ger is offline   Reply With Quote
Old 7th November 2011, 20:22   #7  |  Link
Didée
Registered User
 
Join Date: Apr 2002
Location: Germany
Posts: 5,391
----------
bob(0,0) # or yadif(mode=1), or tdeint(mode=1), or any other bob filter
Srestore(frate=25.000) # link
----------
__________________
- We´re at the beginning of the end of mankind´s childhood -

My little flickr gallery. (Yes indeed, I do have hobbies other than digital video!)
Didée is offline   Reply With Quote
Old 7th November 2011, 20:31   #8  |  Link
sneaker_ger
Registered User
 
Join Date: Dec 2002
Posts: 5,565
Code:
bob(0,0)
Srestore(frate=25.000)
instead of
Code:
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.

Last edited by sneaker_ger; 7th November 2011 at 20:37.
sneaker_ger is offline   Reply With Quote
Old 7th November 2011, 20:41   #9  |  Link
Didée
Registered User
 
Join Date: Apr 2002
Location: Germany
Posts: 5,391
Actually, I didn't even try it. If a fieldblended source is 29.97 NTSC, then the origin "usually" is 25.0 PAL.
__________________
- We´re at the beginning of the end of mankind´s childhood -

My little flickr gallery. (Yes indeed, I do have hobbies other than digital video!)
Didée is offline   Reply With Quote
Old 7th November 2011, 20:42   #10  |  Link
rhaz
Registered User
 
Join Date: Mar 2010
Posts: 115
Didée that don't affect ghosting at all. I think none of those helps, I still get same ghosting. Deinterlacing works fine.

Last edited by rhaz; 7th November 2011 at 20:48.
rhaz is offline   Reply With Quote
Old 7th November 2011, 20:50   #11  |  Link
sneaker_ger
Registered User
 
Join Date: Dec 2002
Posts: 5,565
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

Last edited by sneaker_ger; 7th November 2011 at 20:58.
sneaker_ger is offline   Reply With Quote
Old 7th November 2011, 21:03   #12  |  Link
Didée
Registered User
 
Join Date: Apr 2002
Location: Germany
Posts: 5,391
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) (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.
__________________
- We´re at the beginning of the end of mankind´s childhood -

My little flickr gallery. (Yes indeed, I do have hobbies other than digital video!)
Didée is offline   Reply With Quote
Old 7th November 2011, 22:12   #13  |  Link
rhaz
Registered User
 
Join Date: Mar 2010
Posts: 115
Ohh yes! It works now! Here's my final script:
Code:
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 is offline   Reply With Quote
Old 8th November 2011, 13:02   #14  |  Link
rhaz
Registered User
 
Join Date: Mar 2010
Posts: 115
Hmm. I don't know. Just encoded a whole movie, and it is shaking up and down all the time. This 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.
rhaz is offline   Reply With Quote
Old 8th November 2011, 13:20   #15  |  Link
Didée
Registered User
 
Join Date: Apr 2002
Location: Germany
Posts: 5,391
Quote:
Originally Posted by rhaz View Post
it is shaking up and down all the time.
Sure. What did I write at first?

Quote:
Originally Posted by Didée View Post
----------
bob(0,0) # or yadif(mode=1), or tdeint(mode=1), or any other bob filter
Srestore(frate=25.000) # link
----------
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.
__________________
- We´re at the beginning of the end of mankind´s childhood -

My little flickr gallery. (Yes indeed, I do have hobbies other than digital video!)
Didée is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 01:56.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.