Способ компенсации движения и устройство для его реализации
METHOD OF MOTION COMPENSATION AND DEVICE FOR ITS IMPLEMENTATION

Изобретение относится к видеоинформационной технике и может применяться в цифровых кодирующих устройствах для видеотелефонии, видеоконференцсвязи, телевизионного цифрового вещания стандартной и высокой четкости.
Используемые далее понятия.
Подвижное изображение, видеопоследовательности, динамическоеизображение, или просто видео - набор изображений, зависимых друг от друга по времени. Каждое изображение видеопоследовательности принято называть кадром.
При обработке кадр часто разделяется на блоки,или макроблоки (macroblock) используя терминологию стандарта MPEG-2 (см. ISO/IEC 13818-2:2013 Information technology -- Generic coding of moving pictures and associated audio information -- Part 2: Video [1]). Блоки представляют области одинакового размера и строго определенной формы. Для удобства обработки, блок обычно имеет форму квадрата (32×32, 16×16, 8×8 пикселей).
Для подвижных изображений характерно, что каждый кадр часто похож на соседние кадры. Это называется временной избыточностью, которая позволяет построить предсказание для рассматриваемого блока в текущем кадре из похожего блока в соседнем кадре с некоторым смещением. Для описания такого смещения блока используется вектор движения, определение которого можно найти, например, в статье K.R. Rao, J.J. Hwang Techniques and Standards for Image, Video and Audio Coding, 1996, Prentice-Hall PTR, ISBN 0-13-309907-5 [2]. Для устранения временной избыточности применяются методы поиска и компенсации движения. Наиболее простым и точным является способ поиска векторов движения блоков на основе алгоритма полного перебора [2].
Для поиска вектора движения  рассматривается сумма абсолютных разностей (SAD) яркости пикселя из блока в текущем кадре и яркости соответствующего пикселя из блока в опорном кадре со сдвигом на вектор движения:
Здесь Y(u, v) - значение яркости пикселя с координатами (u, v) в текущем кадре;
X(u, v) - значение яркости пикселя с координатами (u, v) в опорном кадре;
- размер блока;
x
y
(V, V) - вектор движения;
(x, y)
- координаты верхнего левого угла рассматриваемого блока в текущем кадре.
Вектор движения , для которого значение SAD имеет наименьшее значение, принимается за искомый вектор. Векторы движения ищутся методом полного перебора в некоторой ограниченной окрестности: .
Этот способ обычно используется в качестве эталонного для оценки качества других способов поиска векторов движения.
Более эффективным способом поиска векторов движения с точностью до пикселя является способ из А.В. Дворкович, В.П. Дворкович, Ю.Б. Зубарев, А.Ю. Соколов. Патент РФ №2137194 «Способ анализа векторов движения деталей в динамических изображениях» [3]. Ограничением этого известного способа является нахождение векторов движения лишь с точностью до целого числа пикселей по горизонтали и вертикали, при том, что реальное движение объектов в кадре точнее описывается нецелыми компонентами вектора движения.
Наиболее близким по технической сущности предлагаемого способа является способ из ITU-T Recommendation H.265. High efficiency video coding, 02/2018; ISO/IEC 23008-2:2017 Information technology -- High efficiency coding and media delivery in heterogeneous environments -- Part 2: High efficiency video coding (MPEG-H HEVC) [4], в котором осуществляется поиск векторов движения с точностью до долей пикселя, причем промежуточные точки получают путем интерполяции.
Самым распространенным методом компенсации движения является метод компенсации движения, основанный на векторах движения с точностью до долей пикселя [4], найденных с использованием функции стоимости, вычисляемой по формуле (1). Однако, такой традиционный метод компенсации движения хорошо работает для несложных видео, в которых параллельный перенос является основным типом движения объектов текущего кадра относительно опорного кадра, а для более сложных видео, в которых происходят масштабирование, вращение, изменение яркости и т.п., такой метод оказывается неэффективным.
Задачей настоящего изобретения является создание способа повышения качества традиционного метода компенсации движения и устройство для его реализации, позволяющих повысить точность предсказания, и, вследствие этого, уменьшить информационную энтропию кодируемого разностного сигнала, что дает возможность повысить качество восстановленного кадра при том же объеме закодированных данных даже для сложных видео.
Технический результат предлагаемого способа заключается в повышении качества предсказания кадра путем использования предлагаемой функции аппроксимации с дополнительными параметрами. Техническим результатом предлагаемого устройства является уменьшение объема данных, требуемых для кодирования, при заданном качестве восстановленного кадра.
Полезный результат достигается тем, что в устройстве реализован алгоритм определения дополнительных параметров и векторов движения с целью увеличения качества предсказания. В устройстве также реализован механизм предсказания кадра на основе опорного кадра, векторов движения и параметров функции аппроксимации.
Для реализации поставленной задачи предлагается способ компенсации движения, состоящий из последовательных этапов, на которых:
производят запоминание дискретных отсчетов яркости текущего и опорного кадров, производят поиск векторов движения с точностью до долей пикселя вместе с параметрами дополнительного преобразования для более точного предсказания кадра,
осуществляют предсказание кадра на основе векторов движения и дополнительного преобразования с параметрами, при этом вектор движения выбирают по функции стоимости, выраженной формулой:
x
y
где Y(u, v) - значение яркости пикселя с координатами (u, v) в текущем кадре; Х(u, v) - значение яркости пикселя с координатами (u, v) в опорном кадре; М × N - размер блока; (V, V) - вектор движения;
(х, у) - координаты верхнего левого угла рассматриваемого блока в текущем кадре;
F(X) - функция аппроксимации, содержащая параметры дополнительного преобразования. Указанный способ основан на дополнительном преобразовании яркости пикселей блока из опорного кадра для повышения точности предсказания текущего блока, а также способе вычисления параметров дополнительного преобразования при поиске векторов движения.
В предлагаемом способе компенсации движения для восстановления кадра на устройстве хранения сохраняют или передают с требуемой точностью в канал связи параметры функции аппроксимации для каждого блока, представляющие собой целые числа. Вектор движения и каждый параметр функции аппроксимации передаются отдельно.
Для реализации указанного способа предлагается устройство компенсации движения, содержащее подключенные ко входу цифрового сигнала динамического изображения последовательно соединенные блок буферизации, блок поиска движения и блок компенсации движения, в котором в блок поиска движения введен блок вычисления параметров функции аппроксимации и модифицированный блок вычисления функции стоимости с учетом предлагаемой функции аппроксимации, в блок компенсации движения включен блок уточнения предсказания с помощью предлагаемой функции аппроксимации с полученными параметрами, в котором выход блока сигнала яркости текущего кадра подключен ко входу блока памяти опорного кадра, входу блока вычисления параметров функции аппроксимации и входу модифицированного блока вычисления функции стоимости, выход блока памяти опорного кадра подключен ко входу блока вычисления параметров функции аппроксимации, входу модифицированного блока вычисления функции стоимости и входу блока первичного предсказания, выход блока вычисления параметров функции аппроксимации подключен ко входу модифицированного блока вычисления функции стоимости и входом блока выбора вектора движения, выход блока подключен ко входу блока выбора вектора движения, один выход блока выбора вектора движения соединен со входом блока первичного предсказания, а другой выход блока выбора вектора движения соединен со входом блока уточнения предсказания и выход блока блока первичного предсказания соединен с входом блока уточнения предсказания с получением на выходе устройства векторов движения, параметров дополнительного преобразования и предсказания кадра, для приема другими модулями в кодирующих устройствах, при этом все указанные блоки соединены с блоком управления.
На фиг. 1 изображена функциональная блок-схема заявляемого устройства.
Устройство, изображенное на фиг. 1, содержит подключенные к входу цифрового сигнала динамического изображения 1 последовательно соединенные блок памяти сигнала яркости текущего кадра 2.1 и блок памяти опорного кадра 2.2, которые находятся внутри блока буферизации 2. Выходы блока буферизации 2 подключены ко входам блока поиска движения 3, где происходит вычисление векторов движения с точностью до долей пикселя и параметров дополнительного преобразования. Информация о векторах движения 6 и параметрах дополнительного преобразования 5 подается на выходы устройства и также на вход блока компенсации движения 4. Векторы движения 6 подаются на вход блока первичного предсказания 4.1, выход которого подключен к блоку уточнения предсказания 4.2, выход которого является предсказанием кадра и передается на выход устройства 7. Функционирование устройства регулируется блоком управления.
Сущность предлагаемого способа компенсации движения состоит в следующем. Цифровой сигнал динамического изображения со входа устройства 1 (фиг. 1) поступает на блок сигнала яркости текущего кадра 2.1 и через него на блок памяти опорного (например, предыдущего) кадра 2.2. Дискретные отсчеты соответствующих пикселей текущего и опорного кадров поступают на блок поиска движения 3, в котором с использованием способа [4] осуществляется нахождение кандидатов для вектора движения с точностью до долей пикселя и затем выполняется процесс поиска векторов движения вместе с параметрами дополнительного преобразования. Полученные векторы движения 6 поступают на блок первичного предсказания 4.1 для традиционного предсказания на основе векторов движения и опорного кадра. Блок 4.2 уточняет полученное предсказание с помощью дополнительного преобразования используя для этого параметры 5. На выходы устройства передаются векторы движения 6, параметры дополнительного преобразования 5 и предсказание кадра 7, которые принимают другие модули в кодирующих устройствах.
Нужно отметить, что принципиальное отличие предлагаемого способа по сравнению с традиционным методом компенсации движения происходит в блоках 3 и 4.2, которые будут рассматриваться более подробно на конкретном примере.
В традиционном методе компенсации движения, для поиска векторов движения используется функция стоимости, вычисляемая по формуле (1). В предлагаемом способе вводится новая функция стоимости, вычисляемая по формуле (2):
Здесь Y(u, v) - значение яркости пикселя с координатами (u, v) в текущем кадре;
X(u, v)- значение яркости пикселя с координатами (u, v) в опорном кадре;
- размер блока;
x
y
(V, V) - вектор движения;
(x, y) - координаты верхнего левого угла рассматриваемого блока в текущем кадре.
Из формулы (2) видно, что в предлагаемом способе используется функция F(X(x,y)), называемая функцией аппроксимации, с помощью которой выполняется процесс уточнения предсказания при компенсации движения. По введенной терминологии, традиционный метод компенсации движения использует простую функцию аппроксимации Y = X, а заявляемый применяет более сложные функции F(X(x, y)), в силу чего обеспечивается повышение качества предсказания по сравнению с традиционным методом.
В заявляемом способе могут применяться функции одного параметра, двух, трех или более параметров. Ниже, в качестве примера приведены некоторые из использованных функций аппроксимации:
F(X) = aX,
F(X) = aX + b,
a
F(X) = bX,
F(X) = X / (bX + a),
aX
F(X) = bX,
2
2
F(X) = X / (a + bX + cX),и многие другие.
Для более подробного описания в качестве примера выбрана функция аппроксимации двух параметров, выраженная по формуле 3.
где: r - значение яркости пикселя блока в опорном кадре;
F(r) - значение предсказанной яркости пикселя рассматриваемого блока в текущем кадре;
a, b - параметры функции аппроксимации.
Параметры a, b можно вычислить используя метод наименьших квадратов из условия (4):
где: Y - значение яркости пикселя рассматриваемого блока в текущем кадре;
X - значение яркости пикселя блока в опорном кадре;
- размер блока.
Решение условия (4) представлено формулой (5):
где:  обозначает среднее значение X по всем пикселям блока.
Нужно отметить, что параметры a, b принимают не целые, а действительные значения, так что их необходимо передавать с точностью, которая обеспечивает повышение качества предсказания блока по сравнению с традиционным методом предсказания.
Необходимая точность параметров определяется по формуле (6):
С указанной точностью параметров предсказание яркости пикселя осуществляется с ошибкой от 0 до 3, что гарантирует высокое качество предсказания. Однако, после проведенного исследования выяснилось, что увеличения точности параметров приведет к увеличению их информационной энтропии. Для рассматриваемой функции аппроксимации проведенным исследованием были найдены оптимальные точности параметров для обеспечения минимальной информационной энтропии при не увеличении искажений .
Продолжим подробное описание блока поиска движения 3 и блока уточнения предсказания 4.2 предлагаемого устройства. Для каждого кандидата из рассматриваемого множества векторов движения, полученных с помощью способа [4], сначала блок вычисления параметров функции аппроксимации 3.1 вычисляет параметры дополнительного преобразования (a, b) по формулам (5), квантует их до заданным точности и передает их на вход модифицированного блока вычисления функции стоимости 3.2, где происходит вычисление функции стоимости по формулам (2) и (3), которая поступает в блок выбора вектора движения 3.3. В блоке 3.3 выбираются вектор движения и соответствующие квантованные параметры, которые обеспечивают минимум функции стоимости. Как и в традиционном методе компенсации движения, блок 4.1 вычисляет первичное предсказание X на основе опорного кадра из блока 2.2 и вектора движения из блока 3, в результате чего получается блок из опорного кадра, соответствующий полученному вектору движения. Блок 4.2 принимает дополнительные параметры (a, b) из блока 3, первичное предсказание X из блока 4.1 и уточняет предсказание с помощью функции аппроксимации, по формуле (3).
Сравнение с решениями, использующими традиционный метод компенсации движения показывает, что предлагаемые устройство и способ компенсации движения имеют более высокую точность предсказания и уменьшают объем данных, требуемых для кодирования путем использования предложенной функции аппроксимации при незначительном увеличении вычислительных затрат.
На фиг. 2 проиллюстрирована схема вейвлет-видеокодера, на котором проверена практическая значимость заявляемого изобретения. Нужно отметить, что для применения предлагаемого способа кроме векторов движения нужно еще передавать параметры функции аппроксимации.
На фиг. 3-6 показаны кривые зависимости уровня искажений от скорости выходного потока (RD-кривые) для традиционного и предлагаемого способов компенсации движения для тестовых видеопоследовательностей высокого разрешения «1080p_riverbed» и «1080p_rush_hour» (см. Тестовые видеопоследовательности // http://media.xiph.org/video/derf/[5]).
Применение предлагаемого способа компенсации движения для видео высокого разрешения в вейвлет-видеокодере, схема которого изображена на фиг. 2, обеспечивает повышение качества восстановленного кадра, что иллюстрируется кривыми зависимости уровня искажений от скорости выходного потока (RD - кривые), представленными на фиг. 3-6. Полученные результаты демонстрируют существенное уменьшение объема данных при заданном качестве восстановленного кадра. Конкретно, для видео «1080p_riverbed» и режима разбиения кадра на блоки 8×8 получено уменьшение объем данных в 13,5% при качестве восстановленного кадра PSNR = 38, и 10% при PSNR = 40. А для случая разбиения кадра на блоки 16×16 получены уменьшение объема данных в 15% при качестве восстановленного кадра PSNR = 38 и PSNR = 40. Для видео «1080p_rush_hour» и случая разбиения кадра на блоки 16×16, предлагаемый способ может уменьшить объем данных на 34% при качестве восстановленного кадра PSNR = 40. Предложенная схема устройства отличается несложной реализацией и может быть применена в различных видеокодеках, использующих блочное предсказание движения.