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