СПОСОБ ПРЕДСКАЗАНИЯ ДВИЖЕНИЯ
MOTION PREDICTION METHOD

ПЕРЕКРЕСТНАЯ ССЫЛКА НА РОДСТВЕННЫЕ ЗАЯВКИ
Данная заявка притязает на преимущество приоритета предварительной патентной заявки США с серийным номером 61/295,810, поданной 18 января, 2010, и предварительной патентной заявки США с серийным номером 61/ 326,731, поданной 22 апреля 2010, которые полностью включены сюда на основании ссылки.
ОБЛАСТЬ ТЕХНИКИ
Данное изобретение относится к обработке видеоинформации и, в частности, к предсказанию движения видеоинформации.
ПРЕДПОСЫЛКИ СОЗДАНИЯ ИЗОБРЕТЕНИЯ
Новый перспективный Н.264 стандарт сжатия может обеспечить хорошее качество видео при значительно более низкой скорости передачи в битах, чем предшествующие стандарты, за счет субпиксельной точности и многократных ссылок. Процесс сжатия видео можно в целом разделить на 5 частей, а именно: inter-предсказание /intra-предсказание, преобразование/обратное преобразование, квантование/обратное квантование, ФНЧ (синхронного детектора) и энтропийное кодирование. Н.264 используется в различных приложениях, таких как Blu-ray диски, DVB службы вещания, спутниковое телевизионное вещание, кабельное телевизионное вещание и видеоконференции в режиме реального времени.
Поток данных видеосигналов включает множество кадров, и каждый кадр разделен на множество кодирующих блоков (например, макроблоки или расширенные макроблоки) для обработки видеоинформации. Каждый кодирующий блок может быть сегментирован на фрагменты квадротимического представления, и листовой кодирующий блок называется блоком предсказания. Блок предсказания может быть также сегментирован на фрагменты квадротимического представления, причем для каждого фрагмента устанавливается параметр движения. Чтобы сократить расходы на передачу огромного количества параметров движения, предсказатель векторов движения (MVP) рассчитывается для каждого фрагмента путем ссылки на соседние кодовые блоки, и, таким образом, эффективность кодирования может быть улучшена, поскольку движение соседних блоков имеет тенденцию к высокой пространственной корреляции.
На принципиальной схеме Фиг.1 показаны текущий блок 100 и множество соседних блоков А, В, С и D. В этом примере как текущий блок 100, так и соседние блоки А, В, С и D имеют один и тот же размер, однако эти блоки не обязательно должны иметь одинаковый размер. Предсказатель векторов движения (MVP) текущего блока 100 прогнозируется на основе векторов движения соседних блоков А, В и С, или А, В и D, если С недоступен. Когда текущий блок 100 - это 16x16 блок, и доступен вектор движения соседнего блока С, то среднее значение векторов движения соседних блоков А, В и С и является MVP текущего блока 100. Когда текущий блок 100 - это 16x16 блок, и отсутствует вектор движения соседнего блока С, то среднее значение векторов движения соседних блоков А, В и D является MVP текущего блока 100. Когда текущий блок 100 - это 8x16 сегмент левой половины 16x16 блока, то вектор движения соседнего блока А становится MVP текущего блока 100. Когда текущий блок 100 - это 8x16 сегмент правой половины 16x16 блока, вектор движения соседнего блока С становится MVP текущего блока 100. Когда текущий блок 100 - это 16x8 сегмент верхней половины 16x16 блока, вектор движения соседнего блока В становится MVP текущего блока 100. Когда текущий блок 100 - это 16x8 сегмент нижней половины 16×16 блока, вектор движения соседнего блока А становится MVP текущего блока 100.
Когда MVP текущего блока прогнозируется на основе векторов движения соседних блоков А, В, С и D, то векторы движения соседних блоков А, В, С и D не имеют надлежащего масштабирования во времени. Например, базовые кадры соседних блоков А, В и С различны, и векторы движения соседних блоков А, В и С соответствуют базовым кадрам в указанном порядке. Временные интервалы между каждым базовым кадром и текущим кадром различны. Таким образом, векторы движения соседних блоков А, В и С должны быть масштабированы во времени на основании временных интервалов до предсказания MVP текущего блока 100 на основе векторов движения соседних блоков А, В и С.
MVP текущего блока 100 предсказывается только на основе векторов движения соседних блоков А, В, С и D. Точность предсказания MVP может быть также улучшена за счет рассмотрения большего числа вариантов MVP, и на основе оптимизации степени искажения выбирается лучший вариант MVP. Например, предлагается состязательность векторов движения (MVC) для выбора лучшего MVP из предварительно заданного набора вариантов, оговоренных в уровне последовательности. Предварительно заданный набор вариантов может включать Н.2 64 стандартный предсказатель (например, медианный MV соседних блоков), MV совместного блока в том же месте в базовом кадре, что и текущий блок, и MV соседних блоков. Рекомендованное число MVP в предварительно заданном наборе вариантов составляет два варианта. Предварительно заданный набор вариантов, исходя из способа состязательности векторов движения, закрепляется в уровне последовательности видеоинформации.
КРАТКОЕ ОПИСАНИЕ
Это изобретение представляет способ предсказания движения. Прежде всего, определяется множество вариантов блоков, соответствующих текущему блоку текущего кадра. Затем получено множество векторов движения вариантов блоков. Затем рассчитывается множество факторов временного масштабирования вариантов блоков исходя из множества временных интервалов между множеством базовых кадров вектора движения и текущим кадром. Вектора движения вариантов блоков затем масштабируются на основе факторов масштабирования по времени, чтобы получить множество масштабных векторов движения. В заключение, предсказатель вектора движения для предсказания движения текущего блока выбирается из вариантов блоков исходя из масштабных векторов движения.
Изобретение также представляет собой способ предсказания движения. Сначала определяется множество вариантов блоков для предсказания движения текущего блока. Затем определяется множество кодирующих блоков, соответствующих текущему блоку. Далее рассчитывается множество величин разности движения между векторами движения вариантов блоков, соответствующих кодирующим блокам, и векторами движения кодирующих блоков. Величины разности движения, соответствующие вариантам блоков, затем суммируются в соответствии с рядом весовых коэффициентов, чтобы получить множество взвешенных сумм, соответствующих вариантам блоков в указанном порядке. В заключение, по меньшей мере один вариант блока для предсказания движения текущего блока выбирается из вариантов блоков на основе взвешенных сумм.
В следующих вариантах осуществления дано детальное описание со ссылкой на сопутствующие чертежи.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Наиболее полное представление об изобретении можно получить на основе чтения последующего детального описания и примеров со ссылками на сопутствующие чертежи, где:
Фиг.1 - это принципиальная схема текущего кодирующего блока и множества соседних кодирующих блоков;
Фиг.2 - это блок-схема кодера сигнала изображения в соответствии с изобретением;
Фиг.3 - это принципиальная схема масштабирования векторов движения двух вариантов блоков;
Фиг.4 - это блок-схема способа предсказания движения с регулировкой разности по времени;
Фиг.5 - это принципиальная схема множества вариантов блоков для предсказания движения текущего блока в соответствии с вариантом осуществления изобретения;
Фигуры. 6А и 6В иллюстрируют блок-схему способа предсказания движения с адаптивно выбранными вариантами блоков в соответствии с вариантом осуществления изобретения; и
Фиг.7 - это принципиальная схема занесенных в таблицу величин разности движения, соответствующих разным кодирующим блокам и вариантам блоков в соответствии с вариантом осуществления изобретения.
ДЕТАЛЬНОЕ ОПИСАНИЕ
Следующее описание представляет собой подробное рассмотрение способа осуществления данного изобретения. Данное описание представлено с целью иллюстрации общих принципов изобретения и не должно рассматриваться как лимитирующий фактор. Объем изобретения наилучшим образом определяется со ссылкой на прилагаемые пункты патентной формулы.
На Фиг.2 показана блок-схема кодера сигнала изображения 200. В одном варианте осуществления кодер сигнала изображения 200 включает модуль предсказания движения 202, модуль вычитания 204, модуль преобразования 206, модуль квантования 208 и модуль энтропийного кодирования 210. Кодер сигнала изображения 200 принимает входной видеосигнал и генерирует битовый поток в качестве выходного сигнала. Модуль предсказания движения 202 осуществляет предсказание движения по входному видеосигналу, чтобы генерировать предсказанные выборки и информацию предсказания. Модуль вычитания 204 затем вычитает предсказанные выборки из входного видеосигнала, чтобы получить остаточные данные, сокращая при этом объем видеоинформации с информации входного видеосигнала до информации остаточных данных. Остаточные данные затем последовательно отправляются на модуль преобразования 206 и модуль квантования 208. Модуль преобразования 206 выполняет дискретное косинусное преобразование (DCT) по остаточным данным, чтобы получить трансформированные остаточные данные. Модуль квантования 208 затем квантует трансформированные остаточные данные, чтобы получить квантованные остаточные данные. Модуль энтропийного кодирования 210 затем выполняет энтропийное кодирование по квантованным остаточным данным и информации предсказания, чтобы получить цифровой поток в качестве выходного сигнала изображения.
1
ik
2
ik
Модуль предсказания движения 202 прогнозирует предсказатель вектора движения (MVP) текущего блока текущего кадра на основе векторов движения множества вариантов блоков. В одном варианте осуществления варианты блоков - это варианты блоков, расположенные рядом с текущим блоком. Перед тем как модуль предсказания движения 202 предсказывает MVP текущего блока, рассчитываются временные интервалы между базовыми кадрами вариантов блоков и текущим кадром, а векторы движения вариантов блоков масштабируются на основе временных интервалов. На Фиг.3 показана принципиальная схема масштабирования векторов движения двух вариантов блоков 310 и 320. Текущий кадр k включает два варианта блоков 310 и 320 для предсказания движения текущего блока 300. Первый вариант блока 310 имеет вектор движения MV, соответствующий базовому кадру i, затем рассчитывается первая временная разность D между базовым кадром i и текущим кадром k. Второй вариант блока 320 имеет вектор движения MV, соответствующий базовому кадру 1, затем рассчитывается вторая временная разность D между базовым кадром 1 и текущим кадром k.
jk
jk
ik
1
jk
ik
1
jk
ik
2
jk
ik
2
1
2
1
2
1
2
Далее рассчитывается целевая временная разность D между целевым поисковым кадром j и текущим кадром k. Целевой поисковый кадр j - это отобранный базовый кадр. Затем рассчитывается первый фактор временного масштабирования путем деления целевого временного интервала D на первый временной интервал D, и вектор движения MV первого варианта блока 310 умножается на первый фактор масштабирования по времени (D/D), чтобы получить масштабный вектор движения MV', соответствующий первому варианту блока 310. Затем рассчитывается второй фактор масштабирования по времени путем деления целевого временного интервала D на второй временной интервал D, и вектор движения MV второго варианта блока 320 умножается на второй фактор масштабирования по времени (D/D), чтобы получить масштабный вектор движения MV', соответствующий второму варианту блока 20. Таким образом, оба масштабных вектора движения MV' и MV' измерены на основе целевого поискового кадра j, и, таким образом, фактор разности временных интервалов устраняется из масштабных векторов движения MV' и MV'. Затем модуль предсказания движения 202 может предсказывать MVP текущего кадра 300 на основе масштабных векторов движения MV' и MV' вариантов блоков 310 и 320.
На Фиг.4 показана блок-схема способа предсказания движения 400 с регулировкой временной разности. Прежде всего, определяется множество вариантов блоков для предсказания движения текущего блока текущего кадра (шаг 402). Варианты блоков и текущий блок - это блоки, имеющие одинаковый или различные размеры, и каждый из этих блоков может быть кодирующим блоком, блоком предсказания или сегментом блока предсказания. В одном варианте осуществления, варианты блоков включают левый блок А на левой стороне текущего блока, верхний блок В на верхней стороне текущего блока, верхний блок С, расположенный в верхнем правом углу текущего блок, и левый блок D, расположенный в верхнем левом углу текущего блока. Затем получаем множество векторов движения вариантов блоков (шаг 404). Затем рассчитывается множество факторов масштабирования по времени для вариантов блоков исходя из временных интервалов между базовыми кадрами вариантов блоков и текущим кадром (шаг 406). В одном варианте осуществления, сначала рассчитывается множество временных интервалов между базовыми кадрами вариантов блоков и текущим кадром, затем рассчитывается целевая временная разность между целевым поисковым кадром и текущим кадром, и целевой временной интервал затем в соответствующем порядке делится на временные интервалы, соответствующие вариантам блоков, чтобы получить множество факторов масштабирования по времени, соответствующих вариантам блоков, как показано на Фиг.3.
Векторы движения вариантов блоков затем масштабируются на основе факторов масштабирования по времени, чтобы получить множество масштабных векторов движения (шаг 408). В одном варианте осуществления, векторы движения вариантов блоков соответственно умножаются на факторы масштабирования по времени вариантов блоков, чтобы получить масштабные векторы движения вариантов блоков, как показано на Фиг.3. Затем предсказатель вектора движения текущего блока выбирается из вариантов блоков на основе масштабных векторов движения (шаг 410). В одном варианте осуществления масштабные векторы движения сортируются, и медианный масштабный вектор движения затем выбирается из масштабных векторов движения в качестве MVP текущего блока.
Когда модуль предсказания движения 202 определяет MVP текущего блока на основе способа состязательности векторов движения; обычно только векторы движения двух вариантов блоков, определенных на уровне последовательности, включены в набор вариантов для определения MVP текущего блока. Кроме того, набор вариантов не определяется адаптивно на основе характеристик текущего блока. Осуществление предсказания движения может стать более точным, если набор вариантов определяется адаптивно на основе характеристик текущего блока.
На Фиг.5 показана принципиальная схема множества вариантов  блоков для предсказания движения текущего блока 512 на основе варианта осуществления изобретения. В этом варианте осуществления текущий блок 512 и варианты блоков - это блоки различных размеров, например, текущий блок 512 - это блок 16×16, и варианты блоков - это блоки 4×4. В другом варианте осуществления размер текущего блока и размеры вариантов блоков могут быть одинаковы или различны, причем размер может быть 4×4, 8×8, 8×16, 16×8, 16×16, 32×32 или 64×64. В этом варианте осуществления векторы движения четырех вариантов блоков А, В, С и D текущего кадра 502 могут быть взяты в качестве вариантов для определения MVP текущего блока 512. Кроме того, совместный блок 514 имеет то же местоположение в базовом кадре 504, что и текущий блок 512 в текущем кадре 502; и векторы движения множества вариантов блоков a~j, расположенных рядом с совместным блоком 514 или в пределах совместного блока 514, могут быть также взяты в качестве вариантов для определения MVP текущего блока 512.
Вариант блока А в текущем кадре 502 - это сегмент на левой стороне текущего блока 512, вариант блока В в текущем кадре 502 - это сегмент на верхней стороне текущего блока 512, вариант блока С в текущем кадре 502 - это сегмент, расположенный в правом верхнем углу текущего блока 512, и вариант блока D в текущем кадре 502 - это сегмент, расположенный в верхнем левом углу текущего блока 512. Вариант блока а в базовом кадре 504 - это сегмент на левой стороне совместного блока 514, вариант блока b в базовом кадре 504 -это сегмент на верхней стороне совместного блока 514, вариант блока с в базовом кадре 504 - это сегмент, расположенный в верхнем правом углу совместного блока 514, и вариант блока d в базовом кадре 504 - это сегмент, расположенный в верхнем правом углу совместного блока 514. Кроме того, вариант блока е в базовом кадре 504 - это сегмент внутри совместного блока 514, варианты блоков f и g в базовом кадре 504 - это сегменты на правой стороне совместного блока 514, вариант блока h в базовом кадре 504 - это сегмент, расположенный в нижнем левом углу совместного блока 514, вариант блока i в базовом кадре 504 - это сегмент, расположенный на нижней стороне совместного блока 514, и вариант блока j в базовом кадре 504 - это сегмент, расположенный в нижнем правом углу совместного блока 514. В одном варианте осуществления набор вариантов для определения MVP текущего блока 512 также включает рассчитанные векторы движения, например вектор движения, равный среднему значению векторов движения вариантов блоков А, В и С, вектор движения, равный среднему значению векторов движения вариантов блоков А, В и D, и масштабный MVP, полученный на основе способа, аналогичного Фиг.4.
После того как определяется множество векторов движения, соответствующих текущему блоку 512, чтобы включить данные векторы в набор вариантов, по меньшей мере один вектор движения адаптивно выбирается из набора вариантов для предсказания движения текущего блока 512. На Фиг.6 показана блок-схема способа предсказания движения 600 на основе адаптивного определения набора вариантов. Набор вариантов для текущего блока 512 выбирается из множества векторов движения, соответствующих текущему блоку 512 (шаг 602). Векторы движения могут включать один вектор движения или комбинацию векторов движения кодирующих сегментов/блоков в одном и том же кадре, расчетные векторы движения и векторы движения в базовом кадре (кадрах). В одном варианте осуществления, набор вариантов, соответствующих текущему блоку 512, показанному на Фиг.5, включает векторы движения блоков А, В, С и D в текущем кадре 502 и вектор движения блока е в базовом кадре 504. Набор вариантов может быть определен на основе предшествующих статистических данных, информации о соседних блоках, формы текущего блока и положения текущего блока. Например, множество векторов движения, соответствующих текущему блоку 512, ранжируется на основе информации о соседних блоках, и первые три вектора отбираются для включения в набор вариантов. Конечный MVP может быть выбран из набора вариантов на основе способа состязательности векторов движения или другого способа отбора. В некоторых вариантах осуществления, множество вектора движения ранжируется на основе порядка отбора, а порядок отбора определяется на основе взвешенной суммы
разностей движения. Разности движения рассчитываются между каждым предсказателем вектора движения и соответствующим декодированным вектором движения (то есть, реальными векторами движения) вариантов блоков. Весовые коэффициенты могут быть определены по форме и положению текущего блока, или весовые коэффициенты могут быть определены по форме и положению соседних блоков.
A/A
А
B,A
А
C
A
А
D,A
AB
a
A
А
Dd
A
j
A
A,A
B/A
c
a
D/A
a
A
b(A
j
A
A
B
B,B
C/B
D,B
a
B
b,B
j,B
На Фиг.7 показана принципиальная схема представленных в табличной форме величин разности движении, соответствующих различным кодирующим блокам и вариантам блоков, в соответствии с изобретением. Например, предположим, что блок А выбирается в качестве целевого кодирующего блока. Рассчитывается величина разности движения D между векторами движения блока А и вариантом блока А на левой стороне блока А. Также рассчитывается величина разности движения D между векторами движения блока А и вариантом блока В на верхней стороне блока А. Также рассчитывается величина разности движения D, между векторами движения блока А и варианта блока С в правом верхнем углу блока А. Также рассчитывается величина разности движения D между векторами движения блока А и варианта блока D в верхнем левом углу блока А. Также рассчитывается величина разности движения D, между векторами движения блока А и варианта блока А на левой стороне совместного блока, соответствующего блоку А. Аналогично также рассчитываются величины разности движения D,,…, D,, соответствующие кодирующему блоку А. Затем в таблице Фиг.7 регистрируются расчетные величины разности движения D, D, D,, D, D,, D, D,, соответствующие целевому кодирующему блоку А. Далее другой целевой колирующий блок В выбирается из кодирующих блоков (шаг 604), а также рассчитываются и заносятся в таблицу Фиг.7 (шаг 606) величины разности движения D,, D, D, D, D,, D,…, D, соответствующие целевому кодирующему блоку В.
Шаги 604 и 606 повторяются до тех пор, пока не отбираются все кодирующие блоки А, В, С, D и Е, чтобы стать целевым кодирующим блоком, а затем рассчитываются величины разности движения, соответствующие кодирующим блокам А, В, С, D (шаг 608).
A
A
A
B
A,C
A
D
A
A
B
c
D
e
A
A
A
A
A,B
B
A
C
C
A,D
D
A,e
e
A
B
c
D
e
B
c
D
e
i
j
После расчета всех разностей движения, соответствующих кодирующим блокам А, В, С, D и Е, определяется порядок отбора множества векторов движения на основе суммы взвешивания разностей движения (шаг 610). Например, если вариант блока А выбран в качестве целевого варианта блока, то величины разности движения D,, D,, D, D, и D,е, соответствующие целевому варианту блока А, затем суммируются на основании ряда взвешиваний W, W, W, W и W, чтобы получить взвешенную сумму S=[(D,×W)+(D×W)+(D,+W)+(DxW)+(D×W)], соответствующую целевому варианту блока t А, где весовые коэффициенты W, W, W, W и W в установленном порядке соответствуют одному из кодирующих блоков А, В, С, D и Е. Далее последовательно выбираются другие варианты блоков В, С, D, е,…, i и j, чтобы стать целевым вариантом блока, а также последовательно рассчитываются взвешенные суммы S, S, S, S,…, S и S, соответствующие вариантам блоков В, С, D, е,…, i и j (шаги 610 и 612).
A
D
e
i
j
A
B
c
D
e
i
j
A
B
C
D
e
i
j
Когда отобраны все варианты блоков, чтобы стать целевым вариантом блока и когда рассчитаны все взвешенные суммы S, Sb, Sc, S, S,…, S и S, соответствующие всем вариантам блоков А, В, С, D, е,…, i и j (шаг 614), по меньшей мере один выбранный вариант блоков для предсказания движения текущего блока отбирается из вариантов блоков А, В, С, D, е,…, i и j на основе взвешенных сумм S, S, S, S, S,…, S и S, соответствующих вариантам блоков А, В, С, D, е, i и j (шаг 616). В одном варианте осуществления взвешенные суммы S, S, S, S, S,…, S и S сортируются на основе размеров блоков, и вариант блока, соответствующий самой малой взвешенной сумме, становится выбранным вариантом блока. И в заключение, вектор движения текущего блока 512 предсказывается на основе вектора движения выбранного варианта блока.
Хотя изобретение было описано на основе примеров и в терминологии предпочтительного варианта осуществления, следует понимать, что изобретение этим не ограничивается. Как раз наоборот, выражается намерение отразить как можно больше различных модификаций и аналогичных компоновок (что будет очевидно для специалистов в данной области). Таким образом, объем пунктов патентной формулы должен соответствовать самой широкой интерпретации таким образом, чтобы охватить все такие модификации и аналогичные компоновки.