
C 24-го года я иногда ищу ПО для улучшения картинки на Linux платформе. Началось это с того, что стал активно скачивать старые или не очень фильмы в современной обработке: повышение разрешения, цветокор, чистка от шумов и общее улучшение восприятия. Заслуга это, в основном, Topaz на Win, может есть аналоги. В своих поисках для нашей платформы наткнулся сперва на Upscayl — для улучшения одиночных изображений, про неё писал ранее, добавив в каталог.
Через Upscayl видео улучшать возможно, но путь не прямой и с ограничениями: сперва порезать видео на кадры через ffmpeg, потом прогнать каждый кадр через улучшайку, а потом заново собрать воедино, задав видеокодек. Минусы: аудиодорожка теряется, процесс занимает много времени, ещё и места на SSD нужно несколько десятков гигабайт, потому как обработанные картинки не скромничают в своём жоре; длина конечного видео у меня так получилась максимум 5 минут. После заворачивания в нужный кодек размер станет адекватным.
Дальнейшие поиски наконец-то привели меня к варианту, который сразу заточен для видео, — REAL-Video-Enhancer, про неё и пойдёт речь.
REAL-Video-Enhancer

Я скачивал архив со страницы Github, есть под MacOS, под Windows, под Arm и наш любимый flatpak, страница во Flathub, то есть установка как таковая и не требуется. Во время написания нашёл сайт, "About" с Github ведёт на Discord, а не туда. Судя по информации Whois, сайт появился в июне.
Преображение картинки
Основные операции происходят на второй странице, вкладка «General». Во вкладке «Encoder options» нужно предварительно задать настройки обработки, их изменение отражается в команде выше, а сами изменения сохраняются после закрытия.

За улучшение картинки с повышением разрешения картинки отвечает параметр Upscale, и там выбрать понравившуюся/подходящую модель, 2-4X в скобках описывает максимальное увеличение разрешения, коэффициент задаётся ниже, выходные параметры выводятся для проверки. Из моделей стандартных мне приглянусь Nomos8k и AnimeVideo. Вторые, хотя имеют разный коэффициент улучшения, почему-то в разнесены списке. Влияния от Denoise и Decompress я не заметил, поэтому не использую, у вас ситуация может быть иной. А вот Interpolate (интерполяцию) я включал. Этот метод добавляет времени обработки, так как кратно увеличивает частоту кадров, увечит выходной размер файла, но сделает картинку более плавной. Кто смотрел фильм в 60 fps вместо привычных 25-30 кадров, поймёт разницу.
Сперва в качестве видеокодека задавал H265, он давал почти полную загрузку ЦП и шум кулера. Теперь я использую сразу AV1, у меня он не даёт такой нагрузки на процессор, потому что основную нагрузку по обработке берёт на себя GPU. С AV1 не потребует дальнейшего пережатия обработанного видео. Поскольку сжатие на ЦП эффективнее аппаратного метода, рекомендую сразу использовать его, если не планируется дальнейшая обработка. Если планируется, есть смысл в H264, он тем более не будет нагружать ЦП, кодек до жути старый, этакий «вариант по умолчанию», но есть вероятность потерять часть изображения, ухудшить и без того мыльную картинку.

Настройки
Кнопка с шестернёй. Там три вкладки, я указал только ID моей видеокарты, потому что имеется и встройка. Может, оно и не нужно, потому что с 2500Х по умолчанию выбирается единственный видеоадаптер. Не забудьте там указать выходной каталог, хотя эта настройка, по-моему, игнорируется, поэтому лучше выходную папку указывать непосредственно перед обработкой. Для помощи есть всплывающие подсказки возле значения, другие я не трогал.

Аппаратное ускорение
На нижней странице Backends (кнопка со стрелочкой) необходимо дополнительно загрузить ПО для своей видеокарты — PyTorch Backend — при наведении на подсказку появится описание, кому что загружать. Если я выбираю для своей видеокарты Intel, у меня программа перестаёт запускаться, о чём писал разработчику bugreport на Github. Поэтому программа у меня работает на общем NCNN. Кто не уверен, можете при первом запуске выбрать рекомендуемый. Если тоже перестанет запускаться, удалить их можно вручную из папки "python".

- NCNN — общее, работает через Vulkan
- PyThorch — для конкретного производителя
- TensorRT — nVidia 20-ой серии и новее
Больше подробностей, технической информации и загружаемые модели ищите на странице репозитория, там есть и дополнительные, загружаемые модели.
После вышеописанных процедур нажать "Add to Render Queue", а после кнопочку Play для запуска. При выполнении указывается частота кадров, с которой выполняется обработка, и примерно время до завершения.

Handbrake
Выходное видео можно дополнительно обработать через Handbrake с помощью встроенных фильтров или просто пережать в нужный кодек/контейнер с нужными настройками.

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

Послесловие
Я в своих экспериментах особенно выделил влияние параметра резкости на выходную картинку. Это всё методом подбора, универсального набора у меня нет: что-то влияет на картинку и восприятие, а что-то лишь напрягает ЦП, а выхлопа почти нет. Некоторые значения фильтров Handbrake могут уменьшить/увеличивать размер выходного файла без заметного изменения.
Заставка того сериала, что я делал для себя, тут картинка статичная почти.

И вот ещё, прогнал то видео с героями Dendy, загрузил на Peertube исходное видео, обработанные для сравнения в том плейлисте. Если станет интересно, можете их скачать, самое маленькое у меня получилось ~16 МБ, а самое большое ~78 МБ, все в AV1.
Комментарии
09:20