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)0o1o
1)2o3o

Удвоили размер

номер строкикадр 0кадр 1
0)0o1o
1)1i2i
2)2o3o
3)3i4i

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

Bob же делает это правильно

номер строкикадр 0кадр 1
0)0o0i
1)1i1o
2)2o2i
3)3i3o

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

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
Обновления 31.12.2006 Fizick http://avisynth.org.ru