Справочник фильтров VirtualDub

       

QS Deinterlace




QS Deinterlace v1.0
Victor Tomilov
Деинтерлейс
QSdeinterlace.vdf
Описание QSDeinterlace - фильтр, реализующий некоторые идеи Дональда Графта, Эвери Ли и собственные авторские для обработки чересстрочного видео с целью конвертации его в прогрессивное. Требования к компьютеру Процессор с поддержкой MMX и лучше. SSE/SSE2 очень рекомендуется! Основные настройки

Сравнение кадров - настройка по умолчанию, в расчет принимаются различия в цвете точек между кадрами. Если точка неидентична этой же точке в предыдущем и кадре, она считается движущейся и подлежит обработке. Самый быстрый способ.
Сравнение полей - в расчет принимаются различия в цвете точек между полями (т.е. точка сравнивается с точками сверху и снизу). Если точка неидентична этой же точке в предыдущем и последующем полях, она считается движущейся и подлежит обработке.
Сравнение полей и кадров - комбинирует два предыдущих метода. Самый медленный способ.
Выбор метода деинтерлейсинга зависит, как показывает практика, непосредственно от фильма. Идеальный деинтерлейс, особенно для видео с быстрым движением, практически невозможен. Наша задача состоит в том, чтобы свести появление артефактов деинтерлейса к минимуму. К сожалению, невозможно (в достаточно удобной форме) применить различные установки для разных участков фильма. Для того, чтобы проверить, какие установки для данного фильма лучше всего, можно выбрать три эпизода из фильма (статичный, с умеренным перемещением и с быстрым перемещением), применить на них фильтр и, меняя установки (можно со включенной опцией Показать карту движения , о ней чуть ниже), выбрать, какой режим смотрится лучше всего для всех трех эпизодов. Как правило, лучшие результаты для видео, оцифрованного с видеокамеры, получаются с использованием первого метода с включенным режимом Режим смешивания цветов , либо с использованием третьего метода. Дополнительные настройки: Compare color channels instead of luma - если настройка выбрана, фильтр будет сравнивать цветовые значения (RGB), тогда как в случае отключения опции будет сравниваться luminance составляющая.
Включение опции улучшает качество деинтерлейсинга для фильмов, в которых присутствуют большие области одного цвета (мультфильмы), тогда как для обычных фильмов эту опцию следует отключать.
Показать карту движения - Настройка предпросмотра. Во включенном состоянии в окне предпросмотра VirtualDub'а будут показываться только области видео, где будет применен фильтр - т.е. области, считающиеся движущимися. Полезна для принятия решения, какой метод использовать и какие значения порога выставлять.
Режим смешивания цветов - когда опция включена, фильтр в движущихся областях использует пикселы только из одного поля, интерполируя изображение, в статических областях используются оба поля. Если опция включена, фильтр будет смешивать цвета линий сверху и снизу, размывая тем самым как артефакты интерлейсинга, так и само изображение. Какой способ лучше, выбирать вам - у каждого есть свои недостатки: интерполяция выдает небольшие "ступеньки" и подчас имеет цветовые артефакты, смешивание цветов, в свою очередь, немного понижает четкость деталей и образует отражения (эффект гало) движущихся предметов.
Использовать уравнения 3ей степени - используется только для интерполяции: при включенной опции используется более медленный, но зато более точный метод интерполяции (по 4м линиям).
Очистка шумов движения - для того, чтобы избавиться от "ступенек" желательно использовать низкие значения порога, но при низких его значениях цветовой шум начинает восприниматься как движение - в итоге мы имеем своеобразные искорки в обработанном видео и уменьшаем эффективное разрешение фильма (так как размер движущихся областей возрастает). Чтобы избежать этого, включите данную опцию - в этом случае фильтр будет совершать дополнительные проверки на шум на стадии определения областей движения. Конечно же, скорость обработки при этом упадет, причем достаточно заметно.
Порог уровня движения определяет разницу сравнения пикселей для определения, статичный ли пиксель или нет. Чем больше значение порога, тем больше артефактов останется в итоговом видео, чем меньше значение - тем меньше будет эффективное разрешение итогового фильма.


Приемлемые параметры зависят от конкретного фильма и составляют 15-25 для использования фильтра с отключенной Очисткой шумов движения и 10-20 - с включенным. Для того, чтобы пронаблюдать эффект понижения или повышения порога, включите опцию Показать карту движения и меняйте значения порога - в окне предпросмотра увидите производимые изменения.
Порог смены сцены в кадре - иногда смена сцены случается между полями кадра, в этом случае фильтр может отработать некорректно. Чтобы избежать этого, введен этот параметр. Если количество пикселей (в процентах) в движущихся областях кадра превысит это значение, весь кадр будет расценен как движущийся и подлежащий обработке. Следует заметить, что данная проверка выполняется до Очистки шумов движения
Покадровая коррекция - работавшая в одной из бета-версий, отключена в релизе вследствие неоптимизированности. Позволяет корректировать цветовые артефакты, уменьшать гало вокруг движущихся объектов. Будет включена в следующей версии.

"Продвинутые" опции:
Тут необходимо отвлечься для объяснения некоторых технических вопросов. Как правило, видеоматериал состоит из ряда B1T1-B2T2-B3T3-... , где B - Bottom Field (нижнее поле), T - Top Field (верхнее поле), число - номер оригинального кадра, а тире разделяет кадры. При захвате этот порядок может поменяться, причем в зависимости от ситуации и характерных особенностей карты захвата, возможны четыре варианта (от ситуации: начать захват с верхнего или нижнего поля; от карты: располагать в памяти вначале нижнее поле, а потом верхнее или наоборот):

1. B1T1-B2T2-B3T3...
2. T1B1-T2B2-T3B3...
3. T1B2-T2B3-T3B4...
4. B2T1-B3T2-B4T3...

И все было бы здорово, если было бы всегда так - мы бы просто указали фильтру, в каком порядке нужно расставить (сдвинуть) поля. Но бывает ситуация, когда мы имеем дело с "неправильным" потоком, который выглядит как B1T2-B2T3-B3T4-... . Этот поток будет замечательно отображаться на чересстрочном телевизоре, но при захвате и последующей попытке сделать деинтерлейс нам обеспечена головная боль.


Для этого в фильтре предоставлены "продвинутые" опции, которые позволяют нам исправить входящий поток непосредственно перед деинтерлейсом.

Поменять поля до сдвига - поменять поля в кадре на входе.
Сдвинуть поля в потоке - сдвигает поля вправо на одно поле. Пример: T1B2-T2B3-T3B4... -> xxT1-B2T2-B3T3...
Поменять поля после сдвига - поменять поля в кадре на выходе (т.е. после первых двух действий).
Не делать деинтерлейс- не делать деинтерлейс, использовать фильтр только для упорядочивания потока.

Рассмотрим все возможные ситуации ситуации, нетрудно прикинуть с помощью комбинаторики, что будет восемь вариантов:

1. B1T1-B2T2-B3T3... - нормальный поток, ничего не надо делать.
2. T1B1-T2B2-T3B3... - включаем Поменять поля до сдвига .
3. T1B2-T2B3-T3B4... - включаем Сдвинуть поля в потоке .
4. B2T1-B3T2-B4T3... - включаем Поменять поля до сдвига и Сдвинуть поля в потоке .
5. B1T2-B2T3-B3T4... - включаем Сдвинуть поля в потоке и Поменять поля до сдвига .
6. T2B1-T3B2-T4B3... - включаем все три опции.
7. T2B2-T3B3-T4B4... - включаем Поменять поля до сдвига .
8. B2T2-B3T3-B4T4... - нормальный поток, ничего не надо делать.

Понятно, что структура потока известна заранее в редких случаях, поэтому я всегда подбираю "на глаз" - включаю самый быстрый деинтерлейс (Сравнение кадров) и смотрю на правильность получаемой картинки, если картинка "неправильная", подбираю "продвинутые" опции. Отмечу, что никогда не мог получить "неправильный" поток, захватывая поток с помощью ATI Radeon с видеокамеры Video8 , в то время как с VHS - сплошь и рядом. Покажу на примере (показательный материал для примера любезно предоставлен Алексеем Луковниковым aka AlexIce, за что ему огромное спасибо), в примере использован только фильтр деинтерлейсинга, очистки и сглаживания я специально не делал:
Кадр с черестрочным видео (хорошо заметны сдвиги при быстром перемещении объекта)

Пытаемся сделать деинтерлейс без использования "продвинутых" опций.Результат:

Видно характерное "гало", появляющееся из-за неправильного чередования полей. Выставляем опцию Поменять поля до сдвига , с удовлетворением созерцаем результат:
Дата обновления: 17.04.2006 21:56
Источник: RoLerBooK

Содержание раздела