RU2780222C2 - Method and device for internal prediction - Google Patents

Method and device for internal prediction Download PDF

Info

Publication number
RU2780222C2
RU2780222C2 RU2021106477A RU2021106477A RU2780222C2 RU 2780222 C2 RU2780222 C2 RU 2780222C2 RU 2021106477 A RU2021106477 A RU 2021106477A RU 2021106477 A RU2021106477 A RU 2021106477A RU 2780222 C2 RU2780222 C2 RU 2780222C2
Authority
RU
Russia
Prior art keywords
block
mode
prediction mode
intra prediction
modes
Prior art date
Application number
RU2021106477A
Other languages
Russian (ru)
Other versions
RU2021106477A (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 RU2021106477A publication Critical patent/RU2021106477A/en
Application granted granted Critical
Publication of RU2780222C2 publication Critical patent/RU2780222C2/en

Links

Images

Abstract

FIELD: image encoding/decoding.
SUBSTANCE: invention relates to the field of image encoding and decoding, in particular to a method for internal prediction. A method for compiling a list of the most probable modes (hereinafter – MPM) for the prediction process corresponding to a video block is proposed. The method includes: determination of whether the left block of the current encoding block is available or not, if the left block of the current encoding block is available, addition of an internal prediction mode of the left block to MPM list; determination of whether the upper block of the current encoding block is available or not, if the upper block of the current encoding block is available, addition of an internal prediction mode of the upper block to MPM list; addition of an offset to the prediction mode of the left block to obtain a new prediction mode, if the left block of the current encoding block is available, and the internal prediction mode of the left block is an angular mode; and addition of the new prediction mode to MPM list, if the new prediction mode is not in MPM list; or addition of an offset to the prediction mode of the upper block to obtain the prediction mode of the upper block with an offset, if the upper block of the current encoding block is available, and the internal prediction mode of the upper block is an angular mode; and addition of the prediction mode of the upper block with an offset to MPM list, if the prediction mode of the upper block with an offset is not in MPM list. MPM list is used to obtain an index value corresponding to the prediction mode of the image block to increase encoding efficiency.
EFFECT: increase in the efficiency of encoding/decoding based on compiling MPM list.
14 cl, 1 tbl, 10 dwg

Description

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

Настоящее изобретение относится к технической области кодирования и декодирования изображений и/или видео и, в частности, к способу и устройству для внутреннего предсказания.The present invention relates to the technical field of image and/or video coding and decoding, and in particular to a method and apparatus for intra prediction.

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

С момента появления DVD-дисков цифровое видео получило широкое распространение. Перед передачей видео кодируется и передается с использованием среды передачи. Зритель принимает видео и использует устройство для декодирования и просмотра видео. С годами качество видео повысилось, например, за счет более высоких разрешений, глубины цвета и частоты кадров. Это привело к увеличению потоков данных, которые в настоящее время обычно передаются через интернет и сети мобильной связи.Since the advent of DVDs, digital video has become widespread. Before transmission, the video is encoded and transmitted using a transmission medium. The viewer receives the video and uses the device to decode and view the video. Video quality has improved over the years, for example with higher resolutions, color depth and frame rates. This has led to an increase in data flows, which are now usually transmitted over the Internet and mobile networks.

Однако видео с более высоким разрешением обычно требует большей пропускной способности, поскольку они содержат больше информации. Чтобы снизить требования к полосе пропускания, были введены стандарты кодирования видео, включающие в себя сжатие видео. При кодировании видео требования к полосе пропускания (или соответствующие требования к памяти в случае хранения) снижаются. Часто это снижение происходит за счет качества. Таким образом, стандарты кодирования видео пытаются найти баланс между требованиями к полосе пропускания и качеством.However, higher resolution videos usually require more bandwidth because they contain more information. To reduce bandwidth requirements, video coding standards have been introduced that include video compression. When video is encoded, the bandwidth requirements (or corresponding memory requirements in the case of storage) are reduced. Often this decline comes at the expense of quality. Thus, video coding standards try to strike a balance between bandwidth requirements and quality.

Высокоэффективное кодирование видео (HEVC) является примером стандарта кодирования видео, который обычно известен специалистам в данной области техники. В HEVC для разделения блока кодирования (CU) на блоки предсказания (PUs) или блоки преобразования (TUs). Стандарт следующего поколения универсального кодирования видео (VVC) является последним совместным проектом видео, созданный группой экспертов по кодированию видео ITU-T (VCEG) и организациями по стандартизации ISO/IEC группой экспертов по движущимся изображений (MPEG), которые работают вместе в известном партнерстве, как объединенная группа исследования видео (JVET). VVC также называют стандартом ITU-T H.266/кодирование видео следующего поколения (NGVC). В VVC удаляют концепции множества типов разделов, т.е. удаляет концепции разделения CU, PU и TU, за исключением случаев, когда это необходимо для CUs, размер которых слишком велик для максимальной длины преобразования, и поддерживает большую гибкость для форм разделов CU.High Efficiency Video Coding (HEVC) is an example of a video coding standard that is commonly known to those skilled in the art. In HEVC, to divide a coding unit (CU) into prediction units (PUs) or transform units (TUs). The Next Generation Universal Video Coding (VVC) standard is the latest collaborative video project created by the ITU-T Video Coding Experts Group (VCEG) and the ISO/IEC Standards Organizations by the Moving Picture Experts Group (MPEG), who work together in a well-known partnership, as the Joint Video Research Team (JVET). VVC is also referred to as ITU-T H.266/Next Generation Video Coding (NGVC). VVC removes the concept of multiple partition types, i.e. removes the concepts of CU, PU, and TU partitioning, except when needed for CUs that are too large for the maximum transform length, and maintains more flexibility for CU partition shapes.

Обработка этих блоков кодирования (CUs) (также называемых блоками) зависит от их размера, пространственной позиции и режима кодирования, указанного кодером. Режимы кодирования можно разделить на две группы в соответствии с типом предсказания: режимы внутреннего предсказания и внешнего предсказания. В режимах внутреннего предсказания используются выборки одного и того же изображения (также называемые кадром или изображением) для генерирования опорных выборок для вычисления значений предсказания для выборок восстановленного блока. Внутреннее предсказание также называется пространственным предсказанием. Режимы внешнего предсказания предназначены для временного предсказания и используют опорные выборки предшествующего или следующего изображения для предсказания выборок блока текущего изображения.The processing of these coding units (CUs) (also referred to as blocks) depends on their size, spatial position, and the coding mode specified by the encoder. The coding modes can be divided into two groups according to the type of prediction: intra prediction and inter prediction modes. The intra prediction modes use samples of the same picture (also referred to as a frame or picture) to generate reference samples to calculate prediction values for the reconstructed block samples. Intra prediction is also called spatial prediction. The inter prediction modes are for temporal prediction and use previous or next picture reference samples to predict current picture block samples.

ITU-T VCEG (Q6/16) и ISO/IEC MPEG (JTC 1/SC 29/WG 11) изучают потенциальную потребность в стандартизации будущей технологии кодирования видео с возможностью сжатия, которая значительно превосходит возможности текущего стандарта HEVC (включающий в себя его текущие расширения и краткосрочные расширения для кодирования контента экрана и кодирования с высоким динамическим диапазоном). Группы работают вместе над этой исследовательской деятельностью в рамках совместной работы, известной как совместная группа по исследованию видео (JVET), для оценки проектов технологий сжатия, предложенных их экспертами в этой области.ITU-T VCEG (Q6/16) and ISO/IEC MPEG (JTC 1/SC 29/WG 11) are exploring the potential need to standardize a future compressible video coding technology that far exceeds the capabilities of the current HEVC standard (including its current extensions and short term extensions for screen content encoding and high dynamic range encoding). The groups work together on this research activity in a collaborative effort known as the Joint Video Research Team (JVET) to evaluate compression technology projects proposed by their experts in the field.

Стандарт VTM (универсальная тестовая модель) использует 35 внутренних режимов, тогда как BMS (набор опорных задач) использует 67 внутренних режимов.The VTM (Universal Test Model) standard uses 35 internal modes, while the BMS (Reference Task Set) uses 67 internal modes.

Схема режима внутреннего кодирования, описанная в настоящее время в BMS, считается сложной, и недостатком невыбранного набора режимов является то, что список индексов всегда постоянен и не адаптивен на основании свойств текущего блока (например, для INTRA режимов соседних блоков).The intra coding mode scheme currently described in the BMS is considered complex, and the disadvantage of the non-selected mode set is that the index list is always constant and not adaptive based on the properties of the current block (eg, for INTRA neighbor block modes).

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

Настоящее измерение предлагает устройство и способ внутреннего предсказания. В устройстве и способе используется улучшенный процесс для составления списка наиболее вероятных режимов. Объем защиты определяется формулой изобретения. Дополнительные формы реализации очевидны из зависимых пунктов формулы изобретения, описания и чертежей.The present measurement provides an apparatus and method for intra prediction. The device and method uses an improved process to compile a list of the most likely modes. The scope of protection is determined by the claims. Additional forms of implementation are obvious from the dependent claims, description and drawings.

Согласно аспекту настоящее изобретение относится к способу составления списка наиболее вероятного режима, MPM, для процесса предсказания, причем способ содержит: определение, доступен ли левый блок текущего блока или нет, если левый блок текущего блока доступен, добавление режима внутреннего предсказания левого блока в MPM список; определение, доступен ли верхний блок текущего блока кодирования или нет, если верхний блок текущего блока кодирования доступен, добавление режима внутреннего предсказания верхнего блока в MPM список; добавление смещения в режим внутреннего предсказания левого блока для получения нового режима предсказания, если левый блок текущего блока кодирования доступен и режим внутреннего предсказания левого блока является угловым режимом; и добавление нового режима предсказания в MPM список, если новый режим предсказания отсутствует в MPM списке; и/или добавление смещения к режиму внутреннего предсказания верхнего блока для получения режима предсказания смещения-верхний, если верхний блок текущего блока кодирования доступен и режим внутреннего предсказания верхнего блока является угловым режимом; и добавление режима предсказания смещения-верхний в MPM список, если режим предсказания смещения-верхний отсутствует в MPM списке.According to an aspect, the present invention relates to a method for listing a most likely mode, MPM, for a prediction process, the method comprising: determining whether the left block of the current block is available or not, if the left block of the current block is available, adding the left block intra prediction mode to the MPM list ; determining whether the top block of the current coding block is available or not, if the top block of the current coding block is available, adding the top block intra prediction mode to the MPM list; adding an offset to the left block intra prediction mode to obtain a new prediction mode if the left block of the current coding block is available and the left block intra prediction mode is an angular mode; and adding a new prediction mode to the MPM list if the new prediction mode is not in the MPM list; and/or adding an offset to the top block intra prediction mode to obtain the offset-top prediction mode if the top block of the current coding block is available and the top block intra prediction mode is an angle mode; and adding a bias-top prediction mode to the MPM list if the bias-top prediction mode is not in the MPM list.

В одном из вариантов смещение равно -1 или +1:In one option, the offset is -1 or +1:

В варианте осуществления способ дополнительно содержит: если в MPM списке отсутствует планарный режим, добавление планарного режима в MPM список; и, если DC режим отсутствует в MPM списке, добавление DC режима в MPM список.In an embodiment, the method further comprises: if there is no planar mode in the MPM list, adding the planar mode to the MPM list; and, if the DC mode is not in the MPM list, adding the DC mode to the MPM list.

В варианте осуществления, когда режим предсказания левого блока не является режимом внутреннего предсказания, левый блок текущего блока кодирования недоступен.In an embodiment, when the left block prediction mode is not an intra prediction mode, the left block of the current coding block is not available.

В варианте осуществления, когда текущий блок кодирования является блоком кодирования, расположенным в самой левой стороне кадра, левый блок текущего блока кодирования недоступен.In an embodiment, when the current coding block is the coding block located on the leftmost side of the frame, the left block of the current coding block is not available.

В варианте осуществления, когда поддерживается параллельная обработка и текущий блок кодирования является блоком кодирования, расположенным в самой левой стороне сегмента или плитки, левый блок текущего блока кодирования недоступен.In an embodiment, when parallel processing is supported and the current coding block is a coding block located on the leftmost side of a segment or tile, the left block of the current coding block is not available.

В варианте осуществления, когда параллельная обработка не поддерживается и текущий блок кодирования является блоком кодирования, расположенным в самой левой стороне сегмента или плитки, но не на самой левой стороне кадра, левый блок текущего блок кодирования доступен.In an embodiment, when parallel processing is not supported and the current coding block is a coding block located on the leftmost side of a segment or tile, but not on the leftmost side of a frame, the left block of the current coding block is available.

В варианте осуществления, когда режим предсказания верхнего блока не является режимом внутреннего предсказания, верхний блок текущего блока кодирования недоступен.In an embodiment, when the top block prediction mode is not an intra prediction mode, the top block of the current coding block is not available.

В варианте осуществления, когда текущий блок кодирования является блоком кодирования, расположенным на самой верхней стороне кадра, верхний блок текущего блока кодирования недоступен.In an embodiment, when the current coding block is the coding block located on the uppermost side of the frame, the top block of the current coding block is not available.

В варианте осуществления, когда поддерживается параллельная обработка и текущий блок кодирования является блоком кодирования, расположенным на самой верхней стороне сегмента или плитки, верхний блок текущего блока кодирования недоступен.In an embodiment, when parallel processing is supported and the current coding block is the coding block located on the topmost side of the segment or tile, the top block of the current coding block is not available.

В варианте осуществления, когда параллельная обработка не поддерживается и текущий блок кодирования является блоком кодирования, расположенным на самой верхней стороне сегмента или плитки, но не на самой верхней стороне кадра, верхний блок текущего блока кодирования доступен.In an embodiment, when parallel processing is not supported and the current coding block is a coding block located on the topmost side of a segment or tile, but not on the topmost side of a frame, the topmost block of the current coding block is available.

В варианте осуществления, когда размер линейного буфера ограничен и текущий блок кодирования является блоком кодирования, расположенным на самой верхней стороне текущего блока дерева кодирования, CTU, верхний блок текущего блока кодирования недоступен.In an embodiment, when the size of the linear buffer is limited and the current coding unit is a coding unit located on the topmost side of the current coding tree block, CTU, the top block of the current coding unit is not available.

Согласно аспекту настоящее изобретение относится к кодеру, содержащему схему обработки для выполнения любого из вышеуказанных способов.According to an aspect, the present invention relates to an encoder containing a processing circuit for performing any of the above methods.

Согласно аспекту настоящее изобретение относится к декодеру, содержащему схему обработки для выполнения любого из вышеупомянутых способов.According to an aspect, the present invention relates to a decoder comprising a processing circuit for performing any of the above methods.

Согласно аспекту настоящее изобретение относится к программному продукту, содержащему программный код для выполнения любого из вышеупомянутых способов.According to an aspect, the present invention relates to a software product containing software code for performing any of the above methods.

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

Следующие ниже варианты осуществления описаны более подробно со ссылкой на прилагаемые чертежи, на которых:The following embodiments are described in more detail with reference to the accompanying drawings, in which:

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

фиг. 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 exemplary structure of a video decoder capable of implementing embodiments of the invention;

фиг. 4 показывает схему, иллюстрирующую 67 режимов внутреннего предсказания;fig. 4 shows a diagram illustrating 67 intra prediction modes;

фиг. 5 показывает схему, иллюстрирующую соседние блоки для получения MPM;fig. 5 shows a diagram illustrating neighboring blocks for obtaining MPM;

фиг. 6 показывает схему, иллюстрирующую пример первых трех режимов в процессе генерирования списка оставшихся режимов;fig. 6 shows a diagram illustrating an example of the first three modes in the process of generating a list of the remaining modes;

фиг. 7 показывает схему, иллюстрирующую режимы внутреннего предсказания соседних блоков второго уровня, используемые для получения первых трех режимов в списке оставшихся режимов;fig. 7 shows a diagram illustrating second layer adjacent block intra prediction modes used to obtain the first three modes in the remaining mode list;

фиг. 8 показывает схему, иллюстрирующую пример способа декодирования видео;fig. 8 shows a diagram illustrating an example of a video decoding method;

фиг. 9 показывает другую схему, иллюстрирующую пример способа декодирования видео;fig. 9 shows another diagram illustrating an example of a video decoding method;

фиг. 10 показывает блок-схему устройства.fig. 10 shows a block diagram of the device.

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

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

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

Например, очевидно, что изобретение в связи с описанным способом также может быть использовано для соответствующего устройства или системы, выполненной с возможностью выполнения способа и наоборот. Например, если описан конкретный этап способа, соответствующее устройство может включать в себя блок для выполнения описанного этапа способа даже, если такой блок явно не описан или не проиллюстрирован на чертежах. С другой стороны, например, если конкретное устройство описано на основе одного или множества блоков, например, функциональных блоков, соответствующий способ может включать в себя один этап для выполнения функциональных возможностей одного или множества блоков (например, один этап, выполняющий функциональные возможности одного или множества блоков, или множество этапов, каждый из которых выполняет функциональные возможности одного или нескольких из множество блоков), даже если такой один или множество этапов явно не описаны или не проиллюстрированы на чертежах. Кроме того, понятно, что признаки различных иллюстративных аспектов, описанных в данном документе, могут быть объединены друг с другом, если специально не указано иное.For example, it is obvious that the invention in connection with the described method can also be used for a corresponding device or system configured to perform the method and vice versa. For example, if a specific method step is described, the corresponding apparatus may include a unit for performing the described method step even if such unit is not explicitly described or illustrated in the drawings. 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). 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 is not explicitly described or illustrated in the drawings. In addition, it is understood that the features of the various illustrative aspects described herein may be combined with each other unless specifically noted otherwise.

Кодирование видео обычно относится к обработке последовательности изображений, которые образуют видео или видеопоследовательность. Термин «изображение» или «кадр» может использоваться как синоним в области кодирования видео, а также в настоящем изобретении.Video coding generally refers to the processing of a sequence of images that form a video or video sequence. The term "image" or "frame" can be used interchangeably in the field of video coding as well as in the present invention.

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

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

Каждое изображение обычно разделяется на набор неперекрывающихся блоков. Кодирование/декодирование изображения обычно выполняется на уровне блока, где, например, внешнее предсказание или внутреннее предсказание используются для генерирования блока предсказания, чтобы вычесть блок предсказания из текущего блока (блок, который в настоящее время обрабатывается/должен быть обработан), чтобы получить остаточный блок, который далее преобразуется и квантуется для уменьшения количества данные, которые должны быть переданы (сжаты), тогда как на стороне декодера обратная обработка применяется к кодированному/сжатому блоку для восстановления блока для представления.Each image is usually divided into a set of non-overlapping blocks. Image encoding/decoding is typically performed at the block level, where, for example, inter-prediction or intra-prediction is used to generate a prediction block to subtract the prediction block from the current block (the block currently being processed/to be processed) to obtain a residual block , which is further converted and quantized to reduce the amount of data that must be transmitted (compressed), while at the decoder side, inverse processing is applied to the encoded/compressed block to recover the block for presentation.

Фиг. 1 представляет собой концептуальную или схематическую блок-схему, иллюстрирующую пример системы кодирования, например, система кодирования видео, которая может использовать способы настоящего изобретения (present disclosure). Кодер 20 (например, видеокодер 20) и декодер 30 (например, видеодекодер 30) системы кодирования видео представляют примеры устройств, которые могут быть выполнены с возможностью выполнять способы в соответствии с различными примерами, описанными в настоящем изобретении. Как показано на фиг. 1, система кодирования содержит устройство 12 источника, выполненное с возможностью предоставлять закодированные данные 13, например, закодированное изображение 13, например, в устройство 14 назначения для декодирования закодированных данных 13.Fig. 1 is a conceptual or schematic block diagram illustrating an example of an encoding system, such as a video encoding system, that may use the methods of the present invention (present disclosure). Encoder 20 (eg, video encoder 20) and decoder 30 (eg, video decoder 30) of a video coding system represent examples of devices that can be configured to perform methods in accordance with the various examples described in the present invention. As shown in FIG. 1, the encoding system comprises a source device 12 configured to provide encoded data 13, such as an encoded image 13, for example, to a destination device 14 to decode the encoded data 13.

Устройство 12 источника содержит кодер 20 и может дополнительно, т.е. возможно, содержать источник 16 изображения, блок 18 предварительной обработки, например, блок 18 предварительной обработки изображения и интерфейс связи или блок 22 связи.The source device 12 includes an encoder 20 and may additionally, i. e. optionally comprise an image source 16, a pre-processing unit 18, for example an image pre-processing unit 18, and a communication interface or communication unit 22.

Источник 16 изображения может содержать или быть устройством захвата изображения любого типа, например, для захвата реального изображения и/или любого вида изображения или комментария (для кодирования содержимого экрана некоторые тексты на экране также считаются как часть изображения или кадра, которое должно быть закодировано), устройство генерирования, например, процессор компьютерной графики для генерирования компьютерного анимированного изображения, или любое устройство для получения и/или предоставления реального изображения, компьютерного анимированного изображения (например, содержимое экрана, изображение виртуальной реальности (VR)) и/или любую их комбинацию (например, изображение дополненной реальности (AR)).The image source 16 may contain or be any type of image capture device, for example, to capture a real image and/or any kind of image or commentary (for screen content encoding, some texts on the screen are also considered to be part of the image or frame to be encoded), a generating device, such as a computer graphics processor for generating a computer animated image, or any device for receiving and/or providing a real image, a computer animated image (e.g., screen content, a virtual reality (VR) image), and/or any combination thereof (e.g. , augmented reality (AR) image).

(Цифровое) изображение представляет собой или может рассматриваться как двумерный массив или матрица выборок со значениями интенсивности. Выборка в массиве также может называться пикселем (сокращенная форма элемента изображения) или pel. Количество выборок в горизонтальном и вертикальном направлении (или по оси) массива или изображения определяет размер и/или разрешение изображения. Для представления цвета обычно используются три цветовых компонента, то есть, изображение может быть представлено или включать в себя три массива выборок. В формате RBG или цветовом пространстве изображение содержит соответствующий массив выборок красного, зеленого и синего цветов. Однако при кодировании видео каждый пиксель обычно представлен в формате яркости/цветности или цветовом пространстве, например YCbCr, который содержит компонент яркости, обозначенный Y (иногда вместо него также используется L), и два компонента цветности, обозначенные Cb и Cr. Компонент Y яркости (сокращенно от luma) представляет яркость или интенсивность уровня серого (например, как в полутоновом изображении), в то время как два компонента цветности (сокращенно, Cb и Cr) представляют компоненты информации цветности или цвета. Соответственно, изображение в формате YCbCr содержит массив выборки яркости из значений выборки яркости (Y) и два массива выборки цветности значений цветности (Cb и Cr). Изображения в формате RGB могут быть преобразованы или преобразованы в формат YCbCr, и наоборот, этот процесс также известен как преобразование цвета или преобразование. Если изображение является монохромным, оно может содержать только массив выборки яркости.A (digital) image 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 called a pixel (short for picture element) or a pel. The number of samples in the horizontal and vertical direction (or axis) of the array or image determines the size and/or resolution of the image. Three color components are typically used to represent a color, that is, an image can be represented by or include three arrays of samples. In RBG format or color space, an image contains a corresponding array of red, green, and blue color samples. However, in video encoding, each pixel is typically represented in a luma/chrominance format or color space, such as YCbCr, which contains a luminance component labeled Y (sometimes L is also used instead) and two chrominance components labeled Cb and Cr. The Y component of luma (short for luma) represents the brightness or intensity of the gray level (eg, as in a grayscale image), while the two chrominance components (abbreviated as Cb and Cr) represent components of chrominance or color information. Accordingly, a YCbCr image contains a luma sample array of luma sample values (Y) and two chrominance sample arrays of chroma values (Cb and Cr). RGB images can be converted or converted to YCbCr format and vice versa, this process is also known as color conversion or conversion. If the image is monochrome, it can only contain a luminance sample array.

Источник 16 изображения (например, источник 16 видео) может быть, например, камерой для захвата изображения, памятью, например память изображения, содержащая или хранящая ранее захваченное или сгенерированное изображение, и/или интерфейс любого типа (внутренний или внешний) для получения или приема изображения. Камера может быть, например, локальной или интегрированной камерой, интегрированной в устройство источника, память может быть локальной или интегрированной памятью, например, интегрировано в устройство источника. Интерфейс может быть, например, внешним интерфейсом для приема изображения от внешнего источника видео, например, внешнего устройства захвата изображения, такого как камера, внешней памяти или внешнего устройства формирования изображения, например, внешнего компьютерного графического процессора, компьютер или сервер. Интерфейс может быть любым, например, проводной или беспроводной интерфейс, оптический интерфейс в соответствии с любым проприетарным или стандартизованным протоколом интерфейса. Интерфейс для получения данных 17 изображения может быть тем же интерфейсом, что и интерфейс 22 связи, или его частью.Image source 16 (e.g., video source 16) may be, for example, a camera for capturing an image, a memory, such as an image memory containing or storing a previously captured or generated image, and/or any type of interface (internal or external) for receiving or receiving Images. The camera may be, for example, a local or integrated camera integrated into the source device, the memory may be local or integrated memory, for example, integrated into the source device. The interface may be, for example, an external interface for receiving an image from an external video source, such as an external image capture device such as a camera, external memory, or an external imaging device, such as an external computer GPU, computer, or server. The interface can be anything, such as a wired or wireless interface, an optical interface according to any proprietary or standardized interface protocol. The interface for obtaining image data 17 may be the same interface as the communication interface 22 or part of it.

В отличие от блока 18 предварительной обработки и обработки, выполняемой блоком 18 предварительной обработки, изображение или данные 17 изображения (например, видеоданные 16) также могут называться необработанным изображением или данными 17 исходного изображения.Unlike the pre-processing unit 18 and the processing performed by the pre-processing unit 18, the image or image data 17 (eg, video data 16) may also be referred to as raw image or original image data 17.

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

Кодер 20 (например, видеокодер 20) выполнен с возможностью принимать предварительно обработанные данные 19 изображения и предоставления кодированных данных 21 изображения (дополнительные подробности будут описаны ниже, например, со ссылкой на фиг. 2).The encoder 20 (eg, video encoder 20) is configured to receive pre-processed image data 19 and provide encoded image data 21 (more details will be described below, for example, with reference to FIG. 2).

Интерфейс 22 связи устройства 12 источника может быть выполнен с возможностью принимать данные 21 закодированного изображения и для их передачи другому устройству, например, в устройство 14 назначения или любое другое устройство для хранения или прямого восстановления или для обработки данных 21 закодированного изображения соответственно перед сохранением кодированных данных 13 и/или передачей кодированных данных 13 в другое устройство, например, устройство 14 назначение или любое другое устройство для декодирования или сохранения.The communication interface 22 of the source device 12 may be configured to receive the encoded image data 21 and to transmit it to another device, for example, to the destination device 14 or any other device for storage or direct retrieval or for processing the encoded image data 21, respectively, before storing the encoded data. 13 and/or transmitting the encoded data 13 to another device, such as a destination device 14 or any other device for decoding or storage.

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

Интерфейс 28 связи устройства 14 назначения выполнен с возможностью принимать кодированные данные 21 изображения или кодированные данные 13, например, непосредственно из устройства 12 источника или из любого другого источника, например, запоминающего устройства, например, устройство хранения данных закодированного изображения.The communication interface 28 of the destination device 14 is configured to receive the encoded image data 21 or the encoded data 13, for example, directly from the source device 12 or from any other source, such as a storage device, such as an encoded image data storage device.

Интерфейс 22 связи и интерфейс 28 связи могут быть выполнены с возможностью передавать или принимать кодированные данные 21 изображения или закодированные данные 13 через прямую линию связи между устройством 12 источника и устройством 14 назначения, например, прямое проводное или беспроводное соединение или через любую сеть, например, проводную или беспроводную сеть или любую их комбинацию, или любую частную и общественную сеть, или любую их комбинацию.Communication interface 22 and communication interface 28 may be configured to transmit or receive encoded image 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 network, such as 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 image data 21 into an appropriate format, such as packets, for transmission over a communication line or network.

Интерфейс 28 связи, образующий аналог интерфейса 22 связи, может быть, например, выполнен с возможностью распаковывать кодированные данные 13 для получения данных 21 закодированного изображения.The communication interface 28, analogous to the communication interface 22, may, for example, be configured to decompress the encoded data 13 to obtain encoded image data 21.

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

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

Постпроцессор 32 устройства 14 источника выполнен с возможностью пост-обработки данных 31 декодированного изображения (также называемых данными восстановленного изображения), например, декодированное изображение 31 для получения данных 33 изображения после обработки, например, пост обработанное изображение 33. Постобработка, выполняемая блоком 32 постобработки, может включать в себя, например, преобразование цветового формата (например, из YCbCr в RGB), цветокоррекция, обрезка или повторная выборка, или любая другая обработка, например, для подготовки данных 31 декодированного изображения для отображения, например, с помощью устройства 34 отображения.The post-processor 32 of the source device 14 is configured to post-process the decoded image data 31 (also referred to as reconstructed image data), such as the decoded image 31, to obtain post-processed image data 33, such as the post-processed image 33. The post-processing performed by the post-processing unit 32, 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 image data 31 for display, for example, by the display device 34.

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

Хотя фиг. 1 изображает устройство 12 источника и устройство 14 назначения как отдельные устройства, варианты осуществления устройств также могут содержать обе функциональные возможности, устройства 12 источника или соответствующие функциональные возможности устройства 14 назначения. В таких вариантах осуществления устройство 12 источника или соответствующие функциональные возможности и устройство 14 назначения или соответствующие функциональные возможности могут быть реализованы с использованием одного и того же аппаратного и/или программного обеспечения, либо с помощью отдельных аппаратных средств и/или программного обеспечения, либо любой их комбинации.Although FIG. 1 depicts source device 12 and destination device 14 as separate devices, device embodiments may also contain both functionality, source device 12 or corresponding functionality of destination device 14. In such embodiments, source device 12 or related functionality and destination device 14 or related functionality may be implemented using the same hardware and/or software, or using separate hardware and/or software, or any of them. combinations.

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

Кодер 20 (например, видеокодер 20) и декодер 30 (например, видеодекодер 30) могут быть реализованы как любая из множества подходящих схем, таких как один или несколько микропроцессоров, процессоров цифровых сигналов (DSP), специализированные интегральные схемы (ASIC), программируемые вентильные матрицы (FPGA), дискретная логика, оборудование или любые их комбинации. Если способы частично реализованы в программном обеспечении, устройство может хранить инструкции для программного обеспечения на подходящем постоянном машиночитаемом носителе данных и может выполнять инструкции в аппаратных средствах с использованием одного или нескольких процессоров для выполнения способов настоящего изобретения. Любой из вышеперечисленных (включающие в себя оборудование, программное обеспечение, комбинацию оборудования и программного обеспечения и т.д.) может рассматриваться как один или несколько процессоров. Каждый из видеокодера 20 и видеодекодера 30 может содержаться в одном или нескольких кодерах или декодерах, каждый из которых может быть интегрирован как часть комбинированного кодера/декодера (CODEC) в соответствующем устройстве.Encoder 20 (eg, video encoder 20) and decoder 30 (eg, video decoder 30) may be implemented as any of a variety of suitable circuits, such as one or more microprocessors, digital signal processors (DSPs), application specific integrated circuits (ASICs), programmable gate matrices (FPGA), discrete logic, hardware, or any combination thereof. If the methods 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 instructions in hardware using one or more processors to perform the methods of the present invention. Any of the above (including hardware, software, a combination of hardware and software, etc.) may be considered one or more processors. Each of video encoder 20 and video decoder 30 may be contained in one or more encoders or decoders, each of which may be integrated as part of a combined encoder/decoder (CODEC) in a respective device.

Устройство 12 источника и устройство 14 назначения могут включать любое из широкого диапазона устройств, включающие в себя любые виды портативных или стационарных устройств, например, ноутбуки или портативные компьютеры, мобильные телефоны, смартфоны, планшеты или планшетные компьютеры, камеры, настольные компьютеры, телевизионные приставки, телевизоры, устройства отображения, цифровые медиаплееры, игровые консоли, устройства потокового видео (например, серверы служб контента или серверы доставки контента), широковещательное приемное устройство, широковещательное передающее устройство и т.п., и могут использовать операционную систему любого типа или не использовать ее. В некоторых случаях устройство 12 источника и устройство 14 назначения могут быть оборудованы для беспроводной связи. Таким образом, устройство 12 источника и устройство 14 назначения могут быть устройствами беспроводной связи.Source device 12 and destination device 14 may include any of a wide range of devices, including any kind of portable or stationary devices, such as laptops or laptops, mobile phones, smartphones, tablets or tablet computers, cameras, desktop computers, set-top boxes, televisions, display devices, digital media players, game consoles, video streaming devices (such as content service servers or content delivery servers), broadcast receiver, broadcast transmitter, etc., and may or may not use any type of operating system . 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.

В некоторых случаях система кодирования видео, проиллюстрированная на фиг. 1, является просто примером, и способы настоящего изобретения могут применяться к настройкам кодирования видео (например, кодирование видео или декодирование видео), которые не обязательно включают в себя обмен данными между устройствами кодирования и декодирования. В других примерах данные извлекаются из локальной памяти, передаются в потоковом режиме по сети и т.п. Устройство кодирования видео может кодировать и сохранять данные в памяти, и/или устройство декодирования видео может извлекать и декодировать данные из памяти. В некоторых примерах кодирование и декодирование выполняется устройствами, которые не обмениваются данными друг с другом, а просто кодируют данные в память и/или извлекают и декодируют данные из памяти.In some cases, the video coding system illustrated in FIG. 1 is merely an example, and the methods of the present invention can be applied to video coding settings (eg, video coding or video decoding) that do not necessarily involve communication between encoding and decoding devices. In other examples, data is retrieved from local memory, streamed over a network, and the like. The video encoding device may encode and store data in memory, and/or the video decoder may retrieve and decode data from 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.

На фиг. 2 показана схематическая/концептуальная блок-схема примерного видеокодера 20, который выполнен с возможностью реализации способов настоящего изобретения. В примере на фиг. 2 видеокодер 20 содержит блок 204 вычисления остатка, блок 206 обработки преобразования, блок 208 квантования, блок 210 обратного квантования и блок 212 обработки обратного преобразования, блок 214 восстановления, буфер 216, блок 220 контурной фильтрации, буфер 230 декодированных изображений (DPB), блок 260 обработки предсказания и блок 270 энтропийного кодирования. Блок 260 обработки предсказания может включать в себя блок 244 внешнего предсказания, блок 254 внутреннего предсказания и блок 262 выбора режима. Блок 244 внешнего предсказания может включать в себя блок оценки движения и блок компенсации движения (не показаны). Видеокодер 20, показанный на фиг. 2, также может называться гибридным видеокодером или видеокодером согласно гибридному видеокодеку.In FIG. 2 is a schematic/conceptual block diagram of an exemplary video encoder 20 that is capable of implementing the methods of the present invention. In the example in FIG. 2, video encoder 20 includes a residual calculation block 204, a transform processing block 206, a quantization block 208, an inverse quantization block and an inverse transform processing block 212, a reconstruction block 214, a buffer 216, a loop filtering block 220, a decoded picture buffer (DPB) 230, a 260 processing prediction and block 270 entropy encoding. The prediction processing unit 260 may include an inter prediction unit 244, an intra prediction unit 254, and a mode select unit 262. Inter prediction block 244 may include a motion estimator and a motion compensation block (not shown). 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 обработки предсказания и блок 270 энтропийного кодирования образуют прямой тракт сигнала кодера 20, тогда как, например, блок 210 обратного квантования, блок 212 обработки обратного преобразования, блок 214 восстановления, буфер 216, контурный фильтр 220, буфер 230 декодированных изображений (DPB), блок 260 обработки предсказания формируют обратный тракт сигнала кодера, в котором обратный тракт сигнала кодера соответствует тракту сигнала декодера (см. декодер 30 на фиг. 3).For example, the residual calculation block 204, the transform processing block 206, the quantization block 208, the prediction processing block 260, and the entropy encoding block 270 form a direct signal path of the encoder 20, while, for example, the inverse quantization block 210, the inverse transform processing block 212, block 214 recovery buffer 216, loop filter 220, decoded picture buffer (DPB) 230, prediction processor 260 form an encoder return path, in which the encoder return path corresponds to the decoder path (see decoder 30 in FIG. 3).

Кодер 20 выполнен с возможностью принимать, например, посредством ввода 202 изображения 201 или блока 203 изображения 201, например, изображения последовательности изображений, образующих видео или видеопоследовательность. Блок 203 изображения также может называться блоком текущего изображения или блоком изображения, подлежащим кодированию, и изображение 201 является текущим изображением или изображением, которое должно быть кодировано (в частности, при кодировании видео, чтобы отличать текущее изображение от других изображений, например, ранее закодированных и/или декодированные изображения одной и той же видеопоследовательности, т.е. видеопоследовательности, которая также включает в себя текущее изображение).Encoder 20 is configured to receive, for example, by input 202 of image 201 or block 203 of image 201, for example, images of a sequence of images constituting a video or video sequence. Image block 203 may also be referred to as a current image block or an image block to be encoded, and image 201 is the current image or an image to be encoded (particularly in video encoding, to distinguish the current image from other images, such as previously encoded and /or decoded pictures of the same video sequence, i.e. a video sequence that also includes the current picture).

Блок 260 обработки предсказания, также называемый блоком 260 обработки предсказания блока, выполнен с возможностью принимать или получать блок 203 (текущий блок 203 текущего изображения 201) и данные восстановленного изображения, например, опорных выборок одного и того же (текущего) изображения из буфера 216 и/или данных 231 опорного изображения из одного или множества ранее декодированных изображений из буфера 230 декодированных изображений и обрабатывать эти данные для предсказания, то есть, обеспечить блок 265 предсказания, который может быть блоком 245 внешнего предсказания или блоком 255 внутреннего предсказания.The prediction processing unit 260, also referred to as the block prediction processing unit 260, is configured to receive or obtain a block 203 (the current block 203 of the current image 201) and reconstructed image data, such as reference samples of the same (current) image from the buffer 216 and /or reference picture data 231 from one or a plurality of previously decoded pictures from decoded picture buffer 230 and process the data for prediction, i.e., provide prediction block 265, which may be inter prediction block 245 or intra prediction block 255.

Блок 262 выбора режима может быть выполнен с возможностью выбирать режим предсказания (например, режима внутреннего или внешнего предсказания) и/или соответствующий блок 245 или 255 предсказания, который будет использоваться в качестве блока 265 предсказания для вычисления остаточного блока 205 и для восстановления восстановленного блока 215.Mode selector 262 may be configured to select a prediction mode (e.g., intra or inter prediction mode) and/or a corresponding predictor 245 or 255 to be used as predictor 265 to calculate residual block 205 and to recover reconstructed block 215 .

Варианты осуществления блока 262 выбора режима могут быть выполнены с возможностью выбирать режим предсказания (например, из тех, которые поддерживаются блоком 260 обработки предсказания), который обеспечивает наилучшее совпадение или, другими словами, минимальный остаток (минимальный остаток означает лучшее сжатие для передачи или хранения) или минимальные накладные расходы на сигнализацию (минимальные накладные расходы на сигнализацию означают лучшее сжатие для передачи или хранения), или который учитывает или уравновешивает и то, и другое. Блок 262 выбора режима может быть выполнен с возможностью определять режим предсказания на основании оптимизации искажения скорости (RDO), то есть, выбор режима предсказания, который обеспечивает оптимизацию искажения с минимальной скоростью, или какое ассоциированное искажение скорости, по меньшей мере, удовлетворяет критерию выбора режима предсказания.Embodiments of mode selector 262 may be configured to select a prediction mode (e.g., from those supported by prediction processor 260) that provides the best match, or in other words, minimum residual (minimum residual means better compression for transmission or storage) or minimal signaling overhead (minimum signaling overhead means better compression for transmission or storage), or which takes into account or balances both. The mode selector 262 may be configured to determine a prediction mode based on rate distortion optimization (RDO), i.e., selection of a prediction mode that provides minimum rate distortion optimization, or which associated rate distortion at least satisfies the mode selection criteria. predictions.

Блок 254 внутреннего предсказания дополнительно выполнен с возможностью определять на основании параметра внутреннего предсказания, например, выбранный режим внутреннего предсказания, блок 255 внутреннего предсказания. В любом случае, после выбора режима внутреннего предсказания для блока, блок 254 внутреннего предсказания также выполнен с возможностью предоставлять параметр внутреннего предсказания, то есть, информацию, указывающую выбранный режим внутреннего предсказания для блока в блок 270 энтропийного кодирования. В одном примере блок 254 внутреннего предсказания может быть выполнен с возможностью выполнять любую комбинацию способов внутреннего предсказания, описанных ниже.The intra prediction block 254 is further configured to determine, based on the intra prediction parameter, for example, the selected intra prediction mode, the intra prediction block 255 . In any case, after selecting the intra prediction mode for the block, the intra prediction block 254 is also configured to provide an intra prediction parameter, that is, information indicating the selected intra prediction mode for the block, to the entropy encoding block 270 . In one example, intra predictor 254 may be configured to perform any combination of the intra prediction methods described below.

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

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

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

Варианты осуществления видеокодера, показанные на фиг. 2, могут быть дополнительно выполнены с возможностью разделять и/или кодировать изображение с использованием сегментов (также называемых сегментами видео), в котором изображение может быть разделено или закодировано с использованием одного или нескольких сегментов (обычно без перекрытия), и каждый сегмент может содержать один или несколько блоков (например, CTUs).The video encoder embodiments shown in FIG. 2 may be further configured to split and/or encode an image using segments (also referred to as video segments), in which an image may be split or encoded using one or more segments (typically without overlap), and each segment may contain one or multiple units (eg CTUs).

Варианты осуществления видеокодера, показанные на фиг. 2, могут быть дополнительно выполнены с возможностью разделять и/или кодировать изображение с использованием групп плиток (также называемых группами плиток) и/или плиток (также называемых плитками), в котором изображение может быть разделено или закодировано с использованием одной или нескольких групп плиток (обычно не перекрывающихся), и каждая группа плиток может содержать, например, один или несколько блоков (например, CTUs) или одна или несколько плиток, в котором каждая плитка, например, может иметь прямоугольную форму и может содержать один или несколько блоков (например, CTUs), например, полные или дробные блоки.The video encoder embodiments shown in FIG. 2 may be further configured to partition and/or encode an image using tile groups (also referred to as tile groups) and/or tiles (also referred to as tiles), in which an image may be partitioned or encoded using one or more tile groups ( usually non-overlapping) and each tile group may contain, for example, one or more blocks (eg, CTUs) or one or more tiles, in which each tile, for example, may be rectangular in shape and may contain one or more blocks (eg, CTUs), such as full or fractional blocks.

Фиг. 3 показывает примерный видеодекодер 30, который выполнен с возможностью выполнять способы настоящего изобретения. Видеодекодер 30, выполненный с возможностью принимать кодированные данные 21 изображения (например, кодированного битового потока), например, кодируемые кодером 100, чтобы получить декодированное изображение 131. Во время процесса декодирования видеодекодер 30 принимает видеоданные, например, закодированный битовый поток видео, который представляет блоки изображения кодированного сегмента видео и ассоциированные элементы синтаксиса, из видеокодера 100.Fig. 3 shows an exemplary video decoder 30 that is configured to perform the methods of the present invention. Video decoder 30, configured to receive encoded image data 21 (e.g., encoded bitstream), e.g., encoded by encoder 100, to obtain decoded image 131. encoded video segment images and associated syntax elements, from video encoder 100.

В примере на фиг. 3, декодер 30 содержит блок 304 энтропийного декодирования, блок 310 обратного квантования, блок 312 обработки обратного преобразования, блок 314 восстановления (например, сумматор 314), буфер 316, контурный фильтр 320 , буфер 330 декодированного изображения и блок 360 обработки предсказания. Блок 360 обработки предсказания может включать в себя блок 344 внешнего предсказания, блок 354 внутреннего предсказания и блок 362 выбора режима. Видеодекодер 30 может, в некоторых примерах, выполнять этап декодирования, как правило, обратный этапу кодирования, описанному применительно к видеокодеру 20 на фиг. 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 processor 314 (e.g., an adder 314), a buffer 316, a loop filter 320, a decoded image buffer 330, and a prediction processor 360. The prediction processing block 360 may include an inter prediction block 344, an intra prediction block 354, and a mode selection block 362. Video decoder 30 may, in some examples, perform a decoding step, generally the reverse of the encoding step described with respect to video encoder 20 in FIG. 2.

Блок 304 энтропийного декодирования выполнен с возможностью выполнять энтропийное декодирование кодированных данных 21 изображения для получения, например, квантованных коэффициентов 309 и/или декодированных параметров кодирования (не показаны на фиг. 3), например, (декодированный) любой или все параметры внешнего предсказания, параметр внутреннего предсказания, параметры контурного фильтра и/или другие элементы синтаксиса. Блок 304 энтропийного декодирования дополнительно выполнен с возможностью пересылать параметры внешнего предсказания, параметр внутреннего предсказания и/или другие элементы синтаксиса в блок 360 обработки предсказания. Видеодекодер 30 может принимать элементы синтаксиса на уровне сегмента видео и/или уровне блока видео.The entropy decoding unit 304 is configured to perform entropy decoding of the encoded image data 21 to obtain, for example, quantized coefficients 309 and/or decoded coding parameters (not shown in FIG. 3), such as (decoded) any or all of the inter prediction parameters, parameter intra prediction, loop filter parameters, and/or other syntax elements. The entropy decoding block 304 is further configured to forward the inter prediction parameters, the intra prediction parameter, and/or other syntax elements to the prediction processing block 360 . Video decoder 30 may receive syntax elements at a video segment level and/or a video block level.

Блок 310 обратного квантования может быть идентичен по функциям блоку 110 обратного квантования, блок 312 обработки обратного преобразования может быть идентичен по функциям блоку 112 обработки обратного преобразования, блок 314 восстановления может быть идентичным блоку 114 восстановления, буфер 316 может быть идентичен по функциям буферу 116, контурный фильтр 320 может быть идентичен по функциям контурному фильтру 120, и буфер 330 декодированного изображения может быть идентичен по функции буферу 130 декодированного изображения.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 112, the reconstruction block 314 may be identical to the reconstruction block 114, the buffer 316 may be identical in function to the buffer 116, loop filter 320 may be identical in function to loop filter 120, and decoded image buffer 330 may be identical in function to decoded image buffer 130.

Блок 360 обработки предсказания может содержать блок 344 внешнего предсказания и блок 354 внутреннего предсказания, в котором блок 344 внешнего предсказания может аналогичен блоку 144 внешнего предсказания по функциям, и блок 354 внутреннего предсказания может функционально соответствовать блоку 154 внутреннего предсказания. Блок 360 обработки предсказания обычно выполнен с возможностью выполнять предсказание блока и/или получать блок 365 предсказания из закодированных данных 21, а также для приема или получения (явно или неявно) ассоциированных с предсказанием параметров и/или информации о выбранном режиме предсказания, например, из блока 304 энтропийного декодирования.Prediction processing block 360 may comprise inter prediction block 344 and intra prediction block 354, in which inter prediction block 344 may be similar in function to inter prediction block 144, and intra prediction block 354 may functionally correspond to intra prediction block 154. Prediction processing unit 360 is typically configured to perform block prediction and/or obtain prediction block 365 from encoded data 21, and to receive or obtain (explicitly or implicitly) prediction-associated parameters and/or information about the selected prediction mode, for example, from block 304 entropy decoding.

Когда сегмент видео кодируется как сегмент с внутренним кодированием (I), блок 354 внутреннего предсказания блока 360 обработки предсказания выполнен с возможностью генерировать блок 365 предсказания для блока изображения текущего сегмента видео на основании сигнального режима внутреннего предсказания и данных из ранее декодированных блоков текущего кадра или изображения. Когда видеокадр кодируется как кодированный в режиме внешнего предсказания (то есть, B или P) сегмент, блок 344 внешнего предсказания (например, блок компенсации движения) блока 360 обработки предсказания выполнен с возможностью генерировать блок 365 предсказания для блока видео текущего сегмента видео на основании векторов движения и других элементов синтаксиса, принятых из блока 304 энтропийного декодирования. Для внешнего предсказания блоки предсказания могут быть сгенерированы из одного из опорных изображений в одном из списков опорных изображений. Видеодекодер 30 может составить списки опорных кадров, список 0 и список 1, используя способы построения по умолчанию на основе опорных изображений, хранящихся в DPB 330.When a video segment is encoded as an intra (I) segment, the intra prediction block 354 of the prediction processing block 360 is configured to generate a prediction block 365 for a picture block of the current video segment based on the intra prediction signaling mode and data from previously decoded blocks of the current frame or picture. . When a video frame is encoded as an inter prediction (i.e., B or P) encoded segment, the inter prediction block 344 (e.g., motion compensation block) of the prediction processing block 360 is configured to generate a prediction block 365 for the video block of the current video segment based on the vectors motion and other syntax elements received from block 304 entropy decoding. For inter prediction, prediction blocks may be generated from one of the reference pictures in one of the reference picture lists. Video decoder 30 may construct the reference frame lists, list 0 and list 1, using default construction methods based on the reference pictures stored in the DPB 330.

Блок 360 обработки предсказания выполнен с возможностью определять информацию предсказания для блока видео текущего сегмента видео путем анализа векторов движения и других элементов синтаксиса и использует информацию предсказания для формирования блоков предсказания для текущего декодируемого блока видео. Например, блок 360 обработки предсказания использует некоторые из принятых элементов синтаксиса для определения режима предсказания (например, внутреннее или внешнее предсказание), используемого для кодирования блоков видео сегмента видео, типа сегмента внешнего предсказания (например, B-сегмент, P-сегмент или GPB-сегмент), информации о структуре одного или нескольких списков опорных изображений для сегмента, векторов движения для каждого кодированного внешним предсказанием блока видео сегмента, статуса внешнего предсказания для каждого кодированного внешним предсказанием блока видео сегмента и другую информацию для декодирования блоков видео в текущем сегменте видео.The prediction processing unit 360 is configured to determine prediction information for the video block of the current video segment by analyzing motion vectors and other syntax elements, and uses the prediction information to generate prediction blocks for the current video block being decoded. For example, prediction processing unit 360 uses some of the received syntax elements to determine the prediction mode (eg, intra or inter prediction) used to encode the video blocks of a video segment, the inter prediction segment type (eg, B-segment, P-segment, or GPB- segment), structure information of one or more reference picture lists for the segment, motion vectors for each inter-prediction coded video block segment, inter prediction status for each inter-prediction coded video block of the segment, and other information for decoding video blocks in the current video segment.

Блок 310 обратного квантования выполнен с возможностью обратного квантования, то есть, деквантования квантованных коэффициентов преобразования, предоставленных в битовом потоке и декодированных блоком 304 энтропийного декодирования. Процесс обратного квантования может включать в себя использование параметра квантования, вычисленного видеокодером 100 для каждого блока видео в сегменте видео для определения степени квантования и, аналогично, степени обратного квантования, которое должно применяться.The inverse quantizer 310 is configured to inverse quantize, that is, dequantize the quantized transform coefficients provided in the bitstream and decoded by the entropy decoder 304 . The inverse quantization process may include using a quantization parameter calculated by video encoder 100 for each video block in a video segment to determine the amount of quantization, and likewise, the amount of inverse quantization to be applied.

Блок 312 обработки обратного преобразования выполнен с возможностью применять обратное преобразование, например, обратное DCT, обратное целочисленное преобразование или концептуально аналогичный процесс обратного преобразования, к коэффициентам преобразования для формирования остаточных блоков в области пикселей.The inverse transform processing unit 312 is configured to apply an inverse transform, such as an inverse DCT, an inverse integer transform, or a conceptually similar inverse transform process, to the transform coefficients to generate residual blocks in the pixel region.

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

Блок 320 контурного фильтра (либо в контуре кодирования, либо после контура кодирования) выполнен с возможностью фильтрации восстановленного блока 315 для получения отфильтрованного блока 321, например, для сглаживания переходов пикселей или иного улучшения качества видео. В одном примере блок 320 контурного фильтра может быть выполнен с возможностью выполнять любую комбинацию способов фильтрации, описанных ниже. Блок 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. In one example, the loop filter unit 320 may be configured to perform any combination of the filtering methods described below. The loop filter block 320 is designed to represent one or more loop filters, such as a deblocking filter, an adaptive offset (SAO) filter, or other filters, such as a two-sided filter or an adaptive loop filter (ALF), or sharpening or anti-aliasing filters, or collaborative filters. Although the loop filter unit 320 is shown in FIG. 3 as a loop filter, in other configurations, the loop filter unit 320 may be implemented as a post loop filter.

Декодированные блоки 321 видео в данном кадре или изображении затем сохраняются в буфере 330 декодированного изображения, в котором хранятся опорные изображения, используемые для последующей компенсации движения.The decoded video blocks 321 in a given frame or picture are then stored in the decoded picture buffer 330, which stores reference pictures used for subsequent motion compensation.

Декодер 30 выполнен с возможностью выводить декодированное изображение 331, например, через выход 332 для представления или просмотра пользователю.The decoder 30 is configured to output the decoded image 331, for example, through the output 332 for presentation or viewing to the user.

Другие варианты видеодекодера 30 могут использоваться для декодирования сжатого битового потока. Например, декодер 30 может формировать выходной видеопоток без блока 320 контурного фильтра. Например, декодер 30 без преобразования может выполнять обратное квантование остаточного сигнала непосредственно без блока 312 обработки обратного преобразования для определенных блоков или кадров. В другой реализации видеодекодер 30 может иметь блок 310 обратного квантования и блок 312 обработки обратного преобразования, объединенные в один блок.Other variants of video decoder 30 may be used to decode the compressed bitstream. For example, decoder 30 may generate an output video stream without loop filter block 320 . For example, no transform decoder 30 may perform inverse quantization of the residual signal directly without inverse transform processing unit 312 for certain 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.

Варианты осуществления видеодекодера, показанные на фиг. 3, могут быть выполнены с возможностью разделять и/или декодировать изображение с использованием сегментов (также называемых сегментами видео), в котором изображение может быть разделено на или декодировано с использованием одного или нескольких сегментов (обычно без перекрытия), и каждый сегмент может содержать один или несколько блоков (например, CTUs).The video decoder embodiments shown in FIG. 3 may be configured to split and/or decode an image using segments (also referred to as video segments), in which the image may be divided into or decoded using one or more segments (typically without overlap), and each segment may contain one or multiple units (eg CTUs).

Варианты осуществления видеодекодера, показанные на фиг. 3, могут быть выполнены с возможностью разделять и/или декодировать изображение с использованием групп плиток (также называемых группами плиток) и/или плиток (также называемых плитками), в котором изображение может быть разделено на или декодировано с использованием одной или нескольких групп плиток (обычно не перекрывающихся), и каждая группа плиток может содержать, например, один или несколько блоков (например, CTUs) или одна или несколько плиток, в котором каждая плитка, например может иметь прямоугольную форму и может содержать один или несколько блоков (например, CTUs), например, полные или дробные блоки.The video decoder embodiments shown in FIG. 3 may be configured to partition and/or decode an image using tile groups (also referred to as tile groups) and/or tiles (also referred to as tiles), in which the image may be partitioned 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, CTUs) or one or more tiles, in which each tile, for example, may have a rectangular shape and may contain one or more blocks (for example, CTUs ), such as full or fractional blocks.

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

Согласно стандарту HEVC/H.265 доступно 35 режимов внутреннего предсказания. Как показано на фиг. 4, этот набор содержит следующие режимы: планарный режим (индекс режима внутреннего предсказания равен 0), режим DC (индекс режима внутреннего предсказания равен 1) и направленные (угловые) режимы, которые охватывают диапазон 180° и имеют диапазон значений индекса режима внутреннего предсказания от 2 до 34, как показано черными стрелками на фиг. 4. Для захвата произвольных направлений краев, присутствующих в естественном видео, количество направленных внутренних режимов расширено с 33, как используется в HEVC, до 65. Дополнительный направленный режимы обозначены пунктирными стрелками на фиг. 4, и планарный режим и DC режим остаются неизменными. Стоит отметить, что диапазон, охватываемый режимами внутреннего предсказания, может быть шире 180°. В частности, 62 режима направленности со значениями индекса от 3 до 64 покрывают диапазон приблизительно 230°, т.е. несколько пар режимов имеют противоположную направленность. В случае опорной модели HEVC (HM) и платформ JEM только одна пара угловых режимов (а именно, режимы 2 и 66) имеет противоположную направленность, как показано на фиг. 4. Для построения предиктора обычные угловые режимы используют опорные выборки и (при необходимости) фильтруют их для получения предиктора выборки. Количество опорных выборок, необходимых для построения предиктора, зависит от длины фильтра, используемого для интерполяции (например, билинейные и кубические фильтры имеют длину 2 и 4, соответственно).According to the HEVC/H.265 standard, 35 intra prediction modes are available. As shown in FIG. 4, this set contains the following modes: planar mode (intra prediction mode index is 0), DC mode (intra prediction mode index is 1), and directional (angular) modes that cover a range of 180° and have a range of intra prediction mode index values from 2 to 34 as shown by the black arrows in FIG. 4. To capture arbitrary edge directions present in natural video, the number of directional intrinsic modes has been expanded from 33 as used in HEVC to 65. Additional directional modes are indicated by dotted arrows in FIG. 4, and planar mode and DC mode remain unchanged. It is worth noting that the range covered by the intra prediction modes may be wider than 180°. In particular, 62 directivity modes with index values from 3 to 64 cover a range of approximately 230°, i.e. several pairs of modes have opposite directions. In the case of the HEVC reference model (HM) and JEM platforms, only one pair of angle modes (namely, modes 2 and 66) is opposing, as shown in FIG. 4. To construct a predictor, conventional angular modes use reference samples and (if necessary) filter them to obtain a sample predictor. The number of reference samples required to construct a predictor depends on the length of the filter used for interpolation (for example, bilinear and cubic filters have lengths of 2 and 4, respectively).

Схемы кодирования видео, такие как H.264 / AVC и HEVC, разработаны на основе успешного принципа гибридного кодирования видео на основе блоков. Используя этот принцип, изображение сначала разделяется на блоки и затем каждый блок предсказывается с использованием внутреннего или внешнего предсказания.Video coding schemes such as H.264/AVC and HEVC are developed based on the successful block-based hybrid video coding principle. Using this principle, the image is first divided into blocks and then each block is predicted using intra or inter prediction.

Несколько стандартов кодирования видео, начиная с H.261, принадлежат к группе «гибридных видеокодеков с потерями» (т.е. объединяют пространственное и временное предсказание в области выборки и кодирование с двумерным преобразованием для применения квантования в области преобразования). Каждое изображение видеопоследовательности обычно разделяется на набор неперекрывающихся блоков, и кодирование обычно выполняется на уровне блоков. Другими словами, в кодере видео обычно обрабатывается, т.е. кодируется, на уровне блока (блока изображения), например, используя пространственное (внутреннее изображение) предсказание и временное (внешнее изображение) предсказание для генерирования блока предсказания, вычитание блока предсказания из текущего блока (блок, который в настоящее время обрабатывается / должен быть обработан) для получения остаточного блока, преобразование остаточного блока и квантование остаточного блока в области преобразования для уменьшения объема данных, которые должны быть переданы (сжаты), тогда как для восстановления текущего блока для представления в декодере частично применяется обратная обработка по сравнению с кодером к закодированному или сжатому блоку. Кроме того, кодер дублирует цикл обработки декодера, так что оба будут генерировать идентичные предсказания (например, внутреннее и внешнее предсказание) и/или восстановления для обработки, то есть, кодирование последующих блоков.Several video coding standards, starting with H.261, belong to the group of "hybrid lossy video codecs" (ie, combine spatial and temporal sample-domain prediction and 2D transform coding 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, i.e. encoded, at the block (image block) level, for example, using spatial (inner image) prediction and temporal (outer image) prediction to generate a prediction block, subtracting the prediction block from the current block (the block currently being processed / to be processed) to obtain the residual block, transforming the residual block and quantizing the residual block in the transform domain to reduce the amount of data that must be transmitted (compressed), while in order to restore the current block for presentation in the decoder, inverse processing is partially applied compared to the encoder to the encoded or compressed block. In addition, the encoder duplicates the decoder's processing cycle so that both will generate identical predictions (eg, intra and inter prediction) and/or reconstructions for processing, i.e., encoding subsequent blocks.

Используемый в настоящем описании термин «блок» может относиться к части изображения или кадра. Для удобства описания варианты осуществления настоящего изобретения описаны здесь со ссылкой на высокоэффективное кодирование видео (HEVC) или опорное программное обеспечение универсального кодирования видео (VVC), разработанное объединенной группой сотрудничества по кодированию видео (JCT-VC) группы экспертов ITU-T по кодированию видео (VCEG) и группы экспертов ISO/IEC по движущимся изображениям (MPEG). Обычный специалист в данной области техники поймет, что варианты осуществления настоящего изобретения не ограничиваются HEVC или VVC. Оно может относиться к CU, PU и TU. В HEVC CTU разделяется на CUs с использованием структуры дерева квадратов, обозначаемой как дерево кодирования. Решение о том, кодировать ли область изображения с использованием внешнего (временного) или внутреннего (пространственного) предсказания, принимается на уровне CU. Каждый CU может быть дополнительно разделен на один, два или четыре PUs в соответствии с типом разделения PU. Внутри одного PU применяется тот же процесс предсказания, и соответствующая информация передается в декодер на основе PU. После получения остаточного блока путем применения процесса предсказания на основе типа разделения PU, CU может быть разделен на блоки преобразования (TUs) в соответствии с другой структурой дерева квадрантов, аналогичной дереву кодирования для CU. В новейших разработках технологии сжатия видео для разделения блока кодирования используется кадр разделения с использованием четырехугольного и двоичного дерева (QTBT). В блочной структуре QTBT CU может иметь квадратную или прямоугольную форму. Например, блок дерева кодирования (CTU) сначала разделяется структурой дерева квадрантов. Листовые узлы дерева квадрантов дополнительно разделяются структурой двоичного дерева. Листовые узлы двоичного дерева называются блоками кодирования (CU), и эта сегментация используется для предсказания и обработки преобразования без какого-либо дальнейшего разделения. Это означает, что CU, PU и TU имеют одинаковый размер блока в структуре блока кодирования QTBT. Параллельно с блочной структурой QTBT было предложено также использовать множественное разделение, например, разделение на тройное дерево.As used herein, the term "block" may refer to a portion of an image or frame. For convenience of description, embodiments of the present invention are described herein with reference to High Efficiency Video Coding (HEVC) or Universal Video Coding (VVC) reference software developed by the Joint Collaborative Video Coding Group (JCT-VC) of the ITU-T Video Coding Expert Group ( VCEG) and the ISO/IEC Moving Picture Expert Group (MPEG). One of ordinary skill in the art will appreciate that embodiments of the present invention are not limited to HEVC or VVC. It may refer to CU, PU and TU. In HEVC, the CTU is divided into CUs using a square tree structure referred to as a coding tree. The decision as to whether to encode an image area using extrinsic (temporal) or intrinsic (spatial) prediction is made at the CU level. Each CU may be further partitioned into one, two or four PUs according to the partition type of the PU. Within one PU, the same prediction process is applied and the corresponding information is transmitted to the decoder based on the PU. After obtaining a residual block by applying a prediction process based on the partition type of the PU, the CU may be divided into transform units (TUs) according to a different quadtree structure similar to the coding tree for the CU. The latest developments in video compression technology use Quad Binary Tree (QTBT) Split Frame to split the coding block. In the block structure of QTBT, the CU can be square or rectangular. For example, a coding tree unit (CTU) is first divided by a quadtree structure. The leaf nodes of the quadtree are further separated by a binary tree structure. The leaf nodes of a binary tree are called coding units (CUs) and this segmentation is used to predict and process the transformation without any further separation. This means that CU, PU and TU have the same block size in the QTBT coding block structure. In parallel with the block structure of QTBT, it has also been proposed to use multiple partitioning, such as ternary tree partitioning.

ITU-T VCEG (Q6/16) и ISO/IEC MPEG (JTC 1/SC 29/WG 11) изучают потенциальную потребность в стандартизации будущей технологии кодирования видео с возможностью сжатия, которая значительно превосходит возможности текущего стандарта HEVC (включающего в себя его текущие расширения и краткосрочные расширения для кодирования содержимого экрана и кодирования с высоким динамическим диапазоном). Группы работают вместе над этой исследовательской деятельностью в рамках совместной работы, известной как Joint Video Exploration Team (JVET), для оценки проектов технологий сжатия, предложенных их экспертами в этой области.ITU-T VCEG (Q6/16) and ISO/IEC MPEG (JTC 1/SC 29/WG 11) are exploring the potential need to standardize a future compressible video coding technology that far exceeds the capabilities of the current HEVC standard (including its current extensions and short-term extensions for screen content encoding and high dynamic range encoding). The groups work together on this research activity in a collaborative effort known as the Joint Video Exploration Team (JVET) to evaluate compression technology designs proposed by their experts in the field.

VTM (универсальная тестовая модель) использует 35 внутренних режимов, тогда как BMS (набор опорных значений) использует 67 внутренних режимов. Для кодирования 67 внутренних режимов текущая схема кодирования внутреннего режима в BMS использует следующий способ:VTM (Universal Test Model) uses 35 internal modes while BMS (Reference Value Set) uses 67 internal modes. To encode the 67 internal modes, the current internal mode coding scheme in BMS uses the following method:

вместить увеличенное количество направленных внутренних режимов в BMS, используется способ кодирования внутреннего режима с 6 наиболее вероятными режимами (MPMs). Используются два основных технических аспекта:to accommodate an increased number of directional intra modes in the BMS, an intra mode coding method with 6 most likely modes (MPMs) is used. Two main technical aspects are used:

1) получение 6 MPMs, и1) getting 6 MPMs, and

2) энтропийное кодирование 6 MPMs и не-MPM режимов.2) entropy encoding of 6 MPMs and non-MPM modes.

В BMS, режимы, содержащиеся в MPM списках, подразделяются на три группы: внутренние режимы соседа, полученные внутренние режимы и внутренние режимы по умолчанию.In BMS, the modes contained in the MPM lists are divided into three groups: neighbor inner modes, learned inner modes, and default inner modes.

Для формирования MPM списка используются пять соседних режимов внутреннего предсказания. Эти местоположения 5 соседних блоков такие же, как и те, которые используются в режиме слияния, то есть, слева (L), вверху (A), внизу слева (BL), вверху справа (AR) и вверху слева (AL), как показано на фиг. 5. Исходный MPM список формируется путем вставки 5 внутренних режимов соседа, планарного режима и DC режима в MPM список. Для удаления дублированных режимов используется процесс сокращения, так что в MPM список включаются только уникальные режимы. Порядок включения исходных режимов: левый, верхний, плоский, DC, нижний левый, верхний правый и верхний левый.Five adjacent intra prediction modes are used to form the MPM list. These 5 neighboring block locations are the same as those used in merge mode, i.e., left (L), top (A), bottom left (BL), top right (AR), and top left (AL) as shown in FIG. 5. The original MPM list is formed by inserting 5 internal neighbor modes, planar mode and DC mode into the MPM list. A pruning process is used to remove duplicate modes so that only unique modes are included in the MPM list. The order in which the original modes are enabled is Left, Top, Flat, DC, Bottom Left, Top Right, and Top Left.

Если MPM список не полон (т.е. имеет менее 6 кандидатов MPMs в списке), добавляются полученные режимы, эти внутренние режимы получаются путем добавления -1 или +1 к угловым режимам, которые уже находятся в MPM списке. Операция получения применяется к неугловым режимам, то есть, DC или планарным.If the MPM list is incomplete (i.e. has less than 6 candidate MPMs in the list), learned modes are added, these internal modes are obtained by adding -1 or +1 to the angular modes already in the MPM list. The receive operation applies to non-angular modes, that is, DC or planar.

Наконец, если MPM список все еще не завершен, режимы по умолчанию добавляются в следующем порядке: вертикальный, горизонтальный, внутренний режим 2 и диагональный режим. В результате этого процесса генерируется уникальный список из 6 MPM режимов.Finally, if the MPM list is still incomplete, default modes are added in the following order: vertical, horizontal, inner mode 2, and diagonal mode. As a result of this process, a unique list of 6 MPM modes is generated.

Для энтропийного кодирования 6 MPMs используется усеченная унарная бинаризация MPMs. Первые три бина кодируются контекстами, которые зависят от MPM режима, связанного с переедаемым в данный момент времени бином. MPM режим подразделяется на одну из трех категорий: (a) относится ли режим к горизонтальному (MPM режим меньше или равен диагональному направлению), (b) вертикальному (MPM режим больше, чем диагональное направление) или (с) неугловому (DC и планарный) классу. Соответственно, для сигнализации MPM индекса используются три контекста.For entropy encoding of 6 MPMs, a truncated unary binarization of MPMs is used. The first three bins are encoded with contexts that depend on the MPM of the mode associated with the currently overfed bin. MPM mode falls into one of three categories: (a) whether the mode is horizontal (MPM mode is less than or equal to the diagonal direction), (b) vertical (MPM mode is greater than the diagonal direction), or (c) non-angular (DC and planar) class. Accordingly, three contexts are used to signal the MPM index.

Кодирование оставшегося 61 не-MPMs выполняется следующим образом. 61 не-MPMs сначала делятся на два набора: набор выбранных режимов и набор невыбранных режимов. Набор выбранных режимов содержит 16 режимов и остальные (45 режимов) назначены набору невыбранных режимов. Набор режимов, которому принадлежит текущий режим, указывается в битовом потоке с помощью флага. Затем режим из выбранного набора сигнализируется 4-битным кодом фиксированной длины и режим из невыбранного набора кодируется усеченным двоичным кодом. Набор выбранных режимов генерируется путем подвыборкой всего 61 не-MPM режимов со следующими индексами:The coding of the remaining 61 non-MPMs is performed as follows. The 61 non-MPMs are first divided into two sets: a set of selected modes and a set of unselected modes. The set of selected modes contains 16 modes and the rest (45 modes) are assigned to the set of unselected modes. The set of modes to which the current mode belongs is indicated in the bitstream with a flag. The mode from the selected set is then signaled with a 4-bit fixed length code, and the mode from the unselected set is encoded with a truncated binary code. The set of selected modes is generated by subsampling a total of 61 non-MPM modes with the following indices:

Набор выбранных режимов = {0, 4, 8, 12, 16, 20… 60}Set of selected modes = {0, 4, 8, 12, 16, 20… 60}

Набор невыбранных режимов = {1, 2, 3, 5, 6, 7, 9, 10… 59}Set of unselected modes = {1, 2, 3, 5, 6, 7, 9, 10… 59}

В таблице 1 представлен обзор различных механизмов сигнализации в INTRA режиме.Table 1 provides an overview of the various signaling mechanisms in INTRA mode.

Таблица 1. Текущая сигнализация LUMA в режиме Intra в BMSTable 1. Current LUMA signaling in Intra mode in BMS

Режимы внутреннего предсказанияIntra prediction modes MPM флагMPM flag Выбранный флагChosen Flag Бин-строкаBean string MPM режимы (6)MPM modes (6) 1one 00 10ten 110110 11101110 1111011110 1111111111 Выбранные режимы (16)Selected modes (16) 00 1one 4-битовый код фиксированной длины 4-bit fixed length code Невыбранные режимы (45)Unselected modes (45) 00 00 Усеченный двоичный кодTruncated Binary

В другом примере используется способ кодирования в INTRA режиме с 3 наиболее вероятными режимами (MPMs). В примере элементы синтаксиса intra_luma_mpm_flag [x0] [y0], intra_luma_mpm_idx [x0] [y0] и intra_luma_mpm_remainder [x0] [y0] определяют режим внутреннего предсказания для выборок яркости. Индексы x0, y0 массива определяют местоположение (x0, y0) верхней левой выборки яркости рассматриваемого блока предсказания относительно верхней левой выборки яркости изображения. Когда intra_luma_mpm_flag [x0] [y0] равно 1, режим внутреннего предсказания выводится из соседнего блока внутреннего предсказания.In another example, an INTRA mode coding method with 3 most likely modes (MPMs) is used. In the example, the syntax elements intra_luma_mpm_flag[x0][y0], intra_luma_mpm_idx[x0][y0], and intra_luma_mpm_remainder[x0][y0] define the intra-prediction mode for luma samples. The array indices x0, y0 define the location (x0, y0) of the top left luma sample of the prediction block in question, relative to the top left luma sample of the image. When intra_luma_mpm_flag [x0] [y0] is equal to 1, the intra prediction mode is output from the adjacent intra prediction block.

Внутренне предсказание для текущего блока (IntraPredModeY [xPb] [yPb]) получается с помощью следующих упорядоченных этапов:The intra prediction for the current block (IntraPredModeY [xPb] [yPb]) is obtained using the following ordered steps:

• Соседние местоположения (xNbA, yNbA) и (xNbB, yNbB) устанавливаются равными (xPb - 1, yPb) и (xPb, yPb - 1), соответственно.• Neighbor locations (xNbA, yNbA) and (xNbB, yNbB) are set to (xPb - 1, yPb) and (xPb, yPb - 1), respectively.

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

• Процесс определения доступности для блока выполняется с использованием местоположения (xCurr, yCurr), установленным равным (xPb, yPb), и соседним местоположением (xNbY, yNbY), установленным равным (xNbX, yNbX), в качестве входных данных, и выводные данные указывают доступность availableX.• The block availability determination process is performed using a location (xCurr, yCurr) set to (xPb, yPb) and an adjacent location (xNbY, yNbY) set to (xNbX, yNbX) as input, and the output indicates availableX availability.

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

Если выполняется одно или несколько из следующих условий, candIntraPredModeX устанавливается равным INTRA_DC:If one or more of the following conditions are true, candIntraPredModeX is set to INTRA_DC:

o Переменная availableX равна FALSE.o AvailableX is FALSE.

o CuPredMode [xNbX] [yNbX] не равно MODE_INTRA.o CuPredMode [xNbX] [yNbX] is not equal to MODE_INTRA.

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

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

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

Если CandIntraPredModeB равен candIntraPredModeA, применяется следующее:If CandIntraPredModeB is equal to candIntraPredModeA, the following applies:

o Если candIntraPredModeA меньше 2 (т.е. равно INTRA_PLANAR или INTRA_DC), candModeList [x] с x = 0..2 выводится следующим образом:o If candIntraPredModeA is less than 2 (i.e. equal to INTRA_PLANAR or INTRA_DC), candModeList[x] with x = 0..2 is output as follows:

candModeList [0] = INTRA_PLANARcandModeList[0] = INTRA_PLANAR

candModeList [1] = INTRA_DCcandModeList[1] = INTRA_DC

candModeList [2] = INTRA_ANGULAR50candModeList[2] = INTRA_ANGULAR50

o В противном случае candModeList [x] с x = 0..2 получается следующим образом:o Otherwise, candModeList [x] with x = 0..2 is obtained as follows:

candModeList [0] = candIntraPredModeAcandModeList[0] = candIntraPredModeA

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

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

В противном случае (candIntraPredModeB не равно candIntraPredModeA) применяется следующее:Otherwise (candIntraPredModeB is not equal to candIntraPredModeA), the following applies:

o candModeList [0] и candModeList [1] выводятся следующим образом:o candModeList[0] and candModeList[1] are output like this:

o candModeList [0] = candIntraPredModeAo candModeList[0] = candIntraPredModeA

o candModeList [1] = candIntraPredModeBo candModeList[1] = candIntraPredModeB

Если ни один из candModeList [0] и candModeList [1] не равен INTRA_PLANAR, candModeList [2] устанавливается равным INTRA_PLANAR,If neither of candModeList[0] and candModeList[1] is INTRA_PLANAR, candModeList[2] is set to INTRA_PLANAR,

В противном случае, если ни один из candModeList [0] и candModeList [1] не равен INTRA_DC, candModeList [2] устанавливается равным INTRA_DC,Otherwise, if neither of candModeList[0] and candModeList[1] is INTRA_DC, candModeList[2] is set to INTRA_DC,

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

• IntraPredModeY [xPb] [yPb] получается путем применения следующей процедуры:• IntraPredModeY [xPb] [yPb] is obtained by applying the following procedure:

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

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

• Массив candModeList [x], x = 0..2 модифицируется следующим образом:• Array candModeList [x], x = 0..2 is modified as follows:

Когда candModeList [0] больше, чем candModeList [1], оба значения меняются местами следующим образом:When candModeList[0] is greater than candModeList[1], both values are swapped as follows:

o (candModeList [0], candModeList [1]) = Swap (candModeList [0], candModeList [1])o(candModeList[0], candModeList[1]) = Swap(candModeList[0], candModeList[1])

o Когда candModeList [0] больше, чем candModeList [2], оба значения меняются местами следующим образом:o When candModeList[0] is greater than candModeList[2], both values are swapped as follows:

o (candModeList [0], candModeList [2]) = Swap (candModeList [0], candModeList [2])o(candModeList[0], candModeList[2]) = Swap(candModeList[0], candModeList[2])

Когда candModeList [1] больше, чем candModeList [2], оба значения меняются местами следующим образом:When candModeList[1] is greater than candModeList[2], both values are swapped as follows:

o (candModeList [1], candModeList [2]) = Swap (candModeList [1], candModeList [2]) (8 11)o (candModeList[1], candModeList[2]) = Swap(candModeList[1], candModeList[2]) (8 11)

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

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

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

В одном аспекте настоящего изобретения предоставляется упрощенный способ построения MPM списка из 6 записей.In one aspect of the present invention, a simplified method for constructing an MPM list of 6 entries is provided.

Согласно варианту осуществления, на первом этапе определяется, доступен ли левый блок текущего блока кодирования или нет. Если левый блок текущего блока кодирования доступен, режим внутреннего предсказания левого блока добавляется в MPM список. Определение того, доступен ли определенный блок, будет подробно описано ниже.According to an embodiment, in the first step, it is determined whether the left block of the current coding block is available or not. If the left block of the current coding block is available, the left block intra prediction mode is added to the MPM list. Determining whether a certain block is available will be described in detail below.

На втором этапе определяется, доступен ли верхний блок текущего блока кодирования. Если определено, что верхний блок доступен, режим внутреннего предсказания верхнего блока добавляется в MPM список.In the second step, it is determined whether the top block of the current coding block is available. If it is determined that the top block is available, the top block intra prediction mode is added to the MPM list.

Как проиллюстрировано на фиг. 5, левый блок L текущего блока кодирования (текущий блок кодирования) является соседним блоком текущего блока. Например, он расположен рядом с текущим блоком в нижней левой части текущего блока. Кроме того, верхний блок A текущего блока кодирования (текущий блок кодирования) является соседним блоком текущего блока. Например, он расположен рядом с текущим блоком в правой верхней части текущего блока.As illustrated in FIG. 5, the left block L of the current coding block (current coding block) is a neighboring block of the current block. For example, it is located next to the current block at the bottom left of the current block. In addition, the upper block A of the current coding block (current coding block) is a neighboring block of the current block. For example, it is located next to the current block at the top right of the current block.

На третьем этапе добавляется смещение к режиму внутреннего предсказания левого блока и/или к режиму внутреннего предсказания верхнего блока, при условии, что левый блок и/или верхний блок доступен и его режим является угловым режимом внутреннего предсказания. Новый режим предсказания, определенный путем добавления смещения к режиму предсказания левого и/или верхнего блока, добавляется в MPM список.The third step adds an offset to the left block intra prediction mode and/or the top block intra prediction mode, provided that the left block and/or the top block is available and its mode is the angle intra prediction mode. The new prediction mode, determined by adding an offset to the prediction mode of the left and/or top block, is added to the MPM list.

Обратите внимание, что один новый режим предсказания может быть определен путем добавления смещения к режиму предсказания левого блока, один новый режим предсказания может быть определен путем добавления смещения к режиму предсказания верхнего блока или новые режимы предсказания могут определяться путем добавления смещения к режиму предсказания левого блока и путем добавления смещения к режимам предсказания верхнего блока.Note that one new prediction mode can be defined by adding an offset to the left block prediction mode, one new prediction mode can be defined by adding an offset to the top block prediction mode, or new prediction modes can be defined by adding an offset to the left block prediction mode, and by adding an offset to the prediction modes of the upper block.

Кроме того, обратите внимание, что смещение, добавленное к режиму предсказания левого блока, может отличаться или равняться смещению, добавленному к режиму предсказания верхнего блока.Also, note that the offset added to the left block prediction mode may be different from or equal to the offset added to the top block prediction mode.

Кроме того, смещение, добавленное к режиму предсказания левого блока, и/или смещение, добавленное к режиму предсказания верхнего блока, может быть положительным или отрицательным целым числом. В частности, смещение может быть -1 или +1. Однако смещение не ограничивается +1 или -1 и может быть любым положительным или отрицательным целым числом.In addition, the offset added to the left block prediction mode and/or the offset added to the top block prediction mode may be a positive or negative integer. In particular, the offset may be -1 or +1. However, the offset is not limited to +1 or -1 and can be any positive or negative integer.

В случае, когда режимы углового предсказания представлены ограниченным числом целых чисел, добавление смещения к режиму предсказания может выполняться циклически, как подробно описано ниже в рамках другого варианта осуществления.In the case where the angular prediction modes are represented by a limited number of integers, the addition of an offset to the prediction mode may be performed cyclically, as detailed below in another embodiment.

Согласно настоящему изобретению вышеописанные первый и второй этапы не ограничиваются выполнением в описанном порядке, и второй этап может выполняться перед первым этапом.According to the present invention, the above-described first and second steps are not limited to being performed in the described order, and the second step may be performed before the first step.

Кроме того, в случае, когда доступны левый блок и верхний блок, настоящее изобретение не ограничивается добавлением смещения к режиму предсказания левого блока и добавлением результирующего нового режима предсказания к набору MPMs перед добавлением смещения в режим предсказания верхнего блока и добавлением результирующего нового режима предсказания к набору MPMs. Добавление смещения к режиму предсказания верхнего блока может быть выполнено до добавления смещения к режиму предсказания левого блока.In addition, in the case where the left block and the top block are available, the present invention is not limited to adding an offset to the left block prediction mode and adding the resulting new prediction mode to the set of MPMs before adding the offset to the top block prediction mode and adding the resulting new prediction mode to the set MPMs. Adding an offset to the top block prediction mode may be performed before adding an offset to the left block prediction mode.

В варианте первое смещение может быть добавлено к режиму предсказания левого блока и новый блок предсказания добавлен к списку MPMs. Кроме того, второе смещение, отличное от первого смещения, может быть добавлено к режиму предсказания левого блока, и (второй) новый блок предсказания добавляется к списку MPMs.In an embodiment, the first offset may be added to the left block prediction mode and a new prediction block added to the list of MPMs. In addition, a second offset different from the first offset may be added to the left block prediction mode, and a (second) new prediction block is added to the list of MPMs.

Точно так же первое смещение может быть добавлено к режиму предсказания верхнего блока и новый блок предсказания добавлен в MPM список. Кроме того, второе смещение, отличное от первого смещения, может быть добавлено к режиму предсказания верхнего блока, и (второй) новый блок предсказания добавляется к списку MPMs.Similarly, the first offset may be added to the top block prediction mode and a new prediction block added to the MPM list. In addition, a second offset different from the first offset may be added to the upper block prediction mode, and a (second) new prediction block is added to the list of MPMs.

Обратите внимание, что MPM список не ограничивается включением трех или четырех режимов, и могут быть добавлены другие режимы.Note that the MPM list is not limited to including three or four modes, and other modes may be added.

Например, третье смещение может быть добавлено к режиму предсказания верхнего блока, и новый режим предсказания добавлен в MPM список. Кроме того, четвертое смещение, отличное от первого смещения, может быть добавлено к режиму предсказания верхнего блока, и (второй) новый режим предсказания добавлен к списку MPMs.For example, a third offset may be added to the top block prediction mode and a new prediction mode added to the MPM list. In addition, a fourth offset different from the first offset may be added to the upper block prediction mode, and a (second) new prediction mode is added to the list of MPMs.

В другом примере одно или несколько смещений могут быть добавлены в режим внутреннего предсказания левого блока и/или режим внутреннего предсказания верхнего блока, при условии, что левый блок и/или верхний блок доступны и его режим является угловым режим с внутренним предсказанием. Новый один или несколько режимов предсказания, определенных путем добавления одного или нескольких смещений к режиму предсказания левого и/или верхнего блока, добавляются в MPM список.In another example, one or more offsets may be added to the left block intra prediction mode and/or the top block intra prediction mode, provided that the left block and/or the top block is available and its mode is an intra angle mode. The new one or more prediction modes, determined by adding one or more offsets to the left and/or top block prediction mode, are added to the MPM list.

В дополнительном варианте осуществления способ содержит: (а) проверку доступности левого блока текущих блоков кодирования. Позиция левого блока показана на фиг. 5, где левый блок обозначен буквой «L».In a further embodiment, the method comprises: (a) checking the availability of the left block of the current coding blocks. The position of the left block is shown in Fig. 5, where the left block is indicated by the letter "L".

Левый блок недоступен, если из левого блока не может быть получена информация внутреннего предсказания (т.е. режим внутреннего предсказания). Что включает в себя следующие случаи:The left block is unavailable if intra prediction information (ie, intra prediction mode) cannot be obtained from the left block. Which includes the following cases:

• Левый блок не является блоком с внутренним предсказанием; например, режим предсказания левого блока может быть режимом внешнего предсказания.• The left block is not an intra prediction block; for example, the left block prediction mode may be an inter prediction mode.

• Левый блок отсутствует, например, текущий блок является блоком кодирования, расположенным в самой левой стороне кадра;• There is no left block, eg the current block is the coding block located on the leftmost side of the frame;

Если кодер или декодер поддерживает параллельную обработку, левый блок может считаться несуществующим, если он расположен в другой плитке, чем текущий блок, то есть, текущий блок кодирования расположен в самой левой стороне плиткиIf the encoder or decoder supports parallel processing, the left block can be considered non-existent if it is located in a different tile than the current block, i.e., the current encoding block is located on the leftmost side of the tile

В другом примере, если параллельная обработка не поддерживается в кодере или декодере, левый блок может считаться доступным, если он расположен в другой плитке, чем текущий блок, т.е. текущий блок кодирования расположен в самой левой стороне плитки;In another example, if parallel processing is not supported in the encoder or decoder, the left block may be considered available if it is located in a different tile than the current block, ie. the current coding block is located on the leftmost side of the tile;

• Если в кодере или декодере поддерживается параллельная обработка, левый блок может считаться отсутствующим, если он расположен в другом сегменте, чем текущий блок, т.е. текущий блок кодирования расположен в самой левой стороне сегмента.• If parallel processing is supported in the encoder or decoder, the left block can be considered missing if it is located in a different segment than the current block, ie. the current coding block is located on the leftmost side of the segment.

В другом примере, если параллельная обработка не поддерживается в кодере или декодере, левый блок может считаться доступным, если он расположен в другом сегменте, чем текущий блок, то есть, текущий блок кодирования расположен в самой левой стороне сегмента.In another example, if parallel processing is not supported in the encoder or decoder, the left block may be considered available if it is located in a different segment than the current block, i.e., the current encoding block is located on the leftmost side of the segment.

В противном случае (т.е. левый блок доступен), (b) дополнить MPM список с 6 записями режимом внутреннего предсказания левого блока. Отметим, что даже несмотря на то, что MPM список может включать в себя шесть записей согласно варианту осуществления, настоящее изобретение этим не ограничивается, и MPM список может быть списком любой длины.Otherwise (ie, the left block is available), (b) pad the MPM list with 6 entries with the left block intra prediction mode. Note that even though the MPM list may include six entries according to the embodiment, the present invention is not limited to this, and the MPM list may be a list of any length.

(c) Проверить доступность верхнего блока текущего блока кодирования. Позиция верхнего блока проиллюстрирована на фиг. 5, где верхний блок помечен буквой «A».(c) Check the availability of the top block of the current coding block. The position of the top block is illustrated in FIG. 5, where the top block is labeled "A".

Верхний блок недоступен, если не может быть получена никакая информация внутреннего предсказания (т.е. режим внутреннего предсказания) из верхнего блока. Что включает в себя следующие случаи:The top block is unavailable if no intra prediction information (ie, intra prediction mode) can be obtained from the top block. Which includes the following cases:

• Верхний блок не является блоком с внутренним предсказанием. Например, режим предсказания левого блока может быть режимом внешнего предсказания.• The top block is not an intra prediction block. For example, the left block prediction mode may be an inter prediction mode.

• Верхний блок отсутствует. Например, текущий блок является блоком кодирования, расположенным в самой верхней стороне кадра;• The top block is missing. For example, the current block is the coding block located at the topmost side of the frame;

• Если в кодере или декодере поддерживается параллельная обработка, верхний (т.е. указанный выше) блок может считаться несуществующим, если он расположен в другой плитке, чем текущий блок, т.е. текущий блок кодирования расположен в самом верхней стороне плитки.• If parallel processing is supported in the encoder or decoder, the top (ie, above) block may be considered non-existent if it is located in a different tile than the current block, ie. the current coding block is located at the topmost side of the tile.

В другом примере, если параллельная обработка не поддерживается в кодере или декодере, верхний (то есть указанный выше) блок может считаться доступным, если он расположен в другой плитке, чем текущий блок, то есть, текущий блок кодирования расположен в самой верхней стороне плитки;In another example, if parallel processing is not supported in the encoder or decoder, the top (i.e., above) block may be considered available if it is located in a different tile than the current block, i.e., the current encoding block is located on the topmost side of the tile;

• Если в кодере или декодере поддерживается параллельная обработка, верхний (т.е. указанный выше) блок может считаться несуществующим, если он расположен в другом сегменте, чем текущий блок, т.е. текущий блок кодирования расположен в самой верхней стороне сегмента.• If parallel processing is supported in the encoder or decoder, the top (ie, above) block may be considered non-existent if it is located in a different segment than the current block, ie. the current coding block is located at the topmost side of the segment.

В другом примере, если параллельная обработка не поддерживается в кодере или декодере, верхний (т.е. указанный выше) блок может считаться доступным, если он расположен в другом сегменте, чем текущий блок, т.е. текущий блок кодирования расположен в самой верхней стороне сегмента;In another example, if parallel processing is not supported in the encoder or decoder, the top (i.e., above) block may be considered available if it is located in a different segment than the current block, i.e. the current coding block is located at the topmost side of the segment;

Если необходимо ограничить размер строчного буфера в кодере или декодере, верхний (то есть, выше) блок может считаться отсутствующим, если он расположен в другом CTU, чем текущий блок, т.е. текущий блок кодирования расположен в самой верхней стороне текущего CTU.If it is necessary to limit the size of the line buffer in the encoder or decoder, the top (i.e., above) block may be considered missing if it is located in a different CTU than the current block, i.e. the current coding unit is located at the topmost side of the current CTU.

В одном примере, если сторона декодера или сторона кодера поддерживает ограничение строчного буфера, то верхний блок, расположенный на другом CTU, чем текущий блок CTU, считается отсутствующим. Если ограничение линейного буфера не поддерживается, то считается, что его наличие.In one example, if the decoder side or the encoder side supports the line buffer constraint, then an upper block located on a different CTU than the current CTU is considered to be missing. If the linear buffer constraint is not supported, then it is considered to be present.

В противном случае (т.е. верхний блок доступен), (d) включить режим внутреннего предсказания верхнего (то есть верхнего) блока в MPM список с 6 записями.Otherwise (ie, the top block is available), (d) turn on the intra prediction mode of the top (ie, top) block in the 6-entry MPM list.

(e) проверить, был ли планарный (PLANAR_IDX = 0) режим вставлен в MPM список (т.е. проверить, что внутренний режим левого или верхнего (т.е. верхнего) блока является планарным режимом), только, если планарный режим не был вставлен в MPM список, затем вставить планарный режим в MPM список. (f) Проверить, был ли вставлен режим DC (DC_IDX = 1) в MPM список (т.е. проверить, что режимы внутри левого или верхнего (т.е. выше) блока являются режимом DC), только если режим DC не был вставлен в MPM список, затем вставить режим DC в MPM список.(e) check if planar (PLANAR_IDX = 0) mode has been inserted into the MPM list (i.e. check that the inner mode of the left or top (i.e. top) block is planar mode), only if planar mode is not was inserted into the MPM list, then insert the planar mode into the MPM list. (f) Check if the DC mode (DC_IDX = 1) has been inserted into the MPM list (i.e. check that the modes inside the left or top (i.e. above) block are DC mode), only if the DC mode was not inserted into the MPM list, then insert the DC mode into the MPM list.

(g) Если левый блок доступен и его режим внутреннего предсказания является угловым режимом, то есть, (mode > DC_IDX, и считается, что его режим angularLeft), получить два его ближайших угловых режима, выполнив angularLeft-1, angularLeft + 1. Обратите внимание, что при выполнении -1 или +1 это может включать в себя операцию увеличения и уменьшения. Например, если angularLeft равно 2, тогда angularLeft-1 будет 66 (случай увеличения), или если angularLeft равно 66, то angularLeft + 1 будет 2 (случай уменьшения).(g) If the left block is available and its intra-prediction mode is angular mode, i.e., (mode > DC_IDX, and its mode is considered to be angularLeft), get its two nearest angular modes by doing angularLeft-1, angularLeft + 1. Note Note that when doing -1 or +1, this may include an increment and decrement operation. For example, if angularLeft is 2 then angularLeft-1 will be 66 (increase case) or if angularLeft is 66 then angularLeft + 1 will be 2 (decrease case).

В другом примере, если angularLeft равно 2, тогда angularLeft-1 будет 65 (случай увеличения) или, если angularLeft равен 66, то angulaLeft + 1 будет 3. Это может быть выбрано увеличение, поскольку режимы 2 и 66 указывают (анти) параллельные направления. В этом случае, ближайшие два угловые режимы angularLeft могут быть вычислены как angularLeft-1 = 2 + ((angularLeft + 61)% 64); иIn another example, if angularLeft is 2 then angularLeft-1 will be 65 (increment case) or if angularLeft is 66 then angulaLeft + 1 will be 3. Increment could be chosen as modes 2 and 66 indicate (anti)parallel directions . In this case, the next two angular modes angularLeft can be computed as angularLeft-1 = 2 + ((angularLeft + 61)% 64); and

angularLeft + 1 = 2 + ((angularLeft -1)% 64).angularLeft + 1 = 2 + ((angularLeft -1)% 64).

Эти правила расчета соответствуют добавлению смещения -1 или +1, соответственно, с увеличением и режимами 0 и 1, не являющимися режимами углового предсказания. % отображает операцию по модулю.These calculation rules correspond to adding an offset of -1 or +1, respectively, with magnification and modes 0 and 1, which are not angular prediction modes. % displays modulo operation.

(h) Если режим предсказания angularLeft-1 не был вставлен в MPM список, вставить его (angularLeft-1) в MPM список.(h) If the angularLeft-1 prediction mode was not inserted into the MPM list, insert it (angularLeft-1) into the MPM list.

(i) Если режим предсказания angularLeft + 1 не был вставлен в MPM список, вставить его (angularLeft-1) в MPM список.(i) If the prediction mode angularLeft + 1 was not inserted into the MPM list, insert it (angularLeft-1) into the MPM list.

(j) Если MPM список не полон, если верхний блок доступен и если его (верхний блок) режим внутреннего предсказания является угловым режимом, то есть, (mode> DC_IDX, и считается, что режим является angularAbove), получить его ближайшие два угловых режима выполняя angularAbove-1, angularAbove + 1. Обратите внимание, что при выполнении -1 или +1 это может включать в себя операцию увеличения и уменьшения.(j) If the MPM list is incomplete, if the top block is available and if its (top block) intra prediction mode is angular mode, i.e., (mode > DC_IDX, and the mode is considered to be angularAbove), get its next two angular modes doing angularAbove-1, angularAbove + 1. Note that when doing -1 or +1 this may include an increment and decrement operation.

В примере, если angularAbove равно 2, тогда angularAbove-1 будет 66 (случай увеличения), или если angularAbove равен 66, тогда angularAbove + 1 будет 2 (случай уменьшения).In the example, if angularAbove is 2 then angularAbove-1 will be 66 (increase case) or if angularAbove is 66 then angularAbove + 1 will be 2 (decrease case).

В другом примере, если angularAbove равно 2, то angularAbove-1 будет 65 (случай увеличения) или, если angularAbove равен 66, то angulaAbove + 1 будет 3. Это увеличение может быть выбрано, поскольку режимы 2 и 66 указывают (анти) параллельные направления. В этом случае ближайшие два угловых режима angularAbove могут быть рассчитаны какIn another example, if angularAbove is 2 then angularAbove-1 will be 65 (increase case) or if angularAbove is 66 then angulaAbove + 1 will be 3. This increase can be chosen as modes 2 and 66 indicate (anti)parallel directions . In this case, the next two angular modes of angularAbove can be calculated as

angularAbove-1 = 2 + ((angularAbove + 61)% 64); иangularAbove-1 = 2 + ((angularAbove + 61)% 64); and

angularAbove + 1 = 2 + ((angularAbove -1)% 64).angularAbove + 1 = 2 + ((angularAbove -1)% 64).

Эти правила расчета соответствуют добавлению смещения -1 или +1, соответственно, с увеличением и режимами 0 и 1, не являющимися режимами углового предсказания. % отображает операцию по модулю.These calculation rules correspond to adding an offset of -1 or +1, respectively, with magnification and modes 0 and 1, which are not angular prediction modes. % displays modulo operation.

(k) Если режим предсказания angularAbove-1 не был вставлен в MPM список, вставить его (angularAbove-1) в MPM список.(k) If the prediction mode of angularAbove-1 was not inserted into the MPM list, insert it (angularAbove-1) into the MPM list.

(l) Если MPM список не полон (например, количество режимов предсказания в MPM списке меньше 6) и, если режим предсказания angularAbove + 1 не был вставлен в MPM список, вставить его (angularAbove + 1) в MPM список.(l) If the MPM list is incomplete (e.g. the number of prediction modes in the MPM list is less than 6) and if the prediction mode angularAbove + 1 has not been inserted into the MPM list, insert it (angularAbove + 1) into the MPM list.

(m) Если MPM список не заполнен, вставить следующие режимы в MPM список, пока он не будет заполнен (например, количество режимов предсказания в MPM списке равно 6):(m) If the MPM list is empty, insert the following modes into the MPM list until it is full (for example, the number of prediction modes in the MPM list is 6):

• вертикальный режим (VER_IDX),• vertical mode (VER_IDX),

• горизонтальный режим (HOR_IDX),• horizontal mode (HOR_IDX),

• внутренний режим 2 (2),• internal mode 2 (2),

• режим вертикальной диагонали (VDIA_IDX) или режим диагонали (DIA_IDX);• vertical diagonal mode (VDIA_IDX) or diagonal mode (DIA_IDX);

Отметим, что определение режимов ближайшего соседа, подробно описанное в рамках этого варианта осуществления, также может применяться к другим вариантам осуществления.Note that the definition of nearest neighbor modes detailed within this embodiment may also apply to other embodiments.

В описанных вариантах осуществления MPM список представляет собой список конечной длины. Например, длина списка (то есть, количество записей) может быть заранее определена. Например, количество записей в MPM списке может составлять шесть. Однако MPM список не ограничивается шестью записями и может включать в себя другое количество записей.In the described embodiments, the MPM list is a finite length list. For example, the length of the list (ie, the number of entries) may be predetermined. For example, the number of entries in the MPM list may be six. However, the MPM list is not limited to six entries and may include a different number of entries.

Ниже приводится краткое описание вариантов предоставленного способа:The following is a summary of the variations of the method provided:

Доступность левого блока должна учитывать как поддержку, так и не поддержку параллельной обработки.The accessibility of the left block must take into account both support and non-support for parallel processing.

Доступность верхнего блока должна учитывать как поддержку, так и не поддержку параллельной обработки.The accessibility of the top block should take into account both support and non-support for parallel processing.

Порядок получения двух ближайших режимов левого и верхнего блока также может быть сначала +1, а затем -1. Таким образом, ближайшие режимы левого и верхнего блоков могут быть определены сначала путем добавления 1 к соответствующему индексу режима, а затем путем вычитания 1 из соответствующего индекса режима.The order of getting the two closest modes of the left and top block can also be first +1 and then -1. Thus, the nearest modes of the left and upper blocks can be determined first by adding 1 to the corresponding mode index, and then by subtracting 1 from the corresponding mode index.

Последним кандидатом в MPM списке может быть VIDA_IDX или DIA_IDX, как, например, проиллюстрировано на фиг. 6.The last candidate in the MPM list may be VIDA_IDX or DIA_IDX, as illustrated in FIG. 6.

Порядок вставки также может быть левым, верхним, планарным, DC и режимами по умолчанию (VER_IDX, HOR_IDX, 2, VDIA_IDX или DIA_IDX).Insertion order can also be left, top, planar, DC, and default modes (VER_IDX, HOR_IDX, 2, VDIA_IDX, or DIA_IDX).

Для сигнализации mpm_idx используется усеченная унарная бинаризация. Первым трем бинам mpm_idx разрешено использовать три разных независимых контекста, или все бины mpm_idx закодированы проходом CABAC.Truncated unary binarization is used to signal mpm_idx. The first three mpm_idx bins are allowed to use three different independent contexts, or all mpm_idx bins are encoded with a CABAC pass.

В одном аспекте настоящего изобретения, способ построения списка наиболее вероятного режима, MPM, способ, содержащий: определение, доступен ли левый блок текущего блока кодирования или нет, если левый блок текущего блока кодирования доступен, добавление режима внутреннего предсказания левого блока в MPM список; определение, доступен ли верхний блок текущего блока кодирования или нет, если верхний блок текущего блока кодирования доступен, добавление режима внутреннего предсказания верхнего блока в MPM список; если планарный режим отсутствует в исходном MPM списке, добавление планарного режима в MPM список; если DC режим отсутствует в исходном MPM списке, добавление DC режима в MPM список.In one aspect of the present invention, a method for constructing a list of the most likely mode, MPM, the method comprising: determining whether the left block of the current coding block is available or not, if the left block of the current coding block is available, adding the left block intra prediction mode to the MPM list; determining whether the top block of the current coding block is available or not, if the top block of the current coding block is available, adding the top block intra prediction mode to the MPM list; if the planar mode is not in the original MPM list, adding the planar mode to the MPM list; if the DC mode is not in the original MPM list, add the DC mode to the MPM list.

В одном аспекте настоящего изобретения, способ построения списка наиболее вероятного режима, MPM, способ, содержащий: определение, доступен ли левый блок текущего блока кодирования или нет, если левый блок текущего блока кодирования доступен, добавление режима внутреннего предсказания левого блока в MPM список; определение, доступен ли верхний блок текущего блока кодирования или нет, если верхний блок текущего блока кодирования доступен, добавление режима внутреннего предсказания верхнего блока в MPM список; добавление смещения, по меньшей мере, к одному из режимов предсказания левого блока и режима предсказания верхнего блока, чтобы получить, по меньшей мере, один новый режим предсказания, если, по меньшей мере, один из левый блок текущего блока и верхний блок текущий блок доступен, и режим внутреннего предсказания, по меньшей мере, одного из левого блока и верхнего блока является угловым режимом; и добавление, по меньшей мере, одного нового режима предсказания в MPM список, если, по меньшей мере, один новый режим предсказания отсутствует в MPM списке.In one aspect of the present invention, a method for constructing a list of the most likely mode, MPM, the method comprising: determining whether the left block of the current coding block is available or not, if the left block of the current coding block is available, adding the left block intra prediction mode to the MPM list; determining whether the top block of the current coding block is available or not, if the top block of the current coding block is available, adding the top block intra prediction mode to the MPM list; adding an offset to at least one of the left block prediction mode and the top block prediction mode to obtain at least one new prediction mode if at least one of the left block of the current block and the top block of the current block is available , and the intra prediction mode of at least one of the left block and the top block is an angle mode; and adding at least one new prediction mode to the MPM list if at least one new prediction mode is not in the MPM list.

Предоставляется способ построения списка наиболее вероятного режима, MPM, в котором способ содержит: определение, доступен ли левый блок текущего блока кодирования или нет, доступен ли левый блок текущего блока кодирования, добавление режима внутреннего предсказания левого блока в MPM список; определение, доступен ли верхний блок текущего блока кодирования или нет, если верхний блок текущего блока кодирования доступен, добавление режима внутреннего предсказания верхнего блока в MPM список; добавление смещения к режиму предсказания левого блока для получения нового режима предсказания, если левый блок текущего блока кодирования доступен и режим внутреннего предсказания левого блока является угловым режимом; и добавление нового режима предсказания в MPM список, если новый режим предсказания отсутствует в MPM списке; и/или добавление смещения к режиму предсказания верхнего блока для получения режима предсказания смещение-верхний, если верхний блок текущего блока кодирования доступен и режим внутреннего предсказания верхнего блока является угловым режимом; и добавление режима предсказания смещение-верхний в MPM список, если режим предсказания смещение-верхний отсутствует в MPM списке.A method for constructing a list of the most probable mode, MPM, is provided, in which the method comprises: determining whether the left block of the current coding block is available or not, whether the left block of the current coding block is available, adding the left block intra prediction mode to the MPM list; determining whether the top block of the current coding block is available or not, if the top block of the current coding block is available, adding the top block intra prediction mode to the MPM list; adding an offset to the left block prediction mode to obtain a new prediction mode if the left block of the current coding block is available and the left block intra prediction mode is an angular mode; and adding a new prediction mode to the MPM list if the new prediction mode is not in the MPM list; and/or adding an offset to a top block prediction mode to obtain an offset-top prediction mode if the top block of the current coding block is available and the top block intra prediction mode is an angle mode; and adding the offset-up prediction mode to the MPM list if the offset-up prediction mode is not in the MPM list.

Другими словами, либо (i) новый режим предсказания, полученный путем добавления смещения к режиму предсказания левого блока текущего блока, добавляется в MPM список, либо (ii) новый режим предсказания (режим предсказания смещение-верхний), полученный путем добавления смещения к режиму предсказания верхнего блока текущего блока, добавляется в MPM список, или (iii) новый режим предсказания левого блока текущего блока и дополнительный новый режим предсказания (режим предсказания смещение-верхний добавлен в MPM список). В каждом случае новый режим предсказания и/или режим предсказания смещение-верхний добавляется в MPM список, если он еще не присутствует в MPM списке и, если левый или верхний блок, соответственно, доступны и их режимы предсказания являются угловыми режимами внутреннего предсказания.In other words, either (i) a new prediction mode obtained by adding an offset to the prediction mode of the left block of the current block is added to the MPM list, or (ii) a new prediction mode (offset-up prediction mode) obtained by adding an offset to the prediction mode top block of the current block is added to the MPM list, or (iii) a new left block prediction mode of the current block and an additional new prediction mode (offset-top prediction mode added to the MPM list). In each case, a new prediction mode and/or offset-top prediction mode is added to the MPM list if it is not already present in the MPM list and if the left or top block, respectively, is available and their prediction modes are intra-angular prediction modes.

Обратите внимание, что MPM список не обязательно дополняется описанным выше способом, и могут быть добавлены дополнительные режимы предсказания. Например, одно или несколько смещений могут быть добавлены в режим внутреннего предсказания левого блока и/или режим внутреннего предсказания верхнего блока. Новый один или несколько режимов предсказания, определенных путем добавления одного или нескольких смещений к режиму предсказания левого и/или верхнего блока, добавляются в MPM список.Note that the MPM list is not necessarily extended in the manner described above, and additional prediction modes may be added. For example, one or more offsets may be added to the left block intra prediction mode and/or the top block intra prediction mode. The new one or more prediction modes, determined by adding one or more offsets to the left and/or top block prediction mode, are added to the MPM list.

Следует отметить, что порядок добавления нового режима предсказания и режима предсказания смещение-верхний не ограничивается сначала добавлением нового режима предсказания и затем добавлением режима предсказания смещение-верхний, но может быть переключен, т. е. сначала добавлен режим предсказания смещение-верхний и затем добавление нового режима предсказания.Note that the order of adding the new prediction mode and the offset-up prediction mode is not limited to first adding the new prediction mode and then adding the offset-up prediction mode, but can be switched, i.e., first adding the offset-up prediction mode and then adding new prediction mode.

В примере, в котором, когда режим предсказания левого блока не является режимом внутреннего предсказания, левый блок текущего блока кодирования недоступен. Например, в случае, когда режим предсказания левого блока является режимом внешнего предсказания, левый блок текущего блока кодирования недоступен.In an example in which, when the left block prediction mode is not intra prediction mode, the left block of the current coding block is unavailable. For example, in the case where the left block prediction mode is the inter prediction mode, the left block of the current coding block is unavailable.

В примере, в котором, когда текущий блок кодирования является блоком кодирования, расположенным в самой левой стороне кадра, левый блок текущего блока кодирования недоступен. То есть, в случае, когда левый блок отсутствует, поскольку текущий блок является самым левым блоком в текущем кадре, левый блок недоступен.In an example in which, when the current coding block is the coding block located at the leftmost side of the frame, the left block of the current coding block is unavailable. That is, in the case where there is no left block, since the current block is the leftmost block in the current frame, the left block is not available.

В примере, в котором поддерживается параллельная обработка и текущий блок кодирования является блоком кодирования, расположенным в самой левой стороне плитки, левый блок текущего блока кодирования недоступен.In an example where parallel processing is supported and the current coding block is the coding block located on the leftmost side of the tile, the left block of the current coding block is not available.

В примере, в котором параллельная обработка не поддерживается и текущий блок кодирования является блоком кодирования, расположенным в самой левой стороне плитки, левый блок текущего блока кодирования доступен. Другими словами, даже когда левый блок текущего блока кодирования расположен в другой плитке, он может считаться доступным, если кодер или декодер не поддерживает параллельную обработку.In an example where parallel processing is not supported and the current coding block is the coding block located on the leftmost side of the tile, the left block of the current coding block is available. In other words, even when the left block of the current encoding block is located in a different tile, it can be considered available if the encoder or decoder does not support parallel processing.

В примере, в котором поддерживается параллельная обработка и текущий блок кодирования является блоком кодирования, расположенным в самой левой стороне сегмента, левый блок текущего блока кодирования недоступен.In an example where parallel processing is supported and the current coding block is the coding block located on the leftmost side of the segment, the left block of the current coding block is not available.

В примере, в котором параллельная обработка не поддерживается и текущий блок кодирования является блоком кодирования, расположенным в самой левой стороне сегмента, левый блок текущего блока кодирования доступен. Другими словами, даже когда левый блок текущего блока кодирования расположен в другом сегменте, он может считаться доступным, если кодер или декодер не поддерживает параллельную обработку.In an example where parallel processing is not supported and the current coding block is the coding block located on the leftmost side of the segment, the left block of the current coding block is available. In other words, even when the left block of the current coding block is located in a different segment, it can be considered available if the encoder or decoder does not support parallel processing.

В примере, в котором, когда режим предсказания верхнего блока не является режимом внутреннего предсказания, верхний блок текущего блока кодирования недоступен. Например, в случае, когда режим предсказания верхнего блока является режимом внешнего предсказания, верхний блок текущего блока кодирования недоступен.In an example in which, when the top block prediction mode is not an intra prediction mode, the top block of the current coding block is unavailable. For example, in the case where the top block prediction mode is the inter prediction mode, the top block of the current coding block is unavailable.

В примере, в котором, когда текущий блок кодирования является блоком кодирования, расположенным в самой верхней стороне кадра, верхний блок текущего блока кодирования недоступен. То есть, в случае, когда верхний блок отсутствует, поскольку текущий блок является самым верхним блоком в текущем кадре, левый блок недоступен.In an example in which, when the current coding block is the coding block located at the topmost side of the frame, the top block of the current coding block is unavailable. That is, in the case where the top box is missing because the current box is the topmost box in the current frame, the left box is not available.

В примере, в котором поддерживается параллельная обработка и текущий блок кодирования является блоком кодирования, расположенным в самой верхней стороне плитки, верхний блок текущего блока кодирования недоступен.In an example where parallel processing is supported and the current coding block is the coding block located at the topmost side of the tile, the top block of the current coding block is not available.

В примере, в котором параллельная обработка не поддерживается и текущий блок кодирования является блоком кодирования, расположенным в самой верхней стороне плитки, верхний блок текущего блока кодирования доступен. Другими словами, даже когда верхний блок текущего блока кодирования расположен в другой плитке, он может считаться доступным, если кодер или декодер не поддерживает параллельную обработку.In an example where parallel processing is not supported and the current coding block is the coding block located at the topmost side of the tile, the top block of the current coding block is available. In other words, even when the top block of the current encoding block is located in a different tile, it can be considered available if the encoder or decoder does not support parallel processing.

В примере, в котором поддерживается параллельная обработка и текущий блок кодирования является блоком кодирования, расположенным в самой верхней стороне сегмента, верхний блок текущего блока кодирования недоступен.In an example in which parallel processing is supported and the current coding block is the coding block located at the topmost side of the segment, the top block of the current coding block is not available.

В примере, в котором параллельная обработка не поддерживается и текущий блок кодирования является блоком кодирования, расположенным в самой верхней стороне сегмента, верхний блок текущего блока кодирования доступен. Другими словами, даже когда верхний блок текущего блока кодирования расположен в другом сегменте, он может считаться доступным, если кодер или декодер не поддерживает параллельную обработку.In an example where parallel processing is not supported and the current coding block is the coding block located at the topmost side of the segment, the top block of the current coding block is available. In other words, even when the top block of the current coding block is located in a different segment, it can be considered available if the encoder or decoder does not support parallel processing.

В одном примере, когда размер строчного буфера необходимо ограничить и текущий блок кодирования является блоком кодирования, расположенным на самой верхней стороне текущего блока CTU, верхний блок текущего блока кодирования недоступен.In one example, when the size of the line buffer needs to be limited and the current coding unit is a coding unit located on the topmost side of the current CTU, the top block of the current coding unit is not available.

В примере, способ дополнительно содержит: если левый блок текущего блока кодирования доступен и режим предсказания левого блока является угловым режимом, добавление смещения к режиму предсказания левого блока для получения нового режима предсказания, если новый режим предсказания отсутствует в исходном MPM списке, добавление нового режима предсказания в MPM список.In an example, the method further comprises: if the left block of the current coding block is available and the left block prediction mode is an angle mode, adding an offset to the left block prediction mode to obtain a new prediction mode, if the new prediction mode is not in the original MPM list, adding a new prediction mode in the MPM list.

В примере, где смещение равно -1.In the example where the offset is -1.

В примере, где смещение равно +1.In the example where the offset is +1.

В примере, способ дополнительно содержит: если верхний блок текущего блока кодирования доступен и режим предсказания верхнего блока является угловым режимом, добавление смещения к режиму предсказания верхнего блока для получения режима предсказания смещение-верхний, если режим предсказания смещение-верхний отсутствует в исходном MPM списке, добавление режима предсказания смещение-верхний в MPM список.In an example, the method further comprises: if the top block of the current coding block is available and the top block prediction mode is corner mode, adding an offset to the top block prediction mode to obtain an offset-top prediction mode, if the offset-top prediction mode is not in the original MPM list, adding bias-top prediction mode to the MPM list.

В примере, где смещение равно -1.In the example where the offset is -1.

В примере, где смещение равно +1.In the example where the offset is +1.

В примере способ дополнительно содержит: добавление вертикального режима (VER_IDX), горизонтального режима (HOR_IDX), внутреннего режима 2 (2), вертикального диагонального режима (VDIA_IDX) или диагонального режима (DIA_IDX) в MPM список.In the example, the method further comprises: adding vertical mode (VER_IDX), horizontal mode (HOR_IDX), inner mode 2(2), vertical diagonal mode (VDIA_IDX), or diagonal mode (DIA_IDX) to the MPM list.

В одном аспекте настоящего изобретения предусмотрен кодер, содержащий схему обработки для выполнения любого из вышеуказанных способов.In one aspect of the present invention, an encoder is provided that contains a processing circuit for performing any of the above methods.

В одном аспекте настоящего изобретения предусмотрен декодер, содержащий схему обработки для выполнения любого из вышеупомянутых способов.In one aspect of the present invention, a decoder is provided, comprising a processing circuit for performing any of the above methods.

В одном из аспектов настоящего изобретения предоставляется компьютерный программный продукт, содержащий программный код для выполнения любого из вышеуказанных способов. Например, компьютерный программный продукт содержит инструкцию, когда программа выполняется компьютером или процессором, побуждает компьютер выполнять этапы любого из вышеуказанных способов.In one aspect of the present invention, a computer program product is provided that contains program code for performing any of the above methods. For example, a computer program product contains an instruction that, when the program is executed by a computer or processor, causes the computer to perform the steps of any of the above methods.

В одном аспекте настоящего изобретения предоставляется декодер для построения списка наиболее вероятного режима, MPM, в котором декодер содержит: один или несколько процессоров; и постоянный машиночитаемый носитель данных, соединенный с процессорами и хранящий программы для выполнения процессорами, когда выполняется программа процессорами, конфигурирует декодер выполнить любой из вышеупомянутых способов.In one aspect of the present invention, a decoder is provided for constructing a most likely mode list, MPM, wherein the decoder comprises: one or more processors; and a persistent computer-readable storage medium coupled to the processors and storing programs for execution by the processors when the program is executed by the processors, configuring the decoder to perform any of the above methods.

В одном аспекте настоящего изобретения предоставляется кодер для построения списка наиболее вероятного режима, MPM, причем кодер содержит: один или несколько процессоров; и постоянный машиночитаемый носитель данных, соединенный с процессорами и хранящий программы для выполнения процессорами, когда выполняется программа процессорами, конфигурирует кодер выполнить любой из вышеупомянутых способов.In one aspect of the present invention, an encoder is provided for constructing a most likely mode list, MPM, the encoder comprising: one or more processors; and a persistent computer-readable storage medium coupled to the processors and storing programs for execution by the processors when the program is executed by the processors, configuring the encoder to perform any of the above methods.

Настоящее изобретение обеспечивает улучшение схемы сигнализации режима внутреннего предсказания. В настоящем изобретении предоставляются способ декодирования видео и декодер видео.The present invention provides an improvement in the intra prediction mode signaling scheme. In the present invention, a video decoding method and a video decoder are provided.

Способ декодирования видео, содержащий: декодирование закодированных данных блока изображения для получения режима внутреннего предсказания из множества режимов внутреннего предсказания для блока изображения, множество режимов внутреннего предсказания для блока изображения содержит набор наиболее вероятных режимов, MPM и набор не-MPM, в котором набор не-MPM содержит первый набор режимов внутреннего предсказания и второй набор режимов внутреннего предсказания, в котором один режим в первом наборе режимов внутреннего предсказания кодируется с использованием N битов, один режим во втором наборе режимов внутреннего предсказания кодируется с использованием M битов, N и M являются положительными целыми числами, N меньше M, в котором декодирование закодированных данных для получения режима внутреннего предсказания из множества режимов внутреннего предсказания для блока изображения, содержащий: декодирование закодированных данных для получения указания, указывающей, находится ли режим внутреннего предсказания для блока изображения в наборе MPMs или нет; если указание, указывающее режим внутреннего предсказания для блока изображения, не входит в набор MPMs, генерирование отношения отображения между, по меньшей мере, одним режимом внутреннего предсказания в первом наборе режимов внутреннего предсказания и, по меньшей мере, одним режимом внутреннего предсказания в наборе не-MPM; декодирование кодированных данных для получения кодового слова режима внутреннего предсказания для блока изображения; получение режима внутреннего предсказания для блока изображения в соответствии с соотношением отображения и кодовым словом режима внутреннего предсказания.A video decoding method, comprising: decoding the encoded image block data to obtain an intra prediction mode from a plurality of intra prediction modes for the image block, the plurality of intra prediction modes for the image block contains a set of most probable modes, MPM, and a set of non-MPM, in which the set of non- The MPM comprises a first intra prediction mode set and a second intra prediction mode set, wherein one mode in the first intra prediction mode set is encoded using N bits, one mode in the second intra prediction mode set is encoded using M bits, N and M are positive integers numbers, N less than M, wherein decoding the encoded data to obtain an intra prediction mode from a plurality of intra prediction modes for an image block, comprising: decoding the encoded data to obtain an indication indicating whether the intra prediction mode is its prediction for an image block in the set of MPMs or not; if an indication indicating the intra prediction mode for the image block is not included in the set of MPMs, generating a mapping relationship between at least one intra prediction mode in the first intra prediction mode set and at least one intra prediction mode in the non- MPM; decoding the encoded data to obtain an intra prediction mode codeword for the image block; obtaining an intra prediction mode for the image block according to the display ratio and the intra prediction mode codeword.

Согласно способу декодирования видео настоящего изобретения, для кодирования режимов предсказания в наборе не-MPM используется схема усеченной бинаризации и генерируется отношение отображения, следовательно, режим предсказания для текущего блока имеет более высокую вероятность кодирования, используя меньше битов и на стороне декодера уменьшается вычислительная сложность.According to the video decoding method of the present invention, a truncated binarization scheme is used to encode prediction modes in a non-MPM set and a mapping relation is generated, therefore, the prediction mode for the current block has a higher coding probability using fewer bits, and the computational complexity is reduced on the decoder side.

В одной из форм реализации настоящего изобретения способ дополнительно содержит прием закодированных данных блока изображения. В одном примере закодированные данные принимаются стороной декодера перед декодированием закодированных данных. В примере кодированные данные принимаются приемником.In one embodiment of the present invention, the method further comprises receiving encoded image block data. In one example, the encoded data is received by the decoder side before decoding the encoded data. In the example, encoded data is received by the receiver.

В одной форме реализации настоящего приложения количество множества режимов внутреннего предсказания для блока изображения составляет 67, множество режимов внутреннего предсказания из 67 режимов внутреннего предсказания, содержащих: планарный режим (значение 0), DC режим (значение 1 ) и угловые режимы со значениями от 2 до 66. Количество множества режимов внутреннего предсказания для блока изображения может быть другими значениями, такими как 35, 48, 71 и так далее.In one implementation form of the present application, the number of the plurality of intra prediction modes for an image block is 67, the plurality of intra prediction modes of 67 intra prediction modes, containing: planar mode (value 0), DC mode (value 1 ), and angular modes with values from 2 to 66. The number of multiple intra prediction modes for a picture block may be other values such as 35, 48, 71, and so on.

В примере количество набора MPMs равно 6, количество набора не-MPM равно 61, количество первого набора режимов внутреннего предсказания равно 3 и количество второго набора режимов внутреннего предсказания равно 58.In the example, the number of the set of MPMs is 6, the number of the non-MPM set is 61, the number of the first set of intra prediction modes is 3, and the number of the second set of intra prediction modes is 58.

В другом примере количество набора MPMs равно 3, количество набора не-MPM равно 64, количество первого набора режимов внутреннего предсказания равно 3 или 6 и количество второго набора режимов внутреннего предсказания равно - 61 или 58.In another example, the number of the set of MPMs is 3, the number of the non-MPM set is 64, the number of the first set of intra prediction modes is 3 or 6, and the number of the second set of intra prediction modes is 61 or 58.

В примере N = 5, M = 6; в другом примере N = 2, M = 6.In the example N = 5, M = 6; in another example N = 2, M = 6.

В одной форме реализации настоящего изобретения каждый режим в первом наборе режимов внутреннего предсказания кодируется с использованием N битов, каждый режим во втором наборе режимов внутреннего предсказания кодируется с использованием M битов.In one embodiment of the present invention, each mode in the first intra prediction mode set is encoded using N bits, each mode in the second intra prediction mode set is encoded using M bits.

В одном примере режимы внутреннего предсказания в первом наборе режимов внутреннего предсказания кодируются с использованием схемы усеченной бинаризации, по меньшей мере, один режим в первом наборе режимов внутреннего предсказания кодируется с использованием N битов и, по меньшей мере, один режим в первом наборе режимов внутреннего предсказания кодируется с использованием менее N бит.In one example, the intra prediction modes in the first intra prediction mode set are encoded using a truncated binarization scheme, at least one mode in the first intra prediction mode set is encoded using N bits, and at least one mode in the first intra prediction mode set encoded using less than N bits.

В одной форме реализации настоящего приложения указание, указывающая режим внутреннего предсказания для блока изображения, находится в наборе MPMs или нет, является флагом, когда значение флага равно 1, может указывать, что режим внутреннего предсказания для блока изображения находится в наборе MPMs, когда значение флага равно 0, может указывать на то, что режим внутреннего предсказания для блока изображения не входит в набор MPMs. Например, на стороне кодера, если MPM список представляет собой набор внутренних режимов, скажем: [20,40, 60] и текущее значение внутреннего режима блоков равно 40, тогда указание флага MPM устанавливается на 1 как внутренний режим для текущего блока находится во второй записи MPM списка. Если, например, текущий внутренний режим блоков равен 41 вместо 40, тогда указание флага MPM устанавливается на 0, флаг MPM отправляется на сторону декодирования в закодированных данных.In one implementation form of the present application, an indication indicating the intra prediction mode for the image block is in the MPMs set or not, is a flag when the flag value is 1, may indicate that the intra prediction mode for the image block is in the MPMs set when the flag value is equal to 0 may indicate that the intra prediction mode for the image block is not included in the set of MPMs. For example, on the encoder side, if the MPM list is a set of internal modes, say: [20,40, 60] and the current block internal mode value is 40, then the MPM flag indication is set to 1 as the internal mode for the current block is in the second entry MPM list. If, for example, the current internal block mode is 41 instead of 40, then the indication of the MPM flag is set to 0, the MPM flag is sent to the decoding side in the encoded data.

В одном примере, если указание, указывающая режим внутреннего предсказания для блока изображения, находится в наборе MPMs. Процесс получения режима внутреннего предсказания для блока (IntraPredModeY [xPb] [yPb]) изображения определяется следующим образом:In one example, if an indication indicating the intra prediction mode for an image block is in a set of MPMs. The process for obtaining the intra prediction mode for a block (IntraPredModeY [xPb] [yPb]) of an image is defined as follows:

Если intra_luma_mpm_flag [xPb] [yPb] равно 1 (что указывает на то, что режим внутреннего предсказания для блока изображения находится в наборе MPMs), IntraPredModeY [xPb] [yPb] устанавливается равным candModeList [intra_luma_mpm_idx [xPb] [ yPb]], где (xPb, yPb) указывает верхнюю левую выборку текущего блока предсказания яркости относительно верхней левой выборки яркости текущего изображения, и candModeList является фактическим MPM списком, декодирующий закодированные данные для получения MPM индекса, получение режима внутреннего предсказания блока изображения согласно MPM индексу и MPM списку.If intra_luma_mpm_flag[xPb][yPb] is 1 (indicating that the intra-prediction mode for the image block is in the MPMs set), IntraPredModeY[xPb][yPb] is set to candModeList[intra_luma_mpm_idx[xPb][yPb]], where (xPb, yPb) indicates the upper left sample of the current luma prediction block relative to the upper left luma sample of the current image, and candModeList is the actual MPM list decoding the encoded data to obtain an MPM index, obtaining an intra prediction mode of the image block according to the MPM index and the MPM list.

В конкретном примере набор MPMs равен (15, 0, 20), значение MPM индекса равно 2, поэтому режим внутреннего предсказания блока изображения является планарным режимом (значение 0). В другом конкретном примере набор MPMs равен (15, 36, 0, 1, 21, 19), значение MPM индекса равно 5, поэтому режим внутреннего предсказания блока изображения представляет собой угловой режим 21.In a specific example, the set of MPMs is (15, 0, 20), the index MPM value is 2, so the image block intra prediction mode is planar mode (value 0). In another specific example, the set of MPMs is (15, 36, 0, 1, 21, 19), the index MPM value is 5, so the image block intra prediction mode is angle mode 21.

В одной форме реализации настоящего изобретения, в которой один из, по меньшей мере, одного режима внутреннего предсказания в первом наборе режимов внутреннего предсказания соответствует одному из, по меньшей мере, одного режима внутреннего предсказания в наборе не-MPM.In one embodiment of the present invention, wherein one of the at least one intra prediction mode in the first intra prediction mode set corresponds to one of the at least one intra prediction mode in the non-MPM set.

В примере режимы предсказания в первом наборе режимов внутреннего предсказания являются (17, 25, 6) и отображенные режимы предсказания в наборе не-MPM являются (2, 3, 4), 17

Figure 00000001
2, 25
Figure 00000001
3, 6
Figure 00000001
4.In the example, the prediction modes in the first intra prediction mode set are (17, 25, 6) and the mapped prediction modes in the non-MPM set are (2, 3, 4), 17
Figure 00000001
2.25
Figure 00000001
3, 6
Figure 00000001
four.

В другом примере режимы предсказания в первом наборе режимов внутреннего предсказания являются (2, 16, 28) и отображенные режимы предсказания в наборе не-MPM являются (2, 3, 4), 2

Figure 00000001
2, 16
Figure 00000001
3, 28
Figure 00000001
4.In another example, the prediction modes in the first intra prediction mode set are (2, 16, 28) and the mapped prediction modes in the non-MPM set are (2, 3, 4), 2
Figure 00000001
2, 16
Figure 00000001
3, 28
Figure 00000001
four.

В другом примере режимы предсказания в первом наборе режимов внутреннего предсказания являются (28) и отображенные режимы предсказания в наборе не-MPM являются (3), 28

Figure 00000001
3.In another example, the prediction modes in the first intra prediction mode set are (28) and the mapped prediction modes in the non-MPM set are (3), 28
Figure 00000001
3.

В одной форме реализации настоящего изобретения, в котором отношение отображения генерируется согласно набору MPMs.In one form of implementation of the present invention, in which the mapping relationship is generated according to a set of MPMs.

В одной из форм реализации настоящего изобретения отношение отображения генерируется согласно классификации режимов предсказания в наборе MPMs.In one embodiment of the present invention, a mapping relation is generated according to a classification of prediction modes in a set of MPMs.

В одной форме реализации настоящего изобретения, в которой генерируется отношения отображения между, по меньшей мере, одним режимом внутреннего предсказания в первом наборе режимов внутреннего предсказания и, по меньшей мере, одним режимом внутреннего предсказания в наборе не-MPM, содержащий: ранжирование множества категорий режимов внутреннего предсказания согласно количеству и/или направлению режимов внутреннего предсказания в наборе MPMs, попадающих в каждую категорию режима внутреннего предсказания; генерирование отношения отображения согласно категории режима внутреннего предсказания с наивысшим рангом.In one embodiment of the present invention, which generates mapping relationships between at least one intra prediction mode in the first intra prediction mode set and at least one intra prediction mode in the non-MPM set, comprising: ranking a plurality of mode categories intra prediction according to the number and/or direction of intra prediction modes in the set of MPMs falling into each category of the intra prediction mode; generating a display relation according to the category of the intra prediction mode with the highest rank.

В примере, 5 категорий режима углового внутреннего предсказания, а именно, DC режим (DC_IDX), вертикальный режим (VER_IDX), горизонтальный режим (HOR_IDX), внутренний режим 2 (2), вертикальный диагональный режим (VDIA_IDX) и диагональный режим DIA_IDX, в котором режим углового внутреннего предсказания списка наиболее вероятных режимов, попадающих в каждую категорию режима углового внутреннего предсказания, например, соответствует ассоциированию каждого из режимов углового внутреннего предсказания списка наиболее вероятных режимов с категорией режима углового внутреннего предсказания, наиболее близкой к соответствующему угловому режиму внутреннего предсказания списка наиболее вероятных режимов. В другом примере повторение этого этапа со второй по рангу категории режима углового внутреннего предсказания.In the example, 5 categories of angular intra prediction mode, namely, DC mode (DC_IDX), vertical mode (VER_IDX), horizontal mode (HOR_IDX), intra mode 2 (2), vertical diagonal mode (VDIA_IDX) and diagonal mode DIA_IDX, in in which the angular intra prediction mode of the list of most likely modes falling into each category of the angular intra prediction mode, for example, corresponds to associating each of the angular intra prediction modes of the list of most likely modes with the angular intra prediction mode category closest to the corresponding angular intra prediction mode of the most likely list. possible modes. In another example, repeating this step from the second highest category of the angular intra prediction mode.

В одной форме реализации настоящего изобретения, в которой генерирование отношения отображения между режимом внутреннего предсказания в первом наборе режимов внутреннего предсказания и режимом внутреннего предсказания во втором наборе режимов внутреннего предсказания, содержащее: генерирование исходного набора режимы внутреннего предсказания согласно добавлению смещения к множеству значений, соответствующих набору MPMs; классификацию набора MPMs для получения категории режима внутреннего предсказания с наивысшим рангом; генерирование отношения отображения согласно категории режима внутреннего предсказания с наивысшим рангом и исходному набору режимов внутреннего предсказания.In one embodiment of the present invention, wherein generating a mapping relationship between an intra prediction mode in a first set of intra prediction modes and an intra prediction mode in a second set of intra prediction modes, comprising: generating an initial set of intra prediction modes according to adding an offset to the set of values corresponding to the set MPMs; classifying the set of MPMs to obtain the highest ranked intra prediction mode category; generating a mapping relationship according to the highest ranking intra prediction mode category and the original intra prediction mode set.

В одной форме реализации настоящего изобретения, в которой исходный набор режимов внутреннего предсказания генерируется согласно добавлению смещения -1, + 1, +2, -2, +3, -3, +4 или -4 к множеству значений, соответствующих набору MPMs.In one form of implementation of the present invention, in which the original set of intra prediction modes is generated according to the addition of an offset of -1, +1, +2, -2, +3, -3, +4, or -4 to the set of values corresponding to the set of MPMs.

В одной форме реализации настоящего изобретения, в котором отношение отображения генерируется согласно заранее определенному списку режимов по умолчанию, содержащему или состоящему из планарного режима (PLANAR_IDX), DC режима (DC_IDX), вертикального режима (VER_IDX), горизонтального режима (HOR_IDX), внутреннего режима 2 (2), вертикального диагонального режима (VDIA_IDX) и диагонального режима (DIA_IDX).In one form of implementation of the present invention, in which the display relationship is generated according to a predetermined default mode list containing or consisting of planar mode (PLANAR_IDX), DC mode (DC_IDX), vertical mode (VER_IDX), horizontal mode (HOR_IDX), indoor mode 2 (2), vertical diagonal mode (VDIA_IDX) and diagonal mode (DIA_IDX).

На фиг. 6 показан пример 67 режимов внутреннего предсказания, например, как предложено для VVC, множество режимов внутреннего предсказания из 67 режимов внутреннего предсказания, содержащих: планарный режим (индекс 0), DC режим (индекс 1) и угловые режимы с индексами 2-66, в котором левый нижний угловой режим на фиг. 6 относится к индексу 2, и нумерация индексов увеличивается до тех пор, пока индекс 66 не станет самым верхним правым угловым режимом на фиг. 6.In FIG. 6 shows an example of 67 intra prediction modes, for example, as proposed for VVC, a plurality of intra prediction modes of 67 intra prediction modes containing: planar mode (index 0), DC mode (index 1), and angular modes with indices 2-66, in in which the lower left corner mode in FIG. 6 refers to index 2, and the index numbering is incremented until index 66 is the uppermost right corner mode in FIG. 6.

В примере предлагается схема сигнализации внутренних режимов с 6 MPMs и оставшимся 61 режимами, в которой оставшиеся 61 режимы кодируется с использованием схемы усеченной бинаризации. Остающиеся 61 внутренние режимы также могут быть закодированы с использованием кода фиксированной длины из 6 бит, но недостатком кода фиксированной длины из 6 битов является то, что из 64 возможных кодовых слов используется только 61 кодовое слово, и оставшиеся 3 кодовых слова не используются. Вместо кода фиксированной длины предлагается усеченная бинаризация, которая будет использовать только 5 битов для сигнализации первых 3 оставшихся режимов и остальные 58 режимов затем кодируются с использованием 6 бит.The example proposes an intra mode signaling scheme with 6 MPMs and a remaining 61 modes, in which the remaining 61 modes are encoded using a truncated binarization scheme. The remaining 61 internal modes can also be encoded using a 6-bit fixed-length code, but the disadvantage of a 6-bit fixed-length code is that out of 64 possible codewords, only 61 codewords are used, and the remaining 3 codewords are not used. Instead of a fixed length code, a truncated binarization is proposed which will only use 5 bits to signal the first 3 remaining modes and the remaining 58 modes are then encoded using 6 bits.

Усеченная бинаризация всегда позволяет передавать меньшие кодовые слова с использованием меньшего количества битов по сравнению с более крупными кодовыми словами. Например, как показано на фиг. 6, горизонтальные режимы, начинающиеся с «внутренних режимов 2, 3, 4…», чаще всего передаются с использованием 5 битов. Следовательно, для эффективной сигнализации оставшихся режимов (режимы не-MPM) первые несколько кодовых слов не-MPM отображаются на полученные режимы, которые более вероятны. Например, размер MPM списка равен 6, и внутренние режимы, которые включены в MPM список, равны [18, 30, 0, 1, 66, 24], затем первые три режима в режимах не-MPM, для которых требуется только 5 бит для сигнализации, представляют собой режимы [2,3,4]. Скажем, режимы [2, 3, 4] названы «внутренними режимами кодового слова». Поскольку режимы 2, 3, 4 не всегда могут быть режимами с высокой вероятностью, эти режимы отображаются на представления трех других внутренних режимов, которые более вероятны. Например, скажем, после 6 наиболее вероятных режимов в MPMs, три других режима, которые более вероятны, имеют номера режимов [19, 17, 21]. Допустим, режимы [19, 17, 21] названы «полученными режимами не-MPM». Тогда простой способ убедиться, что режимы 19, 17, 21 используют только 5 бит, представляет собой отображение внутренних режимов [2, 3, 4] с внутренними режимами [19, 17, 21]. По сути, кодер выполняет отображение и сигнализирует о внутренних режимах 19 с внутренним режимом 2, и затем декодер выполняет обратное отображение и отображает внутренний режим 2 с внутренним режимом 19. Более того, это простое отображение сокращает количество операций отсечения для сигнализации не-MPM режимов по сравнению с сигнализацией режимов не-MPM с использованием списка и указанием индекса в списке. В особом случае, если «полученные не-MPM режимы» и «внутренние режимы кодового слова» с наименьшим кодовым словом имеют перекрытие, то гарантируется, что общий внутренний режим для обоих списков отображается вместе. Например, если «внутренние режимы кодового слова» являются [2, 3, 4] и список «полученных не-MPM режимов» является [2, 4, 17], то внутренний режим 2 отображается на внутренний режим 2, режим 3 отображается на режим 17 и режим 4 отображается на режим 4.Truncated binarization always allows smaller codewords to be transmitted using fewer bits compared to larger codewords. For example, as shown in FIG. 6, horizontal modes beginning with “internal modes 2, 3, 4…” are most commonly transmitted using 5 bits. Therefore, for efficient signaling of the remaining modes (non-MPM modes), the first few non-MPM codewords are mapped to received modes that are more likely. For example, the size of the MPM list is 6, and the internal modes that are included in the MPM list are [18, 30, 0, 1, 66, 24], then the first three modes in the non-MPM modes, which require only 5 bits for signaling are modes [2,3,4]. Let's say modes [2, 3, 4] are called "internal codeword modes". Since modes 2, 3, 4 may not always be high probability modes, these modes are mapped to representations of the other three internal modes, which are more likely. For example, let's say after the 6 most likely modes in MPMs, the other three modes that are more likely have mode numbers [19, 17, 21]. Let's say the modes [19, 17, 21] are called "derived non-MPM modes". Then an easy way to make sure modes 19, 17, 21 use only 5 bits is to map internal modes [2, 3, 4] to internal modes [19, 17, 21]. Essentially, the encoder maps and signals intra modes 19 to intrinsic mode 2, and then the decoder demaps and maps intrinsic mode 2 to intrinsic mode 19. Moreover, this simple mapping reduces the number of clipping operations for signaling non-MPM modes by compared to signaling non-MPM modes using a list and specifying an index in the list. In a special case, if the "received non-MPM modes" and the "internal codeword modes" with the smallest codeword have overlap, then it is guaranteed that the common internal mode for both lists is displayed together. For example, if "internal codeword modes" are [2, 3, 4] and the list of "received non-MPM modes" is [2, 4, 17], then internal mode 2 is mapped to internal mode 2, mode 3 is mapped to mode 17 and mode 4 is mapped to mode 4.

Предложено несколько решений для заполнения первых трех режимов списка оставшихся режимов.Several solutions have been proposed to populate the first three modes of the list of remaining modes.

Первые три режима в оставшемся списке режимов можно заполнить несколькими способами.The first three modes in the remaining list of modes can be filled in several ways.

Во-первых, используя режимы из заранее определенного списка режимов по умолчанию, который включает в себя {планарный режим (PLANAR_IDX), DC режим (DC_IDX), вертикальный режим (VER_IDX), горизонтальный режим (HOR_IDX), внутренний режим 2 (2), режим вертикальной диагонали (VDIA_IDX), диагональный режим (DIA_IDX)} (термины в скобках показывают соответствующие термины на фиг. 6, более подробная информация о фиг. 6 приведена ниже);First, using modes from a predefined list of default modes, which includes {planar mode (PLANAR_IDX), DC mode (DC_IDX), vertical mode (VER_IDX), horizontal mode (HOR_IDX), internal mode 2 (2), vertical diagonal mode (VDIA_IDX), diagonal mode (DIA_IDX)} (terms in brackets indicate the corresponding terms in Fig. 6, more details on Fig. 6 are given below);

Во-вторых, с помощью смещения угловых режимов, которые уже присутствуют в MPM списке. Здесь смещение может быть +/- N, где N является возможное целочисленное значение, значение которого равно {1, 2, 3, 4}. Смещения можно было добавить только к первым двум угловым режимам из MPM списка.Secondly, with the help of shifting angular modes, which are already present in the MPM list. Here the offset can be +/- N, where N is a possible integer value whose value is {1, 2, 3, 4}. Offsets could only be added to the first two angular modes from the MPM list.

В-третьих, внутренние режимы несмежных соседей также могут использоваться для заполнения трех режимов. Как показано на фиг. 7, могут использоваться внутренние режимы соседей второго уровня.Third, the internal modes of non-adjacent neighbors can also be used to populate the three modes. As shown in FIG. 7, internal neighbor modes of the second layer may be used.

В-четвертых, как показано на фиг. 6, на первом этапе выбирается данный режим из MPM списка и проверяется, находится ли он «рядом» с одной из следующих категорий режимов {DC_IDX, HOR_IDX, DIA_IDX, VER_IDX, VDIA_IDX}, на втором этапе категории режимов затем «сортируются» на основе «большинства» режимов, которые им близки. На третьем этапе генерируется список оставшихся режимов путем вставки режимов, которые находятся рядом с категорией выигрышных режимов из этапа 2.Fourth, as shown in FIG. 6, in the first step, a given mode is selected from the MPM list and checked if it is "near" one of the following mode categories {DC_IDX, HOR_IDX, DIA_IDX, VER_IDX, VDIA_IDX}, in the second step, the mode categories are then "sorted" based on " most" regimes that are close to them. The third step generates a list of the remaining modes by inserting the modes that are next to the winning mode category from step 2.

В одной форме реализации настоящего изобретения, в которой генерирование отношения отображения между, по меньшей мере, одним режимом внутреннего предсказания в первом наборе режимов внутреннего предсказания и, по меньшей мере, одним режимом внутреннего предсказания в наборе не-MPM, содержащий: набор значений в соответствии со значениями режимов предсказания в наборе MPMs, одно значение в первом наборе значений является наименьшим значением режима предсказания в наборе не-MPM; генерирование второго набора значений согласно добавлению смещения к значению, по меньшей мере, одного режима предсказания в наборе MPMs; генерирование отношения отображения согласно первому набору значений и второму набору значений.In one embodiment of the present invention, wherein generating a mapping relationship between at least one intra prediction mode in the first intra prediction mode set and at least one intra prediction mode in the non-MPM set, comprising: a set of values according to with prediction mode values in the set of MPMs, one value in the first set of values is the smallest prediction mode value in the non-MPM set; generating a second set of values according to adding an offset to a value of at least one prediction mode in the set of MPMs; generating a display relationship according to the first set of values and the second set of values.

В одной из форм реализации настоящего изобретения сторона декодера сначала получает набор MPM для текущего блока, процесс генерирования может ссылаться на соответствующую часть в ITU H.264, ITU H.265 или приведенное выше описание построения candModeList. После получения набора MPM сторона декодера выбирает наименьшее значение режима предсказания в наборе не-MPM как одно значение в первом наборе значений.In one form of implementation of the present invention, the decoder side first obtains the MPM set for the current block, the generation process may refer to the corresponding part in ITU H.264, ITU H.265, or the above description of constructing candModeList. After receiving the MPM set, the decoder side selects the smallest prediction mode value in the non-MPM set as one value in the first value set.

В примере, первый набор значений содержит три наименьших значения в наборе не-MPM, если значения режимов предсказания в наборе MPM равны (0, 1, 3, 5, 8, 10), то первый набор значений равен (2, 4, 6).In the example, the first set of values contains the three smallest values in the non-MPM set, if the values of the prediction modes in the MPM set are (0, 1, 3, 5, 8, 10), then the first set of values is (2, 4, 6) .

В другом примере первый набор значений содержит два наименьших значения в наборе не-MPM, если значения режимов предсказания в наборе MPM равны (0, 1, 3, 5, 8, 10), то первый набор значений равен (2, 4).In another example, the first set of values contains the two smallest values in the non-MPM set, if the values of the prediction modes in the MPM set are (0, 1, 3, 5, 8, 10), then the first set of values is (2, 4).

В одном примере смещение -1, +1, +2, -2, +3, -3, +4 или -4 добавляется к множеству значений, соответствующих набору MPMs.In one example, an offset of -1, +1, +2, -2, +3, -3, +4, or -4 is added to the set of values corresponding to the set of MPMs.

В одной форме реализации настоящего изобретения, в которой генерирование отношения отображения между, по меньшей мере, одним режимом внутреннего предсказания в первом наборе режимов внутреннего предсказания и, по меньшей мере, одним режимом внутреннего предсказания в наборе не-MPM, содержащее: набор значений в соответствии со значениями режимов предсказания в наборе MPMs, одно значение в первом наборе значений является наименьшим значением режима предсказания в наборе не-MPM; генерирование второго набора значений в соответствии с добавлением смещения к значению, по меньшей мере, одного режима углового предсказания в наборе MPMs; генерирование отношения отображения согласно первому набору значений и второму набору значений.In one embodiment of the present invention, wherein generating a mapping relationship between at least one intra prediction mode in the first intra prediction mode set and at least one intra prediction mode in the non-MPM set, comprising: a set of values according to with prediction mode values in the set of MPMs, one value in the first set of values is the smallest prediction mode value in the non-MPM set; generating a second set of values in accordance with adding an offset to a value of at least one angle prediction mode in the set of MPMs; generating a display relationship according to the first set of values and the second set of values.

В примере смещение -1, +1, +2, -2, +3, -3, +4 или -4 добавляется, по меньшей мере, к одному значению, соответствующему, по меньшей мере, одному режиму углового предсказания в наборе MPMs.In the example, an offset of -1, +1, +2, -2, +3, -3, +4 or -4 is added to at least one value corresponding to at least one angle prediction mode in the set of MPMs.

В другом примере смещение -1, +1, +2, -2, +3, -3, +4 или -4 добавляется к значениям, соответствующим двум режимам углового предсказания в наборе MPMs.In another example, an offset of -1, +1, +2, -2, +3, -3, +4, or -4 is added to the values corresponding to the two angle prediction modes in the set of MPMs.

В одной форме реализации настоящего изобретения количество режимов предсказания во множестве режимов внутреннего предсказания для блока изображения равно 67, количество режимов предсказания в наборе MPMs равно 6, количество режимов предсказания в первом наборе режимов внутреннего предсказания в наборе не-MPM равно 3, и количество режимов предсказания во втором наборе режимов внутреннего предсказания в наборе не-MPM равно 58, в котором генерирование отношения отображения между, по меньшей мере, одним режимом внутреннего предсказания в первом наборе режимов внутреннего предсказания и, по меньшей мере, в одном режиме внутреннего предсказания в наборе не-MPM, содержащий: получение трех наименьших значений трех режимов предсказания в наборе не-MPM согласно значениям режимов предсказания в наборе МРМs; получение двух значений двух режимов углового предсказания в наборе MPMs, добавление смещения к двум значениям для получения значений смещения; получение второго набора значений согласно значениям режимов предсказания в наборе MPMs и значениям смещения; генерирование отношения отображения согласно первому набору значений и второму набору значений.In one embodiment of the present invention, the number of prediction modes in the set of intra prediction modes for an image block is 67, the number of prediction modes in the set of MPMs is 6, the number of prediction modes in the first set of intra prediction modes in the non-MPM set is 3, and the number of prediction modes in the second set of intra prediction modes in the non-MPM set is 58, wherein the generation of a mapping relationship between at least one intra prediction mode in the first set of intra prediction modes and at least one intra prediction mode in the non-MPM set an MPM comprising: obtaining the lowest three values of the three prediction modes in the non-MPM set according to the prediction mode values in the MPMs set; obtaining two values of two angle prediction modes in the set of MPMs, adding an offset to the two values to obtain offset values; obtaining a second set of values according to the values of the prediction modes in the set of MPMs and the offset values; generating a display relationship according to the first set of values and the second set of values.

В одной форме реализации настоящего изобретения, в котором генерирование отношения отображения между, по меньшей мере, одним режимом внутреннего предсказания в первом наборе режимов внутреннего предсказания и, по меньшей мере, одним режимом внутреннего предсказания в наборе не-MPM, содержащий: набор значений в соответствии со значениями режимов предсказания в наборе MPMs, одно значение в первом наборе значений является наименьшим значением режима предсказания в наборе не-MPM; генерирование второго набора значений в соответствии с предварительно определенным списком режимов по умолчанию, содержащим или состоящий из вертикального режима (VER_IDX), горизонтального режима (HOR_IDX), внутреннего режима 2 (2), вертикального диагонального режима (VDIA_IDX) и диагонального режима (DIA_IDX); генерирование отношения отображения согласно первому набору значений и второму набору значений.In one embodiment of the present invention, wherein generating a mapping relationship between at least one intra prediction mode in the first intra prediction mode set and at least one intra prediction mode in the non-MPM set, comprising: a set of values according to with prediction mode values in the set of MPMs, one value in the first set of values is the smallest prediction mode value in the non-MPM set; generating a second set of values according to a predefined default mode list comprising or consisting of vertical mode (VER_IDX), horizontal mode (HOR_IDX), internal mode 2 (2), vertical diagonal mode (VDIA_IDX), and diagonal mode (DIA_IDX); generating a display relationship according to the first set of values and the second set of values.

В примере смещение -1, +1, +2, -2, +3, -3, +4 или -4 добавляется, по меньшей мере, к одному значению, соответствующему, по меньшей мере, одному режиму предсказания в заранее определенном списке режимов по умолчанию.In the example, an offset of -1, +1, +2, -2, +3, -3, +4, or -4 is added to at least one value corresponding to at least one prediction mode in a predetermined list of modes default.

В примере смещение -1, +1, +2, -2, +3, -3, +4 или -4 добавляется, по меньшей мере, к одному значению, соответствующему, по меньшей мере, одному режиму углового предсказания в предварительно определенном списке режимов по умолчанию.In the example, an offset of -1, +1, +2, -2, +3, -3, +4 or -4 is added to at least one value corresponding to at least one angle prediction mode in a predefined list default modes.

В одном примере смещение -1, +1, +2, -2, +3, -3, +4 или -4 добавляется к двум значениям, соответствующим двум режимам углового предсказания в заранее определенном списке режимов по умолчанию.In one example, an offset of -1, +1, +2, -2, +3, -3, +4, or -4 is added to two values corresponding to two angle prediction modes in a predetermined list of default modes.

В одной форме реализации настоящего изобретения, в котором генерирование отношения отображения между, по меньшей мере, одним режимом внутреннего предсказания в первом наборе режимов внутреннего предсказания и, по меньшей мере, одним режимом внутреннего предсказания в наборе не-MPM, содержащий: набор значений в соответствии со значениями режимов предсказания в наборе MPMs, одно значение в первом наборе значений является наименьшим значением режима предсказания в наборе не-MPM; генерирование второго набора значений в соответствии с заранее определенным списком режимов по умолчанию, содержащим или состоящий из планарного режима (PLANAR_IDX), DC режима (DC_IDX), вертикального режима (VER_IDX), горизонтального режима (HOR_IDX), внутреннего режима 2 (2), вертикально-диагонального режима (VDIA_IDX) и диагонального режима (DIA_IDX); генерирование отношения отображения согласно первому набору значений и второму набору значений.In one embodiment of the present invention, wherein generating a mapping relationship between at least one intra prediction mode in the first intra prediction mode set and at least one intra prediction mode in the non-MPM set, comprising: a set of values according to with prediction mode values in the set of MPMs, one value in the first set of values is the smallest prediction mode value in the non-MPM set; generating a second set of values according to a predefined list of default modes, containing or consisting of planar mode (PLANAR_IDX), DC mode (DC_IDX), vertical mode (VER_IDX), horizontal mode (HOR_IDX), internal mode 2 (2), vertical - diagonal mode (VDIA_IDX) and diagonal mode (DIA_IDX); generating a display relationship according to the first set of values and the second set of values.

В одной форме реализации настоящего изобретения, в которой кодовое слово режима внутреннего предсказания кодируется с использованием 5 битов, и кодовое слово режима внутреннего предсказания является одним из 00000, 00001 или 00010.In one embodiment of the present invention, in which the intra prediction mode codeword is encoded using 5 bits, and the intra prediction mode codeword is one of 00000, 00001, or 00010.

В примере сторона декодирования декодирует кодовое слово для получения исходного значения, например, если кодовое слово равно 00001, тогда исходное значение равно 1.In the example, the decoding side decodes the codeword to obtain the original value, for example, if the codeword is 00001, then the original value is 1.

Затем сравнить исходное значение с каждым значением, соответствующим режиму предсказания в наборе MPMs, если исходное значение больше или равно значению, соответствующему режиму предсказания в наборе MPMs, исходное значение увеличивается на единицу, повторить этот этап, пока все значения в наборе MPMs не будут сравнены с исходным значением и не получат окончательное значение.Then compare the original value with each value corresponding to the prediction mode in the MPMs set, if the original value is greater than or equal to the value corresponding to the prediction mode in the MPMs set, increase the original value by one, repeat this step until all values in the MPMs set are compared with original value and will not receive the final value.

Например, скорректировать значения, соответствующие набору MPMs в порядке возрастания, скорректированные значения, соответствующие набору MPMs, будут равны (0, 1, 4, 6, 8, 10); кодовое слово является 00001, на первом этапе, поскольку 1 больше первого значения, соответствующего набору MPMs, это исходное значение 1 увеличивается на единицу и значение поправки равно 2; на втором этапе, поскольку 2 больше, чем во втором значении, соответствующем набору MPMs, другое значение поправки 3 получается согласно приращению от одного до 2; и поскольку 3 меньше третьего значения, соответствующего набору MPMs, получается окончательное значение 3. И, если конечное значение 3 отсутствует в наборе отображения, конечное значение 3 является значением, соответствующим режиму внутреннего предсказания блока изображения, поэтому режим внутреннего предсказания блока изображения представляет собой угловой режим 3.For example, to adjust the values corresponding to a set of MPMs in ascending order, the adjusted values corresponding to a set of MPMs will be (0, 1, 4, 6, 8, 10); the codeword is 00001, in the first step, since 1 is greater than the first value corresponding to the set of MPMs, this initial value of 1 is increased by one and the correction value is 2; in the second step, since 2 is greater than the second value corresponding to the set of MPMs, another correction value of 3 is obtained by incrementing from one to 2; and since 3 is less than the third value corresponding to the set of MPMs, the final value is 3. And, if the end value of 3 is not in the display set, the end value of 3 is the value corresponding to the intra prediction mode of the image block, so the intra prediction mode of the image block is angular mode 3.

Если конечное значение 3 находится в наборе отображения, отображаемое значение (например, 17) является значением, соответствующим режиму внутреннего предсказания блока изображения, поэтому режим внутреннего предсказания блока изображения является угловым режимом 17. В некоторых примерах, отображаемое значение может быть таким же, как конечное значение, например, если конечное значение 3 находится в наборе отображения, то отображаемое значение также присутствует, поэтому режим внутреннего предсказания блока изображения является угловым режимом 3.If the end value 3 is in the display set, the display value (for example, 17) is the value corresponding to the intra prediction mode of the image block, so the intra prediction mode of the image block is angle mode 17. In some examples, the display value may be the same as the end value, for example, if the end value 3 is in the display set, then the display value is also present, so the image block intra prediction mode is angular mode 3.

В другом аспекте настоящего изобретения предложен декодер, содержащий схему обработки, для выполнения вышеупомянутых способов декодирования.In another aspect of the present invention, a decoder is provided, comprising a processing circuit, for performing the above decoding methods.

В другом аспекте настоящего изобретения раскрыт компьютерный программный продукт, содержащий программный код для выполнения вышеуказанных способов декодирования.In another aspect of the present invention, a computer program product is disclosed, comprising program code for performing the above decoding methods.

В другом аспекте настоящего изобретения раскрывается декодер для декодирования видеоданных, в котором декодер содержит: один или несколько процессоров; и постоянный машиночитаемый носитель данных, соединенный с процессорами и хранящий программы для выполнения процессорами, в котором, когда программа выполняется процессорами, конфигурирует декодер выполнить вышеуказанные способы декодирования.In another aspect of the present invention, a decoder for decoding video data is disclosed, wherein the decoder comprises: one or more processors; and a persistent computer-readable storage medium coupled to the processors and storing programs for execution by the processors, in which, when the program is executed by the processors, configures the decoder to perform the above decoding methods.

Схема обработки может быть реализована аппаратным обеспечением или в сочетании аппаратного и программного обеспечения, например, с помощью программируемого процессора или подобного.The processing circuitry may be implemented in hardware or in a combination of hardware and software, such as with a programmable processor or the like.

В другом аспекте настоящего изобретения раскрывается способ кодирования, который содержит:In another aspect of the present invention, an encoding method is disclosed which comprises:

при получении режима внутреннего предсказания блока изображения из множества режимов внутреннего предсказания, множество режимов внутреннего предсказания для блока изображения содержит набор наиболее вероятных режимов, MPM и набор не-MPM, в котором набор не-MPM содержит первый набор режимов внутреннего предсказания и второй набор режимов внутреннего предсказания;when obtaining an intra prediction mode of an image block from a plurality of intra prediction modes, the plurality of intra prediction modes for an image block comprises a set of most likely modes, an MPM, and a non-MPM set, in which the non-MPM set comprises a first intra prediction mode set and a second intra prediction mode set. predictions;

если режим внутреннего предсказания блока изображения находится в наборе не-MPM, генерирование отношения отображения между, по меньшей мере, одним режимом внутреннего предсказания в первом наборе режимов внутреннего предсказания и, по меньшей мере, одним режимом внутреннего предсказания в наборе не-MPM;if the intra prediction mode of the image block is in the non-MPM set, generating a mapping relationship between at least one intra prediction mode in the first intra prediction mode set and at least one intra prediction mode in the non-MPM set;

Кодирование режима внутреннего предсказания блока изображения для получения кодового слова режима внутреннего предсказания согласно отношению отображения.Encoding the intra prediction mode of the image block to obtain an intra prediction mode codeword according to the mapping relation.

В одной форме реализации настоящего изобретения процесс получения режима внутреннего предсказания блока изображения может относиться к относительному изобретению в приведенном ниже подробном описании части вариантов осуществления или к относительному изобретению в области технологии кодирования видео, такой как в ITU-T H.264, ITU-T H.265.In one form of implementation of the present invention, the process of obtaining the intra prediction mode of a picture block may refer to a relative invention in the following detailed description of a part of the embodiments, or to a relative invention in the field of video coding technology such as in ITU-T H.264, ITU-T H .265.

В одной из форм реализации настоящего изобретения способ кодирования дополнительно содержит: генерирование набора MPMs, определение, находится ли режим внутреннего предсказания блока изображения в наборе MPMs. Следовательно, если режим внутреннего предсказания блока изображения не входит в набор MPMs, то режим внутреннего предсказания блока изображения находится в наборе не-MPM.In one form of implementation of the present invention, the coding method further comprises: generating a set of MPMs, determining whether the intra prediction mode of the image block is in the set of MPMs. Therefore, if the intra prediction mode of the picture block is not in the set of MPMs, then the intra prediction mode of the picture block is in the set of non-MPMs.

Процесс генерирования набора MPM может относиться к относительному изобретению в части описания или относительному изобретению в области технологии кодирования видео, например, в ITU-T H.264, ITU-T H.265.The process of generating a set of MPMs may refer to a relative invention in the description part or a relative invention in the field of video coding technology, for example, in ITU-T H.264, ITU-T H.265.

В одной форме реализации настоящего изобретения процесс генерирования отношения отображения между, по меньшей мере, одним режимом внутреннего предсказания в первом наборе режимов внутреннего предсказания и, по меньшей мере, одним режимом внутреннего предсказания в наборе не-MPM может относиться к относительному изобретение на стороне декодирования.In one embodiment of the present invention, the process of generating a mapping relationship between at least one intra prediction mode in the first intra prediction mode set and at least one intra prediction mode in the non-MPM set may relate to a relative invention on the decoding side.

В одной из форм реализации настоящего изобретения первый набор режимов внутреннего предсказания кодируется с использованием 5 битов и второй набор режимов внутреннего предсказания кодируется с использованием 6 битов.In one embodiment of the present invention, a first set of intra prediction modes is encoded using 5 bits and a second set of intra prediction modes is encoded using 6 bits.

В другом аспекте настоящего изобретения предоставляется кодер, содержащий схему обработки, для выполнения вышеуказанных способов кодирования.In another aspect of the present invention, an encoder is provided, comprising a processing circuit, for performing the above encoding methods.

В другом аспекте настоящего изобретения предоставляется компьютерный программный продукт, который содержит программный код для выполнения вышеуказанных способов кодирования.In another aspect of the present invention, a computer program product is provided that contains program code for performing the above encoding methods.

В другом аспекте настоящего изобретения предоставляется кодер для кодирования видеоданных, в котором кодер содержит: один или несколько процессоров; и постоянный машиночитаемый носитель данных, соединенный с процессорами и хранящий программы для выполнения процессорами, в котором когда выполняется программа процессорами, конфигурирование кодера для выполнения вышеупомянутых способов кодирования.In another aspect of the present invention, an encoder for encoding video data is provided, wherein the encoder comprises: one or more processors; and a persistent computer-readable storage medium coupled to the processors and storing programs for execution by the processors, in which, when the program is executed by the processors, configuring the encoder to perform the aforementioned encoding methods.

Схема обработки может быть реализована аппаратным обеспечением или в сочетании аппаратного и программного обеспечения, например, с помощью программируемого процессора или подобного.The processing circuitry may be implemented in hardware or in a combination of hardware and software, such as with a programmable processor or the like.

В одной из форм реализации настоящего изобретения, согласно фиг. 8, настоящее изобретение раскрывает способ декодирования видео, содержащий:In one embodiment of the present invention, as shown in FIG. 8, the present invention discloses a video decoding method comprising:

S801: декодирование закодированных данных блока изображения для получения режима внутреннего предсказания из множества режимов внутреннего предсказания для блока изображения;S801: decoding the encoded image block data to obtain an intra prediction mode from a plurality of intra prediction modes for the image block;

множество режимов внутреннего предсказания для блока изображения содержит набор наиболее вероятных режимов, MPM и набор не-MPM, в котором набор не-MPM содержит первый набор режимов внутреннего предсказания и второй набор режимов внутреннего предсказания, в котором один режим в первом наборе режимов внутреннего предсказания кодируется с использованием N битов, один режим во втором наборе режимов внутреннего предсказания кодируется с использованием M битов, N и M являются положительными целыми числами, N меньше M,the set of intra prediction modes for an image block contains a set of most likely modes, MPM, and a set of non-MPM, in which the set of non-MPM contains the first set of intra prediction modes and the second set of intra prediction modes, in which one mode in the first set of intra prediction modes is encoded using N bits, one mode in the second set of intra prediction modes is encoded using M bits, N and M are positive integers, N is less than M,

Декодирование закодированных данных для получения режима внутреннего предсказания из множества режимов внутреннего предсказания для блока изображения (S801), содержащее:Decoding encoded data to obtain an intra prediction mode from a plurality of intra prediction modes for an image block (S801), comprising:

S802: декодирование кодированных данных для получения указания, указывающее, находится ли режим внутреннего предсказания для блока изображения в наборе MPMs или нет; если указание, указывающее, что режим внутреннего предсказания для блока изображения, не входит в набор MPMs,S802: decoding encoded data to obtain an indication indicating whether the intra prediction mode for the image block is in the set of MPMs or not; if an indication indicating that the intra prediction mode for the image block is not included in the set of MPMs,

S803: генерирование отношения отображения между, по меньшей мере, одним режимом внутреннего предсказания в первом наборе режимов внутреннего предсказания и, по меньшей мере, одним режимом внутреннего предсказания в наборе не-MPM;S803: generating a mapping relationship between at least one intra prediction mode in the first intra prediction mode set and at least one intra prediction mode in the non-MPM set;

S804: декодирование кодированных данных для получения кодового слова режима внутреннего предсказания для блока изображения;S804: decoding the encoded data to obtain an intra prediction mode codeword for the image block;

S805: получение режима внутреннего предсказания для блока изображения в соответствии с соотношением отображения и кодовым словом режима внутреннего предсказания.S805: Obtaining an intra prediction mode for an image block according to a display ratio and an intra prediction mode codeword.

Согласно способу декодирования видео настоящего изобретения, для кодирования режимов предсказания может использоваться схема усеченной бинаризации в наборе не-MPM, и генерируется отношение отображения, следовательно, режим предсказания для текущего блока имеет более высокую вероятность при кодировании использовать меньше битов, и на стороне декодера уменьшается вычислительная сложность.According to the video decoding method of the present invention, a truncated binarization scheme in a non-MPM set can be used to encode prediction modes, and a mapping relation is generated, therefore, the prediction mode for the current block has a higher probability of using fewer bits in encoding, and the computational cost is reduced at the decoder side. complexity.

В одной из форм реализации настоящего изобретения, согласно фиг. 9, настоящее изобретение раскрывает способ декодирования видео, содержащий:In one embodiment of the present invention, as shown in FIG. 9, the present invention discloses a video decoding method comprising:

S901: принять закодированные данные блока изображения;S901: receive encoded picture block data;

Сторона декодера может быть выполнена с возможностью принимать данные кодированного изображения через прямую линию связи между стороной кодера и стороной декодера, например, прямое проводное или беспроводное соединение или через любую сеть, например, проводную или беспроводную сеть или любую их комбинацию, или любую частную и общественную сеть, или любую их комбинацию.The decoder side may be configured to receive encoded image data via a direct link between the encoder side and the decoder side, such as a direct wired or wireless connection, or through any network, such as a wired or wireless network or any combination thereof, or any private or public network, or any combination of them.

S902: декодировать закодированные данные для получения указания, указывающей, находится ли режим внутреннего предсказания для блока изображения в наборе MPMs или нет;S902: decode the encoded data to obtain an indication indicating whether the intra prediction mode for the image block is in the set of MPMs or not;

Указание, указывающее, находится ли режим внутреннего предсказания для блока изображения в наборе MPMs или нет, может быть флагом. Когда значение флага равно 1, может указывать, что режим внутреннего предсказания для блока изображения находится в наборе MPMs, когда значение флага равно 0, может указывать, что режим внутреннего предсказания для блока изображения не находится в набор МРМs. Например, на стороне кодера, если MPM список (набор MPMs) является набором внутренних режимов [25, 42, 63] и текущее значение внутреннего режима блоков равно 42, то указание флага MPM устанавливается на 1 поскольку внутренний режим для текущего блока находится во второй записи списка MPM. Если, например, внутренний режим текущего блока равен 41 вместо 42, тогда указание флага MPM устанавливается на 0, флаг MPM отправляется на сторону декодера в закодированных данных.An indication indicating whether the intra prediction mode for the image block is in the set of MPMs or not may be a flag. When the flag value is 1, it may indicate that the intra prediction mode for the image block is in the MPMs set, when the flag value is 0, it may indicate that the intra prediction mode for the image block is not in the MPMs set. For example, on the encoder side, if the MPM list (set of MPMs) is the set of intrinsic modes [25, 42, 63] and the current value of the intrinsic mode of the blocks is 42, then the MPM flag indication is set to 1 because the intrinsic mode for the current block is in the second entry. MPM list. If, for example, the internal mode of the current block is 41 instead of 42, then the indication of the MPM flag is set to 0, the MPM flag is sent to the decoder side in the encoded data.

Если указание, указывающая режим внутреннего предсказания для блока изображения, находится в наборе MPMs, выполните этап S903.If an indication indicating the intra prediction mode for the image block is in the set of MPMs, execute step S903.

Если указание, указывающее режим внутреннего предсказания для блока изображения, отсутствует в наборе MPMs, выполнить этап S904.If an indication indicating the intra prediction mode for the image block is not present in the set of MPMs, execute step S904.

S903: декодировать закодированные данные для получения режима внутреннего предсказания для блока изображения согласно набору MPMs;S903: decode the encoded data to obtain an intra prediction mode for the image block according to the set of MPMs;

В одном примере, если указание, указывающее режим внутреннего предсказания для блока изображения, находится в наборе MPMs. Процесс вывода для режима внутреннего предсказания для блока (IntraPredModeY [xPb] [yPb]) изображения определяется следующим образом:In one example, if an indication indicating the intra prediction mode for an image block is in a set of MPMs. The output process for the block intra prediction mode (IntraPredModeY [xPb] [yPb]) of an image is defined as follows:

Если intra_luma_mpm_flag [xPb] [yPb] равно 1 (что указывает, что режим внутреннего предсказания для блока изображения находится в наборе MPMs), IntraPredModeY [xPb] [yPb] устанавливается равным candModeList [intra_luma_mpm_idx [xPb] [yPb]], где (xPb, yPb) указывает верхнюю левую выборку текущего блока предсказания яркости относительно верхней левой выборки яркости текущего изображения, и candModeList является фактическим MPM списком, декодировать кодированные данные для получения MPM индекса, получить режим внутреннего предсказания блока изображения согласно MPM индексу и MPM списку.If intra_luma_mpm_flag [xPb] [yPb] is 1 (indicating that the intra prediction mode for the image block is in the MPMs set), IntraPredModeY [xPb] [yPb] is set equal to candModeList [intra_luma_mpm_idx [xPb] [yPb]], where (xPb , yPb) indicates the top left sample of the current luma prediction block relative to the top left luma sample of the current image, and candModeList is the actual MPM list, decode the encoded data to obtain the MPM index, obtain the intra prediction mode of the image block according to the MPM index and the MPM list.

В конкретном примере набор MPMs равен (15, 0, 20), значение MPM индекса равно 2, поэтому режим внутреннего предсказания блока изображения является планарным режимом (значение 0). В другом конкретном примере набор MPMs равен (15, 36, 0, 1, 21, 19), значение MPM индекса равно 5, поэтому режим внутреннего предсказания блока изображения является угловым режимом 21. MPM индекс указывает позицию режима внутреннего предсказания для блока изображения в наборе MPMs.In a specific example, the set of MPMs is (15, 0, 20), the index MPM value is 2, so the image block intra prediction mode is planar mode (value 0). In another specific example, the set of MPMs is (15, 36, 0, 1, 21, 19), the MPM index value is 5, so the intra prediction mode of the image block is angle mode 21. The MPM index indicates the position of the intra prediction mode for the image block in the set MPMs.

S904: генерирование отношения отображения между, по меньшей мере, одним режимом внутреннего предсказания в первом наборе режимов внутреннего предсказания и, по меньшей мере, одним режимом внутреннего предсказания в наборе не-MPM;S904: generating a mapping relationship between at least one intra prediction mode in the first intra prediction mode set and at least one intra prediction mode in the non-MPM set;

В одном примере, если указание, указывающее режим внутреннего предсказания для блока изображения, отсутствует в наборе MPMs, составляются два списка: а именно, список кодовых слов и список полученных режимов.In one example, if an indication indicating the intra prediction mode for an image block is not present in the set of MPMs, two lists are compiled: namely, a list of codewords and a list of received modes.

Например, первый список кодовых слов составляется следующим образом:For example, the first list of codewords is composed as follows:

1. Найти наименьший режим в MPM списке, предположим, что наименьший режим является Ms.1. Find the smallest mode in the MPM list, suppose the smallest mode is Ms.

2. Установить переменную исходного приращения Inc = 1.2. Set the initial increment variable Inc = 1.

3. Установить кандидата режима Mc как (Ms + Inc), проверить, есть ли режим Mc также в MPM списке.3. Set Mc mode candidate as (Ms + Inc), check if Mc mode is also in MPM list.

если Mc отсутствует в MPM списке, добавить Mc в список кодовых словif Mc is not in the MPM list, add Mc to the codeword list

в противном случае, перейдите к этапу 4.otherwise, go to step 4.

4. Проверить, заполнены ли вставленные записи в списке кодовых слов (длина вставки равна длине списка кодовых слов):4. Check if the inserted entries in the list of codewords are full (the length of the insertion is equal to the length of the list of codewords):

Если заполнено, завершить выполнение операции;If filled, complete the operation;

В противном случае, установить Inc = Inc + 1 и перейдите к этапу 3.Otherwise, set Inc = Inc + 1 and go to step 3.

Подводя итог, список кодовых слов будет содержать наименьшие режимы, кроме тех, которые присутствовали в MPM списке. Учитывая, что длина MPM списка равна L, длина списка кодовых слов составляет 64-(67-L) = L-3. Например, если MPM список равен (15, 36, 0, 1, 21, 19), то сформированное кодовое слово представляет собой (2, 3, 4).To sum up, the list of codewords will contain the smallest modes other than those present in the MPM list. Given that the length of the MPM list is L, the length of the codeword list is 64-(67-L)=L-3. For example, if the MPM list is (15, 36, 0, 1, 21, 19), then the generated codeword is (2, 3, 4).

Второй список полученных режимов строится следующим образом:The second list of received modes is constructed as follows:

1. Найти первые две угловые режима в MPM списке, предполагая, что найдены angular0 и angular1.1. Find the first two angular modes in the MPM list, assuming you have found angular0 and angular1.

2. Установить переменную исходного приращения Inc = 1.2. Set the initial increment variable Inc = 1.

3. Получить новый режим M0minus = angular0 - Inc. Примечание M0minus должен быть гарантирован также угловой режим (т.е. 66> = M0minus> = 2). Следовательно, если angular0 равен 2, Inc равен 1; тогда полученное M0minus будет равно 66; если Inc равно 2, тогда M0minus равно 65 и т. д. Операция «минус» завершится до максимального углового режима.3. Get new mode M0 minus = angular0 - Inc. Note M0 minus must also guarantee the angular operation (ie 66>= M0 minus >= 2). Therefore, if angular0 is 2, Inc is 1; then the resulting M0 minus will be equal to 66; if Inc is 2, then M0 minus is 65, and so on. The minus operation will complete before the maximum angular mode.

4. Проверить, есть ли M0minus в MPM списке, если нет и, если список полученных режимов не полон, вставить M0minus в список полученных режимов. Иначе,4. Check if M0 minus is in the MPM list, if not, and if the list of received modes is not complete, insert M0 minus into the list of received modes. Otherwise,

Если список полученных режимов полон, прекратить.If the list of received modes is full, stop.

В противном случае переходить к этапу 5.Otherwise, go to step 5.

5. Получить новый режим M0plus = angular0 + Inc. Обратите внимание, что M0plus также должен быть гарантирован угловой режим (т.е. 66> = M0plus> = 2). Следовательно, если angular0 равно 66, Inc равно 1, то полученное значение M0plus будет равно 2, если Inc равно 2, то M0plus будет равно 3 и т.д. Операция «плюс» завершится до минимального углового режима.5. Get new mode M0 plus = angular0 + Inc. Please note that M0 plus must also be guaranteed angular mode (i.e. 66 >= M0 plus >= 2). Therefore, if angular0 is 66, Inc is 1, then M0 plus will be 2, if Inc is 2, then M0 plus will be 3, and so on. The plus operation will complete before the minimum angular mode.

6. Проверить, есть ли M0plus в MPM списке, если нет и, если список полученных режимов не полон, вставить M0plus в список полученных режимов. Иначе,6. Check if M0 plus is in the MPM list, if not, and if the list of received modes is not complete, insert M0 plus into the list of received modes. Otherwise,

Если список полученных режимов полон, прекратить.If the list of received modes is full, stop.

В противном случае, перейти к этапу 7.Otherwise, go to step 7.

7. Повторить этапы 3-6, заменив angular0 на angular1.7. Repeat steps 3-6, replacing angular0 with angular1.

8. Установить Inc = Inc + 1 и повторить этапы 3-7.8. Set Inc = Inc + 1 and repeat steps 3-7.

Подводя итог, список полученных режимов получает соседние режимы первых двух угловых режимов в MPM списке. Если эти соседние режимы уже включены в MPM список, то они исключаются из списка полученных режимов. Учитывая, что длина MPM списка равна L, длина списка полученных режимов составляет 64- (67-L) = L-3. Например, если MPM список равен (15, 36, 0, 1, 21, 19), то составленный список полученных режимов является (14, 16, 35).To sum up, the received mode list gets the neighboring modes of the first two angle modes in the MPM list. If these neighboring modes are already included in the MPM list, then they are excluded from the list of received modes. Considering that the length of the MPM list is L, the length of the received mode list is 64-(67-L)=L-3. For example, if the MPM list is (15, 36, 0, 1, 21, 19), then the compiled list of received modes is (14, 16, 35).

Когда составлены список кодовых слов и список полученных режимов, между ними генерируется отношение двунаправленного отображения. А именно, учитывая приведенные выше примеры списков со списком кодовых слов (2, 3, 4) и списком полученных режимов (14, 16, 35), двунаправленное отображение представляет собой 2

Figure 00000001
14, 3
Figure 00000001
16 и 3
Figure 00000001
35, где
Figure 00000001
представляет собой двунаправленное отображение.When the list of codewords and the list of received modes are compiled, a bidirectional mapping relation is generated between them. Namely, given the above examples of lists with a list of codewords (2, 3, 4) and a list of received modes (14, 16, 35), the bidirectional mapping is 2
Figure 00000001
14, 3
Figure 00000001
16 and 3
Figure 00000001
35, where
Figure 00000001
is a bidirectional display.

Для построения отношения двунаправленного отображения между списком кодовых слов и списком полученных режимов используют два варианта. Первый вариант заключается в том, что список полученных режимов может быть построен таким образом, чтобы могли существовать элементы, как в списке полученных режимов, так и в списке кодовых слов. Другой вариант заключается в том, что список полученных режимов не может перекрываться с режимами в списке кодовых слов.Two options are used to build a bidirectional mapping relationship between a list of codewords and a list of received modes. The first option is that the list of received modes can be constructed in such a way that elements can exist both in the list of received modes and in the list of codewords. Another option is that the list of received modes cannot overlap with the modes in the codeword list.

В другом примере, в одной форме реализации настоящего изобретения, генерирование отношения отображения между, по меньшей мере, одним режимом внутреннего предсказания в первом наборе режимов внутреннего предсказания и, по меньшей мере, одним режимом внутреннего предсказания в наборе не-MPM, содержащий: ранжирование множество категорий режимов внутреннего предсказания согласно количеству и/или направлению режимов внутреннего предсказания в наборе MPMs, находящиеся в каждой категории режима внутреннего предсказания; генерирование отношения отображения согласно категории режима внутреннего предсказания с наивысшим рангом.In another example, in one implementation form of the present invention, generating a mapping relationship between at least one intra prediction mode in the first intra prediction mode set and at least one intra prediction mode in the non-MPM set, comprising: ranking a set intra prediction mode categories according to the number and/or direction of intra prediction modes in the set of MPMs found in each intra prediction mode category; generating a display relation according to the category of the intra prediction mode with the highest rank.

В примере представлены 5 категорий режимов углового внутреннего предсказания, а именно, вертикальный режим (VER_IDX), горизонтальный режим (HOR_IDX), внутренний режим 2 (2), вертикальный диагональный режим (VDIA_IDX) и диагональный режим DIA_IDX. Режим углового внутреннего предсказания списка наиболее вероятных режимов, попадающих в каждую категорию режима углового внутреннего предсказания, например, соответствует ассоциации каждого из режимов углового внутреннего предсказания из списка наиболее вероятных режимов с категорией режима углового внутреннего предсказания, наиболее близкой к соответствующему угловому режиму внутреннего предсказания списка наиболее вероятных режимов. В другом примере повторение этого этапа со второй по рангу категорией режима углового внутреннего предсказания.In the example, there are 5 categories of angular intra prediction modes, namely, vertical mode (VER_IDX), horizontal mode (HOR_IDX), intra mode 2 (2), vertical diagonal mode (VDIA_IDX), and diagonal mode DIA_IDX. The angular intra prediction mode of the list of most likely modes falling into each category of the angular intra prediction mode, for example, corresponds to the association of each of the angular intra prediction modes from the list of most likely modes with the angular intra prediction mode category closest to the corresponding angular intra prediction mode of the list of most likely possible modes. In another example, repeating this step with the second highest category of the angular intra prediction mode.

В примере, в котором генерирование отношения отображения между режимом внутреннего предсказания в первом наборе режимов внутреннего предсказания и режимом внутреннего предсказания во втором наборе режимов внутреннего предсказания, содержащее: генерирование исходного набора режимов внутреннего предсказания согласно добавлению смещения к множеству значений, соответствующих набору MPMs; классификацию набора MPMs для получения категории режима внутреннего предсказания с наивысшим рангом; генерирование отношения отображения согласно категории режима внутреннего предсказания с наивысшим рангом и исходному набору режимов внутреннего предсказания.In an example, in which generating a mapping relationship between an intra prediction mode in the first intra prediction mode set and an intra prediction mode in the second intra prediction mode set, comprising: generating an initial intra prediction mode set according to adding an offset to a set of values corresponding to the set of MPMs; classifying the set of MPMs to obtain the highest ranked intra prediction mode category; generating a mapping relationship according to the highest ranking intra prediction mode category and the original intra prediction mode set.

В примере исходный набор режимов внутреннего предсказания генерируется согласно добавлению смещения -1, + 1, +2, -2, +3, -3, +4 или -4 к множеству значений, соответствующих набору МРМs.In the example, an initial set of intra prediction modes is generated according to adding an offset of -1, +1, +2, -2, +3, -3, +4, or -4 to the set of values corresponding to the set of MPMs.

В примере отношение отображения генерируется согласно заранее определенному списку режимов по умолчанию, содержащему или состоящему из планарного режима (PLANAR_IDX), DC режима (DC_IDX), вертикального режима (VER_IDX), горизонтального режима (HOR_IDX), внутреннего режим 2 (2), вертикального диагонального режима (VDIA_IDX) и режим диагонали (DIA_IDX).In the example, the display relationship is generated according to a predefined default mode list containing or consisting of planar mode (PLANAR_IDX), DC mode (DC_IDX), vertical mode (VER_IDX), horizontal mode (HOR_IDX), indoor mode 2 (2), vertical diagonal mode (VDIA_IDX) and diagonal mode (DIA_IDX).

S905: декодировать кодированные данные для получения кодового слова режима внутреннего предсказания для блока изображения;S905: decode encoded data to obtain an intra prediction mode codeword for the image block;

Кодовое слово кодируется с использованием N бит или M бит на стороне кодирования. В одном примере, поскольку отношение двунаправленного отображения, режим внутреннего предсказания, соответствующий кодовому слову, может быть отображен на другой режим внутреннего предсказания в наборе не-MPM.The codeword is encoded using N bits or M bits on the coding side. In one example, since the relationship is bidirectional mapping, the intra prediction mode corresponding to the codeword can be mapped to another intra prediction mode in the non-MPM set.

S906: получить режим внутреннего предсказания для блока изображения в соответствии с отношением отображения и кодовым словом режима внутреннего предсказания.S906: Obtain the intra prediction mode for the image block according to the display ratio and the intra prediction mode codeword.

В примере, после формирования отношения двунаправленного отображения, проверить, находится ли принятый режим внутреннего предсказания, соответствующий кодовому слову режима внутреннего предсказания, в списке кодовых слов или в списке полученных режимов:In the example, after generating a bidirectional mapping relationship, check if the received intra prediction mode corresponding to the intra prediction mode codeword is in the codeword list or the received mode list:

Если проанализированный режим внутреннего предсказания отсутствует как в списке кодовых слов, так и в списке полученных режимов, установить окончательный режим предсказания как проанализированный режим внутреннего предсказания.If the parsed intra prediction mode is not in both the codeword list and the received modes list, set the final prediction mode as the parsed intra prediction mode.

Если проанализированный режим внутреннего предсказания находится только в списке кодовых слов или только в списке полученных режимов, тогда установить окончательный режим предсказания как соответствующий ему отображенный режим внутреннего предсказания.If the parsed intra prediction mode is only in the codeword list or only in the received mode list, then set the final prediction mode to its corresponding mapped intra prediction mode.

Если проанализированный режим внутреннего предсказания присутствует как в списке кодовых слов, так и в списке полученных режимов, в операцию построения этих двух списков вводится механизм, так что отношение двунаправленного отображения корректируется, и все перекрывающиеся режимы отображаются на себя в другом списке. Пример: MPM список (0 1 2 3 50 66), список кодовых слов является (4 5 6), список полученных режимов (4 65 5). При построении списка полученных режимов или списка кодовых слов мы проверяем 4

Figure 00000001
4, 5
Figure 00000001
5 и 6
Figure 00000001
65.If the parsed intra prediction mode is present in both the codeword list and the acquired mode list, a mechanism is introduced into the construction operation of the two lists so that the bidirectional mapping relationship is adjusted and all overlapping modes are mapped onto themselves in the other list. Example: MPM list is (0 1 2 3 50 66), codeword list is (4 5 6), received mode list is (4 65 5). When constructing a list of received modes or a list of codewords, we check 4
Figure 00000001
4, 5
Figure 00000001
5 and 6
Figure 00000001
65.

Кроме того, предоставляется декодер, содержащий схему обработки для выполнения вышеуказанных способов.In addition, a decoder is provided containing a processing circuit for performing the above methods.

В настоящем изобретении раскрывается компьютерный программный продукт, содержащий программный код, для выполнения вышеуказанных способов.The present invention discloses a computer program product containing program code for performing the above methods.

В настоящем изобретении раскрывается декодер для декодирования видеоданных, в котором декодер содержит: один или несколько процессоров; и постоянный машиночитаемый носитель данных, соединенный с процессорами и хранящий программы для выполнения процессорами, причем когда программа выполняется процессорами, конфигурирует декодер выполнить вышеупомянутые способы.The present invention discloses a decoder for decoding video data, wherein the decoder comprises: one or more processors; and a persistent computer-readable storage medium coupled to the processors and storing programs for execution by the processors, configuring the decoder to perform the above methods when the program is executed by the processors.

В настоящем изобретении предоставляются способ декодирования видео и декодер видео. Способ декодирования видео, содержащий: прием закодированных данных блока изображения блока кодирования; декодирование закодированных данных для идентификации режима внутреннего предсказания из множества режимов внутреннего предсказания для блока изображения, множество режимов внутреннего предсказания содержит набор наиболее вероятных режимов, MPM, первый набор режимов внутреннего предсказания и второй набор режимы внутреннего предсказания, в которых один режим в первом наборе режимов внутреннего предсказания кодируется с использованием N битов, один режим во втором наборе режимов внутреннего предсказания кодируется с использованием M битов, N и M являются положительными целыми числами, N меньше M, который содержит: декодирование кодированных данных для получения указания, указывающее, находится ли режим внутреннего предсказания для блока изображения в наборе MPMs или нет; если указание, указывающее режим внутреннего предсказания для блока изображения, не входит в набор MPMs,In the present invention, a video decoding method and a video decoder are provided. A video decoding method, comprising: receiving encoded image block data of an encoding block; decoding the encoded data to identify an intra prediction mode from the plurality of intra prediction modes for the image block, the plurality of intra prediction modes comprises a set of most probable modes, MPM, a first set of intra prediction modes, and a second set of intra prediction modes, in which one mode in the first set of intra prediction modes prediction is encoded using N bits, one mode in the second set of intra prediction modes is encoded using M bits, N and M are positive integers, N is less than M, which contains: decoding the encoded data to obtain an indication indicating whether the intra prediction mode is for an image block in the MPMs set or not; if the indication indicating the intra prediction mode for the image block is not included in the set of MPMs,

получение кодового слова режима внутреннего предсказания для блока изображения, в котором кодовое слово режима внутреннего предсказания соответствует исходному режиму внутреннего предсказания;obtaining an intra prediction mode codeword for an image block in which the intra prediction mode codeword corresponds to the original intra prediction mode;

если кодовое слово режима внутреннего предсказания для блока изображения закодировано с использованием N битов, отображение исходного режима внутреннего предсказания для получения отображенного режима внутреннего предсказания с использованием отображенного режима внутреннего предсказания в качестве идентифицированного режима внутреннего предсказания для блока изображения;if the intra prediction mode codeword for the image block is encoded using N bits, mapping the original intra prediction mode to obtain a mapped intra prediction mode using the mapped intra prediction mode as the identified intra prediction mode for the image block;

и, если кодовое слово режима внутреннего предсказания для блока изображения закодировано с использованием M битов, использование исходного режима внутреннего предсказания в качестве идентифицированного режима внутреннего предсказания для блока изображения.and, if the intra prediction mode codeword for the image block is encoded using M bits, using the original intra prediction mode as the identified intra prediction mode for the image block.

В одной форме реализации настоящего изобретения количество множества режимов внутреннего предсказания для блока изображения составляет 67, множество режимов внутреннего предсказания из 67 режимов внутреннего предсказания, содержащих: планарный режим (значение 0), DC режим (значение 1) и угловые режимы с индексами от 2 до 66.In one embodiment of the present invention, the number of the plurality of intra prediction modes for an image block is 67, the plurality of intra prediction modes of 67 intra prediction modes, comprising: planar mode (value 0), DC mode (value 1), and angular modes with indices from 2 to 66.

В примере количество набора MPMs равно 6, количество первого набора режимов внутреннего предсказания равно 3 и количество второго набора режимов внутреннего предсказания равно 58.In the example, the number of the set of MPMs is 6, the number of the first set of intra prediction modes is 3, and the number of the second set of intra prediction modes is 58.

В другом примере количество набора MPM равно 3, количество первого набора режимов внутреннего предсказания равно 3 или 6, и количество второго набора режимов внутреннего предсказания равно 61 или 58.In another example, the number of the MPM set is 3, the number of the first intra prediction mode set is 3 or 6, and the number of the second intra prediction mode set is 61 or 58.

В одной форме реализации настоящего изобретения каждый режим в первом наборе режимов внутреннего предсказания кодируется с использованием N битов, каждый режим во втором наборе режимов внутреннего предсказания кодируется с использованием M битов.In one embodiment of the present invention, each mode in the first intra prediction mode set is encoded using N bits, each mode in the second intra prediction mode set is encoded using M bits.

В одном примере режимы внутреннего предсказания в первом наборе режимов внутреннего предсказания кодируются с использованием схемы усеченной бинаризации, по меньшей мере, один режим в первом наборе режимов внутреннего предсказания кодируется с использованием N битов и, по меньшей мере, один режим в первом наборе режимов внутреннего предсказания кодируется с использованием менее N бит.In one example, the intra prediction modes in the first intra prediction mode set are encoded using a truncated binarization scheme, at least one mode in the first intra prediction mode set is encoded using N bits, and at least one mode in the first intra prediction mode set encoded using less than N bits.

В одном примере указание, указывающее, находится ли режим внутреннего предсказания для блока изображения в наборе MPMs или нет, является флагом, когда значение флага равно 1, может указывать, что режим внутреннего предсказания для блока изображения находится в наборе MPMs, когда значение флага равно 0, может указывать, что режим внутреннего предсказания для блока изображения не входит в набор MPMs.In one example, an indication indicating whether the intra prediction mode for an image block is in the MPMs set or not is a flag when the flag value is 1 may indicate that the intra prediction mode for the image block is in the MPMs set when the flag value is 0 , may indicate that the intra prediction mode for the image block is not included in the set of MPMs.

В примере указание, указывающее, что режим внутреннего предсказания для блока изображения находится в наборе MPMs или не является флагом, когда значение флага равно 1, может указывать, что режим внутреннего предсказания для блока изображения находится в наборе MPMs, когда значение флага равно 0, может указывать, что режим внутреннего предсказания для блока изображения не входит в набор MPMs. Например, на стороне кодера, если MPM список представляет собой набор внутренних режимов, скажем: [20,40, 60] и текущее значение внутреннего режима блоков равно 40, тогда указание флага MPM устанавливается на 1, внутренний режим для текущего блока находится во второй записи MPM списка. Если, например, текущий внутренний режим блоков равен 41 вместо 40, тогда указание флага MPM устанавливается на 0.In an example, an indication indicating that the intra prediction mode for the image block is in the MPMs set or is not a flag when the flag value is 1 may indicate that the intra prediction mode for the image block is in the MPMs set when the flag value is 0 may indicate that the intra prediction mode for the image block is not included in the set of MPMs. For example, on the encoder side, if the MPM list is a set of internal modes, say: [20,40, 60] and the current block internal mode value is 40, then the MPM flag indication is set to 1, the internal mode for the current block is in the second entry MPM list. If, for example, the current internal block mode is 41 instead of 40, then the MPM flag indication is set to 0.

В одном примере, если указание, указывающее режим внутреннего предсказания для блока изображения, находится в наборе MPMs. Процесс получения определяется следующим образом: IntraPredModeY [xPb] [yPb] получается путем применения следующей процедуры: если intra_luma_mpm_flag [xPb] [yPb] равно 1, IntraPredModeY [xPb] [yPb] устанавливается равным candModeList [ intra_luma_mpm_idx [xPb] [yPb]], где (xPb, yPb) указывает верхнюю левую выборку текущего блока предсказания яркости относительно верхней левой выборки яркости текущего изображения, и candModeList является фактическим MPM списком. Например, декодирование закодированных данных для получения MPM индекса, получение режима внутреннего предсказания блока изображения согласно MPM индексу и MPM набору. В конкретном примере набор MPMs равен (15, 0, 20), значение MPM индекса равно 2, поэтому режим внутреннего предсказания блока изображения является планарным режимом (значение 0). В другом конкретном примере набор MPMs равен (15, 36, 0, 1, 21, 19), значение MPM индекса равно 5, поэтому режим внутреннего предсказания блока изображения является угловым режимом 21.In one example, if an indication indicating the intra prediction mode for an image block is in a set of MPMs. The acquisition process is defined as follows: IntraPredModeY [xPb] [yPb] is obtained by applying the following procedure: if intra_luma_mpm_flag [xPb] [yPb] is equal to 1, IntraPredModeY [xPb] [yPb] is set equal to candModeList [ intra_luma_mpm_idx [xPb] [yPb]], where (xPb, yPb) indicates the top left sample of the current luma prediction block relative to the top left luma sample of the current image, and candModeList is the actual MPM list. For example, decoding the encoded data to obtain an MPM index, obtaining an intra prediction mode of an image block according to the MPM index and the MPM set. In a specific example, the set of MPMs is (15, 0, 20), the index MPM value is 2, so the image block intra prediction mode is planar mode (value 0). In another specific example, the set of MPMs is (15, 36, 0, 1, 21, 19), the index MPM value is 5, so the intra prediction mode of the image block is angle mode 21.

В одном примере кодовое слово режима внутреннего предсказания для блока изображения соответственно декодирует кодированные данные. Если кодовое слово режима внутреннего предсказания для блока изображения кодируется с использованием M битов, с использованием исходного режима внутреннего предсказания в качестве идентифицированного режима внутреннего предсказания для блока изображения. Например, M равно 6, если кодовое слово режима внутреннего предсказания закодировано как 010011 (например, 6 битов), что соответствует угловому режиму 19, следовательно, идентифицированный режим внутреннего предсказания для блока изображения является угловым режимом 19.In one example, the intra prediction mode codeword for the image block decodes the encoded data accordingly. If an intra prediction mode codeword for an image block is encoded using M bits, using the original intra prediction mode as the identified intra prediction mode for the image block. For example, M is 6 if the intra prediction mode codeword is encoded as 010011 (e.g., 6 bits), which corresponds to angle mode 19, hence the identified intra prediction mode for the image block is angle mode 19.

В одной из форм реализации настоящего изобретения, если указание, указывающее режим внутреннего предсказания для блока изображения, не входит в набор MPMs, составляются два списка: а именно, список кодовых слов и список полученных режимов.In one form of implementation of the present invention, if an indication indicating the intra prediction mode for an image block is not included in the set of MPMs, two lists are compiled: namely, a list of codewords and a list of received modes.

Первый список кодовых слов составлен следующим образом:The first list of code words is composed as follows:

1. Найти наименьший режим в MPM списке, предположим, что наименьший режим является Ms1. Find the smallest mode in the MPM list, suppose the smallest mode is Ms

2. Установить переменную исходного приращения Inc = 1.2. Set the initial increment variable Inc = 1.

3. Установить кандидат режима Ms как (Ms + Inc), проверить, есть ли режим Ms также в MPM списке.3. Set Ms mode candidate as (Ms + Inc), check if Ms mode is also in MPM list.

если Ms отсутствует в MPM списке, добавить Ms в список кодовых слов;if Ms is not in the MPM list, add Ms to the codeword list;

в противном случае перейти к этапу 4.otherwise, go to step 4.

4. Проверить, заполнены ли вставленные записи в списке кодовых слов (длина вставки равна длине списка кодовых слов):4. Check if the inserted entries in the list of codewords are full (the length of the insertion is equal to the length of the list of codewords):

Если заполнено, прекратить;If complete, terminate;

В противном случае установить Inc = Inc + 1 и перейти к этапу 3.Otherwise, set Inc = Inc + 1 and go to step 3.

Подводя итог, список кодовых слов будет содержать самые маленькие режимы, кроме тех, которые присутствовали в MPM списке. Учитывая, что длина MPM списка равна L, длина списка кодовых слов составляет 64-(67-L) = L-3. Например, если MPM список равен (15, 36, 0, 1, 21, 19), то построенное кодовое слово будет равно (2, 3, 4).To sum up, the list of codewords will contain the smallest modes other than those present in the MPM list. Given that the length of the MPM list is L, the length of the codeword list is 64-(67-L)=L-3. For example, if the MPM list is (15, 36, 0, 1, 21, 19), then the constructed codeword will be (2, 3, 4).

Второй список полученных режимов строится следующим образом:The second list of received modes is constructed as follows:

1. Найти первые два угловых режима в MPM списке, предполагая, что найдены angular0 и angular1.1. Find the first two angular modes in the MPM list, assuming you have found angular0 and angular1.

2. Установить переменную исходного приращения Inc = 12. Set the initial increment variable Inc = 1

3. Получить новый режим M0minus = angular0 - Inc. Примечание M0minus должен быть гарантирован также угловой режим (т.е. 66> = M0minus> = 2). Следовательно, если M0minus равно 2, Inc равно 1; тогда полученный M0minus будет 66; если Inc равно 2, тогда M0minus будет 65 и т.д. Операция «минус» завершится до максимального углового режима.3. Get new mode M0 minus = angular0 - Inc. Note M0 minus must also guarantee the angular operation (ie 66>= M0 minus >= 2). Therefore, if M0 minus is equal to 2, Inc is equal to 1; then the resulting M0 minus will be 66; if Inc is 2, then M0 minus is 65, and so on. The "minus" operation will end before the maximum angular mode.

4. Проверить, есть ли M0minus в MPM списке, если нет и, если список полученных режимов не полон, вставить M0minus в список полученных режимов. Иначе,4. Check if M0 minus is in the MPM list, if not, and if the list of received modes is not complete, insert M0 minus into the list of received modes. Otherwise,

Если список полученных режимов полон, прекратить.If the list of received modes is full, stop.

В противном случае перейти к этапу 5.Otherwise, go to step 5.

5. Получить новый режим M0plus = angular0 + Inc. Примечание. M0minus также должен быть гарантирован угловой режим (т.е. 66> = M0minus> = 2). Следовательно, если angular0 равно 66, Inc равно 1, то полученное значение M0minus будет равно 2, если Inc равно 2, то M0minus будет равно 3 и т.д. Операция «плюс» завершится до минимального углового режима.5. Get new mode M0 plus = angular0 + Inc. Note. M0 minus must also guarantee angular operation (i.e. 66 >= M0 minus >= 2). Therefore, if angular0 is 66, Inc is 1, then M0 minus will be 2, if Inc is 2, then M0 minus will be 3, and so on. The plus operation will complete before the minimum angular mode.

6. Проверить, есть ли M0minus в MPM списке, если нет и, если список полученных режимов не полон, вставить M0minus в список полученных режимов. Иначе,6. Check if M0 minus is in the MPM list, if not, and if the list of received modes is not complete, insert M0 minus into the list of received modes. Otherwise,

Если список полученных режимов полон, прекратить.If the list of received modes is full, stop.

В противном случае перейти к этапу 7;Otherwise, go to step 7;

7. Повторить этапы 3-6, заменив angular0 на angular1;7. Repeat steps 3-6, replacing angular0 with angular1;

8. Установить Inc = Inc + 1 и повторить этапы 3-7.8. Set Inc = Inc + 1 and repeat steps 3-7.

Подводя итог, список полученных режимов получает соседние режимы первых двух угловых режимов в MPM списке. Если эти соседние режимы уже включены в MPM список, то они исключаются из списка полученных режимов. Учитывая, что длина MPM списка равна L, длина списка полученных режимов составляет 64-(67-L) = L-3. Например, если MPM список равен (15, 36, 0, 1, 21, 19), то построенный список полученных режимов будет (14, 16, 35).To sum up, the received mode list gets the neighboring modes of the first two angle modes in the MPM list. If these neighboring modes are already included in the MPM list, then they are excluded from the list of received modes. Given that the length of the MPM list is L, the length of the received mode list is 64-(67-L)=L-3. For example, if the MPM list is (15, 36, 0, 1, 21, 19), then the constructed list of received modes will be (14, 16, 35).

Когда составлены список кодовых слов и список полученных режимов, между ними строятся отношения двунаправленного отображения. А именно, учитывая приведенные выше примеры списков со списком кодовых слов (2, 3, 4) и списком полученных режимов (14, 16, 35), 2

Figure 00000001
14, 3
Figure 00000001
16 и 3
Figure 00000001
35, где
Figure 00000001
представляет двунаправленный отображение.When a list of codewords and a list of received modes are compiled, a bidirectional mapping relationship is built between them. Namely, given the above examples of lists with a list of codewords (2, 3, 4) and a list of received modes (14, 16, 35), 2
Figure 00000001
14, 3
Figure 00000001
16 and 3
Figure 00000001
35, where
Figure 00000001
represents a bidirectional mapping.

После построения отношения двунаправленного отображения проверяется, находится ли полученный режим внутреннего предсказания в списке кодовых слов или в списке производных режимов:After building the bidirectional mapping relation, it is checked whether the received intra prediction mode is in the list of codewords or in the list of derived modes:

Если проанализированный режим внутреннего предсказания отсутствует как в списке кодовых слов, так и в списке полученных режимов, установить окончательный режим предсказания как проанализированный режим внутреннего предсказания.If the parsed intra prediction mode is not in both the codeword list and the received modes list, set the final prediction mode as the parsed intra prediction mode.

Если проанализированный режим внутреннего предсказания находится только в списке кодовых слов или только в списке полученных режимов, тогда установить окончательный режим предсказания как соответствующий ему отображенный режим внутреннего предсказания.If the parsed intra prediction mode is only in the codeword list or only in the received mode list, then set the final prediction mode to its corresponding mapped intra prediction mode.

Если проанализированный режим внутреннего предсказания присутствует как в списке кодовых слов, так и в списке полученных режимов, в построение этих двух списков вводится механизм, так что отношение двунаправленного отображения корректируется, и все перекрывающиеся режимы отображаются на себя в другом списке. Пример: MPM список равен (0 1 2 3 50 66), список кодовых слов равен (4 5 6), список полученных режимов является (4 65 5). При построении списка полученных режимов или списка кодовых слов убедиться, что 4

Figure 00000001
4, 5
Figure 00000001
5 и 6
Figure 00000001
65.If the parsed intra prediction mode is present in both the codeword list and the received mode list, a mechanism is introduced into the construction of the two lists so that the bidirectional mapping relationship is adjusted and all overlapping modes are mapped onto themselves in the other list. Example: MPM list is (0 1 2 3 50 66), codeword list is (4 5 6), received mode list is (4 65 5). When constructing a list of received modes or a list of code words, make sure that 4
Figure 00000001
4, 5
Figure 00000001
5 and 6
Figure 00000001
65.

В одной форме реализации настоящего изобретения кодовое слово режима внутреннего предсказания для блока изображения предоставляется в соответствии с декодированием кодированных данных. Если кодовое слово режима внутреннего предсказания для блока изображения кодируется с использованием N битов, отображение исходного режима внутреннего предсказания для получения отображенного режима внутреннего предсказания с использованием отображенного режима внутреннего предсказания в качестве идентифицированного режима внутреннего предсказания для блока изображения. Например, N равно 5, если кодовое слово режима внутреннего предсказания закодировано как 00011 (например, 5 битов), что соответствует угловому режиму 3, в этом примере исходным режимом внутреннего предсказания является угловой режим 3, отображенный режим внутреннего предсказания может быть DC режимом (предварительно определенное значение 1) или угловым режимом 47; в другом примере, отображенный режим внутреннего предсказания может быть таким же, как режим исходного предсказания, например, отображенный режим внутреннего предсказания также является угловым режимом 3.In one embodiment of the present invention, an intra prediction mode codeword for a picture block is provided in accordance with decoding of encoded data. If the intra prediction mode codeword for the image block is encoded using N bits, mapping the original intra prediction mode to obtain the mapped intra prediction mode using the mapped intra prediction mode as the identified intra prediction mode for the image block. For example, N is 5 if an intra prediction mode codeword is encoded as 00011 (e.g., 5 bits), which corresponds to angle mode 3, in this example, the initial intra prediction mode is angle mode 3, the mapped intra prediction mode may be DC mode (previously defined value 1) or angle mode 47; in another example, the mapped intra prediction mode may be the same as the original prediction mode, for example, the mapped intra prediction mode is also angle mode 3.

В примере представлена схема сигнализации внутреннего режима с 6 MPM и оставшимся 61 режимом, в которой оставшийся 61 режим кодируется с использованием схемы усеченной бинаризации. Остающийся 61 внутренний режим также может быть закодирован с использованием кода фиксированной длины из 6 бит, но недостатком кода фиксированной длины из 6 битов является то, что из 64 возможных кодовых слов используется только 61 кодовое слово, и оставшиеся 3 кодовых слова не используются. Вместо кода фиксированной длины предлагается усеченная бинаризация, которая будет использовать только 5 битов для сигнализации первых 3 оставшихся режимов, и остальные 58 режимов затем кодируются с использованием 6 бит.The example shows an intra mode signaling scheme with 6 MPM and 61 remaining modes, in which the remaining 61 modes are encoded using a truncated binarization scheme. The remaining 61 intra modes can also be encoded using a 6-bit fixed-length code, but the disadvantage of a 6-bit fixed-length code is that out of 64 possible codewords, only 61 codewords are used, and the remaining 3 codewords are not used. Instead of a fixed length code, a truncated binarization is proposed that will only use 5 bits to signal the first 3 remaining modes, and the remaining 58 modes are then encoded using 6 bits.

Усеченная бинаризация позволяет передавать меньшие кодовые слова с использованием меньшего количества битов по сравнению с более крупными кодовыми словами. Например, как показано на фиг. 4, горизонтальные режимы, начинающиеся с «внутренних режимов 2, 3, 4…», чаще всего передаются с использованием 5 битов. Следовательно, для эффективной сигнализации оставшихся режимов (режимы не-MPM) первые несколько кодовых слов не-MPM отображаются на полученные режимы, которые более вероятны. Например, размер MPM списка равен 6 и внутренние режимы, которые находятся в MPM списке, равны [18, 30, 0, 1, 66, 24], затем первые три режима в режимах не-MPM, для которых требуется только 5 биты для сигнализации, являются режимами [2,3,4]. Режимы [2, 3, 4] называются «внутренними режимами кодового слова». Поскольку режимы 2, 3, 4 не всегда может быть режимами с высокой вероятностью, эти режимы отображаются для представления трех других внутренних режимов, которые более вероятны. Например, после 6 наиболее вероятных режимов в MPM три других режима, которые являются более вероятными, имеют номера режимов [19, 17, 21]. Режимы [19, 17, 21] называются «полученными режимами не-MPM». Тогда простой способ убедиться, что режимы 19, 17, 21 потребляют только 5 бит, заключается в отображении внутренних режимов [2, 3, 4] с внутренними режимами [19, 17, 21]. По сути, кодер выполняет отображение и сигнализирует о режимах 19 с внутренним режимом и режимом 2 с внутренним кодом, и затем декодер выполняет обратное отображение и отображает режим 2 с внутренним режимом 19. Более того, это простое отображение сокращает количество операций сокращения для сигнализации о режимах не-MPM по сравнению с сигнализацией не-MPM режимов с использованием списка и указанием индекса в списке. В особом случае, если «полученные режимы не-MPM» и «внутренние режимы кодового слова» с наименьшим кодовым словом имеют перекрытие, то гарантируется, что общий внутренний режим для обоих списков отображается вместе. Например, если «внутренние режимы кодового слова» являются [2, 3, 4] и список «полученных режимов не-MPM» является [2, 4, 17], то внутренний режим 2 отображается на внутренний режим 2, режим 3 отображается на режим 17 и режим 4 отображается на режим 4.Truncated binarization allows smaller codewords to be transmitted using fewer bits compared to larger codewords. For example, as shown in FIG. 4, horizontal modes beginning with “internal modes 2, 3, 4…” are most often transmitted using 5 bits. Therefore, for efficient signaling of the remaining modes (non-MPM modes), the first few non-MPM codewords are mapped to received modes that are more likely. For example, the size of the MPM list is 6 and the internal modes that are in the MPM list are [18, 30, 0, 1, 66, 24], then the first three modes in the non-MPM modes that require only 5 bits for signaling , are the modes [2,3,4]. Modes [2, 3, 4] are called "internal codeword modes". Because modes 2, 3, 4 may not always be high probability modes, these modes are displayed to represent three other internal modes that are more likely. For example, after the 6 most likely modes in MPM, the other three modes that are more likely have mode numbers [19, 17, 21]. The modes [19, 17, 21] are referred to as "non-MPM derived modes". Then an easy way to make sure that modes 19, 17, 21 consume only 5 bits is to map internal modes [2, 3, 4] to internal modes [19, 17, 21]. Essentially, the encoder maps and signals modes 19 with intra mode and mode 2 with intra code, and then the decoder demaps and displays mode 2 with intra mode 19. Moreover, this simple mapping reduces the number of reduction operations for mode signaling. non-MPM versus signaling non-MPM modes using a list and specifying an index in the list. In a special case, if the "received non-MPM modes" and the "internal codeword modes" with the smallest codeword have overlap, then it is guaranteed that the common internal mode for both lists is displayed together. For example, if "internal codeword modes" are [2, 3, 4] and the list of "received non-MPM modes" is [2, 4, 17], then internal mode 2 is mapped to internal mode 2, mode 3 is mapped to mode 17 and mode 4 is mapped to mode 4.

В другом примере предлагается несколько решений для заполнения первых трех режимов списка оставшихся режимов.In another example, several solutions are proposed to populate the first three modes of the list of remaining modes.

Во-первых, используя режимы из заранее определенного списка режимов по умолчанию, который включает в себя {планарный режим (PLANAR_IDX), DC режим (DC_IDX), вертикальный режим (VER_IDX), горизонтальный режим (HOR_IDX), внутренний режим 2 (2), режим вертикальной диагонали ( VDIA_IDX), диагональный режим (DIA_IDX)} (термины в скобках показывают соответствующие термины на фиг. 6, более подробная информация о фиг. 6 приведена ниже);First, using modes from a predefined list of default modes, which includes {planar mode (PLANAR_IDX), DC mode (DC_IDX), vertical mode (VER_IDX), horizontal mode (HOR_IDX), internal mode 2 (2), vertical diagonal mode (VDIA_IDX), diagonal mode (DIA_IDX)} (terms in brackets indicate the corresponding terms in Fig. 6, more details on Fig. 6 are given below);

Во-вторых, с помощью смещения угловых режимов, которые уже присутствуют в MPM списке. Здесь смещение может быть +/- N, где N является возможным целочисленным значением, значение которого равно {1, 2, 3, 4}. Смещения могут быть добавлены только к первым двум угловым режимам из MPM списка.Secondly, with the help of shifting angular modes, which are already present in the MPM list. Here, the offset can be +/- N, where N is a possible integer value whose value is {1, 2, 3, 4}. Offsets can only be added to the first two angle modes from the MPM list.

В-третьих, внутренние режимы несмежных соседей также могут использоваться для заполнения трех режимов. Как показано на фиг. 7, могут использоваться внутренние режимы соседей второго уровня.Third, the internal modes of non-adjacent neighbors can also be used to populate the three modes. As shown in FIG. 7, internal neighbor modes of the second layer may be used.

В-четвертых, как показано на фиг. 6, на первом этапе выбирается данный режим из MPM списка и проверяется, находится ли он «рядом» с одной из следующих категорий режимов {DC_IDX, HOR_IDX, DIA_IDX, VER_IDX, VDIA_IDX}. На втором этапе категории режимов затем «сортируются» на основе «большинства» режимов, которые ему близки. На третьем этапе формируется список оставшихся режимов путем вставки режимов, которые находятся рядом с категорией выигрышных режимов из этапа 2.Fourth, as shown in FIG. 6, the first step selects a given mode from the MPM list and checks if it is "near" one of the following mode categories {DC_IDX, HOR_IDX, DIA_IDX, VER_IDX, VDIA_IDX}. In the second step, the mode categories are then "sorted" based on the "most" modes that are close to it. In the third step, a list of the remaining modes is formed by inserting the modes that are next to the category of winning modes from step 2.

На фиг. 6 показан пример 67 режимов внутреннего предсказания, например, как предложено для VVC, множество режимов внутреннего предсказания из 67 режимов внутреннего предсказания, содержащих: планарный режим (индекс 0), DC режим (индекс 1) и угловые режимы с индексами с 2 по 66, в котором левый нижний угловой режим на фиг. 6 относится к индексу 2, и нумерация индексов увеличивается до тех пор, пока индекс 66 не станет самым верхним правым угловым режимом на фиг. 6.In FIG. 6 shows an example of 67 intra prediction modes, for example, as proposed for VVC, a plurality of intra prediction modes of 67 intra prediction modes containing: planar mode (index 0), DC mode (index 1), and angular modes with indices 2 to 66, in which the lower left corner mode in FIG. 6 refers to index 2, and the index numbering is incremented until index 66 is the uppermost right corner mode in FIG. 6.

Далее приведено описание сетевого устройства, подходящее для реализации раскрытых вариантов осуществления, как описано здесь. Сетевое устройство содержит входные порты и блоки (Rx) приемника для приема данных; процессор, логический блок или центральный процессор (CPU) для обработки данных; блоки 1340 передатчика (Tx) и выходные порты для передачи данных; и память для хранения данных. Сетевое устройство может также содержать оптико-электрические (OE) компоненты и электрические-оптические (EO) компоненты, подключенные к входным портам, блокам приемника, блокам передатчика и выходным портам для выхода или входа оптических или электрических сигналов.The following is a description of a network device suitable for implementing the disclosed embodiments as described herein. The network device contains input ports and blocks (Rx) of the receiver for receiving data; processor, logical unit or central processing unit (CPU) for data processing; blocks 1340 transmitter (Tx) and output ports for data transmission; and memory for data storage. The network device may also include optical-electrical (OE) components and electrical-optical (EO) components connected to input ports, receiver units, transmitter units, and output ports for output or input of optical or electrical signals.

Процессор реализован аппаратным обеспечением и программным обеспечением. Процессор может быть реализован как одна или несколько микросхем CPU, ядер (например, как многоядерный процессор), программируемых вентильных матриц (FPGAs), специализированных интегральных схем (ASICs) и процессоров цифровых сигналов (DSPs). Процессор обменивается данными с входными портами, блоками приемника, блоками передатчика, выходными портами и памятью. Процессор содержит модуль кодирования. Модуль кодирования реализует раскрытые варианты осуществления, описанные выше. Например, модуль кодирования реализует, обрабатывает, подготавливает или предоставляет различные сетевые функции. Таким образом, использование модуля кодирования обеспечивает существенное улучшение функциональности сетевого устройства и обеспечивает преобразование сетевого устройства в другое состояние. В качестве альтернативы модуль кодирования реализован в виде инструкций, хранящихся в памяти и выполняемых процессором.The processor is implemented by hardware and software. A processor may be implemented as one or more CPU chips, cores (eg, as a multi-core processor), field-programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), and digital signal processors (DSPs). The processor communicates with input ports, receiver blocks, transmitter blocks, output ports, and memory. The processor contains an encoding module. The encoding module implements the disclosed embodiments described above. For example, the encoding module implements, processes, prepares, or provides various network functions. Thus, the use of the encoding module provides a significant improvement in the functionality of the network device and allows the transformation of the network device into another state. Alternatively, the encoding module is implemented as instructions stored in memory and executed by the processor.

Память состоит из одного или нескольких дисков, ленточных накопителей и твердотельных накопителей и может использоваться в качестве устройства хранения данных с переполнением, для хранения программ, когда такие программы выбираются для выполнения, и для хранения инструкций и данных, которые считываются во время выполнение программы. Память может быть энергозависимой и/или энергонезависимой и может быть постоянным запоминающим устройством (ROM), памятью с произвольным доступом (RAM), троичной памятью с адресацией по содержанию (TCAM) и/или статической памятью с произвольным доступом (SRAM).Memory consists of one or more disks, tape drives, and solid state drives and can 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. The memory may be volatile and/or non-volatile and may be read only memory (ROM), random access memory (RAM), ternary content addressable memory (TCAM), and/or static random access memory (SRAM).

Фиг. 10 является блок-схемой устройства 1500, которое можно использовать для реализации различных вариантов осуществления. Устройство 1500 может быть устройством 12 источника, как показано на фиг. 1, или видеокодер 20, как показано на фиг. 2, или устройство 14 назначение, как показано на фиг. 1, или видеодекодер 30, как показано на фиг. 3. Кроме того, устройство 1500 может содержать один или несколько описанных элементов. В некоторых вариантах осуществления устройство 1500 оснащено одним или несколькими устройствами ввода/вывода, такими как динамик, микрофон, мышь, сенсорный экран, клавиатура, клавиатура, принтер, дисплей и т.п. Устройство 1500 может включать в себя один или несколько центральных процессоров (CPU) 1510, память 1520, запоминающее устройство 1530 большой емкости, видеоадаптер 1540 и интерфейс 1560 ввода/вывода, подключенный к шине. Шина является одной или несколькими из нескольких шинных архитектур любого типа, включающие в себя шину памяти или контроллер памяти, периферийную шину, видео шину и т.п.Fig. 10 is a block diagram of an apparatus 1500 that can be used to implement various embodiments. Device 1500 may be source device 12 as shown in FIG. 1 or video encoder 20 as shown in FIG. 2 or destination device 14 as shown in FIG. 1 or video decoder 30 as shown in FIG. 3. Additionally, device 1500 may include one or more of the elements described. In some embodiments, device 1500 is equipped with one or more input/output devices, such as a speaker, microphone, mouse, touch screen, keyboard, keypad, printer, display, and the like. Device 1500 may include one or more central processing units (CPUs) 1510, memory 1520, mass storage device 1530, video adapter 1540, and an I/O interface 1560 connected to the bus. A bus is one or more of several bus architectures of any type, including a memory bus or memory controller, a peripheral bus, a video bus, and the like.

CPU 1510 может иметь любой тип электронного процессора данных. Память 1520 может иметь или быть системной памятью любого типа, такой как статическая память с произвольным доступом (SRAM), динамическая память с произвольным доступом (DRAM), синхронная память DRAM (SDRAM), постоянная память (ROM), их комбинация или тому подобное. В варианте осуществления память 1520 может включать в себя ROM для использования при загрузке и DRAM для хранения программ и данных для использования во время выполнения программ. В вариантах осуществления память 1520 является энергонезависимой. Запоминающее устройство 1530 большой емкости включает в себя любой тип запоминающего устройства, которое хранит данные, программы и другую информацию и делает данные, программы и другую информацию доступными через шину. Запоминающее устройство 1530 большой емкости включает в себя, например, один или несколько из твердотельного накопителя, накопителя на жестком диске, накопителя на магнитном диске, накопителя на оптическом диске и т.п.The CPU 1510 may be of any type of electronic data processor. The memory 1520 may be any type of system memory, such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous DRAM memory (SDRAM), read only memory (ROM), a combination thereof, or the like. In an embodiment, memory 1520 may include ROM for use during bootup and DRAM for storing programs and data for use during program execution. In embodiments, memory 1520 is non-volatile. The mass storage device 1530 includes any type of storage device that stores data, programs, and other information and makes the data, programs, and other information available via a bus. The mass storage device 1530 includes, for example, one or more of a solid state drive, a hard disk drive, a magnetic disk drive, an optical disk drive, and the like.

Видеоадаптер 1540 и интерфейс 1560 ввода/вывода предоставляют интерфейсы для подключения внешних устройств ввода и вывода к устройству 1500. Например, устройство 1500 может предоставлять клиентам интерфейс команд SQL. Как показано, примеры устройств ввода и вывода включают в себя дисплей 1590, подключенный к видеоадаптеру 1540, и любую комбинацию мыши/клавиатуры/принтера 1570, подключенные к интерфейсу 1560 ввода/вывода. К устройству 1500 могут быть подключены другие устройства, а также дополнительные или может использоваться меньше интерфейсных карт. Например, карта последовательного интерфейса (не показана) может использоваться для обеспечения последовательного интерфейса для принтера.Video adapter 1540 and I/O interface 1560 provide interfaces for connecting external input and output devices to device 1500. For example, device 1500 may provide a SQL command interface to clients. As shown, examples of input and output devices include a display 1590 connected to a video adapter 1540 and any combination of a mouse/keyboard/printer 1570 connected to an input/output interface 1560. Other devices may be connected to device 1500, and additional or fewer interface cards may be used. For example, a serial interface card (not shown) may be used to provide a serial interface for a printer.

Устройство 1500 также включает в себя один или несколько сетевых интерфейсов 1550, которые включают в себя проводные линии связи, такие как кабель Ethernet и т.п., и/или беспроводные линии связи с узлами доступа или одной или несколькими сетями 1580. Сетевой интерфейс 1550 позволяет устройству 1500 выполнять обмениваться данными с удаленными устройствами через сети 1580. Например, сетевой интерфейс 1550 может обеспечивать связь с базой данных. В варианте осуществления устройство 1500 подключено к локальной сети или глобальной сети для обработки данных и обмена данными с удаленными устройствами, такими как другие блоки обработки, интернет, удаленные хранилища и т.п.Device 1500 also includes one or more network interfaces 1550, which include wired links such as an Ethernet cable and the like, and/or wireless links to access points or one or more networks 1580. Network interface 1550 allows the device 1500 to communicate with remote devices over the networks 1580. For example, the network interface 1550 may provide communication with a database. In an embodiment, the device 1500 is connected to a local area network or a wide area network for processing data and communicating with remote devices such as other processing units, the Internet, remote repositories, and the like.

Для вычисления значений весовых коэффициентов используется кусочно-линейная аппроксимация, необходимых для предсказания пикселей в данном блоке. Кусочно-линейная аппроксимация, с одной стороны, значительно снижает вычислительную сложность механизма предсказания с взвешиванием по расстоянию по сравнению с прямым вычислением весовых коэффициентов и, с другой стороны, помогает достичь более высокой точности значений весовых коэффициентов по сравнению с упрощениями предшествующего уровня техники.To calculate the values of the weight coefficients, a piecewise linear approximation is used, which is necessary to predict the pixels in a given block. The piecewise linear approximation, on the one hand, significantly reduces the computational complexity of the distance-weighted prediction mechanism compared to the direct calculation of the weights, and, on the other hand, helps to achieve higher accuracy of the weight values compared to prior art simplifications.

Варианты осуществления могут применяться к другим способам двунаправленного и зависимого от позиции внутреннего предсказания (например, различным модификациям PDPC), а также к механизмам, которые используют весовые коэффициенты, которые зависят от расстояния от одного пикселя до другого, для смешивания различных частей изображения (например, некоторые способы наложения при обработке изображений).Embodiments can be applied to other bidirectional and position-dependent intra prediction methods (e.g., various modifications of PDPC), as well as mechanisms that use weights that depend on the distance from one pixel to another to blend different parts of an image (e.g., some methods of overlay in image processing).

Варианты осуществления содержат, например, устройство для определения принятого режима внутреннего предсказания на основе списка наиболее вероятных режимов (MPM) и списка оставшихся режимов, имеющего первую часть и вторую часть, в котором принятый режим внутреннего предсказания является одним из множества режимов внутреннего предсказания, содержащих множество режимов углового внутреннего предсказания для предсказания значений выборок текущего блока изображения, в котором устройство содержит схему обработки, выполненную с возможностью: генерировать первую часть списка оставшихся режимов путем добавления одного или нескольких угловых внутренних режимы предсказания, определенных на основании списка наиболее вероятных режимов, так что один или несколько режимов углового внутреннего предсказания первой части списка оставшихся режимов близки к соответствующему режиму углового внутреннего предсказания списка наиболее вероятных режимов; и определять принятый режим внутреннего предсказания, если принятый режим внутреннего предсказания является частью первой части списка оставшихся режимов, используя меньшее количество битов, например, для кодирования или декодирования принятого режима внутреннего предсказания, чем в случае, если принятый режим внутреннего предсказания является частью второй части списка оставшихся режимов.Embodiments comprise, for example, a device for determining a received intra prediction mode based on a most likely mode (MPM) list and a remaining mode list having a first part and a second part, wherein the received intra prediction mode is one of a plurality of intra prediction modes comprising a plurality angular intra prediction modes for predicting sample values of the current image block, in which the device contains a processing circuit configured to: generate the first part of the list of remaining modes by adding one or more angular intra prediction modes determined based on the list of most likely modes, so that one or a plurality of angular intra prediction modes of the first part of the remaining mode list are close to the corresponding angular intra prediction mode of the most likely mode list; and determine the received intra prediction mode if the received intra prediction mode is part of the first part of the list of remaining modes, using fewer bits, for example, to encode or decode the received intra prediction mode than if the received intra prediction mode is part of the second part of the list the remaining modes.

В примере, в котором схема обработки выполнена с возможностью генерировать первую часть списка оставшихся режимов путем: ранжирования множества категорий режимов углового внутреннего предсказания согласно количеству и/или направлению режимов углового внутреннего предсказания списка наиболее вероятных режимов, подпадающий под каждую категорию режима углового внутреннего предсказания; и генерирование первой части списка оставшихся режимов путем добавления одного или нескольких режимов углового внутреннего предсказания из категории режима углового внутреннего предсказания с наивысшим рангом в списке оставшихся режимов.In an example, in which the processing circuit is configured to generate a first part of the remaining mode list by: ranking a plurality of angular intra prediction mode categories according to the number and/or direction of the most likely mode list of angular intra prediction modes falling under each angular intra prediction mode category; and generating a first part of the remaining mode list by adding one or more angular intra prediction modes from the highest ranked angular intra prediction mode category in the remaining mode list.

Варианты осуществления содержат, например, 5 категорий режима углового внутреннего предсказания, а именно, вертикальный режим (VER_IDX), горизонтальный режим (HOR_IDX), внутренний режим 2 (2), вертикально-диагональный режим (VDIA_IDX) и диагональный режим DIA_IDX, в котором режим углового внутреннего предсказания списка наиболее вероятных режимов, попадающих в каждую категорию режима углового внутреннего предсказания, например, соответствует ассоциации каждого из режимов углового внутреннего предсказания из списка наиболее вероятных режимов с категорией режима углового внутреннего предсказания, наиболее близкой к соответствующему режиму углового внутреннего предсказания списка наиболее вероятных режимов.The embodiments contain, for example, 5 categories of the angular intra prediction mode, namely, vertical mode (VER_IDX), horizontal mode (HOR_IDX), intra mode 2 (2), vertical diagonal mode (VDIA_IDX), and diagonal mode DIA_IDX, in which the mode of the angular intra prediction mode of the list of most likely modes falling into each category of the angular intra prediction mode, for example, corresponds to the association of each of the angular intra prediction modes from the list of most likely modes with the angular intra prediction mode category closest to the corresponding angular intra prediction mode of the list of most likely modes.

В одном примере схема обработки дополнительно выполнена с возможностью завершать первую часть списка оставшихся режимов путем повторения со второй по рангу категорией режима углового внутреннего предсказания.In one example, the processing circuit is further configured to complete the first part of the list of remaining modes by repeating with the second highest category of the angular intra prediction mode.

В примере каждый режим внутреннего предсказания идентифицируется индексом режима внутреннего предсказания, и схема обработки выполнена с возможностью определять множество категорий режима углового внутреннего предсказания на основании соответствующих режимов углового внутреннего предсказания, ассоциированных с горизонтальным направлением, вертикальным направлением и одним или несколькими диагональными направлениями.In the example, each intra prediction mode is identified by an intra prediction mode index, and the processing circuit is configured to determine a plurality of angle intra prediction mode categories based on respective angle intra prediction modes associated with a horizontal direction, a vertical direction, and one or more diagonal directions.

В примере каждый режим внутреннего предсказания идентифицируется индексом режима внутреннего предсказания, и схема обработки выполнена с возможностью генерировать первую часть списка оставшихся режимов путем добавления одного или нескольких режимов углового внутреннего предсказания в первую часть списка оставшихся режимов, чей соответствующий индекс режима внутреннего предсказания имеет смещение +1, -1, +2, -2, +3, -3, +4 или -4 относительно индекса режима внутреннего предсказания режима углового внутреннего предсказания списка наиболее вероятных режимов.In the example, each intra prediction mode is identified by an intra prediction mode index, and the processing circuit is configured to generate a first part of the remaining mode list by adding one or more angular intra prediction modes to the first part of the remaining mode list whose corresponding intra prediction mode index has an offset of +1 , -1, +2, -2, +3, -3, +4, or -4 with respect to the intra prediction mode index of the angular intra prediction mode of the most likely mode list.

В одном примере каждый элемент списка из списка наиболее вероятных режимов идентифицируется индексом наиболее вероятных режимов, и схема обработки выполнена с возможностью генерировать первую часть списка оставшихся режимов путем добавления одного или нескольких режимов углового внутреннего предсказания в первую часть списка оставшихся режимов, чей соответствующий индекс режима внутреннего предсказания имеет смещение +1, -1, +2, -2, +3, -3, +4 или -4 относительно индекса режима внутреннего предсказания режима углового внутреннего предсказания списка наиболее вероятных режимов.In one example, each list element of the most likely mode list is identified by a most likely mode index, and the processing circuit is configured to generate a first part of the remaining mode list by adding one or more angular intra prediction modes to the first part of the remaining mode list whose corresponding intra mode index prediction has an offset of +1, -1, +2, -2, +3, -3, +4, or -4 relative to the intra prediction mode index of the angular intra prediction mode of the most likely mode list.

В примере схема обработки выполнена с возможностью генерировать первую часть списка оставшихся режимов путем добавления одного или нескольких режимов углового внутреннего предсказания в первую часть списка оставшихся режимов на основании цикла обработки, начиная со смещения +1 по отношению к индексу режима внутреннего предсказания режима углового внутреннего предсказания списка наиболее вероятных режимов, который увеличивается во время каждого раунда цикла обработки, или со смещением -1 по отношению к индексу режима внутреннего предсказания режима углового внутреннего предсказания списка наиболее вероятных режимов, который уменьшается в течение каждого раунда цикла обработки.In the example, the processing circuit is configured to generate the first part of the remaining mode list by adding one or more angular intra prediction modes to the first part of the remaining mode list based on the processing cycle, starting at an offset of +1 with respect to the intra prediction mode index of the list angular intra prediction mode. most likely modes, which increases during each round of the processing cycle, or with an offset of -1 with respect to the intra-prediction mode index of the angular intra-prediction mode of the list of most likely modes, which decreases during each round of the processing cycle.

В примере схема обработки выполнена с возможностью повторять цикл обработки для режима углового внутреннего предсказания списка наиболее вероятных режимов, имеющего наименьший индекс наиболее вероятных режимов, чаще, чем цикл обработки для режима углового внутреннего предсказания наиболее вероятных список режимов с наибольшим индексом наиболее вероятных режимов.In the example, the processing circuit is configured to repeat the processing cycle for the angular intra prediction mode of the most likely mode list having the smallest most likely mode index more often than the processing cycle for the angular intra prediction mode of the most likely mode list with the largest most likely mode index.

В примере схема обработки выполнена с возможностью генерировать первую часть списка оставшихся режимов путем добавления одного или нескольких режимов углового внутреннего предсказания в первую часть списка оставшихся режимов, чей соответствующий индекс режима внутреннего предсказания имеет смещение +2, -2, +4, -4, +6, -6, +8 или -8 относительно индекса режима внутреннего предсказания для режима углового внутреннего предсказания списка наиболее вероятных режимов.In the example, the processing circuit is configured to generate the first part of the remaining mode list by adding one or more angular intra prediction modes to the first part of the remaining mode list whose corresponding intra prediction mode index has an offset of +2, -2, +4, -4, + 6, -6, +8, or -8 with respect to the intra prediction mode index of the angular intra prediction mode of the most likely mode list.

В примере, в котором схема обработки дополнительно выполнена с возможностью генерировать вторую часть списка оставшихся режимов путем добавления тех режимов внутреннего предсказания из множества режимов внутреннего предсказания во вторую часть списка оставшихся режимов, которые не являются частью список наиболее вероятных режимов и первой частью списка оставшихся режимов.In an example, in which the processing circuit is further configured to generate a second part of the remaining mode list by adding those intra prediction modes from the plurality of intra prediction modes to the second part of the remaining mode list that are not part of the most likely mode list and the first part of the remaining mode list.

В примере схема обработки дополнительно выполнена с возможностью предсказывать значения выборок текущего блока изображения с использованием принятого режима внутреннего предсказания и для предоставления предсказанного блока (105) изображения.In the example, the processing circuit is further configured to predict sample values of the current image block using the received intra prediction mode and to provide the predicted image block (105).

В одном примере устройство является устройством кодирования, и в котором схема обработки дополнительно выполнена с возможностью: кодировать текущий блок изображения на основании предсказанного блока изображения и принятого режима внутреннего предсказания.In one example, the device is an encoding device, and wherein the processing circuit is further configured to: encode the current image block based on the predicted image block and the received intra prediction mode.

В примере схема обработки дополнительно выполнена с возможностью сигнализировать усеченный двоичный код для режима внутреннего предсказания текущего блока изображения, если режим внутреннего предсказания принадлежит списку остальных режимов.In the example, the processing circuit is further configured to signal a truncated binary code for the intra prediction mode of the current image block if the intra prediction mode belongs to the rest modes list.

В одном примере устройство является устройством декодирования, и в котором схема обработки дополнительно выполнена с возможностью декодировать текущий блок изображения на основании предсказанного блока изображения и принятого режима внутреннего предсказания.In one example, the device is a decoding device, and wherein the processing circuitry is further configured to decode the current image block based on the predicted image block and the received intra prediction mode.

В примере, в котором схема обработки дополнительно выполнена с возможностью анализа усеченного двоичного кода для определения режима внутреннего предсказания текущего блока изображения, если режим внутреннего предсказания принадлежит к списку оставшихся режимов.In an example, in which the processing circuit is further configured to analyze the truncated binary code to determine the intra prediction mode of the current image block, if the intra prediction mode belongs to the list of remaining modes.

В примере предоставляется способ определения принятого режима внутреннего предсказания на основании списка наиболее вероятных режимов и списка оставшихся режимов, имеющего первую и вторую части, в котором принятый режим внутреннего предсказания является одним из множества режимов внутреннего предсказания, содержащие множество режимов углового внутреннего предсказания для предсказания значений выборок текущего блока изображения, в котором способ содержит: генерирование первой части списка оставшихся режимов путем добавления одного или нескольких режимов углового внутреннего предсказания, определенных на основании списка наиболее вероятных режимов, так что один или несколько режимов углового внутреннего предсказания первой части списка оставшихся режимов близки к соответствующему режиму углового внутреннего предсказания из списка наиболее вероятных режимов; и определение принятого режима внутреннего предсказания, если принятый режим внутреннего предсказания является частью первой части списка оставшихся режимов, с использованием меньшего количества битов, например, для кодирования или декодирования принятого режима внутреннего предсказания, чем в случае, если принятый режим внутреннего предсказания является частью второй части списка оставшихся режимов.An example provides a method for determining a received intra prediction mode based on a list of most likely modes and a list of remaining modes having first and second parts, wherein the received intra prediction mode is one of a plurality of intra prediction modes comprising a plurality of angular intra prediction modes for predicting sample values. of the current image block, in which the method comprises: generating the first part of the list of remaining modes by adding one or more angular intra prediction modes determined based on the list of most likely modes, so that one or more angular intra prediction modes of the first part of the list of remaining modes are close to the corresponding an angular intra prediction mode from the list of most likely modes; and determining the received intra prediction mode if the received intra prediction mode is part of the first part of the remaining mode list, using fewer bits, for example, to encode or decode the received intra prediction mode than if the received intra prediction mode is part of the second part. list of remaining modes.

В качестве примера предоставлен компьютерный программный продукт, содержащий программный код для выполнения вышеупомянутых примеров при исполнении на компьютере или процессоре.By way of example, a computer program product is provided containing program code for executing the above examples when executed on a computer or processor.

В примере схема обработки дополнительно выполнена с возможностью определять первую часть списка оставшихся режимов из заранее определенного списка режимов по умолчанию, содержащего или состоящего из планарного режима (PLANAR_IDX), DC режима (DC_IDX), вертикального режима (VER_IDX), горизонтального режима (HOR_IDX), внутреннего режима 2 (2), вертикального диагонального режима (VDIA_IDX) и диагонального режима (DIA_IDX).In the example, the processing circuit is further configured to determine the first part of the list of remaining modes from a predetermined list of default modes, containing or consisting of planar mode (PLANAR_IDX), DC mode (DC_IDX), vertical mode (VER_IDX), horizontal mode (HOR_IDX), internal mode 2 (2), vertical diagonal mode (VDIA_IDX) and diagonal mode (DIA_IDX).

В одном примере схема обработки дополнительно выполнена с возможностью определять первую часть списка оставшихся режимов путем добавления режимов внутреннего предсказания соседей второго уровня текущего блока изображения.In one example, the processing circuitry is further configured to determine the first part of the list of remaining modes by adding second level neighbor intra prediction modes of the current image block.

В одном примере, как в кодере, так и в декодере, внутренний режим сигнализируется с использованием усеченной бинаризации для внутренних режимов не-MPM.In one example, at both the encoder and decoder, the intra mode is signaled using truncated binarization for non-MPM intra modes.

В примере, поскольку усеченная бинаризация может использоваться для кодирования 61 режима не-MPM, первые три режима потребуют передачи 5 битов, и, следовательно, первые три режима в списке режимов не-MPM генерируются на основании внутренних режимов, которые уже включены в MPM список.In the example, since truncated binarization can be used to encode 61 non-MPM modes, the first three modes would require 5 bits to be transmitted, and hence the first three modes in the non-MPM mode list are generated based on the internal modes that are already included in the MPM list.

В примере, в котором первые три режима в списке режимов не-MPM сигнализируются простым отображением кодового слова, в котором отображение в кодере определяется как этап, который отображает кодовое слово внутреннего режима, которое, как известно, потребляет меньше битов с «другим внутренним режимом», который, как известно, потребляет больше битов и в то же время более вероятен. В декодере обратное отображение определяется как этап, который отображает внутренний режим, который был проанализирован из битового потока, с «другим внутренним режимом», который затем используется как фактический режим внутреннего предсказания для текущего блока изображения.In an example where the first three modes in the list of non-MPM modes are signaled by a simple codeword mapping, in which the mapping in the encoder is defined as the stage that maps an intra mode codeword known to consume fewer bits with "different intrinsic mode" , which is known to consume more bits and at the same time is more likely. In the decoder, inverse mapping is defined as a step that maps the intra mode that has been parsed from the bitstream to a "different intra mode" which is then used as the actual intra prediction mode for the current image block.

В одном из примеров предоставляется способ декодирования видеоданных, содержащий: прием кодированных данных блока изображения блока кодирования; декодирование закодированных данных для идентификации режима внутреннего предсказания из множества режимов внутреннего предсказания для блока изображения, множество режимов внутреннего предсказания содержит набор наиболее вероятных режимов, MPM, первый набор режимов внутреннего предсказания и второй набор режимы внутреннего предсказания, в котором один режим в первом наборе режимов внутреннего предсказания кодируется с использованием N битов, один режим во втором наборе режимов внутреннего предсказания кодируется с использованием M битов, N и M являются положительными целыми числами, N меньше M, декодирование закодированных данных для идентификации режима внутреннего предсказания из множества режимов внутреннего предсказания для блока изображения, содержащее: декодирование закодированных данных для получения указания, указывающее, находится ли режим внутреннего предсказания для блока изображения в наборе MPM или нет; если указание, указывающее режим внутреннего предсказания для блока изображения, не находится в наборе MPM, получение кодового слова режима внутреннего предсказания для блока изображения, кодового слова режима внутреннего предсказания, соответствующего исходному режиму внутреннего предсказания; если кодовое слово режима внутреннего предсказания для блока изображения закодировано с использованием N битов, отображение исходного режима внутреннего предсказания для получения отображенного режима внутреннего предсказания с использованием отображенного режима внутреннего предсказания в качестве идентифицированного режима внутреннего предсказания для блока изображения; или, если кодовое слово режима внутреннего предсказания для блока изображения кодируется с использованием M битов, использование исходного режима внутреннего предсказания в качестве идентифицированного режима внутреннего предсказания для блока изображения.In one example, a method for decoding video data is provided, comprising: receiving encoded image block data of an encoding block; decoding the encoded data to identify an intra prediction mode from the plurality of intra prediction modes for the image block, the plurality of intra prediction modes comprises a set of most probable modes, MPM, a first set of intra prediction modes, and a second set of intra prediction modes, in which one mode in the first set of intra prediction modes prediction is encoded using N bits, one mode in the second set of intra prediction modes is encoded using M bits, N and M are positive integers, N is less than M, decoding the encoded data to identify an intra prediction mode from a plurality of intra prediction modes for a picture block, comprising: decoding the encoded data to obtain an indication indicating whether the intra prediction mode for the image block is in the MPM set or not; if an indication indicating the intra prediction mode for the image block is not in the MPM set, obtaining an intra prediction mode codeword for the image block, an intra prediction mode codeword corresponding to the original intra prediction mode; if the intra prediction mode codeword for the image block is encoded using N bits, mapping the original intra prediction mode to obtain a mapped intra prediction mode using the mapped intra prediction mode as the identified intra prediction mode for the image block; or, if the intra prediction mode codeword for the image block is encoded using M bits, use the original intra prediction mode as the identified intra prediction mode for the image block.

В примере, если кодовое слово режима внутреннего предсказания для блока изображения кодируется с использованием N битов, значение кодового слова режима внутреннего предсказания для блока изображения меньше любого из множества значений, соответствующих второму набору режимов внутреннего предсказания.In an example, if an intra prediction mode codeword for an image block is encoded using N bits, the value of the intra prediction mode codeword for the image block is less than any of the plurality of values corresponding to the second set of intra prediction modes.

В примере отображение исходного режима внутреннего предсказания для получения отображенного режима внутреннего предсказания содержит: отображение исходного режима внутреннего предсказания согласно набору MPM для получения отображенного режима внутреннего предсказания.In an example, the intra prediction source mode mapping to obtain the intra prediction mapped mode comprises: intra prediction source mode mapping according to the MPM set to obtain the intra prediction mapped mode.

В примере отображение исходного режима внутреннего предсказания согласно набору MPM, содержит: ранжирование множества категорий режима внутреннего предсказания согласно количеству и/или направлению режимов внутреннего предсказания в наборе MPM, попадающих в каждую категорию режима внутреннего предсказания; отображение исходного режима внутреннего предсказания согласно наивысшей категории режима внутреннего предсказания.In an example, the initial intra prediction mode mapping according to the MPM set comprises: ranking a plurality of intra prediction mode categories according to the number and/or direction of intra prediction modes in the MPM set falling into each intra prediction mode category; displaying the original intra prediction mode according to the highest category of the intra prediction mode.

В одном примере отображение исходного режима внутреннего предсказания согласно набору MPM, содержит: генерирование исходного набора режимов внутреннего предсказания согласно добавлению смещения к множеству значений, соответствующих набору MPM; классификацию набора MPM для получения категории режима внутреннего предсказания с наивысшим рангом; отображение исходного режима внутреннего предсказания согласно категории режима внутреннего предсказания с наивысшим рангом и исходного набора режимов внутреннего предсказания.In one example, mapping an initial intra prediction mode according to the MPM set comprises: generating an initial intra prediction mode set according to adding an offset to a set of values corresponding to the MPM set; classifying the set of MPMs to obtain the category of the intra prediction mode with the highest rank; displaying the original intra prediction mode according to the category of the highest ranking intra prediction mode and the original set of intra prediction modes.

В примере исходный набор режимов внутреннего предсказания генерируется согласно добавлению смещения -1, + 1, +2, -2, +3, -3, +4 или -4 к множеству значений, соответствующих набору MPM.In the example, an initial set of intra prediction modes is generated according to adding an offset of -1, +1, +2, -2, +3, -3, +4, or -4 to the set of values corresponding to the MPM set.

В одном примере отображение исходного режима внутреннего предсказания для получения отображенного режима внутреннего предсказания содержит: отображение исходного режима внутреннего предсказания в соответствии с заранее определенным списком режимов по умолчанию, содержащим или состоящим из планарного режима (PLANAR_IDX), DC режима (DC_IDX), вертикального режима (VER_IDX), горизонтального режима (HOR_IDX), внутреннего режима 2 (2), вертикального диагонального режима (VDIA_IDX) и диагонального режима (DIA_IDX) для получения отображенного режима внутреннего предсказания.In one example, an intra prediction source mode mapping to obtain a mapped intra prediction mode comprises: an intra prediction source mode mapping according to a predetermined default mode list comprising or consisting of planar mode (PLANAR_IDX), DC mode (DC_IDX), vertical mode ( VER_IDX), horizontal mode (HOR_IDX), intra mode 2 (2), vertical diagonal mode (VDIA_IDX), and diagonal mode (DIA_IDX) to obtain the mapped intra prediction mode.

В некоторых примерах дополнительные аспекты настоящего изобретения резюмируются следующим образом:In some examples, additional aspects of the present invention are summarized as follows:

настоящее изобретение предоставляет способ декодирования видеоданных, содержащий: декодирование кодированных данных блока изображения для получения режима внутреннего предсказания из множества режимов внутреннего предсказания для блока изображения, множество режимов внутреннего предсказания для блока изображения содержит набор наиболее вероятных режимов, MPMs, и набор не-MPM, в котором набор не-MPM содержит первый набор режимов внутреннего предсказания и второй набор режимов внутреннего предсказания, в котором один режим в первом наборе режимов внутреннего предсказания кодируются с использованием N битов, один режим во втором наборе режимов внутреннего предсказания кодируется с использованием M битов, N и M являются положительными целыми числами, N меньше M, в котором декодирование закодированных данных блока изображения для получения режима внутреннего предсказания из множества режимов внутреннего предсказания для блока изображения, содержащий: декодирование закодированных данных для получения указания, указывающее, находится ли режим внутреннего предсказания для блока изображения в наборе MPM или нет; если указание, указывающее режим внутреннего предсказания для блока изображения, не входит в набор MPMs, генерирование отношения отображения между, по меньшей мере, одним режимом внутреннего предсказания в первом наборе режимов внутреннего предсказания и, по меньшей мере, одним режимом внутреннего предсказания в наборе не-MPM; декодирование кодированных данных для получения кодового слова режима внутреннего предсказания для блока изображения; получение режима внутреннего предсказания для блока изображения в соответствии с отношением отображения и кодовым словом режима внутреннего предсказания.The present invention provides a method for decoding video data, comprising: decoding encoded data of a picture block to obtain an intra prediction mode from a plurality of intra prediction modes for the picture block, the plurality of intra prediction modes for the picture block comprising a set of most likely modes, MPMs, and a set of non-MPMs, in wherein the non-MPM set comprises a first intra prediction mode set and a second intra prediction mode set, wherein one mode in the first intra prediction mode set is encoded using N bits, one mode in the second intra prediction mode set is encoded using M bits, N and M are positive integers, N less than M, in which decoding the encoded data of the image block to obtain an intra prediction mode from a plurality of intra prediction modes for the image block, comprising: decoding the encoded data for obtaining an indication indicating whether the intra prediction mode for the image block is in the MPM set or not; if an indication indicating the intra prediction mode for the image block is not included in the set of MPMs, generating a mapping relationship between at least one intra prediction mode in the first intra prediction mode set and at least one intra prediction mode in the non- MPM; decoding the encoded data to obtain an intra prediction mode codeword for the image block; obtaining an intra prediction mode for the image block according to the display ratio and the intra prediction mode codeword.

В варианте осуществления отношение отображения генерируется согласно набору MPMs.In an embodiment, a mapping relation is generated according to a set of MPMs.

В варианте осуществления генерируется отношение отображения в соответствии с заранее определенным списком режимов по умолчанию, содержащим или состоящий из планарного режима (PLANAR_IDX), DC режима (DC_IDX), вертикального режима (VER_IDX), горизонтального режима (HOR_IDX), внутреннего режима 2 (2), вертикально диагонального режима (VDIA_IDX) и режима диагонали (DIA_IDX).In an embodiment, a display relationship is generated according to a predetermined default mode list, comprising or consisting of Planar Mode (PLANAR_IDX), DC Mode (DC_IDX), Vertical Mode (VER_IDX), Horizontal Mode (HOR_IDX), Inner Mode 2(2) , vertical diagonal mode (VDIA_IDX) and diagonal mode (DIA_IDX).

В варианте осуществления генерирование отношения отображения между, по меньшей мере, одним режимом внутреннего предсказания в первом наборе режимов внутреннего предсказания и, по меньшей мере, одним режимом внутреннего предсказания в наборе не-MPM, содержащее: ранжирование множества категорий режимов внутреннего предсказания согласно количеству и/или направлению режимов внутреннего предсказания в наборе MPMs, попадающих в каждую категорию режима внутреннего предсказания; генерирование отношения отображения согласно категории режима внутреннего предсказания с наивысшим рангом.In an embodiment, generating a mapping relationship between at least one intra prediction mode in the first intra prediction mode set and at least one intra prediction mode in the non-MPM set, comprising: ranking a plurality of intra prediction mode categories according to the number and/ or the direction of the intra prediction modes in the set of MPMs falling into each category of the intra prediction mode; generating a display relation according to the category of the intra prediction mode with the highest rank.

В варианте осуществления генерирование отношения отображения между режимом внутреннего предсказания в первом наборе режимов внутреннего предсказания и режимом внутреннего предсказания во втором наборе режимов внутреннего предсказания, содержащее: генерирование исходного набора режимов внутреннего предсказания согласно добавлению смещения множества значений, соответствующих набору MPMs; классификацию набора MPMs для получения категории режима внутреннего предсказания с наивысшим рангом; генерирование отношения отображения согласно категории режима внутреннего предсказания с наивысшим рангом и исходному набору режимов внутреннего предсказания.In an embodiment, generating a mapping relationship between an intra prediction mode in the first intra prediction mode set and an intra prediction mode in the second intra prediction mode set, comprising: generating an initial intra prediction mode set according to adding an offset of a set of values corresponding to the set of MPMs; classifying the set of MPMs to obtain the highest ranked intra prediction mode category; generating a mapping relationship according to the highest ranking intra prediction mode category and the original intra prediction mode set.

В варианте осуществления исходный набор режимов внутреннего предсказания генерируется согласно добавлению смещения -1, + 1, +2, -2, +3, -3, +4 или -4 к множеству значений, соответствующих набору MPMs.In an embodiment, an initial set of intra prediction modes is generated according to adding an offset of -1, +1, +2, -2, +3, -3, +4, or -4 to the set of values corresponding to the set of MPMs.

В варианте осуществления генерирование отношения отображения между, по меньшей мере, одним режимом внутреннего предсказания в первом наборе режимов внутреннего предсказания и, по меньшей мере, одним режимом внутреннего предсказания в наборе не-MPM, содержащее: генерирование первого набора значений в соответствии со значениями из режимов предсказания в наборе MPM одно значение в первом наборе значений является наименьшим значением режима предсказания в наборе не-MPM; генерирование второго набора значений согласно добавлению смещения к значению, по меньшей мере, одного режима предсказания в наборе MPMs; генерирование отношение отображения согласно первому набору значений и второму набору значений.In an embodiment, generating a mapping relationship between at least one intra prediction mode in the first intra prediction mode set and at least one intra prediction mode in the non-MPM set, comprising: generating a first set of values according to values from the modes predictions in the MPM set, one value in the first value set is the smallest prediction mode value in the non-MPM set; generating a second set of values according to adding an offset to a value of at least one prediction mode in the set of MPMs; generating a display relation according to the first set of values and the second set of values.

В варианте осуществления генерирование отношения отображения между, по меньшей мере, одним режимом внутреннего предсказания в первом наборе режимов внутреннего предсказания и, по меньшей мере, одним режимом внутреннего предсказания в наборе не-MPM, содержащее: генерирование первого набора значений согласно значениям из режимов предсказания в наборе MPMs, одно значение в первом наборе значений является наименьшим значением режима предсказания в наборе не-MPM; генерирование второго набора значений в соответствии с добавлением смещения к значению, по меньшей мере, одного режима углового предсказания в наборе MPMs; генерирование отношения отображения согласно первому набору значений и второму набору значений.In an embodiment, generating a mapping relationship between at least one intra prediction mode in the first intra prediction mode set and at least one intra prediction mode in the non-MPM set, comprising: generating a first set of values according to values from the prediction modes in set of MPMs, one value in the first set of values is the smallest value of the prediction mode in the set of non-MPMs; generating a second set of values in accordance with adding an offset to a value of at least one angle prediction mode in the set of MPMs; generating a display relationship according to the first set of values and the second set of values.

В варианте осуществления количество режимов предсказания во множестве режимов внутреннего предсказания для блока изображения равно 67, количество режимов предсказания в наборе MPM равно 6, количество режимов предсказания в первом наборе режимов внутреннего предсказания в наборе не-MPM равно 3, и количество режимов предсказания во втором наборе режимов внутреннего предсказания в наборе не-MPM равно 58, в котором генерирование отношения отображения между, по меньшей мере, одним режимом внутреннего предсказания в первом наборе режимы внутреннего предсказания и, по меньшей мере, одним режимом внутреннего предсказания в наборе не-MPM, содержит: получение трех наименьших значений трех режимов предсказания в наборе не-MPM согласно значениям режимов предсказания в наборе MPMs; получение двух значений двух режимов углового предсказания в наборе MPMs, добавление смещения к двум значениям для получения значений смещения; получение второго набора значений согласно значениям режимов предсказания в наборе MPMs и значениям смещения; генерирование отношения отображения согласно первому набору значений и второму набору значений.In an embodiment, the number of prediction modes in the intra prediction mode set for a picture block is 67, the number of prediction modes in the MPM set is 6, the number of prediction modes in the first intra prediction mode set in the non-MPM set is 3, and the number of prediction modes in the second set is intra prediction modes in the non-MPM set is 58, wherein generating a mapping relationship between at least one intra prediction mode in the first intra prediction mode set and at least one intra prediction mode in the non-MPM set comprises: deriving the lowest three values of the three prediction modes in the non-MPM set according to the values of the prediction modes in the set of MPMs; obtaining two values of two angle prediction modes in the set of MPMs, adding an offset to the two values to obtain offset values; obtaining a second set of values according to the values of the prediction modes in the set of MPMs and the offset values; generating a display relationship according to the first set of values and the second set of values.

В варианте осуществления генерирование отношения отображения между, по меньшей мере, одним режимом внутреннего предсказания в первом наборе режимов внутреннего предсказания и, по меньшей мере, одним режимом внутреннего предсказания в наборе не-MPM, содержит: генерирование первого набора значений согласно значениям из режимов предсказания в наборе MPMs, одно значение в первом наборе значений является наименьшим значением режима предсказания в наборе не-MPM; генерирование второго набора значений в соответствии с предварительно определенным списком режимов по умолчанию, содержащим или состоящий из вертикального режима (VER_IDX), горизонтального режима (HOR_IDX), внутреннего режима 2 (2), вертикального диагонального режима (VDIA_IDX) и диагонального режима (DIA_IDX); генерирование отношения отображения согласно первому набору значений и второму набору значений.In an embodiment, generating a mapping relationship between at least one intra prediction mode in a first intra prediction mode set and at least one intra prediction mode in a non-MPM set comprises: generating a first set of values according to values from the prediction modes in set of MPMs, one value in the first set of values is the smallest value of the prediction mode in the set of non-MPMs; generating a second set of values according to a predefined default mode list comprising or consisting of vertical mode (VER_IDX), horizontal mode (HOR_IDX), internal mode 2 (2), vertical diagonal mode (VDIA_IDX), and diagonal mode (DIA_IDX); generating a display relationship according to the first set of values and the second set of values.

В варианте осуществления генерирование отношения отображения между, по меньшей мере, одним режимом внутреннего предсказания в первом наборе режимов внутреннего предсказания и, по меньшей мере, одним режимом внутреннего предсказания в наборе не-MPM, содержит: генерирование первого набора значений согласно значениям из режимов предсказания в наборе MPMs, одно значение в первом наборе значений является наименьшим значением режима предсказания в наборе не-MPM; генерирование второго набора значений в соответствии с заранее определенным списком режимов по умолчанию, содержащим или состоящий из планарного режима (PLANAR_IDX), DC режима (DC_IDX), вертикального режима (VER_IDX), горизонтального режима (HOR_IDX), внутреннего режима 2 ( 2), вертикально-диагонального режима (VDIA_IDX) и диагонального режима (DIA_IDX); генерирование отношения отображения согласно первому набору значений и второму набору значений.In an embodiment, generating a mapping relationship between at least one intra prediction mode in a first intra prediction mode set and at least one intra prediction mode in a non-MPM set comprises: generating a first set of values according to values from the prediction modes in set of MPMs, one value in the first set of values is the smallest value of the prediction mode in the set of non-MPMs; generating a second set of values according to a predefined list of default modes, containing or consisting of planar mode (PLANAR_IDX), DC mode (DC_IDX), vertical mode (VER_IDX), horizontal mode (HOR_IDX), internal mode 2 ( 2), vertical - diagonal mode (VDIA_IDX) and diagonal mode (DIA_IDX); generating a display relationship according to the first set of values and the second set of values.

В варианте осуществления кодовое слово режима внутреннего предсказания кодируется с использованием 5 битов, и кодовое слово режима внутреннего предсказания является одним из 00000, 00001 или 00010.In an embodiment, the intra prediction mode codeword is encoded using 5 bits, and the intra prediction mode codeword is one of 00000, 00001, or 00010.

В варианте осуществления один из, по меньшей мере, одного режима внутреннего предсказания в первом наборе режимов внутреннего предсказания соответствует одному из, по меньшей мере, одного режима внутреннего предсказания в наборе не-MPM.In an embodiment, one of the at least one intra prediction mode in the first intra prediction mode set corresponds to one of the at least one intra prediction mode in the non-MPM set.

Кроме того, предоставляется декодер, содержащий схему обработки, выполненную с возможностью выполнять любой из вышеупомянутых способов.In addition, a decoder is provided, comprising a processing circuit configured to perform any of the above methods.

Дополнительно предоставляется компьютерный программный продукт, содержащий программный код для выполнения любого из вышеупомянутых способов.Additionally, a computer program product is provided that contains program code for performing any of the above methods.

Дополнительно предоставляется декодер для декодирования видеоданных, содержащий: один или несколько процессоров; и постоянный машиночитаемый носитель данных, соединенный с процессорами и хранящий программы для выполнения процессорами, в котором программы, когда выполняется процессорами, конфигурирует декодер выполнить способ по любому из пп.1-13.Additionally, a decoder is provided for decoding video data, comprising: one or more processors; and a persistent computer-readable storage medium coupled to the processors and storing programs for execution by the processors, wherein the programs, when executed by the processors, configure the decoder to execute the method of any one of claims 1-13.

Настоящее изобретение предоставляет способ составления списка наиболее вероятного режима, MPM, причем способ содержит: определение, доступен ли левый блок текущего блока кодирования (coding block) или нет, если левый блок текущего блока кодирования доступен, добавление режима внутреннего предсказания левого блока в MPM список; определение, доступен ли верхний блок текущего блока кодирования или нет, если верхний блок текущего блока кодирования доступен, добавление режима внутреннего предсказания верхнего блока в MPM список; при отсутствии планарного режима в MPM списке, добавление планарного режима в MPM список; при отсутствии DC режима в MPM списке, добавление DC режима в MPM список.The present invention provides a method for listing the most likely mode, MPM, the method comprising: determining whether the left block of the current coding block is available or not, if the left block of the current coding block is available, adding the left block intra prediction mode to the MPM list; determining whether the top block of the current coding block is available or not, if the top block of the current coding block is available, adding the top block intra prediction mode to the MPM list; if there is no planar mode in the MPM list, adding planar mode to the MPM list; if there is no DC mode in the MPM list, adding the DC mode to the MPM list.

В варианте осуществления, когда режим предсказания левого блока не является режимом внутреннего предсказания, левый блок текущего блока кодирования недоступен.In an embodiment, when the left block prediction mode is not an intra prediction mode, the left block of the current coding block is not available.

В варианте осуществления, когда текущий блок кодирования является блоком кодирования, расположенным в самой левой стороне кадра, левый блок текущего блока кодирования недоступен.In an embodiment, when the current coding block is the coding block located on the leftmost side of the frame, the left block of the current coding block is not available.

В варианте осуществления поддерживается параллельная обработка, и текущий блок кодирования является блоком кодирования, расположенным в самой левой стороне плитки, левый блок текущего блока кодирования недоступен.In an embodiment, parallel processing is supported and the current coding block is the coding block located at the leftmost side of the tile, the left block of the current coding block is not available.

В варианте осуществления параллельная обработка не поддерживается, и текущий блок кодирования представляет собой блок кодирования, расположенный в самой левой стороне плитки, но не в меньшей левой стороне кадра, левый блок текущего блока кодирования доступен.In an embodiment, parallel processing is not supported and the current coding block is the coding block located on the leftmost side of the tile, but not on the lesser left side of the frame, the left block of the current coding block is available.

В варианте осуществления поддерживается параллельная обработка, и текущий блок кодирования представляет собой блок кодирования, расположенный в самой левой стороне сегмента, левый блок текущего блока кодирования недоступен.In an embodiment, parallel processing is supported and the current coding block is a coding block located at the leftmost side of the segment, the left block of the current coding block is not available.

В варианте осуществления параллельная обработка не поддерживается, и текущий блок кодирования представляет собой блок кодирования, расположенный в самой левой стороне сегмента, но не в самой левой стороне кадра, левый блок текущего блока кодирования доступен.In an embodiment, parallel processing is not supported and the current coding block is a coding block located on the leftmost side of the segment, but not on the leftmost side of the frame, the left block of the current coding block is available.

В варианте осуществления, когда режим предсказания верхнего блока не является режимом внутреннего предсказания, верхний блок текущего блока кодирования недоступен.In an embodiment, when the top block prediction mode is not an intra prediction mode, the top block of the current coding block is not available.

В варианте осуществления, когда текущий блок кодирования является блоком кодирования, расположенным в самой верхней стороне кадра, верхний блок текущего блока кодирования недоступен.In an embodiment, when the current coding block is the coding block located at the topmost side of the frame, the top block of the current coding block is not available.

В варианте осуществления поддерживается параллельная обработка, и текущий блок кодирования является блоком кодирования, расположенным в самой верхней стороне плитки, верхний блок текущего блока кодирования недоступен.In an embodiment, parallel processing is supported and the current coding block is the coding block located at the topmost side of the tile, the top block of the current coding block is not available.

В варианте осуществления параллельная обработка не поддерживается, и текущий блок кодирования представляет собой блок кодирования, расположенный на самой верхней стороне плитки, но не на самой верхней стороне кадра, верхний блок текущего блока кодирования доступен.In an embodiment, parallel processing is not supported and the current coding block is the coding block located on the topmost side of the tile, but not the topmost side of the frame, the topmost block of the current coding block is available.

В варианте осуществления поддерживается параллельная обработка, и текущий блок кодирования представляет собой блок кодирования, расположенный в самой верхней стороне сегмента, верхний блок текущего блока кодирования недоступен.In an embodiment, parallel processing is supported and the current coding block is a coding block located at the topmost side of the segment, the top block of the current coding block is not available.

В варианте осуществления параллельная обработка не поддерживается, и текущий блок кодирования является блоком кодирования, расположенным на самой верхней стороне сегмента, но не на самой верхней стороне кадра, верхний блок текущего блока кодирования доступен.In an embodiment, parallel processing is not supported and the current coding block is the coding block located on the topmost side of the segment, but not on the topmost side of the frame, the topmost block of the current coding block is available.

В варианте осуществления, когда размер линейного буфера ограничен, а текущий блок кодирования является блоком кодирования, расположенным в самой верхней стороне текущего CTU, верхний блок текущего блока кодирования недоступен.In an embodiment, when the size of the linear buffer is limited and the current coding unit is a coding unit located at the topmost side of the current CTU, the top block of the current coding unit is not available.

В варианте осуществления способ дополнительно содержит: если левый блок текущего блока кодирования доступен и режим внутреннего предсказания левого блока является угловым режимом, добавление смещения к режиму предсказания левого блока для получения нового режима предсказания, если новый режим предсказания отсутствует в MPM списке, добавление нового режима предсказания в MPM список.In an embodiment, the method further comprises: if the left block of the current coding block is available and the left block intra prediction mode is an angle mode, adding an offset to the left block prediction mode to obtain a new prediction mode, if the new prediction mode is not in the MPM list, adding a new prediction mode in the MPM list.

В варианте осуществления смещение равно -1.In an embodiment, the offset is -1.

В варианте осуществления смещение равно 1.In an embodiment, the offset is 1.

В варианте осуществления способ дополнительно содержит: если верхний блок текущего блока кодирования доступен и режим внутреннего предсказания верхнего блока является угловым режимом, добавление смещения к режиму предсказания верхнего блока для получения режима предсказания смещения-верхний, если режим предсказания смещения-верхний отсутствует в MPM списке, добавление режима предсказания смещения-верхний в MPM список.In an embodiment, the method further comprises: if the top block of the current coding block is available and the top block intra prediction mode is corner mode, adding an offset to the top block prediction mode to obtain the offset-high prediction mode, if the offset-top prediction mode is not in the MPM list, adding bias-top prediction mode to the MPM list.

В варианте осуществления смещение равно -1.In an embodiment, the offset is -1.

В варианте осуществления смещение равно 1.In an embodiment, the offset is 1.

В одном из вариантов осуществления способ дополнительно содержит:In one embodiment, the method further comprises:

добавление вертикального режима (VER_IDX), горизонтального режима (HOR_IDX), внутреннего режима 2 (2), вертикального диагонального режима (VDIA_IDX) или диагонального режима (DIA_IDX) в MPM список.adding vertical mode (VER_IDX), horizontal mode (HOR_IDX), internal mode 2 (2), vertical diagonal mode (VDIA_IDX) or diagonal mode (DIA_IDX) to the MPM list.

В варианте осуществления, способ дополнительно содержит список кандидатов углового режима, содержащий или состоящий из: вертикального режима (VER_IDX), горизонтального режима (HOR_IDX), внутреннего режима 2 (2), вертикального диагонального режима (VDIA_IDX) или диагонального режима (DIA_IDX) в MPM списке; и способ дополнительно содержит: итеративное определение в соответствии с их порядком в списке, находится ли угловой режим списка в MPM списке и, если соответствующий угловой режим отсутствует в MPM списке, добавление соответствующего углового режима в MPM список .In an embodiment, the method further comprises a corner mode candidate list comprising or consisting of: vertical mode (VER_IDX), horizontal mode (HOR_IDX), inner mode 2(2), vertical diagonal mode (VDIA_IDX), or diagonal mode (DIA_IDX) in the MPM list; and the method further comprises: iteratively determining, according to their order in the list, whether the list angular mode is in the MPM list and, if the corresponding angular mode is not in the MPM list, adding the corresponding angular mode to the MPM list.

В варианте осуществления составление MPM списка начинается с этапа определения, доступен ли левый блок текущего блока кодирования, например, на основании пустого MPM списка.In an embodiment, the compilation of the MPM list begins with the step of determining if the left block of the current coding block is available, for example, based on an empty MPM list.

В варианте осуществления способ дополнительно содержит: если левый блок текущего блока кодирования недоступен и доступен другой блок в общем левом направлении (например, BL или AL на фиг. 5), вставку режима внутреннего предсказания другого блока в исходный MPM список, если левый блок доступен, отсутствие вставки режима внутреннего предсказания другого блока в исходный MPM список.In an embodiment, the method further comprises: if the left block of the current coding block is unavailable and another block in the general left direction is available (e.g., BL or AL in FIG. 5), inserting the intra prediction mode of the other block into the original MPM list, if the left block is available, not inserting another block's intra prediction mode into the original MPM list.

В варианте осуществления способ дополнительно содержит: если верхний блок текущего блока кодирования недоступен и доступен другой блок в общем указанном верхнем направлении (например, AR или AL на фиг. 5), вставку режима внутреннего предсказания другого блока в исходный MPM список, если верхний блок доступен, отсутствие вставки режима внутреннего предсказания другого блока в исходный MPM список.In an embodiment, the method further comprises: if the top block of the current coding block is not available and another block is available in the general specified up direction (e.g., AR or AL in FIG. 5), inserting the intra prediction mode of the other block into the original MPM list if the top block is available , not inserting another block's intra prediction mode into the original MPM list.

В варианте осуществления способ дополнительно содержит: добавление вертикального режима (VER_IDX), горизонтального режима (HOR_IDX), внутреннего режима 2 (2), вертикального диагонального режима (VDIA_IDX) или диагонального режима (DIA_IDX) в исходный MPM список, если их еще нет в исходном MPM списке.In an embodiment, the method further comprises: adding vertical mode (VER_IDX), horizontal mode (HOR_IDX), inner mode 2 (2), vertical diagonal mode (VDIA_IDX) or diagonal mode (DIA_IDX) to the source MPM list if they are not already in the source MPM list.

В варианте осуществления способ дополнительно содержит: если и левый, и верхний блок текущего блока кодирования не являются угловыми, то дополнительно проверяют еще один соседний блок (например, BL, AL или AR на фиг. 5). Если какой-либо из них (BL, или AL, или AR) является угловым, тогда использовать этот угловой режим в качестве исходного углового режима для процесса получения -1 + 1, как описано ранее;In an embodiment, the method further comprises: if both the left and the top block of the current coding block are not angular, then one more neighboring block is additionally checked (eg, BL, AL, or AR in FIG. 5). If any of them (BL, or AL, or AR) is angular, then use that angular mode as the initial angular mode for the -1 + 1 derivation process, as described earlier;

Настоящее изобретение дополнительно предоставляет кодер, содержащий схему обработки для выполнения любого из вышеупомянутых способов.The present invention further provides an encoder containing a processing circuit for performing any of the above methods.

Настоящее изобретение дополнительно предоставляет декодер, содержащий схему обработки для выполнения любого из вышеупомянутых способов.The present invention further provides a decoder containing a processing circuit for performing any of the above methods.

Настоящее изобретение дополнительно предоставляет компьютерный программный продукт, содержащий программный код для выполнения любого из вышеуказанных способов.The present invention further provides a computer program product containing program code for performing any of the above methods.

Настоящее изобретение дополнительно предоставляет декодер для составления списка наиболее вероятного режима, MPM, содержащий: один или несколько процессоров; и постоянный машиночитаемый носитель данных, соединенный с процессорами и хранящий программы для выполнения процессорами, причем программы, когда выполняются процессорами, конфигурируют декодер выполнить любой из вышеупомянутых способов.The present invention further provides a decoder for listing the most likely mode, MPM, comprising: one or more processors; and a persistent computer-readable storage medium coupled to the processors and storing programs for execution by the processors, the programs, when executed by the processors, configuring the decoder to perform any of the above methods.

Настоящее изобретение дополнительно предоставляет кодер для составления списка наиболее вероятного режима, MPM, содержащий: один или несколько процессоров; и постоянный машиночитаемый носитель данных, соединенный с процессорами и хранящий программы для выполнения процессорами, причем программы, когда оно выполняются процессорами, конфигурирует кодер выполнить любой из вышеупомянутых способов.The present invention further provides an encoder for listing the most likely mode, MPM, comprising: one or more processors; and a persistent computer-readable storage medium coupled to the processors and storing programs for execution by the processors, the programs, when executed by the processors, configuring the encoder to perform any of the above methods.

Реализации предмета изобретения и операций, описанных в этом изобретении, могут быть реализованы в цифровых электронных схемах или в компьютерном программном обеспечении, встроенном программном обеспечении или аппаратном обеспечении, включающим в себя структуры, раскрытые в этом изобретении, и их структурные эквиваленты, или в комбинациях одного или нескольких из их. Реализации предмета, описанного в этом изобретении, могут быть реализованы как одна или несколько компьютерных программ, то есть, один или несколько модулей инструкций компьютерных программ, закодированных на компьютерном носителе данных для выполнения или для управления работой устройства обработки данных. В качестве альтернативы или в дополнение, программные инструкции могут быть закодированы на искусственно сгенерированном распространяемом сигнале, например, на сгенерированном машиной электрическом, оптическом или электромагнитном сигнале, который генерируется для кодирования информации для передачи на подходящее устройство приемника для выполнения посредством обработки данных. Компьютерный носитель данных, например, машиночитаемый носитель, может быть или содержаться в машиночитаемом запоминающем устройстве, машиночитаемой хранилище, массиве или устройстве памяти с произвольным или последовательным доступом, или комбинации одного или несколько из них. Более того, хотя компьютерный носитель данных не является распространяемым сигналом, компьютерный носитель данных может быть источником или местом назначения инструкций компьютерной программы, закодированных в искусственно сгенерированном распространяемом сигнале. Компьютерный носитель данных также может быть или содержаться в одном или нескольких отдельных физических и/или энергонезависимых компонентах или носителей (например, несколько компакт-дисков, дисков или других устройств хранения).Implementations of the subject matter and operations described in this invention may be implemented in digital electronic circuits, or in computer software, firmware, or hardware incorporating the structures disclosed in this invention and their structural equivalents, or in combinations of one or several of them. Implementations of the subject matter described in this invention may be implemented as one or more computer programs, that is, one or more computer program instruction modules encoded on a computer storage medium to execute or control the operation of a data processing device. Alternatively or in addition, the program instructions may be encoded on an artificially generated propagation signal, such as a machine generated electrical, optical or electromagnetic signal that is generated to encode information for transmission to a suitable receiver device for execution by data processing. A computer storage medium, such as a computer-readable medium, may be or contained in a computer-readable storage device, a computer-readable storage, an array, or a random-access or sequential-access memory device, or a combination of one or more of these. Moreover, although the computer storage medium is not a distributed signal, the computer storage medium may be the source or destination of computer program instructions encoded in an artificially generated distributed signal. A computer storage medium may also be or be contained in one or more separate physical and/or non-volatile components or media (eg, multiple CDs, disks, or other storage devices).

В некоторых реализациях операции, описанные в этом изобретении, могут быть реализованы как хост-услуга, предоставляемая на сервере в сети облачных вычислений. Например, машиночитаемые носители данных могут быть логически сгруппированы и доступны в сети облачных вычислений. Серверы в сети облачных вычислений могут включать в себя платформу облачных вычислений для предоставления облачных услуг. Термины «облако», «облачные вычисления» и «на облаке» могут использоваться взаимозаменяемо, если это необходимо, без выхода за рамки настоящего изобретения. Облачные сервисы могут быть размещенными сервисами, которые предоставляются серверами и доставляются по сети на клиентскую платформу для улучшения, дополнения или замены приложений, выполняемых локально на клиентском компьютере. Схема может использовать облачные сервисы для быстрого приема обновлений программного обеспечения, приложений и других ресурсов, которые, в противном случае, потребовали бы длительного периода времени, прежде чем ресурсы могут быть доставлены в схему.In some implementations, the operations described in this invention may be implemented as a host service provided on a server in a cloud computing network. For example, computer-readable storage media may be logically grouped and available on a cloud computing network. The servers in the cloud computing network may include a cloud computing platform for providing cloud services. The terms "cloud", "cloud computing" and "in the cloud" can be used interchangeably, if necessary, without departing from the scope of the present invention. Cloud services can be hosted services that are provided by servers and delivered over a network to a client platform to enhance, supplement, or replace applications running locally on the client computer. The scheme may use cloud services to quickly receive updates to software, applications, and other resources that would otherwise take a long period of time before the resources can be delivered to the scheme.

Компьютерная программа (также известная как программа, программное обеспечение, программное приложение, скрипт или код) может быть написана на любом языке программирования, включающий в себя компилируемые или интерпретируемые языки, декларативные или процедурные языки, и может быть развернута в любой форме, в том числе как отдельная программа или как модуль, компонент, подпрограмма, объект или другое устройство, подходящее для использования в вычислительной среде. Компьютерная программа может, но не обязательно, соответствовать файлу в файловой системе. Программа может храниться в части файла, который содержит другие программы или данные (например, один или несколько скриптов, хранящихся в документе на языке разметки), в одном файле, посвященном рассматриваемой программе, или в нескольких скоординированных файлах (например, файлы, в которых хранятся один или несколько модулей, подпрограмм или частей кода). Компьютерная программа может быть развернута для выполнения на одном компьютере или на нескольких компьютерах, которые расположены на одном сайте или распределены по множеству сайтов и связаны между собой сетью связи.A computer program (also known as a program, software, software application, script, or code) may be written in any programming language, including compiled or interpreted languages, declarative or procedural languages, and may be deployed in any form, including as a standalone program, or as a module, component, subroutine, object, or other device suitable for use in a computing environment. A computer program may, but need not, correspond to a file in a file system. A program may be stored in a part of a file that contains other programs or data (for example, one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in several coordinated files (for example, files that store one or more modules, subroutines, or pieces of code). The computer program may be deployed to run on a single computer or on multiple computers that are located at a single site or distributed across multiple sites and interconnected by a communications network.

Процессы и логические потоки, описанные в этом изобретении, могут выполняться одним или несколькими программируемыми процессорами, выполняющими одну или несколько компьютерных программ для выполнения действий, оперируя входными данными и генерируя выходные данные. Процессы и логические потоки также могут выполняться, и устройство также может быть реализовано как логическая схема специального назначения, например FPGA (программируемая вентильная матрица) или ASIC (специализированная интегральная схема).The processes and logical flows described in this invention may be executed by one or more programmable processors executing one or more computer programs to perform actions on input data and generate output data. Processes and logic flows can also be executed, and the device can also be implemented as a special purpose logic circuit, such as an FPGA (Field Programmable Gate Array) or an ASIC (Application Specific Integrated Circuit).

Процессоры, подходящие для выполнения компьютерной программы, включают в себя, например, микропроцессоры как общего, так и специального назначения, а также любой один или несколько процессоров любого типа цифрового компьютера. Как правило, процессор будет получать инструкции и данные из постоянного запоминающего устройства или из памяти с произвольным доступом, либо из обоих. Существенными элементами компьютера являются процессор для выполнения действий в соответствии с инструкциями и одно или несколько запоминающих устройств для хранения инструкций и данных. Как правило, компьютер также будет включать в себя или быть оперативно подключенным для приема данных или передачи данных на одно или несколько запоминающих устройств большой емкости для хранения данных, например, магнитные, магнитооптические диски или оптические диски. Однако в компьютере такие устройства могут не быть. Кроме того, компьютер может быть встроен в другое устройство, например, мобильный телефон, персональный цифровой помощник (PDA), мобильный аудио- или видеоплеер, игровую консоль, приемник глобальной системы позиционирования (GPS) или портативное хранилище (например, флэш-накопитель с универсальной последовательной шиной (USB)) и многие другие. Устройства, подходящие для хранения инструкций и данных компьютерных программ, включают в себя все формы энергонезависимой памяти, носителей и запоминающих устройств, включающие в себя, например, полупроводниковые запоминающие устройства, например, EPROM, EEPROM и устройства флэш-памяти; магнитные диски, например, внутренние жесткие диски или съемные диски; магнитооптические диски; и диски CD-ROM и DVD-ROM. Процессор и память могут быть дополнены специальной логической схемой или включены в нее.Processors suitable for executing a computer program include, for example, both general purpose and special purpose microprocessors, as well as any one or more processors of any type of digital computer. Typically, the processor will receive instructions and data from ROM or Random Access Memory, or both. The essential elements of a computer are a processor for performing actions in accordance with instructions and one or more memory devices for storing instructions and data. Typically, the computer will also include or be operatively connected to receive data from or transmit data to one or more mass storage devices for data storage, such as magnetic, magneto-optical disks or optical disks. However, a computer may not have such devices. In addition, the computer may be embedded in another device, such as a mobile phone, personal digital assistant (PDA), mobile audio or video player, game console, global positioning system (GPS) receiver, or portable storage (such as a flash drive with a universal serial bus (USB)) and many others. Devices suitable for storing computer program instructions and data include all forms of non-volatile memory, media, and storage devices, including, for example, semiconductor memory devices such as EPROM, EEPROM, and flash memory devices; magnetic disks, such as internal hard drives or removable drives; magneto-optical disks; and CD-ROM and DVD-ROM discs. The processor and memory can be supplemented with or incorporated into custom logic.

Хотя это изобретение содержит много конкретных деталей реализации, их не следует истолковывать как ограничения объема каких-либо реализаций или того, что может быть заявлено, а скорее как описания признаков, характерных для конкретных реализаций конкретных реализаций. Некоторые признаки, которые описаны в этом изобретении сущности в контексте отдельных реализаций, также могут быть реализованы в комбинации в одной реализации. И наоборот, различные функции, которые описаны в контексте одной реализации, также могут быть реализованы в нескольких реализациях по отдельности или в любой подходящей подкомбинации. Более того, хотя признаки могут быть описаны выше как действующие в определенных комбинациях и даже изначально заявлены как таковые, в некоторых случаях один или несколько признаков заявленной комбинации могут быть исключены из комбинации, и заявленная комбинация может быть подкомбинацией или вариацию подкомбинации.While this invention contains many specific implementation details, they should not be construed as limiting the scope of any implementations or what may be claimed, but rather as descriptions of features specific to particular implementations of particular implementations. Some of the features that are described in this entity invention in the context of separate implementations may also be implemented in combination in a single implementation. Conversely, various functions that are described in the context of a single implementation may also be implemented in multiple implementations individually or in any suitable subcombination. Moreover, although the features may be described above as operating in certain combinations and even initially claimed as such, in some cases one or more features of the claimed combination may be excluded from the combination, and the claimed combination may be a subcombination or a variation of the subcombination.

Аналогичным образом, хотя операции изображены на чертежах в определенном порядке, это не следует понимать как требование, чтобы такие операции выполнялись в конкретном показанном порядке или в последовательном порядке, или чтобы все проиллюстрированные операции выполнялись для достижения желаемых результатов. В определенных обстоятельствах могут быть полезны многозадачность и параллельная обработка. Более того, разделение различных компонентов системы в реализациях, описанных выше, не следует понимать как требующее такого разделения во всех реализациях, и следует понимать, что описанные программные компоненты и системы, как правило, могут быть интегрированы вместе в один программный продукт или упакованы в несколько программных продуктов.Similarly, although the operations are shown in the drawings in a specific order, this should not be understood as a requirement that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed to achieve the desired results. In certain circumstances, multitasking and parallel processing can be useful. Moreover, the separation of the various system components in the implementations described above should not be understood as requiring such separation in all implementations, and it should be understood that the software components and systems described can generally be integrated together into a single software product or packaged into multiple software products.

Таким образом, были описаны конкретные реализации предмета изобретения. Другие реализации входят в объем следующей формулы изобретения. В некоторых случаях действия, изложенные в формуле изобретения, могут выполняться в другом порядке и все же приводить к желаемым результатам. Кроме того, процессы, изображенные на сопроводительных чертежах, не обязательно требуют определенного показанного порядка или последовательного порядка для достижения желаемых результатов. В некоторых реализациях могут быть полезными многозадачность и параллельная обработка.Thus, specific implementations of the subject invention have been described. Other implementations are included in the scope of the following claims. In some cases, the steps set forth in the claims may be performed in a different order and still lead to the desired results. In addition, the processes depicted in the accompanying drawings do not necessarily require the particular order shown or sequential order to achieve the desired results. In some implementations, multitasking and parallel processing may be useful.

Хотя в настоящем изобретении представлено несколько вариантов осуществления, следует понимать, что раскрытые системы и способы могут быть воплощены во многих других конкретных формах. Настоящие примеры следует рассматривать как иллюстративные, а не как ограничительные, и намерение не ограничиваться приведенными здесь деталями. Например, различные элементы или компоненты могут быть объединены или интегрированы в другую систему, или определенные признаки могут быть опущены или не реализованы.Although the present invention presents several embodiments, it should be understood that the disclosed systems and methods can be embodied in many other specific forms. The present examples are to be considered illustrative and not restrictive, and the intention is not to be limited by the details given here. For example, various elements or components may be combined or integrated into another system, or certain features may be omitted or not implemented.

Дополнительно, способы, системы, подсистемы и технологии, описанные и проиллюстрированные в различных вариантах осуществления как отдельные или дискретные, могут быть объединены или интегрированы с другими системами, модулями, технологиями или способами, не выходя за рамки объема настоящего изобретения. Другие элементы, показанные или обсуждаемые как связанные или непосредственно связанные или взаимодействующие друг с другом, могут быть косвенно связаны или взаимодействовать электрически, механически или иным образом через некоторый интерфейс, устройство или промежуточный компонент.Additionally, the methods, systems, subsystems, and technologies described and illustrated in various embodiments as separate or discrete may be combined or integrated with other systems, modules, technologies, or methods without departing from the scope of the present invention. Other elements shown or discussed as connected or directly connected or interacting with each other may be indirectly connected or interact electrically, mechanically or otherwise through some interface, device or intermediate component.

Определения сокращений и глоссарийAbbreviations definitions and glossary

CTU/CTB - Блок дерева кодирования/Coding Tree BlockCTU/CTB - Coding Tree Block

CU/CB - Блок кодирования/Coding BlockCU/CB - Coding Block

PU/PB - Блок предсказания/Prediction BlockPU/PB - Prediction Block

TU/TB - Блок преобразования/Transform BlockTU/TB - Transform Block

HEVC - Высокоэффективное кодирование видео.HEVC - High Efficiency Video Coding.

Claims (21)

1. Способ составления списка наиболее вероятного режима (MPM) для процесса предсказания, соответствующего блоку видео, содержащий:1. A method for compiling a list of the most probable mode (MPM) for the prediction process corresponding to a video block, comprising: определение, доступен ли левый блок текущего блока кодирования или нет, если доступен левый блок текущего блока кодирования, добавление режима внутреннего предсказания левого блока в MPM список, в котором, когда поддерживается параллельная обработка и текущий блок кодирования является блоком кодирования, расположенным в самой левой стороне сегмента или плитки, левый блок текущего блока кодирования недоступен;determining whether the left block of the current coding block is available or not, if the left block of the current coding block is available, adding the left block intra prediction mode to the MPM list, in which, when parallel processing is supported and the current coding block is the coding block located in the leftmost side segment or tile, the left block of the current coding block is not available; определение, доступен ли верхний блок текущего блока кодирования или нет, если верхний блок текущего блока кодирования доступен, добавление режима внутреннего предсказания верхнего блока в MPM список;determining whether the top block of the current coding block is available or not, if the top block of the current coding block is available, adding the top block intra prediction mode to the MPM list; добавление смещения в режим внутреннего предсказания левого блока для получения нового режима предсказания, если левый блок текущего блока кодирования доступен и режим внутреннего предсказания левого блока является угловым режимом; и добавление нового режима предсказания в MPM список, если новый режим предсказания отсутствует в MPM списке;adding an offset to the left block intra prediction mode to obtain a new prediction mode if the left block of the current coding block is available and the left block intra prediction mode is an angular mode; and adding a new prediction mode to the MPM list if the new prediction mode is not in the MPM list; илиor добавление смещения в режим внутреннего предсказания верхнего блока для получения режима предсказания верхнего блока со смещением, если верхний блок текущего блока кодирования доступен и режим внутреннего предсказания верхнего блока является угловым режимом; и добавление режима предсказания верхнего блока со смещением в MPM список, если режим предсказания верхнего блока со смещением отсутствует в MPM списке.adding an offset to the upper block intra prediction mode to obtain the offset upper block prediction mode if the upper block of the current coding block is available and the upper block intra prediction mode is an angular mode; and adding the offset top block prediction mode to the MPM list if the offset top block prediction mode is not in the MPM list. 2. Способ по п. 1, в котором смещение равно -1 или +1.2. The method of claim 1, wherein the offset is -1 or +1. 3. Способ по п. 1 или 2, дополнительно содержащий3. The method according to claim 1 or 2, further comprising если планарный режим отсутствует в MPM списке, добавление планарного режима в MPM список; иif the planar mode is not in the MPM list, adding the planar mode to the MPM list; and если DC режим отсутствует в MPM списке, добавление DC режима в MPM список.if the DC mode is not in the MPM list, add the DC mode to the MPM list. 4. Способ по любому из пп. 1-3, в котором, когда режим предсказания левого блока не является режимом внутреннего предсказания, левый блок текущего блока кодирования недоступен.4. The method according to any one of paragraphs. 1-3, in which, when the left block prediction mode is not intra prediction mode, the left block of the current coding block is unavailable. 5. Способ по любому из пп. 1-4, в котором, когда текущий блок кодирования является блоком кодирования, расположенным в самой левой стороне кадра, левый блок текущего блока кодирования недоступен.5. The method according to any one of paragraphs. 1-4, wherein when the current coding block is the coding block located at the leftmost side of the frame, the left block of the current coding block is unavailable. 6. Способ по любому из пп. 1-5, в котором, когда параллельная обработка не поддерживается и текущий блок кодирования является блоком кодирования, расположенным в самой левой стороне сегмента или плитки, но не в самой левой стороне кадра, левый блок текущего блока кодирования является доступным.6. The method according to any one of paragraphs. 1-5, wherein when parallel processing is not supported and the current coding block is a coding block located on the leftmost side of a segment or tile, but not on the leftmost side of a frame, the left block of the current coding block is available. 7. Способ по любому из пп. 1-6, в котором, когда режим предсказания верхнего блока не является режимом внутреннего предсказания, верхний блок текущего блока кодирования недоступен.7. The method according to any one of paragraphs. 1-6, in which, when the upper block prediction mode is not an intra prediction mode, the upper block of the current coding block is unavailable. 8. Способ по любому из пп. 1-7, в котором, когда текущий блок кодирования является блоком кодирования, расположенным в самой верхней стороне кадра, верхний блок текущего блока кодирования недоступен.8. The method according to any one of paragraphs. 1-7, in which, when the current coding block is the coding block located at the topmost side of the frame, the top block of the current coding block is unavailable. 9. Способ по любому из пп. 1-8, в котором, когда поддерживается параллельная обработка и текущий блок кодирования является блоком кодирования, расположенным на самой верхней стороне сегмента или плитки, верхний блок текущего блока кодирования недоступен.9. The method according to any one of paragraphs. 1-8, in which, when parallel processing is supported and the current coding block is the coding block located on the topmost side of the segment or tile, the top block of the current coding block is not available. 10. Способ по любому из пп. 1-9, в котором, когда параллельная обработка не поддерживается, и текущий блок кодирования является блоком кодирования, расположенным на самой верхней стороне сегмента или плитки, но не на самой верхней стороне кадра, верхний блок текущего блока кодирования является доступным.10. The method according to any one of paragraphs. 1-9, wherein when parallel processing is not supported and the current coding block is a coding block located on the topmost side of a segment or tile but not on the topmost side of a frame, the topmost block of the current coding block is available. 11. Способ по любому из пп. 1-10, в котором, когда размер линейного буфера ограничен и текущий блок кодирования является блоком кодирования, расположенным на самой верхней стороне текущего блока дерева кодирования, CTU, верхний блок текущего блока кодирования недоступен.11. The method according to any one of paragraphs. 1-10, in which, when the size of the linear buffer is limited and the current coding unit is the coding unit located on the uppermost side of the current coding tree block, CTU, the upper block of the current coding unit is not available. 12. Кодер, содержащий схему обработки для выполнения способа по любому из пп. 1-11.12. An encoder containing a processing circuit for performing the method according to any one of paragraphs. 1-11. 13. Декодер, содержащий схему обработки для выполнения способа по любому из пп. 1-11.13. A decoder containing a processing circuit for performing the method according to any one of paragraphs. 1-11. 14. Машиночитаемый носитель, содержащий средство с программным кодом, которое, когда загружен в компьютер, управляет им для выполнения способа по любому из пп. 1-11.14. A computer-readable medium containing a program code tool that, when loaded into a computer, controls it to perform the method according to any one of paragraphs. 1-11.
RU2021106477A 2018-08-27 2019-08-15 Method and device for internal prediction RU2780222C2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US62/723,299 2018-08-27

Publications (2)

Publication Number Publication Date
RU2021106477A RU2021106477A (en) 2022-09-12
RU2780222C2 true RU2780222C2 (en) 2022-09-21

Family

ID=

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Y. CHEN et al, Description of SDR, HDR and 360 video coding technology proposal by Qualcomm and Technicolor - low and high complexity versions, Joint Video Exploration Team (JVET) of ITU-T SG16 WP3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-J0021-v5, 10th Meeting: San Diego, 10-20 Apr. 2018. YUE YU et al, Non-EE1: Priority List Based Intra Mode Coding with 5 MPM, Joint Video Exploration Team (JVET) of ITU-T SG16 WP3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-H0051_r1, 8th Meeting: Macao, 18-25 Oct. 2017. US 2016044310 A1 - 2016.02.11. WO 2017204427 A1 - 2017.11.30. WO 2017196957 A1 - 2017.11.16. RU 2660640 C1 - 2018.07.06. *

Similar Documents

Publication Publication Date Title
JP7375125B2 (en) Encoders, decoders and corresponding methods using IBC dedicated buffers and default value refresh for luma and chroma components
AU2019335453B2 (en) Method and apparatus for intra prediction
AU2023202684B2 (en) Method and apparatus for intra prediction
KR20210107130A (en) Encoder, Decoder and Corresponding Method, Using DCT2 Activated High Level Flag
US11277608B2 (en) Method and apparatus for intra prediction
KR102543792B1 (en) Intra prediction mode derivation based on neighboring blocks
RU2780222C2 (en) Method and device for internal prediction
RU2785106C2 (en) Method and device for internal prediction
KR20210016615A (en) Intra prediction method and apparatus
RU2784004C2 (en) Derivation of internal prediction mode based on neighboring blocks