Стабилизация видео: сравнение трёх инструментов

Warp Stabilizer, Deshaker и proDAD Mercalli
Часть 1, теоретическая


Не хотелось бы тратить байты читателя на долгое вступление, вспомним лишь, что вопрос программной стабилизации видео постоянно волнует многих и многих пользователей, всерьёз занимающихся видеосъёмкой с последующим монтажом. Несколько лет назад похожее исследование, касающееся способов программной стабилизации, было уже проделано, но с тех пор изменилось многое: некоторые программы и плагины исчезли с рынка, устарели, потеряв поддержку со стороны разработчика (или это разработчик утратил к своим продуктам интерес?). Как бы то ни было, сегодня существует лишь несколько способов программной стабилизации видео. Мы рассмотрим три наиболее актуальных инструмента и проанализируем качество работы каждого.

Не секрет, что модули стабилизации видео существуют во многих современных любительских видеоредакторах. Эти программы широко известны под определением «комбайны», или «всё в одном». К сожалению, почти все эти программы не имеют тонких настроек экспорта, а если имеют, то в сильно урезанном виде (это сделано специально, дабы неопытный пользователь не пострадал от собственного незнания). По этой причине из данных программ нельзя экспортировать в тот формат и с такими настройками, какие требуются для последующего анализа картинки. Этот анализ требует наличия возможности вывода несжатого видео либо вовсе последовательности картинок, где каждый кадр записывается в виде графического файла. Далеко не каждый любительский видеоредактор способен на такие подвиги, а потому исследование модулей стабилизации, имеющихся в кухонных видеокомбайнах, мы отложим на несколько более позднее время. Однако те программы, которые мы хотим протестировать, вполне позволяют экспортировать в любом удобном виде и формате. Вот они, эти программные средства:

  • Warp Stabilizer — фильтр для стабилизации, встроенный в After Effects CS 5.5;
  • proDAD Mercalli — плагин для многих видеоредакторов;
  • фильтр Deshaker для VirtualDub.

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

Немалая часть жалоб в отношении работы программных стабилизаторов касается так называемой «мыльной» картинки. Она получается после того, как видео подверглось стабилизации. Попытаемся ответить на мучающий многих вопрос: насколько портится исходный кадр после его обработки различными стабилизаторами? Уточним — под словом «портится» мы будем понимать не только разрешение, но и чёткость деталей.

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

Вы могли видеть, что эту раздражающую чёрную кайму удалось скрыть за пределами экрана лишь после того, как видеокадр был увеличен до 115% от исходного размера. Будет логичным предположить, что и чёткость границ объектов снизилась соответствующим образом, примерно на 15%…

Но прежде, чем проверять это, следует хорошенько прикинуть: что мы будем использовать в качестве исходного материала для такого тестирования? Сразу же вспоминается пресловутая тестовая таблица, с помощью которой удобно определять истинную разрешающую способность видеокамер. Однако нам требуется не статичная таблица, а пляшущая по кадру. Так, словно кто-то снимал её с рук. Нет ничего проще: такая съёмка легко имитируется. Кадру с таблицей мы присвоили фильтр, заставляющий картинку дрожать (плагин Sapphire Shake). Степень виртуального тремора руки подбиралась экспериментально: трое человек произвели съёмку настоящей бумажной таблицы с рук при небольшом зуммировании, после чего полученные кадры были проанализированы «на глаз». В результате такого короткого исследования была выведена средняя степень тремора среднестатистической человеческой руки, а также угол, на который камера при съёмке отклоняется от оси оптической системы. С похожими параметрами и был создан этот конечный тестовый ролик.

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

Warp Stabilizer

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

Warp Stabilizer мгновенно присвоится данному клипу, и в панели Effect Control вы увидите уже работающий фильтр. Для достаточно мощного ПК работа этого фильтра практически незаметна, фильтр потребляет крайне мало компьютерных ресурсов. Правда, и работает он долго. Очень долго. В разы дольше (а то и в десятки раз), чем оба следующих программных решения.

Вкратце о параметрах, существенно влияющих на метод стабилизации:

  • Result — содержит два пункта: Smooth Motion и No Motion (плавное движение и отсутствие движения). Стабилизация ведётся соответственно установке: либо камера продолжает плавно двигаться, либо застывает на месте, если это возможно;
  • Method — состоит из четырёх пунктов, которыми определяются направления, по которым программа должна отслеживать движение. В подавляющем большинстве случаев рекомендуется оставить настройки по умолчанию;
  • Framing — имеющиеся здесь четыре параметра определяют судьбу той самой знакомой нам чёрной рамки, пляшущей по краям отстабилизированного клипа. В зависимости от выбора пользователя эта дёргающаяся рамка либо останется в конечном видео, либо обрежется вместе с увеличением картинки до полного заполнения кадра. Существует и ещё один метод: заполнение пустого места, которое обрезалось ввиду стабилизации, соседними пикселями. Такой способ подходит для более-менее статичного видео — например, говорящей головы, снятой на однородном фоне. Если же ролик, требующий стабилизации, имеет много движения, то результат такого синтеза выглядит, как правило, грубо и неаккуратно, ведь программе неоткуда взять несуществующее изображение. В итоге видео напоминает колоду карт, небрежно разбросанных рубашкой кверху.

Нужно отметить один несущественный, но раздражающий недостаток реализации фильтра Warp Stabilizer в After Effects. Мало того, что работает этот фильтр крайне медленно… Дело в том, что созданная программой траектория движения плоскости кадра и прочие параметры — все эти данные сохраняются непосредственно в проекте. Из-за этого файл проекта значительно увеличивается в объёме, и чем выше продолжительность стабилизированного ролика, тем более распухает объём файла. И, соответственно, дольше происходит сохранение файла проекта или его открытие.

Deshaker

Первое — и, пожалуй, главное — как открыть видео в VirtualDub? Не нужно обладать телепатическими способностями, чтобы предвидеть этот вопрос, который 100-процентно возникнет у любого владельца современной видеокамеры. Уже слышим: фанаты VirtualDub яростно нагромождают штабели способов открыть MTS или MOV для редактирования; все эти способы вполне работоспособны, за одним исключением… Чтобы овладеть искусством сращивания форматов видео с данным бесплатным программным обеспечением, недостаточно быть фанатом. Требуется знать и уметь применять множество факторов, влияющих на успех дела. Установить в систему нужные сплиттеры, либо в VirtualDub — плагины, или написать некие скрипты, после чего пошагово выполнить в точном порядке определённые действия, и, при везении (хорошей подготовке), файл всё-таки откроется. Правда, при этом имеется риск недополучить некоторые функции, да и при экспорте могут поджидать очередные затруднения… А потому…

А потому тем, кто не желает связываться с ненужными знаниями, проще всего обойти эту гору стороной: перед работой перекодировать нуждающееся в стабилизации видео в формат, понятный для VirtualDub без применения высокоинтеллектуального колдунства. Идеально подойдёт несжатое видео (но «весит» оно — ого-го!) либо сжатое lossless-кодеком (lossless — сжатие без потерь). При этом используемый кодек обязательно должен быть установлен в системе и доступен VirtualDub-у (обязательно проверить!). Так, в рамках подготовки данной статьи использовался бесплатный Lagarith Lossless Codec (правда, впоследствии оказалось, что видео, перекодированное в него, приобрело блекловатый вид в сравнении с оригиналом — что ж, будет наукой на будущее).

После того, как нужный файл открылся в VirtualDub, требуется присвоить ему фильтр Deshaker. Он прячется в списке фильтров, который вызывается командой Video — Filters — кнопка Add.

Найдя нужный фильтр в списке и нажав ОК, мы увидим окно настроек Deshaker-а. Подробно их описывать нет никакой нужды, это сделано в упоминавшейся статье. Наиболее важными имеющимися тут кнопками можно считать кнопки с названиями Pass 1 и Pass 2. Верно, о так называемом юзабилити разработчики бесплатного ПО вряд ли задумываются — им не до этих мелочей. Поэтому работа с данным фильтром заключается в постоянном участии пользователя. Так, при нажатой кнопке Pass 1 фильтр Deshaker не стабилизирует видео, а всего лишь анализирует движение в кадре, записывая в лог-файл траекторию движения плоскости кадра. Убедившись, что эта кнопка нажата, следует закрыть окно настроек фильтра и вернуться в VirtualDub.

Следующий шаг: если ползунок находится не в самом начале таймлинии, то обязательно перемотать его туда (это крайне важно!) и запустить воспроизведение. Но и запустить не абы как, а только и только предназначенной для этого кнопкой — на следующем скриншоте она обведена красной рамкой.

Начавшееся воспроизведение будет сопровождаться отображением векторов движения и прочих данных, которые фильтр «отлавливает» по ходу работы и записывает в лог-файл. Процессор в это время задействуется не больше чем на половину возможностей каждого ядра — это, в общем-то, неплохо, особенно в сравнении с Warp Stabilizer. Скорость анализа видео Full HD составила в среднем 7-10 кадров в секунду.

По окончании воспроизведения (анализа) нужно опять вернуться к списку фильтров (Ctrl+F), открыть окно настроек фильтра Deshaker и утопить кнопку с надписью Pass 2. Наконец, не забудьте изменить параметр, отвечающий за появление в видео чёрных бордюров. По умолчанию этот параметр выставлен так, что допускает появление в кадре пляшущего бордюра. Это совершенно не подходит нам, а посему изменим неправильные «умолчальные» значения. Как видим, здесь присутствует аж четыре способа скрыть чёрную кайму — что ж, придётся экспериментировать, подбирая лучший из них.

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

proDAD Mercalli

Этот плагин прячется в копилке эффектов и фильтров той программы, в которую установлен. Мы приведём пример работы с плагином в Adobe Premiere pro CS 5.5. Для присвоения клипу данного плагина необходимо найти его в списке фильтров и перетащить на требуемый ролик.

В автоматически появившемся окне имеются настраиваемые параметры, отвечающие за метод и способ стабилизации видео. Как и в случае с Warp Stabilizer, здесь в подавляющем большинстве случаев не требуется никакого вмешательства пользователя. Забегая вперёд, отметим, что разработчик вполне грамотно выставил «умолчальные» настройки, как наиболее удовлетворяющие в подавляющем большинстве случаев. Единственный крайне важный момент: обязательно убедитесь, какой параметр выставлен в пункте Video Format (самый нижний пункт в правой панели, которая открывается флажком Further Settings ->>). Так, если вы обрабатываете прогрессивное видео, то и параметр должен быть выбран соответствующий. По умолчанию здесь установлен формат Upper Field First, означающий интерлейсное видео с верхним первым полем. Такое видео наиболее распространено, и в большинстве случаев нет нужды трогать даже этот пункт.

Нажатие кнопки ОК запускает процесс анализа движения. Работает плагин довольно шустро, отщёлкивая по 30-50 кадров прогрессивного видео Full HD в секунду (правда, и ПК, на котором мы «гоняли» этот плагин, нельзя назвать старым увальнем — Intel Core i7-870 с 8 ГБ оперативной памяти DDR3).

Характерный момент, делающий разработчикам плагина честь: Mercalli настолько полно использует все имеющиеся ядра центрального процессора, что тот, разогревшись за 10-15 секунд работы, начинает истошно выть своим вентилятором в попытках охладиться.

 

***

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





Дополнительно

ВИКТОРИНА TT

Материнские платы какого форм-фактора можно устанавливать в корпус Thermaltake Versa C22 RGB Snow Edition?

Нашли ошибку на сайте? Выделите текст и нажмите Shift+Enter

Код для блога бета

Выделите HTML-код в поле, скопируйте его в буфер и вставьте в свой блог.