RU2784483C1 - Method for image decoding, method for image encoding and machine-readable information carrier - Google Patents

Method for image decoding, method for image encoding and machine-readable information carrier Download PDF

Info

Publication number
RU2784483C1
RU2784483C1 RU2019102682A RU2019102682A RU2784483C1 RU 2784483 C1 RU2784483 C1 RU 2784483C1 RU 2019102682 A RU2019102682 A RU 2019102682A RU 2019102682 A RU2019102682 A RU 2019102682A RU 2784483 C1 RU2784483 C1 RU 2784483C1
Authority
RU
Russia
Prior art keywords
motion information
block
prediction
sub
current
Prior art date
Application number
RU2019102682A
Other languages
Russian (ru)
Inventor
Гван Хоон ПАРК
Мин Сон ЛИ
Ёун Су ХО
Ёон Джин ЛИ
Original Assignee
Юнивёрсити-Индастри Кооперейшен Груп Оф Кён Хи Юнивёрсити
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Юнивёрсити-Индастри Кооперейшен Груп Оф Кён Хи Юнивёрсити filed Critical Юнивёрсити-Индастри Кооперейшен Груп Оф Кён Хи Юнивёрсити
Application granted granted Critical
Publication of RU2784483C1 publication Critical patent/RU2784483C1/en

Links

Images

Abstract

FIELD: image encoding/decoding.
SUBSTANCE: group of inventions relates to technologies of encoding/decoding of three-dimensional images. A method for image decoding is proposed. The method contains a stage of determination of movement information related to a current block. Next, according to the method, an elementary value of prediction for the current block is determined based on movement information related to the current block. Moreover, the stage of determination of movement information related to the current block includes: determination of whether a central subblock corresponding to a central position of the current block has movement information in a reference block.
EFFECT: increase in the efficiency of image encoding/decoding by means of elimination of dependence on data, when determining movement information.
5 cl, 37 dwg, 5 tbl

Description

Настоящая заявка выделена из заявки № 2016125782 на выдачу патента РФ на изобретение, поданной 05.01.2015, с испрашиванием приоритета по дате подачи заявки KR 10-2014-0000527, поданной 03.01.2014, заявки KR 10-2014-0001531, поданной 06.01.2014, и заявки KR 10-2015-0000578, поданной 05.01.2015. This application is separated from application No. 2016125782 for the grant of a patent of the Russian Federation for an invention, filed on 01/05/2015, claiming priority by the filing date of application KR 10-2014-0000527, filed on 01/03/2014, application KR 10-2014-0001531, filed on 01/06/2014 , and application KR 10-2015-0000578 filed on 01/05/2015.

Область техники, к которой относится изобретениеThe field of technology to which the invention belongs

Настоящее изобретение относится к устройствам и способам для кодирования/декодирования трехмерных изображений, и, более конкретно, к способам и устройствам кодирования/декодирования изображений, в которых межракурсная информация движения определяется параллельно по множеству подэлементов предсказания.The present invention relates to devices and methods for encoding/decoding three-dimensional images, and more specifically, to methods and devices for encoding/decoding images in which inter-view motion information is determined in parallel over a plurality of prediction sub-elements.

Уровень техникиState of the art

В растущей индустрии информационных технологий повсеместно распространились услуги вещания стандарта HD (high definition), и для все большего числа пользователей просмотр видеоизображений стандарта HD становится обычным делом.In the growing information technology industry, HD (high definition) broadcasting services have become ubiquitous, and HD video viewing is becoming commonplace for more and more users.

Соответственно, пользователям нужны изображения с более высоким качеством и разрешением, и, чтобы соответствовать таким ожиданиям, сразу несколько организаций стремятся как можно скорее разработать следующее поколение устройств для работы с изображениями. В результате пользователи уже получили возможность попробовать системы, способные работать с изображениями стандартов FHD (Full HD) и UHD (Ultra HD).Accordingly, users are demanding higher quality and higher resolution images, and to meet these expectations, several organizations are racing to develop the next generation of imaging devices as soon as possible. As a result, users have already been able to experience systems capable of handling FHD (Full HD) and UHD (Ultra HD) images.

Однако потребности пользователей не ограничиваются достигнутым и идут на шаг дальше, к трехмерным (3D) изображениям, которые могут создавать ощущение или эффекты трехмерности. Для удовлетворения этих пользовательских потребностей различные организации создали системы для работы с трехмерными изображениями.However, user needs go beyond what has been achieved and go a step further towards three-dimensional (3D) images that can create a sense or effects of three-dimensionality. To meet these user needs, various organizations have created systems for working with three-dimensional images.

Однако трехмерные изображения содержат больше данных, чем двумерные изображения, поскольку имеют в своем составе не только собственно изображение (текстуру), но и информацию карты глубины. Соответственно, кодирование/декодирование трехмерных изображений с использованием существующих способов кодирования/декодирования изображений оказывается недостаточно эффективным.However, 3D images contain more data than 2D images, since they contain not only the image itself (texture), but also depth map information. Accordingly, encoding/decoding of 3D images using existing image encoding/decoding methods is not efficient enough.

Раскрытие изобретенияDisclosure of invention

Целью настоящего изобретения является предложение устройства и способа для определения информации движения, относящейся к блоку, для которого выполняется кодирование/декодирование.An object of the present invention is to propose an apparatus and a method for determining motion information related to a block for which encoding/decoding is performed.

Еще одной целью настоящего изобретения является предложение устройства и способа для устранения зависимости от данных при определении информации движения, относящейся к блоку, для которого выполняется кодирование/декодирование.Yet another object of the present invention is to provide an apparatus and a method for eliminating data dependency in determining motion information related to a block for which encoding/decoding is performed.

Еще одной целью настоящего изобретения является предложение устройства и способа для повышения эффективности кодирования/декодирования изображения путем устранения зависимости от данных при выполняемом по подэлементам предсказания определении информации движения, относящейся к блоку, для которого выполняется кодирование/декодирование.Yet another object of the present invention is to provide an apparatus and a method for improving image encoding/decoding efficiency by eliminating data dependency in determining motion information related to a block for which encoding/decoding is performed from prediction sub-elements.

Еще одной целью настоящего изобретения является предложение устройства и способа для повышения эффективности кодирования/декодирования изображения путем использования информации движения, относящейся к опорному блоку, при выполняемом по подэлементам предсказания определении информации движения, относящейся к блоку, для которого выполняется кодирование/декодирование.Yet another object of the present invention is to provide an apparatus and a method for improving image encoding/decoding efficiency by using motion information related to a reference block in determining motion information related to a block to be coded/decoded from prediction sub-elements.

Техническое решениеTechnical solution

В соответствии с вариантом осуществления настоящего изобретения может быть предложен способ кодирования трехмерного (3D) изображения, включающий:In accordance with an embodiment of the present invention, a three-dimensional (3D) image encoding method can be provided, including:

определение режима межкадрового предсказания в качестве режима предсказания для текущего блока;determining an inter prediction mode as a prediction mode for the current block;

определение, имеет ли опорный блок, соответствующий в опорном кадре текущему блоку, информацию движения;determining whether the reference block corresponding in the reference frame to the current block has motion information;

определение информации движения, относящейся к текущему блоку, для каждого подблока предсказания в текущем блоке, если опорный блок имеет информацию движения; иdetermining motion information related to the current block for each prediction subblock in the current block if the reference block has motion information; and

определение элементарного значения предсказания для текущего блока на основании информации движения, относящейся к текущему блоку.determining a prediction chip value for the current block based on motion information related to the current block.

При этом текущий блок и опорный блок могут быть блоками предсказания.Here, the current block and the reference block may be prediction blocks.

При этом информация движения, относящаяся к опорному блоку, может быть расположена в центре опорного блока.Here, motion information related to the reference block may be located at the center of the reference block.

При этом на шаге определения информации движения, относящейся к текущему блоку, для каждого подблока предсказания в текущем блоке, если подблок предсказания в опорном блоке, соответствующий подблоку предсказания в текущем блоке, имеет информацию движения, то информацию движения, относящуюся к подблоку предсказания текущего блока, можно определить как информацию движения, присутствующую в подблоке предсказания опорного блока.Wherein, in the step of determining the motion information related to the current block, for each prediction subblock in the current block, if the prediction subblock in the reference block corresponding to the prediction subblock in the current block has motion information, then the motion information related to the prediction subblock of the current block, can be defined as motion information present in the reference block prediction subblock.

Если подблок предсказания в опорном блоке, соответствующий подблоку предсказания в текущем блоке, не имеет информации движения, то информацию движения, относящуюся к подблоку предсказания текущего блока, определяют как информацию движения опорного блока.If the prediction subblock in the reference block corresponding to the prediction subblock in the current block has no motion information, motion information related to the prediction subblock of the current block is determined as motion information of the reference block.

В соответствии с еще одним вариантом осуществления настоящего изобретения может быть предложено устройство кодирования трехмерного (3D) изображения, содержащее модуль хранения, выполненный с возможностью определения режима межкадрового предсказания в качестве режима предсказания для текущего блока и с возможностью определения, имеет ли опорный блок, соответствующий в опорном кадре текущему блоку, информацию движения; и модуль определения, выполненный с возможностью, если опорный блок имеет информацию движения, определения информации движения, относящейся к текущему блоку, для каждого подблока предсказания в текущем блоке, и с возможностью определения элементарного значения предсказания для текущего блока на основании информации движения, относящейся к текущему блоку.According to yet another embodiment of the present invention, a three-dimensional (3D) image coding apparatus can be provided, comprising a storage module configured to determine an inter-frame prediction mode as the prediction mode for a current block, and capable of determining whether a reference block has a corresponding reference frame to the current block, motion information; and a determining unit, configured, if the reference block has motion information, to determine motion information related to the current block for each prediction subblock in the current block, and to determine a prediction chip value for the current block based on the motion information related to the current block. block.

При этом текущий блок и опорный блок могут быть блоками предсказания.Here, the current block and the reference block may be prediction blocks.

При этом информация движения, относящаяся к опорному блоку, может быть расположена в центре опорного блока.Here, motion information related to the reference block may be located at the center of the reference block.

При этом, в модуле определения, если подблок предсказания в опорном блоке, соответствующий подблоку предсказания в текущем блоке, имеет информацию движения, то информация движения, относящаяся к подблоку предсказания текущего блока, может быть определена как информация движения, присутствующая в подблоке предсказания опорного блока.Here, in the determining unit, if the prediction sub-block in the reference block corresponding to the prediction sub-block in the current block has motion information, then the motion information related to the prediction sub-block of the current block can be determined as the motion information present in the prediction sub-block of the reference block.

Если подблок предсказания в опорном блоке, соответствующий подблоку предсказания в текущем блоке, не имеет информации движения, то информация движения, относящаяся к подблоку предсказания текущего блока, может быть определена как информация движения опорного блока.If the prediction subblock in the reference block corresponding to the prediction subblock in the current block has no motion information, then the motion information related to the prediction subblock of the current block can be determined as the motion information of the reference block.

В соответствии с еще одним вариантом осуществления настоящего изобретения может быть предложен способ декодирования трехмерного (3D) изображения, включающий: определение режима межкадрового предсказания в качестве режима предсказания для текущего блока; определение, имеет ли опорный блок, соответствующий в опорном кадре текущему блоку, информацию движения; определение информации движения, относящейся к текущему блоку, для каждого подблока предсказания в текущем блоке, если опорный блок имеет информацию движения; и определение элементарного значения предсказания для текущего блока на основании информации движения, относящейся к текущему блоку.According to yet another embodiment of the present invention, a method for decoding a three-dimensional (3D) image can be provided, including: determining an inter-frame prediction mode as a prediction mode for a current block; determining whether the reference block corresponding in the reference frame to the current block has motion information; determining motion information related to the current block for each prediction subblock in the current block if the reference block has motion information; and determining a prediction chip value for the current block based on motion information related to the current block.

При этом текущий блок и опорный блок могут представлять собой блоки предсказания.Here, the current block and the reference block may be prediction blocks.

При этом информация движения, относящаяся к опорному блоку, может быть расположена в центре опорного блока.Here, motion information related to the reference block may be located at the center of the reference block.

При этом на шаге определения информации движения, относящейся к текущему блоку, для каждого подблока предсказания в текущем блоке, если подблок предсказания в опорном блоке, соответствующий подблоку предсказания в текущем блоке, имеет информацию движения, то информацию движения, относящуюся к подблоку предсказания текущего блока, можно определить как информацию движения, присутствующую в подблоке предсказания опорного блока.Wherein, in the step of determining the motion information related to the current block, for each prediction subblock in the current block, if the prediction subblock in the reference block corresponding to the prediction subblock in the current block has motion information, then the motion information related to the prediction subblock of the current block, can be defined as motion information present in the reference block prediction subblock.

Если подблок предсказания в опорном блоке, соответствующий подблоку предсказания в текущем блоке, не имеет информации движения, то информацию движения, относящуюся к подблоку предсказания текущего блока, можно определить как информацию движения опорного блока.If the prediction sub-block in the reference block corresponding to the prediction sub-block in the current block has no motion information, the motion information related to the prediction sub-block of the current block can be determined as motion information of the reference block.

В соответствии с еще одним вариантом осуществления настоящего изобретения может быть предложено устройство декодирования трехмерного (3D) изображения, содержащее модуль хранения, выполненный с возможностью определения режима межкадрового предсказания в качестве режима предсказания для текущего блока и с возможностью определения, имеет ли опорный блок, соответствующий в опорном кадре текущему блоку, информацию движения; и модуль определения, выполненный с возможностью, если опорный блок имеет информацию движения, определения информации движения, относящейся к текущему блоку, для каждого подблока предсказания в текущем блоке, и с возможностью определения элементарного значения предсказания для текущего блока на основании информации движения, относящейся к текущему блоку.According to yet another embodiment of the present invention, a three-dimensional (3D) image decoding apparatus can be provided, comprising a storage module configured to determine an inter-frame prediction mode as the prediction mode for a current block, and capable of determining whether a reference block has a corresponding reference frame to the current block, motion information; and a determining unit, configured, if the reference block has motion information, to determine motion information related to the current block for each prediction subblock in the current block, and to determine a prediction chip value for the current block based on the motion information related to the current block. block.

При этом текущий блок и опорный блок могут представлять собой блоки предсказания.Here, the current block and the reference block may be prediction blocks.

При этом информация движения, относящаяся к опорному блоку, может быть расположена в центре опорного блока.Here, motion information related to the reference block may be located at the center of the reference block.

При этом в модуле определения, если подблок предсказания в опорном блоке, соответствующий подблоку предсказания в текущем блоке, имеет информацию движения, то информация движения, относящаяся к подблоку предсказания текущего блока, может быть определена как информация движения, присутствующая в подблоке предсказания опорного блока.Here, in the determining unit, if the prediction subblock in the reference block corresponding to the prediction subblock in the current block has motion information, then the motion information related to the prediction subblock of the current block can be determined as motion information present in the reference block prediction subblock.

Если подблок предсказания в опорном блоке, соответствующий подблоку предсказания в текущем блоке, не имеет информации движения, то информация движения, относящаяся к подблоку предсказания текущего блока, может быть определена как информация движения опорного блока.If the prediction subblock in the reference block corresponding to the prediction subblock in the current block has no motion information, then the motion information related to the prediction subblock of the current block can be determined as the motion information of the reference block.

Технический результатTechnical result

Настоящее изобретение дает возможность определения информации движения, относящейся к блоку, для которого выполняется кодирование/декодирование.The present invention makes it possible to determine motion information related to a block for which encoding/decoding is performed.

Настоящее изобретение дает возможность устранения зависимости от данных при определении информации движения, относящейся к блоку, для которого выполняется кодирование/декодирование.The present invention makes it possible to eliminate data dependency when determining motion information related to a block for which encoding/decoding is performed.

Настоящее изобретение дает возможность повышения эффективности кодирования/декодирования изображения путем устранения зависимости от данных при выполняемом по подэлементам предсказания определении информации движения, относящейся к блоку, для которого выполняется кодирование/декодирование.The present invention makes it possible to improve the efficiency of image encoding/decoding by eliminating the data dependency in determining motion information related to a block for which encoding/decoding is performed by prediction sub-elements.

Настоящее изобретение дает возможность повышения эффективности кодирования/декодирования изображения с использованием информации движения, относящейся к опорному блоку, путем устранения зависимости от данных при выполняемом по подэлементам предсказания определении информации движения, относящейся к блоку, для которого выполняется кодирование/декодирование.The present invention makes it possible to improve the efficiency of encoding/decoding an image using motion information related to a reference block by eliminating data dependency in determining motion information related to the block for which encoding/decoding is performed on prediction subelements.

Краткое описание чертежейBrief description of the drawings

Фиг. 1 представляет собой схематичную иллюстрацию базовой структуры системы для работы с трехмерными видеоизображениями.Fig. 1 is a schematic illustration of the basic structure of a 3D video system.

Фиг. 2 представляет собой пример изображения воздушных шаров и пример изображения карты информации глубин.Fig. 2 is an example of an image of balloons and an example of an image of a depth information map.

Фиг. 3 представляет собой схематичную иллюстрацию структуры, на которую изображение разбивается при кодировании и декодировании.Fig. 3 is a schematic illustration of the structure into which an image is partitioned during encoding and decoding.

Фиг. 4 иллюстрирует элементы предсказания, которые могут содержаться в элементе кодирования (ЭК).Fig. 4 illustrates prediction elements that may be contained in a coding unit (EC).

Фиг. 5 иллюстрирует пример структуры межракурсного предсказания в кодеке трехмерного изображения.Fig. 5 illustrates an example of an inter-view prediction structure in a 3D codec.

Фиг. 6 иллюстрирует пример операции кодирования и/или декодирования собственно изображения (текстурного вида) и карты информации глубин (глубинного вида) в кодере и/или декодере трехмерного изображения.Fig. 6 illustrates an example of the operation of encoding and/or decoding the image itself (texture view) and the depth information map (depth view) in a 3D image encoder and/or decoder.

Фиг. 7 представляет собой структурную схему, иллюстрирующую конфигурацию кодера изображения в соответствии с вариантом осуществления настоящего изобретения.Fig. 7 is a block diagram illustrating the configuration of an image encoder according to an embodiment of the present invention.

Фиг. 8 представляет собой структурную схему, иллюстрирующую конфигурацию декодера изображения в соответствии с вариантом осуществления настоящего изобретения.Fig. 8 is a block diagram illustrating the configuration of an image decoder according to an embodiment of the present invention.

Фиг. 9 представляет собой иллюстрацию примера структуры предсказания для кодека трехмерного изображения.Fig. 9 is an illustration of an example of a prediction structure for a 3D codec.

Фиг. 10 иллюстрирует пример, в котором для построения списка кандидатов слияния для текущего блока используются прилегающие блоки.Fig. 10 illustrates an example where adjacent blocks are used to build a list of merge candidates for the current block.

Фиг. 11 представляет собой иллюстрацию примера операции определения информации движения, относящейся к текущему блоку, с использованием информации движения из соседнего ракурса.Fig. 11 is an illustration of an example of an operation of determining motion information related to the current block using motion information from an adjacent view.

Фиг. 12 представляет собой иллюстрацию примера, в котором один элемент предсказания (ЭП) разбит на несколько подэлементов предсказания.Fig. 12 is an illustration of an example in which one prediction element (PE) is split into multiple prediction sub-elements.

Фиг. 13 представляет собой иллюстрацию примера операции определения информации движения, относящейся к текущему блоку, с использованием опорного блока.Fig. 13 is an illustration of an example of an operation of determining motion information related to the current block using a reference block.

Фиг. 14 представляет собой иллюстрацию примера опорного блока, используемого для определения информации движения, относящейся к текущему блоку.Fig. 14 is an illustration of an example of a reference block used to determine motion information related to the current block.

Фиг. 15a-15e представляют собой схематичные иллюстрации примера операции определения информации движения с использованием информации движения, сохраненной в хранилище.Fig. 15a to 15e are schematic illustrations of an example of motion information determination operation using motion information stored in the storage.

Фиг. 16a-16g представляют собой схематичные иллюстрации еще одного примера операции определения информации движения с использованием информации движения, сохраненной в хранилище.Fig. 16a-16g are schematic illustrations of yet another example of motion information determination operation using motion information stored in the storage.

Фиг. 17 представляет собой блок-схему, иллюстрирующую способ определения информации движения, относящейся к подэлементу предсказания текущего блока, с использованием подэлемента предсказания опорного блока в соответствии с вариантом осуществления настоящего изобретения.Fig. 17 is a flowchart illustrating a method for determining motion information related to a prediction sub-element of a current block using a prediction sub-element of a reference block in accordance with an embodiment of the present invention.

Фиг. 18 представляет собой иллюстрацию примера операции параллельного определения информации движения, относящейся к подэлементу предсказания текущего блока, с использованием подэлемента предсказания опорного блока.Fig. 18 is an illustration of an example of an operation of parallel determination of motion information related to the prediction sub-element of the current block using the reference block prediction sub-element.

Фиг. 19 представляет собой иллюстрацию примера операции поиска подэлемента предсказания, пригодного для использования, при расположении этого подэлемента предсказания в правом нижнем углу опорного блока.Fig. 19 is an illustration of an example operation of searching for a usable prediction sub-element when the prediction sub-element is located in the lower right corner of the reference block.

Фиг. 20 представляет собой схематичную иллюстрацию затрат времени, требуемых для определения информации движения по подэлементам предсказания.Fig. 20 is a schematic illustration of the time required to determine motion information by prediction sub-elements.

Фиг. 21 представляет собой структурную схему, иллюстрирующую конфигурацию модуля межкадрового предсказания в соответствии с настоящим изобретением.Fig. 21 is a block diagram illustrating the configuration of an inter prediction unit according to the present invention.

Фиг. 22 представляет собой блок-схему, схематично иллюстрирующую способ определения информации движения, относящейся к подэлементу предсказания текущего блока, с использованием опорного блока в соответствии с вариантом осуществления настоящего изобретения.Fig. 22 is a flowchart schematically illustrating a method for determining motion information related to a prediction subelement of a current block using a reference block according to an embodiment of the present invention.

Фиг. 23 представляет собой блок-схему, схематично иллюстрирующую способ определения информации движения, относящейся к подэлементу предсказания текущего блока, в соответствии с еще одним вариантом осуществления настоящего изобретения.Fig. 23 is a flowchart schematically illustrating a method for determining motion information related to a prediction sub-element of a current block, according to another embodiment of the present invention.

Фиг. 24 представляет собой иллюстрацию примера операции определения информации движения, относящейся к подэлементу предсказания текущего блока, с использованием информации движения из некоторого положения.Fig. 24 is an illustration of an example of an operation of determining motion information related to a prediction sub-element of the current block using motion information from a position.

Фиг. 25 представляет собой блок-схему, иллюстрирующую способ определения информации движения, относящейся к подэлементу предсказания текущего блока, с использованием некоторого значения информации движения в соответствии с еще одним вариантом осуществления настоящего изобретения.Fig. 25 is a flowchart illustrating a method for determining motion information related to a prediction sub-element of the current block using a certain value of motion information in accordance with yet another embodiment of the present invention.

Фиг. 26 представляет собой иллюстрацию примера операции определения информации движения, относящейся к подэлементу предсказания текущего блока, с использованием некоторой информации движения.Fig. 26 is an illustration of an example of an operation of determining motion information related to a prediction sub-element of the current block using some motion information.

Фиг. 27 представляет собой схематичную иллюстрацию затрат времени, требуемых для определения информации движения в соответствии с настоящим изобретением.Fig. 27 is a schematic illustration of the time required to determine motion information in accordance with the present invention.

Осуществление изобретенияImplementation of the invention

Далее со ссылкой на сопровождающие чертежи подробно описываются варианты осуществления настоящего изобретения. С целью более ясного раскрытия настоящего изобретения подробное описание известных систем или функций, имеющих к отношение к настоящему изобретению, не приводится.Next, with reference to the accompanying drawings, embodiments of the present invention are described in detail. In order to more clearly disclose the present invention, a detailed description of known systems or functions relevant to the present invention is not given.

Если о некотором компоненте сказано, что он соединен или связан с другим компонентом, то это означает, что этот компонент может быть соединен или связан с другим компонентом как непосредственно, так и посредством других компонентов. Если в настоящем документе сказано, что настоящее изобретение содержит или включает определенный компонент, то это означает, что настоящее изобретение не исключает присутствия других компонентов, и вполне возможно, что в технической сущности настоящего изобретения или в вариантах осуществления настоящего изобретения также присутствуют дополнительные компоненты.If a component is said to be connected or connected to another component, then this means that this component can be connected or connected to another component either directly or through other components. If this document says that the present invention contains or includes a certain component, then this means that the present invention does not exclude the presence of other components, and it is possible that additional components are also present in the technical essence of the present invention or in embodiments of the present invention.

Для описания различных компонентов могут использоваться термины «первый» и «второй», но указанными терминами на эти компоненты не накладывается никаких ограничений. Данные термины используются лишь с целью отличить один компонент от другого. Например, без отступления от идеи настоящего изобретения первый компонент может быть назван вторым компонентом, а второй компонент может быть назван первым компонентом.The terms "first" and "second" may be used to describe the various components, but these terms are not limited in any way. These terms are only used to distinguish one component from another. For example, without departing from the spirit of the present invention, the first component may be referred to as the second component, and the second component may be referred to as the first component.

В настоящем документе компоненты с целью представления соответствующих им индивидуальных особенностей могут быть показаны независимыми, но это не означает, что каждый компонент должен представлять собой отдельный аппаратный или программный элемент. Иными словами, для упрощения описания компоненты показаны раздельными. Для выполнения какой-либо функции могут быть объединены по меньшей мере два компонента с образованием одного компонента, либо любой компонент может быть разделен на множество компонентов. Такое объединение или разделение, не являясь отступлением от идеи настоящего изобретения, также входит в объем охраны настоящего изобретения.In this document, components may be shown as independent for the purpose of representing their respective individual characteristics, but this does not mean that each component must be a separate hardware or software element. In other words, for ease of description, the components are shown separately. At least two components may be combined to form one component to perform a function, or any component may be divided into multiple components. Such combination or separation, without being a departure from the idea of the present invention, is also within the scope of protection of the present invention.

Некоторые компоненты могут быть не обязательными компонентами, служащими для выполнения существенных функций настоящего изобретения, а необязательными компонентами, служащими для улучшения работы. Для осуществления настоящего изобретения достаточно лишь существенных компонентов, реализующих идею настоящего изобретения, а компоненты, используемые для повышения качества функционирования, могут быть исключены, и такая конфигурация также входит в объем охраны настоящего изобретения.Some components may not be essential components to perform the essential functions of the present invention, but optional components that serve to improve performance. Only the essential components that implement the idea of the present invention are sufficient for the implementation of the present invention, and the components used to improve the quality of operation can be omitted, and such a configuration is also within the scope of the present invention.

Трехмерное изображение на трехмерном стереоскопическом дисплее создает стереоскопический эффект, подобный тому, что пользователь видит и ощущает в реальном мире. В этой связи группа JCT-3V (The Joint Collaborative Team on 3D Image Coding Extension Development) из группы MPEG (Moving Picture Experts Group) при ISO/IEC (International Organization for Standartization - International Electrotechnical Commission) и группа VCEG (Video Coding Experts Group) в ITU-T (International Telecommunication Union - Telecommunication Standardization Sector) работают над разработкой стандартов для трехмерных изображений.A 3D image on a 3D stereoscopic display creates a stereoscopic effect similar to what the user sees and feels in the real world. In this regard, the JCT-3V group (The Joint Collaborative Team on 3D Image Coding Extension Development) from the MPEG (Moving Picture Experts Group) at ISO / IEC (International Organization for Standardization - International Electrotechnical Commission) and the VCEG (Video Coding Experts Group ) in the ITU-T (International Telecommunication Union - Telecommunication Standardization Sector) are working on developing standards for three-dimensional images.

Фиг. 1 представляет собой схематичную иллюстрацию базовой структуры системы для работы с трехмерными изображениями.Fig. 1 is a schematic illustration of the basic structure of a 3D imaging system.

Как показано на фиг. 1, в состав системы трехмерного видео (3DV) могут входить передатчик и приемник. При этом система трехмерного видео, показанная на фиг. 1, может быть базовой системой трехмерного видео, представленной в стандартах трехмерных изображений, в числе которых могут быть стандарты в отношении перспективных форматов данных и связанных с ними технологий, которые могут поддерживать воспроизведение автостереоскопических изображений, а также стереоскопических изображений, использующих текстуру и соответствующую ей карту информации глубин.As shown in FIG. 1, a 3D video (3DV) system may include a transmitter and a receiver. Meanwhile, the 3D video system shown in FIG. 1 may be a basic 3D video system represented by 3D imaging standards, which may include standards for advanced data formats and related technologies that may support the reproduction of autostereoscopic images as well as stereoscopic images using a texture and its corresponding map. depth information.

Передатчик может формировать информационный материал с изображением, содержащим множество ракурсов. Конкретно, на передающей стороне с использованием стереокамеры и камеры, обеспечивающей съемку нескольких ракурсов, может формироваться информация изображения, а с использованием камеры, обеспечивающей съемку информации глубин, может формироваться карта информации глубин (или глубинный вид). Передатчик может преобразовывать двумерное изображение в трехмерное изображение с использованием преобразователя. С использованием сформированной информации изображения и карты информации глубин передатчик может формировать информационный материал с изображением, содержащим N ракурсов (N ≥ 2), т.е. с многоракурсным изображением. При этом информационный материал с N-ракурсным изображением может содержать информацию изображения, информацию карты глубины этого изображения и дополнительную информацию, относящуюся к камере. Указанный информационный материал с N-ракурсным изображением может сжиматься кодером трехмерного изображения с использованием схемы кодирования многоракурсных изображений, а сжатый информационный материал с изображением (битовый поток) может передаваться через сеть в терминал приемника.The transmitter may generate information material with an image containing a plurality of angles. Specifically, at the transmission side, using a stereo camera and a multi-angle camera, image information can be generated, and using a depth information camera, a depth information map (or depth view) can be generated. The transmitter may convert the 2D image to a 3D image using a converter. Using the generated image information and the depth information map, the transmitter can generate information material with an image containing N views (N ≥ 2), i.e. with multi-angle image. Meanwhile, the N-view image information material may contain image information, depth map information of the image, and additional information related to the camera. Said N-view image information material may be compressed by a 3D image encoder using a multi-view image coding scheme, and the compressed image information material (bitstream) may be transmitted via a network to a receiver terminal.

Приемник выполнен с возможностью декодирования информационного материала с изображением, принятого из передатчика, и с возможностью выдачи многоракурсного изображения. Конкретно, входящий в состав приемника декодер изображения (например, декодер трехмерного изображения, декодер стереоскопического изображения или декодер двумерного изображения) с целью восстановления N-ракурсного изображения из битового потока выполнен с возможностью декодирования принятого битового потока с использованием схемы декодирования многоракурсных изображений. При этом декодер изображения выполнен с возможностью формирования N (или более)-ракурсных виртуальных изображений с использованием восстановленного N-ракурсного изображения и операции визуализации на основе информации глубины изображения (depth image-based rendering, DIBR). Сформированные N (или более)-ракурсные виртуальные изображения воспроизводятся разнообразными трехмерными дисплеями (к примеру, N-ракурсным дисплеем, стереоскопическим дисплеем или двумерным дисплеем), которые создают у пользователя ощущение трехмерности изображения.The receiver is configured to decode information material with an image received from the transmitter and to output a multiview image. Specifically, an image decoder included in the receiver (for example, a 3D image decoder, a stereoscopic image decoder, or a 2D image decoder) for the purpose of recovering an N-view image from a bitstream is configured to decode the received bitstream using a multi-view image decoding scheme. At the same time, the image decoder is configured to generate N (or more)-view virtual images using the reconstructed N-view image and a rendering operation based on image depth information (depth image-based rendering, DIBR). The generated N (or more)-angle virtual images are displayed by various 3D displays (eg, N-angle display, stereoscopic display, or 2D display) that give the user a 3D experience.

Фиг. 2 представляет собой пример изображения воздушных шаров и пример изображения карты информации глубин. На фиг. 2(a) показано изображение воздушных шаров, которое принято использовать в разработанном группой MPEG (международной организацией по стандартизации) стандарте кодирования трехмерных изображений. На фиг. 2(b) показано изображение карты информации глубин, соответствующей изображению воздушных шаров, показанному на фиг. 2(a). Это изображение карты информации глубин получено визуализацией информации глубин путем отображения на экране ее представления с кодированием восемью битами на пиксел.Fig. 2 is an example of an image of balloons and an example of an image of a depth information map. In FIG. 2(a) shows an image of balloons that is commonly used in the MPEG (International Standards Organization) 3D image coding standard. In FIG. 2(b) shows an image of a depth information map corresponding to the image of balloons shown in FIG. 2(a). This depth information map image is obtained by visualizing depth information by displaying its representation with eight bits per pixel encoding on a screen.

Карта информации глубин используется для формирования виртуальных изображений ракурсов и строится путем представления расстояния между камерой и реальным объектом в реальном пространстве (информации глубин, соответствующей каждому пикселу, с тем же разрешением, как у текстуры) заранее заданным числом битов. При этом карта информации глубин может быть построена с использованием камеры для получения карты информации глубин или с использованием собственно обычного изображения (текстуры).The depth information map is used to generate virtual view images and is constructed by representing the distance between the camera and the real object in real space (the depth information corresponding to each pixel at the same resolution as the texture) by a predetermined number of bits. In this case, the depth information map can be built using a camera to obtain a depth information map or using the actual conventional image (texture).

Карта информации глубин, которая строится с использованием камеры для получения карты информации глубин, для неподвижных объектов или сцен дает самую надежную информацию глубин, однако эта камера работоспособна только в заранее заданном интервале расстояний. Для устранения этого недостатка камера для получения карты информации глубин может использовать схему измерения, в которой применяется лазерный луч или структурированный свет, или световую времяпролетную схему измерения (TFL, time-of-flight of light, время пролета света).The depth information map that is built using the depth information map camera for stationary objects or scenes provides the most reliable depth information, however, this camera is only operable over a predetermined distance interval. To overcome this shortcoming, the camera can use a measurement scheme using a laser beam or structured light, or a time-of-flight (TFL) measurement scheme to obtain a depth information map.

Карта информации глубин, кроме того, может быть сформирована с использованием собственно обычного изображения (текстуры) и вектора невязки. Вектором невязки называют информацию, представляющую различие между ракурсами, представленными двумя обычными изображениями. Вектор невязки может быть получен путем сравнения пиксела из текущего ракурса и пикселов из других ракурсов с целью отыскания пиксела, наиболее сходного с пикселом из текущего ракурса, и измерения расстояния между пикселом из текущего ракурса и этим наиболее сходным пикселом.The depth information map can also be generated using the normal image (texture) itself and the residual vector. The residual vector is information representing the difference between the views represented by two regular images. The residual vector can be obtained by comparing a pixel from the current view and pixels from other views to find the pixel that is most similar to the pixel from the current view and measure the distance between the pixel from the current view and that most similar pixel.

Текстура и ее карта информации глубин могут представлять собой изображение (изображения), полученные одной или более камерами. Изображения, полученные несколькими камерами, могут кодироваться независимо, а для их кодирования/декодирования может использоваться типовой кодек для кодирования/декодирования двумерных изображений. Ракурсы в изображениях, полученных несколькими камерами, коррелированы, и по этой причине для повышения эффективности кодирования могут кодироваться с использованием предсказания с использованием предсказания по разным ракурсам (межракурсного предсказания).A texture and its depth information map may be an image(s) taken by one or more cameras. Images acquired by multiple cameras may be independently encoded and a generic codec for encoding/decoding 2D images may be used to encode/decode them. Views in images taken by multiple cameras are correlated, and for this reason, in order to improve coding efficiency, they may be coded using prediction using multi-view prediction (inter-view prediction).

Фиг. 3 представляет собой схематичную иллюстрацию структуры, на которую изображение разбивается при кодировании и декодировании.Fig. 3 is a schematic illustration of the structure into which an image is partitioned during encoding and decoding.

При рационально выполненном разбиении изображение может кодироваться и декодироваться отдельно в каждом элементе кодирования (ЭК). Термин «элемент» обозначает блок, содержащий синтаксический элемент и элементарные значения изображения (значения элементов изображения, отсчеты, samples). Выражение «элемент разбит» может означать, что разбит блок, соответствующий указанному элементу.With rational partitioning, the image can be encoded and decoded separately in each coding element (EC). The term "element" means a block containing a syntactic element and elementary image values (image element values, samples, samples). The expression "element is broken" can mean that the block corresponding to the specified element is broken.

Как показано на фиг. 3, изображение 300 последовательно разбивается на самые большие элементы кодирования (СБЭК) и определяется структура разбиения каждого СБЭК. В настоящем документе под СБЭК может пониматься элемент дерева кодирования (ЭДК). Под структурой разбиения может пониматься размещение элементов кодирования (ЭК) в каждом из СБЭК 310 с целью рационального кодирования изображения; такое размещение может определяться тем, разбивается ли один ЭК на четыре ЭК, каждый из которых вдвое меньше исходного ЭК как в горизонтальном, так и в вертикальном направлении. Таким же образом ЭК, полученный в результате разбиения, тоже может последовательно разбиваться на четыре ЭК, каждый из которых вдвое меньше исходного ЭК как в горизонтальном, так и в вертикальном направлении.As shown in FIG. 3, the picture 300 is sequentially partitioned into largest bins (LCEs) and a partition structure of each LEC is determined. In the present document, BCEC can be understood as a coding tree element (EDC). The partitioning structure can be understood to mean the placement of coding units (ECs) in each of the BCSs 310 in order to rationally encode the image; this placement can be determined by whether one CI is split into four CIs, each of which is half the size of the original CI in both the horizontal and vertical directions. In the same way, the EC obtained as a result of splitting can also be sequentially divided into four ECs, each of which is half the size of the original EC both in the horizontal and vertical directions.

Разбиение элемента кодирования может выполняться последовательно до заранее определенной глубины разбиения. Под информацией глубины понимается информация, указывающая размер ЭК; эта информация может быть сохранена для каждого ЭК. Например, глубина разбиения СБЭК может быть равной 0, а глубина разбиения самого малого элемента кодирования (СМЭК) может быть равна заранее определенной наибольшей глубине разбиения. Здесь СБЭК представляет собой элемент кодирования наибольшего размера, как указано выше, а СМЭК представляет собой элемент кодирования наименьшего размера.The splitting of the coding element may be performed sequentially up to a predetermined splitting depth. Depth information refers to information indicating the size of the CI; this information can be stored for each CI. For example, the split depth of the SBEC may be equal to 0, and the split depth of the smallest coding unit (SMEC) may be equal to a predetermined largest split depth. Here, SBEC is the largest coding unit as above, and CMEC is the smallest coding unit.

Всякий раз, когда LCU 310 делится пополам как в горизонтальном, так и в вертикальном направлениях, глубина разбиения данного ЭК увеличивается на единицу. Например, если при некоторой глубине L разбиения размер ЭК равен 2Nx2N, то размер ЭК, получающегося в результате разбиения данного ЭК, сокращается до NxN. При этом глубина разбиения такого ЭК с размером NxN равна L+1. Иными словами, величина N, соответствующая размеру ЭК, уменьшается вдвое при каждом увеличении глубины разбиения на единицу.Whenever the LCU 310 is bisected both horizontally and vertically, the split depth of that CI is incremented by one. For example, if at a certain depth L of partitioning, the size of the EC is 2Nx2N, then the size of the EC resulting from splitting this EC is reduced to NxN. In this case, the partitioning depth of such an EC with the size NxN is equal to L+1. In other words, the value of N, corresponding to the size of the EC, decreases by half with each increase in the partitioning depth by one.

Как показано на фиг. 3, размер самого большого элемента кодирования (СБЭК), соответствующего наименьшей глубине разбиения, равной 0, может быть 64×64 пиксела, а размер самого малого элемента кодирования (СМЭК), соответствующего наименьшей глубине разбиения, равной 3, может быть 8×8 пикселов. При этом глубина разбиения ЭК размером 64×64 пиксела (СБЭК) может быть положена равной 0, ЭК размером 32×32 пиксела равной 1, ЭК размером 16×16 пикселов равной 2, а ЭК размером 8×8 пикселов (СМЭК) равной 3.As shown in FIG. 3, the size of the largest coding unit (SBEC) corresponding to the smallest bin depth of 0 may be 64×64 pixels, and the size of the smallest coding unit (SBEC) corresponding to the smallest tiling depth of 3 may be 8×8 pixels. . In this case, the splitting depth of the 64×64 pixel EC (SBEC) can be set equal to 0, the 32×32 pixel EC equal to 1, the 16×16 pixel EC equal to 2, and the 8×8 pixel EC (SMEC) equal to 3.

Информация о том, разбивается ли определенный ЭК, может быть представлена посредством однобитовой информации разбиения данного ЭК. Эта информация разбиения может содержаться во всех ЭК, кроме самых малых ЭК. Например, если ЭК не разбит, то в информации разбиения данного ЭК может храниться 0, а если разбит, то в информации разбиения данного ЭК может храниться 1.Information about whether a particular CI is split can be represented by one-bit split information of the given CI. This split information can be contained in all but the smallest CIs. For example, if a CI is not split, then 0 can be stored in the split information of this CI, and if it is split, then 1 can be stored in the split information of this CI.

Фиг. 4 иллюстрирует элементы предсказания, которые могут содержаться в элементе кодирования (ЭК).Fig. 4 illustrates prediction elements that may be contained in a coding unit (EC).

Элемент кодирования из числа элементов кодирования, полученных разбиением СБЭК, не подвергаемый дальнейшему разбиению, может быть разбит или разделен еще и на один или более элементов предсказания.A bin of coding units obtained by splitting the SBEC that is not subject to further splitting may be split or further divided into one or more prediction bins.

Элемент предсказания (далее ЭП) представляет собой базовый элемент, в котором выполняется предсказание. Элемент предсказания кодируется и декодируется в режиме пропуска, в межкадровом режиме или во внутрикадровом режиме. В зависимости от режима элемент предсказания может быть разбит различными способами, представленными на фиг. 4.The prediction element (hereinafter EP) is the basic element in which the prediction is performed. The prediction element is encoded and decoded in skip mode, inter-frame mode, or intra-frame mode. Depending on the mode, the prediction element can be split in various ways, shown in FIG. four.

В режиме пропуска возможна поддержка режима 410, в котором ЭП имеет размер 2Nx2N, такой же, как у неразбитого ЭК.In the skip mode, it is possible to support mode 410, in which the ES has a size of 2Nx2N, the same as that of an unsplit EC.

В межкадровом режиме возможна поддержка ЭК восьми типов разделения, например, режим 410 2Nx2N, режим 415 2NxN, режим 420 Nx2N, режим 425 NxN, режим 430 2NxnU, режим 435 2NxnD, режим 440 nLx2N, и режим 445 NRx2N.In interframe mode, eight types of CIs can be supported, such as 410 2Nx2N mode, 415 2NxN mode, 420 Nx2N mode, 425 NxN mode, 430 2NxnU mode, 435 2NxnD mode, 440 nLx2N mode, and 445 NRx2N mode.

Во внутрикадровом режиме возможна поддержка режима 410 2Nx2N и режима 425 NxN.In intra frame mode, 410 2Nx2N mode and 425 NxN mode can be supported.

Фиг. 5 иллюстрирует пример структуры межракурсного предсказания в кодеке трехмерного изображения.Fig. 5 illustrates an example of an inter-view prediction structure in a 3D codec.

Межракурсное предсказание для ракурса 1 и ракурса 2 может быть выполнено с использованием ракурса 0 в качестве опорного изображения, но ракурс 0 должен быть кодирован раньше ракурса 1 и ракурса 2.Inter-view prediction for view 1 and view 2 can be performed using view 0 as a reference picture, but view 0 must be encoded before view 1 and view 2.

При этом ракурс 0 может кодироваться независимо от других ракурсов, поэтому ракурс 0 называется независимым ракурсом. Ракурс 1 и ракурс 2, которые должны использовать ракурс 0 в качестве опорного изображения, называют зависимыми ракурсами. Изображение независимого ракурса может кодироваться с использованием обычного кодека двумерного изображения. Изображения зависимых ракурсов должны подвергаться межракурсному предсказанию, поэтому эти ракурсы могут кодироваться с использованием кодека трехмерного изображения, выполненного с возможностью межракурсного предсказания.In this case, view 0 can be encoded independently of other views, so view 0 is called an independent view. View 1 and view 2, which must use view 0 as a reference image, are called dependent views. An independent-view image may be encoded using a conventional 2D image codec. Dependent-view images must be subject to inter-view prediction, so these views may be encoded using a 3D image codec capable of inter-view prediction.

Для повышения эффективности кодирования ракурс 1 и ракурс 2 могут кодироваться с использованием карты информации глубин. Например, текстура и карта информации глубин при кодировании могут кодироваться и/или декодироваться независимо друг от друга. Кроме того, текстура и карта информации глубин при кодировании могут кодироваться и/или декодироваться в зависимости друг от друга, что показано на фиг. 6.To improve coding efficiency, view 1 and view 2 may be encoded using a depth information map. For example, the texture and the depth information map when encoding can be encoded and/or decoded independently of each other. In addition, the texture and the depth information map when encoding can be encoded and/or decoded depending on each other, as shown in FIG. 6.

Фиг. 6 иллюстрирует пример операции кодирования и/или декодирования собственно изображения (текстурного вида) и карты информации глубин (глубинного вида) в кодере и/или декодере трехмерного изображения.Fig. 6 illustrates an example of the operation of encoding and/or decoding the image itself (texture view) and the depth information map (depth view) in a 3D image encoder and/or decoder.

Как показано на фиг. 6, кодер трехмерного изображения может содержать текстурный кодер (кодер текстуры) для кодирования собственно изображения (текстурного вида) и кодер карты информации глубин (кодер глубины) для кодирования карты информации глубин (глубинного вида).As shown in FIG. 6, the 3D image encoder may include a texture encoder (texture encoder) for encoding the actual image (texture view) and a depth information map encoder (depth encoder) for encoding a depth information map (depth view).

При этом кодер текстуры выполнен с возможностью кодирования текстуры с использованием карты информации глубин, кодированной кодером карты информации глубин. В то же время кодер карты информации глубин выполнен с возможностью кодирования карты информации глубин с использованием текстуры, кодированной кодером текстуры.At the same time, the texture encoder is configured to encode the texture using the depth information map encoded by the depth information map encoder. At the same time, the depth information map encoder is configured to encode the depth information map using the texture encoded by the texture encoder.

Декодер трехмерного изображения может содержать декодер собственно изображения (декодер текстуры) для декодирования текстуры и декодер карты информации глубин для декодирования карты информации глубин.The 3D image decoder may comprise an image proper decoder (texture decoder) for texture decoding and a depth information map decoder for decoding a depth information map.

При этом декодер текстуры выполнен с возможностью декодирования текстуры с использованием карты информации глубин, декодированной декодером карты информации глубин. В то же время декодер карты информации глубин выполнен с возможностью декодирования карты информации глубин с использованием текстуры, декодированной декодером текстуры.Wherein, the texture decoder is configured to decode the texture using the depth information map decoded by the depth information map decoder. At the same time, the depth information map decoder is configured to decode the depth information map using the texture decoded by the texture decoder.

Фиг. 7 представляет собой структурную схему, иллюстрирующую конфигурацию кодера изображения в соответствии с вариантом осуществления настоящего изобретения.Fig. 7 is a block diagram illustrating the configuration of an image encoder according to an embodiment of the present invention.

Фиг. 7 иллюстрирует пример кодера изображения, применимого к многоракурсной структуре, который может быть осуществлен путем модификации кодера одноракурсных изображений. При этом кодер изображения, показанный на фиг. 7, может использоваться в кодере текстуры и/или в кодере карты информации глубин, как показано на фиг. 6, и под этим кодером может пониматься устройство кодирования.Fig. 7 illustrates an example of an image encoder applicable to a multi-view structure, which can be implemented by modifying the single-view image encoder. Meanwhile, the image encoder shown in FIG. 7 may be used in a texture encoder and/or a depth information map encoder as shown in FIG. 6, and this encoder may be understood as an encoder.

Как показано на фиг. 7, кодер 700 изображения содержит модуль 710 межкадрового предсказания, модуль 720 внутрикадрового предсказания, переключатель 715, вычитатель 725, модуль 730 преобразования, модуль 740 квантования, модуль 750 энтропийного кодирования, модуль 760 деквантования, модуль 770 обратного преобразования, сумматор 775, фильтр 780 и буфер 790 опорного кадра.As shown in FIG. 7, the image encoder 700 includes an inter prediction module 710, an intra prediction module 720, a switch 715, a subtractor 725, a transform module 730, a quantization module 740, an entropy encoding module 750, a dequantization module 760, an inverse transform module 770, an adder 775, a filter 780, and buffer 790 reference frame.

Кодер 700 изображения выполнен с возможностью кодирования входного изображения во внутрикадровом режиме или в межкадровом режиме с формированием битового потока.The image encoder 700 is configured to encode the input image in an intra frame mode or in an inter frame mode with the formation of a bit stream.

Под внутрикадровым предсказанием понимается предсказание по одному кадру, а под межкадровым предсказанием понимается предсказание по разным кадрам или по разным ракурсам. Внутрикадровый или межкадровый режим задается переключателем 715.Intra-frame prediction refers to prediction on a single frame, and inter-frame prediction refers to prediction on different frames or different angles. Intra-frame or inter-frame mode is set by switch 715.

Кодер 700 изображения выполнен с возможностью формирования блока предсказания для блока входного кадра (текущего блока) с последующим кодированием разности между текущим блоком и этим блоком предсказания.The image encoder 700 is configured to generate a prediction block for a block of the input frame (the current block) and then encode the difference between the current block and this prediction block.

Модуль 720 внутрикадрового предсказания выполнен с возможностью использования во внутрикадровом режиме в качестве своего опорного пиксела значения пиксела из уже закодированного блока, соседнего с текущим блоком. Модуль 720 внутрикадрового предсказания выполнен с возможностью формирования элементарных значений предсказания для текущего блока с использованием этого опорного пиксела.The intra prediction module 720 is configured to intra frame use as its reference pixel a pixel value from an already encoded block adjacent to the current block. The intra prediction module 720 is configured to generate prediction chips for the current block using this reference pixel.

Модуль 710 межкадрового предсказания выполнен с возможностью получения в межкадровом режиме вектора движения, указывающего опорный блок, соответствующий входному блоку (текущему блоку) в опорном кадре, сохраненном в буфере 790 опорного кадра. Модуль 710 межкадрового предсказания выполнен с возможностью формирования блока предсказания для текущего блока путем выполнения компенсации движения с использованием опорного кадра, сохраненного в буфере 790 опорного кадра, и указанного вектора движения.The inter-frame prediction module 710 is configured to obtain, in inter-frame mode, a motion vector indicating a reference block corresponding to an input block (current block) in the reference frame stored in the reference frame buffer 790 . The inter-frame prediction module 710 is configured to generate a prediction block for the current block by performing motion compensation using a reference frame stored in the reference frame buffer 790 and a specified motion vector.

В многоракурсной структуре межкадровое предсказание, применяемое в межкадровом режиме, может содержать межракурсное предсказание. Модуль 710 межкадрового предсказания выполнен с возможностью построения межракурсного опорного кадра путем отбора элементарных значений из кадра опорного ракурса. Модуль 710 межкадрового предсказания выполнен с возможностью осуществления межракурсного предсказания с использованием списка опорных кадров, содержащего указанный межракурсный опорный кадр. Относительная взаимосвязь между ракурсами может сообщаться посредством информации, указывающей зависимость одного ракурса от другого ракурса.In the multi-view structure, the inter-picture prediction applied in the inter-frame mode may comprise the inter-view prediction. The inter-frame prediction module 710 is configured to construct an inter-view reference frame by selecting chip values from the reference-view frame. The inter-frame prediction module 710 is configured to perform inter-view prediction using a reference frame list containing the specified inter-view reference frame. The relative relationship between views may be communicated by information indicating the dependency of one view on another view.

Если кадр текущего ракурса и кадр опорного ракурса имеют одинаковые размеры, то под отбором элементарных значений, применяемым к кадру опорного ракурса, может пониматься формирование опорного элементарного значения путем копирования элементарного значения из кадра опорного ракурса или путем интерполяции в кадре опорного ракурса. Если же кадр текущего ракурса и кадр опорного ракурса имеют различные размеры, то под отбором элементарных значений, применяемым к кадру опорного ракурса, может пониматься отбор элементарных значений с повышением разрешения или с понижением разрешения. Например, если ракурсы имеют различные разрешения, то для построения межракурсного опорного кадра может выполняться отбор элементарных значений из восстановленного кадра опорного ракурса с повышением разрешения.If the current-view frame and the reference-view frame have the same dimensions, then the selection of elementary values applied to the reference-view frame can be understood as the generation of the reference elementary value by copying the elementary value from the reference-view frame or by interpolation in the reference-view frame. If the frame of the current view and the frame of the reference view have different sizes, then the selection of elementary values applied to the frame of the reference view can be understood as the selection of elementary values with upscaling or downscaling. For example, if the views have different resolutions, then to build an inter-view key frame, the selection of elementary values from the restored frame of the reference view with upscaling can be performed.

Ракурс, кадр из которого должен использоваться для построения межракурсного опорного кадра, может определяться с учетом, например, стоимости кодирования. Кодер может передавать в декодирующее устройство информацию, указывающую ракурс, которому принадлежит кадр, подлежащий использованию в качестве межракурсного опорного кадра.The view from which a frame is to be used to construct an inter-view reference frame may be determined in view of, for example, encoding cost. The encoder may send to the decoder information indicating the view to which the frame to be used as the inter-view reference frame belongs.

Кадр, используемый для предсказания текущего блока в ракурсе, относительно которого ведется межракурсное предсказание - то есть в опорном ракурсе - может быть тем же, что и кадр того же элемента доступа (ЭД), что и текущий кадр (кадр в текущем ракурсе, для которого выполняется предсказание).The frame used to predict the current block in the view that is being inter-viewed - that is, in the reference view - may be the same as the frame of the same Access Element (ED) as the current frame (the frame in the current view for which prediction is made).

Вычитатель 725 выполнен с возможностью формирования остаточного блока (остаточного сигнала) путем вычисления разности между текущим блоком и блоком предсказания.Subtractor 725 is configured to generate a residual block (residual signal) by calculating a difference between the current block and the prediction block.

Модуль 730 преобразования преобразует остаточный блок в коэффициент преобразования. В режиме пропуска преобразования модуль 730 преобразования может пропускать указанное преобразование остаточного блока.Transform module 730 converts the residual block into a transform coefficient. In the transform skip mode, transform module 730 may skip the specified residual block transform.

Модуль 740 квантования квантует указанный коэффициент преобразования, формируя квантованный коэффициент в соответствии с параметрами квантования.Quantization unit 740 quantizes the specified transform coefficient, generating a quantized coefficient in accordance with the quantization parameters.

Блок 750 энтропийного кодирования выполняет энтропийное кодирование значений, полученных модулем 740 квантования, или параметров кодирования, полученных в процессе кодирования, в битовый поток в соответствии с распределением вероятности. Блок 750 энтропийного кодирования также выполнен с возможностью энтропийного кодирования, в дополнение к информации пикселов изображения, еще и информации (к примеру, синтаксического элемента) для декодирования изображения.The entropy encoding unit 750 entropy encodes the values obtained by the quantization unit 740 or the encoding parameters obtained during the encoding process into a bitstream according to a probability distribution. Entropy encoding unit 750 is also configured to entropy encode, in addition to image pixel information, information (eg, syntax element) for image decoding.

Указанные параметры кодирования в качестве информации, необходимой для кодирования и декодирования, могут содержать информацию, которая может быть определена в процессе кодирования или декодирования, а также такую информацию, как, например, синтаксический элемент, закодированный кодером и переданный в декодирующее устройство.Said encoding parameters, as information necessary for encoding and decoding, may contain information that can be determined during encoding or decoding, as well as information such as, for example, a syntax element encoded by an encoder and transmitted to a decoder.

Под остаточным сигналом может пониматься разность между исходным сигналом и предсказанным сигналом, сигнал, полученный преобразованием разности между исходным сигналом и предсказанным сигналом, или сигнал, полученный преобразованием разности между исходным сигналом и предсказанным сигналом и последующим квантованием преобразованной разности. При рассмотрении на уровне блоков остаточный сигнал может быть назван остаточным блоком.The residual signal can be understood as the difference between the original signal and the predicted signal, the signal obtained by transforming the difference between the original signal and the predicted signal, or the signal obtained by transforming the difference between the original signal and the predicted signal and then quantizing the transformed difference. When considered at the block level, the residual signal may be referred to as a residual block.

Когда применяется энтропийное кодирование, символы могут быть представлены таким образом, что символ с более высокой вероятностью присутствия кодируется меньшим количеством битов, а другой символ с меньшей вероятностью присутствия кодируется большим количеством битов, тем самым для символов, подвергаемых кодированию, может быть снижен объем битового потока. Таким образом, кодирование изображения с использованием энтропийного кодирования дает возможность получить лучшее сжатие.When entropy coding is applied, characters can be represented such that a character with a higher probability of being present is encoded with fewer bits, and another character with a lower probability of being present is encoded with more bits, thus the amount of bitstream can be reduced for the characters to be encoded. . Thus, encoding an image using entropy encoding makes it possible to obtain better compression.

Схемой кодирования, используемой при энтропийном кодировании, может быть, например, экспоненциальная схема Голомба, контекстно-адаптивное кодирование с переменной длиной слова (CAVLC, context-adaptive variable length coding), или контекстно-адаптивное двоичное арифметическое кодирование (CABAC, context-adaptive binary arithmetic coding). Например, блок 750 энтропийного кодирования может выполнять энтропийное кодирование с использованием таблицы кодирования с переменной длиной слова (таблицы VLC, variable length coding/code). Блок 750 энтропийного кодирования выполнен с возможностью выбора способа разбиения на интервалы, целевого символа и вероятностной модели указанного целевого символа/интервала, и выполнен с возможностью реализации энтропийного кодирования с использованием выбранного способа разбиения на интервалы и вероятностной модели.The coding scheme used in entropy coding can be, for example, exponential Golomb, context-adaptive variable length coding (CAVLC), or context-adaptive binary arithmetic coding (CABAC, context-adaptive binary). arithmetic coding). For example, entropy encoding unit 750 may perform entropy encoding using a variable length coding/code coding table (VLC tables). The entropy encoding unit 750 is configured to select a binning method, a target symbol, and a probability model of the specified target symbol/slot, and is configured to implement entropy encoding using the selected binning method and the probability model.

Прошедший квантование коэффициент может быть деквантован модулем 760 деквантования и может быть подвергнут обратному преобразованию модулем 770 обратного преобразования. Сумматор 775 складывает деквантованный и прошедший обратное преобразование коэффициент с блоком предсказания, в результате чего получается восстановленный блок.The quantized coefficient may be dequantized by dequantization module 760 and may be inversely transformed by inverse transform module 770 . An adder 775 adds the dequantized and inversely transformed coefficient to the prediction block, resulting in a reconstructed block.

Восстановленный блок проходит через фильтр 780. В фильтре 780 к восстановленному блоку или восстановленному кадру может применяться по меньшей мере один из следующих фильтров: фильтр подавления блочности; фильтр с адаптивным смещением (sample adaptive offset, SAO) и фильтр с адаптивным контуром (adaptive loop filter, ALF). Восстановленный блок после прохождения через фильтр 780 может сохраняться в буфере 790 опорного кадра.The reconstructed block passes through filter 780. At filter 780, at least one of the following filters may be applied to the reconstructed block or frame: a deblocking filter; a sample adaptive offset (SAO) filter and an adaptive loop filter (ALF). The reconstructed block after passing through the filter 780 may be stored in the buffer 790 of the reference frame.

Фиг. 8 представляет собой структурную схему, иллюстрирующую конфигурацию декодера изображения в соответствии с вариантом осуществления настоящего изобретения. Фиг. 8 иллюстрирует пример декодера изображения, применимого к многоракурсной структуре, который может быть осуществлен путем модификации декодера одноракурсных изображений.Fig. 8 is a block diagram illustrating the configuration of an image decoder according to an embodiment of the present invention. Fig. 8 illustrates an example of an image decoder applicable to a multi-view structure, which can be implemented by modifying the single-view image decoder.

Декодер изображения, показанный на фиг. 8, может использоваться в декодере текстуры и/или в декодере карты информации глубин, показанном на фиг. 6. Для простоты описания в настоящем документе термины «дешифрование» и «декодирование» могут быть использованы с возможностью взаимной замены; также с возможностью взаимной замены могут быть использованы термины «декодирующее устройство» и «декодер».The picture decoder shown in FIG. 8 may be used in the texture decoder and/or the depth information map decoder shown in FIG. 6. For ease of description in this document, the terms "decryption" and "decoding" can be used interchangeably; the terms "decoder" and "decoder" may also be used interchangeably.

Как показано на фиг. 8, декодер 800 изображения содержит модуль 810 энтропийного декодирования, модуль 820 деквантования, модуль 830 обратного преобразования, модуль 840 внутрикадрового предсказания, модуль 850 межкадрового предсказания, фильтр 860 и буфер 870 опорного кадра.As shown in FIG. 8, the image decoder 800 includes an entropy decoding unit 810, a dequantization unit 820, an inverse transform unit 830, an intra prediction unit 840, an inter prediction unit 850, a filter 860, and a reference frame buffer 870.

Декодер 800 изображения выполнен с возможностью приема битового потока из кодера, декодирования этого битового потока во внутрикадровом режиме или в межкадровом режиме и выдачи воссозданного изображения, т.е. восстановленного изображения.The image decoder 800 is configured to receive a bitstream from the encoder, decode the bitstream either intra-frame or inter-frame, and output a reconstructed image, i. restored image.

Внутрикадровый или межкадровый режим может выбираться переключателем.Intra-frame or inter-frame mode can be selected with a switch.

Декодер 800 изображения выполнен с возможностью получения остаточного блока, восстановленного из принятого битового потока, с возможностью формирования блока предсказания и с возможностью сложения восстановленного остаточного блока с этим блоком предсказания, в результате чего формируется воссозданный блок, т.е. восстановленный блок.The image decoder 800 is configured to obtain a residual block recovered from the received bitstream, to generate a prediction block, and to add the recovered residual block to this prediction block, resulting in a reconstructed block, i. restored block.

Модуль 810 энтропийного декодирования выполнен с возможностью преобразования принятого битового потока в информацию, например, в квантованный коэффициент и синтаксический элемент, путем энтропийного декодирования в соответствии с распределением вероятности.The entropy decoding module 810 is configured to convert the received bitstream into information, such as a quantized coefficient and a syntax element, by entropy decoding according to a probability distribution.

Квантованный коэффициент деквантуется модулем 820 деквантования и подвергается обратному преобразованию, выполняемому модулем 830 обратного преобразования. Квантованный коэффициент путем деквантования/обратного преобразования может быть преобразован в восстановленный остаточный блок.The quantized coefficient is dequantized by dequantizing module 820 and subjected to an inverse transform performed by inverse transform module 830. The quantized coefficient can be converted into a reconstructed residual block by dequantization/inverse transformation.

Модуль 840 внутрикадрового предсказания выполнен с возможностью формирования во внутрикадровом режиме блока предсказания для текущего блока с использованием значения пиксела из уже закодированного блока, соседнего с текущим блоком.The intra-prediction module 840 is configured to intra-frame generate a prediction block for the current block using a pixel value from an already encoded block adjacent to the current block.

Модуль 850 межкадрового предсказания выполнен с возможностью формирования в межкадровом режиме блока предсказания для текущего блока путем выполнения компенсации движения с использованием опорного кадра, сохраненного в буфере 870 опорного кадра, и вектора движения.The inter-frame prediction module 850 is configured to inter-frame a prediction block for the current block by performing motion compensation using a reference frame stored in the reference frame buffer 870 and a motion vector.

В многоракурсной структуре межкадровое предсказание, применяемое в межкадровом режиме, может содержать межракурсное предсказание. Модуль 850 межкадрового предсказания выполнен с возможностью построения межракурсного опорного кадра путем отбора элементарных значений из кадра опорного ракурса. Модуль 850 межкадрового предсказания выполнен с возможностью осуществления межракурсного предсказания с использованием списка опорных кадров, содержащего указанный межракурсный опорный кадр. Относительная взаимосвязь между ракурсами может сообщаться посредством информации, указывающей зависимость одного ракурса от другого ракурса.In the multi-view structure, the inter-picture prediction applied in the inter-frame mode may comprise the inter-view prediction. The inter-frame prediction module 850 is configured to construct an inter-view reference frame by selecting chip values from the reference-view frame. The inter-frame prediction module 850 is configured to perform inter-view prediction using a reference frame list containing the specified inter-view reference frame. The relative relationship between views may be communicated by information indicating the dependency of one view on another view.

Если кадр текущего ракурса (текущий кадр) и кадр опорного ракурса имеют одинаковые размеры, то под отбором элементарных значений, применяемым к кадру опорного ракурса, может пониматься формирование опорного элементарного значения путем копирования элементарного значения из кадра опорного ракурса или путем интерполяции в кадре опорного ракурса. Если же кадр текущего ракурса и кадр опорного ракурса имеют различные размеры, то под отбором элементарных значений, применяемым к кадру опорного ракурса, может пониматься отбор элементарных значений с повышением разрешения или с понижением разрешения.If the frame of the current view (current frame) and the frame of the reference view have the same dimensions, then the selection of elementary values applied to the frame of the reference view can be understood as the formation of the reference elementary value by copying the elementary value from the frame of the reference view or by interpolation in the frame of the reference view. If the frame of the current view and the frame of the reference view have different sizes, then the selection of elementary values applied to the frame of the reference view can be understood as the selection of elementary values with upscaling or downscaling.

Например, если межкадровое предсказание применяется к ракурсам, имеющим различные разрешения, то для построения межракурсного опорного кадра может выполняться отбор элементарных значений из восстановленного кадра опорного ракурса с повышением разрешения.For example, if inter-picture prediction is applied to views having different resolutions, then upscaling of the reconstructed reference-view frame may be performed to construct an inter-view key frame.

При этом из кодера в декодер может передаваться информация, указывающая ракурс, которому принадлежит кадр, подлежащий использованию в качестве межракурсного опорного кадра.In this case, information indicating the view to which the frame to be used as the inter-view reference frame belongs can be transmitted from the encoder to the decoder.

Кадр, используемый для предсказания текущего блока в ракурсе, относительно которого ведется межракурсное предсказание - то есть в опорном ракурсе - может быть тем же, что и кадр того же элемента доступа (ЭД), что и текущий кадр (кадр в текущем ракурсе, для которого выполняется предсказание).The frame used to predict the current block in the view that is being inter-viewed - that is, in the reference view - may be the same as the frame of the same Access Element (ED) as the current frame (the frame in the current view for which prediction is made).

Восстановленный остаточный блок и блок предсказания суммируются сумматором 855, в результате чего формируется восстановленный блок. Иными словами, путем сложения остаточного элементарного значения и элементарного значения предсказания формируется восстановленное элементарное значение или восстановленный кадр.The recovered residual block and the prediction block are summed by an adder 855 to form a recovered block. In other words, by adding the residual chip and the prediction chip, a recovered chip or frame is generated.

Восстановленный кадр фильтруется фильтром 860. В фильтре 860 к восстановленному блоку или восстановленному кадру может применяться по меньшей мере один из следующих фильтров: фильтр подавления блочности, фильтр с адаптивным смещением, фильтр с адаптивным контуром. Фильтр 860 выдает воссозданный (модифицированный) или фильтрованный восстановленный кадр (воссозданный кадр). Этот воссозданный кадр сохраняется в буфере 870 опорного кадра для использования в межкадровом предсказании.The reconstructed frame is filtered by filter 860. At filter 860, at least one of the following filters may be applied to the reconstructed block or reconstructed frame: deblocking filter, adaptive bias filter, adaptive loop filter. Filter 860 outputs a recreated (modified) or filtered reconstructed frame (recreated frame). This reconstructed frame is stored in the reference frame buffer 870 for use in inter prediction.

Несмотря на то, что в варианте осуществления, описанном совместно с фиг. 7 и 8, указанные модули выполняют свои соответствующие функции независимо друг от друга, настоящее изобретение этим не ограничено. Например, один модуль может выполнять две или более функции. Например, операции, выполняемые, соответственно, модулем внутрикадрового предсказания и модулем межкадрового предсказания, показанными на фиг. 7 и 8, могут выполняться одним модулем (предсказывающим модулем).Although in the embodiment described in conjunction with FIG. 7 and 8, these modules perform their respective functions independently of each other, the present invention is not limited to this. For example, one module can perform two or more functions. For example, the operations performed respectively by the intra prediction module and the inter prediction module shown in FIG. 7 and 8 may be executed by one module (predictor module).

Как указано выше в связи с фиг. 7 и 8, один кодер/декодер выполняет кодирование/декодирование всех ракурсов из множества ракурсов. Однако это сделано лишь для простоты описания, и для каждого ракурса из множества ракурсов может быть предусмотрен отдельный кодер/декодер.As indicated above in connection with FIG. 7 and 8, one encoder/decoder performs encoding/decoding of all views from a plurality of views. However, this is only for ease of description, and a separate encoder/decoder may be provided for each view of the plurality of views.

В таком случае кодер/декодер для текущего ракурса может выполнять кодирование/декодирование текущего ракурса с использованием информации, относящей к другому ракурсу. Например, предсказывающий модуль (модуль межкадрового предсказания) для текущего ракурса может выполнять внутрикадровое предсказание или межкадровое предсказание для текущего блока с использованием указанной информации пикселов или информации восстановленного кадра другого ракурса.In such a case, the encoder/decoder for the current view may perform encoding/decoding of the current view using the information related to the other view. For example, a predictor (inter-picture prediction module) for the current view may perform intra-prediction or inter-picture prediction for the current block using the specified pixel information or reconstructed frame information of another view.

Несмотря на то, что здесь описывается межракурсное предсказание, текущий уровень может кодироваться/декодироваться с использованием информации, относящейся к другому ракурсу, независимо от того, предусмотрен ли кодер/декодер для каждого ракурса или множество ракурсов обрабатывается одним устройством.Although inter-view prediction is described here, the current layer can be encoded/decoded using information related to another view, regardless of whether an encoder/decoder is provided for each view or multiple views are processed by one device.

Описание, относящееся к ракурсам в соответствии с настоящим изобретением, может в равной степени применяться к уровням с поддержкой масштабирования. Например, в качестве описываемого в настоящем документе ракурса может выступать уровень.The description relating to views in accordance with the present invention can equally apply to zoom-enabled layers. For example, the view described herein may be a level.

Фиг. 9 представляет собой иллюстрацию примера структуры предсказания для кодека трехмерного изображения. Для упрощения описания фиг. 9 иллюстрирует структуру предсказания для кодирования текстур, полученных тремя камерами, и карт информации глубин, соответствующих указанным текстурам.Fig. 9 is an illustration of an example of a prediction structure for a 3D codec. To simplify the description of FIG. 9 illustrates a prediction structure for encoding textures acquired by three cameras and depth information maps corresponding to said textures.

Как показано на фиг. 9, три текстуры, полученные, соответственно, с трех камер, обозначены как T0, T1 и T2 в соответствии с ракурсами, а три карты информации глубин, соответствующие указанным трем текстурам, обозначены как D0, D1 и D2 в соответствии с ракурсами. Здесь T0 и D0 представляют собой изображения, полученные в ракурсе 0, T1 и D1 в ракурсе 1, а T2 и D2 в ракурсе 2. Показанные на фиг. 9 четырехугольники представляют собой изображения (кадры).As shown in FIG. 9, the three textures obtained from the three cameras, respectively, are labeled T0, T1, and T2 according to the angles, and the three depth information maps corresponding to the three textures are labeled D0, D1, and D2, according to the angles. Here, T0 and D0 are images taken from view 0, T1 and D1 from view 1, and T2 and D2 from view 2. Shown in FIG. 9 quadrangles represent images (frames).

Указанные изображения (кадры) в зависимости от типов кодирования/декодирования подразделяются на кадры типа I (кадры с внутренним предсказанием), кадры типа P (кадры с предсказанием со ссылкой на один кадр) и кадры типа B (кадры с предсказанием со ссылкой на два кадра), и каждый кадр может кодироваться/декодироваться в соответствии с его типом кодирования/декодирования. Для получения кадров типа I изображения кодируются сами по себе, без использования межкадрового предсказания. Для получения кадров типа P в межкадровом предсказании могут быть использованы только опорные изображения из одного направления, а для получения кадров типа B в межкадровом предсказании могут быть использованы опорные изображения из двух направлений. Стрелки на фиг. 9 указывают направления предсказания. Иными словами, текстура и ее карта информации глубин могут кодироваться/декодироваться во взаимосвязи в зависимости от направлений предсказания.These pictures (frames), depending on the types of coding/decoding, are divided into type I frames (frames with intra prediction), type P frames (frames with prediction with reference to one frame) and frames of type B (frames with prediction with reference to two frames ), and each frame may be encoded/decoded according to its encoding/decoding type. To obtain type I frames, the images are encoded by themselves, without the use of inter-picture prediction. Only reference pictures from one direction can be used to obtain P-type frames in inter-picture prediction, while reference pictures from two directions can be used to obtain B-type frames in inter-picture prediction. The arrows in Fig. 9 indicate directions of prediction. In other words, the texture and its depth information map can be encoded/decoded in relation depending on the prediction directions.

Для кодирования/декодирования изображения с использованием межкадрового предсказания необходима информация движения, относящаяся к текущему блоку. Для получения информации движения, относящейся к текущему блоку, могут использоваться следующие способы: способ с использованием информации движения, относящейся к блоку, смежному с текущим блоком; способ с использованием временной корреляции в один и тот же момент времени; и способ с использованием межракурсной корреляции в близкий момент времени. Для одного кадра эти способы межкадрового предсказания могут использоваться в сочетании. Текущим блоком здесь называется блок, для которого выполняется предсказание. Под информацией движения может пониматься вектор движения, номер опорного кадра и/или направление предсказания (к примеру, является ли предсказание однонаправленным предсказанием или двунаправленным предсказанием, используется ли в предсказании временная корреляция или межракурсная корреляция и т.д.).To encode/decode an image using inter prediction, motion information related to the current block is needed. To obtain motion information related to the current block, the following methods can be used: a method using motion information related to a block adjacent to the current block; a method using temporal correlation at the same point in time; and a method using inter-view correlation at a close point in time. For one frame, these inter-frame prediction methods may be used in combination. The current block here is the block for which the prediction is being performed. The motion information may refer to a motion vector, a reference frame number, and/or a prediction direction (eg, whether the prediction is unidirectional prediction or bidirectional prediction, whether the prediction uses temporal correlation or interview correlation, etc.).

Направление предсказания может, как правило, подразделяться на однонаправленное предсказание или двунаправленное предсказание в зависимости от того, используется ли список опорных кадров (RefPicList). Двунаправленное предсказание подразделяется на предсказание со ссылкой вперед (Pred_L0: Prediction L0), в котором используется список (LIST 0, L0) опорных кадров со ссылкой вперед, предсказание со ссылкой назад (Pred_L1: Prediction L1), в котором используется список (LIST 1, L1) опорных кадров со ссылкой назад, и предсказание со ссылкой как вперед, так и назад (Pred_BI: Prediction BI), в котором используется как список (LIST 0) опорных кадров со ссылкой вперед, так и список (LIST 1) опорных кадров со ссылкой назад. Случай, в котором список опорных кадров со ссылкой вперед (LIST 0) копируется в список опорных кадров со ссылкой назад (LIST 1), в результате чего имеют место две операции предсказания со ссылкой вперед, также может быть отнесен к категории двунаправленного предсказания.The prediction direction can generally be classified into unidirectional prediction or bidirectional prediction depending on whether a reference frame list (RefPicList) is used. Bidirectional prediction is divided into forward reference prediction (Pred_L0: Prediction L0), which uses a list (LIST 0, L0) of reference frames with forward reference, backward reference prediction (Pred_L1: Prediction L1), which uses a list (LIST 1, L1) reference frames with backward reference, and prediction with both forward and backward reference (Pred_BI: Prediction BI), which uses both a list (LIST 0) of key frames with a forward link and a list (LIST 1) of key frames with a backward link. The case in which the forward reference frame list (LIST 0) is copied to the backward reference frame list (LIST 1), resulting in two forward reference prediction operations, can also be categorized as bidirectional prediction.

Направление предсказания может определяться с использованием флагов predFlagL0 и predFlagL1. При этом predFlagL0 представляет собой индикатор, указывающий, используется ли список опорных кадров со ссылкой вперед (LIST 0), а predFlag1 представляет собой индикатор, указывающий, используется ли список опорных кадров со ссылкой назад (LIST 1). Например, в случае однонаправленного предсказания и предсказания со ссылкой вперед predFlagL0 может быть равен 1, а predFlagL1 может быть равен 0; в случае однонаправленного предсказания и предсказания со ссылкой назад predFlagL0 равен 0, а predFlagL1 равен 1; а в случае двунаправленного предсказания predFlagL0 равен 1 и predFlagL1 равен 1.The direction of prediction may be determined using flags predFlagL0 and predFlagL1. Here, predFlagL0 is an indicator indicating whether a forward reference frame list is used (LIST 0), and predFlag1 is an indicator indicating whether a backward reference frame list is used (LIST 1). For example, in the case of unidirectional prediction and forward reference prediction, predFlagL0 may be equal to 1 and predFlagL1 may be equal to 0; in the case of unidirectional prediction and backward reference prediction, predFlagL0 is 0 and predFlagL1 is 1; and in the case of bidirectional prediction, predFlagL0 is 1 and predFlagL1 is 1.

Фиг. 10 иллюстрирует пример, в котором для построения списка кандидатов слияния для текущего блока используются прилегающие блоки.Fig. 10 illustrates an example where adjacent blocks are used to build a list of merge candidates for the current block.

Слияние представляет собой способ выполнения межкадрового предсказания. В режиме слияния информация движения, относящаяся к блокам, прилегающим к текущему блоку, может использоваться в качестве информации движения, относящейся к текущему блоку (например, в указанном качестве может использоваться по меньшей мере один элемент из следующего списка: вектор движения, список опорных кадров, индекс опорного кадра). Использование информации движения, относящейся к соседним блокам, в качестве информации движения, относящейся к текущему блоку, называется слиянием или слиянием движения.Merging is a method for performing inter-picture prediction. In the merge mode, motion information related to blocks adjacent to the current block can be used as motion information related to the current block (for example, at least one of the following list can be used as indicated: motion vector, reference frame list, reference frame index). The use of motion information related to neighboring blocks as motion information related to the current block is called merging or motion merging.

В режиме слияния возможно слияние движения по элементам кодирования (ЭК) и по элементам предсказания (ЭП).In the merge mode, it is possible to merge the movement by coding elements (EC) and by prediction elements (EP).

Для слияния движения, выполняемого поблочно (к примеру, по элементам кодирования или по элементам предсказания, далее, для упрощения описания, «по блокам») необходима информация о том, выполняется ли слияние движения по части блока, и информация о том, с каким из прилегающих блоков текущего блока выполняется слияние движения.To merge a motion performed block by block (for example, by coding elements or by prediction elements, hereinafter, to simplify the description, "by blocks"), information is needed on whether the motion is merged on a part of the block, and information on which of the adjacent blocks of the current block are merged motion.

Для выполнения слияния движения может строиться список кандидатов слияния.To perform a motion merge, a list of merge candidates may be built.

Под списком кандидатов слияния понимается список элементов информации движения, который может формироваться до выполнения слияния. При этом информацией движения списка кандидатов слияния может быть информация движения, относящаяся к соседним блокам текущего блока, или информация движения, вновь созданная путем комбинирования элементов информации движения, уже содержащихся в указанном списке кандидатов слияния. Информацией движения, относящейся к соседним блокам (например, вектором движения и/или индексом опорного кадра) может быть информация движения, указываемая соседними блоками, или информация движения, сохраненная в соседних блоках (или использованная для декодирования соседних блоков).The merge candidate list refers to a list of motion information items that may be generated prior to performing the merge. Meanwhile, the motion information of the merge candidate list may be motion information relating to neighboring blocks of the current block, or motion information newly created by combining motion information items already contained in said merge candidate list. Motion information related to neighboring blocks (eg, motion vector and/or reference frame index) may be motion information indicated by neighboring blocks or motion information stored in neighboring blocks (or used to decode neighboring blocks).

Как показано на фиг. 10, в число соседних блоков могут входить прилегающие блоки A, B, C, D и E, пространственно смежные с текущим блоком, и соответственно расположенный блок-кандидат H или M, по времени соответствующий текущему блоку. Под соответственно расположенным блоком-кандидатом понимается блок, находящийся в соответствующем положении в соответственно расположенном кадре, по времени соответствующем текущему кадру, содержащему текущий блок. При доступности блока H в соответственно расположенном кадре в качестве соответственно расположенного блока-кандидата может быть взят этот блок H, если же блок H недоступен, то в качестве соответственно расположенного блока-кандидата может быть взят блок M в соответственно расположенном кадре.As shown in FIG. 10, adjacent blocks may include adjacent blocks A, B, C, D, and E spatially adjacent to the current block, and a candidate block H or M correspondingly located corresponding in time to the current block. By a suitably located candidate block is meant a block located at a corresponding position in a correspondingly located frame, corresponding in time to the current frame containing the current block. If block H is available in a correspondingly located frame, this block H can be taken as a correspondingly located candidate block, if block H is not available, then block M in a correspondingly located frame can be taken as a correspondingly located candidate block.

При построении списка кандидатов слияния проверяется, может ли информация движения, относящаяся к соседним блокам (A, B, C, D и E) и соответственно расположенному блоку-кандидату (H или M), использоваться в качестве кандидата слияния для построения списка кандидатов слияния, относящегося к текущему блоку. Иными словами, информация движения, относящаяся к блокам, которые могут быть использованы для межкадрового предсказания в отношении текущего блока, может быть добавлена в список кандидатов слияния в качестве кандидата слияния.When constructing the merge candidate list, it is checked whether the motion information related to neighboring blocks (A, B, C, D and E) and respectively located candidate block (H or M) can be used as a merge candidate for building a merge candidate list, related to the current block. In other words, motion information related to blocks that can be used for inter prediction with respect to the current block can be added to the merge candidate list as a merge candidate.

Например, в качестве способа построения списка кандидатов слияния для блока X может использоваться следующий способ. 1) Если соседний блок A доступен, то этот соседний блок A добавляется в список кандидатов слияния. 2) Затем, только в случае, когда информация движения, относящаяся к соседнему блоку B, отличается от информации движения, относящейся к соседнему блоку A, в список кандидатов слияния добавляется этот соседний блок B. 3) Аналогично, только в случае, когда информация движения, относящаяся к соседнему блоку C, отличается от информации движения, относящейся к соседнему блоку B, в список кандидатов слияния добавляется соседний блок C. 4) Только в случае, когда информация движения, относящаяся к соседнему блоку D, отличается от информации движения, относящейся к соседнему блоку C, в список кандидатов слияния добавляется соседний блок D. 5) Далее, только в случае, когда информация движения, относящаяся к соседнему блоку E, отличается от информации движения, относящейся к соседнему блоку D, соседний блок E может быть добавлен в список кандидатов слияния. 6) Наконец, в список кандидатов слияния добавляется соседний блок H (или M). В результате соседние блоки могут быть добавлены в список возможных блоков слияния в порядке A→B→C→D→E→H (или M). Здесь под одинаковой информацией движения может пониматься использование того же вектора движения, того же опорного кадра и того же направления предсказания (однонаправленного или двунаправленного).For example, the following method may be used as a method for constructing a merge candidate list for block X. 1) If neighbor block A is available, then that neighbor block A is added to the merge candidate list. 2) Then, only in the case where the motion information related to the neighboring block B is different from the motion information related to the neighboring block A, this neighboring block B is added to the merge candidate list. 3) Similarly, only in the case where the motion information related to neighboring block C is different from the motion information related to neighboring block B, neighboring block C is added to the merge candidate list. neighboring block C, the neighboring block D is added to the merge candidate list. merger candidates. 6) Finally, the neighboring block H (or M) is added to the merge candidate list. As a result, neighboring blocks can be added to the list of possible merge blocks in the order A→B→C→D→E→H (or M). Here, the same motion information can be understood as using the same motion vector, the same reference frame, and the same prediction direction (unidirectional or bidirectional).

Здесь для упрощения описания перемешаны выражения «добавление соседнего блока в список кандидатов слияния в качестве возможного блока слияния» и «добавление информации движения в список кандидатов слияния в качестве возможного блока слияния», хотя два этих выражения обозначают, по существу, одно и то же. Например, когда говорится о соседнем блоке в качестве кандидата слияния, это может означать информацию движения, относящуюся к указанному блоку.Here, to simplify the description, the expressions "adding a neighboring block to the merge candidate list as a merge candidate" and "adding motion information to the merge candidate list as a merge candidate" are intermingled, although the two expressions mean essentially the same thing. For example, when referring to a neighboring block as a merge candidate, this may mean motion information related to said block.

Фиг. 11 представляет собой иллюстрацию примера операции определения информации движения, относящейся к текущему блоку, с использованием информации движения из соседнего ракурса.Fig. 11 is an illustration of an example of an operation of determining motion information related to the current block using motion information from an adjacent view.

С целью упрощения описания, связанного с фиг. 11, в нем для определения информации движения, относящейся к текущему блоку, используется только один ракурс. Однако может использоваться два или более соседних ракурса.For the purpose of simplifying the description associated with FIG. 11, it uses only one view to determine the motion information related to the current block. However, two or more adjacent views may be used.

Как показано на фиг. 11, для эффективного кодирования/декодирования информации движения система трехмерного видео может использовать информацию движения из соседнего ракурса. Конкретно, для текущего блока, показанного на фиг. 11 (блока в текущем местоположении X), с целью определения информации движения, относящейся к текущему блоку, ищется целевой блок в соседнем ракурсе (в опорном положении XR). При этом под целевым блоком в соседнем ракурсе понимается блок, соответствующий текущему блоку. Поскольку в текущем кадре единственное различие между текущим ракурсом и опорным ракурсом заключается в положении камер, целевой блок в соседнем ракурсе может быть определен из вектора невязки (DV, disparity vector), как описано выше.As shown in FIG. 11, in order to efficiently encode/decode motion information, the 3D video system can use the motion information from the adjacent view. Specifically, for the current block shown in FIG. 11 (of the block at the current location X), in order to determine the motion information related to the current block, the target block in the adjacent view (at the reference position X R ) is searched. In this case, the target block in the neighboring view is understood to be the block corresponding to the current block. Since in the current frame the only difference between the current view and the reference view is the position of the cameras, the target block in the adjacent view can be determined from the disparity vector (DV) as described above.

Фиг. 12 представляет собой иллюстрацию примера, в котором один элемент предсказания (ЭП) разбит на несколько подэлементов предсказания.Fig. 12 is an illustration of an example in which one prediction element (PE) is split into multiple prediction sub-elements.

В примере, показанном на фиг. 12, элемент предсказания размером 64×64 разбит на подэлементы предсказания, каждый из которых имеет размер 8×8. Размер элемента предсказания 64×64 на фиг. 12 выбран только для упрощения описания, и без ограничений указанный размер может быть равен 32×32, 16×16, 8×8 или 4×4. В системе трехмерного видео один элемент предсказания может быть разбит на несколько подэлементов предсказания. В этом случае определение информации движения с использованием вектора невязки выполняется по подэлементам предсказания. Подэлемент предсказания может иметь заранее определенный размер (к примеру, 4×4, 8×8 или 16×16), и размер подэлемента предсказания может задаваться при кодировании. Информация о размере подэлемента предсказания может включаться и сообщаться в расширенном синтаксисе набора параметров изображения (VPS, Video Parameter Set).In the example shown in FIG. 12, a 64×64 prediction element is divided into prediction sub-elements, each of which is 8×8 in size. The prediction element size is 64x64 in FIG. 12 is chosen for simplicity of description only, and without limitation, the specified size may be 32×32, 16×16, 8×8, or 4×4. In a 3D video system, one prediction element may be split into multiple prediction sub-elements. In this case, the determination of motion information using the residual vector is performed on prediction subelements. The prediction sub-element may have a predetermined size (eg, 4x4, 8x8, or 16x16), and the prediction sub-element size may be set upon encoding. Prediction subelement size information may be included and reported in an extended Video Parameter Set (VPS) syntax.

Фиг. 13 представляет собой иллюстрацию примера операции определения информации движения, относящейся к текущему блоку, с использованием опорного блока.Fig. 13 is an illustration of an example of an operation of determining motion information related to the current block using a reference block.

Под операцией определения информации движения, относящейся к текущему блоку, понимается задание в качестве информации движения, относящейся к текущему блоку, информации движения, содержащейся в опорном блоке. Однако для эффективного кодирования/декодирования информации движения система трехмерного видео может для текущего блока X, находящегося в текущем кадре в текущем ракурсе, определять информацию движения по подэлементам предсказания.By the operation of determining the motion information related to the current block, it is meant to set, as the motion information related to the current block, the motion information contained in the reference block. However, for efficient encoding/decoding of the motion information, the 3D video system can, for the current block X located in the current frame in the current view, determine the motion information from the prediction sub-elements.

Иными словами, система трехмерного видео может присваивать значение информации движения, содержащейся в подэлементе предсказания опорного блока XR, информации движения, относящейся к подэлементу предсказания текущего блока X. При этом под опорным блоком XR может пониматься опорный блок XR, находящийся в текущем кадре в опорном ракурсе. Конкретная операция определения информации движения описывается далее.In other words, the 3D video system may assign the value of the motion information contained in the prediction sub-element of the reference block X R to the motion information related to the prediction sub-element of the current block X. In this case, the reference block X R may be understood to be the reference block X R located in the current frame in baseline. The specific motion information determination operation will be described next.

Фиг. 14 представляет собой иллюстрацию примера опорного блока, используемого для определения информации движения, относящейся к текущему блоку.Fig. 14 is an illustration of an example of a reference block used to determine motion information related to the current block.

Как показано на фиг. 14, под опорным блоком может пониматься элемент предсказания (ЭП), и один опорный блок может в сумме содержать 16 подэлементов предсказания. При этом информация движения, относящаяся к каждому подэлементу предсказания в текущем блоке, может быть определена из информации движения, содержащейся в подэлементах предсказания опорного блока.As shown in FIG. 14, a reference block may refer to a prediction element (PE), and one reference block may contain 16 prediction sub-elements in total. Meanwhile, the motion information related to each prediction sub-element in the current block can be determined from the motion information contained in the reference block prediction sub-elements.

Далее со ссылкой на фиг. 15a-15e и фиг. 16a-16g описывается способ определения информации движения, относящейся к подэлементам предсказания текущего блока, с использованием опорного блока.Next, with reference to FIG. 15a-15e and figs. 16a-16g, a method for determining motion information related to prediction subelements of a current block using a reference block is described.

Фиг. 15a-15e представляют собой схематичные иллюстрации примера операции определения информации движения с использованием информации движения, сохраненной в хранилище. При этом опорным блоком, используемым на фиг. 15a-15e, может быть опорный блок, показанный на фиг. 14.Fig. 15a to 15e are schematic illustrations of an example of motion information determination operation using motion information stored in the storage. Meanwhile, the support block used in FIG. 15a-15e may be the support block shown in FIG. fourteen.

При присваивании подэлементам предсказания текущего блока информации движения, относящейся к подэлементам предсказания опорного блока, возможна ситуация, в которой не все подэлементы предсказания опорного блока содержат информацию движения. Иными словами, в опорном блоке могут быть подэлементы предсказания, из которых невозможно получить информацию движения. Соответственно, при наличии подэлементов предсказания, из которых невозможно получить информацию движения, для устранения невозможности определения информации движения из подэлемента предсказания текущего блока может быть использована информация движения, относящаяся к предыдущему или последующему подэлементу предсказания относительно подэлемента предсказания, на который в данный момент осуществляется ссылка. Например, информация движения, относящаяся к подэлементу предсказания, доступному в опорном блоке, может сохраняться заранее в целях подготовки к ситуации, в которой из другого подэлемента предсказания опорного блока определить информацию движения будет невозможно, и эта ранее сохраненная информация движения может быть введена в подэлемент предсказания текущего блока для определения информации движения, относящейся к текущему блоку.When the prediction sub-elements of the current block are assigned motion information related to the reference block prediction sub-elements, it is possible that not all of the reference block prediction sub-elements contain motion information. In other words, there may be prediction sub-elements in the reference block from which motion information cannot be obtained. Accordingly, if there are prediction subitems from which motion information cannot be obtained, motion information relating to the previous or subsequent prediction subitem relative to the currently referenced prediction subitem can be used to eliminate the inability to determine motion information from the prediction subitem of the current block. For example, motion information related to a prediction sub-item available in a reference block may be stored in advance in order to prepare for a situation in which motion information cannot be determined from another prediction sub-item of the reference block, and this previously stored motion information may be input into the prediction sub-item. of the current block to determine motion information related to the current block.

Для лучшего понимания описанного выше способа далее со ссылкой на чертежи описывается каждый шаг предлагаемого в качестве примера способа определения информации движения, относящейся к подэлементу предсказания текущего блока, в случае, когда первый подэлемент предсказания опорного блока содержит свою информацию движения, а второй или следующие за ним подэлементы предсказания опорного блока могут не содержать ее.For a better understanding of the above method, the following describes with reference to the drawings each step of an exemplary method for determining motion information related to a prediction sub-element of the current block in the case where the first prediction sub-element of a reference block contains its motion information, and the second or following reference block prediction subelements may not contain it.

Фиг. 15a представляет собой иллюстрацию исходного состояния подэлементов предсказания текущего блока и хранилища.Fig. 15a is an illustration of the initial state of the prediction sub-elements of the current block and storage.

На фиг. 15a Ref обозначает опорный блок, а через Ref 0, 1, 2 и 3, соответственно, обозначены подэлементы предсказания в опорном блоке. Иными словами, Ref 0 обозначает подэлемент 0 предсказания опорного блока (первый подэлемент предсказания опорного блока), Ref 1 обозначает подэлемент 1 предсказания опорного блока (второй подэлемент предсказания опорного блока), Ref 2 обозначает подэлемент 2 предсказания опорного блока (третий подэлемент предсказания опорного блока), а Ref 3 обозначает подэлемент 3 предсказания опорного блока (четвертый подэлемент предсказания опорного блока). Cur обозначает текущий блок, а через Cur 0, 1, 2 и 3, соответственно, обозначены подэлементы предсказания в текущем блоке. Иными словами, Cur 0 обозначает подэлемент 0 предсказания текущего блока (первый подэлемент предсказания текущего блока), Cur 1 обозначает подэлемент 1 предсказания текущего блока (второй подэлемент предсказания текущего блока), Cur 2 обозначает подэлемент 2 предсказания текущего блока (третий подэлемент предсказания текущего блока), а Cur 3 обозначает подэлемент 3 предсказания (четвертый подэлемент предсказания текущего блока).In FIG. 15a Ref denotes a reference block, and Ref 0, 1, 2, and 3, respectively, denote prediction sub-elements in the reference block. In other words, Ref 0 indicates reference block prediction sub-element 0 (first reference block prediction sub-element), Ref 1 indicates reference block prediction sub-element 1 (second reference block prediction sub-element), Ref 2 indicates reference block prediction sub-element 2 (third reference block prediction sub-element) , and Ref 3 denotes reference block prediction sub-element 3 (fourth reference block prediction sub-element). Cur denotes the current block, and Cur 0, 1, 2, and 3, respectively, denote prediction sub-elements in the current block. In other words, Cur 0 indicates current block prediction sub-element 0 (the first prediction sub-element of the current block), Cur 1 indicates the current block prediction sub-element 1 (the second prediction sub-element of the current block), Cur 2 indicates the current block prediction sub-element 2 (the third prediction sub-element of the current block) , and Cur 3 denotes prediction sub-element 3 (the fourth prediction sub-element of the current block).

Символ X в позиции Ref 2 на фиг. 15a обозначает информацию движения, которую невозможно определить с использованием подэлемента 2 предсказания опорного блока.The symbol X at position Ref 2 in FIG. 15a denotes motion information that cannot be determined using reference block prediction sub-element 2.

Фиг. 15b представляет первый шаг определения информации движения из подэлемента предсказания опорного блока.Fig. 15b represents the first step of determining motion information from the reference block prediction sub-element.

Как показано на фиг. 15b, информация движения для подэлемента 0 предсказания текущего блока определяется из подэлемента 0 предсказания опорного блока. При этом, поскольку имеется возможность определения информации движения из подэлемента 0 предсказания опорного блока, информация движения, относящаяся к подэлементу 0 предсказания опорного блока, сохраняется в хранилище. В этом случае информация движения, сохраненная в хранилище, может быть обозначена как информация 0 движения; эта информация движения может быть использована, когда из каких-либо других подэлементов предсказания опорного блока невозможно определить информацию движения.As shown in FIG. 15b, motion information for prediction sub-element 0 of the current block is determined from prediction sub-element 0 of the reference block. Here, since it is possible to determine the motion information from the reference block prediction sub-element 0, the motion information related to the reference block prediction sub-element 0 is stored in the storage. In this case, the motion information stored in the storage may be designated as motion information 0; this motion information can be used when motion information cannot be determined from any of the other reference block prediction sub-elements.

Фиг. 15c представляет второй шаг определения информации движения из подэлемента предсказания опорного блока.Fig. 15c represents the second step of determining motion information from the reference block prediction sub-element.

Как показано на фиг. 15c, информация движения для подэлемента 1 предсказания текущего блока определяется из подэлемента 1 предсказания опорного блока. При этом, поскольку имеется возможность определения информации движения из подэлемента 1 предсказания опорного блока, информация движения, относящаяся к подэлементу 1 предсказания опорного блока, сохраняется в хранилище. В этом случае сохраненная информация движения, относящаяся к подэлементу 1 предсказания, может быть обозначена как информация 1 движения; эта информация 1 движения может сохраняться в хранилище вместо информации 0 движения. Информация 1 движения может использоваться, когда из какого-либо другого подэлемента предсказания опорного блока невозможно определить информацию движения.As shown in FIG. 15c, motion information for the prediction sub-element 1 of the current block is determined from the prediction sub-element 1 of the reference block. Here, since it is possible to determine the motion information from the reference block prediction sub-item 1, the motion information related to the reference block prediction sub-item 1 is stored in the storage. In this case, the stored motion information related to prediction sub-item 1 may be designated as motion information 1; this motion information 1 may be stored in the storage instead of the motion information 0. Motion information 1 may be used when motion information cannot be determined from any other reference block prediction sub-element.

Фиг. 15d представляет третий шаг определения информации движения из подэлемента предсказания опорного блока.Fig. 15d represents the third step of determining motion information from the reference block prediction sub-element.

Как показано на фиг. 15d, предпринимается попытка определения информации движения для подэлемента 2 предсказания текущего блока из подэлемента 2 предсказания опорного блока. Однако поскольку из подэлемента 2 предсказания опорного блока информацию движения определить невозможно, информация движения, относящаяся к подэлементу 2 предсказания текущего блока, определяется из информации движения, сохраненной в хранилище. В этом случае информацией движения, сохраненной в хранилище, может быть информация 1 движения.As shown in FIG. 15d, an attempt is made to determine motion information for the prediction sub-element 2 of the current block from the prediction sub-element 2 of the reference block. However, since the motion information cannot be determined from the prediction sub-item 2 of the reference block, the motion information related to the prediction sub-item 2 of the current block is determined from the motion information stored in the storage. In this case, the motion information stored in the storage may be motion information 1.

Фиг. 15e представляет четвертый шаг определения информации движения из подэлемента предсказания опорного блока.Fig. 15e represents the fourth step of determining motion information from the reference block prediction sub-element.

Как показано на фиг. 15e, информация движения для подэлемента 3 предсказания текущего блока определяется из подэлемента 3 предсказания опорного блока. При этом, поскольку имеется возможность определения информации движения из подэлемента 3 предсказания опорного блока, информация движения, относящаяся к подэлементу 3 предсказания опорного блока, сохраняется в хранилище. В этом случае сохраненная информация движения, относящаяся к подэлементу 3 предсказания, может быть названа информацией 3 движения; эта информация 3 движения может сохраняться в хранилище вместо информации 1 движения. Информация 3 движения может использоваться, когда из какого-либо другого подэлемента предсказания опорного блока невозможно определить информацию движения.As shown in FIG. 15e, motion information for the prediction sub-element 3 of the current block is determined from the prediction sub-element 3 of the reference block. Here, since it is possible to determine motion information from the reference block prediction sub-item 3, the motion information related to the reference block prediction sub-item 3 is stored in the storage. In this case, the stored motion information related to the prediction subitem 3 may be called motion information 3; this motion information 3 may be stored in the storage instead of motion information 1 . Motion information 3 may be used when motion information cannot be determined from any other reference block prediction sub-element.

Фиг. 16a-16g представляют собой схематичные иллюстрации еще одного примера операции определения информации движения с использованием информации движения, сохраненной в хранилище.Fig. 16a-16g are schematic illustrations of yet another example of motion information determination operation using motion information stored in the storage.

Фиг. 16a-16g иллюстрируют пример операции определения информации движения в случае, когда имеется подэлемент предсказания опорного блока, из которого невозможно определить информацию движения и за которым следует еще один подэлемент предсказания опорного блока, из которого возможно определить информацию движения.Fig. 16a-16g illustrate an example of motion information determination operation in the case where there is a reference block prediction sub-element from which motion information cannot be determined and followed by another reference block prediction sub-element from which motion information can be determined.

Фиг. 16a представляет собой иллюстрацию исходного состояния подэлементов предсказания текущего блока и хранилища.Fig. 16a is an illustration of the initial state of the prediction sub-elements of the current block and storage.

На фиг. 16a, Ref обозначает опорный блок, а через Ref 0, 1, 2 и 3, соответственно, обозначены подэлементы предсказания в опорном блоке. Иными словами, Ref 0 обозначает подэлемент 0 предсказания опорного блока, Ref 1 обозначает подэлемент 1 предсказания опорного блока, Ref 2 обозначает подэлемент 2 предсказания опорного блока, а Ref 3 обозначает подэлемент 3 предсказания опорного блока. Cur обозначает текущий блок, а через Cur 0, 1, 2 и 3, соответственно, обозначены подэлементы предсказания в текущем блоке. Иными словами, Cur 0 обозначает подэлемент 0 предсказания текущего блока, Cur 1 обозначает подэлемент 1 предсказания текущего блока, Cur 2 обозначает подэлемент 2 предсказания текущего блока, а Cur 3 обозначает подэлемент 3 предсказания текущего блока. Символ X в позиции Ref 0 на фиг. 16a обозначает информацию движения, которую невозможно определить с использованием подэлемента 0 предсказания опорного блока и подэлемента 1 предсказания опорного блока.In FIG. 16a, Ref denotes a reference block, and Ref 0, 1, 2, and 3, respectively, denote prediction sub-elements in the reference block. In other words, Ref 0 indicates reference block prediction sub-element 0, Ref 1 indicates reference block prediction sub-element 1, Ref 2 indicates reference block prediction sub-element 2, and Ref 3 indicates reference block prediction sub-element 3. Cur denotes the current block, and Cur 0, 1, 2, and 3, respectively, denote prediction sub-elements in the current block. In other words, Cur 0 indicates prediction sub-element 0 of the current block, Cur 1 indicates prediction sub-element 1 of the current block, Cur 2 indicates prediction sub-element 2 of the current block, and Cur 3 indicates prediction sub-element 3 of the current block. The symbol X at position Ref 0 in FIG. 16a denotes motion information that cannot be determined using the reference block prediction sub-element 0 and the reference block prediction sub-element 1.

Фиг. 16b представляет первый шаг определения информации движения из подэлемента предсказания опорного блока.Fig. 16b represents the first step of determining motion information from the reference block prediction sub-element.

Как показано на фиг. 16b, предпринимается попытка определения информации движения для подэлемента 0 предсказания текущего блока из подэлемента 0 предсказания опорного блока. Однако, как указано выше, информация движения не может быть определена из подэлемента 0 предсказания опорного блока, и при этом нет информации движения, сохраненной в хранилище. Соответственно, выполняется второй шаг.As shown in FIG. 16b, an attempt is made to determine motion information for prediction sub-element 0 of the current block from prediction sub-element 0 of the reference block. However, as mentioned above, the motion information cannot be determined from the reference block prediction sub-element 0, nor is there motion information stored in the storage. Accordingly, the second step is performed.

Фиг. 16c представляет второй шаг определения информации движения из подэлемента предсказания опорного блока.Fig. 16c represents the second step of determining motion information from the reference block prediction sub-element.

Как показано на фиг. 16c, предпринимается попытка определения информации движения для подэлемента 1 предсказания текущего блока из подэлемента 1 предсказания опорного блока. Однако, как указано выше, информация движения не может быть определена из подэлемента 1 предсказания опорного блока, и при этом нет информации движения, сохраненной в хранилище. Соответственно, выполняется третий шаг.As shown in FIG. 16c, an attempt is made to determine motion information for the prediction sub-element 1 of the current block from the prediction sub-element 1 of the reference block. However, as mentioned above, the motion information cannot be determined from the reference block prediction sub-element 1, and there is no motion information stored in the storage. Accordingly, the third step is performed.

Фиг. 16d представляет третий шаг определения информации движения из подэлемента предсказания опорного блока.Fig. 16d represents the third step of determining motion information from the reference block prediction sub-element.

Как показано на фиг. 16d, информация движения для подэлемента 2 предсказания текущего блока определяется из подэлемента 2 предсказания опорного блока. При этом, поскольку имеется возможность определения информации движения из подэлемента 2 предсказания опорного блока, информация движения, относящаяся к подэлементу 2 предсказания опорного блока, сохраняется в хранилище. В этом случае информация движения, сохраненная в хранилище, может быть обозначена как информация 2 движения; эта информация движения может быть использована, когда из каких-либо других подэлементов предсказания опорного блока невозможно определить информацию движения.As shown in FIG. 16d, the motion information for the prediction sub-element 2 of the current block is determined from the prediction sub-element 2 of the reference block. Here, since it is possible to determine motion information from the reference block prediction sub-item 2, the motion information related to the reference block prediction sub-item 2 is stored in the storage. In this case, the motion information stored in the storage may be designated as motion information 2; this motion information can be used when motion information cannot be determined from any of the other reference block prediction sub-elements.

Фиг. 16e представляет четвертый шаг определения информации движения из подэлемента предсказания опорного блока.Fig. 16e represents the fourth step of determining motion information from the reference block prediction sub-element.

Как показано на фиг. 16e, информация движения для подэлемента 0 предсказания текущего блока определяется с использованием информации 2 движения, сохраненной в хранилище.As shown in FIG. 16e, the motion information for the prediction sub-element 0 of the current block is determined using the motion information 2 stored in the storage.

Фиг. 16f представляет пятый шаг определения информации движения из подэлемента предсказания опорного блока.Fig. 16f represents the fifth step of determining motion information from the reference block prediction sub-element.

Как показано на фиг. 16f, информация движения для подэлемента предсказания 1 текущего блока определяется с использованием информации 2 движения, сохраненной в хранилище.As shown in FIG. 16f, the motion information for the prediction subitem 1 of the current block is determined using the motion information 2 stored in the storage.

Фиг. 16g представляет шестой шаг определения информации движения из подэлемента предсказания опорного блока.Fig. 16g represents the sixth step of determining motion information from the reference block prediction sub-element.

Как показано на фиг. 16g, информация движения для подэлемента 3 предсказания текущего блока определяется из подэлемента 3 предсказания опорного блока. При этом, поскольку имеется возможность определения информации движения из подэлемента 3 предсказания опорного блока, информация движения, относящаяся к подэлементу 3 предсказания опорного блока, сохраняется в хранилище. В этом случае сохраненная информация движения, относящаяся к подэлементу 3 предсказания, может быть названа информацией 3 движения; эта информация 3 движения может сохраняться в хранилище вместо информации 2 движения. Информация 3 движения может использоваться, когда из какого-либо другого подэлемента предсказания опорного блока невозможно определить информацию движения.As shown in FIG. 16g, the motion information for the prediction sub-element 3 of the current block is determined from the prediction sub-element 3 of the reference block. Here, since it is possible to determine motion information from the reference block prediction sub-item 3, the motion information related to the reference block prediction sub-item 3 is stored in the storage. In this case, the stored motion information related to the prediction subitem 3 may be called motion information 3; this motion information 3 may be stored in the storage instead of the motion information 2 . Motion information 3 may be used when motion information cannot be determined from any other reference block prediction sub-element.

Фиг. 17 представляет собой блок-схему, иллюстрирующую способ определения информации движения, относящейся к подэлементу предсказания текущего блока, с использованием подэлемента предсказания опорного блока в соответствии с вариантом осуществления настоящего изобретения. Каждая операция в способе, показанном на фиг. 17, может выполняться кодером и/или декодером или модулем межкадрового предсказания кодера и/или декодера, например, модулем 720 внутрикадрового предсказания, показанным на фиг. 7, или модулем 850 межкадрового предсказания, показанным на фиг. 8.Fig. 17 is a flowchart illustrating a method for determining motion information related to a prediction sub-element of a current block using a prediction sub-element of a reference block in accordance with an embodiment of the present invention. Each operation in the method shown in FIG. 17 may be performed by an encoder and/or decoder or an encoder and/or decoder inter prediction module, such as intra prediction module 720 shown in FIG. 7 or the inter prediction module 850 shown in FIG. eight.

Сначала со ссылкой на фиг. 17 описывается функционирование в случае, когда подэлемент предсказания опорного блока содержит свою информацию движения. Модуль межкадрового предсказания проверяет, содержит ли подэлемент предсказания опорного блока информацию движения (S1700).First with reference to FIG. 17 describes the operation when the reference block prediction sub-element contains its motion information. The inter prediction unit checks whether the reference block prediction sub-element contains motion information (S1700).

Если подэлемент предсказания опорного блока содержит информацию движения, то модуль межкадрового предсказания вводит информацию движения, содержащуюся в указанном подэлементе предсказания опорного блока, в подэлемент предсказания текущего блока, для которого выполняется определение информации движения (S1710).If the reference block prediction sub-item contains motion information, the inter prediction unit inputs the motion information contained in the specified reference block prediction sub-item into the prediction sub-item of the current block for which motion information determination is performed (S1710).

Затем модуль межкадрового предсказания проверяет, содержится ли в хранилище информация движения (S1720). Если в хранилище содержится информация движения, то выполняется шаг S1750. Хранилище было подробно описано выше, и в данном случае хранилище содержит информацию движения.Then, the inter prediction module checks whether the storage contains motion information (S1720). If the storage contains motion information, step S1750 is performed. The store has been detailed above, and in this case, the store contains motion information.

Если информация движения в хранилище не хранится, то модуль межкадрового предсказания проверяет, является ли подэлемент предсказания текущего блока, для которого выполняется определение информации движения, первым подэлементом предсказания текущего блока (S1730). Если подэлемент предсказания текущего блока, для которого выполняется определение информации движения, представляет собой первый подэлемент предсказания текущего блока, то модуль межкадрового предсказания выполняет шаг S1750.If no motion information is stored in the storage, the inter prediction unit checks whether the prediction sub-element of the current block for which motion information determination is performed is the first prediction sub-element of the current block (S1730). If the prediction sub-element of the current block for which motion information determination is performed is the first prediction sub-element of the current block, the inter prediction unit executes step S1750.

Если на шаге S1730 установлено, что подэлемент предсказания текущего блока не является первым подэлементом предсказания, то модуль межкадрового предсказания вводит информацию движения, содержащуюся в указанном подэлементе предсказания опорного блока, в подэлемент (подэлементы) предсказания текущего блока, находящиеся впереди первого подэлемента предсказания текущего блока. Например, если подэлемент предсказания текущего блока, для которого выполняется определение информации движения, является третьим подэлементом предсказания, то модуль межкадрового предсказания вводит информацию движения, относящуюся к указанному подэлементу предсказания опорного блока, в первый и второй подэлементы предсказания текущего блока.If it is determined in step S1730 that the prediction sub-element of the current block is not the first prediction sub-element, the inter-picture prediction module inputs the motion information contained in the specified reference block prediction sub-element into the prediction sub-element(s) of the current block ahead of the first prediction sub-element of the current block. For example, if the prediction sub-element of the current block for which motion information is determined is the third prediction sub-element, the inter prediction module inputs motion information related to the specified reference block prediction sub-element to the first and second prediction sub-elements of the current block.

Модуль межкадрового предсказания сохраняет в хранилище информацию движения, относящуюся к подэлементу предсказания опорного блока, заменяя имеющуюся в хранилище информацию (S1750). Подробное описание сохранения и замены информации движения приведено выше.The inter prediction unit stores motion information related to the reference block prediction sub-element in storage, replacing the stored information (S1750). A detailed description of the storage and replacement of motion information is given above.

Модуль межкадрового предсказания проверяет, является ли подэлемент предсказания опорного блока, для которого выполняется определение информации движения, последним подэлементом предсказания опорного блока (S1790). Если подэлемент предсказания опорного блока, для которого выполняется определение информации движения, является последним подэлементом предсказания опорного блока, то модуль межкадрового предсказания завершает данную операцию определения информации движения. Если же подэлемент предсказания опорного блока, для которого выполняется определение информации движения, не является последним подэлементом предсказания указанного опорного блока, то модуль межкадрового предсказания переходит к обработке следующего подэлемента предсказания опорного блока (S1780). Затем модуль межкадрового предсказания повторяет шаги S1700-S1790.The inter prediction unit checks whether the reference block prediction sub-element for which motion information determination is performed is the last reference block prediction sub-element (S1790). If the reference block prediction sub-element for which motion information determination is performed is the last reference block prediction sub-element, the inter prediction unit terminates this motion information determination operation. On the other hand, if the reference block prediction sub-element for which motion information determination is performed is not the last prediction sub-element of the specified reference block, the inter prediction unit proceeds to the next reference block prediction sub-element processing (S1780). Then, the inter prediction module repeats steps S1700-S1790.

Если подэлементы предсказания опорного блока, содержащие информацию движения, отсутствуют, то выполняется следующая операция.If there are no reference block prediction subelements containing motion information, then the next operation is performed.

Модуль межкадрового предсказания проверяет, содержит ли подэлемент предсказания опорного блока информацию движения (S1700).The inter prediction unit checks whether the reference block prediction sub-element contains motion information (S1700).

Если подэлемент предсказания опорного блока не содержит информацию движения, то модуль межкадрового предсказания проверяет, содержится ли информация движения в хранилище (S1770). Если хранилище не содержит информацию движения, то модуль межкадрового предсказания выполняет шаг S1790.If the reference block prediction sub-element does not contain motion information, then the inter prediction unit checks whether the motion information is contained in the storage (S1770). If the store does not contain motion information, then the inter prediction module executes step S1790.

Если хранилище содержит информацию движения, то модуль межкадрового предсказания вводит информацию движения, сохраненную в хранилище, в подэлемент предсказания опорного блока, для которого выполняется определение информации движения (S1750).If the storage contains motion information, the inter prediction unit inputs the motion information stored in the storage into the prediction sub-element of the reference block for which motion information determination is performed (S1750).

Выполнив вышеперечисленные шаги, модуль межкадрового предсказания проверяет, является ли подэлемент предсказания опорного блока, для которого выполняется определение информации движения, последним подэлементом предсказания опорного блока (S1790). Если подэлемент предсказания опорного блока, для которого выполняется определение информации движения, является последним подэлементом предсказания опорного блока, то модуль межкадрового предсказания завершает данную операцию определения информации движения. Если же подэлемент предсказания опорного блока, для которого выполняется определение информации движения, не является последним подэлементом предсказания указанного опорного блока, то модуль межкадрового предсказания переходит к обработке следующего подэлемента предсказания опорного блока (S1780). Затем модуль межкадрового предсказания повторяет шаги S1700-S1790.After performing the above steps, the inter prediction unit checks whether the reference block prediction sub-element for which motion information determination is performed is the last reference block prediction sub-element (S1790). If the reference block prediction sub-element for which motion information determination is performed is the last reference block prediction sub-element, the inter prediction unit terminates this motion information determination operation. On the other hand, if the reference block prediction sub-element for which motion information determination is performed is not the last prediction sub-element of the specified reference block, the inter prediction unit proceeds to the next reference block prediction sub-element processing (S1780). Then, the inter prediction module repeats steps S1700-S1790.

После этого модуль межкадрового предсказания определяет элементарное значение предсказания для текущего блока на основании информации движения, относящейся к текущему блоку, определенной в вышеописанных шагах. Под элементарным значением предсказания может пониматься вышеописанный сигнал предсказания, а под этим сигналом предсказания может пониматься разность между исходным сигналом и остаточным сигналом, как указано выше.Thereafter, the inter prediction module determines a prediction chip for the current block based on the motion information related to the current block determined in the above steps. The prediction chip may refer to the prediction signal described above, and the prediction signal may refer to the difference between the original signal and the residual signal as described above.

Описанная выше операция определения информации движения, относящаяся к подэлементу предсказания текущего блока, может применяться, в частности, и к трехмерным изображениям, как показано в таблице 1. Как указано выше, операция, представленная в таблице 1, может выполняться кодером/декодером или модулем межкадрового предсказания кодера/декодера.The above-described motion information determination operation related to the prediction sub-element of the current block may be applied to 3D images in particular as shown in Table 1. As indicated above, the operation presented in Table 1 may be performed by an encoder/decoder or an encoder/decoder predictions.

Таблица 1Table 1

В данной операции используются следующие входные данные:This operation uses the following input data:

- положение (xPb, yPb) левого верхнего угла текущего элемента предсказания;- position (xPb, yPb) of the upper left corner of the current prediction element;

- ширина (nPbW) и высота (nPbH) текущего элемента предсказания;- width (nPbW) and height (nPbH) of the current prediction element;

- индекс refViewIdx опорного ракурса;- refViewIdx index of the reference view;

- вектор mvDisp невязки.- mvDisp residual vector.

В данной операции получаются следующие выходные данные:This operation produces the following output:

- флаг availableFlagLXinterView для указания доступности возможного временного межракурсного вектора движения, где LX может быть списком опорных кадров L0 и L1;- flag availableFlagLXinterView to indicate the availability of a possible temporal inter-view motion vector, where LX may be a list of L0 and L1 reference frames;

Здесь определение «временной межракурсный» понимается в том смысле, что кадр из ракурса, отличного от ракурса текущего кадра, может рассматриваться как кадр из того же ракурса, что и текущий кадр, но соответствующий другому моменту времени (т.е. имеющий другой порядковый номер кадра, POC).Here, the definition of "temporal inter-view" is understood in the sense that a frame from a view different from the view of the current frame can be considered as a frame from the same view as the current frame, but corresponding to a different point in time (i.e., having a different sequence number frame, POC).

- возможный временной межракурсный вектор mvLXInterView движения, где LX может быть списком L0 или L1 опорных кадров;- a possible temporal interview motion vector mvLXInterView, where LX can be a list of L0 or L1 reference frames;

- ссылочный индекс refIdxLXInterView, указывающий опорный кадр, содержащийся в списке RefPicListLX опорных кадров, где LX может быть списком L0 или L1 опорных кадров.is a refIdxLXInterView reference index indicating a reference frame contained in the RefPicListLX reference frame list, where LX may be an L0 or L1 list of reference frames.

LX может быть списком L0 или L1 опорных кадров. К списку LX применяется следующая операция:LX may be a list of L0 or L1 reference frames. The following operation is applied to the LX list:

- флагу availableFlagLXInterView присваивается начальное значение 0,- the availableFlagLXInterView flag is initialized to 0,

- вектору mvLXInterView движения присваивается начальное значение (0,0),- the mvLXInterView motion vector is assigned an initial value (0,0),

- ссылочному индексу refIdxLXInterView присваивается начальное значение -1.- reference index refIdxLXInterView is initialized to -1.

Переменным nSbW и nSbH присваиваются начальные значения следующим образом:The variables nSbW and nSbH are initialized as follows:

nSbW=Min(nPbW, SubPbSize);nSbW=Min(nPbW, SubPbSize);

nSbH=Min(nPbH, SubPbSize).nSbH=Min(nPbH, SubPbSize).

Переменной ivRefPic в качестве начального значения присваивается значение, соответствующее кадру, имеющему то же значение ViewIdx, что refViewIdx в текущем элементе доступа. Переменной curSubBlockIdx присваивается начальное значение 0, переменной lastAvailableFlag присваивается начальное значение 0. При изменении yBlk от 0 до (nPbH/nSbH-1) и при изменении xBlk от 0 до (nPbW/nSbW-1) выполняется следующая операция:The ivRefPic variable is initialized to the value corresponding to the frame that has the same ViewIdx value as the refViewIdx in the current accessor. curSubBlockIdx is initialized to 0, lastAvailableFlag is initialized to 0. Changing yBlk from 0 to (nPbH/nSbH-1) and changing xBlk from 0 to (nPbW/nSbW-1) performs the following operation:

- переменной curAvailableFlag присваивается начальное значение 0;- the variable curAvailableFlag is assigned an initial value of 0;

- при изменении X от 0 до 1 выполняется следующая операция;- when X changes from 0 to 1, the following operation is performed;

- флагу spPredFlagL1[xBlk][yBlk] присваивается начальное значение 0;- the spPredFlagL1[xBlk][yBlk] flag is initialized to 0;

- вектору spMvLX движения присваивается начальное значение (0,0);- the motion vector spMvLX is assigned an initial value (0,0);

- ссылочному индексу spRefIdxLX[xBlk][yBlk] присваивается начальное значение -1;- the reference index spRefIdxLX[xBlk][yBlk] is assigned the initial value -1;

- положение (xRef, yRef) опорного блока определяется следующим образом:- the position (xRef, yRef) of the reference block is determined as follows:

xRef=Clip3(0, PicWidthInSamplesL-1), xPb+xBlk*nSbW+nSbW/2+((mvDisp[0]+2)>>2));xRef=Clip3(0, PicWidthInSamplesL-1), xPb+xBlk*nSbW+nSbW/2+((mvDisp[0]+2)>>2));

yRef=Clip3(0, PicHeightInSamplesL-1, yPb+yBlk*nSbH+nSbH/2+((mvDisp[1]+2)>>2)).yRef=Clip3(0, PicHeightInSamplesL-1, yPb+yBlk*nSbH+nSbH/2+((mvDisp[1]+2)>>2)).

- переменная ivRefPb указывает на яркостный блок предсказания в положении (xRef, yRef) в межракурсном опорном кадре, указываемом ivRefPic;- the ivRefPb variable points to the luminance prediction block at position (xRef, yRef) in the inter-view reference frame indicated by ivRefPic;

- (xIvRefPb, yIvRefPb) указывает на положение левого верхнего угла опорного блока, указываемого ivRefPb;- (xIvRefPb, yIvRefPb) points to the position of the upper left corner of the reference block indicated by ivRefPb;

- кроме случаев, когда ivRefPb был кодирован во внутрикадровом режиме, при изменении X от 0 до 1 выполняется следующая операция:- except when ivRefPb was encoded in intraframe mode, when X changes from 0 to 1, the following operation is performed:

- если значение X равно 0 или текущим слайсом является слайс B, то при изменении Y от X до (1-X) выполняется следующая операция:- if the value of X is 0 or the current slice is slice B, then when changing Y from X to (1-X), the following operation is performed:

- переменным refPixListLYIvRef, predFlagLYIvRef[x][y], mvLYIvRef[x][y] и refIdxLYIvRef[x][y] присваиваются, соответственно, значения RefPicListLY, PredFlagLY[x][y], MvLY[x][y] и RefIdxLY[x][y] в кадре, указываемом ivRefPic;- the variables refPixListLYIvRef, predFlagLYIvRef[x][y], mvLYIvRef[x][y] and refIdxLYIvRef[x][y] are assigned the values RefPicListLY, PredFlagLY[x][y], MvLY[x][y] and RefIdxLY[x][y] in the frame indicated by ivRefPic;

- если значение predFlagLYIvRef[xIvRefPb][yIvRefPb] равно 1, то при изменении i от 0 до num_ref_idx_lX_active_minus1 (количество опорных кадров в списке опорных кадров) выполняется следующая операция:- if the value of predFlagLYIvRef[xIvRefPb][yIvRefPb] is 1, then when i changes from 0 to num_ref_idx_lX_active_minus1 (the number of reference frames in the reference frame list), the following operation is performed:

- если порядковый номер кадра (POC) у refPicListLYIvRef[refIdxLYIvRef[xIvRefPb][yIvRefPb]] такой же, как у RefPicListLX[i], и значение spPredFlagLX[xBlk][yBlk] равно 0, то выполняются следующие операции:- if the frame sequence number (POC) of refPicListLYIvRef[refIdxLYIvRef[xIvRefPb][yIvRefPb]] is the same as RefPicListLX[i] and the value of spPredFlagLX[xBlk][yBlk] is 0, then the following operations are performed:

spMvLX[xBlk][yBlk]=mvLYIvRef[xIvRefPb][yIvRefPb];spMvLX[xBlk][yBlk]=mvLYIvRef[xIvRefPb][yIvRefPb];

spRefIdxLX[xBlk][yBlk]=i;spRefIdxLX[xBlk][yBlk]=i;

spPredLfagLX[xBlk][yBlk]=1;spPredLfagLX[xBlk][yBlk]=1;

curAvailableFlag=1.curAvailableFlag=1.

Соответственно значению curAvailableFlag выполняется следующая операция:According to the value of curAvailableFlag, the following operation is performed:

- если значение curAvailableFlag равно 1, то используется следующая последовательность:- if the value of curAvailableFlag is 1, then the following sequence is used:

1. Если lastAvailableFlag равен 0, выполняются следующие операции:1. If lastAvailableFlag is 0, the following operations are performed:

- при изменении X от 0 до 1 выполняется следующая операция:- when X changes from 0 to 1, the following operation is performed:

mxLXInterView=spMvLX[xBlk][yBlk];mxLXInterView=spMvLX[xBlk][yBlk];

refIdxLXInterView=spRefIdxLX[xBlk][yBlk];refIdxLXInterView=spRefIdxLX[xBlk][yBlk];

availableFlagLXInterview=spPredFlag[xBlk][yBlk].availableFlagLXInterview=spPredFlag[xBlk][yBlk].

- если curSubBlockIdx больше 0, то при изменении k от 0 до (curSubBlockIdx-1) выполняются следующие операции:- if curSubBlockIdx is greater than 0, then when k changes from 0 to (curSubBlockIdx-1), the following operations are performed:

- переменные i и j определяются следующим образом:- variables i and j are defined as follows:

i=k%(nPSW/nSbW);i=k%(nPSW/nSbW);

j=k/(nPSW/nSbW).j=k/(nPSW/nSbW).

- при изменении X от 0 до 1 выполняется следующая операция:- when X changes from 0 to 1, the following operation is performed:

spMvLX[i][j]=spMvLX[xBlk][yBlk];spMvLX[i][j]=spMvLX[xBlk][yBlk];

spRefIdxLX[i][j]=spRefIdxLX[xBlk][yBlk];spRefIdxLX[i][j]=spRefIdxLX[xBlk][yBlk];

spPredFlagLX[i][j]=spPredFlagLX[xBlk][yBlk].spPredFlagLX[i][j]=spPredFlagLX[xBlk][yBlk].

2. Переменной lastAvailableFlag присваивается значение 1.2. The lastAvailableFlag variable is set to 1.

3. Значения xBlk и yBlk сохраняются в переменных xLastAvail и yLastAvail, соответственно.3. The xBlk and yBlk values are stored in the xLastAvail and yLastAvail variables, respectively.

- Если значение curAvailableFlag равно 0 и значение lastAvailableFlag равно 1, то при изменении X от 0 до 1 выполняется следующая операция:.- If the value of curAvailableFlag is 0 and the value of lastAvailableFlag is 1, then when X changes from 0 to 1, the following operation is performed:.

spMvLX[xBlk][yBlk]=spMvLX[xLastAvail][yLastAvail];spMvLX[xBlk][yBlk]=spMvLX[xLastAvail][yLastAvail];

spRefIdxLX[xBlk][yBlk]=spRefIdxLX[xLastAvail][yLastAvail];spRefIdxLX[xBlk][yBlk]=spRefIdxLX[xLastAvail][yLastAvail];

spPredFlagLX[xBlk][yBlk]=spPredFlagLX[xLastAvail][yLastAvail].spPredFlagLX[xBlk][yBlk]=spPredFlagLX[xLastAvail][yLastAvail].

- переменной curSubBlockIdx присваивается значение curSubBlockIdx+1.- the variable curSubBlockIdx is assigned the value curSubBlockIdx+1.

Далее таблица 1 описывается подробно.Next, Table 1 is described in detail.

Как показано в таблице 1, в модуль межкадрового предсказания вводятся положение левого верхнего угла текущего блока предсказания, ширина и высота текущего блока предсказания, индекс опорного ракурса и вектор невязки. При этом положение левого верхнего угла текущего блока предсказания может быть обозначено как (xPb, yPb), где xPb может означать координату текущего блока предсказания на оси x, а yPb может означать координату текущего блока предсказания на оси y. Ширина текущего блока предсказания может быть обозначена как nPbW, а высота текущего блока предсказания может быть обозначена как nPbH. Индекс опорного ракурса может быть обозначен как refViewIdx, а вектор невязки как mvDisp. При этом модуль межкадрового предсказания может соответствовать вышеописанному модулю межкадрового предсказания кодера/декодера изображения.As shown in Table 1, the position of the upper left corner of the current prediction block, the width and height of the current prediction block, the reference view index, and the residual vector are input to the inter prediction module. In this case, the position of the upper left corner of the current prediction block can be denoted as (xPb, yPb), where xPb can mean the coordinate of the current prediction block on the x axis, and yPb can mean the coordinate of the current prediction block on the y axis. The width of the current prediction block may be referred to as nPbW, and the height of the current prediction block may be referred to as nPbH. The reference view index can be denoted as refViewIdx and the residual vector as mvDisp. Meanwhile, the inter-picture prediction module may correspond to the above-described inter-picture prediction module of the image encoder/decoder.

Как показано на фиг. 17, после завершения операции определения информации движения, относящейся к подэлементу предсказания текущего блока, с использованием подэлемента предсказания опорного блока, модуль межкадрового предсказания выдает флаг, сигнализирующий о готовности возможного временного межракурсного вектора движения к использованию, возможный временной межракурсный вектор движения и опорный кадр, содержащийся в списке опорных кадров. При этом флаг, сигнализирующий о готовности возможного временного межракурсного вектора движения к использованию, может быть обозначен как availableFlagLXInterView, а указанный возможный временной межракурсный вектор движения может быть обозначен как mvLXInterView. Указанный список опорных кадров может быть обозначен как RefPicListLX, а ссылочный индекс, указывающий опорный кадр, содержащийся в указанном списке опорных кадров, может быть обозначен как refIdxLXInterView. В обозначениях availableFlagLXInterView, mvLXInterView, RefPicListLX и refIdxLXInterView кодом LX может быть код списка 0 опорных кадров (List 0, L0) или код списка 1 опорных кадров (List 1, L1).As shown in FIG. 17, after completion of the operation of determining the motion information related to the prediction sub-element of the current block using the prediction sub-element of the reference block, the inter prediction module outputs a flag signaling that the candidate temporal inter-view motion vector is ready to be used, the candidate temporal inter-view motion vector, and the reference frame contained in the keyframe list. In this case, the flag signaling the readiness of the possible temporal interview motion vector for use may be designated as availableFlagLXInterView, and the specified possible temporal interview motion vector may be designated as mvLXInterView. The specified reference frame list may be referred to as RefPicListLX, and the reference index indicating the reference picture contained in the specified reference frame list may be referred to as refIdxLXInterView. In the notation availableFlagLXInterView, mvLXInterView, RefPicListLX, and refIdxLXInterView, the LX code can be the key frame list 0 code (List 0, L0) or the key frame list 1 code (List 1, L1).

Далее описывается способ определения информации движения, относящейся к подэлементу предсказания текущего блока, с использованием подэлемента предсказания опорного блока, имеющий целью определение модулем межкадрового предсказания вышеописанных выходных данных по вышеописанным входным данным.Next, a method for determining motion information related to the prediction sub-element of the current block using the reference block prediction sub-element, for the inter prediction unit to determine the above-described output data from the above-described input data, will be described.

Перед определением информации движения, относящейся к подэлементу предсказания текущего блока, с использованием подэлемента предсказания опорного блока модуль межкадрового предсказания выполняет присваивание начальных значений. При этом для availableFlagLXInterView задается значение 0, для mvLXInterView значение (0,0), а для refIdxLXInterView значение -1. При выполнении присваивания начальных значений модулем межкадрового предсказания также присваиваются начальные значения ширине и высоте подэлемента предсказания. При этом ширина подэлемента предсказания может быть обозначена как nSbW, а высота подэлемента предсказания как nSbH. Конкретный способ присваивания начальных значений переменным nSbW и nSbH дается нижеприведенной формулой 1.Before determining the motion information related to the prediction sub-element of the current block, using the reference block prediction sub-element, the inter prediction module performs seeding. This sets availableFlagLXInterView to 0, mvLXInterView to (0,0), and refIdxLXInterView to -1. When seeding is performed by the inter prediction module, the width and height of the prediction subelement are also seeded. Here, the prediction sub-element width may be denoted as nSbW and the prediction sub-element height as nSbH. The specific way of assigning initial values to the variables nSbW and nSbH is given by Formula 1 below.

[Формула 1][Formula 1]

Figure 00000001
.
Figure 00000001
.

Здесь SubPbSize обозначает размер (включающий высоту и ширину) подэлемента предсказания, указываемого набором параметров изображения (VPS), а nuh_layer_id обозначает индекс, идентифицирующий уровень (к примеру, какой это опорный ракурс). Функция Min(), выдающая наименьшую из входных переменных, может быть определена согласно формуле 2.Here, SubPbSize denotes the size (including height and width) of the prediction sub-element indicated by the Picture Parameter Set (VPS), and nuh_layer_id denotes an index identifying the layer (eg, which reference view it is). The Min() function, which produces the smallest of the input variables, can be determined according to formula 2.

[Формула 2][Formula 2]

Figure 00000002
.
Figure 00000002
.

Модуль межкадрового предсказания может присваивать начальные значения не только вышеуказанным переменным, но и информации, идентифицирующей подэлемент предсказания текущего блока и яркостный блок предсказания в положении (xRef, yRef) в межракурсном опорном кадре, и информации, указывающей на наличие информации движения, сохраненной в хранилище.The inter-frame prediction module may initialize not only the above variables, but also information identifying the prediction sub-element of the current block and the luminance prediction block at the position (xRef, yRef) in the inter-view reference frame, and information indicating the presence of motion information stored in the storage.

При этом яркостному блоку предсказания в положении (xRef, yRef) в межракурсном опорном кадре присваивается значение блока в кадре, имеющем такой же индекс ракурса, как индекс опорного ракурса в текущем элементе доступа. Яркостный блок предсказания в положении (xRef, yRef) в межкадровом опорном изображении обозначается как ivRefPic, а под указанным элементом доступа понимается элемент, в котором выполняется кодирование/декодирование изображения. Этот элемент доступа содержит изображения с различными ракурсами, имеющими одинаковый порядковый номер кадра (picture order count, POC). Например, при наличии трех ракурсов один элемент доступа может содержать обычное изображение и/или изображение информации глубин первого ракурса, обычное изображение и/или изображение информации глубин второго ракурса и обычное изображение и/или изображение информации глубин третьего ракурса. Индекс опорного ракурса может быть обозначен как refViewIdx, а индекс ракурса как ViewIdx. При этом под ViewIdx может пониматься ракурс текущего изображения.Here, the luminance prediction block at position (xRef, yRef) in the inter-view reference frame is assigned the value of the block in the frame having the same view index as the reference view index in the current access element. The luminance prediction block at position (xRef, yRef) in the inter-frame reference picture is referred to as ivRefPic, and the specified access element is understood to be the element in which image encoding/decoding is performed. This access element contains images from different angles that have the same frame sequence number (picture order count, POC). For example, if there are three views, one access element may contain a normal image and/or image of depth information of the first view, a normal image and/or image of depth information of the second view, and a normal image and/or image of depth information of the third view. The reference view index can be denoted as refViewIdx and the view index as ViewIdx. In this case, ViewIdx can be understood as the view of the current image.

При этом информации для идентификации подэлемента предсказания текущего блока при присваивании начальных значений может быть присвоено значение 0, а информация идентификации подэлемента предсказания текущего блока может быть обозначена как curSubBlockIdx. Также задается информация для указания наличия информации движения, сохраненной в хранилище, которая может быть обозначена как lastAvalableFlag, с начальным значением 0.Meanwhile, information for identifying the prediction sub-element of the current block may be set to 0 when assigning initial values, and the identification information of the prediction sub-element of the current block may be designated as curSubBlockIdx. Information is also set to indicate the presence of motion information stored in the storage, which may be designated as lastAvalableFlag, with an initial value of 0.

После присваивания начальных значений описанным выше переменным модуль межкадрового предсказания выполняет следующую операцию при изменении yBlk от 0 до (nPbH/nSbH-1) и изменении xBlk от 0 до (nPbW/nSbW-1). Здесь xBlk обозначает координату x блока, а yBlk обозначает координату y блока.After initializing the variables described above, the inter prediction module performs the following operation when yBlk changes from 0 to (nPbH/nSbH-1) and xBlk changes from 0 to (nPbW/nSbW-1). Here xBlk denotes the x-coordinate of the block and yBlk denotes the y-coordinate of the block.

Вначале модуль межкадрового предсказания присваивает начальное значение информации, служащей для указания на необходимость предсказания информации движения из подэлемента предсказания опорного блока, флагу предсказания указанного подэлемента предсказания, информации движения, относящейся к указанному подэлементу предсказания, и ссылочному индексу указанного подэлемента предсказания. Конкретно, информации, служащей для указания на необходимость предсказания информации движения из подэлемента предсказания опорного блока, может быть присвоено значение 0. При этом информация, служащая для указания на необходимость предсказания информации движения из подэлемента предсказания опорного блока, может быть обозначена как curAvailableFlag. Флагу предсказания подэлемента предсказания может быть присвоено значение 0, и этот флаг предсказания подэлемента предсказания может быть обозначен как spPredFlagL1. С целью представления координат блока флаг подэлемента предсказания может быть обозначен как spPredFlagL1[xBlk][yBlk]. Вектору движения подэлемента предсказания присваивается значение (0, 0), и этот вектор движения подэлемента предсказания может быть обозначен как spMvLX. Ссылочному индексу указанного подэлемента предсказания может быть присвоено значение -1, и этот ссылочный индекс подэлемента предсказания может быть обозначен как spRefIdxLX. С целью представления координат блока ссылочный индекс подэлемента предсказания может быть обозначен как spRefIdxLX[xBlk][yBlk].First, the inter-picture prediction module assigns an initial value of information for indicating the need to predict motion information from the reference block prediction sub-item, the prediction flag of the specified prediction sub-item, the motion information related to the specified prediction sub-item, and the reference index of the specified prediction sub-item. Specifically, information for indicating the need to predict motion information from the reference block prediction sub-element may be set to 0. Meanwhile, information for indicating the need to predict motion information from the reference block prediction sub-element may be designated as curAvailableFlag. The prediction sub-element prediction flag may be set to 0, and this prediction sub-element prediction flag may be denoted as spPredFlagL1. For the purpose of representing block coordinates, the prediction sub-element flag may be denoted as spPredFlagL1[xBlk][yBlk]. The motion vector of the prediction sub-element is set to (0, 0), and this motion vector of the prediction sub-element may be denoted as spMvLX. The reference index of the specified prediction sub-item may be set to -1, and this prediction sub-item reference index may be denoted as spRefIdxLX. For the purpose of representing block coordinates, the prediction subelement reference index may be denoted as spRefIdxLX[xBlk][yBlk].

Положение (xRef, yRef) опорного блока может быть задано в соответствии с нижеприведенной формулой 3.The position (xRef, yRef) of the reference block can be set according to Formula 3 below.

[Формула 3][Formula 3]

Figure 00000003
Figure 00000003

Здесь xRef обозначает координату x положения опорного блока, а yRef обозначает координату y положения опорного блока. Через PicWidthInSamplesL обозначена ширина в текущем кадре, через PicHeightInSamplesL обозначена высота в текущем кадре. Функция Clip3() может быть определена в соответствии с нижеприведенной формулой 4.Here, xRef denotes the x-coordinate of the position of the reference block, and yRef denotes the y-coordinate of the position of the reference block. PicWidthInSamplesL denotes the width in the current frame, PicHeightInSamplesL denotes the height in the current frame. The Clip3() function can be defined according to Formula 4 below.

[Формула 4][Formula 4]

Figure 00000004
.
Figure 00000004
.

В случае кодирования межракурсного опорного блока во внутрикадровом режиме выполняется следующая операция при изменении X от 0 до 1. Под межракурсным опорным блоком понимается яркостный блок предсказания в положении (xRef, yRef) в межракурсном опорном кадре, указываемом ivRefPic, и этот межракурсный опорный блок может быть обозначен как ivRefPb. Иными словами, ivRefPb обозначает яркостный блок предсказания в положении (xRef, yRef) в межракурсном опорном кадре, указываемом ivRefPic, а ivRefPic обозначает межракурсный опорный кадр. Положению левого верхнего угла опорного блока, указываемого ivRefPb, может быть присвоено значение (xIvRefPb, yIvRefPb).In the case of encoding an inter-view reference block in intra-frame mode, the following operation is performed when X changes from 0 to 1. An inter-view reference block refers to a luminance prediction block at a position (xRef, yRef) in an inter-view reference frame indicated by ivRefPic, and this inter-view reference block may be designated as ivRefPb. In other words, ivRefPb denotes a luma prediction block at position (xRef, yRef) in the inter-view reference frame indicated by ivRefPic, and ivRefPic denotes an inter-view reference frame. The position of the upper left corner of the reference box indicated by ivRefPb can be set to (xIvRefPb, yIvRefPb).

Если X равен 0 или текущим слайсом является слайс B, то каждой переменной присваивается новое значение в соответствии с Y (значение Y изменяется от X до (1-X)) следующим образом. Переменной refPicListLYIvRef присваивается значение RefPicListLY в кадре, указываемом ivRefPic, где RefPicListLY обозначает список опорных кадров. Флагу predFlagLYIvRef[x][y] присваивается значение PredFlagLY[x][y] в кадре, указываемом ivRefPic, где PredFlagLY обозначает идентификатор, указывающий список опорных кадров. Переменной mvLYIvRef[x][y] присваивается значение MvLY[x][y] в кадре, указываемом ivRefPic, где MvLY обозначает вектор движения. Аналогично, переменной refIdxLYIvRef[x][y] присваивается значение RefIdxLY[x][y] в кадре, указываемом ivRefPic, где через RefIdxLY обозначен ссылочный индекс.If X is 0 or the current slice is slice B, then each variable is assigned a new value according to Y (the value of Y changes from X to (1-X)) as follows. The variable refPicListLYIvRef is set to RefPicListLY in the frame indicated by ivRefPic, where RefPicListLY is the list of reference frames. The flag predFlagLYIvRef[x][y] is set to PredFlagLY[x][y] in the frame indicated by ivRefPic, where PredFlagLY is an identifier indicating the list of reference frames. The variable mvLYIvRef[x][y] is set to MvLY[x][y] in the frame indicated by ivRefPic, where MvLY denotes a motion vector. Similarly, the variable refIdxLYIvRef[x][y] is set to RefIdxLY[x][y] in the frame indicated by ivRefPic, where RefIdxLY denotes the reference index.

При этом, если значение predFlagLYIvRef[xIvRefPb][yIvRefPb] равно 1, то может применяться нижеприведенная формула 5 при изменении i от 0 до num_ref_idx_lX_active_minus1 (количество опорных кадров в списке опорных кадров).Meanwhile, if the value of predFlagLYIvRef[xIvRefPb][yIvRefPb] is equal to 1, then Formula 5 below can be applied when changing i from 0 to num_ref_idx_lX_active_minus1 (number of reference frames in the reference frame list).

[Формула 5][Formula 5]

Figure 00000005
.
Figure 00000005
.

В соответствии с таблицей 1, в случае, когда curAvailableFlag равен 1 и в случае, когда curAvailableFalg равен 0, выполняются, соответственно, следующие операции.According to Table 1, in the case where curAvailableFlag is 1 and in the case where curAvailableFalg is 0, the following operations are performed, respectively.

Если curAvailableFlag равен 1, то модуль межкадрового предсказания выполняет следующую операцию.If curAvailableFlag is equal to 1, then the inter prediction module performs the following operation.

1. Если lastAvailableFlag равен 0, то может применяться нижеприведенная формула 6 при изменении X от 0 до 1.1. If lastAvailableFlag is 0, then Formula 6 below can be applied when changing X from 0 to 1.

[Формула 6][Formula 6]

Figure 00000006
.
Figure 00000006
.

Если lastAvailableFlag равен 0, а curSubBlockIdx больше 0, то согласно нижеприведенной формуле 7 могут вычисляться переменные i и j при изменении k от 0 до (curSubBlockIdx - 1).If lastAvailableFlag is 0 and curSubBlockIdx is greater than 0, then according to formula 7 below, variables i and j can be calculated when changing k from 0 to (curSubBlockIdx - 1).

[Формула 7][Formula 7]

Figure 00000007
.
Figure 00000007
.

В этом случае может применяться нижеприведенная формула 8 при изменении X от 0 до 1.In this case, Formula 8 below can be applied when changing X from 0 to 1.

[Формула 8][Formula 8]

Figure 00000008
.
Figure 00000008
.

2. Выполнив вышеприведенную последовательность операций, модуль межкадрового предсказания изменяет значение lastAvailableFlag на значение 1.2. After executing the above sequence of operations, the inter-frame prediction module changes the value of lastAvailableFlag to the value 1.

3. Затем модуль межкадрового предсказания сохраняет значения xBlk и yBlk в переменных xLastAvail и yLastAvail, соответственно.3. The interframe prediction module then stores the xBlk and yBlk values in the xLastAvail and yLastAvail variables, respectively.

Если значение curAvailableFlag равно 1 и значение lastAvailableFlag равно 1, то модуль межкадрового предсказания использует нижеприведенную формулу 9 при изменении X от 0 до 1.If the value of curAvailableFlag is 1 and the value of lastAvailableFlag is 1, then the interframe prediction module uses the formula 9 below when X changes from 0 to 1.

[Формула 9][Formula 9]

Figure 00000009
Figure 00000009

После выполнения всех описанных выше операций переменной curSubBlockIdx присваивается значение curSubBlockIdx+1.After all the above operations have been completed, curSubBlockIdx is set to curSubBlockIdx+1.

Способ определения информации движения, относящейся к подэлементу предсказания текущего блока, описанный выше совместно с фиг. 17, при невозможности определения информации движения из подэлемента предсказания опорного блока использует информацию движения, относящуюся к подэлементу предсказания опорного блока, обращение к которому осуществлялось ранее (или будет осуществляться позже). Поэтому в способе определения информации движения в соответствии с фиг. 17 обязательно должно использоваться обращение к подэлементу предсказания из другого опорного блока, и, соответственно, данный способ является зависимым. Зависимый способ определения информации движения плохо подходит для параллельных схем обработки, подробно описанных с использованием фиг. 18.The method for determining motion information related to a prediction sub-element of the current block described above in conjunction with FIG. 17, if it is not possible to determine the motion information from the reference block prediction sub-element, uses the motion information related to the reference block prediction sub-element that was earlier (or will be later) referenced. Therefore, in the motion information determination method according to FIG. 17, a reference to a prediction sub-element from another reference block must be used, and, accordingly, this method is dependent. The dependent motion information determination method is poorly suited to the parallel processing schemes detailed using FIGS. eighteen.

Фиг. 18 представляет собой иллюстрацию примера операции параллельного определения информации движения, относящейся к подэлементу предсказания текущего блока, с использованием подэлемента предсказания опорного блока.Fig. 18 is an illustration of an example of an operation of parallel determination of motion information related to the prediction sub-element of the current block using the reference block prediction sub-element.

На фиг. 18 через Ref обозначен опорный блок, а элементы Ref 0, 1, 2, 3, 4, 5, 6 и 7 представляют собой, соответственно, подэлементы 0, 1, 2, 3, 4, 5, 6 и 7 предсказания опорного блока. Через Cur обозначен текущий блок, а Cur 0, 1, 2, 3, 4, 5, 6 и 7 представляют собой, соответственно, подэлементы 0, 1, 2, 3, 4, 5, 6 и 7 предсказания текущего блока. Символ X в позициях Ref 2, 3, 4 и 5 означает, что подэлементы предсказания 2, 3, 4 и 5 опорного блока недоступны при определении информации движения.In FIG. 18, Ref denotes a reference block, and Ref elements 0, 1, 2, 3, 4, 5, 6, and 7 represent reference block prediction sub-elements 0, 1, 2, 3, 4, 5, 6, and 7, respectively. Cur denotes the current block, and Cur 0, 1, 2, 3, 4, 5, 6, and 7 represent prediction subelements 0, 1, 2, 3, 4, 5, 6, and 7 of the current block, respectively. An X symbol at positions Ref 2, 3, 4 and 5 means that prediction sub-elements 2, 3, 4 and 5 of the reference block are not available when determining motion information.

В варианте осуществления в соответствии с фиг. 18 модуль межкадрового предсказания для определения информации движения из подэлемента предсказания, из которого определение информации движения невозможно, выполняет поиск подэлемента предсказания, из которого информация движения может быть определена, как описано выше. Соответственно, модуль межкадрового предсказания не может независимо определять информацию движения для каждого подэлемента предсказания текущего блока, и вышеописанную операцию определения информации движения трудно выполнять параллельно.In the embodiment according to FIG. 18, the inter prediction unit for determining motion information from a prediction sub-element from which motion information cannot be determined searches for a prediction sub-element from which motion information can be determined as described above. Accordingly, the inter prediction unit cannot independently determine motion information for each prediction sub-element of the current block, and the above-described motion information determination operation is difficult to perform in parallel.

Фиг. 19 представляет собой иллюстрацию примера операции поиска подэлемента предсказания, пригодного для использования, при расположении этого подэлемента предсказания в правом нижнем углу опорного блока.Fig. 19 is an illustration of an example operation of searching for a usable prediction sub-element when the prediction sub-element is located in the lower right corner of the reference block.

На фиг. 19 каждый квадрат обозначает подэлемент предсказания; квадрат, выделенный жирными линиями, обозначает пригодный для определения информации движения подэлемент предсказания, а квадраты, ограниченные тонкими сплошными линиями, обозначают подэлементы предсказания, непригодные для определения информации движения. Стрелка, выполненная штриховой линией, показывает порядок поиска информации движения.In FIG. 19, each square represents a prediction sub-element; a square with thick lines indicates a prediction sub-element suitable for determining motion information, and a square bounded by thin solid lines indicates prediction sub-elements unsuitable for determining motion information. An arrow formed by a dashed line shows the order in which motion information is searched.

Если подэлемент предсказания, из которого может быть определена информация движения, находится в правом нижнем углу опорного блока, как это показано на фиг. 19, то для отыскания подэлемента предсказания, из которого может быть определена информация движения, придется выполнить последовательный перебор всех подэлементов предсказания по штриховой стрелке, начиная с левого верхнего угла опорного блока. Обычно неизвестно, какой подэлемент предсказания и в каком опорном блоке может быть использован для определения информации движения. Соответственно, для отыскания подэлемента предсказания, который может использоваться для определения информации движения, приходится последовательно перебирать подэлементы предсказания опорного блока, начиная с первого подэлемента предсказания опорного блока.If the prediction sub-element from which motion information can be determined is in the lower right corner of the reference block, as shown in FIG. 19, in order to find a prediction sub-element from which motion information can be determined, it will be necessary to sequentially search through all prediction sub-elements along the dashed arrow starting from the upper left corner of the reference block. It is generally not known which prediction sub-element and in which reference block can be used to determine motion information. Accordingly, in order to find a prediction sub-element that can be used to determine motion information, reference block prediction sub-elements have to be sequentially iterated starting from the first reference block prediction sub-element.

Однако способ определения информации движения, показанный на фиг. 19, для отыскания пригодного к использованию подэлемента предсказания требует проверки всех подэлементов предсказания в опорном блоке, что вызывает частые обращения к памяти. Если при этом информация движения содержится лишь в небольшом числе подэлементов предсказания опорного блока, то в основном проверяются подэлементы предсказания, не содержащие полезной информации. В частности, если ни один из подэлементов предсказания в опорном блоке не может быть использован для определения информации движения, то отыскание пригодных подэлементов предсказания в опорном блоке приводит лишь к бесполезным обращениям к памяти. При этом «отсутствие информации движения» означает, что для текущего блока не удалось обнаружить похожую область в опорном блоке соседнего кадра.However, the motion information determination method shown in FIG. 19, finding a usable prediction sub-element requires checking all prediction sub-elements in the reference block, which causes frequent memory accesses. If, however, motion information is contained in only a small number of reference block prediction sub-elements, then prediction sub-elements that do not contain useful information are mainly checked. In particular, if none of the prediction sub-elements in the reference block can be used to determine motion information, then finding suitable prediction sub-elements in the reference block only results in useless memory accesses. In this case, "no motion information" means that for the current block it was not possible to detect a similar area in the reference block of the adjacent frame.

Соответственно, когда информация движения содержится лишь в нескольких подэлементах предсказания опорного блока или не содержится ни в одном подэлементе предсказания опорного блока, кодирование/декодирование текущего блока с использованием межкадрового предсказания может дать более высокую эффективность. Иными словами, в случае, когда информация движения содержится лишь в нескольких подэлементах предсказания опорного блока или не содержится ни в одном подэлементе предсказания опорного блока, для выполнения кодирования/декодирования текущего блока более рациональным может оказаться поиск похожей области в соседнем пикселе текущего блока.Accordingly, when motion information is contained in only a few prediction sub-elements of the reference block or is not contained in any prediction sub-element of the reference block, encoding/decoding of the current block using inter prediction can achieve higher efficiency. In other words, in the case where motion information is contained in only a few reference block prediction sub-elements or is not contained in any reference block prediction sub-element, it may be more efficient to search for a similar area in a neighboring pixel of the current block to perform encoding/decoding of the current block.

Фиг. 20 представляет собой схематичную иллюстрацию затрат времени, требуемых для определения информации движения по подэлементам предсказания.Fig. 20 is a schematic illustration of the time required to determine motion information by prediction sub-elements.

Как показано на фиг. 20, если время, необходимое для определения информации движения из одного подэлемента предсказания, равно T, а количество подэлементов предсказания в опорном блоке равно N, то время, необходимое для определения всей информации движения из опорного блока, равно NxT. Вышеупомянутый способ определения информации движения обладает зависимостью от данных и приводит к частым обращениям к памяти. Зависимые от данных способы определения информации движения не дают возможности независимого определения информации движения из каждого подэлемента предсказания, и поэтому для определения информации движения из одного подэлемента предсказания необходимо дожидаться завершения определения информации движения из другого подэлемента предсказания. Как следствие, зависимые от данных способы определения информации движения могут приводить к задержкам при кодировании/декодировании.As shown in FIG. 20, if the time required to determine motion information from one prediction sub-element is T and the number of prediction sub-elements in a reference block is N, then the time required to determine all motion information from the reference block is NxT. The above method of determining motion information is data-dependent and results in frequent memory access. The data-dependent methods for determining motion information do not allow independent determination of motion information from each prediction sub-item, and therefore, in order to determine motion information from one prediction sub-item, it is necessary to wait for the determination of motion information from another prediction sub-item to be completed. As a consequence, data-dependent methods for determining motion information may lead to encoding/decoding delays.

В итоге описанный выше способ определения информации движения не дает возможности использования параллельной обработки данных для одновременного определения информации движения, а в силу своей архитектуры данный способ может приводить к частым обращениям к памяти, что снижает эффективность использования памяти.As a result, the above-described method for determining motion information does not allow the use of parallel data processing to simultaneously determine motion information, and due to its architecture, this method may lead to frequent memory accesses, which reduces the efficiency of memory use.

Для устранения вышеуказанных недостатков в настоящем изобретении предлагаются устройство и способ для устранения зависимости при определении информации движения. На фиг. 21 показан пример конфигурации модуля межкадрового предсказания в соответствии с настоящим изобретением. Способ определения информации движения в соответствии с вариантом осуществления настоящего изобретения подробно описывается со ссылкой на фиг. 22-26.In order to overcome the above drawbacks, the present invention provides an apparatus and a method for decoupling motion information detection. In FIG. 21 shows a configuration example of an inter prediction module according to the present invention. The motion information determination method according to the embodiment of the present invention will be described in detail with reference to FIG. 22-26.

Фиг. 21 представляет собой структурную схему, иллюстрирующую конфигурацию модуля 2100 межкадрового предсказания в соответствии с настоящим изобретением.Fig. 21 is a block diagram illustrating the configuration of an inter prediction unit 2100 according to the present invention.

Как показано на фиг. 21, модуль 2100 межкадрового предсказания может содержать модуль 2110 хранения и модуль 2120 определения. Под модулем 2100 межкадрового предсказания может пониматься описанный выше модуль 710 межкадрового предсказания в кодере трехмерного изображения или модуль 850 межкадрового предсказания в декодере трехмерного изображения. Модуль 2100 межкадрового предсказания, показанный на фиг. 21, может использоваться в вышеописанной операции кодирования/декодирования изображения.As shown in FIG. 21, the inter prediction module 2100 may include a storage module 2110 and a determination module 2120. Under the module 2100 inter-picture prediction can be understood as the above-described module 710 inter-picture prediction in the encoder three-dimensional image or module 850 inter-picture prediction in the decoder three-dimensional image. The inter prediction module 2100 shown in FIG. 21 may be used in the above image encoding/decoding operation.

Модуль 2110 хранения отмечает информацию движения и сохраняет ее в хранилище. Модуль 2110 хранения для получения сохраняемой информации движения может использовать информацию движения, имеющуюся в некотором положении опорного блока. В настоящем изобретении этим положением может быть центр опорного блока или (под)элемента предсказания, покрывающего центр опорного блока. Информации движения, сохраненной в модуле 2110 хранения, может быть присвоено начальное значение. Если информация движения не может быть сохранена в хранилище, то операция определения информации движения по подэлементам предсказания может быть исключена. При исключении операции определения информации движения по подэлементам предсказания межкадровое предсказание может выполняться в соответствии с вышеприведенным описанием. Модуль 2110 хранения более подробно описывается далее.The storage unit 2110 marks the motion information and stores it in storage. The storage unit 2110 may use the motion information available at a position of the reference block to obtain stored motion information. In the present invention, this position may be the center of the reference block or a prediction (sub)element covering the center of the reference block. The motion information stored in the storage unit 2110 may be assigned an initial value. If the motion information cannot be stored in the storage, then the operation of determining the motion information from the prediction sub-elements can be omitted. By eliminating the operation of determining motion information on prediction sub-elements, inter-picture prediction can be performed in accordance with the above description. The storage module 2110 is described in more detail below.

Модуль 2120 определения выполняет операцию определения информации движения из подэлемента предсказания текущего блока. При этом модуль 2120 определения выполнен с возможностью выполнения, в основном, вышеописанной операции определения информации движения. Однако на случай, когда подэлемент предсказания опорного блока, соответствующий первому подэлементу предсказания текущего блока, не содержит информацию движения, предлагаемый в настоящем изобретении модуль 2120 определения выполнен с возможностью поиска подэлемента предсказания опорного блока, содержащего информацию движения, и с возможностью вместо определения информации движения, относящейся к первому подэлементу предсказания текущего блока, из подэлемента предсказания опорного блока, содержащего информацию движения, последующего определения информации движения, относящейся к первому подэлементу предсказания текущего блока, из информации движения, сохраненной в модуле хранения. Модуль 2120 определения более подробно описывается далее.The determining unit 2120 performs an operation of determining motion information from the prediction sub-element of the current block. Meanwhile, the determining unit 2120 is configured to perform basically the above-described motion information determining operation. However, in the case where the reference block prediction sub-element corresponding to the first prediction sub-element of the current block does not contain motion information, the determining unit 2120 of the present invention is configured to search for a reference block prediction sub-element containing motion information, and instead of determining the motion information, related to the first prediction sub-item of the current block from the reference block prediction sub-item containing motion information, then determining the motion information related to the first prediction sub-item of the current block from the motion information stored in the storage unit. The determination module 2120 is described in more detail below.

Далее со ссылкой на чертежи подробно описываются варианты осуществления настоящего изобретения.Next, with reference to the drawings, embodiments of the present invention will be described in detail.

Вариант 1 осуществленияEmbodiment 1

Фиг. 22 представляет собой блок-схему, схематично иллюстрирующую способ определения информации движения, относящейся к подэлементу предсказания текущего блока, с использованием опорного блока в соответствии с вариантом осуществления настоящего изобретения.Fig. 22 is a flowchart schematically illustrating a method for determining motion information related to a prediction subelement of a current block using a reference block according to an embodiment of the present invention.

В варианте 1 осуществления информацию движения, относящуюся к подэлементу предсказания текущего блока (текущему подэлементу) определяют на основании информации движения, относящейся к центру опорного блока. Вариант 1 осуществления может выполняться в кодере и декодере или в предсказывающем модуле или в модуле межкадрового предсказания кодера и декодера. Далее для упрощения описания вариант 1 осуществления реализуется модулем 2100 межкадрового предсказания, показанным на фиг. 21.In Embodiment 1, motion information related to the prediction sub-element of the current block (current sub-element) is determined based on motion information related to the center of the reference block. Embodiment 1 may be performed in an encoder and decoder, or in a predictive module or in an inter-frame prediction module of an encoder and decoder. Next, to simplify the description, Embodiment 1 is implemented by the inter prediction module 2100 shown in FIG. 21.

Как показано на фиг. 22, модуль 2100 межкадрового предсказания может определять положение центра опорного блока (S2200). Положение центра опорного блока может быть определено по нижеприведенной формуле 10. При этом опорным блоком может быть блок, находящийся в опорном кадре в том же положении, что и текущий блок, и опорный блок может иметь тот же размер, что и текущий блок.As shown in FIG. 22, the inter prediction unit 2100 may determine the position of the center of the reference block (S2200). The position of the center of the reference block can be determined by the following formula 10. In this case, the reference block may be a block located in the reference frame at the same position as the current block, and the reference block may have the same size as the current block.

[Формула 10][Formula 10]

Положение X = xPb+(nPbW>>1)Position X = xPb+(nPbW>>1)

Положение Y = yPb+(nPbH>>1). Position Y = yPb+(nPbH>>1) .

При этом xPb и yPb представляют собой положение левого верхнего угла текущего ЭП, nPbW ширину данного ЭП, а nPbH высоту данного ЭП.In this case, xPb and yPb represent the position of the upper left corner of the current ES, nPbW the width of this ES, and nPbH the height of this ES.

Модуль 2100 межкадрового предсказания может проверять наличие информации движения в центре опорного блока (S2210). Положение центра опорного блока может быть указано в соответствии с вышеприведенным описанием.The inter prediction unit 2100 may check for motion information at the center of the reference block (S2210). The position of the center of the support block may be specified as described above.

Если в центре опорного блока нет информации движения, которую можно использовать, то, модуль 2100 межкадрового предсказания может завершать данную операцию определения информации движения.If there is no motion information that can be used at the center of the reference block, then the inter prediction unit 2100 may terminate this motion information determination operation.

Например, без наличия в центре опорного блока информации движения, которую можно использовать, модуль 2100 межкадрового предсказания может и не определить информацию движения, относящуюся к текущему блоку.For example, without having motion information at the center of the reference block that can be used, the inter prediction module 2100 may not determine the motion information related to the current block.

Если информация движения в центре опорного блока присутствует, то модуль 2100 межкадрового предсказания может сохранять эту информацию движения, присутствующую в центре опорного блока, в хранилище (S2220). Информацией движения, присутствующей в центре опорного блока, может быть информация движения, относящаяся к блоку предсказания, содержащему положение целостного элементарного значения, наиболее близкого к центру опорного блока. Конкретная операция сохранения информации движения модулем 2100 межкадрового предсказания была описана выше. Модуль 2100 межкадрового предсказания может определять информацию движения, относящуюся к текущему подэлементу предсказания, на основании указанной сохраненной информации движения, относящейся к опорному блоку.If motion information at the center of the reference block is present, then the inter prediction unit 2100 may store this motion information present at the center of the reference block in storage (S2220). The motion information present at the center of the reference block may be motion information related to the prediction block containing the position of the integral chip closest to the center of the reference block. The specific operation of storing motion information by the inter prediction unit 2100 has been described above. The inter prediction unit 2100 may determine the motion information related to the current prediction sub-element based on the specified stored motion information related to the reference block.

Модуль 2100 межкадрового предсказания может проверять, содержит ли подэлемент предсказания опорного блока, соответствующий текущему подэлементу предсказания, информацию движения (S2240).The inter prediction unit 2100 may check whether the reference block prediction sub-element corresponding to the current prediction sub-element contains motion information (S2240).

Если подэлемент предсказания опорного блока содержит информацию движения, то модуль 2100 межкадрового предсказания может вводить в текущий подэлемент предсказания информацию движения, относящуюся к указанному подэлементу предсказания опорного блока (S2250). Иными словами, модуль 2100 межкадрового предсказания может присваивать информации движения, относящейся к соответствующему текущему подэлементу предсказания, значение информации движения, относящейся к подэлементу предсказания опорного блока (например, вектор движения, индекс опорного кадра).If the reference block prediction sub-item contains motion information, the inter-picture prediction unit 2100 may input motion information related to the specified reference block prediction sub-item (S2250) to the current prediction sub-item (S2250). In other words, the inter prediction unit 2100 may assign the motion information related to the corresponding current prediction sub-item to the value of the motion information related to the reference block prediction sub-item (eg, motion vector, reference frame index).

Если же подэлемент предсказания опорного блока не содержит доступной информации движения, то модуль 2100 межкадрового предсказания вводит в текущий подэлемент предсказания информацию движения опорного блока, сохраненную в хранилище (S2260). Иными словами, если информация движения, относящаяся к подэлементу предсказания опорного блока, соответствующего текущему подэлементу предсказания, недоступна, то модуль 2100 межкадрового предсказания может присваивать информации движения, относящейся к текущему подэлементу предсказания, значение информации движения, относящейся к центру опорного блока, сохраненной в шаге S2200.On the other hand, if the reference block prediction sub-item does not contain available motion information, the inter prediction unit 2100 inputs the reference block motion information stored in the storage into the current prediction sub-item (S2260). In other words, if motion information related to the prediction sub-element of the reference block corresponding to the current prediction sub-element is not available, then the inter prediction unit 2100 may assign the motion information related to the current prediction sub-element to the value of the motion information related to the center of the reference block stored in step S2200.

Модуль 2100 межкадрового предсказания может проверять, является ли подэлемент предсказания опорного блока, соответствующий текущему подэлементу предсказания, последним подэлементом предсказания в этом опорном блоке (или, что то же самое по смыслу, является ли текущий подэлемент предсказания последним подэлементом предсказания в текущем блоке) (S2270). Если подэлемент предсказания опорного блока является последним подэлементом предсказания, то модуль 2100 межкадрового предсказания может завершать данную операцию определения информации движения.The inter prediction unit 2100 may check whether the reference block prediction sub-element corresponding to the current prediction sub-element is the last prediction sub-element in that reference block (or, equivalently, whether the current prediction sub-element is the last prediction sub-element in the current block) (S2270 ). If the reference block prediction sub-element is the last prediction sub-element, then the inter prediction unit 2100 may complete this motion information determination operation.

Если же подэлемент предсказания опорного блока не является последним подэлементом предсказания, то модуль 2100 межкадрового предсказания с целью продолжения определения информации движения переходит к определению информации движения, относящейся к следующему подэлементу предсказания текущего блока (S2230).On the other hand, if the reference block prediction sub-element is not the last prediction sub-element, the inter prediction unit 2100 proceeds to determine motion information related to the next prediction sub-element of the current block to continue determining motion information (S2230).

Вышеописанная операция определения информации движения в соответствии с вариантом 1 осуществления может применяться к декодированию трехмерного изображения, как это показано в таблице 2.The above-described motion information determination operation according to Embodiment 1 can be applied to the decoding of a 3D image as shown in Table 2.

Таблица 2table 2

В данной операции используются следующие входные данные:.This operation uses the following input data:

- положение (xPb, yPb) левого верхнего угла текущего элемента предсказания;- position (xPb, yPb) of the upper left corner of the current prediction element;

- ширина (nPbW) и высота (nPbH) текущего элемента предсказания;- width (nPbW) and height (nPbH) of the current prediction element;

- индекс refViewIdx опорного ракурса;- refViewIdx index of the reference view;

- вектор mvDisp невязки.- mvDisp residual vector.

В данной операции получаются следующие выходные данные:This operation produces the following output:

- флаг availableFlagLXinterView для указания доступности возможного временного межракурсного вектора движения, где LX может быть списком опорных кадров L0 и L1;- flag availableFlagLXinterView to indicate the availability of a possible temporal inter-view motion vector, where LX may be a list of L0 and L1 reference frames;

- возможный временной межракурсный вектор mvLXInterView движения, где LX может быть списком L0 или L1 опорных кадров;- a possible temporal interview motion vector mvLXInterView, where LX can be a list of L0 or L1 reference frames;

- ссылочный индекс refIdxLXInterView, указывающий опорный кадр, содержащийся в списке RefPicListLX опорных кадров, где LX может быть списком L0 или L1 опорных кадров.is a refIdxLXInterView reference index indicating a reference frame contained in the RefPicListLX reference frame list, where LX may be an L0 or L1 list of reference frames.

LX может быть списком L0 или L1 опорных кадров. К списку LX применяется следующая операция.LX may be a list of L0 or L1 reference frames. The following operation is applied to the LX list.

- флагу availableFlagLXInterView присваивается начальное значение 0;- the availableFlagLXInterView flag is initialized to 0;

- вектору mvLXInterView движения присваивается начальное значение (0,0);- mvLXInterView motion vector is assigned initial value (0,0);

- ссылочному индексу refIdxLXInterView присваивается начальное значение -1.- reference index refIdxLXInterView is initialized to -1.

Переменным nSbW и nSbH присваиваются начальные значения следующим образом:The variables nSbW and nSbH are initialized as follows:

nSbW=Min(nPbW, SubPbSize);nSbW=Min(nPbW, SubPbSize);

nSbH=Min(nPbH, SubPbSize),nSbH=Min(nPbH, SubPbSize),

где SubPbSize представляет собой размер, включающий высоту и ширину подэлемента предсказания, указываемого набором параметров (VPS).where SubPbSize is a size including the height and width of the prediction sub-element indicated by the parameter set (VPS).

Переменной ivRefPic в качестве начального значения присваивается значение, соответствующее кадру, имеющему то же значение ViewIdx, что refViewIdx в текущем элементе доступа. The ivRefPic variable is initialized to the value corresponding to the frame that has the same ViewIdx value as the refViewIdx in the current accessor.

Переменной curSubBlockIdx присваивается начальное значение 0.The variable curSubBlockIdx is initialized to 0.

Опорное положение (xRef, yRef) может быть определено следующим образом.The reference position (xRef, yRef) can be defined as follows.

Figure 00000010
.
Figure 00000010
.

Переменной ivRefPic присваивается значение, соответствующее кадру, имеющему то же значение ViewIdx, что refViewIdx в текущем элементе доступа. Информация движения в опорном кадре может сохраняться в элементах, представляющих собой блоки пикселов 8x8. Корректирующими коэффициентами xRefFull и yRefFull может быть положение центра целостного элементарного значения опорного блока, указываемого с использованием mvDisp.The ivRefPic variable is set to the value corresponding to the frame that has the same ViewIdx value as the refViewIdx in the current accessor. Motion information in a reference frame may be stored in elements that are blocks of 8x8 pixels. The correction factors xRefFull and yRefFull may be the position of the center of the reference block integral element value, indicated using mvDisp.

Блоком ivRefPb может быть блок предсказания, покрывающий положение (xRef, yRef) в ivRefPic.The ivRefPb block may be a prediction block covering a position (xRef, yRef) in ivRefPic.

Положение (xIvRefPb, yIvRefPb) определяет положение левого верхнего угла блока ivRefPb.Position (xIvRefPb, yIvRefPb) defines the position of the upper left corner of the ivRefPb block.

Кроме случаев, когда ivRefPb был кодирован во внутрикадровом режиме, при изменении Y от X до (1-X) может выполняться следующая операция:Except when ivRefPb has been encoded in intra frame mode, changing Y from X to (1-X) may perform the following operation:

- переменным refPixListLYIvRef, predFlagLYIvRef[x][y], mvLYIvRef[x][y] и refIdxLYIvRef[x][y] присваиваются, соответственно, значения переменных, соответствующих им в межракурсном опорном кадре ivRefPic, т.е. RefPicListLY, PredFlagLY[x][y], MvLY[x][y] и RefIdxLY[x][y].- the variables refPixListLYIvRef, predFlagLYIvRef[x][y], mvLYIvRef[x][y] and refIdxLYIvRef[x][y] are assigned, respectively, the values of the variables corresponding to them in the interview reference frame ivRefPic, i.e. RefPicListLY, PredFlagLY[x][y], MvLY[x][y] and RefIdxLY[x][y].

- если значение predFlagLYIvRef[xIvRefPb][yIvRefPb] равно 1, то при изменении i от 0 до num_ref_idx_lX_active_minus1 (количество опорных кадров в списке опорных кадров) может выполняться следующая операция:- if the value of predFlagLYIvRef[xIvRefPb][yIvRefPb] is 1, then when i changes from 0 to num_ref_idx_lX_active_minus1 (the number of reference frames in the reference frame list), the following operation can be performed:

- если порядковый номер кадра (POC) у refPicListLYIvRef[refIdxLYIvRef[xIvRefPb][yIvRefPb]] такой же, как у RefPicListLX[i], и значение availableFlagLXInterView равно 0, то выполняются следующие операции:- if the frame sequence number (POC) of refPicListLYIvRef[refIdxLYIvRef[xIvRefPb][yIvRefPb]] is the same as RefPicListLX[i] and availableFlagLXInterView is 0, then the following operations are performed:

Figure 00000011
.
Figure 00000011
.

Если значение availableFlagL0InterView или значение availableFlagL1Interview равно 1, то выполняется следующая операция:If the value of availableFlagL0InterView or the value of availableFlagL1Interview is 1, then the following operation is performed:

- при изменении yBlk от 0 до (nPbH/nSbH-1) и при изменении xBlk от 0 до (nPbW/nSbW-1) выполняется следующая операция:- when changing yBlk from 0 to (nPbH/nSbH-1) and when changing xBlk from 0 to (nPbW/nSbW-1), the following operation is performed:

- переменной curAvailableFlag присваивается начальное значение 0;- the variable curAvailableFlag is assigned an initial value of 0;

- при изменении X от 0 до 1 выполняется следующая операция:- when X changes from 0 to 1, the following operation is performed:

-- флагу spPredFlagL1[xBlk][yBlk] присваивается начальное значение 0;-- the spPredFlagL1[xBlk][yBlk] flag is initialized to 0;

- вектору spMvLX движения присваивается начальное значение (0,0);- the motion vector spMvLX is assigned an initial value (0,0);

- ссылочному индексу spRefIdxLX[xBlk][yBlk] присваивается начальное значение -1;- the reference index spRefIdxLX[xBlk][yBlk] is assigned the initial value -1;

- положение (xRef, yRef) опорного блока определяется следующим образом:- the position (xRef, yRef) of the reference block is determined as follows:

xRef=Clip3(0, PicWidthInSamplesL-1);xRef=Clip3(0, PicWidthInSamplesL-1);

xPb+xBlk*nSbW+nSbW/2+((mvDisp[0]+2)>>2));xPb+xBlk*nSbW+nSbW/2+((mvDisp[0]+2)>>2));

yRef=Clip3(0, PicHeightInSamplesL-1);yRef=Clip3(0, PicHeightInSamplesL-1);

yPb+yBlk*nSbH+nSbH/2+((mvDisp[1]+2)>>2)).yPb+yBlk*nSbH+nSbH/2+((mvDisp[1]+2)>>2)).

- переменная ivRefPb указывает на яркостный блок предсказания в положении (xRef, yRef) в межракурсном опорном кадре, указываемом ivRefPic.- the variable ivRefPb points to the luminance prediction block at position (xRef, yRef) in the inter-view reference frame indicated by ivRefPic.

- (xIvRefPb, yIvRefPb) указывает на положение левого верхнего угла опорного блока, указываемого ivRefPb.- (xIvRefPb, yIvRefPb) points to the position of the top left corner of the reference block pointed to by ivRefPb.

- кроме случаев, когда ivRefPb был кодирован во внутрикадровом режиме, при изменении X от 0 до 1 выполняется следующая операция :- except when ivRefPb was encoded in intraframe mode, when X changes from 0 to 1, the following operation is performed:

- если значение X равно 0 или текущим слайсом является слайс B, то при изменении Y от X до (1-X) выполняется следующая операция :- if the value of X is 0 or the current slice is slice B, then when changing Y from X to (1-X), the following operation is performed:

- переменным refPixListLYIvRef, predFlagLYIvRef[x][y], mvLYIvRef[x][y] и refIdxLYIvRef[x][y] присваиваются, соответственно, значения RefPicListLY, PredFlagLY[x][y], MvLY[x][y] и RefIdxLY[x][y] в кадре, указываемом ivRefPic;- the variables refPixListLYIvRef, predFlagLYIvRef[x][y], mvLYIvRef[x][y] and refIdxLYIvRef[x][y] are assigned the values RefPicListLY, PredFlagLY[x][y], MvLY[x][y] and RefIdxLY[x][y] in the frame indicated by ivRefPic;

- если значение predFlagLYIvRef[xIvRefPb][yIvRefPb] равно 1, то при изменении i от 0 до num_ref_idx_lX_active_minus1 (количество опорных кадров в списке опорных кадров) выполняется следующая операция:- if the value of predFlagLYIvRef[xIvRefPb][yIvRefPb] is 1, then when i changes from 0 to num_ref_idx_lX_active_minus1 (the number of reference frames in the reference frame list), the following operation is performed:

- если порядковый номер кадра (POC) у refPicListLYIvRef[refIdxLYIvRef[xIvRefPb][yIvRefPb]] такой же, как у RefPicListLX[i], и значение spPredFlagLX[xBlk][yBlk] равно 0, то выполняются следующие операции:- if the frame sequence number (POC) of refPicListLYIvRef[refIdxLYIvRef[xIvRefPb][yIvRefPb]] is the same as RefPicListLX[i] and the value of spPredFlagLX[xBlk][yBlk] is 0, then the following operations are performed:

spMvLX[xBlk][yBlk]=mvLYIvRef[xIvRefPb][yIvRefPb];spMvLX[xBlk][yBlk]=mvLYIvRef[xIvRefPb][yIvRefPb];

spRefIdxLX[xBlk][yBlk]=i;spRefIdxLX[xBlk][yBlk]=i;

spPredLfagLX[xBlk][yBlk]=1;spPredLfagLX[xBlk][yBlk]=1;

curAvailableFlag=1.curAvailableFlag=1.

- соответственно значению curAvailableFlag выполняется следующая операция:- according to the value of curAvailableFlag, the following operation is performed:

- если curAvailableFlag равен 0, то при X, изменяющемся от 0 до 1, выполняются следующие операции:- if curAvailableFlag is 0, then when X changes from 0 to 1, the following operations are performed:

Figure 00000012
.
Figure 00000012
.

- переменной curSubBlockIdx присваивается значение curSubBlockIdx+1.- the variable curSubBlockIdx is assigned the value curSubBlockIdx+1.

Если значение availableFlagL0InterView и значение availableFlagL1InterView равны 0, то данная операция завершается.If the value of availableFlagL0InterView and the value of availableFlagL1InterView are 0, then the operation ends.

Вариант 1 осуществления описывается еще раз по таблице 2.Embodiment 1 is described again in Table 2.

Как указано в таблице 2, в модуль 2100 межкадрового предсказания вводятся положение левого верхнего угла текущего блока предсказания, ширина и высота текущего блока предсказания, индекс опорного ракурса и вектор невязки. При этом положение левого верхнего угла текущего блока предсказания может быть обозначено как (xPb, yPb). Ширина текущего блока предсказания может быть обозначена как nPbW, а высота текущего блока предсказания как nPbH. Индекс опорного ракурса может быть обозначен как refViewIdx, а вектор невязки как mvDisp.As indicated in Table 2, the position of the upper left corner of the current prediction block, the width and height of the current prediction block, the reference view index, and the residual vector are input to the inter prediction module 2100. In this case, the position of the upper left corner of the current prediction block can be denoted as (xPb, yPb). The width of the current prediction block may be denoted as nPbW and the height of the current prediction block as nPbH. The reference view index can be denoted as refViewIdx and the residual vector as mvDisp.

После завершения операции определения информации движения, относящейся к подэлементу предсказания текущего блока, с использованием подэлемента предсказания опорного блока, модуль 2100 межкадрового предсказания может выдавать флаг, сигнализирующий о возможности межракурсного предсказания, межракурсный вектор движения и ссылочный индекс, указывающий опорный кадр, содержащийся в списке опорных кадров. При этом флаг, сигнализирующий о готовности возможного временного межракурсного вектора движения к использованию, может быть обозначен как availableFlagLXInterView, а указанный возможный временной межракурсный вектор движения может быть обозначен как mvLXInterView. Указанный список опорных кадров может быть обозначен как RefPicListLX, а ссылочный индекс, указывающий опорный кадр, содержащийся в указанном списке опорных кадров, может быть обозначен как refIdxLXInterView. В обозначениях availableFlagLXInterView, mvLXInterView, RefPicListLX и refIdxLXInterView кодом LX может быть код списка 0 опорных кадров (List 0, L0) или код списка 1 опорных кадров (List 1, L1).After completion of the operation of determining motion information related to the prediction sub-element of the current block using the reference block prediction sub-element, the inter-frame prediction module 2100 may output a flag signaling an inter-view prediction capability, an inter-view motion vector, and a reference index indicating a reference frame contained in the reference frame list. frames. In this case, the flag signaling the readiness of the possible temporal interview motion vector for use may be designated as availableFlagLXInterView, and the specified possible temporal interview motion vector may be designated as mvLXInterView. The specified reference frame list may be referred to as RefPicListLX, and the reference index indicating the reference picture contained in the specified reference frame list may be referred to as refIdxLXInterView. In the notation availableFlagLXInterView, mvLXInterView, RefPicListLX, and refIdxLXInterView, the LX code can be the key frame list 0 code (List 0, L0) or the key frame list 1 code (List 1, L1).

Далее описывается способ определения информации движения, относящейся к подэлементу предсказания текущего блока, путем получения вышеописанных выходных данных по входным данным.Next, a method for determining motion information related to a prediction sub-element of the current block is described by obtaining the above-described output from the input.

Вначале, перед определением информации движения, относящейся к подэлементу предсказания текущего блока, с использованием подэлемента предсказания опорного блока, модуль 2100 межкадрового предсказания выполняет присваивание начальных значений. При этом availableFlagLXInterView может быть присвоено значение 0, mvLXInterView значение (0,0), а refIdxLXInterView значение -1. При выполнении присваивания начальных значений модулем 2100 межкадрового предсказания также могут присваиваться начальные значения ширине и высоте подэлемента предсказания. При этом ширина подэлемента предсказания может быть обозначена как nSbW, а высота подэлемента предсказания как nSbH. Пример способа присваивания начальных значений переменным nSbW и nSbH дается формулой 11.First, before determining the motion information related to the prediction sub-item of the current block using the prediction sub-item of the reference block, the inter prediction unit 2100 performs seeding. In this case, availableFlagLXInterView can be set to 0, mvLXInterView to (0,0), and refIdxLXInterView to -1. When seeding is performed by the inter prediction module 2100, the width and height of the prediction sub-element may also be seeded. Here, the prediction sub-element width may be denoted as nSbW and the prediction sub-element height as nSbH. An example of how to assign initial values to the variables nSbW and nSbH is given by formula 11.

[Формула 11][Formula 11]

Figure 00000001
.
Figure 00000001
.

Здесь SubPbSize обозначает размер (включающий высоту и ширину) подэлемента предсказания, указываемого набором параметров изображения (VPS), а nuh_layer_id обозначает индекс, идентифицирующий уровень (к примеру, какой опорный ракурс им является). Min() представляет собой оператор, выдающий меньшую из входных переменных.Here, SubPbSize denotes the size (including height and width) of the prediction sub-element indicated by the Picture Parameter Set (VPS), and nuh_layer_id denotes an index identifying the layer (eg, which reference view it is). Min() is an operator that returns the smallest of the input variables.

Модуль 2100 межкадрового предсказания может присваивать начальные значения не только вышеуказанным переменным, но и информацию, идентифицирующую подэлемент предсказания текущего блока и яркостный блок предсказания в положении (xRef, yRef) в межракурсном опорном кадре, и информацию, указывающую на наличие информации движения, сохраненной в хранилище.The inter-picture prediction unit 2100 can initialize not only the above variables, but also information identifying the prediction sub-element of the current block and the luminance prediction block at position (xRef, yRef) in the inter-view reference frame, and information indicating the presence of motion information stored in the storage .

При этом в качестве указанного межракурсного опорного кадра может быть взят кадр, имеющий индекс ракурса, например, индекс опорного ракурса в текущем элементе доступа. Межракурсный опорный кадр может быть обозначен как ivRefPic, а яркостный блок предсказания в положении (xRef, yRef) в межракурсном опорном кадре может быть обозначен как ivRefPb. Один элемент доступа содержит изображения с различными ракурсами, имеющими одинаковый порядковый номер кадра (POC). Индекс опорного ракурса может быть обозначен как refViewIdx, а указанный индекс ракурса как ViewIdx.In this case, a frame having an index of the angle, for example, the index of the reference angle in the current access element, can be taken as the specified inter-view reference frame. The inter-view reference frame may be referred to as ivRefPic, and the luminance prediction block at position (xRef, yRef) in the inter-view reference frame may be referred to as ivRefPb. One access element contains images from different angles having the same frame sequence number (POC). The index of the reference view can be denoted as refViewIdx and the specified view index as ViewIdx.

Указанным опорным положением может быть положение, указывающее блок предсказания, покрывающий центр опорного блока в соответствии с вариантом 1 осуществления. Для определения информации движения, относящейся к текущему подэлементу предсказания, может выполняться сохранение информации движения, относящейся к опорному ракурсу. Формула 12 представляет пример способа определения опорного положения (xRef, yRef).The indicated reference position may be a position indicating a prediction block covering the center of the reference block according to Embodiment 1. In order to determine the motion information related to the current prediction sub-item, the storage of motion information related to the reference view may be performed. Formula 12 is an example of a method for determining the reference position (xRef, yRef).

[Формула 12][Formula 12]

Figure 00000013
.
Figure 00000013
.

Здесь XRefFull и yRefFull обозначают положение целостного элементарного значения, близкого к центру опорного блока. Иначе говоря, xRefFull и yRefFull соответственно обозначают координату x и координату y элементарного значения, находящегося в целочисленном положении.Here XRefFull and yRefFull denote the position of an integral elementary value close to the center of the reference block. In other words, xRefFull and yRefFull respectively denote the x-coordinate and y-coordinate of the elementary value in integer position.

Элементом ivRefPb может быть подэлемент предсказания или блок предсказания, покрывающий точку (xRef, yRef). Положение (xIvRefPb, yIvRefPb) яркостного элементарного значения может указывать левый верхний угол ivRefPb.The ivRefPb element can be a prediction sub-element or a prediction block covering a point (xRef, yRef). The position (xIvRefPb, yIvRefPb) of the luma element may indicate the upper left corner of ivRefPb.

Кроме случаев, когда ivRefPb был кодирован/декодирован во внутрикадровом режиме, могут применяться следующие операции (1) и (2) при изменении Y от X до (1-X).Except when ivRefPb has been encoded/decoded in intra frame mode, the following operations (1) and (2) can be applied when changing Y from X to (1-X).

Переменной refPicListLYIvRef присваивается значение RefPicListLY в межракурсном опорном изображении ivRefPic, флагу predFlagLYIvRef[x][y] присваивается значение PredFlag[x][y] в межракурсном опорном изображении ivRefPic, а переменной refIdxLYIvRef[x][y] присваивается значение RefIdxLY[x][y] в межракурсном опорном изображении ivRefPic.refPicListLYIvRef is set to RefPicListLY in the ivRefPic inter-view reference picture, predFlagLYIvRef[x][y] is set to PredFlag[x][y] in the ivRefPic inter-view reference picture, and refIdxLYIvRef[x][y] is set to RefIdxLY[x][ y] in the interview reference picture ivRefPic.

Если значение predFlagLYIvRef[xIvRefPb][yIvRefPb] равно 1, то при изменении i от 0 до num_ref_idx_lX_active_minus1 (количество опорных кадров в списке X опорных кадров) выполняется следующая операция. Если POC (порядковый номер кадра) для refPicListLYIvRef[refIdxLYIvRef[xIvRefPb][yIvRefPb]] равен RefPicListLX[i] и availableFlagLXInterView равен 0, то может применяться формула 13.If the value of predFlagLYIvRef[xIvRefPb][yIvRefPb] is 1, then when i changes from 0 to num_ref_idx_lX_active_minus1 (number of reference frames in the X reference frame list), the following operation is performed. If the POC (Frame Ordinal Number) of refPicListLYIvRef[refIdxLYIvRef[xIvRefPb][yIvRefPb]] is RefPicListLX[i] and availableFlagLXInterView is 0, then Equation 13 may apply.

[Формула 13][Formula 13]

Figure 00000014
.
Figure 00000014
.

Если значение vailableFlagL0InterView или значение availableFlagL1InterView равно 1, то модуль 2100 межкадрового предсказания выполняет описанную далее операцию при изменении yBlk от 0 до (nPbH/nSbH-1) и изменении xBlk от 0 до (nPbW/nSbW-1). При этом xBlk обозначает координату x, а yBlk обозначает координату y. Иными словами, когда можно определить информацию движения, доступную в центре опорного блока, модуль 2100 межкадрового предсказания может определять информацию движения по подэлементам предсказания.If the value of vailableFlagL0InterView or the value of availableFlagL1InterView is 1, then the inter prediction module 2100 performs the following operation when yBlk changes from 0 to (nPbH/nSbH-1) and xBlk changes from 0 to (nPbW/nSbW-1). Here, xBlk denotes the x-coordinate and yBlk denotes the y-coordinate. In other words, when the motion information available at the center of the reference block can be determined, the inter prediction module 2100 can determine the motion information from the prediction sub-elements.

Вначале модуль 2100 межкадрового предсказания может присваивать начальное значение информации, служащей для указания на необходимость предсказания информации движения из подэлемента предсказания опорного блока, флаг предсказания подэлемента предсказания, информацию движения, относящуюся к указанному подэлементу предсказания, и ссылочный индекс подэлемента предсказания.First, the inter prediction unit 2100 may assign an initial value of information for indicating the need to predict motion information from the reference block prediction sub-item, a prediction sub-item prediction flag, motion information related to the specified prediction sub-item, and a reference index of the prediction sub-item.

При этом информация, служащая для указания на необходимость предсказания информации движения из подэлемента предсказания опорного блока, может быть обозначена как curAvailableFlag, флаг предсказания подэлемента предсказания как spPredFlagLX1, флаг подэлемента предсказания как spPredFlagLX[xBlk][yBlk], вектор движения подэлемента предсказания как spMvLX, ссылочный индекс подэлемента предсказания как spRefIdxLX, а ссылочный индекс определенного подэлемента предсказания как spRefIdxLX[xBlk][yBlk].Meanwhile, information for indicating the need to predict motion information from the reference block prediction sub-element may be designated as curAvailableFlag, the prediction sub-element prediction flag as spPredFlagLX1, the prediction sub-element flag as spPredFlagLX[xBlk][yBlk], the motion vector of the prediction sub-element as spMvLX, the prediction sub-element reference index as spRefIdxLX, and the specific prediction sub-element reference index as spRefIdxLX[xBlk][yBlk].

Положение (xRef, yRef) опорного блока переустанавливается по подэлементам предсказания, как в нижеприведенной формуле 14.The position (xRef, yRef) of the reference block is reset across prediction sub-elements as in Formula 14 below.

[Формула 14][Formula 14]

Figure 00000003
Figure 00000003

PicWidthInSamplesL обозначает ширину текущего изображения, а PicHeightInSamplesL обозначает высоту текущего изображения. Функция Clip3() была описана выше.PicWidthInSamplesL denotes the width of the current image, and PicHeightInSamplesL denotes the height of the current image. The Clip3() function was described above.

Затем, в случае кодирования межракурсного опорного блока во внутрикадровом режиме, выполняется следующая операция при изменении X от 0 до 1.Then, in the case of encoding an inter-view reference block in intra-frame mode, the following operation is performed when X changes from 0 to 1.

Если X равен 0 или текущим слайсом является слайс B, то каждой переменной присваивается новое значение в соответствии с Y (значение Y изменяется от X до (1-X)) следующим образом. Переменной refPicListLYIvRef может быть присвоено значение из списка опорных кадров RefPicListLY для кадра, указываемого переменной ivRefPic (т.е. для межракурсного опорного кадра). Переменной predFlagLYIvRef[x][y] присваивается значение PredFlagLY[x][y]. Через predFlagLY[x][y] обозначен список опорных кадров, который применяется в точке (x,y) в изображении, указываемом ivRefPic. Переменной mvLYIvRef[x][y] присваивается значение MvLY[x][y]. Через MvLY[x][y] обозначен вектор движения в точке (x,y) в изображении, указываемом ivRefPic. Переменной refIdxLYIvRef[x][y] присваивается значение RefIdxLY[x][y]. Через RefIdxLY[x][y] обозначен опорный пиксел в точке (x,y) в изображении, указываемом ivRefPic.If X is 0 or the current slice is slice B, then each variable is assigned a new value according to Y (the value of Y changes from X to (1-X)) as follows. The refPicListLYIvRef variable may be set to a value from the RefPicListLY reference frame list for the frame indicated by the ivRefPic variable (ie, for an inter-view reference frame). The variable predFlagLYIvRef[x][y] is set to PredFlagLY[x][y]. predFlagLY[x][y] denotes the list of reference frames that is applied at the point (x,y) in the picture indicated by ivRefPic. The variable mvLYIvRef[x][y] is set to MvLY[x][y]. MvLY[x][y] denotes the motion vector at the point (x,y) in the image indicated by ivRefPic. The variable refIdxLYIvRef[x][y] is set to RefIdxLY[x][y]. RefIdxLY[x][y] denotes the reference pixel at (x,y) in the image indicated by ivRefPic.

В случае, когда значение predFlagLYIvRef[xIvRefPb][yIvRefPb] равно 1, может применяться нижеприведенная формула 15 при изменении i от 0 до num_ref_idx_lX_active_minus1 (количество опорных кадров в списке опорных кадров), если POC для refPicListLYIvRef[refIdxLYIvRef[xIvRefPb][yIvRefPb]] равен RefPicListLX[i] и spPredFlagLX[xBlk][yBlk] равен 0.In the case where the value of predFlagLYIvRef[xIvRefPb][yIvRefPb] is equal to 1, the following formula 15 can be applied when changing i from 0 to num_ref_idx_lX_active_minus1 (number of reference frames in the reference frame list) if the POC of refPicListLYIvRef[refIdxLYIvRef[xIvRefPb][yIvRefPb]] is RefPicListLX[i] and spPredFlagLX[xBlk][yBlk] is 0.

[Формула 15][Formula 15]

Figure 00000005
.
Figure 00000005
.

Но если, даже после выполнения вышеописанной операции, значение curAvailableFlag осталось равным исходно установленному значению 0 (т.е. всегда, за исключением случаев, когда spRefIdxLX=i (к примеру, spRefIdxLx=-1) и spPredFlagLX=1 (к примеру, spPredFlagLX=-1)), можно сказать, что информация движения не может быть определена по подэлементам предсказания. Соответственно, модуль 2100 межкадрового предсказания может использовать формулу 16 при изменении X от 0 до 1.But if, even after performing the above operation, the value of curAvailableFlag remains equal to the initially set value of 0 (i.e., always, except when spRefIdxLX=i (for example, spRefIdxLx=-1) and spPredFlagLX=1 (for example, spPredFlagLX =-1)), it can be said that the motion information cannot be determined from the prediction subitems. Accordingly, the inter prediction module 2100 may use Formula 16 as X changes from 0 to 1.

Иными словами, если информацию движения из подэлемента предсказания опорного блока определить невозможно, то модуль 2100 межкадрового предсказания может определять информацию движения, относящуюся к подэлементу предсказания текущего блока, из информации движения, относящейся к центру опорного блока.In other words, if motion information from the prediction sub-element of the reference block cannot be determined, then the inter-picture prediction unit 2100 may determine motion information related to the prediction sub-element of the current block from motion information related to the center of the reference block.

[Формула 16][Formula 16]

Figure 00000015
.
Figure 00000015
.

Наконец, после того, как все вышеописанные операции выполнены, переменной curSubBlockIdx присваивается значение curSubBlockIdx + 1, и если значения availableFlagL0InterView и availableFlagL1InterView равны 0, то операция определения информации движения в соответствии с вариантом осуществления 1 завершается.Finally, after all the above operations are performed, curSubBlockIdx is set to curSubBlockIdx + 1, and if availableFlagL0InterView and availableFlagL1InterView are 0, then the motion information determination operation according to Embodiment 1 ends.

Вариант 2 осуществленияEmbodiment 2

Фиг. 23 представляет собой блок-схему, схематично иллюстрирующую способ определения информации движения, относящейся к подэлементу предсказания текущего блока, в соответствии с еще одним вариантом осуществления настоящего изобретения. В примере, показанном на фиг. 23, информация движения, относящейся к подэлементу предсказания текущего блока, может быть определена с использованием подэлемента предсказания, находящегося в центральном положении опорного блока.Fig. 23 is a flowchart schematically illustrating a method for determining motion information related to a prediction sub-element of a current block, according to another embodiment of the present invention. In the example shown in FIG. 23, motion information related to the prediction sub-element of the current block can be determined using the prediction sub-element located at the center position of the reference block.

В варианте 2 осуществления информация движения, относящаяся к подэлементу предсказания текущего блока, может быть определена на основании информации движения, относящейся к подэлементу предсказания, покрывающему центр опорного блока.In Embodiment 2, motion information related to the prediction sub-element of the current block may be determined based on motion information related to the prediction sub-element covering the center of the reference block.

Пример, показанный на фиг. 23, может выполняться в кодере и декодере или в предсказывающем блоке кодера и декодера или в модуле 2100 межкадрового предсказания, показанном на фиг. 21. При этом, для упрощения описания, модуль 2100 межкадрового предсказания выполняет каждый шаг так, как показано на фиг. 23.The example shown in FIG. 23 may be performed in the encoder and decoder or in the encoder and decoder predictor or in the inter prediction module 2100 shown in FIG. 21. Meanwhile, in order to simplify the description, the inter prediction unit 2100 performs each step as shown in FIG. 23.

Как показано на фиг. 23, модуль 2100 межкадрового предсказания может определять положение подэлемента предсказания, находящегося в центре опорного блока (центрального подэлемента предсказания) (S2300). Под центральным подэлементом предсказания, находящимся в опорном блоке, понимается подэлемент предсказания, находящийся в центре опорного блока; центр опорного блока рассмотрен выше. Формула 17 представляет пример определения положения центрального подэлемента предсказания опорного блока.As shown in FIG. 23, the inter prediction unit 2100 may determine the position of the prediction sub-element located at the center of the reference block (center prediction sub-element) (S2300). The center prediction sub-element located in the reference block refers to the prediction sub-element located in the center of the reference block; the center of the support block discussed above. Formula 17 is an example of determining the position of the reference block prediction center subelement.

[Формула 17][Formula 17]

Значение координаты X центра подэлемента предсказания =

Figure 00000016
.X coordinate value of prediction subelement center =
Figure 00000016
.

Значение координаты Y центра подэлемента предсказания =

Figure 00000017
.Prediction subelement center Y coordinate value =
Figure 00000017
.

Здесь xPb и yPb указывают положение левого верхнего угла текущего элемента предсказания, nPbW ширину текущего элемента предсказания, а nPbH высоту текущего элемента предсказания.Here, xPb and yPb indicate the position of the upper left corner of the current prediction element, nPbW the width of the current prediction element, and nPbH the height of the current prediction element.

Модуль 2100 межкадрового предсказания проверяет, содержит ли центральный подэлемент предсказания опорного блока информацию движения (S2310); положение центрального подэлемента предсказания опорного блока рассмотрено выше. Если в месте, где находится центральный подэлемент предсказания опорного блока, информация движения отсутствует, то модуль 2100 межкадрового предсказания может завершать данную операцию определения информации движения.The inter prediction unit 2100 checks whether the center prediction sub-element of the reference block contains motion information (S2310); the position of the center prediction subelement of the reference block is discussed above. If there is no motion information at the location where the reference block prediction center subelement is located, then the inter prediction unit 2100 may terminate this motion information determination operation.

Если же в центральном подэлементе предсказания опорного блока информация движения имеется, то модуль 2100 межкадрового предсказания может сохранять эту информацию движения, имеющуюся в центре (S2320). Конкретная операция сохранения информации движения модулем 2100 межкадрового предсказания была описана выше.On the other hand, if there is motion information in the center prediction sub-element of the reference block, the inter prediction unit 2100 may store this motion information available in the center (S2320). The specific operation of storing motion information by the inter prediction unit 2100 has been described above.

Модуль 2100 межкадрового предсказания определяет информацию движения, относящуюся к текущему подэлементу предсказания. Модуль 2100 межкадрового предсказания может проверять, содержит ли подэлемент предсказания опорного блока, соответствующий текущему подэлементу предсказания, информацию движения (S2340).The inter prediction module 2100 determines motion information related to the current prediction sub-element. The inter prediction unit 2100 may check whether the reference block prediction sub-element corresponding to the current prediction sub-element contains motion information (S2340).

Если указанный подэлемент предсказания опорного блока содержит информацию движения, то модуль 2100 межкадрового предсказания может вводить в текущий подэлемент предсказания информацию движения, содержащуюся в указанном подэлементе предсказания опорного блока (S2350). Если же подэлемент предсказания опорного блока не содержит информацию движения, то модуль 2100 межкадрового предсказания может вводить в текущий подэлемент предсказания (S2360) информацию движения, сохраненную в шаге S2320.If the specified reference block prediction sub-item contains motion information, the inter-picture prediction unit 2100 may input to the current prediction sub-item the motion information contained in the specified reference block prediction sub-item (S2350). On the other hand, if the reference block prediction sub-item does not contain motion information, the inter prediction unit 2100 may input the motion information stored in step S2320 into the current prediction sub-item (S2360).

Модуль 2100 межкадрового предсказания может проверять, не является ли подэлемент предсказания опорного блока, для которого выполняется определение информации движения, последним подэлементом предсказания (S2370). Если указанный подэлемент предсказания опорного блока является последним подэлементом предсказания, то модуль 2100 межкадрового предсказания может завершать данную операцию определения информации движения текущего блока. Если же указанный подэлемент предсказания опорного блока не является последним подэлементом предсказания, то модуль 2100 межкадрового предсказания переходит к обработке следующего подэлемента предсказания текущего блока с целью продолжения определения информации движения (S2330).The inter prediction unit 2100 may check whether the prediction sub-element of the reference block for which motion information determination is performed is the last prediction sub-element (S2370). If the specified reference block prediction sub-element is the last prediction sub-element, then the inter prediction unit 2100 may complete this motion information determination operation of the current block. On the other hand, if the specified reference block prediction sub-element is not the last prediction sub-element, the inter prediction unit 2100 proceeds to processing the next prediction sub-element of the current block to continue determining motion information (S2330).

Вышеописанная операция определения информации движения в соответствии с вариантом 1 осуществления 2 может применяться к декодированию трехмерных изображений, как это показано в таблице 3.The above-described motion information determination operation according to Embodiment 1 of Embodiment 2 can be applied to decoding 3D images as shown in Table 3.

Таблица 3Table 3

В данной операции используются следующие входные данные:This operation uses the following input data:

- положение (xPb, yPb) левого верхнего угла текущего элемента предсказания; - position (xPb, yPb) of the upper left corner of the current prediction element;

- ширина (nPbW) и высота (nPbH) текущего элемента предсказания; - width (nPbW) and height (nPbH) of the current prediction element;

- индекс refViewIdx опорного ракурса;- refViewIdx index of the reference view;

- вектор mvDisp невязки.- mvDisp residual vector.

В данной операции получаются следующие выходные данные:This operation produces the following output:

- флаг availableFlagLXInterView для указания доступности возможного временного межракурсного вектора движения, где LX может быть списком L0 или L1 опорных кадров;- flag availableFlagLXInterView to indicate the availability of a possible temporal inter-view motion vector, where LX may be a list of L0 or L1 reference frames;

- возможный временной межракурсный вектор mvLXInterView движения, где LX может быть списком L0 или L1 опорных кадров;- a possible temporal interview motion vector mvLXInterView, where LX can be a list of L0 or L1 reference frames;

- ссылочный индекс refIdxLXInterView, указывающий опорный кадр, содержащийся в списке RefPicListLX опорных кадров, где LX может быть списком L0 или L1 опорных кадров.is a refIdxLXInterView reference index indicating a reference frame contained in the RefPicListLX reference frame list, where LX may be an L0 or L1 list of reference frames.

LX может быть списком L0 или L1 опорных кадров. К списку LX применяется следующая операция.LX may be a list of L0 or L1 reference frames. The following operation is applied to the LX list.

- флагу availableFlagLXInterView присваивается начальное значение 0;- the availableFlagLXInterView flag is initialized to 0;

- вектору mvLXInterView движения присваивается начальное значение (0, 0);- the mvLXInterView motion vector is assigned an initial value (0, 0);

- ссылочному индексу refIdxLXInterView присваивается начальное значение -1.- reference index refIdxLXInterView is initialized to -1.

Переменным nSbW и nSbH присваиваются начальные значения следующим образом:The variables nSbW and nSbH are initialized as follows:

Figure 00000018
.
Figure 00000018
.

где SubPbSize представляет собой размер, включающий высоту и ширину подэлемента предсказания, указываемого набором параметров (VPS).where SubPbSize is a size including the height and width of the prediction sub-element indicated by the parameter set (VPS).

Переменной ivRefPic в качестве начального значения присваивается значение, соответствующее кадру, имеющему то же значение ViewIdx, что refViewIdx в текущем элементе доступа. The ivRefPic variable is initialized to the value corresponding to the frame that has the same ViewIdx value as the refViewIdx in the current accessor.

Переменной curSubBlockIdx присваивается начальное значение 0.The variable curSubBlockIdx is initialized to 0.

Опорное положение (xRef, yRef) может быть определено следующим образом:The reference position (xRef, yRef) can be defined as follows:

Figure 00000019
.
Figure 00000019
.

Переменной ivRefPic присваивается значение, соответствующее кадру, имеющему то же значение ViewIdx, что refViewIdx в текущем элементе доступа.The ivRefPic variable is set to the value corresponding to the frame that has the same ViewIdx value as the refViewIdx in the current accessor.

Переменной ivRefPb присваивается значение, соответствующее блоку предсказания, покрывающему положение (xRef, yRef) в ivRefPic.The variable ivRefPb is set to a value corresponding to the prediction block covering the position (xRef, yRef) in ivRefPic.

Переменной (xIvRefPb, yIvRefPb) присваивается значение положения левого верхнего угла опорного блока, указываемого ivRefPb.The variable (xIvRefPb, yIvRefPb) is set to the position of the upper left corner of the reference block specified by ivRefPb.

Кроме случаев, когда ivRefPb был кодирован во внутрикадровом режиме, при изменении X от 0 до 1 может применяться следующая операция:Except when ivRefPb has been encoded in intra frame mode, changing X from 0 to 1 may apply the following operation:

- если X равен 0 или текущим слайсом является слайс B, то при изменении Y от X до (1-X) выполняется следующая операция:- if X is 0 or the current slice is slice B, then when Y changes from X to (1-X), the following operation is performed:

- переменным refPixListLYIvRef, predFlagLYIvRef[x][y], mvLYIvRef[x][y] и refIdxLYIvRef[x][y] присваиваются, соответственно, значения переменных, соответствующих им в межракурсном опорном кадре ivRefPic, т.е. RefPicListLY, PredFlagLY[x][y], MvLY[x][y] и RefIdxLY[x][y];- the variables refPixListLYIvRef, predFlagLYIvRef[x][y], mvLYIvRef[x][y] and refIdxLYIvRef[x][y] are assigned, respectively, the values of the variables corresponding to them in the interview reference frame ivRefPic, i.e. RefPicListLY, PredFlagLY[x][y], MvLY[x][y] and RefIdxLY[x][y];

- если значение predFlagLYIvRef[xIvRefPb][yIvRefPb] равно 1, то при изменении i от 0 до num_ref_idx_lX_active_minus1 (количество опорных кадров в списке опорных кадров) может выполняться следующая операция:- if the value of predFlagLYIvRef[xIvRefPb][yIvRefPb] is 1, then when i changes from 0 to num_ref_idx_lX_active_minus1 (the number of reference frames in the reference frame list), the following operation can be performed:

- если порядковый номер кадра (POC) у refPicListLYIvRef[refIdxLYIvRef[xIvRefPb][yIvRefPb]] такой же, как у RefPicListLX[i], и значение centerPredFlag равно 0, то выполняются следующие операции:- if the frame sequence number (POC) of refPicListLYIvRef[refIdxLYIvRef[xIvRefPb][yIvRefPb]] is the same as RefPicListLX[i] and the value of centerPredFlag is 0, then the following operations are performed:

Figure 00000020
.
Figure 00000020
.

Если значение centerAvailableFlag равно 1, то выполняется следующая операция:If the value of centerAvailableFlag is 1, then the following operation is performed:

- при изменении yBlk от 0 до (nPbH/nSbH-1) и при изменении xBlk от 0 до (nPbW/nSbW-1) выполняется следующая операция:- when changing yBlk from 0 to (nPbH/nSbH-1) and when changing xBlk from 0 to (nPbW/nSbW-1), the following operation is performed:

- переменной curAvailableFlag присваивается начальное значение 0;- the variable curAvailableFlag is assigned an initial value of 0;

- при изменении X от 0 до 1 выполняется следующая операция:- when X changes from 0 to 1, the following operation is performed:

- флагу spPredFlagL1[xBlk][yBlk] присваивается начальное значение 0;- the spPredFlagL1[xBlk][yBlk] flag is initialized to 0;

- вектору spMvLX движения присваивается начальное значение (0,0);- the motion vector spMvLX is assigned an initial value (0,0);

- ссылочному индексу spRefIdxLX[xBlk][yBlk] присваивается начальное значение -1;- the reference index spRefIdxLX[xBlk][yBlk] is assigned the initial value -1;

- положение (xRef, yRef) опорного блока определяется следующим образом:- the position (xRef, yRef) of the reference block is determined as follows:

xRef=Clip3(0, PicWidthInSamplesL-1), xPb+xBlk*nSbW+nSbW/2+((mvDisp[0]+2)>>2));xRef=Clip3(0, PicWidthInSamplesL-1), xPb+xBlk*nSbW+nSbW/2+((mvDisp[0]+2)>>2));

yRef=Clip3(0, PicHeightInSamplesL-1), yPb+yBlk*nSbH+nSbH/2+((mvDisp[1]+2)>>2));yRef=Clip3(0, PicHeightInSamplesL-1), yPb+yBlk*nSbH+nSbH/2+((mvDisp[1]+2)>>2));

- переменная ivRefPb указывает на яркостный блок предсказания в положении (xRef, yRef) в межракурсном опорном кадре, указываемом ivRefPic;- the ivRefPb variable points to the luminance prediction block at position (xRef, yRef) in the inter-view reference frame indicated by ivRefPic;

- (xIvRefPb, yIvRefPb) указывает на положение левого верхнего угла опорного блока, указываемого ivRefPb;- (xIvRefPb, yIvRefPb) points to the position of the upper left corner of the reference block indicated by ivRefPb;

- кроме случаев, когда ivRefPb был кодирован во внутрикадровом режиме, при изменении X от 0 до 1 выполняется следующая операция :- except when ivRefPb was encoded in intraframe mode, when X changes from 0 to 1, the following operation is performed:

- если значение X равно 0 или текущим слайсом является слайс B, то при изменении Y от X до (1-X) выполняется следующая операция :- if the value of X is 0 or the current slice is slice B, then when changing Y from X to (1-X), the following operation is performed:

- переменным refPixListLYIvRef, predFlagLYIvRef[x][y], mvLYIvRef[x][y] и refIdxLYIvRef[x][y] присваиваются, соответственно, значения RefPicListLY, PredFlagLY[x][y], MvLY[x][y] и RefIdxLY[x][y] в кадре, указываемом ivRefPic.- the variables refPixListLYIvRef, predFlagLYIvRef[x][y], mvLYIvRef[x][y] and refIdxLYIvRef[x][y] are assigned the values RefPicListLY, PredFlagLY[x][y], MvLY[x][y] and RefIdxLY[x][y] in the frame indicated by ivRefPic.

- если значение predFlagLYIvRef[xIvRefPb][yIvRefPb] равно 1, то при изменении i от 0 до num_ref_idx_lX_active_minus1 (количество опорных кадров в списке опорных кадров) выполняется следующая операция:- if the value of predFlagLYIvRef[xIvRefPb][yIvRefPb] is 1, then when i changes from 0 to num_ref_idx_lX_active_minus1 (the number of reference frames in the reference frame list), the following operation is performed:

- если порядковый номер кадра (POC) у refPicListLYIvRef[refIdxLYIvRef[xIvRefPb][yIvRefPb]] такой же, как у RefPicListLX[i], и значение spPredFlagLX[xBlk][yBlk] равно 0, то выполняются следующие операции:- if the frame sequence number (POC) of refPicListLYIvRef[refIdxLYIvRef[xIvRefPb][yIvRefPb]] is the same as RefPicListLX[i] and the value of spPredFlagLX[xBlk][yBlk] is 0, then the following operations are performed:

Figure 00000021
.
Figure 00000021
.

- соответственно значению curAvailableFlag выполняется следующая операция:- according to the value of curAvailableFlag, the following operation is performed:

- если curAvailableFlag равен 0, то при X, изменяющемся от 0 до 1, выполняются следующие операции:- if curAvailableFlag is 0, then when X changes from 0 to 1, the following operations are performed:

Figure 00000022
.
Figure 00000022
.

- переменной curSubBlockIdx присваивается значение curSubBlockIdx+1.- the variable curSubBlockIdx is assigned the value curSubBlockIdx+1.

В противном случае, т.е. если значение centerAvailableFlag равно 0, данная операция завершается.Otherwise, i.e. if the value of centerAvailableFlag is 0, the operation ends.

Вариант 2 осуществления описывается еще раз по таблице 3.Embodiment 2 is described again in Table 3.

Переменные в таблице 3 те же, что и в таблице 2.The variables in table 3 are the same as those in table 2.

Модуль 2100 межкадрового предсказания перед определением информации движения, относящейся к текущему подэлементу предсказания, с использованием подэлемента предсказания опорного блока, выполняет присваивание начальных значений. Это присваивание начальных значений выполняется так же, как описано выше при рассмотрении таблицы 2.The inter prediction unit 2100, before determining the motion information related to the current prediction sub-item using the reference block prediction sub-item, performs initialization. This initialization is performed in the same way as described above in relation to Table 2.

Модуль межкадрового предсказания может указывать положение центрального подэлемента предсказания опорного блока. Положение блока, на который осуществляется ссылка, может определяться на основании опорного положения (xRef, yRef), определяемого в соответствии с формулой 18.The inter-picture prediction module may indicate the position of the center prediction sub-element of the reference block. The position of the referenced block may be determined based on the reference position (xRef, yRef) determined in accordance with Formula 18.

[Формула 18][Formula 18]

Figure 00000023
Figure 00000023

ivRefPic представляет собой кадр с тем же ViewIdx, что и refViewIdx в текущем элементе доступа, а ivRefPb представляет собой блок предсказания или подэлемент предсказания, покрывающий определенную по формуле 19 точку (xRef, yRef) в ivRefPic.ivRefPic is a frame with the same ViewIdx as refViewIdx in the current access element, and ivRefPb is a prediction block or prediction sub-element covering the point (xRef, yRef) defined by formula 19 in ivRefPic.

Точка (xIvRefPb, yIvRefPb) задает положение левого верхнего угла блока ivRefPb.The point (xIvRefPb, yIvRefPb) specifies the position of the upper left corner of the ivRefPb block.

Если ivRefPb не был кодирован/декодирован во внутрикадровом режиме и значение X равно 0 или текущим слайсом является слайс B, то при изменении Y от X до (1-X) выполняется следующая операция.If ivRefPb has not been intra-coded/decoded and X is 0 or the current slice is slice B, then changing Y from X to (1-X) performs the following operation.

Как указано выше при рассмотрении таблицы 2, переменной refPicListLYIvRef присваивается значение RefPicListLY, predFlagLYIvRef[x][y] значение PredFlag[x][y], а refIdxLYIvRef[x][y] значение RefIdxLY[x][y].As noted in Table 2 above, refPicListLYIvRef is set to RefPicListLY, predFlagLYIvRef[x][y] is set to PredFlag[x][y], and refIdxLYIvRef[x][y] is set to RefIdxLY[x][y].

Если значение predFlagLYIvRef[xIvRefPb][yIvRefPb] равно 1, то при изменении i от 0 до num_ref_idx_lX_active_minus1 (количество опорных кадров в списке X опорных кадров) применяется формула 19 в случае, когда POC (порядковый номер изображения) для refPicListLYIvRef[refIdxLYIvRef[xIvRefPb][yIvRefPb]] равен RefPicListLX[i] и значение availableFlagLXInterView равно 0. If the value of predFlagLYIvRef[xIvRefPb][yIvRefPb] is 1, then when i changes from 0 to num_ref_idx_lX_active_minus1 (the number of reference frames in the X reference frame list), formula 19 is applied in the case when the POC (picture sequence number) for refPicListLYIvRef[refIdxLYIvRef[xIvRefPb] [yIvRefPb]] is RefPicListLX[i] and availableFlagLXInterView is 0.

[Формула 19][Formula 19]

Figure 00000024
.
Figure 00000024
.

В формуле 1 флаг centerAvailableFlag указывает на возможность использования центрального подэлемента предсказания опорного блока, а под centerMvLX понимается вектор движения для центрального подэлемента предсказания опорного блока. Далее, centerRefIdxLX обозначает ссылочный индекс для центрального подэлемента предсказания опорного блока, а centerPredFlagLX обозначает список опорных кадров центрального подэлемента предсказания. При этом centerAvailableFlag, centerMvLX, centerRefIdxLX и/или centerPredFlagLX представляют собой информацию движения, относящуюся к центральному подэлементу предсказания. Иными словами, модуль 2100 межкадрового предсказания может сохранять в хранилище информацию движения, относящуюся к центральному подэлементу предсказания опорного блока, определенную по формуле 19.In formula 1, the flag centerAvailableFlag indicates that the reference block prediction center sub-element can be used, and centerMvLX refers to the motion vector for the reference block prediction center sub-element. Further, centerRefIdxLX denotes a reference index for the prediction center sub-item of the reference block, and centerPredFlagLX denotes the list of reference frames of the prediction center sub-item. Wherein, centerAvailableFlag, centerMvLX, centerRefIdxLX and/or centerPredFlagLX are motion information related to the center prediction subitem. In other words, the inter prediction module 2100 may store motion information related to the reference block prediction center subelement determined by Formula 19 in storage.

После присваивания указанным переменным значений в соответствии с вышеприведенным описанием, если значение centerAvailableFlag равно 1, то модуль 2100 межкадрового предсказания выполняет описанную далее операцию при изменении yBlk от 0 до (nPbH/nSbH-1) и изменении xBlk от 0 до (nPbW/nSbW-1). Здесь xBlk обозначает координату x блока, а yBlk обозначает координату y блока. Иными словами, когда можно определить информацию движения, доступную из подблока, находящегося в центре опорного блока, модуль 2100 межкадрового предсказания может определять информацию движения, относящуюся к текущему блоку, по подэлементам предсказания.After assigning values to the specified variables in accordance with the above description, if the value of centerAvailableFlag is equal to 1, then the inter frame prediction module 2100 performs the following operation when changing yBlk from 0 to (nPbH/nSbH-1) and changing xBlk from 0 to (nPbW/nSbW- one). Here xBlk denotes the x-coordinate of the block and yBlk denotes the y-coordinate of the block. In other words, when it is possible to determine the motion information available from the subblock located in the center of the reference block, the inter prediction module 2100 can determine the motion information related to the current block from the prediction subelements.

Вначале модуль 2100 межкадрового предсказания присваивает начальное значение информации, служащей для указания на необходимость предсказания информации движения из подэлемента предсказания опорного блока, флаг предсказания подэлемента предсказания, информацию движения, относящуюся к указанному подэлементу предсказания, и ссылочный индекс подэлемента предсказания. Это присваивание начальных значений выполняется так же, как описано выше при рассмотрении таблицы 2.First, the inter prediction unit 2100 assigns an initial value of information for indicating the need to predict motion information from the reference block prediction sub-item, a prediction sub-item prediction flag, motion information related to the specified prediction sub-item, and a reference index of the prediction sub-item. This initialization is performed in the same way as described above in relation to Table 2.

Смена положения (xRef, yRef) опорного блока выполняется, как видно из формулы 20, для каждого подэлемента предсказания.Repositioning (xRef, yRef) of the reference block is performed, as can be seen from Formula 20, for each prediction sub-element.

[Формула 20][Formula 20]

Figure 00000003
Figure 00000003

Здесь xRef обозначает координату x положения опорного блока, а yRef обозначает координату y положения опорного блока. PicWidthInSamplesL обозначает ширину текущего изображения, а PicHeightInSamplesL обозначает высоту текущего изображения. Функция Clip3() была описана выше.Here, xRef denotes the x-coordinate of the position of the reference block, and yRef denotes the y-coordinate of the position of the reference block. PicWidthInSamplesL denotes the width of the current image, and PicHeightInSamplesL denotes the height of the current image. The Clip3() function was described above.

Если межракурсный опорный блок закодирован во внутрикадровом режиме, то модуль 2100 межкадрового предсказания выполняет следующую операцию при изменении X от 0 до 1.If the inter-view reference block is encoded in intra-frame mode, then the inter-frame prediction module 2100 performs the following operation when X changes from 0 to 1.

Если значение X равно 0 или текущим слайсом является слайс B, то каждой переменной присваивается новое значение в соответствии с Y (значение Y изменяется от X до (1-X)) следующим образом. Это присваивание начальных значений выполняется так же, как описано выше при рассмотрении таблицы 2.If the value of X is 0 or the current slice is slice B, then each variable is assigned a new value according to Y (the value of Y changes from X to (1-X)) as follows. This initialization is performed in the same way as described above in relation to Table 2.

В случае, когда значение predFlagLYIvRef[xIvRefPb][yIvRefPb] равно 1, может применяться нижеприведенная формула 21 при изменении i от 0 до num_ref_idx_lX_active_minus1 (количество опорных кадров в списке опорных кадров), если POC для refPicListLYIvRef[refIdxLYIvRef[xIvRefPb][yIvRefPb]] равен RefPicListLX[i] и spPredFlagLX[xBlk][yBlk] равен 0.In the case where the value of predFlagLYIvRef[xIvRefPb][yIvRefPb] is equal to 1, the following formula 21 can be applied when changing i from 0 to num_ref_idx_lX_active_minus1 (number of reference frames in the reference frame list), if the POC of refPicListLYIvRef[refIdxLYIvRef[xIvRefPb][yIvRefPb]] is RefPicListLX[i] and spPredFlagLX[xBlk][yBlk] is 0.

[Формула 21][Formula 21]

Figure 00000005
.
Figure 00000005
.

Но если, даже после выполнения вышеописанной операции, значение curAvailableFlag осталось равным исходно установленному значению 0 (т.е. всегда, за исключением случаев, когда spRefIdxLX=i (к примеру, spRefIdxLx=-1) и spPredFlagLX=1 (к примеру, spPredFlagLX=-1)), можно сказать, что информация движения не может быть определена по подэлементам предсказания. Соответственно, модуль 2100 межкадрового предсказания может использовать формулу 22 при изменении X от 0 до 1.But if, even after performing the above operation, the value of curAvailableFlag remains equal to the initially set value of 0 (i.e., always, except when spRefIdxLX=i (for example, spRefIdxLx=-1) and spPredFlagLX=1 (for example, spPredFlagLX =-1)), it can be said that the motion information cannot be determined from the prediction subitems. Accordingly, the inter prediction module 2100 may use Formula 22 as X changes from 0 to 1.

Иными словами, если информацию движения из подэлемента предсказания опорного блока определить невозможно, то модуль 2100 межкадрового предсказания может определять информацию движения, относящуюся к подэлементу предсказания текущего блока, из информации движения, относящейся к центральному подэлементу.In other words, if motion information from the prediction sub-element of the reference block cannot be determined, then the inter-picture prediction unit 2100 may determine motion information related to the prediction sub-element of the current block from motion information related to the center sub-element.

[Формула 22][Formula 22]

Figure 00000025
.
Figure 00000025
.

Наконец, после того, как все вышеописанные операции выполнены, переменной curSubBlockIdx присваивается значение curSubBlockIdx + 1, и если значения availableFlagL0InterView и availableFlagL1InterView равны 0, то операция определения информации движения в соответствии с вариантом 2 осуществления завершается.Finally, after all the above operations are performed, curSubBlockIdx is set to curSubBlockIdx + 1, and if availableFlagL0InterView and availableFlagL1InterView are 0, then the motion information determination operation according to Embodiment 2 ends.

Фиг. 24 представляет собой иллюстрацию примера операции определения информации движения, относящейся к подэлементу предсказания текущего блока, с использованием информации движения из некоторого положения.Fig. 24 is an illustration of an example of an operation of determining motion information related to a prediction sub-element of the current block using motion information from a position.

На фиг. 24 блоки верхнего ряда представляют собой подэлементы предсказания опорного блока, а блоки нижнего ряда представляют собой подэлементы предсказания текущего блока. X обозначает некоторое положение, и информация движения из положения X сохранена в хранилище. Здесь под информацией движения в некотором положении на фиг. 24 может пониматься как информация движения в центре опорного блока, как в варианте 1 осуществления, так и информация движения, относящаяся к центральному подэлементу предсказания опорного блока, как в варианте 2 осуществления.In FIG. 24, the top row blocks are prediction sub-elements of the reference block, and the bottom row blocks are prediction sub-elements of the current block. X stands for some position, and motion information from position X is stored in storage. Here, under the motion information at a certain position in FIG. 24 can be understood as motion information at the center of the reference block as in Embodiment 1, and motion information related to the reference block prediction center subelement as in Embodiment 2.

При определении информации движения, относящейся к подэлементу предсказания текущего блока, с использованием информации движения из некоторого положения, информация движения из этого положения может использоваться для каждого подэлемента предсказания в опорном блоке. Иными словами, возможно одновременное определение информации движения, относящейся к множеству подэлементов предсказания текущего блока, с использованием информации движения из некоторого положения, при котором возможно устранение недостатка, выражающегося в зависимости от данных. Соответственно, при использовании информации движения из некоторого положения, модуль 2100 межкадрового предсказания может определять информацию движения параллельно.When determining motion information related to a prediction sub-element of the current block using motion information from a position, motion information from that position may be used for each prediction sub-element in the reference block. In other words, it is possible to simultaneously determine the motion information related to a plurality of prediction sub-elements of the current block using the motion information from a position where a data-dependent deficiency can be eliminated. Accordingly, when using the motion information from a certain position, the inter prediction module 2100 can determine the motion information in parallel.

Как указано выше, в вариантах 1 и 2 осуществления изобретения информация движения определяется с использованием информации движения, имеющейся в каком-либо месте. Соответственно, способы определения информации движения в соответствии с вариантами 1 и 2 осуществления делают возможным независимое определение информации движения, относящейся к каждому подэлементу предсказания в опорном блоке. Иными словами, в вариантах 1 и 2 осуществления изобретения для нахождения подэлементов предсказания, из которых может быть определена информация движения, не требуется выполнение последовательного поиска подэлементов предсказания, из которых может быть определена информация движения, и если для определения информации движения невозможно использовать первый подэлемент предсказания опорного блока, то в вариантах 1 и 2 осуществления изобретения информация движения, относящаяся к подэлементу предсказания текущего блока, определяется с использованием заранее заданной информации движения. Таким образом, при определении информации движения в соответствии с вариантами 1 и 2 осуществления устраняется зависимость от данных, что делает возможным распараллеленное определение информации движения, относящейся к каждому подэлементу предсказания. Кроме того, при определении информации движения в соответствии с вариантами 1 и 2 осуществления устраняются излишние обращения к памяти, присущие существующим способам определения информации движения, чем сокращается число актов обращения к памяти.As mentioned above, in Embodiments 1 and 2, motion information is determined using motion information available at a location. Accordingly, the motion information determination methods according to Embodiments 1 and 2 make it possible to independently determine the motion information related to each prediction sub-element in the reference block. In other words, in Embodiments 1 and 2, in order to find the prediction sub-elements from which motion information can be determined, it is not necessary to sequentially search for prediction sub-elements from which motion information can be determined, and if the first prediction sub-element cannot be used to determine the motion information reference block, in Embodiments 1 and 2, the motion information related to the prediction sub-element of the current block is determined using the predetermined motion information. Thus, in determining the motion information according to Embodiments 1 and 2, the dependence on data is eliminated, which makes it possible to determine the motion information related to each prediction sub-element in parallel. In addition, when determining motion information in accordance with options 1 and 2, the implementation eliminates unnecessary memory accesses inherent in existing methods for determining motion information, thereby reducing the number of memory accesses.

Вариант 3 осуществленияEmbodiment 3

Фиг. 25 представляет собой блок-схему, иллюстрирующую способ определения информации движения, относящейся к подэлементу предсказания текущего блока, с использованием некоторого значения информации движения в соответствии с еще одним вариантом осуществления настоящего изобретения.Fig. 25 is a flowchart illustrating a method for determining motion information related to a prediction sub-element of the current block using a certain value of motion information in accordance with yet another embodiment of the present invention.

Как показано на фиг. 25, в варианте 3 осуществления предлагается способ задания стандартной информации движения и определения информации движения, относящейся к текущему подэлементу предсказания, из этой стандартной информации движения в случае, когда информацию движения невозможно определить из подэлемента предсказания опорного блока. При этом под стандартной информацией движения может пониматься нулевой вектор. Конкретный способ определения информации движения в соответствии с вариантом 3 осуществления описывается далее.As shown in FIG. 25, Embodiment 3 proposes a method for setting the standard motion information and determining the motion information related to the current prediction sub-element from the standard motion information in the case where the motion information cannot be determined from the reference block prediction sub-element. In this case, the standard motion information can be understood as a zero vector. The specific method for determining motion information according to Embodiment 3 is described next.

Модуль 2100 межкадрового предсказания может сохранять стандартную информацию движения в хранилище (S2500). Конкретная операция сохранения информации движения модулем 2100 межкадрового предсказания была описана выше.The inter prediction module 2100 may store standard motion information in storage (S2500). The specific operation of storing motion information by the inter prediction unit 2100 has been described above.

Затем модуль 2100 межкадрового предсказания может определять информацию движения, относящуюся к текущему подэлементу предсказания. Модуль 2100 межкадрового предсказания может проверять, содержит ли подэлемент предсказания опорного блока, соответствующий текущему подэлементу предсказания, информацию движения (S2520).Then, the inter prediction module 2100 may determine motion information related to the current prediction sub-element. The inter prediction unit 2100 may check whether the reference block prediction sub-element corresponding to the current prediction sub-element contains motion information (S2520).

Если подэлемент предсказания опорного блока содержит информацию движения, то модуль 2100 межкадрового предсказания может вводить в текущий подэлемент предсказания информацию движения, относящуюся к указанному подэлементу предсказания опорного блока (S2530). Если же подэлемент предсказания опорного блока не содержит информацию движения, то модуль 2100 межкадрового предсказания может вводить информацию движения, сохраненную в хранилище, в текущий подэлемент предсказания (S2540).If the reference block prediction sub-item contains motion information, the inter prediction unit 2100 may input motion information related to the specified reference block prediction sub-item (S2530) to the current prediction sub-item. On the other hand, if the reference block prediction sub-item does not contain motion information, the inter-picture prediction unit 2100 may input the motion information stored in the storage into the current prediction sub-item (S2540).

Модуль 2100 межкадрового предсказания может проверять, не является ли подэлемент предсказания опорного блока, для которого выполняется определение информации движения, последним подэлементом предсказания (S2550). Если указанный подэлемент предсказания опорного блока является последним подэлементом предсказания, то модуль 2100 межкадрового предсказания может завершать данную операцию определения информации движения. Если же подэлемент предсказания опорного блока не является последним подэлементом предсказания, то модуль 2100 межкадрового предсказания с целью продолжения определения информации движения может переходить к определению информации движения, относящейся к следующему подэлементу предсказания опорного блока (S2510).The inter prediction unit 2100 may check whether the prediction sub-element of the reference block for which motion information determination is performed is the last prediction sub-element (S2550). If the specified reference block prediction sub-element is the last prediction sub-element, then the inter prediction module 2100 may terminate the present motion information determination operation. On the other hand, if the reference block prediction sub-element is not the last prediction sub-element, the inter prediction unit 2100 may proceed to determine motion information related to the next reference block prediction sub-element to continue determining motion information (S2510).

Вышеописанная операция определения информации движения в соответствии с вариантом 3 осуществления может применяться к тексту 2 проекта 3D-HEVC, как показано в таблице 4.The above motion information determination operation according to Embodiment 3 can be applied to 3D-HEVC project text 2 as shown in Table 4.

Таблица 4Table 4

В данной операции используются следующие входные данные:This operation uses the following input data:

- положение (xPb, yPb) левого верхнего угла текущего элемента предсказания;- position (xPb, yPb) of the upper left corner of the current prediction element;

- ширина (nPbW) и высота (nPbH) текущего элемента предсказания;- width (nPbW) and height (nPbH) of the current prediction element;

- индекс refViewIdx опорного кадра;- refViewIdx index of the reference frame;

- вектор mvDisp невязки.- mvDisp residual vector.

В данной операции получаются следующие выходные данные:This operation produces the following output:

- флаг availableFlagLXinterView для указания доступности возможного временного межракурсного вектора движения, где LX может быть списком опорных кадров L0 и L1;- flag availableFlagLXinterView to indicate the availability of a possible temporal inter-view motion vector, where LX may be a list of L0 and L1 reference frames;

- возможный временной межракурсный вектор mvLXInterView движения, где LX может быть списком L0 или L1 опорных кадров;- a possible temporal interview motion vector mvLXInterView, where LX can be a list of L0 or L1 reference frames;

- ссылочный индекс refIdxLXInterView, указывающий опорный кадр, содержащийся в списке RefPicListLX опорных кадров, где LX может быть списком L0 или L1 опорных кадров.is a refIdxLXInterView reference index indicating a reference frame contained in the RefPicListLX reference frame list, where LX may be an L0 or L1 list of reference frames.

LX может быть списком L0 или L1 опорных кадров. К списку LX применяется следующая операция:LX may be a list of L0 or L1 reference frames. The following operation is applied to the LX list:

- флагу availableFlagLXInterView присваивается начальное значение 0;- the availableFlagLXInterView flag is initialized to 0;

- вектору mvLXInterView движения присваивается начальное значение (0,0);- the mvLXInterView motion vector is assigned an initial value (0,0);

- ссылочному индексу refIdxLXInterView присваивается начальное значение -1.- reference index refIdxLXInterView is initialized to -1.

Переменным nSbW и nSbH присваиваются начальные значения следующим образом:The variables nSbW and nSbH are initialized as follows:

- nSbW=Min(nPbW, SubPbSize);- nSbW=Min(nPbW, SubPbSize);

- nSbH=Min(nPbH, SubPbSize),- nSbH=Min(nPbH, SubPbSize),

где SubPbSize представляет собой размер, включающий высоту и ширину подэлемента предсказания, указываемого набором параметров (VPS).where SubPbSize is a size including the height and width of the prediction sub-element indicated by the parameter set (VPS).

Переменной ivRefPic в качестве начального значения присваивается значение, соответствующее кадру, имеющему то же значение ViewIdx, что refViewIdx в текущем элементе доступа. The ivRefPic variable is initialized to the value corresponding to the frame that has the same ViewIdx value as the refViewIdx in the current accessor.

Переменной curSubBlockIdx присваивается начальное значение 0.The variable curSubBlockIdx is initialized to 0.

Переменным availableFlagL0InterView и availableFlagL1Interview начальные значения присваиваются следующим образом:The variables availableFlagL0InterView and availableFlagL1Interview are initialized as follows:

Figure 00000026
.
Figure 00000026
.

Если текущим слайсом является слайс B, тоIf the current slice is slice B, then

Figure 00000027
.
Figure 00000027
.

При изменении yBlk от 0 до (nPbH/nSbH-1) и при изменении xBlk от 0 до (nPbW/nSbW-1) выполняется следующая операция:When yBlk changes from 0 to (nPbH/nSbH-1) and when xBlk changes from 0 to (nPbW/nSbW-1), the following operation is performed:

- переменной curAvailabeFlag присваивается начальное значение 0;- the curAvailabeFlag variable is initialized to 0;

- при изменении X от 0 до 1 выполняется следующая операция:- when X changes from 0 to 1, the following operation is performed:

- флагу spPredFlagL1[xBlk][yBlk] присваивается начальное значение 0;- the spPredFlagL1[xBlk][yBlk] flag is initialized to 0;

- вектору spMvLX движения присваивается начальное значение (0, 0);- the motion vector spMvLX is assigned an initial value (0, 0);

- ссылочному индексу spRefIdxLX[xBlk][yBlk] присваивается начальное значение -1;- the reference index spRefIdxLX[xBlk][yBlk] is assigned the initial value -1;

- положение (xRef, yRef) опорного блока определяется следующим образом:- the position (xRef, yRef) of the reference block is determined as follows:

Figure 00000028
.
Figure 00000028
.

- переменная ivRefPb указывает на яркостный блок предсказания в положении (xRef, yRef) в межракурсном опорном кадре, указываемом ivRefPic;- the ivRefPb variable points to the luminance prediction block at position (xRef, yRef) in the inter-view reference frame indicated by ivRefPic;

- (xIvRefPb, yIvRefPb) указывает на положение левого верхнего угла опорного блока, указываемого ivRefPb;- (xIvRefPb, yIvRefPb) points to the position of the upper left corner of the reference block indicated by ivRefPb;

- Кроме случаев, когда ivRefPb был кодирован во внутрикадровом режиме, при изменении X от 0 до 1 может применяться следующая операция:- Except when ivRefPb has been encoded in intra frame mode, when changing X from 0 to 1, the following operation may apply:

- если X равен 0 или текущим слайсом является слайс B, то при изменении Y от X до (1-X) выполняется следующая операция:- if X is 0 or the current slice is slice B, then when Y changes from X to (1-X), the following operation is performed:

- переменным refPixListLYIvRef, predFlagLYIvRef[x][y], mvLYIvRef[x][y] и refIdxLYIvRef[x][y] присваиваются, соответственно, значения переменных, соответствующих им в межракурсном опорном кадре ivRefPic, т.е. RefPicListLY, PredFlagLY[x][y], MvLY[x][y] и RefIdxLY[x][y];- the variables refPixListLYIvRef, predFlagLYIvRef[x][y], mvLYIvRef[x][y] and refIdxLYIvRef[x][y] are assigned, respectively, the values of the variables corresponding to them in the interview reference frame ivRefPic, i.e. RefPicListLY, PredFlagLY[x][y], MvLY[x][y] and RefIdxLY[x][y];

- если значение predFlagLYIvRef[xIvRefPb][yIvRefPb] равно 1, то при изменении i от 0 до num_ref_idx_lX_active_minus1 (количество опорных кадров в списке опорных кадров) может выполняться следующая операция:- if the value of predFlagLYIvRef[xIvRefPb][yIvRefPb] is 1, then when i changes from 0 to num_ref_idx_lX_active_minus1 (the number of reference frames in the reference frame list), the following operation can be performed:

- если порядковый номер кадра (POC) у refPicListLYIvRef[refIdxLYIvRef[xIvRefPb][yIvRefPb]] такой же, как у RefPicListLX[i], и значение centerPredFlag равно 0, то выполняются следующие операции:- if the frame sequence number (POC) of refPicListLYIvRef[refIdxLYIvRef[xIvRefPb][yIvRefPb]] is the same as RefPicListLX[i] and the value of centerPredFlag is 0, then the following operations are performed:

Figure 00000029
.
Figure 00000029
.

- Соответственно значению curAvailableFlag выполняется следующая операция:- According to the value of curAvailableFlag, the following operation is performed:

- если curAvailableFlag равен 0, то при X, изменяющемся от 0 до 1, выполняются следующие операции:- if curAvailableFlag is 0, then when X changes from 0 to 1, the following operations are performed:

Figure 00000030
.
Figure 00000030
.

- переменной curSubBlockIdx присваивается значение curSubBlockIdx+1.- the variable curSubBlockIdx is assigned the value curSubBlockIdx+1.

Вариант 3 осуществления описывается еще раз по таблице 4. Переменные в таблице 4 те же, что и в таблице 2.Embodiment 3 is described again in Table 4. The variables in Table 4 are the same as those in Table 2.

Модуль 2100 межкадрового предсказания перед определением информации движения, относящейся к текущему подэлементу предсказания, с использованием подэлемента предсказания опорного блока, выполняет присваивание начальных значений. Это присваивание начальных значений выполняется так же, как описано выше при рассмотрении таблицы 2.The inter prediction unit 2100, before determining the motion information related to the current prediction sub-item using the reference block prediction sub-item, performs initialization. This initialization is performed in the same way as described above in relation to Table 2.

Далее переменным availableFlagLXZero, mvLXZero и refIdxLXZero присваиваются значения согласно формулам 23 и 24. При этом X принимает значения 0 или 1.Next, the variables availableFlagLXZero, mvLXZero and refIdxLXZero are assigned values according to formulas 23 and 24. In this case, X takes the values 0 or 1.

[Формула 23][Formula 23]

Figure 00000031
.
Figure 00000031
.

[Формула 24][Formula 24]

Figure 00000032
.
Figure 00000032
.

Здесь через availableFlagLXZero обозначен идентификатор, указывающий доступность стандартной информации движения, через mvLXZero обозначена стандартная информация движения, а через refIdxLXZero обозначен ссылочный индекс стандартной информации движения.Here, availableFlagLXZero denotes an identifier indicating the availability of the standard motion information, mvLXZero denotes the standard motion information, and refIdxLXZero denotes a reference index of the standard motion information.

После присваивания значений переменным в соответствии с вышеприведенным описанием модуль 2100 межкадрового предсказания выполняет следующую операцию при изменении yBlk от 0 до (nPbH/nSbH-1) и при изменении xBlk от 0 до (nPbW/nSbW-1). Здесь xBlk обозначает координату x блока, а yBlk обозначает координату y блока.After assigning values to variables as described above, the inter prediction module 2100 performs the following operation when yBlk changes from 0 to (nPbH/nSbH-1) and when xBlk changes from 0 to (nPbW/nSbW-1). Here xBlk denotes the x-coordinate of the block and yBlk denotes the y-coordinate of the block.

Вначале модуль 2100 межкадрового предсказания присваивает начальное значение информации, служащей для указания на необходимость предсказания информации движения из подэлемента предсказания опорного блока, флаг предсказания подэлемента предсказания, информацию движения, относящуюся к указанному подэлементу предсказания, и ссылочный индекс подэлемента предсказания. Это присваивание начальных значений выполняется так же, как описано выше при рассмотрении таблицы 2.First, the inter prediction unit 2100 assigns an initial value of information for indicating the need to predict motion information from the reference block prediction sub-item, a prediction sub-item prediction flag, motion information related to the specified prediction sub-item, and a reference index of the prediction sub-item. This initialization is performed in the same way as described above in relation to Table 2.

Смена положения (xRef, yRef) опорного блока выполняется, как видно из формулы 25, для каждого подэлемента предсказания.Repositioning (xRef, yRef) of the reference block is performed, as can be seen from Formula 25, for each prediction sub-element.

[Формула 25][Formula 25]

Figure 00000003
Figure 00000003

Если межракурсный опорный блок закодирован во внутрикадровом режиме, то модуль 2100 межкадрового предсказания может выполнять следующую операцию при изменении X от 0 до 1.If the inter-view reference block is encoded in intra-frame mode, then the inter-frame prediction module 2100 may perform the following operation when X changes from 0 to 1.

Если X равен 0 или текущим слайсом является слайс B, то каждой переменной присваивается новое значение в соответствии с Y (значение Y изменяется от X до (1-X)), как указано выше при рассмотрении таблицы 2.If X is 0 or the current slice is slice B, then each variable is assigned a new value according to Y (the value of Y changes from X to (1-X)), as described above in Table 2.

В этом случае, если значение predFlagLYIvRef[xIvRefPb][yIvRefPb] равно 1, то может применяться нижеприведенная формула 26 при изменении i от 0 до num_ref_idx_lX_active_minus1 (количество опорных кадров в списке опорных кадров).In this case, if the value of predFlagLYIvRef[xIvRefPb][yIvRefPb] is equal to 1, then the following formula 26 can be applied when changing i from 0 to num_ref_idx_lX_active_minus1 (the number of reference frames in the reference frame list).

[Формула 26][Formula 26]

Figure 00000005
.
Figure 00000005
.

После выполнения описанной выше операции, если значение curAvailableFlag равно 0, то модуль 2100 межкадрового предсказания может применять формулу 27 при изменении X от 0 до 1.After performing the above operation, if the value of curAvailableFlag is 0, then the inter prediction module 2100 may apply Formula 27 when X changes from 0 to 1.

Иными словами, если невозможно определить информацию движения из подэлемента предсказания опорного блока, то модуль 2100 межкадрового предсказания может определять информацию движения, относящуюся к подэлементу предсказания текущего блока, из произвольно заданной стандартной информации движения.In other words, if it is not possible to determine the motion information from the reference block prediction sub-item, then the inter-picture prediction unit 2100 may determine the motion information related to the prediction sub-item of the current block from the arbitrary standard motion information.

[Формула 27][Formula 27]

Figure 00000033
.
Figure 00000033
.

Наконец, после того, как все вышеописанные операции выполнены, переменной curSubBlockIdx присваивается значение curSubBlockIdx + 1, и если значения availableFlagL0InterView и availableFlagL1InterView равны 0, то операция определения информации движения в соответствии с вариантом 3 осуществления завершается.Finally, after all the above operations are performed, curSubBlockIdx is set to curSubBlockIdx + 1, and if availableFlagL0InterView and availableFlagL1InterView are 0, then the motion information determination operation according to Embodiment 3 ends.

Фиг. 26 представляет собой иллюстрацию примера операции определения информации движения, относящейся к подэлементу предсказания текущего блока, с использованием некоторой информации движения.Fig. 26 is an illustration of an example of an operation of determining motion information related to a prediction sub-element of the current block using some motion information.

На фиг. 26 блоки верхнего ряда представляют собой подэлементы предсказания опорного блока, а блоки нижнего ряда представляют собой подэлементы предсказания текущего блока. Кроме того, в хранилище сохранена стандартная информация движения. При этом под показанной на фиг. 26 стандартной информацией движения может пониматься стандартная информация движения, произвольно заданная в соответствии с вариантом 3 осуществления.In FIG. 26, the top row blocks are prediction sub-elements of the reference block, and the bottom row blocks are prediction sub-elements of the current block. In addition, standard motion information is stored in the storage. At the same time, under the one shown in Fig. 26, the standard motion information can be understood as the standard motion information arbitrarily set according to Embodiment 3.

При определении информации движения, относящейся к подэлементу предсказания текущего блока, с использованием стандартной информации движения, для каждого подэлемента предсказания в опорном блоке может использоваться стандартная, произвольно заданная информация движения. Иными словами, возможно одновременное определение информации движения, относящейся к множеству подэлементов предсказания текущего блока, с использованием стандартной информации движения, и такое использование множества подэлементов предсказания текущего блока может способствовать устранению недостатка, выражающегося в зависимости от данных. Соответственно, при использовании стандартной информации движения с некоторым значением модуль 2100 межкадрового предсказания может определять информацию движения параллельно.When determining the motion information related to the prediction sub-element of the current block using the standard motion information, standard, arbitrary motion information may be used for each prediction sub-element in the reference block. In other words, it is possible to simultaneously determine the motion information related to a plurality of prediction sub-elements of the current block using the standard motion information, and such use of the plurality of prediction sub-elements of the current block can help overcome the disadvantage expressed in terms of data. Accordingly, when using the standard motion information with a certain value, the inter prediction module 2100 can determine the motion information in parallel.

Как указано выше, в соответствии с вариантом 3 осуществления модуль 2100 межкадрового предсказания определяет информацию движения с использованием стандартной информации движения, которой присвоено некоторое значение. Соответственно, способ определения информации движения в соответствии с вариантом 3 осуществления делает возможным независимое определение информации движения, относящейся к каждому подэлементу предсказания в опорном блоке. Иными словами, в варианте 3 осуществления для нахождения подэлементов предсказания, из которых может быть определена информация движения, не требуется выполнение последовательного поиска подэлементов предсказания, из которых может быть определена информация движения, и если для определения информации движения невозможно использовать первый подэлемент предсказания опорного блока, то в варианте 3 осуществления изобретения информация движения, относящаяся к подэлементу предсказания текущего блока, определяется с использованием заранее заданной информации движения. Таким образом, при определении информации движения в соответствии с вариантом 3 осуществления устраняется зависимость от данных, что делает возможным распараллеленное определение информации движения, относящейся к каждому подэлементу предсказания. Кроме того, при определении информации движения в соответствии с вариантом 3 осуществления устраняются излишние обращения к памяти, присущие существующим способам определения информации движения, чем сокращается число актов обращения к памяти.As mentioned above, according to Embodiment 3, the inter prediction module 2100 determines the motion information using the standard motion information that has been assigned a value. Accordingly, the motion information determination method according to Embodiment 3 makes it possible to independently determine the motion information related to each prediction sub-element in the reference block. In other words, in Embodiment 3, in order to find the prediction sub-elements from which motion information can be determined, it is not necessary to sequentially search for prediction sub-elements from which motion information can be determined, and if the first reference block prediction sub-element cannot be used to determine the motion information, then, in Embodiment 3, the motion information related to the prediction sub-element of the current block is determined using the predetermined motion information. Thus, in determining the motion information according to Embodiment 3, the dependence on data is eliminated, which makes it possible to determine the motion information related to each prediction sub-item in parallel. In addition, when determining motion information according to Embodiment 3, unnecessary memory accesses inherent in the existing methods for determining motion information are eliminated, thereby reducing the number of memory accesses.

Фиг. 27 представляет собой схематичную иллюстрацию затрат времени, требуемых для определения информации движения в соответствии с настоящим изобретением.Fig. 27 is a schematic illustration of the time required to determine motion information in accordance with the present invention.

На фиг. 20 показано, что если время, необходимое для определения информации движения из одного подэлемента предсказания, равно T, а количество подэлементов предсказания в опорном блоке равно N, то время, необходимое для определения всей информации движения из опорного блока, равно NxT. Однако в соответствии с вариантом осуществления настоящего изобретения определение информации движения может быть распараллелено, и поэтому время, требуемое для определения информации движения, соответствует T, а задержка кодирования/декодирования трехмерного изображение снижается.In FIG. 20 shows that if the time required to determine motion information from one prediction sub-element is T and the number of prediction sub-elements in a reference block is N, then the time required to determine all motion information from the reference block is NxT. However, according to an embodiment of the present invention, the determination of motion information can be parallelized, and therefore the time required to determine the motion information is T, and the encoding/decoding delay of the 3D image is reduced.

Описанные выше варианты осуществления изобретения могут иметь разные диапазоны применения в зависимости от размеров блока, глубины элемента кодирования (ЭК) или глубины элемента преобразования (ЭПр). В качестве параметра, определяющего диапазон применения, может использоваться значение, заранее заданное в кодере/декодере, или значение, определяемое в соответствии с профилем или уровнем; если же кодер указывает значение параметра в битовом потоке, то декодер может получать это значение из битового потока.The embodiments of the invention described above may have different applicability ranges depending on block sizes, coding element depth (EC) or transform element depth (ECD). As a parameter defining the application range, a value predetermined in the encoder/decoder or a value determined according to a profile or a level may be used; if the encoder specifies the value of the parameter in the bitstream, then the decoder can obtain this value from the bitstream.

Например, в случае, когда диапазон применения зависит от глубины элементов кодирования, могут быть предусмотрены схема (способ A), применяемая только при глубине не меньше заданной, схема (способ B), применяемая только при глубине не больше заданной, или схема (способ C), применяемая только при заданной глубине. Если способы в соответствии с настоящим изобретением неприменимы ни к одной из глубин, то для указания на это может использоваться индикатор (флаг), или посредством глубины ЭК может указываться, что способы в соответствии с настоящим изобретением неприменимы, при этом глубина ЭК может быть установлена превосходящей наибольшую глубину, которую может иметь ЭК.For example, in the case where the range of application depends on the depth of the coding elements, a scheme (method A) only applied at a depth not less than a given one, a scheme (method B) only applied at a depth no greater than a given one, or a scheme (method C) can be provided. ), applied only at a given depth. If the methods in accordance with the present invention are not applicable to any of the depths, then an indicator (flag) can be used to indicate this, or by means of the EC depth it can be indicated that the methods in accordance with the present invention are not applicable, while the EC depth can be set to exceed the greatest depth that an EC can have.

Таблица 5Table 5

Глубина ЭК (или ЭП, или ЭПр), представляющая диапазон примененияEC Depth (or EC or EC) representing the application range Способ АMethod A Способ BMethod B Способ CMethod C 00 XX 00 00 1one XX 00 00 22 00 00 00 33 00 XX XX 4 и более4 or more 00 XX XX

В вышеизложенных вариантах осуществления способы описываются с использованием блок-схем с последовательностями шагов или модулей, но настоящее изобретение не ограничено порядком следования шагов, а некоторые шаги могут выполняться одновременно с другими шагами или в другом порядке. Специалисту обычного уровня в данной области техники должно быть понятно, что шаги в блок-схемах не исключают друг друга и что в блок-схемы могут быть добавлены другие шаги или некоторые из шагов могут быть удалены из блок-схем без влияния на объем настоящего изобретения.In the above embodiments, the methods are described using flowcharts with sequences of steps or modules, but the present invention is not limited to the order of the steps, and some steps may be performed simultaneously with other steps or in a different order. One of ordinary skill in the art will appreciate that the steps in the flowcharts are not mutually exclusive and that other steps may be added to the flowcharts or some of the steps may be removed from the flowcharts without affecting the scope of the present invention.

Кроме того, вышеизложенные варианты осуществления изобретения содержат различные аспекты примеров. Невозможно описать все возможные комбинации для представления различных аспектов, и специалистам в данной области техники должно быть понятно, что возможны и другие комбинации, кроме описанных. Соответственно, настоящее изобретение содержит все изменения, модификации и разновидности, охватываемые приведенной ниже формулой изобретения.In addition, the above embodiments of the invention contain various aspects of the examples. It is not possible to describe all possible combinations to represent various aspects, and those skilled in the art will appreciate that other combinations than those described are possible. Accordingly, the present invention contains all changes, modifications and variations covered by the following claims.

Описанные выше способы в соответствии с настоящим изобретением могут быть реализованы в программе, исполняемой компьютером, которая может быть сохранена на машиночитаемом записываемом носителе, в число примеров которого входят постоянное запоминающее устройство (ПЗУ), оперативное запоминающее устройство (ОЗУ), компакт-диск, магнитная лента, гибкий диск, оптическое запоминающее устройство; указанная программа также может быть или представлена в виде передаваемого сигнала (например, в виде передачи через Интернет).The methods described above in accordance with the present invention may be implemented in a computer executable program that may be stored on a machine-readable, writable medium, examples of which include Read Only Memory (ROM), Random Access Memory (RAM), CD, magnetic tape, floppy disk, optical storage device; said program may also be or be presented as a transmitted signal (eg as a transmission over the Internet).

Указанный машиночитаемый записываемый носитель может быть распределен по компьютерным системам, соединенным сетью, а машиночитаемые коды могут сохраняться и исполняться распределенно. Функциональные программы, коды или кодовые сегменты для реализации описанных выше способов легко могут разработаны программистами, знакомыми с областью техники, к которой относится настоящее изобретение.Said machine-readable writable medium may be distributed across networked computer systems, and the machine-readable codes may be stored and executed distributedly. Functional programs, codes or code segments for implementing the methods described above can be easily developed by programmers familiar with the technical field to which the present invention pertains.

Несмотря на то, что настоящее изобретение представлено и описано связанным с предпочтительными вариантами его осуществления, оно не ограничено указанными вариантами, и в настоящем изобретении без выхода за пределы его объема, определяемого нижеприведенной формулой изобретения, могут быть сделаны разнообразные изменения, которые не должны интерпретироваться индивидуально в отрыве от технической сущности или объема настоящего изобретения.Although the present invention has been presented and described in connection with its preferred embodiments, it is not limited to the said embodiments, and various changes may be made to the present invention without departing from the scope of the following claims, which should not be interpreted individually. apart from the technical essence or scope of the present invention.

Claims (32)

1. Способ декодирования изображения, включающий:1. An image decoding method, including: определение информации движения, относящейся к текущему блоку;determining motion information related to the current block; определение элементарного значения предсказания для текущего блока на основании информации движения, относящейся к текущему блоку; иdetermining a prediction chip value for the current block based on motion information related to the current block; and формирование восстановленного элементарного значения для текущего блока на основании элементарного значения предсказания для текущего блока,generating a recovered chip for the current block based on the prediction chip for the current block, причем шаг определения информации движения, относящейся к текущему блоку, включает:wherein the step of determining motion information related to the current block includes: определение того, имеет ли центральный подблок, соответствующий центральному положению текущего блока, в опорном блоке информацию движения;determining whether the center sub-block corresponding to the center position of the current block has motion information in the reference block; определение информации движения, относящейся к подблокам в текущем блоке, по подблокам в опорном блоке, если центральный подблок в опорном блоке имеет информацию движения; иdetermining motion information related to sub-blocks in the current block from sub-blocks in the reference block if the central sub-block in the reference block has motion information; and завершение определения информации движения, относящейся к подблокам в текущем блоке, по подблокам в опорном блоке, если центральный подблок в опорном блоке не имеет информации движения.terminating the determination of motion information related to the sub-blocks in the current block from the sub-blocks in the reference block if the central sub-block in the reference block has no motion information. 2. Способ по п. 1, отличающийся тем, что шаг определения информации движения, относящейся к подблокам в текущем блоке, включает:2. The method according to claim 1, wherein the step of determining motion information related to sub-blocks in the current block includes: определение того, имеет ли подблок в опорном блоке информацию движения, при этом подблок в опорном блоке соответствует текущему подблоку в текущем блоке;determining whether the sub-block in the reference block has motion information, wherein the sub-block in the reference block corresponds to the current sub-block in the current block; определение информации движения, относящейся к текущему подблоку в текущем блоке, по подблоку в опорном блоке, если подблок в опорном блоке имеет информацию движения; иdetermining motion information related to the current sub-block in the current block from the sub-block in the reference block if the sub-block in the reference block has motion information; and определение информации движения, относящейся к текущему подблоку в текущем блоке, по центральному подблоку в опорном блоке, если подблок в опорном блоке не имеет информации движения.determining motion information related to the current sub-block in the current block from the center sub-block in the reference block if the sub-block in the reference block has no motion information. 3. Способ кодирования изображения, включающий:3. An image encoding method, including: определение информации движения, относящейся к текущему блоку;determining motion information related to the current block; кодирование информации движения, относящейся к текущему блоку; иencoding motion information related to the current block; and формирование восстановленного элементарного значения для текущего блока на основании элементарного значения предсказания для текущего блока,generating a recovered chip for the current block based on the prediction chip for the current block, причем шаг определения информации движения, относящейся к текущему блоку, включает:wherein the step of determining motion information related to the current block includes: определение того, имеет ли центральный подблок, соответствующий центральному положению текущего блока, в опорном блоке информацию движения;determining whether the center sub-block corresponding to the center position of the current block has motion information in the reference block; определение информации движения, относящейся к подблокам в текущем блоке, по подблокам в опорном блоке, если центральный подблок в опорном блоке имеет информацию движения; иdetermining motion information related to sub-blocks in the current block from sub-blocks in the reference block if the central sub-block in the reference block has motion information; and завершение определения информации движения, относящейся к подблокам в текущем блоке, по подблокам в опорном блоке, если центральный подблок в опорном блоке не имеет информации движения.terminating the determination of motion information related to the sub-blocks in the current block from the sub-blocks in the reference block if the central sub-block in the reference block has no motion information. 4. Способ по п. 3, отличающийся тем, что шаг определения информации движения, относящейся к подблокам в текущем блоке, включает:4. The method of claim 3, wherein the step of determining motion information related to sub-blocks in the current block includes: определение того, имеет ли подблок в опорном блоке информацию движения, при этом подблок в опорном блоке соответствует текущему подблоку в текущем блоке;determining whether the sub-block in the reference block has motion information, wherein the sub-block in the reference block corresponds to the current sub-block in the current block; определение информации движения, относящейся к текущему подблоку в текущем блоке, по подблоку в опорном блоке, если подблок в опорном блоке имеет информацию движения; иdetermining motion information related to the current sub-block in the current block from the sub-block in the reference block if the sub-block in the reference block has motion information; and определение информации движения, относящейся к текущему подблоку в текущем блоке, по центральному подблоку в опорном блоке, если подблок в опорном блоке не имеет информации движения.determining motion information related to the current sub-block in the current block from the center sub-block in the reference block if the sub-block in the reference block has no motion information. 5. Машиночитаемый носитель информации, хранящий битовый поток, образованный посредством способа кодирования изображения, включающего:5. A computer-readable storage medium that stores a bit stream formed by an image encoding method, including: определение информации движения, относящейся к текущему блоку;determining motion information related to the current block; кодирование информации движения, относящейся к текущему блоку; иencoding motion information related to the current block; and формирование восстановленного элементарного значения для текущего блока на основании элементарного значения предсказания для текущего блока,generating a recovered chip for the current block based on the prediction chip for the current block, причем шаг определения информации движения, относящейся к текущему блоку, включает:wherein the step of determining motion information related to the current block includes: определение того, имеет ли центральный подблок, соответствующий центральному положению текущего блока, в опорном блоке информацию движения;determining whether the center sub-block corresponding to the center position of the current block has motion information in the reference block; определение информации движения, относящейся к подблокам в текущем блоке, если центральный подблок в опорном блоке имеет информацию движения; иdetermining motion information related to sub-blocks in the current block if the central sub-block in the reference block has motion information; and определение информации движения, относящейся к текущему блоку, если центральный подблок в опорном блоке не имеет информации движения.determining motion information related to the current block if the center subblock in the reference block has no motion information.
RU2019102682A 2014-01-03 2015-01-05 Method for image decoding, method for image encoding and machine-readable information carrier RU2784483C1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR10-2014-0000527 2014-01-03
KR10-2014-0001531 2014-01-06
KR10-2015-0000578 2015-01-05

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
RU2016125782A Division RU2680204C2 (en) 2014-01-03 2015-01-05 Method and device for inducing motion information between temporal points of sub prediction unit

Publications (1)

Publication Number Publication Date
RU2784483C1 true RU2784483C1 (en) 2022-11-28

Family

ID=

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2181930C2 (en) * 1996-10-15 2002-04-27 Интернэшнл Бизнес Машинз Корпорейшн Transparent data transmission method and transparent data extraction method
WO2012073057A2 (en) * 2010-11-29 2012-06-07 Tibor Balogh Image coding and decoding method and apparatus for efficient encoding and decoding of 3d light field content
WO2013016004A1 (en) * 2011-07-22 2013-01-31 Qualcomm Incorporated Coding motion depth maps with depth range variation
WO2013158097A1 (en) * 2012-04-19 2013-10-24 Intel Corporation 3d video coding including depth based disparity vector calibration
WO2013159643A1 (en) * 2012-04-24 2013-10-31 Mediatek Inc. Method and apparatus of motion vector derivation for 3d video coding
WO2013188785A1 (en) * 2012-06-15 2013-12-19 Qualcomm Incorporated Temporal motion vector prediction in hevc and its extensions

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2181930C2 (en) * 1996-10-15 2002-04-27 Интернэшнл Бизнес Машинз Корпорейшн Transparent data transmission method and transparent data extraction method
WO2012073057A2 (en) * 2010-11-29 2012-06-07 Tibor Balogh Image coding and decoding method and apparatus for efficient encoding and decoding of 3d light field content
WO2013016004A1 (en) * 2011-07-22 2013-01-31 Qualcomm Incorporated Coding motion depth maps with depth range variation
WO2013158097A1 (en) * 2012-04-19 2013-10-24 Intel Corporation 3d video coding including depth based disparity vector calibration
WO2013159643A1 (en) * 2012-04-24 2013-10-31 Mediatek Inc. Method and apparatus of motion vector derivation for 3d video coding
WO2013188785A1 (en) * 2012-06-15 2013-12-19 Qualcomm Incorporated Temporal motion vector prediction in hevc and its extensions

Similar Documents

Publication Publication Date Title
JP6673854B2 (en) Apparatus and method for removing redundancy of view synthesis prediction candidate in motion merge mode
KR102446602B1 (en) A Method And Apparatus For Deriving Motion Information Of Sub-Prediction Unit
RU2784483C1 (en) Method for image decoding, method for image encoding and machine-readable information carrier
RU2784379C1 (en) Method for image decoding, method for image encoding and machine-readable information carrier
RU2785479C1 (en) Image decoding method, image encoding method and machine-readable information carrier
RU2784475C1 (en) Method for image decoding, method for image encoding and machine-readable information carrier
CA2891672C (en) Method and apparatus for deriving temporal inter-view motion information of sub-prediction unit
KR102424941B1 (en) Apparatus And Method For Adaptably Selecting Merging Candidates In 3 Dimensional Image Encoding And Decoding
KR102378087B1 (en) Apparatus And Method For Deriving Merge Candidate Using Disparity Vector