Устройство кодирования кадров, способ кодирования кадров, устройство декодирования кадров и способ декодирования кадров

Изобретение относится к области кодирования и декодирования кадров для разделения кадра на блоки и выполнения предсказания. Технический результат заключается в повышении эффективности кодирования посредством выполнения разбиения блоков, подходящего для кодирования и декодирования кадров. Предложено устройство, которое включает: модуль хранения информации кодирования, выполненный с возможностью хранить информацию интер-предсказания, используемую при интер-предсказании кодированного блока, в списке потенциально подходящих вариантов предикторов векторов движения на основе предыстории, модуль извлечения потенциально подходящих вариантов информации пространственного интер-предсказания, выполненный с возможностью извлекать потенциально подходящий вариант информации пространственного интер-предсказания из информации интер-предсказания блока, пространственно соседнего с целевым блоком кодирования, и задавать потенциально подходящий вариант информации пространственного интер-предсказания в качестве потенциально подходящего варианта информации интер-предсказания целевого блока кодирования; и модуль извлечения потенциально подходящих вариантов информации интер-предсказания на основе предыстории, выполненный с возможностью извлекать потенциально подходящий вариант информации интер-предсказания на основе предыстории из информации интер-предсказания, хранящейся в списке потенциально подходящих вариантов предикторов векторов движения на основе предыстории, и задавать потенциально подходящий вариант информации интер-предсказания на основе предыстории в качестве потенциально подходящего варианта информации интер-предсказания целевого блока кодирования. Модуль извлечения потенциально подходящих вариантов информации интер-предсказания на основе предыстории сравнивает предварительно определенное количество элементов информации интер-предсказания из последней информации интер-предсказания в информации интер-предсказания, хранящейся в списке потенциально подходящих вариантов предикторов векторов движения на основе предыстории, с потенциально подходящим вариантом информации пространственного интер-предсказания, и задает информацию интер-предсказания в качестве потенциально подходящего варианта информации интер-предсказания на основе предыстории, когда значение информации интер-предсказания отличается. 4 н.п. ф-лы, 51 ил.

 

Уровень техники

Область техники, к которой относится изобретение

[0001] Настоящее изобретение относится к технологии кодирования и декодирования кадров для разделения кадра на блоки и выполнения предсказания.

Описание предшествующего уровня техники

[0002] При кодировании и декодировании кадров, целевой кадр разделяется на блоки, каждый из которых представляет собой набор из предписанного количества дискретных отсчетов, и процесс выполняется в единицах блоков. Эффективность кодирования повышается посредством разделения кадра на соответствующие блоки и надлежащего задания внутрикадрового предсказания (интра-предсказания) и межкадрового предсказания (интер-предсказания).

[0003] При кодировании/декодировании движущихся кадров, эффективность кодирования повышается посредством интер-предсказания для выполнения предсказания из кодированного/декодированного кадра. Патентный документ 1 описывает технологию для применения аффинного преобразования во время интер-предсказания. Довольно часто объект вызывает деформацию, такую как увеличение/уменьшение и вращение в движущихся кадрах, и эффективное кодирование обеспечивается за счет применения технологии патентного документа 1.

[0004] Документы предшествующего уровня техники

Патентные документы

Патентный документ 1. Не прошедшая экспертизу заявка на патент (Япония), первая публикация, № H9-172644

Сущность изобретения

[0005] Тем не менее, поскольку технология патентного документа 1 заключает в себе преобразование кадров, имеется проблема в том, что нагрузка по обработке является большой. С учетом вышеизложенной проблемы, настоящее изобретение предоставляет эффективную технологию кодирования с низкой нагрузкой.

[0006] Чтобы разрешать вышеописанную проблему, устройство кодирования кадров согласно первому аспекту настоящего изобретения включает в себя модуль хранения информации кодирования, выполненный с возможностью хранить информацию интер-предсказания, используемую при интер-предсказании кодированного блока, в списке потенциально подходящих вариантов предикторов векторов движения на основе предыстории; модуль извлечения потенциально подходящих вариантов информации пространственного интер-предсказания, выполненный с возможностью извлекать потенциально подходящий вариант информации пространственного интер-предсказания из информации интер-предсказания блока, пространственно соседнего с целевым блоком кодирования, и задавать потенциально подходящий вариант информации пространственного интер-предсказания в качестве потенциально подходящего варианта информации интер-предсказания целевого блока кодирования; и модуль извлечения потенциально подходящих вариантов информации интер-предсказания на основе предыстории, выполненный с возможностью извлекать потенциально подходящий вариант информации интер-предсказания на основе предыстории из информации интер-предсказания, хранящейся в списке потенциально подходящих вариантов предикторов векторов движения на основе предыстории, и задавать потенциально подходящий вариант информации интер-предсказания на основе предыстории в качестве потенциально подходящего варианта информации интер-предсказания целевого блока кодирования, при этом модуль извлечения потенциально подходящих вариантов информации интер-предсказания на основе предыстории сравнивает предварительно определенное количество элементов информации интер-предсказания из последней информации интер-предсказания в информации интер-предсказания, хранящейся в списке потенциально подходящих вариантов предикторов векторов движения на основе предыстории, с потенциально подходящим вариантом информации пространственного интер-предсказания, и задает информацию интер-предсказания в качестве потенциально подходящего варианта информации интер-предсказания на основе предыстории, когда значение информации интер-предсказания отличается.

[0007] Способ кодирования кадров согласно второму аспекту настоящего изобретения включает в себя этап сохранения информации кодирования для сохранения информации интер-предсказания, используемой при интер-предсказании кодированного блока, в списке потенциально подходящих вариантов предикторов векторов движения на основе предыстории; этап извлечения потенциально подходящих вариантов информации пространственного интер-предсказания для извлечения потенциально подходящего варианта информации пространственного интер-предсказания из информации интер-предсказания блока, пространственно соседнего с целевым блоком кодирования, и задания потенциально подходящего варианта информации пространственного интер-предсказания в качестве потенциально подходящего варианта информации интер-предсказания целевого блока кодирования; и этап извлечения потенциально подходящих вариантов информации интер-предсказания на основе предыстории для извлечения потенциально подходящего варианта информации интер-предсказания на основе предыстории из информации интер-предсказания, хранящейся в списке потенциально подходящих вариантов предикторов векторов движения на основе предыстории, и задания потенциально подходящего варианта информации интер-предсказания на основе предыстории в качестве потенциально подходящего варианта информации интер-предсказания целевого блока кодирования, при этом этап извлечения потенциально подходящих вариантов информации интер-предсказания на основе предыстории включает в себя сравнение предварительно определенного количества элементов информации интер-предсказания из последней информации интер-предсказания в информации интер-предсказания, хранящейся в списке потенциально подходящих вариантов предикторов векторов движения на основе предыстории, с потенциально подходящим вариантом информации пространственного интер-предсказания, и задание информации интер-предсказания в качестве потенциально подходящего варианта информации интер-предсказания на основе предыстории, когда значение информации интер-предсказания отличается.

[0008] Программа для кодирования кадров согласно третьему аспекту настоящего изобретения инструктирует компьютеру выполнять: этап сохранения информации кодирования для сохранения информации интер-предсказания, используемой при интер-предсказании кодированного блока, в списке потенциально подходящих вариантов предикторов векторов движения на основе предыстории; этап извлечения потенциально подходящих вариантов информации пространственного интер-предсказания для извлечения потенциально подходящего варианта информации пространственного интер-предсказания из информации интер-предсказания блока, пространственно соседнего с целевым блоком кодирования, и задания потенциально подходящего варианта информации пространственного интер-предсказания в качестве потенциально подходящего варианта информации интер-предсказания целевого блока кодирования; и этап извлечения потенциально подходящих вариантов информации интер-предсказания на основе предыстории для извлечения потенциально подходящего варианта информации интер-предсказания на основе предыстории из информации интер-предсказания, хранящейся в списке потенциально подходящих вариантов предикторов векторов движения на основе предыстории, и задания потенциально подходящего варианта информации интер-предсказания на основе предыстории в качестве потенциально подходящего варианта информации интер-предсказания целевого блока кодирования, при этом этап извлечения потенциально подходящих вариантов информации интер-предсказания на основе предыстории включает в себя сравнение предварительно определенного количества элементов информации интер-предсказания из последней информации интер-предсказания в информации интер-предсказания, хранящейся в списке потенциально подходящих вариантов предикторов векторов движения на основе предыстории, с потенциально подходящим вариантом информации пространственного интер-предсказания, и задание информации интер-предсказания в качестве потенциально подходящего варианта информации интер-предсказания на основе предыстории, когда значение информации интер-предсказания отличается.

[0009] Устройство декодирования кадров согласно четвертому аспекту настоящего изобретения включает в себя модуль хранения информации кодирования, выполненный с возможностью хранить информацию интер-предсказания, используемую при интер-предсказании декодированного блока, в списке потенциально подходящих вариантов предикторов векторов движения на основе предыстории; модуль извлечения потенциально подходящих вариантов информации пространственного интер-предсказания, выполненный с возможностью извлекать потенциально подходящий вариант информации пространственного интер-предсказания из информации интер-предсказания блока, пространственно соседнего с целевым блоком декодирования, и задавать потенциально подходящий вариант информации пространственного интер-предсказания в качестве потенциально подходящего варианта информации интер-предсказания целевого блока декодирования; и модуль извлечения потенциально подходящих вариантов информации интер-предсказания на основе предыстории, выполненный с возможностью извлекать потенциально подходящий вариант информации интер-предсказания на основе предыстории из информации интер-предсказания, хранящейся в списке потенциально подходящих вариантов предикторов векторов движения на основе предыстории, и задавать потенциально подходящий вариант информации интер-предсказания на основе предыстории в качестве потенциально подходящего варианта информации интер-предсказания целевого блока декодирования, при этом модуль извлечения потенциально подходящих вариантов информации интер-предсказания на основе предыстории сравнивает предварительно определенное количество элементов информации интер-предсказания из последней информации интер-предсказания в информации интер-предсказания, хранящейся в списке потенциально подходящих вариантов предикторов векторов движения на основе предыстории, с потенциально подходящим вариантом информации пространственного интер-предсказания, и задает информацию интер-предсказания в качестве потенциально подходящего варианта информации интер-предсказания на основе предыстории, когда значение информации интер-предсказания отличается.

[0010] Способ декодирования кадров согласно пятому аспекту настоящего изобретения включает в себя этап сохранения информации кодирования для сохранения информации интер-предсказания, используемой при интер-предсказании декодированного блока, в списке потенциально подходящих вариантов предикторов векторов движения на основе предыстории; этап извлечения потенциально подходящих вариантов информации пространственного интер-предсказания для извлечения потенциально подходящего варианта информации пространственного интер-предсказания из информации интер-предсказания блока, пространственно соседнего с целевым блоком декодирования, и задания потенциально подходящего варианта информации пространственного интер-предсказания в качестве потенциально подходящего варианта информации интер-предсказания целевого блока декодирования; и этап извлечения потенциально подходящих вариантов информации интер-предсказания на основе предыстории для извлечения потенциально подходящего варианта информации интер-предсказания на основе предыстории из информации интер-предсказания, хранящейся в списке потенциально подходящих вариантов предикторов векторов движения на основе предыстории, и задания потенциально подходящего варианта информации интер-предсказания на основе предыстории в качестве потенциально подходящего варианта информации интер-предсказания целевого блока декодирования, при этом этап извлечения потенциально подходящих вариантов информации интер-предсказания на основе предыстории включает в себя сравнение предварительно определенного количества элементов информации интер-предсказания из последней информации интер-предсказания в информации интер-предсказания, хранящейся в списке потенциально подходящих вариантов предикторов векторов движения на основе предыстории, с потенциально подходящим вариантом информации пространственного интер-предсказания, и задание информации интер-предсказания в качестве потенциально подходящего варианта информации интер-предсказания на основе предыстории, когда значение информации интер-предсказания отличается.

[0011] Программа для декодирования кадров согласно шестому аспекту настоящего изобретения инструктирует компьютеру выполнять: этап сохранения информации кодирования для сохранения информации интер-предсказания, используемой при интер-предсказании декодированного блока, в списке потенциально подходящих вариантов предикторов векторов движения на основе предыстории; этап извлечения потенциально подходящих вариантов информации пространственного интер-предсказания для извлечения потенциально подходящего варианта информации пространственного интер-предсказания из информации интер-предсказания блока, пространственно соседнего с целевым блоком декодирования, и задания потенциально подходящего варианта информации пространственного интер-предсказания в качестве потенциально подходящего варианта информации интер-предсказания целевого блока декодирования; и этап извлечения потенциально подходящих вариантов информации интер-предсказания на основе предыстории для извлечения потенциально подходящего варианта информации интер-предсказания на основе предыстории из информации интер-предсказания, хранящейся в списке потенциально подходящих вариантов предикторов векторов движения на основе предыстории, и задания потенциально подходящего варианта информации интер-предсказания на основе предыстории в качестве потенциально подходящего варианта информации интер-предсказания целевого блока декодирования, при этом этап извлечения потенциально подходящих вариантов информации интер-предсказания на основе предыстории включает в себя сравнение предварительно определенного количества элементов информации интер-предсказания из последней информации интер-предсказания в информации интер-предсказания, хранящейся в списке потенциально подходящих вариантов предикторов векторов движения на основе предыстории, с потенциально подходящим вариантом информации пространственного интер-предсказания, и задание информации интер-предсказания в качестве потенциально подходящего варианта информации интер-предсказания на основе предыстории, когда значение информации интер-предсказания отличается.

[0012] Согласно настоящему изобретению, можно реализовывать высокоэффективный процесс кодирования/декодирования кадров с низкой нагрузкой.

Краткое описание чертежей

[0013] Фиг. 1 является блок-схемой устройства кодирования кадров согласно варианту осуществления настоящего изобретения.

Фиг. 2 является блок-схемой устройства декодирования кадров согласно варианту осуществления настоящего изобретения.

Фиг. 3 является пояснительной блок-схемой последовательности операций способа, показывающей операцию разделения древовидного блока.

Фиг. 4 является схемой, показывающей состояние, в котором входной кадр разделяется на древовидные блоки.

Фиг. 5 является пояснительной схемой, показывающей Z-сканирование.

Фиг. 6A является схемой, показывающей разделенную форму блока.

Фиг. 6B является схемой, показывающей разделенную форму блока.

Фиг. 6C является схемой, показывающей разделенную форму блока.

Фиг. 6D является схемой, показывающей разделенную форму блока.

Фиг. 6E является схемой, показывающей разделенную форму блока.

Фиг. 7 является пояснительной блок-схемой последовательности операций способа, показывающей операцию разделения блока на четыре части.

Фиг. 8 является пояснительной блок-схемой последовательности операций способа, показывающей операцию разделения блока на две или три части.

Фиг. 9 является синтаксисом для выражения формы разбиения блоков.

Фиг. 10A является пояснительной схемой, показывающей интра-предсказание.

Фиг. 10B является пояснительной схемой, показывающей интра-предсказание.

Фиг. 11 является пояснительной схемой, показывающей опорный блок интер-предсказания.

Фиг. 12 является синтаксисом для выражения режима предсказания блоков кодирования.

Фиг. 13 является схемой, показывающей соответствие между синтаксическим элементом, связанным со интер-предсказанием, и режимом.

Фиг. 14 является пояснительной схемой, показывающей аффинную компенсацию движения двух управляющих точек.

Фиг. 15 является пояснительной схемой, показывающей аффинную компенсацию движения трех управляющих точек.

Фиг. 16 является блок-схемой подробной конфигурации модуля 102 интер-предсказания по фиг. 1.

Фиг. 17 является блок-схемой подробной конфигурации модуля 301 извлечения режимов идентификации предикторов нормальных векторов движения по фиг. 16.

Фиг. 18 является блок-схемой подробной конфигурации модуля 302 извлечения режимов нормального объединения по фиг. 16.

Фиг. 19 является пояснительной блок-схемой последовательности операций способа, показывающей процесс извлечения режимов идентификации предикторов нормальных векторов движения модуля 301 извлечения режимов идентификации предикторов нормальных векторов движения по фиг. 16.

Фиг. 20 является блок-схемой последовательности операций способа, показывающей процедуру обработки процесса извлечения режимов идентификации предикторов нормальных векторов движения.

Фиг. 21 является пояснительной блок-схемой последовательности операций способа, показывающей процедуру обработки процесса извлечения режимов нормального объединения.

Фиг. 22 является блок-схемой подробной конфигурации модуля 203 интер-предсказания по фиг. 2.

Фиг. 23 является блок-схемой подробной конфигурации модуля 401 извлечения режимов идентификации предикторов нормальных векторов движения по фиг. 22.

Фиг. 24 является блок-схемой подробной конфигурации модуля 402 извлечения режимов нормального объединения по фиг. 22.

Фиг. 25 является пояснительной блок-схемой последовательности операций способа, показывающей процесс извлечения режимов идентификации предикторов нормальных векторов движения модуля 401 извлечения режимов идентификации предикторов нормальных векторов движения по фиг. 22.

Фиг. 26 является пояснительной схемой, показывающей процедуру обработки для инициализации/обновления списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории.

Фиг. 27 является блок-схемой последовательности операций способа для процедуры обработки проверки на идентичные элементы в процедуре обработки для инициализации/обновления списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории.

Фиг. 28 является блок-схемой последовательности операций способа для процедуры обработки поэлементного сдвига в процедуре обработки для инициализации/обновления списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории.

Фиг. 29 является пояснительной блок-схемой последовательности операций способа, показывающей процедуру обработки извлечения потенциально подходящих вариантов предикторов векторов движения на основе предыстории.

Фиг. 30 является пояснительной блок-схемой последовательности операций способа, показывающей процедуру обработки извлечения потенциально подходящих вариантов объединения на основе предыстории.

Фиг. 31A является пояснительной схемой, показывающей пример процесса обновления списков потенциально подходящих вариантов предикторов векторов движения на основе предыстории.

Фиг. 31B является пояснительной схемой, показывающей пример процесса обновления списков потенциально подходящих вариантов предикторов векторов движения на основе предыстории.

Фиг. 31C является пояснительной схемой, показывающей пример процесса обновления списков потенциально подходящих вариантов предикторов векторов движения на основе предыстории.

Фиг. 32 является пояснительной схемой, показывающей предсказание с компенсацией движения, когда время такта опорного кадра (RefL0Pic) L0 находится раньше времени такта целевого кадра (CurPic), в качестве L0-предсказания.

Фиг. 33 является пояснительной схемой, показывающей предсказание с компенсацией движения, когда время такта опорного кадра L0-предсказания находится позже времени такта целевого кадра, в качестве L0-предсказания.

Фиг. 34 является пояснительной схемой, показывающей направление предсказания для предсказания с компенсацией движения, когда время такта опорного кадра L0-предсказания находится раньше времени такта целевого кадра, и время такта опорного кадра L1-предсказания находится позже времени такта целевого кадра, в качестве бипредсказания.

Фиг. 35 является пояснительной схемой, показывающей направление предсказания для предсказания с компенсацией движения, когда время такта опорного кадра L0-предсказания и время такта опорного кадра L1-предсказания находятся раньше времени такта целевого кадра, в качестве бипредсказания.

Фиг. 36 является пояснительной схемой, показывающей направление предсказания для предсказания с компенсацией движения, когда время такта опорного кадра L0-предсказания и время такта опорного кадра L1-предсказания находятся позже времени такта целевого кадра, в качестве бипредсказания.

Фиг. 37 является пояснительной схемой, показывающей пример аппаратной конфигурации устройства кодирования/декодирования согласно варианту осуществления настоящего изобретения.

Фиг. 38A является схемой, показывающей пример элементов списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории в случае, в котором блок кодирования цели кодирования/декодирования представляет собой верхний правый блок, когда блок разделяется на четыре части.

Фиг. 38B является схемой, показывающей пример элементов списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории в случае, в котором блок кодирования цели кодирования/декодирования представляет собой нижний левый блок, когда блок разделяется на четыре части.

Фиг. 38C является схемой, показывающей пример элементов списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории в случае, в котором блок кодирования цели кодирования/декодирования представляет собой нижний правый блок, когда блок разделяется на четыре части.

Фиг. 38D является схемой, показывающей проверку/сравнение элементов списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории.

Фиг. 39 является блок-схемой последовательности операций способа, иллюстрирующей процедуру обработки извлечения потенциально подходящих вариантов объединения на основе предыстории согласно второму варианту осуществления настоящего изобретения.

Фиг. 40 является блок-схемой последовательности операций способа процедуры обработки проверки на идентичные элементы в процедуре обработки для инициализации и обновления списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории согласно третьему варианту осуществления настоящего изобретения.

Фиг. 41 является блок-схемой последовательности операций способа процедуры обработки проверки на идентичные элементы в процедуре обработки для инициализации и обновления списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории согласно четвертому варианту осуществления настоящего изобретения.

Подробное описание изобретения

[0014] В дальнейшем задаются технологические и технические термины, используемые в варианте осуществления.

[0015] Древовидный блок

В варианте осуществления, целевой кадр кодирования/декодирования одинаково разделяется на единицы предварительно определенного размера. Эта единица задается как древовидный блок. Хотя размер древовидного блока составляет 128×128 дискретных отсчетов на фиг. 4, размер древовидного блока не ограничен этим, и любой размер может задаваться. Древовидный блок цели (соответствующей цели кодирования в процессе кодирования или цели декодирования в процессе декодирования) переключается в порядке растрового сканирования, т.е. слева направо и сверху вниз. Внутренняя часть каждого древовидного блока дополнительно может рекурсивно разделяться. Блок, который представляет собой цель кодирования/декодирования после того, как древовидный блок рекурсивно разделяется, задается как блок кодирования. Кроме того, древовидный блок и блок кодирования совместно задаются в качестве блоков. Эффективное кодирование обеспечивается посредством выполнения соответствующего разбиения блоков. Размер древовидного блока может составлять фиксированное значение, предварительно определенное посредством устройства кодирования и устройства декодирования, или размер древовидного блока, определенный посредством устройства кодирования, может быть выполнен с возможностью передаваться в устройство декодирования. Здесь, максимальный размер древовидного блока составляет 128×128 дискретных отсчетов, и минимальный размер древовидного блока составляет 16×16 дискретных отсчетов. Кроме того, максимальный размер блока кодирования составляет 64×64 дискретных отсчетов, и минимальный размер блока кодирования составляет 4×4 дискретных отсчетов.

[0016] Режим предсказания

Переключение выполняется между интра-предсказанием (MODE_INTRA), в котором предсказание выполняется из обработанного сигнала кадров для целевого кадра, и интер-предсказанием (MODE_INTER), в котором предсказание выполняется из сигнала кадров для обработанного кадра в единицах целевых блоков кодирования.

Обработанный кадр используется для кадра, сигнала кадров, древовидного блока, блока, блока кодирования и т.п., полученных посредством декодирования сигнала, полностью кодированного в процессе кодирования, и используется для кадра, сигнала кадров, древовидного блока, блока, блока кодирования и т.п., полученных посредством завершения декодирования в процессе декодирования.

Режим, в котором идентифицируются интра-предсказание (MODE_INTRA) и интер-предсказание (MODE_INTER), задается как режим предсказания (PredMode). Режим предсказания (PredMode) имеет интра-предсказание (MODE_INTRA) или интер-предсказание (MODE_INTER) в качестве значения.

[0017] Интер-предсказание

При интер-предсказании, при котором предсказание выполняется из сигнала кадров для обработанного кадра, множество обработанных кадров могут использоваться в качестве опорных кадров. Чтобы управлять множеством опорных кадров, два типа опорных списков в виде L0 (опорного списка 0) и L1 (опорного списка 1) задаются, и опорный кадр идентифицируется с использованием каждого опорного индекса. В P-срезе, может использоваться L0-предсказание (Pred_L0). В B-срезе, могут использоваться L0-предсказание (Pred_L0), L1-предсказание (Pred_L1) и бипредсказание (Pred_BI). L0-предсказание (Pred_L0) представляет собой интер-предсказание, которое ссылается на опорный кадр, управляемый в L0, и L1-предсказание (Pred_L1) представляет собой интер-предсказание, которое ссылается на опорный кадр, управляемый в L1. Бипредсказание (Pred_BI) представляет собой интер-предсказание, при котором как выполняется L0-предсказание, так и L1-предсказание, и ссылаются на один опорный кадр, управляемый в каждом из L0 и L1. Информация для идентификации L0-предсказания, L1-предсказания и бипредсказания задается как режим интер-предсказания. В последующей обработке, константы и переменные с подстрочным индексом LX в выводе предположительно должны обрабатываться для каждого из L0 и L1.

[0018] Режим идентификации предикторов векторов движения

Режим идентификации предикторов векторов движения представляет собой режим для передачи индекса для идентификации предиктора вектора движения, разности векторов движения, режима интер-предсказания и опорного индекса и определения информации интер-предсказания целевого блока. Предиктор вектора движения извлекается из потенциально подходящего варианта предиктора вектора движения, извлекаемого из обработанного блока, соседнего с целевым блоком, либо блока, расположенного в идентичной позиции или около (рядом) с целевым блоком среди блоков, принадлежащих обработанному кадру, и индекса для идентификации предиктора вектора движения.

[0019] Режим объединения

Режим объединения представляет собой режим, в котором информация интер-предсказания целевого блока извлекается из информации интер-предсказания обработанного блока, соседнего с целевым блоком, либо блока, расположенного в идентичной позиции или около (рядом) с целевым блоком среди блоков, принадлежащих обработанному кадру, без передачи разности векторов движения и опорного индекса.

[0020] Обработанный блок, соседний с целевым блоком, и информация интер-предсказания обработанного блока задаются как пространственные потенциально подходящие варианты объединения. Блок, расположенный в идентичной позиции или около (рядом) с целевым блоком среди блоков, принадлежащих обработанному кадру, и информация интер-предсказания, извлекаемая из информации интер-предсказания блока, задаются как временные потенциально подходящие варианты объединения. Каждый потенциально подходящий вариант объединения регистрируется в списке потенциально подходящих вариантов объединения, и потенциально подходящий вариант объединения, используемый для предсказания целевого блока, идентифицируется посредством индекса объединения.

[0021] Соседний блок

Фиг. 11 является пояснительной схемой, показывающей опорный блок, на который ссылаются при извлечении информации интер-предсказания в режиме идентификации предикторов векторов движения и режиме объединения. A0, A1, A2, B0, B1, B2 и B3 представляют собой обработанные блоки, соседние с целевым блоком. T0 представляет собой блок, расположенный в идентичной позиции или около (рядом) с целевым блоком в целевом кадре среди блоков, принадлежащих обработанному кадру.

[0022] A1 и A2 представляют собой блоки, расположенные в левой стороне относительно целевого блока кодирования и соседние с целевым блоком кодирования. B1 и B3 представляют собой блоки, расположенные в верхней стороне относительно целевого блока кодирования и соседние с целевым блоком кодирования. A0, B0 и B2 представляют собой блоки, расположенные снизу слева, сверху справа и сверху слева относительно целевого блока кодирования, соответственно.

[0023] Ниже описываются подробности того, как обрабатывать соседние блоки в режиме идентификации предикторов векторов движения и режиме объединения.

[0024] Аффинная компенсация движения

Аффинная компенсация движения представляет собой процесс выполнения компенсации движения посредством разделения блока кодирования на субблоки предварительно определенной единицы и отдельного определения вектора движения для каждого из субблоков, на которые разделяется блок кодирования. Вектор движения каждого субблока извлекается на основе одной или более управляющих точек, извлекаемых из информации интер-предсказания обработанного блока, соседнего с целевым блоком, либо блока, расположенного в идентичной позиции или около (рядом) с целевым блоком среди блоков, принадлежащих обработанному кадру. Хотя размер субблока составляет 4×4 дискретных отсчетов в настоящем варианте осуществления, размер субблока не ограничен этим, и вектор движения может извлекаться в единицах дискретных отсчетов.

[0025] Пример аффинной компенсации движения в случае двух управляющих точек показывается на фиг. 14. В этом случае, две управляющих точки имеют два параметра в виде компонента горизонтального направления и компонента вертикального направления. Таким образом, аффинное преобразование в случае двух управляющих точек называется "четырехпараметрическим аффинным преобразованием". CP1 и CP2 по фиг. 14 представляют собой управляющие точки.

Пример аффинной компенсации движения в случае трех управляющих точек показывается на фиг. 15. В этом случае, три управляющих точки имеют два параметра в виде компонента горизонтального направления и компонента вертикального направления. Таким образом, аффинное преобразование в случае трех управляющих точек называется "шестипараметрическим аффинным преобразованием". CP1, CP2 и CP3 по фиг. 15 представляют собой управляющие точки.

[0026] Аффинная компенсация движения может использоваться как в режиме идентификации предикторов векторов движения, так и в режиме объединения. Режим, в котором аффинная компенсация движения применяется в режиме идентификации предикторов векторов движения, задается как режим идентификации предикторов векторов движения на основе субблоков, и режим, в котором аффинная компенсация движения применяется в режиме объединения, задается как режим объединения на основе субблоков.

[0027] Синтаксис интер-предсказания

В дальнейшем описывается синтаксис, связанный со интер-предсказанием, с использованием фиг. 12 и 13.

Флаг merge_flag на фиг. 12 указывает то, задается целевой блок кодирования в режим объединения или в режим идентификации предикторов векторов движения. Флаг merge_affine_flag указывает то, применяется или нет режим объединения на основе субблоков к целевому блоку кодирования режима объединения. Флаг inter_affine_flag указывает то, следует или нет применять режим идентификации предикторов векторов движения на основе субблоков к целевому блоку кодирования режима идентификации предикторов векторов движения. Флаг cu_affine_type_flag используется для того, чтобы определять количество управляющих точек в режиме идентификации предикторов векторов движения на основе субблоков.

Фиг. 13 показывает значение каждого синтаксического элемента и способ предсказания, соответствующий ему. Режим нормального объединения соответствует merge_flag=1 и merge_affine_flag=0 и не представляет собой режим объединения на основе субблоков. Режим объединения на основе субблоков соответствует merge_flag=1 и merge_affine_flag=1. Режим идентификации предикторов нормальных векторов движения соответствует merge_flag=0 и inter_affine_flag=0. Режим идентификации предикторов нормальных векторов движения представляет собой режим объединения предиктора вектора движения, который не представляет собой режим идентификации предикторов векторов движения на основе субблоков. Режим идентификации предикторов векторов движения на основе субблоков соответствует merge_flag=0 и inter_affine_flag=1. Когда merge_flag=0 и inter_affine_flag=1, cu_affine_type_flag дополнительно передается, чтобы определять количество управляющих точек.

[0028] POC

Номер в последовательности кадров (POC) представляет собой переменную, ассоциированную с кадром, который должен кодироваться, и задается равным значению, которое постепенно увеличивается на 1 согласно порядку вывода кадров. Согласно POC-значению, можно различать то, являются или нет кадры идентичными, чтобы различать переднезаднюю взаимосвязь между кадрами в порядке вывода или извлекать расстояние между кадрами. Например, если POC двух кадров имеют идентичное значение, может определяться то, что они представляют собой идентичный кадр. Когда POC двух кадров имеют различные значения, может определяться то, что кадр с меньшим POC-значением представляет собой кадр, который должен выводиться первым. Разность между POC двух кадров указывает межкадровое расстояние в направлении временной оси.

[0029] Первый вариант осуществления

В дальнейшем описываются устройство 100 кодирования кадров и устройство 200 декодирования кадров согласно первому варианту осуществления настоящего изобретения.

[0030] Фиг. 1 является блок-схемой устройства 100 кодирования кадров согласно первому варианту осуществления. Устройство 100 кодирования кадров согласно варианту осуществления включает в себя модуль 101 разбиения блоков, модуль 102 интер-предсказания, модуль 103 интра-предсказания, запоминающее устройство 104 декодированных кадров, модуль 105 определения способа предсказания, модуль 106 формирования остатков, модуль 107 ортогонального преобразования/квантования, модуль 108 кодирования битовых строк, модуль 109 обратного квантования/обратного ортогонального преобразования, модуль 110 наложения сигналов кадров для декодирования и запоминающее устройство 111 для хранения информации кодирования.

[0031] Модуль 101 разбиения блоков рекурсивно разделяет входной кадр, чтобы формировать блок кодирования. Модуль 101 разбиения блоков включает в себя модуль квадратического разбиения, который разделяет разбитый целевой блок в горизонтальном направлении и в вертикальном направлении, и модуль двоичного/троичного разбиения, который разделяет разбитый целевой блок либо в горизонтальном направлении, либо в вертикальном направлении. Модуль 101 разбиения блоков задает сформированный блок кодирования в качестве целевого блока кодирования и предоставляет сигнал кадров целевого блока кодирования в модуль 102 интер-предсказания, модуль 103 интра-предсказания и модуль 106 формирования остатков. Кроме того, модуль 101 разбиения блоков предоставляет информацию, указывающую определенную структуру рекурсивного разбиения, в модуль 108 кодирования битовых строк. Ниже описывается подробная работа модуля 101 разбиения блоков.

[0032] Модуль 102 интер-предсказания выполняет интер-предсказание целевого блока кодирования. Модуль 102 интер-предсказания извлекает множество потенциально подходящих вариантов информации интер-предсказания из информации интер-предсказания, хранящейся в запоминающем устройстве 111 для хранения информации кодирования, и декодированного сигнала кадров, хранящегося в запоминающем устройстве 104 декодированных кадров, выбирает подходящий режим интер-предсказания из множества извлеченных потенциально подходящих вариантов и предоставляет выбранный режим интер-предсказания и предсказанный сигнал кадров согласно выбранному режиму интер-предсказания в модуль 105 определения способа предсказания. Ниже описывается подробная конфигурация и работа модуля 102 интер-предсказания.

[0033] Модуль 103 интра-предсказания выполняет интра-предсказание целевого блока кодирования. Модуль 103 интра-предсказания ссылается на декодированный сигнал кадров, хранящийся в запоминающем устройстве 104 декодированных кадров в качестве опорного дискретного отсчета, и формирует предсказанный сигнал кадров согласно интра-предсказанию на основе информации кодирования, такой как режим интра-предсказания, хранящейся в запоминающем устройстве 111 для хранения информации кодирования. При интра-предсказании, модуль 103 интра-предсказания выбирает подходящий режим интра-предсказания из множества режимов интра-предсказания и предоставляет выбранный режим интра-предсказания и предсказанный сигнал кадров согласно выбранному режиму интра-предсказания в модуль 105 определения способа предсказания.

Примеры интра-предсказания показаны на фиг. 10A и 10B. Фиг. 10A показывает соответствие между направлением предсказания интра-предсказания и номером режима интра-предсказания. Например, в режиме 50 интра-предсказания, кадр интра-предсказания формируется посредством копирования опорных дискретных отсчетов в вертикальном направлении. Режим 1 интра-предсказания представляет собой DC-режим и представляет собой режим, в котором все выборочные значения целевого блока составляют среднее значение опорных дискретных отсчетов. Режим 0 интра-предсказания представляет собой планарный режим и представляет собой режим для создания двумерного кадра интра-предсказания из опорных дискретных отсчетов в вертикальном и горизонтальном направлениях. Фиг. 10B представляет собой пример, в котором кадр интра-предсказания, формируется в случае режима 40 интра-предсказания. Модуль 103 интра-предсказания копирует значение опорного дискретного отсчета в направлении, указываемом посредством режима интра-предсказания, относительно каждого дискретного отсчета целевого блока. Когда опорный дискретный отсчет режима интра-предсказания не находится в целочисленной позиции, модуль 103 интра-предсказания определяет опорное выборочное значение согласно интерполяции из опорных выборочных значений соседних целочисленных позиций.

[0034] Запоминающее устройство 104 декодированных кадров сохраняет декодированный кадр, сформированный посредством модуля 110 наложения сигналов кадров для декодирования. Запоминающее устройство 104 декодированных кадров предоставляет хранящийся декодированный кадр в модуль 102 интер-предсказания и модуль 103 интра-предсказания.

[0035] Модуль 105 определения способа предсказания определяет оптимальный режим предсказания посредством оценки каждого интра-предсказания и интер-предсказания с использованием информации кодирования, остаточного объема кода, величины искажения между предсказанным сигналом кадров и целевым сигналом кадров и т.п. В случае интра-предсказания, модуль 105 определения способа предсказания предоставляет информацию интра-предсказания, такую как режим интра-предсказания, в качестве информации кодирования в модуль 108 кодирования битовых строк. В случае режима интер-предсказанного объединения, модуль 105 определения способа предсказания предоставляет информацию интер-предсказания, такую как индекс объединения и информация, указывающая то, представляет режим собой или нет режим объединения на основе субблоков (флаг объединения на основе субблоков), в качестве информации кодирования в модуль 108 кодирования битовых строк. В случае режима идентификации предикторов векторов движения интер-предсказания, модуль 105 определения способа предсказания предоставляет информацию интер-предсказания, такую как режим интер-предсказания, индекс предиктора вектора движения, опорные индексы L0 и L1, разность векторов движения и информация, указывающая то, представляет режим собой или нет режим идентификации предикторов векторов движения на основе субблоков (флаг предиктора вектора движения на основе субблоков), в качестве информации кодирования в модуль 108 кодирования битовых строк. Дополнительно, модуль 105 определения способа предсказания предоставляет определенную информацию кодирования в запоминающее устройство 111 для хранения информации кодирования. Модуль 105 определения способа предсказания предоставляет предсказанный сигнал кадров в модуль 106 формирования остатков и модуль 110 наложения сигналов кадров для декодирования.

[0036] Модуль 106 формирования остатков формирует остаток посредством вычитания предсказанного сигнала кадров из целевого сигнала кадров и предоставляет остаток в модуль 107 ортогонального преобразования/квантования.

[0037] Модуль 107 ортогонального преобразования/квантования выполняет ортогональное преобразование и квантование для остатка в соответствии с параметром квантования, чтобы формировать ортогонально преобразованный/квантованный остаток, и предоставляет сформированный остаток в модуль 108 кодирования битовых строк и модуль 109 обратного квантования/обратного ортогонального преобразования.

[0038] Модуль 108 кодирования битовых строк кодирует информацию кодирования согласно способу предсказания, определенному посредством модуля 105 определения способа предсказания для каждого блока кодирования, в дополнение к информации единиц последовательностей, кадров, срезов и блоков кодирования. В частности, модуль 108 кодирования битовых строк кодирует режим PredMode предсказания для каждого блока кодирования. Когда режим предсказания представляет собой интер-предсказание (MODE_INTER), модуль 108 кодирования битовых строк кодирует информацию кодирования (информацию интер-предсказания), такую как флаг для различения того, представляет или нет режим собой режим объединения, флаг объединения на основе субблоков, индекс объединения, когда режим представляет собой режим объединения, режим интер-предсказания, когда режим не представляет собой режим объединения, индекс предиктора вектора движения, информация относительно разности векторов движения и флаг предиктора вектора движения на основе субблоков в соответствии с указанным синтаксисом (синтаксическим правилом для битовых строк) и формирует первые битовые строки. Когда режим предсказания представляет собой интра-предсказание (MODE_INTRA), информация кодирования (информация интра-предсказания), такая как режим интра-предсказания кодируется в соответствии с указанным синтаксисом (синтаксическим правилом для битовых строк), и первые битовые строки формируются. Кроме того, модуль 108 кодирования битовых строк энтропийно кодирует ортогонально преобразованный и квантованный остаток в соответствии с указанным синтаксисом, чтобы формировать вторые битовые строки. Модуль 108 кодирования битовых строк мультиплексирует первые битовые строки и вторые битовые строки в соответствии с указанным синтаксисом и выводит поток битов.

[0039] Модуль 109 обратного квантования/обратного ортогонального преобразования вычисляет остаток посредством выполнения обратного квантования и обратного ортогонального преобразования для ортогонально преобразованного/квантованного остатка, предоставляемого из модуля 107 ортогонального преобразования/квантования, и предоставляет вычисленный остаток в модуль 110 наложения сигналов кадров для декодирования.

[0040] Модуль 110 наложения сигналов кадров для декодирования накладывает предсказанный сигнал кадров согласно определению модуля 105 определения способа предсказания и остаток, обратно квантованный и обратно ортогонально преобразованный посредством модуля 109 обратного квантования/обратного ортогонального преобразования, чтобы формировать декодированный кадр, и сохраняет декодированный кадр в запоминающем устройстве 104 декодированных кадров. Кроме того, модуль 110 наложения сигналов кадров для декодирования может хранить декодированный кадр в запоминающем устройстве 104 декодированных кадров после выполнения процесса фильтрации для уменьшения искажения, такого как искажение в виде блочности вследствие кодирования для декодированного кадра.

[0041] Запоминающее устройство 111 для хранения информации кодирования сохраняет информацию кодирования, такую как режим предсказания (интер-предсказание или интра-предсказание), определенный посредством модуля 105 определения способа предсказания. В случае интер-предсказания, информация кодирования, хранящаяся в запоминающем устройстве 111 для хранения информации кодирования, включает в себя информацию интер-предсказания, такую как определенный вектор движения, опорные индексы опорных списков L0 и L1 и списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории. Кроме того, в случае режима интер-предсказанного объединения, информация кодирования, хранящаяся в запоминающем устройстве 111 для хранения информации кодирования, включает в себя информацию интер-предсказания, такую как индекс объединения и информация, указывающая то, представляет режим собой или нет режим объединения на основе субблоков (флаг объединения на основе субблоков), в дополнение к вышеописанной информации. Кроме того, в случае режима идентификации предикторов векторов движения интер-предсказания, информация кодирования, хранящаяся в запоминающем устройстве 111 для хранения информации кодирования, включает в себя информацию интер-предсказания, такую как режим интер-предсказания, индекс предиктора вектора движения, разность векторов движения и информация, указывающая то, представляет режим собой или нет режим идентификации предикторов векторов движения на основе субблоков (флаг предиктора вектора движения на основе субблоков), в дополнение к вышеописанной информации. В случае интра-предсказания, информация кодирования, хранящаяся в запоминающем устройстве 111 для хранения информации кодирования, включает в себя информацию интра-предсказания, такую как определенный режим интра-предсказания.

[0042] Фиг. 2 является блок-схемой, показывающей конфигурацию устройства декодирования кадров согласно варианту осуществления настоящего изобретения, соответствующего устройству кодирования кадров по фиг. 1. Устройство декодирования кадров согласно варианту осуществления включает в себя модуль 201 декодирования битовых строк, модуль 202 разбиения блоков, модуль 203 интер-предсказания, модуль 204 интра-предсказания, запоминающее устройство 205 для хранения информации кодирования, модуль 206 обратного квантования/обратного ортогонального преобразования, модуль 207 наложения сигналов кадров для декодирования и запоминающее устройство 208 декодированных кадров.

[0043] Поскольку процесс декодирования устройства декодирования кадров по фиг. 2 соответствует процессу декодирования, предоставленному в устройстве кодирования кадров по фиг. 1, компоненты запоминающего устройства 205 для хранения информации кодирования, модуля 206 обратного квантования/обратного ортогонального преобразования, модуля 207 наложения сигналов кадров для декодирования и запоминающего устройства 208 декодированных кадров по фиг. 2 имеют функции, соответствующие компонентам запоминающего устройства 111 для хранения информации кодирования, модуля 109 обратного квантования/обратного ортогонального преобразования, модуля 110 наложения сигналов кадров для декодирования и запоминающего устройства 104 декодированных кадров устройства кодирования кадров по фиг. 1.

[0044] Поток битов, предоставляемый в модуль 201 декодирования битовых строк, разделяется в соответствии с указанным синтаксическим правилом. Модуль 201 декодирования битовых строк декодирует отделенную первую битовую строку и получает информацию единиц последовательностей, кадров, срезов, блоков кодирования и информацию кодирования единиц блоков кодирования. В частности, модуль 201 декодирования битовых строк декодирует режим PredMode предсказания для различения интер-предсказания (MODE_INTER) или интра-предсказания (MODE_INTRA) в единицах блоков кодирования. Когда режим предсказания представляет собой интер-предсказание (MODE_INTER), модуль 201 декодирования битовых строк декодирует информацию кодирования (информацию интер-предсказания) относительно флага для различения того, представляет или нет режим собой режим объединения, индекс объединения, когда режим представляет собой режим объединения, флаг объединения на основе субблоков, режим интер-предсказания, когда режим представляет собой режим идентификации предикторов векторов движения, индекс предиктора вектора движения, разность векторов движения, флаг предиктора вектора движения на основе субблоков и т.п. в соответствии с указанным синтаксисом и предоставляет информацию кодирования (информацию интер-предсказания) в запоминающее устройство 205 для хранения информации кодирования через модуль 203 интер-предсказания и модуль 202 разбиения блоков. Когда режим предсказания представляет собой интра-предсказание (MODE_INTRA), информация кодирования (информация интра-предсказания), такая как режим интра-предсказания декодируется в соответствии с указанным синтаксисом, и информация кодирования (информация интра-предсказания) предоставляется в запоминающее устройство 205 для хранения информации кодирования через модуль 203 интер-предсказания или модуль 204 интра-предсказания и модуль 202 разбиения блоков. Модуль 201 декодирования битовых строк декодирует отделенные вторые битовые строки, чтобы вычислять ортогонально преобразованный/квантованный остаток, и предоставляет ортогонально преобразованный/квантованный остаток в модуль 206 обратного квантования/обратного ортогонального преобразования.

[0045] Когда режим PredMode предсказания целевого блока кодирования представляет собой режим идентификации предикторов векторов движения при интер-предсказании (MODE_INTER), модуль 203 интер-предсказания извлекает множество потенциально подходящих вариантов предикторов векторов движения с использованием информации кодирования ранее декодированного сигнала кадров, хранящейся в запоминающем устройстве 205 для хранения информации кодирования, и регистрирует множество извлеченных потенциально подходящих вариантов предикторов векторов движения в списке потенциально подходящих вариантов предикторов векторов движения, который описывается ниже. Модуль 203 интер-предсказания выбирает предиктор вектора движения согласно индексу предиктора вектора движения, декодированному и предоставляемому посредством модуля 201 декодирования битовых строк, из множества потенциально подходящих вариантов предикторов векторов движения, зарегистрированных в списке потенциально подходящих вариантов предикторов векторов движения, вычисляет вектор движения из разности векторов движения, декодированной посредством модуля 201 декодирования битовых строк, и выбранного предиктора вектора движения, и сохраняет вычисленный вектор движения в запоминающем устройстве 205 для хранения информации кодирования вместе с другой информацией кодирования. Информация кодирования блока кодирования, предоставляемая/хранящаяся здесь, представляет собой режим PredMode предсказания, флаги predFlagL0[xP][yP] и predFlagL1[xP][yP], указывающие то, следует использовать L0-предсказание и L1-предсказание, опорные индексы refIdxL0[xP][yP] и refIdxL1[xP][yP] L0 и L1, векторы mvL0[xP][yP] и mvL1[xP][yP] движения L0 и L1 и т.п. Здесь, xP и yP представляют собой индексы, указывающие позицию верхней левого дискретного отсчета блока кодирования в кадре. Когда режим PredMode предсказания представляет собой интер-предсказание (MODE_INTER), и режим интер-предсказания представляет собой L0-предсказание (Pred_L0), флаг predFlagL0, указывающий то, следует или нет использовать L0-предсказание, равен 1, и флаг predFlagL1, указывающий то, следует или нет использовать L1-предсказание, равен 0. Когда режим интер-предсказания представляет собой L1-предсказание (Pred_L1), флаг predFlagL0, указывающий то, следует или нет использовать L0-предсказание, равен, 0 и флаг predFlagL1, указывающий то, следует или нет использовать L1-предсказание, равен 1. Когда режим интер-предсказания представляет собой бипредсказание (Pred_BI), и флаг predFlagL0, указывающий то, следует или нет использовать L0-предсказание, и флаг predFlagL1, указывающий то, следует или нет использовать L1-предсказание, равны 1. Дополнительно, потенциально подходящие варианты объединения извлекаются в режиме объединения, в котором режим PredMode предсказания блока кодирования цели представляет собой интер-предсказание (MODE_INTER). Множество потенциально подходящих вариантов объединения извлекаются с использованием информации кодирования ранее декодированных блоков кодирования, хранящейся в запоминающем устройстве 205 для хранения информации кодирования, и регистрируются в списке потенциально подходящих вариантов объединения, который описывается ниже, потенциально подходящий вариант объединения, соответствующий индексу объединения, который должен декодироваться и предоставляться посредством модуля 201 декодирования битовых строк, выбирается из множества потенциально подходящих вариантов объединения, зарегистрированных в списке потенциально подходящих вариантов объединения, и информация интер-предсказания, такая как флаги predFlagL0[xP][yP] и predFlagL1[xP][yP], указывающие то, следует или нет использовать L0-предсказание и L1-предсказание выбранного потенциально подходящего варианта объединения, опорные индексы refIdxL0[xP][yP] и refIdxL1[xP][yP] L0 и L1 и векторы mvL0[xP][yP] и mvL1[xP][yP] движения L0 и L1, сохраняется в запоминающем устройстве 205 для хранения информации кодирования. Здесь, xP и yP представляют собой индексы, указывающие позицию верхней левого дискретного отсчета блока кодирования в кадре. Ниже описывается подробная конфигурация и работа модуля 203 интер-предсказания.

[0046] Модуль 204 интра-предсказания выполняет интра-предсказание, когда режим PredMode предсказания блока кодирования цели представляет собой интра-предсказание (MODE_INTRA). Информация кодирования, декодированная посредством модуля 201 декодирования битовых строк, включает в себя режим интра-предсказания. Модуль 204 интра-предсказания формирует предсказанный сигнал кадров согласно интра-предсказанию из декодированного сигнала кадров, хранящегося в запоминающем устройстве 208 декодированных кадров, в соответствии с режимом интра-предсказания, включенным в информацию кодирования, декодированную посредством модуля 201 декодирования битовых строк, и предоставляет сформированный предсказанный сигнал кадров в модуль 207 наложения сигналов кадров для декодирования. Поскольку модуль 204 интра-предсказания соответствует модулю 103 интра-предсказания устройства 100 кодирования кадров, процесс, аналогичный процессу модуля 103 интра-предсказания, выполняется.

[0047] Модуль 206 обратного квантования/обратного ортогонального преобразования выполняет обратное ортогональное преобразование и обратное квантование для ортогонально преобразованного/квантованного остатка, декодированного посредством модуля 201 декодирования битовых строк, и получает обратно ортогонально преобразованный/обратно квантованный остаток.

[0048] Модуль 207 наложения сигналов кадров для декодирования декодирует сигнал кадров для декодирования посредством наложения предсказанного сигнала кадров, предсказанного в интер-режиме посредством модуля 203 интер-предсказания, или предсказанного сигнала кадров, предсказанного в интра-режиме посредством модуля 204 интра-предсказания, и остатка, обратно ортогонально преобразованного/обратно квантованного посредством модуля 206 обратного квантования/обратного ортогонального преобразования, и сохраняет декодированный сигнал кадров для декодирования в запоминающем устройстве 208 декодированных кадров. Во время хранения в запоминающем устройстве 208 декодированных кадров, модуль 207 наложения сигналов кадров для декодирования может хранить декодированный кадр в запоминающем устройстве 208 декодированных кадров после того, как процесс фильтрации для уменьшения искажения в виде блочности и т.п. вследствие кодирования выполняется для декодированного кадра.

[0049] Далее описывается работа модуля 101 разбиения блоков в устройстве 100 кодирования кадров. Фиг. 3 является блок-схемой последовательности операций способа, показывающей операцию разделения кадра на древовидные блоки и дополнительного разделения каждого древовидного блока. Во-первых, входной кадр разделяется на древовидные блоки, имеющие предварительно определенный размер (этап S1001). Каждый древовидный блок сканируется в предварительно определенном порядке, т.е. в порядке растрового сканирования (этап S1002), и внутренняя часть древовидного блока цели разделяется (этап S1003).

[0050] Фиг. 7 является блок-схемой последовательности операций способа, показывающей подробную работу процесса разбиения этапа S1003. Во-первых, определяется то, должен или нет целевой блок разделяться на четыре части (этап S1101).

[0051] Когда определяется то, что целевой блок должен разделяться на четыре части, целевой блок разделяется на четыре части (этап S1102). Каждый блок, полученный посредством разделения целевого блока, сканируется в порядке Z-сканирования, т.е. в порядке верхней левой, верхней правой, нижней левой и нижней правой частей (этап S1103). Фиг. 5 показывает пример порядка Z-сканирования, и ссылка с номером 601 по фиг. 6A показывает пример, в котором целевой блок разделяется на четыре части. Числа 0-3 ссылки с номером 601 по фиг. 6A указывают порядок обработки. Затем процесс разбиения по фиг. 7 рекурсивно выполняется для каждого блока из разделения на этапе S1101 (этап S1104).

[0052] Когда определяется то, что целевой блок не должен разделяться на четыре части, двоичное/троичное разбиение выполняется (этап S1105).

[0053] Фиг. 8 является блок-схемой последовательности операций способа, показывающей подробную работу процесса двоичного/троичного разбиения этапа S1105. Во-первых, определяется то, должен либо нет целевой блок разделяться на две или три части, т.е. то, должно либо нет выполняться двоичное или троичное разбиение (этап S1201).

[0054] Когда не определяется то, что целевой блок должен разделяться на две или три части, т.е. когда определяется то, что целевой блок не должен разделяться, разбиение завершается (этап S1211). Таким образом, процесс рекурсивного разбиения дополнительно не выполняется для блоков, разделенных согласно процессу рекурсивного разбиения.

[0055] Когда определяется то, что целевой блок должен разделяться на две или три части, дополнительно определяется то, должен или нет целевой блок разделяться на две части (этап S1202).

[0056] Когда определяется то, что целевой блок должен разделяться на две части, определяется то, должен или нет целевой блок разделяться на верхнюю и нижнюю части (в вертикальном направлении) (этап S1203). На основе результата определения, целевой блок разделяется на две части, которые представляют собой верхнюю и нижнюю части (в вертикальном направлении) (этап S1204), или целевой блок разделяется на две части, которые представляют собой левую и правую части (в горизонтальном направлении) (этап S1205). Как результат этапа S1204, целевой блок разделяется на две части, которые представляют собой верхнюю и нижнюю части (в вертикальном направлении), как указано посредством ссылки с номером 602 на фиг. 6B. Как результат этапа S1205, целевой блок разделяется на две части, которые представляют собой левую и правую части (в горизонтальном направлении), как указано посредством ссылки с номером 604 по фиг. 6D.

[0057] Когда не определяется то, что целевой блок должен разделяться на две части, т.е. когда определяется то, что целевой блок должен разделяться на три части, на этапе S1202, определяется то, должен или нет целевой блок разделяться на верхнюю, среднюю и нижнюю части (в вертикальном направлении) (этап S1206). На основе результата определения, целевой блок разделяется на три части, которые представляют собой верхнюю, среднюю и нижнюю части (в вертикальном направлении) (этап S1207), или целевой блок разделяется на три части, которые представляют собой левую, среднюю и правую части (в горизонтальном направлении) (этап S1208). Как результат этапа S1207, целевой блок разделяется на три части, которые представляют собой верхнюю, среднюю и нижнюю части (в вертикальном направлении), как указано посредством ссылки с номером 603 по фиг. 6C. Как результат этапа S1208, целевой блок разделяется на три части, которые представляют собой левую, среднюю и правую части (в горизонтальном направлении), как указано посредством ссылки с номером 605 по фиг. 6E.

[0058] После того, как любой из этапов S1204, S1205, S1207 и S1208 выполняется, каждый из блоков, на которые разделяется целевой блок, сканируется в порядке слева направо и сверху вниз (этапе S1209). Номера 0-2 ссылок с номерами 602-605 по фиг. 6B в 6E указывают порядок обработки. Для каждого из блоков, на которые разделяется целевой блок, процесс двоичного/троичного разбиения по фиг. 8 рекурсивно выполняется (этап S1210).

[0059] Рекурсивное разбиение блоков, описанное здесь, может ограничивать необходимость разбиения согласно количеству разбиений или размеру целевого блока и т.п. Информация, которая ограничивает необходимость разбиения, может реализовываться посредством конфигурации, в которой информация не доставляется посредством выполнения согласования между устройством кодирования и устройством декодирования заранее, либо реализовываться посредством конфигурации, в которой устройство кодирования определяет информацию, которая ограничивает необходимость разбиения, записывает информацию в битовую строку и доставляет информацию в устройство декодирования.

[0060] Когда определенный блок разделяется, блок перед разбиением называется "родительским блоком", и каждый блок после разбиения называется "дочерним блоком".

[0061] Далее описывается работа модуля 202 разбиения блоков в устройстве 200 декодирования кадров. Модуль 202 разбиения блоков разделяет древовидный блок согласно процедуре обработки, аналогичной процедуре модуля 101 разбиения блоков устройства 100 кодирования кадров. Тем не менее, имеется отличие в том, что модуль 101 разбиения блоков устройства 100 кодирования кадров применяет технологию оптимизации, такую как оценка оптимальной формы на основе распознавания кадров либо оптимизация показателя искажения, чтобы определять оптимальную форму разбиения блоков, тогда как модуль 202 разбиения блоков устройства 200 декодирования кадров определяет форму разбиения блоков посредством информации разбиения декодирования блока, записанной в битовой строке.

[0062] Синтаксис (синтаксическое правило для битовых строк), связанный с разбиением блоков согласно первому варианту осуществления, показывается на фиг. 9; coding_quadtree() представляет синтаксис, связанный с процессом квадратического разбиения для блока; multi_type_tree() представляет синтаксис, связанный с процессом двоичного или троичного разбиения для блока; qt_split представляет собой флаг, указывающий то, разделяется или нет блок на четыре части; qt_split=1, когда блок разделяется на четыре части, и qt_split=0, когда блок не разделяется на четыре части. Когда блок разделяется на четыре части (qt_split=1), процесс квадратического разбиения рекурсивно выполняется для блоков, каждый из которых разделен на четыре части (coding_quadtree (0), coding_quadtree (1), coding_quadtree (2), coding_quadtree (3), и аргументы 0-3 соответствуют числам, указываемым посредством ссылки с номером 601 по фиг. 6A). Когда блок не разделяется на четыре части (qt_split=0), последующее разбиение определяется согласно multi_type_tree(); mtt_split представляет собой флаг, указывающий то, выполняется дополнительно разбиение либо нет. Когда разбиение дополнительно выполняется (mtt_split=1), передаются mtt_split_vertical, который представляет собой флаг, указывающий то, разделяется блок вертикально или горизонтально, и mtt_split_binary, который представляет собой флаг для определения того, выполняется двоичное или троичное разбиение; mtt_split_vertical=1 указывает разбиение в вертикальном направлении, и mtt_split_vertical=0 указывает разбиение в горизонтальном направлении; mtt_split_binary=1 указывает двоичное разбиение, и mtt_split_binary=0 указывает троичное разбиение. При двоичном разбиении (mtt_split_binary=1), процесс разбиения рекурсивно выполняется для блоков, каждый из которых разделяется на две части (multi_type_tree (0), multi_type_tree (1), и аргументы 0-1 соответствуют числам, указываемым посредством ссылки с номером 602 или 604 на фиг. 6B в 6D). В случае троичного разбиения (mtt_split_binary=0), процесс разбиения рекурсивно выполняется для блоков, каждый из которых разделяется на три части (multi_type_tree (0), multi_type_tree (1), multi_type_tree (2), и аргументы 0-2 соответствуют числам, указываемым посредством ссылки с номером 603 по фиг. 6B, или числам, указываемым посредством ссылки с номером 605 по фиг. 6E). До тех пор, пока mtt_split=0 не достигается, иерархическое разбиение блоков выполняется посредством рекурсивного вызова multi_type_tree.

[0063] Интер-предсказание

Способ интер-предсказания согласно варианту осуществления осуществляется в модуле 102 интер-предсказания устройства кодирования кадров по фиг. 1 и в модуле 203 интер-предсказания устройства декодирования кадров по фиг. 2.

[0064] В дальнейшем описывается способ интер-предсказания согласно варианту осуществления со ссылкой на чертежи. Способ интер-предсказания осуществляется в процессах кодирования и декодирования в единицах блоков кодирования.

[0065] Описание модуля 102 интер-предсказания на стороне кодирования

Фиг. 16 является схемой, показывающей подробную конфигурацию модуля 102 интер-предсказания устройства кодирования кадров на фиг. 1. Модуль 301 извлечения режимов идентификации предикторов нормальных векторов движения извлекает множество потенциально подходящих вариантов предикторов нормальных векторов движения, чтобы выбирать предиктор вектора движения, и вычисляет разность векторов движения между выбранным предиктором вектора движения и обнаруженным вектором движения. Обнаруженный режим интер-предсказания, опорный индекс и вектор движения и вычисленная разность векторов движения становятся информацией интер-предсказания режима идентификации предикторов нормальных векторов движения. Эта информация интер-предсказания предоставляется в модуль 305 определения режима интер-предсказания. Ниже описывается подробная конфигурация и процесс модуля 301 извлечения режимов идентификации предикторов нормальных векторов движения.

[0066] Модуль 302 извлечения режимов нормального объединения извлекает множество потенциально подходящих вариантов нормального объединения, чтобы выбирать потенциально подходящий вариант нормального объединения, и получает информацию интер-предсказания режима нормального объединения. Эта информация интер-предсказания предоставляется в модуль 305 определения режима интер-предсказания. Ниже описывается подробная конфигурация и процесс модуля 302 извлечения режимов нормального объединения.

[0067] Модуль 303 извлечения режимов идентификации предикторов векторов движения на основе субблоков извлекает множество потенциально подходящих вариантов предикторов векторов движения на основе субблоков, чтобы выбирать предиктор вектора движения на основе субблоков, и вычисляет разность векторов движения между выбранным предиктором вектора движения на основе субблоков и обнаруженным вектором движения. Обнаруженный режим интер-предсказания, опорный индекс и вектор движения и вычисленная разность векторов движения становятся информацией интер-предсказания режима идентификации предикторов векторов движения на основе субблоков. Эта информация интер-предсказания предоставляется в модуль 305 определения режима интер-предсказания.

[0068] Модуль 304 извлечения режимов объединения на основе субблоков извлекает множество потенциально подходящих вариантов объединения на основе субблоков, чтобы выбирать потенциально подходящий вариант объединения на основе субблоков, и получает информацию интер-предсказания режима объединения на основе субблоков. Эта информация интер-предсказания предоставляется в модуль 305 определения режима интер-предсказания.

[0069] Модуль 305 определения режима интер-предсказания определяет информацию интер-предсказания на основе информации интер-предсказания, предоставляемой из модуля 301 извлечения режимов идентификации предикторов нормальных векторов движения, модуля 302 извлечения режимов нормального объединения, модуля 303 извлечения режимов идентификации предикторов векторов движения на основе субблоков и модуля 304 извлечения режимов объединения на основе субблоков. Информация интер-предсказания согласно результату определения предоставляется из модуля 305 определения режима интер-предсказания в модуль 306 предсказания с компенсацией движения.

[0070] Модуль 306 предсказания с компенсацией движения выполняет интер-предсказание для опорного сигнала кадров, хранящегося в запоминающем устройстве 104 декодированных кадров, на основе определенной информации интер-предсказания. Ниже описывается подробная конфигурация и процесс модуля 306 предсказания с компенсацией движения.

[0071] Описание модуля 203 интер-предсказания декодирования на стороне декодирования

Фиг. 22 является схемой, показывающей подробную конфигурацию модуля 203 интер-предсказания устройства декодирования кадров по фиг. 2.

[0072] Модуль 401 извлечения режимов идентификации предикторов нормальных векторов движения извлекает множество потенциально подходящих вариантов предикторов нормальных векторов движения, чтобы выбирать предиктор вектора движения, вычисляет сумму выбранного предиктора вектора движения и декодированной разности векторов движения и задает вычисленную сумму в качестве вектора движения. Декодированный режим интер-предсказания, опорный индекс и вектор движения становятся информацией интер-предсказания режима идентификации предикторов нормальных векторов движения. Эта информация интер-предсказания предоставляется в модуль 406 предсказания с компенсацией движения через переключатель 408. Ниже описывается подробная конфигурация и процесс модуля 401 извлечения режимов идентификации предикторов нормальных векторов движения.

[0073] Модуль 402 извлечения режимов нормального объединения извлекает множество потенциально подходящих вариантов нормального объединения, чтобы выбирать потенциально подходящий вариант нормального объединения, и получает информацию интер-предсказания режима нормального объединения. Эта информация интер-предсказания предоставляется в модуль 406 предсказания с компенсацией движения через переключатель 408. Ниже описывается подробная конфигурация и процесс модуля 402 извлечения режимов нормального объединения.

[0074] Модуль 403 извлечения режимов идентификации предикторов векторов движения на основе субблоков извлекает множество потенциально подходящих вариантов предикторов векторов движения на основе субблоков, чтобы выбирать предиктор вектора движения на основе субблоков, вычисляет сумму выбранного предиктора вектора движения на основе субблоков и декодированной разности векторов движения и задает вычисленную сумму в качестве вектора движения. Декодированный режим интер-предсказания, опорный индекс и вектор движения становятся информацией интер-предсказания режима идентификации предикторов векторов движения на основе субблоков. Эта информация интер-предсказания предоставляется в модуль 406 предсказания с компенсацией движения через переключатель 408.

[0075] Модуль 404 извлечения режимов объединения на основе субблоков извлекает множество потенциально подходящих вариантов объединения на основе субблоков, чтобы выбирать потенциально подходящий вариант объединения на основе субблоков, и получает информацию интер-предсказания режима объединения на основе субблоков. Эта информация интер-предсказания предоставляется в модуль 406 предсказания с компенсацией движения через переключатель 408.

[0076] Модуль 406 предсказания с компенсацией движения выполняет интер-предсказание для опорного сигнала кадров, хранящегося в запоминающем устройстве 208 декодированных кадров, на основе определенной информации интер-предсказания. Подробная конфигурация и процесс модуля 406 предсказания с компенсацией движения являются аналогичными подробной конфигурации и процессу модуля 306 предсказания с компенсацией движения на стороне кодирования.

[0077] Модуль извлечения режимов идентификации предикторов нормальных векторов движения (нормальное AMVP)

Модуль 301 извлечения режимов идентификации предикторов нормальных векторов движения по фиг. 17 включает в себя модуль 321 извлечения потенциально подходящих вариантов пространственных предикторов векторов движения, модуль 322 извлечения потенциально подходящих вариантов временных предикторов векторов движения, модуль 323 извлечения потенциально подходящих вариантов предикторов векторов движения на основе предыстории, модуль 325 пополнения потенциально подходящих вариантов предикторов векторов движения, модуль 326 обнаружения нормальных векторов движения, модуль 327 выбора потенциально подходящих вариантов предикторов векторов движения и модуль 328 вычитания векторов движения.

[0078] Модуль 401 извлечения режимов идентификации предикторов нормальных векторов движения по фиг. 23 включает в себя модуль 421 извлечения потенциально подходящих вариантов пространственных предикторов векторов движения, модуль 422 извлечения потенциально подходящих вариантов временных предикторов векторов движения, модуль 423 извлечения потенциально подходящих вариантов предикторов векторов движения на основе предыстории, модуль 425 пополнения потенциально подходящих вариантов предикторов векторов движения, модуль 426 выбора потенциально подходящих вариантов предикторов векторов движения и модуль 427 суммирования векторов движения.

[0079] В дальнейшем описываются процедуры обработки модуля 301 извлечения режимов идентификации предикторов нормальных векторов движения на стороне кодирования и модуля 401 извлечения режимов идентификации предикторов нормальных векторов движения на стороне декодирования с использованием блок-схем последовательности операций способа по фиг. 19 и 25, соответственно. Фиг. 19 является блок-схемой последовательности операций способа, показывающей процедуру обработки извлечения режимов идентификации предикторов нормальных векторов движения модуля 301 извлечения режимов идентификации предикторов нормальных векторов движения на стороне кодирования, и фиг. 25 является блок-схемой последовательности операций способа, показывающей процедуру обработки извлечения режимов идентификации предикторов нормальных векторов движения модуля 401 извлечения режимов идентификации предикторов нормальных векторов движения на стороне декодирования.

[0080] Модуль извлечения режимов идентификации предикторов нормальных векторов движения (нормальное AMVP): описание на стороне кодирования

В дальнейшем описывается процедура обработки извлечения режимов идентификации предикторов нормальных векторов движения на стороне кодирования со ссылкой на фиг. 19. В описании процедуры обработки по фиг. 19, термин "нормальный", показанный на фиг. 19, может опускаться.

[0081] Во-первых, модуль 326 обнаружения нормальных векторов движения обнаруживает нормальный вектор движения для каждого режима интер-предсказания и каждого опорного индекса (этап S100 по фиг. 19).

[0082] Затем, в модуле 321 извлечения потенциально подходящих вариантов пространственных предикторов векторов движения, модуле 322 извлечения потенциально подходящих вариантов временных предикторов векторов движения, модуле 323 извлечения потенциально подходящих вариантов предикторов векторов движения на основе предыстории, модуле 325 пополнения потенциально подходящих вариантов предикторов векторов движения, модуле 327 выбора потенциально подходящих вариантов предикторов векторов движения и модуле 328 вычитания векторов движения, разность векторов движения для вектора движения, используемого для интер-предсказания режима идентификации предикторов нормальных векторов движения, вычисляется для каждого из L0 и L1 (этапы S101-S106 по фиг. 19). В частности, когда режим PredMode предсказания целевого блока представляет собой интер-предсказание (MODE_INTER), и режим интер-предсказания представляет собой L0-предсказание (Pred_L0), список mvpListL0 потенциально подходящих вариантов предикторов векторов движения L0 вычисляется, чтобы выбирать предиктор mvpL0 вектора движения, и разность mvdL0 векторов движения вектора mvL0 движения L0 вычисляется. Когда режим интер-предсказания целевого блока представляет собой L1-предсказание (Pred_L1), список mvpListL1 потенциально подходящих вариантов предикторов векторов движения L1 вычисляется, чтобы выбирать предиктор mvpL1 вектора движения, и разность mvdL1 векторов движения вектора mvL1 движения L1 вычисляется. Когда режим интер-предсказания целевого блока представляет собой бипредсказание (Pred_BI), L0-предсказание и L1-предсказание выполняются, список mvpListL0 потенциально подходящих вариантов предикторов векторов движения L0 вычисляется, чтобы выбирать предиктор mvpL0 вектора движения L0, разность mvdL0 векторов движения вектора mvL0 движения L0 вычисляется, список mvpListL1 потенциально подходящих вариантов предикторов векторов движения L1 вычисляется, чтобы выбирать предиктор mvpL1 вектора движения L1, и разность mvdL1 векторов движения вектора mvL1 движения L1 вычисляется.

[0083] Хотя процесс вычисления разностей векторов движения выполняется для каждого из L0 и L1, процесс вычисления разностей векторов движения становится процессом, общим для L0 и L1. Следовательно, в нижеприведенном описании, L0 и L1 представляются как общий LX. X LX равен 0 в процессе вычисления разности векторов движения L0, и X LX равен 1 в процессе вычисления разности векторов движения L1. Кроме того, когда на информацию другого списка вместо LX ссылаются в ходе процесса вычисления разности векторов движения LX, другой список представляется как LY.

[0084] Когда вектор mvLX движения LX используется (этап S102 по фиг. 19: "Да"), потенциально подходящие варианты предикторов векторов движения LX вычисляются, чтобы конструировать список mvpListLX потенциально подходящих вариантов предикторов векторов движения LX (этап S103 по фиг. 19). В модуле 321 извлечения потенциально подходящих вариантов пространственных предикторов векторов движения, модуле 322 извлечения потенциально подходящих вариантов временных предикторов векторов движения, модуле 323 извлечения потенциально подходящих вариантов предикторов векторов движения на основе предыстории и модуле 325 пополнения потенциально подходящих вариантов предикторов векторов движения модуля 301 извлечения режимов идентификации предикторов нормальных векторов движения, множество потенциально подходящих вариантов предикторов векторов движения извлекаются, чтобы конструировать список mvpListLX потенциально подходящих вариантов предикторов векторов движения. Ниже описывается подробная процедура обработки этапа S103 по фиг. 19 с использованием блок-схемы последовательности операций способа по фиг. 20.

[0085] Затем, модуль 327 выбора потенциально подходящих вариантов предикторов векторов движения выбирает предиктор mvpLX вектора движения LX из списка mvpListLX потенциально подходящих вариантов предикторов векторов движения LX (этап S104 по фиг. 19). Здесь, один элемент (i-ый элемент при подсчете с 0-ого элемента) в списке mvpListLX потенциально подходящих вариантов предикторов векторов движения представляется как mvpListLX[i]. Каждая разность векторов движения, которая представляет собой разность между вектором mvLX движения и каждым потенциально подходящим вариантом mvpListLX[i] предиктора вектора движения, хранящимся в списке mvpListLX потенциально подходящих вариантов предикторов векторов движения, вычисляется. Объем кода, когда разности векторов движения кодируются, вычисляется для каждого элемента (потенциально подходящего варианта предиктора вектора движения) списка mvpListLX потенциально подходящих вариантов предикторов векторов движения. Затем потенциально подходящий вариант mvpListLX[i] предиктора вектора движения, который минимизирует объем кода для каждого потенциально подходящего варианта предиктора вектора движения среди элементов, зарегистрированных в списке mvpListLX потенциально подходящих вариантов предикторов векторов движения, выбирается в качестве предиктора mvpLX вектора движения, и его индекс i получается. Когда предусмотрено множество потенциально подходящих вариантов предикторов векторов движения, имеющих наименьший объем сформированного кода в списке mvpListLX потенциально подходящих вариантов предикторов векторов движения, потенциально подходящий вариант mvpListLX[i] предиктора вектора движения, представленный посредством меньшего числа в индексе i в списке mvpListLX потенциально подходящих вариантов предикторов векторов движения, выбирается в качестве оптимального предиктора mvpLX вектора движения, и его индекс i получается.

[0086] Затем, модуль 328 вычитания векторов движения вычитает выбранный предиктор mvpLX вектора движения LX из вектора mvLX движения LX и вычисляет разность mvdLX векторов движения LX в качестве mvdLX=mvLX-mvpLX (этап S105 по фиг. 19).

[0087] Модуль извлечения режимов идентификации предикторов нормальных векторов движения (нормальное AMVP): описание на стороне декодирования

Далее описывается процедура обработки режима идентификации предикторов нормальных векторов движения на стороне декодирования со ссылкой на фиг. 25. На стороне декодирования, в модуле 421 извлечения потенциально подходящих вариантов пространственных предикторов векторов движения, модуле 422 извлечения потенциально подходящих вариантов временных предикторов векторов движения, модуле 423 извлечения потенциально подходящих вариантов предикторов векторов движения на основе предыстории и модуле 425 пополнения потенциально подходящих вариантов предикторов векторов движения, вектор движения для использования при интер-предсказании режима идентификации предикторов нормальных векторов движения вычисляется для каждого из L0 и L1 (этапы S201-S206 по фиг. 25). В частности, когда режим PredMode предсказания целевого блока представляет собой интер-предсказание (MODE_INTER), и режим интер-предсказания целевого блока представляет собой L0-предсказание (Pred_L0), список mvpListL0 потенциально подходящих вариантов предикторов векторов движения L0 вычисляется, чтобы выбирать предиктор mvpL0 вектора движения, и вектор mvL0 движения L0 вычисляется. Когда режим интер-предсказания целевого блока представляет собой L1-предсказание (Pred_L1), список mvpListL1 потенциально подходящих вариантов предикторов векторов движения L1 вычисляется, чтобы выбирать предиктор mvpL1 вектора движения, и вектор mvL1 движения L1 вычисляется. Когда режим интер-предсказания целевого блока представляет собой бипредсказание (Pred_BI), L0-предсказание и L1-предсказание выполняются, список mvpListL0 потенциально подходящих вариантов предикторов векторов движения L0 вычисляется, чтобы выбирать предиктор mvpL0 вектора движения L0, вектор mvL0 движения L0 вычисляется, список mvpListL1 потенциально подходящих вариантов предикторов векторов движения L1 вычисляется, чтобы выбирать предиктор mvpL1 вектора движения L1, и каждый вектор mvL1 движения L1 вычисляется.

[0088] Хотя процесс вычисления вектора движения выполняется для каждого из L0 и L1 на стороне декодирования, аналогично стороне кодирования, процесс вычисления вектора движения становится процессом, общим для L0 и L1. Следовательно, в нижеприведенном описании, L0 и L1 представляются как общий LX. LX представляет режим интер-предсказания для использования при интер-предсказании целевого блока кодирования. X равен 0 в процессе вычисления вектора движения L0, и X равен 1 в процессе вычисления вектора движения L1. Кроме того, когда на информацию другого опорного списка вместо опорного списка, идентичного опорному списку опорного списка, идентичного опорному списку LX цели вычисления, ссылаются в ходе процесса вычисления вектора движения LX, другой опорный список представляется как LY.

[0089] Когда вектор mvLX движения LX используется (этап S202 по фиг. 25: "Да"), потенциально подходящие варианты предикторов векторов движения LX вычисляются, чтобы конструировать список mvpListLX потенциально подходящих вариантов предикторов векторов движения LX (этап S203 по фиг. 25). В модуле 421 извлечения потенциально подходящих вариантов пространственных предикторов векторов движения, модуле 422 извлечения потенциально подходящих вариантов временных предикторов векторов движения, модуле 423 извлечения потенциально подходящих вариантов предикторов векторов движения на основе предыстории и модуле 425 пополнения потенциально подходящих вариантов предикторов векторов движения модуля 401 извлечения режимов идентификации предикторов нормальных векторов движения, множество потенциально подходящих вариантов предикторов векторов движения вычисляются, чтобы конструировать список mvpListLX потенциально подходящих вариантов предикторов векторов движения. Ниже описывается подробная процедура обработки этапа S203 по фиг. 25 с использованием блок-схемы последовательности операций способа по фиг. 20.

[0090] Затем, потенциально подходящий вариант mvpListLX[mvpIdxLX] предиктора вектора движения, соответствующий индексу mvpIdxLX предиктора вектора движения, декодированного и предоставляемого посредством модуля 201 декодирования битовых строк из списка mvpListLX потенциально подходящих вариантов предикторов векторов движения, извлекается в качестве выбранного предиктора mvpLX вектора движения в модуле 426 выбора потенциально подходящих вариантов предикторов векторов движения (этап S204 по фиг. 25).

[0091] Затем, модуль 427 суммирования векторов движения суммирует разность mvdLX векторов движения LX, которая декодируется и предоставляется посредством модуля 201 декодирования битовых строк, и предиктор mvpLX вектора движения LX и вычисляет вектор mvLX движения LX в качестве mvLX=mvpLX+mvdLX (этап S205 по фиг. 25).

[0092] Модуль извлечения режимов идентификации предикторов нормальных векторов движения (нормальное AMVP): способ предсказания векторов движения

Фиг. 20 является блок-схемой последовательности операций способа, показывающей процедуру обработки процесса извлечения режимов идентификации предикторов нормальных векторов движения, имеющего функцию, общую для модуля 301 извлечения режимов идентификации предикторов нормальных векторов движения устройства кодирования кадров и модуля 401 извлечения режимов идентификации предикторов нормальных векторов движения устройства декодирования кадров согласно варианту осуществления настоящего изобретения.

[0093] Модуль 301 извлечения режимов идентификации предикторов нормальных векторов движения и модуль 401 извлечения режимов идентификации предикторов нормальных векторов движения включают в себя список mvpListLX потенциально подходящих вариантов предикторов векторов движения. Список mvpListLX потенциально подходящих вариантов предикторов векторов движения имеет списковую структуру и содержит область хранения, в которой индекс предиктора вектора движения, указывающий местоположение в списке потенциально подходящих вариантов предикторов векторов движения, и потенциально подходящий вариант предиктора вектора движения, соответствующий индексу, сохраняется в качестве элементов. Номер индекса предиктора вектора движения начинается с 0, и потенциально подходящие варианты предикторов векторов движения хранятся в области хранения списка mvpListLX потенциально подходящих вариантов предикторов векторов движения. В настоящем варианте осуществления, предполагается, что, по меньшей мере, два потенциально подходящих вариантов предикторов векторов движения (информация интер-предсказания) могут регистрироваться в списке mvpListLX потенциально подходящих вариантов предикторов векторов движения. Кроме того, переменная numCurrMvpCand, указывающая количество потенциально подходящих вариантов предикторов векторов движения, зарегистрированных в списке mvpListLX потенциально подходящих вариантов предикторов векторов движения, задается равной 0.

[0094] Модули 321 и 421 извлечения потенциально подходящих вариантов пространственных предикторов векторов движения извлекают потенциально подходящие варианты предикторов векторов движения из соседних блоков с левой стороны. В этом процессе, предиктор mvLXA вектора движения извлекается со ссылкой на информацию интер-предсказания соседнего блока с левой стороны (A0 или A1 по фиг. 11), т.е. на флаг, указывающий то, может или нет потенциально подходящий вариант предиктора вектора движения использоваться, вектор движения, опорный индекс и т.п., и извлеченный mvLXA добавляется в список mvpListLX потенциально подходящих вариантов предикторов векторов движения (этап S301 по фиг. 20). Кроме того, X равен 0 во время L0-предсказания, и X равен 1 во время L1-предсказания (это справедливо далее). Затем, модули 321 и 421 извлечения потенциально подходящих вариантов пространственных предикторов векторов движения извлекают потенциально подходящий вариант предиктора вектора движения из соседнего блока с верхней стороны. В этом процессе, предиктор mvLXB вектора движения извлекается со ссылкой на информацию интер-предсказания соседнего блока с верхней стороны (B0, B1 или B2 по фиг. 11), т.е. на флаг, указывающий то, может или нет потенциально подходящий вариант предиктора вектора движения использоваться, вектор движения, опорный индекс и т.п., и mvLXB добавляется в список mvpListLX потенциально подходящих вариантов предикторов векторов движения, если извлеченный mvLXA не равен извлеченному mvLXB (этап S302 по фиг. 20). Обработка этапов S301 и S302 по фиг. 20 является общей за исключением того, что позиции соседних блоков, на которые ссылаются, и количество соседних блоков, на которые ссылаются, отличаются, и извлекаются флаг availableFlagLXN, указывающий то, может или нет потенциально подходящий вариант предиктора вектора движения блока кодирования использоваться, вектор mvLXN движения и опорный индекс refIdxN (N представляет A или B, и это справедливо далее).

[0095] Затем, модули 322 и 422 извлечения потенциально подходящих вариантов временных предикторов векторов движения извлекают потенциально подходящие варианты предикторов векторов движения из блоков в кадре, время которого отличается от кадра текущего целевого кадра. В этом процессе, извлекаются флаг availableFlagLXCol, указывающий то, может или нет потенциально подходящий вариант предиктора вектора движения блока кодирования кадра другого момента времени использоваться, вектор mvLXCol движения, опорный индекс refIdxCol и опорный список listCol, и mvLXCol добавляется в список mvpListLX потенциально подходящих вариантов предикторов векторов движения (этап S303 по фиг. 20).

[0096] Кроме того, предполагается, что процессы модулей 322 и 422 извлечения потенциально подходящих вариантов временных предикторов векторов движения могут опускаться в единицах последовательностей (SPS), кадров (PPS) или срезов.

[0097] Затем, модули 322 и 423 извлечения потенциально подходящих вариантов предикторов векторов движения на основе предыстории добавляют потенциально подходящие варианты предикторов векторов движения на основе предыстории, зарегистрированные в списке HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории, в список mvpListLX потенциально подходящих вариантов предикторов векторов движения (этап S304 по фиг. 20). Ниже описываются подробности процедуры обработки регистрации этапа S304 с использованием блок-схемы последовательности операций способа по фиг. 29.

[0098] Затем, модули 325 и 425 пополнения потенциально подходящих вариантов предикторов векторов движения добавляют потенциально подходящие варианты предикторов векторов движения, имеющие предварительно определенное значение, к примеру, (0, 0) до тех пор, пока список mvpListLX потенциально подходящих вариантов предикторов векторов движения не удовлетворяется (S305 по фиг. 20).

[0099] Модуль извлечения режимов нормального объединения (нормальное объединение)

Модуль 302 извлечения режимов нормального объединения по фиг. 18 включает в себя модуль 341 извлечения пространственных потенциально подходящих вариантов объединения, модуль 342 извлечения временных потенциально подходящих вариантов объединения, модуль 344 извлечения средних потенциально подходящих вариантов объединения, модуль 345 извлечения потенциально подходящих вариантов объединения на основе предыстории, модуль 346 пополнения потенциально подходящих вариантов объединения и модуль 347 выбора потенциально подходящих вариантов объединения.

[0100] Модуль 402 извлечения режимов нормального объединения по фиг. 24 включает в себя модуль 441 извлечения пространственных потенциально подходящих вариантов объединения, модуль 442 извлечения временных потенциально подходящих вариантов объединения, модуль 444 извлечения средних потенциально подходящих вариантов объединения, модуль 445 извлечения потенциально подходящих вариантов объединения на основе предыстории, модуль 446 пополнения потенциально подходящих вариантов объединения и модуль 447 выбора потенциально подходящих вариантов объединения.

[0101] Фиг. 21 является пояснительной блок-схемой последовательности операций способа, показывающей процедуру процесса извлечения режимов нормального объединения, имеющего функцию, общую для модуля 302 извлечения режимов нормального объединения устройства кодирования кадров и модуля 402 извлечения режимов нормального объединения устройства декодирования кадров согласно варианту осуществления настоящего изобретения.

[0102] Далее поэтапно описываются различные процессы. Хотя в дальнейшем описывается случай, в котором тип slice_type среза представляет собой B-срез, если не указано иное в нижеприведенном описании, настоящее изобретение также может применяться к случаю P-среза. Тем не менее, когда тип slice_type среза представляет собой P-срез, поскольку только L0-предсказание (Pred_L0) предоставляется в качестве режима интер-предсказания, и L1-предсказание (Pred_L1) и бипредсказание (Pred_BI) отсутствуют, процесс, связанный с L1, может опускаться.

[0103] Модуль 302 извлечения режимов нормального объединения и модуль 402 извлечения режимов нормального объединения имеют список mergeCandList потенциально подходящих вариантов объединения. Список mergeCandList потенциально подходящих вариантов объединения имеет списковую структуру и содержит индекс объединения, указывающий местоположение в списке потенциально подходящих вариантов объединения, и область хранения, в которой потенциально подходящие варианты объединения, соответствующие индексу, хранятся в качестве элементов. Номер индекса объединения начинается с 0, и потенциально подходящие варианты объединения хранятся в области хранения списка mergeCandList потенциально подходящих вариантов объединения. В последующем процессе, потенциально подходящий вариант объединения i индекса объединения, зарегистрированного в списке mergeCandList потенциально подходящих вариантов объединения, представляется посредством mergeCandList[i]. В настоящем варианте осуществления, предполагается, что, по меньшей мере, шесть потенциально подходящих вариантов объединения (информация интер-предсказания) могут регистрироваться в списке mergeCandList потенциально подходящих вариантов объединения. Дополнительно, переменная numCurrMergeCand, указывающая количество потенциально подходящих вариантов объединения, зарегистрированных в списке mergeCandList потенциально подходящих вариантов объединения, задается равной 0.

[0104] В модуле 341 извлечения пространственных потенциально подходящих вариантов объединения и модуле 441 извлечения пространственных потенциально подходящих вариантов объединения, пространственные потенциально подходящие варианты объединения из соответствующих блоков (B1, A1, B0, A0 и B2 по фиг. 11), соседних с целевым блоком, извлекаются в порядке B1, A1, B0, A0 и B2 из информации кодирования, хранящейся в запоминающем устройстве 111 для хранения информации кодирования устройства кодирования кадров или в запоминающем устройстве 205 для хранения информации кодирования устройства декодирования кадров, и извлеченные пространственные потенциально подходящие варианты объединения регистрируются в списке mergeCandList потенциально подходящих вариантов объединения (этап S401 по фиг. 21). Здесь задается N, указывающее одно из B1, A1, B0, A0 и B2 или временного потенциально подходящего варианта Col объединения. Извлекаются флаг availableFlagN, указывающий то, может или нет информация интер-предсказания блока N использоваться в качестве пространственного потенциально подходящего варианта объединения, опорный индекс refIdxL0N L0 и опорный индекс refIdxL1N L1 пространственного потенциально подходящего варианта N объединения, флаг predFlagL0N L0-предсказания, указывающий то, выполняется или нет L0-предсказание, флаг predFlagL1N L1-предсказания, указывающий то, выполняется или нет L1-предсказание, вектор mvL0N движения L0 и вектор mvL1N движения L1. Тем не менее, поскольку потенциально подходящий вариант объединения извлекается без ссылки на информацию интер-предсказания блока, включенную в блок кодирования, который представляет собой цель в настоящем варианте осуществления, пространственный потенциально подходящий вариант объединения с использованием информации интер-предсказания блока, включенной в целевой блок кодирования, не извлекается.

[0105] Затем, модуль 342 извлечения временных потенциально подходящих вариантов объединения и модуль 442 извлечения временных потенциально подходящих вариантов объединения извлекают временные потенциально подходящие варианты объединения из кадров различных моментов времени и регистрируют извлеченные временные потенциально подходящие варианты объединения в списке mergeCandList потенциально подходящих вариантов объединения (этап S402 по фиг. 21). Извлекаются флаг availableFlagCol, указывающий то, может или нет временной потенциально подходящий вариант объединения использоваться, флаг predFlagL0Col L0-предсказания, указывающий то, выполняется или нет L0-предсказание временного потенциально подходящего варианта объединения, флаг predFlagL1Col L1-предсказания, указывающий то, выполняется или нет L1-предсказание, вектор mvL0Col движения L0 и вектор mvL1Col движения L1.

[0106] Кроме того, предполагается, что процессы модуля 342 извлечения временных потенциально подходящих вариантов объединения и модуля 442 извлечения временных потенциально подходящих вариантов объединения могут опускаться в единицах последовательностей (SPS), кадров (PPS) или срезов.

[0107] Затем, модуль 345 извлечения потенциально подходящих вариантов объединения на основе предыстории и модуль 445 извлечения потенциально подходящих вариантов объединения на основе предыстории регистрируют потенциально подходящие варианты предикторов векторов движения на основе предыстории, зарегистрированные в списке HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории, в списке mergeCandList потенциально подходящих вариантов объединения (этап S403 по фиг. 21).

Кроме того, когда количество numCurrMergeCand потенциально подходящих вариантов объединения, зарегистрированных в списке mergeCandList потенциально подходящих вариантов объединения, меньше максимального количества MaxNumMergeCand потенциально подходящих вариантов объединения, максимальное количество MaxNumMergeCand потенциально подходящих вариантов объединения задается в качестве верхнего предела количества numCurrMergeCand потенциально подходящих вариантов объединения, зарегистрированного в списке mergeCandList потенциально подходящих вариантов объединения, и потенциально подходящие варианты объединения на основе предыстории извлекаются и регистрируются в списке mergeCandList потенциально подходящих вариантов объединения.

[0108] Затем, модуль 344 извлечения средних потенциально подходящих вариантов объединения и модуль 444 извлечения средних потенциально подходящих вариантов объединения извлекают средний потенциально подходящий вариант объединения из списка mergeCandList потенциально подходящих вариантов объединения и добавляют извлеченный средний потенциально подходящий вариант объединения в список mergeCandList потенциально подходящих вариантов объединения (этап S404 по фиг. 21).

Кроме того, когда количество numCurrMergeCand потенциально подходящих вариантов объединения, зарегистрированных в списке mergeCandList потенциально подходящих вариантов объединения, меньше максимального количества MaxNumMergeCand потенциально подходящих вариантов объединения, максимальное количество MaxNumMergeCand потенциально подходящих вариантов объединения задается в качестве верхнего предела количества numCurrMergeCand потенциально подходящих вариантов объединения, зарегистрированного в списке mergeCandList потенциально подходящих вариантов объединения, и средние потенциально подходящие варианты объединения извлекаются и регистрируются в списке mergeCandList потенциально подходящих вариантов объединения.

Здесь, средний потенциально подходящий вариант объединения представляет собой новый потенциально подходящий вариант объединения, имеющий вектор движения, полученный посредством усреднения векторов движения первого потенциально подходящего варианта объединения и второго потенциально подходящего варианта объединения, зарегистрированных в списке mergeCandList потенциально подходящих вариантов объединения, для каждого из L0-предсказания и L1-предсказания.

[0109] Затем, в модуле 346 пополнения потенциально подходящих вариантов объединения и модуле 446 пополнения потенциально подходящих вариантов объединения, когда количество numCurrMergeCand потенциально подходящих вариантов объединения, зарегистрированных в списке mergeCandList потенциально подходящих вариантов объединения, меньше максимального количества MaxNumMergeCand потенциально подходящих вариантов объединения, максимальное количество MaxNumMergeCand потенциально подходящих вариантов объединения задается в качестве верхнего предела количества numCurrMergeCand потенциально подходящих вариантов объединения, зарегистрированного в списке mergeCandList потенциально подходящих вариантов объединения, и дополнительный потенциально подходящий вариант объединения извлекается и регистрируется в списке mergeCandList потенциально подходящих вариантов объединения (этап S405 по фиг. 21). В P-срезе, потенциально подходящий вариант объединения, для которого вектор движения имеет значение в (0, 0), и режим предсказания представляет собой L0-предсказание (Pred_L0), добавляется с использованием максимального количества MaxNumMergeCand потенциально подходящих вариантов объединения в качестве верхнего предела. В B-срезе, потенциально подходящий вариант объединения, для которого вектор движения имеет значение в (0, 0), и режим предсказания представляет собой бипредсказание (Pred_BI), добавляется. Опорный индекс, когда потенциально подходящий вариант объединения добавляется, отличается от ранее добавленного опорного индекса.

[0110] Затем, модуль 347 выбора потенциально подходящих вариантов объединения и модуль 447 выбора потенциально подходящих вариантов объединения выбирают потенциально подходящие варианты объединения из потенциально подходящих вариантов объединения, зарегистрированных в списке mergeCandList потенциально подходящих вариантов объединения. Модуль 347 выбора потенциально подходящих вариантов объединения на стороне кодирования выбирает потенциально подходящий вариант объединения посредством вычисления объема кода и величины искажения и предоставляет индекс объединения, указывающий выбранный потенциально подходящий вариант объединения, и информацию интер-предсказания потенциально подходящего варианта объединения в модуль 306 предсказания с компенсацией движения через модуль 305 определения режима интер-предсказания. С другой стороны, модуль 447 выбора потенциально подходящих вариантов объединения на стороне декодирования выбирает потенциально подходящий вариант объединения на основе декодированного индекса объединения и предоставляет выбранный потенциально подходящий вариант объединения в модуль 406 предсказания с компенсацией движения.

[0111] Когда размер определенного блока кодирования (произведение его ширины и высоты) меньше 32, модуль 302 извлечения режимов нормального объединения и модуль 402 извлечения режимов нормального объединения извлекают потенциально подходящие варианты объединения в родительском блоке блока кодирования. Во всех дочерних блоках, используются потенциально подходящие варианты объединения, извлекаемые в родительском блоке. Тем не менее, это ограничено случаем, в котором размер родительского блока равен 32 или более и находится в пределах экрана.

[0112] Обновление списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории

Далее подробно описываются способ инициализации и способ обновления списка HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории, предоставленного в запоминающем устройстве 111 для хранения информации кодирования на стороне кодирования и в запоминающем устройстве 205 для хранения информации кодирования на стороне декодирования. Фиг. 26 является пояснительной блок-схемой последовательности операций способа, показывающей процедуру обработки для инициализации/обновления списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории.

[0113] В настоящем варианте осуществления, предполагается, что список HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории обновляется в запоминающем устройстве 111 для хранения информации кодирования и в запоминающем устройстве 205 для хранения информации кодирования. Модуль обновления списков потенциально подходящих вариантов предикторов векторов движения на основе предыстории может устанавливаться в модуле 102 интер-предсказания и модуле 203 интер-предсказания, чтобы обновлять список HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории.

[0114] Список HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории первоначально задается в начале среза, список HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории обновляется, когда режим идентификации предикторов нормальных векторов движения или режим нормального объединения выбран посредством модуля 105 определения способа предсказания на стороне кодирования, и список HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории обновляется, когда информация предсказания, декодированная посредством модуля 201 декодирования битовых строк, задается относительно режима идентификации предикторов нормальных векторов движения или режима нормального объединения на стороне декодирования.

[0115] Информация интер-предсказания, используемая, когда интер-предсказание выполняется в режиме идентификации предикторов нормальных векторов движения или режиме нормального объединения, регистрируется в качестве потенциально подходящего варианта hMvpCand информации интер-предсказания в списке HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории. Потенциально подходящий вариант hMvpCand информации интер-предсказания включает в себя опорный индекс refIdxL0 L0, опорный индекс refIdxL1 L1, флаг predFlagL0 L0-предсказания, указывающий то, выполняется или нет L0-предсказание, флаг predFlagL1 L1-предсказания, указывающий то, выполняется или нет L1-предсказание, вектор mvL0 движения L0 и вектор mvL1 движения L1.

[0116] Проверяется то, имеется или нет информация интер-предсказания, имеющая значение, идентичное значению потенциально подходящего варианта hMvpCand информации интер-предсказания, из элементов (т.е. информации интер-предсказания), зарегистрированных в списке HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории, предоставленном в запоминающем устройстве 111 для хранения информации кодирования стороны кодирования и запоминающем устройстве 205 для хранения информации кодирования стороны декодирования в порядке от начала к концу списка HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории. Когда имеется информация интер-предсказания, имеющая значение, идентичное значению потенциально подходящего варианта hMvpCand информации интер-предсказания, элемент удаляется из списка HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории. С другой стороны, когда отсутствует информация интер-предсказания, имеющая значение, идентичное значению потенциально подходящего варианта hMvpCand информации интер-предсказания, элемент в начале списка HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории удаляется, и потенциально подходящий вариант hMvpCand информации интер-предсказания добавляется в конец списка HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории.

[0117] Максимальный размер списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории, т.е. максимальное количество MaxNumHmvpCand элементов (максимальное количество потенциально подходящих вариантов) списка HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории, что составляет максимальное количество, предоставленное в запоминающем устройстве 111 для хранения информации кодирования стороны кодирования и запоминающем устройстве 205 для хранения информации кодирования стороны декодирования согласно настоящему изобретению, предположительно равен шести. Кроме того, MaxNumHmvpCand может задаваться равным значению, которое является идентичным максимальному количеству MaxNumMergeCand потенциально подходящих вариантов объединения - 1, может задаваться равным значению, которое является идентичным максимальному количеству MaxNumMergeCand потенциально подходящих вариантов объединения, либо может составлять предварительно определенное фиксированное значение, такое как 5 или 6.

[0118] Во-первых, список HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории инициализируется в единицах срезов (этап S2101 по фиг. 26). Все элементы списка HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории являются пустыми в начале среза, и значение количества NumHmvpCand потенциально подходящих вариантов предикторов векторов движения на основе предыстории (текущего количества потенциально подходящих вариантов), зарегистрированных в списке HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории, задается равным 0.

[0119] Дополнительно, значение hMvpIdxOffset смещения задается равным предварительно определенному значению. Значение hMvpIdxOffset смещения задается равным любому предварительно определенному значению от 0 до (размер MaxNumHmvpCand списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории - 1). Посредством задания значения hMvpIdxOffset смещения равным значению, меньшему максимального количества элементов списка HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории, количество сравнений между элементами, которые описываются ниже, может уменьшаться. Хотя значение hMvpIdxOffset смещения задается равным предварительно определенному значению, значение значения hMvpIdxOffset смещения может задаваться посредством выполнения кодирования/декодирования в единицах последовательностей или посредством выполнения кодирования/декодирования в единицах срезов. Ниже подробно описывается значение hMvpIdxOffset смещения.

[0120] Кроме того, инициализация списка HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории выполняется в единицах срезов (первого блока кодирования среза), но может выполняться в единицах кадров, плиток или строк древовидного блока.

[0121] Затем, следующий процесс обновления списка HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории итеративно выполняется для каждого блока кодирования в срезе (этапы S2102-S2107 по фиг. 26).

[0122] Во-первых, начальная настройка выполняется для каждого блока кодирования. Флаг identicalCandExist, указывающий то, имеется или нет идентичный потенциально подходящий вариант, задается равным значению "ложь", и индекс removeIdx цели удаления, указывающий потенциально подходящий вариант цели удаления, задается равным 0 (этап S2103 по фиг. 26).

[0123] Определяется то, имеется или нет информация интер-предсказания, имеющая значение, идентичное значению потенциально подходящего варианта hMvpCand информации интер-предсказания цели регистрации, в списке HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории (этап S2104 по фиг. 26). Когда модуль 105 определения способа предсказания на стороне кодирования определяет то, что режим представляет собой режим идентификации предикторов нормальных векторов движения или режим нормального объединения, либо когда модуль 201 декодирования битовых строк на стороне декодирования декодирует режим в качестве режима идентификации предикторов нормальных векторов движения или режима нормального объединения, его информация интер-предсказания задается в качестве потенциально подходящего варианта hMvpCand информации интер-предсказания цели регистрации. Когда модуль 105 определения способа предсказания на стороне кодирования определяет то, что режим представляет собой режим интра-предсказания, режим идентификации предикторов векторов движения на основе субблоков или режим объединения на основе субблоков, либо когда модуль 201 декодирования битовых строк на стороне декодирования декодирует режим в качестве режима интра-предсказания, режима идентификации предикторов векторов движения на основе субблоков или режима объединения на основе субблоков, процесс обновления списка HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории не выполняется, и потенциально подходящий вариант hMvpCand информации интер-предсказания цели регистрации не существует. Когда отсутствует потенциально подходящий вариант hMvpCand информации интер-предсказания цели регистрации, этапы S2105-S2106 пропускаются (этап S2104 по фиг. 26: "Нет"). Когда имеется потенциально подходящий вариант hMvpCand информации интер-предсказания цели регистрации, обработка с этапа S2105 выполняется (этап S2104 по фиг. 26: "Да").

[0124] Затем, определяется то, имеется или нет элемент (информация интер-предсказания), имеющий значение, идентичное значению потенциально подходящего варианта hMvpCand информации интер-предсказания цели регистрации, т.е. идентичного элемента, среди элементов списка HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории (этап S2105 по фиг. 26). Фиг. 27 является блок-схемой последовательности операций способа для процедуры обработки проверки на идентичные элементы. Когда значение количества NumHmvpCand потенциально подходящих вариантов предикторов векторов движения на основе предыстории равно 0 (этап S2121 по фиг. 27: "Нет"), список HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории является пустым, и отсутствует идентичный потенциально подходящий вариант, так что этапы S2122-S2125 по фиг. 27 пропускаются, и текущая процедура обработки проверки на идентичные элементы завершается. Когда значение количества NumHmvpCand потенциально подходящих вариантов предикторов векторов движения на основе предыстории больше 0 (этап S2121 по фиг. 27: "Да"), проверяется то, имеется или нет информация интер-предсказания, имеющая значение, идентичное значению потенциально подходящего варианта hMvpCand информации интер-предсказания цели регистрации, в порядке от начала к концу списка HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории. Обработка этапа S2123 итеративно выполняется до тех пор, пока индекс hMvpIdx предиктора вектора движения на основе предыстории не изменяется с 0 до NumHmvpCand-1 (этапы S2122-S2125 по фиг. 27). Во-первых, проводится сравнение в отношении того, является или нет hMvpIdx-ый элемент HmvpCandList[hMvpIdx] при подсчете с 0-ого элемента списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории идентичным потенциально подходящему варианту hMvpCand информации интер-предсказания (этап S2123 по фиг. 27). Когда hMvpIdx-ый элемент HmvpCandList[hMvpIdx] является идентичным потенциально подходящему варианту hMvpCand информации интер-предсказания (этап S2123 по фиг. 27: "Да"), значение "истина" задается во флаге identicalCandExist, указывающем то, имеется или нет идентичный потенциально подходящий вариант, и текущее значение индекса hMvpIdx предиктора вектора движения на основе предыстории задается в индексе removeIdx цели удаления, указывающем позицию элемента цели удаления, и текущий процесс проверки на идентичные элементы завершается. Когда hMvpIdx-ый элемент HmvpCandList[hMvpIdx] не является идентичным потенциально подходящему варианту hMvpCand информации интер-предсказания (этап S2123 по фиг. 27: "Нет"), флаг identicalCandExist, указывающий то, имеется или нет идентичный потенциально подходящий вариант, остается "ложь", и hMvpIdx постепенно увеличивается на 1. Если индекс hMvpIdx предиктора вектора движения на основе предыстории меньше или равен NumHmvpCand-1, обработка с этапа S2123 выполняется (этапы S2122-S2125 по фиг. 27).

[0125] Со ссылкой на блок-схему последовательности операций способа по фиг. 26 снова, процесс сдвига и добавления элемента списка HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории выполняется (этап S2106 по фиг. 26). Фиг. 28 является блок-схемой последовательности операций способа для процедуры обработки сдвига/добавления элемента списка HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории этапа S2106 по фиг. 26. Во-первых, определяется то, следует добавлять новый элемент после удаления элемента, хранящегося в списке HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории, либо добавлять новый элемент без удаления элемента. В частности, сравнение проводится относительно того, представляет собой флаг identicalCandExist, указывающий то, имеется или нет идентичный потенциально подходящий вариант, или нет "истина", либо того, достигает или нет текущее количество NumHmvpCand потенциально подходящих вариантов максимального количества MaxNumHmvpCand потенциально подходящих вариантов (этап S2141 по фиг. 28). Когда текущее количество NumHmvpCand потенциально подходящих вариантов имеет значение, идентичное значению максимального количества MaxNumHmvpCand потенциально подходящих вариантов, это указывает то, что максимальное количество элементов добавлено в список HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории. Когда одно из такого условия, что флаг identicalCandExist, указывающий то, имеется или нет идентичный потенциально подходящий вариант, представляет собой "истина", и такого условия, что NumHmvpCand имеет значение, идентичное значению MaxNumHmvpCand, удовлетворяется (этап S2141 по фиг. 28: "Да"), новый элемент добавляется после того, как элемент, хранящийся в списке HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории, удаляется. В частности, когда флаг identicalCandExist, указывающий то, имеется или нет идентичный потенциально подходящий вариант, представляет собой "истина", идентичный потенциально подходящий вариант удаляется из списка HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории. Когда NumHmvpCand имеет значение, идентичное значению MaxNumHmvpCand, потенциально подходящий вариант (элемент) в начале удаляется из списка HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории. Начальное значение индекса i задается равным значению removeIdx+1. removeIdx представляет собой индекс цели удаления, указывающий потенциально подходящий вариант для цели удаления. Процесс поэлементного сдвига этапа S2143 итеративно выполняется до тех пор, пока индекс i не задается от начального значения removeIdx+1 до NumHmvpCand-1 (этапы S2142-S2144 по фиг. 28). Посредством копирования элемента HmvpCandList[i] в HmvpCandList[i-1], элемент сдвигается вперед (этап S2143 по фиг. 28), и i постепенно увеличивается на 1 (этапы S2142-S2144 по фиг. 28). Когда индекс i становится NumHmvpCand, и процесс поэлементного сдвига этапа S2143 завершается, потенциально подходящий вариант hMvpCand информации интер-предсказания добавляется в конец списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории (этап S2145 по фиг. 28). Здесь, конец списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории представляет собой NumHmvpCand-ый элемент HmvpCandList[numHmvpCand] при подсчете с 0-ого элемента. Соответственно, текущий процесс сдвига и добавления элемента списка HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории завершается. С другой стороны, когда как такое условие, что флаг identicalCandExist, указывающий то, имеется или нет идентичный потенциально подходящий вариант, представляет собой "истина", так и такое условие, что NumHmvpCand имеет значение, идентичное значению MaxNumHmvpCand, не удовлетворяется (этап S2141 по фиг. 28: "Нет"), т.е. когда флаг identicalCandExist, указывающий то, имеется или нет идентичный потенциально подходящий вариант, представляет собой "ложь" и NumHmvpCand, меньше MaxNumHmvpCand, потенциально подходящий вариант hMvpCand информации интер-предсказания добавляется в позиции рядом с последним элементом списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории, без удаления элементов, хранящихся в списке HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории (этап S2146 по фиг. 28). Здесь, позиция рядом с последним элементом списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории соответствует NumHmvpCand-ому элементу HmvpCandList[numHmvpCand] при подсчете с 0-ого элемента. Когда элемент не добавляется в список потенциально подходящих вариантов предикторов векторов движения на основе предыстории, позиция должна представлять собой позицию 0-ого элемента. Кроме того, NumHmvpCand постепенно увеличивается на 1, и текущий процесс сдвига и добавления элемента списка HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории завершается.

[0126] Фиг. 31A-31C являются пояснительными схемами, показывающими пример процесса обновления списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории. Если новый элемент добавляется, когда шесть элементов (информация интер-предсказания), соответствующих размеру MaxNumMergeCand списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории, зарегистрированы в списке HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории, элементы сравниваются с новой информацией интер-предсказания в порядке от переднего элемента списка HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории (фиг. 31A). Если новый элемент имеет значение, идентичное значению третьего элемента HMVP2 с начала списка HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории, элемент HMVP2 удаляется из списка HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории, и последующие элементы HMVP3-HMVP5 сдвигаются вперед (копируются) по одному, и новый элемент добавляется в конец списка HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории (фиг. 31B), чтобы завершать обновление списка HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории (фиг. 31C).

[0127] Процесс извлечения потенциально подходящих вариантов предикторов векторов движения на основе предыстории

Далее подробно описывается способ извлечения потенциально подходящего варианта предиктора вектора движения на основе предыстории из списка HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории, который представляет собой процедуру обработки этапа S304 по фиг. 20, которая представляет собой процесс, общий для модуля 323 извлечения потенциально подходящих вариантов предикторов векторов движения на основе предыстории модуля 301 извлечения режимов идентификации предикторов нормальных векторов движения на стороне кодирования и модуля 423 извлечения потенциально подходящих вариантов предикторов векторов движения на основе предыстории модуля 401 извлечения режимов идентификации предикторов нормальных векторов движения на стороне декодирования. Фиг. 29 является пояснительной блок-схемой последовательности операций способа, показывающей процедуру обработки извлечения потенциально подходящих вариантов предикторов векторов движения на основе предыстории.

[0128] Когда текущее количество numCurrMvpCand потенциально подходящих вариантов предикторов векторов движения больше или равно максимальному количеству элементов в списке mvpListLX потенциально подходящих вариантов предикторов векторов движения (здесь, 2), или значение количества NumHmvpCand потенциально подходящих вариантов предикторов векторов движения на основе предыстории (количества элементов, зарегистрированных в списке потенциально подходящих вариантов предикторов векторов движения на основе предыстории) равно 0 (этап S2201 по фиг. 29: "Нет"), обработка этапов S2202-S2210 по фиг. 29 опускается, и процедура обработки извлечения потенциально подходящих вариантов предикторов векторов движения на основе предыстории завершается. Когда текущее количество numCurrMvpCand потенциально подходящих вариантов предикторов векторов движения меньше 2, что составляет максимальное количество элементов списка mvpListLX потенциально подходящих вариантов предикторов векторов движения, и значение количества NumHmvpCand потенциально подходящих вариантов предикторов векторов движения на основе предыстории превышает 0 (этап S2201 по фиг. 29: "Да"), обработка этапов S2202-S2210 по фиг. 29 выполняется.

[0129] Затем, обработка согласно этапам S2203-S2209 по фиг. 29 итеративно выполняется до тех пор, пока индекс i не изменяется с 1 до меньшего значения между 4, которое составляет предварительно определенное верхнее предельное значение, и количеством NumHmvpCand потенциально подходящих вариантов предикторов векторов движения на основе предыстории (этапы S2202-S2210 по фиг. 29). Когда текущее количество numCurrMvpCand потенциально подходящих вариантов предикторов векторов движения больше или равно 2, что представляет собой максимальное количество элементов списка mvpListLX потенциально подходящих вариантов предикторов векторов движения (этап S2203 по фиг. 29: "Нет"), обработка этапов S2204-S2210 на фиг. 29 опускается, и текущая процедура обработки извлечения потенциально подходящих вариантов предикторов векторов движения на основе предыстории завершается. Когда текущее количество numCurrMvpCand потенциально подходящих вариантов предикторов векторов движения меньше 2, что представляет собой максимальное количество элементов списка mvpListLX потенциально подходящих вариантов предикторов векторов движения (этап S2203 по фиг. 29: "Да"), обработка с этапа S2204 по фиг. 29 выполняется.

[0130] Затем, процесс с этапов S2205-S2208 выполняется для каждого случая, в котором опорный список LY каждого элемента списка HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории представляет собой L0 и L1 (этапы S2204-S2209 по фиг. 29). Показано, что обработка этапов S2205-S2208 по фиг. 29 выполняется для L0 и L1 списка HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории, соответственно. Когда текущее количество numCurrMvpCand потенциально подходящих вариантов предикторов векторов движения больше или равно 2, что представляет собой максимальное количество элементов списка mvpListLX потенциально подходящих вариантов предикторов векторов движения (этап S2205 по фиг. 29: "Нет"), процесс этапа S2206-S2210 по фиг. 29 опускается, и текущая процедура обработки извлечения потенциально подходящих вариантов предикторов векторов движения на основе предыстории завершается. Когда текущее количество numCurrMvpCand потенциально подходящих вариантов предикторов векторов движения меньше 2, что представляет собой максимальное количество элементов списка mvpListLX потенциально подходящих вариантов предикторов векторов движения (этап S2205 по фиг. 29: "Да"), обработка с этапа S2206 по фиг. 29 выполняется.

[0131] Затем, вектор движения элемента списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории добавляется в список потенциально подходящих вариантов предикторов векторов движения в качестве потенциально подходящего варианта предиктора вектора движения. В это время, проверяется то, представляет собой количество элементов, указываемое посредством значения hMvpIdxOffset смещения от заднего конца списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории, или нет элементы, которые не включаются в список потенциально подходящих вариантов предикторов векторов движения в порядке убывания, элемент, который не включается в список потенциально подходящих вариантов предикторов векторов движения, добавляется в список потенциально подходящих вариантов предикторов векторов движения. Затем, элемент списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории добавляется в список потенциально подходящих вариантов предикторов векторов движения без проверки того, представляют собой элементы или нет элементы, которые не включаются в список потенциально подходящих вариантов предикторов векторов движения в порядке убывания. Можно сокращать количество сравнений между элементами, которые описываются ниже, посредством задания значения hMvpIdxOffset смещения равным значению, меньшему максимального количества элементов в списке HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории. В дальнейшем описывается причина, по которой сравнения проводятся посредством количества элементов, указываемого посредством значения hMvpIdxOffset смещения от заднего конца списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории, когда список потенциально подходящих вариантов предикторов векторов движения на основе предыстории проверяется, со ссылкой на фиг. 38A-38D.

[0132] Фиг. 38A-38D показывают взаимосвязи между тремя примерами, когда блок разделяется на четыре части, и списком потенциально подходящих вариантов предикторов векторов движения на основе предыстории. В дальнейшем описывается случай, в котором каждый блок кодирования кодирован в режиме идентификации предикторов нормальных векторов движения или режиме нормального объединения. Фиг. 38A является схемой, когда блок кодирования цели кодирования/декодирования представляет собой верхний правый блок. В этом случае, информация интер-предсказания блока с левой стороны относительно блока кодирования цели кодирования/декодирования с большой вероятностью должна представлять собой последний элемент HMVP5 списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории. Фиг. 38B является схемой, когда блок кодирования цели кодирования/декодирования представляет собой нижний левый блок. В этом случае, информация интер-предсказания блока на верхней правой стороне блока кодирования цели кодирования/декодирования с большой вероятностью должна представлять собой последний элемент HMVP5 списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории, и информация интер-предсказания блока с верхней стороны относительно блока кодирования цели кодирования/декодирования с большой вероятностью должна представлять собой предпоследний элемент HMVP4 списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории.

[0133] Фиг. 38C является схемой, когда блок кодирования цели кодирования/декодирования представляет собой нижний правый блок. В этом случае, информация интер-предсказания блока с левой стороны относительно блока кодирования цели кодирования/декодирования с большой вероятностью должна представлять собой последний элемент HMVP5 списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории, информация интер-предсказания блока с верхней стороны относительно блока кодирования цели кодирования/декодирования с большой вероятностью должна представлять собой предпоследний элемент HMVP4 списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории, и информация интер-предсказания блока с верхней левой стороны относительно блока кодирования цели кодирования/декодирования с большой вероятностью должна представлять собой предпредпоследний элемент HMVP3 списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории. Таким образом, последний элемент списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории с наибольшей вероятностью должен извлекаться в качестве потенциально подходящего варианта пространственного предиктора вектора движения.

[0134] Как показано на фиг. 38D, значение hMvpIdxOffset смещения задается равным 1, чтобы проводить сравнение только с последним элементом HMVP5 списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории, который с наибольшей вероятностью должен извлекаться в качестве потенциально подходящего варианта пространственного предиктора вектора движения. Дополнительно, значение hMvpIdxOffset смещения может задаваться равным 2, чтобы проводить сравнение с предпоследним элементом списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории, который со второй наибольшей вероятностью должен извлекаться в качестве потенциально подходящего варианта пространственного предиктора вектора движения. Дополнительно, значение hMvpIdxOffset смещения может задаваться равным 3, чтобы проводить сравнение с предпредпоследним элементом списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории, который с третьей наибольшей вероятностью должен извлекаться в качестве потенциально подходящего варианта пространственного предиктора вектора движения. Посредством задания значения hMvpIdxOffset смещения равным значению 1 или больше, как описано выше, максимальное количество раз, когда элементы списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории сравниваются, уменьшается, так что максимальный объем обработки уменьшается. Кроме того, посредством задания значения hMvpIdxOffset смещения равным 0, количество сравнений элементов списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории становится равным 0, и процесс сравнения опускается.

[0135] Когда индекс i меньше значения hMvpIdxOffset смещения, т.е. когда проверяется то, представляет собой элемент или нет элемент, не включенный в список потенциально подходящих вариантов предикторов векторов движения (этап S2206 по фиг. 29: "Да"), и когда опорный индекс LY элемента HmvpCandList[NumHmvpCand-i] в списке потенциально подходящих вариантов предикторов векторов движения на основе предыстории имеет значение, идентичное значению опорного индекса refIdxLX вектора движения цели кодирования/декодирования, и LY элемента HmvpCandList[NumHmvpCand-i] в списке потенциально подходящих вариантов предикторов векторов движения на основе предыстории отличается от любого элемента списка mvpListLX потенциально подходящих вариантов предикторов векторов движения (этап S2207 по фиг. 29: "Да"), вектор движения LY потенциально подходящего варианта HmvpCandList[NumHmvpCand-i] предиктора вектора движения на основе предыстории добавляется в numCurrMvpCand-ый элемент mvpListLX[numCurrMvpCand] при подсчете с 0-ого элемента списка потенциально подходящих вариантов предикторов векторов движения в списке mvpListLX потенциально подходящих вариантов предикторов векторов движения в качестве последнего элемента списка потенциально подходящих вариантов предикторов векторов движения (этап S2208 на фиг. 29), и текущее количество numCurrMvpCand потенциально подходящих вариантов предикторов векторов движения постепенно увеличивается на 1. Когда отсутствует элемент в списке HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории, который имеет опорный индекс, идентичный опорному индексу refIdxLX вектора движения цели кодирования/декодирования, и отличается от любого элемента списка mvpListLX предикторов векторов движения (этап S2207 по фиг. 29: "Нет"), процесс добавления этапа S2208 пропускается.

[0136] С другой стороны, когда индекс i не меньше значения hMvpIdxOffset смещения, т.е. когда не проверяется то, представляет собой элемент или нет элемент, не включенный в список потенциально подходящих вариантов предикторов векторов движения (этап S2206 по фиг. 29: "Нет"), вектор движения LY потенциально подходящего варианта HmvpCandList[NumHmvpCand-i] предиктора вектора движения на основе предыстории добавляется в numCurrMvpCand-ый элемент mvpListLX[numCurrMvpCand] при подсчете с 0-ого элемента списка потенциально подходящих вариантов предикторов векторов движения в качестве последнего элемента списка потенциально подходящих вариантов предикторов векторов движения (этап S2208 на фиг. 29), и текущее количество numCurrMvpCand потенциально подходящих вариантов предикторов векторов движения постепенно увеличивается на 1.

[0137] Вышеуказанная обработка этапов S2205-S2208 по фиг. 29 выполняется в L0 и L1 (этапы S2204-S2209 по фиг. 29).

[0138] Когда индекс i постепенно увеличивается на 1 (этапы S2202 и S2210 по фиг. 29), и индекс i меньше или равен меньшему значению между 4, которое составляет предварительно определенное верхнее предельное значение, и количеством NumHmvpCand потенциально подходящих вариантов предикторов векторов движения на основе предыстории, обработка с этапа S2203 выполняется снова (этапы S2202-S2210 по фиг. 29).

[0139] Процесс извлечения потенциально подходящих вариантов объединения на основе предыстории

Далее подробно описывается способ для извлечения потенциально подходящего варианта объединения на основе предыстории из списка потенциально подходящих вариантов объединения на основе предыстории HmvpCandList в процедуре обработки этапа S404 по фиг. 21, которая представляет собой общую обработку между модулем 345 извлечения потенциально подходящих вариантов объединения на основе предыстории модуля 302 извлечения режимов нормального объединения на стороне кодирования и модулем 445 извлечения потенциально подходящих вариантов объединения на основе предыстории модуля 402 извлечения режимов нормального объединения на стороне декодирования. Фиг. 30 является блок-схемой последовательности операций способа, показывающей процедуру обработки извлечения потенциально подходящих вариантов объединения на основе предыстории.

[0140] Во-первых, процесс инициализации выполняется (этап S2301 на фиг. 30). Значение "ложь" задается в каждом из элементов от 0-ого элемента до (numCurrMergeCand-1)-ого элемента флага isPruned[i], и количество numCurrMergeCand элементов, зарегистрированных в текущем списке потенциально подходящих вариантов объединения, задается в переменной numOrigMergeCand.

[0141] Затем, элемент, который не включается в список потенциально подходящих вариантов объединения, из элементов списка предиктора вектора движения на основе предыстории, добавляется в список потенциально подходящих вариантов объединения. В это время, список предиктора вектора движения на основе предыстории проверяется в порядке убывания от его заднего конца, и элемент добавляется. Начальное значение индекса hMvpIdx задается равным 1, и процесс добавления от этапа S2303 до этапа S2311 по фиг. 30 итеративно выполняется от начального значения до NumHmvpCand (этапы S2302-S2312 по фиг. 30). Если количество numCurrMergeCand элементов, зарегистрированных в текущем списке потенциально подходящих вариантов объединения, не меньше или равно (максимальное количество MaxNumMergeCand потенциально подходящих вариантов объединения - 1), т.е. если количество numCurrMergeCand элементов, зарегистрированных в текущем списке потенциально подходящих вариантов объединения, достигает максимального количества MaxNumMergeCand потенциально подходящих вариантов объединения, потенциально подходящие варианты объединения добавлены во все элементы списка потенциально подходящих вариантов объединения, и в силу этого текущий процесс извлечения потенциально подходящих вариантов объединения на основе предыстории завершается (этап S2303 по фиг. 30: "Нет"). Когда количество numCurrMergeCand элементов, зарегистрированных в текущем списке потенциально подходящих вариантов объединения, меньше или равно (максимальное количество MaxNumMergeCand потенциально подходящих вариантов объединения - 1) (этап S2303 по фиг. 30: "Да"), обработка с этапа S2304 выполняется.

[0142] Значение "ложь" задается в переменной sameMotion, указывающей идентичную информацию движения (этап S2304 по фиг. 30). Затем, информация интер-предсказания, которая представляет собой элемент списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории, добавляется в список потенциально подходящих вариантов объединения в качестве потенциально подходящего варианта объединения. В это время, проверяется то, представляет собой количество элементов, указываемое посредством значения hMvpIdxOffset смещения от элемента заднего конца списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории (самого последнего добавленного элемента), или нет элементы, которые не включаются в список потенциально подходящих вариантов объединения в порядке убывания, элемент, который не включается в список потенциально подходящих вариантов объединения, добавляется в список потенциально подходящих вариантов объединения. Затем, элемент списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории добавляется в список потенциально подходящих вариантов объединения без проверки того, представляют собой элементы или нет элементы, которые не включаются в список потенциально подходящих вариантов объединения в порядке убывания. Можно сокращать количество сравнений между элементами, которые описываются ниже, посредством задания значения hMvpIdxOffset смещения равным значению, меньшему максимального количества элементов в списке HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории. В дальнейшем описывается причина, по которой сравнения проводятся посредством количества элементов, указываемого посредством значения hMvpIdxOffset смещения от элемента заднего конца списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории (самого последнего добавленного элемента), когда список потенциально подходящих вариантов предикторов векторов движения на основе предыстории проверяется, со ссылкой на фиг. 38A-38D. Фиг. 38A-38D показывают взаимосвязи между тремя примерами, когда блок разделяется на четыре части, и списком потенциально подходящих вариантов предикторов векторов движения на основе предыстории. В дальнейшем описывается случай, в котором каждый блок кодирования кодирован в режиме идентификации предикторов нормальных векторов движения или режиме нормального объединения. Фиг. 38A является схемой, когда блок кодирования цели кодирования/декодирования представляет собой верхний правый блок. В этом случае, информация интер-предсказания блока с левой стороны относительно блока кодирования цели кодирования/декодирования с большой вероятностью должна представлять собой последний элемент HMVP5 списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории. Фиг. 38B является схемой, когда блок кодирования цели кодирования/декодирования представляет собой нижний левый блок. В этом случае, информация интер-предсказания блока на верхней правой стороне блока кодирования цели кодирования/декодирования с большой вероятностью должна представлять собой последний элемент HMVP5 списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории, и информация интер-предсказания блока с верхней стороны относительно блока кодирования цели кодирования/декодирования с большой вероятностью должна представлять собой предпоследний элемент HMVP4 списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории. Фиг. 38C является схемой, когда блок кодирования цели кодирования/декодирования представляет собой нижний правый блок. В этом случае, информация интер-предсказания блока с левой стороны относительно блока кодирования цели кодирования/декодирования с большой вероятностью должна представлять собой последний элемент HMVP5 списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории, информация интер-предсказания блока с верхней стороны относительно блока кодирования цели кодирования/декодирования с большой вероятностью должна представлять собой предпоследний элемент HMVP4 списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории, и информация интер-предсказания блока с верхней левой стороны относительно блока кодирования цели кодирования/декодирования с большой вероятностью должна представлять собой предпредпоследний элемент HMVP3 списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории. Таким образом, последний элемент списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории с наибольшей вероятностью должен извлекаться в качестве пространственного потенциально подходящего варианта объединения. Как показано на фиг. 38D, значение hMvpIdxOffset смещения задается равным 1, чтобы проводить сравнение только с последним элементом HMVP5 списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории, который с наибольшей вероятностью должен извлекаться в качестве пространственного потенциально подходящего варианта объединения. Дополнительно, значение hMvpIdxOffset смещения может задаваться равным 2, чтобы проводить сравнение с предпоследним элементом списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории, который со второй наибольшей вероятностью должен извлекаться в качестве пространственного потенциально подходящего варианта объединения. Дополнительно, значение hMvpIdxOffset смещения может задаваться равным 3, чтобы проводить сравнение с предпредпоследним элементом списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории, который с третьей наибольшей вероятностью должен извлекаться в качестве пространственного потенциально подходящего варианта объединения. Посредством задания значения hMvpIdxOffset смещения равным значению от 1 до 3, как описано выше, в качестве предварительно определенного значения и задания количества элементов, указываемых посредством значения hMvpIdxOffset смещения от элемента заднего конца списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории (самого последнего добавленного элемента) и пространственных потенциально подходящих вариантов объединения или только элементов, хранящихся в списке потенциально подходящих вариантов объединения в качестве целей сравнения, максимальное количество сравнений элементов списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории уменьшается, и в силу этого максимальный объем обработки уменьшается.

[0143] Когда индекс hMvpIdx меньше или равен предварительно определенному значению hMvpIdxOffset смещения, т.е. когда проверяется то, представляет собой элемент или нет элемент, который не включается в список потенциально подходящих вариантов объединения (этап S2305 по фиг. 30: "Да"), начальное значение индекса i задается равным 0, и обработка этапов S2307 и S2308 по фиг. 30 выполняется от начального значения до numOrigMergeCand-1 (S2306-S2309 по фиг. 30). Проводится сравнение в отношении того, имеет или нет (NumHmvpCand-hMvpIdx)-ый элемент HmvpCandList[NumHmvpCand-hMvpIdx] при подсчете с 0-ого элемента списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории значение, идентичное значению i-ого элемента mergeCandList[i] при подсчете с 0-ого элемента списка потенциально подходящих вариантов объединения (этап S2307 по фиг. 30). Идентичные значения между потенциально подходящими вариантами объединения указывают то, что значения всех компонентов информации интер-предсказания, которые имеют потенциально подходящие варианты объединения (режима интер-предсказания, опорных индексов L0 и L1 и векторов движения L0 и L1), являются идентичными. Следовательно, в процессе сравнения этапа S2307, когда isPruned[i] представляет собой "ложь", сравнение проводится относительно того, являются или нет идентичными значения всех компонентов, которые mergeCandList[i] и HmvpCandList[NumHmvpCand-hMvpIdx] имеют (режима интер-предсказания, опорных индексов L0 и L1 и векторов движения L0 и L1). Когда значения являются идентичными (этап S2307 по фиг. 30: "Да"), "истина" задается для sameMotion и для isPruned[i] (этап S2308 по фиг. 30). Кроме того, флаг isPruned[i] представляет собой флаг, указывающий то, что i-ый элемент при подсчете с 0-ого элемента списка потенциально подходящих вариантов объединения имеет значение, идентичное значению любого элемента списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории. Когда значения не являются идентичными (этап S2307 по фиг. 30: "Нет"), обработка этапа S2308 пропускается. Когда итеративный процесс от этапа S2306 до этапа S2309 по фиг. 30 завершается, сравнение проводится относительно того, представляет или нет sameMotion собой "ложь" (этап S2310 по фиг. 30). Когда sameMotion представляет собой "ложь" (этап S2310 по фиг. 30: "Да"), т.е. поскольку (NumHmvpCand-hMvpIdx)-ый элемент при подсчете с 0-ого элемента списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории не присутствует в mergeCandList, (NumHmvpCand-hMvpIdx)-ый элемент HmvpCandList[NumHmvpCand-hMvpIdx] при подсчете с 0-ого элемента списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории добавляется в numCurrMergeCand-ый элемент mergeCandList[numCurrMergeCand] списка потенциально подходящих вариантов объединения в качестве последнего элемента списка потенциально подходящих вариантов объединения, и numCurrMergeCand постепенно увеличивается на 1 (этап S2311 по фиг. 30). С другой стороны, когда индекс hMvpIdx не меньше значения hMvpIdxOffset смещения, т.е. когда не проверяется то, представляет собой элемент или нет элемент, который не включается в список потенциально подходящих вариантов объединения (этап S2305 по фиг. 30: "Нет"), (NumHmvpCand-hMvpIdx)-ый элемент HmvpCandList[NumHmvpCand-hMvpIdx] при подсчете с 0-ого элемента списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории добавляется в numCurrMergeCand-ый элемент mergeCandList[numCurrMergeCand] списка потенциально подходящих вариантов объединения в качестве последнего элемента списка потенциально подходящих вариантов объединения, и numCurrMergeCand постепенно увеличивается на 1 (этап S2312 по фиг. 30).

[0144] Дополнительно, индекс hMvpIdx постепенно увеличивается на 1 (этап S2302 по фиг. 30), и итеративная обработка этапов S2302-S2312 по фиг. 30 выполняется.

[145] Когда проверка всех элементов списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории завершается, либо когда потенциально подходящие варианты объединения добавляются во все элементы списка потенциально подходящих вариантов объединения, текущий процесс извлечения потенциально подходящих вариантов объединения на основе предыстории завершается.

[0146] Процесс предсказания с компенсацией движения

Модуль 306 предсказания с компенсацией движения получает позицию и размер блока, который представляет собой текущую цель процесса предсказания при кодировании. Кроме того, модуль 306 предсказания с компенсацией движения получает информацию интер-предсказания из модуля 305 определения режима интер-предсказания. Опорный индекс и вектор движения извлекаются из полученной информации интер-предсказания, и сигнал предсказания формируется после того, как получается сигнал кадров позиции, в которую опорный кадр, идентифицированный посредством опорного индекса в запоминающем устройстве 104 декодированных кадров, перемещается из позиции, идентичной позиции сигнала кадров блока предсказания, на величину вектора движения.

[0147] Сигнал предсказания с компенсацией движения предоставляется в модуль 105 определения способа предсказания с использованием сигнала предсказания, полученного из одного опорного кадра, в качестве сигнала предсказания с компенсацией движения, когда режим интер-предсказания при интер-предсказании представляет собой предсказание из одного опорного кадра, такое как L0-предсказание или L1-предсказание, и с использованием сигнала предсказания, полученного посредством сигналов предсказания с усреднением со взвешиванием, полученных из двух опорных кадров, в качестве сигнала предсказания с компенсацией движения, когда режим предсказания представляет собой предсказание из двух опорных кадров, такое как режим интер-предсказания бипредсказания. Хотя средневзвешенный коэффициент бипредсказания здесь составляет 1:1, усреднение со взвешиванием может выполняться с использованием другого коэффициента. Например, весовой коэффициент может увеличиваться по мере того, как межкадровый интервал между кадром, который представляет собой цель предсказания, и опорным кадром снижается. Кроме того, весовой коэффициент может вычисляться с использованием соответствующей таблицы между комбинациями межкадровых интервалов и весовых коэффициентов.

[0148] Модуль 406 предсказания с компенсацией движения имеет функцию, аналогичную функции модуля 306 предсказания с компенсацией движения на стороне кодирования. Модуль 406 предсказания с компенсацией движения получает информацию интер-предсказания из модуля 401 извлечения режимов идентификации предикторов нормальных векторов движения, модуля 402 извлечения режимов нормального объединения, модуля 403 извлечения режимов идентификации предикторов векторов движения на основе субблоков и модуля 404 извлечения режимов объединения на основе субблоков через переключатель 408. Модуль 406 предсказания с компенсацией движения предоставляет полученный сигнал предсказания с компенсацией движения в модуль 207 наложения сигналов кадров для декодирования.

[0149] Касательно режима интер-предсказания

Процесс выполнения предсказания из одного опорного кадра задается как унипредсказание. В случае унипредсказания, выполняется предсказание с использованием одного из двух опорных кадров, зарегистрированных в опорных списках L0 и L1, такое как L0-предсказание или L1-предсказание.

[0150] Фиг. 32 показывает случай унипредсказания, в котором время такта опорного кадра (RefL0Pic) L0 находится раньше времени такта целевого кадра (CurPic). Фиг. 33 показывает случай унипредсказания, в котором время такта опорного кадра L0-предсказания находится позже времени такта целевого кадра. Аналогично, опорный кадр L0-предсказания по фиг. 32 и 33 может заменяться опорным кадром (RefL1Pic) L1-предсказания, чтобы выполнять унипредсказание.

[0151] Процесс выполнения предсказания из двух опорных кадров задается как бипредсказание, и бипредсказание представляется как бипредсказание с использованием как L0-предсказания, так и L1-предсказания. Фиг. 34 показывает случай бипредсказания, в котором время такта опорного кадра L0-предсказания находится раньше времени такта целевого кадра, и время такта опорного кадра L1-предсказания находится позже времени такта целевого кадра. Фиг. 35 показывает случай бипредсказания, в котором времена такта опорного кадра L0-предсказания и опорного кадра L1-предсказания находятся раньше времени такта целевого кадра. Фиг. 36 показывает случай бипредсказания, в котором время такта опорного кадра L0-предсказания и время такта опорного кадра L1-предсказания находятся позже времени такта целевого кадра.

[0152] Как описано выше, взаимосвязь между типом предсказания L0/L1 и временем может использоваться без ограничения L0, который находится в предыдущем направлении, и L1, который находится в будущем направлении. В случае бипредсказания, каждое из L0-предсказания и L1-предсказания может выполняться с использованием идентичного опорного кадра. Кроме того, определяется то, следует выполнять предсказание с компенсацией движения согласно унипредсказанию или бипредсказанию, на основе, например, информации (например, флага), указывающей то, следует или нет использовать L0-предсказание, и то, следует или нет использовать L1-предсказание.

[0153] Касательно опорного индекса

В варианте осуществления настоящего изобретения, можно выбирать оптимальный опорный кадр из множества опорных кадров при предсказании с компенсацией движения, чтобы повышать точность предсказания с компенсацией движения. Таким образом, опорный кадр, используемый при предсказании с компенсацией движения, используется в качестве опорного индекса, и опорный индекс кодируется в потоке битов вместе с разностью векторов движения.

[0154] Процесс компенсации движения на основе режима идентификации предикторов нормальных векторов движения

Как показано в модуле 102 интер-предсказания на стороне кодирования по фиг. 16, когда информация интер-предсказания из модуля 301 извлечения режимов идентификации предикторов нормальных векторов движения выбрана в модуле 305 определения режима интер-предсказания, модуль 306 предсказания с компенсацией движения получает информацию интер-предсказания из модуля 305 определения режима интер-предсказания, извлекает режим интер-предсказания, опорный индекс и вектор движения текущего целевого блока и формирует сигнал предсказания с компенсацией движения. Сформированный сигнал предсказания с компенсацией движения предоставляется в модуль 105 определения способа предсказания.

[0155] Аналогично, как показано в модуле 203 интер-предсказания на стороне декодирования по фиг. 22, когда переключатель 408 соединен с модулем 401 извлечения режимов идентификации предикторов нормальных векторов движения в процессе декодирования, модуль 406 предсказания с компенсацией движения получает информацию интер-предсказания из модуля 401 извлечения режимов идентификации предикторов нормальных векторов движения, извлекает режим интер-предсказания, опорный индекс и вектор движения текущего целевого блока и формирует сигнал предсказания с компенсацией движения. Сформированный сигнал предсказания с компенсацией движения предоставляется в модуль 207 наложения сигналов кадров для декодирования.

[0156] Процесс компенсации движения на основе режима нормального объединения

Кроме того, как показано в модуле 102 интер-предсказания на стороне кодирования по фиг. 16, когда информация интер-предсказания выбрана из модуля 302 извлечения режимов нормального объединения в модуле 305 определения режима интер-предсказания, модуль 306 предсказания с компенсацией движения получает информацию интер-предсказания из модуля 305 определения режима интер-предсказания, извлекает режим интер-предсказания, опорный индекс и вектор движения текущего целевого блока и формирует сигнал предсказания с компенсацией движения. Сформированный сигнал предсказания с компенсацией движения предоставляется в модуль 105 определения способа предсказания.

[0157] Аналогично, как показано в модуле 203 интер-предсказания на стороне декодирования по фиг. 22, когда переключатель 408 соединен с модулем 402 извлечения режимов нормального объединения в процессе декодирования, модуль 406 предсказания с компенсацией движения получает информацию интер-предсказания из модуля 402 извлечения режимов нормального объединения, извлекает режим интер-предсказания, опорный индекс и вектор движения текущего целевого блока и формирует сигнал предсказания с компенсацией движения. Сформированный сигнал предсказания с компенсацией движения предоставляется в модуль 207 наложения сигналов кадров для декодирования.

[0158] Процесс компенсации движения на основе режима идентификации предикторов векторов движения на основе субблоков

Кроме того, как показано в модуле 102 интер-предсказания на стороне кодирования по фиг. 16, когда информация интер-предсказания из модуля 303 извлечения режимов идентификации предикторов векторов движения на основе субблоков выбрана в модуле 305 определения режима интер-предсказания, модуль 306 предсказания с компенсацией движения получает информацию интер-предсказания из модуля 305 определения режима интер-предсказания, извлекает режим интер-предсказания, опорный индекс и вектор движения текущего целевого блока и формирует сигнал предсказания с компенсацией движения. Сформированный сигнал предсказания с компенсацией движения предоставляется в модуль 105 определения способа предсказания.

[0159] Аналогично, как показано в модуле 203 интер-предсказания на стороне декодирования по фиг. 22, когда переключатель 408 соединен с модулем 403 извлечения режимов идентификации предикторов векторов движения на основе субблоков в процессе декодирования, модуль 406 предсказания с компенсацией движения получает информацию интер-предсказания из модуля 403 извлечения режимов идентификации предикторов векторов движения на основе субблоков, извлекает режим интер-предсказания, опорный индекс и вектор движения текущего целевого блока и формирует сигнал предсказания с компенсацией движения. Сформированный сигнал предсказания с компенсацией движения предоставляется в модуль 207 наложения сигналов кадров для декодирования.

[0160] Процесс компенсации движения на основе режима объединения на основе субблоков

Кроме того, как показано в модуле 102 интер-предсказания на стороне кодирования по фиг. 16, когда информация интер-предсказания из модуля 304 извлечения режимов объединения на основе субблоков выбрана в модуле 305 определения режима интер-предсказания, модуль 306 предсказания с компенсацией движения получает информацию интер-предсказания из модуля 305 определения режима интер-предсказания, извлекает режим интер-предсказания, опорный индекс и вектор движения текущего целевого блока и формирует сигнал предсказания с компенсацией движения. Сформированный сигнал предсказания с компенсацией движения предоставляется в модуль 105 определения способа предсказания.

[0161] Аналогично, как показано в модуле 203 интер-предсказания на стороне декодирования по фиг. 22, когда переключатель 408 соединен с модулем 404 извлечения режимов объединения на основе субблоков в процессе декодирования, модуль 406 предсказания с компенсацией движения получает информацию интер-предсказания из модуля 404 извлечения режимов объединения на основе субблоков, извлекает режим интер-предсказания, опорный индекс и вектор движения текущего целевого блока и формирует сигнал предсказания с компенсацией движения. Сформированный сигнал предсказания с компенсацией движения предоставляется в модуль 207 наложения сигналов кадров для декодирования.

[0162] Процесс компенсации движения на основе предсказания с аффинным преобразованием

В режиме идентификации предикторов нормальных векторов движения и режиме нормального объединения, компенсация движения аффинной модели может использоваться на основе следующих флагов. Следующие флаги отражаются в следующих флагах на основе условий интер-предсказания, определенных посредством модуля 305 определения режима интер-предсказания в процессе кодирования, и кодируются в потоке битов. В процессе декодирования, идентифицируется то, следует или нет выполнять компенсацию движения аффинной модели, на основе следующих флагов в потоке битов.

[0163] sps_affine_enabled_flag представляет то, может или нет компенсация движения аффинной модели использоваться при интер-предсказании. Если sps_affine_enabled_flag равен 0, подавление выполняется таким образом, что она не представляет собой компенсацию движения аффинной модели в единицах последовательностей. Кроме того, inter_affine_flag и cu_affine_type_flag не передаются в синтаксисе CU (блоков кодирования) видеопоследовательности для кодирования. Если sps_affine_enabled_flag равен 1, компенсация движения аффинной модели может использоваться в видеопоследовательности для кодирования.

[0164] sps_affine_type_flag представляет то, может или нет компенсация движения шестипараметрической аффинной модели использоваться при интер-предсказании. Если sps_affine_type_flag равен 0, подавление выполняется таким образом, что она не представляет собой компенсацию движения шестипараметрической аффинной модели. Кроме того, cu_affine_type_flag не передается в CU-синтаксисе видеопоследовательности для кодирования. Если sps_affine_type_flag равен 1, компенсация движения шестипараметрической аффинной модели может использоваться в видеопоследовательности для кодирования. Когда sps_affine_type_flag не существует, он предположительно равен 0.

[0165] Когда P- или B-срез декодируется, если inter_affine_flag равен 1 в текущей целевой CU, компенсация движения аффинной модели используется для того, чтобы формировать сигнал предсказания с компенсацией движения текущей целевой CU. Если inter_affine_flag равен 0, аффинная модель не используется в текущей целевой CU. Когда inter_affine_flag не существует, он предположительно равен 0.

[0166] Когда P- или B-срез декодируется, если cu_affine_type_flag равен 1 в текущей целевой CU, компенсация движения шестипараметрической аффинной модели используется для того, чтобы формировать сигнал предсказания с компенсацией движения текущей целевой CU. Если cu_affine_type_flag равен 0, компенсация движения четырехпараметрической аффинной модели используется для того, чтобы формировать сигнал предсказания с компенсацией движения текущей целевой CU.

[0167] В компенсации движения аффинной модели, поскольку опорный индекс и вектор движения извлекаются в единицах субблоков, сигнал предсказания с компенсацией движения формируется с использованием опорного индекса или вектора движения, который представляет собой цель в единицах субблоков.

[0168] Четырехпараметрическая аффинная модель представляет собой режим, в котором вектор движения субблока извлекается из четырех параметров горизонтальных компонентов и вертикальных компонентов векторов движения двух управляющих точек, и компенсация движения выполняется в единицах субблоков.

[0169] Второй вариант осуществления

[0170] Далее описываются устройство кодирования кадров и устройство декодирования кадров согласно второму варианту осуществления. Хотя устройство кодирования кадров и устройство декодирования кадров согласно второму варианту осуществления имеют конфигурации, идентичные конфигурациям устройства кодирования кадров и устройства декодирования кадров согласно первому варианту осуществления, они отличаются в процедуре обработки модулей 345 и 445 извлечения потенциально подходящих вариантов объединения на основе предыстории. Процедура обработки модулей 345 и 445 извлечения потенциально подходящих вариантов объединения на основе предыстории является такой, как показано на блок-схеме последовательности операций способа по фиг. 39 вместо блок-схемы последовательности операций способа по фиг. 30, и различия между ними описываются.

[0171] Процесс извлечения потенциально подходящих вариантов объединения на основе предыстории второго варианта осуществления

В дальнейшем описывается процесс извлечения потенциально подходящих вариантов объединения на основе предыстории устройства кодирования кадров и устройства декодирования кадров согласно второму варианту осуществления со ссылкой на блок-схему последовательности операций способа по фиг. 39.

[0172] Второй вариант осуществления отличается от первого варианта осуществления тем, что пространственный потенциально подходящий вариант A1 объединения, извлекаемый из блока A1, смежного с левой стороной целевого блока кодирования, и пространственный потенциально подходящий вариант B1 объединения, извлекаемый из блока B1, смежного с верхней стороной этого, сравниваются только с количеством элементов, указываемым посредством значения hMvpIdxOffset смещения от элемента заднего конца списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории (самого последнего добавленного элемента). Блок-схема последовательности операций способа согласно второму варианту осуществления отличается от блок-схемы последовательности операций способа по фиг. 30, показывающего процесс извлечения потенциально подходящих вариантов объединения на основе предыстории устройства кодирования кадров и устройства декодирования кадров согласно первому варианту осуществления, тем, что этапы S2306, S2307 и S2309 по фиг. 30 изменяются на этапы S2326, S2327 и S2329 по фиг. 39, соответственно, и блок-схемы последовательности операций способа имеют идентичный процесс на других этапах. Во втором варианте осуществления, процесс инициализации сначала выполняется (этап S2301 по фиг. 39). Значение "ложь" задается в каждом из элементов от 0-ого элемента до (numCurrMergeCand-1)-ого элемента isPruned[i], и количество numCurrMergeCand элементов, зарегистрированных в текущем списке потенциально подходящих вариантов объединения, задается в переменной numOrigMergeCand.

[0173] Затем, начальное значение индекса hMvpIdx задается равным 1, и процесс добавления от этапа S2303 до этапа S2311 по фиг. 39 итеративно выполняется от начального значения до NumHmvpCand (этапы S2302-S2312 по фиг. 39). Если количество numCurrMergeCand элементов, зарегистрированных в текущем списке потенциально подходящих вариантов объединения, не меньше или равно (максимальное количество MaxNumMergeCand потенциально подходящих вариантов объединения - 1), потенциально подходящие варианты объединения добавляются во все элементы списка потенциально подходящих вариантов объединения, так что текущий процесс извлечения потенциально подходящих вариантов объединения на основе предыстории завершается ("Нет" на этапе S2303 по фиг. 39). "Нет"). Когда количество numCurrMergeCand элементов, зарегистрированных в текущем списке потенциально подходящих вариантов объединения, меньше или равно (максимальное количество MaxNumMergeCand потенциально подходящих вариантов объединения - 1) (этап S2303 по фиг. 39: "Да"), обработка с этапа S2304 выполняется.

[0174] Во-первых, значение "ложь" задается в sameMotion (этап S2304 по фиг. 39). Затем, когда индекс hMvpIdx меньше или равен предварительно определенному значению hMvpIdxOffset смещения, т.е. когда проверяется то, представляет собой элемент или нет элемент, который не включается в список потенциально подходящих вариантов объединения (этап S2305 по фиг. 39: "Да"), начальное значение индекса i задается равным 0, и обработка этапов S2327 и S2308 по фиг. 39 выполняется от начального значения до меньшего значения между 1, которое составляет предварительно определенное верхнее предельное значение, и numOrigMergeCand-1 (этапы S2326-S2329 по фиг. 39). Здесь, во втором варианте осуществления, пространственный потенциально подходящий вариант A1 объединения, извлекаемый из блока A1, смежного с левой стороной целевого блока кодирования, и пространственный потенциально подходящий вариант B1 объединения, смежный с его верхней стороной, сравниваются только с количеством элементов, указываемым посредством значения hMvpIdxOffset смещения от элемента заднего конца списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории (самого последнего добавленного элемента). Предварительно определенное верхнее предельное значение равно 1, поскольку пространственный потенциально подходящий вариант A1 объединения, извлекаемый из блока A1, смежного с левой стороной целевого блока кодирования, или пространственный потенциально подходящий вариант B1 объединения, смежный с его верхней стороной, с большой вероятностью должны храниться только в 0-ом и 1-ом элементах при подсчете с 0-ого элемента списка потенциально подходящих вариантов объединения. (NumHmvpCand-hMvpIdx)-ый элемент HmvpCandList[NumHmvpCand-hMvpIdx] при подсчете с 0-ого элемента списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории сравнивается с пространственными потенциально подходящими вариантами A1 и B1 объединения (этап S2327 по фиг. 39). Сравнение проводится относительно того, являются или нет идентичными значения всех компонентов, которые имеют потенциально подходящие варианты объединения (режима интер-предсказания, опорных индексов L0 и L1 и векторов движения L0 и L1). Здесь, идентичные значения между потенциально подходящими вариантами объединения указывают то, что значения всех компонентов, которые имеют потенциально подходящие варианты объединения (режима интер-предсказания, опорных индексов L0 и L1 и векторов движения L0 и L1), являются идентичными. Следовательно, когда i-ый элемент mergeCandList[i] при подсчете с 0-ого элемента списка потенциально подходящих вариантов объединения представляет собой пространственный потенциально подходящий вариант A1 объединения, извлекаемый из блока A1, смежного с левой стороной, или пространственный потенциально подходящий вариант B1 объединения, смежный с верхней стороной, и isPruned[i] представляет собой "ложь" в процессе сравнения этапа S2327, сравнение проводится относительно того, являются или нет идентичными значения всех компонентов, которые mergeCandList[i] и HmvpCandList[NumHmvpCand-hMvpIdx] имеют (режима интер-предсказания, опорных индексов L0 и L1 и векторов движения L0 и L1). Когда значения являются идентичными (этап S2327 по фиг. 39: "Да"), "истина" задается для sameMotion и для isPruned[i] (этап S2308 по фиг. 39). Кроме того, флаг isPruned[i] представляет собой флаг, указывающий то, что i-ый элемент при подсчете с 0-ого элемента списка потенциально подходящих вариантов объединения имеет значение, идентичное значению любого элемента в списке потенциально подходящих вариантов предикторов векторов движения на основе предыстории. Когда значения не являются идентичными (этап S2327 по фиг. 39: "Нет"), обработка этапа S2308 пропускается. Когда итеративный процесс от этапа S2326 до этапа S2329 по фиг. 39 завершается, сравнение проводится относительно того, представляет или нет sameMotion собой "ложь" (этап S2310 по фиг. 39). Когда sameMotion представляет собой "ложь" (этап S2310 по фиг. 39: "Да"), (NumHmvpCand-hMvpIdx)-ый элемент HmvpCandList[NumHmvpCand-hMvpIdx] при подсчете с 0-ого элемента списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории добавляется в numCurrMergeCand-ый элемент mergeCandList[numCurrMergeCand] списка потенциально подходящих вариантов объединения, и numCurrMergeCand постепенно увеличивается на 1 (этап S2311 по фиг. 39). Индекс hMvpIdx постепенно увеличивается на 1 (этап S2302 по фиг. 39), и итеративная обработка этапов S2302-S2312 по фиг. 39 выполняется.

[0175] Когда проверка всех элементов списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории завершается, или потенциально подходящие варианты объединения добавляются во все элементы списка потенциально подходящих вариантов объединения, процесс извлечения текущего потенциально подходящего варианта объединения на основе предыстории завершается.

[0176] Хотя во втором варианте осуществления описывается случай, в котором пространственные потенциально подходящие варианты A1 и B1 объединения, хранящиеся в списке потенциально подходящих вариантов объединения, сравниваются с элементами списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории, пространственные потенциально подходящие варианты A1 и B1 объединения могут храниться в запоминающем устройстве кроме списка потенциально подходящих вариантов объединения, и пространственные потенциально подходящие варианты A1 и B1 объединения, хранящиеся в запоминающем устройстве кроме списка потенциально подходящих вариантов объединения, могут сравниваться с элементами списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории.

[0177] Третий вариант осуществления

Далее описываются устройство кодирования кадров и устройство декодирования кадров согласно третьему варианту осуществления. Хотя устройство кодирования кадров и устройство декодирования кадров согласно третьему варианту осуществления имеют конфигурации, идентичные конфигурациям устройства кодирования кадров и устройства декодирования кадров согласно первому варианту осуществления, они отличаются в процедуре обработки проверки на идентичные элементы в процедуре обработки для инициализации и обновления списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории, предоставленного в запоминающем устройстве 111 для хранения информации кодирования стороны кодирования и запоминающем устройстве 205 для хранения информации кодирования стороны декодирования. Вместо блок-схемы последовательности операций способа по фиг. 27, которая представляет собой процедуру обработки проверки на идентичные элементы в процедуре обработки для инициализации и обновления списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории согласно первому варианту осуществления, процедура обработки проверки на идентичные элементы в процедуре обработки для инициализации и обновления списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории согласно третьему варианту осуществления является такой, как показано на блок-схеме последовательности операций способа по фиг. 40. Далее описываются вышеуказанные различия.

[0178] Процедура обработки проверки на идентичные элементы в процедуре обработки для инициализации и обновления списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории согласно третьему варианту осуществления

В дальнейшем описывается процедура обработки проверки на идентичные элементы в процедуре обработки для инициализации и обновления списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории в устройстве кодирования кадров и устройстве декодирования кадров согласно третьему варианту осуществления со ссылкой на блок-схему последовательности операций способа по фиг. 40.

[0179] В процессе обновления списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории, третий вариант осуществления отличается от первого варианта осуществления тем, что когда максимальное количество элементов добавляется в список HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории, т.е. когда текущее количество NumHmvpCand потенциально подходящих вариантов предикторов векторов движения на основе предыстории достигает максимального количества MaxNumHmvpCand потенциально подходящих вариантов предикторов векторов движения на основе предыстории, сравнение, делается только с элементами из первого элемента без проведения сравнения с элементом в начале, включенным в список потенциально подходящих вариантов предикторов векторов движения на основе предыстории, т.е. с 0-ым элементом (потенциально подходящим вариантом предиктора вектора движения на основе предыстории) при подсчете с 0-ого элемента. Элементы, включенные в список потенциально подходящих вариантов предикторов векторов движения на основе предыстории, включают в себя режим интер-предсказания, опорный индекс и вектор движения. Поскольку сравнение не проводится с элементом в начале, включенным в список потенциально подходящих вариантов предикторов векторов движения на основе предыстории, количество сравнений элементов ограничено максимальным (MaxNumHmvpCand-1), и максимальный объем обработки, ассоциированный со сравнением элементов, уменьшается. Блок-схема последовательности операций способа согласно третьему варианту осуществления отличается от блок-схемы последовательности операций способа по фиг. 27, показывающего процедуру обработки проверки на идентичные элементы в процедуре обработки для инициализации и обновления списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории согласно первому варианту осуществления, тем, что этапы S2122 и S2125 по фиг. 27 изменяются на этапы S2132 и S2135 по фиг. 40, соответственно, и блок-схемы последовательности операций способа имеют идентичный процесс на других этапах.

[0180] Кроме того, в третьем варианте осуществления, когда значение количества NumHmvpCand потенциально подходящих вариантов предикторов векторов движения на основе предыстории равно 0 (этап S2121 по фиг. 40: "Нет"), список HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории является пустым, и не присутствует идентичный потенциально подходящий вариант, так что этапы S2132-S2135 по фиг. 40 пропускаются, и процедура обработки проверки на идентичные элементы завершается. Когда значение количества NumHmvpCand потенциально подходящих вариантов предикторов векторов движения на основе предыстории равно 0 (этап S2121 по фиг. 40: "Да"), обработка этапа S2123 итеративно выполняется относительно индексов hMvpIdx предикторов векторов движения на основе предыстории от 0 или 1 до NumHmvpCand-1 (этапы S2132-S2135 по фиг. 40). Во-первых, когда текущее количество NumHmvpCand потенциально подходящих вариантов предикторов векторов движения на основе предыстории меньше максимального количества MaxNumHmvpCand потенциально подходящих вариантов предикторов векторов движения на основе предыстории, hMvpIdx задается равным 0, поскольку сравнение проводится с элементом в начале, включенным в список потенциально подходящих вариантов предикторов векторов движения на основе предыстории, т.е. с 0-ым элементом (потенциально подходящим вариантом предиктора вектора движения на основе предыстории) при подсчете с 0-ого элемента. С другой стороны, когда текущее количество NumHmvpCand потенциально подходящих вариантов предикторов векторов движения на основе предыстории достигает максимального количества MaxNumHmvpCand потенциально подходящих вариантов предикторов векторов движения на основе предыстории, hMvpIdx задается равным 1, поскольку сравнение не проводится с элементом в начале, включенным в список потенциально подходящих вариантов предикторов векторов движения на основе предыстории, т.е. с 0-ым элементом (потенциально подходящим вариантом предиктора вектора движения на основе предыстории) при подсчете с 0-ого элемента (этап S2132 по фиг. 40). Затем, сравнение проводится относительно того, является или нет hMvpIdx-ый элемент HmvpCandList[hMvpIdx] при подсчете с 0-ого элемента списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории идентичным потенциально подходящему варианту hMvpCand информации интер-предсказания цели регистрации (этап S2123 по фиг. 40). Когда они являются идентичными (этап S2123 по фиг. 40: "Да"), значение "истина" задается во флаге identicalCandExist, указывающем то, имеется или нет идентичный потенциально подходящий вариант, и значение hMvpIdx задается в индексе removeIdx цели удаления, и текущий процесс проверки на идентичные элементы завершается. Когда они не являются идентичными (этап S2123 по фиг. 40: "Нет"), hMvpIdx постепенно увеличивается на 1. Если индекс hMvpIdx предиктора вектора движения на основе предыстории меньше или равен NumHmvpCand-1, обработка с этапа S2123 выполняется (этапы S2132-S2135 по фиг. 40).

[0181] Четвертый вариант осуществления

Далее описываются устройство кодирования кадров и устройство декодирования кадров согласно четвертому варианту осуществления. Хотя устройство кодирования кадров и устройство декодирования кадров согласно четвертому варианту осуществления имеют конфигурации, идентичные конфигурациям устройства кодирования кадров и устройства декодирования кадров согласно четвертому варианту осуществления, они отличаются в процедуре обработки проверки на идентичные элементы в процедуре обработки для инициализации и обновления списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории, предоставленного в запоминающем устройстве 111 для хранения информации кодирования стороны кодирования и запоминающем устройстве 205 для хранения информации кодирования стороны декодирования. Вместо блок-схемы последовательности операций способа по фиг. 27, которая представляет собой процедуру обработки проверки на идентичные элементы в процедуре обработки для инициализации и обновления списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории согласно первому варианту осуществления, процедура обработки проверки на идентичные элементы в процедуре обработки для инициализации и обновления списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории согласно четвертому варианту осуществления является такой, как показано на блок-схеме последовательности операций способа по фиг. 41. Далее описываются вышеуказанные различия.

[0182] Процедура обработки проверки на идентичные элементы в процедуре обработки для инициализации и обновления списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории согласно четвертому варианту осуществления

В дальнейшем описывается процедура обработки проверки на идентичные элементы в процедуре обработки для инициализации и обновления списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории в устройстве кодирования кадров и устройстве декодирования кадров согласно четвертому варианту осуществления со ссылкой на блок-схему последовательности операций способа по фиг. 41.

[0183] Четвертый вариант осуществления отличается от первого варианта осуществления и третьего варианта осуществления тем, что сравнение проводится с элементами из последнего элемента списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории в порядке убывания в процессе обновления списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории. Дополнительно, в процессе обновления списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории, четвертый вариант осуществления отличается от первого варианта осуществления тем, что когда максимальное количество элементов добавляется в список HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории, сравнение проводится только с элементами из первого элемента без проведения сравнения с элементом в начале, включенным в список потенциально подходящих вариантов предикторов векторов движения на основе предыстории, т.е. с 0-ым элементом при подсчете с 0-ого элемента. Элементы, включенные в список потенциально подходящих вариантов предикторов векторов движения на основе предыстории, включают в себя режим интер-предсказания, опорный индекс и вектор движения. Поскольку сравнение не проводится с элементом в начале, включенным в список потенциально подходящих вариантов предикторов векторов движения на основе предыстории, количество сравнений элементов ограничено максимальным (MaxNumHmvpCand-1), и максимальный объем обработки, ассоциированный со сравнением элементов, уменьшается.

[0184] Кроме того, в четвертом варианте осуществления, когда значение количества NumHmvpCand потенциально подходящих вариантов предикторов векторов движения на основе предыстории равно 0 (этап S2151 по фиг. 41: "Нет"), список HmvpCandList потенциально подходящих вариантов предикторов векторов движения на основе предыстории является пустым, и не присутствует идентичный потенциально подходящий вариант, так что этапы S2152-S2155 по фиг. 41 пропускаются, и процедура обработки проверки на идентичные элементы завершается. Когда значение количества NumHmvpCand потенциально подходящих вариантов предикторов векторов движения на основе предыстории превышает 0 (этап S2152 по фиг. 41: "Да"), обработка этапа S2153 итеративно выполняется относительно индексов i от 1 до меньшего значения между максимальным количеством MaxNumHmvpCand-1 потенциально подходящих вариантов предикторов векторов движения на основе предыстории и количеством NumHmvpCand потенциально подходящих вариантов предикторов векторов движения на основе предыстории (этапы S2152-S2155 по фиг. 41). Во-первых, сравнение проводится относительно того, является или нет NumHmvpCand-i-ый элемент HmvpCandList[NumHmvpCand-i] при подсчете с 0-ого элемента списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории идентичным потенциально подходящему варианту hMvpCand информации интер-предсказания цели регистрации (этап S2153 по фиг. 41). Когда NumHmvpCand-i-ый элемент HmvpCandList[NumHmvpCand-i] является идентичным потенциально подходящему варианту hMvpCand информации интер-предсказания (этап S2153 по фиг. 41: "Да"), значение "истина" задается во флаге identicalCandExist, указывающем то, имеется или нет идентичный потенциально подходящий вариант, и значение NumHmvpCand-i задается в индексе removeIdx цели удаления, и текущий процесс проверки на идентичные элементы завершается (этап S2154 по фиг. 41). Когда NumHmvpCand-i-ый элемент HmvpCandList[NumHmvpCand-i] не является идентичным потенциально подходящему варианту hMvpCand информации интер-предсказания (этап S2153 по фиг. 41: "Нет"), i постепенно увеличивается на 1. Когда i меньше или равен меньшему значению между максимальным количеством MaxNumHmvpCand-1 потенциально подходящих вариантов предикторов векторов движения на основе предыстории и количеством NumHmvpCand потенциально подходящих вариантов предикторов векторов движения на основе предыстории, обработка с этапа S2153 выполняется (этапы S2152-S2155 по фиг. 41). Когда индекс i равен 1, который что составляет начальное значение, NumHmvpCand-i-ый элемент HmvpCandList[NumHmvpCand-i], подсчитанный с 0-ого элемента списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории, указывает последний элемент, зарегистрированный в списке потенциально подходящих вариантов предикторов векторов движения на основе предыстории. Элементы списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории показаны в порядке убывания по мере того, как индекс i постепенно увеличивается на 1. Посредством задания индекса i равным максимуму (MaxNumHmvpCand-1), сравнение не проводится с элементом HMVPCandList[0] в начале потенциально подходящего варианта предиктора вектора движения на основе предыстории.

[0185] Множество вышеописанных вариантов осуществления могут комбинироваться.

[0186] Во всех вариантах осуществления, описанных выше, поток битов, выводимый посредством устройства кодирования кадров, имеет конкретный формат данных таким образом, что поток битов может декодироваться в соответствии со способом кодирования, используемым в варианте осуществления. Кроме того, устройство декодирования кадров, соответствующее устройству кодирования кадров, может декодировать поток битов конкретного формата данных.

[0187] Когда проводная или беспроводная сеть используется для того, чтобы обмениваться потоком битов между устройством кодирования кадров и устройством декодирования кадров, поток битов может преобразовываться в формат данных, подходящий для формы передачи тракта связи, и передаваться. В этом случае, предоставляются передающее устройство для преобразования потока битов, выводимого из устройства кодирования кадров, в кодированные данные формата данных, подходящего для формы передачи тракта связи, и передачи кодированных данных в сеть, и приемное устройство для приема кодированных данных из сети, восстановления кодированных данных в поток битов и предоставления потока битов в устройство декодирования кадров. Передающее устройство включает в себя запоминающее устройство, которое буферизует поток битов, выводимый посредством устройства кодирования кадров, модуль обработки пакетов, который пакетизирует поток битов, и передающий модуль, который передает пакетизированные кодированные данные через сеть. Приемное устройство включает в себя приемный модуль, который принимает пакетизированные кодированные данные через сеть, запоминающее устройство, которое буферизует принимаемые кодированные данные, и модуль обработки пакетов, который формирует поток битов посредством выполнения обработки пакетов для кодированных данных и предоставляет поток битов в устройство декодирования кадров.

[0188] Кроме того, устройство отображения может предоставляться посредством добавления модуля отображения, который отображает кадр, декодированный посредством устройства декодирования кадров, в конфигурацию. В этом случае, модуль отображения считывает декодированный сигнал кадров, сформированный посредством модуля 207 наложения сигналов кадров для декодирования и хранящийся в запоминающем устройстве 208 декодированных кадров, и отображает декодированный сигнал кадров на экране.

[0189] Кроме того, устройство формирования изображений может предоставляться посредством добавления модуля формирования изображений, который вводит захваченный кадр в устройство кодирования кадров, в конфигурацию. В этом случае, модуль формирования изображений вводит захваченный сигнал кадров в модуль 101 разбиения блоков.

[0190] Фиг. 37 показывает пример аппаратной конфигурации устройства кодирования/декодирования согласно настоящему варианту осуществления. Устройство кодирования/декодирования включает в себя конфигурацию устройства кодирования кадров и устройства декодирования кадров согласно варианту осуществления настоящего изобретения. Связанное устройство 9000 кодирования/декодирования включает в себя CPU 9001, IC 9002 кодека, интерфейс 9003 ввода-вывода, запоминающее устройство 9004, накопитель 9005 на оптических дисках, сетевой интерфейс 9006 и видеоинтерфейс 9009, и соответствующие части соединяются посредством шины 9010.

[0191] Модуль 9007 кодирования кадров и модуль 9008 декодирования кадров типично реализуются в качестве IC 9002 кодека. Процесс кодирования кадров устройства кодирования кадров согласно варианту осуществления настоящего изобретения выполняется посредством модуля 9007 кодирования кадров, и процесс декодирования кадров в устройстве декодирования кадров согласно варианту осуществления настоящего изобретения выполняется посредством модуля 9008 декодирования кадров. Интерфейс 9003 ввода-вывода реализуется посредством, например, USB-интерфейса и соединяется с внешней клавиатурой 9104, мышью 9105 и т.п. CPU 9001 управляет устройством 9000 кодирования/декодирования таким образом, что требуемая пользователем операция выполняется на основе пользовательской операции, вводимой через интерфейс 9003 ввода-вывода. Пользовательские операции с использованием клавиатуры 9104, мыши 9105 и т.п. включают в себя выбор функции кодирования или декодирования, которая должна выполняться, задание качества кодирования, указание назначения ввода-вывода потока битов, указание назначения ввода-вывода кадра и т.п.

[0192] Когда пользователю требуется операция воспроизведения кадра, записанного на дисковом носителе 9100 записи, накопитель 9005 на оптических дисках считывает поток битов из дискового носителя 9100 записи, который вставлен, и передает считываемый поток битов в модуль 9008 декодирования кадров IC 9002 кодека через шину 9010. Модуль 9008 декодирования кадров выполняет процесс декодирования кадров для входного потока битов в устройстве декодирования кадров согласно варианту осуществления настоящего изобретения и передает декодированный кадр на внешний монитор 9103 через видеоинтерфейс 9009. Устройство 9000 кодирования/декодирования включает в себя сетевой интерфейс 9006 и может соединяться с внешним сервером 9106 распространения и портативным терминалом 9107 через сеть 9101. Когда пользователь хочет воспроизводить кадр, записанный на сервере 9106 распространения или в портативном терминале 9107, вместо кадра, записанного на дисковом носителе 9100 записи, сетевой интерфейс 9006 получает поток битов из сети 9101 вместо считывания потока битов из входного дискового носителя 9100 записи. Когда пользователь хочет воспроизводить кадр, записанный в запоминающем устройстве 9004, процесс декодирования кадров в устройстве декодирования кадров согласно варианту осуществления настоящего изобретения выполняется для потока битов, записанного в запоминающем устройстве 9004.

[0193] Когда пользователь хочет выполнять операцию кодирования кадра, захваченного посредством внешней камеры 9102 и записи кодированного кадра в запоминающем устройстве 9004, видеоинтерфейс 9009 вводит кадр из камеры 9102 и передает кадр в модуль 9007 кодирования кадров IC 9002 кодека через шину 9010. Модуль 9007 кодирования кадров выполняет процесс кодирования кадров для ввода кадра через видеоинтерфейс 9009 в устройстве кодирования кадров согласно варианту осуществления настоящего изобретения, чтобы создавать поток битов. Затем поток битов передается в запоминающее устройство 9004 через шину 9010. Когда пользователь хочет записывать поток битов на дисковом носителе 9100 записи вместо запоминающего устройства 9004, накопитель 9005 на оптических дисках записывает поток битов на дисковый носитель 9100 записи, который вставлен.

[0194] Также можно реализовывать аппаратную конфигурацию, которая включает в себя устройство кодирования кадров без включения устройства декодирования кадров, либо аппаратную конфигурацию, которая включает в себя устройство декодирования кадров без включения устройства кодирования кадров. Такая аппаратная конфигурация реализуется, например, посредством замены IC 9002 кодека модулем 9007 кодирования кадров или модулем 9008 декодирования кадров.

[0195] Вышеуказанные процессы, связанные с кодированием и декодированием, могут реализовываться как устройство передачи, хранения и приема данных с использованием аппаратных средств и реализовываться посредством микропрограммного обеспечения, хранящегося в постоянном запоминающем устройстве (ROM), во флэш-памяти и т.п., либо как программное обеспечение компьютера и т.п. Микропрограммно-реализованная программа и программно-реализованная программа для нее могут предоставляться посредством записи программ на носителе записи, допускающем считывание посредством компьютера и т.п., либо могут предоставляться из сервера через проводную или беспроводную сеть, либо могут предоставляться в качестве широковещательных передач данных согласно наземной или спутниковой цифровой широковещательной передаче.

[0196] Настоящее изобретение описывается выше на основе вариантов осуществления. Варианты осуществления представляют собой примеры, и специалисты в данной области техники должны понимать, что различные модификации являются возможными в комбинациях соответствующих компонентов и процессов обработки, и такие модификации находятся в пределах объема настоящего изобретения.

Пояснение номеров ссылок

100 - устройство кодирования кадров

101 - модуль разбиения блоков

102 - модуль интер-предсказания

103 - модуль интра-предсказания

104 - запоминающее устройство декодированных кадров

105 - модуль определения способа предсказания

106 - модуль формирования остатков

107 - модуль ортогонального преобразования/квантования

108 - модуль кодирования битовых строк

109 - модуль обратного квантования/обратного ортогонального преобразования

110 - модуль наложения сигналов кадров для декодирования

111 - запоминающее устройство для хранения информации кодирования

200 - устройство декодирования кадров

201 - модуль декодирования битовых строк

202 - модуль разбиения блоков

203 - модуль интер-предсказания

204 - модуль интра-предсказания

205 - запоминающее устройство для хранения информации кодирования

206 - модуль обратного квантования/обратного ортогонального преобразования

207 - модуль наложения сигналов кадров для декодирования

208 - запоминающее устройство декодированных кадров.

1. Устройство кодирования кадров для кодирования движущегося кадра с использованием интер-предсказания на основе информации интер-предсказания в единицах блоков, причем устройство кодирования кадров содержит:

модуль хранения информации кодирования, выполненный с возможностью хранить информацию интер-предсказания, используемую при интер-предсказании кодированного блока, в списке потенциально подходящих вариантов предикторов векторов движения на основе предыстории;

модуль извлечения пространственных потенциально подходящих вариантов объединения, выполненный с возможностью извлекать пространственный потенциально подходящий вариант объединения из информации интер-предсказания блока, пространственно соседнего с целевым блоком кодирования; и

модуль извлечения потенциально подходящих вариантов объединения на основе предыстории, выполненный с возможностью извлекать потенциально подходящий вариант объединения на основе предыстории из информации интер-предсказания, хранящейся в списке потенциально подходящих вариантов предикторов векторов движения на основе предыстории,

при этом модуль извлечения потенциально подходящих вариантов объединения на основе предыстории сравнивает предварительно определенное количество элементов информации интер-предсказания от добавленного самым последним элемента списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории с информацией интер-предсказания пространственного потенциально подходящего варианта объединения и задает информацию интер-предсказания в качестве потенциально подходящего варианта объединения на основе предыстории, когда значение информации интер-предсказания отличается, и после этого задает информацию интер-предсказания, хранящуюся перед упомянутым предварительно определенным количеством элементов информации интер-предсказания, в качестве потенциально подходящего варианта объединения на основе предыстории без проведения сравнения с информацией интер-предсказания пространственного потенциально подходящего варианта объединения.

2. Способ кодирования кадров для кодирования движущегося кадра с использованием интер-предсказания на основе информации интер-предсказания в единицах блоков, при этом способ кодирования кадров содержит:

этап сохранения информации кодирования, на котором сохраняют информацию интер-предсказания, используемую при интер-предсказании кодированного блока, в списке потенциально подходящих вариантов предикторов векторов движения на основе предыстории;

этап извлечения пространственных потенциально подходящих вариантов объединения, на котором извлекают пространственный потенциально подходящий вариант объединения из информации интер-предсказания блока, пространственно соседнего с целевым блоком кодирования; и

этап извлечения потенциально подходящих вариантов объединения на основе предыстории, на котором извлекают потенциально подходящий вариант объединения на основе предыстории из информации интер-предсказания, хранящейся в списке потенциально подходящих вариантов предикторов векторов движения на основе предыстории,

при этом этап извлечения потенциально подходящих вариантов объединения на основе предыстории включает в себя этап, на котором сравнивают предварительно определенное количество элементов информации интер-предсказания от добавленного самым последним элемента списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории с информацией интер-предсказания пространственного потенциально подходящего варианта объединения и задают информацию интер-предсказания в качестве потенциально подходящего варианта объединения на основе предыстории, когда значение информации интер-предсказания отличается, и после этого задают информацию интер-предсказания, хранящуюся перед упомянутым предварительно определенным количеством элементов информации интер-предсказания, в качестве потенциально подходящего варианта объединения на основе предыстории без проведения сравнения с информацией интер-предсказания пространственного потенциально подходящего варианта объединения.

3. Устройство декодирования кадров для декодирования кодированных битовых строк, в котором движущийся кадр кодирован с использованием интер-предсказания в единицах блоков, причем устройство декодирования кадров содержит:

модуль хранения информации кодирования, выполненный с возможностью хранить информацию интер-предсказания, используемую при интер-предсказании декодированного блока, в списке потенциально подходящих вариантов предикторов векторов движения на основе предыстории;

модуль извлечения пространственных потенциально подходящих вариантов объединения, выполненный с возможностью извлекать пространственный потенциально подходящий вариант объединения из информации интер-предсказания блока, пространственно соседнего с целевым блоком декодирования; и

модуль извлечения потенциально подходящих вариантов объединения на основе предыстории, выполненный с возможностью извлекать потенциально подходящий вариант объединения на основе предыстории из информации интер-предсказания, хранящейся в списке потенциально подходящих вариантов предикторов векторов движения на основе предыстории,

при этом модуль извлечения потенциально подходящих вариантов объединения на основе предыстории сравнивает предварительно определенное количество элементов информации интер-предсказания от добавленного самым последним элемента списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории с информацией интер-предсказания пространственного потенциально подходящего варианта объединения и задает информацию интер-предсказания в качестве потенциально подходящего варианта объединения на основе предыстории, когда значение информации интер-предсказания отличается, и после этого задает информацию интер-предсказания, хранящуюся перед упомянутым предварительно определенным количеством элементов информации интер-предсказания, в качестве потенциально подходящего варианта объединения на основе предыстории без проведения сравнения с информацией интер-предсказания пространственного потенциально подходящего варианта объединения.

4. Способ декодирования кадров для декодирования кодированных битовых строк, в котором движущийся кадр кодирован с использованием интер-предсказания в единицах блоков, при этом способ декодирования кадров содержит:

этап сохранения информации кодирования, на котором сохраняют информацию интер-предсказания, используемую при интер-предсказании декодированного блока, в списке потенциально подходящих вариантов предикторов векторов движения на основе предыстории;

этап извлечения пространственных потенциально подходящих вариантов объединения, на котором извлекают пространственный потенциально подходящий вариант объединения из информации интер-предсказания блока, пространственно соседнего с целевым блоком декодирования; и

этап извлечения потенциально подходящих вариантов объединения на основе предыстории, на котором извлекают потенциально подходящий вариант объединения на основе предыстории из информации интер-предсказания, хранящейся в списке потенциально подходящих вариантов предикторов векторов движения на основе предыстории,

при этом этап извлечения потенциально подходящих вариантов объединения на основе предыстории включает в себя этап, на котором сравнивают предварительно определенное количество элементов информации интер-предсказания от добавленного самым последним элемента списка потенциально подходящих вариантов предикторов векторов движения на основе предыстории с информацией интер-предсказания пространственного потенциально подходящего варианта объединения и задают информацию интер-предсказания в качестве потенциально подходящего варианта объединения на основе предыстории, когда значение информации интер-предсказания отличается, и после этого задают информацию интер-предсказания, хранящуюся перед упомянутым предварительно определенным количеством элементов информации интер-предсказания, в качестве потенциально подходящего варианта объединения на основе предыстории без проведения сравнения с информацией интер-предсказания пространственного потенциально подходящего варианта объединения.



 

Похожие патенты:

Группа изобретений относится к технологиям обработки видеоданных. Техническим результатом является повышение эффективности кодирования/декодирования видеоданных за счет снижения объема кодируемых/декодируемых данных.

Изобретение относится к средствам для кодирования и декодирования движущихся кадров. Технический результат заключается в повышении эффективности кодирования посредством выполнения разбиения блоков.

Изобретение относится к способам кодирования и декодирования видеоданных и, в частности, относится к способам внутреннего предсказания с использованием перекрестной компоненты линейной модели (CCLM). Техническим результатом является повышение качества кодированного изображения.

Изобретение относится к средствам для передискретизации опорного изображения со смещением в битовом потоке видеоданных. Технический результат заключается в повышении эффективности декодирования видеоданных.

Изобретение относится к средствам для кодирования видео. Технический результат заключается в повышении эффективности предсказания изображений.

Изобретение относится к области технологий кодирования видеоизображений и/или статических изображений. Предложено устройство и способ фильтрации восстановленных изображений, в частности видеоизображений, с помощью адаптивных мультипликативных фильтров.

Изобретение относится к области вычислительной техники для обмена данными изображения. Технический результат заключается в улучшении обмена данными изображения на основе нелинейности восприятия яркости между разными возможностями отображения.

Изобретение относится к средствам для кодирования видео. Технический результат заключается в повышении эффективности кодирования видео.

Изобретение относится к средствам для кодирования и декодирования видеоизображений. Технический результат заключается в повышении эффективности кодирования видеоизображений.

Изобретение относится к средствам для обработки изображений. Технический результат заключается в повышении эффективности кодирования изображений за счет понижения объема памяти используемого для хранения временных векторов движения (MV) при обеспечении требуемой точности MV.

Изобретение относится к технике разделения изображения на блоки и выполнения кодирования и декодирования для каждого из разделенных блоков. Техническим результатом является повышение эффективности кодирования. Предложены устройства и способы кодирования и декодирования изображения, которые разделяют изображение на блоки и выполняют кодирование и декодирование для каждого из разделенных блоков. Блок разделения на блоки первичного сигнала разделяет первичный сигнал изображения на прямоугольники, имеющие предварительно заданный размер, и генерирует блок первичного сигнала. Блок разделения на блоки вторичного сигнала разделяет вторичный сигнал изображения на прямоугольники, имеющие предварительно заданный размер, и генерирует блок вторичного сигнала. Блок предсказания первичного сигнала предсказывает первичный сигнал, а блок предсказания вторичного сигнала предсказывает вторичный сигнал. Первичный сигнал представляет собой сигнал яркости, а вторичный сигнал представляет собой сигнал цветоразности. В случае внутрикадрового предсказания блок первичного сигнала и блок вторичного сигнала разделяются на блоки независимо друг от друга, а в случае межкадрового предсказания блок первичного сигнала и блок вторичного сигнала разделяются на блоки в совокупности Блок предсказания вторичного сигнала может выполнять внутрикадровое предсказание компонента, заключающееся в предсказании вторичного сигнала из декодированного первичного сигнала, и это внутрикадровое предсказание компонента ограничивается, если размер блока первичного сигнала больше чем или равен предварительно заданному размеру.
Наверх