Здавалка
Главная | Обратная связь

Обработка видео: описание дополнительных фильтров



1. Smart Deinterlacing Filter.
Лучший, на мой взгляд, deinterlace фильтр для VirtualDub'а, хотя и не идеальный. Обеспечивает несколько частично пересекающихся режимов де-интерлейсинга. Обрабатываются только нестатичные области фильма. Здесь рассмотрен фильтр версии 2.7b2. (http://sauron.mordor.net/dgraft/index.html)
Основные опции:

 

· Frame-only differencing - опция по умолчанию, в расчет принимаются различия в цвете точек между кадрами. Если точка неидентична этой же точке в предыдущем и кадре, она считается движущейся и подлежит обработке. Самый быстрый способ.

 

· Field-only differencing - в расчет принимаются различия в цвете точек между полями (т.е. точка сравнивается с точками сверху и снизу). Если точка неидентична этой же точке в предыдущем и последующем полях, она считается движущейся и подлежит обработке.

 

· Frame-and-field differencing - комбинирует два предыдущих метода. Самый медленный способ.
Выбор метода деинтерлейсинга зависит, как показывает практика, непосредственно от фильма. Идеальный деинтерлейс, особенно для видео с быстрым движением, практически невозможен. Наша задача состоит в том, чтобы свести появление артефактов деинтерлейса к минимуму. К сожалению, невозможно (в достаточно удобной форме) применить различные установки для разных участков фильма. Для того, чтобы проверить, какие установки для данного фильма лучше всего, можно выбрать три эпизода из фильма (статичный, с умеренным перемещением и с быстрым перемещением), применить на них фильтр и, меняя установки (можно со включенной опцией Show motion areas only, о ней чуть ниже), выбрать, какой режим смотрится лучше всего для всех трех эпизодов. Как правило, лучшие результаты для видео, оцифрованного с видеокамеры, получаются с использованием первого метода с включенным режимом Blend instead of interpolate in motion areas, либо с использование третьего метода.
Дополнительные опции:

 

· Compare color channels instead of luma - если опция выбрана, фильтр будет сравнивать цветовые значения (RGB), тогда как в случае отключения опции будет сравниваться luminance составляющая. Включение опции улучшает качество деинтерлейсинга для фильмов, в которых присутствуют большие области одного цвета (мультфильмы), тогда как для обычных фильмов эту опцию следует отключать.

 

· Show motion areas only - Опция предпросмотра. Во включенном состоянии в окне предпросмотра VirtualDub'а будут показываться только области видео, где будет применен фильтр - т.е. области, считающиеся движущимися. Полезна для принятия решения, какой метод использовать и какие значения порога выставлять.

 

· Blend instead of interpolate in motion areas - когда опция включена, фильтр в движущихся областях использует пикселы только из одного поля, интерполируя изображение, в статических областях используются оба поля. Если опция включена, фильтр будет смешивать цвета линий сверху и снизу, размывая тем самым как артефакты интерлейсинга, так и само изображение. Какой способ лучше, выбирать вам - у каждого есть свои недостатки: интерполяция выдает небольшие "ступеньки" и подчас имеет цветовые артефакты, смешивание цветов, в свою очередь, немного понижает четкость деталей и образует отражения (эффект гало) движущихся предметов.

 

· Use cubic for interpolation - используется только для интерполяции: при включенной опции используется более медленный, но зато более точный метод интерполяции (по 4м линиям).

 

· Motion map denoising - для того, чтобы избавиться от "ступенек" желательно использовать низкие значения порога (threshold), но при низких его значениях цветовой шум начинает восприниматься как движение - в итоге мы имеем своеобразные искорки в обработанном видео и уменьшаем эффективное разрешение фильма (так как размер движущихся областей возрастает). Чтобы избежать этого, включите данную опцию - в этом случае фильтр будет совершать дополнительные проверки на шум на стадии определения областей движения. Конечно же, скорость обработки при этом упадет, причем достаточно заметно.

 

· Motion Threshold - порог, пороговое значение, определяет разницу сравнения пикселей для определения, статичный ли пиксель или нет. Чем больше значение порога, тем больше артефактов останется в итоговом видео, чем меньше значение - тем меньше будет эффективное разрешение итогового фильма. Приемлемые параметры зависят от конкретного фильма и составляют 15-25 для использования фильтра с отключенным Motion map denoising и 10-20 - с включенным. Для того, чтобы пронаблюдать эффект понижения или повышения порога, включите опцию Show motion areas only и меняйте значения порога - в окне предпросмотра увидите производимые изменения.

 

· Scene Change Threshold - иногда смена сцены случается между полями кадра, в этом случае фильтр может отработать некорректно. Чтобы избежать этого, введен этот параметр. Если количество пикселей (в процентах) в движущихся областях кадра превысит это значение, весь кадр будет расценен как движущийся и подлежащий обработке. Следует заметить, что данная проверка выполняется до Motion map denoising
"Продвинутые" опции:
Тут необходимо отвлечься для объяснения некоторых технических вопросов. Как правило, видеоматериал состоит из ряда 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-.... Этот поток будет замечательно отображаться на чересстрочном телевизоре, но при захвате и последующей попытке сделать деинтерлейс нам обеспечена головная боль. Для этого в фильтре предоставлены "продвинутые" опции, которые позволяют нам исправить входящий поток непосредственно перед деинтерлейсом.

 

· Swap fields on input - поменять поля в кадре на входе.

 

· Shift field phase by one - сдвигает поля вправо на одно поле. Пример: T1B2-T2B3-T3B4... -> xxT1-B2T2-B3T3...

 

· Swap fields on output - поменять поля в кадре на выходе (т.е. после первых двух действий).

 

· Disable Motion Processing - не делать деинтерлейс, использовать фильтр только для упорядочивания потока.

Рассмотрим все возможные ситуации ситуации, нетрудно прикинуть с помощью комбинаторики, что будет восемь вариантов:
1. B1T1-B2T2-B3T3... - нормальный поток, ничего не надо делать.
2. T1B1-T2B2-T3B3... - включаем Swap fields on input.
3. T1B2-T2B3-T3B4... - включаем Shift field phase by one.
4. B2T1-B3T2-B4T3... - включаем Swap fields on input и Shift field phase by one.
5. B1T2-B2T3-B3T4... - включаем Shift field phase by one и Swap fields on input.
6. T2B1-T3B2-T4B3... - включаем все три опции.
7. T2B2-T3B3-T4B4... - включаем Swap fields on input.
8. B2T2-B3T3-B4T4... - нормальный поток, ничего не надо делать.
Понятно, что структура потока известна заранее в редких случаях, поэтому я всегда подбираю "на глаз" - включаю самый быстрый деинтерлейс (Frame-only differencing) и смотрю на правильность получаемой картинки, если картинка "неправильная", подбираю "продвинутые" опции. Отмечу, что никогда не мог получить "неправильный" поток, захватывая поток с помощью ATI Radeon с видеокамеры Video8 , в то время как с VHS - сплошь и рядом. Покажу на примере, в примере использован только фильтр деинтерлейсинга, очистки и сглаживания я специально не делал:
Кадр с черестрочным видео (хорошо заметны сдвиги при быстром перемещении объекта)

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

Видно характерное "гало", появляющееся из-за неправильного чередования полей. Выставляем опцию Swap fields on input, с удовлетворением созерцаем результат:

Плюсы и минусы:
Плюсы: Лучший фильтр деинтерлейсинга для VirtualDub'а! Наличие большого количества опций позволяют подобрать оптимальный режим обработки для конкретного фильма. используются неплохие алгоритмы нахождения шума, сравнивается до 4 полей входного видео, имеется возможность нормализовать поток.
Минусы:К сожалению, качество деинтерлейсинга уступает профессиональным и даже обычным (но платным или поставляемым вместе с оборудованием или программным обеспечением для видеомонтажа) фильтрам. Не поддерживается режим деинтерлейсинга с одновременным понижением разрешения по вертикали (реализуемый, к примеру, Ligos Gomotion, который используется при захвате на видеокартах ATI и в некоторых программах захвата, например, PowerVCR - уже на стадии захвата: судя по всему, используется информация из 6 (!) полей, разрешение по вертикали уменьшается до 432, что вполне приемлемо для VHS и Video8, при этом практически полностью убираются шумы и артефакты чересстрочной развертки - и это в реальном времени!). Плюс к этому фильтр весьма медленный (особенно с включенными опциями шумоподавления и кубической интерполяции), неоптимизированный - проигрывает в этом плане встроенному в VirtualDub фильтру. Слегка сложен для новичков.







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.