Все о сжатии. Авторский проект.
Форум сервера "Все о сжатии" >>
Сайт о сжатии >> Новинки | О сервере | Статистика
Книга "Методы сжатия" >> Без потерь | Изображений | Видео

>> Cтатьи+исходники | Видео | Arctest | Ссылки | Ru.compress
---------------------------------------------------------

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: AviSynth MSU Frame Rate Conversion Filter
СообщениеДобавлено: Вс окт 14, 2007 19:27 
Не в сети

Зарегистрирован: Ср сен 28, 2005 15:41
Сообщения: 11
Откуда: г.Иркутск
Приглашаю к обсуждению недавно опубликованного и ныне свободно доступного фильтра: MSU FRC.
Хочу выразить огромную признательность авторам данного фильтра. Я слежу за подобными фильтрами. Этот фильтр - именно то, что я давно искал.

Предыстория. Ранее я пользовался технологией увеличения количества кадров Trimension DNM (реализованной в Intervideo WinDVD, начиная с версии 6). Надо сказать, что многие мои знакомые, которым я показывал видео с включенным DNM, отмечали эффект присутствия и более комфортный просмотр как любительского видео, так и художественных картин. Эта технология позволяет в реальном времени увеличивать количество кадров, но работает только с видео в формате MPEG1/2. Насколько я понял, там для расчета промежуточных кадров используются вектора движения, уже присутствующие в видеопотоке.

Неудобство использования Trimension DNM заключается в том, что:
1. Видеофрагменты необходимо переводить в формат MPEG2, а это значит тратить дополнительное время на перекодировку и свободное место для перекодированного файла на диске.
2. "Плохо рассчитанные" вектора движения уменьшают эффект присутствия и вносят "хаос" в плавность движений. Такое бывает при просмотре видео с бытовых DVD-рекордеров. Проблема решается перекодировкой Canopus ProCoder'ом: вроде бы в тот же формат MPEG2 с тем же битрейтом, а эффект присутствия повышается в разы, т.к. поиск векторов движения в этом кодировщике реализован более эффективно.

Первое впечатление. Фильтр MSU FRC обрадовал своей скоростью работы, а самое главное:
- работает с любыми, доступными для Avisynth видео-форматами;
- позволяет при недостаточной мощности компьютера предварительно рассчитывать промежуточные кадры, а после сохранения результата в новые видеофайлы (например, при помощи VirtualDub) становится возможным просмотр с эффектом присутствия на более слабых компьютерах - время на расчет промежуточных кадров уже не затрачивается;
- работает в реальном времени, но требуются дополнительные мощности (об этом ниже).

Подробнее. Я скачал и установил себе фильтр для того, чтобы применить его для следующих типов видео:
  1. Видеоролики, снятые с фотоаппаратов. Они, как правило, имеют формат MJPEG, разрешение 320x240 и частоту кадров 15 или 30 в сек.
  2. Художественные фильмы в форматах DivX/XviD. Эти фильмы имеют разрешение вплоть до 720x576.
  3. Видео из коллекции DVD, записанных моими бытовыми DVD-рекордерами (в основном PAL FullD1 720x576@25). Вектора движения у этих записей не всегда отражают истинное движение в кадре, поэтому применение Trimension DNM не всегда дает желаемый результат.
  4. HD-видео (от 720p до 1080p). Есть большое желание смотреть на компьютере с увеличенным количеством кадров. Trimension DNM не позволяет сделать этого.
Мини-тест. Производительность фильтра главным образом зависит от разрешения обрабатываемого видео. Поэтому если отбросить в сторону формат сжатия, а оставить только исходное разрешение, то эти четыре группы видеофайлов можно назвать: 1) низкого, 2) среднего, 3) стандартного и 4) высокого разрешения.

Для того, чтобы выяснить на что можно рассчитывать, применяя данный фильтр, я решил провести небольшой тест производительности фильтра для видео разных разрешений. Тест проводился следующим образом: для реального видео-файла, последовательно составлялись три Avisynth-скрипта: fast, medium, slow (по использованному «пресету» качества). Каждый скрипт запускался до тех пор, пока не обнаруживался максимальный коэффициент увеличения частоты кадров, при котором видео шло без видимых задержек и рывков. Допускались рывки в самом начале воспроизведения длительностью не более 5 секунд. Полученный коэффициент показывает предельную производительность на компьютере конкретной конфигурации. С этим коэффициентом в целом видео идет плавно, но возможны остановки из-за нехватки мощности на сложных местах, поэтому для комфортного просмотра желательно уменьшить полученный в тесте коэффициент хотя бы на единицу, чтобы иметь запас мощности для непредвиденных случаев. В тесте использовались несколько компьютеров: Core2Duo 2,13 ГГц (C2D 2,13); Core2Quad 2,4 ГГц (C2Q 2,4); Core2Duo 3,2 ГГц (C2D 3,2). Была выполнена доработка Avisynth-скрипта для использования многопроцессорности (многоядерности).

Однопоточный вариант AviSynth-скрипта использован из статьи:
Код:
AviSource("video.avi")
ConvertToYV12
#crop(left,top,-right,-bottom) # обрезка кадра до размеров, кратных 16
MSU_FRC(4, "slow")

Многопоточный вариант AviSynth-скрипта был написан с использованием MT 0.7:
Код:
AviSource("video.avi")
ConvertToYV12
# crop(0,8,0,-8) # обрезка кадра до размеров кратных 16 для каждого потока
mt("""MSU_FRC(4, "slow")""",threads=2,splitvertical=true)
Деление нагрузки на ядра процессора происходит путем вертикального деления кадра на части и автономной обработки их фильтром MSU_FRC в отдельных потоках (threads).

Изменялись:
  • коэффициент увеличения числа кадров (>=2);
  • пресет (fast, medium, slow);
  • количество потоков (однопоточный вариант - Single Thread (ST), многопоточный - Multi Thread (MT) - с количеством потоков: 2,3,4 - до максимального количества ядер).
Результаты.

Изображение Изображение

Как можно видеть из таблиц, все три процессора справились с задачей увеличения количества кадров в реальном времени для видеороликов с фотоаппаратов (320х240), показывая от 90 до 135 кадров в секунду при использовании однопоточного варианта скрипта, т.е. на одном ядре. Однако, этот вариант скрипта с пресетом slow показал, что со вторым видеороликом в реальном времени не может справиться ни один из процессоров (исходная частота кадров = 30 fps). Потребовалось перераспределение нагрузки между ядрами процессоров, для чего был использован второй (многопоточный) вариант скрипта.
C DivX-фильмами отлично справились Core2Quad 2,4 и Core2Duo 3,2 (показали 100 fps и более). Core2Due 2,13 показал результат меньше сотни, это хорошо, но все же маловато для комфортного просмотра.
Со стандартным PAL-фильмом с DVD-рекордера смогли справиться теже два процессора, что и с DivX-фильмами, да и то "на троечку" - 50 fps. Core2Due 2,13 с таким разрешением не справился.

Выводы.
  • Фильтр MSU FRC 0.5 вполне можно применить в режиме реального времени для просмотра видео низкого разрешения с эффектом плавности движения, достигая частоты кадров 100 Гц и более.
  • Просмотр видео среднего разрешения (DivX-фильмы) также возможен с работой этого фильтра в реальном времени, но для этого потребуется многопоточный вариант Avisynth-скрипта, дополнительные мощности, в том числе многоядерный процессор (произойдет деление картинки на части, обсчет этих частей производится в разных потоках).
  • Производительность фильтра MSU FRC 0.5 практически прямо пропорциональна тактовой частоте процессора и количеству используемых ядер, при этом составляет 11 для fast, 8 для medium, 6 для slow (МПикс/сек) на одно ядро на частоте процессора 3,2 МГц.
  • Для просмотра фильмов стандартного разрешения (PAL) с частотой 100 Гц в реальном времени необходима производительность 40 МПикс/сек, что вполне может обеспечить Core2Quad 3,2 МГц.
  • Для просмотра фильмов высокого разрешения 1280х720 с частотой 100 Гц в реальном времени с пресетом fast необходима производительность 88 МПикс/сек, для чего потребуется уже восьмиядерный процессор такой же частоты (такие появятся в 2009 году).
  • Для просмотра фильмов высокого разрешения 1920х1280 с частотой 100 Гц в реальном времени с пресетом fast необходима производительность 240 МПикс/сек, для чего потребуется уже 24-ех ядерный процессор такой же частоты (или 4 восьмиядерных).
Вопросы
  1. Интересно, чем именно отличаются пресеты (fast, medium, slow)?
  2. Будет ли многопоточная версия фильтра, т.к. примененное в тесте деление на потоки оставляет на результируемом видео вполне заметные (не всегда) границы между частями кадра, обрабатываемыми на разных ядрах?
Готов ответить на появившиеся вопросы.

_________________
Ведущий проекта [url=http://mag.irk.ru]Тестирование
качества сжатия видеоматериалов
бытовыми DVD рекордерами[/url]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт окт 23, 2007 11:29 
Не в сети

Зарегистрирован: Вт окт 23, 2007 11:18
Сообщения: 1
Спасибо за интерес к нашему фильтру! Приятно удивляет энтузиазм, проявленный при анализе производительности. Что касается ваших вопросов:
1. Ответим чуть позже.
2. Насчет многопоточности мы пока не думали, но ускорением фильтра непременно займемся при выпуске следующей версии.

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

Хотелось бы узнать ваше мнение касательно целесообразности выбора пресетов в фильтре:
1. заметна ли разница в отношении качества для этих режимов?
2. все ли эти режимы полезны для использования или какой-то из них можно убрать?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AviSynth MSU Frame Rate Conversion Filter
СообщениеДобавлено: Вт окт 23, 2007 13:42 
Не в сети

Зарегистрирован: Пт ноя 18, 2005 20:39
Сообщения: 5
Andrey /MAG/ писал(а):
Вопросы
  1. Интересно, чем именно отличаются пресеты (fast, medium, slow)?

Спасибо за проведенный анализ работы фильтра.

Пресеты отличаются качеством находимых моушн-векторов и, как следствие, качеством интерполированных кадров.
А именно:
1) пресет fast использует блоки размера 16x16;
2) пресет medium использует блоки размера 16x16 и 8x8;
2) пресет slow использует блоки размера 16x16 и 8x8, а также постобработку полученных моушн-векторов с использованием траекторий движения блоков.

Таким образом, чем медленнее пресет, тем выше качество.

Присоединяюсь к вопросу Sergio: заметна ли разница в качестве между пресетами ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср окт 24, 2007 19:35 
Не в сети

Зарегистрирован: Ср сен 28, 2005 15:41
Сообщения: 11
Откуда: г.Иркутск
Sergio
Цитата:
Приятно удивляет энтузиазм, проявленный при анализе производительности.
Мне было интересно выяснить, на что способна первая публичная версия фильтра. Можно ли на компьютере добиться того же эффекта, что и на крутых телевизорах с обработкой сигнала на специальных видеопроцессорах, и какой компьютер может для этого понадобиться.

Цитата:
2. Насчет многопоточности мы пока не думали, но ускорением фильтра непременно займемся при выпуске следующей версии.
За многопоточностью будущее. В новостях уже проскакивали заявления о том, что Intel c 2009 года откажется от выпуска одноядерных процессоров для сегмента рынка настольных компьютеров. А в 4-м квартале 2008 года нам обещают 8-ми ядерный Nehalem с поддержкой аналога HT для каждого ядра, что означает возможность обработки 16-ти потоков на одном процессоре одновременно.

Цитата:
мне кажется совсем не оправданным увеличивать частоту кадров более чем 100Гц, наверняка ваш монитор работает на меньшей частоте, да и эффект присутствия от дальнейшего повышения частоты не растет.
Согласен, но лишь частично.
Для комфортного просмотра с эффектом плавного движения нужны следующие составляющие:
1. Видео должно иметь итоговую частоту кадров близкую к 100 в сек. 100 – идеальное значение, 75 – тоже ничего (ведь у технологии DNM применялось утроение частоты, а для PAL-источника это как раз 75).
2. Монитор, позволяющий отображать эти 100 Гц.
Действительно, при увеличении частоты кадров выше 100 Гц разница на глаз уже не заметна (теоретически). Надо бы проверить на профессиональном ЭЛТ-мониторе, который реально умеет отображать свыше 100 Гц. Это я попробую.

Применяемые в момент теста мониторы и правда работали на частоте, которая ниже многих полученных результатов. В тесте участвовали только ЖК-матрицы (60, 75 Гц). Даже были результаты (выделены в таблицах красным), которые при отображении не превышали 150 Гц (проверял статистику в свойствах проигрывателя). Видимо, ограничение видеокарты. Видео в этих случаях шло с замедлением, поэтому эти выделенные цветом результаты не совсем корректны.

Тем не менее, задача стояла – получить максимальную производительность фильтра, чтобы знать максимальное количество кадров выбранного разрешения, которое фильтр в состоянии обработать в реальном времени. В дальнейшем, полученная максимальная частота позволила найти среднюю производительность для каждого пресета фильтра (fast:11, medium:8, slow:6 МПикс/сек).

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

Цитата:
Хотелось бы узнать ваше мнение касательно целесообразности выбора пресетов в фильтре:
1. заметна ли разница в отношении качества для этих режимов?
2. все ли эти режимы полезны для использования или какой-то из них можно убрать?
1. Разница заметна между всеми тремя пресетами, но на глаз разница между fast и medium более ощутима, чем между medium и slow. Собираюсь проверить на профессиональном ЭЛТ-мониторе – обязательно обращу пристальное внимание на разницу в результатах в зависимости от выбираемых пресетов.
2. Думаю, что сейчас, на этапе развития фильтра, надо либо увеличение количества пресетов, либо в дополнение к этим трем пресетам возможность менять внутренние настройки фильтра. Возможно, для каких-то задач может потребоваться увеличение размера блоков или наоборот их уменьшение, снижение точности вычисления векторов движения. Например, для видео низкого разрешения (с фотоаппарата) я бы уменьшил размер блоков для получения более качественной матрицы векторов движения, а вот глубину поиска и точность расчета векторов снизил бы с 1/8 до 1/4 пиксела, если бы это дало прирост в скорости работы.

ADL
Спасибо за информацию о разнице между пресетами.

Цитата:
Присоединяюсь к вопросу Sergio: заметна ли разница в качестве между пресетами ?
Разница заметна (см. ответ выше, п.1). Качество при тестировании стояло на втором месте (все-таки проверялась именно производительность), но сейчас, попробовав еще и MVFlowFps из пакета MVTools, я заметил разницу не только в производительности, но и в получаемом качестве. Например, регулярные структуры (решетки на окнах) лучше выглядят у FRC (перемещаются плавнее), а вот «эффект гало» на границах движущихся объектов менее заметен у MVFlowFps.

_________________
Ведущий проекта [url=http://mag.irk.ru]Тестирование
качества сжатия видеоматериалов
бытовыми DVD рекордерами[/url]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб дек 27, 2008 09:52 
Не в сети

Зарегистрирован: Ср сен 28, 2005 15:41
Сообщения: 11
Откуда: г.Иркутск
Настало время, когда на компьютере стало возможным повышение частоты видео FullHD до 100 кадров/сек.
Вот результаты недавнего теста Core i7: http://forum.ixbt.com/topic.cgi?id=8:21962:140#137

Использовалась библиотека MVTools.

Как идут дела по созданию многопоточной версии MSU FRC?
Процессоры уже появились, теперь дело за софтом. ;)

_________________
Ведущий проекта [url=http://mag.irk.ru]Тестирование
качества сжатия видеоматериалов
бытовыми DVD рекордерами[/url]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб янв 03, 2009 12:35 
Не в сети
Site Admin

Зарегистрирован: Вт сен 28, 2004 13:45
Сообщения: 234
Откуда: Санкт-Петербург
Andrey /MAG/ писал(а):
Как идут дела по созданию многопоточной версии MSU FRC?
Процессоры уже появились, теперь дело за софтом. ;)

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб янв 03, 2009 20:35 
Не в сети

Зарегистрирован: Ср сен 28, 2005 15:41
Сообщения: 11
Откуда: г.Иркутск
Maxim Smirnov
Спасибо за ответ.

Можно ли уже где-то почитать про упоманутый коммерческий продукт повышения плавности видео с поддержкой многопосточности?
Будет ли он доступен обычным пользователям и на каких условиях?

Очень уж интересно.

_________________
Ведущий проекта [url=http://mag.irk.ru]Тестирование
качества сжатия видеоматериалов
бытовыми DVD рекордерами[/url]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт янв 23, 2009 01:31 
Не в сети
Site Admin

Зарегистрирован: Вт сен 28, 2004 13:45
Сообщения: 234
Откуда: Санкт-Петербург
Andrey /MAG/ писал(а):
Можно ли уже где-то почитать про упоманутый коммерческий продукт повышения плавности видео с поддержкой многопосточности?


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

Andrey /MAG/ писал(а):
Будет ли он доступен обычным пользователям и на каких условиях?
Очень уж интересно.


Если все разорятся, с кем мы по этому направлению работаем :)
Не думаю, что с нашими темпами, особенно в текущей экономической ситуации, что-то дойдет до end-user ниши.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron

Поиск по сайту:
Поиск по форуму | Справка | Детальный запрос

Сайт о сжатии >>
  Новинки | О сервере | Статистика

  Книга "Методы сжатия данных" >>
     Универсальные | Изображений | Видео


  Разделы >> Download (статьи+исходники) | Ссылки | Ru.compress | Arctest | Видео | Форум | Старый Форум

  Проекты >> А.Ратушняка | М.Смирнова | В.Юкина | Е.Шелвина | А.Филинского | Д.Шкарина | С.Оснача | Д.Ватолина
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB