Перейти к содержанию

Waifu2x


Uncle Vёder

Рекомендуемые сообщения

я не спец, но думаю можно было бы создать модификацию проги до уровня обработки всего видео , пусть даже это и длилось бы как компиляция дикого кода в несколько часов , даже при мощной пекарне с видюхами и процами i7 extreme

Там даже на CUDA производительность так себе.

Возьмём стандартную серию аниме. 25 минут, 30FPS. Это 45000 кадров.

Допустим у нас есть хорошее железо, на котором чистая производительность алгоритма для апскейла будет 0.5FPS. Получается 90000 секунд только на преобразование. Это 25 часов.

При этом что-то мне подсказывает, что там и 0.5FPS не будет, а более реальный результат - около 0.2, или даже 0.1.

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

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

Не вариант. Всерьёз для обработки видео это можно рассматривать только если производительность удастся дотянуть хотя бы до 1-2FPS.

aWarpSharp

Прикольный фильтр, но делает не совсем то.
Ссылка на комментарий
Поделиться на другие сайты

  • 2 weeks later...

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

1. На процессоре программа работает очень долго, Вам нужно качать версию, которая умеет работать на видеокарте. У меня разница в скорости около 60 раз (на видеокарте обработка одной картинки занимает 4-9 секунд, на процессоре около 4-9 минут, хотя в новой версии разница уменьшилась и составила 3 раза). Вот ссылка на реализацию waifu2x для Windows, которая использует видеокарту, а не процессор, написана на C++ и использует разные оптимизации: http://int.main.jp/files/waifu2x-converter_x64_0813.zip. В данный момент версия 0813. Версия здесь важна, т.к. старые версии не использовали видеокарту и оптимизации. Также лучше качать 64-битную версию, т.к. в 32-битной версии есть шанс, что видеокарта не будет использоваться.

Для тех, кто хочет понять, как я нашёл эту ссылку, даю инструкцию:
1) Открыть проект waifu2x на Гитхабе (https://github.com/nagadomi/waifu2x)
2) Найти и открыть там ссылку "Third-Party" (https://github.com/nagadomi/waifu2x/wiki/Third-Party)
3) Открыть ссылку "List of waifu2x-derived software" (http://kourindrug.sakura.ne.jp/waifu2x.html)
4) Найти на странице "waifu2x-converter-cpp", но там их несколько, нужно выбрать тот, который авторством tanakamura (http://d.hatena.ne.jp/w_o/20150629#1439401739)
5) Крутим страницу вниз, т.к. более новые версии ниже. В данный момент последняя версия — 0813. Соответственно, ссылка на архив будет называться waifu2x-converter_x64_0813.zip

PS. Я не гарантирую, что нет более быстрых реализаций на GPU. На странице http://kourindrug.sakura.ne.jp/waifu2x.html ещё сказано про реализации waifu2x-opt и waifu2x-caffe, но я не стал их сравнивать (хотя всего скорее они хуже). Также в разных реализациях и версиях качество может слегка отличаться, к примеру, в той версии, что я скинул, качество, по-моему, слегка лучше, чем в главной демке waifu2x.

2. Нужно ли использовать удаление шума? Если шума на картинке нет, то удалять его не нужно, т.к. это только испортит картинку. Если шум на картинке есть, то выбрать уровень удаления шума 1 (обычный). Уровень удаление шума 2 (высокий) вообще почти никогда не рекомендуется использовать, т.к. он портит почти все изображения. Улучшение есть только в редких случаях, когда картинка изначально была очень сильно испорчена.

3. Как обработать видео? Обработка видео делается в тупую: вначале Вам нужно извлечь из видео все кадры, потом обработать их программой, а потом снова склеить в видео. Про это написано на главной странице https://github.com/nagadomi/waifu2x. Также там есть какие-то инструкции, но я их не проверял. Свою инструкцию не дам, т.к. не занимался этим. От себя добавлю, что обработка 1 кадра 480p на моём ноутбуке занимает около 4 секунд, 24-рёх таких кадров — 96 секунд, одной 25-минутной серии аниме — 40 часов, но треть этого времени вроде уходит на кодирование png. +Это ноутбук, на компьютере дело было бы в несколько раз быстрее.

Также нужно добавить: если исходник изначально некачественный (размытый или со сбитыми линиями), то waifu2x не сможет улучшить качество в 4 раза. Например, такие исходники часто попадаются в dvd-рипах. В этом случае waifu2x выдаёт даже сильно менее качественную картинку, чем NNEDI3 (по крайней мере если не использовать устранение шума, но если устранять шум, то лучше тогда устранить шум с помощью waifu2x, а апскейл сделать с помощью NNEDI3). Но если картинка нормальная (например, BDRip или арт), waifu2x может без проблем улучшить качество в 4 раза, а в некоторых случаях даже до 10 раз. NNEDI3 конечно на такое не способен, он вообще не способен улучшать качество, он просто делает очень хороший апскейл.

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

4. Как начать обработку с помощью той программы, которую я скинул. Есть несколько способов:

1) Просто запустить install.bat. После этого у Вас в меню "Отправить" на всех файлах будет пункт waifu2x. Это самый простой способ, но он не позволяет настроить ни удаление/неудаление шума, ни коэффициент увеличения картинки, ни выходное имя файла. По умолчанию происходит увеличение картинки в 2 раза, используется режим удаления шума 1 (обычный) и имя файла "mai_" + исходное имя.

2) С помощью ExtendedSendTo. Это скрипт я написал сам. Ссылка на скрипт http://vk-games.com/files/ExtendedSendTo.zip, там же есть инструкция. Скрипт тоже работает с помощью добавления новых пунктов в меню "Отправить", но даёт намного больше возможностей: один из пунктов позволяет полностью вручную настроить все параметры, а 5 других пунктов являются быстрыми ссылками для самых популярных настроек. Обрабатывать можно сразу много файлов. Инструкция по установке скрипта есть в архиве. В скрипте есть русский, английский и частично японский языки. Я, наверное, сейчас напишу автору программы об этом скрипте, возможно, он включит его в программу в будущих версиях.

3) С помощью консоли. Для обработки служит программа waifu2x-converter_x64.exe. Введите waifu2x-converter_x64.exe --help для того, чтобы получить список поддерживаемых параметров. Данный способ позволяет настроить абсолютно всё, но требует от Вас хорошо разбираться в компьютерах. Waifu2x-converter_x64.exe поддерживает следующие параметры:

--model_dir — папка с моделью преобразования. Укажите полный путь до models_rgb
--mode — режим обработки изображения, noise - только устранение шума, scale - только увеличение размера, noise_scale - и то, и то
--scale_ratio — коэффициент увеличения изображения по каждой из сторон
--noise_level — режим устранения шума, 1 - обычный, 2 - агрессивный. Если Вы не хотите устранять шум, то при вводе --mode scale (только увеличение размера) параметр noise_level будет игнорироваться
-i — входной файл
-o — выходной файл
-h — вывести справку
-j — количество запускаемых одновременно потоков. При работе на видеокарте указывать нет смысла
--block_size — размер блока. Дело в том, что если картинка большая, то программа обрабатывает её не всю сразу, а разбивает на блоки, чтобы использовать меньше оперативной памяти. Указывать это значение нет смысла
--disable-gpu — отключить использование видеокарты. Нет смысла

5. Я провёл сравнение waifu2x с технологией апскейла, которую применяют создатели аниме. Все знают, что аниме рисуется не в 1080p, а в 540p (по крайней мере линии, фоны вроде в 720p), после чего идёт апскейл в 1080p. Так вот, выяснилось, что waifu2x может сделать этот апскейл, выдав результат целых в 2 раза лучше по качеству, чем сейчас выдают производители аниме. Для выяснения я взял исходный кадр в 1080p из аниме Tokyo ESP, уменьшил его в 4 раза, потом прогнал его через waifu2x и в итоге у меня получилась картинка в 2 раза лучше качества, чем была изначально. Вот архив со скриншотами, где это наглядно показано: http://vk-games.com/files/compareAnimeUpscale.zip (смотреть архив нужно при разрешении не менее 1980x1080). Хотя в некоторых местах картинка наоборот подпорчена (дверная ручка), но понятное дело, что при производстве аниме изображение персонажей и фонов нужно апскейлить отдельно. В общем, я надеюсь, на алгоритм обратят внимание создатели аниме и будут делать более качественный апскейл. Хотя если честно, у меня при просмотре включён фильтр aWarpSharp из ffdshow, он итак улучшает качество, с этим фильтром уже разницы нет (я проверял), но если переходить на монитор 4K, то разница будет.

6. Если выбирать коэффициент апскейла не являющийся степенью двойки, это не ускорит процесс, т.к. если указать, к примеру, 3, на самом деле он сделает 4 и просто в конце сделает даунскейл.

Ну вот и всё, надеюсь, кому-то помог. В заключение скажу, что я мог где-то наврать, т.к. я не спец по waifu2x, я сам узнал о нём 3 дня назад. Можете задавать вопросы. Также если что, я немного знаю японский, если нужно прочитать что-то конкретное по этой теме по-японски — могу прочитать.
 

Ссылка на комментарий
Поделиться на другие сайты

Все знают, что аниме рисуется не в 1080p, а в 540p (по крайней мере линии, фоны вроде в 720p), после чего идёт апскейл в 1080p.

Насколько я знаю, ряд студий все-таки перешли на true HD в последние годы. Но вообще все от сериала к сериалу зависит. Само по себе качество так себе чаще всего.

Ссылка на комментарий
Поделиться на другие сайты

Я не знаю, кто ты, но жму тебе руку.

Спасибо =)

 

Насколько я знаю, ряд студий все-таки перешли на true HD в последние годы. Но вообще все от сериала к сериалу зависит. Само по себе качество так себе чаще всего.

Да, я знаю, что точно было аниме в настоящем 1080p, но сколько такого аниме, я точно не знаю, т.к. я всегда использую фильтр aWarpSharp (который есть в составе фильтра ffdshow), данный фильтр улучшает качество, из-за чего я не вижу разницу между настоящим 1080p и апскейлом в 1080p. В любом случае, конкретно в аниме Tokyo ESP 2014 года выпуска удалось увеличить качество в 2 раза только благодаря технологиям без каких-либо дополнительных трудовых затрат. В других аниме я сравнение не производил, если кто хочет, может сделать самостоятельно и выложить здесь, мне тоже будет интересно посмотреть.

 

PS. Кто заинтересовался фильтром aWarpSharp — он не работает в 64-битной версии ffdshow, по крайней мере у меня.

PS. При использовании фильтра aWarpSharp, наверное, лучше выбрать глубину 8, а не 16, как по умолчанию, т.к. 8 уже вполне достаточно, чтобы картинка стала качественной, а при 16 деформация сильнее, а зачем нам лишняя деформация?

Изменено пользователем a0000
Ссылка на комментарий
Поделиться на другие сайты

Добавлю по поводу фильтра aWarpSharp: оказалось, чтобы заставить работать 64-битную его версию, нужно было поставить aWarpSharp2 (новая версия aWarpSharp). Кроме того, фильтр aWarpSharp2 даёт лучшее качество, чем aWarpSharp, а также потребляет меньше ресурсов. В связи с этим я решил написать полную инструкцию, как поставить aWarpSharp2 в Ваш плеер:

1. Скачать ffdshow с официального сайта: http://ffdshow-tryout.sourceforge.net/download.php. Если у Вас 64-битный плеер, то нужно качать 64-битную версию, если 32-битный, то 32-битную версию.
2. Добавьте фильтр ffdshow в Ваш плеер. Для этого найтите в настройках Вашего плеера вкладку для добавления внешних фильтров, нажмите кнопку "Системные" (она может называться по-другому, но её суть в том, что Вам не надо выбирать какой-то конкретный файл, а Вам будет выдан список фильтров, которые уже установлены в Вашей системе) и найдите там "ffdshow raw video filter". После добавления нужно поставить этому фильтру максимальный приоритет. После этого Вы сможете в настройках "ffdshow raw video filter" включать, выключать и настраивать встроенные в него фильтры. Никакими другими вещами "ffdshow raw video filter" больше не занимается. Если Вам вдруг нужно, чтобы занимался, то, к примеру, если Вы хотите, чтобы ffdshow декодировал видео, Вы должны добавить в плеер фильтр "ffdshow Video Decoder". Но нам это не надо.
3. Скачать AviSynth с официального сайта http://avisynth.nl/index.php/Main_Page. Если у Вас 32-битный ffdshow, то нужно качать 32-битную версию, если 64-битный, то 64-битную. Если Вам нужна 64-битная версия, Вам нужно вместо AviSynth поставить AviSynth+, ссылка на него там же (PS. В AviSynth+ встроена сразу и 32-битная версия, и 64-битная, что в принципе удобно).
4. Скачать фильтр aWarpSharp2. Если у Вас 32-битный AviSynth, то качать отсюда http://avisynth.nl/index.php/AWarpSharp2(ссылка на скачку там справа страницы). Если 64-битный AviSynth, то найти 64-битную версию aWarpSharp можно на официальной странице списков 64-битных фильтров для AviSynth+: http://avisynth.nl/index.php/AviSynth%2B#AviSynth.2B_x64_plugins (нажмите Ctrl+F для поиска и введите aWarpSharp2).
5. Открыть скачанный архив с aWarpSharp2, достать файл aWarpSharp.dll и скопировать его в папку: если 32-битный AviSynth, то C:\Program Files (x86)\AviSynth\plugins\ или C:\Program Files (x86)\AviSynth+\plugins\, если 64-битный AviSynth, то C:\Program Files (x86)\AviSynth+\plugins64\ или C:\Program Files (x86)\AviSynth+\plugins64+\.
6. Открыть настройки ffdshow, включаем фильтр AviSynth. AviSynth - это такая штука, которая внутри себя позволяет указать любые другие фильтры и даже позволяет программировать. Причём фильтров этих существует бесконечное количество на любой вкус. Вы можете сделать с видео всё, что только пожелаете.
7. Вписать в поле ввода скрипта в фильтре AviSynth следующий текст:

aWarpSharp2 (depth=8)

В данном примере 8 — это глубина. Лично я советую глубину 8, а не 16, как по умолчанию, т.к. 8 уже вполне достаточно, чтобы картинка стала качественной, а при 16 деформация сильнее, а зачем нам лишняя деформация? Тем не менее, если Вы хотите 16, Вы можете поменять это число на 16 либо вообще убрать все параметры и написать просто:

aWarpSharp2 ()

Также если Вы хотите, Вы можете посмотреть документацию всех параметров здесь http://avisynth.nl/index.php/AWarpSharp2/aWarpSharp2
8. Сохраняем, наслаждаемся =) Итог у нас получился такой: мы добавили в плеер фильтр ffdshow, который загружает фильтр AviSynth, который загружает фильтр aWarpSharp2.

PS. Для работы aWarpSharp2 в вашем плеере в настройках должно быть указано пространство цвета на выходе YV12. Если оно не указано, Вам будет выдано предупреждение, что требуется YV12.
PS. Поскольку инструкция свежая, если в будущем я увижу, что лучше было сделать что-то по-другому, я отпишусь здесь. Просто я сам только только решил разобраться в этой теме. Не то, чтобы я раньше не использовал aWarpSharp, но я использовал встроенный в плеер aWarpSharp, а у такого подхода есть много недостатков.
PS. Если кому интересно, зачем мне 64-битная версия плеера — просто мой плеер не поддерживает работу на второй видеокарте в 32-битной версии. Не то, чтобы у меня слабая первая видеокарта, но я хочу заюзать вторую более сильную видеокарту, чтобы применить масштабирование изображения с помощью NNEDI3, а это требует много ресурсов.

PS. Если у Вас в плеере уже есть AviSynth, то Вы можете не устанавливать ffdshow, а воспользоваться встроенным AviSynth.

Изменено пользователем a0000
Ссылка на комментарий
Поделиться на другие сайты

В инструкции установки aWarpSharp2 обновил второй пункт, т.к. он давал неверную информацию + теперь благодаря ему стало понятно, как устроен плеер и как можно сменить декодировщик видео или включить аппаратное ускорение декодирования видео в случае, если в плеере его нет (или есть, но не тот вариант, который нужен).

Ссылка на комментарий
Поделиться на другие сайты

  • 1 month later...

ExtendedSendTo для очень хорошего меню "Отправить" теперь включён в реализацию waifu2x от tanakamura, поэтому скачивать его отдельно больше не нужно. Включение есть и на гитхабе https://github.com/tanakamura/waifu2x-converter-cpp, и на страничке с последними версиями, скомпилированными под винду http://d.hatena.ne.jp/w_o/20150629#1437299014.

Изменено пользователем a0000
Ссылка на комментарий
Поделиться на другие сайты

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...