RU2800681C2 - Coder, decoder and corresponding methods for intra prediction - Google Patents

Coder, decoder and corresponding methods for intra prediction Download PDF

Info

Publication number
RU2800681C2
RU2800681C2 RU2021130483A RU2021130483A RU2800681C2 RU 2800681 C2 RU2800681 C2 RU 2800681C2 RU 2021130483 A RU2021130483 A RU 2021130483A RU 2021130483 A RU2021130483 A RU 2021130483A RU 2800681 C2 RU2800681 C2 RU 2800681C2
Authority
RU
Russia
Prior art keywords
mode
intra
intra prediction
current block
block
Prior art date
Application number
RU2021130483A
Other languages
Russian (ru)
Other versions
RU2021130483A (en
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 Хуавэй Текнолоджиз Ко., Лтд.
Publication of RU2021130483A publication Critical patent/RU2021130483A/en
Application granted granted Critical
Publication of RU2800681C2 publication Critical patent/RU2800681C2/en

Links

Images

Abstract

FIELD: coding or decoding a video signal.
SUBSTANCE: invention relates to intra prediction. Devices and methods for intra prediction are proposed. The method includes: obtaining a value of the first indication information of the current block, wherein the value of the first indication information indicates whether the intra prediction mode of the current block is contained in the most likely mode set; and getting the reference row value of the index of the current block. When the value of the first indication information indicates that the intra prediction mode of the current block is contained in the most likely mode set, and when the value of the index reference row indicates that the closest adjacent reference row to the current block is used, the method further includes obtaining a value of the second indication information of the current block, wherein the value of the second current block indication information indicates whether the intra prediction mode of the current block is a planar mode or not.
EFFECT: increase in the efficiency and speed of coding, in particular, an increase in the efficiency of determining the intra prediction mode of the current block.
26 cl, 19 dwg, 14 tbl

Description

ПЕРЕКРЕСТНАЯ ССЫЛКА НА СВЯЗАННЫЕ ЗАЯВКИCROSS-REFERENCE TO RELATED APPLICATIONS

Эта заявка испрашивает приоритет предварительной заявки США №. 62/822 865, поданной 23 марта 2019 г., предварительной заявки США №. 62/824 282, поданной 26 марта 2019 г., и предварительной заявки США №. 62/824360, поданной 27 марта 2019 г., все из которых включены в настоящий документ посредством ссылок.This application claims the priority of U.S. provisional application no. 62/822,865, filed March 23, 2019, U.S. provisional application no. 62/824,282, filed March 26, 2019, and U.S. provisional application no. 62/824360, filed March 27, 2019, all of which are incorporated herein by reference.

Область техникиTechnical field

Варианты осуществления настоящей заявки (раскрытие) в целом относятся к области обработки картинок и, в частности, к внутреннему предсказанию.Embodiments of the present application (disclosure) generally relate to the field of picture processing and, in particular, to intra prediction.

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

Видеокодировка (кодирование и декодирование видео) используется в широком диапазоне применений цифрового видео, например, в широковещательном цифровом телевидении, передаче видео через Интернет и мобильные сети, в диалоговых приложениях в реальном времени, таких как видеочат, видеоконференцсвязь, DVD и Blu-Ray диски, системы захвата и редактирования видеоконтента и видеокамеры приложений безопасности.Video encoding (video encoding and decoding) is used in a wide range of digital video applications, such as digital television broadcast, video transmission over the Internet and mobile networks, real-time conversational applications such as video chat, video conferencing, DVD and Blu-ray discs, systems for capturing and editing video content; and camcorder security applications.

Объем видеоданных, необходимых для представления даже относительно короткого видео, может быть существенным, что может привести к трудностям, когда эти данные должны передаваться в потоковом режиме или иным образом передаваться по сети связи с ограниченной пропускной способностью. Таким образом, видеоданные, как правило, сжимаются перед тем, как передаваться через современные телекоммуникационные сети. Размер видео также может быть проблемой, когда видео хранится на запоминающем устройстве, поскольку ресурсы памяти могут быть ограничены. Устройства сжатия видео часто используют программное и/или аппаратное обеспечение в источнике для кодирования видеоданных перед передачей или хранением, тем самым уменьшая количество данных, необходимых для представления цифровых видеоизображений. Сжатые данные затем принимаются в месте назначения устройством декомпрессии видео, которое декодирует видеоданные. С ограниченными сетевыми ресурсами и постоянно растущими требованиями к более высокому качеству видео, желательны улучшенные методики сжатия и декомпрессии, которые улучшают степень сжатия с минимальными потерями качества изображения или вообще без таких потерь.The amount of video data required to represent even a relatively short video can be substantial, which can lead to difficulties when the data is to be streamed or otherwise transmitted over a limited bandwidth communication network. Thus, video data is typically compressed before being transmitted over modern telecommunication networks. Video size can also be an issue when the video is stored on a storage device, as memory resources can be limited. Video compression devices often use source software and/or hardware to encode video data prior to transmission or storage, thereby reducing the amount of data needed to represent digital video images. The compressed data is then received at the destination by a video decompressor which decodes the video data. With limited network resources and ever-increasing demands for higher video quality, improved compression and decompression techniques are desired that improve compression rates with little or no loss in image quality.

В частности, существует постоянная потребность в снижении нагрузки на процессор в контексте обработки внутреннего предсказания. В данной области техники известно использование списка наиболее вероятных режимов (MPM) для кодировки в режиме внутреннего предсказания. Список MPM уменьшает количество битов, необходимых для кодировки режима внутреннего предсказания текущего блока. Когда режим внутреннего предсказания текущего блока соответствует записи в списке MPM, кодируется индекс, а не фактический режим, в результате чего требуется меньше битов. Однако выбор записей для генерации списка MPM с учетом наиболее эффективной кодировки с внутренним предсказанием по-прежнему является некоторой задачей. Правильный выбор записей сильно влияет на эффективность кодировки с режимом внутреннего предсказания на основе списка MPM.In particular, there is a continuing need to reduce the processor load in the context of intra prediction processing. It is known in the art to use a Most Likely Mode List (MPM) for encoding in intra prediction mode. The MPM list reduces the number of bits needed to encode the intra prediction mode of the current block. When the intra prediction mode of the current block matches an entry in the MPM list, an index is encoded rather than the actual mode, resulting in fewer bits being required. However, selecting the entries to generate the MPM list with the most efficient intra-prediction encoding is still a bit of a challenge. The correct choice of entries greatly affects the efficiency of encoding with the intra prediction mode based on the MPM list.

Ввиду этого цель, лежащая в основе настоящего изобретения, состоит в том, чтобы предоставить методику для получения режима внутреннего предсказания на основе списка MPM, который приводит к более эффективной кодировке по сравнению с уровнем техники.In view of this, the object underlying the present invention is to provide a technique for obtaining an MPM list-based intra prediction mode that results in more efficient coding compared to the prior art.

Сущность изобретенияThe essence of the invention

Варианты осуществления настоящей заявки предоставляют устройства и способы для кодирования и декодирования согласно независимым пунктам формулы изобретения.Embodiments of the present application provide devices and methods for encoding and decoding according to the independent claims.

Вышеупомянутые и другие цели достигаются сущностью изобретения по независимым пунктам формулы изобретения. Дополнительные формы реализации очевидны из зависимых пунктов формулы изобретения, описания и фигур.The above and other objects are achieved by the essence of the invention according to the independent claims. Additional forms of implementation are apparent from the dependent claims, description and figures.

Согласно первому аспекту изобретение относится к способу, выполняемому устройством декодирования. Способ включает в себя: получение значения первой информации указания текущего блока, причем значение первой информации указания указывает, содержится ли режим внутреннего предсказания текущего блока в наборе наиболее вероятных режимов; и получение значения опорной строки индекса текущего блока. Набор наиболее вероятных режимов содержит 5 кандидатных режимов внутреннего предсказания и планарный режим. Когда значение первой информации указания указывает, что режим внутреннего предсказания текущего блока содержится в наборе наиболее вероятных режимов, и когда значение опорной строки индекса указывает, что используется ближайшая соседняя опорная строка к текущему блоку, способ дополнительно включает в себя получение значения второй информации указания текущего блока, причем значение второй информации указания текущего блока указывает, является ли режим внутреннего предсказания текущего блока планарным режимом или нет.According to a first aspect, the invention relates to a method performed by a decoding apparatus. The method includes: obtaining a value of the first indication information of the current block, wherein the value of the first indication information indicates whether the intra prediction mode of the current block is contained in the most likely mode set; and getting the reference row value of the index of the current block. The set of most probable modes contains 5 candidate intra prediction modes and a planar mode. When the value of the first indication information indicates that the intra prediction mode of the current block is contained in the most likely mode set, and when the value of the index reference row indicates that the closest adjacent reference row to the current block is used, the method further includes obtaining a value of the second indication information of the current block , wherein the value of the second current block indication information indicates whether the intra prediction mode of the current block is a planar mode or not.

В традиционном способе сложность декодирования для обработки MPM высока. В зависимости от использования инструментов режима внутренней кодировки подразделов (ISP) и множественных опорных строк (MRL) создаются три разных списка MPM (6 записей). В аспектах или любых возможных вариантах осуществления аспектов этого изобретения конструкция списка MPM (5 записей) унифицирована с уменьшенной сложностью декодирования, независимо от того, используется ли инструмент кодировки MRL или ISP.In the conventional method, the decoding complexity for MPM processing is high. Three different MPM lists (6 entries) are generated depending on the use of the Internal Subsection Encoding Mode (ISP) and Multiple Reference Lines (MRL) tools. In aspects or any possible embodiments of aspects of this invention, the MPM list (5 entries) design is unified with reduced decoding complexity, regardless of whether an MRL or ISP encoding tool is used.

Кроме того, планарный режим считается особым режимом из-за его высокой частоты, и для проверки того, является ли текущий режим планарным режимом, назначается специальный флаг. Хотя его нет в списке MPM (с придуманными (изобретенными) 5 записями), он всегда проверяется, когда флаг mpm имеет значение true (является истинным). Другими словами, флаг mpm указывает, находится ли режим внутреннего предсказания текущего блока в списке из 6 записей, состоящем из планарного режима и 5 записей списка MPM. Эти 5 записей списка MPM построены на основе режимов внутреннего предсказания левого и верхнего блока).In addition, the planar mode is considered a special mode due to its high frequency, and a special flag is assigned to check whether the current mode is a planar mode. Although not in the MPM list (with 5 invented entries), it is always checked when the mpm flag is true. In other words, the mpm flag indicates whether the intra prediction mode of the current block is in a 6-entry list consisting of a planar mode and 5 entries of the MPM list. These 5 MPM list entries are built based on the intra prediction modes of the left and top block).

В качестве реализации первого аспекта первая информация указания указывается первым флагом, например, intra_luma_mpm_flag. Значение опорной строки индекса текущего блока может быть указано с помощью intra_luma_ref_idx. Вторая информация указания может быть указана вторым флагом, например intra_luma_not_planar_flag.As an implementation of the first aspect, the first indication information is indicated by the first flag, for example, intra_luma_mpm_flag. The reference row value of the index of the current block can be specified using intra_luma_ref_idx. The second indication information may be indicated by a second flag, such as intra_luma_not_planar_flag.

Когда кодировка MRL не задействована, то есть когда значение опорной строки индекса указывает, что используется ближайшая соседняя опорная строка к текущему блоку, устройства синтаксически анализируют поток битов, чтобы получить значение второй информации указания. Когда кодировка MRL задействована, значение второй информации указания получается значением по умолчанию. В этой ситуации планарный режим исключается, и соответствующий ему флаг (например, intra_luma_not_planar_flag) не анализируется из потока битов, а выводится как значение по умолчанию (например, значение 1). В этом случае сохраняется бит для указания значения планарного флага (т.е. Intra_luma_not_planar), когда MRL задействован).When the MRL encoding is not enabled, that is, when the value of the index reference string indicates that the nearest adjacent reference string to the current block is used, the devices parse the bit stream to obtain the value of the second indication information. When the MRL encoding is enabled, the value of the second indication information is obtained as a default value. In this situation, the planar mode is excluded and its corresponding flag (eg, intra_luma_not_planar_flag) is not parsed from the bitstream, but output as a default value (eg, value 1). In this case, a bit is stored to indicate the value of the planar flag (i.e., Intra_luma_not_planar) when the MRL is enabled).

Согласно второму аспекту изобретение относится к способу, выполняемому аппаратурой кодирования. Способ включает в себя: определение того, входит ли режим внутреннего предсказания текущего блока в набор наиболее вероятных режимов; и определение того, используется ли ближайшая соседняя опорная строка к текущему блоку для внутреннего предсказания. Набор наиболее вероятных режимов содержит 5 кандидатных режимов внутреннего предсказания и планарный режим. Способ дополнительно включает в себя кодирование потока битов, при этом поток битов включает в себя информацию, указывающую, является ли режим внутреннего предсказания текущего блока планарным режимом, когда режим внутреннего предсказания текущего блока содержится в наборе наиболее вероятных режимов, и ближайшая соседняя опорная строка к текущему блоку используется для внутреннего предсказания.According to a second aspect, the invention relates to a method performed by an encoding apparatus. The method includes: determining whether an intra prediction mode of the current block is included in a set of most likely modes; and determining whether the nearest adjacent reference row to the current block is used for intra prediction. The set of most probable modes contains 5 candidate intra prediction modes and a planar mode. The method further includes encoding a bit stream, wherein the bit stream includes information indicating whether the intra prediction mode of the current block is a planar mode when the intra prediction mode of the current block is contained in the most likely mode set, and the closest adjacent reference row to the current block is used for intra prediction.

В качестве внедрения второго аспекта поток битов включает в себя первый флаг, указывающий, входит ли режим внутреннего предсказания текущего блока в набор наиболее вероятных режимов, и второй флаг, указывающий, является ли режим внутреннего предсказания текущего блока планарным режимом. Например, первый флаг - это intra_luma_mpm_flag, а второй флаг - intra_luma_not_planar_flag.As an implementation of the second aspect, the bitstream includes a first flag indicating whether the intra prediction mode of the current block is included in the set of most likely modes and a second flag indicating whether the intra prediction mode of the current block is a planar mode. For example, the first flag is intra_luma_mpm_flag and the second flag is intra_luma_not_planar_flag.

Способ согласно первому аспекту изобретения может выполняться устройством декодирования согласно третьему аспекту изобретения. Устройство декодирования включает в себя первый блок получения и второй блок получения. Первый блок получения, сконфигурированный для получения значения опорной строки индекса текущего блока и значения первой информации указания текущего блока, причем значение первой информации указания указывает, содержится ли режим внутреннего предсказания текущего блока в наборе наиболее вероятных режимов. Набор наиболее вероятных режимов содержит 5 кандидатных режимов внутреннего предсказания и планарный режим. Второй блок получения, сконфигурированный для получения значения второй информации указания текущего блока, когда значение первой информации указания указывает, что режим внутреннего предсказания текущего блока содержится в наборе наиболее вероятных режимов, и когда значение опорной строки индекса указывает, что используется ближайшая соседняя опорная строка к текущему блоку, при этом значение второй информации указания текущего блока указывает, является ли режим внутреннего предсказания текущего блока планарным режимом.The method according to the first aspect of the invention may be performed by the decoding apparatus according to the third aspect of the invention. The decoding device includes a first acquisition unit and a second acquisition unit. A first acquisition unit configured to obtain a reference row value of the current block index and a value of the first indication information of the current block, wherein the value of the first indication information indicates whether the intra prediction mode of the current block is included in the most likely mode set. The set of most probable modes contains 5 candidate intra prediction modes and a planar mode. The second acquisition unit, configured to obtain the value of the second indication information of the current block, when the value of the first indication information indicates that the intra prediction mode of the current block is contained in the most likely mode set, and when the index reference row value indicates that the nearest adjacent reference row to the current is used block, wherein the value of the second current block indication information indicates whether the intra prediction mode of the current block is a planar mode.

Дополнительные признаки и формы реализации способа согласно третьему аспекту изобретения соответствуют особенностям и формам реализации аппаратуры согласно первому аспекту изобретения.Additional features and forms of implementation of the method according to the third aspect of the invention correspond to the features and forms of implementation of the apparatus according to the first aspect of the invention.

Способ согласно второму аспекту изобретения может выполняться устройством кодирования согласно четвертому аспекту изобретения. Устройство кодирования включает в себя блок определения и блок кодирования. Блок определения, сконфигурированный для определения, содержится ли режим внутреннего предсказания текущего блока в наборе наиболее вероятных режимов, и для определения, используется ли ближайшая соседняя опорная строка к текущему блоку для внутреннего предсказания. Набор наиболее вероятных режимов включает 5 кандидатных режимов внутреннего предсказания и планарный режим. Блок кодирования, сконфигурированный для кодирования потока битов, при этом поток битов включает в себя информацию, указывающую, является ли режим внутреннего предсказания текущего блока планарным режимом, когда режим внутреннего предсказания текущего блока содержится в наборе наиболее вероятных режимов, и ближайший соседняя опорная строка к текущему блоку используется для внутреннего предсказания.The method according to the second aspect of the invention may be performed by the encoder according to the fourth aspect of the invention. The encoding device includes a determination unit and an encoding unit. A determination unit configured to determine whether the intra prediction mode of the current block is contained in the most likely mode set and to determine whether the nearest adjacent reference row to the current block is used for intra prediction. The set of most probable modes includes 5 candidate intra prediction modes and a planar mode. A coding block configured to encode a bitstream, the bitstream including information indicating whether the intra prediction mode of the current block is a planar mode when the intra prediction mode of the current block is contained in the most likely mode set, and the closest adjacent reference row to the current block is used for intra prediction.

Дополнительные признаки и формы реализации способа согласно четвертому аспекту изобретения соответствуют особенностям и формам реализации аппаратуры согласно второму аспекту изобретения.Additional features and forms of implementation of the method according to the fourth aspect of the invention correspond to the features and forms of implementation of the apparatus according to the second aspect of the invention.

Согласно пятому аспекту изобретение относится к аппаратуре для декодирования видеопотока, включающей в себя процессор и память. Память хранит инструкции, которые вынуждают процессор выполнять способ согласно первому аспекту.According to a fifth aspect, the invention relates to equipment for decoding a video stream, including a processor and a memory. The memory stores instructions that cause the processor to execute the method according to the first aspect.

Согласно шестому аспекту изобретение относится к аппратуре для кодирования видеопотока, включающей в себя процессор и память. Память хранит инструкции, которые вынуждают процессор выполнять способ согласно второму аспекту.According to a sixth aspect, the invention relates to a video stream encoding apparatus including a processor and a memory. The memory stores instructions that cause the processor to execute the method according to the second aspect.

Согласно седьмому аспекту предложен считываемый компьютером носитель, на котором хранятся инструкции, которые при исполнении обеспечивают работу одного или более процессоров, выполненных с возможностью кодирования видеоданных. Инструкции вынуждают один или более процессоров выполнять способ согласно первому или второму аспекту или любому возможному варианту осуществления первого или второго аспекта.According to a seventh aspect, a computer-readable medium is provided that stores instructions that, when executed, operate one or more processors capable of encoding video data. The instructions cause one or more processors to execute a method according to the first or second aspect, or any possible embodiment of the first or second aspect.

Согласно восьмому аспекту изобретение относится к компьютерной программе, содержащей программный код для выполнения способа согласно первому или второму аспекту или любому возможному варианту осуществления первого или второго аспекта при исполнении на компьютере.According to an eighth aspect, the invention relates to a computer program containing program code for executing the method according to the first or second aspect, or any possible embodiment of the first or second aspect, when executed on a computer.

Планарный режим имеет высокую частоту, используемую в качестве режима внутреннего предсказания. Эффективность кодировки процесса кодировки может быть повышена за счет использования информации, чтобы указать, является ли режим внутреннего предсказания текущего блока планарным режимом по сравнению с уровнем техники, когда режим внутреннего предсказания текущего блока содержится в наборе наиболее вероятных режимов, а ближайшая соседняя опорная строка к текущему блоку используется для внутреннего предсказания.The planar mode has a high frequency used as the intra prediction mode. The encoding efficiency of the encoding process can be improved by using information to indicate whether the intra prediction mode of the current block is a planar mode, as compared to the prior art, when the intra prediction mode of the current block is contained in the set of most likely modes, and the nearest adjacent reference row to the current block is used for intra prediction.

Подробности одного или более вариантов осуществления изложены на прилагаемых чертежах и в нижеследующем описании. Другие особенности, цели и преимущества будут очевидны из описания, чертежей и формулы изобретения.Details of one or more embodiments are set forth in the accompanying drawings and in the following description. Other features, purposes and advantages will be apparent from the description, drawings and claims.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF THE DRAWINGS

Далее варианты осуществления изобретения описаны более подробно со ссылкой на сопровождающие фигуры и чертежи, на которых:Further embodiments of the invention are described in more detail with reference to the accompanying figures and drawings, in which:

Фиг. 1A является блок-схемой, показывающей пример системы видеокодировки, выполненной с возможностью реализации вариантов осуществления изобретения;Fig. 1A is a block diagram showing an example of a video encoding system capable of implementing embodiments of the invention;

Фиг. Фиг.1B является блок-схемой, показывающей другой пример системы видеокодировки, выполненной с возможностью реализации;Fig. 1B is a block diagram showing another example of an implementable video coding system;

Фиг. 2 является блок-схемой, показывающей пример видеокодера, выполненного с возможностью реализации вариантов осуществления изобретения;Fig. 2 is a block diagram showing an example of a video encoder capable of implementing embodiments of the invention;

Фиг. 3 является блок-схемой, показывающей пример структуры видеодекодера, выполненного с возможностью реализации вариантов осуществления изобретения;Fig. 3 is a block diagram showing an example of the structure of a video decoder capable of implementing embodiments of the invention;

Фиг. 4 является блок-схемой, иллюстрирующей пример аппаратуры кодирования или аппаратуры декодирования;Fig. 4 is a block diagram illustrating an example of an encoding apparatus or a decoding apparatus;

Фиг. 5 является блок-схемой, иллюстрирующей другой пример аппаратуры кодирования или аппаратуры декодирования;Fig. 5 is a block diagram illustrating another example of encoding apparatus or decoding apparatus;

Фиг. 6 - блок-схема, иллюстрирующая пример инструмента кодировки множественных опорных строк (MRL);Fig. 6 is a block diagram illustrating an example of a multiple reference string (MRL) encoding tool;

Фиг. 7 - блок-схема, иллюстрирующая пример разделения блоков 4 × 8 и, 8 × 4; Fig. 7 is a block diagram illustrating an example of division of 4×8 and 8×4 blocks;

Фиг. 8 - блок-схема, иллюстрирующая пример разделения всех блоков, кроме 4 × 8, 8 × 4 и 4 × 4;Fig. 8 is a block diagram illustrating an example of division of all blocks except 4×8, 8×4 and 4×4;

Фиг. 9 - блок-схема, иллюстрирующая пример контекстного моделирования/кодирования CABAC;Fig. 9 is a block diagram illustrating an example of CABAC context modeling/coding;

Фиг. 10 - блок-схема, иллюстрирующая пример левого (L) и верхнего (A) соседних блоков текущего блока;Fig. 10 is a block diagram illustrating an example of left (L) and top (A) neighboring blocks of the current block;

Фиг. 11 - блок-схема, иллюстрирующая режимы внутреннего предсказания;Fig. 11 is a block diagram illustrating intra prediction modes;

Фиг. 12A иллюстрирует варианты осуществления способа 1200 внутреннего предсказания текущего блока, реализованного устройством декодирования согласно настоящему изобретению;Fig. 12A illustrates embodiments of a current block intra prediction method 1200 implemented by a decoder according to the present invention;

Фиг. 12B иллюстрирует варианты осуществления способа 1210 внутреннего предсказания текущего блока, реализованного устройством декодирования согласно настоящему изобретению;Fig. 12B illustrates embodiments of a current block intra prediction method 1210 implemented by a decoder according to the present invention;

Фиг. 13 иллюстрирует варианты осуществления способа 1300 внутреннего предсказания текущего блока, реализованного устройством кодирования согласно настоящему изобретению;Fig. 13 illustrates embodiments of a current block intra prediction method 1300 implemented by an encoder according to the present invention;

Фиг. 14 иллюстрирует варианты осуществления устройства 1400 декодирования для использования в декодере изображений согласно настоящему изобретению;Fig. 14 illustrates embodiments of a decoding apparatus 1400 for use in an image decoder according to the present invention;

Фиг. 15 иллюстрирует варианты осуществления устройства 1500 кодирования для использования в кодере изображений согласно настоящему изобретению;Fig. 15 illustrates embodiments of an encoder 1500 for use in an image encoder according to the present invention;

Фиг. 16 - блок-схема, показывающая примерную структуру системы 3100 поставки контента, которая реализует услугу доставки контента; иFig. 16 is a block diagram showing an exemplary structure of a content delivery system 3100 that implements a content delivery service; And

Фиг. 17 является блок-схемой, показывающей структуру примерного терминального устройства.Fig. 17 is a block diagram showing the structure of an exemplary terminal device.

Следующие одинаковые ссылочные позиции относятся к одинаковым или, по меньшей мере, функционально эквивалентным особенностям, если явно не указано иное.The following like reference numerals refer to the same or at least functionally equivalent features, unless expressly stated otherwise.

ПОДРОБНОЕ ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯDETAILED DESCRIPTION OF EMBODIMENTS

В нижеследующем описании делается ссылка на сопроводительные чертежи, которые составляют часть данного раскрытия и которые показывают, в качестве иллюстрации, конкретные аспекты вариантов осуществления изобретения или конкретные аспекты, в которых варианты осуществления настоящего изобретения могут быть использованы. Понятно, что варианты осуществления данного изобретения могут быть использованы в других аспектах и содержат структурные или логические изменения, не показанные на фигурах. Поэтому нижеследующее подробное описание не следует воспринимать в ограничивающем смысле, и объем настоящего изобретения определяется прилагаемой формулой изобретения.In the following description, reference is made to the accompanying drawings, which form part of this disclosure and which show, by way of illustration, specific aspects of embodiments of the invention or specific aspects in which embodiments of the present invention may be used. It is clear that embodiments of the present invention can be used in other aspects and contain structural or logical changes not shown in the figures. Therefore, the following detailed description should not be taken in a limiting sense, and the scope of the present invention is defined by the appended claims.

Например, понятно, что раскрытие, связанное с описанным способом, также может быть справедливо для соответствующего устройства или системы, выполненных с возможностью выполнения способа, и наоборот. Например, если описан один или множество конкретных этапов способа, соответствующее устройство может включать в себя один или множество блоков, например функциональных блоков, чтобы выполнять описанный один или множество этапов способа (например, один блок, выполняющий один или множество этапов, или множество блоков, каждый из которых выполняет один или более из множества этапов), даже если такой один или более блоков не описаны явным образом или не проиллюстрированы на фигурах. С другой стороны, например, если конкретное устройство описано на основе одного или множества блоков, например функциональных блоков, соответствующий способ может включать в себя один этап для выполнения функциональных возможностей одного или множества блоков (например, один этап, выполняющий функциональные возможности одного или множества блоков, или множество этапов, каждый из которых выполняет функциональные возможности одного или более из множества блоков), даже если такой один или множество этапов не описаны явным образом или не проиллюстрированы на фигурах. Кроме того, понятно, что признаки различных примерных вариантов осуществления и/или аспектов, описанных в данном документе, могут быть объединены друг с другом, если КОНКРЕТНО не указано иное.For example, it is understood that the disclosure associated with the described method may also be true for the corresponding device or system configured to perform the method, and vice versa. For example, if one or more specific method steps are described, the corresponding device may include one or more blocks, such as functional blocks, to perform the one or more method steps described (for example, one block performing one or more steps, or a plurality of blocks each of which performs one or more of a plurality of steps), even if such one or more blocks are not explicitly described or illustrated in the figures. On the other hand, for example, if a particular device is described in terms of one or more blocks, such as functional blocks, the corresponding method may include one step to perform the functionality of one or more blocks (for example, one step to perform the functionality of one or more blocks , or a plurality of steps, each of which performs the functionality of one or more of the plurality of blocks), even if such one or more steps are not explicitly described or illustrated in the figures. In addition, it is understood that features of the various exemplary embodiments and/or aspects described herein may be combined with one another unless SPECIFICLY indicated otherwise.

Видеокодировка обычно относится к обработке последовательности картинок, которые образуют видео или видеопоследовательность. Вместо термина «картинка» термины «кадр» или «изображение» могут использоваться как синонимы в области видеокодировки. Видеокодировка (или кодировка (coding) в целом) содержит две части: видеокодирование (video encoding) и видеодекодирование. Видеокодирование выполняется на стороне источника и обычно содержит обработку (например, посредством сжатия) исходных видеокартинок для сокращения объема данных, требуемого для представления видеокартинок (для более эффективного хранения и/или передачи). Видеодекодирование выполняется на стороне места назначения (адресата) и обычно содержит обратную обработку по сравнению с кодером для восстановления видеоизображений. Варианты осуществления, относящиеся к «кодированию» видеокартинок (или картинок в целом), должны пониматься как относящиеся к «кодированию» или «декодированию» видеокартинок или соответствующих видеопоследовательностей. Комбинация кодирующей части и декодирующей части также называется CODEC (кодирование и декодирование).Video encoding generally refers to the processing of a sequence of pictures that form a video or video sequence. Instead of the term "picture", the terms "frame" or "image" may be used interchangeably in the field of video encoding. Video encoding (or encoding in general) contains two parts: video encoding and video decoding. Video encoding is performed on the source side and typically involves processing (eg, by compressing) the source video images to reduce the amount of data required to represent the video images (for more efficient storage and/or transmission). Video decoding is performed on the destination (destination) side and usually contains inverse processing compared to the encoder for recovering video images. Embodiments relating to "encoding" video pictures (or pictures in general) should be understood as referring to "encoding" or "decoding" video pictures or corresponding video sequences. The combination of an encoding part and a decoding part is also called CODEC (encoding and decoding).

В случае видеокодировки без потерь исходные видеокартинки могут быть восстановлены, т.е. восстановленные видеокартинки имеют такое же качество, что и исходные видеокартинки (при условии отсутствия потерь передачи или других потерь данных во время хранения или передачи). В случае видеокодировки с потерями выполняется дополнительное сжатие, например посредством квантования, для сокращения объема данных, представляющих видеокартинки, которые не могут быть полностью восстановлены на декодере, т.е. качество восстановленных видеокартинок ниже или хуже по сравнению с качеством исходных видеокартинок.In the case of lossless video encoding, the original video images can be restored, i.e. restored video images have the same quality as the original video images (assuming there are no transmission losses or other data loss during storage or transmission). In the case of lossy video coding, additional compression is performed, for example by quantization, to reduce the amount of data representing video pictures that cannot be fully reconstructed at the decoder, i.e. the quality of the restored video images is lower or worse than the quality of the original video images.

Несколько стандартов видеокодировки принадлежат к группе «гибридных видеокодеков с потерями» (т.е. сочетают пространственное и временное предсказание в области выборки и кодировка с 2D преобразованием для применения квантования в области преобразования). Каждая картинка видеопоследовательности обычно разделяется на набор неперекрывающихся блоков, и кодировка обычно выполняется на уровне блоков. Другими словами, в кодере видео обычно обрабатывается, то есть кодируется, на уровне блока (видеоблока), например с использованием пространственного (интра-картинки) предсказания и/или временного (интер-картинки) предсказания для генерирования блока предсказания, блок предсказания вычитается из текущего блока (блока, который в настоящее время обрабатывается/подлежит обработке) для получения остаточного блока, остаточный блок преобразуется и этот остаточный блок квантуется в области преобразования для сокращения объема данных (сжатия), которые подлежат передаче, тогда как в декодере обратная обработка по сравнению с кодером применяется к кодированному или сжатому блоку для восстановления текущего блока для представления. Кроме того, кодер дублирует цикл обработки декодера, так что они оба будут генерировать идентичные предсказания (например, интра- и внешнего предсказания) и/или восстановления для обработки, то есть кодировки (coding), последующих блоков.Several video encoding standards belong to the group of "hybrid lossy video codecs" (ie, combine spatial and temporal sample-domain prediction and 2D transform encoding to apply transform-domain quantization). Each picture of a video sequence is usually divided into a set of non-overlapping blocks, and encoding is usually done at the block level. In other words, in the encoder, the video is usually processed, that is, encoded, at the block (video block) level, for example, using spatial (intra-picture) prediction and/or temporal (inter-picture) prediction to generate a prediction block, the prediction block is subtracted from the current block (the block currently being processed/to be processed) to obtain a residual block, the residual block is transformed and this residual block is quantized in the transformation region to reduce the amount of data (compression) to be transmitted, while in the decoder the inverse processing compared to applied to the encoded or compressed block by the encoder to reconstruct the current block for presentation. In addition, the encoder duplicates the processing cycle of the decoder, so that they will both generate identical predictions (eg, intra- and inter-prediction) and/or reconstruction for processing, ie encoding (coding), subsequent blocks.

В нижеследующих вариантах осуществления системы 10 видеокодировки, видеокодер 20 и видеодекодер 30 описаны на основе Фиг. с 1 по 3.In the following embodiments of video encoding system 10, video encoder 20 and video decoder 30 are described based on FIG. 1 to 3.

Фиг. 1A представляет собой схематичное блочное представление, иллюстрирующее примерную систему 10 кодировки, например систему 10 видеокодирования (или сокращенно систему 10 кодировки), которая может использовать методики из настоящей заявки. Видеокодер 20 (или сокращенно кодер 20) и видеодекодер 30 (или сокращенно декодер 30) системы 10 видеокодировки представляют примеры устройств, которые могут быть выполнены с возможностью выполнения методик в соответствии с различными примерами, описанными в настоящей заявке.Fig. 1A is a schematic block diagram illustrating an exemplary encoding system 10, such as a video encoding system 10 (or encoding system 10 for short), that may use the techniques of the present application. Video encoder 20 (or encoder 20 for short) and video decoder 30 (or decoder 30 for short) of video encoding system 10 represent examples of devices that can be configured to perform techniques in accordance with the various examples described herein.

Как показано на ФИГ. 1A, система 10 кодировки содержит устройство-источник 12, выполненное с возможностью предоставления закодированных данных 21 картинки, например в устройство-получатель 14 для декодирования закодированных данных 13 картинки.As shown in FIG. 1A, the encoding system 10 includes a source device 12 configured to provide the encoded picture data 21 to, for example, a sink device 14 for decoding the encoded picture data 13.

Устройство-источник 12 содержит кодер 20 и может дополнительно, т.е. необязательно, содержать источник 16 картинки, препроцессор (или блок препроцессора) 18, например, препроцессор 18 картинки, и интерфейс связи или блок 22 связи.Source device 12 includes an encoder 20 and may additionally, i. e. optionally, contain a picture source 16, a preprocessor (or preprocessor unit) 18, such as a picture preprocessor 18, and a communication interface or communication unit 22.

Источник 16 картинки может содержать или быть устройством захвата картинки любого типа, например камерой для захвата картинки реального мира, и/или устройством генерирования картинки любого типа, например процессором компьютерной графики для генерирования компьютерной анимированной картинки, или любым типом другого устройства для получения и/или предоставления картинки реального мира, генерируемой компьютером картинки (например, содержимого экрана, картинки виртуальной реальности (VR)) и/или любой их комбинации (например, картинки дополненной реальности (AR)). Источником картинки может быть любой тип памяти или хранилища, в котором хранятся любые из вышеупомянутых картинок.The picture source 16 may comprise or be any type of picture capture device, such as a camera for capturing a real world picture, and/or any type of picture generating device, such as a computer graphics processor for generating a computer animated picture, or any type of other device for capturing and/or providing a real-world image, a computer-generated image (eg, screen content, virtual reality (VR) image), and/or any combination thereof (eg, augmented reality (AR) image). The source of the picture can be any type of memory or storage that stores any of the above pictures.

В отличие от препроцессора 18 и обработки, выполняемой посредством блока 18 препроцессора, картинка или данные 17 картинки также могут именоваться необработанной (raw) картинкой или необработанными данными 17 картинки.Unlike the preprocessor 18 and the processing performed by the preprocessor unit 18, the picture or picture data 17 may also be referred to as a raw picture or raw picture data 17 .

Препроцессор 18 выполнен с возможностью приема (необработанных) данных 17 картинки и выполнения предварительной обработки в отношении этих данных 17 картинки для получения предварительно обработанной картинки 19 или предварительно обработанных данных 19 картинки. Предварительная обработка, выполняемая препроцессором 18, может, например, содержать обрезку, преобразование цветового формата (например, из RGB в YCbCr), цветокоррекцию или шумоподавление. Можно понять, что блок 18 препросессора может быть необязательным компонентом. The preprocessor 18 is configured to receive the (raw) picture data 17 and perform pre-processing on that picture data 17 to obtain a pre-processed picture 19 or pre-processed picture data 19. The pre-processing performed by the preprocessor 18 may, for example, include cropping, color format conversion (eg from RGB to YCbCr), color correction or denoising. It can be understood that the preprocessor block 18 may be an optional component.

Видеокодер 20 выполнен с возможностью приема предварительно обработанных данных 19 картинки и предоставления закодированных данных 21 картинки (дополнительные подробности будут описаны ниже, например, на основе Фиг. 2).Video encoder 20 is configured to receive pre-processed picture data 19 and provide encoded picture data 21 (more details will be described below, for example, based on FIG. 2).

Интерфейс 22 связи устройства-источника 12 может быть выполнен с возможностью приема закодированных данных 21 картинки и передачи этих закодированных данных 21 картинки (или любой их дополнительно обработанной версии) по каналу 13 связи в другое устройство, например, устройство-получатель 14 или любое другое устройство для сохранения или непосредственного восстановления. Communication interface 22 of source device 12 may be configured to receive encoded picture data 21 and transmit that encoded picture data 21 (or any further processed version thereof) over a communication channel 13 to another device, such as a destination device 14 or any other device. for saving or immediate restoration.

Устройство-получатель 14 содержит декодер 30 (например, видеодекодер 30) и может дополнительно, т.е. необязательно, содержать интерфейс связи или блок 28 связи, постпроцессор 32 (или блок 32 постобработки) и устройство 34 отображения.Destination device 14 includes a decoder 30 (eg, video decoder 30) and may additionally, i. e. optionally, contain a communication interface or communication unit 28, a post-processor 32 (or post-processing unit 32) and a display device 34.

Интерфейс 28 связи устройства-получателя 14 выполнен с возможностью приема закодированных данных 21 картинки (или любой их дополнительно обработанной версии), например непосредственно от устройства-источника 12 или из любого другого источника, например запоминающего устройства, например устройства хранения закодированных данных картинки, и предоставления закодированных данных 21 картинки в декодер 30.Communication interface 28 of sink device 14 is configured to receive encoded picture data 21 (or any further processed version thereof), such as directly from source device 12 or from any other source, such as a storage device, such as an encoded picture data storage device, and provide encoded picture data 21 to decoder 30.

Интерфейс 22 связи и интерфейс 28 связи могут быть выполнены с возможностью передачи или приема данных 21 закодированной картинки или закодированных данных 13 через прямую линию связи между устройством-источником 12 и устройством-получателем 14, например прямое проводное или беспроводное соединение, или через сеть любого типа, например проводную или беспроводную сеть или любое их сочетание, или любую частную и общедоступную сеть, или любое их сочетание.Communication interface 22 and communication interface 28 may be configured to transmit or receive encoded picture data 21 or encoded data 13 via a direct link between source device 12 and destination device 14, such as a direct wired or wireless connection, or over any type of network. , such as a wired or wireless network, or any combination thereof, or any private and public network, or any combination thereof.

Интерфейс 22 связи может быть, например, выполнен с возможностью упаковки данных 21 закодированной картинки в подходящий формат, например, в пакеты, и/или обработки данных закодированной картинки с использованием любого типа кодирования передачи или обработки для передачи по линии связи или сети связи.The communication interface 22 may, for example, be configured to package the encoded picture data 21 into a suitable format, such as packets, and/or process the encoded picture data using any type of transmission coding or processing for transmission over a communication link or network.

Интерфейс 28 связи, являющийся аналогом интерфейса 22 связи, может быть, например, выполнен с возможностью приема переданных данных и обработки данных передачи с использованием любого вида соответствующего декодирования передачи или обработки и/или распаковки для получения закодированных данных 21 картинки.The communication interface 28, analogous to the communication interface 22, may, for example, be configured to receive the transmitted data and process the transmission data using any kind of appropriate transmission decoding or processing and/or decompression to obtain encoded picture data 21.

Как интерфейс 22 связи, так и интерфейс 28 связи могут быть сконфигурированы как интерфейсы однонаправленной связи, как указано стрелкой для канала 13 связи на Фиг. 1A, указывающей от устройства-источника 12 к устройству-получателю 14, или как интерфейсы двунаправленной связи, и могут быть выполнены с возможностью, например отправки и приема сообщений, например, для установления соединения, для подтверждения и обмена любой другой информацией, относящейся к линии связи и/или передаче данных, например, передаче закодированных данных картинки.Both communication interface 22 and communication interface 28 may be configured as unidirectional communication interfaces, as indicated by the arrow for communication channel 13 in FIG. 1A pointing from source device 12 to destination device 14, or as bi-directional communication interfaces, and can be configured to, for example, send and receive messages, for example, to establish a connection, to acknowledge and exchange any other information related to the line communication and/or data transmission, for example, the transmission of encoded picture data.

Декодер 30 выполнен с возможностью приема закодированных данных 21 картинки и предоставления декодированных данных 31 картинки или декодированной картинки 31 (дополнительные подробности будут описаны ниже, например, на основе Фиг.3 или Фиг.5. The decoder 30 is configured to receive encoded picture data 21 and provide decoded picture data 31 or decoded picture 31 (more details will be described below, for example, based on Fig. 3 or Fig. 5.

Постпроцессор 32 устройства-получателя 14 выполнен с возможностью постобработки декодированных данных 31 картинки (также называемых данными восстановленной картинки), таких как декодированная картинка 31, чтобы получить пост-обработанные данные 33 картинки, например, пост-обработанную картинку 33. Постобработка, выполняемая блоком 32 постобработки, может содержать, например, преобразование цветового формата (например, из YCbCr в RGB), цветокоррекцию, обрезку или повторную выборку, или любую другую обработку, например, для подготовки декодированных данных 31 картинки для отображения, например, с помощью устройства 34 отображения.The post-processor 32 of the destination device 14 is configured to post-process the decoded picture data 31 (also referred to as reconstructed picture data), such as the decoded picture 31, to obtain post-processed picture data 33, such as the post-processed picture 33. Post-processing performed by block 32 post-processing may include, for example, color format conversion (for example, from YCbCr to RGB), color correction, cropping or resampling, or any other processing, for example, to prepare the decoded picture data 31 for display, for example, using the display device 34.

Устройство 34 отображения из состава устройства-получателя 14 выполнено с возможностью приема пост-обработанных данных 33 картинки для отображения картинки, например, пользователю или зрителю. Устройство 34 отображения может представлять собой или содержать дисплей любого типа для представления восстановленной картинки, например, интегрированного или внешнего дисплея или монитора. Дисплеи могут, например, содержать жидкокристаллические дисплеи (LCD), дисплеи на органических светодиодах (OLED), плазменные дисплеи, проекторы, дисплеи на микро-LED, жидкий кристалл на кремнии (LCoS), цифровой световой процессор (DLP) или другой дисплей любого типа.The display device 34 of the recipient device 14 is configured to receive post-processed picture data 33 for displaying the picture to, for example, a user or viewer. The display device 34 may be or include any type of display for presenting the reconstructed picture, such as an integrated or external display or monitor. The displays may, for example, comprise liquid crystal displays (LCD), organic light emitting diode (OLED) displays, plasma displays, projectors, micro-LED displays, liquid crystal on silicon (LCoS), digital light processor (DLP), or any other type of display. .

Хотя Фиг. 1A иллюстрирует устройство-источник 12 и устройство-получатель 14 как отдельные устройства, варианты осуществления устройств также могут содержать оба или обе функциональные возможности, устройство-источник 12 или соответствующую функциональную возможность и устройство-получатель 14 или соответствующую функциональную возможность. В таких вариантах осуществления устройство-источник 12 или соответствующая функциональная возможность и устройство-получатель 14 или соответствующая функциональная возможность могут быть реализованы с использованием одного и того же аппаратного и/или программного обеспечения или с использованием отдельного аппаратного и/или программного обеспечения или любой их комбинации.Although Fig. 1A illustrates source device 12 and sink device 14 as separate devices, device embodiments may also include both or both functionality, source device 12 or related functionality, and sink device 14 or related functionality. In such embodiments, source device 12 or related functionality and sink device 14 or corresponding functionality may be implemented using the same hardware and/or software, or using separate hardware and/or software, or any combination thereof. .

Как будет очевидно для специалиста на основании описания, наличие и (точное) разделение функциональных возможностей различных блоков или функциональных возможностей в устройстве-источнике 12 и/или устройстве-получателе 14, как показано на Фиг.1A, может варьироваться в зависимости от фактического устройства и применения.As will be apparent to those skilled in the art based on the description, the presence and (exact) separation of functionality of different blocks or functionality in source device 12 and/or sink device 14 as shown in FIG. 1A may vary depending on the actual device and applications.

Кодер 20 (например, видеокодер 20) или декодер 30 (например, видеодекодер 30) или и кодер 20, и декодер 30 могут быть реализованы через схему обработки, как показано на Фиг. 1B, такую как один или более микропроцессоров, цифровые сигнальные процессоры (DSP), специализированные интегральные схемы (ASIC), программируемые вентильные матрицы (FPGA), дискретную логику, аппаратное обеспечение, выделенное видеокодировку или любые их комбинации. Кодер 20 может быть реализован через схему 46 обработки для воплощения различных модулей, как обсуждалось в отношении кодера 20 с ФИГ. 2 и/или любой другой системы кодера или подсистемы, описанной в данном документе. Декодер 30 может быть реализован через схему 46 обработки для воплощения различных модулей, как обсуждалось в отношении декодера 30 с ФИГ. 3 и/или любой другой системы декодера или подсистемы, описанной в данном документе. Схема обработки может быть выполнена с возможностью выполнения различных операций, которые будут описаны ниже. Как показано на Фиг.5, если методики частично реализованы в программном обеспечении, устройство может хранить инструкции для программного обеспечения на подходящем долговременном машиночитаемом носителе данных и может выполнять инструкции в аппаратных средствах, используя один или более процессоров для выполнения методик этого раскрытия. Любой из видеокодера 20 и видеодекодера 30 может быть интегрирован как часть объединенного кодера/декодера (CODEC) в одном устройстве, например, как показано на Фиг.1B.Encoder 20(e.g. video encoder 20) or decoder 30 (e.g. video decoder 30) or both encoder 20 and decoder 30 may be implemented via a processing circuit as shown in FIG. 1B, such as one or more microprocessors, digital signal processors (DSPs), application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), discrete logic, dedicated video encoding hardware, or any combinations thereof. Encoder 20 may be implemented via processing circuitry 46 to implement various modules, as discussed with respect to encoder 20 of FIG. 2 and/or any other encoder system or subsystem described herein. Decoder 30 may be implemented via processing circuitry 46 to implement various modules, as discussed in relation to decoder 30 of FIG. 3 and/or any other decoder system or subsystem described herein. The processing circuit may be configured to perform various operations, which will be described below. As shown in FIG. 5, if the techniques are partially implemented in software, the device may store instructions for the software on a suitable non-volatile computer-readable storage medium and may execute the instructions in hardware using one or more processors to execute the techniques of this disclosure. Any of video encoder 20 and video decoder 30 may be integrated as part of a combined encoder/decoder (CODEC) in a single device, eg as shown in FIG. 1B.

Устройство-источник 12 и устройство-получатель 14 могут содержать любое из широкого диапазона устройств, в том числе любые виды портативных или стационарных устройств, например, ноутбуки или портативные компьютеры, мобильные телефоны, смартфоны, планшеты или планшетные компьютеры, камеры, настольные компьютеры, телевизионные приставки, телевизоры, устройства отображения, цифровые медиаплееры, игровые консоли, устройства потоковой передачи видео (например, серверы служб контента или серверы доставки контента), широковещательное приемное устройство, широковещательное передающее устройство или подобное, и могут использовать операционную систему любого типа или обходиться без нее. В некоторых случаях устройство-источник 12 и устройство-получатель 14 могут быть оборудованы для беспроводной связи. Таким образом, устройство-источник 12 и устройство-получатель 14 могут быть устройствами беспроводной связи.Source device 12 and destination device 14 may comprise any of a wide range of devices, including any type of portable or stationary device, such as laptops or laptops, mobile phones, smartphones, tablets or tablet computers, cameras, desktop computers, televisions, set-top boxes, televisions, display devices, digital media players, game consoles, video streaming devices (for example, content service servers or content delivery servers), broadcast receiver, broadcast transmitter or the like, and may use any type of operating system or do without it . In some cases, source device 12 and destination device 14 may be equipped for wireless communication. Thus, source device 12 and destination device 14 may be wireless communication devices.

В некоторых случаях система 10 видеокодировки, проиллюстрированная на Фиг. 1A, является лишь примером, а методики настоящей заявки могут применяться к настройкам видеокодировки (такого как видеокодирование или видеодекодирование), которые не обязательно включают в себя передачу каких-либо данных между устройствами кодирования и декодирования. В других примерах данные извлекаются из локальной памяти, передаются в потоковом режиме по сети или подобное. Устройство видеокодирования может кодировать и сохранять данные в память, и/или устройство видеодекодирования может извлекать и декодировать данные из памяти. В некоторых примерах кодирование и декодирование выполняется устройствами, которые связь друг с другом не осуществляют, а просто кодируют данные в память и/или извлекают и декодируют данные из памяти.In some cases , the video encoding system 10 illustrated in FIG. 1A is only an example, and the techniques of the present application may apply to video encoding settings (such as video encoding or video decoding) that do not necessarily involve any data transfer between encoding and decoding devices. In other examples, data is retrieved from local memory, streamed over a network, or the like. The video encoder may encode and store data in the memory, and/or the video decoder may retrieve and decode the data from the memory. In some examples, encoding and decoding is performed by devices that do not communicate with each other, but simply encode data into memory and/or retrieve and decode data from memory.

Для удобства описания здесь описаны варианты осуществления данного изобретения, например, со ссылкой на высокоэффективную видеокодировку (HEVC) или на эталонное программное обеспечение универсальной видеокодировки (VVC), стандарт видеокодировки следующего поколения, разрабатываемый объединенной группой сотрудничества по видеокодировке (JCT-VC) экспертной группы по видеокодировке ITU-T (VCEG) и экспертной группы по движущимся изображениям ISO/IEC (MPEG). Обычный специалист в данной области техники поймет, что варианты осуществления данного изобретения не ограничиваются HEVC или VVC.For convenience of description, embodiments of the present invention are described herein, for example, with reference to High Efficiency Video Coding (HEVC) or Universal Video Coding (VVC) reference software, the next generation video coding standard being developed by the Joint Video Coding Collaborative (JCT-VC) Expert Group on ITU-T Video Coding (VCEG) and the ISO/IEC Moving Picture Expert Group (MPEG). One of ordinary skill in the art will appreciate that the embodiments of the present invention are not limited to HEVC or VVC.

Кодер и способ кодированияEncoder and encoding method

Фиг. 2 показывает схематичную блок-схему примерного видеокодера 20, который выполнен с возможностью реализации методик настоящей заявки. В примере на фиг.2 видеокодер 20 содержит вход 201 (или входной интерфейс 201), блок 204 вычисления остатка, блок 206 обработки преобразования, блок 208 квантования, блок 210 обратного квантования и блок 212 обработки обратного преобразования, блок 214 восстановления, блок 220 контурной фильтрации, буфер 230 декодированных картинок (DPB), блок 260 выбора режима, блок 270 энтропийного кодирования и выход 272 (или выходной интерфейс 272). Блок 260 выбора режима может включать в себя блок 244 внешнего предсказания, блок 254 внутреннего предсказания и блок 262 разделения. Блок 244 внешнего предсказания может включать в себя блок оценки движения и блок компенсации движения (не показаны). Видеокодер 20, показанный на фиг.2, также может называться гибридным видеокодером или видеокодером согласно гибридному видеокодеку.Fig. 2 shows a schematic block diagram of an exemplary video encoder 20 that is configured to implement the techniques of the present application. In the example of FIG. 2, video encoder 20 comprises an input 201 (or input interface 201), a residual calculation block 204, a transform processing block 206, a quantization block 208, an inverse quantization block 210, and an inverse transform processing block 212, a reconstruction block 214, a contour block 220 filtering, decoded picture buffer (DPB) 230, mode selection block 260, entropy encoding block 270, and output 272 (or output interface 272). The mode selector 260 may include an inter-predictor 244, an intra-predictor 254, and a splitter 262. Inter prediction block 244 may include a motion estimator and a motion compensation block (not shown). The video encoder 20 shown in FIG. 2 may also be referred to as a hybrid video encoder or a video encoder according to a hybrid video codec.

Блок 204 вычисления остатка, блок 206 обработки преобразования, блок 208 квантования, блок 260 выбора режима могут относиться к формированию пути сигнала прямой связи кодера 20, тогда как блок 210 обратного квантования, блок 212 обработки обратного преобразования, блок 214 восстановления, буфер 216, контурный фильтр 220, буфер 230 (DPB) декодированных картинок, блок 244 внешнего предсказания и блок 254 внутреннего предсказания могут относится к формированию пути сигнала обратной связи видеокодера 20, при этом путь сигнала обратной связи видеокодера 20 соответствует пути сигнала декодера (см. видеодекодер 30 на Фиг. 3). Блок 210 обратного квантования, блок 212 обработки обратного преобразования, блок 214 восстановления, контурный фильтр 220, буфер (DPB) 230 декодированных картинок, блок 244 внешнего предсказания и блок 254 внутреннего предсказания также относятся к формированию «встроенного декодера» видеокодера 20.The residual calculator 204, the transform processing block 206, the quantizer 208, the mode selector 260 may relate to generating the forward signal path of the encoder 20, while the inverse quantizer 210, the inverse transform processor 212, the reconstruction block 214, the loop buffer 216 filter 220, decoded picture buffer (DPB) 230, inter predictor 244, and intra predictor 254 may relate to generating the feedback signal path of video encoder 20, wherein the feedback signal path of video encoder 20 corresponds to the signal path of the decoder (see video decoder 30 in FIG. .3). An inverse quantization block 210, an inverse transform processing block 212, a reconstruction block 214, a loop filter 220, a decoded picture buffer (DPB) 230, an inter prediction block 244, and an intra prediction block 254 are also related to the formation of the “embedded decoder” of the video encoder 20.

Картинки и разделение картинки (картинки и блоки)Pictures and picture sharing (pictures and blocks)

Кодер 20 может быть выполнен с возможностью приема, например, через ввод 201 картинки 17 (или данных 17 картинки), например, картинки из последовательности картинок, образующих видео или видеопоследовательность. Принятая картинка или данные картинки также могут представлять собой предварительно обработанную картинку 19 (или предварительно обработанные данные 19 картинки). Для простоты нижеследующее описание ссылается на картинку 17. Картинка 17 также может именоваться текущей картинкой или картинкой, которая подлежит кодированию (в частности, при видеокодировке, чтобы отличать текущую картинку от других картинок, например, ранее закодированных и/или декодированных картинок той же видеопоследовательности, т.е. видеопоследовательности, которая также содержит текущую картинку).The encoder 20 may be configured to receive, for example, via input 201 a picture 17 (or picture data 17), for example a picture from a sequence of pictures constituting a video or video sequence. The received picture or picture data may also be a pre-processed picture 19 (or pre-processed picture data 19). For simplicity, the following description refers to picture 17. Picture 17 may also be referred to as the current picture or the picture to be encoded (particularly in video encoding, to distinguish the current picture from other pictures, such as previously encoded and/or decoded pictures of the same video sequence, i.e. a video sequence that also contains the current picture).

(Цифровая) картинка является или может рассматриваться как двумерный массив или матрица выборок со значениями интенсивности. Выборка в массиве также может упоминаться как пиксель (сокращенная форма элемента картинки) или pel (элемент изображения). Число выборок в горизонтальном и вертикальном направлении (или оси) массива или картинки определяет размер и/или разрешение картинки. Для представления цвета обычно используются три цветовые компоненты, т.е. картинка может быть представлена или включать в себя три массива выборок. В формате RBG или цветовом пространстве картинка содержит соответствующий массив красных, зеленых или синих выборок. Однако при видеокодировке каждый пиксель обычно представлен в формате яркости и цветности или цветовом пространстве, например YCbCr, которое содержит компоненту яркости, обозначаемую Y (иногда вместо этого также используется L), и две компоненты цветности (цветоразностные компоненты), обозначаемые Cb и Cr. Компонента Y яркости (luminance) (или сокращенно яркость (luma)) представляет яркость (brightness) или интенсивность уровня серого (например, как в полутоновой картинке), в то время как две компоненты Cb и Cr цветности (или сокращенно цветности (chroma)) представляют компоненты информации о цветности (chromaticity) или цвете. Соответственно, картинка в формате YCbCr содержит массив выборок яркости со значениями (Y) выборок яркости и два массива выборок цветности со значениями (Cb и Cr) цветности. Картинки в формате RGB могут быть конвертированы или преобразованы в формат YCbCr и наоборот, процесс также известен как цветовое преобразование или конвертация. Если картинка является монохромной, она может содержать только массив выборок яркости. Соответственно, картинка может быть, например, массивом выборок яркости в монохромном формате или массивом выборок яркости и двумя соответствующими массивами выборок цветности в цветовом формате 4:2:0, 4:2:2 и 4:4:4.A (digital) picture is, or can be viewed as, a two-dimensional array or matrix of samples with intensity values. A sample in an array can also be referred to as a pixel (short form of picture element) or pel (picture element). The number of samples in the horizontal and vertical direction (or axis) of the array or picture determines the size and/or resolution of the picture. Three color components are commonly used to represent a color, i.e. the picture can be represented or include three arrays of samples. In RBG format or color space, a picture contains a corresponding array of red, green, or blue samples. However, in video encoding, each pixel is usually represented in a luma and chrominance format or color space, such as YCbCr, which contains a luminance component, denoted Y (sometimes L is also used instead), and two chrominance components (chroma components), denoted Cb and Cr. The Y component of luminance (or luma for short) represents the brightness (brightness) or gray level intensity (e.g., as in a grayscale picture), while the two components Cb and Cr are chrominance (or chroma for short) represent components of chromaticity or color information. Accordingly, a picture in YCbCr format contains an array of luma samples with (Y) luminance samples and two arrays of chrominance samples with chroma values (Cb and Cr). Pictures in RGB format can be converted or converted to YCbCr format and vice versa, the process is also known as color conversion or conversion. If the picture is monochrome, it can only contain an array of brightness samples. Accordingly, the picture may be, for example, an array of luminance samples in monochrome format, or an array of luminance samples and two corresponding arrays of chrominance samples in 4:2:0, 4:2:2 and 4:4:4 color format.

Варианты осуществления видеокодера 20 могут содержать блок разделения картинки (не показан на Фиг. 2), выполненный с возможностью разделения картинки 17 на множество (обычно не перекрывающихся) блоков 203 картинки. Эти блоки также могут называться корневыми блоками, макроблоками (H.264/AVC) или блоками дерева кодировки (CTB) или единицами дерева кодировки (CTU) (H.265/HEVC и VVC). Блок разделения картинки может быть выполнен с возможностью использования одинакового размера блока для всех картинок в видеопоследовательности и соответствующей сетки, определяющей размер блока, или изменения размера блока между картинками или подмножествами или группами картинок и разделения каждой картинки на соответствующие блоки. Embodiments of video encoder 20 may include a picture splitter (not shown in FIG. 2) configured to split picture 17 into multiple (generally non-overlapping) picture blocks 203. These blocks may also be referred to as root blocks, macroblocks (H.264/AVC), or coding tree blocks (CTBs) or coding tree units (CTUs) (H.265/HEVC and VVC). The picture dividing block may be configured to use the same block size for all pictures in a video sequence and a corresponding grid defining the block size, or to change the block size between pictures or subsets or groups of pictures and divide each picture into appropriate blocks.

В дополнительных вариантах осуществления видеокодер может быть выполнен с возможностью приема непосредственно блока 203 картинки 17, например одного, нескольких или всех блоков, формирующих картинку 17. Блок 203 картинки также может именоваться текущим блоком картинки или блоком картинки, подлежащим кодированию.In further embodiments, the video encoder may be configured to directly receive block 203 of picture 17, such as one, more or all of the blocks forming picture 17. Picture block 203 may also be referred to as the current picture block or the picture block to be encoded.

Подобно картинке 17, блок 203 картинки снова является или может рассматриваться как двумерный массив или матрица выборок со значениями интенсивности (значениями выборок), хотя и меньшего размера, чем картинка 17. Другими словами, блок 203 может содержать, например, один массив выборок (например, массив яркости в случае монохромной картинки 17 или массив яркости или цветности в случае цветной картинки) или три массива выборок (например, яркость и два массива цветности в случае цветной картинки 17) или любое другое число и/или вид массивов в зависимости от применяемого цветового формата. Число выборок в горизонтальном и вертикальном направлении (или оси) блока 203 определяет размер блока 203. Соответственно, блок может представлять собой, например, массив выборок M×N (M-столбец на N-строка) или массив M×N коэффициентов преобразования.Like picture 17, picture block 203 is again, or can be thought of as, a two-dimensional array or matrix of samples with intensity values (sample values), albeit smaller than picture 17. In other words, block 203 may contain, for example, one array of samples (for example , a luma array in the case of a monochrome image 17 or an array of luminance or chrominance in the case of a color image) or three arrays of samples (for example, luminance and two chrominance arrays in the case of a color image 17) or any other number and/or type of arrays depending on the applied color format. The number of samples in the horizontal and vertical direction (or axis) of block 203 determines the size of block 203. Accordingly, a block may be, for example, an array of M×N samples (M-column per N-row) or an array of M×N transform coefficients.

Варианты осуществления видеокодера 20, показанные на Фиг. 2, могут быть выполнены с возможностью кодирования картинки 17 блок за блоком, например кодирование и предсказание выполняется для каждого блока 203.The embodiments of video encoder 20 shown in FIG. 2 may be configured to encode picture 17 block by block, such as encoding and prediction is performed for each block 203.

Варианты осуществления видеокодера 20, как показано на Фиг. 2, могут быть дополнительно выполнены с возможностью разделения и/или кодирования картинки с использованием слайсов (также именуемых видеослайсами), при этом картинка может быть разделена на или кодирована с использованием одного или более слайсов (обычно не перекрывающихся), и каждый слайс может содержать один или более блоков (например, CTU).Embodiments of video encoder 20, as shown in FIG. 2 may be further configured to split and/or encode a picture using slices (also referred to as video slices), wherein the picture may be divided into or encoded using one or more slices (generally non-overlapping), and each slice may contain one or more units (eg CTU).

Варианты осуществления видеокодера 20, показанные на Фиг. 2, могут быть дополнительно выполнены с возможностью разделения и/или кодирования картинки с использованием групп тайлов (мозаичных элементов) (также называемых группами видеовидеотайлов) и/или тайлов (также называемых видеотайлами), при этом картинка может быть разделена на или закодирована с использованием одной или более групп тайлов (обычно не перекрывающихся), и каждая группа тайлов может содержать, например один или более блоков (например, CTU) или один или более тайлов, при этом каждый тайл, в качестве примера, может иметь прямоугольную форму и может содержать один или более блоков (например, CTU), таких как полные или частичные блоки.The embodiments of video encoder 20 shown in FIG. 2 may be further configured to split and/or encode a picture using groups of tiles (tiles) (also referred to as video/video tile groups) and/or tiles (also referred to as video tiles), wherein the picture may be divided into or encoded using one or more tile groups (usually non-overlapping), and each tile group may contain, for example, one or more blocks (for example, CTU) or one or more tiles, each tile, by way of example, may be rectangular in shape and may contain one or more units (eg CTU) such as full or partial units.

Вычисление остаткаRemainder Calculation

Блок 204 вычисления остатка может быть выполнен с возможностью вычисления остаточного блока 205 (также именуемого остатком 205) на основе блока 203 картинки и блока 265 предсказания (дополнительные подробности о блоке 265 предсказания приведены ниже), например, путем вычитания значений выборок блока 265 предсказания из значений выборок блока 203 картинки, выборка за выборкой (пиксель за пикселем), чтобы получить остаточный блок 205 в области выборок.Residual block 204 may be configured to calculate residual block 205 (also referred to as residual 205) based on picture block 203 and prediction block 265 (more details on predictor 265 are provided below), for example, by subtracting the sample values of predictor 265 from the values samples of the picture block 203, sample by sample (pixel by pixel) to obtain a residual block 205 in the samples area.

Преобразованиеtransformation

Блок 206 обработки преобразования может быть выполнен с возможностью применения преобразования, например дискретного косинусного преобразования (DCT) или дискретного синусного преобразования (DST), к значениям выборок остаточного блока 205, чтобы получить коэффициенты 207 преобразования в области преобразования. Коэффициенты 207 преобразования могут также именоваться остаточными коэффициентами преобразования и представлять остаточный блок 205 в области преобразования.The transform processing unit 206 may be configured to apply a transform, such as a discrete cosine transform (DCT) or a discrete sine transform (DST), to the sample values of the residual block 205 to obtain transform coefficients 207 in the transform domain. Transform coefficients 207 may also be referred to as residual transform coefficients and represent a residual block 205 in the transform region.

Блок 206 обработки преобразования может быть выполнен с возможностью применения целочисленных аппроксимаций DCT/DST, таких как преобразования, определенные для H.265/HEVC. По сравнению с ортогональным преобразованием DCT такие целочисленные аппроксимации обычно масштабируются с некоторым коэффициентом. Чтобы сохранить норму остаточного блока, который обрабатывается прямым и обратным преобразованиями, дополнительные коэффициенты масштабирования применяются как часть процесса преобразования. Коэффициенты масштабирования обычно выбираются на основе некоторых ограничений, например коэффициенты масштабирования представляют собой степень двойки для операций сдвига, битовую глубину коэффициентов преобразования, компромисс между точностью и затратами на реализацию и т.д. Конкретные коэффициенты масштабирования, например, задаются для обратного преобразования, например блоком 212 обработки обратного преобразования (и соответствующим обратным преобразованием, например блоком 312 обработки обратного преобразования в видеодекодере 30), и соответствующие коэффициенты масштабирования для прямого преобразования, например блоком 206 обработки преобразования, могут быть заданы надлежащим образом в кодере 20.Transform processing unit 206 may be configured to apply DCT/DST integer approximations such as those defined for H.265/HEVC. Compared to the orthogonal DCT, such integer approximations are usually scaled by some factor. To preserve the norm of the residual block that is processed by forward and backward transforms, additional scaling factors are applied as part of the transform process. The scaling factors are usually chosen based on some constraints, such as the scaling factors being a power of two for shift operations, the bit depth of the transform coefficients, the trade-off between accuracy and implementation cost, and so on. Specific scaling factors, for example, are specified for the inverse transform, such as by the inverse transform processor 212 (and the corresponding inverse transform, such as the inverse transform processor 312 in video decoder 30), and the corresponding scaling factors for the forward transform, such as by the transform processor 206, may be set appropriately in encoder 20.

Варианты осуществления видеокодера 20 (соответственно блок 206 обработки преобразования) могут быть выполнены с возможностью вывода параметров преобразования, например типа преобразования или преобразований, например, непосредственно или кодированы или сжаты через блок 270 энтропийного кодирования, так что, например, видеодекодер 30 может принимать и использовать параметры преобразования для декодирования.Embodiments of video encoder 20 (respectively, transform processing unit 206) may be configured to output transform parameters, such as the type of transform or transforms, such as directly or encoded or compressed via entropy encoding unit 270, such that, for example, video decoder 30 may receive and use conversion parameters for decoding.

КвантованиеQuantization

Блок 208 квантования может быть выполнен с возможностью квантования коэффициентов 207 преобразования для получения квантованных коэффициентов 209, например путем применения скалярного квантования или векторного квантования. Квантованные коэффициенты 209 также могут упоминаться как квантованные коэффициенты 209 преобразования или квантованные остаточные коэффициенты 209.Quantizer 208 may be configured to quantize transform coefficients 207 to obtain quantized coefficients 209, for example by applying scalar quantization or vector quantization. The quantized coefficients 209 may also be referred to as quantized transform coefficients 209 or quantized residual coefficients 209.

Процесс квантования может уменьшить битовую глубину, связанную с некоторыми или всеми коэффициентами 207 преобразования. Например, n-битовый коэффициент преобразования может быть округлен до m-битного коэффициента преобразования во время квантования, где n больше m. Степень квантования может быть изменена посредством регулировки параметра квантования (QP). Например, для скалярного квантования может применяться другое масштабирование для достижения более точного или более грубого квантования. Меньшие размеры шагов квантования соответствуют более точному квантованию, тогда как большие размеры шагов квантования соответствуют более грубому квантованию. Применимый размер шага квантования может быть указан параметром квантования (QP). Параметр квантования может, например, представлять собой индекс для предопределенного набора применимых размеров шагов квантования. Например, небольшие параметры квантования могут соответствовать точному квантованию (небольшим размерам шагов квантования), а большие параметры квантования могут соответствовать грубому квантованию (большим размерам шагов квантования) или наоборот. Квантование может включать в себя деление на размер шага квантования, а соответствующее и/или обратное деквантование, например, блоком 210 обратного квантования, может включать в себя умножение на размер шага квантования. Варианты осуществления в соответствии с некоторыми стандартами, например HEVC, могут быть выполнены с возможностью использования параметра квантования для определения размера шага квантования. Как правило, размер шага квантования может быть вычислен на основе параметра квантования с использованием аппроксимации фиксированной точки уравнения, включающего в себя деление. Дополнительные коэффициенты масштабирования могут быть введены для квантования и деквантования, чтобы восстановить норму остаточного блока, которая могла быть изменена из-за масштабирования, используемого в аппроксимации фиксированной точки упомянутого уравнения для размера шага квантования и параметра квантования. В одной примерной реализации масштабирование обратного преобразования и деквантование могут быть объединены. В качестве альтернативы настроенные таблицы квантования могут использоваться и сигнализироваться от кодера к декодеру, например в битовом потоке. Квантование является операцией с потерями, при которой потери возрастают с увеличением размеров шагов квантования.The quantization process may reduce the bit depth associated with some or all of the transform coefficients 207 . For example, an n-bit transform factor may be rounded to an m-bit transform factor during quantization, where n is greater than m. The degree of quantization can be changed by adjusting the quantization parameter (QP). For example, for scalar quantization, different scaling may be applied to achieve finer or coarser quantization. Smaller quantization step sizes correspond to finer quantization, while larger quantization step sizes correspond to coarser quantization. The applicable quantization step size may be indicated by a quantization parameter (QP). The quantization parameter may, for example, be an index to a predefined set of applicable quantization step sizes. For example, small quantization parameters may correspond to fine quantization (small quantization step sizes), and large quantization parameters may correspond to coarse quantization (large quantization step sizes), or vice versa. Quantization may include dividing by the quantization step size, and corresponding and/or inverse dequantization, for example by inverse quantizer 210, may include multiplying by the quantization step size. Embodiments in accordance with some standards, such as HEVC, may be configured to use a quantization parameter to determine the quantization step size. Typically, the quantization step size can be calculated based on the quantization parameter using a fixed-point approximation of an equation involving division. Additional scaling factors may be introduced for quantization and dequantization to recover the residual block rate that may have changed due to the scaling used in the fixed point approximation of said equation for quantization step size and quantization parameter. In one exemplary implementation, inverse transform scaling and dequantization may be combined. Alternatively, customized quantization tables may be used and signaled from the encoder to the decoder, eg in a bitstream. Quantization is a lossy operation in which the loss increases as the size of the quantization steps increases.

Варианты осуществления видеокодера 20 (соответственно блока 208 квантования) могут быть выполнены с возможностью вывода параметров квантования (QP), например, напрямую или закодированных через блок 270 энтропийного кодирования, так что, например, видеодекодер 30 может принимать и применять параметры квантования для декодирования.Embodiments of video encoder 20 (respectively, quantizer 208) may be configured to output quantization parameters (QPs), for example, directly or encoded via entropy encoder 270, such that, for example, video decoder 30 may receive and apply quantization parameters for decoding.

Обратное квантованиеInverse quantization

Блок 210 обратного квантования выполнен с возможностью применения обратного квантования блока 208 квантования к квантованным коэффициентам для получения деквантованных коэффициентов 211, например путем применения обратной схемы квантования относительно таковой, применяемой блоком 208 квантования, на основе или с использованием того же размера шага квантования, что и блок 208 квантования. Деквантованные коэффициенты 211 также могут упоминаться как деквантованные остаточные коэффициенты 211 и соответствовать - хотя они обычно не идентичны коэффициентам преобразования из-за потери при квантовании - коэффициентам 207 преобразования.The inverse quantizer 210 is configured to apply the inverse quantization of the quantizer 208 to the quantized coefficients to obtain the dequantized coefficients 211, for example by applying an inverse quantization scheme to that applied by the quantizer 208 based on or using the same quantization step size as the block 208 quantization. The dequantized coefficients 211 may also be referred to as the dequantized residual coefficients 211 and correspond - although they are usually not identical to the transform coefficients due to quantization loss - to the transform coefficients 207.

Обратное преобразованиеReverse transformation

Блок 212 обработки обратного преобразования выполнен с возможностью применения обратного преобразования относительно преобразования, применяемого блоком 206 обработки преобразования, например обратного дискретного косинусного преобразования (DCT) или обратного дискретного синусного преобразования (DST) или других обратных преобразований для получения восстановленного остаточного блока 213 (или соответствующих деквантованных коэффициентов 213) в области выборок. Восстановленный остаточный блок 213 также может именоваться блоком 213 преобразования.The inverse transform processor 212 is configured to apply an inverse transform with respect to the transform applied by the transform processor 206, such as an inverse discrete cosine transform (DCT) or an inverse discrete sine transform (DST) or other inverse transforms to obtain a reconstructed residual block 213 (or corresponding dequantized coefficients 213) in the sample area. The recovered residual block 213 may also be referred to as a transformation block 213 .

ВосстановлениеRecovery

Блок 214 восстановления (например, блок сложения или сумматор 214) выполнен с возможностью сложения блока 213 преобразования (т. е. восстановленного остаточного блока 213) с блоком 265 предсказания, чтобы получить восстановленный блок 215 в области выборок, например посредством сложения - выборка за выборкой - значений выборок восстановленного остаточного блока 213 и значений выборок блока 265 предсказания.Reconstructor 214 (e.g., adder or adder 214) is configured to add transform block 213 (i.e., reconstructed residual block 213) to predictor 265 to obtain reconstructed block 215 in the sample domain, such as by sample-by-sample addition. - sample values of the reconstructed residual block 213 and sample values of the prediction block 265 .

ФильтрацияFiltration

Блок 220 контурного фильтра (или сокращенно «контурный фильтр» 220) выполнен с возможностью фильтрации восстановленного блока 215, чтобы получить отфильтрованный блок 221, или, в общем, для фильтрации восстановленных выборок для получения отфильтрованных выборок. Блок контурного фильтра, например, выполнен с возможностью сглаживания переходов пикселей или иного улучшения качества видео. Блок 220 контурного фильтра может содержать один или более контурных фильтров, таких как деблокирующий фильтр, фильтр с адаптивным к выборке смещением (SAO), или один или более других фильтров, таких как двусторонний фильтр, адаптивный контурный фильтр (ALF), фильтры сглаживания, повышения резкости или совместные фильтры, или любая их комбинация. Хотя блок 220 контурного фильтра показан на Фиг.2 как контурный фильтр, в других конфигурациях блок 220 контурного фильтра может быть реализован как постконтурный фильтр. Отфильтрованный блок 221 также может именоваться отфильтрованным восстановленным блоком 221.The loop filter block 220 (or "loop filter" 220 for short) is configured to filter the reconstructed block 215 to obtain a filtered block 221, or more generally to filter the reconstructed samples to obtain filtered samples. The loop filter unit, for example, is configured to smooth out pixel transitions or otherwise improve video quality . The loop filter block 220 may comprise one or more loop filters, such as a deblocking filter, a sample-adaptive offset (SAO) filter, or one or more other filters, such as a two-sided filter, an adaptive loop filter (ALF), anti-aliasing, enhancement filters. sharpening or joint filters, or any combination of them. Although the loop filter block 220 is shown in FIG. 2 as a loop filter, in other configurations, the loop filter block 220 may be implemented as a post loop filter. The filtered block 221 may also be referred to as the filtered reconstructed block 221.

Варианты осуществления видеокодера 20 (соответственно блока 220 контурного фильтра) могут быть выполнены с возможностью вывода параметров контурного фильтра (таких как информация адаптивного к выборке смещения), например непосредственно или закодированных через блок 270 энтропийного кодирования, так что, например, декодер 30 может принимать и применять аналогичные параметры контурного фильтра или соответствующие контурные фильтры для декодирования.Embodiments of video encoder 20 (respectively, loop filter unit 220) may be configured to output loop filter parameters (such as sample-adaptive offset information), for example, directly or encoded through entropy encoding unit 270, such that, for example, decoder 30 may receive and apply similar loop filter parameters or appropriate loop filters for decoding.

Буфер декодированных картинокDecoded picture buffer

Буфер 230 декодированных картинок (DPB) может быть памятью, в которой хранятся опорные картинки или, в общем, данные опорных картинок для кодирования видеоданных посредством видеокодера 20. DPB 230 может быть сформирован любым из множества запоминающих устройств, таких как динамическая память с произвольным доступом (DRAM), в том числе синхронная DRAM (SDRAM), магниторезистивная RAM (MRAM), резистивная RAM (RRAM) или запоминающие устройства других типов. Буфер 230 (DPB) декодированных картинок может быть выполнен с возможностью сохранения одного или более фильтрованных блоков 221. Буфер 230 декодированных картинок может быть дополнительно выполнен с возможностью сохранения других ранее отфильтрованных блоков, например ранее восстановленных и отфильтрованных блоков 221, той же самой текущей картинки или разных картинок, например, ранее восстановленных картинок, и может предоставлять полные ранее восстановленные, т.е. декодированные, картинки (и соответствующие опорные блоки и выборки) и/или частично восстановленную текущую картинку (и соответствующие опорные блоки и выборки), например, для внешнего предсказания. Буфер 230 декодированных картинок (DPB) также может быть выполнен с возможностью сохранения одного или более нефильтрованных восстановленных блоков 215 или, в общем, нефильтрованных восстановленных выборок, например если восстановленный блок 215 не фильтруется блоком 220 контурного фильтра, или любой другой дополнительно обработанной версии восстановленных блоков или выборок.The decoded picture buffer (DPB) 230 may be a memory that stores reference pictures or, more generally, reference picture data for encoding video data by video encoder 20. DPB 230 may be formed by any of a variety of memories, such as dynamic random access memory ( DRAM), including synchronous DRAM (SDRAM), magnetoresistive RAM (MRAM), resistive RAM (RRAM), or other types of memory devices. The decoded picture buffer (DPB) 230 may be configured to store one or more filtered blocks 221. The decoded picture buffer 230 may be further configured to store other previously filtered blocks, such as previously reconstructed and filtered blocks 221, the same current picture, or different images, for example, previously restored images, and can provide complete previously restored ones, i.e. decoded, pictures (and corresponding reference blocks and samples) and/or partially reconstructed current picture (and corresponding reference blocks and samples), for example, for inter prediction. The decoded picture buffer (DPB) 230 may also be configured to store one or more unfiltered reconstructed blocks 215, or more generally unfiltered reconstructed samples, such as if the reconstructed block 215 is not filtered by the loop filter block 220, or any other further processed version of the reconstructed blocks. or samples.

Выбор режима (разделение и предсказание)Mode selection (separation and prediction)

Блок 260 выбора режима содержит блок 262 разделения, блок 244 внешнего предсказания и блок 254 внутреннего предсказания и выполнен с возможностью приема или получения данных исходной картинки, например исходного блока 203 (текущего блока 203 текущего картинки 17), и восстановленных данных картинки, например отфильтрованных и/или нефильтрованных восстановленных выборок или блоков той же самой (текущей) картинки и/или из одной или множества ранее декодированных картинок, например из буфера 230 декодированных картинок или других буферов (например, линейного (строкового) буфера, не показан). Данные восстановленной картинки используются в качестве данных опорной картинки для предсказания, например, внешнего предсказания или внутреннего предсказания, чтобы получить блок 265 предсказания или предиктор 265.The mode selection unit 260 comprises a splitter 262, an inter prediction unit 244, and an intra prediction unit 254, and is configured to receive or obtain original picture data, such as the original block 203 (the current block 203 of the current picture 17), and reconstructed picture data, such as filtered and /or unfiltered reconstructed samples or blocks of the same (current) picture and/or from one or a plurality of previously decoded pictures, for example from decoded picture buffer 230 or other buffers (for example, a linear (line) buffer, not shown). The reconstructed picture data is used as reference picture data for prediction, such as inter prediction or intra prediction, to obtain prediction block 265 or predictor 265.

Блок 260 выбора режима может быть выполнен с возможностью определения или выбора разделения для текущего режима предсказания блока (включая отсутствие разделения) и режима предсказания (например, режима внутреннего или внешнего предсказания) и генерации соответствующего блока 265 предсказания, который используется для вычисления остаточного блока 205 и для восстановления восстановленного блока 215.The mode selector 260 may be configured to determine or select a split for the current block prediction mode (including no split) and prediction mode (eg, intra or inter prediction mode) and generate a corresponding prediction block 265 that is used to calculate the residual block 205 and to restore the restored block 215.

Варианты осуществления блока 260 выбора режима могут быть выполнены с возможностью выбора разделения и режима предсказания (например, из тех, которые поддерживаются блоком 260 выбора режима или доступны для него), которые обеспечивают наилучшее совпадение или, другими словами, минимальный остаток (минимальный остаток означает лучшее сжатие для передачи или хранения), или минимальные издержки на сигнализацию (минимальные издержки на сигнализацию означают лучшее сжатие для передачи или хранения), или который учитывает или балансирует оба фактора. Блок 260 выбора режима может быть выполнен с возможностью определения режима разделения и предсказания на основе оптимизации коэффициента искажения (RDO), то есть выбора режима предсказания, который обеспечивает минимальное искажение клэффициента. Такие термины, как «лучший», «минимальный», «оптимальный» и т.д. в этом контексте не обязательно относятся к всеобъемлющему «лучшему», «минимуму», «оптимальному» и т.д., но также могут относиться к выполнению критерия выбора или прекращения, например когда значение превышает или падает ниже порогового значения, или других ограничений, потенциально ведущих к «субоптимальному выбору», но уменьшающих сложность и время обработки.Embodiments of mode selector 260 may be configured to select a division and prediction mode (e.g., those supported by or available to mode selector 260) that provide the best match, or in other words, minimum residual (minimum residual means best compression for transmission or storage), or minimum signaling overhead (lowest signaling overhead means better compression for transmission or storage), or which considers or balances both. The mode selector 260 may be configured to determine the division and prediction mode based on distortion ratio optimization (RDO), that is, selecting a prediction mode that provides minimal distortion of the coefficient. Terms such as "best", "minimum", "optimal", etc. in this context does not necessarily refer to the all-encompassing "best", "minimum", "optimum", etc., but may also refer to the fulfillment of a selection or termination criterion, such as when a value exceeds or falls below a threshold value, or other limitations, potentially leading to "sub-optimal selection" but reducing complexity and processing time.

Другими словами, блок 262 разделения может быть выполнен с возможностью разделения блока 203 на более мелкие разделения блока или субблоки (которые снова образуют блоки), например итеративно с использованием разделения квадродерева (QT), двоичного разделения (BT), или разделения троичного дерева (TT) или любой их комбинации, и выполнения, например, предсказания для каждого из разделений блока или субблоков, при этом выбор режима содержит выбор древовидной структуры разделяемого блока 203, а режимы предсказания применяются к каждому из разделений блока или субблоков.In other words, partitioner 262 may be configured to partition block 203 into smaller block partitions or subblocks (which form blocks again), such as iteratively using quadtree partitioning (QT), binary partitioning (BT), or ternary tree partitioning (TT). ) or any combination thereof, and performing, for example, prediction for each of the block or subblock divisions, wherein the mode selection comprises selecting a tree structure of the block to be divided 203, and the prediction modes are applied to each of the block or subblock divisions.

Далее более подробно поясняется разделение (например, посредством блока 260 разделения) и обработка предсказания (посредством блока 244 внешнего предсказания и блока 254 внутреннего предсказания), выполняемые примерным видеокодером 20.The following explains in more detail the division (for example, by the division block 260) and the prediction processing (by the inter prediction block 244 and the intra prediction block 254) performed by the exemplary video encoder 20.

РазделениеSeparation

Блок 262 разделения может разделять (или разбивать) текущий блок 203 на более мелкие разделения, например, блоки меньшего размера квадратного или прямоугольного размера. Эти меньшие блоки (которые также могут именоваться субблоками) могут быть дополнительно разделены на еще меньшие разделения. Это также называется разделением дерева или иерархическим разделением дерева, в котором корневой блок, например на корневом уровне 0 дерева (уровне 0 иерархии, глубине 0), может быть рекурсивно разделен, например, разделен на два или более блоков следующего более низкого уровня дерева, например узлов на уровне 1 дерева (уровне 1 иерархии, глубине 1), при этом эти блоки могут быть снова разделены на два или более блоков следующего более низкого уровня, например уровня 2 дерева (уровня 2 иерархии, глубины 2), и т.д. пока разделение не будет завершено, например из-за выполнения критерия прекращения, например, достижения максимальной глубины дерева или минимального размера блока. Блоки, которые далее не разделяются, также называются листовыми блоками или листовыми узлами дерева. Дерево, использующее разделение на два разделения, называется двоичным деревом (BT), дерево, использующее разделение на три разделения, называется троичным деревом (TT), а дерево, использующее разделение на четыре разделения, называется квадродеревом (QT).Partitioner 262 may divide (or split) the current block 203 into smaller partitions, such as smaller square or rectangular size blocks. These smaller blocks (which may also be referred to as sub-blocks) may be further divided into even smaller divisions. This is also called tree splitting or hierarchical tree splitting, in which a root box, such as at root level 0 of the tree (hierarchy level 0, depth 0), can be split recursively, such as split into two or more boxes of the next lower level of the tree, such as nodes at tree level 1 (hierarchy level 1, depth 1), and these blocks can again be divided into two or more blocks of the next lower level, for example, tree level 2 (hierarchy level 2, depth 2), etc. until the partition is complete, for example due to the fulfillment of a termination criterion, such as reaching the maximum tree depth or minimum block size. Blocks that are not further separated are also called leaf blocks or leaf nodes of the tree. A tree using two-partitioning is called a binary tree (BT), a tree using three-partitioning is called a ternary tree (TT), and a tree using four-partitioning is called a quadtree (QT).

Как упоминалось ранее, используемый здесь термин «блок» может быть частью, в частности квадратной или прямоугольной частью изображения. Что касается, например, HEVC и VVC, блок может быть или соответствовать единице дерева кодировки (CTU), единице кодировки (CU), единице предсказания (PU) и единице преобразования (TU) и/или соответствующим блокам, например блоку дерева кодировки (CTB), блоку кодировки (CB), блоку преобразования (TB) или блоку предсказания (PB).As mentioned earlier, the term "block" as used herein can be a part, in particular a square or rectangular part of an image. With respect to, for example, HEVC and VVC, a block may be either a coding tree unit (CTU), a coding unit (CU), a prediction unit (PU), and a transformation unit (TU) and/or corresponding blocks, such as a coding tree block (CTB). ), a coding block (CB), a transform block (TB), or a prediction block (PB).

Например, единица дерева кодировки (CTU) может быть или содержать CTB выборок яркости, два соответствующих CTB выборок цветности картинки, которая имеет три массива выборок, или CTB выборок монохромной картинки или картинки, которая кодируется с использованием трех отдельных цветовых плоскостей и синтаксических структур, используемых для кодирования выборок. Соответственно, блок дерева кодировки (CTB) может быть N×N блоком выборок для некоторого значения N, так что деление компоненты на CTB является разделением. Единица кодировки (CU) может быть или содержать блок кодировки выборок яркости, два соответствующих блока кодировки выборок цветности картинки, которая имеет три массива выборок, или блок кодировки выборок монохромной картинки или картинки, которая кодируется с использованием трех отдельных цветовых плоскостей и синтаксических структур, используемых для кодирования выборок. Соответственно, блок кодировки (CB) может быть M×N блоком выборок для некоторых значений M и N, так что деление CTB на блоки кодировки является разделением.For example, a coding tree unit (CTU) can be either a luminance sample CTB, two corresponding chrominance sample CTBs of a picture that has three sample arrays, or a monochrome picture sample CTB or a picture that is encoded using three separate color planes and the syntax structures used for coding samples. Accordingly, a coding tree block (CTB) may be an N×N block of samples for some value of N, such that dividing a component by a CTB is a split. A coding unit (CU) can be either a luminance sample coding unit, two corresponding chrominance sample coding units of a picture that has three sample arrays, or a monochrome picture or picture sample coding unit that is encoded using three separate color planes and the syntax structures used. for coding samples. Accordingly, a coding block (CB) may be an M×N block of samples for some values of M and N, so dividing the CTB into coding blocks is a split.

В вариантах осуществления, например, согласно HEVC, единица дерева кодировки (CTU) может быть разбита на CU с использованием структуры квадродерева, обозначенной в качества дерева кодировки. Решение о том, следует ли кодировать область картинки с использованием предсказания вне картинки (временного) или внутри картинки (пространственного), принимается на уровне CU. Каждая CU может быть дополнительно разбита на одну, две или четыре PU в соответствии с типом разделения на PU. Внутри одной PU применяется один и тот же процесс предсказания, а релевантная информация передается в декодер на основе PU. После получения остаточного блока путем применения процесса предсказания на основе типа разделения на PU, CU может быть разделена на единицы (TU) преобразования в соответствии с другой структурой квадродерева, аналогичной дереву кодировки для CU.In embodiments, for example according to HEVC, a coding tree unit (CTU) may be partitioned into CUs using a quadtree structure designated as a coding tree. The decision whether to encode a picture area using out-of-picture (temporal) or in-picture (spatial) prediction is made at the CU layer. Each CU may be further partitioned into one, two, or four PUs, according to the partition type per PU. Within one PU, the same prediction process is applied, and the relevant information is passed to the decoder based on the PU. After obtaining the residual block by applying a prediction process based on the division type to the PU, the CU may be divided into transform units (TU) according to another quadtree structure similar to the coding tree for the CU.

В вариантах осуществления, например в соответствии с разрабатываемым в настоящее время наиболее новым стандартом видеокодировки, который называется универсальной видеокодировкой (VVC), для разделения блока кодировки используется, например, разделение комбинированного квадродерева и двоичного дерева (QTBT). В блочной структуре QTBT CU может иметь либо квадратную, либо прямоугольную форму. Например, единица дерева кодировки (CTU) сначала разделяется на структуру квадродерева. Листовые узлы квадродерева дополнительно разделяются двоичным деревом или тройчной (или тройной) древовидной структурой. Листовые узлы дерева разделения называются единицами кодировки (CU), и эта сегментация используется для обработки предсказания и преобразования без какого-либо дополнительного разделения. Это означает, что CU, PU и TU имеют одинаковый размер блока в структуре блока кодировки QTBT. Параллельно, вместе с блочной структурой QTBT можно использовать множественное разделение, например, разделение троичного дерева.In embodiments, for example, in accordance with the newest video encoding standard currently being developed, called universal video coding (VVC), for example, a combined quadtree-binary tree (QTBT) split is used to split a coding block. In the block structure of QTBT, the CU can be either square or rectangular. For example, a coding tree unit (CTU) is first divided into a quadtree structure. The leaf nodes of the quadtree are further separated by a binary tree or a ternary (or ternary) tree structure. The leaf nodes of the partitioning tree are called coding units (CUs) and this segmentation is used for prediction and transformation processing without any additional partitioning. This means that CU, PU and TU have the same block size in the QTBT encoding block structure. In parallel, multiple partitioning, such as ternary tree partitioning, can be used along with the block structure of QTBT.

В одном примере блок 260 выбора режима видеокодера 20 может быть выполнен с возможностью выполнения любого сочетания способов разделения, описанных в данном документе.In one example, mode selector 260 of video encoder 20 may be configured to perform any combination of the separation methods described herein.

Как описано выше, видеокодер 20 выполнен с возможностью определения или выбора наилучшего или оптимального режима предсказания из набора (например, предопределенных) режимов предсказания. Набор режимов предсказания может содержать, например, режимы внутреннего предсказания и/или режимы внешнего предсказания.As described above, video encoder 20 is configured to determine or select the best or optimal prediction mode from a set of (eg, predefined) prediction modes. The set of prediction modes may include, for example, intra prediction modes and/or inter prediction modes.

Внутреннее предсказаниеInternal prediction

Набор режимов внутреннего предсказания может содержать 35 различных режимов внутреннего предсказания, например, ненаправленные режимы, такие как режим DC (или среднего) и планарный режим, или направленные режимы, например, как определены в HEVC, или может содержать 67 различных режимов внутреннего предсказания, например, ненаправленные режимы, такие как режим DC (или среднего) и планарный режим, или направленные режимы, например, как определены в VVC.The intra prediction mode set may comprise 35 different intra prediction modes, such as non-directional modes such as DC (or average) mode and planar mode, or directional modes such as those defined in HEVC, or may comprise 67 different intra prediction modes such as , non-directional modes such as DC (or average) mode and planar mode, or directional modes such as those defined in VVC.

Блок 254 внутреннего предсказания выполнен с возможностью использования восстановленных выборок соседних блоков одной и той же текущей картинки для генерации блока 265 внутреннего предсказания согласно режиму внутреннего предсказания набора режимов внутреннего предсказания.The intra prediction block 254 is configured to use the recovered samples of adjacent blocks of the same current picture to generate the intra prediction block 265 according to the intra prediction mode of the intra prediction mode set.

Блок 254 внутреннего предсказания (или, в общем, блок 260 выбора режима) дополнительно выполнен с возможностью вывода параметров внутреннего предсказания (или, в общем, информации, указывающей выбранный режим внутреннего предсказания для блока) в блок 270 энтропийного кодирования в форме синтаксических элементов 266 для включения в данные 21 закодированной картинки, чтобы, например, видеодекодер 30 мог принимать и использовать параметры предсказания для декодирования.Intra prediction block 254 (or mode selector 260 more generally) is further configured to output intra prediction parameters (or information indicative of the selected intra prediction mode for the block in general) to entropy encoding block 270 in the form of syntax elements 266 for including the encoded picture in the data 21 so that, for example, the video decoder 30 can receive and use the prediction parameters for decoding.

Внешнее предсказаниеexternal prediction

Набор (возможных) режимов внешнего предсказания зависит от доступных опорных картинок (то есть предыдущих, по меньшей мере частично декодированных картинок, например, сохраненных в DBP 230) и других параметров внешнего предсказания, например используется ли опорная картинка целиком или только часть, например, область окна поиска вокруг области текущего блока, опорной картинки для поиска наиболее совпадающего опорного блока и/или, например, применяется ли интерполяция пикселей, например полупиксельная (half/semi-pel) и/или четвертьпиксельная (quarter-pel) интерполяция, или нет.The set of (possible) inter prediction modes depends on the available reference pictures (i.e. previous, at least partially decoded pictures, e.g. stored in DBP 230) and other inter prediction parameters, e.g. search windows around the area of the current block, the reference picture to find the most matching reference block, and/or, for example, whether pixel interpolation is applied, such as half-pixel (half/semi-pel) and/or quarter-pel (quarter-pel) interpolation or not.

В дополнение к вышеупомянутым режимам предсказания могут применяться режим пропуска и/или прямой режим.In addition to the aforementioned prediction modes, a skip mode and/or a direct mode may be applied.

Блок 244 внешнего предсказания может включать в себя блок оценки движения (ME) и блок компенсации движения (MC) (оба на Фиг. 2 не показаны). Блок оценки движения может быть выполнен с возможностью приема или получения блока 203 картинки (текущего блока 203 картинки текущей картинки 17) и декодированной картинки 231, или по меньшей мере одного или множества ранее восстановленных блоков, например восстановленных блоков одной или множества других/отличных ранее декодированных картинок 231, для оценки движения. Например, видеопоследовательность может содержать текущую картинку и ранее декодированные картинки 231 или, другими словами, текущая картинка и ранее декодированные картинки 231 могут быть частью или формировать последовательность картинок, образующих видеопоследовательность.Inter prediction block 244 may include a motion estimator (ME) and a motion compensation (MC) block (both not shown in FIG. 2). The motion estimator may be configured to receive or obtain a picture block 203 (the current picture block 203 of the current picture 17) and a decoded picture 231, or at least one or a plurality of previously reconstructed blocks, such as reconstructed blocks of one or a plurality of other/different previously decoded pictures 231, for motion evaluation. For example, the video sequence may contain the current picture and previously decoded pictures 231 or, in other words, the current picture and previously decoded pictures 231 may be part of or form a sequence of pictures that make up the video sequence.

Кодер 20 может, например, быть выполнен с возможностью выбора опорного блока из множества опорных блоков одинаковых или разных картинок из множества других картинок и обеспечения опорной картинки (или индекса опорной картинки) и/или смещения (пространственного смещения) между позицией (x, y координатами) опорного блока и позицией текущего блока в качестве параметров внешнего предсказания в блок оценки движения. Это смещение также называется вектором движения (MV).Encoder 20 may, for example, be configured to select a reference block from a plurality of reference blocks of the same or different pictures from a plurality of other pictures and provide a reference picture (or reference picture index) and/or offset (spatial offset) between position (x, y coordinates ) of the reference block and the position of the current block as inter-prediction parameters to the motion estimation block. This displacement is also called motion vector (MV).

Блок компенсации движения выполнен с возможностью получения, например, приема параметра внешнего предсказания и выполнения внешнего предсказания на основе или с использованием параметра внешнего предсказания для получения блока 265 внешнего предсказания. Компенсация движения, выполняемая блоком компенсации движения, может включать в себя получение или генерирование блока предсказания на основе вектора движения/блока, определенного посредством оценки движения, возможно с выполнением интерполяций с точностью до субпикселя. Интерполяционная фильтрация может генерировать дополнительные пиксельные выборки из известных пиксельных выборок, таким образом потенциально увеличивая число кандидатных блоков предсказания, которые могут использоваться для кодирования блока картинки. После приема вектора движения для PU текущего блока картинки блок компенсации движения может определить местоположение блока предсказания, на который указывает вектор движения, в одном из списков опорных картинок.The motion compensation block is configured to obtain, for example, receive an inter prediction parameter and perform inter prediction based on or using the inter prediction parameter to obtain the inter prediction block 265 . The motion compensation performed by the motion compensator may include deriving or generating a prediction block based on the motion vector/block determined by the motion estimation, possibly performing subpixel-accurate interpolations. Interpolation filtering can generate additional pixel samples from known pixel samples, thus potentially increasing the number of candidate prediction blocks that can be used to encode a picture block. After receiving the motion vector for the PU of the current picture block, the motion compensator may locate the prediction block pointed to by the motion vector in one of the reference picture lists.

Блок компенсации движения может также генерировать синтаксические элементы, связанные с блоками и слайсами видео, для использования видеодекодером 30 при декодировании блоков картинки слайса видео. В дополнение или в качестве альтернативы для слайсов и соответствующих синтаксических элементов могут генерироваться или использоваться группы тайлов и/или тайлы и соответствующие синтаксические элементы.The motion compensation block may also generate syntax elements associated with video blocks and slices for use by video decoder 30 when decoding picture blocks of a video slice. In addition or alternatively, for slices and corresponding syntax elements, groups of tiles and/or tiles and corresponding syntax elements can be generated or used.

Энтропийная кодировкаEntropy encoding

Блок 270 энтропийного кодирования выполнен с возможностью применения, например, алгоритма или схемы энтропийного кодирования (например, схемы кодировки с переменной длиной (VLC), схемы контекстно-адаптивной VLC (CAVLC), схемы арифметической кодировки, бинаризации, контекстно-адаптивной двоичной арифметической кодировки (CABAC), основанной на синтаксисе контекстно-адаптивной двоичной арифметической кодировке (SBAC), энтропийного кодирования с разделением интервала вероятности (PIPE) или другого метода или методологии энтропийного кодирования) или обхода (без сжатия) в отношении квантованных коэффициентов 209, параметров внешнего предсказания, параметров внутреннего предсказания, параметров контурного фильтра и/или других синтаксических элементов для получения закодированных данных 21 картинки, которые могут выводиться через вывод 272, например в форме кодированного битового потока 21, так что, например, видеодекодер 30 может принимать и использовать эти параметры для декодирования. Кодированный битовый поток 21 может быть передан на видеодекодер 30 или сохранен в памяти для последующей передачи или извлечения видеодекодером 30.Entropy encoding unit 270 is configured to apply, for example, an entropy encoding algorithm or scheme (for example, variable length coding (VLC) scheme, context adaptive VLC (CAVLC) scheme, arithmetic coding scheme, binarization, context adaptive binary arithmetic coding ( CABAC) syntax-based context adaptive binary arithmetic coding (SBAC), probability interval division entropy coding (PIPE), or other entropy coding method or methodology) or traversal (no compression) with respect to quantized coefficients 209, inter prediction parameters, parameters intra prediction, loop filter parameters, and/or other syntax elements to obtain encoded picture data 21 that can be output via output 272, for example in the form of an encoded bitstream 21, so that, for example, video decoder 30 can receive and use these parameters for decoding. The encoded bitstream 21 may be transmitted to video decoder 30 or stored in memory for later transmission or retrieval by video decoder 30.

Другие изменения в структуре видеокодера 20 могут использоваться для кодирования видеопотока. Например, кодер 20, не основанный на преобразовании, может квантовать остаточный сигнал напрямую без блока 206 обработки преобразования. В другой реализации кодер 20 может иметь блок 208 квантования и блок 210 обратного квантования, объединенные в единый блок. Other changes to the structure of video encoder 20 may be used to encode the video stream. For example, non-transform encoder 20 may quantize the residual signal directly without transform processing block 206 . In another implementation, encoder 20 may have quantizer 208 and inverse quantizer 210 combined into a single block.

Декодер и способ декодированияDecoder and decoding method

Фиг. 3 показывает пример видеодекодера 30, который выполнен с возможностью реализации методик настоящей заявки. Видеодекодер 30 выполнен с возможностью приема закодированных данных 21 картинки (например, кодированного битового потока 21), например, закодированных кодером 20, чтобы получить декодированное изображение 331. Закодированные данные картинки или битовый поток содержит информацию для декодирования закодированных данных картинки, например, данных, которые представляют блоки картинки кодированного слайса видео (и/или тайлов или групп тайлов) и связанные синтаксические элементы.Fig. 3 shows an example of a video decoder 30 that is configured to implement the techniques of the present application. Video decoder 30 is configured to receive encoded picture data 21 (e.g., encoded bitstream 21), e.g. represent picture blocks of an encoded video slice (and/or tiles or groups of tiles) and associated syntax elements.

В примере на Фиг. 3, декодер 30 содержит блок 304 энтропийного декодирования, блок 310 обратного квантования, блок 312 обработки обратного преобразования, блок 314 восстановления (например, сумматор 314), контурный фильтр 320, буфер 330 (DPB) декодированных картинок, блок 360 применения режима, блок 344 внешнего предсказания и блок 354 внутреннего предсказания. Блок 344 внешнего предсказания может быть или включать в себя блок компенсации движения. Видеодекодер 30 может, в некоторых примерах, выполнять этап декодирования, в целом обратный этапу кодирования, описанному в отношении видеокодера 100 на Фиг.2.In the example in FIG. 3, the decoder 30 includes an entropy decoder 304, an inverse quantizer 310, an inverse transform processor 312, a reconstruction block 314 (e.g., an adder 314), a loop filter 320, a decoded picture buffer (DPB) 330, a mode application block 360, a block 344 external prediction and block 354 intra prediction. Inter prediction block 344 may be or include a motion compensation block. Video decoder 30 may, in some examples, perform a decoding step that is generally the reverse of the encoding step described with respect to video encoder 100 in FIG.

Как описано в отношении кодера 20, блок 210 обратного квантования, блок 212 обработки обратного преобразования, блок 214 восстановления, контурный фильтр 220, буфер 230 (DPB) декодированных картинок, блок 344 внешнего предсказания и блок 354 внутреннего предсказания также относятся к формированию «встроенного декодера» видеокодера 20. Соответственно, блок 310 обратного квантования может быть идентичен по функции блоку 110 обратного квантования, блок 312 обработки обратного преобразования может быть идентичен по функции блоку 212 обработки обратного преобразования, блок 314 восстановления может быть идентичен по функции блоку 214 восстановления, контурный фильтр 320 может быть идентичен по функции контурному фильтру 220, а буфер 330 декодированных картинок может быть идентичен по функции буферу 230 декодированных картинок. Следовательно, пояснения, предоставленные для соответствующих блоков и функций видеокодера 20, применимы соответственно и к соответствующим блокам и функциям видеодекодера 30.As described with respect to the encoder 20, the inverse quantization block 210, the inverse transform processing block 212, the reconstruction block 214, the loop filter 220, the decoded picture buffer (DPB) 230, the inter prediction block 344, and the intra prediction block 354 are also related to the formation of an “embedded decoder » of the video encoder 20. Accordingly, the inverse quantizer 310 may be identical in function to the inverse quantizer 110, the inverse transform processing unit 312 may be identical in function to the inverse transform processing unit 212, the restorer 314 may be identical in function to the restorer 214, loop filter 320 may be identical in function to loop filter 220, and decoded picture buffer 330 may be identical in function to decoded picture buffer 230. Therefore, the explanations provided for the respective blocks and functions of the video encoder 20 apply, respectively, to the corresponding blocks and functions of the video decoder 30.

Энтропийное декодированиеEntropy decoding

Блок 304 энтропийного декодирования выполнен с возможностью синтаксического анализа битового потока 21 (или, в общем, данных 21 закодированной картинки) и выполнения, например, энтропийного декодирования для данных 21 закодированной картинки, чтобы получить, например, квантованные коэффициенты 309 и/или декодированные параметры кодировки (не показаны на Фиг.3), например, любые или все из параметров внешнего предсказания (например, индекс опорной картинки и вектор движения), параметр внутреннего предсказания (например, индекс или режим внутреннего предсказания), параметры преобразования, параметры квантования, параметры контурного фильтра и/или другие элементы синтаксиса. Блок 304 энтропийного декодирования может быть выполнен с возможностью применения алгоритмов или схем декодирования, соответствующих схемам кодирования, как описано в отношении блока 270 энтропийного кодирования кодера 20. Блок 304 энтропийного декодирования может быть дополнительно выполнен с возможностью предоставления параметров внешнего предсказания, параметра внутреннего предсказания и/или других синтаксических элементов блоку 360 применения режима и других параметров другим блокам декодера 30. Видеодекодер 30 может принимать элементы синтаксиса на уровне видеослайса и/или уровне видеоблока. В дополнение или в качестве альтернативы слайсам и соответствующим синтаксическим элементам могут приниматься и/или использоваться группы тайлов и/или тайлы и соответствующие синтаксические элементы.The entropy decoding unit 304 is configured to parse the bitstream 21 (or, in general, the encoded picture data 21) and perform, for example, entropy decoding on the encoded picture data 21 to obtain, for example, quantized coefficients 309 and/or decoded encoding parameters (not shown in FIG. 3), e.g., any or all of the inter prediction parameters (e.g., reference picture index and motion vector), intra prediction parameter (e.g., index or intra prediction mode), transform parameters, quantization parameters, contour parameters filters and/or other syntax elements. Entropy decoding unit 304 may be configured to apply decoding algorithms or schemes corresponding to coding schemes as described in relation to entropy encoding unit 270 of encoder 20. Entropy decoding unit 304 may be further configured to provide inter prediction parameters, an intra prediction parameter, and/ or other syntax elements to the mode application block 360 and other parameters to other blocks of the decoder 30. Video decoder 30 may receive syntax elements at the video slice level and/or the video block level. In addition to or as an alternative to slices and corresponding syntax elements, groups of tiles and/or tiles and corresponding syntax elements may be accepted and/or used.

Обратное квантованиеInverse quantization

Блок 310 обратного квантования может быть выполнен с возможностью приема параметров квантования (QP) (или, в общем, информации, относящейся к обратному квантованию) и квантованных коэффициентов из закодированных данных 21 картинки (например, посредством синтаксического анализа и/или декодирования, например, посредством блока 304 энтропийного декодирования) и применения, на основе параметров квантования, обратного квантования в отношении декодированных квантованных коэффициентов 309 для получения деквантованных коэффициентов 311, которые также могут называться коэффициентами 311 преобразования. Процесс обратного квантования может включать в себя использование параметра квантования, определенного видеокодером 20 для каждого видеоблока в видеослайсе (или тайле или группе тайлов), для определения степени квантования и, аналогично, степени обратного квантования, которая должна быть применена.The inverse quantizer 310 may be configured to receive quantization parameters (QPs) (or inverse quantization related information in general) and quantized coefficients from the encoded picture data 21 (e.g., by parsing and/or decoding, e.g., by entropy decoding block 304) and applying, based on the quantization parameters, inverse quantization to the decoded quantized coefficients 309 to obtain dequantized coefficients 311, which may also be referred to as transform coefficients 311. The inverse quantization process may include using a quantization parameter determined by video encoder 20 for each video block in a video slice (or tile or group of tiles) to determine the amount of quantization and, likewise, the amount of inverse quantization to be applied.

Обратное преобразованиеReverse transformation

Блок 312 обработки обратного преобразования может быть выполнен с возможностью приема деквантованных коэффициентов 311, также именуемых коэффициентами 311 преобразования, и применения преобразования к деквантованным коэффициентам 311 для того, чтобы получить восстановленные остаточные блоки 213 в области выборок. Восстановленные остаточные блоки 213 также могут именоваться блоками 313 преобразования. Преобразование может быть обратным преобразованием, например, обратным DCT, обратным DST, обратным целочисленным преобразованием или концептуально аналогичным процессом обратного преобразования. Блок 312 обработки обратного преобразования может быть дополнительно выполнен с возможностью приема параметров преобразования или соответствующей информации из закодированных данных 21 картинки (например, путем синтаксического анализа и/или декодирования, например, посредством блока 304 энтропийного декодирования), чтобы определять преобразование, которое подлежит применению к деквантованным коэффициентам 311.The inverse transform processor 312 may be configured to receive the dequantized coefficients 311, also referred to as transform coefficients 311, and apply a transform to the dequantized coefficients 311 in order to obtain reconstructed residual blocks 213 in the sample domain. The restored residual blocks 213 may also be referred to as transform blocks 313 . The transformation may be an inverse transformation, such as inverse DCT, inverse DST, inverse integer transformation, or a conceptually similar inverse transformation process. The inverse transform processing unit 312 may be further configured to receive transform parameters or corresponding information from the encoded picture data 21 (eg, by parsing and/or decoding, eg by entropy decoding unit 304) to determine the transform to be applied to dequantized coefficients 311.

ВосстановлениеRecovery

Блок 314 восстановления (например, блок сложения или сумматор 314) может быть выполнен с возможностью сложения восстановленного остаточного блока 313 с блоком 365 предсказания, чтобы получить восстановленный блок 315 в области выборок, например посредством сложения значений выборок восстановленного остаточного блока 313 и значений выборок блока 365 предсказания.Reconstructor 314 (eg, adder or adder 314) may be configured to add the reconstructed residual block 313 to the prediction block 365 to obtain a reconstructed block 315 in the sample domain, for example, by adding the sample values of the reconstructed residual block 313 and the sample values of block 365 predictions.

ФильтрацияFiltration

Блок 320 контурного фильтра (либо в контуре кодировки, либо после контура кодировки) выполнен с возможностью фильтрации восстановленного блока 315 для получения отфильтрованного блока 321, например, для сглаживания переходов пикселей или иного улучшения качества видео. Блок 320 контурного фильтра может содержать один или более контурных фильтров, таких как деблокирующий фильтр, фильтр с адаптивным к выборке смещением (SAO), или один или более других фильтров, таких как двусторонний фильтр, адаптивный контурный фильтр (ALF), фильтры сглаживания, повышения резкости или совместные фильтры, или любую их комбинацию. Хотя блок 320 контурного фильтра показан на Фиг.3 как контурный фильтр, в других конфигурациях блок 320 контурного фильтра может быть реализован как постконтурный фильтр.The loop filter block 320 (either in the encoding loop or after the encoding loop) is configured to filter the reconstructed block 315 to obtain a filtered block 321, for example, to smooth pixel transitions or otherwise improve video quality. The loop filter block 320 may comprise one or more loop filters, such as a deblocking filter, a sample-adaptive offset (SAO) filter, or one or more other filters, such as a two-sided filter, an adaptive loop filter (ALF), anti-aliasing, enhancement filters. sharpening or joint filters, or any combination of them. Although the loop filter block 320 is shown in FIG. 3 as a loop filter, in other configurations, the loop filter block 320 may be implemented as a post loop filter.

Буфер декодированных картинокDecoded picture buffer

Декодированные видеоблоки 321 картинки затем сохраняются в буфере 330 декодированных картинок, который сохраняет декодированные картинки 331 в качестве опорных картинок для последующей компенсации движения для других картинок и/или для вывода, соответственно, отображения.The decoded video blocks 321 of the picture are then stored in the decoded picture buffer 330, which stores the decoded pictures 331 as reference pictures for subsequent motion compensation for other pictures and/or for display output, respectively.

Декодер 30 выполнен с возможностью вывода декодированной картинки 311, например, через вывод 312 для представления или просмотра пользователю.The decoder 30 is configured to output the decoded picture 311, for example, via output 312 for presentation or viewing to a user.

ПредсказаниеPrediction

Блок 344 внешнего предсказания может быть идентичен блоку 244 внешнего предсказания (в частности, блоку компенсации движения), а блок 354 внутреннего предсказания может быть идентичен блоку 254 внешнего предсказания по функции, и принимает решения по разбиению или разделению и выполняет предсказание на основе параметров разделения и/или предсказания или соответствующей информации, принимаемой из закодированных данных 21 картинки (например, путем синтаксического анализа и/или декодирования, например, посредством блока 304 энтропийного декодирования). Блок 360 применения режима может быть выполнен с возможностью осуществления предсказания (внутреннего или внешнего предсказания) для каждого блока на основе восстановленных картинок, блоков или соответствующих выборок (фильтрованных или нефильтрованных) для получения блока 365 предсказания.The inter prediction block 344 may be identical to the inter prediction block 244 (in particular, the motion compensation block), and the intra prediction block 354 may be identical to the inter prediction block 254 in function, and makes split or split decisions and performs prediction based on split parameters and /or prediction or corresponding information received from the encoded picture data 21 (for example, by parsing and/or decoding, for example, by entropy decoding block 304). Mode apply block 360 may be configured to perform prediction (intra or inter prediction) for each block based on reconstructed pictures, blocks, or corresponding samples (filtered or unfiltered) to obtain prediction block 365.

Когда видеослайс кодируется как внутренне-кодируемый (I) слайс, блок 354 внутреннего предсказания блока 360 применения режима выполнен с возможностью генерирования блока 365 предсказания для блока картинки текущего видеослайса на основе просигнализированного режима внутреннего предсказания и данных из ранее декодированных блоков текущей картинки. Когда видеокартинка кодируется как внешне-кодируемый (т.е. B или P) слайс, блок 344 внешнего предсказания (например, блок компенсации движения) блока 360 применения режима выполнен с возможностью создания блоков 365 предсказания для видеоблока текущего видеослайса на основе векторов движения и других синтаксических элементов, принимаемых от блока 304 энтропийного декодирования. Для внешнего предсказания блоки предсказания могут быть созданы из одной из опорных картинок в пределах одного из списков опорных картинок. Видеодекодер 30 может строить списки опорных кадров, Список 0 и Список 1, используя способы построения по умолчанию на основе опорных картинок, хранящихся в DPB 330. То же самое или подобное может применяться для или посредством вариантов осуществления с использованием групп тайлов (например, групп видеотайлов) и/или тайлов (например, видеотайлов) в дополнение или альтернативно к слайсам (например, видеослайсам), например, видео может быть кодировано с использованием групп I, P или B тайлов и/или тайлов.When a video slice is encoded as an intra-coded (I) slice, the intra prediction block 354 of the mode applying block 360 is configured to generate a prediction block 365 for a picture block of the current video slice based on the signaled intra prediction mode and data from the previously decoded blocks of the current picture. When a video image is encoded as an inter-coded (i.e., B or P) slice, the inter prediction block 344 (e.g., motion compensation block) of the mode apply block 360 is configured to create prediction blocks 365 for the video block of the current video slice based on the motion vectors and others. syntax elements received from block 304 entropy decoding. For inter prediction, prediction blocks may be created from one of the reference pictures within one of the reference picture lists. Video decoder 30 may construct the key frame lists, List 0 and List 1 using default construction methods based on the reference pictures stored in the DPB 330. The same or similar may apply for or through embodiments using tile groups (e.g., video tile groups ) and/or tiles (eg, video tiles) in addition to or alternatively to slices (eg, video slices), for example, video may be encoded using groups I, P, or B of tiles and/or tiles.

Блок 360 применения режима выполнен с возможностью определения информации предсказания для видеоблока текущего видеослайса путем синтаксического анализа векторов движения или связанной информации и других синтаксических элементов, и использует информацию предсказания для создания блоков предсказания для текущего декодируемого видеоблока. Например, блок 360 применения режима использует некоторые из принятых синтаксических элементов для определения режима предсказания (например, внутренне или внешнее предсказание), используемого для кодирования видеоблоков видеослайса, типа слайса внешнего предсказания (например, B-слайс, P-слайс или GPB-слайс), информации построения для одного или более списков опорных картинок для слайса, векторов движения для каждого внешне-кодированного видеоблока слайса, статуса внешнего предсказания для каждого внешне-кодированного видеоблока слайса, а также другой информации для декодирования видеоблоков в текущем видеослайсе. То же самое или подобное может применяться для или посредством вариантов осуществления с использованием групп тайлов (например, групп видеотайлов) и/или тайлов (например, видеотайлов) в дополнение или альтернативно к слайсам (например, видеослайсам), например, видео может быть кодировано с использованием групп I, P или B тайлов и/или тайлов.The mode applyer 360 is configured to determine prediction information for a video block of the current video slice by parsing motion vectors or related information and other syntax elements, and uses the prediction information to generate prediction blocks for the current video block being decoded. For example, the mode applicator 360 uses some of the received syntax elements to determine the prediction mode (e.g., intra or inter prediction) used to encode the video blocks of the video slice, the type of inter prediction slice (e.g., B slice, P slice, or GPB slice) , construction information for one or more reference picture lists for the slice, motion vectors for each inter-coded video block of the slice, inter-prediction status for each inter-coded video block of the slice, and other information for decoding video blocks in the current video slice. The same or similar may apply to or through embodiments using groups of tiles (eg, video tile groups) and/or tiles (eg, video tiles) in addition to or alternatively to slices (eg, video slices), e.g., video may be encoded with using groups of I, P or B tiles and/or tiles.

Варианты осуществления видеодекодера 30, как показано на Фиг. 3, могут быть выполнены с возможностью разделения и/или декодирования картинки с использованием слайсов (также именуемых видеослайсами), при этом картинка может быть разделена на или кодирована с использованием одного или более слайсов (обычно не перекрывающихся), и каждый слайс может содержать один или более блоков (например, CTU).Embodiments of video decoder 30, as shown in FIG. 3 may be configured to split and/or decode a picture using slices (also referred to as video slices), wherein the picture may be divided into or encoded using one or more slices (generally non-overlapping), and each slice may contain one or more blocks (for example, CTU).

Варианты осуществления видеодекодера 30, показанные на Фиг. 3, могут быть выполнены с возможностью разделения и/или декодирования картинки с использованием групп тайлов (также называемых группами видеотайлов) и/или тайлов (также называемых видеотайлами), при этом картинка может быть разделена на или декодирована с использованием одной или более групп тайлов (обычно не перекрывающихся), и каждая группа тайлов может содержать, например один или более блоков (например, CTU) или один или более тайлов, при этом каждый тайл, в качестве примера, может иметь прямоугольную форму и может содержать один или более блоков (например, CTU), таких как полные или частичные блоки.Embodiments of video decoder 30 shown in FIG. 3 may be configured to split and/or decode a picture using tile groups (also referred to as video tile groups) and/or tiles (also referred to as video tiles), wherein the picture may be divided into or decoded using one or more tile groups ( usually non-overlapping) and each group of tiles may contain, for example, one or more blocks (for example, CTU) or one or more tiles, each tile, by way of example, may have a rectangular shape and may contain one or more blocks (for example, , CTU) such as full or partial units.

Другие варианты видеодекодера 30 могут использоваться для декодирования закодированных данных 21 картинки. Например, декодер 30 может создавать выходной видеопоток без блока 320 контурной фильтрации. Например, декодер 30, не основанный на преобразовании, может выполнять обратное квантование остаточного сигнала напрямую без блока 312 обработки обратного преобразования для некоторых блоков или кадров. В другой реализации видеодекодер 30 может иметь блок 310 обратного квантования и блок 312 обработки обратного преобразования, объединенные в один блок.Other variants of video decoder 30 may be used to decode encoded picture data 21 . For example, decoder 30 may produce an output video stream without loop filtering unit 320 . For example, a non-transform-based decoder 30 may perform inverse quantization of the residual signal directly without the inverse transform processing unit 312 for some blocks or frames. In another implementation, video decoder 30 may have an inverse quantizer 310 and an inverse transform processor 312 combined into one block.

Следует понимать, что в кодере 20 и декодере 30 результат обработки некоторого текущего этапа может быть обработан дополнительно, а затем выведен на следующий этап. Например, после интерполяционной фильтрации, получения вектора движения или контурной фильтрации, дополнительная операция, такая как Clip (усечение) или смещение, может выполняться над результатом обработки интерполяционной фильтрации, получения вектора движения или контурной фильтрации.It should be understood that in encoder 20 and decoder 30, the processing result of some current stage may be further processed and then output to the next stage. For example, after interpolation filtering, motion vector acquisition, or contour filtering, an additional operation such as Clip (truncation) or offset may be performed on the result of the interpolation filtering, motion vector acquisition, or contour filtering processing.

Следует отметить, что дополнительные операции могут применяться к выводимым векторам движения текущего блока (в том числе, но без ограничения, к векторам движения контрольной точки аффинного режима, векторам движения субблока в аффинном, планарном, ATMVP режимах, временным векторам движения и тому подобному). Например, значение вектора движения ограничивается предопределенным диапазоном в соответствии с его представляющим битом. Если представляющий бит вектора движения является bitDepth (битовой глубиной), тогда диапазон составляет -2^(bitDepth-1) ~2^(bitDepth-1)-1, где «^» означает возведение в степень. Например, если bitDepth равна 16, диапазон составляет -32768~32767; если bitDepth равна 18, диапазон составляет -131072~131071. Например, значение выводимого вектора движения (например, MV четырех субблоков 4×4 в одном блоке 8×8) ограничивается таким образом, чтобы максимальная разность между целыми частями MV четырех субблоков 4×4 не превышала N пикселей, например была не более 1 пикселя. Здесь представлены два способа ограничения вектора движения в соответствии с bitDepth.It should be noted that additional operations may be applied to the current block's inferred motion vectors (including, but not limited to, affine mode checkpoint motion vectors, sub-block motion vectors in affine, planar, ATMVP modes, temporal motion vectors, and the like). For example, the motion vector value is limited to a predefined range according to its representing bit. If the representing bit of the motion vector is bitDepth (bit depth), then the range is -2^(bitDepth-1)~2^(bitDepth-1)-1, where "^" means exponentiation. For example, if bitDepth is 16, the range is -32768~32767; if bitDepth is 18, the range is -131072~131071. For example, the output motion vector value (e.g., MVs of four 4x4 subblocks in one 8x8 block) is limited so that the maximum difference between integer parts of the MVs of four 4x4 subblocks does not exceed N pixels, for example, is no more than 1 pixel. Here are two ways to limit the motion vector according to bitDepth.

Способ 1: удаление MSB (старшего бита) переполнения посредством потоковых операцийMethod 1: Removing the MSB (Most Significant Bit) of the Overflow via Stream Operations

ux= ( mvx+2bitDepth ) % 2bitDepth (1)ux= ( mvx+2 bitDepth ) % 2 bitDepth (1)

mvx = ( ux >= 2bitDepth-1 ) ? (ux − 2bitDepth ) : ux (2)mvx = ( ux >= 2 bitDepth-1 ) ? (ux − 2 bitDepth ) : ux(2)

uy= ( mvy+2bitDepth ) % 2bitDepth (3)uy= ( mvy+2 bitDepth ) % 2 bitDepth (3)

mvy = ( uy >= 2bitDepth-1 ) ? (uy − 2bitDepth ) : uy (4)mvy = ( uy >= 2 bitDepth-1 ) ? (uy − 2 bitDepth ) : uy (4)

где mvx представляет собой горизонтальную компоненту вектора движения блока изображения или субблока, mvy представляет собой вертикальную компоненту вектора движения блока изображения или субблока, а ux и uy указывает промежуточное значение;where mvx is the horizontal component of the motion vector of the image block or sub-block, mvy is the vertical component of the motion vector of the image block or sub-block, and ux and uy indicate an intermediate value;

Например, если значение mvx равно -32769, после применения формул (1) и (2) результирующее значение равняется 32767. В компьютерной системе десятичные числа хранятся как дополнение до двойки. Дополнением до двойки для -32769 является 1,0111,1111,1111,1111 (17 битов), затем MSB отбрасывается, поэтому результирующим дополнением до двойки является 0111,1111,1111,1111 (десятичное число составляет 32767), что совпадает с выходными данными от применения формул (1) и (2).For example, if the value of mvx is -32769, after formulas (1) and (2) are applied, the resulting value is 32767. In a computer system, decimal numbers are stored as two's complement. The two's complement of -32769 is 1.0111,1111,1111,1111 (17 bits), then the MSB is discarded, so the resulting two's complement is 0111.1111.1111.1111 (decimal is 32767), which is the same as the output from the application of formulas (1) and (2).

ux= ( mvpx + mvdx +2bitDepth ) % 2bitDepth (5)ux= ( mvpx + mvdx +2 bitDepth ) % 2 bitDepth (5)

mvx = ( ux >= 2bitDepth-1 ) ? (ux − 2bitDepth ) : ux (6)mvx = ( ux >= 2 bitDepth-1 ) ? (ux − 2 bitDepth ) : ux(6)

uy= ( mvpy + mvdy +2bitDepth ) % 2bitDepth (7)uy= ( mvpy + mvdy +2 bitDepth ) % 2 bitDepth (7)

mvy = ( uy >= 2bitDepth-1 ) ? (uy − 2bitDepth ) : uy (8)mvy = ( uy >= 2 bitDepth-1 ) ? (uy − 2 bitDepth ) : uy (8)

Операции могут применяться во время суммирования mvp и mvd, как показано в формулах с (5) по (8).Operations can be applied during the summation of mvp and mvd, as shown in formulas (5) to (8).

Способ 2: удаление MSB переполнения посредством усечения значенияMethod 2: Removing the MSB Overflow by Truncating the Value

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

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

где vx представляет собой горизонтальную компоненту вектора движения блока изображения или субблока, vy представляет собой вертикальную компоненту вектора движения блока изображения или субблока; x, y и z соответственно соответствуют трем входным значениям процесса усечения MV, а определение функции Clip3 является следующим:where vx is the horizontal component of the motion vector of the image block or sub-block, vy is the vertical component of the motion vector of the image block or sub-block; x, y, and z respectively correspond to the three input values of the MV clipping process, and the Clip3 function definition is as follows:

Clip3( x, y, z ) = Clip3(x, y, z) =

(где otherwise - иначе).(where otherwise - otherwise).

Фиг. 4 является схематичной блок-схемой устройства 400 видеокодировки согласно варианту осуществления настоящего раскрытия. Устройство 400 видеокодировки подходит для реализации раскрытых вариантов осуществления, которые описаны в данном документе. В варианте осуществления устройство 400 видеокодировки может быть декодером, таким как видеодекодер 30 по ФИГ. 1A, или кодером, таким как видеокодер 20 по ФИГ. 1А.Fig. 4 is a schematic block diagram of a video encoding apparatus 400 according to an embodiment of the present disclosure. The video encoding device 400 is suitable for implementing the disclosed embodiments that are described herein. In an embodiment, video encoding device 400 may be a decoder, such as video decoder 30 of FIG. 1A, or an encoder such as video encoder 20 of FIG. 1A.

Устройство 400 видеокодировки содержит входные порты 410 (или порты 410 ввода) и блоки 420 (Rx) приемника для приема данных; процессор, логический блок или центральный процессор (CPU) 430 для обработки данных; блоки 440 (Tx) передатчика и выходные порты 450 (или порты 450 вывода) для передачи данных; и память 460 для хранения данных. Устройство 400 видеокодировки также может содержать компоненты преобразования оптических сигналов в электрические (OE) и компоненты преобразования электрических сигналов в оптические (EO), подключенные к входным портам 410, блокам 420 приемника, блокам 440 передатчика и выходным портам 450 для обеспечения входа или выхода оптических или электрических сигналов.The video encoder 400 includes input ports 410 (or input ports 410) and receiver units (Rx) 420 for receiving data; a processor, logical unit, or central processing unit (CPU) 430 for processing data; blocks 440 (Tx) transmitter and output ports 450 (or ports 450 output) for data transmission; and a memory 460 for storing data. The video encoder 400 may also include optical-to-electrical (OE) and electrical-to-optical (EO) components connected to input ports 410, receiver units 420, transmitter units 440, and output ports 450 to provide input or output of optical or electrical signals.

Процессор 430 реализуется аппаратным обеспечением и программным обеспечением. Процессор 430 может быть реализован в виде одного или более CPU-чипов, ядер (например, в виде многоядерного процессора), FPGA, ASIC и DSP. Процессор 430 поддерживает связь с входными портами 410, блоками 420 приемника, блоками 440 передатчика, выходными портами 450 и памятью 460. Процессор 430 содержит модуль 470 кодировки. Модуль 470 кодировки реализует раскрытые варианты осуществления, описанные выше. Например, модуль 470 кодировки реализует, обрабатывает, подготавливает или предоставляет различные операции кодировки. Следовательно, включение в состав модуля 470 кодировки обеспечивает существенное улучшение функциональных возможностей устройства 400 видеокодировки и обеспечивает трансформацию устройства 400 видеокодировки в другое состояние. В качестве альтернативы модуль 470 кодировки реализуется как инструкции, хранящиеся в памяти 460 и исполняемые процессором 430.Processor 430 is implemented in hardware and software. Processor 430 may be implemented as one or more CPU chips, cores (eg, as a multi-core processor), FPGA, ASIC, and DSP. The processor 430 communicates with input ports 410, receiver units 420, transmitter units 440, output ports 450, and memory 460. Processor 430 includes an encoding module 470. Encoding module 470 implements the disclosed embodiments described above. For example, encoding module 470 implements, processes, prepares, or provides various encoding operations. Therefore, the inclusion of the encoding module 470 provides a significant improvement in the functionality of the video encoding device 400 and allows the transformation of the video encoding device 400 to another state. Alternatively, encoding module 470 is implemented as instructions stored in memory 460 and executed by processor 430.

Память 460 может содержать один или более дисков, ленточных накопителей и твердотельных накопителей и может использоваться в качестве устройства хранения данных переполнения для хранения программ, когда такие программы выбраны для исполнения, и для хранения инструкций и данных, которые считываются во время исполнения программ. Память 460 может быть, например, энергозависимой и/или энергонезависимой и может быть постоянной памятью (ROM), оперативной памятью (RAM), троичной ассоциативной памятью (TCAM) и/или статической оперативной памятью (SRAM).Memory 460 may comprise one or more disks, tape drives, and solid state drives, and may be used as an overflow storage device for storing programs when such programs are selected for execution, and for storing instructions and data that are read during program execution. Memory 460 may be, for example, volatile and/or non-volatile and may be Read Only Memory (ROM), Random Access Memory (RAM), Ternary Associative Memory (TCAM) and/or Static Random Access Memory (SRAM).

Фиг. 5 является упрощенной блок-схемой аппаратуры 500, которая может использоваться как одно или оба из устройства-источника 12 и устройства-получателя 14 с Фиг. 1 согласно примерному варианту осуществления. Fig. 5 is a simplified block diagram of hardware 500 that can be used as one or both of source device 12 and sink device 14 of FIG. 1 according to an exemplary embodiment .

Процессор 502 в аппаратуре 500 может быть центральным процессором. В качестве альтернативы, процессор 502 может быть устройством любого другого типа или множеством устройств, способных манипулировать или обрабатывать информацию, которая существует в настоящее время или будет разработана в будущем. Хотя раскрытые реализации могут быть осуществлены на практике с одним процессором, как показано, например, с процессором 502, преимущества в скорости и эффективности могут быть достигнуты с использованием более чем одного процессора.Processor 502 in apparatus 500 may be a central processing unit. Alternatively, processor 502 may be any other type of device or a plurality of devices capable of manipulating or processing information that currently exists or will be developed in the future. Although the disclosed implementations may be practiced with a single processor, as shown with processor 502, for example, speed and efficiency advantages may be achieved using more than one processor.

Память 504 в аппаратуре 500 может быть постоянной памятью (ROM) или устройством оперативной памяти (RAM) в некоторой реализации. В качестве памяти 504 может использоваться запоминающее устройство любого другого подходящего типа устройства. Память 504 может включать в себя код и данные 506, доступ к которым осуществляется процессором 502 с использованием шины 512. Память 504 может дополнительно включать в себя операционную систему 508 и прикладные программы 510, причем прикладные программы 510 включают в себя по меньшей мере одну программу, которая позволяет процессору 502 выполнять описанные в данном документе способы. Например, прикладные программы 510 могут включать в себя приложения с 1 по N, которые дополнительно включают в себя приложение видеокодировки, которое выполняет описанные в данном документе способы. The memory 504 in the hardware 500 may be a read only memory (ROM) or a random access memory (RAM) device in some implementation. Memory 504 may be any other suitable type of storage device. Memory 504 may include code and data 506 accessed by processor 502 using bus 512. Memory 504 may further include an operating system 508 and application programs 510, application programs 510 including at least one program, which allows the processor 502 to perform the methods described herein. For example, application programs 510 may include applications 1 through N, which further include a video encoding application that performs the methods described herein.

Аппаратура 500 может также включать в себя одно или более устройств вывода, например дисплей 518. Дисплей 518 может быть, в одном примере, дисплеем, чевствительным к касанию, который объединяет дисплей с элементом, чувствительным к касанию, способным воспринимать сенсорные вводы (касанием). Дисплей 518 может быть соединен с процессором 502 через шину 512.Hardware 500 may also include one or more output devices, such as a display 518. Display 518 may be, in one example, a touch-sensitive display that combines a display with a touch-sensitive element capable of receiving touch inputs (by touch). Display 518 may be coupled to processor 502 via bus 512.

Хотя здесь изображена как одна шина, шина 512 аппаратуры 500 может состоять из множественных шин. Кроме того, вторичное хранилище 514 может быть напрямую связано с другими компонентами аппаратуры 500 или может быть доступно через сеть и может содержать один встраиваемый блок, такой как карта памяти, или множество блоков, таких как множество карт памяти. Таким образом, аппаратура 500 может быть реализовано в самых разнообразных конфигурациях.Although depicted here as a single bus, bus 512 of apparatus 500 may be composed of multiple buses. In addition, secondary storage 514 may be directly connected to other hardware components 500, or may be accessible via a network, and may comprise a single pluggable unit, such as a memory card, or multiple units, such as a plurality of memory cards. Thus, hardware 500 can be implemented in a wide variety of configurations.

Уровень техники о кодировке с режимом внутреннего предсказанияState of the art about encoding with intra prediction mode

В текущей версии VTM 4.0 для кодировки с режимом внутреннего предсказания создается список из 6-MPM (наиболее вероятных режимов). Список MPM вводится для уменьшения количества битов, необходимых для кодировки режима внутреннего предсказания текущего блока. Список 6-MPM строится на основе режимов внутреннего предсказания соседних блоков текущего блока. Когда режим внутреннего предсказания текущего блока попадает в список MPM, кодируется индекс, а не фактический режим, который может использовать меньше битов. Когда режим внутреннего предсказания текущего блока не попадает в список MPM, усеченная бинаризация используется для кодировки режима внутреннего предсказания текущего блока. Список MPM обеспечивает хорошее предсказание для режима внутреннего предсказания текущего блока.In the current version of VTM 4.0, a list of 6-MPM (most probable modes) is created for encoding with intra prediction mode. The MPM list is introduced to reduce the number of bits required to encode the intra prediction mode of the current block. The 6-MPM list is built based on the intra prediction modes of neighboring blocks of the current block. When the intra prediction mode of the current block enters the MPM list, an index is encoded rather than the actual mode, which may use fewer bits. When the intra prediction mode of the current block does not fall into the MPM list, truncated binarization is used to encode the intra prediction mode of the current block. The MPM list provides good prediction for the intra prediction mode of the current block.

Список MPM для множественных опорных строк (MRL). List of MPMs for multiple reference strings (MRLs).

В VTM 4.0 инструмент кодировки с множественными опорными строками (MRL) может использовать одну из нескольких соседних опорных строк для предсказания выборок текущего блока. Когда значение индекса строки MRL равно 0 (т.е. используется ближайшая соседняя опорная строка, т.е. опорная строка 0, как показано на Фиг. 6), используется обычный список из 6 MPM, содержащий планарный и DC. Когда значение индекса строки MRL не равно 0, используется список из 6-MPM, за исключением планарного (т.е. значение 0) и DC (т.е. значение 1).In VTM 4.0, the multiple reference row (MRL) coding tool can use one of several adjacent reference rows to predict the samples of the current block. When the MRL row index value is 0 (ie, the nearest adjacent reference row is used, ie, reference row 0, as shown in Fig. 6), a normal list of 6 MPMs containing planar and DC is used. When the MRL row index value is not 0, a list of 6-MPM is used, excluding planar (ie, value 0) and DC (ie, value 1).

Список MPM для режима внутренней кодировки подразделов (ISP)List of MPMs for Internal Sub-Section Encoding (ISP) Mode

Режим внутренней кодировки подразделов (ISP) - это инструмент, недавно принятый в VTM4.0 (JVET-M0102). Блоки с внутренним предсказанием яркости делятся по вертикали или горизонтали на 2 или 4 подраздела, в зависимости от размеров блока, как показано в таблице 1. На Фиг. 7 и 8 показаны примеры двух возможностей. Все подразделы удовлетворяют условию наличия не менее 16 выборок.The Internal Sub-Section Encoding (ISP) mode is a tool recently adopted in VTM4.0 (JVET-M0102). Blocks with intra luminance prediction are divided vertically or horizontally into 2 or 4 subsections, depending on block sizes, as shown in Table 1. FIG. 7 and 8 show examples of two possibilities. All subsections satisfy the condition of having at least 16 samples.

Таблица 1: Количество подразделов в зависимости от размера блокаTable 1: Number of subsections by block size

Размер блокаBlock size Количество подразделовNumber of subsections Не разделенNot divided и And 22 Все остальные случаиAll other cases 44

Когда задействован режим внутренней кодировки подразделов, в VTM 4.0 используется другой список MPM, за исключением режима DC. Режим внутреннего подраздела может применяться, когда значение индекса множественных опорных строк равно 0 (т.е. MRL не применяется к текущему блоку внутреннего предсказания). Все подразделы совместно используют один режим внутреннего предсказания, поэтому список MPM создается один раз для внутреннего блока и совместно используется всеми подразделами.When the internal subkey encoding mode is enabled, VTM 4.0 uses a different list of MPMs, with the exception of DC mode. The intra-subsection mode may be applied when the index value of the multiple reference rows is 0 (ie, MRL is not applied to the current intra prediction block). All subpartitions share one intra prediction mode, so the MPM list is created once per intrablock and shared by all subpartitions.

Построение MPM может зависеть от режима разбиения ISP. Определяются два режима разбиения: горизонтальный и вертикальный. Они показаны на Фиг. 7 и 8, где горизонтальное разбиение/разделение показано вверху, а вертикальное разбиение/разделение показано внизу.The construction of the MPM may depend on the partitioning mode of the ISP. Two partitioning modes are defined: horizontal and vertical. They are shown in Fig. 7 and 8 where the horizontal split/split is shown at the top and the vertical split/split is shown at the bottom.

В следующей таблице 2 приведены характеристики списка 3 MPM, используемого в VTM 4.0.The following table 2 lists the characteristics of the 3 MPM list used in VTM 4.0.

Таблица 2: различные 6-MPM, используемые в VTM 4.0 при различных обстоятельствахTable 2: Various 6-MPMs used in VTM 4.0 under different circumstances

Конфигурация MRLMRL Configuration Конфигурация ISPISP configuration Характеристика списка MPMCharacteristics of the MPM List -- 6 MPM, но исключая планарный режим и режим DC6 MPM, but excluding planar mode and DC mode 11 6 MPM, но исключая режим DC6 MPM but excluding DC mode 00 6 MPM, включая планарный режим и режим DC6 MPM including planar mode and DC mode

Справочная информация о контекстном моделировании/кодировании CABAC.Background information on CABAC context modeling/coding.

Как показано на Фиг. 9, кодировка CABAC состоит из бинаризации, контекстного моделирования и двоичной арифметической кодировки. Бинаризация отображает элементы синтаксиса в двоичные символы (бины). Контекстное моделирование оценивает вероятность каждого не обойденного (т.е. регулярно кодированного) бина на основе некоторого конкретного контекста. Наконец, двоичная арифметическая кодировка сжимает бины до битов в соответствии с оцененной вероятностью. As shown in FIG. 9, CABAC encoding consists of binarization, context modeling, and binary arithmetic encoding. Binarization maps syntax elements to binary characters (bins). Context modeling estimates the probability of each non-bypassed (ie regularly encoded) bin based on some particular context. Finally, binary arithmetic encoding compresses bins to bits according to the estimated probability.

Посредством декомпозиции каждого значения небинарного элемента синтаксиса в последовательность бинов дополнительная обработка каждого значения бина в CABAC зависит от соответствующего решения о режиме кодировки, которое может быть выбрано либо как регулярный, либо как режим с обходом. Последний выбирается для бинов, которые, как предполагается, распределены равномерно и для которых, следовательно, весь процесс регулярного двоичного арифметического кодирования (и декодирования) просто игнорируется. В режиме регулярной кодировки каждое значение бина кодируется с использованием механизма регулярной двоичной арифметической кодировки, где соответствующая вероятностная модель определяется либо фиксированным выбором, на основе типа элемента синтаксиса и позиции бина, либо индекса бина (binIdx) в бинаризованном представлении элемента синтаксиса или адаптивно выбирается из двух или более вероятностных моделей в зависимости от связанной дополнительной информации.By decomposing each value of a non-binary syntax element into a sequence of bins, the additional processing of each value of a bin in CABAC depends on the appropriate encoding mode decision, which can be chosen as either regular or bypassed mode. The latter is chosen for bins that are assumed to be evenly distributed and for which, therefore, the entire process of regular binary arithmetic encoding (and decoding) is simply ignored. In the regular encoding mode, each bin value is encoded using the regular binary arithmetic encoding mechanism, where the corresponding probability model is determined either by a fixed choice, based on the syntax element type and bin position, or by a bin index (binIdx) in the binarized representation of the syntax element, or adaptively selected from two or more probabilistic models depending on the associated additional information.

Выбор вероятностной модели называется контекстным моделированием. Каждая вероятностная модель в CABAC адресуется с использованием уникального индекса контекста (ctxIdx), который либо определяется фиксированным назначением, либо вычисляется логикой вывода контекста, с помощью которой, в свою очередь, задается данная контекстная модель.The choice of a probabilistic model is called context modeling. Each probability model in CABAC is addressed using a unique context index (ctxIdx), which is either determined by a fixed assignment or computed by the context inference logic, which in turn specifies that context model.

Уровень техники о том, как определять соседей слева и сверху.State of the art on how to determine left and top neighbors.

Кодировка с режимом внутреннего предсказания VVC зависит от режимов внутреннего предсказания его соседних блоков. А именно левого и верхнего блоков текущего блока. Их положение показано на Фиг. 10.An encoding with a VVC intra prediction mode depends on the intra prediction modes of its neighboring blocks. Namely, the left and top blocks of the current block. Their position is shown in Fig. 10.

Сигнализация индекса MPMMPM index alarm

Флаг (т.е. флаг MPM) используется, чтобы указать, находится ли режим внутреннего предсказания текущего блока в списке MPM или нет. Когда флаг MPM имеет значение «истина» (т.е. значение 1), то режим внутреннего предсказания может быть определен с использованием индекса MPM. Индекс MPM кодируется с использованием усеченного унарного кода, как показано в следующей таблице 3, когда длина списка MPM равна 6. Когда флаг MPM не истинен, режим внутреннего предсказания текущего блока отсутствует в списке MPM, и режим кодируется с использованием усеченного двоичного кода. Другой пример индекса MPM, когда список MPM состоит из 5 режимов, показан в таблице 4. Строка бинов для индекса кодировки называется усеченным унарным кодом (не усеченным двоичным кодом для кодировки не-MPM режимов). Обратите внимание, что для усеченного унарного кода бины 0 и 1 взаимозаменяемы без потери общности. В одном примере индекс MPM, когда список MPM состоит из 5 режимов, также может быть закодирован, как показано в таблице 5.A flag (ie, an MPM flag) is used to indicate whether the intra prediction mode of the current block is in the MPM list or not. When the MPM flag is set to true (ie, the value is 1), then the intra prediction mode can be determined using the MPM index. The MPM index is encoded using a truncated unary code as shown in the following Table 3 when the length of the MPM list is 6. When the MPM flag is not true, the intra prediction mode of the current block is not in the MPM list, and the mode is encoded using a truncated binary code. Another example of an MPM index when the MPM list consists of 5 modes is shown in Table 4. The bin string for the encoding index is called the truncated unary code (not truncated binary for non-MPM mode encoding). Note that for the truncated unary code, bins 0 and 1 are interchangeable without loss of generality. In one example, the MPM index when the MPM list consists of 5 modes may also be encoded as shown in Table 5.

Таблица 3: Кодировка флага MPM и индекса MPM при 6 записях в списке MPMTable 3: Encoding of the MPM flag and MPM index with 6 entries in the MPM list

Режимы внутреннего предсказанияIntra prediction modes Флаг MPMMPM Flag Индекс MPMMPM Index Строка бина индекса MPMMPM index bean string Режимы MPM (6)MPM Modes (6) 11 00 00 11 1010 22 110110 33 11101110 44 1111011110 55 1111111111 00 Усеченный двоичный код (TB)Truncated Binary (TB)

Таблица 4: Кодировка флага MPM и индекса MPM, когда 5 записей в списке MPMTable 4: Encoding of the MPM flag and MPM index when there are 5 entries in the MPM list

Режимы внутреннего предсказанияIntra prediction modes Флаг MPMMPM Flag Индекс MPMMPM index Строка бина индекса MPMMPM index bean string Режимы MPM (5)MPM modes (5) 11 00 00 11 1010 22 110110 33 11101110 44 11111111 00 Усеченный двоичный код (TB)Truncated Binary (TB)

Таблица 5: Кодировка флага MPM и индекса MPM, когда 5 записей в списке MPM, и альтернативное кодовое слово для индекса MPMTable 5: Encoding of the MPM flag and MPM index when there are 5 entries in the MPM list, and an alternative codeword for the MPM index

Режимы внутреннего предсказанияIntra prediction modes Флаг MPMMPM Flag Индекс MPMMPM index Строка бина индекса MPMMPM index bean string Режимы MPM (5)MPM modes (5) 11 00 11 11 0101 22 001001 33 00010001 44 00000000 00 Усеченный двоичный код (TB)Truncated Binary (TB)

Справочная информация о планарном режиме, DC, горизонтальном, вертикальном и угловом режимах: режимы внутреннего предсказания: планарный (значение 0) и DC (значение 1). Другие режимы внутреннего предсказания называются режимами углового предсказания.Reference information about planar, DC, horizontal, vertical and angular modes: intra prediction modes: planar (value 0) and DC (value 1). Other intra prediction modes are called angle prediction modes.

В VTM4.0 следующая структура синтаксиса, показанная в таблице 6, используется для передачи информации о режиме внутреннего предсказания.In VTM4.0, the following syntax structure shown in Table 6 is used to convey intra prediction mode information.

Таблица 6: синтаксический анализ в VTM4.0Table 6: parsing in VTM4.0

если ( intra_luma_ref_idx[ x0 ][ y0 ] = = 0 &&
intra_subpartitions_mode_flag[ x0 ][ y0 ] = = 0 )
if ( intra_luma_ref_idx[ x0 ][ y0 ] == 0 &&
intra_subpartitions_mode_flag[ x0 ][ y0 ] = = 0 )
intra_luma_mpm_flag [x0] [y0] intra_luma_mpm_flag [ x0] [y0] ае (v)ae (v) если (intra_luma_mpm_flag [x0] [y0]) {if(intra_luma_mpm_flag[x0][y0]) { intra_luma_mpm_idx [x0] [y0] intra_luma_mpm_idx[ x0][y0] ае (v)ae (v) }} иначеotherwise intra_luma_mpm_remainder [x0] [y0] intra_luma_mpm_remainder [ x0] [y0] ае (v)ae (v)

intra_luma_ref_idx [x0] [y0] может иметь три значения: 0, 1 или 2, указывающих, какая опорная строка используется. Когда intra_luma_ref_idx [x0] [y0] отсутствует, предполагается, что оно равно 0. intra_luma_ref_idx[x0][ y0] can have three values: 0, 1 or 2 indicating which reference string is used. When intra_luma_ref_idx[x0][ y0] is absent, it is assumed to be 0.

intra_subpartitions_mode_flag [x0] [y0], равное 1, указывает, что текущая единица внутренней кодировки дополнительно разделена (т. е. включен режим ISP). intra_subpartitions_mode_flag [x0] [y0], равное 0, указывает, что текущая единица внутренней кодировки не разделена на прямоугольные подразделы блока преобразования. Когда intra_subpartitions_mode_flag [x0] [y0] отсутствует, предполагается, что оно равно 0. intra_subpartitions_mode_flag [x0] [ y0] equal to 1 indicates that the current internal encoding unit is sub-partitioned (i.e. ISP mode enabled). intra_subpartitions_mode_flag [x0] [y0] equal to 0 indicates that the current internal encoding unit is not divided into rectangular transform block subpartitions. When intra_subpartitions_mode_flag [x0] [y0] is absent, it is assumed to be 0.

Элементы синтаксиса intra_luma_mpm_flag [x0] [y0], intra_luma_mpm_idx [x0] [y0] и intra_luma_mpm_remainder [x0] [y0] определяют режим внутреннего предсказания для выборок яркости. The intra_luma_mpm_flag[ x0][y0], intra_luma_mpm_idx[ x0][y0], and intra_luma_mpm_remainder [x0][y0] syntax elements define the intra-prediction mode for luma samples.

intra_luma_mpm_flag [x0] [y0] указывает, выведен ли режим внутреннего предсказания текущего блока из списка MPM или нет. Если значение intra_luma_mpm_flag [x0] [y0] равно 1, это указывает, что режим внутреннего предсказания текущего блока выведен из списка MPM; Если значение intra_luma_mpm_flag [x0] [y0] равно 0, это указывает, что режим внутреннего предсказания текущего блока не выведен из списка MPM. Когда intra_luma_mpm_flag [x0] [y0] отсутствует, предполагается, что оно равно 1. intra_luma_mpm_flag [x0] [y0] соответствует флагу MPM в таблице 3. intra_luma_mpm_flag [x0] [y0] indicates whether the intra prediction mode of the current block is deduced from the MPM list or not. If the valueintra_luma_mpm_flag [x0] [y0] is 1, this indicates that the intra prediction mode of the current block is removed from the MPM list; If the valueintra_luma_mpm_flag [x0] [y0] is 0, this indicates that the intra prediction mode of the current block is not deduced from the MPM list. Whenintra_luma_mpm_flag [x0] [y0] is missing, it is assumed to be 1.intra_luma_mpm_flag [x0] [y0] matches MPM flag in Table 3.

intra_luma_mpm_idx соответствует индексу MPM в таблице 3 и использует усеченный унарный код, как показано в таблице 3. intra_luma_mpm_idxcorresponds MPM index in Table 3 and uses a truncated unary code as shown in Table 3.

intra_luma_mpm_remainder представляет усеченный двоичный код режима, которого нет в списке MPM. intra_luma_mpm_remainder represents a truncated mode binary that is not in the MPM list.

В варианте осуществления 1 раскрыты элементы синтаксиса intra_luma_planar_flag и ctx.Embodiment 1 discloses the intra_luma_planar_flag and ctx syntax elements.

Согласно одному варианту осуществления изобретения вводится флаг intra_luma_planar_flag.According to one embodiment of the invention, the intra_luma_planar_flag flag is introduced.

Если значение intra_luma_mpm_flag истинно (например, значение равно 1), декодер анализирует intra_luma_planar_flag, чтобы определить, является ли режим внутреннего предсказания текущего блока планарным режимом или нет. Когда значение intra_luma_planar_flag равно 1, режим внутреннего предсказания текущего блока является планарным режимом. Когда значение intra_luma_planar_flag равно 0, режим внутреннего предсказания текущего блока НЕ является планарным режимом. Если intra_luma_planar_flag отсутствует (например, этот флаг не может быть проанализирован из потока битов в случае, если intra_luma_mpm_flag равно 0), значение intra_luma_planar_flag выводится как 0.If the value of intra_luma_mpm_flag is true (for example, the value is 1), the decoder analyzes the intra_luma_planar_flag to determine whether the intra prediction mode of the current block is a planar mode or not. When the value of intra_luma_planar_flag is 1, the intra prediction mode of the current block is the planar mode. When the value of intra_luma_planar_flag is 0, the intra prediction mode of the current block is NOT a planar mode. If intra_luma_planar_flag is not present (for example, this flag cannot be parsed from the bitstream ifintra_luma_mpm_flagequals 0), the value of intra_luma_planar_flag is output as 0.

Если записан в стиле спецификации рабочего проекта VVC, режим внутреннего предсказания текущего блокаIf written in the VVC Working Draft specification style, the intra-prediction mode of the current block

IntraPredModeY [xCb] [yCb] выводится путем применения следующей процедуры:IntraPredModeY [xCb] [yCb] is derived by applying the following procedure:

Если intra_luma_mpm_flag [xCb] [yCb] равно 1,If intra_luma_mpm_flag [xCb] [yCb] is 1,

Если intra_luma_planar_flag [xCb] [yCb] равно 1, intraPredModeY [xCb] [yCb] устанавливается равным INTRA_PLANAR.If intra_luma_planar_flag [xCb] [yCb] is 1, intraPredModeY [xCb] [yCb] is set to INTRA_PLANAR.

В противном случае IntraPredModeY [xCb] [yCb] устанавливается равным candModeList [intra_luma_mpm_idx [xCb] [yCb]].Otherwise, IntraPredModeY[xCb][yCb] is set to candModeList[intra_luma_mpm_idx[xCb][yCb]].

Если режим внутреннего предсказания не является планарным режимом (то есть значение intra_luma_planar_flag равно 0), декодер дополнительно анализирует элемент синтаксиса intra_luma_mpm_idx.If the intra prediction mode is not a planar mode (ie, the intra_luma_planar_flag value is 0), the decoder further parses the intra_luma_mpm_idx syntax element.

В одном примере значение intra_luma_planar_flag закодировано контекстом CABAC (т.е. не закодировано с обходом CABAC), и декодер анализирует флаг с использованием контекста на основе того, является ли текущий блок нормальным внутренним блоком или нет.In one example, the intra_luma_planar_flag value is CABAC context encoded (ie not CABAC bypass encoded) and the decoder parses the flag using the context based on whether the current block is a normal intra block or not.

В одном примере значение intra_luma_planar_flag закодировано контекстом CABAC (т.е. не закодировано с обходом CABAC), и декодер анализирует флаг с использованием контекста на основе того, является ли текущий блок внутренним блоком с множественными опорными строками (MRL) или нет.In one example, the intra_luma_planar_flag value is CABAC context-encoded (i.e., not CABAC bypass-encoded), and the decoder parses the flag using the context based on whether the current block is a multiple reference row (MRL) intra block or not.

В одном примере значение intra_luma_planar_flag закодировано в контексте CABAC (т.е. не закодировано с обходом CABAC), и декодер анализирует флаг с использованием контекста на основе того, является ли текущий блок внутренним блоком с задействованным режимом внутренней кодировки внутри подразделов (ISP). In one example, the value of intra_luma_planar_flag is CABAC context-encoded (i.e., not CABAC-bypass-encoded), and the decoder parses the flag using the context based on whether the current box is an intra-block with Intra-Section Encoding (ISP) mode enabled.

В примере позиция intra_luma_planar_flag размещена, как в таблице 7.In the example, the intra_luma_planar_flag position is placed as in table 7.

Таблица 7: синтаксис с intra_luma_planar_flagTable 7: Syntax with intra_luma_planar_flag

если (intra_luma_ref_idx [x0] [y0] = = 0 && intra_subpartitions_mode_flag [x0] [y0] = = 0) if (intra_luma_ref_idx[x0][y0] == 0 && intra_subpartitions_mode_flag[x0][y0] == 0) intra_luma_mpm_flag [x0] [y0] intra_luma_mpm_flag [x0] [y0] ае (v)ae (v) если (intra_luma_mpm_flag [x0] [y0]) {if(intra_luma_mpm_flag[x0][y0]) { intra_luma_planar_flag [x0] [y0]intra_luma_planar_flag [x0] [y0] ае (v)ae (v) если (! intra_luma_planar_flag [ x0] [y0])if(! intra_luma_planar_flag[ x0][y0]) intra_luma_mpm_idx [x0] [y0] intra_luma_mpm_idx[ x0][y0] ае (v)ae (v) }} иначеotherwise intra_luma_mpm_remainder [x0] [y0] intra_luma_mpm_remainder [ x0] [y0] ае (v)ae (v)

Вариант осуществления 2: intra_luma_not_planar_flag и ctxImplementation 2: intra_luma_not_planar_flag and ctx

Согласно одному варианту осуществления изобретения вводится элемент синтаксиса intra_luma_not_planar_flag.According to one embodiment of the invention, the intra_luma_not_planar_flag syntax element is introduced.

Если значение intra_luma_mpm_flag истинно (например, значение равно 1), декодер анализирует intra_luma_not_planar_flag, чтобы определить, является ли режим внутреннего предсказания текущего блока планарным режимом или нет. Когда значение intra_luma_not_planar_flag равно 1, режим внутреннего предсказания текущего блока НЕ является планарным режимом; когда значение intra_luma_not_planar_flag равно 0, режим внутреннего предсказания текущего блока является планарным режимом. Если intra_luma_not_planar_flag отсутствует в потоке битов, значение intra_luma_not_planar_flag выводится как 1. В примере позиция intra_luma_not_planar_flag размещена, как в Таблице 8.If the value of intra_luma_mpm_flag is true (eg, the value is 1), the decoder analyzes the intra_luma_not_planar_flag to determine whether the intra prediction mode of the current block is planar mode or not. When the value of intra_luma_not_planar_flag is 1, the intra prediction mode of the current block is NOT a planar mode; when the value of intra_luma_not_planar_flag is 0, the intra prediction mode of the current block is the planar mode. If intra_luma_not_planar_flag is not present in the bitstream, the value of intra_luma_not_planar_flag is output as 1. In the example, the intra_luma_not_planar_flag position is placed as in Table 8.

Если режим внутреннего предсказания текущего блока не является планарным режимом (то есть значение intra_luma_not_planar_flag равно 1), декодер дополнительно анализирует элемент синтаксиса intra_luma_mpm_idx.If the intra prediction mode of the current block is not a planar mode (ie, the intra_luma_not_planar_flag value is 1), the decoder further parses the intra_luma_mpm_idx syntax element.

Запись в стиле спецификации рабочего проекта VVC, режим внутреннего предсказания текущего блокаVVC working draft specification style entry, current block intra prediction mode

IntraPredModeY [xCb] [yCb] выводится путем применения следующей процедуры:IntraPredModeY [xCb] [yCb] is derived by applying the following procedure:

Если intra_luma_mpm_flag [xCb] [yCb] равно 1,If intra_luma_mpm_flag [xCb] [yCb] is 1,

Если intra_luma_not_planar_flag [xCb] [yCb] равно 0, intraPredModeY [xCb] [yCb] устанавливается равным INTRA_PLANAR.If intra_luma_not_planar_flag [xCb] [yCb] is 0, intraPredModeY [xCb] [yCb] is set to INTRA_PLANAR.

В противном случае IntraPredModeY [xCb] [yCb] устанавливается равным candModeList [intra_luma_mpm_idx [xCb] [yCb]].Otherwise, IntraPredModeY[xCb][yCb] is set to candModeList[intra_luma_mpm_idx[xCb][yCb]].

В одном примере значение intra_luma_ not_planar_flag закодировано контекстом CABAC (т.е. не закодировано с обходом CABAC), и декодер анализирует флаг с использованием контекста на основе того, является ли текущий блок нормальным внутренним блоком или нет.In one example, the value intra_luma_not_planar_flag is CABAC context encoded (ie, not CABAC bypass encoded) and the decoder parses the flag using the context based on whether the current block is a normal intra block or not.

В одном примере значение intra_luma_ not_planar_flag закодировано в контексте CABAC (т.е. не закодировано с обходом CABAC), и декодер анализирует флаг с использованием контекста на основе того, является ли текущий блок внутренним блоком с множественными опорными строками (MRL) или нет.In one example, the intra_luma_not_planar_flag value is encoded in a CABAC context (i.e. not CABAC bypass encoded) and the decoder parses the flag using the context based on whether the current block is a multiple reference row (MRL) intra block or not.

В одном примере значение intra_luma_ not_planar_flag закодировано контекстом CABAC (т.е. не закодировано с обходом CABAC), и декодер анализирует флаг с использованием контекста на основе того, задействован ли текущий блок внутренним блоком с режимом внутренней кодировки подразделов (ISP).In one example, the intra_luma_not_planar_flag value is CABAC context-encoded (i.e., not CABAC-bypass-encoded), and the decoder parses the flag using the context based on whether the current block is being used by an intra block with an intra subsection encoding (ISP) mode.

Таблица 8: синтаксис с intra_luma_not_planar_flagTable 8: Syntax with intra_luma_not_planar_flag

если (intra_luma_ref_idx [x0] [y0] = = 0 && intra_subpartitions_mode_flag [x0] [y0] = = 0) if (intra_luma_ref_idx[x0][y0] == 0 && intra_subpartitions_mode_flag[x0][y0] == 0) intra_luma_mpm_flag [x0] [y0]intra_luma_mpm_flag [x0] [y0] ае (v)ae (v) если (intra_luma_mpm_flag [x0] [y0]) {if(intra_luma_mpm_flag[x0][y0]) { intra_luma_not_planar_flag [x0] [y0]intra_luma_not_planar_flag [x0] [y0] ае (v)ae (v) если (intra_luma_not_planar_flag [x0] [y0])if(intra_luma_not_planar_flag[x0][y0]) intra_luma_mpm_idx [x0] [y0]intra_luma_mpm_idx[x0][y0] ае (v)ae (v) }} ещеmore intra_luma_mpm_remainder [x0] [y0]intra_luma_mpm_remainder [x0] [y0] ае (v)ae (v)

Вариант осуществления 3: intra_luma_planar_flag и MRL и байпасное (с обходом) декодирование Embodiment 3: intra_luma_planar_flag and MRL and bypass decoding

Согласно одному варианту осуществления изобретения вводится флаг intra_luma_planar_flag.According to one embodiment of the invention, the intra_luma_planar_flag flag is introduced.

Если значение intra_luma_mpm_flag истинно (например, значение равно 1), декодер анализирует, равно ли значение опорной строки индекса ((intra_luma_ref_idx) 0 или нет. Если значение опорной строки индекса равно 0, значение intra_luma_planar_flag анализируется, чтобы определить, является ли режим внутреннего предсказания текущего блока планарным режимом или нет. Когда значение intra_luma_planar_flag равно 1, режим внутреннего предсказания текущего блока является планарным режимом. Когда значение intra_luma_planar_flag равно 0, режим внутреннего предсказания текущего блока НЕ является планарным режимом. Если intra_luma_planar_flag отсутствует, значение intra_luma_planar_flag выводится как 0.If the value of intra_luma_mpm_flag is true (for example, the value is 1), the decoder analyzes whether the value of the index reference row ((intra_luma_ref_idx) is 0 or not. If the value of the index reference row is 0, the valueintra_luma_planar_flag analyzed,to determine whether the intra prediction mode of the current block is a planar mode or not. When the valueintra_luma_planar_flag equals 1, mode intra-prediction of the current block is planar mode. When the valueintra_luma_planar_flag equals 0, mode Intra prediction of the current block is NOT a planar mode. Ifintra_luma_planar_flagmissing, valueintra_luma_planar_flag output like 0.

Если режим внутреннего предсказания текущего блока не является планарным режимом (то есть значение intra_luma_planar_flag равно 0), декодер дополнительно анализирует intra_luma_mpm_idx. If the intra prediction mode of the current block is not a planar mode (ie, the intra_luma_planar_flag value is 0 ), the decoder further parses the intra_luma_mpm_idx.

В одном примере значение intra_luma_planar_flag закодировано с обходом CABAC (т.е. не закодировано в контексте CABAC), и декодер анализирует флаг без использования какого-либо контекста CABAC.In one example, the valueintra_luma_planar_flag encoded with CABAC bypass (ie, not encoded in a CABAC context), and the decoder parses the flag without using any CABAC context.

Положение intra_luma_planar_flag показано в Таблице 9.The position of the intra_luma_planar_flag is shown in Table 9.

Таблица 9: синтаксис с intra_luma_planar_flag, и он закодирован с обходомTable 9: Syntax with intra_luma_planar_flag and it's coded with bypass

если (intra_luma_ref_idx [x0] [y0] = = 0 && intra_subpartitions_mode_flag [x0] [y0] = = 0) if (intra_luma_ref_idx[x0][y0] == 0 && intra_subpartitions_mode_flag[x0][y0] == 0) intra_luma_mpm_flag [x0] [y0] intra_luma_mpm_flag [ x0] [y0] ае (v)ae (v) если (intra_luma_mpm_flag [x0] [y0]) {if(intra_luma_mpm_flag[x0][y0]) { если (intra_luma_ref_idx [x0] [y0] = = 0)if (intra_luma_ref_idx[x0][y0] == 0) intra_luma_planar_flag [x0] [y0]intra_luma_planar_flag [x0] [y0] ае (v)ae (v) если (! intra_luma_planar_flag [x0] [y0])if(! intra_luma_planar_flag[ x0][y0]) intra_luma_mpm_idx [x0] [y0] intra_luma_mpm_idx[ x0][y0] ае (v)ae (v) }} иначеotherwise intra_luma_mpm_remainder [x0] [y0] intra_luma_mpm_remainder [ x0] [y0] ае (v)ae (v)

Вариант осуществления 4: intra_luma_not_planar_flag и MRL и байпасное (с обходом) декодирование Embodiment 4: intra_luma_not_planar_flag and MRL and bypass decoding

Согласно одному варианту осуществления изобретения вводится флаг intra_luma_not_planar_flag.According to one embodiment of the invention, the intra_luma_not_planar_flag flag is introduced.

Если значение intra_luma_mpm_flag истинно (например, значение равно 1), декодер анализирует, равно ли значение опорной строки индекса 0 или нет. Если значение опорной строки индекса равно 0, intra_luma_not_planar_flag анализируется, чтобы определить, является ли режим внутреннего предсказания текущего блока планарным режимом или нет. Когда значение intra_luma_not_planar_flag равно 1, режим внутреннего предсказания текущего блока НЕ является планарным режимом. Когда значение intra_luma_planar_flag равно 0, режим внутреннего предсказания текущего блока является планарным режимом. Если intra_luma_not_planar_flag отсутствует, значение intra_luma_not_planar_flag выводится как 1.If the value of intra_luma_mpm_flag is true (for example, the value is 1), the decoder analyzes whether the value of the index reference string is 0 or not. If the index reference row value is 0,intra_luma_not_planar_flag analyzed,to determine whether the intra prediction mode of the current block is a planar mode or not. When the valueintra_luma_not_planar_flag equals 1, mode Intra prediction of the current block is NOT a planar mode. When the valueintra_luma_planar_flag equals 0, mode intra-prediction of the current block is planar mode. Ifintra_luma_not_planar_flagmissing, meaningintra_luma_not_planar_flag output like 1.

Если режим внутреннего предсказания текущего блока не является планарным режимом (то есть значение intra_luma_not_planar_flag равно 1), декодер дополнительно анализирует intra_luma_mpm_idx. If the intra prediction mode of the current block is not a planar mode (that is, the valueintra_luma_not_planar_flag equals 1), decoder additionally analyzesintra_luma_mpm_idx.

В одном примере значение intra_luma_not_planar_flag закодировано с обходом CABAC (т.е. не закодировано контекстом CABAC), и декодер анализирует флаг без использования какого-либо контекста CABAC.In one example, the intra_luma_not_planar_flag value is encoded with CABAC bypass (ie, not encoded by the CABAC context), and the decoder parses the flag without using any CABAC context.

Положение intra_not_luma_planar_flag размещено, как в Таблице 10.The position of the intra_not_luma_planar_flag is placed as in Table 10.

Таблица 10: синтаксис с intra_luma_not_planar_flag, и он закодирован с обходомTable 10: Syntax with intra_luma_not_planar_flag and it is coded with bypass

если (intra_luma_ref_idx [x0] [y0] = = 0 && intra_subpartitions_mode_flag [x0] [y0] = = 0) if (intra_luma_ref_idx[x0][y0] == 0 && intra_subpartitions_mode_flag[x0][y0] == 0) intra_luma_mpm_flag [x0] [y0] intra_luma_mpm_flag [ x0] [y0] ае (v)ae (v) если (intra_luma_mpm_flag [x0] [y0]) { if(intra_luma_mpm_flag[x0][y0]) { если (intra_luma_ref_idx [x0] [y0] = = 0)if (intra_luma_ref_idx[x0][y0] == 0) intra_luma_not_planar_flag [x0] [y0]intra_luma_not_planar_flag [x0] [y0] ае (v)ae (v) если (intra_luma_not_planar_flag [x0] [y0])if (intra_luma_not_planar_flag[ x0][y0]) intra_luma_mpm_idx [x0] [y0] intra_luma_mpm_idx[ x0][y0] ае (v)ae (v) }} иначеotherwise intra_luma_mpm_remainder [x0] [y0] intra_luma_mpm_remainder [ x0] [y0] ае (v)ae (v)

Вариант 5 осуществления: intra_luma_not_planar_flag и MRL, и контекстное кодирование cabac (отличие от варианта 4 осуществления состоит в том, что intra_luma_not_planar_flag кодируется контекстом cabac, а не кодируется с обходом). Embodiment 5: intra_luma_not_planar_flag and MRL and cabac context encoding (the difference from Embodiment 4 is that intra_luma_not_planar_flag is cabac context encoded rather than bypass encoded).

Согласно одному варианту осуществления изобретения вводится флаг intra_luma_not_planar_flag.According to one embodiment of the invention, the intra_luma_not_planar_flag flag is introduced.

Декодер анализирует значение, указывающее индекс используемой опорной строки. Когда значение опорной строки индекса равно 0, декодер анализирует значение intra_luma_mpm_flag.The decoder parses a value indicating the index of the reference string to be used. When the index reference row value is 0, the decoder parses the intra_luma_mpm_flag value.

Если значение intra_luma_mpm_flag истинно (например, значение равно 1), декодер проверяет, равно ли значение опорной строки индекса 0 или нет. Если значение опорной строки индекса равно 0, intra_luma_not_planar_flag анализируется, чтобы определить, является ли режим внутреннего предсказания текущего блока Планарным режимом или нет. Когда значение intra_luma_not_planar_flag равно 1, режим внутреннего предсказания текущего блока НЕ является планарным режимом. Когда значение intra_luma_not_planar_flag равно 0, режим внутреннего предсказания текущего блока является планарным режимом. Если intra_luma_not_planar_flag отсутствует, значение intra_luma_not_planar_flag выводится как 1.If the value of intra_luma_mpm_flag is true (for example, the value is 1), the decoder checks whether the value of the index reference string is 0 or not. If the index reference row value is 0,intra_luma_not_planar_flagis analyzed to determine whether the intra prediction mode of the current block is the Planar mode or not. When the valueintra_luma_not_planar_flag equal to 1, mode Intra prediction of the current block is NOT a planar mode. When the valueintra_luma_not_planar_flag is 0, mode internal prediction current block is planar mode. Ifintra_luma_not_planar_flagmissing, intra_luma_not_planar_flag valueoutputlike 1.

Если режим внутреннего предсказания текущего блока не является планарным режимом (т.е. значение intra_luma_not_planar_flag равно 1), декодер дополнительно анализирует intra_luma_mpm_idx. If the intra prediction mode of the current block is not a planar mode (ie, the value of intra_luma_not_planar_flag is equal to 1), the decoder further analyzes intra_luma_mpm_idx.

В одном примере значение intra_luma_ not_planar_flag закодировано контекстом CABAC (т.е. не закодировано с обходом CABAC), и декодер анализирует флаг с использованием контекста на основе того, является ли текущий блок нормальным внутренним блоком или нет.In one example, the value intra_luma_not_planar_flag is CABAC context encoded (ie, not CABAC bypass encoded) and the decoder parses the flag using the context based on whether the current block is a normal intra block or not.

В одном примере значение intra_luma_ not_planar_flag закодировано в контексте CABAC (т.е. не закодировано с обходом CABAC), и декодер анализирует флаг с использованием контекста на основе того, является ли текущий блок внутренним блоком с множественными опорными строками (MRL) или нет. In one example, the intra_luma_not_planar_flag value is encoded in a CABAC context (i.e. not CABAC bypass encoded) and the decoder parses the flag using the context based on whether the current block is a multiple reference row (MRL) intra block or not.

В одном примере значение intra_luma_ not_planar_flag закодировано контекстом CABAC (т.е. не закодировано с обходом CABAC), и декодер анализирует флаг с использованием контекста на основе того, задействан ли текущий блок внутренним блоком с режимом внутренней кодировки подразделов (ISP).In one example, the intra_luma_not_planar_flag value is CABAC context-encoded (i.e., not CABAC bypass-encoded), and the decoder parses the flag using the context based on whether the current block is used by an intra block with an intra subsection encoding (ISP) mode.

Положение intra_not_luma_planar_flag показано в Таблице 11.The position of the intra_not_luma_planar_flag is shown in Table 11.

Таблица 11: синтаксис с intra_luma_not_planar_flag и он закодирован контекстом cabac Table 11: syntax with intra_luma_not_planar_flag and it is encoded by cabac context

если (intra_luma_ref_idx [x0] [y0] = = 0 && intra_subpartitions_mode_flag [x0] [y0] = = 0) if (intra_luma_ref_idx[x0][y0] == 0 && intra_subpartitions_mode_flag[x0][y0] == 0) intra_luma_mpm_flag [x0] [y0] intra_luma_mpm_flag [ x0] [y0] ае (v)ae (v) если (intra_luma_mpm_flag [x0] [y0]) { if(intra_luma_mpm_flag[x0][y0]) { если (intra_luma_ref_idx [x0] [y0] = = 0)if (intra_luma_ref_idx[x0][y0] == 0) intra_luma_not_planar_flag [x0] [y0]intra_luma_not_planar_flag [x0] [y0] ае (v)ae (v) если (intra_luma_not_planar_flag [x0] [y0])if (intra_luma_not_planar_flag[ x0][y0]) intra_luma_mpm_idx [x0] [y0] intra_luma_mpm_idx[ x0][y0] ае (v)ae (v) }} иначеotherwise intra_luma_mpm_remainder [x0] [y0] intra_luma_mpm_remainder [ x0] [y0] ае (v)ae (v)

Например,For example,

Добавить intra_luma_not_planar_flagAdd intra_luma_not_planar_flag

если (intra_luma_mpm_flag [x0] [y0]) { if(intra_luma_mpm_flag[x0][y0]) { если (intra_luma_ref_idx [x0] [y0] = = 0)if (intra_luma_ref_idx[x0][y0] == 0) intra_luma_not_planar_flag [x0] [y0] intra_luma_not_planar_flag [ x0] [y0] ае (v)ae (v) если (intra_luma_not_planar_flag [x0] [y0])if(intra_luma_not_planar_flag[x0][y0]) intra_luma_mpm_idx [x0] [y0] intra_luma_mpm_idx[ x0][y0] ае (v)ae (v) } иначе} otherwise intra_luma_mpm_remainder [x0] [y0] intra_luma_mpm_remainder [ x0] [y0] ае (v)ae (v) }}

intra_luma_mpm_flag [] []intra_luma_mpm_flag[][] FLFL cMax=1cMax=1 intra_luma_not_planar_flag [] []intra_luma_not_planar_flag[][] FLFL cMax=1cMax=1 intra_luma_mpm_idx [] []intra_luma_mpm_idx[][] TrTr cMax=4, cRiceParam=0cMax=4, cRiceParam=0

Когда intra_luma_not_planar_flag [x0] [y0] отсутствует, предполагается, что он равен 1.When intra_luma_not_planar_flag [x0] [y0] is absent, it is assumed to be 1.

В приведенной ниже Таблице 12 показан пример назначения ctxInc элементам синтаксиса с контекстно-кодированными бинами.Table 12 below shows an example of assigning ctxInc to syntax elements with context-encoded beans.

Таблица 12 - Назначение ctxInc элементам синтаксиса с контекстно-кодированными бинами Table 12 - Assignment of ctxInc to syntax elements with context-coded beans Элемент синтаксисаSyntax element binIdxbinIdx 00 11 22 33 44 >= 5>= 5 intra_subpartition_split_flagintra_subpartition_split_flag 00 ндnd ндnd ндnd ндnd ндnd intra_luma_mpm_flag [] []intra_luma_mpm_flag[][] 00 ндnd ндnd ндnd ндnd ндnd intra_luma_not_planar_flag [] []intra_luma_not_planar_flag[][] ! intra_subpartitions_mode_flag! intra_subpartitions_mode_flag ндnd ндnd ндnd ндnd ндnd intra_luma_mpm_idx [] []intra_luma_mpm_idx[][] обходdetour обходdetour обходdetour обходdetour ндnd ндnd intra_luma_mpm_remainder [] []intra_luma_mpm_remainder[][] обходdetour обходdetour обходdetour обходdetour обходdetour обходdetour

В варианте осуществления список MPM создается согласно следующему процессу.In an embodiment, the MPM list is created according to the following process.

8.4.2 Процесс вывода для режима внутреннего предсказания яркости8.4.2 Inference process for intra luminance prediction mode

Входными данными в этот процесс является следующее:The input to this process is the following:

местоположение яркости ( xCb , yCb ), указывающее верхнюю левую выборку текущего блока кодировки яркости относительно верхней левой выборки яркости текущей картинки,a luminance location ( xCb , yCb ) indicating the top left sample of the current luminance encoding block relative to the top left luminance sample of the current picture,

переменная cbWidth, указывающая ширину текущего блока кодировки в выборках яркости,cbWidth variable indicating the width of the current encoding block in brightness samples,

переменная cbHeight, указывающая высоту текущего блока кодировки в выборках яркости.cbHeight variable indicating the height of the current encoding block in brightness samples.

В этом процессе выводится режим IntraPredModeY [xCb] [yCb] внутреннего предсказания яркости.In this process, the IntraPredModeY [xCb] [yCb] intraprediction luminance mode is output.

Таблица 13 определяет значение для режима внутреннего предсказания IntraPredModeY [xCb] [yCb] и связанные имена.Table 13 defines the value for intraprediction mode IntraPredModeY [xCb] [yCb] and associated names.

Таблица 13 - Спецификация режима внутреннего предсказания и связанные именаTable 13 - Intra prediction mode specification and associated names

Режим внутреннего предсказанияIntra prediction mode Связанное именаRelated names 00 INTRA_PLANARINTRA_PLANAR 11 INTRA_DCINTRA_DC 2..662..66 INTRA_ANGULAR2..INTRA_ANGULAR66INTRA_ANGULAR2..INTRA_ANGULAR66 81..8381..83 INTRA_LT_CCLM, INTRA_L_CCLM, INTRA_T_CCLMINTRA_LT_CCLM, INTRA_L_CCLM, INTRA_T_CCLM

ПРИМЕЧАНИЕ: Режимы внутреннего предсказания INTRA_LT_CCLM, INTRA_L_CCLM иNOTE: The intra prediction modes INTRA_LT_CCLM, INTRA_L_CCLM and

INTRA_T_CCLM применимы только к компонентам цветности.INTRA_T_CCLM apply only to chrominance components.

IntraPredModeY [xCb] [yCb] выводится следующим образом:IntraPredModeY [xCb] [yCb] is output like this:

Если intra_luma_not_planar_flag [xCb] [yCb] равно 1, применяются следующие упорядоченные этапы:If intra_luma_not_planar_flag [xCb] [yCb] is 1, the following ordered steps apply:

1. Соседние местоположения ( xNbA, yNbA ) и ( xNbB, yNbB ) устнавливаются равными ( xCb − 1, yCb+cbHeight − 1 ) и ( xCb+cbWidth − 1, yCb − 1 ), соответственно.1. Adjacent locations ( xNbA, yNbA ) and ( xNbB, yNbB ) are set to ( xCb − 1, yCb+cbHeight − 1 ) and ( xCb+cbWidth − 1, yCb − 1 ), respectively.

2. Если X заменяется на A или B, переменные candIntraPredModeX выводятся следующим образом:2. If X is replaced by A or B, the candIntraPredModeX variables are output as follows:

Вызывается процесс вывода доступности для блока: Процесс проверки доступности соседних блоков вызывается с местоположением (xCurr, yCurr), установленным равным (xCb, yCb), и соседним местоположением (xNbY, yNbY), установленным равным (xNbX, yNbX) в качестве входных данных, а выход назначается для availableX.The block availability inference process is called: The neighbor block availability check process is called with location (xCurr, yCurr) set to (xCb, yCb) and neighbor location (xNbY, yNbY) set to (xNbX, yNbX) as input, and the output is assigned to availableX.

Кандидатный режим внутреннего предсказания candIntraPredModeX выводится следующим образом:Candidate intra prediction mode candIntraPredModeX is derived as follows:

Если истинным является одно или более из следующих условий, candIntraPredModeX устанавливается равным INTRA_PLANAR.If one or more of the following conditions is true, candIntraPredModeX is set to INTRA_PLANAR.

Значением переменной availableX является ЛОЖЬ.The value of availableX is FALSE.

CuPredMode [xNbX] [yNbX] не равен MODE_INTRA, а ciip_flag [xNbX] [yNbX] не равен 1.CuPredMode [xNbX] [yNbX] is not equal to MODE_INTRA and ciip_flag [xNbX] [yNbX] is not equal to 1.

pcm_flag [xNbX] [yNbX] равен 1.pcm_flag [xNbX] [yNbX] is 1.

X равно B и yCb − 1 меньше, чем ( ( yCb >> CtbLog2SizeY ) << CtbLog2SizeY ).X is equal to B and yCb − 1 is less than ( ( yCb >> CtbLog2SizeY ) << CtbLog2SizeY ).

В противном случае CandIntraPredModeX устанавливается равным IntraPredModeY [xNbX] [yNbX].Otherwise, CandIntraPredModeX is set to IntraPredModeY [xNbX] [yNbX].

где X заменяется либо соседним блоком A, либо B, местоположение яркости (xCb, yCb), определяющее верхнюю левую выборку текущего блока кодировки яркости относительно верхней левой выборки яркости текущей картинки, местоположение (xNbA, yNbA ) соседа A устанавливается равным (xCb - 1, yCb+cbHeight - 1), местоположение (xNbB, yNbB) соседа B устанавливается равным (xCb+cbWidth - 1, yCb - 1), переменная cbWidth, определяющее ширину текущего блока кодировки в выборках яркости, переменная cbHeight, определяющая высоту текущего блока кодировки в выборках яркости, CuPredMode, представляющий текущий режим предсказания, SizeY, представляющий размер Y компонентов блока дерева кодировки.where X is replaced by either adjacent block A or B, the luma location (xCb, yCb) defining the top left sample of the current luminance encoding block relative to the top left luma sample of the current picture, the location (xNbA, yNbA ) of neighbor A is set to (xCb - 1, yCb+cbHeight - 1), location (xNbB, yNbB) of B's neighbor is set to (xCb+cbWidth - 1, yCb - 1), cbWidth variable defining the width of the current encoding block in luma samples, cbHeight variable defining the height of the current encoding block in luma samples, CuPredMode representing the current prediction mode, SizeY representing the Y size of the encoding tree block components.

3. CandModeList [x] с x=0..4 выводится следующим образом:3. CandModeList [x] with x=0..4 is output like this:

Если CandIntraPredModeB равен candIntraPredModeA, а candIntraPredModeA больше INTRA_DC, candModeList [x] с x=0..4 выводится следующим образом:If CandIntraPredModeB is equal to candIntraPredModeA and candIntraPredModeA is greater than INTRA_DC, candModeList [x] with x=0..4 is output as follows:

candModeList [0] = candIntraPredModeA (8 10)candModeList[0] = candIntraPredModeA(8 10)

candModeList [1] = 2 + ((candIntraPredModeA+61)% 64) (8 12)candModeList[1] = 2 + ((candIntraPredModeA+61)% 64) (8 12)

candModeList [2] = 2 + ((candIntraPredModeA - 1)% 64) (8 13)candModeList[2] = 2 + ((candIntraPredModeA - 1)%64) (8 13)

candModeList [3] = INTRA_DC (8 11)candModeList[3] = INTRA_DC(8 11)

candModeList [4] = 2 + ((candIntraPredModeA+60)% 64) (8 14)candModeList[4] = 2 + ((candIntraPredModeA+60)% 64) (8 14)

В противном случае, если candIntraPredModeB не равно candIntraPredModeA, а candIntraPredModeA или candIntraPredModeB больше INTRA_DC, применяется следующее:Otherwise, if candIntraPredModeB is not equal to candIntraPredModeA and candIntraPredModeA or candIntraPredModeB is greater than INTRA_DC, the following applies:

Переменные minAB и maxAB выводятся следующим образом:The variables minAB and maxAB are output as follows:

minAB=Мин (candIntraPredModeA, candIntraPredModeB) (8 24)minAB=Min(candIntraPredModeA, candIntraPredModeB) (8 24)

maxAB=Макс (candIntraPredModeA, candIntraPredModeB) (8 25)maxAB=Max (candIntraPredModeA, candIntraPredModeB) (8 25)

Если candIntraPredModeA и candIntraPredModeB оба больше, чем INTRA_DC, candModeList [x] с x=0..4 выводится следующим образом:If candIntraPredModeA and candIntraPredModeB are both greater than INTRA_DC, candModeList[x] with x=0..4 is output as follows:

candModeList [0] = candIntraPredModeA (8 27)candModeList[0] = candIntraPredModeA(8 27)

candModeList [1] = candIntraPredModeB (8 29)candModeList[1] = candIntraPredModeB(8 29)

candModeList [2] = INTRA_DC (8 29)candModeList[2] = INTRA_DC(8 29)

Если maxAB - minAB находится в диапазоне от 2 до 62 включительно, применяется следующее:If maxAB - minAB is between 2 and 62 inclusive, the following applies:

candModeList [3] = 2 + ((maxAB+61)% 64) (8 30)candModeList[3] = 2 + ((maxAB+61)% 64) (8 30)

candModeList [4] = 2 + ((maxAB - 1)% 64) (8 31)candModeList[4] = 2 + ((maxAB - 1)%64)(8 31)

Иначе применяется следующее:Otherwise, the following applies:

candModeList [3] = 2 + ((maxAB+60)% 64) (8 32)candModeList[3] = 2 + ((maxAB+60)% 64) (8 32)

candModeList [4] = 2 + ((maxAB)% 64) (8 33)candModeList[4] = 2 + ((maxAB)%64)(8 33)

В противном случае (candIntraPredModeA или candIntraPredModeB больше, чем INTRA_DC), candModeList [x] с x=0..4 выводится следующим образом:Otherwise (candIntraPredModeA or candIntraPredModeB is greater than INTRA_DC), candModeList [x] with x=0..4 is output like this:

candModeList [0] = maxAB (8 65)candModeList[0] = maxAB(8 65)

candModeList [1] = INTRA_D (8 66)candModeList[1] = INTRA_D(8 66)

candModeList [2] = 2 + ((maxAB+61)% 64) (8 66)candModeList[2] = 2 + ((maxAB+61)% 64) (8 66)

candModeList [3] = 2 + ((maxAB - 1)% 64) (8 67)candModeList[3] = 2 + ((maxAB - 1)%64) (8 67)

candModeList [4] = 2 + ((maxAB+60)% 64) (8 68)candModeList[4] = 2 + ((maxAB+60)% 64) (8 68)

Иначе применяется следующее:Otherwise, the following applies:

candModeList [0] = INTRA_DC (8 71)candModeList[0] = INTRA_DC(8 71)

candModeList [1] = INTRA_ANGULAR50 (8 72)candModeList[1] = INTRA_ANGULAR50(8 72)

candModeList [2] = INTRA_ANGULAR18 (8 73)candModeList[2] = INTRA_ANGULAR18(8 73)

candModeList [3] = INTRA_ANGULAR46 (8 74)candModeList[3] = INTRA_ANGULAR46(8 74)

candModeList [4] = INTRA_ANGULAR54 (8 75)candModeList[4] = INTRA_ANGULAR54(8 75)

4. IntraPredModeY [xCb] [yCb] выводится путем применения следующей процедуры:4. IntraPredModeY [xCb] [yCb] is derived by applying the following procedure:

Если intra_luma_mpm_flag [xCb] [yCb] равно 1, IntraPredModeY [xCb] [yCb] устанавливается равным candModeList [intra_luma_mpm_idx [xCb] [yCb]].If intra_luma_mpm_flag [xCb] [yCb] is 1, IntraPredModeY [xCb] [yCb] is set to candModeList [intra_luma_mpm_idx [xCb] [yCb]].

В противном случае IntraPredModeY [xCb] [yCb] выводится путем выполнения следующих упорядоченных этапов:Otherwise, IntraPredModeY [xCb] [yCb] is derived by performing the following ordered steps:

1. Когда candModeList [i] больше, чем candModeList [j] для i=0..3 и для каждого i, j = (i+1) .. 4, оба значения меняются местами следующим образом:1. When candModeList[i] is greater than candModeList[j] for i=0..3 and for each i, j = (i+1) .. 4, both values are swapped as follows:

(candModeList [i], candModeList [j]) = Swap (candModeList [i], candModeList [j]) (8 94)(candModeList[i], candModeList[j]) = Swap(candModeList[i], candModeList[j]) (8 94)

2. IntraPredModeY [xCb] [yCb] выводится с помощью следующих упорядоченных этапов:2. IntraPredModeY [xCb] [yCb] is derived using the following ordered steps:

IntraPredModeY [xCb] [yCb] устанавливается равным intra_luma_mpm_remainder [xCb] [yCb].IntraPredModeY [xCb] [yCb] is set to intra_luma_mpm_remainder [xCb] [yCb].

Значение IntraPredModeY [xCb] [yCb] увеличивается на единицу.The value of IntraPredModeY [xCb] [yCb] is increased by one.

Для i, равного от 0 до 4 включительно, когда IntraPredModeY [xCb] [yCb] больше или равно candModeList [i], значение IntraPredModeY [xCb] [yCb] увеличивается на единицу.For i equal to 0 to 4 inclusive, when IntraPredModeY [xCb] [yCb] is greater than or equal to candModeList [i], the value of IntraPredModeY [xCb] [yCb] is increased by one.

В противном случае (intra_luma_not_planar_flag [xCb] [yCb] равно 0) IntraPredModeY [xCb] [yCb] устанавливается равным INTRA_PLANAR.Otherwise (intra_luma_not_planar_flag [xCb] [yCb] is 0) IntraPredModeY [xCb] [yCb] is set to INTRA_PLANAR.

Переменная IntraPredModeY [x] [y] с x=xCb..xCb+cbWidth - 1 и y=yCb..yCb+cbHeight - 1 устанавливается равной IntraPredModeY [xCb] [yCb].The variable IntraPredModeY [x] [y] with x=xCb..xCb+cbWidth - 1 and y=yCb..yCb+cbHeight - 1 is set to IntraPredModeY [xCb] [yCb].

В одном примере режим внутреннего предсказания текущего блока (например, имя переменной Luma_intra_mode) не является ни планарным режимом, ни режимом внутреннего предсказания в списке 5-MPM, его значение выводится, и предсказание этого режима внутреннего предсказания выполняется следующим образом:In one example, the intra prediction mode of the current block (e.g., variable name Luma_intra_mode) is neither a planar mode nor an intra prediction mode in the 5-MPM list, its value is output, and prediction of this intra prediction mode is performed as follows:

1. Выводится значение intra_luma_mpm_remainder из потока битов, и luma_intra_mode устанавливается равным значению intra_luma_mpm_remainder.1. The value of intra_luma_mpm_remainder is output from the bitstream and luma_intra_mode is set to the value of intra_luma_mpm_remainder.

2. Значение IntraPredModeY [xCb] [yCb] увеличивается на единицу.2. The value of IntraPredModeY [xCb] [yCb] is increased by one.

3. Для i, равного от 0 до 4 (по сравнению с каждой записью в списке 5-MPM), когда luma_intra_mode больше или равно MPM [i] (здесь MPM [0] соответствует первой записи в списке MPM, MPM [1] соответствует второй записи в списке MPM и так далее), значение luma_intra_mode увеличивается на единицу.3. For i equal to 0 to 4 (compared to each entry in the 5-MPM list), when luma_intra_mode is greater than or equal to MPM[i] (here MPM[0] corresponds to the first entry in the MPM list, MPM[1] corresponds to second entry in the MPM list, and so on), the value of luma_intra_mode is increased by one.

4. Использование выведенного режима внутреннего предсказания (luma_intra_mode) и соответствующих опорных выборок для выполнения внутреннего предсказания.4. Using the derived intra prediction mode (luma_intra_mode) and corresponding reference samples to perform intra prediction.

В одной реализации вышеупомянутых вариантов осуществления планарный режим может неявно рассматриваться как всегда первая запись в неявном списке 6-MPM. Этот неявный список 6-MPM состоит из планарных (всегда первая запись) и 5 других режимов (которые могут быть явно описаны как список 5-MPM).In one implementation of the above embodiments, the planar mode may implicitly be treated as always the first entry in the implicit 6-MPM list. This implicit 6-MPM list consists of planar (always the first entry) and 5 other modes (which can be explicitly described as a 5-MPM list).

Это связано с тем, что если планарный режим всегда находится в первой позиции неявного списка 6-MPM, он может быть отделен от неявного списка MPM, и ему назначается специальный флаг (например, флаг intra_luma _planar_flag или флаг intra_luma_not_planar_flag), чтобы указать, является ли режим внутреннего предсказания текущего блока планарным или нет.This is because if the planar mode is always in the first position of the implicit 6-MPM list, it can be separated from the implicit MPM list and assigned a special flag (for example, the flagintra_luma_planar_flag or flagintra_luma_not_planar_flag) to indicate whether the intra prediction mode of the current block is planar or not.

В одном примере рассматривается введение intra_luma_not_planar_flag [x0] [y0] в качестве специального флага, чтобы указать, равен ли планарный режим режиму внутреннего предсказания текущего блока. Когда это планарный режим, intra_luma_not_planar_flag устанавливается в 0, в противном случае устанавливается в 1. В этом случае первый бин mpm_idx эквивалентен специальному флагу intra_luma_not_planar_flag. One example considers introducing intra_luma_not_planar_flag[x0][y0] as a special flag to indicate if the planar mode is equal to the intra prediction mode of the current block. When it is planar mode, intra_luma_not_planar_flag is set to 0, otherwise it is set to 1. In this case, the first bin of mpm_idx is equivalent to the intra_luma_not_planar_flag special flag.

Когда режим внутреннего предсказания текущего блока является планарным, индекс MPM равен 0, а кодированный бин равен 0. Когда режим внутреннего предсказания текущего блока непланарный, индекс MPM не равен 0, а первый бин индекса MPM всегда равен 1.When the intra prediction mode of the current block is planar, the MPM index is 0 and the coded bin is 0. When the intra prediction mode of the current block is nonplanar, the MPM index is not 0, and the first bin of the MPM index is always 1.

В примере, intra_luma_mpm_idx кодируется с использованием усеченного унарного (TR) кода,In the example, intra_luma_mpm_idx is encoded using a truncated unary (TR) code,

Значение TR TR value

Mpm_idx 0 0 mpm_idx 0 0

Mpm_idx 1 1 0 mpm_idx 1 1 0

Mpm_idx 2 1 1 0 MPm_idx 2 1 1 0

Mpm_idx 3 1 1 1 0 MPm_idx 3 1 1 1 0

Mpm_idx 4 1 1 1 1. mpm_idx 4 1 1 1 1.

Согласно одному варианту осуществления изобретения (неугловая ветвь):According to one embodiment of the invention ( non-angular branch ):

Этап 1: получить режим внутреннего предсказания левого соседнего блока и режим внутреннего предсказания верхнего соседнего блока согласно фиг.10. Если режим внутреннего предсказания соседнего блока недоступен (например, соседний блок находится за пределами границ картинки или соседний блок внешне кодирован), режим внутреннего предсказания соседнего блока устанавливается как планарный. Режим внутреннего предсказания левого соседа обозначен как left_mode, а режим внутреннего предсказания верхнего соседнего блока обозначен как above_mode.Step 1: obtain the intra prediction mode of the left neighbor block and the intra prediction mode of the upper neighbor block according to Fig.10. If the neighbor block intra prediction mode is not available (eg, the neighbor block is outside the picture boundaries or the neighbor block is outer-coded), the neighbor block intra prediction mode is set to planar. The left neighbor intra prediction mode is denoted as left_mode and the upper neighbor intra prediction mode is denoted as above_mode.

Этап 2: определение того, являются ли режимы внутреннего предсказания соседних блоков угловыми режимами или нет.Step 2: determining whether the intra prediction modes of neighboring blocks are angle modes or not.

Этап 3: если все следующие условия (маркированные пункты) оценены как истинные,Step 3: If all of the following conditions (checkboxes) evaluate to true,

Left_mode - это не угловой режим, а above_mode - не угловой режим.Left_mode is not angular mode and above_mode is not angular mode.

затем создается список режимов внутреннего предсказания, который содержит N записей режимов внутреннего предсказания следующим образом (например, N равно 5, где 1-я запись соответствует MPM [1], 2-я запись соответствует MPM [2], и т.д.): then, an intra prediction mode list is created that contains N intra prediction mode entries as follows (e.g., N is 5, where the 1st entry corresponds to MPM[1], the 2nd entry corresponds to MPM[2], etc.) :

MPM [1]: DCMPM[1]: DC

MPM [2]: вертикальный режим (т.е. 50)MPM [2]: vertical mode (i.e. 50)

MPM [3]: горизонтальный режим (т.е. 18)MPM [3]: horizontal mode (i.e. 18)

MPM [4]: вертикальный-4 (т.е. 46)MPM[4]: vertical-4 (i.e. 46)

MPM [5]: по вертикали+4 (т.е. 54)MPM [5]: vertical+4 (i.e. 54)

Этап 4: предсказание текущего блока согласно индексу (обозначенному как индекс MPM) и записям построенного списка.Step 4: prediction of the current block according to the index (denoted as the MPM index) and the entries of the built list.

Согласно одному варианту осуществления изобретения (неугловая ветвь):According to one embodiment of the invention ( non-angular branch ):

Этап 1: получить режим внутреннего предсказания левого соседнего блока и режим внутреннего предсказания верхнего соседнего блока согласно фиг.10. Если режим внутреннего предсказания соседнего блока недоступен (например, соседний блок находится за пределами границ картинки или соседний блок внешне кодирован), режим внутреннего предсказания соседнего блока устанавливается как планарный. Режим внутреннего предсказания левого соседа обозначен как left_mode, а режим внутреннего предсказания верхнего соседнего блока обозначен как above_mode.Step 1: obtain the intra prediction mode of the left neighbor block and the intra prediction mode of the upper neighbor block according to Fig.10. If the neighbor block intra prediction mode is not available (eg, the neighbor block is outside the picture boundaries or the neighbor block is outer-coded), the neighbor block intra prediction mode is set to planar. The left neighbor intra prediction mode is denoted as left_mode and the upper neighbor intra prediction mode is denoted as above_mode.

Этап 2: определение того, являются ли режимы внутреннего предсказания соседних блоков угловыми режимами или нет.Step 2: determining whether the intra prediction modes of neighboring blocks are angle modes or not.

Этап 3: если все следующие условия (маркированные пункты) оценены как истинные,Step 3: If all of the following conditions (checkboxes) evaluate to true,

Left_mode - это не угловой режим, и above_mode - не угловой режим.Left_mode is not angular mode and above_mode is not angular mode.

затем создается список режимов внутреннего предсказания, который содержит N записей режимов внутреннего предсказания следующим образом (например, N равно 5, где 1-я запись соответствует MPM [1], 2-я запись соответствует MPM [2], и т.д.):then, an intra prediction mode list is created that contains N intra prediction mode entries as follows (e.g., N is 5, where the 1st entry corresponds to MPM[1], the 2nd entry corresponds to MPM[2], etc.) :

MPM [1]: DC MPM[1]: DC

MPM [2]: вертикальный режим (т.е. 50) MPM [2]: vertical mode (i.e. 50)

MPM [3]: горизонтальный режим (т.е. 18)MPM [3]: horizontal mode (i.e. 18)

MPM [4]: 66MPM[4]: 66

MPM [5]: 2MPM[5]: 2

Этап 4: предсказание текущего блока согласно индексу (обозначенному как индекс MPM) и записям построенного списка.Step 4: prediction of the current block according to the index (denoted as the MPM index) and the entries of the built list.

Согласно одному варианту осуществления изобретения (неугловая ветвь):According to one embodiment of the invention ( non-angular branch ):

Этап 1: получить режим внутреннего предсказания левого соседнего блока и режим внутреннего предсказания верхнего соседнего блока согласно фиг.10. Если режим внутреннего предсказания соседнего блока недоступен (например, соседний блок находится за пределами границ картинки или соседний блок внешне кодирован), режим внутреннего предсказания соседнего блока устанавливается как планарный. Режим внутреннего предсказания левого соседа обозначен как left_mode, а режим внутреннего предсказания верхнего соседнего блока обозначен как above_mode.Step 1: obtain the intra prediction mode of the left neighbor block and the intra prediction mode of the upper neighbor block according to Fig.10. If the neighbor block intra prediction mode is not available (eg, the neighbor block is outside the picture boundaries or the neighbor block is outer-coded), the neighbor block intra prediction mode is set to planar. The left neighbor intra prediction mode is denoted as left_mode and the upper neighbor intra prediction mode is denoted as above_mode.

Этап 2: определение того, являются ли режимы внутреннего предсказания соседних блоков угловыми режимами или нет.Step 2: determining whether the intra prediction modes of neighboring blocks are angle modes or not.

Этап 3: если все следующие условия (маркированные пункты) оценены как истинные,Step 3: If all of the following conditions (checkboxes) evaluate to true,

Left_mode - это не угловой режим, и above_mode - не угловой режим.Left_mode is not angular mode and above_mode is not angular mode.

затем создается список режимов внутреннего предсказания, который содержит N записей режимов внутреннего предсказания следующим образом (например, N равно 5, где 1-я запись соответствует MPM [1], 2-я запись соответствует MPM [2], и т.д.):then, an intra prediction mode list is created that contains N intra prediction mode entries as follows (e.g., N is 5, where the 1st entry corresponds to MPM[1], the 2nd entry corresponds to MPM[2], etc.) :

MPM [1]: DC MPM[1]: DC

MPM [2]: вертикальный режим (т.е. 50) MPM [2]: vertical mode (i.e. 50)

MPM [3]: горизонтальный режим (т.е. 18)MPM [3]: horizontal mode (i.e. 18)

MPM [4]: 2MPM[4]: 2

MPM [5]: 34MPM[5]: 34

Этап 4: предсказание текущего блока согласно индексу (обозначенному как индекс MPM) и записям построенного списка.Step 4: prediction of the current block according to the index (denoted as the MPM index) and the entries of the built list.

Согласно одному варианту осуществления изобретения (неугловая ветвь):According to one embodiment of the invention ( non-angular branch ):

Этап 1: получить режим внутреннего предсказания левого соседнего блока и режим внутреннего предсказания верхнего соседнего блока согласно фиг.10. Если режим внутреннего предсказания соседнего блока недоступен (например, соседний блок находится за пределами границ картинки или соседний блок внешне кодирован), режим внутреннего предсказания соседнего блока устанавливается как планарный. Режим внутреннего предсказания левого соседа обозначен как left_mode, а режим внутреннего предсказания верхнего соседнего блока обозначен как above_mode.Step 1: obtain the intra prediction mode of the left neighbor block and the intra prediction mode of the upper neighbor block according to Fig.10. If the neighbor block intra prediction mode is not available (eg, the neighbor block is outside the picture boundaries or the neighbor block is outer-coded), the neighbor block intra prediction mode is set to planar. The left neighbor intra prediction mode is denoted as left_mode and the upper neighbor intra prediction mode is denoted as above_mode.

Этап 2: определение того, являются ли режимы внутреннего предсказания соседних блоков угловыми режимами или нет.Step 2: determining whether the intra prediction modes of neighboring blocks are corner modes or not.

Этап 3: если все следующие условия (маркированные пункты) оценены как истинные,Step 3: If all of the following conditions (checkboxes) evaluate to true,

Left_mode - это не угловой режим, и above_mode - не угловой режим.Left_mode is not angular mode and above_mode is not angular mode.

затем создается список режимов внутреннего предсказания, который содержит N записей режимов внутреннего предсказания следующим образом (например, N равно 5, где 1-я запись соответствует MPM [1], 2-я запись соответствует MPM [2] и так далее): then, an intra prediction mode list is created that contains N entries of intra prediction modes as follows (for example, N is 5, where the 1st entry corresponds to MPM[1], the 2nd entry corresponds to MPM[2], and so on):

MPM [1]: DCMPM[1]: DC

MPM [2]: вертикальный режим (т.е. 50)MPM [2]: vertical mode (i.e. 50)

MPM [3]: горизонтальный режим (т.е. 18)MPM [3]: horizontal mode (i.e. 18)

MPM [4]: 66MPM[4]: 66

MPM [5]: 34MPM[5]: 34

Этап 4: предсказание текущего блока согласно индексу (обозначенному как индекс MPM) и записям построенного списка.Step 4: prediction of the current block according to the index (denoted as the MPM index) and the entries of the built list.

Согласно одному варианту осуществления изобретения (одноугольная ветвь, один угловой, другой неугловой):According to one embodiment of the invention (one-angled branch, one angled, the other non-angled ):

Этап 1: получить режим внутреннего предсказания левого соседнего блока и режим внутреннего предсказания верхнего соседнего блока согласно фиг.10. Если режим внутреннего предсказания соседнего блока недоступен (например, соседний блок находится за пределами границ картинки или соседний блок внешне кодирован), режим внутреннего предсказания соседнего блока устанавливается как планарный. Режим внутреннего предсказания левого соседа обозначен как left_mode, и режим внутреннего предсказания верхнего соседнего блока обозначен как above_mode.Step 1: obtain the intra prediction mode of the left neighbor block and the intra prediction mode of the upper neighbor block according to Fig.10. If the neighbor block intra prediction mode is not available (eg, the neighbor block is outside the picture boundaries or the neighbor block is outer-coded), the neighbor block intra prediction mode is set to planar. The left neighbor intra prediction mode is denoted as left_mode, and the upper neighbor intra prediction mode is denoted as above_mode.

Этап 2: определение того, являются ли режимы внутреннего предсказания соседних блоков угловыми режимами или нет.Step 2: determining whether the intra prediction modes of neighboring blocks are angle modes or not.

Этап 3: если все следующие условия (маркированные пункты) оценены как истинные,Step 3: If all of the following conditions (checkboxes) evaluate to true,

Один из left_mode и above_mode - угловой режим, другой - неугловой режим.One of left_mode and above_mode is angular mode, the other is non-angular mode.

затем создается список режимов внутреннего предсказания, который содержит N записей режимов внутреннего предсказания следующим образом (например, N равно 5, где 1-я запись соответствует MPM [1], 2-я запись соответствует MPM [2], и т.д.):then, an intra prediction mode list is created that contains N intra prediction mode entries as follows (e.g., N is 5, where the 1st entry corresponds to MPM[1], the 2nd entry corresponds to MPM[2], etc.) :

определить угловой режим как ang и получить следующее:define angular mode as ang and get this:

если left_mode - угловой режим, ang=левый режимif left_mode is angular mode, ang=left mode

в противном случае (верхний режим - это угловой режим) ang=верхний режимotherwise (top mode is angular mode) ang=top mode

MPM [1]: ang MPM[1]: ang

MPM [2]: DCMPM[2]: DC

MPM [3]: 2 + ((ang +61)% 64)MPM[3]: 2 + ((ang +61)% 64)

MPM [4]: 2 + ((ang - 1)% 64)MPM[4]: 2 + ((ang - 1)%64)

MPM [5]: 2 + ((ang +60)% 64).MPM [5]: 2 + ((ang +60)% 64).

Этап 4: предсказание текущего блока согласно индексу (обозначенному как индекс MPM) и записям построенного списка.Step 4: prediction of the current block according to the index (denoted as the MPM index) and the entries of the built list.

Согласно одному варианту осуществления изобретения (одноугольная ветвь, один угловой, другой неугловой):According to one embodiment of the invention ( one-angled branch, one angled, the other non-angled ):

Этап 1: получить режим внутреннего предсказания левого соседнего блока и режим внутреннего предсказания верхнего соседнего блока согласно фиг.10. Если режим внутреннего предсказания соседнего блока недоступен (например, соседний блок находится за пределами границ картинки или соседний блок внешне кодирован), режим внутреннего предсказания соседнего блока устанавливается как планарный. Режим внутреннего предсказания левого соседа обозначен как left_mode, а режим внутреннего предсказания верхнего соседнего блока обозначен как above_mode.Step 1: obtain the intra prediction mode of the left neighbor block and the intra prediction mode of the upper neighbor block according to Fig.10. If the neighbor block intra prediction mode is not available (eg, the neighbor block is outside the picture boundaries or the neighbor block is outer-coded), the neighbor block intra prediction mode is set to planar. The left neighbor intra prediction mode is denoted as left_mode and the upper neighbor intra prediction mode is denoted as above_mode.

Этап 2: определение того, являются ли режимы внутреннего предсказания соседних блоков угловыми режимами или нет.Step 2: determining whether the intra prediction modes of neighboring blocks are angle modes or not.

Этап 3: если все следующие условия (маркированные пункты) оценены как истинные,Step 3: If all of the following conditions (checkboxes) evaluate to true,

Один из left_mode и above_mode - угловой режим, другой - неугловой режим.One of left_mode and above_mode is angular mode, the other is non-angular mode.

затем создается список режимов внутреннего предсказания, который содержит N записей режимов внутреннего предсказания следующим образом (например, N равно 5, где 1-я запись соответствует MPM [1], 2-я запись соответствует MPM [2], и т.д.):then, an intra prediction mode list is created that contains N intra prediction mode entries as follows (e.g., N is 5, where the 1st entry corresponds to MPM[1], the 2nd entry corresponds to MPM[2], etc.) :

определить угловой режим как ang и получить следующее:define angular mode as ang and get this:

если left_mode - угловой режим, ang=левый режимif left_mode is angular mode, ang=left mode

в противном случае (верхний режим - это угловой режим) ang=верхний режимotherwise (top mode is angular mode) ang=top mode

MPM [1]: DCMPM[1]: DC

MPM [2]: angMPM[2]:ang

MPM [3]: 2 + ((ang +61)% 64)MPM[3]: 2 + ((ang +61)% 64)

MPM [4]: 2 + ((ang - 1)% 64)MPM[4]: 2 + ((ang - 1)%64)

MPM [5]: 2 + ((ang +60)% 64).MPM [5]: 2 + ((ang +60)% 64).

Этап 4: предсказание текущего блока согласно индексу (обозначенному как индекс MPM) и записям построенного списка.Step 4: prediction of the current block according to the index (denoted as the MPM index) and the entries of the built list.

Согласно одному варианту осуществления изобретения (одноугольное ветвь, один угловой, другой неугловой):According to one embodiment of the invention (one-angled branch, one angled, the other non-angled ):

Этап 1: получить режим внутреннего предсказания левого соседнего блока и режим внутреннего предсказания верхнего соседнего блока согласно фиг.10. Если режим внутреннего предсказания соседнего блока недоступен (например, соседний блок находится за пределами границ картинки или соседний блок внешне кодирован), режим внутреннего предсказания соседнего блока устанавливается как планарный. Режим внутреннего предсказания левого соседа обозначен как left_mode, а режим внутреннего предсказания верхнего соседнего блока обозначен как above_mode.Step 1: obtain the intra prediction mode of the left neighbor block and the intra prediction mode of the upper neighbor block according to Fig.10. If the neighbor block intra prediction mode is not available (eg, the neighbor block is outside the picture boundaries or the neighbor block is outer-coded), the neighbor block intra prediction mode is set to planar. The left neighbor intra prediction mode is denoted as left_mode and the upper neighbor intra prediction mode is denoted as above_mode.

Этап 2: определение того, являются ли режимы внутреннего предсказания соседних блоков угловыми режимами или нет.Step 2: determining whether the intra prediction modes of neighboring blocks are angle modes or not.

Этап 3: если все следующие условия (маркированные пункты) оценены как истинные,Step 3: If all of the following conditions (checkboxes) evaluate to true,

Один из left_mode и above_mode - угловой режим, другой - неугловой режим.One of left_mode and above_mode is angular mode, the other is non-angular mode.

затем создается список режимов внутреннего предсказания, который содержит N записей режимов внутреннего предсказания следующим образом (например, N равно 5, где 1-я запись соответствует MPM [1], 2-я запись соответствует MPM [2], и т.д.): then, an intra prediction mode list is created that contains N intra prediction mode entries as follows (e.g., N is 5, where the 1st entry corresponds to MPM[1], the 2nd entry corresponds to MPM[2], etc.) :

определить угловой режим как ang и получить следующее:define angular mode as ang and get this:

если left_mode - угловой режим, ang=левый режимif left_mode is angular mode, ang=left mode

в противном случае (верхний режим - это угловой режим) ang=верхний режимotherwise (top mode is angular mode) ang=top mode

MPM [1]: angMPM[1]: ang

MPM [2]: 2 + ((угл+61)% 64)MPM[2]: 2 + ((ang+61)% 64)

MPM [3]: DCMPM[3]: DC

MPM [4]: 2 + ((угл - 1)% 64)MPM[4]: 2 + ((ang - 1)% 64)

MPM [5]: 2 + ((угл+60)% 64)MPM [5]: 2 + ((angl+60)% 64)

Этап 4: предсказание текущего блока согласно индексу (обозначенному как индекс MPM) и записям построенного списка.Step 4: prediction of the current block according to the index (denoted as the MPM index) and the entries of the built list.

Согласно одному варианту осуществления изобретения (одноугольная ветвь, один угловой, другой неугловой):According to one embodiment of the invention (one-angled branch, one angled, the other non-angled):

Этап 1: получить режим внутреннего предсказания левого соседнего блока и режим внутреннего предсказания верхнего соседнего блока согласно фиг.10. Если режим внутреннего предсказания соседнего блока недоступен (например, соседний блок находится за пределами границ картинки или соседний блок внешне кодирован), режим внутреннего предсказания соседнего блока устанавливается как планарный. Режим внутреннего предсказания левого соседа обозначен как left_mode, а режим внутреннего предсказания верхнего соседнего блока обозначен как above_mode.Step 1: obtain the intra prediction mode of the left neighbor block and the intra prediction mode of the upper neighbor block according to Fig.10. If the neighbor block intra prediction mode is not available (eg, the neighbor block is outside the picture boundaries or the neighbor block is outer-coded), the neighbor block intra prediction mode is set to planar. The left neighbor intra prediction mode is denoted as left_mode and the upper neighbor intra prediction mode is denoted as above_mode.

Этап 2: определение того, являются ли режимы внутреннего предсказания соседних блоков угловыми режимами или нет.Step 2: determining whether the intra prediction modes of neighboring blocks are angle modes or not.

Этап 3: если все следующие условия (маркированные пункты) оценены как истинные,Step 3: If all of the following conditions (checkboxes) evaluate to true,

Один из left_mode и above_mode - угловой режим, другой - неугловой режим.One of left_mode and above_mode is angular mode, the other is non-angular mode.

затем создается список режимов внутреннего предсказания, который содержит N записей режимов внутреннего предсказания следующим образом (например, N равно 5, где 1-я запись соответствует MPM [1], 2-я запись соответствует MPM [2], и т.д.): then, an intra prediction mode list is created that contains N intra prediction mode entries as follows (e.g., N is 5, where the 1st entry corresponds to MPM[1], the 2nd entry corresponds to MPM[2], etc.) :

определить угловой режим как ang и получить следующее:define angular mode as ang and get this:

если left_mode - угловой режим, ang=левый режимif left_mode is angular mode, ang=left mode

в противном случае (верхний режим - это угловой режим) ang=верхний режимotherwise (top mode is angular mode) ang=top mode

MPM [0]: ПланарныйMPM[0]: Planar

MPM [1]: angMPM[1]: ang

MPM [2]: 2 + ((угл+61)% 64)MPM[2]: 2 + ((ang+61)% 64)

MPM [3]: 2 + ((угл - 1)% 64)MPM[3]: 2 + ((ang - 1)% 64)

MPM [4]: DCMPM[4]: DC

MPM [5]: 2 + ((угл+60)% 64).MPM [5]: 2 + ((ang+60)% 64).

Этап 4: предсказание текущего блока согласно индексу (обозначенному как индекс MPM) и записям построенного списка.Step 4: prediction of the current block according to the index (denoted as the MPM index) and the entries of the built list.

Согласно одному варианту осуществления изобретения (одноугольная ветвь, один угловой, другой неугловой):According to one embodiment of the invention (one-angled branch, one angled, the other non-angled):

Этап 1: получить режим внутреннего предсказания левого соседнего блока и режим внутреннего предсказания верхнего соседнего блока согласно фиг.10. Если режим внутреннего предсказания соседнего блока недоступен (например, соседний блок находится за пределами границ картинки или соседний блок внешне кодирован), режим внутреннего предсказания соседнего блока устанавливается как планарный. Режим внутреннего предсказания левого соседа обозначен как left_mode, а режим внутреннего предсказания верхнего соседнего блока обозначен как above_mode.Step 1: obtain the intra prediction mode of the left neighbor block and the intra prediction mode of the upper neighbor block according to Fig.10. If the neighbor block intra prediction mode is not available (eg, the neighbor block is outside the picture boundaries or the neighbor block is outer-coded), the neighbor block intra prediction mode is set to planar. The left neighbor intra prediction mode is denoted as left_mode and the upper neighbor intra prediction mode is denoted as above_mode.

Этап 2: определение того, являются ли режимы внутреннего предсказания соседних блоков угловыми режимами или нет.Step 2: determining whether the intra prediction modes of neighboring blocks are angle modes or not.

Этап 3: если все следующие условия (маркированные пункты) оценены как истинные,Step 3: If all of the following conditions (checkboxes) evaluate to true,

Один из left_mode и above_mode - угловой режим, другой - неугловой режим.One of left_mode and above_mode is angular mode, the other is non-angular mode.

затем создается список режимов внутреннего предсказания, который содержит N записей режимов внутреннего предсказания следующим образом (например, N равно 5, где 1-я запись соответствует MPM [1], 2-я запись соответствует MPM [2], и т.д.): then, an intra prediction mode list is created that contains N intra prediction mode entries as follows (e.g., N is 5, where the 1st entry corresponds to MPM[1], the 2nd entry corresponds to MPM[2], etc.) :

определить угловой режим как ang и получить следующее:define angular mode as ang and get this:

если left_mode - угловой режим, ang=левый режимif left_mode is angular mode, ang=left mode

в противном случае (верхний режим - это угловой режим) ang=верхний режимotherwise (top mode is angular mode) ang=top mode

MPM [1]: angMPM[1]: ang

MPM [2]: 2 + ((угл+61)% 64)MPM[2]: 2 + ((ang+61)% 64)

MPM [3]: 2 + ((угл - 1)% 64)MPM[3]: 2 + ((ang - 1)% 64)

MPM [4]: 2 + ((угл+60)% 64)MPM[4]: 2 + ((angl+60)% 64)

MPM [5]: DC.MPM[5]: DC.

Этап 4: предсказание текущего блока согласно индексу (обозначенному как индекс MPM) и записям построенного списка.Step 4: prediction of the current block according to the index (denoted as the MPM index) and the entries of the built list.

По одному варианту осуществления изобретения (одноугольная ветвь, два одинаковых угловых):According to one embodiment of the invention (one-angled branch, two identical corners ):

Этап 1: получить режим внутреннего предсказания левого соседнего блока и режим внутреннего предсказания верхнего соседнего блока согласно фиг.10. Если режим внутреннего предсказания соседнего блока недоступен (например, соседний блок находится за пределами границ картинки или соседний блок внешне кодирован), режим внутреннего предсказания соседнего блока устанавливается как планарный. Режим внутреннего предсказания левого соседа обозначен как left_mode, а режим внутреннего предсказания верхнего соседнего блока обозначен как above_mode.Step 1: obtain the intra prediction mode of the left neighbor block and the intra prediction mode of the upper neighbor block according to Fig.10. If the neighbor block intra prediction mode is not available (eg, the neighbor block is outside the picture boundaries or the neighbor block is outer-coded), the neighbor block intra prediction mode is set to planar. The left neighbor intra prediction mode is denoted as left_mode and the upper neighbor intra prediction mode is denoted as above_mode.

Этап 2: определение того, являются ли режимы внутреннего предсказания соседних блоков угловыми режимами или нет.Step 2: determining whether the intra prediction modes of neighboring blocks are angle modes or not.

Этап 3: если все следующие условия (маркированные пункты) оценены как истинные,Step 3: If all of the following conditions (checkboxes) evaluate to true,

left_mode и above_mode - оба угловых режима, и они одинаковы.left_mode and above_mode are both angular modes and they are the same.

затем создается список режимов внутреннего предсказания, который содержит N записей режимов внутреннего предсказания следующим образом (например, N равно 5, где 1-я запись соответствует MPM [1], 2-я запись соответствует MPM [2], и т.д.): then, an intra prediction mode list is created that contains N intra prediction mode entries as follows (e.g., N is 5, where the 1st entry corresponds to MPM[1], the 2nd entry corresponds to MPM[2], etc.) :

MPM [1]: левый режим MPM[1]: left mode

MPM [2]: 2 + ((левый режим+61)% 64)MPM[2]: 2 + ((left mode+61)%64)

MPM [3]: 2 + ((левый режим - 1)% 64)MPM[3]: 2 + ((left mode - 1)%64)

MPM [4]: DCMPM[4]: DC

MPM [5]: 2 + ((левый режим+60)% 64).MPM [5]: 2 + ((left mode+60)% 64).

Этап 4: предсказание текущего блока согласно индексу (обозначенному как индекс MPM) и записям построенного списка.Step 4: prediction of the current block according to the index (denoted as the MPM index) and the entries of the built list.

По одному варианту осуществления изобретения (одноугольная ветвь, два одинаковых угловых):According to one embodiment of the invention (one-angled branch, two identical corners ):

Этап 1: получить режим внутреннего предсказания левого соседнего блока и режим внутреннего предсказания верхнего соседнего блока согласно фиг.10. Если режим внутреннего предсказания соседнего блока недоступен (например, соседний блок находится за пределами границ картинки или соседний блок внешне кодирован), режим внутреннего предсказания соседнего блока устанавливается как планарный. Режим внутреннего предсказания левого соседа обозначен как left_mode, а режим внутреннего предсказания верхнего соседнего блока обозначен как above_mode.Step 1: obtain the intra prediction mode of the left neighbor block and the intra prediction mode of the upper neighbor block according to Fig.10. If the neighbor block intra prediction mode is not available (eg, the neighbor block is outside the picture boundaries or the neighbor block is outer-coded), the neighbor block intra prediction mode is set to planar. The left neighbor intra prediction mode is denoted as left_mode and the upper neighbor intra prediction mode is denoted as above_mode.

Этап 2: определение того, являются ли режимы внутреннего предсказания соседних блоков угловыми режимами или нет.Step 2: determining whether the intra prediction modes of neighboring blocks are angle modes or not.

Этап 3: если все следующие условия (маркированные пункты) оценены как истинные,Step 3: If all of the following conditions (checkboxes) evaluate to true,

left_mode и above_mode - оба угловых режима, и они одинаковы.left_mode and above_mode are both angular modes and they are the same.

затем создается список режимов внутреннего предсказания, который содержит N записей режимов внутреннего предсказания следующим образом (например, N равно 5, где 1-я запись соответствует MPM [1], 2-я запись соответствует MPM [2], и т.д.): then, an intra prediction mode list is created that contains N intra prediction mode entries as follows (e.g., N is 5, where the 1st entry corresponds to MPM[1], the 2nd entry corresponds to MPM[2], etc.) :

MPM [1]: DCMPM[1]: DC

MPM [2]: левый режимMPM [2]: left mode

MPM [3]: 2 + ((левый режим+61)% 64)MPM[3]: 2 + ((left mode+61)%64)

MPM [4]: 2 + ((левый режим - 1)% 64)MPM[4]: 2 + ((left mode - 1)%64)

MPM [5]: 2 + ((левый режим+60)% 64)MPM[5]: 2 + ((left mode+60)%64)

Этап 4: предсказание текущего блока согласно индексу (обозначенному как индекс MPM) и записям построенного списка.Step 4: prediction of the current block according to the index (denoted as the MPM index) and the entries of the built list.

По одному варианту осуществления изобретения (одноугольная ветвь, два одинаковых угловых):According to one embodiment of the invention (one-angled branch, two identical corners ):

Этап 1: получить режим внутреннего предсказания левого соседнего блока и режим внутреннего предсказания верхнего соседнего блока согласно фиг.10. Если режим внутреннего предсказания соседнего блока недоступен (например, соседний блок находится за пределами границ картинки или соседний блок внешне кодирован), режим внутреннего предсказания соседнего блока устанавливается как планарный. Режим внутреннего предсказания левого соседа обозначен как left_mode, а режим внутреннего предсказания верхнего соседнего блока обозначен как above_mode.Step 1: obtain the intra prediction mode of the left neighbor block and the intra prediction mode of the upper neighbor block according to Fig.10. If the neighbor block intra prediction mode is not available (eg, the neighbor block is outside the picture boundaries or the neighbor block is outer-coded), the neighbor block intra prediction mode is set to planar. The left neighbor intra prediction mode is denoted as left_mode and the upper neighbor intra prediction mode is denoted as above_mode.

Этап 2: определение того, являются ли режимы внутреннего предсказания соседних блоков угловыми режимами или нет.Step 2: determining whether the intra prediction modes of neighboring blocks are angle modes or not.

Этап 3: если все следующие условия (маркированные пункты) оценены как истинные,Step 3: If all of the following conditions (checkboxes) evaluate to true,

left_mode и above_mode - оба угловых режима, и они одинаковы.left_mode and above_mode are both angular modes and they are the same.

затем создается список режимов внутреннего предсказания, который содержит N записей режимов внутреннего предсказания следующим образом (например, N равно 5, где 1-я запись соответствует MPM [1], 2-я запись соответствует MPM [2], и т.д.): then, an intra prediction mode list is created that contains N intra prediction mode entries as follows (e.g., N is 5, where the 1st entry corresponds to MPM[1], the 2nd entry corresponds to MPM[2], etc.) :

MPM [1]: левый режимMPM[1]: left mode

MPM [2]: DCMPM[2]: DC

MPM [3]: 2 + ((левый режим+61)% 64)MPM[3]: 2 + ((left mode+61)%64)

MPM [4]: 2 + ((левый режим - 1)% 64)MPM[4]: 2 + ((left mode - 1)%64)

MPM [5]: 2 + ((левый режим+60)% 64)MPM[5]: 2 + ((left mode+60)%64)

Этап 4: предсказание текущего блока согласно индексу (обозначенному как индекс MPM) и записям построенного списка.Step 4: prediction of the current block according to the index (denoted as the MPM index) and the entries of the built list.

По одному варианту осуществления изобретения (одноугольная ветвь, два одинаковых угловых):According to one embodiment of the invention (one-angled branch, two identical corners ):

Этап 1: получить режим внутреннего предсказания левого соседнего блока и режим внутреннего предсказания верхнего соседнего блока согласно фиг.10. Если режим внутреннего предсказания соседнего блока недоступен (например, соседний блок находится за пределами границ картинки или соседний блок внешне кодирован), режим внутреннего предсказания соседнего блока устанавливается как планарный. Режим внутреннего предсказания левого соседа обозначен как left_mode, а режим внутреннего предсказания верхнего соседнего блока обозначен как above_mode.Step 1: obtain the intra prediction mode of the left neighbor block and the intra prediction mode of the upper neighbor block according to Fig.10. If the neighbor block intra prediction mode is not available (eg, the neighbor block is outside the picture boundaries or the neighbor block is outer-coded), the neighbor block intra prediction mode is set to planar. The left neighbor intra prediction mode is denoted as left_mode and the upper neighbor intra prediction mode is denoted as above_mode.

Этап 2: определение того, являются ли режимы внутреннего предсказания соседних блоков угловыми режимами или нет.Step 2: determining whether the intra prediction modes of neighboring blocks are angle modes or not.

Этап 3: если все следующие условия (маркированные пункты) оценены как истинные,Step 3: If all of the following conditions (checkboxes) evaluate to true,

left_mode и above_mode - оба угловых режима, и они одинаковы.left_mode and above_mode are both angular modes and they are the same.

затем создается список режимов внутреннего предсказания, который содержит N записей режимов внутреннего предсказания следующим образом (например, N равно 5, где 1-я запись соответствует MPM [1], 2-я запись соответствует MPM [2], и т.д.):then, an intra prediction mode list is created that contains N intra prediction mode entries as follows (e.g., N is 5, where the 1st entry corresponds to MPM[1], the 2nd entry corresponds to MPM[2], etc.) :

MPM [1]: левый режимMPM[1]: left mode

MPM [2]: 2 + ((левый режим+61)% 64)MPM[2]: 2 + ((left mode+61)%64)

MPM [3]: DCMPM[3]: DC

MPM [4]: 2 + ((левый режим - 1)% 64)MPM[4]: 2 + ((left mode - 1)%64)

MPM [5]: 2 + ((левый режим+60)% 64).MPM [5]: 2 + ((left mode+60)% 64).

Этап 4: предсказание текущего блока согласно индексу (обозначенному как индекс MPM) и записям построенного списка.Step 4: prediction of the current block according to the index (denoted as the MPM index) and the entries of the built list.

По одному варианту осуществления изобретения (одноугольная ветвь, два одинаковых угловых):According to one embodiment of the invention (one-angled branch, two identical corners ):

Этап 1: получить режим внутреннего предсказания левого соседнего блока и режим внутреннего предсказания верхнего соседнего блока согласно фиг.10. Если режим внутреннего предсказания соседнего блока недоступен (например, соседний блок находится за пределами границ картинки или соседний блок внешне кодирован), режим внутреннего предсказания соседнего блока устанавливается как планарный. Режим внутреннего предсказания левого соседа обозначен как left_mode, а режим внутреннего предсказания верхнего соседнего блока обозначен как above_mode.Step 1: obtain the intra prediction mode of the left neighbor block and the intra prediction mode of the upper neighbor block according to Fig.10. If the neighbor block intra prediction mode is not available (eg, the neighbor block is outside the picture boundaries or the neighbor block is outer-coded), the neighbor block intra prediction mode is set to planar. The left neighbor intra prediction mode is denoted as left_mode and the upper neighbor intra prediction mode is denoted as above_mode.

Этап 2: определение того, являются ли режимы внутреннего предсказания соседних блоков угловыми режимами или нет.Step 2: determining whether the intra prediction modes of neighboring blocks are angle modes or not.

Этап 3: если все следующие условия (маркированные пункты) оценены как истинные,Step 3: If all of the following conditions (checkboxes) evaluate to true,

left_mode и above_mode - оба угловых режима, и они одинаковы.left_mode and above_mode are both angular modes and they are the same.

затем создается список режимов внутреннего предсказания, который содержит N записей режимов внутреннего предсказания следующим образом (например, N равно 5, где 1-я запись соответствует MPM [1], 2-я запись соответствует MPM [2], и т.д.): then, an intra prediction mode list is created that contains N intra prediction mode entries as follows (e.g., N is 5, where the 1st entry corresponds to MPM[1], the 2nd entry corresponds to MPM[2], etc.) :

MPM [1]: левый режимMPM[1]: left mode

MPM [2]: 2 + ((левый режим+61)% 64)MPM[2]: 2 + ((left mode+61)%64)

MPM [3]: 2 + ((левый режим - 1)% 64)MPM[3]: 2 + ((left mode - 1)%64)

MPM [4]: 2 + ((левый режим+60)% 64)MPM[4]: 2 + ((left mode+60)%64)

MPM [5]: DC.MPM[5]: DC.

Этап 4: предсказание текущего блока согласно индексу (обозначенному как индекс MPM) и записям построенного списка.Step 4: prediction of the current block according to the index (denoted as the MPM index) and the entries of the built list.

Согласно одному варианту осуществления изобретения (двухугольная ветвь):According to one embodiment of the invention (biangular branch ):

Этап 1: получить режим внутреннего предсказания левого соседнего блока и режим внутреннего предсказания верхнего соседнего блока согласно фиг.10. Если режим внутреннего предсказания соседнего блока недоступен (например, соседний блок находится за пределами границ картинки или соседний блок внешне кодирован), режим внутреннего предсказания соседнего блока устанавливается как планарный. Режим внутреннего предсказания левого соседа обозначен как left_mode, а режим внутреннего предсказания верхнего соседнего блока обозначен как above_mode.Step 1: obtain the intra prediction mode of the left neighbor block and the intra prediction mode of the upper neighbor block according to Fig.10. If the neighbor block intra prediction mode is not available (eg, the neighbor block is outside the picture boundaries or the neighbor block is outer-coded), the neighbor block intra prediction mode is set to planar. The left neighbor intra prediction mode is denoted as left_mode and the upper neighbor intra prediction mode is denoted as above_mode.

Этап 2: определение того, является ли режим внутреннего предсказания соседних блоков угловым режимом или нет.Step 2: determining whether the intra-neighbor-block prediction mode is an angle mode or not.

Этап 3: если все следующие условия (маркированные пункты) оценены как истинные,Step 3: If all of the following conditions (checkboxes) evaluate to true,

left_mode и above_mode - два разных угловых режима.left_mode and above_mode are two different angular modes.

затем создается список режимов внутреннего предсказания, который содержит N записей режимов внутреннего предсказания следующим образом (например, N равно 5, где 1-я запись соответствует MPM [1], 2-я запись соответствует MPM [2], и т.д.):then, an intra prediction mode list is created that contains N intra prediction mode entries as follows (e.g., N is 5, where the 1st entry corresponds to MPM[1], the 2nd entry corresponds to MPM[2], etc.) :

MPM [1]: left_mode MPM[1]: left_mode

MPM [2]: above_mode MPM[2]: above_mode

MPM [3]: DCMPM[3]: DC

Переменные minAB и maxAB выводятся следующим образом:The variables minAB and maxAB are output as follows:

minAB = Min( above_mode, left_mode )minAB = Min( above_mode, left_mode )

maxAB = Max( above_mode, left_mode ).maxAB = Max( above_mode, left_mode ).

Если maxAB - minAB находится в диапазоне от 2 до 62 включительно, применяется следующее:If maxAB - minAB is between 2 and 62 inclusive, the following applies:

MPM [4] = 2 + ((maxAB+61)% 64) (8-30)MPM[4] = 2 + ((maxAB+61)% 64) (8-30)

MPM [5] = 2 + ((maxAB - 1)% 64) (8-31)MPM[5] = 2 + ((maxAB - 1)% 64) (8-31)

Иначе применяется следующее:Otherwise, the following applies:

MPM [4] = 2 + ((maxAB+60)% 64) (8-32)MPM[4] = 2 + ((maxAB+60)% 64) (8-32)

MPM [5] = 2 + ((maxAB)% 64) (8-33).MPM[5] = 2 + ((maxAB)% 64) (8-33).

Этап 4: предсказание текущего блока согласно индексу (обозначенному как индекс MPM) и записям построенного списка.Step 4: prediction of the current block according to the index (denoted as the MPM index) and the entries of the built list.

Согласно одному варианту осуществления изобретения (двухугольная ветвь):According to one embodiment of the invention (biangular branch ):

Этап 1: получить режим внутреннего предсказания левого соседнего блока и режим внутреннего предсказания верхнего соседнего блока согласно фиг.10. Если режим внутреннего предсказания соседнего блока недоступен (например, соседний блок находится за пределами границ картинки или соседний блок внешне кодирован), режим внутреннего предсказания соседнего блока устанавливается как планарный. Режим внутреннего предсказания левого соседа обозначен как left_mode, а режим внутреннего предсказания верхнего соседнего блока обозначен как above_mode.Step 1: obtain the intra prediction mode of the left neighbor block and the intra prediction mode of the upper neighbor block according to Fig.10. If the neighbor block intra prediction mode is not available (eg, the neighbor block is outside the picture boundaries or the neighbor block is outer-coded), the neighbor block intra prediction mode is set to planar. The left neighbor intra prediction mode is denoted as left_mode and the upper neighbor intra prediction mode is denoted as above_mode.

Этап 2: определение того, является ли режим внутреннего предсказания соседних блоков угловым режимом или нет.Step 2: determining whether the intra-neighbor-block prediction mode is an angle mode or not.

Этап 3: если все следующие условия (маркированные пункты) оценены как истинные,Step 3: If all of the following conditions (checkboxes) evaluate to true,

left_mode и above_mode - два разных угловых режима.left_mode and above_mode are two different angular modes.

затем создается список режимов внутреннего предсказания, который содержит N записей режимов внутреннего предсказания следующим образом (например, N равно 5, где 1-я запись соответствует MPM [1], 2-я запись соответствует MPM [2], и т.д.):then, an intra prediction mode list is created that contains N intra prediction mode entries as follows (e.g., N is 5, where the 1st entry corresponds to MPM[1], the 2nd entry corresponds to MPM[2], etc.) :

MPM [1]: above_mode MPM[1]: above_mode

MPM [2]: left_modeMPM[2]: left_mode

MPM [3]: DCMPM[3]: DC

Переменные minAB и maxAB выводятся следующим образом:The variables minAB and maxAB are output as follows:

minAB = Min( above_mode, left_mode )minAB = Min( above_mode, left_mode )

maxAB = Max( above_mode, left_mode ).maxAB = Max( above_mode, left_mode ).

Если maxAB - minAB находится в диапазоне от 2 до 62 включительно, применяется следующее:If maxAB - minAB is between 2 and 62 inclusive, the following applies:

MPM [4] = 2 + ((maxAB+61)% 64) (8-30)MPM[4] = 2 + ((maxAB+61)% 64) (8-30)

MPM [5] = 2 + ((maxAB - 1)% 64) (8-31)MPM[5] = 2 + ((maxAB - 1)% 64) (8-31)

Иначе применяется следующее:Otherwise, the following applies:

MPM [4] = 2 + ((maxAB+60)% 64) (8-32)MPM[4] = 2 + ((maxAB+60)% 64) (8-32)

MPM [5] = 2 + ((maxAB)% 64) (8-33).MPM[5] = 2 + ((maxAB)% 64) (8-33).

Этап 6: предсказание текущего блока в соответствии с индексом (обозначенным как индекс MPM) и записями построенного списка.Step 6: prediction of the current block according to the index (denoted as the MPM index) and the entries of the built list.

Согласно одному варианту осуществления изобретения (двухугольная ветвь):According to one embodiment of the invention (biangular branch ):

Этап 1: получить режим внутреннего предсказания левого соседнего блока и режим внутреннего предсказания верхнего соседнего блока согласно фиг.10. Если режим внутреннего предсказания соседнего блока недоступен (например, соседний блок находится за пределами границ картинки или соседний блок внешне кодирован), режим внутреннего предсказания соседнего блока устанавливается как планарный. Режим внутреннего предсказания левого соседа обозначен как left_mode, а режим внутреннего предсказания верхнего соседнего блока обозначен как above_mode.Step 1: obtain the intra prediction mode of the left neighbor block and the intra prediction mode of the upper neighbor block according to Fig.10. If the neighbor block intra prediction mode is not available (eg, the neighbor block is outside the picture boundaries or the neighbor block is outer-coded), the neighbor block intra prediction mode is set to planar. The left neighbor intra prediction mode is denoted as left_mode and the upper neighbor intra prediction mode is denoted as above_mode.

Этап 2: определение того, является ли режим внутреннего предсказания соседних блоков угловым режимом или нет.Step 2: determining whether the intra-neighbor-block prediction mode is an angle mode or not.

Этап 3: если все следующие условия (маркированные пункты) оценены как истинные,Step 3: If all of the following conditions (checkboxes) evaluate to true,

left_mode и above_mode - два разных угловых режима.left_mode and above_mode are two different angular modes.

затем создается список режимов внутреннего предсказания, который содержит N записей режимов внутреннего предсказания следующим образом (например, N равно 5, где 1-я запись соответствует MPM [1], 2-я запись соответствует MPM [2], и т.д.):then, an intra prediction mode list is created that contains N intra prediction mode entries as follows (e.g., N is 5, where the 1st entry corresponds to MPM[1], the 2nd entry corresponds to MPM[2], etc.) :

MPM [1]: left_modeMPM[1]: left_mode

MPM [2]: DCMPM[2]: DC

MPM [3]: above_modeMPM[3]: above_mode

Переменные minAB и maxAB выводятся следующим образом:The variables minAB and maxAB are output as follows:

minAB = Min( above_mode, left_mode )minAB = Min( above_mode, left_mode )

maxAB = Max( above_mode, left_mode ).maxAB = Max( above_mode, left_mode ).

Если maxAB - minAB находится в диапазоне от 2 до 62 включительно, применяется следующее:If maxAB - minAB is between 2 and 62 inclusive, the following applies:

MPM [4] = 2 + ((maxAB+61)% 64) (8-30)MPM[4] = 2 + ((maxAB+61)% 64) (8-30)

MPM [5] = 2 + ((maxAB - 1)% 64) (8-31)MPM[5] = 2 + ((maxAB - 1)% 64) (8-31)

Иначе применяется следующее:Otherwise, the following applies:

MPM [4] = 2 + ((maxAB+60)% 64) (8-32)MPM[4] = 2 + ((maxAB+60)% 64) (8-32)

MPM [5] = 2 + ((maxAB)% 64) (8-33).MPM[5] = 2 + ((maxAB)% 64) (8-33).

Этап 4: предсказание текущего блока согласно индексу (обозначенному как индекс MPM) и записям построенного списка.Step 4: prediction of the current block according to the index (denoted as the MPM index) and the entries of the built list.

Согласно одному варианту осуществления изобретения (двухугольная ветвь):According to one embodiment of the invention (biangular branch ):

Этап 1: получить режим внутреннего предсказания левого соседнего блока и режим внутреннего предсказания верхнего соседнего блока согласно фиг.10. Если режим внутреннего предсказания соседнего блока недоступен (например, соседний блок находится за пределами границ картинки или соседний блок внешне кодирован), режим внутреннего предсказания соседнего блока устанавливается как планарный. Режим внутреннего предсказания левого соседа обозначен как left_mode, а режим внутреннего предсказания верхнего соседнего блока обозначен как above_mode.Step 1: obtain the intra prediction mode of the left neighbor block and the intra prediction mode of the upper neighbor block according to Fig.10. If the neighbor block intra prediction mode is not available (eg, the neighbor block is outside the picture boundaries or the neighbor block is outer-coded), the neighbor block intra prediction mode is set to planar. The left neighbor intra prediction mode is denoted as left_mode and the upper neighbor intra prediction mode is denoted as above_mode.

Этап 2: определение того, является ли режим внутреннего предсказания соседних блоков угловым режимом или нет.Step 2: determining whether the intra-neighbor-block prediction mode is an angle mode or not.

Этап 3: если все следующие условия (маркированные пункты) оценены как истинные,Step 3: If all of the following conditions (checkboxes) evaluate to true,

left_mode и above_mode - два разных угловых режима.left_mode and above_mode are two different angular modes.

затем создается список режимов внутреннего предсказания, который содержит N записей режимов внутреннего предсказания следующим образом (например, N равно 5, где 1-я запись соответствует MPM [1], 2-я запись соответствует MPM [2], и т.д.):then, an intra prediction mode list is created that contains N intra prediction mode entries as follows (e.g., N is 5, where the 1st entry corresponds to MPM[1], the 2nd entry corresponds to MPM[2], etc.) :

MPM [1]: above_mode MPM[1]: above_mode

MPM [2]: DCMPM[2]: DC

MPM [3]: left_modeMPM[3]: left_mode

Переменные minAB и maxAB выводятся следующим образом:The variables minAB and maxAB are output as follows:

minAB = Min( above_mode, left_mode )minAB = Min( above_mode, left_mode )

maxAB = Max( above_mode, left_mode ).maxAB = Max( above_mode, left_mode ).

Если maxAB - minAB находится в диапазоне от 2 до 62 включительно, применяется следующее:If maxAB - minAB is between 2 and 62 inclusive, the following applies:

MPM [4] = 2 + ((maxAB+61)% 64) (8-30)MPM[4] = 2 + ((maxAB+61)% 64) (8-30)

MPM [5] = 2 + ((maxAB - 1)% 64) (8-31)MPM[5] = 2 + ((maxAB - 1)% 64) (8-31)

Иначе применяется следующее:Otherwise, the following applies:

MPM [4] = 2 + ((maxAB+60)% 64) (8-32)MPM[4] = 2 + ((maxAB+60)% 64) (8-32)

MPM [5] = 2 + ((maxAB)% 64) (8-33).MPM[5] = 2 + ((maxAB)% 64) (8-33).

Этап 4: предсказание текущего блока согласно индексу (обозначенному как индекс MPM) и записям построенного списка.Step 4: prediction of the current block according to the index (denoted as the MPM index) and the entries of the built list.

В одной реализации варианта осуществления N установлено равным 6.In one implementation of the embodiment, N is set to 6.

В одной реализации варианта осуществления N установлено равным 6. В этом случае упомянутый список режимов внутреннего предсказания включает в себя первые 5 записей, как указано выше, а не шестую запись.In one implementation of the embodiment, N is set to 6. In this case, said list of intra prediction modes includes the first 5 entries as above rather than the sixth entry.

В одной реализации варианта осуществления N установлено равным 4. В этом случае упомянутый список режимов внутреннего предсказания включает в себя первые 4 записи, как указано выше, а не пятую запись и шестую запись.In one implementation of the embodiment, N is set to 4. In this case, said list of intra prediction modes includes the first 4 entries as above rather than the fifth entry and the sixth entry.

В одной реализации варианта осуществления упомянутый список режимов внутреннего предсказания называется списком MPM.In one implementation of the embodiment, said list of intra prediction modes is referred to as an MPM list.

В одной реализации упомянутый индекс списка (индекс MPM) сигнализируется в потоке битов как индикатор. Преимущественно индекс MPM можно кодировать с помощью контекстно-адаптивного энтропийного кодера (CABAC). Индекс MPM может быть закодирован в соответствии с различным количеством вероятностных моделей (другими словами, контекстом) с помощью CABAC.In one implementation, said list index (MPM index) is signaled in the bitstream as an indicator. Advantageously, the MPM index may be encoded with a context adaptive entropy encoder (CABAC). The MPM index can be encoded according to a different number of probability models (in other words, context) using CABAC.

Например, первый бин кодированного слова для mpm_index кодируется контекстом CABAC.For example, the first bin of the encoded word for mpm_index is encoded by the CABAC context.

В одном примере его контекст определяется на основе того, применяется ли текущий внутренний блок с множественными опорными строками, ISP или обычными внутренними блоками. Всего создается три контекста для контекста CABAC первого бина кодового слова для mpm_index.In one example, its context is determined based on whether the current multi-reference inner block, ISP, or normal inner blocks is applied. A total of three contexts are created for the CABAC context of the first codeword bin for mpm_index.

Если список MPM содержит как планарный, так и DC режим, то список MPM, исключающий планарный режим и режим DC из созданного списка MPM, используется инструментом кодировки множественных опорных строк. В этом случае список 4-MPM используется при кодировке в режиме внутреннего предсказания с множественными опорными строками. В одном примере список MPM: {Planar (значение 0), DC (значение 1), VER (значение 50), HOR (значение 18), VER-4 (значение 46), VER+4 (значение 54)} после построения списка MPM, тогда список 4-MPM из {VER, HOR, VER-4, VER+4} используется кодировкой в режиме внутреннего предсказания, когда задействована множественная опорная строка. If the MPM list contains both planar and DC modes, then an MPM list that excludes planar and DC modes from the generated MPM list is used by the multiple reference string encoding tool. In this case, the 4-MPM list is used when encoding in the multi-reference intra-prediction mode. In one example, the MPM list is: {Planar (value 0), DC (value 1), VER (value 50), HOR (value 18), VER-4 (value 46), VER+4 (value 54)} after building the list MPM, then a 4-MPM list of {VER, HOR, VER-4, VER+4} is used by encoding in intra prediction mode when multiple reference string is involved.

Если список MPM содержит планарный режим, но без режима DC, то список MPM, исключающий планарный из созданного списка MPM, используется инструментом кодировки множественных опорных строк. В этом случае список 5-MPM используется при кодировке в режиме внутреннего предсказания с множественными опорными строками. В одном примере список MPM равен {Planar, VER, HOR, 43, 60, 3} после построения списка MPM, тогда список 5-MPM из {VER, HOR, 43, 60, 3} используется кодировкой режима внутреннего предстказания при задействовании множественных опорных строк.If the MPM list contains planar mode but no DC mode, then the MPM list excluding planar from the generated MPM list is used by the multiple reference string encoding tool. In this case, the 5-MPM list is used when encoding in intra prediction mode with multiple reference rows. In one example, the MPM list is {Planar, VER, HOR, 43, 60, 3} after constructing the MPM list, then the 5-MPM list of {VER, HOR, 43, 60, 3} is used by intra-prediction mode encoding when multiple references are involved. lines.

В другом примере может потребоваться модификация синтаксиса для списка MPM без режима DC. Если список MPM не содержит DC, вероятно, режим DC будет очень часто использоваться в ветви, отличной от MPM (т. е. флаг mpm ложный). В этом случае вводится новый синтаксис DC_mode. DC_mode равно 1, указывает, что режим внутреннего предсказания текущего блока является режимом DC. DC_mode, равное 0, указывает, что режим внутреннего предсказания текущего блока не является режимом DC.In another example, a syntax modification for an MPM list without DC mode may be required. If the MPM list does not contain a DC, it is likely that the DC mode will be used very frequently in the non-MPM branch (i.e., the mpm flag is false). In this case, a new DC_mode syntax is introduced. DC_mode is 1, indicates that the intra prediction mode of the current block is the DC mode. DC_mode equal to 0 indicates that the intra prediction mode of the current block is not a DC mode.

А именно, старый синтаксис не-MPM изменен с Namely, the old non-MPM syntax is changed from

Если (mpm_flag)If (mpm_flag)

иначеotherwise

intra_mode (с использованием TB)intra_mode (using TB)

наon

Если (mpm_flag)If (mpm_flag)

иначеotherwise

DC_modeDC_mode

Если (DC_mode == 0)If (DC_mode == 0)

intra_mode (с использованием TB)intra_mode (using TB)

Синтаксис DC_mode может быть закодирован с помощью контекстно-адаптивного энтропийного кодера (CABAC). DC_mode может быть закодирован в соответствии с различным количеством вероятностных моделей (другими словами, контекстом) с помощью CABAC. С введением DC_Mode максимальное значение для усеченного двоичного файла составляет 60, т. Е. 67 (общее количество режимов) - 6 (MPM) -1 (DC). В то время как без введения DC_mode максимальное значение для усеченного двоичного файла составляет 61, то есть 67 (общее количество режимов) - 6 (MPM). The DC_mode syntax may be encoded with a context adaptive entropy encoder (CABAC). DC_mode may be encoded according to a different number of probability models (in other words, context) using CABAC. With the introduction of DC_Mode, the maximum value for a truncated binary is 60, i.e. 67 (total number of modes) - 6 (MPM) -1 (DC). Whereas without the introduction of DC_mode, the maximum value for the truncated binary is 61, i.e. 67 (total number of modes) - 6 (MPM).

В частности, здесь предоставляются следующие способы кодировки с предсказанием текущего блока, реализованные устройством декодирования или устройством кодирования. Устройство декодирования может быть видеодекодером 30 на фиг.1А или декодером 30 на фиг.3. Устройство кодирования может быть видеокодером 20 на фиг. 1A или кодировщиком 20 на фиг. 2.Specifically, the following current block prediction encoding methods implemented by a decoding apparatus or an encoding apparatus are provided here. The decoding device may be video decoder 30 in FIG. 1A or decoder 30 in FIG. The encoder may be video encoder 20 in FIG. 1A or encoder 20 in FIG. 2.

Согласно варианту 1200 осуществления (см. Фиг. 12A) способ внутреннего предсказания текущего блока, реализованный устройством декодирования, включает в себя следующие этапы. На этапе 1201 устройство получает значение первой информации указания текущего блока, причем значение первой информации указания указывает, содержится ли режим внутреннего предсказания текущего блока в наборе наиболее вероятных режимов. Набор наиболее вероятных режимов содержит 5 кандидатных режимов внутреннего предсказания и планарный режим. Первая информация указания указывается первым флагом, например intra_luma_mpm_flag. Как описано выше, когда значение intra_luma_mpm_flag равно 1, режим внутреннего предсказания текущего блока содержится в наборе наиболее вероятных режимов.According to embodiment 1200 (see FIG. 12A), the current block intra prediction method implemented by the decoding apparatus includes the following steps. In step 1201, the device obtains the value of the first indication information of the current block, wherein the value of the first indication information indicates whether the intra prediction mode of the current block is included in the set of most likely modes. The set of most probable modes contains 5 candidate intra prediction modes and a planar mode. The first indication information is indicated by the first flag, eg intra_luma_mpm_flag. As described above, when the value of intra_luma_mpm_flag is 1, the intra prediction mode of the current block is contained in the most likely mode set.

На этапе 1202 устройство получает значение опорной строки индекса текущего блока. Значение опорной строки индекса текущего блока может быть указано с помощью intra_luma_ref_idx. Когда значение опорной строки индекса текущего блока равно 0, то есть intra_luma_ref_idx [x0] [y0] = = 0, используется ближайшая соседняя опорная строка к текущему блоку. Между этапами 1201 и 1202 нет последовательности.At 1202, the device obtains the value of the current block index reference row. The reference row value of the index of the current block can be specified using intra_luma_ref_idx. When the reference row value of the current block index is 0, i.e. intra_luma_ref_idx[x0][y0] == 0, the closest adjacent reference row to the current block is used. There is no sequence between steps 1201 and 1202.

На этапе 1203 устройство определяет, указывает ли значение первой информации указания, что режим внутреннего предсказания текущего блока содержится в наборе наиболее вероятных режимов.In step 1203, the device determines whether the value of the first indication information indicates that the intra prediction mode of the current block is contained in the most likely mode set.

На этапе 1204 устройство определяет, указывает ли значение опорной строки индекса, что используется ближайшая соседняя опорная строка к текущему блоку. Между этапами 1203 и 1204 нет последовательности.At 1204, the device determines if the index reference row value indicates that the nearest adjacent reference row to the current block is being used. There is no sequence between steps 1203 and 1204.

Этап 1205, устройство получает значение второй информации указания текущего блока, когда значение первой информации указания указывает, что режим внутреннего предсказания текущего блока содержится в наборе наиболее вероятных режимов, и значение опорной строки индекса указывает, что используется ближайшая соседняя опорная строка к текущему блоку, значение второй информации указания текущего блока указывает, является ли режим внутреннего предсказания текущего блока планарным режимом или нет. Значение второй информации указания представляет собой контекстно-адаптивную двоичную арифметическую кодировку (CABAC), декодированную по контексту. Вторая информация указания может быть указана вторым флагом, например intra_luma_not_planar_flag. Устройство анализирует второй флаг с использованием контекста на основе того, является ли текущий блок внутренним блоком с задействованным режимом кодировки внутри подраздела (ISP) или нет.Step 1205, the device obtains the value of the second indication information of the current block, when the value of the first indication information indicates that the intra prediction mode of the current block is contained in the most likely mode set, and the index reference row value indicates that the closest adjacent reference row to the current block is used, the value the second indication information of the current block indicates whether the intra prediction mode of the current block is a planar mode or not. The value of the second indication information is a context-adaptive binary arithmetic coding (CABAC) decoded by context. The second indication information may be indicated by a second flag, such as intra_luma_not_planar_flag. The device parses the second flag using the context based on whether the current block is an intra-partition (ISP) encoding mode enabled intrablock or not.

Когда кодировка MRL не задействована, то есть когда значение опорной строки индекса указывает, что используется ближайшая соседняя опорная строка к текущему блоку, устройства анализируют поток битов, чтобы получить значение второй информации указания.When the MRL encoding is not enabled, that is, when the index reference row value indicates that the nearest adjacent reference row to the current block is used, the devices parse the bitstream to obtain the value of the second indication information.

Установлено, что планарный режим неэффективен при включенном MRL (т. е. индекс опорной строки не равен 0) в традиционном способе. В варианте осуществления изобретения, когда кодировка MRL задействована, значение второй информации указания получается значением по умолчанию. В этой ситуации режим Planar исключается, и соответствующий ему флаг (например, intra_luma_not_planar_flag) не анализируется из потока битов, а выводится как значение по умолчанию (например, значение 1). В этом случае сохраняется бит для указания значения планарного флага (т.е. Intra_luma_not_planar), когда MRL задействован).Planar mode has been found to be inefficient with MRL enabled (ie, reference row index not equal to 0) in the conventional method. In an embodiment of the invention, when the MRL encoding is enabled, the value of the second indication information is obtained as a default value. In this situation, the Planar mode is excluded and its corresponding flag (eg, intra_luma_not_planar_flag) is not parsed from the bitstream, but output as a default value (eg, value 1). In this case, a bit is stored to indicate the value of the planar flag (i.e., Intra_luma_not_planar) when the MRL is enabled).

Подробная информация об этом варианте 1200 осуществления показана в вышеупомянутых вариантах осуществления.Details of this embodiment 1200 are shown in the above embodiments.

Согласно варианту 1210 осуществления (см. Фиг. 12B) способ внутреннего предсказания текущего блока, реализованный устройством декодирования, включает в себя следующие этапы.According to embodiment 1210 (see FIG. 12B), the current block intra prediction method implemented by the decoder includes the following steps.

На этапе 1211 устройство получает значение опорной строки индекса текущего блока. Значение опорной строки индекса текущего блока может быть указано с помощью intra_luma_ref_idx. Когда значение опорной строки индекса текущего блока равно 0, то есть intra_luma_ref_idx [x0] [y0] = = 0, используется ближайшая соседняя опорная строка к текущему блоку.In step 1211, the device obtains the reference row value of the current block index. The reference row value of the index of the current block can be specified using intra_luma_ref_idx. When the reference row value of the current block index is 0, i.e. intra_luma_ref_idx[x0][y0] == 0, the closest adjacent reference row to the current block is used.

На этапе 1212 устройство определяет, указывает ли значение опорной строки индекса, что используется ближайшая соседняя опорная строка к текущему блоку.At 1212, the device determines if the index reference row value indicates that the nearest adjacent reference row to the current block is being used.

Этап 1213, когда значение опорной строки индекса указывает, что используется ближайшая соседняя опорная строка к текущему блоку, устройство получает значение первой информации указания текущего блока, значение первой информации указания указывает, Режим предсказания текущего блока содержится в наборе наиболее вероятных режимов. Набор наиболее вероятных режимов включает 5 кандидатных режимов внутреннего предсказания и планарный режим. Первая информация указания указывается первым флагом, например intra_luma_mpm_flag. Как описано выше, когда значение intra_luma_mpm_flag равно 1, режим внутреннего предсказания текущего блока содержится в наборе наиболее вероятных режимов.Step 1213, when the index reference row value indicates that the nearest adjacent reference row to the current block is used, the device obtains the value of the first indication information of the current block, the value of the first indication information indicates, The prediction mode of the current block is contained in the set of most likely modes. The set of most probable modes includes 5 candidate intra prediction modes and a planar mode. The first indication information is indicated by the first flag, eg intra_luma_mpm_flag. As described above, when the value of intra_luma_mpm_flag is 1, the intra prediction mode of the current block is contained in the most likely mode set.

На этапе 1214 устройство определяет, указывает ли значение первой информации указания, что режим внутреннего предсказания текущего блока содержится в наборе наиболее вероятных режимов.In step 1214, the device determines whether the value of the first indication information indicates that the intra prediction mode of the current block is contained in the most likely mode set.

Этап 1215, устройство получает значение второй информации указания текущего блока, когда значение первой информации указания указывает, что режим внутреннего предсказания текущего блока содержится в наборе наиболее вероятных режимов, и значение опорной строки индекса указывает, что используется ближайшая соседняя опорная строка к текущему блоку, значение второй информации указания текущего блока указывает, является ли режим внутреннего предсказания текущего блока планарным режимом или нет. Значение второй информации указания представляет собой контекстно-адаптивную двоичную арифметическую кодировку (CABAC), декодированную по контексту. Вторая информация указания может быть указана вторым флагом, например intra_luma_not_planar_flag. Устройство анализирует второй флаг с использованием контекста на основе того, является ли текущий блок внутренним блоком с задействованным режимом кодировки внутри подраздела (ISP) или нет.Step 1215, the device obtains the value of the second indication information of the current block, when the value of the first indication information indicates that the intra prediction mode of the current block is contained in the most likely mode set, and the index reference row value indicates that the nearest adjacent reference row to the current block is used, value the second indication information of the current block indicates whether the intra prediction mode of the current block is a planar mode or not. The value of the second indication information is a context-adaptive binary arithmetic coding (CABAC) decoded by context. The second indication information may be indicated by a second flag, such as intra_luma_not_planar_flag. The device parses the second flag using the context based on whether the current block is an intra-partition (ISP) encoding mode enabled intrablock or not.

Подробная информация об этом варианте 1210 осуществления показана в вышеупомянутых вариантах осуществления.Details of this embodiment 1210 are shown in the above embodiments.

Согласно варианту осуществления 1300 (см. Фиг. 13) способ внутреннего предсказания текущего блока, реализованный устройством кодирования, включает в себя следующие этапы. На этапе 1301 устройство определяет, содержится ли режим внутреннего предсказания текущего блока в набор наиболее вероятных режимов. Набор наиболее вероятных режимов содержит 5 кандидатных режимов внутреннего предсказания и планарный режим. На этапе 1302 устройство определяет, используется ли ближайшая к текущему блоку опорная строка для внутреннего предсказания. Между этапами 1301 и 1302 нет последовательности.According to embodiment 1300 (see FIG. 13), the current block intra prediction method implemented by the encoder includes the following steps. In step 1301, the device determines whether the intra prediction mode of the current block is included in the set of most likely modes. The set of most probable modes contains 5 candidate intra prediction modes and a planar mode. In step 1302, the device determines whether the reference row closest to the current block is used for intra prediction. There is no sequence between steps 1301 and 1302.

Этап 1303, устройство кодирует поток битов, при этом поток битов включает в себя информацию, указывающую, является ли режим внутреннего предсказания текущего блока планарным режимом, когда режим внутреннего предсказания текущего блока содержится в наборе наиболее вероятных режимов, и ближайшая соседняя опорная строка к текущиму блоку используется для внутреннего предсказания и отправки закодированного битового потока на устройство декодирования.Step 1303, the apparatus encodes a bitstream, the bitstream including information indicating whether the intra prediction mode of the current block is a planar mode when the intra prediction mode of the current block is contained in the most likely mode set, and the nearest adjacent reference row to the current block used for intra prediction and sending the encoded bitstream to the decoder.

Битовый поток включает в себя первый флаг, указывающий, входит ли режим внутреннего предсказания текущего блока в набор наиболее вероятных режимов, и второй флаг, указывающий, является ли режим внутреннего предсказания текущего блока планарным режимом. Как описано выше, в качестве примера первым флагом является intra_luma_mpm_flag. Когда значение intra_luma_mpm_flag равно 1, режим внутреннего предсказания текущего блока содержится в наборе наиболее вероятных режимов. The bitstream includes a first flag indicating whether the intra prediction mode of the current block is included in the set of most likely modes and a second flag indicating whether the intra prediction mode of the current block is a planar mode. As described above, as an example, the first flag is intra_luma_mpm_flag. When the value of intra_luma_mpm_flag is 1, the intra prediction mode of the current block is contained in the set of most likely modes.

Значение второй информации указания представляет собой контекстно-адаптивную двоичную арифметическую кодировку (CABAC), декодированное по контексту. Вторая информация указания может быть указана вторым флагом, например intra_luma_not_planar_flag. Устройство анализирует второй флаг с использованием контекста на основе того, является ли текущий блок внутренним блоком с задействованным режимом кодировки внутри подраздела (ISP) или нет.The value of the second indication information is a context-adaptive binary arithmetic coding (CABAC) decoded by the context. The second indication information may be indicated by a second flag, such as intra_luma_not_planar_flag. The device parses the second flag using the context based on whether the current block is an intra-partition (ISP) encoding mode enabled intrablock or not.

Битовый поток также может включать в себя указание для указания значения опорной строки индекса текущего блока. Значение опорной строки индекса текущего блока указывается, например, с помощью intra_luma_ref_idx. Когда значение опорной строки индекса текущего блока равно 0, то есть intra_luma_ref_idx [x0] [y0] = = 0, используется ближайшая соседняя опорная строка к текущему блоку.The bitstream may also include an indication for indicating the reference row value of the index of the current block. The reference row value of the index of the current block is indicated, for example, using intra_luma_ref_idx. When the reference row value of the current block index is 0, i.e. intra_luma_ref_idx[x0][y0] == 0, the closest adjacent reference row to the current block is used.

Подробная информация об этом варианте 1300 осуществления показана в вышеупомянутых вариантах осуществления.Details of this embodiment 1300 are shown in the above embodiments.

Фиг. 14 иллюстрирует варианты осуществления устройства 1400 декодирования. Устройство 1400 декодирования может быть видеодекодером 30 на фиг.1А или декодером 30 на фиг.3. Устройство 1400 декодирования может использоваться для реализации варианта 1200 и других вариантов осуществления, описанных выше.Fig. 14 illustrates embodiments of a decoder 1400. The decoder 1400 may be video decoder 30 in FIG. 1A or decoder 30 in FIG. Decoder 1400 may be used to implement option 1200 and other embodiments described above.

Устройство включает в себя первый блок 1401 получения и второй блок 1402 получения. Первый блок 1401 получения, сконфигурированный для получения значения опорной строки индекса текущего блока и значения первой информации указания текущего блока, причем значение первой информации указания указывает, содержится ли режим внутреннего предсказания текущего блока в наборе наиболее вероятных режимов. Набор наиболее вероятных режимов содержит 5 кандидатных режимов внутреннего предсказания и планарный режим. Второй блок 1402 получения сконфигурирован для получения значения второй информации указания текущего блока, когда значение первой информации указания указывает, что режим внутреннего предсказания текущего блока содержится в наборе наиболее вероятных режимов, и когда значение опорной строки индекса указывает, что используется ближайшая соседняя опорная строка к текущему блоку, при этом значение второй информации указания текущего блока указывает, является ли режим внутреннего предсказания текущего блока планарным режимом.The apparatus includes a first acquisition unit 1401 and a second acquisition unit 1402. The first obtaining unit 1401, configured to obtain the value of the reference row index of the current block and the value of the first indication information of the current block, wherein the value of the first indication information indicates whether the intra prediction mode of the current block is included in the most likely mode set. The set of most probable modes contains 5 candidate intra prediction modes and a planar mode. The second acquisition unit 1402 is configured to obtain the value of the second indication information of the current block when the value of the first indication information indicates that the intra prediction mode of the current block is contained in the most likely mode set, and when the index reference row value indicates that the closest adjacent reference row to the current is used. block, wherein the value of the second current block indication information indicates whether the intra prediction mode of the current block is a planar mode.

Устройство 1400 дополнительно включает в себя блок 1403 синтаксического анализа (не показан на фиг. 14). Блок 1403 синтаксического анализа сконфигурирован для синтаксического анализа второго флага с использованием контекста на основе того, является ли текущий блок внутренним блоком с задействованным режимом кодировки внутреннего подраздела (ISP) или нет.The apparatus 1400 further includes a parser 1403 (not shown in FIG. 14). The parser 1403 is configured to parse the second flag using the context based on whether the current block is an inner block with an inner subsection (ISP) encoding mode enabled or not.

Фиг. 15 иллюстрирует варианты осуществления устройства 1500 кодирования для внутреннего предсказания. Устройство 1500 кодирования может быть видеокодером 20 на фиг. 1A или кодером 20 на фиг. 2. Устройство 1500 кодирования можно использовать для реализации варианта 1300 осуществления и других вариантов осуществления, описанных выше.Fig. 15 illustrates embodiments of an intra prediction encoder 1500. Encoder 1500 may be video encoder 20 in FIG. 1A or encoder 20 in FIG. 2. Encoder 1500 may be used to implement embodiment 1300 and other embodiments described above.

Устройство 1500 включает в себя блок 1501 определения и блок 1502 кодирования. Блок 1501 определения, сконфигурированный для определения того, входит ли режим внутреннего предсказания текущего блока в набор наиболее вероятных режимов, и для определения того, используется ли ближайшая соседняя опорная строка к текущему блоку для внутреннего предсказания. Набор наиболее вероятных режимов содержит 5 кандидатных режимов внутреннего предсказания и планарный режим. Блок 1502 кодирования, сконфигурированный для кодирования потока битов, при этом поток битов включает в себя информацию, указывающую, является ли режим внутреннего предсказания текущего блока планарным режимом, когда режим внутреннего предсказания текущего блока содержится в наборе наиболее вероятных режимов, и ближайшая соседняя опорная строка к текущему блоку используется для внутреннего предсказания.The apparatus 1500 includes a determiner 1501 and an encoder 1502. A determination unit 1501, configured to determine whether the intra prediction mode of the current block is included in the set of most likely modes, and to determine whether the nearest adjacent reference line to the current block is used for intra prediction. The set of most probable modes contains 5 candidate intra prediction modes and a planar mode. An encoding unit 1502, configured to encode a bitstream, the bitstream including information indicating whether the intra prediction mode of the current block is a planar mode when the intra prediction mode of the current block is contained in the most likely mode set, and the closest adjacent reference row to the current block is used for intra prediction.

Ниже приводится объяснение применений способа кодирования, а также способа декодирования, как показано в вышеупомянутых вариантах осуществления, и системы, использующей их.The following is an explanation of the applications of the encoding method as well as the decoding method as shown in the above embodiments, and the system using them.

Фиг. 16 является блок-схемой, показывающей систему 3100 поставки контента для реализации услуги распространения контента. Данная система 3100 поставки контента включает в себя устройство 3102 захвата, терминальное устройство 3106 и необязательно включает в себя дисплей 3126. Устройство 3102 захвата осуществляет связь с терминальным устройством 3106 по линии 3104 связи. Линия связи может включать в себя канал 13 связи, описанный выше. Линия 3104 связи включает в себя, но без ограничения упомянутым, WIFI, Ethernet, кабель, беспроводную связь (3G/4G/5G), USB или любую их комбинацию, или подобное.Fig. 16 is a block diagram showing a content supply system 3100 for realizing a content distribution service. This content delivery system 3100 includes a capture device 3102, a terminal device 3106, and optionally includes a display 3126. The capture device 3102 communicates with the terminal device 3106 over a communication line 3104. The communication link may include the communication channel 13 described above. Link 3104 includes, but is not limited to, WIFI, Ethernet, cable, wireless (3G/4G/5G), USB, or any combination thereof, or the like.

Устройство 3102 захвата генерирует данные и может кодировать данные способом кодирования, показанным в вышеуказанных вариантах осуществления. В качестве альтернативы устройство 3102 захвата может распространять данные на сервер потоковой передачи (не показан на Фигурах), а сервер кодирует данные и передает закодированные данные на терминальное устройство 3106. Устройство 3102 захвата включает в себя, но без ограничения упомянутым, камеру, смартфон или планшет, компьютер или ноутбук, систему видеоконференцсвязи, КПК, устанавливаемое на транспортное средство устройство, или комбинацию любых из них, или тому подобное. Например, устройство 3102 захвата может включать в себя устройство-источник 12, описанное выше. Когда данные включают в себя видео, видеокодер 20, включенный в устройство 3102 захвата, может фактически выполнять обработку видеокодирования. Когда данные включают в себя аудио (т.е. речь), аудиокодер, включенный в устройство 3102 захвата, может фактически выполнять обработку аудиокодирования. Для некоторых практических сценариев устройство 3102 захвата распространяет закодированные видео- и аудиоданные путем их совместного мультиплексирования. Для других практических сценариев, например, в системе видеоконференцсвязи, кодированные аудиоданные и кодированные видеоданные не мультиплексируются. Устройство 3102 захвата распространяет закодированные аудиоданные и закодированные видеоданные на терминальное устройство 3106 по-отдельности.The capture device 3102 generates data and may encode the data in the encoding method shown in the above embodiments. Alternatively, the capture device 3102 may distribute the data to a streaming server (not shown in the Figures), and the server encodes the data and transmits the encoded data to the terminal device 3106. The capture device 3102 includes, but is not limited to, a camera, smartphone, or tablet , a computer or laptop, a videoconferencing system, a PDA, a vehicle-mounted device, or a combination of any of these, or the like. For example, capture device 3102 may include source device 12 described above. When the data includes video, the video encoder 20 included in the capture device 3102 may actually perform video encoding processing. When the data includes audio (ie, speech), the audio encoder included in the capture device 3102 may actually perform audio encoding processing. For some practical scenarios, the capture device 3102 distributes encoded video and audio data by co-multiplexing them. For other practical scenarios, such as in a videoconferencing system, encoded audio data and encoded video data are not multiplexed. The capture device 3102 distributes the encoded audio data and the encoded video data to the terminal device 3106 separately.

В системе 3100 поставки контента терминальное устройство 310 принимает и воспроизводит закодированные данные. Терминальное устройство 3106 может быть устройством с возможностью приема и извлечения данных, таким как смартфон или планшет 3108, компьютер или ноутбук 3110, сетевой видеорегистратор (NVR)/цифровой видеорегистратор (DVR) 3112, телевизор 3114, телеприставка (STB) 3116, система 3118 видеоконференцсвязи, система 3120 видеонаблюдения, карманный персональный компьютер (КПК) 3122, устанавливаемое на транспортное средство устройство 3124, или их комбинация, или подобное, способное декодировать вышеупомянутые закодированные данные. Например, терминальное устройство 3106 может включать в себя устройство-получатель 14, описанное выше. Когда закодированные данные включают в себя видео, видеодекодеру 30, включенному в терминальное устройство, отдается приоритет для выполнения видеодекодирования. Когда закодированные данные включают в себя аудио, аудиодекодеру, включенному в терминальное устройство, отдается приоритет для выполнения обработки аудиодекодирования.In the content delivery system 3100, the terminal device 310 receives and reproduces the encoded data. The terminal device 3106 may be a device with the ability to receive and retrieve data, such as a smartphone or tablet 3108, a computer or laptop 3110, a network video recorder (NVR)/digital video recorder (DVR) 3112, a television 3114, a set-top box (STB) 3116, a videoconferencing system 3118 , a video surveillance system 3120, a personal digital assistant (PDA) 3122, a vehicle-mounted device 3124, or a combination thereof, or the like, capable of decoding the aforementioned encoded data. For example, terminal device 3106 may include sink device 14 described above. When the encoded data includes video, the video decoder 30 included in the terminal device is given priority to perform video decoding. When the encoded data includes audio, an audio decoder included in the terminal device is given priority to perform audio decoding processing.

Для терминального устройства со своим дисплеем, например смартфона или планшета 3108, компьютера или ноутбука 3110, сетевого видеорегистратора (NVR)/цифрового видеорегистратора (DVR) 3112, телевизора 3114, карманного персонального компьютера (КПК) 3122 или устанавливаемого на транспортное средство устройства 3124, терминальное устройство может передавать декодированные данные на свой дисплей. Для терминального устройства, не оборудованного дисплеем, такого как STB 3116, система 3118 видеоконференцсвязи или система 3120 видеонаблюдения, контакт в нем устанавливается с внешним дисплеем 3126 для приема и показа декодированных данных.For a terminal device with its own display, such as a 3108 smartphone or tablet, 3110 computer or laptop, 3112 Network Video Recorder (NVR)/Digital Video Recorder (DVR), 3114 TV, 3122 Personal Digital Assistant (PDA), or 3124 Vehicle Mounted Device, terminal the device can send the decoded data to its display. For a non-display terminal device, such as an STB 3116, a video conferencing system 3118, or a video surveillance system 3120, it is contacted with an external display 3126 to receive and display decoded data.

Когда каждое устройство в этой системе выполняет кодирование или декодирование, может использоваться устройство кодирования картинки или устройство декодирования картинки, как показано в вышеупомянутых вариантах осуществления.When each device in this system performs encoding or decoding, a picture encoding device or a picture decoding device may be used as shown in the above embodiments.

Фиг. 17 является схемой, показывающей структуру примерного терминального устройства 3106. После того, как терминальное устройство 3106 принимает поток от устройства 3102 захвата, блок 3202 обработки протокола анализирует протокол передачи упомянутого потока. Протокол включает в себя, но без ограничения упомянутым, протокол потоковой передачи в реальном времени (RTSP), протокол передачи гипертекста (HTTP), протокол потоковой передачи HTTP Live (HLS), MPEG-DASH, транспортный протокол реального времени (RTP), протокол обмена сообщениями в реальном времени (RTMP) или любую их комбинацию, или подобное.Fig. 17 is a diagram showing the structure of an exemplary terminal device 3106. After the terminal device 3106 receives a stream from the capture device 3102, the protocol processing unit 3202 parses the transmission protocol of said stream. The protocol includes, but is not limited to, Real Time Streaming Protocol (RTSP), Hypertext Transfer Protocol (HTTP), HTTP Live Streaming Protocol (HLS), MPEG-DASH, Real Time Transport Protocol (RTP), Interchange Protocol real-time messaging (RTMP) or any combination thereof, or the like.

После того, как блок 3202 обработки протокола обработает поток, генерируется файл потока. Файл выводится в блок 3204 демультиплексирования. Блок 3204 демультиплексирования может разделять мультиплексированные данные на закодированные аудиоданные и закодированные видеоданные. Как описано выше, в других практических сценариях, например, в системе видеоконференцсвязи, закодированные аудиоданные и закодированные видеоданные не мультиплексируются. В этой ситуации кодированные данные передаются на видеодекодер 3206 и аудиодекодер 3208 без использования модуля 3204 демультиплексирования.After the protocol processing unit 3202 processes the stream, a stream file is generated. The file is output to the demultiplexer 3204 . A demultiplexer 3204 may separate the multiplexed data into encoded audio data and encoded video data. As described above, in other practical scenarios, such as in a videoconferencing system, encoded audio data and encoded video data are not multiplexed. In this situation, the encoded data is transmitted to the video decoder 3206 and audio decoder 3208 without using the demultiplexer 3204.

Посредством обработки демультиплексирования генерируются элементарный видеопоток (ES), аудио ES и, необязательно, субтитры. Видеодекодер 3206, который включает в себя видеодекодер 30, описанный в вышеупомянутых вариантах осуществления, декодирует видео ES с помощью способа декодирования, как показано в вышеупомянутых вариантах осуществления, для генерирования видеокадра и подает эти данные в синхронный блок 3212. Аудиодекодер 3208 декодирует аудио ES для генерации аудиокадра и подает эти данные в синхронный блок 3212. В качестве альтернативы видеокадр может сохраняться в буфере (не показан на ФИГ. Y) перед его подачей в синхронный блок 3212. Точно так же аудиокадр может сохраняться в буфере (не показан на ФИГ. Y) перед его подачей в синхронный блок 3212.Through the demultiplexing processing, a video elementary stream (ES), audio ES, and optionally subtitles are generated. The video decoder 3206, which includes the video decoder 30 described in the above embodiments, decodes the video ES using the decoding method as shown in the above embodiments to generate a video frame, and supplies this data to the synchronous block 3212. The audio decoder 3208 decodes the audio ES to generate audio frame and feeds the data to synchronous block 3212. Alternatively, a video frame may be stored in a buffer (not shown in FIG. Y) before being fed to synchronous block 3212. Similarly, an audio frame may be stored in a buffer (not shown in FIG. Y) before it is fed into the synchronous block 3212.

Синхронный блок 3212 синхронизирует видеокадр и аудиокадр и подает видео/аудио на видео/аудио дисплей 3214. Например, синхронный блок 3212 синхронизирует представление видео и аудио информации. Информация может кодироваться в синтаксисе с использованием временных меток, касающихся представления закодированных аудио- и видеоданных, а также временных меток, касающихся доставки самого потока данных.The synchronous block 3212 synchronizes the video frame and the audio frame and supplies video/audio to the video/audio display 3214. For example, the synchronous block 3212 synchronizes the presentation of video and audio information. The information may be encoded in a syntax using timestamps regarding the presentation of the encoded audio and video data, as well as timestamps regarding the delivery of the data stream itself.

Если субтитры включены в поток, декодер 3210 субтитров декодирует субтитры и синхронизирует их с видеокадром и звуковым кадром и передает видео/аудио/субтитры на дисплей 3216 видео/аудио/субтитров.If subtitles are included in the stream, the subtitle decoder 3210 decodes the subtitles and synchronizes them with the video frame and the audio frame and passes the video/audio/subtitles to the video/audio/subtitle display 3216.

Настоящее изобретение не ограничивается вышеупомянутой системой, и либо устройство кодирования снимка, либо устройство декодирования снимка в вышеупомянутых вариантах осуществления может быть включено в другую систему, например, автомобильную систему.The present invention is not limited to the above system, and either the picture encoding device or the picture decoding device in the above embodiments may be included in another system such as an automobile system.

Математические операторыMathematical Operators

Математические операторы, используемые в этой заявке, аналогичны тем, которые используются в языке программирования C. Однако результаты операций целочисленного деления и арифметического сдвига определяются более точно, а также определяются дополнительные операции, такие как возведение в степень и вещественнозначное деление. Соглашения о нумерации и подсчете определяют начало с 0, например, «первый» эквивалентен 0-му, «второй» эквивалентен 1-му и т.д.The mathematical operators used in this application are similar to those used in the C programming language. However, the results of integer division and arithmetic shift operations are defined more precisely, and additional operations such as exponentiation and real-valued division are also defined. Numbering and counting conventions define starting at 0, e.g. "first" is equivalent to 0, "second" is equivalent to 1, and so on.

Арифметические операторыArithmetic operators

Следующие арифметические операторы определены следующим образом:The following arithmetic operators are defined as follows:

++ СложениеAddition Вычитание (как оператор с двумя аргументами) или отрицание (как унарный префиксный оператор)Subtraction (as a two-argument operator) or negation (as a unary prefix operator) ** Умножение, в том числе матричное умножениеMultiplication, including matrix multiplication xy x y Возведение в степень. Определяет x в степени y. В других контекстах такое обозначение используется в качестве надстрочного индекса, которое не следует интерпретировать в качестве возведения в степень.Exponentiation. Specifies x to the power of y. In other contexts, such a designation is used as a superscript, which should not be interpreted as exponentiation. // Целочисленное деление с усечением результата в сторону нуля. Например, 7/4 и -7 / -4 усекаются до 1, а -7/4 и 7 / -4 усекаются до -1.Integer division truncating the result towards zero. For example, 7/4 and -7/-4 are truncated to 1, and -7/4 and 7/-4 are truncated to -1. ÷÷ Используется для обозначения деления в математических уравнениях, где не предполагается усечение или округление.Used to indicate division in mathematical equations where truncation or rounding is not expected. Используется для обозначения деления в математических уравнениях, где не предполагается усечение или округление.Used to indicate division in mathematical equations where truncation or rounding is not expected. Суммирование f( i ), где i принимает все целые значения от x до y включительно.Summation f( i ), where i takes all integer values from x to y inclusive. x % yx % y Операция по модулю. Остаток от деления x на y, определена только для целых чисел x и y, где x >= 0 и y > 0.Modulo operation. Modulo x divided by y, defined only for integers x and y where x >= 0 and y > 0.

Логические операторыLogical operators

Следующие логические операторы определены следующим образом:The following logical operators are defined as follows:

x && y Булево логическое "и" для x и yx && y Boolean logical "and" for x and y

х || y Булево логическое "или" для x и yx || y Boolean logical "or" for x and y

! Булево логическое «не»! Boolean logical "not"

x?y:z Если x равен ИСТИНЕ или не равен 0, вычисляется значение y; в противном случае вычисляется значение z.x?y:z If x is TRUE or not 0, the value of y is evaluated; otherwise, the z value is calculated.

Операторы отношенияRelational Operators

Следующие операторы отношения определены следующим образом:The following relational operators are defined as follows:

> Больше> More

>= Больше или равно>= Greater than or equal

< Меньше< Less

<= Меньше или равно<= Less than or equal

= == Равно= == Equals

!=Не равно.!=Not equal.

Когда оператор сравнения применяется к синтаксическому элементу или переменной, которому(ой) присвоено значение «na» (не применимо), значение «na» обрабатывается как отдельное значение для синтаксического элемента или переменной. Значение «na» не считается равным любому другому значению.When a comparison operator is applied to a syntax element or variable that has been assigned the value "na" (not applicable), the value "na" is treated as a separate value for the syntax element or variable. The value "na" is not considered equal to any other value.

Побитовые операторыBitwise Operators

Следующие побитовые операторы определены следующим образом:The following bitwise operators are defined as follows:

& Побитовое «и». При работе над целочисленными аргументами оперирует над представлением дополнения до двойки целочисленного значения. При работе над двоичным аргументом, который содержит меньше битов, чем другой аргумент, более короткий аргумент расширяется путем добавления более значащих битов, равных 0.& Bitwise "and". When operating on integer arguments, operates on the two's complement representation of an integer value. When working on a binary argument that contains fewer bits than another argument, the shorter argument is expanded by adding more significant bits equal to 0.

| При работе над целочисленными аргументами оперирует над представлением дополнения до двойки целочисленного значения. При работе над двоичным аргументом, который содержит меньше битов, чем другой аргумент, более короткий аргумент расширяется путем добавления более значащих битов, равных 0.| When operating on integer arguments, operates on the two's complement representation of an integer value. When working on a binary argument that contains fewer bits than another argument, the shorter argument is expanded by adding more significant bits equal to 0.

^ При работе над целочисленными аргументами оперирует над представлением дополнения до двойки целочисленного значения. При работе над двоичным аргументом, который содержит меньше битов, чем другой аргумент, более короткий аргумент расширяется путем добавления более значащих битов, равных 0.^ When operating on integer arguments, operates on the two's complement representation of an integer value. When working on a binary argument that contains fewer bits than another argument, the shorter argument is expanded by adding more significant bits equal to 0.

x >> y Арифметический сдвиг вправо целочисленного представления дополнения до двойки x на y двоичных разрядов. Эта функция определена только для неотрицательных целочисленных значений y. Биты, сдвинутые в старшие биты (MSB) в результате сдвига вправо, имеют значение, равное MSB для x до операции сдвига.x >> y Arithmetic right shift of the two's complement integer representation of x by y bits. This function is only defined for non-negative integer y values. The bits shifted to the most significant bits (MSB) as a result of a right shift have a value equal to the MSB of x before the shift operation.

x << y Арифметический сдвиг влево целочисленного представления дополнения до двойки x на y двоичных разрядов. Эта функция определена только для неотрицательных целочисленных значений y. Биты, сдвинутые в младшие биты (LSB) в результате сдвига влево, имеют значение, равное 0.x << y Arithmetic left shift of the two's complement integer representation of x by y bits. This function is only defined for non-negative integer y values. Bits shifted to the least significant bits (LSB) as a result of a left shift have a value of 0.

Операторы присваиванияAssignment operators

Следующие арифметические операторы определены следующим образом:The following arithmetic operators are defined as follows:

= Assignment operator= assignment operator

+ ++ + Приращение, т.е. x+ + эквивалентно x=x+1; при использовании в индексе массива оценивается в значение переменной до операции приращения.+ ++ + Increment, i.e. x+ + is equivalent to x = x+ 1; when used in an array index, evaluates to the value of the variable before the increment operation.

− − Уменьшение, т.е. x− − эквивалентно x=x - 1; при использовании в индексе массива оценивает значение переменной до операции уменьшения.− − Decreasing, i.e. x − − is equivalent to x = x - 1; when used in an array index, evaluates the value of the variable before the decrement operation.

+=+ = Приращение на указанную величину, т.е. x += 3 эквивалентно x=x+3, а x += (−3) эквивалентно x=x + (−3).+=+ = Increment by the specified amount, i.e. x += 3 is equivalent to x=x+3 and x += (−3) is equivalent to x=x + (−3).

−=− = Уменьшение на указанную величину, т.е. x −= 3 эквивалентно x=x − 3, а x −= (−3) эквивалентно x=x − (−3).−=− = Decrease by the specified amount, i.e. x −= 3 is equivalent to x=x − 3, and x −= (−3) is equivalent to x=x − (−3).

Обозначение диапазонаRange designation

Следующее обозначение используется для указания диапазона значений:The following notation is used to indicate a range of values:

x=y..z x принимает целочисленные значения от y до z, включительно, где x, y и z являются целыми числами, а z больше y.x=y..z x takes integer values from y to z, inclusive, where x, y, and z are integers and z is greater than y.

Математические функцииMath functions

Определены следующие математические функции:The following mathematical functions are defined:

Abs( x ) = Abs( x ) =

Asin( x ) тригонометрическая функция арксинуса, работающая с аргументом x, который находится в диапазоне от - до включительно, с выходным значением в диапазоне от -π÷2 до π÷2 включительно в единицах радиан. Asin( x ) is a trigonometric arcsine function operating on an argument x that ranges from - to inclusive, with an output value in the range -π÷2 to π÷2 inclusive in units of radians.

Atan( x ) тригонометрическая функция арктангенса, работающая с аргументом x, с выходным значением в диапазоне от -π÷2 до π÷2 включительно в единицах радиан. Atan( x ) is a trigonometric arctangent function operating on argument x, with an output value in the range -π÷2 to π÷2 inclusive in units of radians.

Atan2( y, x ) = Atan2( y, x ) =

Ceil( x ) наименьшее целое больше чем или равно xCeil( x ) is the smallest integer greater than or equal to x

Clip1Y( x ) = Clip3( 0, ( 1 << BitDepthY ) − 1, x )Clip1Y( x ) = Clip3( 0, ( 1 << BitDepthY ) − 1, x )

Clip1C( x ) = Clip3( 0, ( 1 << BitDepthC ) − 1, x )Clip1C( x ) = Clip3( 0, ( 1 << BitDepthC ) − 1, x )

Clip3( x, y, z ) = Clip3(x, y, z) =

Cos( x ) тригонометрическая функция косинуса, работающая с аргументом x в единицах радиан. Cos( x ) is a trigonometric cosine function that operates on the x argument in units of radians.

Floor( x ) наибольшее целое число, меньшее или равное x. Floor( x ) is the largest integer less than or equal to x.

GetCurrMsb( a, b, c, d ) = GetCurrMsb( a, b, c, d ) =

Ln( x ) натуральный логарифм x (логарифм по основанию e, где e - постоянная основания натурального логарифма 281 828...). Ln( x ) is the natural logarithm of x (the logarithm to the base e, where e is the base constant of the natural logarithm 281 828...).

Log2( x )log2( x )

Log10( x ) логарифм x по основанию 10. Log10( x ) base 10 logarithm of x.

Min( x, y ) = Min( x, y ) =

Max( x, y ) = max( x, y ) =

Round( x ) = Sign( x ) * Floor( Abs( x ) + ) Round( x ) = Sign( x ) * Floor( Abs( x ) + )

Sign( x ) = Sign( x ) =

Sin( x ) тригонометрическая функция синуса, работающая с аргументом x в единицах радиан. Sin( x ) is a trigonometric sine function that operates on the x argument in units of radians.

Sqrt( x ) = Sqrt( x ) =

Swap( x, y ) = ( y, x ) Swap( x, y ) = ( y, x )

Tan( x ) тригонометрическая функция тангенса, работающая с аргументом x в единицах радиан. Tan( x ) is a trigonometric tangent function that operates on an x argument in units of radians.

Порядок приоритетности операцийOperation Priority Order

Когда порядок приоритетности в выражении явно не указан с помощью круглых скобок, применяются следующие правила:When the order of precedence in an expression is not explicitly specified using parentheses, the following rules apply:

-- Операции с более высоким приоритетом оцениваются перед любой операцией с более низким приоритетом.-- Operations with a higher priority are evaluated before any operations with a lower priority.

-- Операции с одинаковым приоритетом оцениваются последовательно слева направо.-- Operations with the same priority are evaluated sequentially from left to right.

В таблице 14 ниже указан приоритет операций от наивысшего к низшему; более высокая позиция в таблице 14 указывает на более высокий приоритет.Table 14 below lists the priority of operations from highest to lowest; a higher position in table 14 indicates a higher priority.

Для тех операторов, которые также используются в языке программирования C, порядок приоритетности, используемый в этом описании, является таким же, что и в языке программирования C.For those operators that are also used in the C programming language, the order of precedence used in this description is the same as in the C programming language.

Таблица 14: Приоритетность операций от наивысшего (в верхней части таблицы) до низшего (в нижней части таблицы)Table 14: Priority of operations from highest (at the top of the table) to lowest (at the bottom of the table)

операции (с операндами x, y и z)operations (with operands x, y and z) "x++", "x− −""x++", "x−−" "!x", "−x" (как унарный префиксный оператор)"!x", "−x" (as unary prefix operator) xy x y "x * y", "x/y", "x ÷ y", "x % y""x * y", "x/y", "x ÷ y", " x % y" "x+y", "x − y" (как оператор с двумя аргументами), " ""x+y", "x − y" (as a two-argument operator), " " "x << y", "x >> y""x << y", "x >> y" "x < y", "x <= y", "x > y", "x >= y""x < y", "x <= y", "x > y", "x >= y" "x = = y", "x != y""x == y", "x != y" "x & y""x & y" "x | y""x|y" "x && y""x && y" "x | | y""x||y" "x ? y : z""x? y: z" "x..y""x..y" "x=y", "x += y", "x −= y""x=y", "x += y", "x −= y"

Текстовое описание логических операцийText description of logical operations

В тексте определение логических операций, которое математически бы описывалось в следующей форме:In the text, the definition of logical operations, which would be mathematically described in the following form:

если ( условие 0 ) определение 0 иначе, если ( условие 1 ) определение 1 ... иначе /* информативный комментарий по оставшемуся условию */ определение n if ( condition 0 ) definition 0 else if ( condition 1 ) definition 1 ... otherwise /* informative comment on the remaining condition */ definition n

может быть описано следующим образом:can be described as follows:

... как указано ниже / ... применяется следующее:... as below / ... the following applies:

- если условие 0, определение 0- if condition 0, definition 0

- Иначе, если условие 1, определение 1- Otherwise, if condition 1, definition 1

- ...- ...

-- Иначе (информативный комментарий по оставшемуся условию), определение n.-- Otherwise (informative comment on the remaining condition), the definition of n.

Каждое определение «если ... Иначе если ... Иначе, ...» в тексте вводится словами «... как указано ниже» или «...применяется следующее», за которым сразу следует «если ...». Последним условием «если ... Иначе если ... Иначе, ...» всегда является «Иначе, ...». Чередование определений «если ... Иначе если ... Иначе, ...» могут быть идентифицированы путем сопоставления «... как указано ниже» или «... применяется следующее» с завершающим «Иначе, ...».Each definition of "if... Else if... Otherwise,..." in the text is introduced by the words "... as specified below" or "... the following applies", immediately followed by "if...". The last condition "if... Else if... Else, ..." is always "Else, ...". The alternating definitions of "if... Else if... Else,..." can be identified by matching "... as below" or "... the following applies" followed by "Else,...".

В тексте определение логических операций, которое математически бы описывалось в следующей форме:In the text, the definition of logical operations, which would be mathematically described in the following form:

если (условие 0a && условие 0b) if (condition 0a && condition 0b)

определение 0 definition 0

иначе, если (условие 1a | | условие 1b) else if (condition 1a | | condition 1b)

определение 1 definition 1

... ...

иначе определение notherwise the definition of n

может быть описано следующим образом:can be described as follows:

... как указано ниже / ... применяется следующее:... as below / ... the following applies:

-- Если все из следующих условий истинны, определение 0:-- If all of the following conditions are true, definition 0:

- condition 0a- condition 0a

- condition 0b- condition 0b

-- Иначе, если истинными являются одно или более из следующих условий, определение 1:-- Otherwise, if one or more of the following conditions are true, definition 1:

- condition 1a- condition 1a

- condition 1b- condition 1b

- ...- ...

- Иначе определение n- Else definition of n

В тексте определение логических операций, которое математически бы описывалось в следующей форме:In the text, the definition of logical operations, which would be mathematically described in the following form:

если (условие 0) if (condition 0)

определение 0definition 0

если (условие 1) if (condition 1)

определение 1definition 1

может быть описано следующим образом:can be described as follows:

Когда условие 0, определение 0When condition is 0, definition is 0

Когда условие 1, определение 1.When the condition is 1, the definition is 1.

Хотя варианты осуществления данного изобретения были в основном описаны на основе видеокодировки, следует отметить, что варианты осуществления системы 10 кодировки, кодера 20 и декодера 30 (и, соответственно, системы 10), а также другие варианты осуществления, описанные в данном документе, также могут быть выполнены с возможностью обработки или кодировки неподвижной картинки, т.е. обработки или кодировки отдельной картинки независимо от любой предшествующей или последующей картинки, как при видеокодировке. В общем, только блоки 244 внешнего предсказания (кодер) и 344 (декодер) могут не быть доступны в случае, если кодировка для обработки картинки ограничена одной картинкой 17. Все другие функциональные возможности (также именуемые инструментами или технологиями) видеокодера 20 и видеодекодера 30 могут в равной степени использоваться для обработки неподвижных картинок, например, вычисления 204/304 остатка, преобразования 206, квантования 208, обратного квантования 210/310, (обратного) преобразования 212/312, разделения 262/362, внутреннего предсказания 254/354 и/или контурной фильтрации 220, 320 и энтропийной кодировки 270 и энтропийного декодирования 304.Although embodiments of the present invention have been primarily described in terms of video encoding, it should be noted that embodiments of encoding system 10, encoder 20, and decoder 30 (and system 10, respectively), as well as other embodiments described herein, may also be configured to process or encode a still picture, i. e. processing or encoding a single picture, regardless of any preceding or subsequent picture, as in video encoding. In general, only inter prediction (encoder) and 344 (decoder) blocks 244 may not be available if the encoding for picture processing is limited to one picture 17. All other functionality (also referred to as tools or technologies) of video encoder 20 and video decoder 30 may equally be used for still picture processing, e.g., residual calculation 204/304, transform 206, quantize 208, inverse quantize 210/310, (inverse) transform 212/312, split 262/362, intra prediction 254/354 and/or loop filtering 220, 320; and entropy encoding 270 and entropy decoding 304.

Варианты осуществления, например кодера 20 и декодера 30, а также описанные в данном документе функции, например применительно к кодеру 20 и декодеру 30 могут быть реализованы аппаратным обеспечением, программным обеспечением, микропрограммным обеспечением или любой их комбинацией. Если реализованы в программном обеспечении, функции могут храниться на считываемом компьютером носителе или передаваться через среду связи в виде одной или более инструкций или кода и исполняться аппаратным блоком обработки. Считываемые компьютером носители могут включать в себя считываемые компьютером носители, которые соответствуют материальному носителю, например носителю данных, или среде связи, в том числе любой среде, которая обеспечивает передачу компьютерной программы из одного места в другое, например, согласно протоколу связи. Таким образом, считываемые компьютером носители обычно могут соответствовать (1) материальным считываемым компьютером носителям, которые являются долговременными, или (2) среде связи, такой как сигнал или несущая волна. Носители данных могут быть любыми доступными носителями, к которым может быть осуществлен доступ одним или более компьютерами или одним или более процессорами для извлечения инструкций, кода и/или структур данных для реализации методик, описанных в этом раскрытии. Компьютерный программный продукт может включать в себя считываемый компьютером носитель.Embodiments such as encoder 20 and decoder 30, as well as the functions described herein, such as encoder 20 and decoder 30, may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored on a computer-readable medium or transmitted over a communication medium as one or more instructions or code and executed by a hardware processing unit. Computer-readable media may include computer-readable media that corresponds to a tangible medium, such as a storage medium, or a communication medium, including any medium that allows a computer program to be transferred from one place to another, such as according to a communication protocol. Thus, computer-readable media can typically correspond to (1) tangible computer-readable media that is durable, or (2) a communication medium such as a signal or carrier wave. Storage media can be any available media that can be accessed by one or more computers or one or more processors to retrieve instructions, code, and/or data structures for implementing the techniques described in this disclosure. The computer program product may include a computer-readable medium.

В качестве примера, а не ограничения, такие считываемые компьютером носители могут содержать RAM, ROM, EEPROM, CD-ROM или другое хранилище на оптическом диске, хранилище на магнитном диске или другие магнитные запоминающие устройства, флэш-память или любой другой носитель, который может использоваться для хранения желаемого программного кода в форме инструкций или структур данных и может быть доступен для компьютера. Кроме того, любое соединение правильно называть считываемой компьютером средой. Например, если инструкции передаются с веб-сайта, сервера или другого удаленного источника с использованием коаксиального кабеля, оптоволоконного кабеля, витой пары, цифровой абонентской строки (DSL) или беспроводных технологий, таких как инфракрасная-, радио- и микроволновая- связь, тогда коаксиальный кабель, оптоволоконный кабель, витая пара, DSL или беспроводные технологии, такие как инфракрасная-, радио- и микроволновая- связь, включаются в определение носителя. Однако следует понимать, что считываемые компьютером носители и носители хранения данных не включают в себя соединения, несущие волны, сигналы или другие кратковременные носители, а вместо этого направлены на долговременные, материальные запоминающие носители. Диск (disk) и диск (disc), используемые используемые в данном документе, включают в себя компакт-диск (CD), лазерный диск, оптический диск, цифровой универсальный диск (DVD), дискету и диск Blu-ray, где диски (disks) обычно воспроизводят данные магнитным образом, а диски (discs)воспроизводят данные оптически с помощью лазеров. Комбинации вышеперечисленного также должны быть включены в объем считываемых компьютером носителей.By way of example, and not limitation, such computer-readable media may include RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, flash memory, or any other media that can be used to store desired program code in the form of instructions or data structures and can be accessed by a computer. In addition, any connection is properly termed a computer-readable medium. For example, if instructions are transmitted from a website, server, or other remote source using coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of media. However, it should be understood that computer-readable and storage media do not include connections, carrier waves, signals, or other short-lived media, but are instead directed to long-term, tangible storage media. The disc (disk) and disc (disc) used herein include compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk, and Blu-ray disc, where discs (disks ) usually reproduce data magnetically, while disks (discs) reproduce data optically using lasers. Combinations of the above should also be included in the scope of computer-readable media.

Инструкции могут исполняться одним или более процессорами, такими как один или более цифровых сигнальных процессоров (DSP), микропроцессоров общего назначения, интегральных схем специального назначения (ASIC), программируемых вентильных матриц (FPGA) или других эквивалентных интегральных или дискретных логических схем. Соответственно, термин «процессор», используемый в данном документе, может относиться к любой из вышеупомянутой структуры или любой другой структуре, подходящей для реализации методик, описанных в данном документе. Кроме того, в некоторых аспектах описанные здесь функциональные возможности могут быть предоставлены в рамках специализированных аппаратных и/или программных модулей, выполненных с возможностью кодирования и декодирования или включенных в объединенный кодек. Кроме того, методики могут быть полностью реализованы в одной или более схемах или логических элементах.The instructions may be executed by one or more processors, such as one or more digital signal processors (DSPs), general purpose microprocessors, application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), or other equivalent integrated or discrete logic circuits. Accordingly, the term "processor" as used herein may refer to any of the aforementioned structures, or any other structure suitable for implementing the techniques described herein. In addition, in some aspects, the functionality described herein may be provided within specialized hardware and/or software modules capable of encoding and decoding or included in a combined codec. In addition, the techniques may be fully implemented in one or more circuits or logic elements.

Методики этого раскрытия могут быть реализованы в большом количестве устройств или аппаратных компонентов, в том числе беспроводной телефон, интегральная схема (ИС) или набор ИС (например, набор микросхем). В этом раскрытии описаны различные компоненты, модули или блоки, чтобы подчеркнуть функциональные аспекты устройств, выполненных с возможностью выполнения раскрытых технологий, но не обязательно требующих реализации различными аппаратными блоками. Скорее, как описано выше, различные блоки могут быть объединены в аппаратный блок кодека или предоставлены совокупностью взаимодействующих аппаратных блоков, в том числе один или более процессоров, как описано выше, вместе с подходящим программным обеспечением и/или микропрограммным обеспечением.The techniques of this disclosure may be implemented in a wide variety of devices or hardware components, including a wireless telephone, an integrated circuit (IC), or an IC stack (eg, a chipset). This disclosure describes various components, modules, or blocks to emphasize the functional aspects of devices capable of performing the disclosed technologies, but not necessarily requiring implementation in different hardware blocks. Rather, as described above, various blocks may be combined into a codec hardware block, or provided by a collection of cooperating hardware blocks, including one or more processors, as described above, along with suitable software and/or firmware.

Claims (66)

1. Способ внутреннего предсказания, реализуемый устройством декодирования, содержащий:1. An intra prediction method implemented by a decoding device, comprising: получение значения первой информации указания текущего блока, причем значение первой информации указания указывает, содержится ли режим внутреннего предсказания текущего блока в наборе наиболее вероятных режимов, при этом набор наиболее вероятных режимов содержит 5 кандидатных режимов внутреннего предсказания и планарный режим;obtaining a value of the first indication information of the current block, the value of the first indication information indicating whether the intra prediction mode of the current block is contained in the most likely mode set, the most likely mode set comprising 5 candidate intra prediction modes and a planar mode; получение значения опорной строки индекса текущего блока;getting the value of the reference row of the index of the current block; когда значение первой информации указания указывает, что режим внутреннего предсказания текущего блока содержится в наборе наиболее вероятных режимов, и когда значение опорной строки индекса указывает, что используется ближайшая соседняя опорная строка к текущему блоку, получение значения второй информации указания текущего блока, причем значение второй информации указания текущего блока указывает, является ли режим внутреннего предсказания текущего блока планарным режимом или нет,when the value of the first indication information indicates that the intra prediction mode of the current block is contained in the most likely mode set, and when the value of the index reference row indicates that the closest adjacent reference row to the current block is used, obtaining the value of the second indication information of the current block, wherein the value of the second information specifying the current block indicates whether the intra prediction mode of the current block is a planar mode or not, причем первая информация указания указывается первым флагом intra_luma_mpm_flag, а вторая информация указания указывается вторым флагом intra_luma_not_planar_flag,wherein the first indication information is indicated by the first flag intra_luma_mpm_flag and the second indication information is indicated by the second flag intra_luma_not_planar_flag, когда значение второй информации указания текущего блока указывает, что режим внутреннего предсказания текущего блока не является планарным режимом, синтаксически анализируется intra_luma_mpm_idx, соответствующий индексу 5 кандидатных режимов внутреннего предсказания; иwhen the value of the second current block indication information indicates that the intra prediction mode of the current block is not a planar mode, the intra_luma_mpm_idx corresponding to index 5 of candidate intra prediction modes is parsed; And предсказание текущего блока на основе режима внутреннего предсказания текущего блока.predicting the current block based on the intra prediction mode of the current block. 2. Способ по п.1, в котором значение второй информации указания является контекстно-адаптивной двоичной арифметической кодировкой (CABAC), декодированной по контексту. 2. The method of claim 1, wherein the value of the second indication information is context-adaptive binary arithmetic coding (CABAC) decoded by context. 3. Способ по п. 1, в котором, когда значение intra_luma_mpm_flag равно 1, режим внутреннего предсказания текущего блока содержится в наборе наиболее вероятных режимов, и3. The method of claim 1, wherein when the value of intra_luma_mpm_flag is 1, the intra prediction mode of the current block is contained in the most likely mode set, and когда значение опорной строки индекса текущего блока равно 0, используется ближайшая соседняя опорная строка к текущему блоку.when the reference row value of the current block index is 0, the nearest adjacent reference row to the current block is used. 4. Способ по любому из пп. 3-5, причем способ дополнительно содержит:4. The method according to any one of paragraphs. 3-5, the method further comprising: синтаксический анализ второго флага с использованием контекста на основе того, является ли текущий блок внутренним блоком с задействованным режимом кодировки внутреннего подраздела (ISP) или нет.parsing the second flag using the context based on whether the current block is an inner block with the inner subsection (ISP) encoding mode enabled or not. 5. Способ по любому из пп. 1-4, в котором, когда значение второй информации указания текущего блока указывает, что режим внутреннего предсказания текущего блока не является планарным режимом, и когда одно или несколько из следующих условий истинны, кандидатный режим внутреннего предсказания candIntraPredModeX устанавливается равным INTRA_PLANAR:5. The method according to any one of paragraphs. 1-4, wherein when the value of the second current block indication information indicates that the intra prediction mode of the current block is not a planar mode, and when one or more of the following conditions are true, the intra prediction candidate mode candIntraPredModeX is set to INTRA_PLANAR: значением переменной availableX является ЛОЖЬ;availableX is FALSE; CuPredMode [xNbX] [yNbX] не равно MODE_INTRA; илиCuPredMode [xNbX] [yNbX] is not equal to MODE_INTRA; or X равно B и yCb − 1 меньше, чем (( yCb >> CtbLog2SizeY ) << CtbLog2SizeY),X is equal to B and yCb − 1 is less than (( yCb >> CtbLog2SizeY ) << CtbLog2SizeY), причем X заменяется либо соседним блоком A, либо B, местоположение (xCb, yCb) яркости указывает верхнюю левую выборку текущего блока кодировки яркости относительно верхней левой выборки яркости текущей картинки, местоположение (xNbA, yNbA) соседа A устанавливается равным (xCb - 1, yCb+cbHeight -1), местоположение (xNbB, yNbB) соседа B устанавливается равным (xCb+cbWidth - 1, yCb - 1), переменная cbWidth указывает ширину текущего блока кодировки в выборках яркости, переменная cbHeight указывает высоту текущего блока кодировки в выборках яркости, CuPredMode представляет текущий режим предсказания, SizeY представляет размер Y компонентов блока дерева кодировки.wherein X is replaced by either adjacent block A or B, the luma location (xCb, yCb) indicates the top left sample of the current luminance encoding block relative to the top left luminance sample of the current picture, the location (xNbA, yNbA) of neighbor A is set to (xCb - 1, yCb +cbHeight -1), the location (xNbB, yNbB) of B's neighbor is set to (xCb+cbWidth - 1, yCb - 1), the cbWidth variable specifies the width of the current encoding block in luminance samples, the cbHeight variable indicates the height of the current encoding block in luma samples, CuPredMode represents the current prediction mode, SizeY represents the Y size of the coding tree block components. 6. Способ по любому из пп. 1-5, в котором, когда режим внутреннего предсказания левого соседнего блока и режим внутреннего предсказания верхнего соседнего блока оба являются неугловыми режимами, список MPM содержит:6. The method according to any one of paragraphs. 1-5, wherein when the left neighbor intra prediction mode and the top neighbor intra prediction mode are both non-angular modes, the MPM list contains: candModeList [0] = INTRA_DC candModeList[0] = INTRA_DC candModeList [1] = INTRA_ANGULAR50 candModeList[1] = INTRA_ANGULAR50 candModeList [2] = INTRA_ANGULAR18 candModeList[2] = INTRA_ANGULAR18 candModeList [3] = INTRA_ANGULAR46 candModeList[3] = INTRA_ANGULAR46 candModeList [4] = INTRA_ANGULAR54.candModeList[4] = INTRA_ANGULAR54. 7. Способ по любому из пп. 1-6, в котором этап получения значения второй информации указания содержит:7. The method according to any one of paragraphs. 1-6, wherein the step of obtaining the value of the second indication information comprises: синтаксический анализ битового потока для получения значения второй информации указания.parsing the bitstream to obtain the value of the second indication information. 8. Способ по любому из пп. 1-8, когда задействована кодировка с множественными опорными строками (MRL), значение второй информации указания получают по значению по умолчанию.8. The method according to any one of paragraphs. 1-8, when multiple reference string (MRL) encoding is enabled, the value of the second indication information is obtained from a default value. 9. Способ внутреннего предсказания, реализуемый устройством кодирования, содержащий:9. The method of intra prediction implemented by the coding device, comprising: Определение, содержится ли режим внутреннего предсказания текущего блока в наборе наиболее вероятных режимов, при этом набор наиболее вероятных режимов содержит 5 кандидатных режимов внутреннего предсказания и планарный режим;Determining whether the intra prediction mode of the current block is contained in the most likely mode set, wherein the most likely mode set contains 5 candidate intra prediction modes and a planar mode; определение, используется ли ближайшая соседняя опорная строка к текущему блоку для внутреннего предсказания;determining whether the closest adjacent reference row to the current block is used for intra prediction; кодирование потока битов, при этом поток битов включает в себя информацию, указывающую, является ли режим внутреннего предсказания текущего блока планарным режимом, когда режим внутреннего предсказания текущего блока содержится в наборе наиболее вероятных режимов, и ближайшая соседняя опорная строка к текущему блок используется для внутреннего предсказания,bitstream coding, wherein the bitstream includes information indicating whether the intra prediction mode of the current block is a planar mode when the intra prediction mode of the current block is contained in the most likely mode set, and the nearest adjacent reference row to the current block is used for intra prediction , причем поток битов включает в себя первый флаг intra_luma_mpm_flag, указывающий, содержится ли режим внутреннего предсказания текущего блока в наборе наиболее вероятных режимов, и второй флаг intra_luma_not_planar_flag, указывающий, является ли режим внутреннего предсказания текущего блока планарным режимом;wherein the bit stream includes a first flag intra_luma_mpm_flag indicating whether the intra prediction mode of the current block is included in the set of most likely modes, and a second flag intra_luma_not_planar_flag indicating whether the intra prediction mode of the current block is a planar mode; когда значение второго флага, указывающего, что режим внутреннего предсказания текущего блока не является планарным режимом, поток битов включает в себя intra_luma_mpm_idx, соответствующий индексу 5 кандитатных режимов внутреннего предсказания.when the value of the second flag indicating that the intra prediction mode of the current block is not a planar mode, the bitstream includes intra_luma_mpm_idx corresponding to index 5 of candidate intra prediction modes. 10. Способ по п. 9, в котором, когда значение intra_luma_mpm_flag равно 1, режим внутреннего предсказания текущего блока содержится в наборе наиболее вероятных режимов, и10. The method of claim 9, wherein when the value of intra_luma_mpm_flag is 1, the intra prediction mode of the current block is contained in the most likely mode set, and когда значение опорной строки индекса текущего блока равно 0, ближайшая соседняя опорная строка к текущему блоку используется для внутреннего предсказания.when the current block index reference row value is 0, the closest adjacent reference row to the current block is used for intra prediction. 11. Способ по любому из пп. 9-10, в котором упомянутая информация указывает, является ли режим внутреннего предсказания текущего блока контекстно-зависимой двоичной арифметической кодировкой (CABAC), закодированной по контексту.11. The method according to any one of paragraphs. 9-10, wherein said information indicates whether the intra prediction mode of the current block is context-dependent binary arithmetic coding (CABAC) encoded by context. 12. Способ по п. 11, в котором контекст включает в себя, является ли текущий блок внутренним блоком с задействованным режимом кодировки внутреннего подраздела (ISP).12. The method of claim 11, wherein the context includes whether the current block is an intra block with an internal subpartition (ISP) encoding mode enabled. 13. Устройство декодирования для внутреннего предсказания, содержащее:13. A decoding device for intra prediction, comprising: первый блок получения, сконфигурированный для получения значения опорной строки индекса текущего блока и значения первой информации указания текущего блока, причем значение первой информации указания указывает, содержится ли режим внутреннего предсказания текущего блока в наборе наиболее вероятных режимов, при этом набор наиболее вероятных режимов содержит 5 кандидатных режимов внутреннего предсказания и планарный режим;a first acquisition unit configured to obtain a reference row value of the index of the current block and a value of the first indication information of the current block, wherein the value of the first indication information indicates whether the intra prediction mode of the current block is contained in the most likely mode set, the most likely mode set contains 5 candidates intra-prediction and planar modes; второй блок получения, сконфигурированный для получения значения второй информации указания текущего блока, когда значение первой информации указания указывает, что режим внутреннего предсказания текущего блока содержится в наборе наиболее вероятных режимов, и когда значение опорной строки индекса указывает, что используется ближайшая соседняя опорная строка к текущему блоку, при этом значение второй информации указания текущего блока указывает, является ли режим внутреннего предсказания текущего блока планарным режимом,a second acquisition unit configured to obtain the value of the second indication information of the current block when the value of the first indication information indicates that the intra prediction mode of the current block is contained in the most likely mode set, and when the index reference row value indicates that the closest adjacent reference row to the current is used to the block, wherein the value of the second current block indication information indicates whether the intra prediction mode of the current block is a planar mode, причем первая информация указания указывается первым флагом intra_luma_mpm_flag, а вторая информация указания указывается вторым флагом intra_luma_not_planar_flag,wherein the first indication information is indicated by the first flag intra_luma_mpm_flag and the second indication information is indicated by the second flag intra_luma_not_planar_flag, когда значение второй информации указания текущего блока указывает, что режим внутреннего предсказания текущего блока не является планарным режимом, синтаксически анализируется intra_luma_mpm_idx, соответствующий индексу 5 кандидатных режимов внутреннего предсказания; иwhen the value of the second current block indication information indicates that the intra prediction mode of the current block is not a planar mode, the intra_luma_mpm_idx corresponding to index 5 of candidate intra prediction modes is parsed; And блок предсказания, сконфигурированный для предсказания текущего блока на основе режима внутреннего предсказания текущего блока.a prediction block configured to predict the current block based on the intra prediction mode of the current block. 14. Устройство по п. 13, причем значение второй информации указания представляет собой контекстно-адаптивную двоичную арифметическую кодировку (CABAC), декодированную по контексту.14. The apparatus of claim 13, wherein the value of the second indication information is context-adaptive binary arithmetic coding (CABAC) decoded by context. 15. Устройство по п. 13, причем, когда значение intra_luma_mpm_flag равно 1, режим внутреннего предсказания текущего блока содержится в наборе наиболее вероятных режимов, и15. The apparatus of claim 13, wherein when the value of intra_luma_mpm_flag is 1, the intra-prediction mode of the current block is contained in the set of most likely modes, and когда значение опорной строки индекса текущего блока равно 0, используется ближайшая соседняя опорная строка к текущему блоку.when the reference row value of the current block index is 0, the nearest adjacent reference row to the current block is used. 16. Устройство по любому из пп. 13-15, причем устройство дополнительно содержит:16. The device according to any one of paragraphs. 13-15, wherein the device further comprises: блок синтаксического анализа, сконфигурированный для синтаксического анализа второго флага с использованием контекста на основе того, является ли текущий блок внутренним блоком с задействованным режимом кодировки внутреннего подраздела (ISP) или нет.a parser configured to parse the second flag using the context based on whether the current block is an inner block with an inner subpartition (ISP) encoding mode enabled or not. 17. Устройство по любому из пп. 13-16, в котором второй блок получения сконфигурирован для получения значения второй информации указания путем синтаксического анализа потока битов.17. The device according to any one of paragraphs. 13-16, in which the second obtaining unit is configured to obtain the value of the second indication information by parsing the bitstream. 18. Устройство по любому из пп. 13-16, в котором второй блок получения сконфигурирован для установки значения по умолчанию в качестве значения второй информации указания, когда задействована кодировка с множественными опорными строками (MRL).18. The device according to any one of paragraphs. 13-16, in which the second acquisition unit is configured to set a default value as the value of the second indication information when multiple reference row (MRL) encoding is enabled. 19. Устройство кодирования для внутреннего предсказания, содержащее:19. An encoding device for intra prediction, comprising: блок определения, сконфигурированный для определения, содержится ли режим внутреннего предсказания текущего блока в наборе наиболее вероятных режимов, и для определения, используется ли ближайшая соседняя опорная строка к текущему блоку для внутреннего предсказания, при этом набор наиболее вероятных режимов содержит 5 кандидатных режимов внутреннего предсказания и планарный режим;a determining unit configured to determine whether the intra prediction mode of the current block is contained in the most likely mode set, and to determine whether the nearest adjacent reference row to the current block is used for intra prediction, wherein the most likely mode set contains 5 candidate intra prediction modes, and planar mode; блок кодирования, сконфигурированный для кодирования потока битов, при этом поток битов включает в себя информацию, указывающую, является ли режим внутреннего предсказания текущего блока планарным режимом, когда режим внутреннего предсказания текущего блока содержится в наборе наиболее вероятных режимов, и ближайший соседняя опорная строка к текущему блоку используется для внутреннего предсказания,a coding block configured to encode a bitstream, the bitstream including information indicating whether the intra prediction mode of the current block is a planar mode when the intra prediction mode of the current block is contained in the most likely mode set, and the closest adjacent reference row to the current block is used for intra prediction, причем поток битов включает в себя первый флаг intra_luma_mpm_flag, указывающий, содержится ли режим внутреннего предсказания текущего блока в наборе наиболее вероятных режимов, и второй флаг intra_luma_not_planar_flag, указывающий, является ли режим внутреннего предсказания текущего блока планарным режимом;wherein the bit stream includes a first flag intra_luma_mpm_flag indicating whether the intra prediction mode of the current block is included in the set of most likely modes, and a second flag intra_luma_not_planar_flag indicating whether the intra prediction mode of the current block is a planar mode; когда значение второго флага, указывающего, что режим внутреннего предсказания текущего блока не является планарным режимом, поток битов включает в себя intra_luma_mpm_idx, соответствующий индексу 5 кандитатных режимов внутреннего предсказания.when the value of the second flag indicating that the intra prediction mode of the current block is not a planar mode, the bitstream includes intra_luma_mpm_idx corresponding to index 5 of candidate intra prediction modes. 20. Устройство по п. 19, причем, когда значение intra_luma_mpm_flag равно 1, режим внутреннего предсказания текущего блока содержится в наборе наиболее вероятных режимов, и20. The apparatus of claim 19, wherein when the value of intra_luma_mpm_flag is 1, the intra-prediction mode of the current block is contained in the set of most likely modes, and когда значение опорной строки индекса текущего блока равно 0, ближайшая соседняя опорная строка к текущему блоку используется для внутреннего предсказания.when the current block index reference row value is 0, the closest adjacent reference row to the current block is used for intra prediction. 21. Устройство по любому из пп. 19-20, причем информация, указывающая, является ли режим внутреннего предсказания текущего блока контекстно-зависимой двоичной арифметической кодировкой (CABAC), закодированной по контексту.21. The device according to any one of paragraphs. 19-20, wherein information indicating whether the intra prediction mode of the current block is context-dependent binary arithmetic coding (CABAC) encoded by context. 22. Устройство по п.21, в котором контекст включает в себя, является ли текущий блок внутренним блоком с задействованным режимом кодировки внутреннего подраздела (ISP).22. The apparatus of claim 21, wherein the context includes whether the current block is an internal block with an internal subpartition (ISP) encoding mode enabled. 23. Декодер (30), содержащий схему обработки для выполнения способа по любому из пунктов с 1 по 8.23. Decoder (30), containing a processing circuit for performing the method according to any one of paragraphs 1 to 8. 24. Кодер (20), содержащий схему обработки для выполнения способа по любому из пунктов с 9 по 12.24. An encoder (20) containing a processing circuit for performing the method according to any one of paragraphs 9 to 12. 25. Декодер для внутреннего предсказания, содержащий:25. Decoder for intra prediction, containing: один или более процессоров; иone or more processors; And долговременный считываемый компьютером носитель, подсоединенный к процессорам и хранящий программу для исполнения упомянутыми процессорами, причем программа, когда исполняется процессорами, конфигурирует декодер для выполнения способа по любому из пп. 1-8.a durable computer-readable medium coupled to the processors and storing a program for execution by said processors, wherein the program, when executed by the processors, configures a decoder to perform the method of any one of claims. 1-8. 26. Кодер для внутреннего предсказания, содержащий:26. Encoder for intra prediction, containing: один или более процессоров; иone or more processors; And долговременный считываемый компьютером носитель, подсоединенный к процессорам и хранящий программу для исполнения упомянутыми процессорами, причем программа, когда исполняется процессорами, конфигурирует декодер для выполнения способа по любому из пп. 9-12.a durable computer-readable medium coupled to the processors and storing a program for execution by said processors, wherein the program, when executed by the processors, configures a decoder to perform the method of any one of claims. 9-12.
RU2021130483A 2019-03-23 2020-03-23 Coder, decoder and corresponding methods for intra prediction RU2800681C2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US62/822,865 2019-03-23
US62/824,282 2019-03-26
US62/824,360 2019-03-27

Publications (2)

Publication Number Publication Date
RU2021130483A RU2021130483A (en) 2023-04-25
RU2800681C2 true RU2800681C2 (en) 2023-07-26

Family

ID=

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
B. WANG еt al., CE3-related: A unified MPM list for intra mode coding, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-N0185-r2, 14th Meeting: Geneva, 19-27 March 2019. BENJAMIN BROSS et al., Versatile Video Coding (Draft 4), Joint Video Experts Team (JVET) of ITU-T SG 16 WP3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-M1001-v6, 13th Meeting: Marrakech, 9-18 Jan. 2019. JIANLE CHEN et al., Algorithm description for Versatile Video Coding and Test Model 4 (VTM 4), Joint Video Experts Team (JVET) of ITU-T SG 16 WP3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-M1002-v1, 13th Meeting: Marrakech, 9-18 Jan. 2019. US 2017324963 A1 - 2017-11-09. YUE YU et al., On MPM determination and Planar mode signaling, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, JCTVC-H0516-r3, 8th Meeting: San Jose, 1-10 February 2012. US 2018332289 A1 - 2018.11.15. RU 2682838 C1 - 2019.03.21. RU 2636680 C1 - 2017.11.27. *

Similar Documents

Publication Publication Date Title
JP7536959B2 (en) Encoder, Decoder and Corresponding Method for Intra Prediction
US11876997B2 (en) Encoder, decoder and corresponding methods of most probable mode list construction for blocks with multi-hypothesis prediction
KR20210126771A (en) Encoders, decoders and corresponding methods related to intra prediction mode
CN114125468A (en) Intra-frame prediction method and device
CN114424571A (en) Encoder, decoder and corresponding methods
KR20210088688A (en) Encoders, decoders and corresponding methods using the IBC merge list
KR20210139446A (en) Method and apparatus for intra-smoothing
JP7521050B2 (en) Encoder, decoder and corresponding method using intra-mode coding for intra prediction - Patents.com
CN113287301A (en) Inter-component linear modeling method and device for intra-frame prediction
RU2800681C2 (en) Coder, decoder and corresponding methods for intra prediction
CN113228632A (en) Encoder, decoder, and corresponding methods for local illumination compensation
RU2821012C2 (en) Encoder, decoder and corresponding methods for intra-prediction
RU2786427C2 (en) Video encoder, video decoder, and related methods
JP2024150526A (en) Encoder, decoder and corresponding method using intra-mode coding for intra prediction - Patents.com
CN117915112A (en) Encoder, decoder and corresponding methods