Задачи с видео

Как повысить качество видео нейросетью

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

Олег Красин··4 мин чтения

Коротко

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

Как повысить качество видео нейросетью

Что добавляется по сравнению с фото

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

Но есть добавка, специфичная для видео. Модель обрабатывает кадры по одному, и придуманные детали в соседних кадрах получаются разными. Возникает мерцание: фактура кожи, узор ткани, листва начинают дрожать и переливаться.

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

Где проявляется сильнее всего

Лица. Черты слегка меняются от кадра к кадру, лицо «дышит».

Мелкие повторяющиеся структуры. Ткань в рубчик, кирпич, листва.

Текст. Надпись в кадре меняет начертание на каждом кадре.

Шум плёнки. Модель принимает зерно за детали и усиливает его по-разному в каждом кадре.

Что помогает

Ищите инструмент с учётом соседних кадров. Часть сервисов обрабатывает кадр с оглядкой на предыдущий, и мерцание заметно снижается. Это главный критерий выбора, а не заявленная кратность увеличения.

Не увеличивайте больше чем вдвое. Чем выше кратность, тем больше придуманного и тем сильнее мерцание.

Уберите шум до апскейла, а не после. Иначе модель усилит зерно.

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

Когда апскейл не поможет

Смазанное движение он не починит: смаз — это отсутствие информации в каждом отдельном кадре.

Сильно пережатую запись с блочными артефактами он тоже вытянет плохо: модель примет артефакты сжатия за содержание.

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

Симптом, причина, решение

Что видитеПочему такЧто делать
Картинка дрожит и переливаетсяКадры обработаны независимо друг от другаВзять инструмент с учётом соседних кадров
Лицо «дышит» от кадра к кадруЧерты дорисовываются заново каждый разСнизить кратность увеличения
Зерно стало сильнееМодель приняла шум за деталиУбрать шум до апскейла, а не после
Текст в кадре мерцаетНадпись перерисовывается на каждом кадреНаложить текст заново поверх результата
На стоп-кадре хорошо, в движении плохоОценка велась по статичному кадруОценивать только в движении и на большом экране

Чего апскейл не чинит

Смаз движения. Это отсутствие информации в каждом отдельном кадре, а не недостаток разрешения.

Блочные артефакты пережатой записи. Модель примет их за содержание и усилит.

Низкую частоту кадров. Это отдельная задача — интерполяция, и решается она другим инструментом.

Полевая деталь

Апскейл видео стоит времени, а не только денег: обработка идёт покадрово, и минута записи считается заметно дольше, чем одно изображение. Планируя работу, закладывайте это отдельной строкой — на объёме время оказывается более жёстким ограничением, чем бюджет.

Что происходит с записью после нескольких перекодировок подряд, измеряет отдельный протокол.

Считать нужно кадры, а не минуты

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

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

Второе: частота кадров умножает счёт напрямую. Запись с удвоенной частотой при той же длительности обойдётся вдвое дороже. Если высокая частота в результате не нужна, снижайте её до апскейла, а не после. Посчитать порядок под свой объём — в калькуляторе бюджета ролика.

Апскейлить или пересобрать

Материал снят, лучшего оригинала нет. Апскейл — единственный вариант. Работайте по правилам выше и принимайте, что часть деталей будет придумана.

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

Оригинал есть, но пережат при пересылке. Ищите исходник. Апскейл пережатой копии усилит артефакты сжатия, а не уберёт их.

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

Порядок работы

  1. Смонтировать. Апскейлить только то, что войдёт в ролик.
  2. Убрать шум и привести частоту кадров к целевой.
  3. Прогнать пробу — короткий, самый сложный фрагмент с лицом или мелкой фактурой.
  4. Посмотреть пробу в движении и на большом экране.
  5. Только после этого запускать всю запись.

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

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

Куда пойдёт результат

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

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

Частые вопросы

Почему после апскейла видео появляется мерцание?
Модель обрабатывает кадры независимо, и придуманные детали в соседних кадрах получаются разными.
Как выбрать инструмент?
По наличию учёта соседних кадров, а не по заявленной кратности увеличения. Именно это снижает мерцание.
Можно ли оценить апскейл по стоп-кадру?
Нет. На статичном кадре результат обычно отличный, а все проблемы видны только в движении.

Олег Красин псевдоним

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

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