DeFreq

Удалитель интерференционных частотных помех

Плагин для Avisynth 2.5
Версия 0.7 от 28 апреля 2006 года
Copyright (C)2004-2006 Александр Г. Балахнин aka Fizick.
http://avisynth.org.ru

DeFreq - это фильтр, который может удалить отдельные мешающие частоты из видео кадров.

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

Пример картинки,показывающей работу фильтра

По вертикали свеху вниз:

1 - входной ТВ источник с помехой (обрезан),
2 - Defreq v.0.6 в режимах show и info  (два окошка поиска),
3 - Очищенный выход,
4 - Разница выход-вход

Техническая информация

Defreq использует метод быстрого преобразования Фурье (FFT) для выделения и удаления частот.

Это пространственный фильтр, и он работает следующим образом:

  1. получаем частотный спектр кадра путем его прямого FFT преобразования;
  2. ищем локальный резкий пик (максимум, экстремум, наиболее интенсивную частоту) в каждом заданном некотором определенном регионе спектра (окне поиска);
  3. удаляем (частично) из спектра частоты этото пика и некоторых подобных по амплитуде соседей в поисковом окне;
  4. дополнительно можем ослабить высокие частоты фильтром Баттерворта (для смягчения и блюра);
  5. получаем выходной кадр путем обратного FFT преобразования очищенного спектра.

Параметры функции DeFreq

Defreq(clip, float "fx", float "fy", float "dx", float "dy", float "sharp", float "fx2", float "fy2", float "dx2", float "dy2", float "sharp2", float "fx3", float "fy3", float "dx3", float "dy3", float "sharp3", float "fx4", float "fy4", float "dx4", float "dy4", float "sharp4", float "cutx", float "cuty", int "plane", int "show", bool "info", bool "measure")

первый параметр - входной клип
fx - X-компонента центральной частоты окна для поиска локального пика (реальное, процент от 0.0 до 100.0, default= 10.0)
fy - Y-компонента центральной частоты окна для поиска локального пика (реальное, процент от -100.0 до 100.0, default= -10.0)
dx - полуширина окна поиска, (реальное, процент, default=1.5).
dy - полувысота окна поиска, (реальное, процент, default=2.0).
sharp - порог остроты, отношения пика к фону (в окне поиска) для очистки (реальное, default=50.0)
fx2 - X-компонента центральной частоты второго окна для поиска локального пика (реальное, процент от 0.0 до 100.0, default= 10.0)
fy2 - Y-компонента центральной частоты второго окна для поиска локального пика (реальное, процент от -100.0 до 100.0, default= -10.0)
dx2 - полуширина второго окна поиска, (реальное, процент, default=1.5).
dy2 - полувысота второго окна поиска, (реальное, процент, default=2.0).
sharp2 - порог отношения пика к фону (во втором окне поиска) для очистки (реальное, default=50.0)
fx3 - X-компонента центральной частоты третьего окна для поиска локального пика (реальное, процент от 0.0 до 100.0, default= 10.0)
fy3 - Y-компонента центральной частоты третьего окна для поиска локального пика (реальное, процент от -100.0 до 100.0, default= -10.0)
dx3 - полуширина третьего окна поиска, (реальное, процент, default=1.5).
dy3 - полувысота третьего окна поиска, (реальное, процент, default=2.0).
sharp3 - порог отношения пика к фону (в третьем окне поиска) для очистки (реальное, по умолчанию=50.0)
fx4 - X-компонента центральной частоты четвертого окна для поиска локального пика (реальное, процент от 0.0 до 100.0, по умолчанию= 10.0)
fy4 - Y-компонента центральной частоты четвертого окна для поиска локального пика (реальное, процент от -100.0 до 100.0, по умолчанию= -10.0)
dx4 - полуширина четвертого окна поиска, (реальное, процент, по умолчанию=1.5).
dy4 - полувысота четвертого окна поиска, (реальное, процент, по умолчанию=2.0).
sharp4 - порог отношения пика к фону (в четвертом окне поиска) для очистки (реальное, по умолчанию=50.0)
cutx - X-компонента граничной частоты для фильтрации высоких частот (реальное, процент от 0.0 до 300.0, по умолчанию = 0, неактивно)
cutx - Y-компонента граничной частоты для фильтрации высоких частот (реальное, процент от 0.0 до 300.0, по умолчанию = 0, неактивно)
plane - номер цветовой плоскости для очистки, 0-Y, 1-U, 2-V (по умолчанию = 0)
show - режим показа частотного спектра и окон поиска (по умолчанию = 0)
0 - обычная обработка;
1 - показать спектр текущего кадра;
2 - показать усредненный по времени спектр;
info - режим показа интформации о найденных пиках на кадре (по умолчанию = false)
measure - выбор наиболее быстрого метода FFT путем измерений скорости (с более долгой стадией инициализации)
вместо простой априорной оценки (по умолчанию=true)

Особенности и ограничения

  1. Работает только в цветовых форматах YV12 и YUY2.
  2. Прямо работает с прогрессивными клипами.
    Для чересстрочных видеоклипов, очевидно, вы можете использовать разделение на поля SeparateFields и т.д.
  3. Тестирован с Avisynth 2.5.5-2.5.6.
  4. Defreq использует внешнюю быструю библиотеку FFTW версии 3 (http://www.fftw.org) как Windows бинарную DLL (скомпилированную gcc под MinGW by Alessio Massaro), которая поодерживает нити и AMD K7 (3dNow!) в добавок к SSE/SSE2. Она может быть загружена с ftp://ftp.fftw.org/pub/fftw/fftw3win32mingw.zip
    Для использования DeFreq, вы ДОЛЖНЫ поместить FFTW3.DLL файл из уазанного пакета в некоторый каталог в путях (например, системную папку C:\WINNT\SYSTEM32). Defreq НЕ работает без этого!
  5. Не очень быстрый, пока без ассемблерной оптимизации.
  6. С версии 0.4, горизонтальная частота - в относительных единицах ширины картины спектра (примерно половины ширины плоскости), от 0 до 100 %, а вертикальная частота - в относительных единицах полувысоты картины спектра (полувысоты плоскости), от -100 до 100%.
  7. С версии 0.4, величины частоты fx,fy, и т.п. являются независящими от обрезки кадра, но должны масштабироваться при изменения масштаба (ресайза)!

Простой пример скрипта

Avisource("input.avi")
loadplugin("defreq.dll")
DeFreq(fx=30,fy=-40)

Внимание! Это только образец синтаксиса вызова. В отличие о большинства других фильтров, НЕ существует хороших настроек параметров DeFreq для общего использования!
Он не будет очищать ничего (но замедлит обработку), если его настройки не точно соответствуют вашей картинке.

Как использовать

Вы должны временно добавить параметры show and info, визульно анализировать картину частотного спектра,
и подобрать параметры fx,fy так, чтобы поместить квадратные поисковые окна на локальные пики спектра (яркие пятна), отвечающие интерференционным частотам помех.

Сначала посмотрите на генерируемые образцы частотных полос в правом верхем углу, и попробуйте сделать их похожими на узор интерференционных помех на Вашем видео (правая нижняя область). Наклон образцовых полос зависит от отношения fy/fx, а шаг между этими полосами зависит от абсолютных значений fx,fy (подсказка - вы можете использовать некоторый параметр скрипта AviSynth для сохранения отношения fy/fx). 

Затем посмотрите на картину спектра, и уточните значения этих параметров.
Малые fx лежат у левого края картины спектра, а большие fx (до 100) - у правого края.
С версии 0.6 большие отрицательные fy лежат у нижнего края картины спектра, а большие положительные fy - у верхнего края. Малые fy лежат по середине высоты.

Установите fx=0 для строго горизонтальных частотных полос, установите fy=0 для строго вертикальных .

Режим show=2 делает пики частотного спектра более заметными путем временного усреднения спектра мощности по кадрам. Просто проиграйте Ваш видео клип (предпочтительно динамичные сцены), и подстройте fx,fy.

Вы можете настроить другие параметры, чтобы установить порог по остроте, изменить цветовую плоскость,
добавить дополнительные окна поиска, добавить высокочастотную фильтрацию. Подсказка - слово "sharp" становится в ВЕРХНЕМ регистре, если зарегистрирован пик с амплитудой выше порога.

Дополнительная информация

Обсуждение фильтра ведется в форуме по AviSynth: http://forum.doom9.org/showthread.php?s=&threadid=82978

Или обращайтесь на русскоязычный форум, например ветка "Экстремальный Ависинт" http://forum.ixbt.com/topic.cgi?id=29:9331

Существуют также подобные новые фильтры FanFilter и FQuiver (разработчик vcmohan).

Лицензия

Данная программа представляет собой свободно распространяемый
программный продукт; вы можете распространять ее далее и\или изменять
на условиях Стандартной публичной лицензии GNU версии номер 2, опубликованной
"Free Software Foundation".

Распространяя данный программный продукт, мы надеемся что он окажется
полезным, но НЕ ДАЕМ НИКАКИХ ГАРАНТИЙ, даже подразумеваемой гарантии
ПРИГОДНОСТИ К КУПЛЕ-ПРОДАЖЕ или ИСПОЛЬЗОВАНИЮ В КОНКРЕТНЫХ ЦЕЛЯХ
(см. "Стандартную публичную лицензию GNU").
Вместе с данной программой вы должны были получить копию "Стандартной
публичной лицензии GNU"; если это не так, напишите в Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

(Суть: Вы можете модифицировать и программу и ее исходный код,
но все модификации должны распространяться на таких же условиях, с исходными кодами, свободно).
Документация распространяется на условиях лицензии CreativeCommons BY-SA 3.0 license.

С благодарностью приму некоторую финансовую поддержку.

Изменения версий:

Download DeFreq version 0.6

Download DeFreq version 0.7

Возврат на главную страницу