Фильтры для работы с черезстрочным видео
 
AssumeFrameBased / AssumeFieldBased
AssumeFrameBased(clip)
AssumeFieldBased(clip)

AVISynth следит, является клип основанным на полях или кадрах. Если клип основан на полях, то также сохраняется соотношение каждого поля (какое оно, верхние или нижнее поле кадра). Если клип основан на кадрах, то сохраняется порядок полей в кадре (т.е. какое поле в кадре идёт первым, когда они разделяются)

 

Однако эта информация необязательно верна, так как информация о полях обычно не хранится в видео-файлах и AVISynth методы источники только предполагают её. AssumeFrameBased и AssumeFieldBased позволяют вам сказать AVISynth истинный тип клипа.

 

AssumeFrameBased выбрасывает существующую информацию и считает, что клип является основанным на кадрах, с нижним (чётным) полем первым в каждом кадре. (Метод-источник делает так). Если вы желаете верхнее поле быть первым, используйте после ComplementParity.

 

AssumeFieldBased выбрасывает существующую информацию и считает, что клип является основанным на полях, с четными полями внизу и нечётными полями вверху. Если вы хотите расположить их наоборот, используйте после ComplementParity.


ComplementParity
ComplementParity(clip)

Если клип основан на полях, ComplementParity меняет верхние поля на нижние и наоборот. Если клип основан на кадрах, фильтр изменяет порядок полей в кадре (нижнее -> первое на верхнее -> первое и наоборот).


SeparateFields
SeparateFields(clip)

NTSC и PAL видеосигналы это последовательности полей, но все известные карты захвата видео захватывают два поля сразу и "interlace" - чередуют (или "weave" - сплетают) их в кадры. Так кадр 0 в захваченном файле содержит поля 0 и 1; кадр 1 содержит поля 2 и 3; и т.д. SeparateFields берёт основанный на кадрах клип и разделяет каждый кадр на составляющие его поля, формируя новый клип с удвоенной частотой и числом кадров. Это полезно, если вы хотите использовать Trim и тому подобные фильтры с точностью до одного поля.

 

SeparateFields использует информацию о порядке полей клипа источника для решения которое из каждой пары полей выводится первым. Если порядок неверен, используйте ComplementParity перед SeparateFields. Если результат все равно неверен, возможно стоит использовать также и AssumeFrameBased

 

Фильтр ничего не делает, если клип уже основан на полях.


Weave
Weave(clip)

Фильтр Weave противоположен SeparateFields. Он берёт пары полей исходного видео-клипа и соединяет их вместе для создания чересстрочных кадров. Новый клип имеет уменьшенные на половину частоту кадров и их число. Weave использует информацию о соответствии кадров клипа источника решая какое поле расположить наверху. Если порядок неверен используйте ComplementParity до или SwapFields после.

 

Все фильтры AVISynth сохраняют информацию о последовательности полей, ты что Weave всегда объединит поля вместе в правильном порядке. Если вы хотите изменить его, используйте ComplementParity до или SwapFields после.

 

Фильтр ничего не делает, если клип уже основан на кадрах.


DoubleWeave
DoubleWeave(clip)

Если клип источник основан на полях, фильтр DoubleWeave ведёт себя как Weave, исключая то, что он формирует удвоенное число кадров вместо того, чтобы объединять поля 0 и 1 в кадр 0, поля 2 и 3 в кадр 1 и т.д., он объединяет поля 0 и 1 в кадр 0, поля 1 и 2 в кадр 1 и т.д.. Он не изменяет частоту кадров или их количество.

 

Если клип источник основан на кадрах, фильтр действует как если бы вы разделили его вначале на поля используя SeparateFields

 

Weave фактически просто псевдоним для DoubleWeave следующим за SelectEven

 

Более вероятно вы захотите использовать фильтр типа SeleceOdd или Pulldown после применения этого фильтра, если вы действительно не хотите видео с частотой кадров 50 или 60. Может выглядеть неэффективным чередовать каждую пару полей только чтобы немедленно выбросить половину получившихся кадров, Но фактически, так как AVISynth генерирует кадры только по требованию, ненужные кадры никогда не будут сгенерированы.

 

Если вы используете видео основанное на полях, такое как отснятое видео- камерой, вам вероятно не нужен этот фильтр. Но если вы обрабатываете NTSC видео конвертированное из FILM и планируете использовать фильтр Pulldown, вам необходимо вначале использовать DoubleWeave. Смотрите фильтр Pulldown для объяснений.

 

Если вы обрабатываете PAL видео конвертированное из FILM, Pulldown вам не нужен, но вы можете захотеть использовать DoubleWeave в следующей ситуации:

# Повторить функциональность фильтра VirtualDub "PAL deinterlace"
DoubleWeave
SelectOdd

Bob
Bob(clip[,b,c][,height])

Bob берёт клип и убирает "гребёнку" следующим образом. Фильтр увеличивает каждое поля до размеров целого кадра интерполяцией между строками. Верхнее поле немного сдвигается вверх в сравнении с нижним, так что картинка на самом деле не прыгает вверх-вниз. Однако, она начинает "мерцать" на стационарных сценах, так как интерполяция на самом деле не восстанавливает другое поле достаточно точно.

 

Фильтр использует BicubicResize для грязной работы. Вы можете указывать ему значения b и с. Также вы можете воспользоваться случаем изменить вертикальное разрешение параметром height.


SwapFields
SwapFields(clip)

Фильтр SwapFields меняет местами строку 0 со строкой 1, строку 2 со строкой 3 и т.д., что эффективно меняет местами два поля в чересстрочном кадре. Тоже самое делает SeparateFields.ComplementParity.Weave (и именно так фильтр реализован).


конвертация формата цвета
[конвертация формата цвета]
команды компактно
[команды компактно]
команды развёрнуто
[команды развёрнуто]
монтаж видео
[монтаж видео]