Справочник фильтров VirtualDub

    

Random noise remover




Random noise remover v1.07b
Mikhail Rozov
Шумоподавление
rnr.vdf
Описание Идея написания этого фильтра возникла, когда пришлось оцифровывать фильм с телевизора с большим количеством посторонних помех в исходном телевизионном сигнале. Наверное, каждый представляет себе помехи в виде хаотических цветных точек и полосочек, время от времени появляющихся в кадре. При плохом сигнале такие помехи образуют своеобразный "снег". Так вот с этим безобразием, как оказалось, не справляется в полной мере ни один из имеющихся у меня фильтров для VirtualDub (пробовал Temporal cleaner, DNR, и др.). Удавалось добиться только некоторого размытия помех, но никак не их уничтожения. При детальном изучении такого рода помех удалось установить, что они появляются в каждом конкретном месте только в одном кадре, то есть аналогичные точки предыдущего и последующего кадра по отношению к испорченному помехой, как правило, не испорчены.
Отсюда и появилась идея восстанавливать запорченные точки по соседним кадрам. Задаем порог (по каждому цвету отдельно). Сравниваем каждую точку предыдущего кадра с аналогичной точкой последующего кадра. Если разница меньше порога, то считаем, что точки похожи. В этом случае сравниваем точку текущего кадра с аналогичной точкой предыдущего кадра, если разница больше порога, то считаем, что в текущем кадре помеха. Остается только заменить точку текущего кадра средним значением, полученным из точек предыдущего и последующего кадра.
Однако, реализация описанного алгоритма показала, что фильтр принимает за помеху любой мелкий движущийся объект. Попытка избавиться от этого явления заключается в дополнительном анализе предыдущего кадра. Задаем некоторый радиус, и ищем в предыдущем кадре в пределах этого радиуса от текущей точки, которую вышеописанная часть алгоритма в текущем кадре посчитала помехой. Если в предыдущем кадре в данном радиусе находится похожая точка, считаем, что это движение, а не помеха.
Таким образом получился фильтр "Random noise remover".

Следует отметить, что чем больше радиус, тем медленнее работает фильтр и меньше убирает помехи; чем меньше радиус, тем больше появляется артефактов от ложных срабатываний фильтра на движущихся объектах. Установка значений порогов по R, G, B понятна по вышеприведенному алгоритму.
Не рекомендую применять фильтр на сценах с очень быстрым движением или эффектами типа "вспышек" (будет много артефактов). При необходимости такого применения нужно установить "radius" на максимум. Можно применять фильтр совместно с фильтром "conditional" на определенных участках фрагмента (при этом нужно расширить диапазон кадров от начала и конца участка с помехами на 3 кадра).
При использовании фильтра деинтерлейса, фильтр Random Noise Remover следует использовать после него.
В режиме 50 fps фильтр RNR дает более хорошие результаты из-за меньшего различия в соседних кадрах на движущихся объектах.
Фильтр дает задержку на 1 кадр. Настройки

Scene threshold 1, Scene threshold 2 Сравнивается (по каждому цвету отдельно) каждая точка предыдущего кадра с аналогичной точкой последующего кадра. Если разница меньше Scene threshold 1, то считается, что точки похожи. В этом случае сравнивается точка текущего кадра с аналогичной точкой предыдущего кадра, если разница больше Scene threshold 2, то считается, что в текущем кадре возможная помеха.
Radius, Scene threshold (Motion analyzing) Radius задает область поиска в пикселях вокруг анализируемой точки в предыдущем и последующем кадрах. Если в данной области обнаруживается точка разница которой с текущей точкой меньше порога Scene threshold, то считается, что текущая точка не помеха.
DNR mode Встроенный дополнительный отключаемый режим динамического шумопонижения. Алгоритм немного похож на алгоритм фильтра DNR (выравнивает пиксели, если их разница меньше порога), но в отличие от последнего используется информация из трех кадров (в DNR из двух). Порогом DNR служит Scene threshold 2.
Show replaced pixels (Test mode) Режим для настройки параметров фильтра.


Наглядно показывает красным цветом заменяемые точки изображения. Зеленым цветом показываются точки изменяемые при включенном режиме DNR.
Frame range Строка задания диапазона работы фильтра. Диапазон задается интервалами по номерам кадров (кадры нужно при этом просматривать в левом окне программы VirtualDub во избежание возможной путаницы с нумерацией).
Например: 1-5,66-78,103-103,1233-5790,11600-12230
Если нужно указать только один кадр, следует задать через тире одинаковое число (например, 103-103). Максимально допустимое количество интервалов - 30. Не допускается использовать в строке символы, кроме цифр 0-9, запятой и тире (знак минус). Если строка не задана, фильтр работает на всем видео файле. Защита от некорректного ввода информации есть, но она для уменьшения громоздкости алгоритма, минимальна. Поэтому, желательно придерживаться вышеуказанных правил и не превышать максимальное число интервалов (30).
Replace spot perimeter Режим удаления контуров от пятен с размытыми краями. Позволяет обрабатывать пиксели на краях помехи (по периметру) также, как саму помеху. При использовании этого режима следует учитывать, что он усиливает заметность артефактов при ложных срабатываниях фильтра.
Недостатки Фильтр дает артефакты на сценах с быстрым движением и на эффектах типа "вспышек". Чем меньше значение параметра Radius, тем больше появляется артефактов от ложных срабатываний фильтра. При необходимости применения фильтра на таких сюжетах нужно установить Radius на максимум. В таких случаях можно также воспользоваться возможностью задания диапазона работы фильтра.
При больших значениях параметра Radius фильтр работает медленно. Дата обновления: 17.04.2006 22:06
Источник: http://mediatory.ru/article10_article_5_3.phtml

Содержание раздела