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: 2008/01/02 01:13:14 $