Интро к Teenage Mutant Ninja Turtles (1987-1990) в 4К
По просьбе captainrob попотел над 1 минутой вступления, используя источник из этой раздачи:
https://rutracker.org/forum/viewtopic.php?t=5524934
На всякий случай сделал еще версию с удвоенным фпс (48), людям разное нравится:
24 ФПС:
48 ФПС
Если хайвмайнду понравится, можно собирать шекели на обработку хоть всего сериала :)
Сравнение:
Подробнее
Teenage Mutant Ninja Turtles (1987) intro enhanced 4K,Film & Animation,,Enjoyed my work? https://www.patreon.com/metracryg
Teenage Mutant Ninja Turtles (1987) intro enhanced 4K (48FPS),Film & Animation,,Enjoyed my work? https://www.patreon.com/metracryg
Teenage Mutant Ninja Turtles,Черепашки-ниндзя,TMNT,Teenage Mutant Ninja Turtles, Подростки Черепашки Мутанты Ниндзя,фэндомы,мультсериалы,видео,video,интро,Metracryg_upscale
Что приятнее смотреть?
24 ФПС (оригинал) | |
|
594 (43.4%) |
48 ФПС | |
|
775 (56.6%) |
Еще на тему
Вы видите изображение, увеличенное в 20 раз - соответственно все детали в 20 раз больше.
И это после удаления шумов, вертикальных помех и т.д.
Нейросеть не дорисует на столе еще три пиццы, чтобы кадр заполнить :)
С таким и генератор случайных чисел справится :)
большей плавности на 48 фпс не заметил, по-прежнему можно разглядеть переходы между отдельными кадрами исходной анимации. или это ютуб пережевал и попортил всё?
Я тоже не особо замечаю, просто для всех выложил на всякий случай.
на обычном ноуте вообще незаметно, а субъективно кажется, что 48 - хуже, так как не оправдывает ожиданий.
Я увеличиваю только кратно 2-м - тогда меньше дерганья.
Тем не менее, пока надо подождать год-другой до появления какой-нибудь Rife-app 9.0
король лев, например, нарисован 12 кадров в секунду и каждый второй кадр - это предыдущий кадр + на 50% прозрачный следующий, за счёт чего экономия и плавность.
fps интерполируются системой нейросетей с учетом движения объектов, цветового потока и прочих штучек-дрючек.
Наложение кадров - это обычный обман, плюс не особо приятный на взгляд: при быстрых движениях сплошное размытие.
В моем случае примерно так: нейросеть берет сразу несколько кадров и анализирует все, что на них происходит. На основе этого генерируются промежуточные кадры. Сцены с резкими изменениями кадра не интерполируются, а то будет каша (все настраивается в программе).
В итоге получается "честная" картинка, но не всем типам видео оно подходит.
Идеально для CG
https://grisk.itch.io/rife-app - пришлось купить, не жалею.
Выдержка из статьи про H.264 с вики:
"Стандарт H.264 / AVC / MPEG-4 Part 10 содержит ряд возможностей, бла-бла-бла. Основные из них:
* Векторы движения, выводящие за границы изображения. В MPEG-2 и предшествовавших ему стандартах векторы движения могли указывать только на пикселы, находящиеся в границах декодированного опорного изображения. Методика экстраполяции за границы изображения, появившаяся как опция в H.263, включена в новый стандарт."
"Разбиение данных — функция, обеспечивающая разделение данных разной важности (например, векторы движения и другая информация предсказания имеет большую значимость для представления видеоконтента) по разным пакетам данных с разными уровнями защиты от ошибок (поддерживается не во всех профилях)."
Пример работы эффекта дропа основных кадров:
Картинка анимирована так, что не всегда там есть 24 разных картинки на 24 кадра.
Зачастую, анимируют каждый второй, или каждый третий. Т.е. по факту там или 12 или 8 кадров, просто они повторяются.
Это полностью сбивает с толку софт, так как он расчитан на то, чтобы интерполировать не поторяющиеся кадры. Отсюды и каша.
Чтобы сделать интерполяцию более менее коректно, нужно вычленять эти вторые или третие кадры и скармливать софтине толкьо 12 или 8 кадров в секунду. Но по факту это невозможно даже если есть время на это, так как анимация на каждый 2 или третий кадр может быть скомбинирована с плавным движением камеры или фона на каждый первый кадр.
2) При удвоении фпс с интерполяцией ломается задумка аниматоров делать резкие движения резкими, в итоге получаем мазню, особенно на переходах между сценами.
3) Ни один интерполятор не сможет полностью восстановить резкие движения. Если в одном кадре сжатый кулак, а в другом уже полностью разжатый, то морфинг вытянет из кулака разжатую руку, а не покажет разжимание пальцев.
Вывод который я уже заебался повторять:
Интерполяция существует для замедления сцен и лучше всего справляется со своей задачей, если сцена итак была плавной. А НЕ ДЛЯ БЛЯДСКОГО УДВОЕНИЯ ФПС НА ВЕСЬ СУРС!
Я же описал чуть более конкретную проблему, которая может ломать работу софта даже если закрыть глаза на 1, 2, и 3. А именно - из за дублей софт может неправильно интерпретировать движения в сцене.
Metracryg говорит, что это в программе учтено. Судя по результату не очень заметно, но возможно без этого было бы еще хуже.
Чисто теоретически, нейросети можно обучить и так, что они будут сводить проблемы 1,2,3 на нет. Проблема в том, что тогда брать за ground truth, у нас нет анифации нарисованной в 48фпс. А нейросети обученные на видео из реальной жизни будут фейлить дико по определению, так как они ожидают плавности в движениях и не ожидают дублей.
По умолчанию он равен 0.250 (25%).
Можно увеличить, и будет меньше искривлений, но для мульта, где все время все дергается, это равнозначно почти полному отсутствию эффекта.
Если бы людей сильно интересовал фпс, я бы этим серьезнее занялся, но оно в основном для CG роликов нормально.
пример почему не надо увеличивать фпс ниже
Как говорят правоверные слуги Омниссии: "Данные получены даже при негативном исходе опыта".
В данном случае я выложил второй вариант просто от нефиг делать :)
Ты же видел мои ролики из Арканума и Фаллаута? Плавное видео отлично выглядит.
А со старыми мультиками нужен другой подход, если вообще нужен.
Отстань ты от этот интерполяции уже.
Ну и как водится при смене вообще любой сцены видео на следующую вклинивается перепидорашивающий промежуточный интерполированный недокадр, который как бы стягивает предыдущий кадр как плёнку со следующего. Дико отвратно выглядит и дико бесит. Хоть бы вручную такие убирал.
Разницы с тем, что я помню из детства и "отреставрированной" версией нет.
Значит, цель достигнута :)
Что конечно не отменяет нужности и качества проделанной работы, спасибо, Metracryg!
Прикинь как будет круто, если то что ты делаешь - подтолкнет индустрию и сильно разовьется и перетечет в конечный продукт и можно будет прямо в браузере в режиме онлайна включить галочку и смотреть видео в 4к любое, даже если оно в оригинале выложено 640x480. Ну может быть, когда видяхи станут еще мощнее.
А вообще много ручной работы у тебя получается? Не хочешь оформить все в какую-то утилиту, чтобы кнопку нажал и видео обработалось от начала до конца? Что можно было другим на реакторе тоже ставить рендериться большие видосы. Ну или на продажу как приложение выставить. И как долго занимает рендер одной минуты примерно? Без дополнительной обработки и с дополнительной обработкой.
Да и вообще в целом, у тебя какая-то своя технология или ты взял готовую нейросеть?
В зависимости от видео, сам автоматический апскейл занимает от 10% до 50% времени. Остальное - сидеть и пилить напильниками :)
Плееры давно научились интерполяцию делать в реальном времени, если железо хорошее, но там очень быстрая интеполяция по паре соседних кадров, а не анализ участка видео и одновременная работа нескольких нейросетей. Такие методы хороши на плавном четком видео вроде CG мультфильмов.
Если несколько (или много) людей скинется, то получится копеечная цена.
На эту минуту у меня ушло несколько часов. Разумеется, 25-минутная серия займет меньше времени (подводные камни найдены, экспериментировать больше не надо).
Думаю, всем будет выгодно скинуться, а не поодиночке заказывать.
25 человек скинется - будет около 1 евро за серию :)
И стрелочки гнуться и прыгают.
И в любом случае, работа проделана просто шикарная! Большое человеческое спасибо!