SVP3:Технические подробности

From SmoothVideo Project
Jump to navigation Jump to search

Это инструкция для устаревшей версии SVP 3.

Здесь собраны технические подробности из разных разделов Справки, порядок отдельных частей не имеет смысла и не важен.

Без этих знаний может обойтись каждый :), но любознательным пользователям SVP отдельные вопросы могут быть интересны.


См. также подробные описания про:

Скрытые настройки

Файл всех настроек SVP, большинство из которых не регулируется из меню Менеджера.

Для редактирования: откройте файл настроек (пункт меню Показать -> Скрытые настройки), измените что-либо, сохраните файл и перезапустите Менеджер.


Параметры подсветки черных полей

Общий принцип - подсветка эмулирует работу системы аппаратной LED подсветки типа Ambilight (см. SVPlight), когда на краях экрана есть ограниченное количество "лампочек" (светодиодов), каждый из которых показывает цвет и яркость, усредненные по некоторой зоне кадра.


Подсветка определяется:

1. Каким образом обрамлять кадр видео цветными полосами - см. Менджер SVP:

Svp-lighting-types-ru.png


2. Как именно закрашивать каждую из цветных полос, для чего предназначено окно, открываемое из пункта меню Подсветка краев -> Тип подсветки -> Пользовательская.

В нем задаются четыре параметра:

  • количество лампочек на краю - сколько "лампочек" по каждому краю кадра эмулируется.
  • толщина края кадра - толщина, или глубина, усреднения цвета. То есть при "толщине" 100 пикселей, на "лампочки" будет усредняться полоса вдоль края кадра, толщиной 100 пикселей.
  • размер лампочек - ширина усреднения цвета, сколько длины полосы вдоль экрана придется на одну "лампочку". 100% - ширина кадра равномерно распределена между "лампочками", больше 100% - значит соседние лампочки будут "перекрываться".
  • длина подсветки - "мощность" лампочек, на сколько далеко они "светят", в процентах от ширины черной полосы. 100% означает, что при полностью белом кадре подсветка перейдет в черный цвет точно на границе экрана.


Тэги стерео-пар

Менеджер пытается автоматически определить файлы в 3D-форматах (стерео-пары) двумя способами:

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

Теги задаются скрытыми настройками StereoTag_HOU, StereoTag_HSBS, StereoTag_?, StereoTag_bounds, в которых с легкостью разберется каждый, знакомый с регулярными выражениями.

  • по соотношению ширины кадра к высоте (отключено по-умолчанию), можно включить скрытой настройкой StereoMode_AutoDetect

Количество потоков

Количество потоков в меню Менеджера задает степень распараллеливания вычислений внутри модулей SVPflow.

  • оптимальное количество потоков для CPU- и GPU-режимов отличается, для CPU-режима оно равно количеству ядер процессора, а для GPU-режима, из-за особенностей синхронизации потоков, равно <количество ядер CPU>*1.8
  • при условии использовании специальной версии avisynth.dll, поставляемой совместно с SVP, потребление проигрывателем видео оперативной памяти прямо пропорционально количеству потоков, поэтому в некоторых случаях имеет смысл снизить количество потоков ниже оптимального значения, что бы использование памяти плеером не вышло за допустимые границы для 32-х-битных приложений (например, в системе с очень многоядерным CPU, более 12 ядер, или для экономии памяти для просмотра видео формата 4K)


Построение AVS-скрипта

Менеджер SVP берет параметры, установленные пользователем, и генерирует Avisynth-скрипт, который и реализует алгоритм FRC. При начале проигрывания видео:

  • Менеджер выбирает наиболее подходящий профиль
  • все параметры профиля, характеристики видео и настройки самого Менеджера оказываются в .ini-файлах в одной папке
  • через Windows Scripting Host (WSH) запускается скрипт generate.js (из установочной папки SVP), задача которого сгенерировать текст скрипта Avisynth, включая установку всех параметров модулей SVPflow


Хотя текст generate.js легко доступен для редактирования любым профессиональным программистом, для более простой задачи переопределения параметров FRC предусмотрен специальный файл override.js. При его выполнении в скрипте уже полностью определены объекты levels, analyse и smooth, представляющие, соответственно, параметры функций SVSuper, SVAnalyse и SVSmoothFps. Простейший способ переопределения параметра это снять знак комментария с любой строчки в файле и указать своё значение параметра.


Пример более сложной модификации, представляющей добавление нового параметра в окно профиля и его учет в итоговом скрипте см. в сообщении на нашем форуме.

x-m режимы

Специальные режимы FRC, обозначаемые в параметрах профиля как 1m, 1.5m, 2m, сохраняющие все исходные кадры.

  • 1m - это такое чередование исходных и интерполированных кадров, при котором отображаются все исходные кадры по одному разу, а между ними располагаются интерполированные.

Если взять повышение плавности 24->60, то при равномерном режиме интерполяции каждый второй исходный кадр выкидывается, вместо него достраивается 4 новых интерполированных кадра. В режиме 1m сохраняются все исходные, но при отображении один из кадров показывается с некоторым опозданием. Поэтому одновременно наблюдается повышение качества и потеря равномерности движений. Так же, при выключенном GPU-ускорении, это уменьшает нагрузку на CPU.

Например, для преобразования 24->60 будет построена следующая последовательность кадров:

<кадр 1> - <кадр 1 + 33%> - <кадр 1 + 66%> - <кадр 2> - <кадр 2 + 50%> - <кадр 3> - ...
  • 2m - аналогично, но отображает каждый исходный кадр по два раза:
<кадр 1> - <кадр 1> - <кадр 1 + 50%> - <кадр 2> - <кадр 2> - <кадр 3> - ...