Автор Тема: DirectShow Deinterlace filter для видеозахвата ретро  (Прочитано 275 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн mutabor

  • Пользователь
  • Сообщений: 311
    • Просмотр профиля
Это фильтр DirectShow, предназначенный для деинтерлейсинга "расчески", получаемой с карт захвата видео. Данный фильтр, помимо встроенных классических алгоритмов деинтерлейсинга, мало пригодных для захвата видео с ретро консолей, также позволяет использовать плагины, позволяющие разбивать "расческу" на 2 отдельных кадра с дублированием строк, аналогично девайсам типа RetroScaler, OSSC и т.д.
Поскольку это стандартный фильтр DirectShow, он должен работать с любым софтом, позволяющим добавить в граф произвольный фильтр. Использование через GraphEdit граф выглядит так:

Настройки:

Плагины:
DI_LineDouble.dll - деинтерлейсинг с разбиением "расчески" на 2 отдельных кадра;
DI_OddOnlyFF.dll, DI_EvenOnlyFF.dll - то же, что и выше, но оставляет только четные или только нечетные строки;
DI_StereoHS.dll - преобразует "расческу" в стереопару, позволяя воспроизводить стереоизображение в играх, где оно поддерживалось (например 3-D Battles of World Runner).
Фильтр работает весьма быстро, позволяя комфортно играть на консолях через видеозахват. По моим прикидкам, задержка не превышает 3 кадров.
Основано на проектах:
https://github.com/JohnAdders/Deinterlace/ - сам фильтр, я доработал и пофиксил баги;
http://www.dscaler.org/ - основа для плагинов.