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 $