## 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`