AMV News
Музыкальные аниме клипы
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход  

Видео с эффектом плавности движений (MVTools)

 
Начать новую тему   Ответить на тему    Список форумов AMV News -> Создание AMV
Предыдущая тема :: Следующая тема  
Автор Сообщение
Turbo



Пол: Пол:Муж
Возраст: 42
Администратор
Рега: 15.03.2006
Сообщения: 4303
Откуда: Зеленоград
Страна: Россия

СообщениеДобавлено: Ср Июн 11, 2008 10:12 am    Заголовок сообщения: Видео с эффектом плавности движений (MVTools) Ответить с цитатой

Накопал обсуждение в интернете:
http://forum.ixbt.com/topic.cgi?id=62:12524

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

Алгоритмы повышения плавности движений рассчитывают промежуточные кадры, помещаемые при проигрывании между исходными кадрами, создается эффект повышенной плавности движений. Все становится понятным при взгляде на следующую анимацию:
http://mag.irk.ru/msu_frc/animation.swf

Все началось с ТВ 100 Гц

Существует несколько технологий для увеличения плавности движений при просмотре видео на компьютере. Насколько мне известно, первые удачные результаты в этом направлении сделала фирма Philips с ее технологией Digital Natural Motion (DNM), которую применила в своих 100-герцовых телевизорах. В последствии эта технология была реализована в программном плеере WinDVD под названием Trimension DNM. Умельцы смогли заставить эту технологию работать не только в программном плеере WinDVD, и соответственно получили возможность производить постобработку результатов TrimensionDNM. Инструкция по настройке TrimensionDNM для Media Player Classic приводилась здесь.

Параллельно велись работы и других производителей телевизоров над подобной технологией. У Samsung эта технология называется True Motion. В числе разработчиков этой технологии присутствовала лаборатория MSU. Для компьютеров эта технология воплощена ими в фильтре Frame Rate Converter (MSU FRC). Описание: фильтр и настройки, минитест производительности и отличие от TrimensionDNM.

Исключительно для компьютера

Особо стоит отметить библиотеку функций MVTools с функцией MVFlowFps. Она имеет большое количество настроек, постоянно развивается, что делает ее наиболее перспективной. В разработке последних версий этой библиотеки активное участие принимает Fizick. Инструкция по применению представлена ниже.

Установка

1. Установить AviSynth.
2. Установить плагин MVTools (поместить mvtools.dll в C:\Program Files\AviSynth 2.5\plugins\).
3. Установить AviSynth MT:
3.1. поместить mt.dll в C:\Program Files\AviSynth 2.5\plugins\.
3.2. поместить avisynth.dll в C:\WINDOWS\system32\.
4. Установить пакет K-Lite Codec Pack Full, который содержит ffdshow, а заодно набор кодеков и Media Player Classic.
пункты 3, 3.1 и 3.2 обязательны только для многоядерных и многопроцессорных систем.


Настройка через AVS-скрипт и с буфером кадров Crystal Player

1. Создать AVS-файл рядом с Вашим видеофайлом. Внутри поместить один из кодов.
Для быстрого проигрывания в реальном времени (скрипт "MVTools_fast"):
Код:

DirectShowSource("[имя Вашего видеофайла]")
backward_vec1 = MVAnalyse(isb = true,  blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)
forward_vec1  = MVAnalyse(isb = false, blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)
last.MVFlowFps(backward_vec1,forward_vec1, num=2*FramerateNumerator(last), \
  den=FramerateDenominator(last), mask=0, idx=1)

2. Отрыть этот созданный Вами AVS-файл в Crystal Player'e, сделав в нем настройки: максимальный буфер кадров в 50% (Options - Frame Buffer Size) и автоматическое заполение буфера при опустошении (Options - Speed Troubleshooting - Stop and Buffer).
3. Можно наблюдать за динамикой наполнения и опустошения буфера кадров, если нажать кнопку "S".

Для качественного преобразования частоты кадров предлагается другой скрипт (скрипт "MVTools_slow"):
Код:

DirectShowSource("[имя Вашего видеофайла]")
backward_vec1 = MVAnalyse(isb = true, search=3, overlap=4, dct=2, idx = 1)
forward_vec1  = MVAnalyse(isb = false, search=3, overlap=4, dct=2, idx = 1)
last.MVFlowFps(backward_vec1,forward_vec1, num=2*FramerateNumerator(last), \
  den=FramerateDenominator(last), idx=1)

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

Улучшение производительности скрипта

Там же после ряда тестов выложили версию скрипта, имеющую максимальную производительность на 2-ухядерной системе:

Код:

SetMTMode(5,4)
fps=23.976
multi=3
newFPS=77
DirectShowSource("Transformers.HD.DVD.Remux.1080p-to-720p.x264.DD5.1.DTS.mkv",fps=fps)
num=FramerateNumerator(last)
den=FramerateDenominator(last)
SetMTMode(2,2)
backward_vec1 = MVAnalyse(isb = true,  blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)
forward_vec1  = MVAnalyse(isb = false, blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)
last.MVFlowFps(backward_vec1,forward_vec1, num=multi*num, den=den, mask=0, idx=1)
assumeFPS(newFPS).timeStretch(tempo=100.0*newFPS*den/num/multi)


Открытие файла происходит в режиме SetMTMode 5 с 4-мя потоками, а дальнейшая обработка в режиме SetMTMode 2 c 2-мя потоками: в таком случае достигается максимальная производительность скрипта, загружающая оба ядра процессора на 100%.
fps - частота исходного видео-файла
multi - коэффициент увеличения частоты кадров путем расчета промежуточных кадров
newFPS - частота кадров, до которой необходимо растянуть/сжать клип
Последняя строчка - изменение частоты кадров путем растягивания/сжимания клипа с сохранением всех кадров.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Youtube
Endymion



Пол: Пол:Муж

Модератор
Рега: 26.03.2007
Сообщения: 566

СообщениеДобавлено: Ср Июн 11, 2008 5:38 pm    Заголовок сообщения: Ответить с цитатой

Результат работы медленного скрипта.
Первый кадр:

Второй кадр:

Сгенерированный промежуточный кадр:

Еще один промежуточный кадр:
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Aggressor



Пол: Пол:Муж

Модератор
Рега: 07.03.2007
Сообщения: 2343
Откуда: Киев

СообщениеДобавлено: Ср Июн 11, 2008 6:23 pm    Заголовок сообщения: Ответить с цитатой

Да, это все фигня редкая, потому что для ее работы требуются идеальные условия. Похожий алгоритм давно реализован в АЕ, называется Pixel Motion. Еще есть плагин стороннего производителя под названием Twixtor, который чуть более продвинут, т.к. рассчитывает вектора движения для объектов, а не для пикселей. Но результат все равно настолько убогий, что лично я отказался от его использования. Хороший кадр сам по себе из двух соседних не появится, как ни крути, потому что соседние кадры не несут избыточной информации для формирования промежуточного.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Turbo



Пол: Пол:Муж
Возраст: 42
Администратор
Рега: 15.03.2006
Сообщения: 4303
Откуда: Зеленоград
Страна: Россия

СообщениеДобавлено: Ср Июн 11, 2008 7:25 pm    Заголовок сообщения: Ответить с цитатой

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

По поводу информации. Новой информации нет, но нам надо правильно сыграть на восприятие. Например если мы знаем что передвигается один статичный объект на фоне другого, то сформировать промежуточный кадр можно.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Youtube
Aggressor



Пол: Пол:Муж

Модератор
Рега: 07.03.2007
Сообщения: 2343
Откуда: Киев

СообщениеДобавлено: Ср Июн 11, 2008 8:27 pm    Заголовок сообщения: Ответить с цитатой

Turbo писал(а):
Например если мы знаем что передвигается один статичный объект на фоне другого, то сформировать промежуточный кадр можно.

Да, так можно. Это называется "идеальные условия", о которых я говорил Smile У меня, например, очень красиво получилось сделать медленно падающий снег, снятый неподвижной камерой. Но идеальные условия встречаются в процентах 10 случаев, не больше.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Бармалино



Пол: Пол:Муж

Желанный гость
Рега: 15.01.2008
Сообщения: 526

СообщениеДобавлено: Чт Июн 12, 2008 12:10 pm    Заголовок сообщения: Ответить с цитатой

В редакторе время от времени создаются кадры с двоящимся изображением. А если все куски исходного материала перекодировать с fps 29,970 или 50,000, не будет-ли лучше? Кадр на котором у персонажа две нижних губы займёт на экране меньше времени.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Endymion



Пол: Пол:Муж

Модератор
Рега: 26.03.2007
Сообщения: 566

СообщениеДобавлено: Чт Июн 12, 2008 4:15 pm    Заголовок сообщения: Ответить с цитатой

Бармалино писал(а):
В редакторе время от времени создаются кадры с двоящимся изображением.

Зависит от конкретного случая, но в целом это фича, которая должна отключаться.
Бармалино писал(а):
А если все куски исходного материала перекодировать с fps 29,970 или 50,000, не будет-ли лучше?

Ты говоришь про изменение фпс со сменой скорости воспроизведения или без?
Если "с", то перекодировние для этого не нужно и ничего это не даст абсолютно. Если "без", то это тоже ничего не даст, а сделает только хуже.
Бармалино писал(а):
Кадр на котором у персонажа две нижних губы займёт на экране меньше времени.

Не понял какие такие две нижних губы?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Бармалино



Пол: Пол:Муж

Желанный гость
Рега: 15.01.2008
Сообщения: 526

СообщениеДобавлено: Чт Июн 12, 2008 5:33 pm    Заголовок сообщения: Ответить с цитатой

Цитата:
Не понял какие такие две нижних губы?


Девушка широко открывает рот. Во время движения нижней губы вниз происходит её раздвоение, остальные детали статичные, не двоятся. Сейчас на другом компе, так бы скрин кинул. Вот как у тебя кадр с кривым самолётом, так и вегас "придумывает" недостающие кадры, только не по векторам, а скорее два крайних кадра накладываются как полупрозрачные слои в графредакторе. В проекте fps 29,970, в исходниках по разному, обычно меньше. А ещё скорость воспроизведения фрагмента регулировать нужно, камеру двигать. Вот и возникла после прочтения сабжа идея выравнивать fps в исходниках перекодированием без изменения скорости воспроизведения чтобы она была как в проекте, раз редактор часто некрасивые кадры "придумывает". Всё равно же в x264 исходный материал перекодирую чтобы с кучей форматов не заморачиваться, сложно ли несколько закорючек в скрипте дописать.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Endymion



Пол: Пол:Муж

Модератор
Рега: 26.03.2007
Сообщения: 566

СообщениеДобавлено: Чт Июн 12, 2008 7:40 pm    Заголовок сообщения: Ответить с цитатой

Бармалино
Ага понятно.
Вообще ФПС проекта должен быть такой же как фпс исходника, иначе редактор действительно или делает смешанные кадры, или просто пихает дубликаты (или же наоборот выкидывает кадры, если фпс понижается). Это должно настраиваться. Причем АЕ например может смешивать двумя способами. Аниме у нас 23.976. Очень удобно ускорять его до 24/25 кадров в секунду (стандарт). Зачем нужно 29.97 без ускорения мне лично не очень понятно, но возможно для очень четкой синхры таки надо...

Тогда насчет перекодирования. "дописать несколько закарючек в скрипте" - это использовать вот этот вот MVTools? Судя по результатам тестов, обычные смешанные кадры что делает редактор (или которые получаться в ависинте при стандартном преобразовании фпс) выглядят и то лучше.

Еще такой момент. ИМО если уж и применять ависинт, то не с перекодированием, а с переводом в lossless. Иначе тратится время на это самое кодирование и качество теряется. А с h264/AVC вообще туго, он очень ресурсоемкий.


Последний раз редактировалось: Endymion (Чт Июн 12, 2008 9:42 pm), всего редактировалось 2 раз(а)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Aggressor



Пол: Пол:Муж

Модератор
Рега: 07.03.2007
Сообщения: 2343
Откуда: Киев

СообщениеДобавлено: Чт Июн 12, 2008 7:47 pm    Заголовок сообщения: Ответить с цитатой

В Вегасе фрейм микс включен по умолчанию, в АЕ- отключен.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Бармалино



Пол: Пол:Муж

Желанный гость
Рега: 15.01.2008
Сообщения: 526

СообщениеДобавлено: Пт Июн 13, 2008 10:55 am    Заголовок сообщения: Ответить с цитатой

Тогда насчет перекодирования. "дописать несколько закарючек в скрипте" - это использовать вот этот вот MVTools?

Да нет, я прочно на менкодер подсел, он и для виндовса и для линукса скомпилирован, имеет множество опций и переведённую на русский документацию. А если что-то совсем непонятно, можно попросить "помощи у зала" в линукссообществе. В ответ услышать о лени читать маны, большая часть которых на буржуйском, и наконец, заветные "формулы" Very Happy Из ависимплегуя прихватизировал статистику применения -REF 16, до этого использовал 12 из опасений что где-то плохо воспроизведётся.

Еще такой момент. ИМО если уж и применять ависинт, то не с перекодированием, а с переводом в lossless. Иначе тратится время на это самое кодирование и качество теряется. А с h264/AVC вообще туго, он очень ресурсоемкий.

Ависинт для кодирования не применяю, установлен для совместимости и нехай дальше стоит - выполняет секретную миссию. Есть проблема с перекодированием в лосслесс кодеки. После грубой нарубки и перекодирования материала в x264 получилось больше 2Гб "массы". Сколько материал занял бы в беспотерьных кодеках страшно и считать. Полгига на минуту видео с разрешением 704х400, у большей части материала разрешение больше. Но самое хреновое так это то что вегас не все лослесс кодеки понимает а в кодировщике тоже, скомпилирована поддержка не всех. Найти общий не удалось. Перекомпилировать самому (предварительно изучив вопрос) или искать другой кодировщик довольно нудно. А для перекодирования материала в x264 не нужны максимальные настройки, с теми что применяются в процессе, только виндовс тормозит, линуксовая многозадачность вполне справляется - аниме смотрится нормально.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Бармалино



Пол: Пол:Муж

Желанный гость
Рега: 15.01.2008
Сообщения: 526

СообщениеДобавлено: Пн Июн 16, 2008 11:33 am    Заголовок сообщения: Ответить с цитатой

У видео с fps 23-25 легко получить fps 50 применив цепочку фильтров для деинтерлейсинка с удвоением количества кадров. Если на входе fps 25, то скорость воспроизведения и длительность полученного видео не меняются. Некоторые фильтры для деинтерлейсинка хорошо работают и с прогрессивным видео. Реальный скрипт для такой обработки материала:
Код:
"E:\Program Files\MEncoder264 v1.1.9\mencoder" "y1.avi" -o "y1_w50.avi" -noskip -oac copy -ovc x264 -x264encopts frameref=16:subq=7:bitrate=22000:b_pyramid:weight_b:bframes=4  -vf hqdn3d,tfields=1:mcdeint=3 -ofps 50 -fps 50

Исходник был пожат иквидом и имел много "шевелящейся мути". Для её очистки и улучшения сжатия, в цепочку добавлен фильтр hqdn3d с настройками по умолчанию. Перекодировка 30 секундного исходника 640х480 заняла ~3 минуты.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Endymion



Пол: Пол:Муж

Модератор
Рега: 26.03.2007
Сообщения: 566

СообщениеДобавлено: Вт Июн 17, 2008 2:36 pm    Заголовок сообщения: Ответить с цитатой

Бармалино
Мы отклонаемся от темы.
И да, я понимаю что ты очень любишь mplayer, но пожалуйста, не надо его пихать в каждую тему.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Turbo



Пол: Пол:Муж
Возраст: 42
Администратор
Рега: 15.03.2006
Сообщения: 4303
Откуда: Зеленоград
Страна: Россия

СообщениеДобавлено: Вт Июн 17, 2008 7:35 pm    Заголовок сообщения: Ответить с цитатой

Потестил слегка на Just For a Day реалтайм версию.
1) Почему-то этот плагин порет звку он становится как из унитаза.
2) В некоторых местах где идут резкие уезжания плана вверх и вниз, стало заметно лучше.
3) На медленных полустатичных плаанх вокруг объектов появляется трясущиеся контуры из-за несоврешенства алгоритмов.

Собственно пока первый и третий пункт перекрывают второй. Позже потестю и напишу ещё. Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Youtube
shinetek



Пол: Пол:Муж
Возраст: 45
Прохожий
Рега: 24.03.2008
Сообщения: 31
Откуда: Санкт-Петербург
Страна: Россия

СообщениеДобавлено: Вт Авг 12, 2008 5:46 pm    Заголовок сообщения: Ответить с цитатой

есть еще такая плага для AE
зовется twixtor

там разные клевые алгоритмы замедления
правда как она с анимой будет дружить - непонятно
Cool

_________________
[ ProtoGroup ] [Phoenix RecAll]
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора ICQ Number
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов AMV News -> Создание AMV Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы можете добавлять приложения в этом форуме
Вы можете скачивать файлы в этом форуме