Bob

Bob (clip, float "b", float "c", float "height")

Bob берет клип и выполняет его bob-деинтерлейсинг (убирает "гребенку"). Это означает, что он расширяет каждое поле до размеров полного кадра интерполяцией значений между строками. Верхнее поле немного сдвигается вверх в сравнении с нижним, так что картинка на самом деле не прыгает вверх-вниз. Однако, она начинает "мерцать" на стационарных сценах, так как интерполяция на самом деле не восстанавливает другое поле достаточно точно.

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

Фильтр bob в действительности не передвигает физическую позицию поля. Он просто возвращает его на начало. Если Вы просто разделили поля SeparateFields() то получили 2 кадра половинной высоты: строка 0 стала строкой 0 кадра 0 а строка 1 стала строкой 0 кадра 1.Таким образом строки 0 и 1 располагаются в том же месте! Bob теперь изменяет размер каждого кадра вдвое но для первого кадра использует исходные строки для четных строк, а для второго - исходные строки для нечетных строк, в точности как и полагается. Если бы Вы просто увеличили вдвое  высоту каждого кадра после SeparateFields(), то это бы не сработало как надо, так как физическое расположение полей смещалось бы.

Схематически:
Предположим, что строки 0o, 1o, 2o, 3o, ... являются исходными строками а 0i, 1i, 2i, 3i, ...  - интерполированными строками.

Исходное состояние
номер строки
кадр 0
0) 0o
1) 1o
2) 2o
3) 3o

Разделили поля
номер строки кадр 0 кадр 1
0) 0o 1o
1) 2o 3o

Удвоили размер
номер строки кадр 0 кадр 1
0) 0o 1o
1) 1i 2i
2) 2o 3o
3) 3i 4i

что дает неправильный результат, так как физическое положение поля изменилось.

Bob же делает это правильно
номер строки кадр 0 кадр 1
0) 0o 0i
1) 1i 1o
2) 2o 2i
3) 3i 3o

Чтобы строго сохранить оригинальные поля и просто заполнить отсутствующие строки.

bob(0.0, 1.0)

Bob(0.0, 1.0) сохраняет оригинальные поля для RGB и YUY2 и сохраняет канал яркости, но не цветности для YV12.

Коэффициенты фильтра b=0.0 и c=1.0 дают вам 0 при x=1.0/2.0 и 1 при x=0. Вместе с +/-0.25 смещением происходящим с положением оригинальных полей, вы получите очень резкий кубический фильтр с коэффициентами -1/8 5/8 5/8 -1/8 на отводах x=0.5/1.5 для другого поля.

Однако, так как смещение плоскостей цветности - только 0.125 для yv12, отводы не приходят на те же самые расстояния. Обсуждение

$English Date: 2006/12/24 13:45:08 $
Русский перевод 14.05.2005 Turyst04 Turyst04@nextmail.ru
Обновления 31.12.2006 Fizick http://avisynth.org.ru