Как улучшить старое видео

Сейчас в любом домашнем архиве накопилось множество кассет записанных на видеокамеры типа VHS. Тогда это был единственный способо сделать свое кино. Были конечно и пленочные кинокамеры, но возиться с проявкой пленки хотелось не всем, поэтому «по пленочной кинокамере в каждый дом» как-то не пошло. Другое дело VHS, снял видео, подключил к телеку и сразу смотришь. Давайте посмотрим, как улучшить старое видео, провалявшееся в коробках на антресолях или в гараже.

Прошло 20 лет, многие задались целью оцифровать эти кассеты, чтобы просматривать затем на iPad’ах, компьютерах и телефонах, выкладывать на YouTube, ВКонтактик и Одноклассники. Надо сказать, что в те времена, а пик VHS видео пришелся на 90-е годы, у населения были на руках любительские видеокамеры и как правило качество видео с них было, мягко говоря, не очень. Чтобы привести его к нормальному виду нужно потратить немало сил.

Мы не будем убирать шум с видео, не будем шарпить, не будем править яркость/контраст или поднимать насыщенность. Мы будем делать другое. А именно, уплавнять движение. То есть вместо 25 кадров в секунду, сделаем видео с частотой 50 кадров в секунду. Между соседними кадрами исходного видео мы вставим еще один кадр. Изображение на этом кадре будет построено исходя из положения объектов на предыдущем и последующих кадров оригинального видео. Данное преобразование позволит значительно улучшить восприятие видеоконтента. Движения объектов станут плавнее, сами объекты в процессе движения станут четче, да и просто станет приятней смотреть.

Некоторые скажут, что человеческий глаз может воспринимать только 25-30 кадров в секунду и более высокую частоту он не способен различить. Но это не так. Глаз способен различить гораздо большие частоты. И, как доказательство этому переход кинематографа на 50-60 кадров в секунду. Например, «Хоббит», снят с технологией 60 кадров в секунду.
Итак, что нам для этого понадобится.

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

Все будем делать под Windows. Как добавить промежуточные кадры в видео и сохранить его потом на диске под управлением Linux с использованием нижеперечисленного инструментария я не нашел способа (update, способ найден через wine).

Нам потребуется:

Avisynth

Данная программа позволяет передавать видеопоток от одной программы к другой, попутно внося в него свои изменения. Это полуофициальная версия того, что Avisynth делает. Простым языком можно объяснить так. Avisynth используется в основном из-за того, что это свободнораспространяемая программа, которая имеет сотни фильтров (опять же бесплатных) для обработки видеопотока. Эти фильтры пишут десятки энтузиастов по всему миру. Работают эти фильтры не хуже, чем платные аналоги. Доходит до того, что пишут фильтры, состоящие из других фильтров. Целые каскады фильтров, объединенные в одном. Очень удобно и эффективно. Люди добиваются отличных результатов при обработке своего видео с использованием Avisynth. Если вы занимаетесь редактированием видео, то Avisynth вы просто обязаны иметь на своем компьютере.
Подробная документация по Avisynth на русском.
Некоторые фильтры с описанием на русском языке.
Качаем Avisynth отсюда. Установка элементарная.

x264

Здесь все понятно. Это свободнораспространяемый кодек для кодирования видео в формате h264. Будем кодировать им, потому как он дает одно из лучших соотношений «качество видео/уровень сжатия». Да и вообще, h264 стал стандартом в мире мультимедиа.
Качаем x264 отсюда. Ничего устанавливать не надо — это готовый к употреблению exe-шник.

Библиотеки уплавнения (рассчета промежуточных кадров)

Это набор фильтров (плагинов) для Avisynth, написанные нашим программистом Fizick’ом. С помощью этих фильтров мы будем уплавнять наше видео.
Документация к MVTools на русском.
Качаем.

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

У многих наверное эти пакеты уже установлены. Но тем не менее, ввиду их большой важности, я все же их перечислю.
Haali splitter — позволяет разделить видео и аудиопотоки внутри контейнера
FFDshow — набор бесплатных кодеков и фильтров для Windows, с помощью которого вы сможете открыть любой видеофайл

Тест

В качестве «подоопытного кролика» возьмем видео, где есть большое количество летающих пылинок, броуновское движение. Данный видеоролик будет непростым с точки зрения алгоритма уплавнения, в силу того, что присутствует большое количество движущихся объектов с хаотичными траекториями движения. Может это конечно и не так и авторы плагина с уплавнением движения здесь возразят, но тем не менее я решил остановиться именно на этом видео.


videoframe
Фрагмент видеоролика, который мы будем «уплавнять»
 


frames_12
Уплавнение видео не используется.
 


frames
Уплавнение видео используется. Достроен промежуточный кадр.

Как видно, мы нашим методом вставили один кадр между двумя соседними. И не только вставили, а рассчитали положение пылинки. Изначально этого кадра просто не было, мы его восстановили с помощью хитрых математических функций запрограммированных в библиотеке MVTools. Рассчет промежуточных кадров достаточно ресурсоемкая процедура и при некотором наборе параметров скорость кодирования на процессоре i7 падает до 0.5 кадра в секунду. Данная скорость является неприемлимой если вы кодируете какой-нибудь фильм или спортивную передачу. Но если вы хотите восстановить и привести к нормальному виду старый 5-и минутный VHS ролик, то можно и подождать. Чего не сделаешь ради старых, добрых записей из домашнего архива.

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

Почитать еще