Log in

View Full Version : Clip edited after 3:2


Floatingshed
15th March 2015, 18:00
I haven't done this kind of stuff for a while so I'm a bit rusty. What is the latest thinking on getting a nice smooth progressive clip out of completely botched DVDs?

I have a clip that is film and responds well to TFM/TDecimate apart from one short scene. It is clear that this show was telecined and then post produced on tape. The 3:2 pattern goes out of whack.

Are there any smart telecine/decimate filters that can follow this or is it a case of manully fixing that scene?

Unfortunately I have 22 episodes of this, and I'm told that some are film/video hybrid episodes! I'm getting a headache...

TheSkiller
15th March 2015, 18:13
The easiest would be to bob-deinterlace to 60 fps and be done with it. That's what I'd do.

Floatingshed
15th March 2015, 19:09
Should have added that the final format will be 25fps!

ChiDragon
16th March 2015, 03:27
I assume by "goes out of whack" you just mean that it changes at every cut/scene/angle change.

I just posted a script (http://forum.doom9.org/showthread.php?p=1713315#post1713315) that I currently like for turning these into 480p60.

For scenes with native 60Hz content, converting to 25fps goes against your original goal of getting a nice smooth progressive version. Why must you do this? :)

Floatingshed
16th March 2015, 20:44
Lets forget about any native 60hz content.
Normally I would TFM/Tdecimate to recover 23.97fps then speed up to 25fps
However the 3:2 pattern is messed up by editing so how do I achieve my aim of a smooth 25fps from this crappy 29.97?
I need some sort of adaptive reverse telecine that can detect the pattern change!
Thanks.

johnmeyer
17th March 2015, 00:12
I need some sort of adaptive reverse telecine that can detect the pattern change!
Thanks.TFM/TDecimate have a huge number of settings, many of which are designed to adapt to pattern changes. Have you experimented with these settings? I think you may find that you can get what you want by using the proper settings.

ChiDragon
18th March 2015, 05:53
I need some sort of adaptive reverse telecine that can detect the pattern change!
Don't we all. Weaving things back together at 59.94fps is tough enough. Trying to output them at 23.976 is seemingly impossible without some jerkiness here and there, because of what happens when the patterns collide. TIVTC tends to get 95% of the way there, which is enough for most people.

Once upon a time I wrote (http://forum.doom9.org/showthread.php?t=149003) a filter to IVTC based on scene changes. I mentioned here (http://forum.doom9.org/showthread.php?p=1693859#post1693859) a couple reasons why I never released it. Even with that filter, where manual assistance is absolutely required, it seems there are certain combinations of patterns that necessitate keeping duplicate frames.

Something to think about with these productions is that you're not really "recovering" the show at 23.976; the completed thing never existed at that frame rate so you're actually creating something new.

johnmeyer
18th March 2015, 06:05
Even with that filter, where manual assistance is absolutely required, it seems there are certain combinations of patterns that necessitate keeping duplicate frames.After you tweak the TFM & TDecimate settings, if you are still getting duplicates, and if those duplicates really are unavoidable, you can use MugFunky's old "Filldrops" function to replace the second duplicate with a motion estimated version. This eliminates the jerkiness, and actually works pretty darn well.

Here is an example of what this looks like. The matching parameter is hardwired to "0.5" in the YDifference line. Set that to zero to only replace perfect matches, or make it larger to replace "duplicates" that are not very close to being true duplicates.

loadplugin("C:\Program Files\AviSynth 2.5\plugins\MVTools\mvtools2.dll")
loadPlugin("c:\Program Files\AviSynth 2.5\plugins\TIVTC.dll")


AVISource("E:\fs.avi")
#Change this to BFF or TFF !!!!!!!!!!
AssumeBFF()
tfm(display=false)
tdecimate(mode=0)
source=AssumeFPS(23.976, true)
corrected=filldrops(source)
return corrected



function filldrops (clip c)
{
super=MSuper(c,pel=2)
vfe=manalyse(super,truemotion=true,isb=false,delta=1)
vbe=manalyse(super,truemotion=true,isb=true,delta=1)
filldrops = mflowinter(c,super,vbe,vfe,time=50)
fixed = ConditionalFilter(c, filldrops, c, "YDifferenceFromPrevious()", "lessthan", "0.5")
return fixed
}

Floatingshed
19th March 2015, 21:50
Thanks for all the help. I have to work away for a couple of weeks, so this is on hold for a while.
Back soon....