СПОСОБ И ОБОРУДОВАНИЕ ВЗАИМНОГО ПРОГНОЗИРОВАНИЯ, ПОТОК БИТОВ И ЭНЕРГОНЕЗАВИСИМЫЙ НОСИТЕЛЬ ХРАНЕНИЯ Российский патент 2023 года по МПК H04N19/503 H04N19/52 H04N19/105 H04N19/176 

Описание патента на изобретение RU2787885C2

[0001] Данная заявка притязает на приоритет заявки на патент (Китай) номер 201811530481.1, поданной 13 декабря 2018 года и озаглавленной "VIDEO ENCODER, VIDEO DECODER AND CORRESPONDING METHOD", которая полностью содержится в данном документе по ссылке. Помимо этого, данная заявка притязает на приоритет заявки на патент (Китай) номер 201910325612.0, поданной 22 апреля 2019 года и озаглавленной "INTER PREDICTION METHOD AND APPARATUS", которая полностью содержится в данном документе по ссылке.

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

[0002] Данная заявка относится к области техники кодирования и декодирования видео, а в частности, к способу и оборудованию взаимного прогнозирования.

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

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

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

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

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

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

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

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

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

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

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

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

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

[0014] В возможной реализации, предварительно установленная ширина разбиения изображений равна 64, 32 или 16, и предварительно установленная высота разбиения изображений равна 64, 32 или 16. Таким образом, размер определенного первого блока изображения может уменьшаться согласно ограничениям по предварительно установленной ширине разбиения изображений и предварительно установленной высоте разбиения изображений.

[0015] В возможной реализации, базовая единица обработки представляет собой матрицу выборок 4×4.

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

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

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

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

[0020] Согласно пятому аспекту, эта заявка предоставляет микросхему. Микросхема включает в себя программируемую логическую схему и/или программную инструкцию. Когда микросхема выполняется, способ в первом аспекте или в любой возможной реализации первого аспекта реализуется.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[0035] В осуществимой реализации шестого аспекта, размер базовой единицы обработки составляет 4×4.

[0036] В осуществимой реализации шестого аспекта, ширина виртуальной конвейерной единицы данных составляет W, высота виртуальной конвейерной единицы данных составляет H, и размер расширенной матрицы прогнозирования составляет (W+n+2)x(H+n+2). Соответственно, размер матрицы горизонтальных прогнозных градиентов составляет (W+n)x(H+n), и размер матрицы вертикальных прогнозных градиентов составляет (W+n)x(H+n), где W и H являются положительными целыми числами, и n является четным числом.

[0037] В осуществимой реализации шестого аспекта, n равен 0, 2 или -2.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[0053] В осуществимой реализации седьмого аспекта, размер базовой единицы обработки составляет 4×4.

[0054] В осуществимой реализации седьмого аспекта, ширина виртуальной конвейерной единицы данных составляет W, высота виртуальной конвейерной единицы данных составляет H, и размер расширенной матрицы прогнозирования составляет (W+n+2)x(H+n+2). Соответственно, размер матрицы горизонтальных прогнозных градиентов составляет (W+n)x(H+n), и размер матрицы вертикальных прогнозных градиентов составляет (W+n)x(H+n), где W и H являются положительными целыми числами, и n является четным числом.

[0055] В осуществимой реализации седьмого аспекта, n равен 0, 2 или -2.

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

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

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

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

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

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

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

[0062] Фиг. 1A является блок-схемой примера системы 10 кодирования видео согласно варианту осуществления этой заявки;

[0063] Фиг. 1B является блок-схемой примера системы 40 кодирования видео согласно варианту осуществления этой заявки;

[0064] Фиг. 2 является блок-схемой примерной структуры кодера 20 согласно варианту осуществления этой заявки;

[0065] Фиг. 3 является блок-схемой примерной структуры декодера 30 согласно варианту осуществления этой заявки;

[0066] Фиг. 4 является блок-схемой примера устройства 400 кодирования видео согласно варианту осуществления этой заявки;

[0067] Фиг. 5 является блок-схемой другого примера оборудования кодирования или оборудования декодирования согласно варианту осуществления этой заявки;

[0068] Фиг. 6 является принципиальной схемой возможного варианта местоположения информации движения согласно варианту осуществления этой заявки;

[0069] Фиг. 7 является принципиальной схемой, в которой информация движения используется для взаимного прогнозирования согласно варианту осуществления этой заявки;

[0070] Фиг. 8 является принципиальной схемой двунаправленного прогнозирования со взвешиванием согласно варианту осуществления этой заявки;

[0071] Фиг. 9 является принципиальной схемой дополнения до CU-границы согласно варианту осуществления этой заявки;

[0072] Фиг. 10 является принципиальной схемой VPDU-разбиения согласно варианту осуществления этой заявки;

[0073] Фиг. 11 является принципиальной схемой недопустимого VPDU-разбиения согласно варианту осуществления этой заявки;

[0074] Фиг. 12 является блок-схемой последовательности операций способа взаимного прогнозирования согласно варианту осуществления этой заявки;

[0075] Фиг. 13 является другой принципиальной схемой, в которой информация движения используется для взаимного прогнозирования согласно варианту осуществления этой заявки;

[0076] Фиг. 14 является блок-схемой последовательности операций другого способа взаимного прогнозирования согласно варианту осуществления этой заявки;

[0077] Фиг. 15 является другой принципиальной схемой, в которой информация движения используется для взаимного прогнозирования согласно варианту осуществления этой заявки;

[0078] Фиг. 16A и фиг. 16B являются блок-схемой последовательности операций другого способа взаимного прогнозирования согласно варианту осуществления этой заявки;

[0079] Фиг. 17 является блок-схемой последовательности операций способа согласно варианту осуществления этой заявки;

[0080] Фиг. 18 является структурной блок-схемой оборудования взаимного прогнозирования согласно варианту осуществления этой заявки; и

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

Подробное описание вариантов осуществления

[0082] Далее описываются варианты осуществления этой заявки со ссылкой на прилагаемые чертежи в вариантах осуществления этой заявки. В нижеприведенном описании, следует обратиться к прилагаемым чертежам, которые составляются часть этого раскрытия сущности и показывают, в качестве иллюстрации, конкретные аспекты вариантов осуществления настоящего изобретения или конкретные аспекты, в которых могут использоваться варианты осуществления настоящего изобретения. Следует понимать, что варианты осуществления настоящего изобретения могут использоваться в других аспектах и могут включать в себя структурные или логические изменения, не проиллюстрированные на прилагаемых чертежах. Следовательно, нижеприведенное подробное описание не должно истолковываться в качестве ограничения, и объем настоящего изобретения задается посредством прилагаемой формулы изобретения. Например, следует понимать, что раскрытый контент со ссылкой на описанный способ также может применяться к соответствующему устройству или системе, выполненному с возможностью осуществлять способ, и наоборот. Например, если один или более конкретных этапов способа описываются, соответствующее устройство может включать в себя один или более блоков, таких как функциональные блоки для выполнения описанных одного или более этапов способа (например, один блок, выполняющий один или более этапов, либо множество блоков, каждый из которых выполняет один или более из множества этапов), даже если такие один или более блоков не описываются или не иллюстрируются явно на прилагаемых чертежах. Помимо этого, например, если конкретное оборудование описывается на основе одного или более блоков, таких как функциональные блоки, соответствующий способ может включать в себя один этап для выполнения функциональности одного или более блоков (например, один этап для выполнения функциональности одного или более блоков либо множество этапов, каждый из которых используется для того, чтобы выполнять функциональность одного или более из множества блоков), даже если такие один или более этапов не описываются или не иллюстрируются явно на прилагаемых чертежах. Дополнительно, следует понимать, что признаки различных примерных вариантов осуществления и/или аспектов, описанных в этом подробном описании, могут комбинироваться между собой, если прямо не указано иное.

[0083] Технические решения в вариантах осуществления этой заявки могут не только применяться к стандарту кодирования существующего видео (например, к такому стандарту, как H.264 или стандарт высокоэффективного кодирования видео (стандарт высокоэффективного кодирования видео, HEVC)), но также и могут применяться к будущему стандарту кодирования видео (например, к H.266-стандарту). Термины, используемые в вариантах осуществления этой заявки, используются только пояснять конкретные варианты осуществления этой заявки и не имеют намерение ограничивать эту заявку. Далее сначала кратко описываются некоторые связанные понятия в вариантах осуществления этой заявки.

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

[0085] Видеопоследовательность включает в себя последовательность изображений (изображение), изображение дополнительно разбивается на срезы (срез), и срез дополнительно разбивается на блоки (блок). Кодирование видео выполняется посредством блока. В некоторых новых стандартах кодирования видео, понятие "блок" дополнительно расширяется. Например, макроблок (макроблок, MB) вводится в H.264-стандарте. Макроблок дополнительно может разбиваться на множество блоков прогнозирования (сегмент), которые могут использоваться для прогнозирующего кодирования. В HEVC-стандарте, используются такие базовые понятия, как единица кодирования (единица кодирования, CU), единица прогнозирования (единица прогнозирования, PU) и единица преобразования (единица преобразования, TU), множество единиц блоков функционально получаются посредством разбиения, и совершенно новая структура на основе дерева используется для описания. Например, CU может разбиваться на меньшие CU на основе дерева квадрантов, и меньшая CU дополнительно может разбиваться, чтобы формировать структуру в виде дерева квадрантов. CU представляет собой базовую единицу для разбиения и кодирования кодированного изображения. PU и TU также имеют аналогичные древовидные структуры. PU может соответствовать прогнозному блоку и представляет собой базовую единицу для прогнозирующего кодирования. CU дополнительно разбивается на множество PU на основе шаблона разбиения. TU может соответствовать блоку преобразования и представляет собой базовую единицу для преобразования остатка прогнозирования. Тем не менее, CU, PU и TU, по сути, концептуально представляют собой блоки (или блоки изображения).

[0086] Например, в HEVC, единица дерева кодирования (единица дерева кодирования, CTU) разбивается на множество CU посредством использования структуры в виде дерева квадрантов, обозначаемой в качестве дерева кодирования. Определяется то, кодируется область изображения через межкадровое (временное) или через внутрикадровое (пространственное) прогнозирование на уровне CU. Каждая CU дополнительно может разбиваться на одну, две или четыре PU на основе типа PU-разбиения. Идентичный процесс прогнозирования применяется в одной PU, и связанная информация передается в декодер на основе PU. После получения остаточного блока посредством применения процесса прогнозирования на основе типа PU-разбиения, CU может сегментироваться на единицу преобразования (единицу преобразования, TU) на основе другой структуры в виде дерева квадрантов, аналогичной дереву кодирования, используемому для CU. В новейшей разработке технологий сжатия видео, кадр сегментируется через дерево квадрантов плюс двоичное дерево (дерево квадрантов и двоичное дерево, QTBT), чтобы сегментировать блок кодирования. В блочной QTBT-структуре, CU может быть квадратной или прямоугольной.

[0087] В этом подробном описании, для простоты описания и понимания, блок подлежащего кодированию изображения в текущем кодированном изображении может называться "текущим блоком". Например, во время кодирования, текущий блок представляет собой блок, который кодируется, а во время декодирования, текущий блок представляет собой блок, который декодируется. Декодированный блок изображения, в опорном изображении, используемый для того, чтобы прогнозировать текущий блок, называется "опорным блоком". Другими словами, опорный блок представляет собой блок, который предоставляет опорный сигнал для текущего блока, и опорный сигнал представляет выборочное значение в блоке изображения. Блок, который предоставляет прогнозный сигнал для текущего блока в опорном изображении, может называться "блоком прогнозирования", и прогнозный сигнал представляет выборочное значение, значение дискретизации или сигнал дискретизации в блоке прогнозирования. Например, после прохождения по множеству опорных блоков, оптимальный опорный блок находится, и оптимальный опорный блок предоставляет прогнозирование для текущего блока, и этот блок называется "блоком прогнозирования".

[0088] В случае кодирования видео без потерь, исходное видеоизображение может восстанавливаться, т.е. восстановленное видеоизображение имеет качество, идентичное качеству исходного видеоизображения (при условии, что потери при передаче или другие потери данных не возникают во время хранения или передачи). В случае кодирования видео с потерями, дополнительное сжатие выполняется через квантование и т.п., чтобы уменьшать объем данных, требуемых для представления видеоизображения, и видеоизображение не может полностью восстанавливаться на стороне декодера, т.е. качество восстановленного видеоизображения хуже качества исходного видеоизображения.

[0089] Несколько H.261-стандартов кодирования видео относятся к "гибридному кодированию видео с потерями" (т.е. пространственное и временное прогнозирование в выборочной области комбинируется с кодированием с двумерным преобразованием для применения квантования в области преобразования). Каждое изображение в видеопоследовательности обычно сегментируется на набор неперекрывающихся блоков, и кодирование обычно выполняется на уровне блока. Конкретно, на стороне кодера видео обычно обрабатывается, т.е. кодируется на уровне блока (видеоблока). Например, блок прогнозирования формируется через пространственное (внутрикадровое) прогнозирование и временное (межкадровое) прогнозирование, блок прогнозирования вычитается из текущего блока (блока, который обрабатывается или должен обрабатываться) для того, чтобы получать остаточный блок, и остаточный блок преобразуется в области преобразования и квантуется для того, чтобы уменьшать объем данных, которые должны передаваться (сжиматься). На стороне декодера, обратная обработка относительно кодера применяется к кодированному или сжатому блоку, чтобы восстанавливать текущий блок для представления. Помимо этого, кодер дублирует контур обработки декодера, так что кодер и декодер формируют идентичное прогнозирование (например, внутреннее прогнозирование и взаимное прогнозирование) и/или восстановление для обработки, т.е. кодирования последующего блока.

[0090] Далее описывается архитектура системы, к которой применяются варианты осуществления этой заявки. Фиг. 1A является принципиальной блок-схемой системы 10 кодирования видео, к которой применяется вариант осуществления этой заявки. Как показано на фиг. 1A система 10 кодирования видео может включать в себя исходное устройство 12 и целевое устройство 14. Исходное устройство 12 формирует кодированные видеоданные, и в силу этого исходное устройство 12 может называться "оборудованием кодирования видео". Целевое устройство 14 может декодировать кодированные видеоданные, сформированные посредством исходного устройства 12, и в силу этого целевое устройство 14 может называться "оборудованием декодирования видео". В различных решениях по реализации, исходное оборудование 12, целевое оборудование 14 либо как исходное оборудование 12, так и целевое оборудование 14 могут включать в себя один или более процессоров и запоминающее устройство, соединенное с одним или более процессоров. Запоминающее устройство может включать в себя, но не только, RAM, ROM, EEPROM, флэш-память или любой другой носитель, который может использоваться для того, чтобы сохранять требуемый программный код в форме инструкции или структуры данных, доступной для компьютера, как описано в этом подробном описании. Исходное устройство 12 и целевое устройство 14 могут включать в себя различное оборудование, включающее в себя настольный компьютер, мобильное вычислительное оборудование, ноутбук (например, переносной компьютер) компьютер, планшетный компьютер, абонентскую приставку, телефонную трубку, к примеру, смартфон, телевизионный приемник, камеру, оборудование отображения, цифровой мультимедийный проигрыватель, консоль для видеоигр, установленный в транспортном средстве компьютер, устройство беспроводной связи и т.п.

[0091] Хотя фиг. 1A иллюстрирует исходное устройство 12 и целевое устройство 14 в качестве отдельных устройств, варианты осуществления устройства также могут включать в себя как исходное устройство 12, так и целевое устройство 14 либо как функцию исходного устройства 12, такую и функцию целевого устройства 14, т.е. исходное устройство 12 или соответствующую функцию и целевое устройство 14 или соответствующую функцию. В таких вариантах осуществления, исходное устройство 12 или соответствующая функция и целевое устройство 14 или соответствующая функция могут реализовываться посредством использования идентичных аппаратных средств и/или программного обеспечения, отдельных аппаратных средств и/или программного обеспечения либо любой комбинации вышеозначенного.

[0092] Соединение связи может реализовываться между исходным устройством 12 и целевым устройством 14 по линии 13 связи, и целевое устройство 14 может принимать кодированные видеоданные из исходного устройства 12 по линии 13 связи. Линия 13 связи может включать в себя одну или более сред или оборудования, допускающих перемещение кодированных видеоданных из исходного устройства 12 в целевое устройство 14. В примере, линия 13 связи может включать в себя одну или более сред связи, которые обеспечивают возможность исходному устройству 12 передавать кодированные видеоданные непосредственно в целевое устройство 14 в реальном времени. В этом примере, исходное устройство 12 может модулировать кодированные видеоданные согласно стандарту связи (например, протоколу беспроводной связи) и может передавать модулированные видеоданные в целевое устройство 14. Одна или более сред связи могут включать в себя беспроводную среду связи и/или проводную среду связи, например, радиочастотный (RF) спектр либо один или более физических кабелей передачи. Одна или боле сред связи могут составлять часть сети с коммутацией пакетов, и сеть с коммутацией пакетов, например, представляет собой локальную вычислительную сеть, глобальную вычислительную сеть или глобальную сеть (например, Интернет). Одна или более сред связи могут включать в себя маршрутизатор, переключатель, базовую станцию или другое устройство, которое упрощает связь из исходного устройства 12 в целевое устройство 14.

[0093] Исходное устройство 12 включает в себя кодер 20, и дополнительно или необязательно, исходное устройство 12 дополнительно может включать в себя источник 16 изображений, препроцессор 18 изображений и интерфейс 22 связи. В конкретной форме реализации, кодер 20, источник 16 изображений, препроцессор 18 изображений и интерфейс 22 связи могут представлять собой аппаратные компоненты в исходном устройстве 12 либо могут представлять собой программно-реализованные программы в исходном устройстве 12. Описания предоставляются отдельно следующим образом.

[0094] Источник 16 изображений может включать в себя или может представлять собой любой тип устройства захвата изображений, выполненного с возможностью захватывать изображение реального мира, и т.п. и/или любой тип устройства для формирования изображения или комментария (для кодирования экранного контента, некоторый текст на экране также рассматривается в качестве части подлежащего кодированию изображения или изображения), например, компьютерный графический процессор, выполненный с возможностью формировать компьютерное анимационное изображение, или любой тип устройства, выполненного с возможностью получать и/или предоставлять изображение реального мира или компьютерное анимационное изображение (например, экранный контент или изображение в стиле виртуальной реальности (виртуальной реальности, VR)) и/или любую комбинацию вышеозначенного (например, изображение в стиле дополненной реальности (дополненной реальности, AR)). Источник 16 изображений может представлять собой камеру, выполненную с возможностью захватывать изображение, или запоминающее устройство, выполненное с возможностью сохранять изображение. Источник 16 изображений дополнительно может включать в себя любой тип (внутреннего или внешнего) интерфейса, посредством которого ранее захваченное или сформированное изображение сохраняется, и/или изображение получается или принимается. Когда источник 16 изображений представляет собой камеру, источник 16 изображений, например, может представлять собой локальную камеру или интегрированную камеру, интегрированную в исходное устройство. Когда источник 16 изображений представляет собой запоминающее устройство, источник 16 изображений, например, представлять собой локальное запоминающее устройство или интегрированное запоминающее устройство, интегрированное в исходное устройство. Когда источник 16 изображений включает в себя интерфейс, интерфейс, например, может представлять собой внешний интерфейс для приема изображения из внешнего видеоисточника. Внешний видеоисточник, например, представляет собой внешнее устройство захвата изображений, такое как камера, внешнее запоминающее устройство или внешнее устройство формирования изображений. Внешнее устройство формирования изображений, например, представляет собой внешний компьютерный графический процессор, компьютер или сервер. Интерфейс может представлять собой любой тип интерфейса согласно любому собственному или стандартизированному интерфейсному протоколу, например, проводному или беспроводному интерфейсу либо оптическому интерфейсу.

[0095] Изображение может рассматриваться как двумерный массив или матрица выборок (элемент изображения). Выборка в массиве также может называться "точкой дискретизации". Количество точек дискретизации в горизонтальном и вертикальном направлениях (или осях) массива или изображения задает размер и/или разрешение изображения. Для представления цвета обычно используются три цветовых компонента, т.е. изображение может представляться или включать в себя три массива выборок. В RBG-формате или цветовом пространстве, изображение включает в себя соответствующие массивы красных, зеленых и синих выборок. Тем не менее, при кодировании видео, каждая выборка обычно представляется в формате или цветовом пространстве яркости/цветности, например, изображение в YCbCr-формате включает в себя компонент яркости, указываемый посредством Y (иногда указываемый посредством L), и два компонента цветности, указываемые посредством Cb и Cr. Компонент Y яркости (вкратце сигнала яркости) указывает уровень яркости или интенсивность уровня серого (например, они являются идентичными в полутоновом изображении), и два компонента Cb и Cr цветности (вкратце сигнала цветности) представляют компоненты цветности или цветовой информации. Соответственно, изображение в YCbCr-формате включает в себя массив выборок яркости с выборочными значениями яркости (Y) и два массива выборок цветности со значениями цветности (Cb и Cr). Изображение в RGB-формате может конвертироваться или преобразовываться в изображение в YCbCr-формате, и наоборот. Этот процесс также называется "преобразованием или конверсией цветов". Если изображение является монохромным, изображение может включать в себя только массив выборок яркости. В этом варианте осуществления этой заявки, изображение, передаваемое посредством источника 16 изображений в препроцессор 18 изображений, также может называться "исходными данными 17 изображений".

[0096] Препроцессор 18 изображений выполнен с возможностью принимать исходные данные 17 изображений и выполнять предварительную обработку для исходных данных 17 изображений для того, чтобы получать предварительно обработанное изображение 19 или предварительно обработанные данные 19 изображений. Например, предварительная обработка, выполняемая посредством препроцессора 18 изображений, может включать в себя обрезку, конверсию цветового формата (например, из RGB в YUV), цветовую коррекцию или уменьшение уровня шума.

[0097] Кодер 20 (также называемый "видеокодером 20") выполнен с возможностью принимать предварительно обработанные данные 19 изображений и обрабатывать предварительно обработанные данные 19 изображений посредством использования связанного режима прогнозирования (такого как режим прогнозирования в каждом варианте осуществления этого подробного описания) для того, чтобы предоставлять кодированные данные 21 изображений (ниже детально описываются структурные подробности кодера 20 на основе фиг. 2, фиг. 4 или фиг. 5). В некоторых вариантах осуществления, кодер 20 может быть выполнен с возможностью выполнять каждый вариант осуществления, описанный ниже, с тем чтобы реализовывать применение на стороне кодера способа взаимного прогнозирования, описанного в данной заявке.

[0098] Интерфейс 22 связи может быть выполнен с возможностью принимать кодированные данные 21 изображений и передавать кодированные данные 21 изображений в целевое устройство 14 или любое другое устройство (например, запоминающее устройство) по линии 13 связи для хранения или прямого восстановления. Любое другое устройство может представлять собой любое устройство используемое для декодирования или хранения. Интерфейс 22 связи, например, может быть выполнен с возможностью инкапсулировать кодированные данные 21 изображений в соответствующий формат, например, пакет данных, для передачи по линии 13 связи.

[0099] Целевое устройство 14 включает в себя декодер 30, и дополнительно или необязательно, целевое устройство 14 дополнительно может включать в себя интерфейс 28 связи, постпроцессор 32 изображений и устройство 34 отображения. Описания предоставляются отдельно следующим образом.

[00100] Интерфейс 28 связи может быть выполнен с возможностью принимать кодированные данные 21 изображений из исходного устройства 12 или любого другого источника. Любой другой источник, например, устройство хранения данных и устройство хранения данных, например, представляет собой устройство хранения кодированных данных изображений. Интерфейс 28 связи может быть выполнен с возможностью передавать или принимать кодированные данные 21 изображений по линии 13 связи между исходным устройством 12 и целевым устройством 14 или по любому типу сети. Линия 13 связи, например, прямое проводное или беспроводное соединение и любой тип сети, например, представляет собой проводную или беспроводную сеть либо любую комбинацию вышеозначенного или любой тип частной сети или сети общего пользования либо любую комбинация вышеозначенного. Интерфейс 28 связи, например, может быть выполнен с возможностью декапсулировать пакет данных, передаваемый через интерфейс 22 связи, с тем чтобы получать кодированные данные 21 изображений.

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

[00102] Декодер 30 (также называемый "декодером 30") выполнен с возможностью принимать кодированные данные 21 изображений и предоставлять декодированные данные 31 изображений или декодированное изображение 31 (ниже детально описываются структурные подробности декодера 30 на основе фиг. 3, фиг. 4 или фиг. 5). В некоторых вариантах осуществления, декодер 30 может быть выполнен с возможностью выполнять каждый вариант осуществления, описанный ниже, с тем чтобы реализовывать применение на стороне декодера способа взаимного прогнозирования, описанного в данной заявке.

[00103] Постпроцессор 32 изображений выполнен с возможностью постобрабатывать декодированные данные 31 изображений (также называемые "восстановленными данными изображений"), с тем чтобы получать постобработанные данные 33 изображений. Постобработка, выполняемая посредством постпроцессора 32 изображений, может включать в себя конверсию цветового формата (например, из YCbCr в RGB), цветовую коррекцию, обрезку, повторную дискретизацию либо любую другую обработку. Постпроцессор 32 изображений может быть дополнительно выполнен с возможностью передавать постобработанные данные 33 изображений в устройство 34 отображения.

[00104] Устройство 34 отображения выполнено с возможностью принимать постобработанные данные 33 изображений, чтобы отображать изображение пользователю, зрителю и т.п. Устройство 34 отображения может представлять собой или может включать в себя любой тип дисплея, выполненного с возможностью представлять восстановленное изображение, например, интегрированный либо внешний дисплей или монитор. Например, дисплей может включать в себя жидкокристаллический дисплей (жидкокристаллический дисплей, ЖК-дисплей), дисплей на органических светоизлучающих диодах (на органических светоизлучающих диодах, OLED), плазменный дисплей, проектор, микросветодиодный дисплей, жидкокристаллический кремниевый (жидкокристаллический кремниевый, LCoS) дисплей, цифровой светопроцессор (цифровой светопроцессор, DLP) либо любой тип другого дисплея.

[00105] Хотя фиг. 1A иллюстрирует исходное устройство 12 и целевое устройство 14 в качестве отдельных устройств, варианты осуществления устройства также могут включать в себя как исходное устройство 12, так и целевое устройство 14 либо как функцию исходного устройства 12, такую и функцию целевого устройства 14, т.е. исходное устройство 12 или соответствующую функцию и целевое устройство 14 или соответствующую функцию. В таких вариантах осуществления, исходное устройство 12 или соответствующая функция и целевое устройство 14 или соответствующая функция могут реализовываться посредством использования идентичных аппаратных средств и/или программного обеспечения, отдельных аппаратных средств и/или программного обеспечения либо любой комбинации вышеозначенного.

[00106] На основе описаний, специалисты в данной области техники легко понимают, что существование и (точное) разделение функций различных блоков либо функций/функции исходного устройства 12 и/или целевого устройства 14, показанных на фиг. 1A, могут варьироваться в зависимости от фактического устройства и приложения. Исходное устройство 12 и целевое устройство 14 могут включать в себя любое из различных устройств, включающих в себя любой тип карманного компьютера или стационарного устройства, например, ноутбук или переносной компьютер, мобильный телефон, смартфон, планшетное устройство или планшетный компьютер, видеокамеру, настольный компьютер, абонентскую приставку, телевизионный приемник, камеру, установленное в транспортном средстве устройство, устройство отображения, цифровой мультимедийный проигрыватель, консоль для видеоигр, устройство потоковой передачи видео (такое как сервер предоставления услуг управления контентом или сервер распространения контента), широковещательное приемное устройство или широковещательное передающее устройство, и могут использовать или могут не использовать любой тип операционной системы.

[00107] Кодер 20 и декодер 30 могут реализовываться как любая из различных надлежащих схем, например, как один или более микропроцессоров, как процессор цифровых сигналов (процессор цифровых сигналов, DSP), как специализированная интегральная схема (специализированная интегральная схема, ASIC), как программируемая пользователем вентильная матрица (программируемая пользователем вентильная матрица, FPGA), как дискретная логика, как аппаратные средства либо как любая комбинация вышеозначенного. Если технология частично реализуется в программном обеспечении, устройство может сохранять программную инструкцию на надлежащем энергонезависимом машиночитаемом носителе хранения данных и может выполнять инструкцию в аппаратных средствах посредством использования одного или более процессоров, чтобы выполнять технологии в этом раскрытии сущности. Любой вышеприведенный контент (включающий в себя аппаратные средства, программное обеспечение, комбинацию аппаратных средств и программного обеспечения и т.п.) может рассматриваться как один или более процессоров.

[00108] В некоторых случаях, система 10 кодирования видео, показанная на фиг. 1A, представляет собой просто пример, и технологии в этой заявке могут применяться к настройке кодирования видео (например, к кодированию видео или декодированию видео), которая вообще не должна включать в себя обмен данными между устройством кодирования и устройством декодирования. В других примерах, данные могут извлекаться из локального запоминающего устройства, передаваться в потоковом режиме по сети и т.п. Устройство кодирования видео может кодировать данные и сохранять данные в запоминающем устройстве, и/или устройство декодирования видео может извлекать данные из запоминающего устройства и декодировать данные. В некоторых примерах, кодирование и декодирование выполняется посредством устройств, которые не обмениваются данными между собой, а только кодируют данные в запоминающее устройство и/или извлекают данные из запоминающего устройства и декодируют данные.

[00109] Фиг. 1B является иллюстративной схемой примера системы 40 кодирования видео, включающей в себя кодер 20 на фиг. 2 и/или декодер 30 на фиг. 3 согласно примерному варианту осуществления. Система 40 кодирования видео может реализовывать комбинацию различных технологий в вариантах осуществления этой заявки. В проиллюстрированной реализации, система 40 кодирования видео может включать в себя устройство 41 формирования изображений, кодер 20, декодер 30 (и/или видеокодер/декодер, реализованный посредством логической схемы 47 блока 46 обработки), антенну 42, один или более процессоров 43, одно или более запоминающих устройств 44 и/или устройство 45 отображения.

[00110] Как показано на фиг. 1B, устройство 41 формирования изображений, антенна 42, блок 46 обработки, логическая схема 47, кодер 20, декодер 30, процессор 43, запоминающее устройство 44 и/или устройство 45 отображения могут обмениваться данными между собой. Как описано выше, хотя система 40 кодирования видео проиллюстрирована как с кодером 20, так и с декодером 30, система 40 кодирования видео может включать в себя только кодер 20 или только декодер 30 в других примерах.

[00111] В некоторых примерах, антенна 42 может быть выполнена с возможностью передавать или принимать кодированный поток битов видеоданных. Дополнительно, в некоторых примерах, устройство 45 отображения может быть выполнено с возможностью представлять видеоданные. В некоторых примерах, логическая схема 47 может реализовываться посредством блока 46 обработки. Блок 46 обработки может включать в себя логику специализированной интегральной схемы (специализированной интегральной схемы, ASIC), графический процессор, процессор общего назначения и т.п. Система 40 кодирования видео также может включать в себя необязательный процессор 43. Необязательный процессор 43 может аналогично включать в себя логику специализированной интегральной схемы (специализированной интегральной схемы, ASIC), графический процессор, процессор общего назначения и т.п. В некоторых примерах, логическая схема 47 может реализовываться посредством аппаратных средств, таких как специализированные аппаратные средства кодирования видео, и процессор 43 может реализовываться посредством универсального программного обеспечения, операционной системы и т.п. Помимо этого, запоминающее устройство 44 может представлять собой любой тип запоминающего устройства, например, энергозависимое запоминающее устройство (например, статическое оперативное запоминающее устройство (статическое оперативное запоминающее устройство, SRAM) или динамическое оперативное запоминающее устройство (динамическое оперативное запоминающее устройство, DRAM)), или энергонезависимое запоминающее устройство (например, флэш-память). В неограничивающем примере, запоминающее устройство 44 может реализовываться посредством кэш-памяти. В некоторых примерах, логическая схема 47 может осуществлять доступ к запоминающему устройству 44 (например, чтобы реализовывать буфер изображений). В других примерах, логическая схема 47 и/или блок 46 обработки могут включать в себя запоминающее устройство (например, кэш), чтобы реализовывать буфер изображений и т.п.

[00112] В некоторых примерах, кодер 20, реализованный посредством логической схемы, может включать в себя буфер изображений (например, реализованный посредством блока 46 обработки или запоминающего устройства 44) и графический процессор (например, реализованный посредством блока 46 обработки). Графический процессор может функционально соединяться с буфером изображений. Графический процессор может включать в себя кодер 20, реализованный посредством логической схемы 47, чтобы реализовывать различные модули, которые описываются со ссылкой на фиг. 2, и/или любую другую систему или подсистему кодера, описанную в этом подробном описании. Логическая схема может быть выполнена с возможностью выполнять различные операции, описанные в этом подробном описании.

[00113] В некоторых примерах, декодер 30 может аналогично реализовываться посредством логической схемы 47, чтобы реализовывать различные модули, которые описываются со ссылкой на декодер 30 на фиг. 3, и/или любую другую систему или подсистему декодера, описанную в этом подробном описании. В некоторых примерах, декодер 30, реализованный посредством логической схемы, может включать в себя буфер изображений (например, реализованный посредством блока 46 обработки или запоминающего устройства 44) и графический процессор (например, реализованный посредством блока 46 обработки). Графический процессор может функционально соединяться с буфером изображений. Графический процессор может включать в себя декодер 30, реализованный посредством логической схемы 47, чтобы реализовывать различные модули, которые описываются со ссылкой на фиг. 3, и/или любую другую систему или подсистему декодера, описанную в этом подробном описании.

[00114] В некоторых примерах, антенна 42 может быть выполнена с возможностью принимать кодированный поток битов видеоданных. Как описано выше, кодированный поток битов может включать в себя данные, индикатор, значение индекса, данные выбора режима и т.п., которые связаны с кодированием видеокадра, описанным в этом подробном описании, например, данные, связанные с сегментацией при кодировании (например, коэффициент преобразования или квантованный коэффициент преобразования, необязательный индикатор (как описано) и/или данные, задающие сегментацию при кодировании). Система 40 кодирования видео дополнительно может включать в себя декодер 30, который соединяется с антенной 42, и который выполнен с возможностью декодировать кодированный поток битов. Устройство 45 отображения выполнено с возможностью представлять видеокадр.

[00115] Следует понимать, что, для примеров, описанных со ссылкой на кодер 20 в этом варианте осуществления этой заявки, декодер 30 может быть выполнен с возможностью выполнять обратный процесс. Для синтаксического элемента служебных сигналов, декодер 30 может быть выполнен с возможностью принимать и синтаксически анализировать синтаксический элемент и декодировать связанные видеоданные, соответственно. В некоторых примерах, кодер 20 может энтропийно кодировать синтаксический элемент в кодированный поток видеобитов. В таких примерах, декодер 30 может синтаксически анализировать синтаксический элемент и декодировать связанные видеоданные, соответственно.

[00116] Следует отметить, что способ, описанный в этом варианте осуществления этой заявки, главным образом используется в процессе взаимного прогнозирования. Этот процесс существует как в кодере 20, так и в декодере 30. Кодер 20 и декодер 30 в этом варианте осуществления этой заявки, например, могут представлять собой соответствующий кодер/декодер в стандартном видеопротоколе, таком как H.263, H.264, HEVV, MPEG-2, MPEG-4, VP8 или VP9 или стандартный видеопротокол следующего поколения (к примеру, H.266).

[00117] Фиг. 2 является принципиальной/концептуальной блок-схемой примера кодера 20, выполненного с возможностью реализовывать вариант осуществления этой заявки. В примере по фиг. 2, кодер 20 включает в себя блок 204 вычисления остатков, блок 206 обработки преобразования, блок 208 квантования, блок 210 обратного квантования, блок 212 обработки обратного преобразования, блок 214 восстановления, буфер 216, блок 220 контурной фильтрации, буфер 230 декодированных изображений (буфер декодированных изображений, DPB), блок 260 обработки прогнозирования и блок 270 энтропийного кодирования. Блок 260 обработки прогнозирования может включать в себя блок 244 взаимного прогнозирования, блок 254 внутреннего прогнозирования и блок 262 выбора режима. Блок 244 взаимного прогнозирования может включать в себя блок оценки движения и блок компенсации движения (не показаны на чертеже). Кодер 20, показанный на фиг. 2, также может называться "гибридным видеокодером" или "гибридным видеокодером на основе видеокодеков".

[00118] Например, блок 204 вычисления остатков, блок 206 обработки преобразования, блок 208 квантования, блок 260 обработки прогнозирования и блок 270 энтропийного кодирования формируют прямой тракт передачи сигналов кодера 20, и блок 210 обратного квантования, блок 212 обработки обратного преобразования, блок 214 восстановления, буфер 216, контурный фильтр 220, буфер 230 декодированных изображений (буфера декодированных изображений, DPB), блок 260 обработки прогнозирования и т.п. формируют обратный тракт передачи сигналов кодера. Обратный тракт передачи сигналов кодера соответствует тракту передачи сигналов декодера (см. декодер 30 на фиг. 3).

[00119] Кодер 20 принимает изображение 201 или блок 203 изображения для изображения 201 посредством использования ввода 202 и т.п., например, изображение в последовательности изображений, которые формируют видео или видеопоследовательность. Блок 203 изображения также может называться "текущим блоком изображения" или "блоком подлежащих кодированию изображений", и изображение 201 может называться "текущим изображением" или "подлежащим кодированию изображением" (в частности, когда текущее изображение отличается от другого изображения при кодировании видео, другие изображения, например, в идентичной видеопоследовательности, также включают в себя ранее кодированные и/или декодированные изображения в видеопоследовательности текущего изображения).

[00120] Вариант осуществления кодера 20 может включать в себя модуль сегментации (не показан на фиг. 2), выполненный с возможностью сегментировать изображение 201 на множество неперекрывающихся блоков, таких как блоки 203. Модуль сегментации может быть выполнен с возможностью использовать идентичный размер блока для всех изображений в видеопоследовательности и соответствующий растр, задающий размер блока, или может быть выполнен с возможностью: изменять размер блока между изображениями, поднаборами, группами изображений и сегментировать каждое изображение на соответствующие блоки.

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

[00122] Аналогично изображению 201, блок 203 изображения также рассматривается или также может рассматриваться в качестве двумерного массива или матрицы выборок с выборочными значениями, хотя размер блока 203 изображения меньше размера изображения 201. Другими словами, блок 203 изображения может включать в себя, например, один массив выборок (например, массив яркости в случае монохромного изображения 201), три массива выборок (например, один массив яркости и два массива цветности в случае цветного изображения) либо любое другое количество и/или тип массивов на основе используемого цветового формата. Количество выборок в горизонтальном и вертикальном направлениях (или осях) блока 203 изображения задает размер блока 203 изображения.

[00123] Кодер 20, показанный на фиг. 2, выполнен с возможностью кодировать изображение 201 поблочно, например, выполнять кодирование и прогнозирование относительно каждого блока 203 изображения.

[00124] Блок 204 вычисления остатков выполнен с возможностью вычислять остаточный блок 205 на основе блока 203 изображения, и блок 265 прогнозирования (ниже предоставляются дополнительные сведения относительно блоке 265 прогнозирования), например, с тем чтобы получать остаточный блок 205 в выборочной области посредством вычитания выборочного значения блока 265 прогнозирования из выборочного значения блока 203 изображения повыборочно.

[00125] Блок 206 обработки преобразования выполнен с возможностью применять преобразование, такое как дискретное косинусное преобразование (дискретное косинусное преобразование, DCT) или дискретное синусное преобразование (дискретное синусное преобразование, DST), к выборочному значению остаточного блока 205 для того, чтобы получать коэффициент 207 преобразования в области преобразования. Коэффициент 207 преобразования также может называться "остаточным коэффициентом преобразования" и указывает остаточный блок 205 в области преобразования.

[00126] Блок 206 обработки преобразования может быть выполнен с возможностью применять целочисленную аппроксимацию DCT/DST, например, преобразования, указываемого в HEVC/H.265. Эта целочисленная аппроксимация обычно масштабируется пропорционально на коэффициент по сравнению с ортогональным DCT-преобразованием. Чтобы поддерживать норму остаточного блока, полученного через прямое преобразование и обратное преобразование, дополнительный коэффициент масштабирования применяется в качестве части процесса преобразования. Коэффициент масштабирования обычно выбирается на основе некоторых ограничивающих условий, например, представляет собой степень 2, битовую глубину коэффициента преобразования либо компромисс между точностью и затратами на реализацию, которые используются для операции сдвига. Например, конкретный коэффициент масштабирования указывается для обратного преобразования на стороне декодера 30 посредством использования блока 212 обработки обратного преобразования (и, соответственно, для обратного преобразования на стороне кодера 20 посредством использования блока 212 обработки обратного преобразования и т.п.,) и, надлежащим образом, соответствующий коэффициент масштабирования может указываться для прямого преобразования на стороне кодера 20 посредством использования блока 206 обработки преобразования.

[00127] Блок 208 квантования выполнен с возможностью квантовать коэффициент 207 преобразования посредством применения скалярного квантования, векторного квантования и т.п., с тем чтобы получать квантованный коэффициент 209 преобразования. Квантованный коэффициент 209 преобразования также может называться "квантованным остаточным коэффициентом 209". Процесс квантования может уменьшать битовую глубину, связанную с некоторыми или всеми коэффициентами 207 преобразования. Например, n-битовый коэффициент преобразования может округляться в меньшую сторону до m-битового коэффициента преобразования во время квантования, где n больше m. Степень квантования может модифицироваться посредством регулирования параметра квантования (параметра квантования, QP). Например, для масштабированного квантования, различные масштабы могут применяться для того, чтобы достигать более точного или более приблизительного квантования. Меньший шаг квантования соответствует более точному квантованию, и больший шаг квантования соответствует более приблизительному квантованию. Надлежащий шаг квантования может указываться посредством параметра квантования (параметра квантования, QP). Например, параметр квантования может представлять собой индекс для предварительно заданного набора надлежащих шагов квантования. Например, меньший параметр квантования может соответствовать более точному квантованию (меньшему шагу квантования), и больший параметр квантования может соответствовать более приблизительному квантованию (большему шагу квантования), или наоборот. Квантование может включать в себя деление на шаг квантования и соответствующее квантование или обратное квантование, выполняемое посредством блока 210 обратного квантования и т.п., либо может включать в себя умножение на шаг квантования. В вариантах осуществления согласно некоторым стандартам, таким как HEVC, параметр квантования может использоваться для того, чтобы определять шаг квантования. Обычно, шаг квантования может вычисляться на основе параметра квантования посредством аппроксимации с фиксированной запятой для уравнения, включающего в себя деление. Дополнительные коэффициенты масштабирования могут вводиться для квантования и деквантования, чтобы восстанавливать норму, которая имеет остаточный блок, и которая может модифицироваться вследствие масштаба, используемого в аппроксимации с фиксированной запятой для уравнения, используемого для шага квантования и параметра квантования. В примерной реализации, масштаб обратного преобразования может комбинироваться с масштабом деквантования. Альтернативно, настраиваемая таблица квантования может использоваться и передаваться в служебных сигналах из кодера в декодер, например, в потоке битов. Квантование представляет собой операцию с потерями, и больший шаг квантования указывает большие потери.

[00128] Блок 210 обратного квантования выполнен с возможностью применять обратное квантование квантования, применяемого посредством блока 208 квантования к квантованному коэффициенту для того, чтобы получать деквантованный коэффициент 211, например, применять, на основе или посредством использования идентичного шага квантования в качестве блока 208 квантования, схему обратного квантования для схемы квантования, применяемой посредством блока 208 квантования. Деквантованный коэффициент 211 также может называться "деквантованным остаточным коэффициентом 211" и соответствовать коэффициенту 207 преобразования, хотя потери, вызываемые посредством квантования, обычно отличаются от коэффициента преобразования.

[00129] Блок 212 обработки обратного преобразования выполнен с возможностью применять обратное преобразование для преобразования, применяемого посредством блока 206 обработки преобразования, например, обратное дискретное косинусное преобразование (дискретное косинусное преобразование, DCT) или обратное дискретное синусное преобразование (дискретное синусное преобразование, DST) для того, чтобы получать блок 213 обратного преобразования в выборочной области. Блок 213 обратного преобразования также может называться "деквантованным блоком 213 обратного преобразования" или "остаточным блоком 213 обратного преобразования".

[00130] Блок 214 восстановления (например, сумматор 214) выполнен с возможностью суммировать блок 213 обратного преобразования (т.е. восстановленный остаточный блок 213) с блоком 265 прогнозирования для того, чтобы получать восстановленный блок 215 в выборочной области, например, посредством суммирования выборочного значения восстановленного остаточного блока 213 и выборочного значения блока 265 прогнозирования.

[00131] Необязательно, буферный блок 216 (или "буфер" 216 сокращенно), к примеру, линейный буфер 216, выполнен с возможностью буферизовать или сохранять восстановленный блок 215 и соответствующее выборочное значение для внутреннего прогнозирования и т.п. В других вариантах осуществления, кодер может быть выполнен с возможностью использовать нефильтрованный восстановленный блок и/или соответствующее выборочное значение, которые сохраняются в буферном блоке 216 для любого типа оценки и/или прогнозирования, к примеру, для внутреннего прогнозирования.

[00132] Например, вариант осуществления кодера 20 может быть сконфигурирован таким образом, что буферный блок 216 не только выполнен с возможностью сохранять восстановленный блок 215 для внутреннего прогнозирования, но также и выполнен с возможностью сохранять фильтрованный блок 221 блока 220 контурной фильтрации (не показан на фиг. 2), и/или буферный блок 216 и буферный блок 230 декодированных изображений формируют один буфер. Другие варианты осуществления могут использоваться для того, чтобы использовать фильтрованный блок 221 и/или блок или выборку из буфера 230 декодированных изображений (не показан на фиг. 2) в качестве ввода или базиса для внутреннего прогнозирования.

[00133] Блок 220 контурной фильтрации (или "контурный фильтр" 220 сокращенно) выполнен с возможностью выполнять фильтрацию для восстановленного блока 215 для того, чтобы получать фильтрованный блок 221, с тем чтобы плавно выполнять выборочное преобразование или повышать качество видео. Блок 220 контурной фильтрации имеет намерение представлять один или более контурных фильтров, например, фильтр удаления блочности, фильтр на основе дискретизированного адаптивного смещения (дискретизированного адаптивного смещения, SAO) или другой фильтр, такой как билатеральный фильтр, адаптивный контурный фильтр (адаптивный контурный фильтр, ALF), повышающий резкость или сглаживающий фильтр или совместный фильтр. Хотя блок 220 контурной фильтрации показывается на фиг. 2 в качестве внутриконтурного фильтра, блок 220 контурной фильтрации может реализовываться как контурный постфильтр в других конфигурациях. Фильтрованный блок 221 также может называться "фильтрованным восстановленным блоком 221". Буфер 230 декодированных изображений может сохранять восстановленный блок кодирования после того, как блок 220 контурной фильтрации выполняет операцию фильтрации для восстановленного блока кодирования.

[00134] Вариант осуществления кодера 20 (соответственно, блока 220 контурной фильтрации) может использоваться для того, чтобы выводить параметр контурной фильтрации (например, информацию дискретизированного адаптивного смещения), например, непосредственно выводить параметр контурной фильтрации или выводить параметр контурной фильтрации после блока 270 энтропийного кодирования, или любой другой блок энтропийного кодирования выполняет энтропийное кодирование таким образом, что декодер 30 может принимать и применять идентичный параметр контурной фильтрации для декодирования и т.п.

[00135] Буфер 230 декодированных изображений (буфер декодированных изображений, DPB) может представлять собой запоминающее устройство опорных изображений, которое сохраняет данные опорных изображений для видеокодера 20, чтобы кодировать видеоданные. DPB 230 может представлять собой любое из множества запоминающих устройств, например, динамическое оперативное запоминающее устройство (динамическое оперативное запоминающее устройство, DRAM) (включающее в себя синхронное DRAM (синхронное DRAM, SDRAM), магниторезистивное RAM (магниторезистивное RAM, MRAM) или резистивное RAM (резистивное RAM, RRAM)) либо другой тип запоминающего устройства. DPB 230 и буфер 216 могут предоставляться посредством идентичного запоминающего устройства или отдельных запоминающих устройств. В примере, буфер 230 декодированных изображений (буфер декодированных изображений, DPB) выполнен с возможностью сохранять фильтрованный блок 221. Буфер 230 декодированных изображений может быть дополнительно выполнен с возможностью сохранять другие предыдущие фильтрованные блоки, к примеру, предыдущие восстановленные и фильтрованные блоки 221 идентичного текущего изображения или различных изображений, к примеру, предыдущих восстановленных изображений, и может предоставлять полный восстановленный предыдущий, т.е. декодированное изображение (и соответствующий опорный блок и соответствующую выборку) и/или частично восстановленное текущее изображение (и соответствующий опорный блок и соответствующую выборку) для взаимного прогнозирования и т.п. В примере, если восстановленный блок 215 восстанавливается без внутриконтурной фильтрации, буфер 230 декодированных изображений (буфер декодированных изображений, DPB) выполнен с возможностью сохранять восстановленный блок 215.

[00136] Блок 260 обработки прогнозирования также называется "блоком 260 обработки блочного прогнозирования" и выполнен с возможностью: принимать или получать блок 203 (текущий блок 203 текущего изображения 201) и восстановленные данные изображений, например, опорную выборку из идентичного (текущего) изображения в буфере 216 и/или данные 231 опорных изображений из одного или более предыдущих декодированных изображений в буфере 230 декодированных изображений и обрабатывать такие данные для прогнозирования, т.е. предоставлять блок 265 прогнозирования, который может представлять собой блок 245 взаимного прогнозирования или блок 255 внутреннего прогнозирования.

[00137] Блок 262 выбора режима может быть выполнен с возможностью выбирать режим прогнозирования (например, режим внутреннего или взаимного прогнозирования) и/или соответствующий блок 245 или 255 прогнозирования в качестве блока 265 прогнозирования, вычислять остаточный блок 205 и восстанавливать восстановленный блок 215.

[00138] Вариант осуществления блока 262 выбора режима может использоваться для того, чтобы выбирать режим прогнозирования (например, из режимов прогнозирования, поддерживаемых посредством блока 260 обработки прогнозирования). Режим прогнозирования предоставляет наилучшее совпадение или минимальный остаток (минимальный остаток означает лучшее сжатие при передаче или хранении) либо предоставляет минимальные объемы передаваемой служебной информации (минимальные объемы передаваемой служебной информации означают лучшее сжатие при передаче или хранении), либо учитывает или уравновешивает означенное. Блок 262 выбора режима может быть выполнен с возможностью определять режим прогнозирования на основе оптимизации искажения в зависимости от скорости передачи (оптимизации искажения в зависимости от скорости передачи, RDO), т.е. выбирать режим прогнозирования, который предоставляет минимальную оптимизацию искажения в зависимости от скорости передачи, или выбирать режим прогнозирования, в котором связанное искажение в зависимости от скорости передачи, по меньшей мере, удовлетворяет критерию выбора режима прогнозирования.

[00139] Ниже подробно описывается обработка прогнозирования (например, посредством использования блока 260 обработки прогнозирования) и выбор режима (например, посредством использования блока 262 выбора режима), выполняемая посредством примера кодера 20.

[00140] Как описано выше, кодер 20 выполнен с возможностью определять или выбирать наилучший или оптимальный режим прогнозирования из (предварительно определенного) набора режимов прогнозирования. Набор режимов прогнозирования может включать в себя, например, режим внутреннего прогнозирования и/или режим взаимного прогнозирования.

[00141] Набор режимов внутреннего прогнозирования может включать в себя 35 различных режимов внутреннего прогнозирования, например, ненаправленные режимы, такие как DC- (или средний) режим и планарный режим, или направленные режимы, заданные в H.265, либо может включать в себя 67 различных режимов внутреннего прогнозирования, например, ненаправленный режим, такой как DC- (или средний) режим и планарный режим, или разработку направленных режимов, заданных в H.266.

[00142] В возможной реализации, набор режимов взаимного прогнозирования зависит от доступного опорного изображения (например, по меньшей мере, от части декодированного изображения, сохраненного в DBP 230) и других параметров взаимного прогнозирования, например, зависит от того, используется все опорное изображение, либо только часть опорного изображения используется, например, в области окна поиска, окружающей область текущего блока, выполняется поиск наилучше совпадающего опорного блока, и/или зависит от того, применяется или нет выборочная интерполяция, к примеру, полувыборочная и/или четвертьвыборочная интерполяция. Набор режимов взаимного прогнозирования может включать в себя, например, режим усовершенствованного прогнозирования векторов движения (усовершенствованного прогнозирования векторов движения, AMVP) и режим объединения (объединения). Во время конкретной реализации, набор режимов взаимного прогнозирования может включать в себя AMVP-режим на основе управляющих точек и режим объединения на основе управляющих точек, которые улучшаются в этом варианте осуществления этой заявки. В примере, блок 254 внутреннего прогнозирования может быть выполнен с возможностью выполнять любую комбинацию технологий взаимного прогнозирования, описанных ниже.

[00143] В дополнение к вышеприведенным режимам прогнозирования, режим пропуска и/или прямой режим также могут применяться в этом варианте осуществления этой заявки.

[00144] Блок 260 обработки прогнозирования может быть дополнительно выполнен с возможностью: сегментировать блок 203 изображения на меньшие блочные сегменты или субблоки, например, посредством итеративного использования сегментации на основе дерева квадрантов (дерева квадрантов, QT), сегментации на основе двоичного дерева (двоичного дерева, BT), сегментации на основе троичного дерева (троичного дерева, TT) либо любой комбинации вышеозначенного и выполнять прогнозирование и т.п. относительно каждого из блочных сегментов или субблоков. Выбор режима включает в себя выбор древовидной структуры сегментированного блока 203 изображения, и выбор режима прогнозирования, применяемого к каждому из блочных сегментов или субблоков.

[00145] Блок 244 взаимного прогнозирования может включать в себя блок оценки движения (оценки движения, ME) (не показан на фиг. 2) и блок компенсации движения (компенсации движения, MC) (не показан на фиг. 2). Блок оценки движения выполнен с возможностью принимать или получать блок 203 изображения (текущий блок 203 изображения для текущего изображения 201) и декодированное изображение 31 или, по меньшей мере, один или более предыдущих восстановленных блоков, например, один или более других восстановленных блоков, отличающихся от предыдущего декодированного изображения 231, с тем чтобы выполнять оценку движения. Например, видеопоследовательность может включать в себя текущее изображение и предыдущее декодированное изображение 31. Другими словами, текущее изображение и предыдущее декодированное изображение 31 могут составлять часть последовательности изображений, которые формируют видеопоследовательность или формируют последовательность изображений.

[00146] Например, кодер 20 может быть выполнен с возможностью: выбирать опорный блок из множества опорных блоков идентичного изображения или различных изображений во множестве других изображений и предоставлять опорное изображение и/или смещение (пространственное смещение) между местоположением (координатами X-Y) опорного блока и местоположением текущего блока в качестве параметра взаимного прогнозирования в блок оценки движения (не показан на фиг. 2). Это смещение также называется "вектором движения (вектором движения, MV)".

[00147] Блок компенсации движения выполнен с возможностью: получать параметр взаимного прогнозирования и выполнять взаимное прогнозирование на основе или посредством использования параметра взаимного прогнозирования для того, чтобы получать блок 245 взаимного прогнозирования. Компенсация движения, выполняемая посредством блока компенсации движения (не показан на фиг. 2), может включать в себя выборку или формирование блока прогнозирования на основе движения/блочного вектора, определенного через оценку движения (возможно выполнение интерполяции для подвыборочной точности). Во время интерполяционной фильтрации, дополнительная выборка может формироваться из известных выборок, за счет этого потенциально увеличивая количество возможных вариантов блоков прогнозирования, которые могут использоваться для того, чтобы кодировать блок изображения. После того как вектор движения, используемый для PU текущего блока изображения, принимается, блок 246 компенсации движения может находить блок прогнозирования, на который вектор движения указывает в списке опорных изображений. Блок 246 компенсации движения дополнительно может формировать синтаксический элемент, ассоциированный с блоком и видеосрезом, так что видеодекодер 30 использует синтаксический элемент при декодировании блока изображения видеосреза.

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

[00149] Блок 254 внутреннего прогнозирования выполнен с возможностью получать, например, принимать блок 203 изображения (текущий блок изображения) идентичного изображения, и один или более предыдущих восстановленных блоков, таких как восстановили соседние блоки, чтобы выполнять внутреннюю оценку. Например, кодер 20 может быть выполнен с возможностью выбирать режим внутреннего прогнозирования из множества (предварительно определенных) режимов внутреннего прогнозирования.

[00150] Вариант осуществления кодера 20 может быть выполнен с возможностью выбирать режим внутреннего прогнозирования на основе критерия оптимизации, например, на основе минимального остатка (например, режим внутреннего прогнозирования, предоставляющий блок прогнозирования 255, который является наиболее аналогичным текущему блоку 203) изображения или минимального искажения в зависимости от скорости передачи.

[00151] Блок 254 внутреннего прогнозирования дополнительно выполнен с возможностью определять блок 255 внутреннего прогнозирования на основе параметра внутреннего прогнозирования выбранного режима внутреннего прогнозирования. В любом случае, после выбора режима внутреннего прогнозирования, используемого для блока, блок 254 внутреннего прогнозирования дополнительно выполнен с возможностью предоставлять параметр внутреннего прогнозирования в блок 270 энтропийного кодирования, т.е. предоставлять информацию для указания выбранного режима внутреннего прогнозирования, используемого для блока. В примере, блок 254 внутреннего прогнозирования может быть выполнен с возможностью выполнять любую комбинацию следующих технологий внутреннего прогнозирования.

[00152] В частности, блок 254 внутреннего прогнозирования может передавать синтаксический элемент в блок 270 энтропийного кодирования, и синтаксический элемент включает в себя параметр внутреннего прогнозирования (к примеру, информацию индикатора для выбора режима внутреннего прогнозирования, используемого для прогнозирования текущего блока после того, как множество режимов внутреннего прогнозирования проходятся). В возможном сценарии применения, если предусмотрен только один режим внутреннего прогнозирования, параметр внутреннего прогнозирования альтернативно может не переноситься в синтаксическом элементе. В этом случае, декодер 30 может непосредственно выполнять декодирование в режиме прогнозирования по умолчанию.

[00153] Блок 270 энтропийного кодирования выполнен с возможностью применять алгоритм или схему энтропийного кодирования (например, схему кодирования переменной длины (кодирования переменной длины, VLC), схему контекстно-адаптивного VLC (контекстно-адаптивного VLC, CAVLC), схему арифметического кодирования, схему контекстно-адаптивного двоичного арифметического кодирования (контекстно-адаптивного двоичного арифметического кодирования, CABAC), схему синтаксического контекстно-адаптивного двоичного арифметического кодирования (синтаксического контекстно-адаптивного двоичного арифметического кодирования, SBAC), схему кодирования по энтропии сегментации на интервалы вероятности (энтропии сегментации на интервалы вероятности, PIPE) либо другой способ или технологию энтропийного кодирования) к одному или более (либо ни к одному) из квантованного остаточного коэффициента 209, параметра взаимного прогнозирования, параметра внутреннего прогнозирования и/или параметра контурной фильтрации для того, чтобы получать кодированные данные 21 изображений, которые могут выводиться посредством использования вывода 272, например, в форме кодированного потока битов. Кодированный поток битов может передаваться в видеодекодер 30 или может архивироваться для последующей передачи или извлечения посредством видеодекодера 30. Блок 270 энтропийного кодирования может быть дополнительно выполнен с возможностью выполнять энтропийное кодирование для другого синтаксического элемента текущего видеосреза, который кодируется.

[00154] Другая структурная разновидность видеокодера 20 может быть выполнена с возможностью кодировать видеопоток. Например, кодер 20 не на основе преобразования может непосредственно квантовать остаточный сигнал без блока 206 обработки преобразования для некоторых блоков или кадров. В другой реализации, кодер 20 может иметь блок 208 квантования и блок 210 обратного квантования, которые комбинируются в один блок.

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

[00156] Следует понимать, что другая структурная разновидность видеокодера 20 может быть выполнена с возможностью кодировать видеопоток. Например, для некоторых блоков изображения или кадров изображения, видеокодер 20 может непосредственно квантовать остаточный сигнал без необходимости для блока 206 обработки преобразования выполнять обработку и, соответственно, без необходимости для блока 212 обработки обратного преобразования выполнять обработку. Альтернативно, для некоторых блоков изображения или кадров изображения, видеокодер 20 не формирует остаточные данные, и, соответственно, нет необходимости для блока 206 обработки преобразования, блока 208 квантования, блока 210 обратного квантования и блока 212 обработки обратного преобразования выполнять обработку. Альтернативно, видеокодер 20 может непосредственно сохранять блок восстановленного изображения в качестве опорного блока без необходимости для фильтра 220 выполнять обработку. Альтернативно, блок 208 квантования и блок 210 обратного квантования в видеокодере 20 могут комбинироваться между собой. Контурный фильтр 220 является необязательным, и в случае кодирования со сжатием без потерь, блок 206 обработки преобразования, блок 208 квантования, блок 210 обратного квантования и блок 212 обработки обратного преобразования являются необязательными. Следует понимать, что, в различных сценариях применения, блок 244 взаимного прогнозирования и блок 254 внутреннего прогнозирования могут использоваться избирательно.

[00157] Фиг. 3 является принципиальной/концептуальной блок-схемой примера декодера 30, выполненного с возможностью реализовывать вариант осуществления этой заявки. Видеодекодер 30 выполнен с возможностью принимать кодированные данные изображений (например, кодированный поток битов) 21, кодированные посредством кодера 20 и т.п., с тем чтобы получать декодированное изображение 231. В процессе декодирования, видеодекодер 30 принимает видеоданные из видеокодера 20, например, кодированный поток видеобитов, который указывает блок изображения кодированного видеосреза, и ассоциированный синтаксический элемент.

[00158] В примере по фиг. 3, декодер 30 включает в себя блок 304 энтропийного декодирования, блок 310 обратного квантования, блок 312 обработки обратного преобразования, блок 314 восстановления (например, сумматор 314), буфер 316, контурный фильтр 320, буфер 330 декодированных изображений и блок 360 обработки прогнозирования. Блок 360 обработки прогнозирования может включать в себя блок 344 взаимного прогнозирования, блок 354 внутреннего прогнозирования и блок 362 выбора режима. В некоторых примерах, видеодекодер 30 может выполнять прохождение при декодировании, в общем, обратное по отношению к прохождению при кодировании, описанному со ссылкой на видеокодер 20 на фиг. 2.

[00159] Блок 304 энтропийного декодирования выполнен с возможностью выполнять энтропийное декодирование для кодированных данных 21 изображений, получать квантованный коэффициент 309, декодированный параметр кодирования (не показан на фиг. 3) и/или т.п., например, любое или все из параметра взаимного прогнозирования, параметра внутреннего прогнозирования, параметра контурной фильтрации и/или другого (декодированного) синтаксического элемента. Блок 304 энтропийного декодирования дополнительно выполнен с возможностью передавать параметр взаимного прогнозирования, параметр внутреннего прогнозирования и/или другой синтаксический элемент в блок 360 обработки прогнозирования. Видеодекодер 30 может принимать синтаксический элемент на уровне видеосреза и/или синтаксический элемент на уровне видеоблока.

[00160] Блок 310 обратного квантования может иметь функцию, идентичную функции блока обратного квантования 110, блок 312 обработки обратного преобразования может иметь функцию, идентичную функции блока 212 обработки обратного преобразования, блок 314 восстановления может иметь функцию, идентичную функции блока 214 восстановления, буфер 316 может иметь функцию, идентичную функции буфера 216, контурный фильтр 320 может иметь функцию, идентичную функции контурного фильтра 220, и буфер 330 декодированных изображений может иметь функцию, идентичную функции буфера 230 декодированных изображений.

[00161] Блок 360 обработки прогнозирования может включать в себя блок 344 взаимного прогнозирования и блок 354 внутреннего прогнозирования. Блок 344 взаимного прогнозирования может иметь функцию, аналогичную функции блока 244 взаимного прогнозирования, и блок 354 внутреннего прогнозирования может иметь функцию, аналогичную функции блока 254 внутреннего прогнозирования. Блок 360 обработки прогнозирования обычно выполнен с возможностью выполнять блочное прогнозирование и/или получать блок 365 прогнозирования из кодированных данных 21 и принимать или получать (явно или неявно) связанный с прогнозированием параметр и/или информацию относительно выбранного режима прогнозирования, например, из блока 304 энтропийного декодирования.

[00162] Когда видеосрез кодируется как внутренне кодированный (I-) срез, блок 354 внутреннего прогнозирования блока 360 обработки прогнозирования выполнен с возможностью формировать блок 365 прогнозирования, используемый для блока изображения текущего видеосреза, на основе передаваемого в служебных сигналах режима внутреннего прогнозирования и данных из предыдущего декодированного блока текущего кадра или изображения. Когда видеокадр кодируется как взаимно кодированный (т.е. B- или P-) срез, блок 344 взаимного прогнозирования (например, блок компенсации движения) блока 360 обработки прогнозирования выполнен с возможностью формировать блок 365 прогнозирования, используемый для видеоблока текущего видеосреза, на основе вектора движения и другого синтаксического элемента, принимаемого из блока 304 энтропийного декодирования. Для взаимного прогнозирования, блок прогнозирования может формироваться из одного из опорных изображений в одном списке опорных изображений. Видеодекодер 30 может конструировать списки опорных кадров: список 0 и список 1, посредством использования технологии конструирования по умолчанию на основе опорного изображения, сохраненного в DPB 330.

[00163] Блок 360 обработки прогнозирования выполнен с возможностью: определять информацию прогнозирования, используемую для видеоблока текущего видеосреза, посредством синтаксического анализа вектора движения и другого синтаксического элемента, и использовать информацию прогнозирования для того, чтобы формировать блок прогнозирования, используемый для текущего видеоблока, который декодируется. Например, блок 360 обработки прогнозирования определяет, посредством использования некоторых принимаемых синтаксических элементов, режим прогнозирования (например, внутреннее или взаимное прогнозирование), используемый для того, чтобы кодировать видеоблок видеосреза, тип среза взаимного прогнозирования (например, B-срез, P-срез или GPB-срез), информацию конструирования одного или более изображений в списке опорных изображений, используемом для среза, вектор движения каждого взаимно кодированного видеоблока, используемого для среза, состояние взаимного прогнозирования каждого взаимно кодированного видеоблока, используемого для среза, и другую информацию, с тем чтобы декодировать видеоблок текущего видеосреза. В другом примере этого раскрытия сущности, синтаксический элемент, принимаемый посредством видеодекодера 30 из потока битов, включает в себя синтаксические элементы в одном или более из адаптивного набора параметров (адаптивного набора параметров, APS), набора параметров последовательности (набора параметров последовательности (SPS)), набора параметров изображения (набора параметров изображения (PPS)) или заголовка среза.

[00164] Блок 310 обратного квантования может быть выполнен с возможностью выполнять обратное квантование (т.е. деквантование) для квантованного коэффициента преобразования, предоставленного в потоке битов и декодированного посредством блока 304 энтропийного декодирования. Процесс обратного квантования может включать в себя: использование параметра квантования, вычисленного посредством видеокодера 20 для каждого видеоблока в видеосрезе, для того, чтобы определять степень квантования, которая должна применяться, и определять степень обратного квантования, которая должна применяться.

[00165] Блок 312 обработки обратного преобразования выполнен с возможностью применять обратное преобразование (например, обратное DCT, обратное целочисленное преобразование или концептуально аналогичный процесс обратного преобразования) к коэффициенту преобразования, чтобы формировать остаточный блок в выборочной области.

[00166] Блок 314 восстановления (например, сумматор 314) выполнен с возможностью суммировать блок 313 обратного преобразования (т.е. восстановленный остаточный блок 313) с блоком 365 прогнозирования, с тем чтобы получать восстановленный блок 315 в выборочной области, например, посредством суммирования выборочного значения восстановленного остаточного блока 313 с выборочным значением блока 365 прогнозирования.

[00167] Блок 320 контурной фильтрации (в контуре кодирования или после контура кодирования) выполнен с возможностью фильтровать восстановленный блок 315 для того, чтобы получать фильтрованный блок 321, с тем чтобы плавно выполнять выборочное преобразование или повышать качество видео. В примере, блок 320 контурной фильтрации может быть выполнен с возможностью выполнять любую комбинацию следующих технологий фильтрации. Блок 320 контурной фильтрации имеет намерение представлять один или более контурных фильтров, например, фильтр удаления блочности, фильтр на основе дискретизированного адаптивного смещения (дискретизированного адаптивного смещения, SAO) или другой фильтр, такой как билатеральный фильтр, адаптивный контурный фильтр (адаптивный контурный фильтр, ALF), повышающий резкость или сглаживающий фильтр или совместный фильтр. Хотя блок 320 контурной фильтрации показывается на фиг. 3 в качестве внутриконтурного фильтра, блок 320 контурной фильтрации может реализовываться как контурный постфильтр в других конфигурациях.

[00168] Декодированный видеоблок 321 в данном кадре или изображении затем сохраняется в буфере 330 декодированных изображений, который сохраняет опорное изображение, используемое для последующей компенсации движения.

[00169] Декодер 30 выполнен с возможностью выводить декодированное изображение 31 посредством использования вывода 332 и т.п., представлять декодированное изображение 31 пользователю или предоставлять декодированное изображение 31 для просмотра пользователем.

[00170] Другое варьирование видеодекодера 30 может быть выполнено с возможностью декодировать сжатый поток битов. Например, декодер 30 может формировать выходной видеопоток без блока 320 контурной фильтрации. Например, декодер 30 не на основе преобразования может непосредственно деквантовать остаточный сигнал без блока 312 обработки обратного преобразования для некоторых блоков или кадров. В другой реализации, видеодекодер 30 может иметь блок 310 обратного квантования и блок 312 обработки обратного преобразования, которые комбинируются в один блок.

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

[00172] Следует понимать, что другая структурная разновидность видеодекодера 30 может быть выполнена с возможностью декодировать кодированный поток видеобитов. Например, видеодекодер 30 может формировать выходной видеопоток без необходимости для фильтра 320 выполнять обработку. Альтернативно, для некоторых блоков изображения или кадров изображения, блок 304 энтропийного декодирования видеодекодера 30 не получает квантованный коэффициент посредством декодирования, и, соответственно, нет необходимости для блока 310 обратного квантования и блока 312 обработки обратного преобразования выполнять обработку. Контурный фильтр 320 является необязательным, и в случае сжатия без потерь, блок 310 обратного квантования и блок 312 обработки обратного преобразования являются необязательными. Следует понимать, что, в различных сценариях применения, блок взаимного прогнозирования и блок внутреннего прогнозирования могут использоваться избирательно.

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

[00174] Например, дополнительно может обрабатываться вектор движения управляющей точки текущего блока изображения или вектор движения субблока текущего блока изображения, который извлекается из вектора движения соседнего блока аффинного кодирования. Это не ограничено в этой заявке. Например, значение вектора движения ограничивается таким образом, что оно находится внутри конкретного диапазона битовых ширин. При условии, что разрешенная битовая ширина вектора движения составляет bitDepth, значение вектора движения варьируется от -2^(bitDepth-1) до 2^(bitDepth-1)-1, где символ "^" представляет возведение в степень. Если bitDepth равен 16, значение варьируется в диапазоне от -32768 до 32767. Если bitDepth равен 18, значение варьируется в диапазоне от -131072 до 131071. В качестве другого примера, значение вектора движения (например, векторов MV движения четырех субблоков 4×4 в одном блоке изображения 8×8) ограничивается таким образом, что максимальная разность между целочисленными частями MV четырех субблоков 4×4 не превышает N выборок, например, не превышает одну выборку.

[00175] Следующие два способа могут использоваться для того, чтобы ограничивать значение вектора движения таким образом, что оно находится в пределах конкретного диапазона битовых ширин:

[00176] Способ 1: Избыточный старший бит вектора движения удаляется:

ux=(vx+2bitDepth)%2bitDepth

vx=( ux ≥ 2bitDepth-1) ? (ux-2bitDepth): ux

uy=( vy+2bitDepth)%2bitDepth

vy=( uy ≥ 2bitDepth-1) ? (uy-2bitDepth): uy

[00177] В данном документе, vx является горизонтальным компонентом вектора движения блока изображения или субблоком блока изображения, vy является вертикальным компонентом вектора движения блока изображения или субблока блока изображения, ux и uy являются промежуточными значениями, и bitDepth представляет битовую ширину.

[00178] Например, значение vx составляет -32769 и составляет 32767, полученные согласно вышеприведенным формулам. Значение сохраняется в компьютере в форме двоичного дополнительного кода, двоичный дополнительный код -32769 составляет 10111111111111111 (17 битов), и компьютер отбрасывает старший бит, когда возникает переполнение. Следовательно, значение vx составляет 0111111111111111, т.е. 32767, что является согласованным с результатом, полученным согласно формулам.

[00179] Способ 2: Отсечение выполняется для вектора движения, как показано в нижеприведенной формуле:

vx=Clip3(-2bitDepth-1, 2bitDepth-1-1, vx)

vy=Clip3(-2bitDepth-1, 2bitDepth-1-1, vy)

[00180] В данном документе, vx является горизонтальным компонентом вектора движения блока изображения или субблока блока изображения, vy является вертикальным компонентом вектора движения блока изображения или субблока блока изображения, x, y, и z соответствуют трем входным значениям процесса MV-фиксации Clip3, и Clip3 представляет отсечение значения z в диапазон [x, y].

Clip3 (x, y, z)=

[00181] Фиг. 4 является принципиальной структурной схемой устройства 400 кодирования видео (например, устройства 400 кодирования видео или устройства 400 декодирования видео) согласно варианту осуществления этой заявки. Устройство 400 кодирования видео является подходящим для реализации вариантов осуществления, описанных в этом подробном описании. В варианте осуществления, устройство 400 кодирования видео может представлять собой видеодекодер (например, декодер 30 на фиг. 1A) или видеокодер (например, кодер 20 на фиг. 1A). В другом варианте осуществления, устройство 400 кодирования видео может представлять собой один или более компонентов декодера 30 на фиг. 1A или кодера 20 на фиг. 1A.

[00182] Устройство 400 кодирования видео включает в себя: входной порт 410 и блок 420 приемного устройства (Rx), которые выполнены с возможностью принимать данные; процессор, логический блок или центральный процессор 430 (CPU), который выполнен с возможностью обрабатывать данные; блок 440 передающего устройства (Tx) и выходной порт 450, которые выполнены с возможностью передавать данные; и запоминающее устройство 460, выполненное с возможностью сохранять данные. Устройство 400 кодирования видео дополнительно может включать в себя оптоэлектрический компонент и электрооптический (EO) компонент, соединенные с входным портом 410, блоком 420 приемного устройства, блоком 440 передающего устройства и выходным портом 450 для выхода или входа оптического сигнала или электрического сигнала.

[00183] Процессор 430 реализуется посредством аппаратных средств и программного обеспечения. Процессор 430 может реализовываться как одна или более микросхем, ядер CPU (например, как многоядерный процессор), FPGA, ASIC и DSP. Процессор 430 обменивается данными с входным портом 410, блоком 420 приемного устройства, блоком 440 передающего устройства, выходным портом 450 и запоминающим устройством 460. Процессор 430 включает в себя модуль 470 кодирования (например, модуль 470 кодирования или модуль 470 декодирования). Модуль 470 кодирования/декодирования реализует варианты осуществления, раскрытые в этом подробном описании, чтобы реализовывать способ прогнозирования блоков сигналов цветности, предоставленный в вариантах осуществления этой заявки. Например, модуль 470 кодирования/декодирования выполняет, обрабатывает или предоставляет различные операции кодирования. Следовательно, модуль 470 кодирования/декодирования существенно расширяет функции устройства 400 кодирования видео и влияет на переключение устройства 400 кодирования видео между различными состояниями. Альтернативно, модуль 470 кодирования/декодирования реализуется как инструкция, сохраненная в запоминающем устройстве 460 и выполняемая посредством процессора 430.

[00184] Запоминающее устройство 460 включает в себя один или более дисков, накопителей на ленте и полупроводниковых накопителей и может использоваться в качестве избыточного устройства хранения данных для того, чтобы сохранять программы, когда эти программы выбираются для выполнения, и сохранять инструкции и данные, которые считываются во время выполнения программ. Запоминающее устройство 460 может быть энергозависимым и/или энергонезависимым и может представлять собой постоянное запоминающее устройство (ROM), оперативное запоминающее устройство (RAM), троичное ассоциативное запоминающее устройство (троичное ассоциативное запоминающее устройство, TCAM) и/или статическое оперативное запоминающее устройство (SRAM).

[00185] Фиг. 5 является упрощенной блок-схемой оборудования 500, которое может использоваться в качестве одного или обоих из исходного устройства 12 и целевого устройства 14 на фиг. 1A согласно примерному варианту осуществления. Оборудование 500 может реализовывать технологии этой заявки. Другими словами, фиг. 5 является принципиальной блок-схемой реализации устройства кодирования или устройства декодирования (устройства 500 кодирования сокращенно) согласно варианту осуществления этой заявки. Устройство 500 кодирования может включать в себя процессор 510, запоминающее устройство 530 и систему 550 шин. Процессор и запоминающее устройство соединяются через систему шин. Запоминающее устройство выполнено с возможностью сохранять инструкцию. Процессор выполнен с возможностью выполнять инструкцию, сохраненную в запоминающем устройстве. Запоминающее устройство устройства кодирования сохраняет программный код, и процессор устройства кодирования может активировать программный код, сохраненный в запоминающем устройстве, чтобы осуществлять способ кодирования или декодирования видео, описанный в данной заявке. Чтобы исключать повторение, подробности не описываются в данном документе.

[00186] В этом варианте осуществления этой заявки, процессор 510 может представлять собой центральный процессор (центральный процессор, "CPU" сокращенно). Альтернативно, процессор 510 может представлять собой другой процессор общего назначения, процессор цифровых сигналов (DSP), специализированную интегральную схему (ASIC), программируемую пользователем вентильную матрицу (FPGA) либо другое программируемое логическое устройство, дискретный логический элемент или логическое устройство на транзисторах, дискретный аппаратный компонент и т.п. Процессор общего назначения может представлять собой микропроцессор, любой традиционный процессор и т.п.

[00187] Запоминающее устройство 530 может включать в себя постоянное запоминающее устройство (ROM) или оперативное запоминающее устройство (RAM). Любой другой надлежащий тип устройства хранения данных может использоваться в качестве запоминающего устройства 530. Запоминающее устройство 530 может включать в себя код и данные 531, доступные для процессора 510 через шину 550. Запоминающее устройство 530 дополнительно может включать в себя операционную систему 533 и прикладную программу 535. Прикладная программа 535 включает в себя, по меньшей мере, одну программу, которая обеспечивает возможность процессору 510 осуществлять способ кодирования или декодирования видео (в частности, способ взаимного прогнозирования, описанный в данной заявке), описанный в данной заявке. Например, прикладная программа 535 может включать в себя приложения 1-N и дополнительно включает в себя приложение для кодирования или декодирования видео (приложение для кодирования видео сокращенно) для осуществления способа кодирования или декодирования видео, описанного в данной заявке.

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

[00189] Необязательно, устройство 500 кодирования дополнительно может включать в себя одно или более устройств вывода, например, дисплей 570. В примере, дисплей 570 может представлять собой сенсорный дисплей, который комбинирует дисплей и сенсорный элемент, который выполнен с возможностью считывать сенсорный ввод. Дисплей 570 может соединяться с процессором 510 через шину 550.

[00190] Далее подробно описываются решения в вариантах осуществления этой заявки.

[00191] Кодирование видео главным образом включает в себя такие процессы, как внутреннее прогнозирование (внутреннее прогнозирование), взаимное прогнозирование (взаимное прогнозирование), преобразование (преобразование), квантование (квантование), энтропийное кодирование (энтропийное кодирование) и внутриконтурная фильтрация (внутриконтурная фильтрация) (главным образом фильтрация для удаления блочности, фильтрация для удаления блочности). После того, как изображение сегментируется на блоки кодирования, выполняется внутреннее прогнозирование или взаимное прогнозирование. Затем, после того, как остаток получается, выполняются преобразование и квантование. В завершение, энтропийное кодирование выполняется, и поток битов выводится. В данном документе, блок кодирования представляет собой массив MxN, включающий в себя выборки (M может быть равно N или может не быть равно N). Помимо этого, выборочное значение каждого выборочного местоположения известно.

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

[00193] Взаимное прогнозирование заключается в том, чтобы выполнять поиск в восстановленном изображении на предмет совпадающего опорного блока для текущего блока кодирования в текущем изображении для того, чтобы получать информацию движения текущего блока кодирования и затем вычислять информацию прогнозирования или предиктор (информация и значение не различаются далее) выборочного значения выборки в текущем блоке кодирования на основе информации движения. Процесс вычислении информации движения называется "оценкой движения (оценкой движения, ME)", и процесс вычисления предиктора выборочного значения выборки в текущем блоке кодирования называется "компенсацией движения (компенсацией движения, MC)".

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

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

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

[00197] После того, как информация прогнозирования получается через внутреннее прогнозирование или взаимное прогнозирование, остаточная информация получается посредством вычитания соответствующей информации прогнозирования из выборочного значения выборки в текущем блоке кодирования. Затем остаточная информация преобразуется посредством использования способа дискретного косинусного преобразования (дискретного косинусного преобразования, DCT) и т.п., и поток битов получается через квантование и энтропийное кодирование. После того, как прогнозный сигнал комбинируется с восстановленным остаточным сигналом, фильтрация должна выполняться для того, чтобы получать восстановленный сигнал. Восстановленный сигнал используется в качестве опорного сигнала для последующего кодирования.

[00198] Декодирование представляет собой обратный процесс относительно кодирования. Например, остаточная информация сначала получается посредством энтропийного декодирования, обратного квантования и обратного преобразования, и поток битов декодируется, чтобы определять то, выполняется внутреннее прогнозирование или взаимное прогнозирование для текущего блока кодирования. Если внутреннее прогнозирование выполняется, информация прогнозирования конструируется на основе выборочного значения выборки в восстановленной области вокруг текущего блока кодирования посредством использования способа внутреннего прогнозирования. Если взаимное прогнозирование выполняется, информация движения должна получаться посредством синтаксического анализа, опорный блок определяется в восстановленном изображении на основе информации движения, полученной посредством синтаксического анализа, и выборочное значение выборки в блоке используется в качестве информации прогнозирования. Этот процесс называется "компенсацией движения (компенсацией движения, MC)". Восстановленная информация может получаться посредством комбинирования информации прогнозирования и остаточной информации и выполнения операции фильтрации.

[00199] В HEVC, два режима взаимного прогнозирования используются: режим усовершенствованного прогнозирования векторов движения (усовершенствованного прогнозирования векторов движения, AMVP) и режим объединения (объединения).

[00200] В AMVP-режиме, список возможных вариантов векторов движения конструируется на основе информации движения пространственно соседнего блока кодирования или временно соседнего блока кодирования по отношению к текущему блоку кодирования. Затем оптимальный вектор движения определяется в списке возможных вариантов векторов движения и используется в качестве предиктора вектора движения (предиктора вектора движения, MVP) текущего блока кодирования. Функция затрат на искажение в зависимости от скорости передачи вычисляется согласно формуле J=SAD+λ, где J является функцией затрат на искажение в зависимости от скорости передачи (RD-затрат), SAD является суммой абсолютных разностей (суммой абсолютных разностей, SAD) между исходным выборочным значением и прогнозированным выборочным значением, полученным через оценку движения посредством использования возможного варианта предиктора вектора движения, R является скоростью передачи битов, и λ является множителем Лагранжа. Сторона кодера передает значение индекса выбранного предиктора вектора движения в списке возможных вариантов векторов движения и значение индекса опорного кадра стороне декодера. Дополнительно, поиск движения выполняется в окружении, центрированном на MVP для того, чтобы получать фактический вектор движения текущего блока кодирования. Сторона кодера передает разность (разность векторов движения) между MVP и фактическим вектором движения стороне декодера.

[00201] В режиме объединения, список возможных вариантов информации движения конструируется на основе информации движения пространственно соседнего блока кодирования или временно соседнего блока кодирования по отношению к текущему блоку кодирования. Затем оптимальная информация движения определяется в списке возможных вариантов информации движения на основе функции затрат на искажение в зависимости от скорости передачи и используется в качестве информации движения текущего блока кодирования. Затем, значение индекса (ниже обозначается как индекс объединения) местоположения оптимальной информации движения в списке возможных вариантов информации движения передается на сторону декодера. Возможный вариант пространственной информации движения и возможный вариант временной информации движения текущего блока кодирования показаны на фиг. 6. Возможный вариант пространственной информации движения выбирается из пяти пространственно соседних блоков (A0, A1, B0, B1 и B2). Если соседний блок является недоступным, или режим взаимного прогнозирования используется, информация движения соседнего блока не добавляется в список возможных вариантов информации движения. Возможный вариант временной информации движения текущего блока кодирования получается посредством масштабирования MV блока в соответствующем местоположении в опорном кадре на основе номеров в последовательности изображений (номера в последовательности изображений, POC) опорного кадра и текущего кадра. Сначала определяется то, доступен или нет блок в местоположении T в опорном кадре. Если блок является недоступным, блок в местоположении C выбирается.

[00202] При взаимном прогнозировании в HEVC, все выборки в блоке кодирования имеют идентичную информацию движения, и затем компенсация движения выполняется на основе информации движения для того, чтобы получать предикторы выборок в блоке кодирования.

[00203] Видеопоследовательность включает в себя конкретное количество изображений, которые обычно называются "кадрами (кадром)". Соседние изображения обычно являются аналогичными, т.е. возникает существенная избыточность. Компенсация движения выполняется для того, чтобы увеличивать коэффициент сжатия посредством исключения избыточности между соседними кадрами. Компенсация движения представляет собой способ для описания разности между соседними кадрами ("соседний" в данном документе указывает то, что два кадра являются соседними с точки зрения взаимосвязи при кодировании, но не обязательно являются соседними с точки зрения последовательности воспроизведения), и составляет часть процесса взаимного прогнозирования. До того, как выполняется компенсация движения, информация движения блока кодирования получена через оценку движения или декодирование потоков битов. Информация движения главным образом включает в себя: (1) направление прогнозирования блока кодирования, включающее в себя прямое прогнозирование, обратное прогнозирование и двунаправленное прогнозирование, причем прямое прогнозирование указывает то, что блок кодирования прогнозируется посредством использования предыдущего кодированного кадра, обратное прогнозирование указывает то, что блок кодирования прогнозируется посредством использования последующего кодированного кадра, и двунаправленное прогнозирование указывает то, что блок кодирования прогнозируется посредством использования прямого и обратного кодированных кадров; (2) индекс опорного кадра блока кодирования, который указывает кадр, в котором расположен опорный блок текущего блока кодирования; и (3) вектор MV движения блока кодирования, который указывает смещение при движении блока кодирования относительно опорного блока, причем MV включает в себя горизонтальный компонент (обозначается как MVx) и вертикальный компонент (обозначается как MVy), которые, соответственно, указывают смещение при движении блока кодирования относительно опорного блока в горизонтальном направлении и смещение при движении блока кодирования относительно опорного блока в вертикальном направлении. Когда прямое прогнозирование или обратное прогнозирование выполняется для блока кодирования, предусмотрен только один MV. Когда двунаправленное прогнозирование выполняется для блока кодирования, предусмотрено два MV. Фиг. 7 показывает описания вышеприведенной информации движения. На фиг. 7 и в нижеприведенных описаниях относительно информации движения и информации прогнозирования, 0 указывает "прямой", и 1 указывает "обратный". Например, Ref0 представляет прямой опорный кадр, Ref1 представляет обратный опорный кадр, MV0 представляет прямой вектор движения, и MV1 представляет обратный вектор движения. A, B и C, соответственно, представлять прямой опорный блок, текущий блок кодирования и обратный опорный блок, соответственно. Cur означает текущий кадр кодирования, и пунктирная линия указывает след от движения B. Компенсация движения представляет собой процесс нахождения опорного блока на основе информации движения и обработки опорного блока для того, чтобы получать блок прогнозирования блока кодирования.

[00204] Базовый процесс компенсации движения прямого прогнозирования заключается в следующем. Как показано на фиг. 7, текущий блок кодирования представляет собой блок B, и ширина и высота B, соответственно, составляют W и H. В этом случае, распознается, на основе информации движения, то, что прямой опорный кадр текущего блока B кодирования представляет собой Ref0-кадр, и прямой вектор движения текущего блока B кодирования является представляет собой MV0=(MV0x, MV0y). Когда блок B кодирования в Cur-кадре кодируется, идентичная координатная точка сначала находится в Ref0-кадре на основе координат (i, j) левого верхнего угла B в Cur-кадре, и блок B' в Ref0 может получаться на основе ширины и высоты блока B. Затем блок B' перемещается в блок A на основе MV0 B'. В завершение, обработка интерполяции выполняется для блока A для того, чтобы получать блок прогнозирования текущего блока B кодирования. Выборочное значение каждой выборки в блоке прогнозирования текущего блока B кодирования называется "предиктором" соответствующей выборки в блоке B. Процесс компенсации движения при обратном прогнозировании является идентичным процессу компенсации движения при прямом прогнозировании, и отличие заключается только в опорном направлении. Следует отметить, что блоки прогнозирования, полученные через компенсацию движения при обратном прогнозировании и компенсацию движения при прямом прогнозировании, соответственно, называются "блоком прямого прогнозирования" и "блоком обратного прогнозирования". Когда двунаправленное прогнозирование не выполняется для блока кодирования, полученный блок прямого прогнозирования и полученный блок обратного прогнозирования представляют собой блоки прогнозирования текущего блока кодирования.

[00205] Для двунаправленного прогнозирования, блок прямого прогнозирования и блок обратного прогнозирования получаются, соответственно, во время компенсации движения при прямом прогнозировании и компенсации движения при обратном прогнозировании на основе информации движения, и затем блок прогнозирования блока B кодирования получается через прогнозирование со взвешиванием и двунаправленный оптический поток (двунаправленный оптический поток, BIO или BDOF) для выборочных значений в идентичном местоположении в блоке прямого прогнозирования и блоке обратного прогнозирования.

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

(1)

[00207] В формуле (1), PredB(i, j), PredA(i, j) и PredC(i, j), соответственно, являются предикторами блока прогнозирования, блока прямого прогнозирования и блока обратного прогнозирования текущего блока кодирования в координатах (i, j), и ω0 и ω1 (0≤ω0≤1, 0≤ω1≤1 и ω0+ω1=1) являются весовыми коэффициентами, и значения ω0 и ω1 могут варьироваться в зависимости от кодера. Обычно, ω0 и ω1 составляют 1/2.

[00208] Фиг. 8 показывает пример получения блока прогнозирования текущего блока кодирования через суммирование со взвешиванием. На фиг. 8, PredB, PredA и PredC, соответственно, являются блоком прогнозирования, блоком прямого прогнозирования и блоком обратного прогнозирования текущего блока кодирования и имеют размер 4×4. Значение небольшого блока в блоке прогнозирования является предиктором точки, и система координат устанавливается для PredB, PredA и PredC с левым верхним углом в качестве начала координат. Например, предиктор PredB в координатах (0,0) составляет:

[00209] Предиктор PredB в координатах (0,1) составляет:

[00210] Другие точки последовательно вычисляются, и подробности не описываются.

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

[00212] В BIO, компенсация движения при двунаправленном прогнозировании выполняется для текущей CU для того, чтобы получать блок прямого прогнозирования и блок обратного прогнозирования, затем детализированный вектор движения каждого субблока 4×4 в текущей CU извлекается на основе прямого предиктора и обратного предиктора, и в завершение, компенсация выполняется снова для каждой выборки в текущем блоке кодирования, чтобы в итоге получать блок прогнозирования текущей CU.

[00213] Детализированный вектор (vx, vy) движения каждого субблока 4×4 получается посредством применения BIO к окну ω 6×6 вокруг субблока, чтобы минимизировать предикторы L0 и L1. В частности, (vx, vy) извлекается согласно формуле:

(2)

[00214] В данном документе, является функцией floor (floor(A) представляет максимальное целое число, не большее A); и представляет собой пороговое значение для предотвращения некорректной передачи, вызываемой посредством чрезмерно большого детализированного вектора движения; и ; BD является битовой шириной текущей выборки; операция ? указывает то, что если S1>0, , и в противном случае, vx=0; и является операцией побитового "AND".

[00215] S1, S2, S3, S5 и S6 вычисляются согласно следующей формуле:

(3)

[00216] В формуле:

(4)

[00217] В данном документе, I(k)(i, j) является предиктором выборочного местоположения (i, j) в текущей CU (k равен 0 или 1, 0 указывает "прямой", и 1 указывает "обратный", что является идентичным нижеописанному), и и , соответственно, являются горизонтальным градиентом и вертикальным градиентом выборочного местоположения (i, j) и получаются согласно следующей формуле:

(5)

[00218] После того, как детализированный вектор движения получается согласно формуле (2), конечный предиктор каждой выборки в текущем блоке определяется согласно следующей формуле:

(6)

[00219] и являются , и , и является функцией округления (округлением).

[00220] Детализированный вектор движения субблока 4×4 должен вычисляться посредством использования прямого и обратного предикторов I(k)(i, j) и прямого и обратного горизонтального и вертикального градиентов и области 6×6, в которой расположен субблок 4×4, и градиент области 6×6 должен вычисляться посредством использования предиктора области 8×8. Следовательно, когда прямой и обратный предикторы получаются посредством использования интерполяционного фильтра, расширение должно выполняться вокруг на две строки и два столбца, соответственно для того, чтобы получать блок прогнозной выборки с размером (W+4)*(H+4), с тем чтобы вычислять градиент (W+2)*(H+2), где W является шириной текущей CU, и H является высотой текущей CU.

[00221] Чтобы уменьшать сложность BIO, специальная обработка выполняется для границы CU в предшествующем уровне техники.

[00222] Во-первых, предиктор области W*H получается посредством использования 8-отводного фильтра, и расширение выполняется вокруг только на одну строку и один столбец. Предиктор расширенной области получается посредством использования билинейного фильтра, с тем чтобы получать прогнозированное выборочное значение области (W+2)*(H+2).

[00223] Затем градиент области W*H может вычисляться на основе прогнозированного выборочного значения области (W+2)*(H+2) и формулы (5).

[00224] В завершение, согласно способу дополнения, расширение выполняется для градиента области W*H вокруг для того, чтобы получать градиент области (W+2)*(H+2), и расширение выполняется для предиктора области W*H вокруг для того, чтобы получать предиктор области (W+2)*(H+2). Дополнение показывается на фиг. 9, т.е. выборочное значение края назначается расширенной области.

[00225] Конкретный процесс реализации BIO заключается в следующем:

[00226] Этап 1: Определение информации движения текущей CU.

[00227] Информация движения текущей CU может определяться посредством использования режима объединения, AMVP-режима (см. описания в разделе уровня техники) или другого режима. Это не ограничено в данном документе.

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

[00229] Этап 2: Определение того, удовлетворяет или нет текущая CU условию использования BIO.

[00230] Если двунаправленное прогнозирование выполняется для текущей CU, и взаимосвязь между номером POC_L0 прямого опорного кадра, номером POC_L1 обратного опорного кадра и номером POC_Cur текущего кадра удовлетворяет следующей формуле, текущая CU удовлетворяет условию использования BIO:

(POC_L0-POC_Cur)*(POC_L1-POC_Cur)<0

[00231] Следует отметить, что то, используется или нет BIO, также может определяться посредством определения того, превышает или нет размер текущей CU предварительно установленное пороговое значение. Например, BIO может использоваться только тогда, когда высота H текущей CU превышает или равна 8, и ширина W текущей CU превышает или равна 8.

[00232] Следует отметить, что другое условие использования BIO также может применяться к этой заявке. Подробности не описываются в данном документе.

[00233] Если текущая CU удовлетворяет условию использования BIO, этап 3 выполняется, и в противном случае, компенсация движения выполняется другим способом.

[00234] Этап 3: Вычисление прямых и обратных предикторов текущей CU.

[00235] Компенсация движения выполняется посредством использования информации движения для того, чтобы получать прямой и обратный предикторы I(k)(i, j), где i=-1…cuW и j=-1…cuH (матрица прогнозирования (cuW+2)*(cuH+2) получается).

[00236] В I(k)(i, j), i=0…cuW-1 и j=0…cuH-1, которые получаются посредством выполнения интерполяции посредством использования 8-отводного интерполяционного фильтра и предиктора другого местоположения (расширение на одну строку и один столбец выполняется), получаются посредством выполнения интерполяции посредством использования билинейного интерполяционного фильтра.

[00237] Следует отметить, что предиктор расширенной области также может получаться посредством использования другого способа, например, посредством использования 8-отводного интерполяционного фильтра или посредством непосредственного использования опорной выборки в целочисленном выборочном местоположении. Это не ограничено в данном документе.

[00238] Следует отметить, что SAD между прямым и обратным предикторами вычисляется, чтобы определять то, меньше или нет SAD порогового TH_CU, и если SAD меньше порогового TH_CU, BIO не выполняется, либо в противном случае, BIO выполняется. Другой способ определения также может применяться к этой заявке, и подробности не описываются в данном документе.

[00239] Формула для вычисления SAD является следующей:

(7)

[00240] Пороговое значение TH_CU может задаваться равным (1<<(BD-8+shift))*cuW*cuH, и сдвиг может задаваться равным Max(2, 14-BD).

[00241] Этап 4: Вычисление горизонтального и вертикального градиентов на основе прямого и обратного предикторов текущей CU.

[00242] Горизонтальный и вертикальный градиенты и вычисляются на основе прямого и обратного предикторов согласно формуле (4), где i=0…cuW-1 и j=0…cuH-1 (матрица прогнозирования cuW*cuH получается).

[00243] Этап 5: Выполнение дополнения для прямого и обратного предикторов текущей CU и горизонтальных и вертикальных градиентов.

[00244] Дополнение выполняется посредством использования способа на фиг. 9 для того, чтобы получать I(k)(i, j), , и , где i =-1…cuW и j =-1…cuH (матрица прогнозирования (cuW+2)*(cuH+2), матрица горизонтальных градиентов и матрица вертикальных градиентов получается).

[00245] Этап 6: Извлечение детализированного вектора движения каждого субблока 4×4 и затем выполнение взвешивания.

[00246] Для каждого субблока 4×4, vx и vy получаются согласно формуле (2). В завершение, взвешивание выполняется согласно формуле (6) для того, чтобы получать предиктор каждого субблока 4×4.

[00247] Следует отметить, что SAD между прямым и обратным предикторами каждого субблока 4×4 может вычисляться, чтобы определять то, меньше или нет SAD порогового значения TH_SCU. Если SAD меньше порогового значения TH_SCU, усреднение со взвешиванием непосредственно выполняется, либо в противном случае, vx и vy получаются согласно формуле (2), и затем взвешивание выполняется согласно формуле (6). Другой способ определения также может применяться к этой заявке, и подробности не описываются в данном документе. TU_SCU может задаваться равным 1<<(BD-3+shift).

[00248] Виртуальная конвейерная единица данных (VPDU, виртуальные конвейерные единицы данных) представляет собой неперекрывающуюся единицу обработки сигнала цветности сигнала яркости MxM/единицу обработки сигнала цветности NXN. Для аппаратного декодера, последовательные VPDU обрабатываются одновременно на различных конвейерных уровнях. Различные VPDU обрабатываются одновременно на различных конвейерных уровнях.

[00249] Принцип VPDU-разбиения заключается в следующем:

[00250] (1) Если VPDU включает в себя одну или более CU, CU полностью включается в VPDU.

[00251] (2) Если CU включает в себя одну или более VPDU, VPDU полностью включается в CU.

[00252] В предшествующем уровне техники, размер VPDU составляет 64×64. Как показано на фиг. 10, пунктирная линия представляет границу VPDU, и сплошная линия представляет границу CU. Фиг. 11 показывает недопустимое CU-разбиение.

[00253] Когда CU включает в себя множество VPDU, аппаратный декодер разбивает VPDU на последовательные VPDU для обработки. Например, если размер CU представляет собой 128×128, и размер VPDU представляет собой 64×64, четыре последовательных VPDU обрабатываются.

[00254] Техническая проблема, которая должна разрешаться в этой заявке, состоит в том, что когда компенсация движения выполняется для CU через BIO, способ обработки граничной выборки CU отличается от способа обработки внутренней выборки CU. Если предусмотрена граница VPDU-разбиения в CU, во время BIO-прогнозирования для того, чтобы обеспечивать то, что результат VPDU-обработки является согласованным с результатом CU-обработки, граница должна обрабатываться способом внутренней выборки CU, и в силу этого сложность реализации увеличивается.

[00255] Ссылаясь на фиг 12, вариант осуществления этой заявки предоставляет способ взаимного прогнозирования. Способ может применяться к блоку 244 взаимного прогнозирования в кодере, показанном на фиг. 2, или к блоку 344 взаимного прогнозирования в декодере, показанном на фиг. 3. Способ может представлять собой способ двунаправленного взаимного прогнозирования и включает в себя следующие этапы.

[00256] Этап 101: Выбор меньшей ширины для предварительно установленной ширины Width разбиения изображений и ширины cuW подлежащего обработке блока изображения, причем меньшая ширина обозначается как blkW и используется в качестве ширины первого блока изображения, и выбор меньшей высоты для предварительно установленной высоты Height разбиения изображений и высоты cuH подлежащего обработке блока изображения, причем меньшая высота обозначается как blkH и используется в качестве высоты первого блока изображения.

[00257] Когда способ в этом варианте осуществления применяется к кодеру, при кодировании изображения, кодер разбивает изображение на подлежащие обработке блоки изображения. На этом этапе, подлежащий обработке блок изображения получается, и затем меньшая ширина blkW=min(Width, cuW) выбирается, и меньшая ширина blkW используется в качестве ширины первого блока изображения, и меньшая высота blkH=min(Height, cuH) выбирается, и меньшая высота blkH используется в качестве высоты первого блока изображения.

[00258] Когда способ в этом варианте осуществления применяется к декодеру, декодер принимает поток видеобитов из кодера, и поток видеобитов включает в себя подлежащий обработке блок изображения. На этом этапе, подлежащий обработке блок изображения извлекается из потока видеобитов, и затем меньшая ширина blkW=min(Width, cuW) выбирается, и меньшая ширина blkW используется в качестве ширины первого блока изображения, и меньшая высота blkH=min(Height, cuH) выбирается, и меньшая высота blkH используется в качестве высоты первого блока изображения.

[00259] Предварительно установленная ширина Width разбиения изображений и предварительно установленная высота Height разбиения изображений, соответственно, равны могут быть ширине и высоте VPDU. Альтернативно, предварительно установленная ширина Width разбиения изображений составляет такое значение, как 64, 32 или 16, и предварительно установленная высота Height разбиения изображений составляет такое значение, как 64, 32 или 16. Например, Width=64 и Height=64 или Width=32 и Height=32, или Width=16 и Height=16, или Width=64 и Height=32, или Width=32 и Height=64, или Width=64 и Height=16, или Width=16 и Height=64, или Width=32 и Height=16, или Width=16 и Height=32.

[00260] Этап 102: Определение множества первых блоков изображения в подлежащем обработке блоке изображения на основе ширины blkW и высоты blkH первого блока изображения.

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

[00262] Предиктор любого первого блока изображения получается согласно операциям на следующих этапах 103-107.

[00263] Этап 103: Получение первого блока прогнозирования первого блока изображения на основе информации движения подлежащего обработке блока изображения, причем ширина первого блока прогнозирования превышает ширину первого блока изображения, и высота первого блока прогнозирования превышает высоту первого блока изображения.

[00264] Информация движения подлежащего обработке блока изображения включает в себя информацию движения первого блока изображения, и информация движения первого блока изображения включает в себя такую информацию, как опорное изображение и вектор движения. В этом варианте осуществления, способ двунаправленного прогнозирования на основе оптических потоков (т.е. вышеприведенная связанная с BIO или BDOF технология) используется для взаимного прогнозирования. Следовательно, информация движения первого блока изображения включает в себя такую информацию, как прямое опорное изображение, обратное опорное изображение, прямой вектор движения и обратный вектор движения.

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

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

[00267] Первый блок прогнозирования первого блока изображения включает в себя первый блок прямого прогнозирования и первый блок обратного прогнозирования. На этом этапе, первый блок прямого прогнозирования и первый блок обратного прогнозирования первого блока изображения могут получаться на следующих этапах (1)-(8). Этапы (1)-(8) могут заключаться в следующем:

[00268] (1): Определение первой прямой области в прямом опорном изображении на основе первого местоположения первого блока изображения в подлежащем обработке блоке изображения и информации движения первого блока изображения, причем ширина первой прямой области составляет blkW+2, и высота первой прямой области составляет blkH+2.

[00269] Например, ссылаясь на фиг 13, информация движения первого блока B изображения включает в себя прямое опорное изображение Ref0, обратное опорное изображение Ref1, прямой вектор MV0 движения и обратный вектор MV1 движения. Вторая прямая область B11 определяется в прямом опорном изображении Ref0 на основе первого местоположения первого блока B изображения, причем ширина второй прямой области B11 составляет blkW, и высота второй прямой области B11 составляет blkH. Третья прямая область B12 определяется на основе прямого вектора MV0 движения и местоположения второй прямой области B11, причем ширина третьей прямой области B12 составляет blkW, и высота третьей прямой области B12 составляет blkH. Первая прямая область A1, включающая в себя третью прямую область B12, определяется, причем ширина первой прямой области A1 составляет blkW+2, высота первой прямой области A1 составляет blkH+2, и центр третьей прямой области B12 совпадает с центром первой прямой области A1.

[00270] (2): Определение того, совпадает или нет угловое местоположение первой прямой области с выборочным местоположением в прямом опорном изображении в прямом опорном изображении; и если угловое местоположение первой прямой области совпадает с выборочным местоположением в прямом опорном изображении, получение блока изображения в первой прямой области из прямого опорного изображения, которое служит в качестве первого блока прямого прогнозирования первого блока изображения; либо если угловое местоположение первой прямой области не совпадает с выборочным местоположением в прямом опорном изображении, выполнение этапа (3).

[00271] Например, ссылаясь на фиг 13, левый верхний угол первой прямой области A1 используется в качестве примера. При условии, что угловое местоположение левого верхнего угла первой прямой области A1 представляет собой (15, 16) в прямом опорном изображении Ref0, угловое местоположение левого верхнего угла совпадает с выборочным местоположением в прямом опорном изображении Ref0, и выборочное местоположение в прямом опорном изображении Ref0 представляет собой (15, 16). В качестве другого примера, при условии, что угловое местоположение левого верхнего угла первой прямой области A1 представляет собой (15,3, 16,2) в прямом опорном изображении Ref0, угловое местоположение левого верхнего угла не совпадает с выборочным местоположением в прямом опорном изображении Ref0, т.е. отсутствует выборка в местоположении (15,3, 16,2) в прямом опорном изображении Ref0.

[00272] (3): Определение выборки, ближайшей к угловому местоположению первой прямой области в прямом опорном изображении, и определение четвертой прямой области посредством использования выборки в качестве угла, причем ширина четвертой прямой области составляет blkW+2, и высота четвертой прямой области составляет blkH+2.

[00273] Для любого углового местоположения первой прямой области, предполагается, что левое верхнее угловое местоположение первой прямой области используется в качестве примера. Выборка, ближайшая к левому верхнему угловому местоположению, определяется в прямом опорном изображении, и четвертая прямая область определяется посредством использования выборки в качестве левого верхнего угла. Ширина четвертой прямой области составляет blkW+2, и высота четвертой прямой области составляет blkH+2.

[00274] Например, ссылаясь на фиг 13, угловое местоположение левого верхнего угла первой прямой области A1 представляет собой (15,3, 16,2), и местоположение выборки, ближайшей к угловому местоположению (15,3, 16,2), определяется в качестве (15, 16) в прямом опорном изображении Ref0. Четвертая прямая область A2 определяется посредством использования выборки в местоположении (15, 16) в качестве левого верхнего угла. Ширина четвертой прямой области A2 составляет blkW+2, и высота четвертой прямой области A2 составляет blkH+2.

[00275] (4): Определение пятой прямой области, включающей в себя четвертую прямую область, причем центр четвертой прямой области совпадает с центром пятой прямой области, ширина пятой прямой области составляет blkW+n+1, и высота пятой прямой области составляет blkH+n+1; и получение блока изображения в пятой прямой области из прямого опорного изображения и выполнение интерполяционной фильтрации для блока изображения посредством использования интерполяционного фильтра для того, чтобы получать первый блок прямого прогнозирования первого блока изображения, причем ширина первого блока прямого прогнозирования составляет blkW+2, высота первого блока прямого прогнозирования составляет blkH+2, и n является количеством отводов интерполяционного фильтра.

[00276] Например, 8-отводный интерполяционный фильтр используется в качестве примера. Ссылаясь на фиг 13, пятая прямая область A3, включающая в себя четвертую прямую область A2, определяется. Центр четвертой прямой области A2 совпадает с центром пятой прямой области A3, ширина пятой прямой области A3 составляет blkW+9, и высота пятой прямой области A3 составляет blkH+9. Блок изображения в пятой прямой области A3 получается из прямого опорного изображения Ref0, и интерполяционная фильтрация выполняется для блока изображения посредством использования интерполяционного фильтра для того, чтобы получать первый блок прямого прогнозирования первого блока B изображения. Ширина первого блока прямого прогнозирования составляет blkW+2, и высота первого блока прямого прогнозирования составляет blkH+2.

[00277] (5): Определение первой обратной области в обратном опорном изображении на основе первого местоположения и информации движения первого блока изображения, причем ширина первой обратной области составляет blkW+2, и высота первой обратной области составляет blkH+2.

[00278] Например, ссылаясь на фиг 13, вторая обратная область C11 определяется в обратном опорном изображении Ref1 на основе первого местоположения первого блока B изображения, причем ширина второй обратной области C11 составляет blkW, и высота второй обратной области C11 составляет blkH. Третья обратная область C12 определяется на основе обратного вектора MV1 движения и местоположения второй обратной области C11, причем ширина третьей обратной области C12 составляет blkW, и высота третьей обратной области C12 составляет blkH. Первая обратная область D1, включающая в себя третью обратную область C12, определяется, причем ширина первой обратной области D1 составляет blkW+2, высота первой обратной области D1 составляет blkH+2, и центр третьей обратной области C12 может совпадать с центром первой обратной области D1.

[00279] (6): Определение того, совпадает или нет угловое местоположение первой обратной области с выборочным местоположением в обратном опорном изображении в обратном опорном изображении; и если угловое местоположение первой обратной области совпадает с выборочным местоположением в обратном опорном изображении, получение блока изображения в первой обратной области из обратного опорного изображения, которое служит в качестве первого блока обратного прогнозирования первого блока изображения; либо если угловое местоположение первой обратной области не совпадает с выборочным местоположением в обратном опорном изображении, выполнение этапа (7).

[00280] Например, ссылаясь на фиг 13, левый верхний угол первой обратной области A1 используется в качестве примера. При условии, что угловое местоположение левого верхнего угла первой обратной области D1 представляет собой (5, 6) в обратном опорном изображении Ref1, угловое местоположение левого верхнего угла совпадает с выборочным местоположением в обратном опорном изображении Ref0, и выборочное местоположение в обратном опорном изображении Ref0 представляет собой (5, 6). В качестве другого примера, при условии, что угловое местоположение левого верхнего угла первой обратной области D1 представляет собой (5,3, 6,2) в обратном опорном изображении Ref0, угловое местоположение левого верхнего угла не совпадает с выборочным местоположением в обратном опорном изображении Ref0, т.е. отсутствует выборка в местоположении (5,3, 6,2) в обратном опорном изображении Ref0.

[00281] (7): Определение выборки, ближайшей к угловому местоположению первой обратной области в обратном опорном изображении, и определение четвертой обратной области посредством использования выборки в качестве угла, причем ширина четвертой обратной области составляет blkW+2, и высота четвертой обратной области составляет blkH+2.

[00282] Для любого углового местоположения первой обратной области, предполагается, что левое верхнее угловое местоположение первой обратной области используется в качестве примера. Выборка, ближайшая к левому верхнему угловому местоположению, определяется в обратном опорном изображении, и четвертая обратная область определяется посредством использования выборки в качестве левого верхнего угла. Ширина четвертой обратной области составляет blkW+2, и высота четвертой обратной области составляет blkH+2.

[00283] Например, ссылаясь на фиг 13, угловое местоположение левого верхнего угла первой обратной области D1 представляет собой (5,3, 6,2), и местоположение выборки, ближайшей к угловому местоположению (5,3, 6,2), определяется в качестве (5, 6) в обратном опорном изображении Ref1. Четвертая обратная область D2 определяется посредством использования выборки в местоположении (5, 6) в качестве левого верхнего угла. Ширина четвертой обратной области D2 составляет blkW+2, и высота четвертой обратной области D2 составляет blkH+2.

[00284] (8): Определение пятой обратной области, включающей в себя четвертую обратную область, причем центр четвертой обратной области совпадает с центром пятой обратной области, ширина пятой обратной области составляет blkW+n+1, и высота пятой обратной области составляет blkH+n+1; и получение блока изображения в пятой обратной области из обратного опорного изображения и выполнение интерполяционной фильтрации для блока изображения посредством использования интерполяционного фильтра для того, чтобы получать первый блок обратного прогнозирования первого блока изображения, причем ширина первого блока обратного прогнозирования составляет blkW+2, и высота первого блока обратного прогнозирования составляет blkH+2.

[00285] Например, 8-отводный интерполяционный фильтр используется в качестве примера. Ссылаясь на фиг 13, пятая обратная область D3, включающая в себя четвертую обратную область D2, определяется. Центр четвертой обратной области D2 совпадает с центром пятой обратной области D3, ширина пятой обратной области D3 составляет blkW+9, и высота пятой обратной области D3 составляет blkH+9. Блок изображения в пятой обратной области D3 получается из обратного опорного изображения Ref1, и интерполяционная фильтрация выполняется для блока изображения посредством использования интерполяционного фильтра для того, чтобы получать первый блок обратного прогнозирования первого блока B изображения. Ширина первого блока обратного прогнозирования составляет blkW+2, и высота первого блока обратного прогнозирования составляет blkH+2.

[00286] Количество n отводов интерполяционного фильтра может составлять такое значение, как 6, 8 или 10.

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

[00288] Определяется то, удовлетворяют или нет номер кадра подлежащего обработке блока изображения, номер кадра прямого опорного изображения и номер кадра обратного опорного изображения предварительно установленному условию использования BIO. Если предварительно установленное условие использования BIO удовлетворяется, определяется то, что взаимное прогнозирование выполняется через BIO, и этот этап выполняется. Если предварительно установленное условие использования BIO не удовлетворяется, определяется то, что взаимное прогнозирование выполняется способом, отличным от BIO. Процесс реализации другого способа не описывается подробно в данном документе.

[00289] Предварительно установленное условие использования BIO может представлять собой условие, показанное в следующей первой формуле.

[00290] Первая формула является следующей: (POC_L0-POC_Cur)*(POC_L1-POC_Cur)<0.

[00291] В первой формуле, POC_L0 является номером кадра прямого опорного изображения, POC_Cur является номером кадра подлежащего обработке блока изображения, POC_L1 является номером кадра обратного опорного изображения, и * является операцией умножения.

[00292] На этом этапе, дополнительно может определяться, на основе первого блока прямого прогнозирования и первого блока обратного прогнозирования первого блока изображения, то, выполняется или нет взаимное прогнозирование через BIO, и когда определяется то, что взаимное прогнозирование выполняется через BIO, этап 104 выполняется. Процесс определения может заключаться в следующем:

[00293] SAD вычисляется на основе первого блока прямого прогнозирования и первого блока обратного прогнозирования первого блока изображения согласно следующей второй формуле. Если SAD превышает предварительно установленное пороговое значение TH_CU, определяется то, что взаимное прогнозирование выполняется через BIO, и этап 104 выполняется. Если SAD не превышает предварительно установленное пороговое значение TH_CU, определяется то, что взаимное прогнозирование выполняется способом, отличным от BIO. Процесс реализации другого способа не описывается подробно в данном документе.

[00294] Вторая формула является следующей: .

[00295] Во второй формуле, является предиктором выборки в i-ой строке и j-ом столбце первого блока обратного прогнозирования и является предиктором выборки в i-ой строке и j-ом столбце первого блока прямого прогнозирования.

[00296] TH_CU=(1<<(BD-8+shift))*blkW*blkH, shift=Max(2, 14-BD), где BD указывает битовую ширину текущей выборки, abs указывает операцию получения абсолютного значения, и << указывает операцию сдвига влево.

[00297] Этап 104: Выполнение операции взятия градиентов для первого блока прогнозирования первого блока изображения для того, чтобы получать первую матрицу градиентов первого блока изображения, причем ширина первой матрицы градиентов составляет blkW, и высота первой матрицы градиентов составляет blkH.

[00298] Первая матрица градиентов включает в себя первую матрицу прямых горизонтальных градиентов, первую матрицу прямых вертикальных градиентов, первую матрицу обратных горизонтальных градиентов и первую матрицу обратных вертикальных градиентов.

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

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

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

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

[00303] Третья формула является следующей:

.

[00304] В третьей формуле, значение k может быть равно 0 или 1, где 0 указывает "прямой", и 1 указывает "обратный"; является горизонтальным градиентом i-ой строки и j-ого столбца, где, когда k=0, является прямым горизонтальным градиентом i-ой строки и j-ого столбца, а когда k=1, является обратным горизонтальным градиентом i-ой строки и j-ого столбца; и >> является операцией сдвига вправо.

[00305] является предиктором выборки в (i+1)-ой строке и j-ом столбце первого блока прогнозирования, где, когда k=0, является предиктором выборки в (i+1)-ой строке и j-ом столбце первого блока прямого прогнозирования, а когда k=1, является предиктором выборки в (i+1)-ой строке и j-ом столбце первого блока обратного прогнозирования; и является предиктором выборки в (i-1)-ой строке и j-ом столбце первого блока прогнозирования, где, когда k=0, является предиктором выборки в (i-1)-ой строке и j-ом столбце первого блока прямого прогнозирования, а когда k=1, является предиктором выборки в (i-1)-ой строке и j-ом столбце первого блока обратного прогнозирования.

[00306] является предиктором выборки в i-ой строке и (j+1)-ом столбце первого блока прогнозирования, где, когда k=0, является предиктором выборки в i-ой строке и (j+1)-ом столбце первого блока прямого прогнозирования, а когда k=1, является предиктором выборки в i-ой строке и (j+1)-ого столбца в первом блоке обратного прогнозирования; и является предиктором выборки в i-ой строке и (j-1)-ом столбце первого блока прогнозирования, где, когда k=0, является предиктором выборки в i-ой строке и (j-1)-ом столбце первого блока прямого прогнозирования, а когда k=1, значение предиктора выборки в i-ой строке и (j-1)-ого столбца в первом блоке обратного прогнозирования.

[00307] Следует отметить, что, для первого блока прогнозирования с шириной в blkW+2 и высотой в blkH+2, первая матрица градиентов с шириной в blkW и высотой в blkH может получаться на основе первого блока прогнозирования согласно вышеприведенной третьей формуле. Первая матрица градиентов включает в себя первую матрицу горизонтальных градиентов с шириной в blkW и высотой в blkH и первую матрицу вертикальных градиентов с шириной в blkW и высотой в blkH. Таким образом, для первого блока прямого прогнозирования с шириной в blkW+2 и высотой в blkH+2, первая матрица прямых горизонтальных градиентов с шириной в blkW и высотой в blkH и первая матрица прямых вертикальных градиентов с шириной в blkW и высотой в blkH могут получаться на основе первого блока прямого прогнозирования согласно вышеприведенной третьей формуле. Для первого блока обратного прогнозирования с шириной в blkW+2 и высотой в blkH+2, первая матрица обратных горизонтальных градиентов с шириной в blkW и высотой в blkH и первая матрица обратных вертикальных градиентов с шириной в blkW и высотой в blkH могут получаться на основе первого блока обратного прогнозирования согласно вышеприведенной третьей формуле.

[00308] Этап 105: Выполнение первого расширения для ширины и высоты первой матрицы градиентов на основе градиента в краевом местоположении матрицы для первой матрицы градиентов, так что ширина и высота первой матрицы градиентов, полученной после первого расширения, соответственно, на две выборки больше ширины и высоты первого блока изображения.

[00309] Ширина и высота первой матрицы градиентов, полученной после первого расширения, соответственно, равны ширине и высоте первого блока прогнозирования. Ширина первого блока прогнозирования составляет blkW+2, и высота первого блока прогнозирования составляет blkH+2. Ширина первой матрицы градиентов также blkW+2, и высота первой матрицы градиентов также blkH+2.

[00310] На этом этапе, первое расширение отдельно выполняется для ширины и высоты первой матрицы прямых горизонтальных градиентов, ширины и высоты первой матрицы прямых вертикальных градиентов, ширины и высоты первой матрицы обратных горизонтальных градиентов и ширины и высоты первой матрицы обратных вертикальных градиентов, так что ширины первой матрицы прямых горизонтальных градиентов, первой матрицы прямых вертикальных градиентов, первой матрицы обратных горизонтальных градиентов и первой матрицы обратных вертикальных градиентов, полученных после первого расширения, составляют blkW+2, и высоты первой матрицы прямых горизонтальных градиентов, первой матрицы прямых вертикальных градиентов, первой матрицы обратных горизонтальных градиентов и первой матрицы обратных вертикальных градиентов, полученных после первого расширения, составляют blkH+2.

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

[00312] Этап 106: Вычисление детализирующего значения информации движения каждой базовой единицы обработки в первом блоке изображения на основе первого блока прогнозирования и первой матрицы градиентов.

[00313] Ширина базовой единицы обработки может составлять M, и высота базовой единицы обработки также может составлять M, т.е. базовая единица обработки представляет собой блок изображения, включающий в себя M*M выборок. Значение M может составлять такое значение, как 2, 3 или 4.

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

[00315] Этот этап может реализовываться посредством 1061-1064, и 1061-1064 может заключаться в следующем:

[00316] 1061: Разбиение первого блока изображения для того, чтобы получать каждую базовую единицу обработки, включенную в первый блок изображения, причем каждая базовая единица обработки представляет собой блок изображения с размером M*M.

[00317] 1062: Определение базового блока прогнозирования любой базовой единицы обработки в первом блоке прогнозирования на основе местоположения базовой единицы обработки, причем ширина базового блока прогнозирования составляет M+2, и высота базового блока прогнозирования составляет M+2.

[00318] При условии, что базовая единица обработки охватывает первую - M-ую строки и первый - M-ый столбцы первого блока изображения, блок изображения, охватывающий нулевую - (M+1)-ую строки и нулевой - (M+1)-ый столбцы первого блока прогнозирования, используется в качестве базового блока прогнозирования базовой единицы обработки.

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

[00320] 1063: Определение базовой матрицы градиентов базовой единицы обработки в первой матрице градиентов на основе местоположения базовой единицы обработки, причем ширина базовой матрицы градиентов составляет M+2, и высота базовой матрицы градиентов составляет M+2.

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

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

[00323] 1064. Вычисление детализирующего значения информации движения базовой единицы обработки на основе базового блока прогнозирования и базовой матрицы градиентов базовой единицы обработки.

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

[00325] Четвертая формула является следующей:

[00326] Пятая формула является следующей:

.

[00327] В вышеприведенной четвертой формуле, указывает то, что i=0, 1, …, и M+1 и j=0, 1, …, и M+1. В вышеприведенной пятой формуле, vx является горизонтальным детализирующим значением информации движения базовой единицы обработки; vy является вертикальным детализирующим значением информации движения базовой единицы обработки; является функцией floor (floor(A) представляет максимальное целое число, не большее A); и и .

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

[00329] Этап 107: Получение предиктора первого блока изображения на основе детализирующего значения информации движения каждой базовой единицы обработки, включенной в первый блок изображения.

[00330] Предиктор первого блока изображения включает в себя предиктор каждой выборки в каждой базовой единице обработки в первом блоке изображения.

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

[00332] Шестая формула является следующей:

.

[00333] В шестой формуле, является предиктором выборки в i-ой строке и j-ого столбца в базовой единице обработки, shift=15-BD, , и rnd() является округлением.

[00334] Предиктор каждого первого блока изображения в подлежащем обработке блоке изображения получается посредством повторного выполнения 103-107.

[00335] Этап 108: Получение предиктора подлежащего обработке блока изображения с комбинацией предикторов множества первых блоков изображения, включенных в подлежащий обработке блок изображения.

[00336] Способ взаимного прогнозирования, показанный на фиг. 12, может обобщаться в качестве этапов 1-6, и этапы 1-6 могут заключаться в следующем:

[00337] Этап 1: Определение информации движения текущей CU.

[00338] Информация движения текущей CU может определяться посредством использования режима объединения, AMVP-режима (см. описания в разделе уровня техники) или другого режима. Это не ограничено в данном документе.

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

[00340] Этап 2: Определение того, удовлетворяет или нет текущая CU условию использования BIO.

[00341] Если двунаправленное прогнозирование выполняется для текущей CU, и взаимосвязь между номером POC_L0 прямого опорного кадра, номером POC_L1 обратного опорного кадра и номером POC_Cur текущего кадра удовлетворяет следующей формуле, текущая CU удовлетворяет условию использования BIO:

(POC_L0-POC_Cur)*(POC_L1-POC_Cur)<0

[00342] Следует отметить, что то, используется или нет BIO, также может определяться посредством определения того, превышает или нет размер текущей CU предварительно установленное пороговое значение. Например, BIO может использоваться только тогда, когда высота H текущей CU превышает или равна 8, и ширина W текущей CU превышает или равна 8.

[00343] Следует отметить, что другое условие использования BIO также может применяться к этой заявке. Подробности не описываются в данном документе.

[00344] Если текущая CU удовлетворяет условию использования BIO, этап 3 выполняется, либо в противном случае, компенсация движения выполняется другим способом.

[00345] VPDU-размер получается: VPDU_X и VPDU_Y, и параметры blkW и blkH задаются.

blkW=Min(cuW, VPDU_X)

blkH=Min(cuH, VPDU_Y)

[00346] Функция Min указывает то, что минимальное значение выбирается.

[00347] Например, если CU-размер представляет собой 128×128, и VPDU-размер представляет собой 64×64, blkW равен 64, и blkH равен 64.

[00348] Например, если CU-размер представляет собой 128×128, и VPDU-размер представляет собой 128×32, blkW равен 128, и blkH равен 32.

[00349] Например, если CU-размер представляет собой 128×128, и VPDU-размер представляет собой 32×128, blkW равен 32, и blkH равен 128.

[00350] Необязательно, если размер максимального модуля обработки взаимного прогнозирования меньше VPDU-размера, blkW и blkH могут задаваться согласно следующим формулам:

blkW=Min(cuW, MAX_MC_X)

blkH=Min(cuH, MAX_MC_Y)

[00351] Например, если CU-размер представляет собой 128×128, и размер максимального модуля обработки взаимного прогнозирования представляет собой 32×32, blkW равен 32, и blkH равен 32.

[00352] Каждая CU разбивается на основе blkW и blkH, чтобы выполнять BIO.

[00353] Этап 3: Вычисление прямого и обратного предикторов текущей CU.

[00354] Компенсация движения выполняется посредством использования информации движения для того, чтобы получать прямой и обратный предикторы I(k)(i, j), где i=-1…blkW и j=-1…blkH (матрица прогнозирования (blkW+2)*(blkH+2) получается).

[00355] В I(k)(i, j), i=0…blkW-1 и j=0…blkH, которые получаются посредством выполнения интерполяции посредством использования 8-отводного интерполяционного фильтра и предиктора другого местоположения (расширение на одну строку и один столбец выполняется) получаются посредством выполнения интерполяции посредством использования билинейного интерполяционного фильтра.

[00356] Следует понимать, что предиктор может получаться посредством использования VPDU в качестве минимальной единицы получения предиктора, либо предиктор может получаться посредством использования блока, меньшего VPDU, в качестве минимальной единицы получения предиктора. Это не ограничено.

[00357] Следует отметить, что предиктор расширенной области также может получаться посредством использования другого способа, например, посредством использования 8-отводного интерполяционного фильтра или посредством непосредственного использования опорной выборки в целочисленном выборочном местоположении. Это не ограничено в данном документе.

[00358] Следует отметить, что SAD между прямым и обратным предикторами вычисляется, чтобы определять то, меньше или нет SAD порогового TH_CU, и если SAD меньше порогового TH_CU, BIO не выполняется, либо в противном случае, BIO выполняется. Другой способ определения также может применяться к этой заявке, и подробности не описываются в данном документе.

[00359] Формула для вычисления SAD является следующей:

(8)

[00360] Пороговое значение TH_CU может задаваться равным (1<<(BD-8+shift))*blkW*blkH, и сдвиг может задаваться равным Max(2, 14-BD).

[00361] Этап 4: Вычисление горизонтального и вертикального градиентов на основе прямого и обратного предикторов текущей CU.

[00362] Горизонтальный и вертикальный градиенты и вычисляются на основе прямого и обратного предикторов согласно формуле (4), где i=0…blkW-1 и j=0…blkH-1 (матрица градиентов blkW*blkH получается).

[00363] Этап 5: Выполнение дополнения для прямого и обратного предикторов текущей CU и горизонтальных и вертикальных градиентов.

[00364] Дополнение выполняется посредством использования способа, показанного на фиг. 9 для того, чтобы получать I(k)(i, j),

[00365] Этап 6: Извлечение детализированного вектора движения каждого субблока 4×4 и затем выполнение взвешивания.

[00366] Для каждого субблока 4×4, vx и vy получаются согласно формуле (2). В завершение, взвешивание выполняется согласно формуле (6) для того, чтобы получать предиктор каждого субблока 4×4.

[00367] Следует отметить, что SAD между прямым и обратным предикторами каждого субблока 4×4 может вычисляться, чтобы определять то, меньше или нет SAD порогового значения TH_SCU. Если SAD меньше порогового значения TH_SCU, усреднение со взвешиванием непосредственно выполняется, либо в противном случае, vx и vy получаются согласно формуле (2), и затем взвешивание выполняется согласно формуле (6). Другой способ определения также может применяться к этой заявке, и подробности не описываются в данном документе. TU_SCU может задаваться равным 1<<(BD-3+shift).

[00368] В этом варианте осуществления этой заявки, меньшая ширина выбирается для предварительно установленной ширины Width разбиения изображений и ширины cuW подлежащего обработке блока изображения и обозначается как blkW, меньшая высота выбирается для предварительно установленной высоты Height разбиения изображений и высоты cuH подлежащего обработке блока изображения и обозначается как blkH, и первый блок изображения, включенный в подлежащий обработке блок изображения, определяется на основе blkW и blkH. Следовательно, зона каждого определенного первого блока изображения не является очень большой, так что меньшее количество аппаратных ресурсов, таких как ресурсы пространства запоминающего устройства, расходуется, когда обработка взаимного прогнозирования выполняется для каждого первого блока изображения, за счет этого уменьшая сложность реализации и повышая эффективность обработки взаимного прогнозирования.

[00369] Ссылаясь на фиг 14, вариант осуществления этой заявки предоставляет способ взаимного прогнозирования. Способ может применяться к блоку 244 взаимного прогнозирования в кодере, показанном на фиг. 2, или к блоку 344 взаимного прогнозирования в декодере, показанном на фиг. 3. Способ может представлять собой способ двунаправленного взаимного прогнозирования и включает в себя следующие этапы.

[00370] Этапы 201 и 202 являются идентичными этапам 101 и 102, соответственно, и подробности не описываются повторно в данном документе.

[00371] Этап 203: Получение первого блока прогнозирования первого блока изображения на основе информации движения подлежащего обработке блока изображения, причем ширина первого блока прогнозирования равна ширине первого блока изображения, и высота первого блока прогнозирования равна высоте первого блока изображения.

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

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

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

[00375] Первый блок прогнозирования первого блока изображения включает в себя первый блок прямого прогнозирования и первый блок обратного прогнозирования. На этом этапе, первый блок прямого прогнозирования и первый блок обратного прогнозирования первого блока изображения могут получаться на следующих этапах (1)-(8). Этапы (1)-(8) могут заключаться в следующем:

[00376] (1): Определение первой прямой области в прямом опорном изображении на основе первого местоположения первого блока изображения и информации движения первого блока изображения, причем ширина первой прямой области составляет blkW, и высота первой прямой области составляет blkH.

[00377] Например, ссылаясь на фиг 15, информация движения первого блока B изображения включает в себя прямое опорное изображение Ref0, обратное опорное изображение Ref1, прямой вектор MV0 движения и обратный вектор MV1 движения. Вторая прямая область B11 определяется в прямом опорном изображении Ref0 на основе первого местоположения первого блока B изображения, причем ширина второй прямой области B11 составляет blkW, и высота второй прямой области B11 составляет blkH. Первая прямая область B12 определяется на основе прямого вектора MV0 движения и местоположения второй прямой области B11, причем ширина первой прямой области B12 составляет blkW, и высота первой прямой области B12 составляет blkH.

[00378] (2): Определение того, совпадает или нет угловое местоположение первой прямой области с выборочным местоположением в прямом опорном изображении в прямом опорном изображении; и если угловое местоположение первой прямой области совпадает с выборочным местоположением в прямом опорном изображении, получение блока изображения в первой прямой области из прямого опорного изображения, который служит в качестве первого блока прямого прогнозирования первого блока изображения; либо если угловое местоположение первой прямой области не совпадает с выборочным местоположением в прямом опорном изображении, выполнение этапа (3).

[00379] Например, ссылаясь на фиг 15, левый верхний угол первой прямой области B12 используется в качестве примера. При условии, что угловое местоположение левого верхнего угла первой прямой области B12 представляет собой (15, 16) в прямом опорном изображении Ref0, угловое местоположение левого верхнего угла совпадает с выборочным местоположением в прямом опорном изображении Ref0, и выборочное местоположение в прямом опорном изображении Ref0 представляет собой (15, 16). В качестве другого примера, при условии, что угловое местоположение левого верхнего угла первой прямой области B12 представляет собой (15,3, 16,2) в прямом опорном изображении Ref0, угловое местоположение левого верхнего угла не совпадает с выборочным местоположением в прямом опорном изображении Ref0, т.е. отсутствует выборка в местоположении (15,3, 16,2) в прямом опорном изображении Ref0.

[00380] (3): Определение выборки, ближайшей к угловому местоположению первой прямой области в прямом опорном изображении, и определение третьей прямой области посредством использования выборки в качестве угла, причем ширина третьей прямой области составляет blkW, и высота третьей прямой области составляет blkH.

[00381] Для любого углового местоположения первой прямой области, предполагается, что левое верхнее угловое местоположение первой прямой области используется в качестве примера. Выборка, ближайшая к левому верхнему угловому местоположению, определяется в прямом опорном изображении, и третья прямая область определяется посредством использования выборки в качестве левого верхнего угла. Ширина третьей прямой области составляет blkW, и высота третьей прямой области составляет blkH.

[00382] Например, ссылаясь на фиг 15, угловое местоположение левого верхнего угла первой прямой области B12 представляет собой (15,3, 16,2), и местоположение выборки, ближайшей к угловому местоположению (15,3, 16,2), определяется в качестве (15, 16) в прямом опорном изображении Ref0. Третья прямая область A1 определяется посредством использования выборки в местоположении (15, 16) в качестве левого верхнего угла. Ширина третьей прямой области A1 составляет blkW, и высота третьей прямой области A1 составляет blkH.

[00383] (4): Определение четвертой прямой области, включающей в себя третью прямую область, причем центр третьей прямой области совпадает с центром четвертой прямой области, ширина четвертой прямой области составляет blkW+n-1, и высота четвертой прямой области составляет blkH+n-1; и получение блока изображения в четвертой прямой области из прямого опорного изображения и выполнение интерполяционной фильтрации для блока изображения посредством использования интерполяционного фильтра для того, чтобы получать первый блок прямого прогнозирования первого блока изображения, причем ширина первого блока прямого прогнозирования составляет blkW, высота первого блока прямого прогнозирования составляет blkH, и n является количеством отводов интерполяционного фильтра.

[00384] Например, 8-отводный интерполяционный фильтр используется в качестве примера. Ссылаясь на фиг 15, четвертая прямая область A2, включающая в себя третью прямую область A1, определяется. Центр третьей прямой области A1 совпадает с центром четвертой прямой области A2, и ширина четвертой прямой области A2 составляет blkW+7, и высота четвертой прямой области A2 составляет blkH+7. Блок изображения в четвертой прямой области A2 получается из прямого опорного изображения Ref0, и интерполяционная фильтрация выполняется для блока изображения посредством использования интерполяционного фильтра для того, чтобы получать первый блок прямого прогнозирования первого блока B изображения. Ширина первого блока прямого прогнозирования составляет blkW, и высота первого блока прямого прогнозирования составляет blkH.

[00385] (5): Определение первой обратной области в обратном опорном изображении на основе первого местоположения и информации движения первого блока изображения, причем ширина первой обратной области составляет blkW, и высота первой обратной области составляет blkH.

[00386] Например, ссылаясь на фиг 15, вторая обратная область C11 определяется в обратном опорном изображении Ref1 на основе первого местоположения первого блока B изображения, причем ширина второй обратной области C11 составляет blkW, и высота второй обратной области C11 составляет blkH. Первая обратная область C12 определяется на основе обратного вектора MV1 движения и местоположения второй обратной области C12, причем ширина первой обратной области C12 составляет blkW, и высота первой обратной области C12 составляет blkH.

[00387] (6): Определение того, совпадает или нет угловое местоположение первой обратной области с выборочным местоположением в обратном опорном изображении в обратном опорном изображении; и если угловое местоположение первой обратной области совпадает с выборочным местоположением в обратном опорном изображении, получение блока изображения в первой обратной области из обратного опорного изображения, которое служит в качестве первого блока обратного прогнозирования первого блока изображения; либо если угловое местоположение первой обратной области не совпадает с выборочным местоположением в обратном опорном изображении, выполнение этапа (7).

[00388] Например, ссылаясь на фиг 15, левый верхний угол первой обратной области C12 используется в качестве примера. При условии, что угловое местоположение левого верхнего угла первой обратной области C12 представляет собой (5, 6) в обратном опорном изображении Ref1, угловое местоположение левого верхнего угла совпадает с выборочным местоположением в обратном опорном изображении Ref1, и выборочное местоположение в обратном опорном изображении Ref1 представляет собой (5, 6). В качестве другого примера, при условии, что угловое местоположение левого верхнего угла первой обратной области C12 представляет собой (5,3, 6,2) в обратном опорном изображении Ref1, угловое местоположение левого верхнего угла не совпадает с выборочным местоположением в обратном опорном изображении Ref0, т.е. отсутствует выборка в местоположении (5,3, 6,2) в обратном опорном изображении Ref0.

[00389] (7): Определение выборки, ближайшей к угловому местоположению первой обратной области в обратном опорном изображении, и определение третьей обратной области посредством использования выборки в качестве угла, причем ширина третьей обратной области составляет blkW, и высота третьей обратной области составляет blkH.

[00390] Для любого углового местоположения первой обратной области, предполагается, что левое верхнее угловое местоположение первой обратной области используется в качестве примера. Выборка, ближайшая к левому верхнему угловому местоположению, определяется в обратном опорном изображении, и третья обратная область определяется посредством использования выборки в качестве левого верхнего угла. Ширина третьей обратной области составляет blkW, и высота третьей обратной области составляет blkH.

[00391] Например, ссылаясь на фиг 15, угловое местоположение левого верхнего угла первой обратной области C12 представляет собой (5,3, 6,2), и местоположение выборки, ближайшей к угловому местоположению (5,3, 6,2), определяется в качестве (5, 6) в обратном опорном изображении Ref1. Третья обратная область D1 определяется посредством использования выборки в местоположении (5, 6) в качестве левого верхнего угла. Ширина третьей обратной области D1 составляет blkW, и высота третьей обратной области D1 составляет blkH.

[00392] (8): Определение четвертой обратной области, включающей в себя третью обратную область, причем центр третьей обратной области совпадает с центром четвертой обратной области, ширина четвертой обратной области составляет blkW+n-1, и высота четвертой обратной области составляет blkH+n-1; и получение блока изображения в четвертой обратной области из обратного опорного изображения и выполнение интерполяционной фильтрации для блока изображения посредством использования интерполяционного фильтра для того, чтобы получать первый блок обратного прогнозирования первого блока изображения, причем ширина первого блока обратного прогнозирования составляет blkW, и высота первого блока обратного прогнозирования составляет blkH.

[00393] Например, 8-отводный интерполяционный фильтр используется в качестве примера. Ссылаясь на фиг 15, четвертая обратная область D2, включающая в себя третью обратную область D1, определяется. Центр третьей обратной области D1 совпадает с центром четвертой обратной области D2, ширина четвертой обратной области D2 составляет blkW+7, и высота четвертой обратной области D2 составляет blkH+7. Блок изображения в четвертой обратной области D2 получается из обратного опорного изображения Ref1, и интерполяционная фильтрация выполняется для блока изображения посредством использования интерполяционного фильтра для того, чтобы получать первый блок обратного прогнозирования первого блока B изображения. Ширина первого блока обратного прогнозирования составляет blkW, и высота первого блока обратного прогнозирования составляет blkH.

[00394] Когда этот этап выполняется, дополнительно может определяться, на основе информации движения подлежащего обработке блока изображения, то, выполняется или нет взаимное прогнозирование через BIO, и когда определяется то, что взаимное прогнозирование выполняется через BIO, этот этап выполняется. Для получения информации по процессу определения, см. связанный контент на этапе 103 в варианте осуществления, показанном на фиг. 12. Подробности не описываются повторно в данном документе.

[00395] На этом этапе, дополнительно может определяться, на основе первого блока прямого прогнозирования и первого блока обратного прогнозирования первого блока изображения, то, выполняется или нет взаимное прогнозирование через BIO, и когда определяется то, что взаимное прогнозирование выполняется через BIO, этап 204 выполняется. Для получения информации по процессу определения, см. связанный контент на этапе 103 в варианте осуществления, показанном на фиг. 12. Подробности не описываются повторно в данном документе.

[00396] Этап 204: Выполнение операции взятия градиентов для первого блока прогнозирования первого блока изображения для того, чтобы получать первую матрицу градиентов первого блока изображения, причем ширина первой матрицы градиентов составляет blkW-2, и высота первой матрицы градиентов составляет blkH-2.

[00397] Первая матрица градиентов включает в себя первую матрицу прямых горизонтальных градиентов, первую матрицу прямых вертикальных градиентов, первую матрицу обратных горизонтальных градиентов и первую матрицу обратных вертикальных градиентов.

[00398] Ширина первой матрицы прямых горизонтальных градиентов, ширина первой матрицы прямых вертикальных градиентов, ширина первой матрицы обратных горизонтальных градиентов и ширина первой матрицы обратных вертикальных градиентов может составлять blkW-2, и высота первой матрицы прямых горизонтальных градиентов, высота первой матрицы прямых вертикальных градиентов, высота первой матрицы обратных горизонтальных градиентов и высота первой матрицы обратных вертикальных градиентов может составлять blkH-2.

[00399] На этом этапе, для получения информации по процессу подробной реализации выполнения операции взятия градиентов для первого блока прогнозирования первого блока изображения, см. связанный контент на этапе 104 в варианте осуществления, показанном на фиг. 12. Подробности не описываются повторно в данном документе.

[00400] Этап 205: Выполнение первого расширения для ширины и высоты первой матрицы градиентов на основе градиента в краевом местоположении матрицы для первой матрицы градиентов, так что ширина и высота первой матрицы градиентов, полученной после первого расширения, соответственно, на две выборки больше ширины и высоты первого блока изображения.

[00401] Ширина и высота первой матрицы градиентов, полученной после первого расширения, соответственно, равны ширине blkW+2 и высоте blkH+2 первого блока прогнозирования.

[00402] На этом этапе, первое расширение отдельно выполняется для ширины и высоты первой матрицы прямых горизонтальных градиентов, ширины и высоты первой матрицы прямых вертикальных градиентов, ширины и высоты первой матрицы обратных горизонтальных градиентов и ширины и высоты первой матрицы обратных вертикальных градиентов, так что ширины первой расширенной матрицы прямых горизонтальных градиентов, первой матрицы прямых вертикальных градиентов, первой матрицы обратных горизонтальных градиентов и первой матрицы обратных вертикальных градиентов, полученных после первого расширения, составляют blkW+2, и высоты первой матрицы прямых горизонтальных градиентов, первой матрицы прямых вертикальных градиентов, первой матрицы обратных горизонтальных градиентов и первой матрицы обратных вертикальных градиентов, полученных после первого расширения, составляют blkH+2.

[00403] Для получения информации по способу выполнения первого расширения для первой матрицы градиентов, см. связанный контент на этапе 205 в варианте осуществления, показанном на фиг. 12. Подробности не описываются повторно в данном документе.

[00404] Этап 206: Репликация выборочного значения в краевом местоположении блока первого блока прогнозирования для того, чтобы выполнять второе расширение для ширины и высоты первого блока прогнозирования, причем ширина и высота первого блока прогнозирования, полученного после второго расширения, составляют blkW+2 и blkH+2.

[00405] На этом этапе, выборочное значение в краевом местоположении блока первого блока прямого прогнозирования реплицируется, и выборочное значение в краевом местоположении блока первого блока обратного прогнозирования реплицируется, чтобы выполнять второе расширение для ширины и высоты первого блока прямого прогнозирования и выполнять второе расширение для ширины и высоты первого блока обратного прогнозирования. Таким образом, на этом этапе, ширина и высота первого блока прямого прогнозирования, полученного после второго расширения, соответственно, составляют blkW+2 и blkH+2, и ширина и высота первого блока обратного прогнозирования, полученного после второго расширения, соответственно, составляют blkW+2 и blkH+2.

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

[00407] Необязательно, на этапе 203, предполагается, что блок изображения с шириной в blkW и высотой в blkH в опорном изображении непосредственно используется в качестве первого блока прогнозирования первого блока изображения, т.е. ссылаясь на фиг 15, блок изображения в первой прямой области B12 используется в качестве первого блока прямого прогнозирования в прямой опорной схеме Ref0, и блок изображения в первой обратной области C12 используется в качестве первого блока обратного прогнозирования в обратной опорной схеме Ref1. В этом случае, первый блок прогнозирования представляет собой блок изображения в опорном изображении. В этом случае, круг выборок, окружающих первый блок прогнозирования и ближайший к первому блоку прогнозирования, выбирается из опорного изображения, и выбранный круг выборок и первого блока прогнозирования формирует первый блок прогнозирования с шириной в blkW+2 и высотой в blkH+2, полученный после второго расширения.

[00408] Необязательно, на этапе 203, первый блок прогнозирования первого блока изображения получается посредством использования интерполяционного фильтра. В этом случае, первый блок прогнозирования не представляет собой блок изображения в опорном изображении. Для выборки на любом краю первого блока прогнозирования (для простоты описания, край называется "первым краем"), второе местоположение каждой выборки, включенной во второй край, получается на основе первого местоположения каждой выборки на первом краю в опорном изображении. Второй край расположен за пределами первого блока прогнозирования, и расстояние между вторым краем и первым краем составляет одну выборку. Второй край включает в себя blkW+2 выборок или blkH+2 выборок. Для каждой выборки на втором краю, второе местоположение выборки в опорном изображении расположено между двумя соседними выборками или между четырьмя соседними выборками, и интерполяционная фильтрация выполняется для двух соседних выборок или четырех соседних выборок посредством использования интерполяционного фильтра для того, чтобы получать выборку. Второй край, соответствующий каждому краю первого блока прогнозирования, получается вышеприведенным способом, и каждый полученный второй край и первый блок прогнозирования формируют первый блок прогнозирования с шириной в blkW+2 и высотой в blkH+2, полученной после второго расширения.

[00409] Этап 206 альтернативно может выполняться перед этапом 204. Таким образом, когда первый блок прогнозирования, полученный после второго расширения, получается, операция взятия градиентов может выполняться для первого блока прогнозирования, полученного после второго расширения для того, чтобы получать первую матрицу градиентов первого блока изображения. Поскольку ширина первого блока прогнозирования, полученного после второго расширения, составляет blkW+2, и высота первого блока прогнозирования, полученного после второго расширения, составляет blkH+2, ширина полученной первой матрицы градиентов составляет blkW, и высота полученной первой матрицы градиентов составляет blkH. Затем первое расширение выполняется для ширины и высоты первой матрицы градиентов на основе градиента в краевом местоположении матрицы для первой матрицы градиентов, так что ширина и высота первой матрицы градиентов, полученной после первого расширения, соответственно, на две выборки больше ширины и высоты первого блока изображения.

[00410] Этапы 207-209 являются идентичными этапам 106-108, соответственно, и подробности не описываются повторно в данном документе.

[00411] Способ взаимного прогнозирования, показанный на фиг. 16A и фиг. 16B, может обобщаться в качестве этапов 1-6, и этапы 1-6 могут заключаться в следующем:

[00412] Этап 1: Определение информации движения текущей CU.

[00413] Информация движения текущей CU может определяться посредством использования режима объединения, AMVP-режима (см. описания в разделе уровня техники) или другого режима. Это не ограничено в данном документе.

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

[00415] Этап 2: Определение того, удовлетворяет или нет текущая CU условию использования BIO.

[00416] Если двунаправленное прогнозирование выполняется для текущей CU, и взаимосвязь между номером POC_L0 прямого опорного кадра, номером POC_L1 обратного опорного кадра и номером POC_Cur текущего кадра удовлетворяет следующей формуле, текущая CU удовлетворяет условию использования BIO:

(POC_L0-POC_Cur)*(POC_L1-POC_Cur)<0

[00417] Следует отметить, что то, используется или нет BIO, также может определяться посредством определения того, превышает или нет размер текущей CU предварительно установленное пороговое значение. Например, BIO может использоваться только тогда, когда высота H текущей CU превышает или равна 8, и ширина W текущей CU превышает или равна 8.

[00418] Следует отметить, что другое условие использования BIO также может применяться к этой заявке. Подробности не описываются в данном документе.

[00419] Если текущая CU удовлетворяет условиям использования BIO, этап 3 выполняется, либо в противном случае, компенсация движения выполняется другим способом.

[00420] VPDU-размер получается: VPDU_X и VPDU_Y, и параметры blkW и blkH задаются.

blkW=Min(cuW, VPDU_X)

blkH=Min(cuH, VPDU_Y)

[00421] Например, если CU-размер представляет собой 128×128, и VPDU-размер представляет собой 64×64, blkW равен 64, и blkH равен 64.

[00422] Например, если CU-размер представляет собой 128×128, и VPDU-размер представляет собой 128×32, blkW равен 128, и blkH равен 32.

[00423] Например, если CU-размер представляет собой 128×128, и VPDU-размер представляет собой 32×128, blkW равен 32, и blkH равен 128.

[00424] Необязательно, если размер максимального модуля обработки взаимного прогнозирования меньше VPDU-размера, blkW и blkH могут задаваться согласно следующим формулам:

blkW=Min(cuW, MAX_MC_X)

blkH=Min(cuH, MAX_MC_Y)

[00425] Например, если CU-размер представляет собой 128×128, и размер максимального модуля обработки взаимного прогнозирования представляет собой 32×32, blkW равен 32, и blkH равен 32.

[00426] Каждая CU разбивается на основе blkW и blkH, чтобы выполнять BIO.

[00427] Этап 3: Вычисление прямого и обратного предикторов текущей CU.

[00428] Компенсация движения выполняется посредством использования информации движения для того, чтобы получать прямой и обратный предикторы I(k)(i, j), где i=0…blkW-1 и j=0…blkH-1 (матрица прогнозирования blkW*blkH получается).

[00429] Следует понимать, что предиктор может получаться посредством использования VPDU в качестве минимальной единицы получения предиктора, либо предиктор может получаться посредством использования блока, меньшего VPDU, в качестве минимальной единицы получения предиктора. Это не ограничено.

[00430] Этап 4: Вычисление горизонтального и вертикального градиентов на основе прямого и обратного предикторов текущей CU.

[00431] Горизонтальный и вертикальный градиенты и вычисляются на основе прямого и обратного предикторов согласно формуле (4), где i=1…blkW-2 и j=1…blkH-2 (матрица градиентов (blkW-2)*(blkH-2) получается).

[00432] Этап 5: Выполнение дополнения для прямого и обратного предикторов текущей CU и горизонтальных и вертикальных градиентов.

[00433] Дополнение выполняется посредством использования способа, показанного на фиг. 9 для того, чтобы получать I(k)(i, j), и , где i =-1…blkW и j =-1…blkH (дополнение выполняется для матрицы (blkW-2)*(blkH-2) вокруг на две строки и два столбца, чтобы получать матрицу прогнозирования (blkW+2)*(blkH+2), матрицу горизонтальных градиентов и матрицу вертикальных градиентов).

[00434] Этап 6: Извлечение детализированного вектора движения каждого субблока 4×4 и затем выполнение взвешивания.

[00435] Для каждого субблока 4×4, vx и vy получаются согласно формуле (2). В завершение, взвешивание выполняется согласно формуле (6) для того, чтобы получать предиктор каждого субблока 4×4.

[00436] В этом варианте осуществления этой заявки, меньшая ширина выбирается для предварительно установленной ширины Width разбиения изображений и ширины cuW подлежащего обработке блока изображения и обозначается как blkW, меньшая высота выбирается для предварительно установленной высоты Height разбиения изображений и высоты cuH подлежащего обработке блока изображения и обозначается как blkH, и первый блок изображения, включенный в подлежащий обработке блок изображения, определяется на основе blkW и blkH. Следовательно, зона каждого определенного первого блока изображения не является очень большой, так что меньшее пространство запоминающего устройства расходуется, когда обработка взаимного прогнозирования выполняется для каждого первого блока изображения. Помимо этого, первый блок прогнозирования первого блока изображения получается на основе информации движения первого блока изображения. Ширина первого блока прогнозирования равна ширине первого блока изображения, и высота первого блока прогнозирования равна высоте первого блока изображения. Следовательно, первый блок прогнозирования может быть относительно небольшим, так что меньшее количество аппаратных ресурсов, таких как CPU-ресурсы и ресурсы запоминающего устройства, расходуется для получения первого блока прогнозирования, за счет этого уменьшения сложности реализации и повышения эффективности обработки.

[00437] Ссылаясь на фиг 16A и фиг. 16B, вариант осуществления этой заявки предоставляет способ взаимного прогнозирования. Способ может применяться к блоку 244 взаимного прогнозирования в кодере, показанном на фиг. 2, или к блоку 344 взаимного прогнозирования в декодере, показанном на фиг. 3. Способ может представлять собой способ двунаправленного взаимного прогнозирования и включает в себя следующие этапы.

[00438] Этап 301: Сравнение ширины cuW первого блока изображения с предварительно установленной шириной Width разбиения изображений и сравнение высоты cuH первого блока изображения с предварительно установленной высотой Height разбиения изображений; и когда cuW превышает или равна Width, и/или когда cuH превышает или равна Height, выполнение этапа 302, либо когда cuW меньше Width, и cuH меньше Height, выполнение этапа 305.

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

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

[00441] Когда этот этап выполняется, дополнительно может определяться, на основе информации движения первого блока изображения, то, выполняется или нет взаимное прогнозирование через BIO, и когда определяется то, что взаимное прогнозирование выполняется через BIO, этот этап выполняется. Для получения информации по процессу подробной реализации, см. связанный контент на этапе 103 в варианте осуществления, показанном на фиг. 12. Подробности не описываются повторно в данном документе.

[00442] Этап 302: Получение второго блока прогнозирования первого блока изображения на основе информации движения первого блока изображения, причем ширина второго блока прогнозирования составляет cuW+4, и высота второго блока прогнозирования составляет cuH+4.

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

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

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

[00446] Второй блок прогнозирования первого блока изображения включает в себя второй блок прямого прогнозирования и второй блок обратного прогнозирования. На этом этапе, второй блок прямого прогнозирования и второй блок обратного прогнозирования первого блока изображения могут получаться на следующих этапах (1)-(8). Этапы (1)-(8) могут заключаться в следующем:

[00447] (1): Определение первой прямой области в прямом опорном изображении на основе первого местоположения первого блока изображения в подлежащем обработке блоке изображения и информации движения первого блока изображения, причем ширина первой прямой области составляет blkW+4, и высота первой прямой области составляет blkH+4.

[00448] Например, ссылаясь на фиг 13, информация движения первого блока B изображения включает в себя прямое опорное изображение Ref0, обратное опорное изображение Ref1, прямой вектор MV0 движения и обратный вектор MV1 движения. Вторая прямая область B11 определяется в прямом опорном изображении Ref0 на основе первого местоположения первого блока B изображения, причем ширина второй прямой области B11 составляет blkW, и высота второй прямой области B11 составляет blkH. Третья прямая область B12 определяется на основе прямого вектора MV0 движения и местоположения второй прямой области B11, причем ширина третьей прямой области B12 составляет blkW, и высота третьей прямой области B12 составляет blkH. Первая прямая область A1, включающая в себя третью прямую область B12, определяется, причем ширина первой прямой области A1 составляет blkW+4, высота первой прямой области A1 составляет blkH+4, и центр третьей прямой области B12 совпадает с центром первой прямой области A1.

[00449] (2): Определение того, совпадает или нет угловое местоположение первой прямой области с выборочным местоположением в прямом опорном изображении в прямом опорном изображении; и если угловое местоположение первой прямой области совпадает с выборочным местоположением в прямом опорном изображении, получение блока изображения в первой прямой области из прямого опорного изображения, которое служит в качестве второго блока прямого прогнозирования первого блока изображения; либо если угловое местоположение первой прямой области не совпадает с выборочным местоположением в прямом опорном изображении, выполнение этапа (3).

[00450] Например, ссылаясь на фиг 13, левый верхний угол первой прямой области A1 используется в качестве примера. При условии, что угловое местоположение левого верхнего угла первой прямой области A1 представляет собой (15, 16) в прямом опорном изображении Ref0, угловое местоположение левого верхнего угла совпадает с выборочным местоположением в прямом опорном изображении Ref0, и выборочное местоположение в прямом опорном изображении Ref0 представляет собой (15, 16). В качестве другого примера, при условии, что угловое местоположение левого верхнего угла первой прямой области A1 представляет собой (15,3, 16,2) в прямом опорном изображении Ref0, угловое местоположение левого верхнего угла не совпадает с выборочным местоположением в прямом опорном изображении Ref0, т.е. отсутствует выборка в местоположении (15,3, 16,2) в прямом опорном изображении Ref0.

[00451] (3): Определение выборки, ближайшей к угловому местоположению первой прямой области в прямом опорном изображении, и определение четвертой прямой области посредством использования выборки в качестве угла, причем ширина четвертой прямой области составляет blkW+4, и высота четвертой прямой области составляет blkH+4.

[00452] Для любого углового местоположения первой прямой области, предполагается, что левое верхнее угловое местоположение первой прямой области используется в качестве примера. Выборка, ближайшая к левому верхнему угловому местоположению, определяется в прямом опорном изображении, и четвертая прямая область определяется посредством использования выборки в качестве левого верхнего угла. Ширина четвертой прямой области составляет blkW+4, и высота четвертой прямой области составляет blkH+4.

[00453] Например, ссылаясь на фиг 13, угловое местоположение левого верхнего угла первой прямой области A1 представляет собой (15,3, 16,2), и местоположение выборки, ближайшей к угловому местоположению (15,3, 16,2), определяется в качестве (15, 16) в прямом опорном изображении Ref0. Четвертая прямая область A2 определяется посредством использования выборки в местоположении (15, 16) в качестве левого верхнего угла. Ширина четвертой прямой области A2 составляет blkW+4, и высота четвертой прямой области A2 составляет blkH+4.

[00454] (4): Определение пятой прямой области, включающей в себя четвертую прямую область, причем центр четвертой прямой области совпадает с центром пятой прямой области, ширина пятой прямой области составляет blkW+n+3, и высота пятой прямой области составляет blkH+n+3; и получение блока изображения в пятой прямой области из прямого опорного изображения и выполнение интерполяционной фильтрации для блока изображения посредством использования интерполяционного фильтра для того, чтобы получать второй блок прямого прогнозирования первого блока изображения, причем ширина второго блока прямого прогнозирования составляет blkW+4, высота второго блока прямого прогнозирования составляет blkH+4, и n является количеством отводов интерполяционного фильтра.

[00455] Например, 8-отводный интерполяционный фильтр используется в качестве примера. Ссылаясь на фиг 13, пятая прямая область A3, включающая в себя четвертую прямую область A2, определяется. Центр четвертой прямой области A2 совпадает с центром пятой прямой области A3, и ширина пятой прямой области A3 составляет blkW+11, и высота пятой прямой области A3 составляет blkH+11. Блок изображения в пятой прямой области A3 получается из прямого опорного изображения Ref0, и интерполяционная фильтрация выполняется для блока изображения посредством использования интерполяционного фильтра для того, чтобы получать второй блок прямого прогнозирования первого блока B изображения. Ширина второго блока прямого прогнозирования составляет blkW+4, и высота второго блока прямого прогнозирования составляет blkH+4.

[00456] (5): Определение первой обратной области в обратном опорном изображении на основе первого местоположения и информации движения первого блока изображения, причем ширина первой обратной области составляет blkW+4, и высота первой обратной области составляет blkH+4.

[00457] Например, ссылаясь на фиг 13, вторая обратная область C11 определяется в обратном опорном изображении Ref1 на основе первого местоположения первого блока B изображения, причем ширина второй обратной области C11 составляет blkW, и высота второй обратной области C11 составляет blkH. Третья обратная область C12 определяется на основе обратного вектора MV1 движения и местоположения второй обратной области C11, причем ширина третьей обратной области C12 составляет blkW, и высота третьей обратной области C12 составляет blkH. Первая обратная область D1, включающая в себя третью обратную область C12, определяется, причем ширина первой обратной области D1 составляет blkW+4, высота первой обратной области D1 составляет blkH+4, и центр третьей обратной области C12 может совпадать с центром первой обратной области D1.

[00458] (6): Определение того, совпадает или нет угловое местоположение первой обратной области с выборочным местоположением в обратном опорном изображении в обратном опорном изображении; и если угловое местоположение первой обратной области совпадает с выборочным местоположением в обратном опорном изображении, получение блока изображения в первой области из обратного опорного изображения, которое служит в качестве второго блока обратного прогнозирования первого блока изображения; либо если угловое местоположение первой обратной области не совпадает с выборочным местоположением в обратном опорном изображении, выполнение этапа (7).

[00459] Например, ссылаясь на фиг 13, левый верхний угол первой обратной области A1 используется в качестве примера. При условии, что угловое местоположение левого верхнего угла первой обратной области A1 представляет собой (5, 6) в обратном опорном изображении Ref0, угловое местоположение левого верхнего угла совпадает с выборочным местоположением в обратном опорном изображении Ref0 и выборочным местоположением (5, 6) в обратном опорном изображении Ref0. В качестве другого примера, при условии, что угловое местоположение левого верхнего угла первой обратной области D1 представляет собой (5,3, 6,2) в обратном опорном изображении Ref0, угловое местоположение левого верхнего угла не совпадает с выборочным местоположением в обратном опорном изображении Ref0, т.е. отсутствует выборка в местоположении (5,3, 6,2) в обратном опорном изображении Ref0.

[00460] (7): Определение выборки, ближайшей к угловому местоположению первой обратной области в обратном опорном изображении, и определение четвертой обратной области посредством использования выборки в качестве угла, причем ширина четвертой обратной области составляет blkW+4, и высота четвертой обратной области составляет blkH+4.

[00461] Для любого углового местоположения первой обратной области, предполагается, что левое верхнее угловое местоположение первой обратной области используется в качестве примера. Выборка, ближайшая к левому верхнему угловому местоположению, определяется в обратном опорном изображении, и четвертая обратная область определяется посредством использования выборки в качестве левого верхнего угла. Ширина четвертой обратной области составляет blkW+4, и высота четвертой обратной области составляет blkH+4.

[00462] Например, ссылаясь на фиг 13, угловое местоположение левого верхнего угла первой обратной области D1 представляет собой (5,3, 6,2), и местоположение выборки, ближайшей к угловому местоположению (5,3, 6,2), определяется в качестве (5, 6) в обратном опорном изображении Ref1. Четвертая обратная область D2 определяется посредством использования выборки в местоположении (5, 6) в качестве левого верхнего угла. Ширина четвертой обратной области D2 составляет blkW+4, и высота четвертой обратной области D2 составляет blkH+4.

[00463] (8): Определение пятой обратной области, включающей в себя четвертую обратную область, причем центр четвертой обратной области совпадает с центром пятой обратной области, ширина пятой обратной области составляет blkW+n+3, и высота пятой обратной области составляет blkH+n+3; и получение блока изображения в пятой обратной области из обратного опорного изображения и выполнение интерполяционной фильтрации для блока изображения посредством использования интерполяционного фильтра для того, чтобы получать второй блок обратного прогнозирования первого блока изображения, причем ширина второго блока обратного прогнозирования составляет blkW+4, и высота второго блока обратного прогнозирования составляет blkH+4.

[00464] Например, 8-отводный интерполяционный фильтр используется в качестве примера. Ссылаясь на фиг 13, пятая обратная область D3, включающая в себя четвертую обратную область D2, определяется. Центр четвертой обратной области D2 совпадает с центром пятой обратной области D3, ширина пятой обратной области D3 составляет blkW+11, и высота пятой обратной области D3 составляет blkH+11. Блок изображения в пятой обратной области D3 получается из обратного опорного изображения Ref1, и интерполяционная фильтрация выполняется для блока изображения посредством использования интерполяционного фильтра для того, чтобы получать второй блок обратного прогнозирования первого блока B изображения. Ширина второго блока обратного прогнозирования составляет blkW+4, высота второго блока обратного прогнозирования составляет blkH+4, и n является количеством отводов интерполяционного фильтра.

[00465] Этап 303: Выполнение операции взятия градиентов для второго блока прогнозирования первого блока изображения для того, чтобы получать первую матрицу градиентов первого блока изображения, причем ширина первой матрицы градиентов составляет cuW+2, и высота первой матрицы градиентов составляет cuH+2.

[00466] Первая матрица градиентов включает в себя первую матрицу прямых горизонтальных градиентов, первую матрицу прямых вертикальных градиентов, первую матрицу обратных горизонтальных градиентов и первую матрицу обратных вертикальных градиентов.

[00467] На этом этапе, для получения информации по процессу подробной реализации выполнения операции взятия градиентов для второго блока прогнозирования первого блока изображения для того, чтобы получать первую матрицу градиентов, см. подробный процесс получения первой матрицы градиентов на этапе 104 в варианте осуществления, показанном на фиг. 12. Подробности не описываются повторно в данном документе.

[00468] Первый блок прогнозирования включает в себя второй блок прямого прогнозирования и второй блок обратного прогнозирования. Вторая матрица прямых горизонтальных градиентов с шириной в cuW+2 и высотой в cuH+2 и вторая матрица прямых вертикальных градиентов с шириной в cuW+2 и высотой в cuH+2 могут получаться на основе второго блока прямого прогнозирования. Вторая матрица обратных горизонтальных градиентов с шириной в cuW+2 и высотой в cuH+2 и вторая матрица обратных вертикальных градиентов с шириной в cuW+2 и высотой в cuH+2 могут получаться на основе второго блока обратного прогнозирования.

[00469] Этап 304: Определение первого блока прогнозирования первого блока изображения во втором блоке прогнозирования, причем ширина первого блока прогнозирования составляет cuW+2, и высота первого блока прогнозирования составляет cuH+2.

[00470] Центр первого блока прогнозирования совпадает с центром второго блока прогнозирования.

[00471] Первый блок прогнозирования включает в себя первый блок прямого прогнозирования и первый блок обратного прогнозирования.

[00472] На этом этапе, первый блок прямого прогнозирования с шириной в cuW+2 и высотой в cuH+2 первого блока изображения определяется во втором блоке прямого прогнозирования, и первый блок обратного прогнозирования с шириной в cuW+2 и высотой в cuH+2 первого блока изображения определяется во втором блоке обратного прогнозирования.

[00473] Этап 305: Получение первого блока прогнозирования первого блока изображения на основе информации движения первого блока изображения, причем ширина первого блока прогнозирования составляет cuW+2, и высота первого блока прогнозирования составляет cuH+2.

[00474] На этом этапе, для получения информации подробному процессу получения первого блока прогнозирования, см. связанный контент на этапе 103 в варианте осуществления, показанном на фиг. 12. Подробности не описываются повторно в данном документе.

[00475] Этап 306: Выполнение операции взятия градиентов для первого блока прогнозирования первого блока изображения для того, чтобы получать первую матрицу градиентов первого блока изображения, причем ширина первой матрицы градиентов составляет cuW, и высота первой матрицы градиентов составляет cuH.

[00476] Первая матрица градиентов включает в себя первую матрицу прямых горизонтальных градиентов, первую матрицу прямых вертикальных градиентов, первую матрицу обратных горизонтальных градиентов и первую матрицу обратных вертикальных градиентов.

[00477] Для получения информации по процессу подробной реализации этого этапа, см. связанный контент на этапе 104 в варианте осуществления, показанном на фиг. 12. Подробности не описываются повторно в данном документе.

[00478] Этап 307: Выполнение первого расширения для ширины и высоты первой матрицы градиентов на основе градиента в краевом местоположении матрицы для первой матрицы градиентов, так что ширина и высота первой матрицы градиентов, полученной после первого расширения, соответственно, на две выборки больше ширины и высоты первого блока изображения.

[00479] Для получения информации по процессу подробной реализации этого этапа, см. связанный контент на этапе 105 в варианте осуществления, показанном на фиг. 12. Подробности не описываются повторно в данном документе.

[00480] Этапы 308-310 являются идентичными этапам 106-108, соответственно, и подробности не описываются повторно в данном документе.

[00481] Способ взаимного прогнозирования, показанный на фиг. 15, может обобщаться в качестве этапов 1-6, и этапы 1-6 могут заключаться в следующем:

[00482] Этап 1: Определение информации движения текущей CU.

[00483] Информация движения текущей CU может определяться посредством использования режима объединения, AMVP-режима (см. описания в разделе уровня техники) или другого режима. Это не ограничено в данном документе.

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

[00485] Этап 2: Определение того, удовлетворяет или нет текущая CU условию использования BIO.

[00486] Если двунаправленное прогнозирование выполняется для текущей CU, и взаимосвязь между номером POC_L0 прямого опорного кадра, номером POC_L1 обратного опорного кадра и номером POC_Cur текущего кадра удовлетворяет следующей формуле, текущая CU удовлетворяет условию использования BIO:

(POC_L0-POC_Cur)*(POC_L1-POC_Cur)<0

[00487] Следует отметить, что другое условие использования BIO также может применяться к этой заявке. Подробности не описываются в данном документе.

[00488] Если текущая CU удовлетворяет условию использования BIO, этап 3 выполняется, либо в противном случае, компенсация движения выполняется другим способом.

[00489] Этап 3: Вычисление прямого и обратного предикторов текущей CU.

[00490] Если cuW превышает или равна VPDU_X, или cuH превышает или равна VPDU_Y, компенсация движения выполняется посредством использования информации движения для того, чтобы получать прямой и обратный предикторы I(k)(i, j), где i=-2…cuW+1 и j=-2…cuH+1 (матрица прогнозирования (cuW+4)*(cuH+4) получается посредством использования идентичного интерполяционного фильтра).

[00491] Если cuW меньше VPDU_X, или cuH меньше VPDU_Y, компенсация движения выполняется посредством использования информации движения для того, чтобы получать прямой и обратный предикторы I(k)(i, j), где i=-1…cuW и j=-1…cuH (матрица прогнозирования (cuW+2)*(cuH+2) получается).

[00492] В I(k)(i, j), i=0…cuW-1 и j=0…cuH-1, которые получаются посредством выполнения интерполяции посредством использования 8-отводного интерполяционного фильтра и предиктора другого местоположения (расширение на одну строку и один столбец выполняется), получаются посредством выполнения интерполяции посредством использования билинейного интерполяционного фильтра.

[00493] Следует понимать, что предиктор может получаться посредством использования VPDU в качестве минимальной единицы получения предиктора, либо предиктор может получаться посредством использования блока, меньшего VPDU, в качестве минимальной единицы получения предиктора. Это не ограничено.

[00494] Следует отметить, что предиктор расширенной области также может получаться посредством использования другого способа, например, посредством использования 8-отводного интерполяционного фильтра или посредством непосредственного использования опорной выборки в целочисленном выборочном местоположении. Это не ограничено в данном документе.

[00495] Следует отметить, что SAD между прямым и обратным предикторами вычисляется, чтобы определять то, меньше или нет SAD порогового TH_CU, и если SAD меньше порогового TH_CU, BIO не выполняется, либо в противном случае, BIO выполняется. Другой способ определения также может применяться к этой заявке, и подробности не описываются в данном документе.

[00496] Формула для вычисления SAD является следующей:

(9)

[00497] Пороговое значение TH_CU может задаваться равным (1<<(BD-8+shift))*cuW*cuH, и сдвиг может задаваться равным Max(2, 14-BD).

[00498] Этап 4: Вычисление горизонтального и вертикального градиентов на основе прямого и обратного предикторов текущей CU.

[00499] Если cuW превышает или равна VPDU_X, или cuH превышает или равна VPDU_Y, горизонтальный и вертикальный градиенты и вычисляются согласно формуле (4), где i=-1…cuW и j=-1…cuH (матрица градиентов (cuW+2)*(cuH+2) получается).

[00500] Если cuW меньше VPDU_X, или cuH меньше VPDU_Y, горизонтальный и вертикальный градиенты и вычисляются на основе прямого и обратного предикторов согласно формуле (4), где i=0…cuW-1 и j=0…cuH-1 (матрица градиентов cuW*cuH получается).

[00501] Этап 5: Если cuW меньше VPDU_X, и cuH меньше VPDU_Y, выполнение дополнения для прямого и обратного предикторов текущей CU и горизонтальных и вертикальных градиентов.

[00502] Дополнение выполняется посредством использования способа на фиг. 9 для того, чтобы получать I(k)(i, j), и , где i=-1…cuW и j=-1…cuH (матрица прогнозирования (cuW+2)*(cuH+2), матрица горизонтальных градиентов и матрица вертикальных градиентов получаются).

[00503] Этап 6: Извлечение детализированного вектора движения каждого субблока 4×4 и затем выполнение взвешивания.

[00504] Для каждого субблока 4×4, vx и vy получаются согласно формуле (2). В завершение, взвешивание выполняется согласно формуле (6) для того, чтобы получать предиктор каждого субблока 4×4.

[00505] Следует отметить, что SAD между прямым и обратным предикторами каждого субблока 4×4 может вычисляться, чтобы определять то, меньше или нет SAD порогового значения TH_SCU. Если SAD меньше порогового значения TH_SCU, усреднение со взвешиванием непосредственно выполняется, либо в противном случае, vx и vy получаются согласно формуле (2), и затем взвешивание выполняется согласно формуле (6). Другой способ определения также может применяться к этой заявке, и подробности не описываются в данном документе. TU_SCU может задаваться равным 1<<(BD-3+shift).

[00506] В этом варианте осуществления этой заявки, BIO-прогнозирование выполняется для границы VPDU и границы CU идентичным способом. Когда CU включает в себя множество VPDU, сложность реализации прогнозирования с компенсацией движения уменьшается.

[00507] В этом варианте осуществления этой заявки, когда cuW превышает или равна Width и/или cuH превышает или равна Height, второй блок прогнозирования первого блока изображения получается на основе информации движения первого блока изображения. Поскольку ширина второго блока прогнозирования составляет cuW+4, и высота второго блока прогнозирования составляет cuH+4, операция взятия градиентов выполняется для второго блока прогнозирования первого блока изображения для того, чтобы получать первую матрицу градиентов с шириной в cuW+2 и высотой в cuH+2, так что обработка расширения может опускаться из края первой матрицы градиентов, за счет этого повышая эффективность взаимного прогнозирования.

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

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

[00510] S1202. Получение матрицы предикторов каждой виртуальной конвейерной единицы данных на основе информации движения.

[00511] S1203. Вычисление матрицы горизонтальных прогнозных градиентов и матрицы вертикальных прогнозных градиентов каждой виртуальной конвейерной единицы данных на основе каждой матрицы предикторов.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[00526] В осуществимой реализации, размер базовой единицы обработки составляет 4×4.

[00527] В осуществимой реализации, ширина виртуальной конвейерной единицы данных составляет W, высота виртуальной конвейерной единицы данных составляет H, и размер расширенной матрицы прогнозирования составляет (W+n+2)x(H+n+2). Соответственно, размер матрицы горизонтальных прогнозных градиентов составляет (W+n)x(H+n), и размер матрицы вертикальных прогнозных градиентов составляет (W+n)x(H+n), где W и H являются положительными целыми числами, и n является четным числом.

[00528] В осуществимой реализации, n равен 0, 2 или -2.

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

[00530] Фиг. 18 является блок-схемой последовательности операций способа согласно варианту осуществления этой заявки. Как показано на чертеже, оборудование взаимного прогнозирования предоставляется и включает в себя:

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

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

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

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

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

[00532] В осуществимой реализации, модуль 1302 компенсации, в частности, выполнен с возможностью: выполнять выборочное расширение для края начальной матрицы прогнозирования для того, чтобы получать расширенную матрицу прогнозирования, причем размер расширенной матрицы прогнозирования превышает размер начальной матрицы прогнозирования; и использовать расширенную матрицу прогнозирования в качестве матрицы предикторов.

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

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

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

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

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

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

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

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

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

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

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

[00544] В осуществимой реализации, размер базовой единицы обработки составляет 4×4.

[00545] В осуществимой реализации, ширина виртуальной конвейерной единицы данных составляет W, высота виртуальной конвейерной единицы данных составляет H, и размер расширенной матрицы прогнозирования составляет (W+n+2)x(H+n+2). Соответственно, размер матрицы горизонтальных прогнозных градиентов составляет (W+n)x(H+n), и размер матрицы вертикальных прогнозных градиентов составляет (W+n)(H+n), где W и H являются положительными целыми числами, и n является четным числом.

[00546] В осуществимой реализации, n равен 0, 2 или -2.

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

[00548] Фиг. 19 является блок-схемой последовательности операций способа согласно варианту осуществления этой заявки. Как показано на чертеже, оборудование 1400 взаимного прогнозирования предоставляется и включает в себя:

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

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

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

[00549] В осуществимой реализации, модуль 1401 определения выполнен с возможностью:

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

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

- определять множество первых блоков изображения в подлежащем обработке блоке изображения на основе ширины и высоты первого блока изображения.

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

[00551] В осуществимой реализации, модуль 1402 прогнозирования выполнен с возможностью:

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

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

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

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

[00552] В осуществимой реализации, оборудование 1400 дополнительно включает в себя модуль 1404 первого расширения.

[00553] Модуль первого расширения выполнен с возможностью: выполнять первое расширение для ширины и высоты первого блока прогнозирования на основе выборочного значения краевого местоположения блока первого блока прогнозирования, так что ширина и высота первого блока прогнозирования, полученного после первого расширения, соответственно, на две выборки больше ширины и высоты первого блока изображения; и/или выполнять первое расширение для ширины и высоты первой матрицы градиентов на основе градиента краевого местоположения матрицы для первой матрицы градиентов, так что ширина и высота первой матрицы градиентов, полученной после первого расширения, соответственно, на две выборки больше ширины и высоты первого блока изображения; и

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

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

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

[00557] Соответственно, модуль 1402 прогнозирования выполнен с возможностью выполнять операцию взятия градиентов для первого блока прогнозирования, полученного после второго расширения.

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

[00559] В осуществимой реализации, предварительно установленная ширина разбиения изображений равна 64, 32 или 16, и предварительно установленная высота разбиения изображений равна 64, 32 или 16.

[00560] В осуществимой реализации, базовая единица обработки представляет собой матрицу выборок 4×4.

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

[00562] Специалисты в данной области техники могут понимать, что функции, описанные со ссылкой на различные иллюстративные логические блоки, модули и этапы алгоритма, раскрытые и описанные в этом подробном описании, могут реализовываться посредством аппаратных средств, программного обеспечения, микропрограммного обеспечения или любой комбинации вышеозначенного. При реализации посредством программного обеспечения, функции, описанные со ссылкой на иллюстративные логические блоки, модули и этапы, могут сохраняться на или передаваться по машиночитаемому носителю в качестве одной или более инструкций или кода и выполняться посредством аппаратного блока обработки. Машиночитаемый носитель может включать в себя машиночитаемый носитель хранения данных, который соответствует материальному носителю, такому как носитель хранения данных, либо может включать в себя любую среду связи, которая упрощает передачу компьютерной программы из одного места в другое (например, согласно протоколу связи). Следовательно, машиночитаемый носитель, в общем, может соответствовать (1) энергонезависимому материальному машиночитаемому носителю хранения данных или (2) среде связи, такой как сигнал или несущая. Носитель хранения данных может представлять собой любой применимый носитель, к которому может осуществляться доступ посредством одного или более компьютеров либо одного или более процессоров, чтобы извлекать инструкции, код и/или структуры данных для реализации технологий, описанных в данной заявке. Компьютерный программный продукт может включать в себя машиночитаемый носитель.

[00563] В качестве примера, а не ограничения, такой машиночитаемый носитель хранения данных может включать в себя RAM, ROM, EEPROM, CD-ROM или другое оборудование хранения данных на компакт-дисках, оборудование хранения данных на магнитных дисках или другое магнитное оборудование хранения данных, флэш-память или любой другой носитель, который может использоваться для того, чтобы сохранять требуемый программный код в форме инструкции или структуры данных и к которому может осуществляться доступ посредством компьютера. Помимо этого, любое соединение надлежащим образом называется "машиночитаемым носителем". Например, если инструкция передается из веб-узла, сервера или другого удаленного источника через коаксиальный кабель, оптическое волокно, витую пару, цифровую абонентскую линию (DSL) или беспроводную технологию, такую как инфракрасные, радиопередающие или микроволновые среды, то, коаксиальный кабель, оптическое волокно, витая пара, DSL или беспроводная технология, такая как инфракрасные, радиопередающие или микроволновые среды, включаются в определение носителя. Тем не менее, следует понимать, что машиночитаемый носитель хранения данных и носитель хранения данных не включают в себя соединение, несущую, сигнал или любые другие энергозависимые среды, а фактически направляются в энергонезависимый материальный носитель хранения данных. Диск (disk) и диск (disc), используемые в этом подробном описании, включают в себя компакт-диск (CD), лазерный диск, оптический диск, универсальный цифровой диск (DVD) и Blu-Ray-диск. Диск (disk) обычно воспроизводит данные магнитно, а диск (disc) воспроизводит данные оптически посредством использования лазера. Комбинации вышеприведенных пунктов также должны попадать в пределы объема машиночитаемого носителя.

[00564] Инструкция может выполняться посредством одного или более процессоров, например, одного или более процессоров цифровых сигналов (DSP), микропроцессоров общего назначения, специализированных интегральных схем (ASIC), программируемых пользователем вентильных матриц (FPGA) либо других эквивалентных интегральных или дискретных логических схем. Следовательно, термин "процессор", используемый в этом подробном описании, может представлять сбой любую из вышеприведенных структур или любую другую структуру, подходящую для реализации технологий, описанных в этом подробном описании. Помимо этого, в некоторых аспектах, функции, описанные со ссылкой на иллюстративные логические блоки, модули и этапы, описанные в этом подробном описании, могут предоставляться в специализированных аппаратных и/или программных модулях, выполненных с возможностью кодирования и декодирования, или могут быть включены в комбинированный кодек. Помимо этого, технологии могут быть реализовываться в одной или более схем либо логических элементов.

[00565] Технологии в этой заявке могут реализовываться в различном оборудовании или устройствах, которые включают в себя беспроводной телефон, интегральную схему (IC) или IC-набор (например, набор микросхем). Различные компоненты, модули или блоки описываются в этой заявке для того, чтобы подчеркивать функциональные аспекты оборудования, выполненного с возможностью реализовывать раскрытые технологии, которые не обязательно реализуются посредством различных аппаратных блоков. Фактически, как описано выше, различные блоки могут комбинироваться в аппаратный блок кодека в комбинации с соответствующим программным обеспечением и/или микропрограммным обеспечением либо могут предоставляться посредством совместимых аппаратных блоков (включающих в себя один или более процессоров, описанных выше).

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

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

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

название год авторы номер документа
СПОСОБ И ОБОРУДОВАНИЕ ВЗАИМНОГО ПРОГНОЗИРОВАНИЯ 2019
  • Чэнь, Хуаньбан
  • Ян, Хайтао
  • Чен, Цзянле
RU2822447C2
СИСТЕМА И СПОСОБ ДЛЯ КОДИРОВАНИЯ ВИДЕО 2020
  • Ванг, Чу Тонг
  • Лим, Чонг Соон
  • Тео, Хан Боон
  • Сунь, Хай Вэй
  • Ли, Цзин Я
  • Куо, Чэ-Вэй
  • Тома, Тадамаса
  • Ниси, Такахиро
  • Абе, Киёфуми
  • Като, Юсуке
RU2817290C2
СИСТЕМА И СПОСОБ ДЛЯ КОДИРОВАНИЯ ВИДЕО 2020
  • Сунь, Хай Вэй
  • Лим, Чонг Соон
  • Ли, Цзин Я
  • Тео, Хан Боон
  • Куо, Чэ-Вэй
  • Ванг, Чу Тонг
  • Тома, Тадамаса
  • Ниси, Такахиро
  • Абе, Киёфуми
  • Като, Юсуке
RU2819086C2
СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ/ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЙ НА ОСНОВЕ СУБКАДРОВ И СПОСОБ ДЛЯ ПЕРЕДАЧИ ПОТОКА БИТОВ 2020
  • Чан, Хён Мун
RU2803197C1
СПОСОБ КОДИРОВАНИЯ/ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЙ, ОБОРУДОВАНИЕ И СПОСОБ ДЛЯ ПЕРЕДАЧИ ПОТОКА БИТОВ С ИСПОЛЬЗОВАНИЕМ ЗАДАНИЯ МАКСИМАЛЬНОГО РАЗМЕРА ПРЕОБРАЗОВАНИЯ БЛОКА СИГНАЛОВ ЦВЕТНОСТИ 2020
  • Ли, Линг
  • Нам, Джун Хак
RU2826613C2
СПОСОБ КОДИРОВАНИЯ/ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЙ, ОБОРУДОВАНИЕ И СПОСОБ ДЛЯ ПЕРЕДАЧИ ПОТОКА БИТОВ С ИСПОЛЬЗОВАНИЕМ ЗАДАНИЯ МАКСИМАЛЬНОГО РАЗМЕРА ПРЕОБРАЗОВАНИЯ БЛОКА СИГНАЛОВ ЦВЕТНОСТИ 2020
  • Ли, Линг
  • Нам, Джун Хак
RU2812196C2
СПОСОБ КОДИРОВАНИЯ ИЗОБРАЖЕНИЙ НА ОСНОВЕ ПРЕОБРАЗОВАНИЯ И УСТРОЙСТВО ДЛЯ ЭТОГО 2022
  • Салехифар, Мехди
  • Ким, Сеунгхван
  • Коо, Моонмо
  • Лим, Дзаехиун
RU2811758C1
СПОСОБ КОДИРОВАНИЯ ИЗОБРАЖЕНИЙ НА ОСНОВЕ ПРЕОБРАЗОВАНИЯ И УСТРОЙСТВО ДЛЯ ЭТОГО 2024
  • Салехифар Мехди
  • Ким Сеунгхван
  • Коо Моонмо
  • Лим Дзаехиун
RU2826578C1
ВИДЕОКОДЕР, ВИДЕОДЕКОДЕР И СООТВЕТСТВУЮЩИЙ СПОСОБ 2020
  • Чэнь, Сюй
  • Ян, Хайтао
  • Чжан, Лян
RU2819065C2
СПОСОБ КОДИРОВАНИЯ ИЗОБРАЖЕНИЙ НА ОСНОВЕ ПРЕОБРАЗОВАНИЯ И УСТРОЙСТВО ДЛЯ ЭТОГО 2018
  • Салехифар, Мехди
  • Ким, Сеунгхван
  • Коо, Моонмо
  • Лим, Дзаехиун
RU2745254C1

Иллюстрации к изобретению RU 2 787 885 C2

Реферат патента 2023 года СПОСОБ И ОБОРУДОВАНИЕ ВЗАИМНОГО ПРОГНОЗИРОВАНИЯ, ПОТОК БИТОВ И ЭНЕРГОНЕЗАВИСИМЫЙ НОСИТЕЛЬ ХРАНЕНИЯ

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

Формула изобретения RU 2 787 885 C2

1. Способ взаимного прогнозирования, содержащий этапы, на которых:

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

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

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

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

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

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

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

определяют множество первых блоков изображения в подлежащем обработке блоке изображения на основе ширины и высоты первых блоков изображения.

3. Способ по п. 1 или 2, в котором ширина первого блока изображения является меньшим значением для предварительно установленной ширины разбиения изображений и ширины подлежащего обработке блока изображения, и высота первого блока изображения является меньшим значением для предварительно установленной высоты разбиения изображений и высоты подлежащего обработке блока изображения.

4. Способ по любому из пп. 1-3, в котором отдельное выполнение двунаправленного прогнозирования оптических потоков для множества первых блоков изображения для того, чтобы получать предиктор каждого первого блока изображения, содержит этапы, на которых:

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

выполняют операцию взятия градиентов для первого блока прогнозирования для того, чтобы получать первую матрицу градиентов первого блока изображения;

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

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

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

выполняют первое расширение для ширины и высоты первого блока прогнозирования на основе выборочного значения краевого местоположения блока первого блока прогнозирования, так что ширина и высота первого блока прогнозирования, полученного после первого расширения, соответственно, на две выборки больше ширины и высоты первого блока изображения; и/или

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

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

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

6. Способ по п. 4 или 5, в котором перед выполнением операции взятия градиентов для первого блока прогнозирования способ дополнительно содержит этап, на котором:

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

соответственно, выполнение операции взятия градиентов для первого блока прогнозирования содержит этап, на котором:

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

7. Способ по любому из пп. 1-6, в котором первый блок прогнозирования содержит блок прямого прогнозирования и блок обратного прогнозирования, и первая матрица градиентов содержит матрицу прямых горизонтальных градиентов, матрицу прямых вертикальных градиентов, матрицу обратных горизонтальных градиентов и матрицу обратных вертикальных градиентов.

8. Способ по любому из пп. 1-7, в котором предварительно установленная ширина разбиения изображений равна 64, 32 или 16, и предварительно установленная высота разбиения изображений равна 64, 32 или 16.

9. Способ по любому из пп. 1-8, в котором базовая единица обработки представляет собой матрицу выборок 4×4.

10. Оборудование взаимного прогнозирования, содержащее:

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

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

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

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

11. Оборудование по п. 10, в котором модуль определения выполнен с возможностью:

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

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

определять множество первых блоков изображения в подлежащем обработке блоке изображения на основе ширины и высоты первых блоков изображения.

12. Оборудование по п. 10 или 11, в котором ширина первого блока изображения является меньшим значением для предварительно установленной ширины разбиения изображений и ширины подлежащего обработке блока изображения, и высота первого блока изображения является меньшим значением для предварительно установленной высоты разбиения изображений и высоты подлежащего обработке блока изображения.

13. Оборудование по любому из пп. 10-12, в котором модуль прогнозирования, в частности, выполнен с возможностью:

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

выполнять операцию взятия градиентов для первого блока прогнозирования для того, чтобы получать первую матрицу градиентов первого блока изображения;

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

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

14. Оборудование по п. 13, при этом оборудование дополнительно содержит модуль первого расширения, при этом:

первый модуль расширения выполнен с возможностью: выполнять первое расширение для ширины и высоты первого блока прогнозирования на основе выборочного значения краевого местоположения блока первого блока прогнозирования, так что ширина и высота первого блока прогнозирования, полученного после первого расширения, соответственно, на две выборки больше ширины и высоты первого блока изображения; и/или выполнять первое расширение для ширины и высоты первой матрицы градиентов на основе градиента краевого местоположения матрицы для первой матрицы градиентов, так что ширина и высота первой матрицы градиентов, полученной после первого расширения, соответственно, на две выборки больше ширины и высоты первого блока изображения; и

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

15. Оборудование по п. 13 или 14, при этом оборудование дополнительно содержит модуль второго расширения, при этом:

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

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

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

17. Оборудование по любому из пп. 10-16, в котором предварительно установленная ширина разбиения изображений равна 64, 32 или 16, и предварительно установленная высота разбиения изображений равна 64, 32 или 16.

18. Оборудование по любому из пп. 10-17, в котором базовая единица обработки представляет собой матрицу выборок 4×4.

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

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

получение подлежащего обработке блока изображения, причем подлежащий обработке блок изображения используется для взаимного прогнозирования;

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

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

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

21. Способ взаимного прогнозирования, содержащий этапы, на которых:

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

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

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

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

Документы, цитированные в отчете о поиске Патент 2023 года RU2787885C2

WO 2018212578 A1, 2018.11.22
X
XIU et al, CE9-related: A simplified design of bi-directional optical flow (BIO), Joint Video Experts Team (JVET) of ITU-T SG16 WP3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-L0591, 12th Meeting: Macao, 3-12 Oct
Способ получения цианистых соединений 1924
  • Климов Б.К.
SU2018A1
WO 2018113658 A1, 2018.06.28
WO 2018166357 A1, 2018.09.20
US 2017094305 A1, 2017.03.30
US 2018262773

RU 2 787 885 C2

Авторы

Чэнь, Хуаньбан

Ян, Хайтао

Чен, Цзянле

Даты

2023-01-13Публикация

2019-12-03Подача