Pulldown (clip, int a, int b)
The Pulldown filter simply selects two out of every five frames of
the source video. The frame rate is reduced to two-fifths of its original value.
For example, Pulldown(0,2) selects frames 0, 2, 5, 7, 10, 12, and so
on.
This filter is designed to be used after DoubleWeave, and its purpose
is to recover the original frames of a movie that was converted to video using
the 3:2 pulldown process.
The reason you need to use DoubleWeave
first is that capture cards
combine fields in the wrong way. In terms of fields, the 3:2 pulldown sequence
is simply "A A B B B C C D D D ...", where "A" through "D" represent the original
film frames. But the capture cards combine the fields into frames with no respect
for the pulldown pattern, and you get this:
A B C D D (30fps) A B B C D
In this pattern frame C is never shown by itself. After DoubleWeave
every pair of fields gets its own frame, so the video stream will begin like
this:
A A B B C C D D D (60fps) A B B B B C C D D * * * *
Now each movie frame has at least one video frame to itself. At this point
the Pulldown filter with arguments of 0,3 will select the
frames marked with a *, and you'll get
A B C D (24fps) A B C D
... which is what you really want.
This is all very complicated to describe, but in practice undoing the pulldown
is just a matter of inserting some boilerplate code. See the example below under
ShowFiveVersions.
Pulldown(a,b) is implemented internally
as SelectEvery(5,a,b).AssumeFrameBased.
$Date: 2005/10/03 16:49:04 $