СПОСОБ МЕЖКАДРОВОГО ПРОГНОЗИРОВАНИЯ ДЛЯ КОДИРОВАНИЯ МНОГОРАКУРСНОЙ ВИДЕОПОСЛЕДОВАТЕЛЬНОСТИ

1. Способ межкадрового прогнозирования для кодирования многоракурсной видеопоследовательности, в котором кодируемый кадр из видеопоследовательности кодируемого ракурса представляют как набор блоков, определяют, по меньшей мере, один восстановленный кадр из видеопоследовательности кодируемого ракурса, обозначаемый как опорный кадр, генерируют синтезированные кадры, соответствующие кодируемому кадру и каждому из опорных кадров, используя восстановленные карты глубин и восстановленные кадры видеопоследовательности из, по меньшей мере, одного другого ракурса, отличающийся тем, что выполняют следующие дополнительные операции:
- определяют в синтезированном кодируемом кадре синтезированный текущий блок, который соответствует кодируемому блоку;
- получают, по меньшей мере, один вектор движения для синтезированного текущего блока с помощью синтезированных опорных кадров, полученный вектор движения далее обозначается как «синтезированный вектор движения»;
- выводят, по меньшей мере, один вектор движения для кодируемого блока с использованием метода сопоставления шаблонов, с использованием шаблона кодируемого блока, с использованием опорных кадров и с использованием полученного синтезированного вектора движения, выведенный вектор движения далее обозначается как «уточненный вектор движения»;
- вычисляют блок-прогноз для кодируемого блока с использованием уточненных векторов движения.
2. Способ по п.1, отличающийся тем, что размеры синтезированного текущего блока равны или превышают размеры кодируемого блока, и координаты синтезированного текущего блока определяют как один из следующих вариантов:
- координаты центра синтезированного текущего блока равны координатам центра кодируемого блока;
- координаты синтезированного текущего блока задают смещением, которое передают в декодер в сжатом потоке;
- координаты синтезированного текущего блока задают смещением, которое выводят с помощью метода сопоставления шаблонов, и это смещение идентичным образом выводят в декодере без передачи в сжатом потоке.
3. Способ по п.1, отличающийся тем, что выполняют выведение, по меньшей мере, одного вектора движения для кодируемого блока, с использованием метода сопоставления шаблонов, причем проводят поиск уточненного вектора движения методом сопоставления шаблонов в окрестности координат, которые задает синтезированный вектор движения в соответствующем опорном кадре.
4. Способ по п.3, отличающийся тем, что поиск уточненного вектора движения методом сопоставления шаблонов предусматривает выполнение следующих операций:
- вычисляют функцию сходства между шаблоном кодируемого блока и шаблоном, на который указывает уточненный вектор движения, и вычисляют функцию сходства между шаблоном кодируемого блока и шаблоном, на который указывает нулевой вектор движения в том же опорном кадре, на который указывает уточненный вектор движения;
- обнуляют уточненный вектор движения, в случае, когда вычисленная функция сходства для нулевого вектора движения показывает большее сходство, чем вычисленная функция сходства для уточненного вектора движения.
5. Способ по п.3, отличающийся тем, что поиск уточненного вектора движения методом сопоставления шаблонов, включает в себя вычисление критерия минимизации между двумя шаблонами в виде суммы квадратов разности локальных вертикальных и горизонтальных градиентов, при этом:
- выполняют для каждого пикселя первого шаблона вычисление локального вертикального градиента и вычисление локального горизонтального градиента;
- выполняют для каждого пикселя второго шаблона вычисление локального вертикального градиента и вычисление локального горизонтального градиента;
- выполняют для каждого пикселя обоих шаблонов вычисление вертикальной разности между локальным вертикальным градиентом в первом шаблоне и локальным вертикальным градиентом во втором шаблоне;
- выполняют для каждого пикселя обоих шаблонов вычисление горизонтальной разности между локальным горизонтальным градиентом в первом шаблоне и локальным горизонтальным градиентом во втором шаблоне;
- для каждой разности выполняют попиксельно вычисление квадрата разности;
- выполняют вычисление суммы всех квадратов разностей.
6. Способ по п.3, отличающийся тем, что в случае выведения, по меньшей мере, двух уточненных векторов движения, процедура выведения, по меньшей мере, одного вектора движения для кодируемого блока включает поиск набора векторов движения для многонаправленного прогноза методом сопоставления шаблонов в областях с центрами, имеющими координаты, которые задаются уточненными векторами движения или синтезированными векторами движения в соответствующих опорных кадрах, причем векторы движения, используемые для многонаправленного прогноза, обозначаются как гипотезы, а несколько гипотез, используемых совместно для формирования блока-прогноза, обозначаются как набор гипотез.
7. Способ по п.6, отличающийся тем, что поиск набора гипотез включает в себя определение наилучшего набора гипотез среди возможных наборов-кандидатов, и предусматривает, что:
- выполняют формирование опорного шаблона с помощью шаблонов, на которые указывают гипотезы набора-кандидата, при этом вычисление значения каждого пикселя опорного шаблона включает в себя усреднение всех соответствующих пикселей шаблонов, на которые указывают гипотезы набора-кандидата;
- выполняют вычисление критерия минимизации между опорным шаблоном и шаблоном кодируемого блока; значения критериев минимизации используют далее для определения наилучшего набора гипотез.
8. Способ по п.6, отличающийся тем, что вычисление блока-прогноза для кодируемого блока для многонаправленного прогноза включает в себя следующие этапы:
- вычисляют весовые коэффициенты для каждого блока-прогноза, на который указывает соответствующая гипотеза в соответствующем опорном кадре, как функции от значения функции сходства, при этом функцию сходства вычисляют между шаблоном кодируемого блока и шаблоном, на который указывает гипотеза;
- вычисляют блок-прогноз для кодируемого блока на основе блоков-прогнозов, на которые указывают гипотезы из набора гипотез, и с использованием вычисленных весовых коэффициентов.
9. Способ по п.8, отличающийся тем, что одна из гипотез указывает в синтезированный кодируемый кадр, причем процесс вычисления весовых коэффициентов предусматривает выполнение следующих операций:
- выполняют коррекцию яркости шаблона, на который указывает гипотеза, указывающая на синтезированный кодируемый кадр; причем шаблон далее обозначается как скорректированный шаблон;
- вычисляют весовой коэффициент для блока-прогноза, на который указывает гипотеза, указывающая на синтезированный кодируемый кадр, как функции от значения функции сходства между шаблоном кодируемого блока и скорректированным шаблоном;
причем процесс вычисления блока-прогноза для кодируемого блока включает в себя следующие этапы:
- выполняют коррекцию яркости блока-прогноза, на который указывает гипотеза, указывающая на синтезированный кодируемый кадр;
- вычисляют блок-прогноз для кодируемого блока с участием скорректированного блока-прогноза и с использованием вычисленного весового коэффициента для скорректированного блока-прогноза.