Burglarik Выбирай сам:
У всех есть плюсы и минусы. Старая инфа, может что-то изменилось
[more]Фильтры для де-интерлейса
1. Smart Deinterlacing Filter. Лучший, на мой взгляд, deinterlace фильтр для VirtualDub'а, хотя и не идеальный. Обеспечивает несколько частично пересекающихся режимов де-интерлейсинга. Обрабатываются только нестатичные области фильма. Здесь рассмотрен фильтр версии 2.7b2.
Основные опции:
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 - сплошь и рядом. Плюсы и минусы:
Плюсы: Лучший фильтр деинтерлейсинга для VirtualDub'а! Наличие большого количества опций позволяют подобрать оптимальный режим обработки для конкретного фильма. используются неплохие алгоритмы нахождения шума, сравнивается до 4 полей входного видео, имеется возможность нормализовать поток.
Минусы: К сожалению, качество деинтерлейсинга уступает профессиональным и даже обычным (но платным или поставляемым вместе с оборудованием или программным обеспечением для видеомонтажа) фильтрам. Не поддерживается режим деинтерлейсинга с одновременным понижением разрешения по вертикали (реализуемый, к примеру, Ligos Gomotion, который используется при захвате на видеокартах ATI и в некоторых программах захвата, например, PowerVCR - уже на стадии захвата: судя по всему, используется информация из 6 (!) полей, разрешение по вертикали уменьшается до 432, что вполне приемлемо для VHS и Video8, при этом практически полностью убираются шумы и артефакты чересстрочной развертки - и это в реальном времени!). Плюс к этому фильтр весьма медленный (особенно с включенными опциями шумоподавления и кубической интерполяции), неоптимизированный - проигрывает в этом плане встроенному в VirtualDub фильтру. Слегка сложен для новичков.
1a. QS Deinterlace Filter. - фильтр, основанный на идее Дональда Графта, автора Smart Deinterlace. Сохраняя качественные свойства предка, новый фильтр реализует более оптимизированный алгоритм, значительно превосходя Smart Deinterlace по скорости на процессорах Intel с поддержкой SSE и SSE2 (PIII, Coppermine Celeron'ы, PIV). В настоящее время доступна бета-версия фильтра. Как один из авторов фильтра, подтверждаю, что мы не собираемся останавливаться только на оптимизации фильтра по скорости - предложены формулы для улучшения качества картинки. Так как в целом опции нового фильтра и его пока предка равнозначны, мы не останавливаемся на них, а предлагаем его скачать на этой странице.
2. Deinterlace - area based. Фильтр имеет сходство с предыдущим в том, что обрабатывает только лишь те области, которые в этом нуждаются, причем только в тех кадрах, которые бы имели без деинтерлейса артефакты. Однако на некоторых фильмах (с очень медленным движением либо с субтитрами, которые отличаются в различных полях) он может давать лучший результат, чем Smart Deinterlace. Здесь рассмотрен фильтр версии 1.2. (Ссылка на сайт фильтра)
Опции:
Show deinterlaced areas onlyShow deinterlaced areas only - будет показывать в preview окне VirtualDub'а только области, где будут производиться изменения - т.е. области, которые фильтр считает нестатическими.
Blend instead interpolate - смешивает цвета из разных полей вместо того, чтобы отбросить информацию одного, чтобы полностью интерполировать линии на основе другого поля.
Threshold - контроль за уровнем деинтерлейсинга - чем меньше число, тем большая площадь подвергнется обработке.
Edge detect - границы некоторых реальных объектов фильтр легко может принять за артефакты интерлейсинга. Данное число позволяет контролировать это процесс: более высокое значение оставит большее количество границ нетронутыми.
Плюсы и минусы:
Плюсы: Хорош для фильмов с очень маленьким движением. Позволяет быстро прикинуть (с включенной опцией Show deinterlaced areas only) как лучше провести деинтерлейс.
Минусы: Слабоватый фильтр для любительского видео или фильмов. Уступает по качеству Smart Deinterlace и QS Deinterlace.
3. Deinterlace MAP (Motion And Pixel Based). - потенциально фильтр, подающий большие надежды, как сочетающий в себе одновременно идеи Smart Deinterlace и Deinterlace - area based фильтров, применяя их вместе в определенных пропорциях. Теоретически способен дать хороший результат. Сайт фильтра.
Опции (Deinterlace Settings):
Threshold - то же самое, что и раньше: уровень обнаружения артефактов чересстрочности: чем меньше значение, тем больше точек подвергнется обработке.
Edge Detect - данное число позволяет контролировать сравнение артефактов и реальных границ объектов: чем больше число, тем большее количество границ останутся нетронутыми.
Опции (Motion Detection):
Enable - разрешает или запрещает карту движения объектов (или пикселей)
Smooth Map - использование спец. методик размытия картинки, если выделено
Threshold - разница между пикселями в ращных кадрах, чтобы посчитать пиксель движущимся.
Плюсы и минусы:
Плюсы: Высокий потенциал.
Минусы: Сложно подобрать опции для конкретного фильма. Медленный.
4. Deinterlace - PAL movie. - фильтр для "ненастоящей" чересстрочности. Иногда бывает при захвате в 25 кадров в секунду (не 50 полей в секунду), что карта неверно распознает поля, принадлежащие к разным кадрам и смешивает их в один. Вот для этого случая и применяется этот фильтр. Он вставляет одно поле между такими неразделенными полями. При этом этот фильтр должен применяться первым.
[/more]