24 апреля 2019

Увеличение видео 1080P до 4K, или Как я научился не волноваться и полюбил апскейл с помощью нейросетей

Работа с видеоМашинное обучениеИскусственный интеллект
Читая недавно очередную статью про апскейл (Upscale — масштабирование изображения до более высокого разрешения), на этот раз про коммерческий продукт Topaz AI Gigapixel, я оставил комментарий следующий содержания:
Жаль, что пост — простой перевод, хотелось бы сравнения с чем-нибудь бесплатным, вроде того же waifu2x. Полагаю, разницу найти будет очень сложно, даже несмотря на то, что waifu2x предназначена для анимации.
Ну а раз статья была переводом, я решил взять дело в свои руки. Итак, не будем тратить времени, знакомьтесь:


Под катом лонгрид, а также гайды по апскейлу видео с помощью Instant 4K, Waifu2x, Lanczos и Topaz Gigapixel AI.


Сравнивать их мы будем, используя собственные глаза, ведь под разнообразные решения для анализа изображения картинку можно оптимизировать, выиграв «лишние» проценты… Однако, отказываться от последних мы тоже не будем, поэтому к результатам в виде скриншотов будут добавлены результаты анализа MITSU и VMAF, так как обе программы работают с видео без образца. SSIM, PSNR и прочие нам в данном случае не подойдут, ведь у нас нет реального 4К, с которым результаты апскейла можно сравнить.

Содержание:



Все файлы из статьи, включая PNG кадры без сжатия, анимированные сравнения, 4К H.265 сэмплы, таблицы и FFV1 файлы лежат на Google. Зеркало на Яндекс. Там же лежат 3 простых видеогайда по использованию Adobe Premiere Instant 4K, Waifu2x и Topaz.

1. Подготовка материала к тестированию

Конфигурация тестового стенда:
CPU: Intel Core i7-4980HQ 4.2 ГГц
Материнская плата: MSI Z97 GAMING 5
(не спрашивайте)
ОЗУ: 32 Гб DDR3 2400
GPU: NVIDIA GTX 1080ti FE 11GB, частота ядра установлена вручную на 1923, частота памяти — 5602.
СХД: система и программы на SSD M.2 SATA 850 EVO 250GB, файлы на HDD 2 ТБ WDC WD40EZRZ.
Апскейл производился по следующему сценарию:

  • Если выбранный метод поддерживал работу напрямую из редактора видео Adobe Premiere, то вся работа происходила в этом редакторе, после чего результат экспортировался в кодеке FFV1 с параметром GOP 1, чтобы избежать любых потерь и использовать исключительно обратимую компрессию изображения.
  • Если выбранный метод не поддерживал работу из редактора видео, то видео раскладывалось на отдельные кадры в формате PNG с помощью простого bat-файла:

    BAT-файл для сохранения отдельных кадров в папку frames
    wmic process where name="cmd.exe" CALL setpriority 16384
    @echo off
    :hugly
    if "%~1" EQU "" goto mugly
    ffmpeg -probesize 1000M -i "%~1" -vsync vfr frames\image-%%03d.png
    shift
    goto hugly
    :mugly
    pause

    Для разложения видео на кадры достаточно положить этот файл в папку к ffmpeg.exe и создать папку frames, после чего банально перетащить видео-файл прямо на bat-файл.

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

    BAT-файл для сведения отдельных кадров в файл, без звука
    ffmpeg -framerate 24 -i image-%%03d.png -vcodec ffv1 -pix_fmt yuv420p -level 3 -g 1 -r 24 photoshop.mkv

    Параметры -framerate и -r отвечают за установку частоты кадров видео, должны быть указаны оба.

В обоих случаях, на выходе я получал файл MKV с кодеком FFV1, размером примерно 700 мегабайт на каждые 10 секунд видео.

Результат анализа одного из файлов с помощью MediaInfo
General
Unique ID : 116184020412676472870756705294056286853 (0x57683A783D4732308C09451184B9EA85)
Complete name : D:\HABR\4K SOURCE\topaz.mkv
Format : Matroska
Format version : Version 4
File size : 1.21 GiB
Duration : 16 s 475 ms
Overall bit rate mode : Variable
Overall bit rate : 630 Mb/s
Writing application : Voukoder 1.2.1 (Premiere) - www.voukoder.org
Writing library : Lavf58.12.100
ErrorDetectionType : Per level 1

Video
ID : 1
Format : FFV1
Format version : Version 3.4
Format settings, GOP : N=1
Codec ID : V_MS/VFW/FOURCC / FFV1
Duration : 16 s 475 ms
Bit rate mode : Variable
Bit rate : 618 Mb/s
Width : 3 840 pixels
Height : 2 160 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 23.976 (24000/1001) FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Compression mode : Lossless
Bits/(Pixel*Frame) : 3.107
Stream size : 1.19 GiB (98%)
Default : Yes
Forced : No
Color range : Limited
Color primaries : BT.709
Transfer characteristics : BT.709
Matrix coefficients : BT.709
coder_type : Golomb Rice
MaxSlicesCount : 12
ErrorDetectionType : Per slice


После чего каждый из файлов был открыт в MPC-HC с целью сделать скриншоты, а потом — отправлялся на анализ в ffmpeg с помощью, в очередной раз, bat-файла:

Для работы этого скрипта ffmpeg должен быть собран с поддержкой libvmaf!
ffmpeg.exe -i instant_4k.mkv -i A016_C001_02073O_001.mkv -lavfi libvmaf=model_path=vmaf_4k_v0.6.1.pkl:log_path=vmaf.log:log_fmt=json:psnr=1:ssim=1:ms_ssim=1 -f null -
FFMPEG с поддержкой VMAF можно скачать по моим ссылкам на Google и Яндекс выше.

MITSU же, в свою очередь, в настройке не нуждался, готовые bat-файлы требуют небольшой доработки напильником (я указал полные пути до ffprobe и ffmpeg, а также поместил в папку с исполняемым файлом cygwin1.dll).

Полученные данные были импортированы в Excel и превращены в красивые и не очень графики.
FFV1 файлы также были сконвертированы в mp4 с кодеком h265 (для того, чтобы минимизировать размер файлов сохранив максимум деталей) с VBR 25000 кбит\с и отключенным SAO, в надежде достигнуть адекватного качества.

↑ Назад к содержанию

2. Выбор материала для тестирования

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

Были обработаны следующие типы видео:

  • Сцена из сериала "Person of Interest", S02E20, интро: много компьютерной графики, много движения и смен планов.
  • Сцена из той же серии сериала: мало движения, несколько смен планов и много деталей на заднем и переднем плане, от веток деревьев до деталей лиц.

    Обе сцены взяты из одного файла с разрешением 1920х1080 (Full HD), кодек H.264, битрейт — 12664 кбит в секунду. Это достаточно хорошее исходное качество для сериала. Сравнение результата апскейла производилось с файлом, увеличенным с помощью простейшей билинейной интерполяции (она указана в списке, как референс).
  • Пример видео с сайта RED.com: реальный 4K HD (3840x2160), снятый в 120FPS. Видео было уменьшено до 1920х1080 с помощью Lanczos, а потом увеличено до 4К с помощью программ из списка выше. Фреймрейт был уменьшен до ~24 кадров в секунду. Сравнение результата производилось с исходным файлом, конвертированным из RED файла в уже привычный нам FFV1 (ffmpeg отказывается работать с RED-файлами).
  • Рисованная анимация "Священная книга оборотня", скачано с YouTube, искусственная тряска «камеры», много смен планов. Исходный файл в разрешении 1280х720, контейнер WEBM, кодек VP9, битрейт 1556 кбит\с. Это весьма низкое качество, но вполне обычное явление на YouTube.

↑ Назад к содержанию

3. Выбранные для тестирования программы

Изучим каждый из способов апскейла немного детальнее:

  • Red Giant Shooter Instant 4K 13.1.5
    Платный: да (99$).
    Интеграция с Adobe Premiere (не требует разложения видео на кадры): да.

    Настройки качества: Filter Type — Best, Sharpness 2, Quality 25 (максимум), Anti-aliasing 6. Это стандартные настройки, за исключением Quality — он был установлен на максимум вручную.
    Время обработки 914 кадров INTRO: 532 секунды (в 11 раз дольше обычного экспорта).

    Способ апскейла: неизвестен («intelligent algorithms»)

    image alt
    Интерфейс плагина Instant 4K в окне программы Adobe Premiere 2019, в верхнем левом углу.

    Выбираем целевое разрешение (можно указать свое), выбираем тип фильтра (не вижу причин выбирать что-то отличное от Best), меняем или оставляем стандартным Sharpness (резкость), Quality (качество) и Anti-Aliasing (сглаживание), после чего экспортируем видеофайл и наслаждаемся результатом.

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

    Позволяет видеть результат до просчета видео, корректировать настройки. Для плавного воспроизведения требует просчета, изменения видны в окне просмотра спустя пару секунд после изменения настроек.
  • Фильтр Ланцоша (известный многим как Lanczos).

    Платный: нет.

    Интеграция с Adobe Premiere (не требует разложения видео на кадры): да, в составе плагина Voukoder.

    Настройки качества: отсутствует.

    Время обработки 914 кадров INTRO: 54 секунды (в 1,13 раз дольше обычного экспорта), без учета времени на конвертирование видео в отдельные кадры и последующее сведение кадров обратно в видео.

    Способ апскейла: не-ИИ.

    Пример строки для апскейла видеофайла из под Windows:
    ffmpeg -framerate 23.976 -i input.mp4 -vcodec ffv1 -pix_fmt yuv420p -level 3 -g 1 -vf scale=3840:2160 -sws_flags lanczos+full_chroma_inp -r 23.976 lanczos.mkv


    Предварительный просмотр отсутствует, как и настройки. Возможна работа непосредственно с видео, без разложения его на кадры. Прекрасно работает из ffmpeg. Работает быстрее всех остальных, только на CPU.
  • Adobe Photoshop Сохранение деталей 2.0
    Платный: да.

    Интеграция с Adobe Premiere (не требует разложения видео на кадры): нет.

    Настройки качества: имеется параметр «уменьшить шум», установлен на 100%, как и у автора статьи.

    Время обработки 914 кадров INTRO: 3840 секунд (в 80 раз дольше обычного экспорта), без учета времени на конвертирование видео в отдельные кадры и последующее их сведение обратно в видео.

    Способ апскейла: неизвестен.

    image alt
    Требует начальной настройки в виде создания шаблона «открыть файл — изменить размер — сохранить файл», очень много времени тратит непосредственно на открытие файлов и их сохранение: сказывается выбранный формат кадров — PNG, работает на CPU. Предпоследний по скорости.

    Позволяет посмотреть получившийся результат до увеличения изображения и его сохранения.
    У неопытного пользователя могут возникнуть проблемы с изменением цветового пространства: перепроверяйте цветовой профиль после сохранения изображения, сравнивайте цвета оригинального изображения и апскейла. Скорее всего, вам подойдет цветовой профиль sRGB IEC61966-2.1.
  • Topaz Gigapixel AI
    Платный: да (99$).

    Интеграция с Adobe Premiere (не требует разложения видео на кадры): нет.

    Настройки качества: Suppress Noise и Remove Blur. Кроме того, возможно включение и отключение «ИИ моделей максимального качества». В нашем сравнении эти модели включены.

    Время обработки 914 кадров INTRO: 7680 секунд (в 160 раз дольше обычного экспорта), без учета времени на конвертирование видео в отдельные кадры и последующее сведение кадров обратно в видео.

    Способ апскейла: ИИ.

    image alt
    Достаточно приятный интерфейс с превью результата, имеет полнофункциональный триал в 30 дней, очень сильно нагружает видеокарту и работает, фактически, только на ней. При желании, можно запустить на CPU. По сравнению с остальными — самый медленный.
  • Waifu2x с профилем UpResNet10
    Платный: нет.

    Интеграция с Adobe Premiere (не требует разложения видео на кадры): нет.

    Настройки качества: под Windows имеется waifu2x-caffe, позволяет выбрать профиль и настроить силу «шумодава» (Off / 1 / 2 / 3). Экспериментальным путем был выбрал профиль UpResNet10, как показывающий наилучший результат. Шумодав установлен на уровень AUTO 1.
    Время обработки 914 кадров INTRO: 879 секунд (в 18 раз дольше обычного экспорта), без учета времени на конвертирование видео в отдельные кадры и последующее сведение кадров обратно в видео.
    Способ апскейла: ИИ.
    image alt
    Простой интерфейс, работает на GPU, могут возникнуть дополнительные сложности при первоначальной настройке (мне пришлось установить cuDNN, заняло 10-15 минут времени). При желании, можно запустить на CPU. Середнячок по скорости, обгоняет только Photoshop и Topaz.

Это далеко не полный список программ, которые подходят для апскейла видео, и в следующей статье я постараюсь добавить еще больше способов. Предлагайте ваши варианты в комментариях!
↑ Назад к содержанию

4. Переходим, наконец, к рассмотрению видео:


4.1 Файл 1: «INTRO»:

Первый отрывок: компьютерная графика.
image alt
Кадр из сериала, увеличенный с помощью билинейной интерполяции и уменьшенный до 720Р для превью.
Основные отличия: качество обработки текста и отметок на карте, в том числе сетки по всему кадру, а также сохранение формы «прицела» в центре кадра.
Результаты JPEG Instant 4K, Lanczos, Photoshop, Topaz, Waifu2x с профилем UpResNet10 и оригинал.
Анимированное сравнение: MP4 H.264, WEBP. Также оба файла и оригинальные кадры в PNG доступны здесь. Я рекомендую просматривать видео и кадры локально, а не со страницы Google Drive.
Полноразмерные 4К сэмплы в кодеке H.265 лежат здесь (~100МБ каждый).

Анимированное сравнение центра кадра: MP4 H.264, WEBP.
Начнем с прицела в центре. Красный квадрат: обращаем внимание на поведение двух пересекающихся линий. Поскольку мы (местами) имеем дело с ИИ, ищем нежелательные искажения. Instant 4K внес в этот квадрат достаточно сильные изменения, за что получает от меня минус в карму. Все остальные методы повели себя примерно одинаково, самый четкий результат – у Photoshop. Topaz – на втором месте. UpResNet10, к сожалению, заметил артефакты сжатия и любезно решил их увеличить. Lanczos же фактически не отличается от обычного увеличения.
Синий квадрат: следим за формой кругов, надеемся на как можно более гладкий круг. Instant 4K снова добавил «отсебятины» и сгладил круг, убрав пропуск в нижней его части. Однако, в этот раз, за это от меня получает плюс. Тем не менее, лучший результат – у Photoshop. UpResNet10 вывел поверх круга слишком много деталей (сетку), что может восприниматься как артефакты.

Анимированное сравнение текста: MP4 H.264, WEBP.
Переходим к тексту: Lanczos сделал его более жирным, за что получает минус. UpResNet10 снова увлекается сеткой, и снова показывает себя хуже конкурентов. Больше всего мне понравился текст, который выдал Topaz. Впрочем, он примерно равен результатам остальных методов – тут уже дело вкуса. Готовых простить Instant 4K за «додумывания» может больше всего удовлетворить выданный им текст, остальные, полагаю, разделятся между Topaz и Photoshop. Последний, на мой вкус, все же «мыльноват».

Анимированное сравнение сетки на карте: MP4 H.264, WEBP.
Последняя точка – сетка на карте. Здесь все показали себя более или менее одинаково, за исключением двух отличившихся — UpResNet10 и Topaz. Topaz убил целую кучу точек и почти все детали. UpResNet10, напротив, вывел точки там, где их раньше практически не было видно. Лично меня оба эти варианта не устраивают, поэтому победу «за точки» я делю между Instant 4K и Photoshop.
В общем и целом, на статичной карте из компьютерной графики победителем является Photoshop, второе место уходит Instant 4K, третье – UpResNet10 (все же мы хотим от 4К больше деталей, и он нам их дал, хоть и сомнительного качества). Topaz убил слишком много деталей, в то время как Lanczos банально слишком мало отличалется от билинейной интерполяции.

Смотрим следующий кадр: середина анимации с движением.
image alt
Кадр из сериала, увеличенный с помощью билинейной интерполяции и уменьшенный до 720Р для превью.
Результаты JPEG Instant 4K, Lanczos, Photoshop, Topaz, Waifu2x с профилем UpResNet10 и оригинал.
Анимированное сравнение: MP4 H.264, WEBP. Также оба файла и оригинальные кадры в PNG доступны здесь.
На первый взгляд, картина ожидаемая: все варианты, кроме Lanczos, выдали более четкое изображение. Особое внимание уделим деталям у Topaz, потому что он больше всех изменил картинку. Изучим реального, не нарисованного актера, и детали его одежды, а также текст.

Анимированное сравнение актера: MP4 H.264, WEBP.
Что касается актера, то отличия здесь действительно минимальны: хотя в прошлый раз UpResNet10 и выводил (порой лишние) детали, которые раньше было плохо видно, в этот раз он разве что повысил резкость диагональной сетки снизу. Отличия между Photoshop, Lanczos и Instant 4K реально надо искать под лупой, даже 400% увеличения недостаточно для того, чтобы заметить отличия. В целом, Photoshop и Instant 4K выдали чуть более резкую картинку. Instant 4K снова занимается самодеятельностью – в красном квадрате у актера изменился воротник рубашки. Впрочем, какое-то реальное отличие от просто увеличения заметно разве что у Topaz: поубавился цветовой шум около полос, а также это единственная программа, у которой в синем квадрате наблюдается увеличение резкости.

Анимированное сравнение текста: MP4 H.264, WEBP.
Перемещаемся ниже, к тексту: здесь Photoshop уступил всем остальным способам увеличения и выдал картинку, идентичную Lanczos. UpResNet10 и Instant 4K прибавили резкости, но и внесли немного «отсебятины» в форму букв. Самую четкую картинку снова выдал Topaz, выделив при этом рваность букв (хорошо это или плохо – решать вам) и незначительные артефакты сжатия. Цветовой шум снова уменьшился, а большие буквы сверху не идут в сравнение с остальными способами увеличения.

Последний кадр из отрезка: кадр из сериала с наложенной поверх него компьютерной графикой.
image alt
Кадр из сериала, увеличенный с помощью билинейной интерполяции и уменьшенный до 720Р для превью.
Результаты JPEG Instant 4K, Lanczos, Photoshop, Topaz, Waifu2x с профилем UpResNet10 и оригинал.
Анимированное сравнение: MP4 H.264, WEBP. Также оба файла и оригинальные кадры в PNG доступны здесь.

Анимированное сравнение лица актера: MP4 H.264, WEBP.
Мы рассмотрим в увеличении только лицо актера справа: Topaz прибавил резкости и очень хорошо выделил сетку, в результате лицо актера получилось очень четким. Instant 4K и UpResNet10 сделали тоже самое, но убрали меньше размытия (блюра). Photoshop уступил и им, обогнав разве что Lanczos. В целом, никто не потерял никаких деталей, и Instant 4K не внес лишних изменений.

По трем выбранным кадрам, победителем для меня стал Topaz. Несмотря на кучу потерянных деталей в первом кадре, он отыгрался на двух последних. Второе место занял Instant 4K, за более или менее стабильное увеличение резкости во всех трех кадрах, несмотря на незначительные изменения. Третье – за UpResNet10. В первом кадре показал картинку, которая мне не понравилась, но в последних двух выдал хорошее увеличение резкости. Photoshop начал хорошо в первом кадре, но на последних двух почти не отличался от обычного увеличения. Lanczos без шарпинга почти ничем не отличается от билинейной интерполяции на всех трех кадрах.

Посмотрим, что на это скажут MITSU и VMAF:
image alt
Результат анализа MITSU (полный размер), Blur и Noise, меньше — лучше.
image alt
Результат анализа VMAF (полный размер), больше — лучше.
MITSU сообщает, что меньше всего блюра содержат в себе кадры, обработанные Topaz. Тем не менее, все остальные способы апскейла, включая Lanczos, продемонстрировали улучшение показателя Blur и перешли границу 5 баллов, числа ниже которой говорят нам о том, что видео не имеет лишнего размытия. То есть все способы апскейла улучшили четкость изображения.
Что касается шума, то здесь картина обратная – меньше всего шума у оригинальной картинки, больше всего – у Topaz. В принципе, это логично, потому что:
  1. Часть шума действительно могла быть неправильно классифицирована всеми программами как детали и «улучшена».
  2. Какие-то детали изображения могли быть распознаны MITSU как шум.

В любом случае, никакого заметного увеличения количества шума на картинке я не заметил, да и все значения находятся ниже границы в 3.5 балла, то есть, согласно документации MITSU, видимого шума не имеют.
Раз шум на всех кадрах у нас значительно ниже заметного, судить будем по показателю Blur.
Что касается VMAF, здесь все графики в основном находятся в максимальном значении – 100. Однако, в графике VMAF мы можем увидеть просадки – таковые, например, у Instant 4K и Topaz имеют одинаковый вид – только Topaz падает ниже. В середине графика Instant 4K заменяется на UpResNet10, который незначительно падает вместе с Topaz. Здесь же у последнего наблюдается падение значения VMAF до 77, а в конце графике у Photoshop это значение падает аж до 0. При этом никаких видимых глазу отличий, артефактов или «глюков» в этих кадрах не видно.
Итак, алгоритмы распределили программы следующим образом: на первом месте UpResNet10, на втором – Instant 4K, на третьем – Photoshop.
«Оригинальный» файл FFV1 MKV 1080P, для желающих провести собственные эксперименты или повторить мои, можно скачать здесь.
↑ Назад к содержанию

4.2 Файл 2: “Scene 1”

Второй отрывок: сцена без компьютерной графики, детали лиц и фоны.
Основные отличия: детали фона, детали лиц, артефакты на них.
image alt
Кадр из сериала, увеличенный с помощью билинейной интерполяции и уменьшенный до 720Р для превью.
Результаты JPEG Instant 4K, Lanczos, Photoshop, Topaz, Waifu2x с профилем UpResNet10 и оригинал.
Анимированное сравнение: MP4 H.264, WEBP. Также оба файла и оригинальные кадры в PNG доступны здесь.
Полноразмерные 4К сэмплы в кодеке H.265 лежат здесь (~97МБ каждый).

Анимированное сравнение деревьев: MP4 H.264, WEBP.
Сначала рассмотрим фон, а точнее – деревья: Instant 4K и UpResNet10 показали себя примерно одинаково, добавив немного резкости, в то время как Photoshop, напротив, потерял часть деталей, сгладив картинку. Кроме того, Instant 4K немного исказил деревья (см. красные квадраты). А вот Topaz добавил очень много резкости и сделал из мыльного фона весьма четкие деревья. Lanczos снова не отличается от билинейной интерполяции.

image alt
Кадр из сериала, увеличенный с помощью билинейной интерполяции и уменьшенный до 720Р для превью.
Результаты JPEG Instant 4K, Lanczos, Photoshop, Topaz, Waifu2x с профилем UpResNet10 и оригинал.
Анимированное сравнение: MP4 H.264, WEBP. Также оба файла и оригинальные кадры в PNG доступны здесь.
Анимированное сравнение актера на фоне деревьев: MP4 H.264, WEBP.
Теперь другой кадр: актер лицом к нам на фоне деревьев.
Спойлер: на деревья смотреть не нужно, они не отличаются. Поэтому изучим бокал в руке актера и его лицо.

Анимированное сравнение лица актера: MP4 H.264, WEBP.
В случае с лицом, Instant 4K и UpResNet10 снова продемонстрировали примерно одинаковые результаты, а Photoshop снова потерял часть деталей. Topaz же этих деталей добавил, хоть и не так много, как в случае с деревьями на фоне. Характерных для Instant 4K артефактов в этот раз не нашлось. Lanczos оказался незначительно более четким, чем билинейная интерполяция.

Анимированное сравнение бокала: MP4 H.264, WEBP.
Ну а в последнем сравнении, стеклянном бокале, в основном отличия были заметны в его прозрачной части без напитка. Topaz снова прибавил больше детализации, чем остальные, Photoshop снова размыл картинку (синий квадрат), а UpResNet10 и Instant 4K опять ведут себя примерно одинаково. Полная повторяемость результата.
Победителем в этом кадре без сомнений стал Topaz, добавив детализации без артефактов (!), второе место занял UpResNet10, который хотя и прибавил немного резкости, однозначно не дотянул до Topaz-а, но и не добавил артефактов, как это сделал занявший третье место Instant 4K. Photoshop занял последнее – не увеличил, а уменьшил детализацию.

image alt
Кадр из сериала, увеличенный с помощью билинейной интерполяции и уменьшенный до 720Р для превью.
Результаты JPEG Instant 4K, Lanczos, Photoshop, Topaz, Waifu2x с профилем UpResNet10 и оригинал.
Анимированное сравнение: MP4 H.264, WEBP. Также оба файла и оригинальные кадры в PNG доступны здесь.
Анимированное сравнение лица второго актера: MP4 H.264, WEBP.
Последний кадр из того же фрагмента: второй актер.
С деревьями, фонами и бокалами нам все ясно, поэтому здесь изучим лицо актера.
Здесь результат примерно соответствует прошлым кадрам, с одной и очень важной оговоркой: Topaz нарисовал на щеке актера нечто, что я начал замечать на 500% увеличении, а разглядеть это мне удалось лишь на 1000%: весьма неприятную «текстуру», которой там быть явно не должно. Все остальные методы отработали примерно одинаково, лишь Photoshop снова потерял детали (зато избавился от шума на белой рубашке). Последнее место за такую самодеятельность занимает Topaz, предпоследнее – Photoshop, все остальные занимают почетное «первое место».

По результатам рассмотрения всех трех кадров, скрепя сердце, но первое место занимает Topaz. Вероятно, его поведение из последнего кадра можно исправить, но на это у вас уйдет дополнительное время, и немало. Впрочем, эта деталь не очень видна на 100% масштабе, и он прекрасно показал себя в первом сравнении с деревьями, поэтому будет победителем. Второе место – за UpResNet10, за увеличение четкости без артефактов, третье – за Instant 4K, за тоже самое, но уже с артефактами. Последнее место уходит Photoshop за ухудшение четкости картинки.

А что насчет MITSU и VMAF?
image alt
Результат анализа MITSU (полный размер), Blur и Noise, меньше — лучше.
image alt
Результат анализа VMAF (полный размер), больше — лучше.
Здесь все примерно так же, как и с первым видео: меньше всего Blur у Topaz, и у него же больше всего шум. Хотя шум в очередной раз не добрался даже до 1 балла, не то что до 3,5, поэтому снова обращаем внимание на размытие, где все перешли границы дозволенных 5 баллов. Здесь заметное улучшение продемонстрировал Topaz, уменьшив Blur почти в два раза, до 6, пока остальные кучкой лежат в районе 10-12 баллов.
По графику VMAF никаких просадок не наблюдается, разве что на графике VMAF Topaz демонстрирует значительно большую неравномерность значений в соседних кадрах, нежели остальные программы. Первое место он отдал Instant 4K, второе – Topaz-у, а третье – UpResNet10.
Таким образом, первое место занимает Topaz, второе — Instant 4K, а третье – UpResNet10.
«Оригинальный» файл FFV1 MKV 1080P, для желающих провести собственные эксперименты или повторить мои, можно скачать здесь.
↑ Назад к содержанию

4.3 Файл 3: “4K Source”

image alt
Кадр из файла RED, конвертированный в FFV1 и уменьшенный до 720Р для превью.
Результаты JPEG Instant 4K, Lanczos, Photoshop, Topaz, Waifu2x с профилем UpResNet10 и оригинал.
Анимированное сравнение: MP4 H.264, WEBP. Также оба файла и оригинальные кадры в PNG доступны здесь.
Полноразмерные 4К сэмплы в кодеке H.265 лежат здесь (~49МБ каждый).
Третье сравнение будет проводиться следующим образом: исходный файл с разрешением 3840х2160 в формате R3D был экспортирован из Adobe Premiere с тем же разрешением, но с фреймрейтом, уменьшенным со 120 FPS до 23.98 FPS.
После этого полученный FFV1 файл в очередной раз был уменьшен, в этот раз с помощью билинейной интерполяции, до разрешения 1920х1080, после чего полученный файл прогонялся через программу для апскейла и сравнивался с файлом FFV1 в разрешении 4К, то есть сравнение было не с билинейной интерполяцией, как в прошлые разы, а с оригинальной картинкой. Файл короткий, всего 16 секунд, поэтому сравнивать мы будем один-единственный кадр.
Первое отличие, которое бросается в глаза – цвета и яркость изображения. Я несколько раз перепроверил настройки разделения видео на кадры и последующего сбора этих кадров в видео с помощью ffmpeg: результат один – сохранить цвета и яркость неизменными не удалось ни одному алгоритму, даже Lanczos. Впрочем, яркость и цветность изображения в данном случае не играет для нас роли, поэтому смотреть мы будем на четкость изображения, а именно – детали на автомобиле, изображения и отражения.

Анимированное сравнение автомобиля: MP4 H.264, WEBP.
Instant 4K незначительно увеличил резкость всего изображения и дорисовал темное отражение над колесом. Также эту тень дорисовали все другие способы апскейла, что интересно: раньше детали «додумывал» только Instant 4K. Возможно, алгоритмы разглядели то, что плохо видно нам – переход от участка с отражением на корпусе авто. Сильнее всех постарался Topaz, убрав шум по всему изображению (что, вообще-то, не всегда хорошо, ибо часто шум добавляют\оставляют специально) и выделил детали на автомобиле, в том числе изображения. Однако, просто так убрать столько размытия не получится, поэтому во многих местах Topaz нарисовал двойные контуры – особенно на тексте (синий квадрат). UpResNet10 в этот раз разочаровал, увеличив пикселизацию некоторых частей кадра, вероятно, неправильно распознав шум как «фичи» (красный квадрат). Что характерно, похожее поведение наблюдается и у Lanczos, который никакого ИИ не имеет вовсе. Photoshop выступил крепким середнячком, уменьшив шум и не добавив особой пикселизации.
В этом сравнении, победителем для меня в очередной раз стал Topaz, второе место занял Photoshop, третье – Instant 4K.

Перейдём к рассмотрению графиков: здесь мы добавим к рассмотрению графики SSIM и PSNR, поскольку у нас есть оригинал в 4К.
image alt
Результат анализа MITSU (полный размер), Blur и Noise, меньше — лучше.
image alt
Результат анализа VMAF (полный размер), больше — лучше.
image alt
Результат анализа SSIM (полный размер), больше — лучше.
image alt
Результат анализа PSNR (полный размер), больше — лучше.

PSNR поставил на первое место Photoshop, SSIM – Lanczos, а VMAF – Topaz. Второе место PSNR и SSIM отдали UpResNet10, в то время как VMAF отдал предпочтение Instant 4K. На третьем месте у нас снова кто во что горазд, и пока PSNR ставит на третье место Lanczos, SSIM отдает его Instant 4K. VMAF – Photoshop. При этом VMAF оценивает каждый кадр Topaz в 100 баллов из 100 возможных – я проверил дважды.
MITSU снова демонстрирует привычную картину, и сообщает нам, что шум на всех результатах практически отсутствует. Что касается размытия, то тут все уже не так хорошо – большая часть апскейлеров сохранили размытость оригинала, от группы оторвались только Topaz и UpResNet10, на 4 и 2 балла соответственно. Оба не смогли добраться до заветных 5, но результат есть.
Из всех четырех метрик, больше всего совпадают с моими впечатлениями показания VMAF и MITSU, а PSNR и SSIM предпочитают «математику» ИИ. По результатам анализа однозначно победителя назвать сложно.
«Оригинальный» файл FFV1 MKV 4K, для желающих провести собственные эксперименты или повторить мои, можно скачать здесь.
↑ Назад к содержанию

4.4 Файл 4: “Youtube”

image alt
Кадр из видео Youtube, увеличенный с помощью билинейной интерполяции и уменьшенный до 720Р для превью.
Видео с Youtube, от начала и до конца. Исходное качество – 720Р, рисованная анимация, плюс добавлена тряска камеры. Качество – приемлемое, но оставляет желать лучшего, особенно на 4К мониторе.
Результаты JPEG Instant 4K, Lanczos, Photoshop, Topaz, Waifu2x с профилем UpResNet10 и оригинал.
Анимированное сравнение: MP4 H.264, WEBP. Также оба файла и оригинальные кадры в PNG доступны здесь.
Полноразмерные 4К сэмплы в кодеке H.265 лежат здесь (~265МБ каждый).

На первом же сравнении в глаза бросается отличие кадра, выданного Instant 4K: он отличается и по цвету, и по яркости. Я несколько раз экспортировал это видео из нескольких версий Adobe Premiere и проверял цветность – Instant 4K настаивал на изменении цвета при любых настройках. Итоговый результат – из версии 2019 с включенным Display Color Management.

Анимированное сравнение лица: MP4 H.264, WEBP.
Без увеличения разница заметна разве что у Instant 4K и Topaz, поэтому посмотрим поближе на лицо.
Lanczos не продемонстрировал никаких улучшений, UpResNet10, как ни странно, тоже. Photoshop уменьшил эффект блочности картинки, который появился в оригинале из-за слишком сильного сжатия, при этом не потеряв деталей. Для анимации такой метод вполне приемлем, мы убираем артефакты без увеличения резкости, в общем и целом картинка становится приятнее. Instant 4K увеличил количество артефактов и изменил цвета, присутствует также незначительно увеличение резкости, которое нивелируется появлением еще большего количества артефактов. Topaz же продемонстрировал именно то, что хотелось бы видеть от всех другие методов: артефакты практически полностью исчезли, как и эффект блочности, а резкость не идет ни в какое сравнение с оригиналом или любым другим способом апскейла. Победителем, однозначно, является Topaz, второе место уходит Phtoshop, третье делят UpResNet10 и Lanczos, потому что они хотя бы не добавили новых артефактов, в отличие от Instant 4K.

image alt
Кадр из видео Youtube, увеличенный с помощью билинейной интерполяции и уменьшенный до 720Р для превью.
Результаты JPEG Instant 4K, Lanczos, Photoshop, Topaz, Waifu2x с профилем UpResNet10 и оригинал.
Анимированное сравнение: MP4 H.264, WEBP. Также оба файла и оригинальные кадры в PNG доступны здесь.

Переходим ко второму кадру: здесь у нас есть много градиентов с артефактами, а также детали лица, в очередной раз.
Интересно будет посмотреть на то, как все методы апскейла отработали артефакты на градиентах, а также поискать нежелательные изменения. Что касается артефактов на градиенте слева (синий квадрат), на них обратили внимание только Topaz и Instant 4K. В то время как первый практически полностью избавился от этих блоков, Instant 4K снова подвел, изменив цвета и сделав артефакты заметнее., чем у Topaz. Конечно, результат все равно не идет ни в какое сравнение с остальными: там эти блоки цветут и пахнут.

Анимированное сравнение лица: MP4 H.264, WEBP.
В оригинале у нас снова размазня из макроблоков, и мы ожидаем примерно такого же результата, как в прошлом кадре. Instant 4K незначительно подправил переходы между блоками и сделал их более плавными, в то время как Photoshop преуспел в этом хуже, в отличие от первого сравнения. Впрочем, изображение после обработки Photoshop все равно стало чуть приятнее. UpResNet10, к сожалению, опять ударил в грязь лицом и совершенно не улучшил происходящее на экране, практически не отличившись от Lanczos. А вот Topaz в очередной раз прибавил четкости, убрал артефакты и не добавил новых.
Победителем здесь снова выходит Topaz, второе место – за Instant 4K (я уже смирился со сменой цветов), третье – Photoshop.

image alt
Кадр из видео Youtube, увеличенный с помощью билинейной интерполяции и уменьшенный до 720Р для превью.
Результаты JPEG Instant 4K, Lanczos, Photoshop, Topaz, Waifu2x с профилем UpResNet10 и оригинал.
Анимированное сравнение: MP4 H.264, WEBP. Также оба файла и оригинальные кадры в PNG доступны здесь.

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

В первую очередь хочу обратить внимание на зеленый квадрат: мы ожидаем от всех апскейлеров уменьшения блочности в этом месте. К сожалению, наши ожидания удовлетворил тишь Topaz, остальные же, включая Photoshop, не сделали артефакты менее заметными. Instant 4K снова стреляет себе в ногу, увеличивая яркость изображения и вытягивая даже те артефакты, которых раньше мы просто не видели. Хочу отметить, что результат Topaz-а на этом кадре мне тоже не очень понравился, я считаю, что он слишком сильно смазал градиенты. Впрочем, за это он убрал практически все видимые огрехи, поэтому сравнивать его с просто не с кем – все остальные, как я уже сказал, на них практически не повлияли.

Анимированное сравнение одежды: MP4 H.264, WEBP.
Поскольку на лица мы уже насмотрелись, рассмотрим крупнее детали одежды: здесь мы наблюдаем настоящий парад макроблоков, особенно на градиентах. К сожалению, в очередной раз, ни один из апскейлеров не сделал картинку лучше, за исключением Topaz, который сгладил все градиенты и практически полностью убрал блочность, за что и занимает по результатам анализа этого кадра первое место. Второе и третье место за этот кадр назначать, как ни печально, некому.

Удивительно, но waifu2x, казалось бы, заточенный под увеличение аниме и рисунков, оказался совершенно не в состоянии реализовать свое преимущество. Для меня это стало сюрпризом.

Сравним мои впечатления с результатами анализа VMAF и MITSU, начав с первого:
image alt
Результат анализа MITSU (полный размер), Blur и Noise, меньше — лучше.
image alt
Результат анализа VMAF (полный размер), больше — лучше.
VMAF расположил все способы апскейла практически в обратном моему порядке, на первом месте Lanczos, на последнем – Topaz. У всех наблюдаются частые просадки по качеству, ниже всех по метрике VMAF падает Topaz, причем в самых продолжительных просадках за ним устремляются также и все остальные, кроме Lanczos. При этом я на этих кадрах не увидел ничего необычного.
Ну а MISTU в очередной раз демонстрирует большой отрыв Topaz-а от остальных по метрике Blur, а также незначительную прибавку Noise. Абсолютно все способы апскейла по мнению MITSU сделали картинку более четкой, а Instant 4K даже уменьшил количество невидимого для нас шума.
Первое место, таким образом, занимает Instant 4K, второе – UpResNet10, третье – Topaz.
В этот раз с VMAF я совершенно не согласен.

«Оригинальный» файл FFV1 MKV 720P, для желающих провести собственные эксперименты или повторить мои, можно скачать здесь.
↑ Назад к содержанию

5. Анализ результатов

Для определения победителя, я воспользуюсь результатами метрики VMAF и субъективными выводами о каждом файле. Метрику VMAF я просто сложу, используя среднее значение из каждого файла. Что касается субъективной оценки, здесь я обращусь к своим выводам о каждом файле, и выдам за каждый файл первому месту 3 очка, второму месту — 2, и третьему — 1. После чего эти очки я складываю и распологаю по вертикали графика.

image alt
Результат сложения VMAF и субъективного анализа (полный размер), больше — лучше.

По метрике VMAF победителем оказался Instant 4K, оторвавшись от Topaz, занявшего второе место, всего на 0.58 балла. По субъективному анализу, с другой стороны, дистанция между первым и вторым местом гораздо больше — первое место занял Topaz, оторвавшись от занявшего второе место Intsant 4K на 8 баллов, получил в 3 раза больше очков.

Победителем моего сравнения оказывается Topaz, второе место уходит Instant 4K, а третье — UpResNet10.


Однако, сравнение было бы не полным без сравнения скорости работы программ и моих замечаний к их работе. Начнем с первого:
image alt
Затраченное на обработку время и обьемы полученных файлов (полный размер)

Увеличенная детализация Topaz сказывается даже на размерах файлов, причем значительно. Как правило, файлы Topaz оказываются в 2 раза «тяжелее» файлов остальных апскейлеров, и в 4 раза «тяжелее» оригинальных файлов, увеличенных билинейной интерполяцией. Исключение составляет разве что файл «4K Source», где разница была менее 30%.

Что касается скорости работы программ, то все они, кроме Topaz и Photoshop, работают с весьма приемлемой скоростью. Впрочем, приемлемой для чего?
Что если мы захотим увеличить через Topaz фильм, длительностью в 2 часа, с частотой кадров 25 кадров в секунду? У моего компьютера на такое уйдет 421 час или 17 с половиной дней непрерывной работы. Что насчет сериала продолжительностью 40 минут? 6 дней.

Да, картина с тем же waifu2x несколько иная — 2 дня на фильм, 16 часов на серию. Считаете ли вы результат, продемонстрированный waifu2x, стоящим двух дней непрерывного рендера? На этот вопрос каждому предлагаю ответить самостоятельно.

Месяц назад для апскейла видео я использовал только и исключительно Instant 4K, для изображений (логотипов, иногда фото) waifu2x. Результат, продемонстрированный Topaz, заставил меня добавить его в свою коллекцию программ для апскейла, как минимум для увеличения изображений. Я нередко увеличиваю короткие ролики длительностью меньше 10 секунд, кроме того, он прекрасно увеличивает изображения — как рисунки, так и фотографии.

Возвращаясь к теме фильмов, в случае с Topaz я вижу только один способ решения проблемы: распределение кадров для обработки на несколько машин.
image alt
Topaz AI может работать быстрее. В чем подвох?
Отключение «ИИ моделей высокого качества» сокращает время обработки теоретического фильма на 4 дня, ценой уменьшения точности обработки цветов. Возможно, вам будет интересно знать, что на форуме Topaz многие считают эту «облегченную» модель более качественной. PNG кадры и анимированное сравнение можно посмотреть здесь.

Instant 4K работает с хорошей скоростью и демонстрирует при этом замечательный результат (лучше остальных способов, кроме Topaz, и при этом быстрее, а также банально удобнее).

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

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

UpResNet10, в целом, проигрывает Instant 4K. Но если вы не согласны с его самодеятельностью, можно попробовать заменить Instant 4K на UpResNet10. Лично я не считаю артефакты Instant 4K такими заметными. С другой стороны, использовать Instant 4K для увеличения изображений, как минимум странно, да и обычно вовсе неудобно. Поэтому заменить waifu2x с помощью редактора видео можно, но не нужно.

Может ли какой-то из способов апскейла быть назван универсальным? Пожалуй, да. Я думаю, что правильно настроенный Topaz может выдать стабильно лучшую картинку, чем остальные способы апскейла. Но нет бочки меда без ложки дегтя, нельзя забывать о производительности Topaz-а.
↑ Назад к содержанию

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

… я могу в первую очередь порекомендовать Instant 4K, как самый простой в использовании.

Вы просто запускаете программу, импортируете в нее свой файл, создаете из него последовательность «Sequence from Clip», заходите в ее настройки (Sequence Settings) и меняете разрешение на желаемое. После этого перетаскиваете эффект Instant 4K на вашу видеодорожку, настраиваете разрешение и дополнительные параметры и можете начинать экспорт.

К сожалению, чтобы воспользоваться этой программой, вам нужно купить или найти Adobe Premiere, а также сам плагин. Купить все это — весьма серьезное вложение средств, а советовать искать в интернете «вылеченные» программы я не могу.

image alt
Adobe Premiere недоволен моим вкусом
Хочу обратить ваше внимание на то, что Premiere работает далеко не со всеми форматами видео, и на немалую часть фильмов из Интернета будет ругаться благим матом. На этот случай, могу только посоветовать конвертировать фильм во что-нибудь вроде ProRes с помощью ffmpeg:
ffmpeg -hide_banner -probesize 1000M -i file.mkv -pix_fmt yuv420p -c:v prores_ks -c:a aac -b:a 128k file.mov

Следующей на очереди будет waifu2x: раскладываем видео на кадры с помощью BAT-файла из раздела «Подготовка материала к тестированию», открываем папку в waifu2x, выбираем параметры (увеличение до разрешения, шумоподавление) и начинаем экспорт. По его окончании вам нужно будет лишь свести кадры и звук в готовое видео. У вас могут возникнуть некоторые проблемы с настройкой, как я уже писал, лично мне пришлось искать cuDNN, кроме того, waifu2x требует достаточно мощной видеокарты.

Если вы по каким-то причинам не можете настроить waifu2x, либо у вас не хватает мощности GPU, обратитесь к Photoshop. В этой статье есть достаточно хорошая инструкция по его использованию.

Если вас удовлетворят эксперименты с изображениями, или у вас очень много лишнего времени, воспользуйтесь триалом Topaz: он будет работать со всеми функциями 30 дней. Как раз успеете до конца испытательного периода увеличить любимый фильм (но это не точно). Требования к мощной видеокарте от waifu2x распространяются и сюда. Кроме того, при использовании Topaz или waifu2x у вас могут возникнуть проблемы в работе с другими, даже простейшими программами, поскольку обе программы норовят занять GPU на 100%, делая интерфейс остальных очень тормознутым. Принцип работы — тот же, что и с waifu2x.

В трех последних случаях, я рекомендую вам заранее отделить звуковую дорожку от исходного видеофайла, любым удобным вам способом. Если это простое видео с Youtube или фильм с одной дорожкой — хорошо, подойдет простейший однострочный BAT-файл. Если же вам «повезло» экспериментировать с фильмом с дорожками 5.1 и несколькими переводами, то подобные случаи выходят далеко за пределы этой статьи. Но кто ищет, тот всегда найдет.

Образец скрипта для извлечения звука
ffmpeg -i input-video.avi -vn -acodec copy output-audio.aac 

После получения аудио одним файлом и по окончании обработки кадров апскейлером, следует свести звук и видео в один файл.

Новичкам порекомендую воспользоваться скриптом из статьи про Photoshop:
ffmpeg -framerate 24 -i image-%%03d.png -i output-audio.aac -pix_fmt yuv420p -vcodec libx264 -preset veryslow -crf 15 -c:a aac -b:a 128k -r 24 test_4K.mp4

Подправлен под мой скрипт для конвертации видео в отдельные кадры. Не забудьте поменять -r и -framerate на свою частоту кадров. Также при работе с PNG не помешает указать требуемое цветовое пространство видео: -pix_fmt yuv420p

Остальным — изучить параметры и настройки H.265 (меньше размер и больше качество) и H.264 (быстрее).
Еще варианты скриптов под FFMPEG можно посмотреть в этой статье про апскейл.
↑ Назад к содержанию

7. План на следующую статью и вопросы читателям

В следующей статье я планирую добавить интерактив для субъективного тестирования, чтобы непосредственно читатели оценивали те или иные методы апскейла, для этого собираюсь использовать MSU Video Quality Measurement Tool. Но мне нужно будет понять, могу ли я свободно использовать H.265 и сжать файлы сильнее, или мне придется использовать H.264. Прошу пройти опрос внизу и отметить, может ли ваш ПК воспроизводить H.265 без потерь кадров («лагов»).
Кроме того, я планирую рассмотреть Super-Resolution Convolutional Neural Network model (SRCNN) и Efficient Sub-Pixel Convolutional Neural Network model (ESPCN).

  • В следующей статье я бы хотел повторить использование Lanczos, но добавить sharpening. Какой? Есть ли у вас пожелания или предложения по его настройке? Возможно, стоит заменить Lanczos на другой способ апскейла, например, sinc?
  • Стоит ли поменять модель waifu2x на другую? CUnet? Профиль Y? Возможно, вы в своих апскейлах с большим эффектом использовали другой?
  • Нужно ли оставить Photoshop?
  • Использовать «медленную, но качественную» модель Topaz, либо «быструю, но не качественную»?
  • Возможно, у вас есть предложения по исходным видео для тестирования?
  • Оставить или убрать MITSU? Возможно, поменять метрики, например Noise на Blockiness?

Бонусный франкенштейн от Topaz:
image alt
Один из двух кадров, испорченных Topaz при обработке исходного материала.

↑ Назад к содержанию
Теги:4KPhotoshopUltraHDUpscaleEnhanceffmpegAI GigapixelTopazLanczosInstant 4Kwaifu2xpremiere
Хабы: Работа с видео Машинное обучение Искусственный интеллект
+34
44,9k 159
Комментарии 28
Лучшие публикации за сутки

Партнерские материалы

Разместить