Log in

View Full Version : Manual Inverse Telecine script?


Squished
11th July 2006, 19:48
Say I have a movie that has a consistant telecine pattern, and rather than have an IVTC filter guess at what to do, I want to force it to follow the pattern I specify.

Currently, I use:
---------------
mpeg2source("C:\Transfer\movie.d2v")

Telecide(order=1,ovr="movie.tel",post=0)
Decimate(cycle=5)
---------------

Inside of the "movie.tel" file, I have ranges that define the telecine pattern. In this particular movie, there is one cadence change, so I use two ranges. For example:

2,195422 ncccn
195424,24000 ncccn

This works fine to restore the progressive frames with no combing errors at all, the problem comes with Decimate(). I want Decimate() to follow the pattern as well, and as far as I can tell, it will only read a list of frames to remove from a file for manual decimation. Is there some sort of shorthand way to tell it what frames to decimate like there is with Telecide()?

I really prefer not to depend on "educated guesses" in Decimate () when I have the oportunity to get it perfect. I would figure it would rely on hints more than it does... maybe there is some threshold value that I can set to a specific value to get Decimate() to honor the hints passed from Telecide exclusively?

Thanks!
Squished Squirrel

Guest
11th July 2006, 20:08
I think TDecimate() supports that, IIRC.

Squished
11th July 2006, 22:03
I think TDecimate() supports that, IIRC.

I looked at all the options for TDecimate, and after getting a small headache, I just bit the bullet and created a Decimate override file. Actually it was rather painless... essentially just a couple for-next loops of the form:

open #1,"movie.dec"
for i=2 to 195422 step 5
print #1, i
next
for i=195424 to 24000 step 5
print #1, i
next
close #1

(That is psuedo code, not real code, but you get the idea.)
And changed the Decimate line to:

Decimate(ovr="movie.dec")

Now I have a perfect inverse telecine with no guesses.

stickboy
11th July 2006, 23:02
Try my JDL_IVTCPattern, JDL_IVTCPatternSegment, or JDL_DecimatePattern functions (http://www.avisynth.org/stickboy/). They're what I use when I have mostly consistent telecine patterns.

See their comments for usage instructions.

Squished
11th July 2006, 23:25
Try my JDL_IVTCPattern, JDL_IVTCPatternSegment, or JDL_DecimatePattern functions (http://www.avisynth.org/stickboy/). They're what I use when I have mostly consistent telecine patterns.

See their comments for usage instructions.

Now that is exactly what I was looking for.

Thank you!

Squished
12th July 2006, 16:43
Try my JDL_IVTCPattern, JDL_IVTCPatternSegment, or JDL_DecimatePattern functions (http://www.avisynth.org/stickboy/). They're what I use when I have mostly consistent telecine patterns.

See their comments for usage instructions.

OK, I'm lost. I haven't switched to the 2.5 method of passing clips to functions, so I need a little help.

As a quick and dirty test, I tried this...

mpeg2source("C:\Transfer\EpisodeIII.d2v").AssumeBFF().JDL_IVTCPattern(0, 149548, 3)

But it complains that the arguments to the function are invalid. I have both the utility and telecine scripts installed.

What am I doing wrong?

foxyshadis
12th July 2006, 17:18
IVTCPattern only has two arguments. If in doubt, try naming them. (Then at least it'll let you know that "x has no named argument "name"", although you can't name them if they're unquoted in the function definition.) Perhaps you meant IVTCPatternSegment?

Squished
12th July 2006, 17:58
Ahhhhg.... Yes. I meant to use IVTCPatternSegment.

Thanks.