Алгоритм преобразования частоты кадров на основе интерполяции
скомпенсированных кадров
Дмитрий Ватолин, Сергей Гришин Московский Государственный Университет, Лаборатория Компьютерной Графики ВМиК
Москва, Россия {dmitriy, sgrishin} @graphics.cs.msu.su
Аннотация
В данной статье предлагается алгоритм двукратного увеличения частоты кадров видеопоследовательности, использующий двунаправленную компенсацию движения для создания новых интерполированных кадров. Отличительной особенностью алгоритма является выполнение преобразования без использования сглаживания во временной области, поэтому в преобразованной последовательности нет колебаний резкости изображения. Скомпенсированные кадры заполняются с учетом «истинных» векторов движения, которые вычисляются отдельно для каждой области 4х4 и имеют четверть-пиксельную точность. Каждый интерполированный кадр получается в результате фильтрации скомпенсированных кадров и поиска на них наиболее точно найденных областей, которые будут выбраны в качестве материала для нового фрейма. Движение, полученное в результате использования описанного метода, является значительно более плавным по сравнению с результатом применения алгоритма, описанного в [6].
Keywords: FRC, frame rate conversion, motion-compensated interpolation, temporal interpolation.
1. Введение
Преобразование частоты кадров (ПЧК) широко используется в современных цифровых технологиях. Во-первых, ПЧК требуется для перехода между стандартами воспроизведения видео. Фильмы, например, имеют частоту кадров меньше 25 кадр/c, в то время как передовые телевизоры способны воспроизводить 100 кадр/c.
Другой важной областью применения ПЧК является декодирование видео данных. При кодировании видео на низких битрейтах многие видео кодеки уменьшают разрешение данных не только в пространстве, но и во времени. Иначе говоря, вместо кодирования исходных 30 кадр/c, частота кадров может быть уменьшена до 20 кадр/c. Это означает, что 1 из каждых 3 кадров исходной видео последовательности не будет закодирован. Однако при воспроизведении видео на стороне декодера весьма желательно иметь исходную частоту кадров. Для этого необходим механизм восстановления. Также ПЧК может быть использовано при восстановлении поврежденных кадров.
Простейший способ восстановления пропущенных кадров состоит в повторении последнего кадра вплоть до получения нового. Однако, в этом случае на динамических сценах движение перестает быть плавным. Другой простой способ - линейная
интерполяция между закодированными кадрами. Недостаток этого метода - потери резкости изображения на границах движущихся объектов. Этот артефакт обычно называют «ghost artifact» (эффект ореола).
Существенное повышение качества достигается при использовании алгоритмов, адаптированных к движению. Адаптация в данном случае заключается в вычислении и учете информации о движении. Такая оценка может осуществляться несколькими методами. Обычно используются методы, основанные на проверке соответствия блоков (BMA) [1-4]. В [1] описан метод увеличения частоты кадров в полтора раза. Описанный метод распределения интерполированных кадров во времени позволяет использовать все исходные кадры в преобразованной последовательности при выполнении делений только на степень двойки, что значительно облегчает аппаратную реализацию. Однако при использовании данного метода нарушается временной интервал между исходными кадрами, что проявляется в появлении артефакта, называемого jerkiness («рывки в движении»). Вектора движения вычисляются отдельно для каждого пикселя изображения. Для оценки движения предлагается алгоритм, основанный на использовании набора кандидатов векторов движения, как первоначального приближения. Скомпенсированный кадр вычисляется с точностью полпикселя в предположении о равномерности и прямолинейности движения между опорными кадрами. Однако не описывается метод обработки «наложений», что является основой любого алгоритма ПЧК. В [2] описывается метод, предназначенный для восстановления пропущенных кадров на стороне декодера H.263. Интерполированные кадры вычисляются с использованием гибридной схемы, по которой адаптивно выбирается метод интерполяции: либо повторение кадров, либо интерполяция скомпенсированных кадров. Поле векторов, полученное на выходе декодера, используется для вычисления векторов для каждого пикселя. Такое преобразование осуществляется с использованием модели деформации блоков, что позволяет избежать появления «блочности» на скомпенсированном кадре. Для повышения точности процедуры компенсации движения используется схема сегментации объектов, позволяющая определить позиции двигающихся областей. Также описывается адаптивная схема выбора пропускаемых кадров, предназначенная для использования на стороне кодера. В [3] предлагается оригинальная схема временной интерполяции, не
требующая предположения о равномерности и прямолинейности движения между опорными кадрами. Для интерполяции векторов движения используется модель траектории с постоянным ускорением, которая использует сплайн второго порядка для описания движения. Для обработки наложений описывается схема медианной фильтрации, уменьшающая артефакты в покрытых и непокрытых областях. Метод интерполяции скомпенсированных кадров, описанный в [4], предназначен для использования на стороне декодера стандарта ITU-T H.263, который описывает М-кадры (motion frames) в потоке. Данный метод также не требует предположения о равномерности и прямолинейности движения между опорными кадрами, однако информация о «нелинейных векторах» движения сохраняется видео кодером в М кадрах и используется при декодировании. На основе поля векторов движения, полученного на выходе декодера, с использованием 6-параметрической аффинной модели вычисляются вектора движения для каждого пикселя. В некоторых алгоритмах [5] в качестве метода оценки движения используется метод фазовой корреляции, устойчивый к изменению яркости изображения и позволяющий получать вектора движения отдельно для движущихся объектов и статического фона. В [6] в качестве метода построения скомпенсированных кадров предлагается использовать процедуру глобальной компенсации движения (ГКД), которая позволяет корректно обрабатывать сильное движение определенного типа (поворот, вращение, наезд и отъезд камеры). Однако процедура ГКД не чувствительна к движению локальных объектов, что приводит к прерывистому движению некоторых предметов в кадре. В [7] для вычисления векторов движения используется алгоритм оценки оптического потока (Optical Flow Estimation Algorithm). Для обработки наложений предлагается схема использования меток полей (Label Field). Такая схема дает хорошие результаты, однако вычисление меток полей требует наличие информации об интерполируемом кадре, что ограничивает применение данного метода использованием на стороне декодера.
Описанный ниже алгоритм предназначен для увеличения частоты кадров вдвое. В качестве метода оценки движения используется BMA-метод, ориентированный на вычисление «истинных» векторов. Скомпенсированные кадры вычисляются с четверть-пиксельной точностью, что обеспечивает высокую точность передачи слабого движения и
медленно изменяющихся областей. Основное отличие данного метода от других состоит в том, что преобразованная последовательность имеет постоянный во времени уровень резкости изображения, т.е. интерполированный кадр имеет ту же резкость, что и оригинальный.
2. Описание алгоритма
Удвоение частоты кадров производится путем добавления интерполированных
кадров между каждыми двумя соседними кадрами в исходной видеопоследовательности (см.рис. 1).
(t+1/2)
RED- оценка движения «вперед» BLUE- оценка движения «назад»
Pic. 2. Двунаправленная компенсация движения
Преобразованный видео поток можно представить в следующем виде:
Дрп) = \1{Р'к),П = 2к> к (1)
[~(р,т),п = 2т +1, т е {0,1,2...}
где
ГI(р + mvF, к), т = 2к +1, еггр < егг1
ДХ ^ т) = ^ (2)
I (р + mvв, к + 1), т = 2к +1, еггв < еггр
где
.¿ив
mv егг„ < ТН
I [7
2 " F 0, иначе
,МЕ
_ е[[в
тув
mv егг„ < ТН
2
0, иначе
1( р, п) - яркость пикселя на кадре в выходном потоке
р( х, ) - координаты пикселя в кадре
I (р, к) - яркость пикселя исходного кадра
к - номер кадра в первоначальном видео потоке
I (р, т)- яркость пикселя интерполированного кадра
т - номер интерполированного кадра
туИв, туВ5в - вектора движения, предсказанные вперед и назад соответственно ту _ еггр, ту _ еггв - ошибки предсказания векторов вперед и назад соответственно ТН - фиксированный порог
еггр, еггв - математические ожидания в окрестности радиуса 1 вокруг текущего пикселя в массиве попиксельных ошибок (см. рис. 10) кадров, скомпенсированных вперед и назад соответственно.
При построении интерполированного кадра используются кадры, скомпенсированные вперед и назад с уменьшенными вдвое векторами движения. Т.е. для построения одного интерполированного кадра требуется два прохода процедуры оценки движения с разными направлениями (см рис.2).
Процедуры построения скомпенсированных кадров идентичны для обоих направлений и состоят из нескольких этапов:
1. Заполнение «области объектов». Заполнение области скомпенсированного кадра, блоки которой были «захвачены» процедурой оценки движения с допустимыми
тур = <
ошибками. На этом этапе вычисляется попиксельная ошибка скомпенсированного кадра.
Pic. 3. Фрагмент кадра из последовательности «toy» после первого шага
шил
Pic. 4. До шага 2 Pic. 5. После шага 2
2. Коррекция заполненной области. Поиск и заполнение пустых блоков на
скомпенсированном кадре, которые являются частью движущихся объектов и не были скомпенсированы.
Pic. 6. До шага 3 Pic. 7. После шага 3
3. Заполнение покрытых/непокрытых (covered/uncovered) областей. Оставшиеся
пустые области копируются либо из текущего кадра, либо из предыдущего.
с
Интерполированным кадр
Pic. 8. Схема построения интерполированного кадра
Далее, интерполированный кадр строится из двух скомпенсированных путем
сравнения их попиксельных ошибок. Схема, описывающая процесс построения скомпенсированных кадров, изображена ниже:
Предыдущий кадр
Текущий кадр
3-Е
Коррекция заполненной области
4 L
Заполнение «новых» и «старых» областей
3-Е
Скомпенсированный кадр
Pic. 9. Схема построения скомпенсированного кадра
Ниже более подробно описаны этапы построения скомпенсированного кадра.
Заполнение «области объектов»
На данном этапе обрабатываются блоки текущего кадра. Блоки, которые были
найдены в предыдущем кадре с допустимой ошибкой, подвергаются обработке. Для каждого такого блока вычисляется его позиция на интерполированном кадре. В случае, если эта позиция не лежит на сетке 4х4, то соответствующий вектор движения сдвигается таким образом, чтобы координаты соответствующего блока были кратны 4. Схема этой операции приведена на рис.4.
Pic. 10. Заполнение «областей объектов»
Позиция текущего блока на скомпенсированном кадре определяется координатами «опорного» пикселя, который отмечен маленькими квадратами внутри каждого блока (рис. 10). Формулы, по которым вычисляются координаты пикселей на скомпенсированном кадре:
р = (х, у) - координаты пикселя на текущем кадре Ыоск^, j) - координаты блока 4х4 в кадре mv(dx, dy) - вектор движения для данного пикселя
blocks
offset = remainder <jP
ref _ pixel = blockcurrent * 4 + (1,1)7
block
ref _ pixel - mv/
p = block * 4 + offset
г compens compens J J
shift = {blockcompens * 4 + (1,1) r ) - ^ref _ pixel
color (pcompens ) = ShiftBy p - mV + shift )previous , ~V^ errorpixel = |(p - mV + shift )prev.ous - (p„ + shift )
При выполнении операции сдвига вектора движения часть блока может быть скомпенсирована не с тем вектором, однако эта неточность будет учтена при вычислении попиксельной ошибки скомпенсированного кадра. В случае, изображенном на рисунке 4, ошибка для блока 2 скомпенсированного кадра равна разнице блоков 1 и 3.
После того, как получены координаты заполняемого пикселя на скомпенсированном кадре, необходимо вычислить его значение. Это осуществляется при помощи интерполяции. Поскольку вектора движения находятся с полупиксельной точностью, то некоторые вдвое уменьшенные вектора могут иметь четверть-пиксельную точность. В данном случае в зависимости от количества координат вектора, имеющих четверть-пиксельную дробную часть, производится билинейная интерполяция по одной из следующих схем (рис.11-13).
Пиксели
исходного кадра В вверх на 0.25
С вверх на 0.5
С вверх на 0.25 Пиксели
исходного кадра
А,С - пиксели исходного кадра В - пиксели С, сдвинутые вверх на 0,5 пикселя красный - пиксели, сдвинутые на 0.25 пикселя
Pic. 11. Схема интерполяции в случае вертикального сдвига на четверть пикселя
/A+BN fA+BN
wJ wj
(в J [в J ( в )
/ъ+с\
4
0.25 0.25
А,С - пиксели исходного кадра В - пиксели С, свдинутые влево на 0,5 пикселя красный - пиксели, сдвинутые на 0.25 пикселя
Pic. 12. Схема интерполяции в случае горизонтального сдвига на четверть пикселя
05
Зеленые - пиксели исходного кадра Голубые - пиксели, сдвинутые на 0,5 пикселя др.цвет - пиксели, сдвинутые на 0.25 пикселя
Pic. 13. Схема интерполяции в случае диагонального сдвига на четверть пикселя
3. Коррекция заполненной области
На скомпенсированном кадре могут быть пустые блоки, являющиеся частью
движущегося объекта или текстуры, которые можно заполнить используя вектора движения соседних блоков.
На данном этапе обрабатываются все пустые блоки скомпенсированного кадра размером 4х4. Для каждого пустого блока проверяется корреляция векторов соседних блоков. Если вектора коррелированны, то вычисляется средний вектор. Полученный вектор используется для компенсации пустого блока. Таким образом, после выполнения данного шага на скомпенсированном кадре должны остаться области, соответствующие появившимся или исчезнувшим объектам (покрытые/непокрытые области).
Заполнение «новых» и «старых» областей
В процессе движения в кадре могут появляться новые объекты и/или исчезать
старые. Для таких объектов невозможно создать корректные промежуточные положения.
Поэтому в задаче увеличения частоты кадров требуется специальная обработка соответствующих участков кадра.
На первом этапе построения скомпенсированного кадра блоки, для которых ошибка вектора движения слишком велика, помечаются как часть «новой» области. Заполнение этих областей выполняется путем копирования соответствующих участков из текущего кадра. Области скомпенсированного кадра, оставшиеся пустыми после выполнения всех описанных операций, считаются частью «старой» области и заполняются из предыдущего кадра. Формулы, описывающие заполнение «новых» областей:
I (р, х) = I (р, Х+1),
и «старых»:
I (р, х) = I (Р, Х-1). 4. Построение интерполированного кадра
Каждый пиксель интерполированного кадра копируется из кадра,
скомпенсированного либо вперед, либо назад. Направление, из которого производится копирование выбирается по величине средней ошибки в окрестности данного пикселя в скомпенсированных кадрах. Алгоритм данного процесса изображен на схеме:
Pic. 14. Схема вычисления пикселей интерполированного кадра
В каждом скомпенсированном кадре вычисляется средняя ошибка пикселей вокруг
текущей точки. Пиксель, имеющий меньшую среднюю ошибку, копируется в интерполированный кадр. 5. Результаты
Для объективного сравнения были использованы несколько видео последовательностей: «akiyo», «news» и «waterfall» - примеры последовательностей со слабым движением, остальные последовательности характеризуются более сложным движением. На графиках и рисунке использованы следующие обозначения: MSU -
разработанный метод, LI - метод линейной интерполяции (Linear Interpolation) и FR -метод повторения кадров (Frame Repetition).
Ниже приведены несколько графиков, показывающих результаты сравнения с использованием PSNR яркостной компоненты. При вычислении метрики сравнивались оригинальная последовательность и последовательность, полученная в результате замены каждого второго кадра интерполированным. Такое сравнение позволяет оценить различие между оригинальными и интерполированными кадрами с использованием объективной метрики.
Пользуясь этими графиками для оценки качества преобразованных последовательностей, следует учитывать, что падение метрики часто вызвано артефактами, которые почти не заметны визуально, т.е. падение метрики не всегда означает понижение визуального качества. Например, на 18 кадре последовательности «waterfall» значение метрики разработанного метода ниже, чем у метода «Линейной интерполяции» (см. рис. 16), но при этом визуальное качество последнего метода ниже: область водопада смазана в направлении движения потока воды (см. рис. 18).
Pic. 15. График Y-PSNR для последовательности «bus»
*** MSU
вва FR
Pic. 16. График Y-PSNR для последовательности «waterfall»
Усредненные значения Y-PSNR
50 -
Последовательность
^MSU
-н—FR
Pic. 17. График усредненной Y-PSNR для всех последовательностей
График на рис. 17 получен в результате усреднения показателей Y-PSNR по интерполированным кадрам последовательности. Легко видеть, что среднее преимущество разработанного метода по сравнению с приведенными составляет более 5дБ.
6. Выводы
Разработан алгоритм преобразования скорости кадров в видео потоке, позволяющий получать видео последовательности с постоянным уровнем резкости во времени, что нехарактерно для других алгоритмов FRC. Результаты объективного сравнения с другими
методами ПЧК показали преимущество разработанного метода равное в среднем 5дБ. Описанный метод выгодно отличается от других методов преобразования частоты кадров плавностью движения на преобразованном видео, что достигается высокой точностью процедуры оценки движения.
7. Литература
[1] R. Castagno, P. Haavisto, G. Ramponi, "A Method for Motion Adaptive Frame Rate Up-Conversion". IEEE Transactions on circuits and Systems for Video Technology, Vol 6, No. 5, October 1996.
[2] Tien-ying Kuo, JongWon Kim and C.-C. Jay Kuo, "Motion-Compensated Frame Interpolation Scheme for H.263 Codec". Proc. ISCAS 99, May 1999. 27.
[3] Emilio Antunez, "Low-cost Temporal Interpolation of Video Frames". Image Communication II, May 27, 2002.
[4] Shan Liu, JongWon Kim and C.-C. Jay Kuo, "Non-Linear Motion-Compensated Interpolation for Low Bit Rate Video", in SPIE Proceeding of International Symposium on Optical Science, Engineering, and Instrumentation, Applications of Digital Image Processing XXIII, San Diego, CA, July, 2000
[5] G.M.X. Fernando and D.W. Parker, "Motion Compensated Display Conversion", in Proc. 2nd Int. Workshop on HDTV,, I'Aquila, Italy, Feb. 1988.
[6] Sanjeev Kumar, Mainak Biswas and Truong Q Nguyen, "Global Motion Estimation in Frequency and Spatial Domain", IEEE International Conference on Speech, Acoustics, and Signal Processing, March 19-23, 2004
[7] Ravi Krishnamurthy, John W. Woods and Piere Moulin, "Frame Interpolation and Bidirectional Prediction of Video using Compactly-Encoded Optical Flow Fields and Label Fields", IEEE Trans. Circ. Syst. Video Tech, Vol. 9, No. 5, pp. 713-726, Aug. 1999
Об авторах
Дмитрий Ватолин — к.ф.-м.н., старший научный сотрудник
лаборатории компьютерной графики ВМиК МГУ. Основатель сервера «Все о сжатии»
http://compression.ru/
E-mail: dmitriy@graphics .cs.msu.su
Сергей Гришин — студент, сотрудник лаборатории
компьютерной графики ВМиК МГУ.
E-mail: sgrishin@graphics.cs.msu.su
Сравнение исходного и интерполированных кадров
время
Pic. 18. Пример работы на последовательности «Waterfall» (кадр 18)