Virtualdub деинтерлейсинг в каком порядке

Обновлено: 07.07.2024

Лучший, на мой взгляд, фильтр deinterlace для VirtualDub'а, хотя и не идеальный. несколько Обеспечивает частично пересекающихся режимов де-интерлейсинга. только Обрабатываются не статичные области фильма. Здесь фильтр рассмотрен версии 2.7b2.

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

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

обработке-and-field differencing - комбинирует предыдущих два метода. Самый медленный способ.

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

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

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

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

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

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

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

Scene Change Threshold - смена иногда сцены случается между полями этом, в кадра случае фильтр может отработать Чтобы. некорректно избежать этого, введен этот Если. параметр количество пикселей (в процентах) в движущихся кадра областях превысит это значение, весь будет кадр расценен как движущийся и подлежащий Следует. обработке заметить, что данная проверка Motion до выполняется map denoising

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

1. B1T1-B3T3-B2T2.
2. T1B1-T2B2-T3B3.
3. T1B2-T3B4-T2B3.
4. B2T1-B3T2-B4T3.
fields Swap on input - поменять поля в кадре на hift.
входе field phase by one - сдвигает вправо поля на одно поле. Пример: T1B2-T3B4-T2B3. -> xxT1-B2T2-B3T3.
Swap output on fields - поменять поля в кадре на выходе (т.е. первых после двух действий).
Disable Motion делать - не Processing деинтерлейс, использовать фильтр только упорядочивания для потока.

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

1. B1T1-B2T2-нормальный. - B3T3 поток, ничего не надо делать.
2. T2B2-T1B1-T3B3. - включаем Swap fields on T1B2.
3. input-T2B3-T3B4. - включаем Shift phase field by one.
4. B2T1-B3T2-B4T3. - Swap включаем fields on input и Shift field one by phase.
5. B1T2-B2T3-B3T4. - включаем field Shift phase by one и Swap fields on T2B1.
6. input-T3B2-T4B3. - включаем все опции три.
7. T2B2-T3B3-T4B4. - включаем fields Swap 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 в встроенному фильтру. Слегка сложен для Deinterlace.

1. QS новичков Filter.
Фильтр, основанный на идее Графта Дональда, автора Smart Deinterlace. Сохраняя свойства качественные предка, новый фильтр реализует оптимизированный более алгоритм, значительно превосходя Smart скорости по Deinterlace на процессорах Intel с поддержкой SSE и PIII (SSE2, Coppermine Celeron'ы, PIV). Авторы не останавливаться собираются только на оптимизации фильтра по скорости - формулы предложены для улучшения качества картинки. как Так в целом опции нового фильтра и пока его предка равнозначны, мы не останавливаемся на них.

2. area - Deinterlace based.
Фильтр имеет сходство с том в предыдущим, что обрабатывает только лишь те которые, области в этом нуждаются, причем только в кадрах тех, которые бы имели без деинтерлейса Однако. артефакты на некоторых фильмах (с очень медленным либо движением с субтитрами, которые отличаются в различных может) он полях давать лучший результат, чем Deinterlace Smart. Здесь рассмотрен фильтр версии 1.2.

Show:
Опции deinterlaced areas onlyShow deinterlaced only areas - будет показывать в preview окне только'а VirtualDub области, где будут производиться области - т.е. изменения, которые фильтр считает нестатическими.
instead Blend interpolate - смешивает цвета из разных вместо полей того, чтобы отбросить информацию чтобы, одного полностью интерполировать линии на основе поля другого.
Threshold - контроль за уровнем деинтерлейсинга - меньше чем число, тем большая площадь обработке подвергнется.
Edge detect - границы некоторых объектов реальных фильтр легко может принять за интерлейсинга артефакты. Данное число позволяет контролировать процесс это: более высокое значение оставит количество большее границ нетронутыми.

Плюсы и минусы:
Хорош: Плюсы для фильмов с очень маленьким Позволяет. движением быстро прикинуть (с включенной опцией deinterlaced Show areas only) как лучше деинтерлейс провести.
Минусы: Слабоватый фильтр для видео любительского или фильмов. Уступает по качеству Deinterlace Smart и QS Deinterlace.

3. Deinterlace MAP (Motion Pixel And Based)
Потенциально фильтр, подающий надежды большие, как сочетающий в себе одновременно Smart идеи Deinterlace и Deinterlace - area based применяя, фильтров их вместе в определенных пропорциях. Теоретически дать способен хороший результат.

Опции (Deinterlace Threshold):
Settings - то же самое, что и раньше: уровень артефактов обнаружения чересстрочности: чем меньше значение, больше тем точек подвергнется обработке.
Edge данное - Detect число позволяет контролировать сравнение реальных и артефактов границ объектов: чем больше тем, число большее количество границ останутся Опции.

нетронутыми (Motion Detection):
Enable - разрешает запрещает или карту движения объектов (или Smooth)
пикселей Map - использование спец. методик картинки размытия, если выделено
Threshold - разница пикселями между в ращных кадрах, чтобы посчитать движущимся пиксель.

Плюсы и минусы:
Плюсы: Высокий Минусы.
потенциал: Сложно подобрать опции для фильма конкретного. Медленный.

4. Deinterlace - PAL movie.
для Фильтр "ненастоящей" чересстрочности. Иногда бывает захвате при в 25 кадров в секунду (не 50 полей в секунду), карта что неверно распознает поля, принадлежащие к кадрам разным и смешивает их в один. Вот для случая этого и применяется этот фильтр. Он вставляет поле одно между такими неразделенными полями. этом При этот фильтр должен применяться Серия.

Причина дефекта лежит в отличии представления кадра для разных способов хранения и передачи визуальной информации. В киноиндустрии кадр на плёнке является цельной картинкой, и частота его смены изначально принята 25 fps (кадров в секунду), что уже даёт возможность создать иллюзию движения на грани инерционности человеческого зрения. В телевидении для сокращения плотности передаваемого потока информации в единицу времени (оптимизация сигнала для передачи по узким каналам) применили чересстрочное половинчатое представление кадра, являющееся полем, состоящим из чётных, или нечётных строк соответственно (все традиционные системы TV, и связанные с ними магнитные носители, например, VHS), сохранив при этом частоту смены изображения (fps). Телевизор так и показывает не кадры, а поля с той-же частотой (например, чётные строки кадра 1, нечётные строки кадра 2, и т.д.), но мы этого не замечаем, и не только из-за особенностей нашего зрения, но и потому что кинескопы, в силу своей специфики, смягчают переходы изображения. С появлением компьютеров и мониторов, которые имеют повыше разрешение и динамику отображения, возникла возможность возврата к единому кадру (HDTV также уже использует прогрессивную развёртку), и актуальной стала необходимость максимально корректно и бездефектно восстанавливать из полей чересстрочного видеопотока цельную картинку (кадр) прогрессивного, что и реализовано аппаратно во многих устройствах. Естественно, существуют также и софтовые фильтры. Казалось-бы всё просто, но нюансов оказалось сверхдостаточно.
Подробнее тут.

internal filter: deinterlace
group: deInterlace

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

Аналогичен фильтру Smart Deinterlacer, но при его работе удваивается частота кадров выходного видео. Например, если на входе видео с чередованием 30 кадров в секунду, то на выходе получится уже 60 прогрессивных кадров в секунду. Каждый кадр выходного видео создается из единичного входного поля путем интерполяции, или использованием данных из предыдущего кадра (поля, см. ниже), в зависимости от того, обнаружено ли перемещение области. Фильтр использует бикубическую интерполяцию. Есть также режим "dumb bob", в котором весь кадр интерполируется вне зависимости от движения.
Таким образом, данный фильтр позволяет извлечь максимум возможной пространственной и временной информации из чересстрочного видео. Если частота кадров будет оставлена удвоенной и аппаратные средства позволяют воспроизводить такое видео, то движение в нем будет очень плавным (за счет удвоения временного разрешения). Если же частоту кадров привести к оригинальной (уменьшить), то в результате появится очень плавный эффект замедленной съемки. Этот режим может быть удобен при анализе, например, записей спортивных состязаний.
Smart bob работает после разбиения полей на кадры. Есть два способа разбиения:
1. Если видео закодировано MJPEG с двумя полями, можно включить "Popup extended open options" в диалоге выбора открываемого файла. Затем, в диалоге расширенных настроек нужно выбрать опцию "Split interlaced frame into two fields".
2. Если видео сжато не MJPEG, можно воспользоваться утилитой Avisynth, чтобы разбить поля на кадры.

Параметры:
- Show motion areas only: если выбрано, показываются только двигающиеся области изображения, статичные области залиты черным. Эта опция может использоваться, чтобы оценить выбор значения Threshold. Так как этот режим введён только для отладки, то он использует удвоение строки и не сдвигает поля на строку, так что будет заметно колебание изображения (вверх/вниз). При полной обработке используется бикубическая интерполяция и каждый кадр сдвигается для выравнивания полей.
- Even-numbered frames (0-based) contain top fields: этим флажком сообщается фильтру, что четные кадры содержат верхние поля.
- Threshold: порог, определяющий чувствительность процесса обнаружения движения. Значение, которое окажется слишком низким, приведёт к ложным определениям движущихся областей, и, следовательно, подчеркнет шум. Значение в диапазоне 10-25 подойдет для большинства записей. Можно пронаблюдать эффект от изменения Threshold, включив режим Show motion areas only, попробовав найти то значение, при котором будут отображаться только движущиеся области.

Download from this archive:

Исправляет чередование в видео, но при этом показывает чередующиеся строки. Фильтр для "ненастоящей" чересстрочности, исправляет видео, которое должно быть прогрессивным (без "гребенки"), но, тем не менее, содержит интерлейсные линии. Иногда бывает при захвате в 25 кадров в секунду (не 50 полей в секунду), что карта неверно распознает поля, принадлежащие к разным кадрам и смешивает их в один. Вот для этого случая и применяется этот фильтр. Он вставляет одно поле между такими неразделенными полями. При этом этот фильтр должен применяться первым.
Settings:
- Swap fields: sometimes the fields of a frame are in wrong order. Check this to fix that.

file: DeinterlacePALInterpolation.vdf
filterName: Deinterlace PAL interpolation
autor: tHE fISH
homepage: not present
latest version: v1.0b1 (25.05.2001)
group: deInterlace

Исправляет видео, которое должно быть прогрессивным (без "гребенки"), но, тем не менее, содержит интерлейсные линии. Но в отличие от фильтра Deinterlace PAL movie, здесь на выходе осуществляется дополнительная проверка, и, если линии всеж остались, производится их устранение методом интерполяции.

Download from this archive:

Автоматически восстанавливает порядок чередования полей для интерлейсного PAL видео. Этот фильтр для всех, кто когда-нибудь пытался восстанавливать оригинальный порядок полей и имел проблему с порядком их чередования. После применения видеопоток можно рассматривать как прогрессивный. Это означает, что можно не использовать интерлейс обработку в MPEG-2 кодеке, что должно отразиться на меньшем количестве артефактов вследствии более эффективного сжатия.

Download from this archive:

file: DeinterlaceAreaBased.vdf
filterName: Deinterlace - Area Based
latest version: v1.4 (09.06.2002)

Схож со Smart Deinterlace в том, что обрабатывает только те области, которые в этом нуждаются, и только в тех кадрах, которые бы имели без деинтерлейса артефакты. На некоторых фильмах (с очень медленным движением либо с субтитрами, которые отличаются в различных полях) может дать лучший результат. Чередующиеся линии удаляет используя смешивание или интерполяцию, в зависимости от установок.
*в целом уступает по качеству Smart Deinterlace и QS Deinterlace.
*слабоватый фильтр для любительского видео или фильмов.

Параметры:
- Show deinterlaced areas only: показывает в preview только области, где будут производиться изменения (т.е. те, которые фильтр считает нестатическими) - облегчает процесс настройки
- Blend instead interpolate: смешивает цвета из разных полей вместо того, чтобы отбросить информацию одного, чтобы полностью интерполировать линии на основе другого поля.
- Threshold: контроль за уровнем деинтерлейса (чем ниже значение, тем большая площадь подвергнется обработке).
- Edge detect: границы некоторых реальных объектов фильтр легко может принять за артефакты интерлейса, этот параметр и позволяет контролировать процесс (чем выше значение, тем большее границ остаются нетронутыми).
- Log to file: .

file: DeinterlaceSmooth.vdf
filterName: Deinterlace - Smooth
latest version: v1.1 (28.07.2002)

Это тот-же Deinterlace Area Based, только предназначенный для восстановления разрешения по вертикали для видео с высоким fps. Генерирует высокое разрешение по вертикали прогрессивного 50/60fps видео, записанного как обычное 25/30fps чересстрочное видео.
В стандарте PAL могут существовать 2 типа видео: 50fps видео с половинчатым вертикальным разрешением и 25fps видео с полным вертикальным разрешением. Оба эти типа обычно захватываются как 25fps полноэкранное видео, соответственно для обеспечения 50fps каждый фрейм обычного видео будет состоять из двух кадров записанных черезстрочно.
Аналогично и для системы NTSC, только количество кадров там 60/30 соответственно.
*Progressive Scan (=Weave+Bob)

Download from this archive:

Потенциально фильтр, подающий большие надежды, как сочетающий в себе одновременно идеи двух других разработок. Во-первых, он использует код фильтра Deinterlace Area Based, поэтому анализирует каждый кадр и обрабатывает только те участки изображения, где произошло движение и наблюдается "гребенка". Во-вторых, для обработки таких участков использует код и алгоритм мощного деинтерлейс фильтра Smart Deinterlace. Теоретически способен дать хороший результат.
*сложно подобрать опции для конкретного фильма, медленный.

Параметры:
Deinterlace Settings:
- Threshold: уровень обнаружения артефактов чересстрочности (чем ниже значение, тем больше точек подвергнется обработке).
- Edge Detect: параметр контроля за сравнением артефактов и реальных границ объектов (чем выше значение, тем больше границ останутся нетронутыми).
Motion Detection:
- Enable: разрешает или запрещает карту движения объектов (или пикселей),
- Smooth Map: использование спец. методик размытия картинки,
- Threshold: пороговая разница между пикселями в разных кадрах для признания пикселя движущимся.

file: rks_MAP-DeInt.vdf
filterName: RKS Deinterlace MAP
autor: Alexander Nagiller / Ronald Kayser-Schlцmer
homepage: not present
latest version: v1.1 (13.07.2004)
group: deInterlace

Interlace detection and removal based on motion and pixel analysis.
Based on Code by Alexander Nagiller.

Download from this archive:

Эфективно устраняет "гребенку", не имеет опций. Подходит для тех, кто не хочет возиться с настройками.

Download from this archive:

Фильтр деинтерлейса. Интерполируется только одно поле, второе остаётся неизменным. Интерполяция производится "на лету".

Download from this archive:

Один из лучших deinterlace-фильтров для VirtualDub, хотя и не идеальный. Реализует некоторые идеи Дональда Графта, Эвери Ли и собственные авторские для обработки чересстрочного видео с целью конвертации его в прогрессивное. Обеспечивает несколько частично пересекающихся режимов де-интерлейсинга. Обрабатываются только нестатичные области фильма. Наличие большого количества опций позволяют подобрать оптимальный режим обработки для конкретного фильма. Используются неплохие алгоритмы нахождения шума, сравнивается до 4 полей входного видео, имеется возможность нормализовать поток.
*процессор с поддержкой MMX и лучше, SSE/SSE2 очень рекомендуется!
*если исходник в хорошем качестве то фильтр AlparySoft Deinterlace, если в плохеньком (скажем захват с VHS) - QSDeinterlace.
*в параметрах: обработка видео, выставить сравнение полей и кадров, и обработку шумов движения (порог уровня движения установить - 14).
*нет функции поиска движения, умеет работать только в двух последовательных кадрах (полях), слегка сложен для новичков.
*авторская методика настройки приложена в документации.
*в архиве 2 версии (одна руссифицированная)

file: QSdeinterlacePIV.vdf
filterName: QS Deinterlace (PIV Optimized)
autor: Victor Tomilov / Pavel Kuznetsov
latest version: 0.52b (27.03.2002)

Реализован более быстрый алгоритм и введена поддержка MMX и SSE инструкций для процессоров Intel PII, PIII (и Celeron Coppermine) и PIV.
*не актуальный клон, так как в последующих версиях оригинала реализована введённая поддержка.

Download from this archive:

Качественный деинтерлейс MoComp2 и динамическое шумопонижение проекта DScaler в одном флаконе, настроек не имеет.
Installation:
Copy the DScaler.vdf file to the VirtualDub /plugins sub-directory.
Copy the *.dll files to the VirtualDub program directory: DI_MoComp2.dll, DI_Weave.dll, FLT_TNoise.dll.

Download from this archive:

Обычно деинтерлейс затрагивает весь кадр, то есть те области кадра, где не было движения, тоже подвергаются обработке, из-за чего в таких областях неизбежно происходит потеря информации и ухудшение качества. Это фильтр автоматически определяет интерлейсные области кадра и производит фильтрацию только в них, не затрагивая зоны, где не было движения, которые, соответственно, и остаются с оригинальным качеством.
Преимущества фильтра по сравнению с аналогами (выдержка с авторского сайта):
1) Возможность выбирать для обработки области изображения, в которых необходимо убрать эффект интерлейса.
2) Существующие деинтерлейс фильтры обрабатывают весь кадр, то есть те места на кадре, где не было движения, тоже подвергаются обработке и в этих областях происходит потеря информации и ухудшения качества видео. Наш фильтр может автоматически определять интерлейсные места кадра и проводить фильтрацию только в этих местах, при этом части кадра, на которых не было движения, остаются высокого качества.
3) Многие ныне существующие алгоритмы интерполируют нечетные линии по точкам четных линий. При использовании таких методов теряется до 50% информации исходного видео. Мы используем специально разработанный алгоритм компенсации движения, при использовании которого восстановление кадров происходит практически без потери исходной информации.
4) Для увеличения скорости работы оценка движения производится в два шага - сначала грубое, затем точное позиционирование.
5) Фильтр работает в режиме реального времени даже на достаточно слабых компьютерах, а на Athlon XP 1600+ выдает 35 кадров в секунду при наиболее сложных методах. Простые методы работают еще быстрей.
*бесплатная версия внедряет свой логотип.
*как не стыдно! обработка только нестатичных границ реализована давным давно. вопрос только в алгоритмах оценки движения.
*некоторые считают что Deinterlace Muksun работает качественней.

Download from this archive:

Высокопроизводительный фильтр деинтерлейсинга, предназначен для качественного преобразования из чересстрочного видео в прогрессивное. Для эффективного подавления артефакта "ступенька" при отработке диагоналей для расчета одной точки используется блок до 7*3 пикселей. Большая скорость обработки достигается конвейерной структурой алгоритма.
*на сегодня, вероятно, лучший из аналогов.

ЗЫ. Есть английская и русская версии.

Download from this archive:

Пытается максимально возможно восстановить интерлейсное видео в прогрессивный видеопоток. Алгоритм обработки построен таким образом, что фильтр должен восстановить даже перепутанные поля, динамически изменяющиеся по ходу отображения видео. Фильтр берет вначале верхнее поле текущего фрейма и сравнивает его, используя алгоритм обнаружения гребенки, с нижним полем этого же фрейма, потом с полем предыдующего и следующего фреймов видео. После чего анализирует результат и решает, какая комбинация лучше подходит. Обработка последующих фреймов происходит аналогичным образом.

Программное обеспечение для обработки цифрового видео, как правило, стоит довольно дорого, но не VirtualDub.

Цена на профессиональный видеоредактор может исчисляться тысячами долларов. В основном такие программы представляют собой сложные и громоздкие пакеты, для работы с которыми необходим определенный уровень подготовки. Более дешевые утилиты имеют массу недостатков, с которыми не сможет смириться ни один любитель видеомонтажа -- эти приложения дают на выходе видео невысокого качества и содержат ограниченное число функций для редактирования видеоматериала.


За простым интерфейсом VirtualDub скрываются широкие возможности


Сохранение звуковой дорожки
В некоторых случаях бывает нужно сохранить звуковую дорожку в виде отдельного файла. Например, вы хотите слушать концертную запись в плеере по дороге в институт или на работу либо извлечь аудиоданные из видеофайла, чтобы отредактировать в аудиоредакторе неудачно записанную звуковую дорожку. Подобные задачи VirtualDub решает быстро и качественно.
Одно из достоинств программы состоит в том, что она сохраняет аудио- и видеопотоки без повторной компрессии. Она будет очень полезна при сохранении аудиотрека отдельным файлом. Чтобы отделить звук от видео, следует открыть в программе видеофайл и выяснить, находится ли переключатель в меню Audio в положении Direct stream copy. Затем нужно сохранить файл, выбрав команду File > Save as wav.
Записать звуковую дорожку можно сразу в определенный формат, к примеру в поддерживаемый каким-нибудь портативным устройством, скажем MP3-плеером. В результате исходный файл будет конвертироваться в формат, указанный пользователем. Для этого необходимо в меню Audio установить переключатель в положение Full processing mode и выбрать команду Audio > Compression. В появившемся меню нужно указать тип кодека, который будет использоваться для сжатия аудиотрека, а также его параметры -- частоту дискретизации и битрейт, определяющие качество сохраняемого файла. Далее следует выбрать команду File > Save as wav. После завершения описанных выше действий программа выполнит конвертирование звуковой дорожки в требуемый формат.
Учтите, что файл будет сохранен с расширением .wav, из-за чего не все устройства и приложения сумеют корректно определить его содержимое. А когда программа сконвертирует и запишет аудиофайл на жесткий диск, его разрешение можно изменить вручную в любом файловом менеджере, установив «правильное» MP3 или другое.


Резка клипа без потерь
Как уже было отмечено, VirtualDub помогает редактировать видеофайлы без повторной компрессии. Благодаря этому в программе можно, например, вырезать из концертной записи определенную композицию. Чтобы выполнить такую операцию, откройте исходный файл и передвиньте ползунок в положение, соответствующее началу фрагмента, который необходимо сохранить на диск отдельным файлом. Обозначьте начало этого клипа, нажав на клавиатуре клавишу или выбрав в меню программы Edit пункт Set selection start. Теперь передвиньте ползунок на конец вырезаемого эпизода и нажмите клавишу или укажите в меню программы Edit пункт Set selection End. На временной шкале выделенный промежуток будет обозначен цветом.



Чтобы вырезать фрагмент из клипа, нужно указать его границы


Чтобы избежать повторной компрессии, выберите пункт Direct stream copy в меню Video и аналогичный пункт в меню Audio. Теперь можно сохранять файл с помощью команды File > Save as AVI. Поскольку не требуется повторное сжатие, то процесс сохранения отдельного фрагмента видео занимает очень мало времени и фактически сводится к записи файла на диск.

Объединение нескольких клипов в один
Главное неудобство, которое ощущается при работе с VirtualDub, -- отсутствие многодорожечного интерфейса. На первый взгляд может даже показаться, что программа работает только с одним клипом. На самом же деле VirtualDub способна выполнять такую полезную операцию, как «склейка», объединяя неограниченное число фрагментов в один.
Склейка осуществляется двумя способами -- по отдельности и пакетно. Объединение двух и более файлов без повторной компрессии выполняется лишь при условии, что они имеют одинаковые параметры. Чтобы присоединить один фрагмент к уже открытому клипу, следует выбрать в меню программы команду File > Append AVI segment и указать присоединяемый файл. Убедиться в том, что клипы предварительно склеены, поможет временная шкала -- продолжительность видео должна увеличиться.
Когда же нужно объединить группу видеофайлов, необходимо назвать их определенным образом: video001.avi, video002.avi, video003.avi и т.д. И тогда при изготовлении из отдельных фрагментов целого видео файлы автоматически встанут в том порядке, в каком они пронумерованы. Пользователю останется добавить лишь первый файл. Далее операция склейки выполняется точно так же, как и при работе с двумя файлами.


Замена звуковой дорожки
Выполнять данную операцию имеет смысл, например, при работе с двумя видеофрагментами, скажем парой фильмов. В одном -- плохое видео, но качественное звуковое сопровождение, в другом -- изображение хорошее, но звук неважный. Значит, для получения требующегося результата нужно будет подменить звуковую дорожку, совместив хорошее качество видео и нормальный звук.
А чтобы замена аудиодорожки осуществилась корректно, необходимо соблюдать определенные условия. Так, продолжительность аудио не должна сильно отличаться от исходной продолжительности видео. Кроме того, следует учитывать, что некоторые форматы видео совместимы со звуковыми дорожками только определенного формата. Аудиодорожку лучше всего подготовить в другой программе (например, в бесплатном аудиоредакторе Audacity), хотя в данной утилите и есть функция импорта аудиотрека из другого видеофайла.
Для замены звуковой дорожки нужно открыть исходное видео в VirtualDub и выполнить команду Audio > Audio From Another File. А затем следует указать путь к аудио- или видеофайлу и сохранить результат.


Пакетная обработка видео в VirtualDub

Редактор VirtualDub содержит так называемый список заданий (Job List), позволяющий автоматизировать обработку файлов. Например, стоит задача конвертировать с десяток видеофайлов в разные форматы. Если бы в программе не было поддержки пакетной обработки, пришлось бы по очереди загружать в нее видео, указывать каждый раз новые настройки, ждать, пока она запишет файл на диск, затем открывать следующее видео и снова ждать, пока VirtualDub справится с процессом сжатия и т.д. Благодаря поддержке пакетной обработки видео, можно лишь указать, какие операции должны быть выполнены, а затем оставить компьютер без присмотра. Утилита обработает данные, строго придерживаясь оставленных инструкций. Чтобы занести какое-нибудь задание в список Job List, необходимо использовать набор команд в меню File > Queue batch operation.


VirtualDub умеет обрабатывать файлы в пакетном режиме

Скажем, если нужно последовательно выполнить сжатие двух файлов, необходимо проделать следующие действия. Открыть первый файл, указать параметры сжатия и, если потребуется, начало и конец сохраняемого клипа. Потом следует выбрать в меню File > Queue batch operation > Save as AVI. После этого программа не будет выполнять никаких действий, и можно открыть следующий файл, настроить новые параметры его экспорта и еще раз выбрать нужную команду из подменю Queue batch operation. Далее, когда все задания будут составлены, необходимо раскрыть список Job List в меню File > Job control и нажать в нем кнопку Start, чтобы запустить процесс пакетной обработки.


Многопроходное кодирование
Если требуется подготовить видео для просмотра на мобильном устройстве или перевести его в определенный формат для публикации на одном из онлайновых сервисов, это поможет сделать VirtualDub. Многие алгоритмы сжатия видео поддерживают кодирование в несколько потоков, однако далеко не все знают, как эту технологию применить на практике.
Допустим, необходимо сжать файл кодеком x264vfw (он устанавливается дополнительно, например, вместе с пакетом кодеков K-lite). Когда файл будет открыт в программе, нужно выбрать в меню Video > Full processing mode, а затем -- команду Video > Compression. В списке установленных видеокодеков следует указать пункт x264vfw - H.264/MPEG-4 AVC codec. Затем в правой части окна надо нажать кнопку Configure, чтобы перейти к настройке процесса сжатия. Потом в окне настроек кодека, в раскрывающемся списке Rate Control, нужно выбрать пункт Multipass 1st pass (он обозначает первый проход при многопроходном кодировании) и установить флажок Zero Latency, а в поле Target bitrate kbit/s задать скорость потока. Чем больше этот параметр, тем выше будет качество изображения. Далее следует нажать на кнопку ОК и указать формат звуковой дорожки (команда Audio > Compression) и тип кодека, например Mp3 48 кГц 128 kBit/s, stereo.


Настройка многопроходного кодирования


Теперь нужно выбрать в меню программы File > Queue batch operation > Save as AVI. Затем необходимо еще раз перейти к настройкам кодека для сжатия видеодорожки и в списке Rate Control выбрать пункт Multipass Nth pass (проход кодирования, отличный от первого). Никакие другие настройки изменять при втором, третьем и следующих проходах не придется. Далее следует повторно занести команду сохранения файла в список заданий File > Queue batch operation > Save as AVI. Если же понадобится выполнить кодирование в три (или более) прохода, то следует добавить в список заданий команду сохранения файла столько раз, сколько требуется. При каждом выборе этой команды имя файла должно оставаться одним и тем же. Многопроходное кодирование позволит кодеку оцифровать данные в несколько проходов. После каждого цикла компрессии программа записывает, а затем обновляет вспомогательный файл статистики, информация из которого используется алгоритмом многопроходного сжатия при любом очередном проходе.
Когда все задания будут добавлены в список, нужно открыть список пакетной обработки заданий VirtualDub Job Control, нажав клавишу . В нем отображена вся последовательность действий, которые должна выполнить программа. Для начала кодирования надо нажать кнопку Start и дождаться окончания обработки файла программой. Когда процесс конвертирования видео завершится, в списке заданий напротив каждой строки в колонке Status будет стоять Done (Готово). Чтобы не возникло случайных ошибок, при обработке видео не рекомендуется запускать ресурсоемкие приложения и вообще работать в это время на компьютере. Поскольку принцип многопроходного кодирования идентичен независимо от выбираемого кодека, сжатие с его использованием кодеками DivX, VP70 и пр. будет мало отличаться от описанного варианта для x264.

Применение фильтров
Чтобы откорректировать цветопередачу, наложить логотип на видео, изменить соотношение сторон и выполнить другие операции с видеофайлом, потребуются видеофильтры. Так вот в VirtualDub их множество, причем самых разных.
К одному ролику допустимо применять любое количество фильтров. Чтобы назначить фильтр, необходимо выполнить команду Video > Filters, нажать кнопку Add и выбрать нужный. Если в фильтре присутствуют какие-то настройки, они отобразятся на экране сразу же после его добавления. А чтобы вернуться к ним после выбора фильтра в списке стандартных модулей VirtualDub, достаточно указать в меню команду Video > Filters и, выделив в перечне установленный, нажать кнопку Configure.



Встроенные и дополнительные фильтры -- главные инструменты VirtualDub


Среди наиболее полезных фильтров, употребляемых для обработки видео, стоит выделить следующие:
• Deinterlace -- устраняет эффект «гребенки», возникающий при наличии в видео смещения четных и нечетных строк изображения. Стандартный фильтр деинтерлейсинга в VirtualDub позволяет устранить этот недостаток изображения, используя несколько алгоритмов решения проблемы.
• Resize -- помогает изменить размер картинки обрабатываемого видеофайла. При изменении оригинального размера картинки можно выбирать тип аппроксимации точек, чтобы получить наиболее четкую картинку.
• Logo -- позволяет нанести на видео водяные знаки. С помощью данного инструмента легко поместить в любое место экрана картинку из файла формата JPG, TGA, PNG, BMP или JPEG. В настройках фильтра Logo можно использовать параметр прозрачности и маску альфа-канала для накладываемой на видео картинки.
• Rotate -- предоставляет возможность подбирать оптимальную ориентацию кадра видео для просмотра на экране мобильного устройства, например смартфона. С его помощью удастся повернуть исходное изображение на 90, 180 или 270 о
• Rotate2 -- действует аналогично предыдущему. Однако в настройках этого фильтра разрешается указывать произвольный угол поворота, а положение смещенных точек кадра аппроксимируется по одному из нескольких алгоритмов. Кроме того, в настройках фильтра предлагается установить цвет поля, которое становится видимым при повороте картинки.
Помимо стандартных фильтров в программе VirtualDub можно использовать дополнения сторонних разработчиков, в том числе как бесплатные модули, так и коммерческие.


Рассинхронизация видео и звука
Эта проблема часто возникает при воспроизведении некорректно сжатых файлов. Причин рассинхронизации может быть много -- от неправильно выбранных настроек кодирования до ошибок при обработке видеопрограммой. К счастью, существует несколько способов решить ее.
Если аудиотрек имеет постоянную величину смещения видео относительно звука, необходимо в настройках кодирования указать параметр задержки аудиодорожки. Для этого в меню Audio нужно выбрать пункт Interleaving, установить флажок Enable audio/video interleaving и в поле Delay audio track by указать значение в миллисекундах, на которое происходит отставание или опережение звука. Если аудио опережает видео, следует указать положительное значение, если отстает --- отрицательное.


с такой проблемой

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 составляющая. Включение опции улучшает качество деинтерлейсинга для фильмов, в которых присутствуют большие области одного цвета (мультфильмы), тогда как для обычных фильмов эту опцию следует отключать.

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 (верхнее поле), число - номер оригинального кадра, а тире разделяет кадры. При захвате этот порядок может поменяться, причем в зависимости от ситуации и характерных особенностей карты захвата, возможны четрые варианта (от ситуации: начать захват с верхнего или нижнего поля; от карты: располагать в памяти вначале нижнее поле, а потом верхнее или наоборот):


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 - сплошь и рядом. Плюсы и минусы:

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


2. Deinterlace - area based. Фильтр имеет сходство с предыдущим в том, что обрабатывает только лишь те области, которые в этом нуждаются, причем только в тех кадрах, которые бы имели без деинтерлейса артефакты. Однако на некоторых фильмах (с очень медленным движением либо с субтитрами, которые отличаются в различных полях) он может давать лучший результат, чем Smart Deinterlace. Здесь рассмотрен фильтр версии 1.2. (Ссылка на сайт фильтра)

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 - разница между пикселями в ращных кадрах, чтобы посчитать пиксель движущимся.

Читайте также: