НЕ ПРОПУСТИТЬ ИНТЕРЕСНОЕ

Свежие обсуждения

Sorry. No data so far.

Секреты качественного воспроизведения видео на компьютере. Часть 4: Изменение частоты кадров видео

Здравствуйте уважаемые читатели блога www.ithabits.ru. Продолжаем тему организации высококачественного воспроизведения видео с помощью компьютера.

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

Могу предположить, что многим этого оказалось вполне достаточно. Особенно тем, у кого дисплей или телевизор позволяют настраивать частоты обновления экрана.

Рендер MadVR дает возможность не только повысить качество отображения видео как такового за счет применения высокоэффективных методов масштабирования, но и заметно улучшить плавность воспроизведения с помощью встроенного метода Smooth motion.

Smooth motion в MadVR не изменяет частоту кадров исходного видео, а лишь “подправляет” временные характеристики воспроизводимых кадров, смешивая некоторые из них в нужной пропорции.

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

24p-60p

Предельным вариантом повышения плавности воспроизведения является преобразование частоты кадров исходного видео до частоты обновления экрана монитора. При этом из 24-х уникальных кадров в секунду нужно сделать 60.

Как можно изменить частоту кадров видео? Разумеется методом интерполяции соседних кадров. Вот этим мы сегодня и займемся.

SmoothVideo Project (SVP)

Почему выбран именно SVP? Во-первых, он совершенно бесплатный. Во-вторых, это реально работает.

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

Принцип работы SVP

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

svp_main

На данном рисунке упрощенно показан процесс изменения частоты кадров воспроизводимого видео (все происходит непосредственно во время проигрывания видеофайла).

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

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

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

frames_interpolation

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

Конечно это не означает, что четные кадры не участвуют в процессе. Разумеется они используются для расчета новых дополнительных кадров.

Кроме того я вовсе не уверен, что реальный расчет в SVP выполняется именно по такой идеальной схеме.

Схема работы SVP

svp-design-ru

Непосредственно программное обеспечение SmoothVideo Project включает в себя два компонента.

Расчетом дополнительных кадров и их добавлением в выходной видеопоток занимается модуль SVPflow. Его интерфейс скрыт от пользователя.

За настройку параметров и управлением процессом отвечает SVP Manager.

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

Перехват воспроизводимого проигрывателем видео и его передача модулю SVPflow организованы с помощью DirectShow фильтра ffdshow raw video filter и хорошо известного многим  фреймсервера Avisynth.

Установка и настройка SVP

Для того, чтобы ПО SmoothVideo Project могло осуществлять процесс преобразование частоты кадров (FRC — frame rate conversion) нужен видеопроигрыватель, поддерживающий подключение внешних фильтров DirectShow.

Не лишним будет напомнить, что, как и в случае с рендером MadVR, проигрыватель должен быть 32-разрядным.

Первым в списке рекомендуемых стоит MPC-HC (Media Player Classic Home Cinema), что вполне объяснимо. Можно также задействовать Windows Media Player и ряд других удовлетворяющих указанным требованиям.

Установочный пакет SVP имеет смысл скачать с основного сайта проекта.

Самым простым вариантом, с точки зрения настройки, является установка всех компонент, входящих в стандартный (не Core) пакет SVP.

Если в вашей системе уже присутствует 32-разрядный плеер MPC-HC и рендер MadVR (последний для работы SVP не необходим), то от их установки можно отказаться. В этом случае MPC-HC нужно будет слегка донастроить.

Если не были установлены ранее, то обязательными для установки являются Avisynth и ffdShow.

Установка ffdShow вовсе не предполагает отказ от использования кодеков LAV – в данном случае из ffdShow нужен один единственный фильтр raw video filter.

Итак, если 32-разрядный MPC-HC уже был установлен ранее, то открываем его настройки — “Вид” –> “Настройки”:

mpc-hc-filters-add

На странице “Внешние фильтры” нажимаем добавить:

mpc-hc-ffdshow-rav-video-filter-add

Находим и выбираем в открывшемся списке ffdshow raw video filter.

mpc-hc-ffdshow-rav-video-filter-priority

Возвращаемся на предыдущий экран и устанавливаем “Предпочесть” для добавленного фильтра.

Закрываем настройки и запускаем на воспроизведение любой видеофайл. В трее должен появиться значок ffdshow. Двойным кликом на значок открываем настройки ffdshow raw video decoder configuration.

ffdshow-rav-video-conf-avisynth

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

На этом настройки можно считать законченными.

Запускаем SVP Manager.

SVP Manager программа весьма продвинутая. При первом запуске она выполнит анализ конфигурации компьютера и создаст соответствующие его возможностям и производительности профили.

Запускаем на воспроизведение в MPC-HC любой видеофайл. Если в левом нижнем углу экрана медиаплеера на несколько секунд появилась надпись типа “SVP: Воспроизведение 23.976 * (5 : 2) = 59.94 fps Автоподрезка: [0:0:0:0]”, значит все получилось и установку SVP можно считать законченной.

Что касается настройки непосредственно SVP, то скорее всего она вам просто не понадобится. Как я уже отметил выше, этот процесс полностью берет на себя SVP Manager.

Двойной клик на значок SVP Manager в трее откроет окно настроек текущего профиля:

svp-profil

Здесь же можно посмотреть загрузку процессора.

svp-trey

Наконец, правый клик мыши открывает все настройки SVP.

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

! Если для вывода изображения используется рендер MadVR и ранее в нем был включен smooth motion, то для правильной работы SVP эту опцию нужно отключить.

Особенности воспроизведения видео с использованием SmoothVideo Project

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

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

В результате видео будет воспроизводится с необыкновенной плавность.

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

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

Вопросу совместимости SVP с конкретным оборудованием посвящен специальный раздел сайта проекта. Нетрудно видеть, что практически все современные CPU и видеокарты способны справиться с поставленной задачей.

Приведу для справки реальные значения загрузки компьютера с процессором i7-950 (3,06 GHz) и видеокартой NVIDIA GeForce GTS 450 при воспроизведении в медиаплеере MPC-HC с настроенным на максимально возможное качество рендером MadVR видеофайлов трех типичных форматов.

Формат видео

Загрузка CPU %

Загрузка GPU %

400р24

18…20

35…36

720р24

23…25

60…62

1080р24

38…40

76…80

 

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

3. Алгоритм расчета дополнительных кадров не является идеальным. На практике это иногда приводит к появлению дополнительных артефактов вокруг быстро перемещающихся в кадре объектов.

Для того, чтобы объяснить их появление, обратимся к самой первой иллюстрации сегодняшней статьи.

svp_artifacts

Средний дополнительный кадр получен на основе сопоставления двух соседних кадров исходного видео.

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

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

Как уже было отмечено выше, появление водянистых ореолов характерно для быстро перемещающихся в сцене объектов. Хорошо заметны они становятся если объект перемещается на однородно окрашенном фоне.

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

Просмотр видео 25р с видеокамеры с помощью SVP

При обсуждении вопросов интерлейсного видео я упомянул о крайне неудачном режиме съемки 25р в видеокамере Canon HV20. Для съемки с рук частота 25 прогрессивных кадров в секунду оказалась малопригодна. При просмотре такого видео возникает очень сильный и крайне неприятный стробоскопический эффект.

К сожалению я успел отснять часть видеоматериалов в таком формате. До появления ПО SmoothVideo Project как-то улучшить воспроизведение данного видеоконтента без его повторного перекодирования не представлялось возможным. SVP пришелся очень кстати – он с ним отлично справляется.

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

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

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

mpc-hc-25p-deint

Нужно переключить «Output Mode» в 25p/30p (Film).

На иллюстрации показан вариант настройки для видеокарты NVIDIA с поддержкой CUVID. Если видеокарта не поддерживает такой метод деинтерлейсинга, то сделать это нужно в секции «Software Deinterlacing (YADIF)».

Медиаплеер Splash PRO

Разумеется рассмотренные в публикациях медиаплеер MPC-HC, рендер MadVR и ПО для FRC SmoothVideo Project являются не единственно возможными для организации высококачественного просмотра видеоматериалов.

Более того, возможно у кого-то просто нет времени или желания разбираться с настройками описанного бесплатного программного обеспечения.

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

Разрабатывает данное ПО компания Mirillis. На сайте представлено три варианта программы – Splash Lite, Splash Pro и Splash Pro EX. Как водится, первый из представленного списка является бесплатным, но в данном случае он нам совершенно не интересен, так как в нем заблокированы все интересующие нас функции, такие как “Motion² — 24/25/30p to 60p conversion” и “Motion² ULTRA 1080p”.

В Splash Pro и Splash Pro EX они присутствуют, но за них придется выложить $19,95 и $24,95 соответственно. Последний отличается тем, что в него включены инструменты экспорта и конвертации видеоконтента.

Перед тем как расстаться с кровно заработанными, можно протестировать работу данного ПО в течении 30 дней.

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

В контексте данной темы нас интересуют “Настройки воспроизведения / Видео”.

splash-pro-ex-video

В процессе воспроизведения видеофайла становится доступным движок-регулятор опции “Motion2”. Ее значение можно менять в диапазоне от 1 до 10. При этом справа от цифрового значения появляется индикатор текущего режима. Впрочем, он принимает лишь два значения — “2х” и “60р”. Первое характерно для левого положения движка, второе, соответственно, для правого.

К сожалению, на сайте нет никаких пояснений или рекомендаций по поводу настройки “Motion2”. Можно только гадать, как в данном случае организован процесс FRC и что кроется за этими цифрами и значками. Заметить уменьшение или увеличение загрузки CPU и GPU при изменении параметра также не удалось.

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

Достоинства и недостатки медиаплеера Splash Pro

Достоинства

Одним из несомненных достоинств медиаплеера Splash компании Mirillis является низкая нагрузка на центральный процессор компьютера и видеокарту. Так, при воспроизведении Full HD видео 1024p24 H264, использовавшегося ранее при тестировании SVP, загрузка CPU оказалась в районе 30%, а загрузка GPU не превышала 20%.

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

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

Недостатки

Одним из недостатков плеера Mirillis Splash Pro в отличие от MPC-HC можно считать его неспособность управлять частотой обновления экрана монитора. Если попытаться воспроизвести видео 50р в Splash Pro при частоте монитора 60 Гц, то ничего хорошего из этого не получится – воспроизведение будет идти заметными рывками.

И это абсолютно естественно. К сожалению, с преобразованием 50р –> 60р пока нормально не справляется ни один плеер, в том числе и MPC-HC с SVP.

И наоборот. В Splash Pro  также не слишком хорошо выглядит 24р –> 50р.

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

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

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

Подведение итогов

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

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

Досадное исключение составляет, разве что, видеоконтент в стандарте PAL 50р, который предполагается воспроизводить на экране ноутбука с единственной частотой обновления 60 Гц. Добиться идеального воспроизведения в этом случае вряд ли получится. Во всяком случае ни одна из рассмотренных программ делать этого до конца не умеет.

На мой взгляд наиболее адекватный результат в этом случае дает MPC-HC с рендером MadVR с включенной опцией smooth motion. Фронты быстро перемещающихся в кадре объектов окажутся слегка размытыми из-за смешения соседних кадров, однако движение самих предметов при этом будет равномерным без рывков.

Закончить хотелось бы перефразированным диалогом из знаменитой комедии Гайдая 1966 года. Получится примерно так:

— Смотреть кино хорошо!

— А хорошо смотреть кино еще лучше!

Мои предпочтения при воспроизведении видеофайлов на компьютере

Показать результаты

Загрузка ... Загрузка ...

Комментарии: 10. Присоединяйтесь к обсуждению!

  1. Вадим:

    С интересом, а главное с большой пользой для себя прочитал все четыре статьи. Спасибо автору. Однако, что же получается? Если, скажем, у меня видеокамера в стандарте PAL (50р), то я не могу нормально посмотреть на ноутбуке отснятое ей видео?

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

  2. Спасибо за такую подробную информацию!

  3. Oleg:

    Добавлю еще один недавно появившийся инструмент для плавного воспроизведения (только для АМД видеокарт).
    На странице автора есть инструкции по настройке MPC-HC, PotPlayer.

    • Олег, спасибо за важное дополнение. Действительно в последних версиях Catalyst появился функционал AMD Fluid Motion, который позволяет осуществить аппаратное преобразование 24р -> 60p. Интерполяция промежуточных кадров непосредственно в драйвере видеокарты представляется абсолютно оправданной и целесообразной.
      Если Вам уже удалось протестировать эту новую возможность (я, к сожалению, использую сейчас видеокарту от Nvidia), то поделитесь впечатлениями. Думаю, что всем читателям интересно было бы узнать высока ли нагрузка на GPU во время воспроизведения и каково качество интерполированных кадров?

  4. Андрей:

    У вас на скриншоте не полностью влез скрипт для настройки AviSynth, из-за этого он у меня на него ругается(((
    Без настройки AviSynth будет ли работать SVP?

    • Андрей. Как я уже говорил в статье, без AviSynth SVP не сможет работать в принципе, т.к. видеопоток просто не будет передаваться в обработчик SVPflow. А что Вы собираетесь настраивать? SVP при установке прописывает все сам. Если у Вас уже был установлен ранее MPC-HC, то единственное, что в нем нужно сделать, это добавить во «Внешние фильтры» ffdshow raw video filter. После этого все сразу начинает работать. Если все-таки зачем-то нужен текст скрипта, то он таков:
      global svppath="C:\ProgramData\SVP 3.1\"
      Try {
      import(svppath+"AVS\ffdshow.avs")
      delim=":"
      WriteFileStart(svppath+"Logs\SAR.txt", "ffdshow_sar_x","delim","ffdshow_sar_y")
      WriteFileStart(svppath+"Logs\avsFPS.txt", "FramerateNumerator()", "delim", "FramerateDenominator()")
      }
      Catch(err_msg) {
      ffdShow_source().Subtitle(err_msg)
      WriteFileStart(svppath+"Logs\AVSError.txt", "err_msg")
      }

  5. vitsat:

    DmitriRender — качественный интерполятор кадров, использующий графический процессор видеоадаптера.
    Сайт проекта.

Написать комментарий

Subscribe without commenting