Алгоритм вычисления параметров наложений для задачи преобразования частоты кадров цифровых видеосигналов
Гришин С.В., Симонян К.А., Ватолин Д.С.
МГУ им. М.В. Ломоносова, факультет Вычислительной Математики и Кибернетики, Лаборатория Компьютерной Графики и Мультимедиа {sgrishm, simonyan, dmitriy} @ graphics.cs.msu.ru
АННОТАЦИЯ
В данной статье описывается быстрый алгоритм обработки наложений в видеопотоке, состоящий из определения областей наложений и поиска векторов движения в них. Наличие способа вычисления векторов движения позволяет использовать данный алгоритм в задаче преобразования частоты кадров видеопотока. Предложенный алгоритм является улучшением метода, описанного в работе [1]. Улучшение достигается за счет сокращения количества неверно найденных наложений и добавления метода вычисления векторов движения в найденных областях наложений.
1. ВВЕДЕНИЕ
В настоящее время, в связи с ростом числа форматов видео, а также распространением дисплеев с высокой частотой обновления кадров, задача преобразования частоты кадров (ПЧК) является одной из наиболее востребованных в области обработки видео. В алгоритме ПЧК можно выделить следующие основные этапы:
1. оценка параметров движения в видеопоследовательности;
2. поиск областей наложения объектов и определение векторов движения
наложений;
3. построение интерполированных кадров со специальной обработкой
областей наложений, а также областей с неверно найденными параметрами движения.
Таким образом, качественная обработка наложений играет важную роль в задаче ПЧК. При наложении (взаимном перекрытии) объектов возникает два типа явлений:
• закрытие - в обрабатываемом кадре некий объект закрывает часть другого объекта (или фона), наблюдавшуюся в предыдущих кадрах;
• открытие - в обрабатываемом кадре наблюдается часть некоего объекта
(или фона), ранее закрытая другим объектом.
Задача поиска наложений не является новой, и в настоящий момент существует множество алгоритмов, значительно отличающихся друг от друга, как по точности, так и по скорости обработки. Практически в каждом из них находит применение так называемый принцип двойственности. Он заключается в том, что, изменяя порядок следования кадров на входе алгоритма поиска наложений, поиск областей открытия может быть сведен к поиску областей закрытия, и наоборот. Таким образом, достаточно построить алгоритм поиска лишь областей закрытия (или открытия), чтобы получить возможность обнаружения областей наложения обоих типов.
Перейдем к краткому описанию существующих подходов к поиску наложений. Простейшим является алгоритм, основанный на анализе ошибок компенсации движения [1]; он предполагает сравнение ошибок компенсации движения с фиксированным порогом. Плохо скомпенсированные (с точки зрения ошибки компенсации) области полагаются областями наложения. Несмотря на очень высокую скорость работы, этот подход обладает рядом недостатков. Он не устойчив к шуму и имеет высокую частоту ложных срабатываний, что объясняется упрощенной моделью наложений, им используемой; подбор оптимального значения порога весьма проблематичен. Другой алгоритм, описанный в обзоре [1], подразумевает сравнение разности полей векторов движения в обоих направлениях (вперед и назад) с заданным порогом. Как и в предыдущем случае, высокая скорость сочетается с неудовлетворительным качеством (метод не устойчив к шуму, частота ложных срабатываний высока). Причина этого в том, что в ряде случаев (например, в однородных областях, где векторы движения часто разнонаправлены) поле векторов движения может не являться однородным, несмотря на отсутствие наложений. Предложенный авторами работы [1] алгоритм, основанный на анализе плотности пикселей, использованных при оценке движения, описан в разделе 0 данной работы; мы будем называть его базовым, поскольку предлагаемый нами алгоритм является его улучшением. В [2] был предложен подход, основанный на поиске неоднородностей в поле векторов движения. Вычислительная сложность метода невысока; однако, чувствительность к шуму в поле векторов движения, а также
необходимость заранее указать максимальный размер области наложений отрицательно сказываются на практической применимости подхода. В алгоритме сегментации видео [3] применяется поиск областей наложения, основанный на анализе ошибок компенсации с последующим отсечением ложных срабатываний за счет анализа результатов кластеризации векторного поля. Необходимость в кластеризации ведет к серьезному уменьшению скорости работы метода. В алгоритмах [4,5] используется общий подход, предполагающий поиск границ в обрабатываемом кадре с последующей оценкой движения по обе стороны от каждой границы. В случае, если движение по разные стороны от некоторой границы достаточно сильно отличается, такая граница помечается как граница области наложения. Указанные методы позволяют определить лишь фрагменты границы областей наложения, что затрудняет их применение в задаче ПЧК. Кроме того, их вычислительная сложность чрезмерно высока.
Также стоит отметить, что все описанные методы, кроме [2], не позволяют оценивать вектор движения наложений, который должен быть известен для выполнения этапа 3 алгоритма ПЧК.
Описанный в данном работе алгоритм не требует каких либо априорных знаний о параметрах наложений (в отличие от алгоритма [2]), позволяет вычислять векторы движения в областях наложений и при этом имеет невысокую вычислительную сложность, допускающую использование данного алгоритма в режиме реального времени.
2. ОПИСАНИЕ АЛГОРИТМА
Перед описанием сути предложенных улучшений кратко опишем базовый алгоритм поиска наложений [1]. Его основная идея заключается в использовании функции плотности пикселей M(х), которая для данной пары кадров It_1 и
It определяется следующим образом:
, . card {5} , .
м (х )= I x t (х ),
i =1
fl, I|х _ zi II £ r г ч
xi (х)=1 '' . , х G It_1, zr G ^ 5 =W = х + v(х), х G It jt
[0, otherwise
где card{S} - число элементов во множестве 5, r - радиус окрестности (константа),
у( х) - вектор движения, найденный в точке х.
Области кадра /м со значениями функции плотности ниже порога считаются наложениями с типом «закрытие». Поиск наложения с типом «открытие» для кадра /{ согласно принципу двойственности производится аналогичным образом с использованием векторного поля противоположного направления. Таким образом, базовый алгоритм требует наличия векторных полей обоих направлений (вперед и назад), это верно и для предложенных улучшений. Подробное описание базового метода заинтересованный читатель может найти в [1].
Предложенные улучшения можно разбить на две части: повышение точности поиска наложений и алгоритм поиска векторов движения в наложениях. Эти части будут подробно описаны в следующих разделах.
2.1. Повышение точности поиска наложений
Существенным недостатком базового алгоритма является большая доля неверно найденных наложений. Данное обстоятельство может негативно сказаться на визуальном качестве при использовании данного алгоритма в задаче ПЧК. Ошибки поиска наложений главным образом обусловлены наличием неверно найденных на шаге 1 ПЧК векторов, и появляются в областях со сложным движением или однородных участках кадра. Для борьбы с указанным недостатком предлагается использовать несколько приемов. Одни предназначены для уменьшения числа неверно найденных наложений на исходных кадрах, другие - для повышения эффективности использования метода в задаче ПЧК. Заметим, что для оценки эффективности разработанного метода, он был использован для обработки наложений в алгоритме ПЧК, который использует блочную оценку движения, и, соответственно, наложения также обрабатываются блоками.
Перечислим использованные приемы (некоторые из них отмечены соответствующим номером на векторе на рис. 1):
1. Повышение точности поиска наложений на исходных кадрах. При поиске наложений на исходных кадрах ошибка компенсации (ОК) в каждом блоке сравнивается с порогом. Здесь и далее будем считать, что небольшие значения ОК соответствуют «похожим» друга на друга блокам и наоборот. Если ОК ниже порога, то найдено соответствие между блоками исходных кадров, и наложение в текущем блоке отсутствует независимо от значений функции плотности в данном блоке.
2. Повышение точности поиска наложений на исходных кадрах. В силу специфики базового алгоритма, некоторые блоки исходных кадров могут быть одновременно помечены как «закрытие» и «открытие». В этом случае предлагается считать, что текущий блок не является наложением.
Вектор
движения
объекта
Исходный кадр
Вектор
движения
фона
вектор наложения
«открытие» «закрытие»
Исходный кадр
Исходный кадр
Вектор из векторного поля назад Вектор из векторного поля вперед
Исходный кадр
Рис. 1. Схема варианта появления наложений
3. Уточнение областей наложений для интерполированных кадров (ИК). Поскольку области наложений на интерполированных кадрах не совпадают с таковыми на исходных кадрах, для корректной обработки необходимо производить уточнение областей наложений при переходе от исходного кадра к интерполированному. Такое уточнение выполняется путем сравнения ошибки компенсации блока ИК с порогом. Если ОК блока ниже порога, то найдено соответствие между исходными кадрами и наложение в текущем блоке ИК отсутствует.
4. Уменьшение количества неверно найденных наложений. Если ошибка компенсации вектора наложения, найденного для текущего блока наложения, выше порога, то соответствие найдено неверно. Это говорит о том, что вектор наложения был вычислен неверно, а значит и корректная обработка наложения в этом блоке невозможна. В этом случае считаем, что текущий блок ИК не является наложением.
5. Повышение точности поиска наложений на интерполированных кадрах. На последнем этапе маска наложений подвергается морфологической фильтрации. Причем фильтрация выполняется с использованием нечеткой логики (fuzzy logic). При выполнении операций сужения и расширения учитывается доля (а не просто наличие или отсутствие, как в традиционной морфологии) блоков с определенным типом наложения среди всех блоков окрестности. Весь процесс фильтрации заключается в выполнении морфологического открытия (последовательно выполненные операции сужения и расширения).
Следует заметить, что возможно дальнейшее повышение эффективности некоторых приемов. Например, использование в качестве критерия точности вектора меры доверия (вместо ошибки компенсации) вектору заданного блока, наподобие предложенной в работе [6]. В пунктах 1, 3 и 4 в качестве порога можно использовать адаптивное значение, зависящее от степени текстурированности блока.
2.2. Алгоритм вычисления векторов движения в наложениях
Данный этап предназначен прежде всего для использования в задаче ПЧК. Наличие векторов движения для областей наложений ИК позволяет правильным образом провести компенсацию движения в этих областях. Прежде чем перейти к описанию алгоритма вычисления векторов в наложениях, приведем схему векторных полей (ВП), используемых в алгоритме (см. рис. 2).
ВП1 впз
ВП1, ВПЗ - векторные поля вперед ВП2, ВП4 - векторные поля назад
Рис. 2. Схема векторных полей, использующихся в алгоритме
Поиск векторов для областей «открытия» производится в векторном поле 3 (ВП3), для областей «закрытия» - в ВП4 (см. рис. 2). Алгоритмы поиска векторов для этих случаев полностью аналогичны, поэтому остановимся на варианте с областями «открытия». Тогда алгоритм поиска вектора для текущего блока ИК в этом случае будет такой:
1. Формирование набора кандидатов (НК). Набор кандидатов формируется в
два этапа:
a. Среди уже обработанных блоков окрестности текущего блока ИК (см. рис. 3) производится поиск блоков с наложением «открытие». Векторы, найденные для таких блоков, добавляются в набор кандидатов текущего блока. Данный прием позволяет решить сразу две задачи. Во-первых, увеличить набор кандидатов, во-вторых, повысить вероятность того, что соседние блоки наложения будут скомпенсированы с использованием одинаковых векторов движения, что весьма благоприятно сказывается на визуальном качестве интерполированного кадра.
b. В набор кандидатов добавляются векторы из ВП3, найденные для блоков кадра , расположенные в небольшой окрестности текущего блока (см. рис. 3). Причем добавляются лишь те векторы ВП3, которые были найдены с приемлемой точностью, т.е. ошибка компенсации которых достаточно мала (напр. можно сравнивать ОК с адаптивным порогом).
2. Выбор лучшего вектора из набора кандидатов. Если НК не пуст, то в
качестве результирующего выбирается вектор с наименьшей ошибкой компенсации, вычисляемой между кадрами и 1М . Если же набор пуст, то текущий блок ИК обрабатывается как блок без наложения.
1-1
к 2
Текущий блок ИК
1-1
1-1
¡г-т
(ИК)
г
Рис. 3. Схема расположения блоков, используемых при формировании набора кандидатов (для случая обхода кадра сверху-вниз слева-направо) После того, как векторы найдены для всех блоков с наложением, производится сглаживание векторного поля в областях наложений. Для каждого блока ИК Ь,
являющегося частью области наложения, новый вектор движения у(Ьг) вычисляется
как среднее векторов движения соседних блоков с тем же наложением, что в текущем блоке:
V
/ ч X ЛЬт,п)
Ь )= _
-ы {в}
сагс
где В - множество блоков ИК из окрестности блока Ьс наложением того же типа, что и в блоке Ь. Радиус окрестности, из которой
выбираются блоки, определяет силу сглаживания векторного поля.
Данный этап позволяет значительно повысить гладкость поля векторов движения, найденных в соседних блоках областей наложений, что позволяет значительно снизить уровень артефактов, возникающих при наличии неверно найденных векторов. И наоборот, если векторы в наложениях были вычислены верно, визуальное качество практически не пострадает, поскольку в подавляющем большинстве случаев на практике векторы в соседних блоках наложения совпадают либо очень близки.
3. РЕЗУЛЬТАТЫ
Результат применения приемов, описанных в разделе 3.1, продемонстрирован на рис. 4, 5. На рис. 4 приведены карты наложений, вычисленные для одного из исходных кадров (т.е. до уточнения), в то время как на рис. 5 изображены карты наложений интерполированного кадра (т.е. после уточнения). Легко видеть, что количество неверно найденных наложений (некоторые из них окружены овалами) на картах метода MVF based (алгоритм из статьи [2]) намного больше, чем на картах предложенного метода. Это утверждение справедливо как для карт наложений до уточнения, так и для карт наложений после него.
Эффективность реализованных улучшений была проверена с помощью разработанного алгоритма ПЧК. Было проведено сравнение показателя качества ПЧК до и после обработки наложений, произведенной следующими методами: MVF Based, базовый алгоритм (метод Density based из работы [1]) и предложенный алгоритм.
Измерение качества ПЧК производилось стандартным способом:
1. Каждая из тестовых последовательностей прореживалась в два раза по времени (выбрасывались все кадры с четными номерами).
2. Пропущенные кадры восстанавливались с помощью ПЧК.
3. Интерполированные кадры сравнивались с исходными пропущенными с помощью метрики PSNR, вычисляемой для яркостных компонент изображений (Y-PSNR).
4. Значения Y-PSNR усреднялись по всем интерполированным кадрам
последовательности.
Рис. 4. Карты наложений до уточнения, полученные методом MVF Based (слева) и предложенным методом (справа). Черным цветом обозначены «открытия», белым -
«закрытия».
Рис. 5. Карты наложений после уточнения, полученные методом MVF Based (слева) и предложенным методом (справа). Черным цветом обозначены «открытия», белым
- «закрытия».
На графике на рис. 6 изображена разница показателей Y-PSNR для каждой последовательности тестового набора до и после использования обработки наложений. Каждому из сравниваемых алгоритмов соответствует одна ветвь графика. Легко видеть, что обработка наложений методом MVF Based и базовым алгоритмом привела к понижению качества ПЧК, в то время как использование разработанного алгоритма позволило добиться положительного изменения качества (заключенного между ветвями «Предложенный алгоритм» и «Без обработки наложений»). Чтобы оценить фактическое улучшение, достигнутое использованием описанных в данной работе приемов, следует рассматривать разницу между ветвями «Базовый алгоритм» и «Предложенный алгоритм».
Разница ср. зн. Y-PSNR (dB) по последовательностям
Последовательность
Рис. 6. Изменение качества ПЧК при включении обработки наложений для нескольких алгоритмов обработки наложений
СПИСОК ЛИТЕРАТУРЫ
1. S. Ince and J. Konrad, "Geometry-based estimation of occlusions from video frame pairs", in Proc. IEEE Int. Conf. Acoustics Speech Signal Processing, pp. ii/933- ii/936, Vol. 2, 2005.
2. A. Pelagotti and G. de Haan, "High quality picture rate up-conversion for video on TV and PC", in Proc. Philips Conf. on Digital Signal Processing, Nov. 1999, paper 4.1, Veldhoven.
3. K. Hariharakrishnan, D. Schonfeld, "Fast object tracking using adaptive block matching", IEEE Trans. Multimedia, pp. 853 - 859, Oct. 2005.
4. Andrew Stein and Martial Hebert, "Local Detection of Occlusion Boundaries in Video", in Proc. British Machine Vision Conference, pp. 407-416, Sept. 2006.
5. Andrew Stein and Martial Hebert, "Combining Local Appearance and Motion Cues for Occlusion Boundary Detection", in Proc. British Machine Vision Conference, Sept. 2007.
6. K. Simonyan, S. Grishin, and D. Vatolin, "Confidence Measure for Block-Based Motion Vector Field", in Proc. GraphiCon, pp. 110-113, Moscow, June 2008.
Об авторах
Гришин Сергей Викторович — аспирант, сотрудник лаборатории Компьютерной Графики и Мультимедиа при ВМиК МГУ. E-mail: [email protected].
Симонян Карен Ашотович — студент, сотрудник лаборатории Компьютерной Графики и Мультимедиа при ВМиК МГУ. E-mail: [email protected].
Ватолин Дмитрий Сергеевич — к.ф.-м.н., старший научный сотрудник лаборатории Компьютерной Графики и Мультимедиа при ВМиК МГУ. Основатель сервера «Все о сжатии» http://compression.ru/. E-mail: [email protected].