видеокомпьютер

Фильтр Wavelet Noise Reduction

настройка и особенности применения

Фильтр Wavelet Noise Reduction (WNR) реализует относительно новый и перспективный метод: представление сигнала как совокупность элементарных волн - вейвлетов. По сравнению с другими распространенными фильтрами шумоподавления, WNR работает не в пространственном, а частотном представлении изображения. Это делает его весьма эффективным для подготовки материала к дальнейшему сжатию, т.к. в алгоритмах MPEG и MJPEG сигнал представлен подобным образом. Не меньшее значение имеет тот факт, что природа очень многих шумов в аналоговой аппаратуре имеет гармонический характер, а это, в свою очередь, существенно облегчает их фильтрацию именно в частотном представлении. Вот что говорят об этом фильтре разработчики:

WNR может удалять спектральные компоненты шумов в трех различных частотных диапазонах, независимо для осей X,Y и компонент Y, Cr, Cb. Анализируя спектральные составляющие изображения фильтр обрезает их в соответствии с установленными параметрами. В нормальном видеосигнале обычно отсутствуют спектральные компоненты с амплитудой превышающей остальные, это признак шумов, которые WNR способен удалить без добавления заметных артефактов в изображение. В качестве примера предположим, что на изображении есть интерференционная сетка в виде вертикальных полос (такое может быть из-за помех от электросети на телевизионный кабель). В этом случае по горизонтали яркость меняется с определенной частотой, то есть горизонтальное расстояние между двумя полосами всегда одинаково. Все другие изменения яркости вызваны собственно изображением и обычно имеют случайный характер. На общем фоне амплитудно-частотной характеристики будет виден пик, соответствующий помехе от сети, который можно убрать этим фильтром. Другой пример - макроблоки, вызванные некачественным кодированием MPEG. Это квадраты по 4, 8, 16 пикселей, которые также четко представлены своими частотами.

Дополняют эту картину весьма развитые средства настройки и контроля параметров. И несмотря на то, что восемнадцать регулировок чувствительности фильтра немного шокируют, работать с WNR очень легко и удобно.

Управление и настройка параметров WNR

Управление фильтром

Filter enable

включает и отключает фильтр

Show selected
plane

выходное изображение формируется только по выбранной цветовой компоненте

Normal

на выход фильтра подается отфильтрованное изображения

High

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

Diff

на выход фильтра подается разность между изображениями до и после фильтрации
(параметр
Show selected plane игнорируется)

Регулировка чувствительности

Y, Cb, Cr

выбор цветовой компоненты для настройки

X0, Y0
X1, Y1
X2, Y2

Настройка порогов срабатывания фильтра (Threshold)

Xn,Yn обозначают направление анализа и частотный диапазон регулировки. X,Y - гор. и верт. оси изображения, n обозначает частотный диапазон, где 0 соответствует полосе частот с периодом 8...16 пикселей, 1 - 16...32, 2 - 32...64

Разработчики рекомендуют настраивать WNR следующим образом:

  1. Переключить фильтр в режим High и включить предварительный просмотр Show Preview

  2. Установить все слайдеры для всех компонент в "0", после чего один из слайдеров устанавливаем в "1". На экране предварительного просмотра появятся контуры объектов в кадре и (может быть) видимый шум.

  3. Передвигаем слайдер до тех пор, пока шум не исчезнет, но при этом контуры объектов останутся четкими.

  4. Записываем получившееся значение на бумагу и возвращаем слайдер в положение "0"

  5. Повторяем шаги 2-4 для каждого слайдера каждой цветовой компоненты

  6. Устанавливаем значения всех слайдеров для всех компонент в соответствии с записями и переключаем фильтр в режим Normal. Опция Show selected plane должна быть отключена.

Примечание: в WNR присутствует досадный баг - значения Threshold невозможно установить прямым вводом числовых значений в соотв. поле. Параметры устанавливаются только перемещением слайдеров с помощью мыши или стрелок на клавиатуре.

Очень полезной особенностью WNR является возможность непосредственной оценки изменений, внесенных фильтром в исходное изображение (режим Diff). Именно этот режим я рекомендую использовать для настройки фильтра. В отличии от High, который рекомендуют разработчики, режим Diff позволяет гораздо точнее найти грань между исходной картинкой и наложенной на нее в процессе записи-воспроизведения шумами. Предлагаемая мной методика повторяет рекомендованную разработчиками, но с некоторыми изменениями:

  1. Переключить фильтр в режим Diff и включить предварительный просмотр Show Preview

  2. Установить все слайдеры для всех компонент в "0"

  3. Передвигаем выбранный слайдер до появления на экране контуров объектов в кадре. Настраиваем Threshold таким образом, чтобы на фоне шума не было заметно реальных объектов кадра. При этом полезно контролировать выбранные значения в динамике, т.к в движении объекты становятся более заметны.

  4. Записываем получившееся значение на бумагу и возвращаем слайдер в положение "0"

  5. Повторяем шаги 2-4 для каждого слайдера каждой цветовой компоненты

  6. Устанавливаем значения всех слайдеров для всех компонент в соответствии с записями и переключаем фильтр в режим Normal. Опция Show selected plane должна быть отключена.

После установки значений всех порогов не мешает проверить результат контрольным воспроизведением в режиме Diff и в случае необходимости скорректировать настройки.

Примеры работы с фильтром

Приведенные ниже скриншоты сделаны по итогам реальной работы с материалом, где стояла задача не "улучшить" изображение, а подготовить захваченный с аналогового источника (Video 8) клип к дальнейшей работе, включая сжатие по алгоритмам DV и MPEG2. На мой взгляд, они являются не только иллюстрацией возможностей WNR, но и помогают непосредственно увидеть шумы, вносимые аналоговой аппаратурой записи-воспроизведения.

Кадр на входе WNR

 Кадр на выходе WNR

На первый взгляд, эти кадры мало отличаются друг от друга, я считаю это правильным: один из основных принципов применения фильтров - "не навреди". Но с точки зрения алгоритмов сжатия эти кадры отличаются кардинально. Вот что мы получили на самом деле:

 

Y

Cb

Cr

X0

10

10

10

Y0

20

15

10

X1

20

10

5

Y1

20

15

5

X2

20

10

10

Y2

15

15

20

Настройки фильтра подбирались в режиме Diff, из соображений минимальной различимости каких-либо реальных объектов в кадре.

Удаленный из кадра шум (режим Diff)

Выбранные параметры фильтрции

Шумы, которые хорошо видно на последнем кадре, являются довольно трудной задачей практически для всех алгоритмов сжатия. При этом, сам шум часто бывает незаметен на исходном материале и, тем более, на закодированном. Но тем не менее, на него может уходить значительная часть битрейта, что отрицательно сказывается на качестве получаемых результатов.

Следующие кадры демонстрируют возможности WNR по настройке оптимальных параметров фильтрации. Скриншоты сделаны для компоненты яркости (Y) при разных значениях Threshold: слева направо расположены кадры со значениями "1" для всех (Xn,Yn), затем при оптимальных настройках (см. таблицу выше) и завершают ряды кадры с максимальными (255) значениями.

Режим High

В этом режиме довольно сложно найти оптимальные настройки: на экране постоянно присутствуют контуры объектов и на их фоне реальный шум сложно увидеть. Критерием настройки здесь служит четкость границ, в результате изображение после фильтра может оказаться "замыленным"

Режим Diff

В этом режиме, по мере увеличения значений Threshold, на экране сначала проявляется шум, затем на фоне шума становятся видны границы объектов. Настройки, при которых удаляется большинство шумов без потерь для полезного изображения выбрать достаточно просто.

Выбор конкретного режима настройки зависит от желаемого результата. В режиме Diff удобнее добиваться максимального качества при кодировании на высоких битрейтах, режим High может быть более полезен, когда стоит задача снижения битрейта при последующем кодировании.

Системные требования

  • Для работы WNR требуется процессор с поддержкой MMX и SSE.

  • Высота и ширина кадра видео должна быть кратной 8.

  • WNR не предназначен для обработки видео с чересстрочной разверткой (interlace), для работы с такими материалами следует разделять поля с помощью дополнительных фильтров. В VirtualDub для этой цели следует применять встроенный фильтр Deinterlace, установив его перед WNR в режиме Unfold fields и после WNR в режиме Fold fields:

    • deinterlace (mode: unfold)

    • wavelet noise reduction

    • deinterlace (mode: fold)

  • Все Thresholds, которые установлены в "0", не используют ресурсы процессора.

Авторские права

  • WNR разработан программистом с ником thejam, предположительно из Японии
  • Текущая версия WNR version 0.1 распространяется свободно.
  • В данной статье использованы материалы WaveletNoiseReduction Help

Опубликовано TAB 09.08.2004 г. любое использование материалов статьи допускается только с разрешения автора

Hosted by uCoz