Pull to refresh

Comments 187

Mail.ru Vision и Let's Enhance неплохо обрабатывали изображения, но они, к сожалению, не опенсорсные
То ли дело Фотошоп)
И правда, нестыковочка. Но я имел в виду, что их нельзя запустить локально и бесплатно обработать большой объем данных)
бесплатно
То ли дело Фотошоп)
Всем очевидно, что у большинства жителей наших стран уже есть купленный Фотошоп)
Причём последней версии.
На купленой винде
Ну а почему бы и нет? 644 руб/месяц вполне подъёмны для типичного программиста, особенно если нужен он на тот самый единственный месяц чтобы чуть-чуть «поиграться со скриптами»
Я недавно смотрел, уже сильно больше 1000. 20 баксов. Где купить за 644р?
Тут. Тариф «работа с фотографиями» — 644 руб.
Это же без НДС, реальная стоимость — 773 рубля\месяц.
А, ну я смотрел отдельный фотошоп. Так и не понял чем «фото» отличается, кроме того что шрифтов нет и еще кой-чего новомодного.
www.adobe.com/ru/creativecloud/plans.html
Ну и да, это подписка за 11,89 € /мес. включая НДС. Возможно я где-то не разобрался в их политиках лицензирования. Ну либо для разных стран/городов/платформ они показывают разные цены =)

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

Так надо было блокировать карточку. Не 100% что это поможет, в худшем случае может и в дебет загнать, но в интернетах пишут, что помогает.
Если уж говорить о пиратстве, то у того же Adobe есть Premiere, а для него есть Shooter Instant 4K
UFO just landed and posted this here
UFO just landed and posted this here
беру с платных сайтов ч\б сжатые векторные изображения предпросмотра, удаляю вотермарк

Обычно о таком молчат.

Сжал до ширины 500 px (потому что очевидно в данном случае уже был выполнен апскейлинг, нам это не нужно)
Ресайз до 25 дюймов в высоту с 100%-м подавлением шума.
Ресайз до оригинального размера.
Результат - небольшой
image


Даже с исходным разрешением картинка выглядит немного чётче. Однако можно и больше действий вложить.
Filter-denoise
filter-sharpen edges
Дальше как автор статьи писал — ресемплинг с сохранением деталей 2.0 (в этот раз без возврата на исходное)
Результат после ресемплинга
image


Результат с возвратом на исходный размер
image


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

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

Каждый раз, когда будет сложный рисунок, будет эпик фейл.
Осталось сделать нейросеть, которая нарисует 4 сезон в плохом качестве.
UFO just landed and posted this here
а самим ffmpeg не пробовали?
ffmpeg -i input.mp4 -vf scale=3840:-2 \
       -c:v libx264 -preset slow -crf 22 \
       -c:a copy \
       output.mp4

Разница на глаз не отличается отличается от оригинала
Прям захотелось немедленно проверить на первых 4-х сезонах Футурамы, но необходимость пирать Фотошоп остановила от немедленных действий. А что за версию вы использовали?
Это СС 2018. Кажется, фичу с апскейлингом добавили в 2017-м.
Ну во первых, есть триальная версия фотошопа
А во вторых, месячная подписка стоит около 700 рублей — это фотошоп, лайтрум и что-то ещё. Вполне нормальная цена
Справедливости ради, это годовой план. Так что ты всё равно будешь платить целый год, если пользовался месяц.

Если хочется именно на месяц и только фотошоп, то это уже 1932 рубля.
Выбираете годовой план с помесячной оплатой. Платите с виртуальной карточки. Оставляете на ней нулевой баланс. Адоб попытается списать с нее деньги за второй месяц и, после пары неудач, отменит готовую подписку.
Если уже нарушаем договор, то не проще ли спиратить?
А мне просто не нравятся программы (кряки, кейгены и тп), сделанные непонятно кем, которые надо запускать с правами администратора.
Фотошопом и лайтрумом я пользуюсь пару раз в год, разгребая очередную порцию фотографий после поездки какой-нибудь. Проще Адобу заплатить за эти разы.
Он только называется годовым. На самом деле он помесячный, в любое время можно отказаться, и платишь раз в месяц. И стоит он 644 рублей в месяц. Думаю, что почти все себе могут это позволить)
Ты смотри, подзакрутили гайки… пару лет назад один месяц было…
Откуда инфориация про 7 дней? Мне три месяца назад дали 30, и в прошлом году дали 30 дней. В этом году я купил
Раньше был 30 дней, теперь 7. Информация из первых рук, только недавно накатывал пробную версию. Есть конечно вероятность что на разных ОС разный период, на винде я не проверял.
Купили — в смысле оплатили подписку?
Да, на маке мне давали два раза 30 дней. Купил подписку
Ну почему же. Та же waifu2x неплохо снижает количество артефактов и сглаживает ступеньки.
image
UFO just landed and posted this here
Инструмент, встроенный в фотошоп, называется не «Восстановление деталей», а «Сохранение деталей». Входные данные должны содержать максимально качественную картинку, а фотошоп в свою очередь старается сохранить качество, увеличив разрешение. Поэтому да, способ наиболее эффективен с современными мультиками. А предварительное удаление артефактов и лесенок — это работа для других нейросетей.
В том же Photoshop есть инструмент/фильтр Filter Camera Raw. В нем переходим на вкладку «Детализация» (два треугольника) и в графе «Уменьшения шума» двигаем (прежде всего) ползунок «Светимость». На нескольких разных картинках данного видеоряда нужно выбрать оптимальное значение и тогда просто добавить этот фильтр в список действий Action.
А это уже вторая проблема. Сложность вашего скриншота — в большом количестве артефактов MPEG-сжатия. Тут по сути нужен не только апскейл качественный, но и шумодав соответствующий.
А шумодав в итоге еще больше деталей зарежет. Выхода нет!
Шумодав, как и фильтр удаления блочности увеличивают PSNR, качество картинки, проще говоря.
Сработает только для рисованных мультиков. Фотошоп порезал кучу деталей изображения, особенно видно на артефактах кодирования, например нижняя стрелка часов или левая двойка. Да, границы разноцветовых областей стали четче, а однотонные фоны ровнее, но кроме мультиков такое больше нигде не встречается.
Простите, но я не вижу, какие именно детали он отрезал. Вы о том, что картинка стала не так JPG-стой? А мне казалось, это фича. Без тестов на реальных кадрах нельзя сказать, как оно будет на самом деле.
Крутота!
Интересно, а сколько займёт ресэмплинг фильмов? ведь там более сложная картинка в плане количества фигур и цветов…
Присоединяюсь к вопросу. Особенно для фильмов в разрешении 720х576.
Да столько же примерно, сложность фотошоп не слишком интересует, вопрос, хватит ли вам места на диске для такого…
Кстати, в фотошопе из action можно сделать dropplet — это exe файл, который принимает в качестве параметра путь к изображениям и запускает для них нужный action. Можно использовать в .bat файлах, в контекстном меню проводника (send to) или с помощью drag'n'drop.
И обрабатывать по одной картинке, разбирая файл последовательно
Ну да, если для одних сцен подходит одно, для других другое или третье, сделать несколько дропллетов, повесить их на кнопки в directory opus и кусками фильм обработать. Так можно, например, раскрашивать старые фильмы.
А папку картинок он разве не проглотит?

Проглотит. Просто удобнее, не надо 100гиг.

Можно автора попросить прикрепить 10 сек семпл до и после?
Поддерживаю, интересно посмотреть, насколько результат темпорально стабилен.
Спасибо, оч. круто получилось, как мне кажется. Единственное но — у меня, почему-то, возник какой-то странный дискомфорт на кадрах где движется фон.
Подтверждаю! Как-то в глазах зарябило… У меня такое бывало от разогнанных 30->60FPS фильмов иногда. С тех пор не пользуюсь подобным софтом, но прогресс наблюдать интересно.

Вы не покрутили настройки waifu, думаю что удаление шума и профиль UpRGB могут дать результат лучше фотошоповского.


Ещё хотелось бы упомянуть Madshi Video Renderer — отрисовщик совместимый с многими видеоплеерами. С ним нет необходимости в конвертировании видео, только установить и раз покопаться в настройках проигрывателя. Если потянет видеокарта, то даже может нейросеткой NGU очень круто ресайзить. Там у него ещё есть удаление артефактов сжатия на нейросетях, удаление бандинга, да и вообще дофига всяких опций.


извиняюсь за большой скриншот

А может стоит попробовать потренировать waifu2x? И, кстати, как насчёт производительности?
Спасибо. Классная идея. Переделал картинку на рабочий стол в 4К. Стало реально лучше.
Интересно видеокарта уровня 1080 не потянет в реальном времени?
Нужен ускоритель нейросетей в который можно загрузить обученную сеть.
Думаю стартап с платой для улучшения мультиков/аниме который выпустит подобную карточку вполне может и взлететь.
Ведь давно есть SVP (SmoothVideo Project) который делает видео более плавным вставляя кадры. Можно прикрутить нейросеть которая будет еще и качество улучшать. Закинул любимый сериал запустил и через пару дней получил результат.
waifu2x не может улучшить аниме за исключением некоторых случаев. Надо доработать именно под аниме или взять другой продукт, где таких проблем нет. Но вот с артом waifu2x справляется превосходно.

Offtopic, а ещё Windows по умолчанию конвертирует фоновую картинку рабочего стола в JPEG: https://www.reddit.com/r/pcgaming/comments/6kry64/protip_windows_automatically_compresses_wallpaper/


Единственный костыль, который заработал "в лоб" без сторонних программ: ПКМ по .bmp картинке и Set as desktop background в IE (Win7). Десятка вроде даже в PNG научилась, но тоже не всё так просто.

Там всё очень сложно и не понятно. Ставлю png на фон, пару дней вижу png, затем начинаю наблюдать артифакты сжатия jpg, смотрю и в правду уже jpg, ставлю опять png, но через пару дней опять появляется jpg на фоновоц картинке. Причину так и не смог выяснить windows 10.

Есть такой рендер-движок для видеопроигрывателей: 'MadVR' (win only)

В нём есть множество методов для увеличения.
Среди них есть NGU, нейросетевой. Правда его результаты не сильно отличаются от Super-XBR (тоже очень крутой).

Есть два варианта применения:
1. Если есть мощная видеокарта, можно апскейлить в проигрывателе в реальном времени
2. Или разобраться, как можно направить поток от рендера в файл

p.s. для поиска проектов по true-нейросетевому апскейлу гуглить надо super-resolution neural upscale. Например:

А ведь по такому принципу можно и 60 фпс сделать… делаем твиннинг двух картинок, результат улучшаем, собираем всё с правильной скоростью, профит?

UFO just landed and posted this here
Для этих целей уже есть SmoothVideo Project
SVP это делает. В платной версии есть конвертер. И вроде бы он бесплатный под Linux. В Adobe AE вроде тоже что-то недавно (?) прикрутили на эту тему…
Пользовался им. С одной стороны и правда улучшает. С другой стороны артефакты иногда просто дикие. Для примера попробуйте посмотреть заставку «футурамы», особенно момент когда выскакивает название в начале, и буквы формируются. Там лютые косяки алгоритма.
Я и сейчас пользуюсь. А артефакты — ну а что делать?
Не пользоваться :)

Хотя каждый решает за себя, конечно.
Хм а для игр можно что-то подобно сделать?) Чтоб картинку на лету улучшало… хотя бы на 60 фпс
В fhd уже можно на калькуляторе играть в 60fps. Даже на нулевой встройке от интела в 20fps будет.
Если так хочется играть то надо просто купить любую карту, а не придумывать костыли.
Да, а лучше наверное даже 2080. Правда на около-профильных геймингу ресурсах говорят, что даже 1080ti не во всех играх в 4к работает без просадок фпс (карты у меня нет и сам проверить не могу).
Вы с другого аккаунта пишите или вы догадались какое разрешение у пользователя выше?
Если 4к то как бы перед покупкой надо понимать что берешь. 4к гейминг сейчас очень дорог.
У меня, например, 2к + 2080 fe. В самых тяжелых проектах 60-70 кадров есть, но для 4к это были бы неиграбельные 40-50.

Nvidia недавно как раз представила технологию «на лету улучшало», называется dlss.
Конечно догадался. Это не сложно, учитывая заголовок статьи.
Ха, так и есть. Невнимателен был.
неиграбельные 40-50


*Вспомнил детство с дай бог 20 фпс и заплакал...*

P.S. Не хотел вас задеть, просто как-то упустил момент, когда 40 фпс стали неиграбельными =)
Вот да. Еще б сказали, что киношные 24 fps (или телевизионные 25) несмотрибельны.
Стоить учесть, что в киношных 24 ФПС — отличный, честный Motion Blur, а не то мыло, которое в играх. Плюс там нет необходимости прицеливаться в точку с быстрой реакцией.

Ну то есть я очень комфортно могу играть в Героев 3 на 12 фпс и совсем некомфотно — в КС или Пубжик.

И даже при таких условиях при панорамной съемке 24 кадрами (камера неспеша летит и показывает природу) видно строб, особенно в кинотеатре. И этот строб раздражает.
Ну вообще-то да, они не смотрибельные. Посидите хотя бы час за 144/165гц монитором, а потом посмотрите (попробуйте посмотреть) час фильма типа боевика. Вы вероятно вообще не сможете понимать что происходит из-за чуть ли не покадровой картинки.
Хм, мне начало казаться что вы просто иронизируете.
Во времена CRT-мониторов герцовка была выше (100-160 Гц в зависимости от видеорежима). И ничего, нормально боевики смотрелись.

в том-то и дело, что на CRT-мониторах. Они маленькие были.
Проблема в том, что 24 кадра на большом экране приводят к большому угловому смешению изображения между двумя кадрами. И на сценах где двигается весь фон, и достаточно быстро, выглядит это не как движение фона, а как прыжки. Впервые я заметил это на 27 дюймовом экране, а на 49 дюймовом я уже выбирал видеоплеер, который наиболее качественно уплавняет изображение. Даже купил 1 платный.

Nvidia DLSS, правда подход немного другой — рендерить кадр в меньшем разрешении а потом «растягивать» до 4к, но эффект тот же — больше фпс.

Звучит конечно хорошо, но не работает пока кажется нигде
Есть в последней Final Fantasy и 3D Mark.

Есть аппаратные постобработчики сигнала вроде Marseille mCable. Эффект варьируется в зависимости от исходной картинки. Особенно заметно на низких разрешениях.

Для игр не получится. Input Lag будет огромным.
Еще лучше было бы, если бы фотореалистичность картинки улучшало.
Проблема только не в источнике, а в устройстве, что upscale делает для вывода на ретину.
У меня 50 дюймовый 4к телек, я там 720р от 1080р отличу, только если в лоб сравнивать, а ели просто включить фильм с достаточным битрейтом — не факт что отличу.
Яндекс Диск воспроизводит оба видео в 1080p. Чтобы увидеть разницу, нужно скачать ролики и проиграть в своём плеере.
О! =) Спасибо. Теперь вижу разницу. Яндексу двойка за плеер )
Если вы на 15" видите разницу, то на стандартных 24-27 и подавно.
Так у вас 15" не мудрено, я на 27" 3840х2160 разницу вижу
Залогинился только что бы написать — что автор купил дисплей который не предназначен для просмотра видео и\или игры в HD1080 или 4k т.к. его разрешение не кратно 3840, на дисплеях с 3840 будет «гореть» 4 мелких пикселя вместо 1 большого и все будет выглядеть ровно так же как при просмотре на дисплее с разрешением 1080, у автора же «горит» неравное-нечетное число пикселей и вы никогда не доведете картинку до такого же вида как на дисплее с нормальным разрешением. Так что проблема вовсе не в низком качестве Рика и Морти — на нормальном экране ваше рукоблудие выглядит не лучше чем оригинал, а если проводить детальное исследование то окажется хуже…
Потому что у телевизора современного встроенный перекодировщик, который делает апскейл до 4к. Вы сравните 720р и 4к, разница будет, как говорится, на глаз.

Позвольте предложить ещё такой вариант: сеть single-image-super-resolution-1011 из Intel OpenVINO:


Исходная картинка (1920x1080): https://habrastorage.org/webt/z-/wn/yy/z-wnyyf2a33hbporlp-cmsz4t5w.jpeg
Результат (3840x2160): https://habrastorage.org/webt/kx/3t/ng/kx3tngnwfxav7_rjps4tbzn95nc.jpeg


Запуск сети ровно 1 секунда (980ms — 990ms). Ubuntu пишет, CPU: Intel® Core™ i5-4460 CPU @ 3.20GHz × 4, 16GB RAM.


Пример обрабатывает только первый кадр. Если кому понравился результат — можно допилить до записи видео файла с помощью cv::VideoWriter.


import numpy as np
import cv2 as cv
from openvino.inference_engine import IENetwork, IEPlugin

model = 'single-image-super-resolution-1011'
prefix = '/opt/intel/computer_vision_sdk_2018.5.445/deployment_tools/intel_models/' + model + '/FP32/' + model

# Load a plugin.
plugin = IEPlugin('CPU')

# Copy single-image-super-resolution-1011.xml and do global replacement of numbers:
# 1920 -> 3840
# 1080 -> 2160
# 960 -> 1920
# 540 -> 1080
# 480 -> 960
# 270 -> 540

w = 960
h = 540
print(h*4, w*4)

# Load network.
net = IENetwork(model + '.xml', prefix + '.bin')
exec_net = plugin.load(net)

cap = cv.VideoCapture('1080_sample.mp4')
while cv.waitKey(1) != 27:
    hasFrame, frame = cap.read()
    if not hasFrame:
        break
    cv.imwrite('img.jpg', frame)

    frameResized = cv.resize(frame, dsize=(w*4, h*4), interpolation=cv.INTER_CUBIC)
    frame = cv.resize(frame, dsize=(w, h))

    blob = frame.reshape(1, h, w, 3).transpose([0, 3, 1, 2]).astype(np.float32)
    blobResized = frameResized.reshape(1, 4*h, 4*w, 3).transpose([0, 3, 1, 2]).astype(np.float32)

    outputs = exec_net.infer({'0': blob, '1': blobResized})

    out = outputs['129'].reshape(3, 4*h, 4*w).transpose(1, 2, 0)

    cv.imwrite('out.jpg', (np.clip(out, 0, 1) * 255).astype(np.uint8))
    break
В «результат» отчётливо видно огромные ореолы.
Сильно перешарпленный оригинал, стало хуже
Почему JPG, а не PNG?

Все же сколько в гигабайтах? Не думали использовать JPEG 2000 или WebP?


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

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

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

Если эти артефакты создал способ увеличения — да, особенно если это нейронная сеть, потому что нет гарантий в том, что она сохранит пропорции деталей со своими умными алгоритмами. Если вы в кратное количество раз увеличиваете изображение (то есть например 1080p в 2160p) — может только мыло появиться (информации-то новой в кадре не появилось), но никаких артефактов.
Вы хотите сказать, что в развитии кодеков был сделан шаг назад? Ведь переход от сжатия отдельных кадров (mjpeg ) к дельтам от предыдущих кадров в своё время был прогрессом и позволял повысить степень упаковки.

Кажется, вы всё же ошибаетесь. Смотрим описание H.264:
Многокадровое предсказание… Использование сжатых ранее кадров в качестве опорных… Позволяется использование до 32 ссылок на другие кадры… Компенсация движения с переменным размером блока

Давайте еще раз: видео — последовательность кадров. В консьюмерских кодеках (тех, которые вы можете использовать без жутко дорогого железа в профессиональной среде) это отдельные изображения, объединенные в контейнер. Вы процитировали процесс сжатия экнодером видео: он выбирает i-фреймы (ключевые кадры), а потом рисует между ними другие кадры (b- и p- фреймы). Все они в итоге превращаются в последовательность типа (грубо говоря, для примера) I — P — B — B — B — P — B — B — B — I, каждый кадр — отдельное изображение. С видео как динамичным объектом, непрерывным, движущимся — работает только профессиональное ПО и профессиональные кодеки (или вообще их отсутствие в виде несжатых I-фреймов (где нет никаких B- и P- кадров)).
Любое видео раскладывается на отдельные кадры и собирается обратно без каких-либо потерь качества (как визуально, так и по всяким шумомерам а-ля *SNR), потому что оно и есть отдельные кадры, как бы их не сжимали и не распространяли.

Смотрите, в видео 30 фпс будет тридцать отдельных кадров. I, B или P в нашем случае без разницы. Вот типичное распределение кадров в видео x265 с пресетом slower:
x265 [info]: frame I: 6, Avg QP:15.77 kb/s: 60673.84
x265 [info]: frame P: 229, Avg QP:18.37 kb/s: 17777.54
x265 [info]: frame B: 1133, Avg QP:28.17 kb/s: 2385.00
Все 1133+229+6 — отдельные кадры, любой из них можно взять и увеличить, либо сразу все. Если частота кадров и продолжительность остались прежними, никаких странностей не будет.

Ведь переход от сжатия отдельных кадров (mjpeg ) к дельтам от предыдущих кадров в своё время был прогрессом и позволял повысить степень упаковки.
Он и повысил. Благодаря P и B фреймам. Но кадрами они из-за этого быть не перестали. Можете сами проверить — разберите 30fps видео на кадры и соберите обратно тем же ffmpeg с тем же фреймрейтом.
Одна оговорка — смотря как вы его обратно в видео сжимать будете. Потому что кучка PNG это по-определению I-frame sequence.
I — P — B — B — B — P — B — B — B — I, каждый кадр — отдельное изображение
да ладно?

P- и B-кадры — как раз разностные, P — со ссылкой на один предыдущий, B — на несколько (предыдущих и/или последующих). Это после разжатия они становятся отдельными изображениями, а в файле (или потоке) представлены как разности от тех на которые ссылаются.

Поток только с I-кадрами по сути и будет MJPEG (впрочем, правильнее сказать — кодирование в MJPEG использует только I-кадры).

С тем что будет 30 кадров при 30 fps я не спорю.

Любое видео раскладывается на отдельные кадры и собирается обратно без каких-либо потерь качества
да ладно? На ютубе при просмотре летсплеев зачастую на видео куча характерных артефактов сжатия заметна — и еще можно заметить что при движущемся фоне детализация падает по сравнению с моментами неподвижности.
P- и B-кадры — как раз разностные, P — со ссылкой на один предыдущий, B — на несколько (предыдущих и/или последующих). Это после разжатия они становятся отдельными изображениями, а в файле (или потоке) представлены как разности от тех на которые ссылаются.
Смотрите, если вы скормите свое видео ffmpeg-у и скажете разложить на PNG (то есть в i-фреймы) он сразу же посчитает количество кадров и все их превратит в I-фреймы, не делая разницы между тем, что в видео было i, что было b и что — p, потому что отдельные изображения могут быть только i-фреймами. Вы, возможно, путаете\не различаете процесс сжатия видео и разжатия. Ту же самую кучку PNG наложите поверх своего видео в редакторе видео — не будет никакой разницы. Я этим чуть ли не каждый день занимаюсь. Хотя признаюсь — проще использовать даже тот же uncompressed mov в yuv или rgb и не возиться с кучей картинок, их банально импортировать дольше. Если в видео 30 кадров, то между этими кадрами ничего нет. Опять же, не важно какие они фреймы — разобрать эти 30 кадров на 30 картинок и собрать обратно в секундное видео 30 фпс можно без потерь. Не рассуждая сейчас о способах сжатия картинок в видео — там потери будут, если это не i-frame only кодек.
да ладно? На ютубе при просмотре летсплеев зачастую на видео куча характерных артефактов сжатия заметна — и еще можно заметить что при движущемся фоне детализация падает по сравнению с моментами неподвижности.
Это банальное ограничение битрейта. Стоящему неподвижно изображению вполне может хватить 5 мбит\c или сколько там у твича. Чем больше движения в кадре, тем хуже качество — потому что большему количеству изменений в кадре нужно больше битрейта. H264, H265 и VP9 работают с макроблоками — если в каких-то нет движения, то там здорово экономится битрейт. Если движение везде — что-то сэкономить сложно. Но к вопросу конвертации видео-изображения-видео это не имеет отношения.
Смотрите, если вы скормите свое видео ffmpeg-у и скажете разложить на PNG
не вопрос, но причём тут ваше исходное утверждение «в консюмерских кодеках нет связи между кадрами»?
Набор PNG — это как раз несколько нестандартный формат кодирования видео для «консюмерских» кодеков. Никто в здравом уме не использует такое ни для хранения видеофайлов, ни для передачи потока (вот когда станут общедоступны многотерабитные каналы и экза- и петабайтные хранилища, тогда может быть). Даже автор статьи изпользовал jpeg.

все их превратит в I-фреймы, не делая разницы между тем, что в видео было i, что было b и что — p
естественно, после разжатия потока получаются полные изображения. Хоть для сохранения в отдельные файлы, хоть для вывода на экран. Это и есть функция декодера (в противовес функции кодера — выбросить из исходного набора изображений избыточную информацию, оставив необходимый минимум).

Но при этом b и p фреймы декодеру приходится «дорисовывать», основываясь на соседних i-фреймах в контейнере. Если из контейнера взять только голый b- или p-фрейм, никакой ffmpeg не сможет из этого фрейма построить полное изображение.

если в каких-то нет движения, то там здорово экономится битрейт
— и за счёт чего же же оно экономится, по-вашему? За счет чего статичному изображению хватает низкого битрейта? Неужели за счет изменения степени сжатия каждого отдельно взятого изображения, независимого от соседних кадров?

Даже автор статьи изпользовал jpeg.
Очень зря. PNG как бы архивировать не требуется — «использовал» и удалил.
Неужели за счет изменения степени сжатия каждого отдельно взятого изображения, независимого от соседних кадров?
Мне казалось, что мы все это обсуждаем в контексте изначального комментария:
Это конечно интересный подход, но в нем не учитывается информация о связи последовательных кадров, т.е. о движении. Это может быть важным.
Никакой таинственной информации о движении и связях последовательных кадров не нужно для того, чтобы их апскейлить — нужно просто разложить видео на отдельные кадры, раз уж апскейлер работает только с изображениями.

По всему остальному вы правы — воспроизведение и сжатие файлов нуждается во всех этих кадрах. Если без пары b или p еще можно выжить (просто артефакты полезут), то без i уже все совсем плохо будет.

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

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

Но вы-то утверждали «связи нет вообще», причём применительно к кодекам, а не набору полученных изображений.

Согласен, здесь некорректно высказался:
Между ними нет никакой связи

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

Ну вот DNG используют.
Жесть.

нууу… тут можно придраться, что это не хранение и передача «готового продукта», а исходники. Вот, к примеру, фотографы raw хотя и хранят (и то не все), но в последующем повседневном обращении в Сети raw не встретишь.

Интересно, и какую длительность можно записать на одну карту (512G)? Так, говорят, в lossless по 7-8 Мб на кадр — при 60 fps где-то на полчаса получается. В принципе, не так мало.

Но где хранить такое, когда общий футаж фильмов перевалит хотя бы за полдесятка часов? В нынешних реалиях все равно получается — обработал, сжал, исходник выбросил. То есть «см. п. 1».
Писать по 400-500 мбайт/сек на карту памяти?
Не получится даже не столько из-за способностей карты памяти, сколько из-за пропускной способности интерфейса.
UHS-III до 624 МБ/с.
Но для raw видео эта камера использует карты CFast 2.0 (440 MB/s на запись).
Он там дальше на 1ТБ SSD пишет: RAW без сжатия — 35 минут.
Но где хранить такое, когда общий футаж фильмов перевалит хотя бы за полдесятка часов?

Ну, нужна какая-то хранилка на 10++ полок с 10—12 ТБ винтами ;)
нууу… тут можно придраться, что это не хранение и передача «готового продукта», а исходники.
Так в том-то и смысл, что любое сжатие ухудшает качество. Поэтому нужно количество этих сжатий минимизировать и на всех этапах (где это возможно) использовать не сжатый материал.

Интересно, почему не взлетели векторные мультики?

Флэш был популярен достаточно долгое время, когда интернет-каналы были очень слабые. И мультики на нём тоже делали.
ранняя Масяня же
Собственно, изначально для мультиков он и предназначался. ActionScript появился только в пятой версии, в 2000 году.
Вот, да. Я наоборот, ждал появления 3D фильмов, которые рендерятся по принципу игр. А они даже «Масяню» убили, как формат. (
ждал появления 3D фильмов, которые рендерятся по принципу игр
В некотором смысле игры и являются таким фильмом.

Собственно, единственный плюс рендеринга на стороне пользователя — возможность выбора пользователем точки зрения. Игры это и дают. Ну еще они дают нелинейность (вариабельность последовательности нарратива), но это отдельная фича, перпендикулярная выбору ракурса, и не требующая рендеринга у пользователя. Были и «интерактивные фильмы» — именно фильмы (и даже по ТВ, не говоря уже о DVD), и игры, рассказывающие историю строго последовательно — где камеру вертеть можно, а изменить последовательность сюжетных сцен нельзя (большинство шутеров таковы). Хотя в играх, заточенных на пассивное восприятие истории зрителем, чаще всё же эти две фичи совмещены — см, например, What Remains of Edith Finch, Vanishing of Ethan Carter.
Не единственный — рендеринг на стороне пользователя можно выполнять в нужном разрешении и без артефактов сжатия. Та же Масяня во флеше выглядит куда лучше, чем видео в YouTube. И с увеличением разрешения монитора разница всё заметнее.
Для чисто векторных данных — да, экономия значительна.
Для реалистичного же изображения все равно придется тянуть растровые текстуры, причём некоторую часть еще до начала рендеринга, что задержит начало воспроизведения.

Берем сжатое видео.
Выгружаем ведро жипегов.
Апскейлим.
Пережимаем обратно в видео.
Наслаждаемся нормальным качеством.

Берем фотошоп, создаем холст с размерами исходного объекта, прямо в него закидываем перетаскиванием видео, добавляем если нужно эффекты, апскейлим, смотрим прямо в Фотошопе если лень выгонять avi. Если комп мощный даже не тормозит. Я так когда то экранки убитого качества смотрел, с наложением фильтра Shadows|Highlites
habrastorage.org/webt/nf/wz/-h/nfwz-hslcnhsozwxmtqpm5rkpo8.jpeg

Ничего себе. Надо попробовать в фотошоп засунуть видео. Такое мне в голову не приходило. Мсье — шаман.

GIF-ы, обычно, так и делают. Загоняют видео в фотошоп и оттуда экспортируют: там много настроек.
Это бы всё автоматизировать, а еще исключить всю работу с жёстким диском, думаю скорость должна подняться в разы.
Именно этот движок и хочу посоветовать, в виде Video Enhancer (при желании можно найти Video Enhancer 1.9.10.1, иначе Trial рисует водяной знак, в том числе и в Avisynth). Работает довольно быстро, использую его чтобы заливать 1080p видео на Youtube, в 4к там просто тупо больше битрейт.
А разве эффект Detail-preserving Upscale в After Effects не то же самое делает? И не нужно генерировать десятки тысяч изображений — MP4 или любой формат, который принимает AE можно напрямую импортировать в AE.
Он делает не совсем то же самое. В AE содержится первая версия «Сохранения Деталей», которая основана только на математике, а в фотошопе уже версия 2.0. С тестовым кадром ваш метод сделает следующее:
image
Да… Видимо, он все же больше «для общих задач», т.к. с обычным видео справляется достаточно хорошо, но контрастные мультфильмы с четкими линиями — несколько иной случай.
погодите, осталось дождаться объявления астрологов
Количество 4К апскейлов увеличится в 4К :D
Парку а бы и не па? Куча мульт-сериалов которые не против посмотреть в 4к, а и если даже не в 4к, то в фулхд тоже неплохо.
Основная проблема видео — реальные кадры не являются независимыми, а ресамплер обрабатывает их как независимые изображения. Проблема может возникнуть, когда последовательные кадры обрабатываются несогласованно. Дело в том, что информация для восстановления изображений не берётся из ниоткуда. Она представлена в виде закономерностей в самом алгоритме. И вполне возможно, что на последовательных кадрах нейросеть может дорисовать изображения по-разному, что визуально может привести к дрожанию и мерцанию деталей.
Ну к чему приплетать сюда нейросети? Объясните мне! Ведь можно написать обычные не нейросетевые фильтры, которые мультяшную графику такого стиля неплохо заапскейлят. Чтобы написать громкое название для статьи?
Тссс, не спугните :)
Я имею ввиду фильтры, которые написаны руками. Я вот сходу могу предложить построить SDF по разным областям, разделенным edgedetection фильтром, поскейлить SDF bicubic и получить векторное изображение обратно. Гладкое, четкое, с антиалиазингом и прочими фишками. Я про то, что все скейлят мультики, которые и так можно неплохо поскейлить. А фильмы, например, старинные — слабо (я видел статьи и фотки, но почему-то мультики важнее)? А делать стереопары? А тут решение такой задачи с помощью нейросетей, котороая и без нейросетей нормально решается.
Вы упускаете одну вещь. Автор текста ничего не писал. Он искал подходящий инструмент. И, внезапно, им оказался инструмент на основе нейросети.

А так как текст сам по себе имеет ценность (в отличие от 100499 текстов с кликбейтными заголовками), то я бы сказал, что здесь громкое название почти оправдано (я вообще надеялся на какой-нибудь онлайновый сервис, но ладно).
Согласен. 30 в секунду невозможно смотреть (хотя некоторые считают с точностью наоборот).
Из доступных, butterflow показал себя весьма хорошо. Думаю, что на векторной графике он должен сработать отлично. Умеет работать на GPU через OpenCL.
Правда теперь вам понадобится в 2 раза больше места на жестком диске и ещё в несколько раз больше терпения.
Хотя вроде современные телевизоры и сами неплохо справляются с этой задачей.
Можно, но нужно учесть, что в мультфильмах вообще рисуют в 12 fps (особенно в аниме), а потом сохраняют в видеофайл с 25/30 fps.
Конечно, это было немного по-ламерски, что ли…

Зато понятно и доступно.
Попробовал раскукожить арт, оригинал которого тщетно пытался найти ещё лет 10 назад
Арт
image

Разница между Ps и LetEnhance огромна. Если после Ps картинка осталась мыльной, то LetEnhance, похоже, дорисовывает текстуру. (хорошо видно через новую вкладку)
Ps
image

LetEnhance
image

Compare
image
Интересный опыт! Но это закономерно, потому что инструмент фотошопа только старается сохранить существующие детали при масштабировании, а не добавить новых. Загонять в него изначально мыльную картинку — не вариант.

А вот Let's Enhance и правда иногда старается добавить «от себя», и даже классифицировать поверхности (например, к фотографии бородача сервис применит отдельный алгоритм прорисовки волос). Там даже при загрузке есть такая опция, как «Добавление текстур».
UFO just landed and posted this here

Господа, а какой наиболее качественный метод порекомендуете для upscale JPG с фотокамер, с целью печати в большом размере?
Даже если это займет сутки для одного кадра, главное качество :)

UFO just landed and posted this here
Думаю, можно попробовать подобрать такие алгоритмы для фотошопа, которые смогуть удалить эти артефакты, а уже после этого производить апскейл. В любом случае, в фотошоп лучше загонять как можно более качественную картинку, чтобы получить налучший результат.
Может тогда поясните заодно один момент!
Почему на официальных релиза 4к картинка тёмная?
К примеру — скриншот 4k издания «Короля Льва»
image
Как всегда хабр ломает всё кроме текста(сколько лет этому багу уже), если акк не подтверждённый.
Пере выложите, и лучше под спойлер.
Скриншот сломан, но скорей всего дело в HDR.

Вот и у меня такое же чувство что дела в нём.

Пока у вас не пройдут модерацию первые десять комментариев у Разных авторов, так и будет резать html код. Этому багу уже черт знает сколько лет. И никак не поправят.
Под этой публикацией уже можно нормально выкладывать, т.к. модерации тут уже не будет.
А почему собственно сразу видеоролик не увеличить фотошопом, не разбирая его на кадры? PS CC умеет работать с видео как «с картинкой».

я не работаю с видео и не знаю весь зоопарк программ и возможностей в них заложенных, может быть есть какие-то программы/плагины для умного увеличения видео… для умного увеличения фото в свое время было много плагинов…

прошу прошения, если это кто-то уже предложил раньше.

Круто, это же можно кучу всего перегнать в хорошее качество! Можно ходить по каналам с старыми мультфильмами/фильмами и др., и предлагать перегнать им видео в более качественное, за копейку…
Повышение разрешения ещё не означает повышение качества.
Грязь с плёнки, неравномерность экспозиции, дрожание кадров кто будет убирать?
ИИ? Потом ему правда надоест и он решит стереть кожаных ублюдков с лица Земли, которые ни зарплаты, ни выходных не дают.
В принципе считаю, что автор справился «малой кровью».
Но есть же на Хабре замечательная статья-исследование в тему:
habr.com/ru/post/446032
Которую я нашёл в поисках подробностей о Topaz Gigapixel AI, который как раз и есть способ с нейросеткой, правда тоже для картинок.
Зато у него есть полноценный Trial на 30 дней. И судя по тестам, справляется с апскейлом анимации он лучше Photoshop Waifu2x и пр.
Sign up to leave a comment.

Articles