Mod-ный редактор видео - VirtualDubMod. Часть 1

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

Обработка полученного файла в идеальном случае должна состоять из двух частей: обработка звука и обработка видео. О работе с видео мы поговорим подробно ниже. Что касается звука, то есть два пути: простой - сжатие его в MP3 в VirtualDubMod в процессе финального сжатия видео, и качественный - обработка в каком-либо специальном аудио-редакторе, например, Adobe Audition, и последующее сведение в том же VirtualDubMod. Про обработку звука мы поговорим подробно в другой раз.

Что же касается системных требований - к сожалению, даже вполне современный компьютер не избавит вас от длительного ожидания результата. При обработке видео важное условие - наличие в вашем компьютере не менее двух жестких дисков (SATA или IDE, пока не важно), подключенных к разным HDD-контроллерам, что позволит почти вдвое сократить время выполнения операций, связанных с переносом больших объемов информации (сведение звука и видео, вырезание лишних фрагментов с сохранением результирующего файла и пр.).

Приступим. Откроем наш файл - File-Open video file... И через несколько секунд он готов к редактированию. Какие же задачи нам предстоит решить? Во-первых, удалить мусор (лишние фрагменты, рекламу); во-вторых, обрезать неровные границы кадров, уменьшить разрешение кадра (захватывали видео мы в максимальном разрешении - 720х576 - для того, чтобы сохранить наилучшее качество видео), в-третьих, убрать шум видео, с целью улучшения его качества и увеличения степени финального сжатия, ну и, в-четвертых, произвести финальное сжатие видео с максимальным качеством. И в самом конце - наложить уже обработанный звук на сжатое видео. Как видите, все просто :).


1. Удаляем мусор

 

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

Для того чтобы найти фрагменты, которые предстоит удалить, воспользуемся ползунком, расположенным в нижней части окна программы. Чтобы выделить "кандидата на удаление", достаточно установить ползунок на начало эпизода мышкой и с точностью до кадра откорректировать его положение клавишами "вправо - влево". После того как мы убедимся в точности положения ползунка, нажимаем клавишу Home, после чего повторяем эту операцию для указания окончания фрагмента и нажимаем End. Теперь, по нажатию клавиши Del, мы удалим фрагмент (общее замечание: НИКАКИЕ изменения в исходный файл не вносятся, изменения осуществляются только в результирующем файле). Повторяем эту операцию необходимое количество раз.

Чтобы внесенные нами изменения были сохранены, необходимо сохранить видео с вырезанными фрагментами в новый файл. VirtualDUBMod позволяет делать это в режиме DirectStreamCopy (прямопотоковое копирование), т.е. файл не будет пережат, программа просто скопирует наш файл БЕЗ удаленных фрагментов. Для того чтобы сохранить файл в режиме DirectStreamCopy при сохранении файла (File - Save As...), изменяем значение VideoMode - на DirectStreamCopy.

После того как все лишнее исчезнет с наших глаз, можно отделить звук для его обработки и последующего сжатия. Открываем файл, уже не содержащий лишних фрагментов, входим в меню Streams - Stream List, нажимаем на кнопку Save WAV. Сохраненный WAV-файл отложим до лучших времен.

Теперь же приступим к более сложному этапу.


2. Уменьшаем уровень шума при помощи фильтров

Тут все не так просто, как на предыдущем этапе, ввиду того, что качество полученного вами видео может сильно отличаться.

Для программ семейства VirtualDUB существуют сотни фильтров на все случаи жизни. Это обстоятельство, наряду с бесплатностью, простотой и наглядностью программы, определило ее огромную популярность. Все фильтры в абсолютном большинстве состоят из одного единственного файла с расширением "VDF" очень небольшого размера (несколько десятков килобайт). Среди них существует небольшое количество платных фильтров, но, как показывает опыт, они не только не имеют подавляющего преимущества в качестве над бесплатными фильтрами, но и часто уступают им.

Ввиду огромного количества фильтров и еще большего количества возможных настроек мы рассмотрим способы настройки и использования наиболее популярных из них.

Цепочка фильтров в программе формируется в окошке Filters, вызываемом при выборе из меню Video/Filters... По нажатию кнопки Add... появится окно, отображающее список доступных фильтров. Встроенных фильтров (обозначенные как Internal) нам будет не достаточно, так что придется вам скачать их из интернета, благо, большинство из них имеют крошечный размер (десятки килобайт).

Обычно по краям кадра содержится различный "мусор", искаженное изображение или же просто черные полосы, чтобы избавиться от этого безобразия, применим встроенный фильтр Null transform (Video/Filters/Add/Null transform/Cropping). Как следует из названия, сам этот фильтр ничего не делает. Пригоден он только для обрезки краев кадра. После нажатия кнопки "Cropping" появится окно для обрезания краев кадра: тут вы можете выбрать, на сколько пикселов обрезать каждый из краев кадра. Также в этом окне возможен предварительный просмотр изображения с обрезанными краями, согласно текущим установкам. Проверьте, что края правильно обрезаны для всех частей видеозаписи. Очень желательно, чтобы верхний и нижний края видео обрезались на четное количество пикселов.

К сожалению, невозможно указать универсальную комбинацию фильтров, пригодную для обработки видео еще и по причине различного качества полученного видео.

Рассмотрим несколько популярных фильтров и их настройки.


Фильтр QSDeinterlace

Предназначен для устранения так называемого "эффекта гребенки". Возникает данный эффект по следующей причине. Существуют два способа представления видеоизображения: устаревший чересстрочный и более новый прогрессивный. Вещательный телевизионный сигнал по историческим причинам использует чересстрочный способ. Это означает, что кадр состоит из двух половинок: сначала передается первый полукадр (или поле), который отображается в нечетных строках кадра, а потом - второй полукадр, соответственно, он отображается в четных строках.

Прогрессивный кадр содержит все строки: четные и нечетные. Компьютерная техника отображает изображение в прогрессивном формате.

Таким образом, цель данного фильтра - составление полного кадра из двух полукадров: в нечетные строки записывается содержимое одного поля, в четные - другого. В результате мы получим прогрессивное видео, состоящее из полных кадров с частотой 25 кадров/с. Все сказанное справедливо как для распространенных у нас стандартов PAL/SECAM, так и для NTSC с той лишь разницей, что частоты там будут 30 кадров для чересстрочного и 60 кадров/с для прогрессивного видео.

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


Фильтр Dynamic Noise Reduction

Для удаления динамического шума можно применить Dynamic Noise Reduction (DNR). Этот фильтр по своему действию является временным (temporal), так как использует два кадра - "этот" и "предыдущий", получая сглаженный пиксел как (2*этот + предыдущий) / 3, если разность находится в пределах от порог/2 до порог. Такой принцип работы гарантирует достаточно быстрое адаптирование фильтра к смене сцены и приемлемое быстродействие. Также этот фильтр помогает избавиться от шумов, более-менее случайных от кадра к кадру. Итак, если вы решили воспользоваться DNR, то настройки у него просты - всего один слайдер, по умолчанию он установлен на значение 12. Как правило, это значение является оптимальным, но лучшего результата вы сможете достигнуть, если сами поэкспериментируете с нехитрыми настройками этого фильтра.


Следующий рассматриваемый нами фильтр - Smart smoother HiQuality.

DNR ОБЯЗАТЕЛЬНО применяется ПЕРЕД следующим описываемым фильтром, так как в обратном случае в силу специфики работы Smart smoother HiQuality образуются контуры, которые движутся в каждом кадре, причем возникают они преимущественно по краям движущихся объектов (возникает своеобразный "краевой эффект"), не затрагивая при этом их середины. Данный фильтр особенно хорошо подойдет для видео, содержащего много равномерно окрашенных областей (лица крупным планом, рисованные мультфильмы и пр.).

Фильтр использует размытие изображения, что, несмотря на страшный термин, при грамотном использовании почти не приведет к потере резкости. Включаем встроенный предпросмотр, находим кадр с большим количеством мелких деталей, но с задним планом однородного цвета, включаем режим Visualize Blur и начинаем настраивать, следя за тем, чтобы черным\серым цветом были залиты все детали\контуры предметов, присутствующих в кадре, а шум\артефакты, требующие удаления, наоборот, не были бы видны на белом фоне. Это позволит нам избавиться от грязи, избежав размытия самого изображения.

Фильтр способен использовать два вида размытия. Average pixels отлично работает с однородными цветовыми поверхностями (мультфильмы и пр.), но мало годится для обычного "живого" видео. Weighted average практически одинаково хорошо работает с любым материалом, но его основное предназначение - все же "живое" видео. Итак, выбираем метод и разбираемся со слайдерами.

Первый слайдер отвечает за размер пятна размытия, это очень важный параметр, его нужно выбирать в зависимости от структуры\размера артефактов, которые надо удалить. С шумом, к которому стоит применять значение ниже 5, как правило, отлично справляется и DNR, а вот крупноструктурированный, "тяжелый" шум - как раз прерогатива этого фильтра. Итак, в зависимости от шума выбираем значение слайдера от 5 до 13, не забывая, что увеличение пятна ведет к лучшему подавлению шума\артефактов, но к уменьшению резкости изображения, кроме того, сильно увеличивая время обработки. Его регулировка необходима при выборе любого метода размытия.

Второй слайдер отвечает за то, насколько близки должны быть цвета соседних пикселов, чтобы быть смешанными, это менее критичный параметр, но все же он нуждается в регулировке в зависимости от цветовой зашумленности. Выбираем значение от 50 до 150. Кроме того, при явно некачественных цветах (например, при захвате со старой кассеты) имеет смысл включить опцию Check grayscale - сравнение будет производиться в шкале серого цвета. Регулировка этого параметра также необходима при выборе любого метода размытия.

Третий слайдер отвечает, собственно, за "мощность" фильтра, если видео предварительно уже было обработано шумоподавляющими фильтрами, ставьте его на 128 плюс-минус 50; максимальное значение подойдет для грязного видео, но будьте готовы к возможному появлению эффекта "мокрого стекла". Надо отметить, что этот параметр регулировать надо только при использовании метода Average pixels.

Четвертый слайдер непосредственно связан с чекбоксом Weighted with difference - он указывает максимальную разницу между цветами пикселов, после которой режим Weighted with difference будет отключаться. Соответственно, чем правее стоит слайдер, тем потенциально более однородную по цвету картинку мы получим в итоге.

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


Увеличение резкости при помощи XSharpen

В результате применения описанных выше фильтров, помимо снижения уровня шумов, мы неизбежно получим и снижение резкости всей картинки, в целом, для повышения резкости существует фильтр XSharpen.

Данный фильтр действует путем просмотра каждого кадра через небольшое окошко, в котором происходит преобразование каждого пиксела в самый яркий либо темный пиксел в окошке. За размер этого окна отвечает слайдер threshold.

Слайдер strength отвечает за интенсивность производимой операции - при значении 255 будет получен эффект максимальной силы.

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

Последняя из обязательных операций, которую нам предстоит провести - изменение финального размера кадра. Захват мы с вами производили в разрешении 720х576, вот из этого и будем исходить.

При уменьшении размера кадра (а именно его нам и предстоит производить) желательно сохранять соотношения сторон, кратные 4-м по горизонтали и 2-м по вертикали. Не вдаваясь в арифметику скажу, что для нашего случая оптимальным разрешением будет 512х384.


Выбираем фильтр Resize

Как видно, поле "Filter mode" позволяет выбрать один из нескольких способов изменения размера изображения. Остановимся на этих способах более подробно, т.к. этот фильтр вам придется применять всегда при сжатии видео в MPEG4 как при уменьшении изображения, так и при его увеличении.

"Nearest neighbor". Быстрейший и худший метод, поскольку используется попросту значение ближайшей точки исходной картинки. По сути, часть точек отбрасывается (при уменьшении) либо дуплицируется (при увеличении).

"Bilinear". В обоих направлениях проводится линейная интерполяция (используется 2х2 матрица, то есть 4 ближайших точки). Быстрый и неплохой метод, слегка сглаживающий картинку, однако при больших увеличениях начинает проявляться блочная структура.

"Bicubuc". В обоих направлениях проводится кубическая интерполяция (по матрице 4х4, то есть используется 16 ближайших точек), дает более резкую картинку. При увеличении дает значительно лучший результат, чем билинейный метод. Поскольку детали прорисовываются четче, усиливаются и шумы, то есть картинки с шумами нужно увеличивать очень осторожно. Значительно медленнее, чем билинейный фильтр.

"Precise bilinear". В обоих направлениях проводится линейная интерполяция, но вместо 2х2 используется полная билинейная матрица. При увеличении работает аналогично билинейному методу, но при уменьшении очень эффективно сглаживает шумы.

"Precise bicubuc". В обоих направлениях проводится кубическая интерполяция по полному бикубическому ядру. Очень хорош как при увеличении, так и при уменьшении картинки. Медленнее всех предыдущих. Имеется выбор между тремя значениями одного из параметров (но на глаз разницу не видно). A=-1.00 дает наиболее четкую картинку.

"Lanczos3". Используется матрица 6х6 (то есть каждая точка вычисляется по 36 соседним точкам). Многие считают этот метод лучшим, но он и самый медленный.

Итак, в поле "New width" пишем 512, а в поле "New height" - 384. Filter Mode - Precise Bicubic (A=-1.00). В случае необходимости увеличения кадра, наоборот, применяем Precise Bilinear. Режимы "Precise" более точно производят ресайз, поэтому рекомендуется применять именно их.

Как правило, Resize в цепочке фильтров должен быть последним, т.к. при уменьшении размера будут скрыты артефакты, появившиеся во время обработки другими фильтрами, и качество картинки визуально улучшится.

После формирования цепочки фильтров мы должны увидеть следующее:

Программы семейства VirtualDUB позволяют просмотреть результат работы цепочки фильтров до того, как будет произведено само сжатие.

Для этого достаточно нажать кнопку "Output playback" в панели инструментов:

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

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

Итак, мы рассмотрели начальный этап редактирования видео, и применение некоторых популярных фильтров, в дальнейшем рассмотрим финальное сжатие видео и обработку звука.

Вопросы и предложения направляйте по адресу BOPOX@TUT.BY

Андрей АЧИНОВИЧ

Версия для печатиВерсия для печати

Номер: 

12 за 2006 год

Рубрика: 

Multimedia
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!
 

Комментарии

Аватар пользователя Dmitry Katsubo
Плагины можно скачать здесь:

qsdeinterlace.ziphttp://www.mediatory.ru/article21_article_20_1.phtml

dnr2.ziphttp://msk.nestor.minsk.by/kg/2006/27/kg62710.html

smoothhiq_211_athlon.ziphttp://neuron2.net/hiq/smoothhiq.html

xsharpen10b2.ziphttp://neuron2.net/xsharp.html

Аватар пользователя Рыжкин Евгений Михайлович
Уважаемые граждане. Прошу помочь с MKV файлами. В DubMod есть такой тип файла, и я где-то слышал, что этой прогой можно с MKV. Если есть знания на эту тему поделитесь. Я, думаю не только мне интересно.

Заранее спасибо.

Евгений