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

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



Перейдя от теоретической части к практической, впору призадуматься: а следует ли менять настройки тестируемых программ? Любой, кто пожелает, может убедиться воочию в том, что «умолчальные» настройки, как правило, оказываются наиболее подходящими для большинства случаев. Дело в том, что видео, которое требуется стабилизировать, в массе своей однотипно и имеет одинаковые недостатки: сдвиг и вращение. Если с обычным сдвигом видеокамера, имеющая стабилизатор изображения, справляется более-менее успешно, то с вращением дело обстоит гораздо хуже. Именно поэтому в любительских съёмках, сделанных камерами небольших размеров, можно видеть постоянное вращение картинки, происходящее как по часовой стрелке, так и против. Особенно, если съёмка ведётся с двух рук, когда камера находится в правой руке, а пальцы левой придерживают откидной ЖК-экран. Разумеется, видеокамера, имеющая плечевой форм-фактор, никакого вращения картинки не допустит.

Итак, по указанной причине мы настройки сравниваемых программ трогать не станем (пока), а ограничимся теми, которые имеются в этих программах по умолчанию (за исключением настроек Deshaker-a, касающихся отображения бордюра). Не так уж и труден для стабилизации наш ролик с трясущейся и вращающейся таблицей. Вот они, эти «умолчальные» параметры каждой из программ:

Warp Stabilizer, настройки по умолчанию Deshaker, настройки по умолчанию proDAD Mercalli, настройки по умолчанию

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

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

Вот теперь — другое дело! Deshaker догнал своих собратьев, для этого нам пришлось изменить его настройки Motion smoothness, увеличив их «умолчальные» значения вдесятеро, с 1000 до 10 000:

Но оценим теперь детализацию, которая осталась в видео после придания ему стабильности. Ведь, по нашим предположениям, она должна снизиться.

Оригинал Warp Stabilizer
Deshaker proDAD Mercalli

Как видно на стоп-кадрах, детализация практически не пострадала, хоть картинка чуток и увеличилась в каждом из трёх случаев стабилизации. Но вот что касается контуров объектов — тут картина неприглядная. Контуры, увы, действительно стали «мыльными». Однако, если присмотреться внимательно, наименьшую степень «мыла» предлагает… бесплатный Deshaker! Справедливости ради оговоримся: мы называем это ПО бесплатным лишь по инерции, и потому, что распространяется оно с открытыми кодами по GNU General Public License (GPL). А вот платить за него не только можно, но и... желательно. Границы объектов в результате его работы выглядят чуть более чёткими. Правда, заметно это лишь при большом увеличении, например, при четырёхкратном:

Отсюда возникает вопрос: кто виноват в подобном замыливании контуров? Плагин (фильтр)? Или его родительская программа, в которой он работает? Всё-таки, думается, дело плагина — вычислить траекторию, а уж изменение размера кадра — это прерогатива программы-видеоредактора, под чьей оболочкой работает плагин. Попытаемся привести доказательство от противного. Воспользуемся универсальностью плагина proDAD Mercalli и оценим его работу в другой программе — а вот хотя бы и в Sony Vegas.

Увы, результаты совпадают до степени «один в один» — контуры объектов размыты совершенно идентично.

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

***

Разумеется, одной лишь искусственно-табличной картинкой мы ограничиваться не собираемся. Вторым этапом экспериментов будет стабилизация «натурального» видео, на которое смотреть не так скучно, как на дёргающуюся чёрно-белую таблицу. Правда, и проанализировать качество стабилизации и картинки в случае с «живым» видео гораздо сложнее, если вообще возможно. Ну разве что субъективно…

Прежде всего познакомимся с роликом, который нам предстоит стабилизировать. Это, мягко говоря, жуткий случай. Данный ролик снят с рук в режиме интервальной съёмки, когда камера делает один кадр в секунду, а получаемые кадры видеокамера сшивает в один видеофайл. Автор при передвижении старался как можно более ровно удерживать камеру обеими руками на уровне пояса, но… Да, такую съёмку следует вести, установив камеру на штатив, при этом камеру нельзя не только трогать — а и пылинки с неё сдувать не рекомендуется. Однако, что снято — то снято:

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

Warp Stabilizer

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

А получилось не совсем хорошо. После долгих экспериментов, усугубленных чрезвычайной медлительностью фильтра, выяснилось, что для стабилизации столь трудного материала в Warp Stabilizer-е подходит лишь один метод: Position.

Остальные методы оказались категорически неприменимы в данном пляжном сюжете, по разным причинам. К примеру, в нашем пляжном ролике нет зуммирования, однако при стабилизации методом Position, Scale, Rotation программа зачем-то пытается компенсировать его якобы наличие, ошибочно приближая и отдаляя сцену. По причине такой капризности фильтра пришлось забыть о великолепном числе 3 и оставить эту попытку как единственно возможную.

Не меньшую головную боль, чем выбор метода стабилизации, доставил параметр Smoothness (смягчение резких движений). Он определяется в процентном отношении и по умолчанию выставлен на 50%. Разумеется, чем выше процент, тем более плавным станет стабилизируемое видео. Однако не всё так просто: нам так и не удалось заставить этот фильтр работать на значениях, превышающих 20%.

Если цифру увеличить хотя бы до 30%, то фильтр после долгих раздумий всё-таки отказывается стабилизировать наше видео, заявляя, что степень обрезки краёв слишком велика (в таких случаях начинаешь верить, что слишком умные программы гораздо хуже слишком глупых).

Следующий важнейший параметр, который называется Framing, отвечает за наличие/отсутствие бордюров, той самой чёрной каймы, появляющейся вследствие стабилизации. Для этого параметра было найдено единственно подходящее в данном случае значение:

В итоге работы были установлены настройки фильтра Warp Stabilizer, оптимальные для данного конкретного видеоролика. Малейшее отступление от этих настроек приводит либо к никудышному результату, либо вообще к отсутствию оного, когда фильтр отказывается работать. Вот они, эти параметры, поймать которые оказалось так непросто:

Стабилизированное с такими настройками видео мы приводим в ролике, где оно будет соседствовать с оригинальным, дёрганым, нестабилизированным видео. Для контрасту, так сказать.

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

Deshaker

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

Итак, вот они, наши настройки, экспериментально подобранные:

Настройки 1 Настройки 2 Настройки 3

Комментировать и объяснять значение каждого пункта в этих настройках — значит углубиться в многократно разжёванную тему, которая и без того подробно описана, в том числе и в указывавшейся статье. Лучше сразу же приведём ролик, где все три итоговые попытки совмещены с оригинальным видео.

Осталось выбрать лучший результат. Для этого автором был проведён опрос среди коллег. В результате мнения разделились: за № 2 отдано 5 голосов, за № 3 — три голоса. В итоге выбор падает всё-таки на № 2. А это, мягко говоря, странно и удивительно. Ведь настройки № 2 — это и есть те самые настройки по умолчанию (за исключением того, что в пункте Edge compensation был убран чёрный бордюр)! Чудеса, да и только. Ведь в случае со стабилизацией тестовой таблицы мы остались не удовлетворены работой настроек по умолчанию!

proDAD Mercalli

Настройки Mercalli особо не изменялись, выбирался лишь пресет имитации движения виртуальной камеры: Universal camera, Glide camera, и Alternative camera. Ещё один имеющийся в списке Virtual Stabi-cam параметр, называющийся Rock-Steady camera, создавал такое жуткое смещение кадров, что результат его работы мы даже не станем показывать.

Настройки 1 Настройки 2 Настройки 3

Пора взглянуть на работу всех трёх настроек:

Здесь голоса опрошенных коллег однозначно указали на первый вариант настроек как наиболее ровный, с лучшей стабилизацией. Это также «умолчальные» настройки, что роднит Mercalli с Deshaker.

Выводы

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

  • первый (и единственный), созданный с помощью Warp Stabilizer;
  • ролик № 2, стабилизированный Deshaker-ом;
  • ролик № 1 производства Mercalli.

Здесь, пожалуй, даже не требуется прибегать к голосованию. Первое место смело отдаём Mercalli, второе — достаётся Deshaker, ну а третьим — пусть довольствуется Warp Stabilizer.

Что тут можно сказать? Warp Stabilizer, признаться, разочаровал. Разумеется, нельзя не учитывать новизну этого инструмента — ведь данному фильтру без году неделя! Разработчики обещают «подточить», усовершенствовать код программы. Хотя бы с тем, чтобы пользователь имел возможность вручную подправить некоторые ключевые точки. Но это вряд ли поспособствует быстрой работе, скорее — наоборот. Всё-таки предназначение Warp Stabilizer видится другим: долгая, кропотливая работа над одним коротким сюжетом, продолжительностью в несколько секунд.

Mercalli — наиболее гибкий и, пожалуй, самый удобный в обращении инструмент для стабилизации видео (напомним — с точки зрения обыкновенных пользователей, коих подавляющее большинство). Этот же Mercalli в наших экспериментах предоставил самое стабильное, ровное видео. Чуток отставший от него Deshaker виноват, скорее всего, лишь тем, что настройки его может назвать очевидными лишь разработчик фильтра (шутка, но не совсем). Думается, если досконально изучить особенности этого фильтра, зависимость результата от настроек, то догнать Mercalli — вполне реально. Правда, препятствия в виде отсутствия прямой поддержки тех или иных форматов, странный и неудобный принцип обработки, необходимость время от времени браться за бубен и повторять опыт заново — всё это чуток раздражает, ведь гораздо проще безо всякой подготовки применить фильтр к исходному видео и, нажав единственную кнопку, попивать кофе в ожидании результата.

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




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