vReveal


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

Лишь недавно мы исследовали один из продуктов, основанных на технологии CUDA, и вдруг пора регистрировать очередного номинанта из того же CUDA-эшелона. На этот раз мы ознакомимся с одной из разработок компании MotionDSP, предлагающей "программное обеспечение для улучшения видео, построенное на запатентованной супер-технологии". Звучит знакомо: трафаретно и стереотипно. Такая фраза идеально подходит только для анонса какой-нибудь подозрительной программки на страничке дешёвого интернет-магазина. Ладно, обождём с выводами, вдруг за время изучения мы кардинально изменим первое обманчивое впечатление, и столкнёмся с технологией, достойной упоминания.

Итак, речь сегодня пойдёт о программе vReveal, работающей на технологии CUDA. Вспомним, что означает данный факт: CUDA — это название архитектуры NVIDIA, созданной для реализации параллельных вычислений на графическом процессоре. Перенос сложных расчётов с центрального процессора на графический процессор, которым оборудована любая современная видеокарта Nvidia, может дать многократный прирост производительности в процедурах, где требуется долго и нудно считать.

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

Запуск программы сопровождается вступительной заставкой, выводящей предупреждение о некоторых ограничениях trial-версии. Оказывается, помимо стандартного 30-дневного ограничения, здесь присутствует ещё одно: накладываемый поверх сохраняемого видео полупрозрачный "водяной" знак с логотипом vReveal.

В начале работы vReveal предложит просканировать папки пользователя на предмет поиска видеофайлов. Непонятно, зачем всё это... Такое ощущение, словно программа разработана исключительно для домашнего пользователя, уверенного, что все его видеофайлы должны храниться только в папке Documents and Settings/Default User/My Videos, или вообще на Рабочем столе.

Вот как объясняет данный факт генеральный директор MotionDSP д-р Шон Вара (Dr. Sean Varah): "MotionDSP давно фокусируется на проблемах видео, и спустя многие годы исследований и разработок мы предлагаем потребителю самые мощные методы улучшения видео в виде доступного и простого приложения". Из его слов становится понятным, что vReveal изначально был рассчитан на пользователей, не являющихся профессионалами в области обработки видео. Однако это не означает, что они непрофессионалы во всём, ведь запатентованная технология vReveal взята из приложений, которые используются органами юстиции и разведывательными службами (Crime Scene Investigation).

Ну а что требуется нынешним службам, как не быстрое и удобное приведение некачественного видео в удобоваримый и легко просматриваемый вид? Исходным материалом может служить что угодно: сегмент съёмки, полученный с системы видеонаблюдения; случайно снятые свидетелем видеокадры, предположительно содержащие портрет подозреваемого; видеоролик с мобильного телефона, выложенный в Сети... При этом сотрудник, работающий с таким видео, должен всего лишь быстро предоставить результат обработки. Вот на такого-то специалиста, не обременённого узкими знаниями обработки цифрового видео, данная программа и рассчитана. Включая, разумеется, и домашнего пользователя.

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

Как водится, первая вкладка служит для импорта в программу материала. Есть два способа это сделать: воспользоваться кнопкой Import для выбора какого-то одного видеофайла, либо командой Tools -> Folder Manager вызвать диалоговое окно с выбором папки, где хранится видео, нуждающееся в обработке.

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

Здесь нужно поблагодарить каждого, кто способствовал появлению данной статьи: в поисках видео, нуждающегося в восстановлении и улучшении, автор наткнулся в недрах забытых шкафов на потрёпанную VHS-кассету из личного видеоархива, давно считавшуюся утерянной; слёзы по этой утрате давно высохли. Тем приятнее было вновь обрести дорогое (и надо заметить — жутко некачественное, снятое без учета каких-либо правил) видео. Разумеется, вся кассета немедленно подверглась захвату и прямиком была отправлена в vReveal.

Импортированный в программу видеофайл (о поддержке форматов речь пойдёт ниже) можно просмотреть, попутно сделав стоп-кадры нужных моментов и сохранив их в один из распространённых графических форматов (.BMP, .JPG, .PNG). Здесь же присутствует инструмент, позволяющий определить границы (начало и конец) отрезка видео, нуждающегося в обработке — на тот случай, если сохранить в улучшенном видео требуется не весь файл, а лишь его часть.

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

  • Clean — очистка видео от мусора (цветной шум, дефекты плёнки: царапины, пятна);
  • 2x Resolution — увеличение разрешения в два раза (только для видео, имеющего разрешение менее 288 точек по вертикали или горизонтали);
  • Sharpen — увеличение чёткости размытого, "замыленного" видео;
  • Auto Contrast — автоматически выравнивает контрастность изображения;
  • Stabilize — стабилизирует тряску, устраняет дрожание кадра;
  • Fill Light — прибавляет света в затемнённых участках.

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

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

Но всё-таки функциональности инструментов в виде одних лишь кнопок явно недостаточно. Что-ж, и здесь разработчик предусмотрел специальные настройки, позволяющие провести более тонкую подгонку всех параметров. Настройки эти расположены на вкладке Fine Tuning. Как видим, здесь скрываются ещё две настройки, не видимые во вкладке Basic: Color, позволяющий изменить насыщенность цвета и баланс белого, и Deinterlace, проводящий деинтерлейс кадра (устраняющий пресловутую расчёску, или грёбенку).

Теперь о главном: прежде, чем мы приступим к опытам и замерам, необходимо убедиться, что программа задействует графический процессор, а не центральный. Если пункт NVIDIA GPU On в меню Tools отмечен флажком — значит, всё в порядке, данная видеокарта поддерживает технологию CUDA и программа согласна работать с таким GPU (о графических процессорах Nvidia, поддерживающих CUDA, будет сказано ниже).

Если ваша видеокарта не поддерживает технологию CUDA, то одноимённый пункт будет просто неактивен, серого цвета:

В общем-то, о работе в программе vReveal говорить больше нечего, за исключением последнего её этапа: сохранения обработанного видео. Здесь похвастать особо нечем: vReveal в состоянии создать лишь два типа файлов: несжатое AVI и видео в формате Windows Media Video (WMV). Но есть и довольно полезный для домашнего пользователя пункт: отправка видео непосредственно на сайт YouTube.

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

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

Во время окончательного просчёта vReveal выводит информацию не только о времени, оставшемся до конца работы, но и подсчитывает количество минут, сэкономленных пользователем за счёт использования технологии CUDA.

Любопытная статистика. Почему бы её не проверить? И достаточно кормить читателя одними лишь картинками, пора вживую увидеть работу технологии CUDA.

В этом нам поможет произведённая компанией XFX видеокарта GeForce GTX 285, рассчитанная на игровое применение. Что-ж, пора ей от игрушек перейти к CUDA-работе.

Однако, памятуя наш прошлый опыт, мы уже знаем, что одной видеокарты нам будет недостаточно. Можно, конечно, сравнить скорость обработки видео, включая и отключая поддержку CUDA, но как же быть владельцам не таких мощных графических ускорителей? Они-то какую информацию почерпнут из подобного сравнения? Разумеется, никакой, кроме дополнительных вопросов. Поэтому давайте запишем с экрана работу двух видеокарт: упомянутой мощной GeForce GTX 285 и "старушки" GeForce 8600 GTS (синхронизировать работу нам поможет простенький скрипт, эмулирующий движения курсора мыши). ПК, на котором проводились замеры, представляет собой обыкновенную "домашнюю" конфигурацию, состоящую из двухъядерного процессора AMD Athlon 64 X2 4200+ с 4 ГБ оперативной памяти и блоком питания на 500W (который в спешном порядке был приобретён специально для питания прожорливой GTX 285).

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

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

Да, такое умение стабилизировать видео кажется наиболее ценным. О стабилизации нами сказано немало, и немало копий сломано в поисках оптимального инструмента. Но ни один из таких инструментов, будь то встроенный модуль в After Effects или специальный скрипт для AviSynth, не предполагает подобной скорости работы при фактически одинаковом результате.

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

А теперь посмотрим, с какой скоростью будет работать программа, если поддержку GPU отключить вовсе (данный "тест" предназначен только для скептически настроенных пользователей, считающих, что при наличии достаточно мощного ЦП никакие CUDA-технологии им не нужны).

В течение нескольких проведённых тестов выяснилось, что реальное ускорение, которого можно достичь при обработке видео в программе vReveal, составляет примерно 7-10 раз. Как при просмотре, так и при сохранении.

Пора перейти к лирической части нашего обзора. Посмотрим, в каких случаях, при обработке какого видео программа vReveal и технология CUDA могут дать наибольшую отдачу. Подвергнем обработке самые разные примеры видео: съемку мобильным телефоном, старую бытовую видеозапись, захваченную с VHS-кассеты, кадры из индийского фильма (так называемый DVDRip), чёрно-белый кинофильм о первом полёте человека в космос и цветную кинохронику 1945 года (парад Победы на Красной Площади).

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

1. Съёмка мобильным телефоном: MPEG-4 176х144 15 кадр/сек

При обработке данного ролика были задействованы фильтры: Clean (очистка от шума), 2x Resolution (двукратное увеличение размера кадра), Auto Contrast (автоматическая подстройка контраста и баланса белого), и Stabilize (устранение тряски рук).

Скорость обработки составила 14-15 кадр/сек (98%). Кадр становится светлее и контрастнее, цвета насыщенными. Шум и тряска почти исчезают, пикселизация уменьшается.

2. Любительское видео, захваченное с VHS-кассеты через AV-вход miniDV видеокамеры: DV PAL 4:3

Задействованные фильтры: Clean (очистка от шума), Auto Contrast (автоматическая подстройка контраста и баланса белого), Stabilize (устранение тряски рук), Deinterlace (деинтерлейс).

Скорость обработки составила 8-9 кадр/сек (37%). Цвета становятся ближе к натуральным, а тряска почти полностью устраняется (в той давнишней видеокамере никакого стабилизатора не было в помине). Но здесь хотелось бы сказать ядовитое спасибо тому оператору, забывшему выключить во время съемки дату и время: при стабилизации такого видео отображающиеся в углу экрана колонки цифр начинают бешеную пляску по всему кадру.

3. DVDRip: MPEG-4 XviD 720x288 30 кадр/сек

Задействованные фильтры: Clean (очистка от шума), 2x Resolution (двукратное увеличение размера кадра), Sharpen (повышение чёткости изображения), Auto Contrast (автоматическая подстройка контраста и баланса белого).

Скорость обработки — 15 кадр/сек (50%). Здесь фильтр Clean был задействован исключительно в целях скрыть изначальные дефекты сжатия (пикселизацию, кое-где проскакивавшую в динамичных сценах). Фильтр Sharpen аккуратно обрабатывает мелкие детали, появившиеся после двукратного увеличения размера кадра. Ну и, наконец, автоконтраст, словно бы стирающий толстый слой пыли с экрана и делающий картинку яркой с насыщенными цветами.

4. Чёрно-белый кинофильм: XviD 720x704 25 кадр/сек

Задействованные фильтры: Clean (очистка от шума), Auto Contrast (автоматическая подстройка контраста).

Скорость обработки — 10 кадр/сек (40%). За счет работы обоих фильтров кадр становится ярче и чище.

5. Цветной кинофильм: MPEG-1 384x288 25 кадр/сек

Задействованные фильтры: Clean (очистка от шума), 2x Resolution (двукратное увеличение размера кадра), Sharpen (повышение чёткости изображения), Auto Contrast (автоматическая подстройка контраста и баланса белого).

Скорость обработки составила 20 кадр/сек (80%). Ну что тут говорить — преображение картинки, её вторая жизнь, видны невооружённым глазом. Стабилизация не использовалась из-за присутствующих в кадре логотипов.

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

Теперь об ограничениях: программа работает с видео, имеющим размер кадра не более чем 576 точек в высоту. Поддерживаемые форматы/контейнеры: .AVI, .MPG, .ASF, и .WMV. Однако при наличии в системе установленного QuickTime, программа также работает с .MOV, MPEG 4 и .3GP. Работа с графическими процессорами AMD (ATI) не поддерживается.

Несмотря на существующую возможность объединения вычислительных мощностей нескольких GPU в один "кластер" (технология SLI), программа пока не умеет её использовать. Однако работа над данным вопросом ведётся, поэтому пользователям vReveal рекомендуется не отключать опцию Check for Updates at Launch (проверять обновления при запуске).

Какие же видеокарты могут работать с программой? Ответ очевиден: поддерживающие технологию CUDA. А именно — Nvidia GeForce 8-й серии и выше при установленном драйвере версии 178 или выше (просмотреть список моделей CUDA-enabled видеокарт можно здесь). Рекомендуется наличие в видеокарте минимум 128 мегабайт памяти. На момент написания данной статьи программа не умеет работать с некоторыми моделями видеокарт: GeForce 8800 Ultra, 8800 GTX, 8800 GTS 640, 8800 GTS 320, Quadro 4600 и 5600 (над решением этого вопроса также ведется усиленная работа). Ответы на все эти и многие другие вопросы можно увидеть на специальной страничке сайта vReveal.

 

[Все статьи в разделе «Цифровое Видео»]





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

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

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

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