## Pulldown

`Pulldown` (clip, int a , int b)

Фильтр `Pulldown` (в переводе - выпадение, продергивание) просто выбирает 2 из каждых 5 кадров исходного видео. Скорость кадров понижается до двух пятых от исходного значения.
Например, `Pulldown`(0,2) выбирает кадры 0, 2, 5, 7, 10, 12 и так далее.

Этот фильтр создавался для использования после `DoubleWeave`, и его цель - восстановление исходной частоты и содержания кадров фильма, конвертированного ранее в NTSC видео с помощью 3:2 pulldown-процесса.

Причина необходимости сначала использовать `DoubleWeave` в том, что карты захвата располагают поля в неправильной последовательности. В терминах полей, последовательность "3:2 pulldown" просто "A A B B B C C D D D ...", где символы с "A" по "D" представляют исходные кадры фильма. Но карты захвата соединяют поля в кадры без соблюдения данной структуры (pattern) "3:2 pulldown", и в результате получается вот что:

    A   B   C   D   D       (30 к/с)
    A   B   B   C   D

В такой структуре кадр "C" никогда не появляется в чистом виде. После `DoubleWeave` каждая пара полей обретает собственный кадр, так что видео поток начинается так:

    A A B B C C D D D       (60 к/с)
    A B B B B C C D D
    *     *   *     *

Теперь каждый кадр фильма имеет как минимум один свой кадр видео. В этом месте фильтр `Pulldown` с аргументами 0, 3 выберет кадры отмеченные "*" и Вы получите

    A     B   C     D       (24 к/с)
    A     B   C     D

... к чему мы и стремились.

Все эти объяснения выглядят сложными, но восстановление после pulldown - это просто вопрос вставки шаблонного кода. Посмотрите пример для `ShowFiveVersions`.

`Pulldown`(a, b) внутренне реализован как `SelectEvery(5,a, b).AssumeFrameBased`.

`$English Date: 2006/12/14 22:43:08 $
Русский перевод 14.05.2005 Turyst04 Turyst04@nextmail.ru`