СПОСОБ И УСТРОЙСТВО ДЛЯ ПРЕДСКАЗАНИЯ ВЕКТОРА ДВИЖЕНИЯ В ТРЕХМЕРНОМ ПРОСТРАНСТВЕ
METHOD AND APPARATUS FOR MOTION VECTOR PREDICTION IN THREE-DIMENSIONAL SPACE

ССЫЛКИ НА РОДСТВЕННЫЕ ЗАЯВКИ
Настоящее изобретение претендует на приоритет предварительной заявки на патент США №61/416413, поданной 23 ноября 2010 г., с названием «Новый предсказатель векторов движения в трехмерном пространстве», и предварительной заявки на патент США №61/431454, поданной 11 января 2011 г., с названием «Новейший усовершенствованный способ предсказания векторов движения», полное содержание которых включается в настоящее описание в качестве ссылки.
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящее изобретение относится к кодированию видеоданных, в частности, к способам кодирования, связанным с предсказанием векторов движения.
ПРЕДПОСЫЛКИ К СОЗДАНИЮ ИЗОБРЕТЕНИЯ
В системах кодирования видеоданных пространственная и временная избыточность устраняется за счет пространственного и временного предсказания в целях сокращения объема передаваемой информации. Принцип пространственного и временного предсказания основан на использовании декодированных пикселей текущего и опорного изображения для формирования предсказания текущих кодируемых пикселей. В традиционной системе кодирования часто приходится передавать побочную информацию, связанную с пространственным и временным предсказанием, что занимает некоторую часть полосы пропускания сжатых видеоданных. На передачу векторов движения для временного предсказания может приходиться значительная часть сжатых видеоданных, особенно при низкой скорости передачи данных. В целях последующего сокращения объема передачи данных, связанных с векторами движения, в области кодирования видеоданных в последние годы используется так называемый способ MVP (Предсказание векторов движения), основанный на использовании статистической избыточности между соседними в пространстве и времени векторами движения.
Для разработки систем с высоким сжатием видеоданных (HEVC) в настоящее время рассматривается способ AMVP (Уточненное предсказание векторов движения). Этот способ основан на использовании явно заданных сигналов «предсказателя» для указания вектора-кандидата MVP, выбираемого из набора векторов-кандидатов MVP. В набор векторов-кандидатов MVP входят пространственные и временные вектора-кандидаты, при этом для пространственных векторов-кандидатов MVP выбираются три вектора-кандидата из трех соответствующих соседних групп текущего блока. Набор векторов-кандидатов MVP, предлагаемый для AMVP, также содержит медиану трех пространственных векторов-кандидатов и временной вектор-кандидат. При способе AMVP в качестве пространственного вектора-кандидата MVP рассматривается только MV (вектор движения) с тем же списком опорных изображений и тем же индексом опорного изображения, что и у текущего блока. Если MV с тем же списком опорных изображений и тем же индексом опорного изображения не обнаруживается, далее по способу AMVP выполняется поиск доступного вектора движения из следующего соседнего блока в группе. Крайне желательно разработать схему MVP, которая может повысить доступность вектора-кандидата MVP соседнего блока. Усовершенствованная схема MVP способна сократить остатки векторов движения, и, следовательно, повысить эффективность кодирования. Кроме того, желательно, чтобы схема MVP позволяла выводить предсказатель в декодере на основании декодированной информации без необходимости передачи дополнительной побочной информации.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
В документе описывается устройство и способ выведения предсказываемого вектора движения или кандидата предсказываемого вектора движения, или вектора движения, или кандидата вектора движения, для текущего блока в изображении на основании векторов движения из соседнего в пространстве блока. В одном из вариантов исполнения согласно настоящему изобретению устройство и способ выведения предсказываемого вектора движения или кандидата предсказываемого вектора движения, или вектора движения, или кандидата вектора движения для текущего блока включает в себя этапы получения первого вектора движения, связанного с первым опорным изображением в списке первых опорных изображений, и второго вектора движения, связанного со вторым опорным изображением в списке вторых опорных изображений соседнего в пространстве блока; и определения MVP (предсказываемого вектора движения) или как минимум одного кандидата MVP, или MV (вектора движения), или как минимум одного кандидата MV, связанного с выбранным опорным изображением в списке выбранных опорных изображений для текущего блока, на основании первого вектора движения, второго вектора движения, первого опорного изображения, второго опорного изображения и выбранного опорного изображения в порядке приоритета. Список первых опорных изображений и список вторых опорных изображений может быть списком 0 и списком 1, или наоборот, а список выбранных опорных изображений может быть списком 0 или списком 1. В одном из вариантов исполнения настоящего изобретения порядок приоритета задается предварительно, а в другом исполнении - определяется по адаптивной схеме. При предварительно задаваемом порядке информация, связанная в предварительно заданном порядке, может быть включена в заголовок последовательности, изображения, или вырезки. Адаптивная схема может быть основана на критерии, выбранном из следующей группы: статистическая величина реконструированных векторов движения предыдущих блоков, тип разделения текущего блока, корреляция векторов движения, направления векторов движения и расстояния до векторов движения. В одном из вариантов исполнения настоящего изобретения MVP или кандидат MVP, или MV, или кандидат MV, основаны на масштабированной версии первого вектора движения и (или) второго вектора движения, или сочетания масштабированной версии и немасштабированной версии первого вектора движения и (или) второго вектора движения. В другом исполнении изобретения, выведение МУР или как минимум одного кандидата MVP, или MV, или кандидата MV, основано на первом условии и втором условии, при этом первое условие связано с тем, существует ли первый вектор движения и совпадает ли первое опорное изображение с выбранным опорным изображением, а второе условие связано с тем, существует ли второй вектор движения и совпадает ли второе опорное изображение с выбранным опорным изображением. Далее, набор векторов-кандидатов MVP или набор векторов-кандидатов MV, может быть выведен на основании первого вектора движения и второго вектора движения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
На фиг.1 проиллюстрировано масштабирование вектора движения в режиме ПРЯМОГО (DIRECT) предсказания при кодировании В-вырезки согласно способу-прототипу.
На фиг.2 проиллюстрировано масштабирование вектора движения при кодировании В-вырезки на основании совмещенного вектора движения первого предшествующего В-кадра согласно способу-прототипу.
На фиг.3 показана конфигурация соседнего блока предсказываемого пространственного вектора движения, основанного на векторах движения соседних блоков при способе AMVP (Уточненное предсказание векторов движения), рассматриваемом для стандарта HEVC.
На фиг.4 показан пример выведения кандидата пространственного MVP для текущего блока на основании опорных изображений (refL0, refL1) и MV (mvL0, mvL1) соседнего блока b в предварительно заданном порядке.
b
b
На фиг.5A-B показан пример определения кандидата пространственного MVP списка 0 (refL0, mvL0) для текущего блока из соседнего блока b в предварительно заданном порядке.
На фиг.6 показан пример выведения набора кандидатов пространственного MVP для текущего блока на основании опорных изображений (refL0, refL1) и MV (mvL0, mvL1) соседнего блока в предварительно заданном порядке.
b
0
b
0b
На фиг.7A-B показан пример определения набора кандидатов пространственного MVP списка 0 {(ref0L0, mvL0), (ref1L, mv1L0b)} для текущего блока из соседнего блока b в предварительно заданном порядке.
На фиг.8 показан пример выведения кандидата пространственного MVP для текущего блока на основании опорных изображений (refL0, refL1) и масштабированных MV (mvL0, mvL1) соседнего блока b в предварительно заданном порядке.
b
b
На фиг.9 показан пример определения кандидата пространственного MVP списка 0 (refL0, mvL0) для текущего блока на основании масштабированных и немасштабированных MV из соседнего блока b в предварительно заданном порядке.
На фиг.10 показан пример выведения набора кандидатов пространственного MVP для текущего блока на основании опорных изображений (refL0, refL1) и масштабированных и немасштабированных MV (mvL0, mvL1) соседнего блока b в предварительно заданном порядке.
b
b
b
b
На фиг.11 показан пример определения набора кандидатов пространственного MVP списка 0 {(ref0L0, mv0L0), (ref1L0, mv1L0)} для текущего блока на основании масштабированных и немасштабированных MV из соседнего блока b в предварительно заданном порядке.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
В системах кодирования видеоданных пространственная и временная избыточность устраняется за счет пространственного и временного предсказания в целях сокращения объема передаваемой или сохраняемой информации. Принцип пространственного предсказания основан на использовании декодированных пикселей текущего изображения для формирования предсказания текущих кодируемых пикселей. Пространственное предсказание зачастую осуществляется поблочно, например, блоками 16×16 или 4×4 при Intra-кодировании сигнала яркости в H.264/AVC. В последовательностях видеоданных соседние изображения часто имеют большое сходство, поэтому за счет использования различий изображения можно эффективно снизить объем передаваемой информации, связанной с областями статичного фона. Однако перемещение объектов в последовательности видеоданных может привести к образованию значительного количества остатков, для кодирования которых потребуется более высокая скорость передачи данных. В связи с этим часто используется способ MCP (Предсказание с компенсацией движения), основанный на использовании временной корреляции в последовательностях видеоданных.
Способ предсказания с компенсацией движения может использоваться при предсказании вперед, где предсказание текущего блока осуществляется на основании декодированного изображения или изображений, предшествующих текущему изображению в порядке вывода. В целях уточнения предсказания с компенсацией движения в дополнение к предсказанию вперед также может быть использовано обратное предсказание. Обратное предсказание осуществляется на основании декодированного изображения или изображений, следующих за текущим изображением в порядке вывода. Со времени создания первой версии H.264/AVC в 2003 г., предсказание вперед и обратное предсказание были расширены до предсказания списка 0 и списка 1, соответственно, где оба списка могут содержать несколько опорных изображений, предшествующих текущему изображению и (или) следующих за ним в порядке вывода. Ниже приведено описание конфигурации списка опорных изображений по умолчанию. В списке 0 опорные изображения, предшествующие текущему изображению, имеют меньшие индексы по сравнению со следующими за текущим изображением. В списке 1 опорные изображения, следующие за текущим изображением, имеют меньшие индексы по сравнению с предшествующими текущему изображению. Как для списка 0, так и для списка 1, после применения приведенных выше правил, временное расстояние учитывается следующим образом: опорное изображение, находящееся ближе к текущему изображению, имеет меньший индекс опорного изображения. Ниже для иллюстрации конфигурации опорного изображения списка 0 и списка 1 приводится пример, где изображение 5 является текущим, а изображения 0, 2, 4, 6 и 8 - опорными, причем числа обозначают порядок вывода. Опорные изображения списка 0 с возрастающими индексами и начальным индексом ноль, следующие: 4, 2, 0, 6 и 8. Опорные изображения списка 1 с возрастающими индексами и начальным индексом ноль, следующие: 6, 8, 4, 2 и 0. Первое опорное изображение, имеющее индекс 0, называется совмещенным изображением, и в этом примере с изображением 5 в качестве текущего, изображение 6 является совмещенным изображением списка 1, а изображение 4 является совмещенным изображением списка 0. Когда положение блока в совмещенном изображении списка 0 или списка 1 совмещается с положением текущего блока в текущем изображении, оно называется совмещенным блоком списка 0 или списка 1. Единица, используемая для оценки движения в ранних видео стандартах, таких как MPEG-1, MPEG-2 и MPEG-4, основана, прежде всего, на макроблоке. В стандарте H.264/AVC макроблок 16×16 может быть разделен на сегменты (16×16, 16×8, 8×16 и 8×8 блоков) для оценки движения. Кроме того, блок 8х8 может быть разделен на сегменты 8×8, 8×4, 4×8 и 4×4 блока для оценки движения. В стандарте HEVC (кодирование с высоким сжатием видеоданных), находящемся в процессе разработки, единица, используемая в режиме оценки/компенсации движения, называется PU (Блок предсказания). PU делятся иерархически, начиная с максимального размера блока. Тип МСР выбирается для каждой вырезки в стандарте H.264/AVC. Вырезка, в которой предсказание с компенсацией движения ограничивается предсказанием списка 0, называется P-вырезкой. Для B-вырезки предсказание с компенсацией движения, в дополнение к предсказанию списка 0, также содержит предсказание списка 1.
В системах кодирования видеоданных вектор движения и закодированные остатки передаются к декодеру для реконструкции видео на стороне декодера. Кроме того, в системе с гибкой структурой опорного изображения также может потребоваться передача информации, связанной с выбранными опорными изображениями. Передача векторов движения может потребовать значимой части общего диапазона частот, особенно в применениях низкой скорости передачи данных или в системах, где векторы движения связываются с меньшими блоками или более высокой точностью движения. На передачу векторов движения может приходиться значительная часть общей полосы пропускания, особенно при низкой скорости передачи данных или в системах, где векторы движения связаны с меньшими блоками или с более высокой точностью движения. Для дальнейшего сокращения объема передачи данных, связанных с векторами движения, в области кодирования видеоданных в последние годы используется так называемый способ MVP (Предсказание векторов движения). В данном описании изобретения, MVP также может относиться к Предсказываемому вектору движения там, где использование этого сокращения не создает путаницы. Способ MVP основан на использовании наличия статистической избыточности между соседними в пространстве и времени векторами движения. При использовании MVP выбирается «предсказатель» для текущего вектора движения, и передается остаток вектора движения, т.е. разность между вектором движения и «предсказателем». Схема MVP может быть применена в замкнутой системе, где предсказатель выводится в декодере на основании декодированной информации, и при этом не требуется передача дополнительной побочной информации. В качестве альтернативы побочная информация может быть передана в поток данных в точной форме с целью передачи в декодер информации, относящейся к выбранному предсказателю.
В стандарте H.264/AVC также имеется режим ПРОПУСК (SKIP) в дополнение к обычным режимам Intra и Inter для макроблоков в P-вырезке. SKIP - высокоэффективный способ достижения значительного сжатия, т.к. в этом режиме не требуется передачи параметров опорного индекса, вектора движения и сигналов погрешности квантования. Единственная информация, требуемая для макроблока 16×16 в SKIP-режиме - сигнал, указывающий на использование SKIP-режима, за счет чего достигается существенное сокращение объема передачи данных. Вектор движения, используемый для реконструкции макроблока SKIP, аналогичен предсказателю векторов движения для макроблока. Хорошая схема MVP позволяет достичь большего количества нулевых остатков вектора движения, и нулевой погрешности квантования. Следовательно, хорошая схема MVP может увеличить число SKIP-кодированных блоков и повысить эффективность кодирования.
В стандарте H.264/AVC поддерживаются четыре различных типа Inter-предсказаний для B-вырезок, включая предсказание списка 0, предсказание списка 1, двунаправленное предсказание и предсказание в DIRECT-режиме, где список 0 и список 1 относятся к предсказаниям с использованием группы 0 и группы 1 опорного изображения соответственно. При двунаправленном предсказании, сигнал предсказания формируется по взвешенной средней величине сигнала предсказания списка 0 и списка 1 с компенсацией движения. Режим DIRECT выводится из ранее переданных элементов синтаксиса и может относиться как к предсказанию списка 0 или списка 1, так и к двунаправленному предсказанию. Поэтому в DIRECT-режиме не требуется передавать информацию для вектора движения. В случае, когда не передается сигнал погрешности квантования, DIRECT-режим макроблока используется как SKIP-режим B-кадра, и блок может быть закодирован с высокой эффективностью. Аналогично, хорошая схема MVP позволяет достичь большего количества нулевых остатков вектора движения и снижения погрешности предсказания. Следовательно, хорошая схема MVP может увеличить число DIRECT-кодированных блоков и повысить эффективность кодирования.
В стандарте, разрабатываемом HEVC, рассматриваются некоторые усовершенствования предсказания вектора движения по отношению к стандарту H.264/AVC. В данном описании изобретения раскрываются система и способ выведения кандидата предсказываемого вектора движения для текущего блока на основании векторов движения из соседнего в пространстве блока. Предсказание вектора движения для текущего блока осуществляется по векторам движения соседних в пространстве блоков, связанных с опорными изображениями списка 0 и опорными изображениями списка 1. Векторы движения рассматриваются как кандидаты предсказываемого вектора для текущего блока, при этом векторы-кандидаты располагаются в порядке приоритета. Вектор-кандидат с более высоким порядком приоритета рассматривается в качестве предсказателя перед вектором-кандидатом с более низким порядком приоритета. Преимущество способа выведения MVP на основании приоритета состоит в повышении доступности кандидата пространственного MVP, при этом отсутствует необходимость передачи дополнительной побочной информации.
<mrow><mover accent="true"><mrow><mi>M</mi><mi>V</mi></mrow><mo stretchy="true">→</mo></mover></mrow>
<mrow><msub><mrow><mover accent="true"><mrow><mi>M</mi><mi>V</mi></mrow><mo stretchy="true">→</mo></mover></mrow><mrow><mi>L</mi><mn>0</mn></mrow></msub></mrow>
<mrow><msub><mrow><mover accent="true"><mrow><mi>M</mi><mi>V</mi></mrow><mo stretchy="true">→</mo></mover></mrow><mrow><mi>L</mi><mn>1</mn></mrow></msub></mrow>
B
0
В стандарте H.264/AVC временной режим DIRECT используется для B-вырезок, где векторы движения для текущего блока в В-вырезке выводятся из вектора движения совмещенного блока в первом опорном изображении списка 1, как показано на фиг.1. Способ выведения вектора движения для временного режима DIRECT описан в работе «Прямое кодирование для вырезок в режиме двунаправленного предсказания в стандарте Н.264» (Турапи и др., в документе IEEE по контурам и системам видео технологий, том 15, №1, стр.119-126, январь 2005 г.). Вектор движения для совмещенного блока 120 первого опорного изображения списка 1 обозначается как
. Векторы движения для текущего блока 110 обозначаются как
и
в отношении опорного изображения списка 0 и опорного изображения списка 1. Временное расстояние между текущим изображением и опорным изображением списка 0 обозначаются как TD, а временное расстояние между опорным изображением списка 0 и опорным изображением списка 1 обозначается как TD. Векторы движения для текущего блока могут быть выведены по следующим формулам:
<mrow><msub><mrow><mover accent="true"><mrow><mi>M</mi><mi>V</mi></mrow><mo stretchy="true">→</mo></mover></mrow><mrow><mi>L</mi><mn>0</mn></mrow></msub><mo>=</mo><mfrac><mrow><mi>T</mi><msub><mi>D</mi><mi>B</mi></msub></mrow><mrow><mi>T</mi><msub><mi>D</mi><mi>D</mi></msub></mrow></mfrac><mo>×</mo><mover accent="true"><mrow><mi>M</mi><mi>V</mi></mrow><mo stretchy="true">→</mo></mover><mo>.</mo><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>
<mrow><msub><mrow><mover accent="true"><mrow><mi>M</mi><mi>V</mi></mrow><mo stretchy="true">→</mo></mover></mrow><mrow><mi>L</mi><mn>1</mn></mrow></msub><mo>=</mo><mfrac><mrow><mo stretchy="false">(</mo><mi>T</mi><msub><mi>D</mi><mi>B</mi></msub><mo>−</mo><mi>T</mi><msub><mi>D</mi><mi>D</mi></msub><mo stretchy="false">)</mo></mrow><mrow><mi>T</mi><msub><mi>D</mi><mi>D</mi></msub></mrow></mfrac><mo>×</mo><mover accent="true"><mrow><mi>M</mi><mi>V</mi></mrow><mo stretchy="true">→</mo></mover><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>
Вышеприведенные уравнения позднее были заменены следующими:
<mrow><mi>X</mi><mo>=</mo><mfrac><mrow><mn>16384</mn><mo>+</mo><mi>a</mi><mi>b</mi><mi>s</mi><mo stretchy="false">(</mo><mi>T</mi><msub><mi>D</mi><mi>D</mi></msub><mo>/</mo><mn>2</mn><mo stretchy="false">)</mo></mrow><mrow><mi>T</mi><msub><mi>D</mi><mi>D</mi></msub></mrow></mfrac><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>
<mrow><mi>S</mi><mi>c</mi><mi>a</mi><mi>l</mi><mi>e</mi><mi>F</mi><mi>a</mi><mi>c</mi><mi>t</mi><mi>o</mi><mi>r</mi><mo>=</mo><mi>c</mi><mi>l</mi><mi>i</mi><mi>p</mi><mo stretchy="false">(</mo><mo>−</mo><mn>1024,1023,</mn><mo stretchy="false">(</mo><mi>T</mi><msub><mi>D</mi><mi>B</mi></msub><mo>×</mo><mi>X</mi><mo>+</mo><mn>32</mn><mo stretchy="false">)</mo><mo>≫</mo><mtext>6</mtext><mo stretchy="false">)</mo><mtext>                    (4)</mtext></mrow>
<mrow><msub><mrow><mover accent="true"><mrow><mi>M</mi><mi>V</mi></mrow><mo stretchy="true">→</mo></mover></mrow><mrow><mi>L</mi><mn>0</mn></mrow></msub><mo>=</mo><mo stretchy="false">(</mo><mi>S</mi><mi>c</mi><mi>a</mi><mi>l</mi><mi>e</mi><mi>F</mi><mi>a</mi><mi>c</mi><mi>t</mi><mi>o</mi><mi>r</mi><mo>×</mo><mover accent="true"><mrow><mi>M</mi><mi>V</mi></mrow><mo stretchy="true">→</mo></mover><mo>+</mo><mn>128</mn><mo stretchy="false">)</mo><mo>≫</mo><mn>8</mn><mtext>                      (5)</mtext></mrow>
<mrow><msub><mrow><mover accent="true"><mrow><mi>M</mi><mi>V</mi></mrow><mo stretchy="true">→</mo></mover></mrow><mrow><mi>L</mi><mn>1</mn></mrow></msub><mo>=</mo><msub><mrow><mover accent="true"><mrow><mi>M</mi><mi>V</mi></mrow><mo stretchy="true">→</mo></mover></mrow><mrow><mi>L</mi><mn>0</mn></mrow></msub><mo>−</mo><mover accent="true"><mrow><mi>M</mi><mi>V</mi></mrow><mo stretchy="true">→</mo></mover><mo>,</mo><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow>
Таким образом, X и ScaleFactor могут быть предварительно вычислены на уровне вырезки/изображения. Во временном режиме DIRECT предсказание вектора движения основано только на векторе движения для совмещенного блока первого опорного изображения списка 1.
1
1
В другом способе-прототипе под названием «Оптимизированное RD-кодирование для выбора предсказателя векторов движения» (Ларош и др., в документе IEEE по контурам и системам видеотехнологий, том 18, №12, стр.1681-1691, декабрь 2008 г.), раскрывается принцип выбора предсказания вектора движения, основанный на конкуренции векторов движения. В схеме конкуренции векторов движения используется оптимизация зависимости искажения от скорости (RD) для определения оптимального предсказываемого вектора движения из векторов-кандидатов. Например, как показано на фиг.2, в кандидаты временного предсказываемого вектора движения может быть включен вектор движения списка 0, соответствующий совмещенному блоку в совмещенном изображении списка 1 Ref, а также векторы движения списка 0 и списка 1 для совмещенного блока в совмещенном изображении списка 0, B-1. Векторы движения списка 0, соответствующие совмещенному блоку в совмещенном изображении списка 1, Ref, могут быть вычислены аналогичным образом, указанным в стандарте H.264/AVC:
<mrow><mi>m</mi><msubsup><mi>ν</mi><mn>1</mn><mrow><mi>L</mi><mn>0</mn></mrow></msubsup><mo>=</mo><mfrac><mrow><mi>m</mi><msub><mi>ν</mi><mrow><mi>c</mi><mi>o</mi><mi>l</mi></mrow></msub><msub><mrow /><mrow><mi>L</mi><mn>1</mn></mrow></msub></mrow><mrow><msub><mi>d</mi><mrow><mi>L</mi><mn>0</mn><mi>L</mi><mn>1</mn></mrow></msub></mrow></mfrac><mo>×</mo><msub><mi>d</mi><mrow><mi>L</mi><mn>0</mn></mrow></msub><mo>,</mo><mtext> </mtext><mtext> </mtext><mi>и</mi><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mrow><mo>(</mo><mn>7</mn><mo>)</mo></mrow></mrow>
<mrow><mi>m</mi><msubsup><mi>ν</mi><mn>1</mn><mrow><mi>L</mi><mn>1</mn></mrow></msubsup><mo>=</mo><mfrac><mrow><mi>m</mi><msub><mi>ν</mi><mrow><mi>c</mi><mi>o</mi><mi>l</mi></mrow></msub><msub><mrow /><mrow><msub><mrow /><mrow><mi>L</mi><mn>1</mn></mrow></msub></mrow></msub></mrow><mrow><msub><mi>d</mi><mrow><mi>L</mi><mn>0</mn><mi>L</mi><mn>1</mn></mrow></msub></mrow></mfrac><mo>×</mo><mo stretchy="false">(</mo><msub><mi>d</mi><mrow><mi>L</mi><mn>0</mn></mrow></msub><mo>−</mo><msub><mi>d</mi><mrow><mi>L</mi><mn>0</mn><mi>L</mi><mn>1</mn></mrow></msub><mo stretchy="false">)</mo><mo>.</mo><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mrow><mo>(</mo><mn>8</mn><mo>)</mo></mrow></mrow>
<mrow><mi>m</mi><msub><mi>ν</mi><mrow><mi>c</mi><mi>o</mi><msub><mi>l</mi><mrow><mi>B</mi><mo>−</mo><msub><mn>1</mn><mrow><mi>L</mi><mn>0</mn></mrow></msub></mrow></msub></mrow></msub></mrow>
<mrow><mi>m</mi><msubsup><mi>ν</mi><mn>3</mn><mrow><mi>L</mi><mn>0</mn></mrow></msubsup></mrow>
<mrow><mi>m</mi><msubsup><mi>ν</mi><mn>3</mn><mrow><mi>L</mi><mn>1</mn></mrow></msubsup></mrow>
Векторы движения списка 0 и списка 1 для совмещенного блока в совмещенном изображении списка 0, B-1, могут использоваться для выведения предсказываемых векторов движения для текущего блока. Если существует совмещенный вектор движения
, в изображении B-1, указывающий на P-кадр вперед, предсказываемые векторы движения
и
могут быть вычислены по следующим формулам:
<mrow><mi>m</mi><msubsup><mi>ν</mi><mn>3</mn><mrow><mi>L</mi><mn>0</mn></mrow></msubsup><mo>=</mo><mfrac><mrow><mi>m</mi><msub><mi>ν</mi><mrow><mi>c</mi><mi>o</mi><mi>l</mi></mrow></msub><msub><mrow /><mrow><msub><mrow /><mrow><mi>B</mi><mo>−</mo><msub><mn>1</mn><mrow><mi>L</mi><mn>0</mn></mrow></msub></mrow></msub></mrow></msub></mrow><mrow><msub><mi>d</mi><mrow><mi>L</mi><mn>0</mn><mi>B</mi><mo>−</mo><mn>1</mn></mrow></msub></mrow></mfrac><mo>×</mo><msub><mi>d</mi><mrow><mi>L</mi><mn>0</mn></mrow></msub><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mrow><mo>(</mo><mn>9</mn><mo>)</mo></mrow></mrow>
<mrow><mi>m</mi><msubsup><mi>ν</mi><mn>3</mn><mrow><mi>L</mi><mn>1</mn></mrow></msubsup><mo>=</mo><mfrac><mrow><mi>m</mi><msub><mi>ν</mi><mrow><mi>c</mi><mi>o</mi><mi>l</mi></mrow></msub><msub><mrow><msub><mrow /><mrow><msub><mrow /><mrow><mi>B</mi><mo>−</mo><mn>1</mn></mrow></msub></mrow></msub></mrow><mrow><msub><mrow /><mrow><mi>L</mi><mn>0</mn></mrow></msub></mrow></msub></mrow><mrow><msub><mi>d</mi><mrow><mi>L</mi><mn>0</mn><mi>B</mi><mo>−</mo><mn>1</mn></mrow></msub></mrow></mfrac><mo>×</mo><mo stretchy="false">(</mo><msub><mi>d</mi><mrow><mi>L</mi><mn>0</mn></mrow></msub><mo>−</mo><msub><mi>d</mi><mrow><mi>L</mi><mn>0</mn><mi>L</mi><mn>1</mn></mrow></msub><mo stretchy="false">)</mo><mo>.</mo><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mrow><mo>(</mo><mrow><mn>10</mn></mrow><mo>)</mo></mrow></mrow>
<mrow><mi>m</mi><msub><mi>ν</mi><mrow><mi>c</mi><mi>o</mi><msub><mi>l</mi><mrow><mi>B</mi><mo>−</mo><msub><mn>1</mn><mrow><mi>L</mi><mn>0</mn></mrow></msub></mrow></msub></mrow></msub></mrow>
<mrow><mi>m</mi><msubsup><mi>ν</mi><mn>4</mn><mrow><mi>L</mi><mn>0</mn></mrow></msubsup></mrow>
<mrow><mi>m</mi><msubsup><mi>ν</mi><mn>4</mn><mrow><mi>L</mi><mn>1</mn></mrow></msubsup></mrow>
L0B-1
Вектор движения
изображен на фиг.2, а d представляет собой временное расстояние между P-кадром вперед и кадром B-1. В случае обратного предсказания, предсказываемые векторы
и
можно вычислить по следующим формулам:
<mrow><mi>m</mi><msubsup><mi>ν</mi><mn>4</mn><mrow><mi>L</mi><mn>0</mn></mrow></msubsup><mo>=</mo><mfrac><mrow><mi>m</mi><msub><mi>ν</mi><mrow><mi>c</mi><mi>o</mi><mi>l</mi></mrow></msub><msub><mrow /><mrow><msub><mrow /><mrow><mi>B</mi><mo>−</mo><msub><mn>1</mn><mrow><mi>L</mi><mn>1</mn></mrow></msub></mrow></msub></mrow></msub></mrow><mrow><mo stretchy="false">(</mo><msub><mi>d</mi><mrow><mi>L</mi><mn>0</mn><mi>B</mi><mo>−</mo><mn>1</mn></mrow></msub><mo>−</mo><msub><mi>d</mi><mrow><mi>L</mi><mn>0</mn><mi>L</mi><mn>1</mn></mrow></msub><mo stretchy="false">)</mo></mrow></mfrac><mo>×</mo><msub><mi>d</mi><mrow><mi>L</mi><mn>0</mn></mrow></msub><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mrow><mo>(</mo><mrow><mn>11</mn></mrow><mo>)</mo></mrow></mrow>
<mrow><mi>m</mi><msubsup><mi>ν</mi><mn>3</mn><mrow><mi>L</mi><mn>1</mn></mrow></msubsup><mo>=</mo><mfrac><mrow><mi>m</mi><msub><mi>ν</mi><mrow><mi>c</mi><mi>o</mi><mi>l</mi></mrow></msub><msub><mrow><msub><mrow /><mrow><msub><mrow /><mrow><mi>B</mi><mo>−</mo><mn>1</mn></mrow></msub></mrow></msub></mrow><mrow><msub><mrow /><mrow><mi>L</mi><mn>1</mn></mrow></msub></mrow></msub></mrow><mrow><mo stretchy="false">(</mo><msub><mi>d</mi><mrow><mi>L</mi><mn>0</mn><mi>L</mi><mn>1</mn></mrow></msub><mo>−</mo><msub><mi>d</mi><mrow><mi>L</mi><mn>0</mn><mi>B</mi><mo>−</mo><mn>1</mn></mrow></msub><mo stretchy="false">)</mo></mrow></mfrac><mo>×</mo><mo stretchy="false">(</mo><msub><mi>d</mi><mrow><mi>L</mi><mn>0</mn><mi>L</mi><mn>1</mn></mrow></msub><mo>−</mo><msub><mi>d</mi><mrow><mi>L</mi><mn>0</mn></mrow></msub><mo stretchy="false">)</mo><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mrow><mo>(</mo><mrow><mn>12</mn></mrow><mo>)</mo></mrow></mrow>
<mrow><mi>m</mi><msub><mi>ν</mi><mrow><mi>c</mi><mi>o</mi><msub><mi>l</mi><mrow><mi>B</mi><mo>−</mo><msub><mn>1</mn><mrow><mi>L</mi><mn>1</mn></mrow></msub></mrow></msub></mrow></msub></mrow>
<mrow><mi>m</mi><msub><mi>ν</mi><mrow><mi>c</mi><mi>o</mi><msub><mi>l</mi><mrow><mi>B</mi><mo>−</mo><msub><mn>1</mn><mrow><mi>L</mi><mn>0</mn></mrow></msub></mrow></msub></mrow></msub></mrow>
<mrow><mi>m</mi><msub><mi>ν</mi><mrow><mi>c</mi><mi>o</mi><msub><mi>l</mi><mrow><mi>B</mi><mo>−</mo><msub><mn>1</mn><mrow><mi>L</mi><mn>1</mn></mrow></msub></mrow></msub></mrow></msub></mrow>
Вектор движения
, представляет собой совмещенный вектор движения в изображении B-1, указывающий на P-кадр назад, как показано на фиг.2. В зависимости от доступности соответствующие предсказатели в уравнениях (7)-(12), основанные на временных векторах движения
, и
, а также пространственные векторы движения, могут использоваться для текущего блока, при этом для выбора оптимального предсказываемого вектора движения применяется RD-оптимизация. Схема предсказания вектора движения согласно работе Ларош и др. требует передачи побочной информации к стороне декодера для указания конкретного выбранного предсказываемого вектора движения. Передача побочной информации, связанной с выбранным предсказываемым вектором движения, занимает определенную полосу пропускания. Независимо от использования схемы конкуренции векторов движения, предсказание пространственных и временных векторов движения может давать преимущество, состоящее в уменьшении остатков векторов движения. Требуется разработать способ предсказания пространственных и (или) временных векторов движения для повышения доступности предсказываемых пространственных и (или) временных векторов движения без необходимости в передаче побочной информации, независимо от использования схемы конкуренции векторов движения. Настоящее описание изобретения сосредоточено на разработке способов предсказания пространственных векторов движения, позволяющих повысить доступность предсказателя пространственных векторов движения с целью повышения эффективности системы кодирования для систем с конкуренцией векторов движения, а также без нее.
0
1
na
0
1
nb
Для разработки стандарта HEVC в работе «Ответ Samsung на запросы предложений по технологии сжатия видеоданных» (Документ JCTVC-A124, Объединенная группа по кодированию видеоданных (JCT-VC) в ITU-T SG16 WP3 и ISO/IEC JTC1/SC29/WG1, 1-ая встреча: Дрезден, Германия, 15-23 апреля 2010 г.) авторами МакКанн и др. предложен способ AMVP (Уточненное предсказание векторов движения). Способ AMVP основан на использовании явно заданных сигналов предсказателя, указывающих на выбранный вектор-кандидат MVP, или набор векторов-кандидатов MVP. В набор векторов-кандидатов MVP входят пространственные и временные вектора-кандидаты, при этом для пространственных векторов-кандидатов MVP выбираются три вектора-кандидата a', b' и с', как показано на фиг.3. Вектор-кандидат а' - первый доступный вектор движения из группы блоков {а, a, …, a} в верхней части текущего блока, как показано на фиг.3, где na - число блоков в этой группе. Вектор-кандидат b' - первый доступный вектор движения из группы блоков {b, b, …, b} в левой части текущего блока, как показано на фиг.3, где nb - число блоков в этой группе. Вектор-кандидат c' - первый доступный вектор движения из группы блоков {c, d, e} в соседних углах текущего блока, как показано на фиг.3. Набор векторов-кандидатов MVP, предложенный авторами МакКанн и др., определяется как {медиана (a', b', c'), a', b', c', кандидат временного вектора MVP}. Кандидат временного вектора MVP является совмещенным MV. Способ AMVP, разрабатываемый только для HEVC, рассматривает MV (вектор движения) с тем же опорным списком и тем же индексом опорного изображения в качестве доступного кандидата пространственного вектора MVP. Если MV с тем же опорным списком и тем же индексом опорного изображения не обнаруживается в соседнем блоке, выполняется поиск доступного вектора движения в следующем соседнем блоке в группе. Крайне желательно разработать схему MVP, которая может повысить доступность предсказываемого вектора движения или кандидата предсказываемого вектора движения из соседнего блока. Улучшенная схема MVP способна сократить остатки векторов движения и, следовательно, повысить эффективность кодирования. Кроме того, желательно, чтобы схема MVP позволяла выводить предсказатель в декодере на основании декодированной информации без необходимости передачи дополнительной побочной информации.
Соответственно, в описании изобретения раскрывается схема MVP, основанная на приоритетах, где пространственный MVP или кандидат пространственного MVP могут быть выведены из соседнего в пространстве блока на основании различных списков и различных опорных изображений соседнего в пространстве блока. На фиг.4 показан пример кандидата пространственного MVP для текущего блока 410 из соседнего блока 420, выведенного на основании опорных изображений (refL0, refL1) и MV (mvL0, mvL1) соседнего блока b в предварительно заданном порядке, где mvL0 и refL0 обозначают MV списка 0 и опорное изображение соседнего блока b, а mvL1 и refL1 обозначают MV списка 1 и опорное изображение соседнего блока b. Схема MVP продлевает векторы-кандидаты MVP до списка 0 и списка 1, и кроме того, различные опорные изображения из списка 0 и списка 1 могут быть использованы для выведения MVP. В зависимости от конфигурации предсказанного вектора движения, производный вектор движения из соседнего в пространстве блока может использоваться как предсказатель для текущего блока, либо производный вектор движения является одним из нескольких кандидатов предсказанного вектора движения, рассматриваемых текущим блоком в качестве предсказанного вектора движения. Кроме того, в некоторых исполнениях настоящего изобретения может быть выведено более одного вектора движения в качестве кандидатов предсказанного вектора движения, при этом векторы-кандидаты предсказанного вектора движения в совокупности называются набором векторов-кандидатов предсказанного вектора движения. Векторы-кандидаты MV будут выбираться в предварительно заданном порядке или согласно адаптивной схеме в целях сохранения требуемой побочной информации. Опорные изображения списка 0 и списка 1 MV могут быть установлены на предварительно заданное значение (например, индекс опорного изображения = 0) или отправлены в явной форме.
b
b
b
b
На фиг.5A-B показан пример определения кандидата пространственного MVP согласно схеме MVP из фиг.4, где вектор-кандидат MVP для текущего блока связан с опорным изображением в списке 0 текущего блока. В то время как опорное изображение в списке 0 текущего блока используется в качестве примера, текущая схема MVP также может быть применена к вектору-кандидату MVP для текущего блока, связанного с опорным изображением в списке 1 текущего блока. Как показано на фиг.5A-B, вектор-кандидат пространственного MVP списка 0 (refL0, mvL0] для текущего блока выводится из соседнего блока b в предварительно заданном порядке. На фиг.5A выбор вектора-кандидата MVP для текущего блока 410, основанный на соседнем блоке b 420, сначала рассматривается для (refL0, mvL0), если существует mvL0, a refL0 совпадает с опорным изображением списка 0 текущего блока. Если mvL0 не существует, или refL0 не совпадает с опорным изображением списка 0 текущего блока, то рассматривается вектор-кандидат MVP (refL1, mvL1) в качестве второго выбора для текущего блока 410, если mvL1 существует, и refL1 совпадает с опорным изображением списка 0 текущего блока. Если mvL1 не существует, или refL1 не совпадает с опорным изображением списка 0 текущего блока, то вектор-кандидат MVP (refL0, mvL0) для текущего блока является недоступным. Процесс выведения вектора-кандидата MVP описан в следующих псевдокодах:
- Если mvL0 существует, и refL0 совпадает с опорным изображением списка 0 текущего блока,
b
b
то refL0=refL0 и mvL0=mvL0;
- В противном случае, если mvL1 существует, и refL1 совпадает с опорным изображением списка 0 текущего блока,
b
b
то refL0=refL1 и mvL0=mvL1;
- В противном случае,
b
b
(refL0, mvL0) является недоступным.
b
b
На фиг.5A-B показан пример определения вектора-кандидата пространственного MVP списка 0 (refL0, mvL0) для текущего блока из соседнего блока b в предварительно заданном порядке, однако опытный специалист может использовать другой предварительно заданный порядок приоритета для достижения аналогичных или сходных результатов. Кроме того, несмотря на то, что в качестве примера в вышеупомянутой схеме MVP используется опорное изображение списка 0 текущего блока, опорное изображение списка 1 текущего блока также может быть использовано.
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
Исполнение настоящего изобретения, показанное на фиг.5A-B, предусматривает выведение единственного вектора-кандидата пространственного MVP для текущего блока из соседнего блока b в предварительно заданном порядке. Схема MVP может быть расширена до выведения набора векторов-кандидатов пространственного MVP, что может обеспечить более точное предсказание MV и (или) больше вариантов для выбора оптимального MVP. Одно исполнение настоящего изобретения, предусматривающее выведение набора векторов-кандидатов пространственного MVP {(ref0L0, mv0L0), (ref1L0, mv1L0)} для текущего блока из соседнего блока b в предварительно заданном порядке, показано на фиг.6. Аналогично, mvL0 и refL0 обозначают MV списка 0 и опорное изображение соседнего блока b, а mvL1 и refL1 обозначают MV списка 1 и опорное изображение соседнего блока b. На фиг.7A-B показан пример определения набора векторов-кандидатов пространственного MVP списка 0 {(ref0L0, mv0L0), [ref1L0, mv1L0)} для текущего блока из соседнего блока b в предварительно заданном порядке. Как показано на фиг.7А, сначала рассматривается MV, связанный с (refL0, mvL0) из соседнего в пространстве блока b. Вектор-кандидат MVP (ref0L0, mv0L0) для текущего блока 410, основанный на соседнем блоке b 420, устанавливается на (refL0, mvL0), если mvL0 существует, и refL0 совпадает с опорным изображением списка 0 текущего блока. Если mvL0 не существует, или refL0 не совпадает с опорным изображением списка 0 текущего блока, вектор-кандидат MVP (ref0L0, mv0L0) является недоступным. Как показано на фиг.7B, в следующую очередь рассматривается MV, связанный с (refL1, mvL1) из соседнего в пространстве блока b. Вектор-кандидат MVP (ref1L0, mv1L0) для текущего блока 410, основанный на соседнем блоке b 420, устанавливается на (refL1, mvL1), если mvL1 существует, и refL1 совпадает с опорным изображением списка 0 текущего блока. Если mvL1 не существует, или refL1 не совпадает с опорным изображением списка 0 текущего блока, вектор-кандидат MVP (ref1L0, mv1L0) является недоступным. Процесс выведения набора векторов-кандидатов MVP описан в следующих псевдокодах:
- Если mvL0 существует и refL0 совпадает с опорным изображением списка 0 текущего блока,
b
b
то ref0L0=refL0 и mv0L0=mvL0;
- В противном случае,
b
b
(ref0L0, mv0L0) является недоступным;
- Если mvL1 существует и refL1 совпадает с опорным изображением списка 0 текущего блока,
b
b
то ref1L0=refL1 и mv1L0=mvL1;
- В противном случае,
b
b
(ref1L0, mv1L0) является недоступным.
b
b
b
b
На фиг.7A-B показан пример определения набора векторов-кандидатов пространственного MVP списка 0 {(ref0L0, mv0L0), (ref1L0, mv1L0)} для текущего блока из соседнего блока b в предварительно заданном порядке, однако опытный специалист может использовать другой предварительно заданный порядок приоритета для достижения аналогичных или сходных результатов. Кроме того, несмотря на то, что в качестве примера в вышеупомянутой схеме MVP используется опорное изображение списка 0 текущего блока, также можно использовать опорное изображение списка 1 текущего блока.
b
На фиг.4 показан пример выведения кандидата пространственного MVP для текущего блока из соседнего блока на основании опорных изображений (refL0, refL1) и MV (mvL0, mvL1) соседнего блока в предварительно заданном порядке, однако масштабированная версия (mvL0, mvL1) 810-820 также может использоваться для выведения кандидата MVP, в дополнение к немасштабированной версии (mvL0, mvL1), как показано на фиг.8. Коэффициент масштабирования выводится по временному расстоянию или разности между номерами порядка изображения, которая может быть как положительной, так и отрицательной. Примеры масштабирования вектора движения, приведенные в работах авторов Турапи и др. (в документе IEEE по контурам и системам видео технологий, том 15, №1, стр.119-126, январь 2005 г.) и Ларош и др. (в документе IEEE по контурам и системам видео технологий, том 18, №12, стр.1681-1691, декабрь 2008 г.), могут применяться для выведения масштабированных векторов движения. Однако возможно также применение другого способа масштабирования временного вектора движения для выведения масштабированного вектора движения текущей схемы MVP. Опорные изображения списка 0 и списка 1 MV могут быть установлены на предварительно заданное значение (например, индекс опорного изображения = 0) или отправлены в явной форме. Пример выведения вектора-кандидата MVP на основании масштабированных MV (mvL0, mvL1) из соседнего блока b показан на фиг.9. Процесс выведения вектора-кандидата MVP аналогичен процессу, показанному на фиг.5A-B, за исключением того, что в первом используется масштабированный вектор-кандидат MVP в том случае, когда опорное изображение соседнего блока не совпадает с опорным изображением списка 0 текущего блока. Индекс опорного изображения списка 0 для текущего блока в примере на фиг.9 составляет 0, т.е., refL0=j. Вектор движения mvL0 рассматривается в первую очередь. Если mvL0 существует, то выбор вектора-кандидата MVP для текущего блока падает на mvL0, если refL0 совпадает с опорным изображением списка 0 текущего блока. Если refL0 не совпадает с опорным изображением списка 0 текущего блока, то масштабированный mvL0 810 используется в качестве вектора-кандидата MVP, как показано на фиг.9. Если mvL0 не существует, то в следующую очередь по схеме MVP проверяется существование mvL1. Если mvL1 существует, то выбор вектора-кандидата MVP для текущего блока падает на mvL1, если refL1 совпадает с опорным изображением списка 0 текущего блока. Если refL1 не совпадает с опорным изображением списка 0 текущего блока, масштабированный mvL1 820 выбирается в качестве вектора-кандидата MVP, как показано на фиг.9. Процесс выведения вектора-кандидата MVP описан в следующих псевдокодах:
- Если mvL0 существует,
- Если refL0 совпадает с опорным изображением списка 0 текущего блока,
b
то mvL0=mvL0;
- В противном случае,
b
mvL0 = масштабированный mvL0;
- В противном случае, если mvL1 существует,
- Если refL1 совпадает с опорным изображением списка 0 текущего блока,
b
то mvL0=mvL1;
- В противном случае,
b
mvL0 = масштабированный mvL1;
- В противном случае,
b
- mvL0 является недоступным.
b
b
b
b
b
b
b
b
b
b
На фиг.6 показан пример набора векторов-кандидатов пространственного MVP для текущего блока из соседнего блока на основании опорных изображений (refL0, refL1) и MV (mvL0, mvL1) соседнего блока в предварительно заданном порядке, но масштабированная версия (mvL0, mvL1) также может быть включена в набор векторов-кандидатов MVP {(ref0L0, mv0L0), (ref1L0, mv1L0)}, в дополнение к немасштабированной версии (mvL0, mvL1), как показано на фиг.10. Коэффициент масштабирования может быть выведен по временному расстоянию, как показано в примерах, приведенных выше, также возможно использование других способов масштабирования. Аналогично примеру на фиг.8 опорное изображение списка 0 и списка 1 MV для соседнего в пространстве блока b 420 может быть установлено на предварительно заданное значение (например, индекс опорного изображения = 0) или отправлено в явной форме. Пример схемы MVP, включая масштабированные MV (mvL0, mvL1) соседнего блока b 420 в наборе векторов-кандидатов MVP, показан на фиг.11, где индекс опорного изображения списка 0, используемый в примере, составляет 0, т.е. ref0L0=ref1L0=j. Процесс выведения набора кандидатов MVP аналогичен процессу, показанному на фиг.7A-B, за исключением того, что масштабированные MV также могут быть включены в набор векторов-кандидатов. Аналогичным образом mvL0 рассматривается в первую очередь для выведения набора векторов-кандидатов MVP. Если mvL0 существует, выбор вектора-кандидата MVP для текущего блока падает на mvL0, т.е., mv0L0=mvL0, если refL0 совпадает с опорным изображением списка 0 текущего блока, как показано на фиг.11. Если refL0 не совпадает с опорным изображением списка 0 текущего блока, масштабированный mvL0 810 выбирается в качестве вектора-кандидата MVP, т.е., mv0L0 = масштабированный mvL0, как показано на фиг.11. В следующую очередь по схеме MVP проверяется существование mvL1. Если mvL1 существует, то выбор второго кандидата MVP из набора кандидатов для текущего блока падает на mvL1, т.е. mv1L0=mvL1, если refL1 совпадает с опорным изображением списка 0 текущего блока. Если refL1 не совпадает с опорным изображением списка 0 текущего блока, масштабированный mvL1 820 выбирается в качестве второго кандидата MVP из набора кандидатов, т.е. mv1L0 = масштабированный mvL1, как показано на фиг.11. Процесс выведения набора векторов-кандидатов MVP описан в следующих псевдокодах:
- Если mvL0 существует,
- Если refL0 совпадает с опорным изображением списка 0 текущего блока,
b
то mv0L0=mvL0;
- В противном случае,
b
mv0L0 = масштабированный mvL0;
- В противном случае,
b
- mv0L0 является недоступным,
- Если mvL1 существует,
- Если refL1 совпадает с опорным изображением списка О текущего блока,
b
то mv1L0=mvL1;
- В противном случае,
b
mv1L0 = масштабированный mvL1;
- В противном случае,
b
- mv1L0 является недоступным.
Опытные специалисты могут легко скорректировать вышеописанные исполнения таким образом, чтобы для выведения вектора-кандидата или набора векторов-кандидатов MVP использовалась только масштабированная версия MV. Например, процесс выведения вектора-кандидата MVP на основании масштабированных MV описан в следующих псевдокодах:
- Если mvL0 существует,
b
mvL0 = масштабированный mvL0;
- В противном случае, если mnL1 существует,
b
mvL0 = масштабированный mvL1;
- В противном случае,
b
mvL0 является недоступным.
Процесс выведения набора векторов-кандидатов MVP на основании масштабированных MV описан в следующих псевдокодах:
- Если mvL0 существует,
b
mv0L0 = масштабированный mvL0;
- В противном случае,
b
mv0L0 является недоступным,
- Если mvL1 существует,
b
mv1L0 = масштабированный mvL1;
- В противном случае,
b
mv1L0 является недоступным.
В вышеприведенных примерах выведения кандидата предсказанного вектора движения по предварительно заданному порядку приоритета соответствующий порядок приоритета используется в каждом примере для иллюстрации процесса выведения предсказателя или кандидата предсказателя на основании векторов движения из соседнего в пространстве блока. Конкретный использованный порядок приоритета ни при каких условиях не должен рассматриваться как ограничение настоящего изобретения. Опытный специалист может выбрать другой порядок приоритета для кандидатов предсказанного вектора движения в рамках применения настоящего изобретения. Далее, несмотря на то, что в вышеприведенных примерах используется предварительно заданный порядок предсказания вектора движения среди векторов-кандидатов, порядок приоритета также может быть определен по адаптивной схеме. Адаптивная схема приоритета может быть основана на статистической величине реконструированных векторов движения предыдущих блоков, типе разделения текущего блока, корреляции векторов движения, направлениях векторов движения и расстояниях до векторов движения. Кроме того, адаптивная схема также может быть основана на сочетании двух и более вышеуказанных факторов.
Когда для адаптивной схемы используется статистическая величина реконструированных векторов движения предыдущих блоков, эта статистическая величина может быть связана, например, с нумерацией кандидатов вектора движения. Порядок приоритета адаптируется к нумерации кандидатов вектора движения, при этом кандидат вектора движения, имеющий больший номер, получает более высокий приоритет для предсказания вектора движения. Если для адаптивной схемы используется тип разделения текущего блока, например, если текущая кодирующая ячейка размером 2N×2N делится на две прямоугольных ячейки предсказания размером N×2N и текущий блок находится в левой ячейке, то вектор движения, обладающий наибольшей сходностью с соседним левым элементом текущей кодирующей ячейки, получает более высокий приоритет; если текущая кодирующая ячейка размером 2N×2N делится на две прямоугольных ячейки предсказания размером N×2N и текущий блок находится в правой ячейке, то вектор движения, обладающий наибольшей сходностью с соседним правым элементом текущей кодирующей ячейки, получает более высокий приоритет. Если для адаптивной схемы используется корреляция векторов движения, то вектор движения с более высокой корреляцией получает более высокий приоритет. Например, если два вектора движения в списке приоритетов точно совпадают, вектор движения имеет более высокую корреляцию. Если для адаптивной схемы используется направление вектора движения, то, например, вектор движения, направленный в сторону целевого опорного изображения, получает более высокий приоритет. Если для адаптивной схемы используется расстояние до векторов движения, то, например, более короткое временное расстояние для вектора движения от текущего блока до целевого опорного изображения дает более высокий приоритет.
Хотя вышеприведенные примеры иллюстрируют выведение предсказанного вектора движения или кандидата предсказанного вектора движения для текущего блока относительно опорного изображения в списке 0 текущего блока, аналогичный способ также может применяться для выведения предсказанного вектора движения или кандидата предсказанного вектора движения для текущего блока относительно опорного изображения в списке 1 текущего блока. Далее, несмотря на то что каждый пример выведения MVP или вектора-кандидата MVP, проиллюстрированный выше, представляет собой конкретные сочетания списка опорных изображений текущего блока, списка опорных изображений соседнего в пространстве блока, немасштабированных векторов движения и масштабированных векторов движения соседнего в пространстве блока, другие сочетания также могут быть использованы для выведения вектора-кандидата MVP.
Следует отметить, что настоящее изобретение может применяться не только в режиме INTER, но также в режимах SKIP, DIRECT и MERGE. В режиме INTER, с учетом текущего списка, предсказатель вектора движения используется для предсказания вектора движения PU, при этом передается остаток вектора движения. Изобретение может применяться для выведения предсказанного вектора движения без использования схемы конкуренции векторов движения, или для выведения кандидата предсказанного вектора движения с использованием схемы конкуренции векторов движения. Что касается режимов SKIP, DIRECT и MERGE, они могут рассматриваться как особые случаи режима INTER, где остаток вектора движения не передается и всегда выводится к нулю. В этих случаях настоящее изобретение может применяться для выведения вектора движения без использования схемы конкуренции векторов движения, или для выведения кандидата вектора движения с использованием схемы конкуренции векторов движения.
Исполнение способа предсказания вектора движения, описанное выше, может быть реализовано в различных аппаратных средствах, кодах программного обеспечения, или их сочетаниях. Например, исполнение настоящего изобретения может быть интегрировано на уровне схем в чип со сжатием видеоданных, либо коды программ могут быть интегрированы в программы сжатия видеоданных для выполнения обработки, описанной в настоящем документе. Также исполнение существующего изобретения возможно в виде кодов программ, выполняемых на процессоре цифровых сигналов (DSP) для обработки, описанной в настоящем документе. Изобретение также может применяться в различных функциях, выполняемых процессором ПК, процессором цифровых сигналов, микропроцессором или программируемой вентильной матрицей (FPGA). Эти процессоры могут быть настроены на выполнение конкретных задач в соответствии с изобретением, путем запуска машинно-читаемого программного кода или микропрограммного кода, определяющего конкретные способы, реализованные в соответствии с изобретением. Программные и микропрограммные коды могут быть разработаны на различных языках программирования в различных стилях и форматах. Код программного обеспечения также может быть компилирован для различных целевых платформ. Тем не менее различные форматы кода, стили и языки кодов и прочие средства настройки кода для выполнения задач в соответствии с изобретением не будут отступлением от сущности и объема изобретения.
Изобретение может быть исполнено в других формах без отступления от его сущности и объема. Приведенные примеры следует рассматривать во всех отношениях только как иллюстративные, но не ограничительные. Таким образом, объем изобретения определяется прилагаемой формулой изобретения, а не вышеприведенным описанием. Настоящее изобретение охватывает все модификации и изменения, внесенные в рамках сущности и объема изобретения и определяемые прилагаемой формулой изобретения и ее эквивалентами.