СПОСОБ И УСТРОЙСТВО ФИЛЬТРОВАНИЯ ШУМА ВИДЕОСИГНАЛОВ
METHOD AND DEVICE OF NOISE FILTERING IN VIDEO SIGNALS

Заявляемое изобретение относится к области обработки видеоинформации, и, в частности, к способам пространственно-временного устранения шумов в видеопоследовательностях.
В сильно сжатых видеопоследовательностях наблюдаются компрессионные артефакты, такие как блочный шум и «москитный» шум. Для цифрового телевидения критической проблемой является способность подавления артефактов эффективно и в режиме реального времени.
Датчики современных цифровых фотокамер (DSC) и видеокамер демонстрируют шумовые эффекты в процессе захвата фото- или видеоизображения. В случае матрицы RGB фильтр Байера привносит дополнительный шум. Известные из уровня техники способы фильтрования для DSC позволяют значительно повысить качество изображения. В случае видеокамеры обязательным требованием является функционирование способа в режиме реального времени. Другая проблема заключается в том, что для стабильного устранения шумов в видеопоследовательности необходимо учитывать информацию, содержащуюся в последовательно идущих кадрах. Обычно, это налагает высокие требования на оборудование, например требование наличия нескольких буферов кадров (фреймов). Известные технические решения в области устранения видеошумов использовали оценку движения для нахождения соответствующих блоков в соседних кадрах (фреймах).
Недавно разработанный фильтр нелокальных средних значений (NL-means), описанный в Европейской патентной заявке №1749278 [1], способен обойтись без выполнения процедуры оценки движения. Оригинальный способ NL-means заменяет зашумленный пиксель взвешенным средним числом пикселей с ближайшим окружением. Преимущество этого фильтра заключается в его способности обходиться без оценки движения в процессе фильтрования видео [4]. Получая тот же результат, что и другие известные решения [1], [4], этот способ требует значительных вычислительных ресурсов. Способ имеет ряд недостатков. В области с текстурой фильтр привносит некоторое размытие изображения, в то время как для плоских областей он работает хорошо. Поэтому для областей с текстурой необходима некоторая адаптация фильтра. Также некоторые проблемы возникают в процессе фильтрования видео с быстрым движением. В таких случаях расположенные по соседству элементы в смежных кадрах имеют различное содержание из-за движения. В результате фильтрованное изображение может быть размыто и может иметь призрачные (ghosting) артефакты. Требуется некоторая модификация способа для ускорения алгоритма и для более эффективной обработки областей с быстрым движением.
В техническом решении, предложенном в патентной заявке США No.20070133895
[2], выполняют анализ дисперсии области. Этот способ определяет области с высокими частотами и области с низкими частотами. Для областей с низкими частотами используют обычный локальный линейный среднеквадратичный фильтр (LLMMSE). Для областей с высокой частотой используют фильтр, основанный на фильтрации изображения с помощью образов (то есть NL-means). Таким образом, указанный способ использует один из двух режимов в зависимости от характера изображения. Это обеспечивает лучшее сохранение текстуры и устраняет отмеченные в ранее упомянутом способе недостатки NL-means [1]. Однако описанный способ предназначен для фильтрования только изображений, и его применение к чередующимся кадрам видеопоследовательности может породить эффект мерцания, поскольку в нем не учитывается временной характер видеосигнала.
Наиболее близким к заявляемому изобретению является техническое решение, описанное в докладе М.Mahmoudi and G.Sapiro "Fast Image and Video Denoising via Non-Local Means of Similar Neighborhoods", IEEE Signal Processing Letters, Dec.2005, Volume: 12, Issue: 12, page(s): 839-842 [3] и касающееся способа предварительной классификации блоков изображения и уменьшения влияния менее относящихся к делу устранения шумов областей данного пикселя. Основная идея, изложенная в докладе, заключается в ускорении первоначального алгоритма NL-means [1] путем введения фильтров, которые удаляют не относящиеся к делу окрестности из взвешенного усреднения. Эти фильтры основаны на локальных усредненных значениях градаций серого и градиентах, на предварительной классификации окружения и, таким образом, на сведении первоначальной квадратурной сложности к линейной и на снижении влияния менее относящихся к делу областей на снижение шума в данном пикселе. Упомянутый доклад выбран в качестве прототипа заявляемого изобретения.
К недостаткам прототипа [3] следует отнести следующее. Способ-прототип определяет, является ли данный пиксель надежным или нет путем установления факта того, что его параметры, а именно средние значения градации серого и градиенты, лежат в предопределенных диапазонах, т.е. параметры должны быть выше или ниже предопределенных порогов. Пороги не выбираются адаптивно, и для различных уровней шума необходимо вручную установить конкретные значения порогов. Методология установки порогов не ясна из источника [3].
Задача, на решение которой направлено заявляемое изобретение, заключается в создании устройства и способа быстрого фильтрования шумов видеосигналов с устойчивостью к движению, которые обеспечивали бы высокое качество шумоподавления без привнесения искажений (артефактов).
Технический результат достигается за счет разработки способа и устройства для качественного ускоренного фильтрования шумов видеосигналов, при этом способ предусматривает повышенную устойчивость к движению и основан на определении локальной структуры и на нелокальном усреднении в соответствии с определенной структурой кадра и с использованием данных о текущем кадре и соседних кадрах и заключается в выполнении следующих операций:
с
- определяют локальную структуру изображения путем последовательного свертывания предопределенных шаблонов с соседними пикселями и путем отбора образцового шаблона RР, который выдает наименьшую ошибку после свертывания,
- выполняют пространственно-временную фильтрацию с помощью взвешенного усреднения значений пикселя в поисковом окне от опорного кадра, причем результат пространственно-временной фильтрации вычисляют следующим образом
r
r
r
r
r
c
r
r
где pix(x,y,t) обозначает опорный пиксель от опорного кадра t=t+t с координатами x и y,
индекс р изменяется от  до  в направлении X,
индекс s изменяется от  до  в направлении Y,
индекс t изменяется от  до  в области времени,
Т - число опорных кадров, вовлеченных в процесс фильтрования,
f
r
r
r
r
w - вес опорного пикселя pix(x,y,t),
нормирующий множитель вычисляют как ;
f
- вес w каждого опорного пикселя определяют следующим образом
c
r
если образцовый шаблон RP текущего пикселя совпадает с образцовым шаблоном опорного пикселя RP, то опорный пиксель считают корректным. В противном случае, когда образцовые шаблоны текущего пикселя и опорного пикселя разные, считают, что опорный пиксель является некорректным и исключают его из процесса удаления шумов.
- вес корректного опорного пикселя определяют как
f
f
n
f
f
f
n
f
f
n
где σ=f(k,σ) - параметр гауссиана для управления степенью фильтрования шума, при этом более высокие значения σ соответствуют более высокой степени фильтрования, а более низкие значения σ соответствуют более низкой степени фильтрования, функция f(k,σ) описывает зависимость σ от двух параметров, а именно от коэффициента k фильтрации, который регулирует степень фильтрования, и от коэффициента σ оценки шума,
- вес корректного опорного пикселя вычисляют, исходя из степени подобия между окрестностью пикселя в текущем кадре и опорной окрестностью в опорных кадрах, при этом функция d() для сравнения окрестности пикселя имеет следующий вид
,
c
c
c
c
c
с
с
где pix(x, y, t) означает текущий пиксель из текущего кадра t с координатами x и y,
r
r
r
r
r
c
r
r
pix(x,y,t) означает опорный пиксель из опорного кадра t=t+t с координатами x и y,
индекс i изменяется от  до  в направлении X,
индекс j изменяется от  до  в направлении Y,
r
σ - параметр гауссиана для управления весом пикселя относительно его положения по отношению к текущему положению пикселя, при этом внешние пиксели, расположенные в отдалении от центрального пикселя, обладают меньшим весом, чем внутренние пиксели, расположенные вблизи центрального пикселя и имеющие более высокий вес, при этом нормирующий множитель вычисляют как .
f
n
f
n
f
n
При реализации заявляемого способа имеется возможность выбора оптимальных стратегий, например в некоторых случаях целесообразно принимать во внимание только Т последующих кадров, а в качестве поискового окна целесообразно использовать только область текущего кадра. Кроме того, в ряде случаев предпочтительно заменять значение текущего пикселя взвешенной суммой значений текущего пикселя и опорных пикселей из опорных кадров, а функцию f(k,σ) определять как f(k,σ)=k·(σ+1).
Что касается устройства для реализации способа, то оно состоит (см. Фиг.1) из блока 110 памяти, блока 120 оценки уровня шумов, в который входят модуль 121 оценки уровня шумов и регистр 122, блока 130 определения характеристик изображения, в который входят модуль 131 размытия, модуль 133 определения локальной структуры изображения и модули 132, 134 и 135 памяти, а также из блока 140 фильтрования, в который входят модуль 141 вычисления веса фильтра, модуль 142 применения фильтрования и модуль 143 памяти, при этом выход блока 110 подключен параллельно к входу блока 120 оценки уровня шумов, к входу блока 130 определения характеристик изображения и входу блока 140 фильтрования, при этом вход блока 120 оценки уровня шумов совпадает с входом модуля 121 оценки уровня шумов, выход которого подключен к входу модуля 122 регистра, выход которого, в свою очередь, подключен к первому входу блока 140 фильтрования; вход блока 130 определения характеристик изображения совпадает с входом модуля 131 размытия, выход которого подключен к входу модуля 132 памяти, выход которого подключен к первому входу модуля 133 определения локальной структуры изображения, при этом второй вход модуля 133 подключен к выходу модуля 134 памяти, а выход модуля 133 подключен к входу модуля 135 памяти; выход блока 130 определения характеристик изображения подключен ко второму входу блока 140 фильтрования, при этом оба входа блока 140 фильтрования совпадают с двумя входами модуля 141 вычисления веса фильтра, выход которого подключен к входу модуля 142 применения фильтрования, а выход модуля 142 применения фильтрования подключен к входу модуля 143 памяти.
Заявляемое изобретение ускоряет и улучшает качество фильтрации обычного NL-mean алгоритма [1] путем предварительной классификации блоков изображений и уменьшения влияния менее относящихся к делу областей в процессе устранения шумов в данном пикселе. Предварительное отсеивание ненадежных пикселей устраняет не относящиеся к делу окрестности из взвешенного усреднения, что приводит к лучшей фильтрации. В то же время, предварительное отсеивание ненадежных пикселей резко снижает требования к вычислительным ресурсам, позволяя сокращать продолжительность обработки данных на порядок. В отличие от прототипа [3], предварительная классификация блоков изображения осуществляется посредством свертывания участков изображения согласно предопределенными шаблонам (трафаретам), которые моделируют локальную структуру изображения. Шаблон, который обеспечивает наименьшую ошибку в процессе свертывания, принимается в качестве опорного шаблона, наилучшим образом описывающего структуру блока изображения. Заявляемое изобретение, в отличие от прототипа [3], не применяет никаких пороговых значений для предварительной классификации блоков изображения, поэтому заявляемый фильтр является более устойчивым к различным уровням шума, и его удобнее использовать из-за упрощенной настройки параметров фильтра.
Наряду с эффективной обработкой изображений и видеопоследовательностей заявляемый способ отличается тем, что не порождает артефактов. Он показывает хорошие результаты как при видеосъемке замедленных процессов, так и при съемке спортивных состязаний с быстрым движением. На Фиг.7 показан результат фильтрации видео с быстрым движением на основе известных способов [1] и [4] (Фиг.7.2) и с использованием заявляемого способа (Фиг.7.3). Как видно из Фиг.7.2, фильтр-прототип порождает «призрачные» артефакты около плеч теннисиста. Заявляемый способ лишен этого недостатка и функционирует в 9,75 раза быстрее.
Далее предпочтительный вариант реализации заявляемого способа излагается более подробно с привлечением графических материалов. Следует отметить, что этот вариант предлагается лишь в качестве иллюстрации, и возможны различные модификации и дополнения, не выходящие за пределы объема охраны согласно формуле изобретения.
Фиг.1. Блок-схема аппарата для быстрого фильтрования шума видеосигнала согласно изобретению.
Фиг.2. Блок-схема пошагового выполнения способа быстрого фильтрования шума видеосигнала согласно изобретению.
Фиг.3. Блок-схема способа для определения локальной структуры.
Фиг.4. Принцип фильтрования известными способами.
Фиг.5. Пример шаблонов, используемых для определения локальной структуры.
Фиг.6. Новый принцип фильтрования.
Фиг.7.1. - Зашумленный видеокадр, 7.2. - Результат фильтрования известным способом [1], 7.3. - Результат фильтрования по заявляемому изобретению.
Фиг.8.1. - Видеокадр с артефактами сжатия, 8.2. - Результат фильтрования известным способом [1], 8.3. - Результат фильтрования по заявляемому изобретению.
Фиг.9.1. - Зашумленное фотоизображение, 9.2. - Результат фильтрования известным способом [1], 9.3. - Результат фильтрования по заявляемому изобретению.
Фиг.1 представляет собой блок-схему, иллюстрирующую структуру устройства 100 для быстрого фильтрования шума видеосигналов, устойчивого к движению, согласно заявляемому изобретению. Устройство 100 включает в себя блок 110 памяти, блок 120 оценки шума, блок 130 определения характеристик изображения, блок 140 фильтрования.
Блок памяти 110 используют для хранения (записи) входных данных. Входные данные могут состоять из одного опорного кадра (или одного фотоизображения) или нескольких опорных видеокадров. Здесь и далее опорный кадр определяется как кадр (фрейм) видеопоследовательности, который используется для фильтрования текущего кадра. В предпочтительном варианте реализации заявляемого изобретения опорные кадры включают в себя текущий кадр и несколько смежных кадров. NumFrm означает число опорных кадров, вовлеченных в процесс фильтрования. Однако представляется возможным использовать только текущий кадр для фильтрования шума. Этот способ применяется для единичного изображения или когда необходимо ограничить продолжительность обработки. Число опорных кадров (NumFrm) может быть задано заранее или выбрано адаптивным способом при фильтровании видео. Число опорных кадров имеет сильное влияние на качество фильтрации. Чем больше опорных кадров вовлечено в процесс фильтрации, тем лучше результат подавления шума. Однако это ведет к увеличению продолжительности процесса обработки.
Опорный видеокадр или фотоизображение представлены в цветовом пространстве «luma-chroma». Типичная модель, представляющая цветовое пространство luma-chroma, включает YCbCr, YUV, YIQ и т.д. Формулы для преобразования цветовой модели RGB в цветовую модель luma-chroma хорошо известны из уровня техники, поэтому здесь они не приводятся.
n
n
n
Блок 120 оценки шума определяет уровень шумов (значение шумовой оценки) для каждого опорного кадра, сохраненного в блоке 110 памяти. При этом блок 120 оценки шумов включает в себя блок 121 оценки уровня шумов и регистр 122. Блок 121 оценки уровня шумов выполняет шумовую оценку, а результат сохраняется в регистре 122. Результатом шумовой оценки является число σ, способное представить шумовой уровень для отдельного видеокадра. В случае нескольких опорных кадров результат выражается множеством σ[NumFrm]. Множество σ[NumFrm] сохраняет результат оценки шума для каждого опорного кадра.
В отношении каждого опорного кадра блок 130 определения характеристик выделяет для каждого пикселя из окрестностей пикселя некоторые характерные признаки изображения, которые описывают локальную структуру изображения. Здесь, окрестности пикселя понимаются как участок изображения, включающий текущий пиксель и некоторые соседние пиксели. В предпочтительном варианте реализации заявляемого изобретения окрестности пикселя определены как прямоугольное окно с размером N×M, где N - высота окна, выраженная в пикселях, a M - ширина окна в пикселях. Определяемые характерные признаки включают номер наиболее подходящего шаблона, который является наилучшим приближением к локальной структуре изображения. Примеры шаблонов (где M=N=5), используемых для определения характеристик, представлены в Фиг.5. Предпочтительный вариант реализации заявляемого изобретения дает пример определяемых характеристик изображения. Другие характерные признаки изображения (например углы, линии) могут быть определены, или могут быть выполнены дополнительные операции над характерными признаками (например, логические и математические операции), однако это не затрагивает функцию блока 130 определения характеристик.
Блок 130 определения характеристик в общем случае состоит из блока 131 размывания изображения, блока 132 памяти, блока 133 определения локальной структуры, блока 134 памяти и блока 135 памяти. Блок 131 размывания изображения размывает опорный видеокадр, обеспечивая сглаживание шума изображения и подготавливая изображение для эффективного определения локальной структуры изображения. В предпочтительном варианте реализации заявляемого изобретения используют двустороннее размывание изображения для предотвращения сглаживания резко очерченных контуров. Однако вполне возможно использование любых других способов размывания изображения, например, широко известного Гауссовского размывания изображения. Блок 132 памяти используют для того, чтобы записывать (сохранять) результат размывания изображения.
С помощью блока 133 определения локальной структуры изображения анализируют изображение с целью выбора опорного шаблона окрестностей пикселя из базы данных шаблонов. База данных шаблонов хранится в блоке 134 памяти. Опорный шаблон - это такой шаблон, который на выходе дает наименьшее значение (ошибку) при свертывании с окрестностями пикселя. Блок 133 определения локальной структуры изображения применяет свертывание последовательно со всеми шаблонами, содержащимися в блоке 134 памяти, и затем выбирает в качестве опорного тот шаблон, который дает минимальную ошибку, и номер (индекс) этого шаблона сохраняется в блоке 135 памяти для каждого пикселя в данном изображении. В предпочтительном варианте реализации заявляемого изобретения номер шаблона - 9. Количество шаблонов может быть изменено в зависимости от ограничений на ресурсы, определенных изготовителем оборудования. Для недорогих устройств число шаблонов может быть уменьшено, а для высококачественных устройств оно может быть увеличено. Примеры шаблонов, используемых для свертывания, представлены на Фиг.5.
Блок 140 фильтрования отфильтровывает шум, присутствующий в кадре. Блок 140 фильтрования содержит, как правило, блок 141 вычисления веса фильтра, блок 142 применения фильтрования и блок 143 памяти. Блок 141 вычисления веса фильтра рассчитывает веса фильтра в соответствии со значением шумовой оценки, полученной от блока 120 оценки шумов, и с характеристиками, полученными из опорных кадров блоком 130 определения характеристик. Степень фильтрования подвержена изменениям в зависимости от уровня зашумленности изображения. После того как веса фильтра определены, с помощью блока 142 производят фильтрование шумов. После чего отфильтрованный кадр сохраняют в блоке 143 памяти.
n
Рассмотрим поэтапное выполнение заявляемого способа со ссылками на Фиг.2. Сначала опорные кадры сохраняют в блоке 110 памяти (Шаг 1). Затем выполняют процедуру оценки шумов (Шаг 2). Процедура оценки шумов может быть различной. Примененный способ оценки шумов должен выдать значение σ установленных шумовых параметров кадра. Блок 121 оценки уровня шумов выполняет шумовую оценку, и результаты оценки сохраняются в регистре 122.
Следующий шаг заключается в размывке опорных кадров (Шаг 3). Блок 131 размывания изображения размывает опорные кадры для сглаживания шумов изображения и подготовки кадров к правильному определению локальной структуры изображения. В предпочтительном варианте реализации заявляемого изобретения используют двустороннее размывание изображения (то есть размывание изображения через двусторонний фильтр), чтобы предотвратить сглаживание резких контуров. Двустороннее фильтрование известно из уровня техники, поэтому здесь этот процесс не описывается. Кроме того, возможно применение иных способов размывания изображения, например Гауссовское размывание изображения. Результат размывания изображения сохраняют в блоке 132 памяти. Этот результат включает T размытых кадров.
После размывания опорные кадры готовы для обработки блоком 133 определения локальной структуры с целью выявления характерных признаков (Шаг 4). Характерным признаком является номер (индекс) опорного шаблона из базы данных шаблонов, хранящейся в блоке 134 памяти. В дальнейшем под опорным шаблоном понимается такой шаблон, который обеспечивает наименьшее значение (ошибку) при свертывании с окрестностями пикселя.
На Фиг.3 способ определения локальной структуры изображения начинается с установления числа шаблонов NumOfPatt и структуры шаблонов (301). Примеры используемого шаблона приведены на Фиг.5. При этом счетчик шаблонов установлен на единицу (301). Счетчик шаблонов используется для того, чтобы присвоить шаблону номер (индекс) в базе данных шаблонов (блок 134 памяти).
Затем на шаге (302) определяют окрестности текущего пикселя. После определения окрестностей пикселя способ определения локальной структуры осуществляют по замкнутому циклу (303-306). Способ последовательно выявляет шаблон с номером, соответствующим показанию счетчика из блока памяти (303), вычисляет свертывание окрестностей пикселя с выявленным шаблоном (304), увеличивает показание счетчика шаблонов (305) и вновь переходит к шагу (303), пока показания счетчика не превысят число шаблонов (306).
Результат (output) свертывания окрестностей пикселя и шаблона сохраняют в множестве ConvOut [NumOfPatt] элементов данных (узлов) (блок 134 памяти). В дальнейшем узел PattNode понимается как элемент данных, который состоит из PattNum, номера (индекса) шаблона и PattConv, результата свертывания окрестностей пикселя с шаблоном. Процедура свертывания известна из уровня техники и не поясняется в настоящем описании.
После заполнения множества ConvOut соответствующими значениями с помощью определения локальной структуры устанавливают опорный шаблон для текущего пикселя (307). В предпочтительном варианте реализации заявляемого изобретения процедуру определения наилучшего опорного шаблона выполняют посредством сортировки множества ConvOut в порядке возрастания с помощью поискового ключа, равного PattConv, и отбора первого элемента в отсортированном множестве. Первый элемент в отсортированном множестве имеет наименьшую PattConv (ошибку или результат свертывания), поэтому его принимают в качестве опорного шаблона (модели) для окрестностей текущего пикселя. Установление опорного шаблона можно выполнить и иными способами, например, путем применения математических и логических операций к данным из множества ConvOut. Однако эти операции не изменят объема функций блока определения локальной структуры изображения (133).
Далее по тексту RefPattNum понимается как PattNum опорного шаблона. Заключительной операцией на шаге (308) определения локальной структуры является сохранение RefPattNum в множестве RefPattArray, которое находится в блоке 135 памяти. Далее по тексту множество RefPattArray [NumFrm] [FrmHeight × FrmWidth] понимается как множество, содержащее RefPattNum для каждого пикселя каждого опорного кадра. FrmHeigh - это высота опорных кадров в пикселях, а FrmWidth - ширина опорных кадров в пикселях. Процедура определения локальной структуры применяется в отношении каждого пикселя в опорных кадрах. После завершения процедуры определения локальной структуры в множестве RefPattArray (блок 135 памяти) сохраняют RtfPattNum для каждого пикселя кадра.
n
Затем на шаге 5 вычисляют веса фильтра в соответствии с выявленными шумовыми параметрами σ[NumFrm] и опорными шаблонами окрестностей пикселя (RefPattArray). В первую очередь, необходимо определить переменные, которые нужны для описания способа вычисления весов фильтра. Далее по тексту в предпочтительном варианте реализации заявляемого изобретения под термином поисковое окно понимается прямоугольная пиксельная сетка с размером K×L, где K - высота окна в пикселях и L - ширина окна в пикселях. Прямоугольная форма окна выбрана для упрощения процесса изготовления устройства (например, FPGA) с жесткими требованиями к использованию памяти. Возможны и другие формы поискового окна, например, в виде шестиугольника. Далее по тексту опорный пиксель понимается, как пиксель, который расположен в поисковом окне (примеры таких пикселей обозначены крестиками на Фиг.6). Корректный опорный пиксель - это такой опорный пиксель, который имеет тот же RefPattNum, что и текущий пиксель.
Далее по тексту термин опорная окрестность понимается как участок изображения, который включает опорный пиксель и некоторые соседние пиксели (примеры таких участков показаны на Фиг.6 как квадраты с пикселем-крестиком в центре). Опорная окрестность должна иметь ту же форму и размеры как окрестность пикселя, поскольку они сравниваются по-пиксельно. В предпочтительном варианте реализации заявляемого изобретения опорная окрестность определена как прямоугольное окно с размерами N×M, где N - высота окна в пикселях, а M - ширина окна в пикселях.
Процесс фильтрования начинают с вычисления веса для каждого опорного пикселя. После чего текущий пиксель заменяют взвешенным средним значением опорных пикселей. Сначала с помощью способа вычисления весов анализируют каждый опорный пиксель на предмет обнаружения, является ли этот опорный пиксель корректным опорным пикселем или нет. Если опорный пиксель является корректным, переходят к сравнению окрестностей пикселя с опорной окрестностью. На основе сравнения окрестностей вычисляют вес пикселя. Однако, если опорный пиксель не является корректным, его отбрасывают, и закрепленный за ним вес обозначают как 0. Заблаговременное отсеивание некорректных опорных пикселей ссылки без вычисления их веса является основным преимуществом заявляемого способа, устойчивого к движению фильтрования видеосигналов. Путем сравнения RefPattNum текущего пикселя с RefPattNum опорных пикселей можно прийти к заключению, подобны ли окрестности пикселя одна другой или нет. Если они не подобны, то есть имеют различные шаблоны, и, как следствие, различные RefPattNums, то нет необходимости вычислять вес опорного пикселя. В результате такого усовершенствования известных из уровня техники способов резко сокращается объем ненужных вычислений.
Заблаговременное отсеивание некорректных опорных пикселей без вычисления веса проиллюстрировано на Фиг.4 и Фиг.6, где Фиг.4 демонстрирует вычисления веса по ранее известным методикам. Для каждого опорного пикселя (примеры таких пикселей отмечены крестиками на Фиг.4) вычисляют вес. В отличие от аналогов, заявляемый способ предусматривает вычисление веса только корректных опорных пикселей (примеры таких пикселей отмечены косым крестиком на Фиг.6).
f
Вес w каждого опорного пикселя определяют следующим образом
Вес корректного опорного пикселя определяют как
f
f
n
f
f
f
n
f
f
n
f
n
f
n
f
n
где σ=f(k,σ) - параметр гауссиана для управления степенью фильтрования шума, при этом более высокие значения σ соответствуют более высокой степени фильтрования, а более низкие значения σ соответствуют более низкой степени фильтрования, функция f(k,σ) описывает зависимость σ от двух параметров, а именно от коэффициента k фильтрации, который регулирует степень фильтрования, и от коэффициента σ оценки шума, который вычисляют на шаге 2. В предпочтительном варианте реализации способа функция f(k,σ) определяется как f(k,σ)=k·(σ+1). Возможны и иные применения функции f(), при этом значение этой функции не меняется.
Вес корректного опорного пикселя вычисляют, исходя из степени подобия между окрестностью пикселя в текущем кадре и опорной окрестностью в опорных кадрах, при этом функция d() для сравнения окрестности пикселя имеет следующий вид
,
c
c
c
c
c
с
c
где pix(x,y,t) означает текущий пиксель из текущего кадра t с координатами x и y,
r
r
r
r
r
c
r
r
pix(x,y,t) означает опорный пиксель из опорного кадра t=t+t с координатами x и y,
индекс i изменяется от  до  в направлении X,
индекс j изменяется от  до  в направлении Y,
r
σ - параметр гауссиана для управления весом пикселя относительно его положения по отношению к текущему положению пикселя, при этом внешние пиксели, расположенные в отдалении от центрального пикселя, обладают меньшим весом, чем внутренние пиксели, расположенные вблизи центрального пикселя и имеющие более высокий вес, при этом нормирующий множитель вычисляют как .
Возможно применение и других видов d() для сравнения окрестностей пикселя.
Следующий шаг (Шаг 6) заключается в фильтровании шума видеосигналов. После вычисления весов фильтрование осуществляют путем взвешенного суммирования опорных пикселей из опорных кадров и текущего кадра. Чем больше опорных кадров вовлечено в процесс фильтрации, тем лучше результат подавления шумов. Результат фильтрования вычисляется следующим образом
,
r
r
r
r
r
c
t
r
где pix(x,y,t) обозначает опорный пиксель из опорного кадра t=t+t с координатами x и y,
индекс p изменяется от  до  в направлении X,
индекс s изменяется от  до  в направлении Y,
индекс t изменяется от  до  в области времени,
T - обозначает число опорных кадров, вовлеченных в процесс фильтрования (T=NumFrm),
f
r
r
r
r
w - вес опорного пикселя pix(x,y,t),
Нормирующий множитель вычисляют как .
После выполнения взвешенного усреднения опорных пикселей результат сохраняют в выходном буфере (Шаг 7). Вышеупомянутую процедуру фильтрования шума повторяют в отношении всех пикселей кадра, и, наконец, в выходном буфере сохраняют отфильтрованный кадр.
Наряду с эффективной обработкой фотоизображений и видеопоследовательностей заявляемый способ не порождает артефактов. Фиг.7 показывает результат фильтрации видео с быстрым движением при использовании известного подхода (Фиг.7.2) и заявляемого способа (Фиг.7.3). Согласно Фиг.7.2 ранее известный фильтр по [1], [4] порождает призрачные (ghosting) артефакты около плеч теннисиста. Напротив, заявляемый способ демонстрирует фильтрование, устойчивое к движению. В отличие от аналогов, заявляемый способ устойчив к движению и не порождает артефактов. При этом заявляемый способ работает в 9,75 раз быстрее, чем ранее известный способ.
Заявляемый способ показывает хорошие результаты при обработке видеопоследовательностей с искажениями (артефактами) сжатия. Фиг.8 показывает результат фильтрования видео с артефактами сжатия на основе известных решений (Фиг.8.2) и на основе заявляемого способа (Фиг.8.3). Согласно Фиг.8.2 ранее известный фильтр порождает призрачные (ghosting) артефакты около плеч актера. В отличие от известного способа заявляемый способ демонстрирует фильтрование, устойчивое к движению, не порождая артефактов. В то же время заявляемый способ выполняется в 7,2 раза быстрее, чем известный способ.
Предлагаемый способ применим для обработки изображения в DSC. Фиг.9 показывает результат фильтрации фотоизображения с использованием известных ранее способов (Фиг.9(2)) и с помощью заявляемого способа (Фиг.9(3)). Для изображения, представленного на Фиг.9, заявляемый способ превышает по скорости известные способы в 5,25 раз.
В ходе моделирования размер поискового окна устанавливали как 11×11, а размер окрестности пикселя устанавливали как 5×5.
Заявляемое изобретение может быть непосредственно применено в программном обеспечении фото- и видеокамер для устранения шумов, порождаемых датчиками камер. При применении заявляемого способа в областях, работающих с сильно компрессированным видеоизображениями, например, в телевидении с высоким разрешением и в мобильных устройствах, разумнее использовать заявляемое изобретение вместе с процедурой детектирования блочных и «москитных» шумов для более эффективного устранения компрессионных артефактов.
Источники информации
[1] EP patent application No.1749278, J.-M.Morel et al., "Image Data Processing Method by Reducing Image Noise, And Camera Integrating Means for Implementing Said Method".
[2] US patent application No. 20070133895, M.G.Kang et al., "Method for Filtering Image Noise Using Pattern Information".
[3] M.Mahmoudi and G.Sapiro "Fast Image and Video Denoising via Non-Local Means of Similar Neighborhoods", IEEE Signal Processing Letters, Dec. 2005, Volume: 12, Issue: 12, page(s): 839-842, ISSN: 1070-9908.
[4] A.Buades, B.Coll, and J.M.Morel. “Denoising image sequences does not require motion estimation”. Technical Repott 2005-18, CMLA, ENS Cachan, 2005. htt://www.cmla.ens-cachan.fr/fileadmin/Documentation/Prepublcations/2005/CMLA/2005-18.pdf.