RU2810950C2 - Joint coding of palette mode indication - Google Patents

Joint coding of palette mode indication Download PDF

Info

Publication number
RU2810950C2
RU2810950C2 RU2021125577A RU2021125577A RU2810950C2 RU 2810950 C2 RU2810950 C2 RU 2810950C2 RU 2021125577 A RU2021125577 A RU 2021125577A RU 2021125577 A RU2021125577 A RU 2021125577A RU 2810950 C2 RU2810950 C2 RU 2810950C2
Authority
RU
Russia
Prior art keywords
mode
prediction
block
prediction mode
palette
Prior art date
Application number
RU2021125577A
Other languages
Russian (ru)
Other versions
RU2021125577A (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 RU2021125577A publication Critical patent/RU2021125577A/en
Application granted granted Critical
Publication of RU2810950C2 publication Critical patent/RU2810950C2/en

Links

Images

Abstract

FIELD: video processing tools.
SUBSTANCE: prediction mode for the specified block, based on one or more valid prediction modes, including at least a palette mode, is determined for conversion between a video domain block and a data bit stream representation of the video. The palette mode indication is determined according to the prediction mode. Conversion is carried out based on the specified one or more valid prediction modes.
EFFECT: increased efficiency of video encoding.
19 cl, 34 dwg

Description

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

Настоящий документ относится к технологиям кодирования видео и изображений. This document concerns video and image encoding technologies.

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

Цифровое видео занимает наибольшую долю полосы частот в сети Интернет и в других цифровых сетях связи. Поскольку число присоединенных пользовательских устройств, способных принимать и представлять видео на дисплее, увеличивается, ожидается, что потребности в полосе для использования цифровым видео будут продолжать расти. Digital video occupies the largest share of bandwidth on the Internet and other digital communications networks. As the number of connected user devices capable of receiving and presenting video on a display increases, bandwidth requirements for digital video use are expected to continue to grow.

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

Предлагаемая технология может быть использована в вариантах осуществления декодирующих устройств или кодирующих устройств для видео или изображений, в которых применяется кодирование в режиме палитры.The proposed technology can be used in embodiments of video or image decoders or encoders that employ palette mode encoding.

Согласно одному примерному аспекту предложен способ обработки видео. Способ содержит этап, на котором выполняют преобразование между видеообластью видео и представлением видео в виде потока битов данных. Представление в виде потока битов данных обрабатывается согласно первому правилу форматирования, которое определяет, сообщать ли первую индикацию режима палитры для рассматриваемого указанного блока, и второму правилу форматирования, которое определяет позицию первой индикации относительно второй индикации использования режима прогнозирования для указанного блока.In one exemplary aspect, a method for processing video is provided. The method comprises converting between a video domain of a video and a representation of the video as a stream of data bits. The data bitstream representation is processed according to a first format rule that determines whether to report a first palette mode indication for the specified block in question, and a second format rule that determines the position of the first indication relative to the second prediction mode use indication for the specified block.

Согласно одному примерному аспекту предложен способ обработки видео. Способ содержит этап, на котором определяют, для преобразования между блоком видеообласти видео и представлением видео в виде потока битов данных, режим прогнозирования на основе одного или более допустимых режимов прогнозирования, которые содержат по меньшей мере режим палитры, для указанного блока. Индикация использования режима палитры определяется согласно режиму прогнозирования. Способ содержит также этап, на котором выполняют преобразование на основе указанного одного или более допустимых режимов прогнозирования. In one exemplary aspect, a method for processing video is provided. The method comprises determining, for conversion between a video domain block and a data bitstream representation of the video, a prediction mode based on one or more valid prediction modes, which include at least a palette mode, for the specified block. The palette mode usage indication is determined according to the prediction mode. The method also includes performing a conversion based on said one or more valid prediction modes.

Согласно другому примерному аспекту предложен способ обработки видео. Способ содержит этап, на котором выполняют преобразование между блоком видео и представлением видео в виде потока битов данных. Представление в виде потока битов данных обрабатывается в соответствии с правилом форматирования, которое определяет первую индикацию использования режима палитры и вторую индикацию использования режима внутрикадрового копирования блоков (intra block copy (IBC)), какие сообщают посредством сигнализации в зависимости друг от друга.According to another exemplary aspect, a video processing method is provided. The method comprises converting between a video block and a representation of the video as a stream of data bits. The data bitstream representation is processed in accordance with a formatting rule that defines a first palette mode use indication and a second intra block copy (IBC) mode use indication, which are signaled in dependence on each other.

Согласно другому примерному аспекту предложен способ обработки видео. Способ содержит этапы, на которых определяют, для преобразования между блоком видео и представлением видео в виде потока битов данных, наличие индикации использования режима палитры в представлении в виде потока битов данных на основе размера указанного блока; и выполняют преобразование на основе указанного определения.According to another exemplary aspect, a video processing method is provided. The method comprises determining, for conversion between a video block and a bitstream video representation, whether there is an indication of the use of a palette mode in the bitstream representation based on the size of the specified block; and perform the conversion based on the specified definition.

Согласно другому примерному аспекту предложен способ обработки видео. Способ содержит этапы, на которых определяют, для преобразования между блоком видео и представлением видео в виде потока битов данных, наличие индикации для использования режима внутрикадрового копирования блоков (IBC) в представлении в виде потока битов данных на основе размера указанного блока; и выполняют преобразование на основе указанного определения.According to another exemplary aspect, a video processing method is provided. The method comprises determining, for conversion between a video block and a data bitstream representation of the video, whether an indication is available for using an intraframe block copy (IBC) mode in the data bitstream representation based on the size of the specified block; and perform the conversion based on the specified definition.

Согласно другому примерному аспекту предложен способ обработки видео. Способ содержит этапы, на которых определяют, для преобразования между блоком видео и представлением видео в виде потока битов данных, допустим ли режим палитры для указанного блока, на основе второй индикации для видеообласти, содержащей указанный блок; и выполняют преобразование на основе указанного определения.According to another exemplary aspect, a video processing method is provided. The method comprises determining, for conversion between a video block and a data bitstream representation of the video, whether a palette mode is valid for said block, based on a second indication for a video area containing said block; and perform the conversion based on the specified definition.

Согласно другому примерному аспекту предложен способ обработки видео. Способ содержит этапы, на которых определяют, для преобразования между блоком видео и представлением видео в виде потока битов данных, допустим ли режим внутрикадрового копирования блоков (IBC) для указанного блока, на основе второй индикации для видеообласти, содержащей указанный блок; и выполняют преобразование на основе указанного определения.According to another exemplary aspect, a video processing method is provided. The method comprises determining, for conversion between a video block and a data bit stream representation of the video, whether an intra-block copy (IBC) mode is valid for the specified block, based on a second indication for a video area containing the specified block; and perform the conversion based on the specified definition.

Согласно другому примерному аспекту предложен способ обработки видео. Способ содержит этапы, на которых определяют, что надлежит использовать режим палитры для обработки единицы преобразования, блока кодирования или области, причем использование режима палитры кодируется отдельно от режима прогнозирования, и выполняют дальнейшую обработки единицы преобразования, блока кодирования или области с использованием режима палитры.According to another exemplary aspect, a video processing method is provided. The method comprises determining that a palette mode should be used to process a transform unit, encoding block, or region, wherein the use of the palette mode is coded separately from the prediction mode, and further processing the transform unit, encoding block, or region using the palette mode.

Согласно другому примерному аспекту предложен способ обработки видео. Способ содержит этап, на котором определяют, для текущего видеоблока, что отсчет, ассоциированный с одной входной позицией палитры режима палитры, имеет первую битовую глубину, отличную от второй битовой глубины, ассоциированной с текущим видеоблоком, и выполняют, на основе указанной по меньшей мере одной входной позиции палитры, дальнейшую обработку текущего видеоблока.According to another exemplary aspect, a video processing method is provided. The method comprises determining, for a current video block, that a sample associated with one input palette position of a palette mode has a first bit depth different from a second bit depth associated with the current video block, and performing based on said at least one input palette position, further processing of the current video block.

Согласно еще одному примерному аспекту предложен другой способ обработки видео. Способ содержит этап, на котором выполняют преобразование между текущим видеоблоком изображения или видео и представлением видео в виде потока битов данных, в котором информация о том, используется ли режим внутрикадрового копирования блоков при преобразовании, сообщается в представлении в виде потока битов данных или выводится на основе условий кодирования текущего видеоблока, причем режим внутрикадрового копирования блоков содержит кодирование текущего видеоблока от другого видео блока в изображении.According to yet another exemplary aspect, another video processing method is proposed. The method comprises performing a conversion between a current video block of an image or video and a data bitstream representation of the video, wherein information about whether an intra-frame block copy mode is used in the conversion is reported in the data bitstream representation or inferred based on encoding conditions of the current video block, and the intra-frame block copying mode contains encoding of the current video block from another video block in the image.

Согласно еще одному примерному аспекту предложен другой способ обработки видео. Способ содержит этапы, на которых определяют, следует ли применить деблокирующий фильтр в процессе преобразования текущего видеоблока изображения или видео, причем текущий видеоблок кодируется с использованием кодирования в режиме палитры, в котором текущий видеоблок представлен с использованием значений репрезентативных отсчетов, число которых меньше общего числа пикселей в текущем видеоблоке, и выполняют преобразование так, что деблокирующий фильтр применяется в случае, когда определено, что деблокирующий фильтр подлежит применению. According to yet another exemplary aspect, another video processing method is proposed. The method includes the steps of determining whether to apply a deblocking filter in the process of transforming the current video block of an image or video, wherein the current video block is encoded using palette mode encoding, in which the current video block is represented using representative sample values that are less than the total number of pixels in the current video block, and perform a transformation such that the deblocking filter is applied in the case where it is determined that the deblocking filter is to be applied.

Согласно еще одному примерному аспекту предложен другой способ обработки видео. Способ содержит этапы, на которых определяют процедуру квантования или процедуру обратного квантования для использования при преобразовании между текущим видеоблоком изображения или видео и представлением видео в виде потока битов данных, причем текущий видеоблок кодируется с использованием кодирования в режиме палитры, причем текущий видеоблок представлен с использованием значений репрезентативных отсчетов, число которых меньше общего числа пикселей в текущем видеоблоке, и выполняют преобразование на основе указанного определения процедуры квантования или процедуры обратного квантования. According to yet another exemplary aspect, another video processing method is proposed. The method comprises the steps of determining a quantization procedure or an inverse quantization procedure for use in the conversion between a current video block of an image or video and a representation of the video as a stream of data bits, wherein the current video block is encoded using palette mode encoding, wherein the current video block is represented using values representative samples, the number of which is less than the total number of pixels in the current video block, and perform a transformation based on the specified definition of the quantization procedure or the inverse quantization procedure.

Согласно еще одному примерному аспекту предложен другой способ обработки видео. Способ содержит этап, на котором определяют, для преобразования между текущим видеоблоком видео, содержащего множество видеоблоков, и представлением видео в виде потока битов данных, что текущий видеоблок представляет собой блок, кодированный в режиме палитры; на основе указанного определения выполняют процедуру построения списка наиболее вероятных режимов путем рассмотрения текущего видео блока в качестве блока, кодированного с применением внутрикадрового прогнозирования, и выполняют преобразование на основе результата процедуры построения списка; причем блок, кодированный в режиме палитры, кодируется или декодируется с использованием палитры или значений репрезентативных отсчетов.According to yet another exemplary aspect, another video processing method is proposed. The method comprises determining, for conversion between a current video block of a video containing a plurality of video blocks, and a data bitstream representation of the video, that the current video block is a palette-mode encoded block; based on the specified definition, a procedure for constructing a list of the most probable modes is performed by considering the current video block as a block encoded using intra-frame prediction, and a transformation is performed based on the result of the list construction procedure; wherein the block encoded in palette mode is encoded or decoded using the palette or representative sample values.

Согласно еще одному примерному аспекту предложен другой способ обработки видео. Способ содержитAccording to yet another exemplary aspect, another video processing method is proposed. The method contains

Согласно еще одному примерному аспекту предложен другой способ обработки видео. Способ содержит этапы, на которых определяют, для преобразования между текущим видеоблоком видео, содержащего множество видеоблоков, и представлением видео в виде потока битов данных, что текущий видеоблок представляет собой блок, кодированный в режиме палитры; на основе указанного определения выполняют процедуры построения списка наиболее вероятного режима путем рассмотрения текущего видеоблока в качестве блока, кодированного без применения внутрикадрового прогнозирования, и выполняют преобразование на основе результата процедуры построения списка; причем блок, кодированный в режиме палитры, кодируется или декодируется с использованием палитры или значений репрезентативных отсчетов.According to yet another exemplary aspect, another video processing method is proposed. The method comprises determining, for conversion between a current video block of a video containing a plurality of video blocks, and a data bitstream representation of the video, that the current video block is a palette-mode encoded block; based on the specified definition, performing procedures for constructing a list of the most probable mode by considering the current video block as a block encoded without using intra-frame prediction, and performing a transformation based on the result of the list construction procedure; wherein the block encoded in palette mode is encoded or decoded using the palette or representative sample values.

Согласно еще одному примерному аспекту предложен другой способ обработки видео. Способ содержит этапы, на которых определяют, для преобразования между текущим видеоблоком видео, содержащего множество видеоблоков, и представлением видео в виде потока битов данных, что текущий видеоблок представляет собой блок, кодированный в режиме палитры; на основе указанного определения выполняют процедуры построения списка путем рассмотрения текущего видеоблока в качестве недоступного блока, и выполняют преобразование на основе результата процедуры построения списка; причем блок, кодированный в режиме кодирования палитры, кодируется или декодируется с использованием палитры или значений репрезентативных отсчетов. According to yet another exemplary aspect, another video processing method is proposed. The method comprises determining, for conversion between a current video block of a video containing a plurality of video blocks, and a data bitstream representation of the video, that the current video block is a palette-mode encoded block; based on the specified definition, performing list construction procedures by considering the current video block as an unavailable block, and performing a transformation based on the result of the list construction procedure; wherein the block encoded in the palette encoding mode is encoded or decoded using the palette or representative sample values.

Согласно еще одному примерному аспекту предложен другой способ обработки видео. Способ содержит этапы, на которых определяют, в ходе преобразования между текущим видеоблоком и представлением в виде потока битов данных текущего видеоблока, что текущий видеоблок представляет собой блок, кодированный в режиме палитры, определяют, на основе того, что текущий видеоблок является блоком, кодированным в режиме палитры, диапазон бинов с контекстно-зависимым кодированием, используемых для преобразования, и выполняют преобразование на основе диапазона бинов с контекстно-зависимым кодированием. According to yet another exemplary aspect, another video processing method is proposed. The method includes the steps of determining, during the conversion between the current video block and the data bitstream representation of the current video block, that the current video block is a block encoded in palette mode, determining, based on the fact that the current video block is a block encoded in palette mode, the range of context-sensitive encoding bins used for the transformation, and performs the transformation based on the range of context-sensitive encoding bins.

Согласно еще одному примерному аспекту описанный выше способ может быть реализован посредством видеокодирующего устройства, содержащего процессор. According to yet another exemplary aspect, the method described above may be implemented by a video encoding device including a processor.

Согласно еще одному примерному аспекту способы могут быть реализованы в виде выполняемых процессором команд и сохранены на читаемом компьютером носителе программы. In yet another exemplary aspect, the methods may be implemented as processor-executable instructions and stored on a computer-readable program medium.

Эти и другие аспекты дополнительно описаны в настоящем документе. These and other aspects are further described herein.

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

Фиг. 1 показывает пример внутрикадрового копирования блоков.Fig. 1 shows an example of intra-frame block copying.

Фиг. 2 показывает пример блока, кодированного в режиме палитры.Fig. Figure 2 shows an example of a block encoded in palette mode.

Фиг. 3 показывает пример использования предиктора палитры для передачи входных позиций в палитре в форме.Fig. Figure 3 shows an example of using a palette predictor to pass input palette positions to a form.

Фиг. 4 показывает пример горизонтального и вертикального поперечного сканирования.Fig. 4 shows an example of horizontal and vertical cross-scanning.

Фиг. 5 показывает пример кодирования индексов палитры.Fig. 5 shows an example of encoding palette indices.

Фиг. 6 представляет блок-схему примера устройства для обработки видео. Fig. 6 is a block diagram of an example of a video processing apparatus.

Фиг. 7 показывает блок-схему примера реализации видео кодирующего устройства.Fig. 7 shows a block diagram of an example implementation of a video encoder.

Фиг. 8 представляет логическую схему примера способа обработки видео.Fig. 8 is a logic diagram of an example of a video processing method.

Фиг. 9 показывает пример пикселей, вовлеченных в принятие решения о включении/выключении фильтра и в выбор сильного/слабого фильтра. Fig. 9 shows an example of pixels involved in filter on/off decision and strong/weak filter selection.

Фиг. 10 показывает пример бинаризации четырех режимов. Fig. 10 shows an example of binarization of four modes.

Фиг. 11 показывает пример бинаризации четырех режимов. Fig. 11 shows an example of binarization of four modes.

Фиг. 12 показывает примеры 67 направлений для внутрикадрового прогнозирования. Fig. 12 shows examples of 67 directions for intra-frame prediction.

Фиг. 13 показывает примеры соседних видео блоков. Fig. 13 shows examples of adjacent video blocks.

Фиг. 14 показывает примеры форм ALF-фильтров (цветностная составляющая: 5×5 ромб, яркостная составляющая: 7×7 ромб). Fig. 14 shows examples of ALF filter shapes (chrominance: 5x5 diamond, luminance: 7x7 diamond).

Фиг. 15 (a) показывает примеры вычислений субдискретизированного оператора Лапласа для вертикального градиента.Fig. 15(a) shows examples of calculations of the subsampled Laplace operator for the vertical gradient.

Фиг. 15 (b) показывает примеры вычислений субдискретизированного оператора Лапласа для горизонтального градиента.Fig. 15(b) shows examples of calculations of the subsampled Laplace operator for a horizontal gradient.

Фиг. 15 (c) показывает примеры вычислений субдискретизированного оператора Лапласа для диагонального градиента.Fig. 15(c) shows examples of calculations of the subsampled Laplace operator for a diagonal gradient.

Фиг. 15 (d) показывает примеры вычислений субдискретизированного оператора Лапласа для диагонального градиента.Fig. 15(d) shows examples of calculations of the subsampled Laplace operator for a diagonal gradient.

Фиг. 16 показывает примеры модифицированной классификации блоков по виртуальным границам.Fig. 16 shows examples of modified block classification by virtual boundaries.

Фиг. 17 показывает примеры модифицированной ALF-фильтрации для яркостной составляющей на виртуальных границах.Fig. 17 shows examples of modified ALF filtering for the luminance component at virtual boundaries.

Фиг. 18 показывает пример четырех одномерных (1-D) 3-пиксельных структур для классификации пикселей в структуре со смещением края (EO).Fig. 18 shows an example of four one-dimensional (1-D) 3-pixel structures for classifying pixels in an edge offset (EO) structure.

Фиг. 19 показывает пример четырех полос, сгруппированных вместе и представленный позицией стартовой полосы.Fig. 19 shows an example of four stripes grouped together and represented by the position of the starting strip.

Фиг. 20 показывает пример верхнего и левого соседних блоков, используемых для вывода весовых коэффициентов для режима прогнозирования CIIP.Fig. 20 shows an example of the top and left adjacent blocks used to output weights for the CIIP prediction mode.

Фиг. 21 показывает пример архитектуры для отображения яркостной составляющей с масштабированием цветностной составляющей.Fig. 21 shows an example architecture for luma display with chrominance scaling.

Фиг. 22 показывает пример порядка сканирования для блока размером 4x4.Fig. 22 shows an example of the scan order for a 4x4 block.

Фиг. 23 показывает другой пример порядка сканирования для блока размером 4x4.Fig. 23 shows another example of the scan order for a 4x4 block.

Фиг. 24 представляет блок-схему примера обработки видео, в которой может быть реализована предлагаемая технология. Fig. 24 is a block diagram of an example of video processing in which the proposed technology can be implemented.

Фиг. 25 показывает представление логической схемы способа обработки видео в соответствии с предлагаемой технологией. Fig. 25 shows a logic diagram representation of a video processing method in accordance with the proposed technology.

Фиг. 26 показывает представление логической схемы другого способа обработки видео в соответствии с предлагаемой технологией. Fig. 26 shows a logic diagram representation of another video processing method in accordance with the proposed technology.

Фиг. 27 показывает другое представление логической схемы другого способа обработки видео в соответствии с предлагаемой технологией. Fig. 27 shows another logic diagram of another video processing method in accordance with the proposed technology.

Фиг. 28 показывает другое представление логической схемы другого способа обработки видео в соответствии с предлагаемой технологией. Fig. 28 shows another logic diagram of another video processing method in accordance with the proposed technology.

Фиг. 29 показывает другое представление логической схемы другого способа обработки видео в соответствии с предлагаемой технологией. Fig. 29 shows another logic diagram of another video processing method in accordance with the proposed technology.

Фиг. 30 показывает другое представление логической схемы другого способа обработки видео в соответствии с предлагаемой технологией. Fig. 30 shows another logic diagram of another video processing method in accordance with the proposed technology.

Фиг. 31 показывает еще одно другое представление логической схемы другого способа обработки видео в соответствии с предлагаемой технологией. Fig. 31 shows another different logic diagram of another video processing method in accordance with the proposed technology.

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

Настоящий документ предлагает различные способы, которые могут быть использованы декодирующими устройствами для декодирования изображения или потока битов данных видео с целью улучшения качества расширенного или декодированного цифрового видео или изображений. Для краткости, термин «видео» используется здесь для того, чтобы охватывать как последовательность изображений (традиционно называемую «видео»), так и индивидуальные изображения. Более того, видео кодирующее устройство может также реализовать эти способы в процессе кодирования с целью реконструировать декодированные кадры, используемые для дальнейшего кодирования. This document proposes various techniques that can be used by decoding devices to decode an image or video data bitstream to improve the quality of the enhanced or decoded digital video or images. For brevity, the term "video" is used here to cover both a sequence of images (traditionally called a "video") and individual images. Moreover, the video encoder may also implement these techniques during the encoding process to reconstruct decoded frames used for further encoding.

Заголовки разделов в настоящем документе используются для облегчения понимания и не ограничивают варианты и способы только соответствующими разделами. Поэтому, варианты из одного раздела можно комбинировать с вариантами из других разделов.The section headings in this document are used for ease of understanding and are not intended to limit the options and techniques to those sections only. Therefore, options from one section can be combined with options from other sections.

1. Общие положения1. General Provisions

Настоящий документ относится к технологиям кодирования видео. В частности, документ относится к кодированию в режиме палитры с использованием представления на основе базовых цветов при кодировании видео. Документ может быть применен к существующим стандартам кодирования видео, таких как «Высокоэффективное видео кодирование» (HEVC) или стандарт «Универсальное видео кодирование» (VVC (Versatile Video Coding)), разработка которого еще не завершена. Он может быть также применим к стандартам будущего для обработки видео или к видео кодекам.This document applies to video encoding technologies. In particular, the document relates to palette mode encoding using a base color representation in video encoding. The document can be applied to existing video coding standards, such as High Efficiency Video Coding (HEVC) or the Versatile Video Coding (VVC) standard, which is not yet complete. It may also be applicable to future video processing standards or video codecs.

2. Первоначальное обсуждение2. Initial discussion

Стандарты кодирования видео развивались главным образом через разработку хорошо известных стандартов ITU-T и ISO/IEC. Союз ITU-T выпустил стандарты H.261 и H.263, организация ISO/IEC выпустила стандарты MPEG-1 и MPEG-4 Visual, а также эти две организации совместно выпустили стандарты H.262/MPEG-2 Video и H.264/MPEG-4 Advanced Video Coding (AVC) (усовершенствованное видео кодирование) и H.265/HEVC. Со времени стандарта H.262, стандарты кодирования видео основаны на гибридной структуре кодирования видео, использующей временное прогнозирование плюс трансформационное кодирование. Для исследований в области технологий кодирования видео будущего, которые будут разработаны после технологии кодирования HEVC, группа экспертов по кодированию видео (VCEG) и группа экспертов по кинематографии (MPEG) в 2015 г. совместно основали Объединенную группу исследований в области видео (Joint Video Exploration Team (JVET)). С тех пор группа JVET разработала множество способов и ввела их в эталонное программное обеспечение, называемое Совместной исследовательской моделью (Joint Exploration Model (JEM)). В апреле 2018 г. группа VCEG (Q6/16) и отдел ISO/IEC JTC1 SC29/WG11 (MPEG) создали объединенную группу экспертов в области видео (Joint Video Expert Team (JVET)) для работ над стандартом VVC, имея целью добиться снижения требуемой скорости передачи битов данных на 50% по сравнению с кодированием HEVC.Video coding standards have evolved primarily through the development of the well-known ITU-T and ISO/IEC standards. ITU-T has released H.261 and H.263, ISO/IEC has released MPEG-1 and MPEG-4 Visual, and the two have jointly released H.262/MPEG-2 Video and H.264/ MPEG-4 Advanced Video Coding (AVC) and H.265/HEVC. Since the H.262 standard, video coding standards have been based on a hybrid video coding structure using time prediction plus transformation coding. To research future video encoding technologies that will be developed after HEVC encoding technology, the Video Coding Experts Group (VCEG) and the Motion Picture Experts Group (MPEG) jointly founded the Joint Video Exploration Team in 2015 (JVET)). Since then, the JVET team has developed many techniques and incorporated them into reference software called the Joint Exploration Model (JEM). In April 2018, VCEG (Q6/16) and ISO/IEC JTC1 SC29/WG11 (MPEG) formed the Joint Video Expert Team (JVET) to work on the VVC standard, with the goal of reducing required data bit rate by 50% compared to HEVC encoding.

На фиг. 7 представлена блок-схема примера реализации видео кодирующего устройства. На фиг. 7 показано, что реализация кодирующего устройства имеет встроенную цепь обратной связи, в которое видео кодирующее устройство также осуществляет функции декодирования видео (реконструкцию сжатого представления данных видео для использования при кодировании следующих данных видео).In fig. 7 is a block diagram of an example implementation of a video encoder. In fig. 7 shows that the encoder implementation has a built-in feedback loop in which the video encoder also performs video decoding functions (reconstructing a compressed representation of video data for use in encoding subsequent video data).

2.1 Режим внутрикадрового копирования блоков2.1 Intra-frame block copying mode

Режим внутрикадрового копирования блоков (IBC), который также называется использованием текущего изображения в качестве опоры, был принят в расширениях кодирования контента экрана (HEVC Screen Content Coding extensions (HEVC-SCC)) и в тестовой модели сегодняшней версии стандарта кодирования VVC (VTM-4.0). Принцип копирования IBC расширяет концепцию компенсации движения от кодирования с межкадровым прогнозированием на кодирование с внутрикадровым прогнозированием. Как показано на фиг. 1, когда применяется копирование IBC, текущий блок прогнозируют на основе опорного блока из того же самого изображения. Отсчеты из опорного блока должны быть уже реконструированы прежде, чем текущий блок будет кодирован или декодирован. Хотя режим копирования IBC не является таким же эффективным, как большинство захватываемых видеокамерой последовательностей, он демонстрирует значительный выигрыш по кодированию контента экрана. Причиной этого является наличие больших групп из повторяющихся структур, таких как иконки и текстовые символы, в изображении контента экрана. Режим копирования IBC может эффективно устранить избыточность между этими повторяющимися структурами. В стандарте HEVC-SCC, единица кодирования (coding unit (CU)) с применением межкадрового прогнозирования может применить режим копирования IBC, если она выберет текущее изображение в качестве опорного изображения. В этом случае вектор движения (MV) переименовывают в блочный вектор (block vector (BV)), причем этот вектор BV всегда имеет точность до целого пикселя. Для обеспечения совместимости с главным профилем кодирования HEVC, текущее изображение маркируют как «долговременное» (“long-term”) опорное изображение в буфере декодированных изображений (Decoded Picture Buffer (DPB)). Следует отметить, что аналогично, в стандартах многовидового/3D кодирования видео, межвидовое опорное изображение также маркируют в качестве «долговременного» опорного изображения.Intra-block copy (IBC) mode, also called using the current image as a reference, has been adopted in the HEVC Screen Content Coding extensions (HEVC-SCC) and in the test model of today's version of the VVC coding standard (VTM-4.0). ). The IBC copy principle extends the concept of motion compensation from inter-prediction coding to intra-prediction coding. As shown in FIG. 1, when IBC copying is applied, the current block is predicted based on a reference block from the same image. The samples from the reference block must already be reconstructed before the current block is encoded or decoded. Although the IBC copy mode is not as efficient as most camcorder-captured sequences, it does show significant gains in encoding screen content. The reason for this is the presence of large groups of repeating structures, such as icons and text characters, in the display of screen content. The IBC copy mode can effectively eliminate the redundancy between these repeating structures. In the HEVC-SCC standard, a coding unit (CU) using inter-picture prediction can apply the IBC copy mode if it selects the current picture as the reference picture. In this case, the motion vector (MV) is renamed a block vector (BV), and this BV vector is always accurate to an integer pixel. To ensure compatibility with the main HEVC encoding profile, the current picture is marked as a “long-term” reference picture in the Decoded Picture Buffer (DPB). It should be noted that similarly, in multi-view/3D video coding standards, an inter-view reference picture is also labeled as a “long-term” reference picture.

Следуя за вектором BV, чтобы найти опорный блок, прогнозирование можно генерировать путем копирования опорного блока. Остаток может быть получен путем вычитания опорных пикселей из исходных сигналов. Затем может быть применена трансформация и квантование, как и в других режимах кодирования.By following the BV vector to find the reference block, the prediction can be generated by copying the reference block. The remainder can be obtained by subtracting the reference pixels from the original signals. Transformation and quantization can then be applied, as in other encoding modes.

Однако, когда опорный блок находится вне изображения, либо накладывается на текущий блок, либо находится вне реконструированной области, либо находится вне действительной области, ограниченной некоторыми ограничивающими факторами, часть или все значения пикселей не определены. В основном имеются два технических решения для работы с такой проблемой. Одно решение состоит в том, чтобы не допустить такой ситуации, например, в соответствии потоков битов данных. Другое решение состоит в том, чтобы применить заполнение для неопределенных значений пикселей. Следующие подразделы описывают эти технические решения подробно.However, when the reference block is outside the image, or is superimposed on the current block, or is outside the reconstructed region, or is outside the actual region limited by some limiting factors, some or all of the pixel values are undefined. There are basically two technical solutions to deal with this problem. One solution is to prevent this situation from happening, for example by matching data bit streams. Another solution is to apply padding to undefined pixel values. The following subsections describe these technical solutions in detail.

2.2 Режим копирования IBC в расширениях HEVC Screen Content Coding 2.2 IBC Copy Mode in HEVC Screen Content Coding Extensions

В расширениях с кодированием контента экрана в стандарте кодирования HEVC, когда какой-либо блок использует текущее изображение в качестве опоры, он должен гарантировать, что весь опорный блок находится в пределах доступной реконструированной области, как это обозначено в следующем специальном тексте (жирный):In extensions with screen content encoding in the HEVC encoding standard, when any block uses the current image as a reference, it must ensure that the entire reference block is within the available reconstructed region, as indicated by the following special text (bold):

Таким образом, случай, когда опорный блок накладывается на текущий блок или опорный блок находится вне изображения, не возникнет. Поэтому, нет необходимости «заполнять» опорный или прогнозируемый блок.Thus, the case where the reference block overlaps the current block or the reference block is outside the image will not occur. Therefore, there is no need to “fill in” the reference or forecast block.

2.3 Копирование IBC в тестовой модели для кодирования VVC 2.3 Copying IBC in Test Model for VVC Encoding

В сегодняшней тестовой модели кодирования VVC, например, проект документа VTM-4.0, весь опорный блок должен быть в текущей единице дерева кодирования (current coding tree unit (CTU)) и не должен накладываться на текущий блок. Таким образом, нет необходимости «заполнять» опорный или прогнозируемый блок. Флаг копирования IBC кодируют в качестве обозначения режима прогнозирования для текущей единицы CU. Таким образом, имеются всего три режима прогнозирования, MODE_INTRA, MODE_INTER и MODE_IBC для каждой единицы CU. In today's VVC encoding test model, such as the VTM-4.0 draft document, the entire reference block must be in the current coding tree unit (CTU) and must not overlap the current block. Thus, there is no need to "fill in" the reference or forecast block. The IBC copy flag is encoded to indicate the prediction mode for the current CU. Thus, there are a total of three forecast modes, MODE_INTRA, MODE_INTER and MODE_IBC for each CU.

2.3.1 Режим копирования с объединением (IBC Merge) 2.3.1 Copy mode with merge (IBC Merge)

В режиме копирования IBC с объединением, индекс, указывающий на входную позицию в список кандидатов для этого режима копирования IBC с объединением, выделяют посредством синтаксического анализа из потока битов данных. Процедура построения списка для режима копирования IBC с объединением может быть суммирована в соответствии со следующей последовательностью этапов:In the IBC merge copy mode, an index indicating an input position in the candidate list for this IBC merge copy mode is extracted by parsing from the data bit stream. The list construction procedure for IBC copy mode with merge can be summarized according to the following sequence of steps:

Этап 1: Формирование пространственных кандидатов Stage 1: Formation of spatial candidates

Этап 2: Вставка кандидатов для прогнозирования HMVP Step 2: Inserting Candidates for HMVP Prediction

Этап 3: Вставка попарно усредненных кандидатов Step 3: Inserting pairwise averaged candidates

При формировании пространственных объединяемых кандидатов, выбирают максимум четырех объединяемых кандидатов из совокупности кандидатов, расположенных в позициях, показанных на чертежах. Кандидатов выбирают в следующем порядке A1, B1, B0, A0 и B2. Позицию B2 учитывают только тогда, когда какая-либо из единиц PU, которые должны быть в позициях A1, B1, B0, A0, недоступна (например, потому, что эта единица принадлежит другому срезу или плитке) или не кодирована в режиме копирования IBC. После добавления кандидата в позиции A1 добавление остальных кандидатов должно происходить с контролем избыточности, что обеспечивает исключение кандидатов с одинаковой информацией о движении из списка, так что эффективность кодирования улучшается. Для уменьшения вычислительной сложности не все возможные пары кандидатов рассматривают в процессе упомянутого контроля избыточности. Напротив, учитывают только пары, связанные стрелкой, как показано на чертежах, и какого-либо кандидата добавляют в список только в том случае, если соответствующий кандидат, использованный для контроля избыточности, не имеет такую же самую информацию о движении.When generating spatial merging candidates, a maximum of four merging candidates are selected from the pool of candidates located at the positions shown in the drawings. Candidates are selected in the following order: A 1, B 1, B 0, A 0 and B 2 . Position B 2 is only taken into account when any of the PU units that should be in positions A 1 , B 1 , B 0 , A 0 is not available (for example, because this unit belongs to another slice or tile) or is not encoded in IBC copy mode. After adding a candidate at position A 1 , the addition of the remaining candidates must be done with redundancy control, which ensures that candidates with the same motion information are excluded from the list, so that coding efficiency is improved. To reduce computational complexity, not all possible candidate pairs are considered in the redundancy check process mentioned above. In contrast, only pairs connected by an arrow are considered, as shown in the drawings, and any candidate is added to the list only if the corresponding candidate used for redundancy control does not have the same motion information.

После вставки пространственных кандидатов, если размер списка кандидатов для режима копирования IBC с объединением все еще остается меньше максимального размера списка кандидатов для режима копирования IBC с объединением, могут быть вставлены кандидаты для режима копирования IBC из таблицы прогнозирования HMVP. При вставке кандидатов из таблицы прогнозирования HMVP выполняется контроль избыточности.After inserting spatial candidates, if the size of the IBC join copy mode candidate list is still less than the maximum size of the IBC join copy mode candidate list, the IBC copy mode candidates from the HMVP prediction table can be inserted. When inserting candidates from the HMVP prediction table, redundancy checks are performed.

Наконец, попарно усредненных кандидатов добавляют в список кандидатов для режима копирования IBC с объединением.Finally, the pairwise averaged candidates are added to the candidate list for the IBC copy mode with pooling.

Когда опорный блок, идентифицированный объединяемым кандидатом, находится вне изображения, либо накладывается на текущий блок, либо находится вне реконструированной области, либо находится вне действительной области, ограниченной некоторыми ограничивающими факторами, этот объединяемый кандидат называется недействительным объединяемым кандидатом.When the reference block identified by a merging candidate is outside the image, or is superimposed on the current block, or is outside the reconstructed region, or is outside the valid region limited by some limiting factors, this merging candidate is called an invalid merging candidate.

Отметим, что недействительные объединяемые кандидаты могут быть вставлены в список кандидатов для режима копирования IBC с объединением.Note that invalid merge candidates may be inserted into the candidate list for IBC copy mode with merge.

2.3.2 Режим прогнозирования AMVP с копированием IBC 2.3.2 AMVP Prediction Mode with IBC Copy

В режиме прогнозирования AMVP с копированием IBC (далее – режим IBC AMVP) индекс прогнозирования AMVP, указывающий на входную позицию в списке режима IBC AMVP, получают посредством синтаксического анализа из потока битов данных. Построение списка режима IBC AMVP может быть суммировано в соответствии со следующей последовательностью этапов:In the IBC copy AMVP prediction mode (hereinafter referred to as the IBC AMVP mode), an AMVP prediction index indicating an input position in the IBC AMVP mode list is obtained by parsing from the data bit stream. The construction of the IBC AMVP mode list can be summarized according to the following sequence of steps:

Этап 1: Формирование пространственных кандидатовStage 1: Formation of spatial candidates

Проверка A0, A1 пока не будет найден доступный кандидат.Check A0, A1 until an available candidate is found.

Проверка B0, B1, B2 пока не будет найден доступный кандидат.Check B0, B1, B2 until an available candidate is found.

Этап 2: Вставка кандидатов для прогнозирования HMVPStep 2: Inserting Candidates for HMVP Prediction

Этап 3: Вставка нулевых кандидатов Step 3: Inserting Null Candidates

После вставки пространственных кандидатов, если размер списка для режима IBC AMVP все еще меньше максимального размера списка для этого режима IBC AMVP, могут быть вставлены кандидаты для режима копирования IBC из таблицы прогнозирования HMVP.After inserting spatial candidates, if the list size for an IBC AMVP mode is still less than the maximum list size for that IBC AMVP mode, candidates for the IBC copy mode from the HMVP prediction table can be inserted.

В конце концов, в этом список для режима IBC AMVP вставляют нулевых кандидатов.Finally, zero candidates are inserted into this list for the IBC AMVP mode.

2.4 Режим палитры2.4 Palette mode

Базовая идея, лежащая в основе режима палитры, состоит в том, что отсчеты в единице CU представлены небольшим набором репрезентативных цветовых значений. Этот набор называется палитрой. Можно также обозначить отсчет, находящийся вне палитры, путем передачи в виде сигнализации символа выпадения, за которым следует (возможно квантованные) значения компонентов. Это иллюстрировано на фиг. 2. The basic idea behind palette mode is that samples in a CU are represented by a small set of representative color values. This set is called a palette. It is also possible to indicate an off-palette sample by signaling a dropout symbol followed by (possibly quantized) component values. This is illustrated in FIG. 2.

2.5 Режим палитры в стандарте кодирования HEVC с расширениями кодирования контента экрана (HEVC-SCC)2.5 Palette mode in the HEVC encoding standard with Screen Content Coding Extensions (HEVC-SCC)

В режиме палитры в стандарте HEVC-SCC, прогнозирование используется для кодирования палитры и индексной карты.In palette mode in the HEVC-SCC standard, prediction is used to encode the palette and index map.

2.5.1 Кодирование входных позиций палитры 2.5.1 Coding input palette positions

Для кодирования входных позиций палитры поддерживают предиктор палитры. Максимальный размер палитры, равно как и предиктор палитры, сообщают в виде сигнализации в наборе SPS. В стандарте кодирования HEVC-SCC, в набор PPS вставляют флаг palette_predictor_initializer_present_flag. Когда этот флаг равен 1, входные позиции для инициализации предиктора палитры сообщают в виде сигнализации в потоке битов данных. Предиктор палитры инициализируют в начале каждой строки единиц CTU, каждого среза и каждой плитки. В зависимости от значения флага palette_predictor_initializer_present_flag, предиктор палитры устанавливают на 0 или инициализируют с использованием входных позиций инциализатора предиктора палитры, сообщаемых в виде сигнализации в наборе PPS. В стандарте кодирования HEVC-SCC, был активизирован инициализатор предиктора палитры размером 0, чтобы допустить отмену в явной форме инициализации предиктора палитры на уровне набора PPS.To encode input palette positions, a palette predictor is supported. The maximum palette size, as well as the palette predictor, is reported as an alarm in the SPS set. In the HEVC-SCC encoding standard, the palette_predictor_initializer_present_flag flag is inserted into the PPS set. When this flag is 1, the input positions for initializing the palette predictor are signaled in the data bitstream. The palette predictor is initialized at the beginning of each line of CTUs, each slice, and each tile. Depending on the value of the palette_predictor_initializer_present_flag, the palette predictor is set to 0 or initialized using the palette predictor initializer input positions signaled in the PPS set. In the HEVC-SCC coding standard, a palette predictor initializer of size 0 was enabled to allow explicit de-initialization of the palette predictor at the PPS set level.

Для каждой входной позиции в предикторе палитры, сообщают в виде сигнализации флаг повторного использования для индикации, является ли это частью текущей палитры. Это иллюстрирует фиг. 3. Флаги повторного использования передают с применением кодирования длин серий нулей. После этого, число новых входных позиций передают в виде сигнализации с использованием экспоненциального кода Голомба порядка 0. Наконец, передают в виде сигнализации значения компонентов для новых входных позиций палитры.For each input position in the palette predictor, a reuse flag is signaled to indicate whether it is part of the current palette. This is illustrated in Fig. 3. Reuse flags are transmitted using run-of-zero length encoding. Thereafter, the number of new input positions is signaled using an exponential Golomb code of order 0. Finally, the component values for the new palette input positions are signaled.

2.5.2 Кодирование индексов палитры 2.5.2 Encoding palette indices

Индексы палитры кодируют с использованием горизонтальных и вертикальных поперечных сканирующих проходов, как показано на фиг. 4. Порядок сканирования передают в виде сигнализации в потоке битов данных с использованием флага palette_transpose_flag. В остальной части этого подраздела предполагается, что сканирование является горизонтальным.Palette indices are encoded using horizontal and vertical transverse scanning passes, as shown in FIG. 4. The scan order is signaled in the data bitstream using the palette_transpose_flag. The rest of this subsection assumes that the scan is horizontal.

Индексы палитры кодируют с использованием двух главных режимов для отсчетов палитры: «индексный режим» ('INDEX') и «режим копирования верхнего» 'COPY_ABOVE'. Как объясняется ранее, символ выпадения также передают в виде сигнализации как режим 'INDEX' и назначают ему индекс, равный максимальному размеру палитры. Указание режима передают в виде сигнализации с использованием флага за исключением верхней строки или случая, когда предшествующий режим был режимом 'COPY_ABOVE'. В режиме 'COPY_ABOVE' копируют индекс палитры из строки сверху. В режиме 'INDEX' индекс палитры передают в форме сигнализации в явном виде. Для обоих режимов 'INDEX' и 'COPY_ABOVE' сообщают в форме сигнализации длину серии, которая специфицирует число последовательных отсчетов, также кодируемых в том же самом режиме. Когда символ выпадения является частью серии в режиме 'INDEX' или 'COPY_ABOVE', для каждого символа выпадения передают в виде сигнализации значения компонентов этого символа. Кодирование индексов палитры иллюстрировано на фиг. 5.Palette indices are encoded using two main modes for palette samples: 'index mode' ('INDEX') and 'copy top mode' 'COPY_ABOVE'. As explained earlier, the drop symbol is also signaled as 'INDEX' mode and assigned an index equal to the maximum palette size. The mode indication is signaled using a flag, except in the case of the top line or in the case where the previous mode was the 'COPY_ABOVE' mode. In 'COPY_ABOVE' mode, the palette index is copied from the row above. In 'INDEX' mode, the palette index is explicitly signaled. For both modes 'INDEX' and 'COPY_ABOVE' the run length is reported in signaling form, which specifies the number of consecutive samples also encoded in the same mode. When a hit symbol is part of a series in 'INDEX' or 'COPY_ABOVE' mode, for each hit symbol the component values of that symbol are signaled. The encoding of palette indices is illustrated in FIG. 5.

Синтаксический порядок этого установлен следующим образом. Сначала сообщают число значений индексов для единицы CU. За этим следует сигнализация фактических значений индексов для всей единицы CU с использованием усеченного двоичного кодирования. И число индексов, и значения индексов кодируют в режиме обхода. Это группирует относящиеся к индексам обходные секции вместе. Затем о режиме отсчетов палитры (если необходимо) и о величине серии сообщают в виде сигнализации перемежающимся образом. Затем значения компонентов выпадения, соответствующие выпадающим отсчетам, для всей единицы CU группируют вместе и кодируют в режиме обхода.The syntactic order for this is as follows. First, the number of index values for the CU is reported. This is followed by signaling the actual index values for the entire CU using truncated binary encoding. Both the number of indexes and the index values are encoded in bypass mode. This groups index-related bypass sections together. The palette sample mode (if necessary) and burst size are then signaled in an interleaved manner. The dropout component values corresponding to the dropout samples for the entire CU are then grouped together and bypass encoded.

Дополнительный синтаксический элемент, флаг last_run_type_flag, передают в виде сигнализации после сигнализации значений индексов. Этот синтаксический элемент, в сочетании с числом индексов, исключает необходимость передавать в виде сигнализации величину серии, соответствующую последней серии в блоке.An additional syntax element, last_run_type_flag, is signaled after the index values are signaled. This syntax element, in combination with the number of indices, eliminates the need to signal the run value corresponding to the last run in the block.

В стандарте кодирования HEVC-SCC, режим палитры также активизирован для цветовых форматов 4:2:2, 4:2:0 и для черно-белого формата. Сигнализация входных позиций палитры и индексов палитры является почти идентичной для всех цветовых форматов. В случае не черно-белых (не одноцветных) форматов каждая входная позиция палитры состоит из 3 компонентов. Для черно-белого формата каждая входная позиция палитры состоит из одного компонента. Для направлений субдискретизированной цветностной составляющей отсчеты цветностной составляющей ассоциированы с индексами отсчетов яркостной составляющей, которые делятся на 2. После реконструкции индексов палитры для единицы CU, если с каким-либо отсчетом ассоциирована только одна составляющая, используется только первый компонент входной позиции палитры. Единственное различие в сигнализации предусмотрено только для значений выпадающих компонентов. Для каждого выпадающего отсчета число передаваемых в виде сигнализации значений выпадающих компонентов может быть различным в зависимости от числа компонентов, ассоциированных с этим отсчетом.In the HEVC-SCC encoding standard, palette mode is also enabled for 4:2:2, 4:2:0 and black and white color formats. The signaling of input palette positions and palette indices is almost identical for all color formats. In the case of non-black and white (non-monochrome) formats, each input palette position consists of 3 components. For the black and white format, each input palette position consists of one component. For subsampled chroma directions, the chroma samples are associated with the luminance sample indices, which are divisible by 2. After reconstructing the palette indices for the CU, if only one component is associated with any sample, only the first component of the input palette position is used. The only difference in signaling is only for the values of the dropped components. For each outlier sample, the number of outlier component values signaled may vary depending on the number of components associated with that sample.

В стандарте кодирования VVC, две структуры дерева кодирования используются при кодировании срезов с внутрикадровым прогнозированием, так что яркостная составляющая и две цветностные составляющие могут иметь различные палитры и индексы палитры. Кроме того, указанные две цветностные составляющие совместно используют одну и ту же палитру и одинаковые индексы палитры.In the VVC coding standard, two coding tree structures are used when encoding intra-frame prediction slices, so that the luma component and the two chrominance components can have different palettes and palette indices. In addition, the two color components share the same palette and the same palette indices.

2.6 Схема деблокирования в стандарте кодирования VVC2.6 Deblocking scheme in the VVC coding standard

Отметим, что в последующих описаниях, символ pNM обозначает N-ый отсчет в M-ой строке на левой стороне относительно вертикального края или N-ый отсчет в M-ом столбце на верхней стороне относительно горизонтального края, символ qNM обозначает N-ый отсчет M-ой строке на правой стороне относительно вертикального края или N-ый отсчет в M-ом столбце на нижней стороне относительно горизонтального края. Пример символов pNM и qNM показан на фиг. 9.Note that in the following descriptions, the symbol pN M denotes the N-th count in the M-th row on the left side relative to the vertical edge or the N-th count in the M-th column on the top side relative to the horizontal edge, the symbol qN M denotes the N-th count the Mth row on the right side relative to the vertical edge or the Nth count in the Mth column on the bottom side relative to the horizontal edge. An example of the symbols pN M and qN M is shown in FIG. 9.

Отметим, что в последующих описаниях, символ pN обозначает N-ый отсчет в строке на левой стороне относительно вертикального края или N-ый отсчет в столбце на верхней стороне относительно горизонтального края, символ qN обозначает N-ый отсчет в строке на правой стороне относительно вертикального края или N-ый отсчет в столбце на нижней стороне относительно горизонтального края.Note that in the following descriptions, the symbol p N denotes the Nth count in a row on the left side relative to the vertical edge or the Nth count in a column on the top side relative to the horizontal edge, the symbol q N denotes the Nth count in a row on the right side relative to the vertical edge or the Nth count in the column on the bottom side relative to the horizontal edge.

Решение о включении/выключении фильтра принимают для четырех строк как одной единицы. Фиг. 9 иллюстрирует пиксели, вовлеченные в принятие решений о включении/выключении фильтра. 6 пикселей в двух красных рамках для первых четырех строк используются для определения включения/выключения фильтра для 4 строк. 6 пикселей в двух красных рамках для вторых четырех строк используются для определения включения/выключения фильтра для этих вторых четырех строк. The decision to turn the filter on/off is made for four rows as one unit. Fig. 9 illustrates the pixels involved in filter on/off decisions. The 6 pixels in the two red frames for the first four rows are used to determine whether the filter is on/off for the 4 rows. The 6 pixels in the two red frames for the second four rows are used to determine whether the filter is on/off for those second four rows.

В некоторых вариантах, вертикальные края в изображении фильтруют первыми. Затем фильтруют горизонтальные края изображения, используя в качестве входных данных отсчеты, модифицированные в результате фильтрации вертикальных краев. Вертикальные и горизонтальные края в блоках CTB каждой единицы CTU обрабатывают по отдельности на основе единиц кодирования. Вертикальные края блоков кодирования в единице кодирования фильтруют, начиная с края на левой стороне блоков кодирования и продвигаясь через края в направлении правой стороны блоков кодирования в их геометрическом порядке. Горизонтальные края блоков кодирования в единице кодирования фильтруют, начиная с верхнего края блоков кодирования и продвигаясь через края в направлении к нижней стороне блоков кодирования в их геометрическом порядке.In some embodiments, the vertical edges in the image are filtered first. The horizontal edges of the image are then filtered using as input the samples modified by filtering the vertical edges. The vertical and horizontal edges in the CTBs of each CTU are processed separately based on the coding units. The vertical edges of the coding blocks in a coding unit are filtered starting from an edge on the left side of the coding blocks and moving through the edges towards the right side of the coding blocks in their geometric order. The horizontal edges of the coding blocks in a coding unit are filtered starting from the top edge of the coding blocks and moving through the edges towards the bottom side of the coding blocks in their geometric order.

2.6.1 Решение о границах2.6.1 Boundary decision

К границам блоков размером 8x8 применяют фильтрацию. В дополнение к этому, это должна быть граница блока преобразования или граница субблока кодирования (например, из-за использования аффинного прогнозирования движения, ATMVP). Для объектов, не являющихся такими границами, фильтрацию не активизируют.Filtering is applied to the boundaries of 8x8 blocks. In addition, it must be a transform block boundary or an encoding subblock boundary (eg, due to the use of affine motion prediction, ATMVP). For objects that are not such boundaries, filtering is not activated.

2.6.2 Вычисление жесткости границы 2.6.2 Calculation of boundary rigidity

Для границы блока преобразования/границы субблока кодирования, если она располагается в сетке 8x8, она может быть фильтрована и установление параметра жесткости границы bS[ xDi ][ yDj ] (где [ xDi ][ yDj ] обозначает координаты) для этого края определено следующим образом:For a transform block boundary/encoding subblock boundary, if it is located in an 8x8 grid, it can be filtered and setting the boundary hardness parameter bS[ xD i ][ yD j ] (where [ xD i ][ yD j ] denotes the coordinates) for that edge defined as follows:

- Если отсчеты p0 или q0 находятся в блоке кодирования в единице кодирования, которую кодируют в режиме внутрикадрового прогнозирования, параметр bS[ xDi ][ yDj ] устанавливают равным 2.- If samples p 0 or q 0 are in a coding block in a coding unit that is encoded in intra-prediction mode, the parameter bS[ xD i ][ yD j ] is set to 2.

- В противном случае, если край блока также является краем блока преобразования, и отсчет p0 или q0 находится в блоке преобразования, имеющем один или несколько уровней ненулевых коэффициентов трансформации, параметр bS[ xDi ][ yDj ] устанавливают равным 1.- Otherwise, if the block edge is also a transform block edge, and sample p 0 or q 0 is in a transform block having one or more levels of non-zero transformation coefficients, the parameter bS[ xD i ][ yD j ] is set to 1.

- В противном случае, если режим прогнозирования для субблока кодирования, содержащего отсчет p0, отличается от режима прогнозирования для субблока кодирования, содержащего отсчет q0, параметр bS[ xDi ][ yDj ] устанавливают равным 1.- Otherwise, if the prediction mode for the encoding subblock containing sample p 0 is different from the prediction mode for the encoding subblock containing sample q 0 , the parameter bS[ xD i ][ yD j ] is set to 1.

- В противном случае, если одно или несколько из следующих условий является истинным, параметр bS[ xDi ][ yDj ] устанавливают равным 1:- Otherwise, if one or more of the following conditions is true, the parameter bS[ xD i ][ yD j ] is set to 1:

- Оба субблока – субблок кодирования, содержащий отсчет p0, и субблок кодирования, содержащий отсчет q0, кодируют в режиме прогнозирования с копированием IBC, и абсолютная разница между горизонтальными или вертикальными компонентами векторов движения, используемыми при прогнозировании указанных двух субблоков кодирования, не меньше 4 в четвертях единицы измерения отсчетов яркостной составляющей.- Both subblocks - the encoding subblock containing sample p 0 and the encoding subblock containing sample q 0 - are encoded in the IBC copy prediction mode, and the absolute difference between the horizontal or vertical components of the motion vectors used in predicting the two encoding subblocks is not less 4 units of measurement of brightness component counts in quarters.

- Для прогнозирования субблока кодирования, содержащего отсчет p0, используются опорные изображения или число векторов движения, отличающиеся от тех изображений и числа векторов, используемых при прогнозировании субблока кодирования, содержащего отсчет q0.- To predict the encoding subblock containing the sample p 0 , reference images or a number of motion vectors that are different from those images and the number of vectors used in predicting the encoding subblock containing the sample q 0 are used.

Примечание 1 – Определение, являются ли опорные изображения, используемые для указанных двух субблоков кодирования, одинаковыми или разными, основано только на том, на какие изображения даются ссылки в качестве опорных, независимо от того, выполнено ли прогнозирование с использованием индекса, указывающего в список 0 опорных изображенний, или с использованием индекса, указывающего в список 1 опорных изображений, а также независимо от того, отличается ли индексированная позиция в списке опорных изображений.Note 1 – The determination of whether the reference pictures used for the specified two encoding subblocks are the same or different is based only on which pictures are referenced as the reference, regardless of whether prediction is made using an index pointing to list 0 reference pictures, or using an index pointing to reference picture list 1, and regardless of whether the indexed position in the reference picture list is different.

Примечание 2 – Число векторов движения, используемых для прогнозирования субблока кодирования, в котором верхний-левый отсчет покрывает точку ( xSb, ySb ), равно PredFlagL0[ xSb ][ ySb ] + PredFlagL1[ xSb ][ ySb ].Note 2 – The number of motion vectors used to predict a coding subblock in which the top-left sample covers the point ( xSb, ySb ) is PredFlagL0[ xSb ][ ySb ] + PredFlagL1[ xSb ][ ySb ].

- Один вектор движения используется для прогнозирования субблока кодирования, содержащего отсчет p0, и один вектор движения используется для прогнозирования субблока кодирования, содержащего отсчет q0, и абсолютная разница между горизонтальными или вертикальными компонентами используемых векторов движения не меньше 4 в четвертях единицы измерения отсчетов яркостной составляющей.- One motion vector is used to predict the encoding subblock containing sample p 0 , and one motion vector is used to predict the encoding subblock containing sample q 0 , and the absolute difference between the horizontal or vertical components of the motion vectors used is not less than 4 in quarters of the luminance sample unit component.

- Два вектора движения и два разных опорных изображения используются для прогнозирования субблока кодирования, содержащего отсчет p0, два вектора движения для тех же двух опорных изображений используются для прогнозирования субблока кодирования, содержащего отсчет q0, и абсолютная разница между горизонтальными или вертикальными компонентами этих двух векторов движения, используемых для прогнозирования указанных двух субблоков кодирования для одного и того же опорного изображения не меньше 4 в четвертях единицы измерения отсчетов яркостной составляющей.- Two motion vectors and two different reference pictures are used to predict a coding subblock containing sample p 0 , two motion vectors for the same two reference pictures are used to predict a coding subblock containing sample q 0 , and the absolute difference between the horizontal or vertical components of the two motion vectors used to predict the two encoding subblocks for the same reference image of at least 4 in quarter units of luminance component samples.

- Два вектора движения для одного и того же опорного изображения используются для прогнозирования субблока кодирования, содержащего отсчет p0, два вектора движения для одного и того же опорного изображения используются для прогнозирования субблока кодирования, содержащего отсчет q0, и оба следующих условия являются истинными:- Two motion vectors for the same reference picture are used to predict a coding subblock containing sample p 0 , two motion vectors for the same reference picture are used to predict a coding subblock containing sample q 0 , and both of the following conditions are true:

- Абсолютная разница между горизонтальными или вертикальными компонентами векторов движения из списка 0, используемых при прогнозировании двух субблоков кодирования, не меньше 4 в четвертях единицы измерения отсчетов яркостной составляющей, или абсолютная разница между горизонтальными или вертикальными компонентами векторов движения из списка 1, используемых при прогнозировании двух субблоков кодирования, не меньше 4 в четвертях единицы измерения отсчетов яркостной составляющей.- The absolute difference between the horizontal or vertical components of motion vectors from list 0 used in predicting two coding subblocks is not less than 4 in quarter units of luminance component samples, or the absolute difference between the horizontal or vertical components of motion vectors from list 1 used in predicting two coding subblocks, not less than 4 in quarters of the unit of measurement of the brightness component samples.

- Абсолютная разница между горизонтальными или вертикальными компонентами вектора движения из списка 0, используемого при прогнозировании субблока кодирования, содержащего отсчет p0, и вектора движения из списка 1, используемого при прогнозировании субблока кодирования, содержащего отсчет q0, не меньше 4 в четвертях единицы измерения отсчетов яркостной составляющей, или абсолютная разница между горизонтальными или вертикальными компонентами вектора движения из списка 1, используемого при прогнозировании субблока кодирования, содержащего отсчет p0, и вектора движения из списка 0, используемого при прогнозировании субблока кодирования, содержащего отсчет q0, не меньше 4 в четвертях единицы измерения отсчетов яркостной составляющей.- The absolute difference between the horizontal or vertical components of the motion vector from list 0 used in predicting the coding subblock containing sample p 0 and the motion vector from list 1 used in predicting the coding subblock containing sample q 0 is not less than 4 in quarters of a unit of measurement samples of the luminance component, or the absolute difference between the horizontal or vertical components of the motion vector from list 1, used when predicting a coding subblock containing sample p 0 , and the motion vector from list 0, used when predicting a coding subblock containing sample q 0 , not less than 4 in quarters of the unit of measurement of brightness component counts.

- В противном случае, переменную bS[ xDi ][ yDj ] устанавливают равной 0.- Otherwise, the variable bS[ xD i ][ yD j ] is set to 0.

Таблицы 2-1 и 2-2 суммируют правила вычисления жесткости границы (BS). Tables 2-1 and 2-2 summarize the rules for calculating boundary stiffness (BS).

Таблица 2-1. Жесткость границы (когда режим SPS IBC не активизирован)Table 2-1. Boundary hardness (when SPS IBC mode is not activated)

ПриоритетA priority УсловияConditions YY UU VV 55 По меньшей мере один из соседних блоков кодируют с применением внутрикадрового прогнозирования At least one of the adjacent blocks is encoded using intra-frame prediction 22 22 22 44 Граница единицы TU и по меньшей мере одного из соседних блоков имеет ненулевые коэффициенты трансформации The boundary of the TU unit and at least one of the neighboring blocks has non-zero transformation ratios 11 11 11 33 Опорные изображения или число векторов MV (1 для однонаправленного прогнозирования, 2 для двунаправленного прогнозирования) для соседних блоков различаются The reference images or number of MV vectors (1 for unidirectional prediction, 2 for bidirectional prediction) for adjacent blocks differ 11 N/AN/A N/AN/A 22 Абсолютная разность между векторами движения для одного и того же опорного изображения, принадлежащими соседним блокам, не меньше одной единицы измерения яркостного отсчета The absolute difference between motion vectors for the same reference image, belonging to adjacent blocks, is not less than one unit of brightness reading 11 N/AN/A N/AN/A 11 ИноеOther 00 00 00

Таблица 2-2. Жесткость границы (когда режим SPS IBC активизирован)Table 2-2. Boundary hardness (when SPS IBC mode is activated)

ПриоритетA priority УсловияConditions YY UU VV 88 По меньшей мере один из соседних блоков кодируют с применением внутрикадрового прогнозирования At least one of the adjacent blocks is encoded using intra-frame prediction 22 22 22 77 Граница единицы TU и по меньшей мере одного из соседних блоков имеет ненулевые коэффициенты трансформации The boundary of the TU unit and at least one of the neighboring blocks has non-zero transformation ratios 11 11 11 66 Режимы прогнозирования для соседних блоков различны (например, один из режимов является режимом копирования IBC, и один из режимов является режимом межкадрового прогнозирования)The prediction modes for adjacent blocks are different (for example, one of the modes is an IBC copy mode, and one of the modes is an inter-frame prediction mode) 11 55 И режим копирования IBC, и абсолютная разность между векторами движения, принадлежащими соседним блокам, не меньше одной единицы измерения яркостного отсчетаBoth the IBC copy mode and the absolute difference between the motion vectors belonging to adjacent blocks are not less than one unit of brightness reading 11 N/AN/A N/AN/A 44 Опорные изображения или число векторов MV (1 для однонаправленного прогнозирования, 2 для двунаправленного прогнозирования) для соседних блоков различаются The reference images or number of MV vectors (1 for unidirectional prediction, 2 for bidirectional prediction) for adjacent blocks differ 11 N/AN/A N/AN/A 33 Абсолютная разность между векторами движения для одного и того же опорного изображения, принадлежащими соседним блокам, не меньше одной единицы измерения яркостного отсчета The absolute difference between motion vectors for the same reference image, belonging to adjacent blocks, is not less than one unit of brightness reading 11 N/AN/A N/AN/A 11 ИноеOther 00 00 00

2.6.3 Решение о деблокировании для яркостной составляющей2.6.3 Release decision for luminance component

В этом подразделе описана процедура решения о деблокировании. This subsection describes the release decision procedure.

Более широкие – более сильные фильтры для яркостной составляющей используются только в том случае, когда все три условия – Условие1, Условие2 и Условие3 являются ИСТИННЫМИ (TRUE).Wider - stronger luminance filters are used only when all three conditions - Condition1, Condition2 and Condition3 - are TRUE.

Условие 1 представляет собой «условие большого блока». Это условие определяет, принадлежат ли отсчеты на P-стороне и на Q-стороне большим блокам, что представлено переменными bSidePisLargeBlk и bSideQisLargeBlk соответственно. Эти переменные bSidePisLargeBlk и bSideQisLargeBlk определены следующим образом.Condition 1 is the "large block condition". This condition determines whether samples on the P-side and Q-side belong to large blocks, as represented by the variables bSidePisLargeBlk and bSideQisLargeBlk, respectively. These variables bSidePisLargeBlk and bSideQisLargeBlk are defined as follows.

bSidePisLargeBlk = ((тип края является вертикальным и отсчет p0 принадлежит единице CU с шириной >= 32) | | (тип края является горизонтальным и отсчет p0 принадлежит единице CU с высотой >= 32))? TRUE: FALSEbSidePisLargeBlk = ((edge type is vertical and sample p 0 belongs to CU unit with width >= 32) | | (edge type is horizontal and sample p 0 belongs to CU unit with height >= 32))? TRUE: FALSE

bSideQisLargeBlk = ((тип края является вертикальным и отсчет q0 принадлежит единице CU с шириной >= 32) | | (тип края является горизонтальным и отсчет q0 принадлежит единице CU с высотой >= 32))? TRUE: FALSEbSideQisLargeBlk = ((edge type is vertical and sample q 0 belongs to CU unit with width >= 32) | | (edge type is horizontal and sample q 0 belongs to CU unit with height >= 32))? TRUE: FALSE

На основе переменных bSidePisLargeBlk и bSideQisLargeBlk, условие 1 определено следующим образом.Based on the variables bSidePisLargeBlk and bSideQisLargeBlk, condition 1 is defined as follows.

Условие1 = (bSidePisLargeBlk || bSidePisLargeBlk) ? TRUE: FALSECondition1 = (bSidePisLargeBlk || bSidePisLargeBlk) ? TRUE: FALSE

Далее, если Условие 1 является истинным, должно быть далее проверено условие 2. Сначала определяют следующие переменные:Next, if Condition 1 is true, Condition 2 must be further tested. First, the following variables are defined:

- dp0, dp3, dq0, dq3 сначала определяют, как в стандарте кодирования HEVC- dp0, dp3, dq0, dq3 are first determined, as in the HEVC encoding standard

- если (сторона p не меньше 32)- if (side p is not less than 32)

dp0 = ( dp0 + Abs( p50 − 2 * p40 + p30 ) + 1 ) >> 1dp0 = ( dp0 + Abs( p5 0 − 2 * p4 0 + p3 0 ) + 1 ) >> 1

dp3 = ( dp3 + Abs( p53 − 2 * p43 + p33 ) + 1 ) >> 1dp3 = ( dp3 + Abs( p5 3 − 2 * p4 3 + p3 3 ) + 1 ) >> 1

- если (сторона q не меньше 32)- if (side q is not less than 32)

dq0 = ( dq0 + Abs( q50 − 2 * q40 + q30 ) + 1 ) >> 1dq0 = ( dq0 + Abs( q5 0 − 2 * q4 0 + q3 0 ) + 1 ) >> 1

dq3 = ( dq3 + Abs( q53 − 2 * q43 + q33 ) + 1 ) >> 1dq3 = ( dq3 + Abs( q5 3 − 2 * q4 3 + q3 3 ) + 1 ) >> 1

Условие2 = (d < β) ? TRUE: FALSECondition2 = (d < β) ? TRUE: FALSE

где d= dp0 + dq0 + dp3 + dq3, как показано в разделе 2.2.4.where d= dp0 + dq0 + dp3 + dq3, as shown in section 2.2.4.

Если Условие1 и Условия2 удовлетворяются, далее проверяют, использует ли какой-либо из блоков субблоки:If Condition1 and Condition2 are satisfied, next check whether any of the blocks use subblocks:

Если (bSidePisLargeBlk)If (bSidePisLargeBlk)

Если (режим блока P == SUBBLOCKMODE)If (block mode P == SUBBLOCKMODE)

Sp =5Sp =5

иначеotherwise

Sp =7Sp =7

иначеotherwise

Sp = 3Sp=3

Если (bSideQisLargeBlk)If (bSideQisLargeBlk)

Если (режим блока Q == SUBBLOCKMODE)If (block mode Q == SUBBLOCKMODE)

Sq =5Sq =5

иначеotherwise

Sq =7Sq =7

иначеotherwise

Sq = 3Sq = 3

Наконец, если Условие 1 и Условие 2 действительны, предлагаемый способ деблокирования будет проверять условие 3 (условие сильного фильтра для большого блока), которое определено следующим образом.Finally, if Condition 1 and Condition 2 are valid, the proposed deblocking method will check condition 3 (the strong filter condition for a large block), which is defined as follows.

Для Условия3 (Условия сильного фильтра) – StrongFilterCondition, определяют следующие переменные:For Condition3 (Strong Filter Condition) – StrongFilterCondition, define the following variables:

dpq определено как в стандарте кодирования HEVC.dpq is defined as in the HEVC encoding standard.

sp3 = Abs( p3 − p0 ), определено как в стандарте кодирования HEVC sp 3 = Abs( p 3 − p 0 ), defined as in the HEVC encoding standard

если (сторона p не меньше 32)if (side p is not less than 32)

если(Sp==5)if(Sp==5)

sp3 = ( sp3 + Abs( p5 − p3 ) + 1) >> 1sp 3 = ( sp 3 + Abs( p 5 − p 3 ) + 1) >> 1

иначеotherwise

sp3 = ( sp3 + Abs( p7 − p3 ) + 1) >> 1sp 3 = ( sp 3 + Abs( p 7 − p 3 ) + 1) >> 1

sq3 = Abs( q0 − q3 ), определено как в стандарте кодирования HEVCsq 3 = Abs( q 0 − q 3 ), defined as in the HEVC encoding standard

если (сторона q не меньше 32)if (side q is not less than 32)

Если(Sq==5)If(Sq==5)

sq3 = ( sq3 + Abs( q5 − q3 ) + 1) >> 1sq 3 = ( sq 3 + Abs( q 5 − q 3 ) + 1) >> 1

иначеotherwise

sq3 = ( sq3 + Abs( q7 − q3 ) + 1) >> 1sq 3 = ( sq 3 + Abs( q 7 − q 3 ) + 1) >> 1

Как в стандарте кодирования HEVC, StrongFilterCondition = (dpq меньше чем ( β >> 2 ), sp3 + sq3 меньше чем ( 3*β >> 5 ), и Abs( p0 − q0 ) меньше чем ( 5 * tC + 1 ) >> 1) ? TRUE : FALSE.As in the HEVC encoding standard, StrongFilterCondition = (dpq less than ( β >> 2 ), sp 3 + sq 3 less than ( 3*β >> 5 ), and Abs( p 0 − q 0 ) less than ( 5 * t C + 1 ) >> 1) ? TRUE: FALSE.

2.6.4 Более сильный деблокирующий фильтр для яркостной составляющей (рассчитан на работу с блоками большего размера)2.6.4 Stronger luminance deblocking filter (designed to work with larger blocks)

Когда отсчеты с какой-либо стороны от границы принадлежат большому блоку, применяется билинейный фильтр. Факт принадлежности отсчета большому блоку устанавливают, когда ширина >= 32 для вертикального края, и когда высота >= 32 для горизонтального края. When samples on either side of the boundary belong to a large block, a bilinear filter is applied. The fact that a reference belongs to a large block is established when the width is >= 32 for a vertical edge, and when the height is >= 32 for a horizontal edge.

Ниже описан билинейный фильтр.The bilinear filter is described below.

Расположенные на границе блоков отсчеты pi для i=0 по Sp-1 и qi для j=0 по Sq-1 (pi и qi представляют собой i-ый отсчет в строке для фильтрации вертикального края, или i-ый отсчет в столбце для фильтрации горизонтального края) в описанном выше деблокирующем фильтре согласно стандарту кодирования HEVC затем заменяют посредством линейной интерполяции следующим образом:Located on the block boundary, samples p i for i=0 by Sp-1 and q i for j=0 by Sq-1 (pi and qi represent the i-th sample in the row for filtering the vertical edge, or the i-th sample in the column for horizontal edge filtering) in the deblocking filter described above according to the HEVC coding standard is then replaced by linear interpolation as follows:

- -

- -

где слагаемые tcPDi и tcPDj определяют зависимое от положения усечение, описываемое в Разделе 2.3.6 и параметры gj, fi, Middles,t, Ps и Qs приведены к таблице 2-3:where the terms tcPD i and tcPD j define the position-dependent truncation described in Section 2.3.6 and the parameters g j , f i , Middle s,t , P s and Q s are given in Table 2-3:

Таблица 2-3. Деблокирующие фильтры с длинными отводами Table 2-3. Release filters with long branches

Sp, Sq
7, 7
(сторона p: 7,
сторона
q: 7)
Sp, Sq
7, 7
(side p: 7,
side
q: 7)






7, 3
(сторона p: 7
сторона q: 3)
7, 3
(p side: 7
side q: 3)






3, 7
(сторона p: 3
сторона q: 7)
3, 7
(p side: 3
side q: 7)






7, 5
(сторона p: 7
сторона q: 5)
7, 5
(p side: 7
side q: 5)






5, 7
(сторона p: 5
сторона q: 7)
5, 7
(p side: 5
side q: 7)






5, 5
(сторона p: 5
сторона q: 5)
5, 5
(p side: 5
side q: 5)






5, 3
(сторона p: 5
сторона q: 3)
5, 3
(p side: 5
side q: 3)






3, 5
(сторона p: 3
сторона q: 5)
3, 5
(p side: 3
side q: 5)






2.6.5 Управление деблокированием для цветностной составляющей 2.6.5 Release control for the chrominance component

Сильные фильтры для цветностной составляющей используют по обе стороны от границы между блоками. Здесь фильтр для цветностной составляющей выбирают, когда обе стороны края цветностной составляющей не меньше 8 (позиция цветностной составляющей), и удовлетворяется следующее решение с тремя условиями: первое условие относится к жесткости границы, равно как к большому блоку. Предлагаемый фильтр может быть применен, когда ширина или высота блока, ортогонально пересекающая край блока, не меньше 8 в области отсчетов цветностной составляющей. Второе и третье условия являются в основном такими же, как и решения о применении деблокирования для яркостной составляющей в стандарте кодирования HEVC, а именно решение о включении/выключении и решение о сильном фильтре, соответственно.Strong filters for the chrominance component are used on both sides of the border between blocks. Here, the chrominance filter is selected when both sides of the chroma edge are at least 8 (chroma position), and the following three-condition solution is satisfied: The first condition applies to the edge hardness as well as the large block. The proposed filter can be applied when the width or height of the block, orthogonally intersecting the edge of the block, is not less than 8 in the region of the chrominance component samples. The second and third conditions are basically the same as the deblocking decisions for the luminance component in the HEVC coding standard, namely the on/off decision and the strong filter decision, respectively.

Согласно первому решению, жесткость границы (boundary strength (bS)) модифицируют для фильтрации цветностной составляющей, как показано в таблице 2-2. Условия по таблице 2-2 проверяют последовательно. Если какое-либо из условий удовлетворяется, то остальные условия с более низким приоритетом пропускают. In the first solution, the boundary strength (bS) is modified to filter out the chrominance component, as shown in Table 2-2. The conditions in Table 2-2 are checked sequentially. If any of the conditions are satisfied, then the remaining conditions with lower priority are skipped.

Деблокирующая фильтрация цветностной составляющей осуществляется, когда жесткость bS равна 2, или когда жесткость bS равна 1 и при этом обнаружена большая граница блока. Chroma deblocking filtering is performed when the hardness bS is 2, or when the hardness bS is 1 and a large block boundary is detected.

Второе и третье условия являются в основном такими же, как решение для сильного фильтра яркостной составляющей в стандарте кодирования HEVC, а именно.The second and third conditions are basically the same as the solution for the strong luminance filter in the HEVC coding standard, viz.

Для второго условия:For the second condition:

Параметр d определяют, как для деблокирующего фильтра яркостной составляющей в стандарте кодирования HEVC.The parameter d is determined as for the luminance component deblocking filter in the HEVC coding standard.

Второе условие будет истинным (TRUE), когда параметр d меньше β.The second condition will be true (TRUE) when the parameter d is less than β.

Третье условие StrongFilterCondition определяют следующим образом:The third StrongFilterCondition is defined as follows:

dpq определяют как в стандарте кодирования HEVC.dpq is defined as in the HEVC encoding standard.

sp3 = Abs( p3 − p0 ), определяют как в стандарте кодирования HEVC sp 3 = Abs( p 3 − p 0 ), defined as in the HEVC coding standard

sq3 = Abs( q0 − q3 ), определяют как в стандарте кодирования HEVCsq 3 = Abs( q 0 − q 3 ), defined as in the HEVC encoding standard

Как в стандарте кодирования HEVC, StrongFilterCondition = (dpq меньше чем ( β >> 2 ), sp3 + sq3 меньше чем ( β >> 3 ), и Abs( p0 − q0 ) меньше чем ( 5 * tC + 1 ) >> 1) As in the HEVC encoding standard, StrongFilterCondition = (dpq less than ( β >> 2 ), sp 3 + sq 3 less than ( β >> 3 ), and Abs( p 0 − q 0 ) less than ( 5 * t C + 1 ) >> 1)

2.6.6 Сильный деблокирующий фильтр для цветностной составляющей 2.6.6 Strong chrominance deblocking filter

Для цветностной составляющей определен следующий сильный деблокирующий фильтр:The following strong deblocking filter is defined for the chrominance component:

p2′= (3*p3+2*p2+p1+p0+q0+4) >> 3p 2 ′= (3*p 3 +2*p 2 +p 1 +p 0 +q 0 +4) >> 3

p1′= (2*p3+p2+2*p1+p0+q0+q1+4) >> 3p 1 ′= (2*p 3 +p 2 +2*p 1 +p 0 +q 0 +q 1 +4) >> 3

p0′= (p3+p2+p1+2*p0+q0+q1+q2+4) >> 3p 0 ′= (p 3 +p 2 +p 1 +2*p 0 +q 0 +q 1 +q 2 +4) >> 3

Предлагаемый фильтр для цветностной составляющей осуществляет деблокирование на сетке отсчетов 4x4 цветностной составляющей. The proposed filter for the chrominance component performs deblocking of the chrominance component on a 4x4 grid of samples.

2.6.7 Зависимое от позиции усечение2.6.7 Position-dependent truncation

Зависимый от позиции параметр tcPD усечения применяют к выходным отсчетам после процедуры фильтрации яркостной составляющей, вовлекающей сильные и длинные фильтры, модифицирующие 7, 5 и 3 отсчетов на границе. В предположении распределения погрешности квантования предлагается увеличить уровень усечения для отсчетов, для которых ожидается более высокий уровень шумов квантования и потому для них ожидается большее отклонение реконструированного значения отсчета от истинного значения этого отсчета.The position-dependent truncation parameter tcPD is applied to the output samples after a luminance filtering procedure involving strong and long filters modifying the 7, 5 and 3 samples at the boundary. Assuming a distribution of quantization error, it is proposed to increase the truncation level for samples for which a higher level of quantization noise is expected and therefore for which a larger deviation of the reconstructed sample value from the true value of this sample is expected.

Для каждой из границ P или Q, фильтрованной с применением асимметричного фильтра, в зависимости от результатов процедуры принятия решения в разделе 2.3.3, выбирают таблицу зависимых от позиции пороговых значений из двух таблиц (т.е. таблиц Tc7 и Tc3 приведенных ниже), переданных декодирующему устройству в качестве дополнительной информации: For each of the P or Q boundaries filtered using an asymmetric filter, depending on the results of the decision procedure in section 2.3.3, select a table of position-dependent thresholds from two tables (i.e., tables Tc7 and Tc3 below), transmitted to the decoding device as additional information:

Tc7 = { 6, 5, 4, 3, 2, 1, 1};
Tc3 = { 6, 4, 2 };
Tc7 = { 6, 5, 4, 3, 2, 1, 1};
Tc3 = { 6, 4, 2 };

tcPD = (Sp == 3) ? Tc3 : Tc7;tcPD = (Sp == 3) ? Tc3: Tc7;

tcQD = (Sq == 3) ? Tc3 : Tc7;tcQD = (Sq == 3) ? Tc3: Tc7;

Для границы P или Q, фильтрованной с применением короткого асимметричного фильтра, применяют зависимое от позиции пороговое значение с меньшей амплитудой: For a P or Q edge filtered using a short asymmetric filter, a position-dependent threshold with a smaller amplitude is applied:

Tc3 = { 3, 2, 1 };Tc3 = { 3, 2, 1 };

После определения порогового значения, выполняют усечение фильтрованных значений отсчетов p’i и q’i, в соответствии с параметрами усечения tcP и tcQ: After determining the threshold value, truncation of the filtered sample values p' i and q' i is performed, in accordance with the truncation parameters tcP and tcQ:

p’’i = Clip3(p’i + tcPi, p’i – tcPi, p’i );p'' i = Clip3(p' i + tcP i , p' i – tcP i , p' i );

q’’j = Clip3(q’j + tcQj, q’j – tcQ j, q’j );q'' j = Clip3(q' j + tcQ j , q' j – tcQ j , q' j );

где p’i и q’i представляют собой фильтрованные значения отсчетов, p’’i и q’’j представляют собой выходные значения отсчетов после усечения и tcPi представляют собой пороговые значения усечения, получаемые из используемых в стандарте кодирования VVC значений параметра tc и параметров tcPD и tcQD. Функция Clip3 представляет собой функцию усечения, как это специфицировано в стандарте кодирования VVC. where p' i and q' i are the filtered sample values, p'' i and q'' j are the sample output values after truncation, and tcP i are the truncation thresholds derived from the tc and parameter values used in the VVC encoding standard parameters tcPD and tcQD. The Clip3 function is a clipping function as specified in the VVC coding standard.

2.6.8 Регулирование деблокирования субблоков 2.6.8 Regulation of subblock release

Для того, чтобы позволить осуществлять параллельное дружественное деблокирование с использованием и длинных фильтров, и деблокирования субблоков, функции длинных фильтров ограничивают для модификации самое большее 5 отсчетов на стороне, использующей деблокирование субблоков (режим AFFINE или прогнозирование ATMVP или уточнение DMVR), как показано в разделе управления яркостной составляющей для длинных фильтров. В качестве дополнения, процедуру деблокирования субблоков регулируют таким образом, что границы субблоков на сетке размером 8x8, близкие к единице CU или к границе неявной единицы TU, ограничивают для модификации самое большее двумя отсчетами на каждой стороне.To allow parallel friendly release using both long filters and subblock release, the long filter functions limit modification to at most 5 samples on the side using subblock release (AFFINE mode or ATMVP prediction or DMVR refinement), as shown in Section brightness control for long filters. In addition, the subblock release procedure is adjusted such that the boundaries of subblocks on an 8x8 grid close to a CU or an implicit TU boundary are limited to modification by at most two samples on each side.

Следующее применяется к границам субблоков, не совмещенным с границей единицы CU.The following applies to subunit boundaries that are not co-located with a CU unit boundary.

Если (режим блока Q == SUBBLOCKMODE && edge !=0) {If (block mode Q == SUBBLOCKMODE && edge !=0) {

если (!(implicitTU && (edge == (64 / 4))))if (!(implicitTU && (edge == (64 / 4))))

если (край == 2 || edge == (orthogonalLength - 2) || край == (56 / 4) || край == (72 / 4))if (edge == 2 || edge == (orthogonalLength - 2) || edge == (56 / 4) || edge == (72 / 4))

Sp = Sq = 2;Sp = Sq = 2;

иначеotherwise

Sp = Sq = 3;Sp = Sq = 3;

иначеotherwise

Sp = Sq = bSideQisLargeBlk ? 5:3Sp = Sq = bSideQisLargeBlk ? 5:3

}}

Где параметр «край», равный 0, соответствует границе единицы CU, параметр «край», равным 2, или равный orthogonalLength-2 соответствует границе субблока, отстоящей на 8 отсчетов от границы единицы CU и т.п. Где неявная единица TU является истинной, если используется неявное разбиение единицы TU.Where an edge parameter of 0 corresponds to a CU boundary, an edge parameter of 2 or orthogonalLength-2 corresponds to a subblock boundary 8 counts from the CU boundary, etc. Where implicit TU is true if implicit TU partitioning is used.

2.6.9 Ограничение буферов строк 4CTU/2CTU для яркостной/цветностной составляющей 2.6.9 Line buffer limit 4CTU/2CTU for luma/chrominance component

Фильтрация горизонтальных краев является ограничивающей до Sp = 3 для яркостной составляющей, Sp=1 и Sq=1 для цветностной составляющей, когда горизонтальный край совмещен с границей единицы CTU.Horizontal edge filtering is limiting to Sp = 3 for luma, Sp = 1 and Sq = 1 for chroma when the horizontal edge is aligned with the CTU boundary.

2.7 Кодирование в режиме внутрикадрового прогнозирования в стандарте кодирования VVC2.7 Intra-prediction coding in the VVC coding standard

Для захвата произвольных направлений края, представленных в естественном видео, число направленных режимов с внутрикадровым прогнозированием в документе VTM5 увеличивают с 33, как это используется при кодировании HEVC, до 65. Новые направленные режимы, которых нет в стандарте кодировании HEVC, обозначены красными пунктирными стрелками на фиг. 12, а планарный режим и DC-режим остаются теми же самыми. Такое более плотное распределение направленных режимов внутрикадрового прогнозирования применимо для всех размеров блоков и для режимов внутрикадрового прогнозирования обеих – яркостной и цветностной составляющих. To capture the arbitrary edge directions present in natural video, the number of intra-frame prediction directional modes in the VTM5 document is increased from 33, as used in HEVC encoding, to 65. New directional modes that are not present in the HEVC encoding standard are indicated by red dotted arrows in fig. 12, and planar mode and DC mode remain the same. This denser distribution of directional intra-prediction modes is applicable for all block sizes and for both luminance and chrominance intra-prediction modes.

В документе VTM5, несколько обычных угловых режимов внутрикадрового прогнозирования адаптивно заменены широкоугольными режимами внутрикадрового прогнозирования для неквадратных блоков. Широкоугольное внутрикадровое прогнозирование описано в Разделе 3.3.1.2. In the VTM5 document, several conventional angle intra-prediction modes are adaptively replaced by wide-angle intra-prediction modes for non-square blocks. Wide-angle intra-frame prediction is described in Section 3.3.1.2.

В стандарте кодирования HEVC, каждый блок, кодируемый в режиме внутрикадрового прогнозирования, имеет квадратную форму, а длина каждой его стороны равна степени 2. Таким образом, для генерации предиктора внутрикадрового прогнозирования с использованием DC-режима никакие операции разбиения не требуется. В документе VTM5, блоки могут иметь прямоугольную форму, что в общем случае делает необходимым использование операции разбиения для каждого блока. Чтобы избежать операций разбиения для DC-прогнозирования, только длинную сторону используют для вычисления среднего для неквадратных блоков.In the HEVC coding standard, each block encoded in intra-prediction mode is square in shape, and the length of each side is a power of 2. Thus, no partitioning operations are required to generate an intra-prediction predictor using DC mode. In the VTM5 document, blocks can be rectangular in shape, which generally necessitates the use of a split operation for each block. To avoid splitting operations for DC prediction, only the long side is used to calculate the average for non-square blocks.

Для поддержания низкой сложности генерации списка наиболее вероятных режимов (most probable mode (MPM)), вариант режима внутрикадрового прогнозирования с 6 режимами MPM используется путем учета двух соседних доступных режимов внутрикадрового прогнозирования. При построении списка режимов MPM учитываются следующие три аспекта:To keep the complexity of generating the most probable mode (MPM) list low, a 6-MPM intra-prediction mode option is used by taking into account two adjacent available intra-prediction modes. When constructing the list of MPM modes, the following three aspects are taken into account:

i. Режим внутрикадрового прогнозирования по умолчанию i. Default intra-prediction mode

ii. Соседние режимы внутрикадрового прогнозирования ii. Adjacent intra-frame prediction modes

iii. Выводимые режимы внутрикадрового прогнозирования iii. Inferred intra-frame prediction modes

Унифицированный список 6-MPM используется для блоков с внутрикадровым прогнозированием независимо от того, применяется ли инструменты кодирования MRL (с несколькими опорными строками) и ISP, или нет. Список режимов MPM конструируют на основе режимов внутрикадрового прогнозирования для левого или верхнего соседних блоков. В предположении, что режим для блока слева обозначен Left и режим для блока сверху обозначен Above, унифицированный список режимов MPM конструируют следующим образом (Блоки слева и сверху показаны на фиг. 13).The unified 6-MPM list is used for intra-prediction blocks whether MRL (multiple reference line) and ISP coding tools are used or not. The list of MPM modes is constructed based on the intra-prediction modes for the left or top adjacent blocks. Assuming that the mode for the block on the left is designated Left and the mode for the block above is designated Above, the unified MPM mode list is constructed as follows (Blocks on the left and above are shown in Fig. 13).

- Когда соседний блок недоступен, для него по умолчанию устанавливают планарный режим внутрикадрового прогнозирования. - When a neighboring block is unavailable, it defaults to planar intra-prediction mode.

- Если оба режима – Left и Above, являются неугловыми режимами: - If both Left and Above modes are non-corner modes:

○ Список режимов MPM → {Planar, DC, V, H, V-4, V+4}○ List of MPM modes → {Planar, DC, V, H, V-4, V+4}

- Если один из режимов Left и Above является угловым режимом, а другой является неугловым режимом: - If one of the Left and Above modes is a corner mode and the other is a non-corner mode:

○ Установление режима «Максимальный» (Max) в качестве более «высокого» режима из режимов Left и Above○ Setting the “Max” mode as a “higher” mode from the Left and Above modes

○ Список режимов MPM → {Planar, Max, DC, Max -1, Max +1, Max -2}○ List of MPM modes → {Planar, Max, DC, Max -1, Max +1, Max -2}

- Если оба режима – Left и Above, являются угловыми режимами и при этом разными:- If both modes – Left and Above, are angular modes and at the same time different:

○ Установление режима Max в качестве более «высокого» режима из режимов Left и Above○ Setting Max mode as a “higher” mode from Left and Above modes

○ если разница между режимами Left и Above находится в диапазоне от 2 до 62 включительно ○ if the difference between the Left and Above modes is in the range from 2 to 62 inclusive

▪ Список режимов MPM →{Planar, Left, Above, DC, Max -1, Max +1}▪ List of MPM modes →{Planar, Left, Above, DC, Max -1, Max +1}

○ В противном случае○ Otherwise

▪ Список режимов MPM → {Planar, Left, Above, DC, Max -2, Max +2}▪ List of MPM modes → {Planar, Left, Above, DC, Max -2, Max +2}

- Если оба режима – Left и Above, являются угловыми режимами и при этом одинаковыми:- If both modes – Left and Above, are angular modes and at the same time the same:

○ Список режимов MPM → {Planar, Left, Left -1, Left +1, DC, Left -2}○ List of MPM modes → {Planar, Left, Left -1, Left +1, DC, Left -2}

Кроме того, первую секцию (разряд) индексного кодового слова списка mpm кодируют с применением контекстно-зависимого двоичного арифметического кодирования (CABAC). Используются всего три контекста, соответствующие тому, является ли текущий блок с внутрикадровым прогнозированием блоком с активизированным режимом MRL, блоком с активизированным режимом ISP или нормальным блоком с внутрикадровым прогнозированием.In addition, the first section (bit) of the index codeword of the mpm list is encoded using context-sensitive binary arithmetic coding (CABAC). A total of three contexts are used, corresponding to whether the current intra-prediction block is an MRL-mode-enabled block, an ISP-mode-enabled block, or a normal intra-prediction block.

В процессе генерации списка из 6 режимов MPM применяется отсечение для исключения дублированных режимов, так что только уникальные режимы могут быть включены в список режимов MPM. Для энтропийного кодирования 61 режимов, не входящих в список режимов MPM, используют усеченный двоичный код (Truncated Binary Code (TBC)). During the generation process of the list of 6 MPM modes, pruning is applied to eliminate duplicate modes so that only unique modes can be included in the list of MPM modes. For entropy encoding of 61 modes not included in the list of MPM modes, a truncated binary code (TBC) is used.

Для кодирования цветностной составляющей в режиме внутрикадрового прогнозирования допустимы всего 8 режимов внутрикадрового прогнозирования. Совокупность этих режимов содержит пять традиционных режимов внутрикадрового прогнозирования и три режима кросс-компонентной линейной модели (cross-component linear model modes (CCLM)) (CCLM, LM_A и LM_L). Процедуры сигнализации и формирования режимов кодирования цветностной составляющей, приведены в таблице 2-4. Режимы кодирования цветностной составляющей прямо зависят от режима внутрикадрового прогнозирования для соответствующего блока яркостной составляющей. Поскольку в I-срезах активизированы раздельные структуры для яркостной и цветностной составляющих, один блок цветностной составляющей может соответствовать нескольким блокам яркостной составляющей. Поэтому для DM-режима для цветностной составляющей непосредственно «наследуется» режим внутрикадрового прогнозирования для соответствующего блока яркостной составляющей, покрывающего центр текущего блока цветностной составляющей.To encode the color component in the intra-frame prediction mode, a total of 8 intra-frame prediction modes are allowed. The combination of these modes contains five traditional intra-frame prediction modes and three cross-component linear model (CCLM) modes (CCLM, LM_A and LM_L). The signaling procedures and the formation of color component coding modes are given in Table 2-4. The chrominance component coding modes directly depend on the intra-frame prediction mode for the corresponding luminance component block. Since separate structures for luma and chroma components are activated in I-slices, one chroma block can correspond to multiple luma blocks. Therefore, for the DM mode for the chrominance component, the intra-frame prediction mode for the corresponding luminance component block covering the center of the current chrominance component block is directly “inherited”.

Таблица 2-4. Вывод режима прогнозирования для цветностной составляющей из режима для яркостной составляющей, когда активизирован режим cclm_Table 2-4. Derivation of the chrominance prediction mode from the luminance mode when the cclm_ mode is activated

Режим прогнозирования цветностной составляющейColor prediction mode Соответствующий режим внутрикадрового прогнозирования яркостной составляющейCorresponding mode of intra-frame luminance component prediction 00 5050 1818 11 X
( 0 <= X <= 66 )
X
( 0 <= X <= 66 )
00 6666 00 00 00 00 11 5050 6666 5050 5050 5050 22 1818 1818 6666 1818 1818 33 11 11 11 6666 11 44 8181 8181 8181 8181 8181 55 8282 8282 8282 8282 8282 66 8383 8383 8383 8383 8383 77 00 5050 1818 11 XX

2.8 Дифференциальная импульсно-кодовая модуляция квантованного блока остатка (Quantized residual Block Differential Pulse-code Modulation(QR-BDPCM))2.8 Quantized residual Block Differential Pulse-code Modulation (QR-BDPCM)

В документе JVET-M0413, предложен способ дифференциальной импульсно-кодовой модуляции квантованного блока остатка (QR-BDPCM) для эффективного кодирования контента экрана.In JVET-M0413, a Quantized Residue Block Differential Pulse Code Modulation (QR-BDPCM) method is proposed for efficient encoding of screen content.

Направления прогнозирования, используемые при модуляции QR-BDPCM, могут соответствовать вертикальным и горизонтальным режимам прогнозирования. Внутрикадровое прогнозирование осуществляется для всего блока путем копирования отсчетов в направлении прогнозирования (горизонтальное или вертикальное прогнозирование). Остаток квантуют и разницу между квантованным остатком и квантованным значением его предиктора (горизонтального или вертикального) кодируют. Это может быть описано следующим образом: Для блока размером M (строк) × N (столбцов), пусть ri,j, 0 ≤ i ≤ M-1, 0 ≤ j ≤ N-1 представляет собой остаток прогнозирования после осуществления внутрикадрового прогнозирования в горизонтальном направлении (копирование значения соседнего слева пикселя по прогнозируемому блоку строка за строкой) или в вертикальном направлении (копирование соседней сверху строки на каждую строку в прогнозируемом блоке) с использованием нефильтрованных отсчетов сверху или слева от отсчетов на границе блока. Пусть Q(ri,j), 0 ≤ i ≤ M-1, 0 ≤ j ≤ N-1 обозначает квантованную версию остатка ri,j, где остаток представляет собой разность между значениями из исходного блока и прогнозируемого блока. Затем модуляцию DPCM блока применяют к квантованным отсчетам остатка, результатом чего является модифицированная матрица размером M × N с элементами . Когда в виде сигнализации сообщают о модуляции BDPCM в вертикальном направлении:The prediction directions used in QR-BDPCM modulation may correspond to vertical and horizontal prediction modes. Intra-frame prediction is carried out for the entire block by copying samples in the prediction direction (horizontal or vertical prediction). The remainder is quantized and the difference between the quantized remainder and the quantized value of its predictor (horizontal or vertical) is encoded. This can be described as follows: For a block of size M (rows) × N (columns), let r i,j , 0 ≤ i ≤ M-1, 0 ≤ j ≤ N-1 represent the prediction residual after performing intra-frame prediction in horizontally (copying the value of the left-adjacent pixel across the predicted block row by row) or in the vertical direction (copying the top-adjacent row to each row in the predicted block) using unfiltered samples from above or to the left of the samples at the block boundary. Let Q(r i,j ), 0 ≤ i ≤ M-1, 0 ≤ j ≤ N-1 denote the quantized version of the remainder r i,j , where the remainder is the difference between the values from the original block and the predicted block. The block's DPCM modulation is then applied to the quantized residual samples, resulting in a modified matrix size M × N with elements . When BDPCM modulation in the vertical direction is reported as an alarm:

(2-7-1) (2-7-1)

Для горизонтального прогнозирования применяются аналогичные правила, и квантованные отсчеты остатка получают по формуле For horizontal forecasting, similar rules are applied, and quantized residual samples are obtained using the formula

(2-7-2) (2-7-2)

Квантованные отсчеты остатка передают декодирующему устройству.Quantized samples the remainder is transferred to the decoding device.

На стороне декодирующего устройства приведенные выше вычисления инвертируют для получения Q(ri,j), 0 ≤ i ≤ M-1, 0 ≤ j ≤ N-1. Для случая вертикального прогнозирования,At the decoder side, the above calculations are inverted to obtain Q(r i,j ), 0 ≤ i ≤ M-1, 0 ≤ j ≤ N-1. For the case of vertical forecasting,

(2-7-3) (2-7-3)

Для горизонтального случая,For horizontal case,

(2-7-4) (2-7-4)

Обратно квантованные остатки, Q-1(Q(ri,j)), добавляют к прогнозируемым значениями в блоке при внутрикадровом прогнозировании для получения реконструированных значений отсчетов.The inversely quantized residuals, Q -1 (Q(r i,j )), are added to the predicted values in the block during intra-frame prediction to obtain the reconstructed sample values.

Главным преимуществом этой схемы является то, что обратная модуляция DPCM может быть выполнена в реальном времени («на лету») в процессе синтаксического анализа коэффициентов просто путем добавления предиктора в ходе синтаксического анализа этих коэффициентов или после такого синтаксического анализа.The main advantage of this scheme is that DPCM inverse modulation can be performed in real time (“on the fly”) during coefficient parsing simply by adding a predictor while or after parsing those coefficients.

2.9 Адаптивный контурный фильтр2.9 Adaptive loop filter

В документе VTM5, применяется адаптивный контурный фильтр (Adaptive Loop Filter (ALF)) с адаптацией этого фильтра на блочной основе. Для яркостной составляющей выбирают один из 25 фильтров для каждого блока размером 4×4, на основе направления и активности локальных градиентов.In the VTM5 document, an Adaptive Loop Filter (ALF) is used, adapting this filter on a block basis. For the luminance component, one of 25 filters is selected for each 4x4 block based on the direction and activity of local gradients.

2.9.1 Форма фильтра 2.9.1 Filter shape

В документе VTM5, используют два фильтра в форме ромба (как показано на фиг. 14). Форма ромба размером 7×7 применяется для яркостной составляющей, и форма ромба размером 5×5 применяется для цветностных составляющих.In the VTM5 document, two diamond-shaped filters are used (as shown in Fig. 14). A 7x7 diamond shape is used for the luminance component, and a 5x5 diamond shape is used for the chrominance components.

2.9.2 Классификация блоков 2.9.2 Block classification

Для яркостной составляющей каждый из блоков 4×4 классифицируют и относят к одному из 25 классов. Индекс C классификации выводят, на основе направленности D и квантованного значения активности Â, следующим образом:For the luminance component, each of the 4x4 blocks is classified and assigned to one of 25 classes. The classification index C is derived, based on the directionality D and the quantized activity value Â, as follows:

C=5D+Â … (2-9-1)C=5D+Â … (2-9-1)

Для вычисления параметров D и Â, сначала вычисляют градиенты для горизонтального, вертикального и двух диагональных направлений с использованием одномерного (1-D) оператора Лапласа:To calculate the parameters D and Â, first calculate the gradients for the horizontal, vertical and two diagonal directions using the one-dimensional (1-D) Laplace operator:

(2-9-2) (2-9-2)

(2-9-3) (2-9-3)

(2-9-4) (2-9-4)

(2-9-5) (2-9-5)

Где индексы i и j обозначают координаты верхнего левого отсчета в блоке 4×4 и R(i,j) обозначает реконструированный с координатами (i,j).Where the subscripts i and j denote the coordinates of the top left sample in the 4x4 block and R(i,j) denotes the reconstructed one with coordinates (i,j).

Для уменьшения сложности классификации блока применяют вычисление субдискретизированного одномерного оператора Лапласа. Как показано на фиг. 15 (a)-(d), одни и те же субдискретизированные позиции используются для вычисления градиентов во всех направлениях.To reduce the complexity of block classification, the calculation of a subsampled one-dimensional Laplace operator is used. As shown in FIG. 15 (a)-(d), the same subsampled positions are used to compute gradients in all directions.

Затем максимальные и минимальные значения градиентов в горизонтальном и вертикальном направлениях устанавливают в виде:Then the maximum and minimum values of the gradients in the horizontal and vertical directions are set as:

, (2-9-6) , (2-9-6)

Максимальные и минимальные значения градиента в двух диагональных направлениях устанавливают в виде:The maximum and minimum values of the gradient in two diagonal directions are set as:

, (2-9-7) , (2-9-7)

Для вывода значения направленности D, эти значения сравнивают одним с другими и с двумя пороговыми значениями t1 и t2:To derive the directivity value D, these values are compared one with the other and with two threshold values t 1 and t 2 :

Этап 1. Если оба соотношения и являются истинными, направленность D устанавливают равной 0.Stage 1. If both ratios And are true, the directionality D is set to 0.

Этап 2. Если , далее продолжают от Этапа 3; в противном случае продолжают от Этапа 4.Stage 2. If , then continue from Stage 3; otherwise continue from Step 4.

Этап 3. Если , D устанавливают равной 2; в противном случае D устанавливают равной 1.Stage 3. If , D is set equal to 2; otherwise, D is set equal to 1.

Этап 4. Если , D устанавливают равной 4; в противном случае D устанавливают равной 3.Stage 4. If , D is set equal to 4; otherwise, D is set to 3.

Значение активности A вычисляют как:The activity value A is calculated as:

(2-9-8) (2-9-8)

Значение A далее квантуют в диапазон 0 – 4, включительно, и квантованное значение обозначают как Â.The value of A is then quantized into the range 0 – 4, inclusive, and the quantized value is denoted as Â.

Для цветностных составляющих в изображении никакие способы классификации не применяются, т.е. единственный набор коэффициентов фильтрации ALF применяется для каждой цветностной составляющей.For color components in the image, no classification methods are used, i.e. a single set of ALF filter coefficients is applied for each chrominance component.

2.9.3. Геометрическая трансформация коэффициентов фильтрации и уровней усечения 2.9.3. Geometric transformation of filter coefficients and truncation levels

Прежде фильтрации каждого блока размером 4×4 яркостной составляющей, к коэффициентам f(k,l) фильтрации и к уровням c(k,l) усечения фильтра применяют геометрические трансформации, такие как поворот, либо переворачивание вокруг диагональной или вертикальной оси, в зависимости от значения градиента, вычисленной для рассматриваемого блока. Это эквивалентно применению такой трансформации к области поддержки фильтра. Идея состоит в том, чтобы сделать разные блоки, к которым применяется фильтрация ALF, более похожими один на другой путем совмещения их направленностей.Before each 4x4 block of luminance component is filtered, geometric transformations, such as rotation or flipping around a diagonal or vertical axis, are applied to the filter coefficients f(k,l) and filter truncation levels c(k,l), depending on gradient value calculated for the block in question. This is equivalent to applying such a transformation to the filter support area. The idea is to make the different blocks to which ALF filtering is applied more similar to one another by aligning their directions.

Введены три вида геометрических трансформаций, включая переворачивание вокруг диагонали, переворачивание вокруг вертикали и поворот:Three types of geometric transformations are introduced, including flipping around the diagonal, flipping around the vertical and rotation:

Переворачивание вокруг диагонали: (2-9-9)Flipping around a diagonal: (2-9-9)

Переворачивание вокруг вертикали: , Flip around vertical: ,

(2-9-10)(2-9-10)

Поворот: , (2-9-11)Turn: , (2-9-11)

где K обозначает размер фильтра и обозначают координаты коэффициентов фильтрации, так что пункт (0,0) находится в верхнем левом углу и пункт (K-1, K-1) находится в нижнем правом углу. Указанные трансформации применяют к коэффициентам f(k,l) фильтрации и к уровням c(k,l) усечения в зависимости от значений градиентов, вычисленных для рассматриваемого блока. Соотношения между трансформацией и четырьмя градиентами для четырех направлений суммированы в следующей таблице.where K denotes the filter size and denote the coordinates of the filter coefficients, so that item (0,0) is in the upper left corner and item (K-1, K-1) is in the lower right corner. These transformations are applied to the filtering coefficients f(k,l) and to the truncation levels c(k,l) depending on the values of the gradients calculated for the block in question. The relationships between the transformation and the four gradients for the four directions are summarized in the following table.

Таблица 2-5. Соотношение между градиентами, вычисленными для одного блока, и трансформациямиTable 2-5. Relationship between gradients calculated for one block and transformations

Значения градиентовGradient values ТрансформацияTransformation gd2 < gd1 и gh < gv g d2 < g d1 and g h < g v Нет трансформацииNo transformation gd2 < gd1 и gv < gh g d2 < g d1 and g v < g h Переворачивание вокруг диагоналиFlipping around a diagonal gd1 < gd2 и gh < gv g d1 < g d2 and g h < g v Переворачивание вокруг вертикалиFlip around vertical gd1 < gd2 и gv < gh g d1 < g d2 and g v < g h ПоворотTurn

2.9.4 Сигнализация параметров фильтра2.9.4 Filter parameter signaling

В документе VTM5, параметры фильтра ALF сообщают в виде сигнализации в наборе параметров адаптации (Adaptation Parameter Set (APS)). В одном наборе APS, можно передать в виде сигнализации до 25 групп коэффициентов фильтрации яркостной составляющей и индексов значений усечения и до одной группы коэффициентов фильтрации цветностной составляющей и индексов значений усечения. Для уменьшения битовых издержек коэффициенты фильтрации для разных классификационных категорий могут быть объединены. В заголовке среза, передают в виде сигнализации индексы наборов APS, используемых для текущего среза.In the VTM5 document, ALF filter parameters are reported as signaling in the Adaptation Parameter Set (APS). In one APS set, up to 25 groups of luma filter coefficients and truncation value indices and up to one group of chrominance filter coefficients and truncation value indices can be signaled. To reduce bit overhead, filter coefficients for different classification categories can be combined. In the slice header, the indexes of the APS sets used for the current slice are signaled.

Индексы значений усечения, декодированные из набора APS, позволяют определить значения усечения с использованием таблицы таких значений усечения для яркостной составляющей и таблицы значений усечения для цветностной составляющей. Эти значения усечения зависят от внутренней битовой глубины. Более точно эти таблицу значений усечения для яркостной составляющей и таблицу значений усечения для цветностной составляющей получают с использованием следующих формул M:The truncation value indices decoded from the APS set allow the truncation values to be determined using a table of such luma truncation values and a table of such truncation values for the chrominance component. These truncation values depend on the internal bit depth. More precisely, the table of truncation values for the luma component and the table of truncation values for the chrominance component are obtained using the following formulas M:

, (2-9-12) , (2-9-12)

(2-9-13) (2-9-13)

где B равно внутренней битовой глубине и N равно 4, что обозначает число допустимых значений усечения согласно документу VTM5.0.where B is equal to the internal bit depth and N is 4, which denotes the number of valid truncation values according to the VTM5.0 document.

Процедурой фильтрации можно управлять на уровне блоков CTB. Всегда в виде сигнализации передают флаг для индикации, применима ли фильтрация ALF к блоку CTB яркостной составляющей. Блок CTB яркостной составляющей может выбрать группу коэффициентов фильтрации из совокупности 16 фиксированных групп коэффициентов фильтрации и групп коэффициентов фильтрации из наборов APS. Индекс группы коэффициентов фильтрации сообщают в виде сигнализации для блока CTB яркостной составляющей для индикации, какая именно группа коэффициентов применяется. 16 фиксированных групп коэффициентов фильтрации задают предварительно и жестко кодируют и в кодирующем устройстве, и в декодирующем устройстве.The filtering procedure can be controlled at the CTB block level. A flag is always signaled to indicate whether ALF filtering is applicable to the luminance component CTB. The luminance component CTB may select a filter coefficient group from a plurality of 16 fixed filter coefficient groups and filter coefficient groups from APS sets. The filter coefficient group index is signaled to the luminance component CTB to indicate which coefficient group is being applied. 16 fixed groups of filter coefficients are preset and hard-coded in both the encoder and the decoder.

Эти коэффициенты фильтрации квантуют с нормой, равной 128. С целью ограничения сложности умножения, соответствие потоков битов данных применяют таким образом, что значение коэффициента, находящегося не в центральной позиции, должно быть в диапазоне от −27 по 27 − 1, включительно. Коэффициент, находящийся в центральной позиции не сообщают в потоке битов данных и считают равным 128.These filter coefficients are quantized at a rate of 128. In order to limit the complexity of the multiplication, the matching of the data bit streams is applied such that the value of the coefficient not in the central position must be in the range −2 7 to 2 7 − 1, inclusive. The coefficient located in the central position is not reported in the data bit stream and is considered equal to 128.

2.9.5 Процедура фильтрации2.9.5 Filtering procedure

На стороне декодирующего устройства, когда фильтр ALF активизирован для блока CTB, фильтруют каждый отсчет R(i,j) в единице CU, результатом чего является значение R'(i,j) отсчета, как показано ниже,At the decoder side, when the ALF filter is enabled for the CTB block, each sample R(i,j) in the CU is filtered, resulting in a sample value R'(i,j) as shown below.

(2-9-14) (2-9-14)

где обозначает декодированные коэффициенты фильтрации, обозначает функцию усечения и обозначает декодированные параметры усечения. Переменные k и l варьируются между и , где L обозначает длину фильтра. Функция усечения имеет вид , что соответствует функции Where denotes the decoded filter coefficients, denotes the truncation function and denotes the decoded truncation parameters. Variables k and l vary between And , where L denotes the length of the filter. The truncation function has the form , which corresponds to the function

2.9.6 Процедура фильтрации виртуальной границы для уменьшения буфера строки 2.9.6 Virtual boundary filtering procedure to reduce row buffer

В документе VTM5, для уменьшения требований к буферу строки для фильтра ALF, используют модифицированную классификацию блоков и фильтрацию применительно к отсчетам возле горизонтальных границ единиц CTU. Для этой цели виртуальную границу определяют как строку путем сдвига горизонтальной границы единицы CTU с “N” отсчетами, как показано на фиг. 16, где N равно 4 для яркостной составляющей и равно 2 для цветностной составляющей. The VTM5 document uses modified block classification and filtering on samples near the horizontal boundaries of the CTUs to reduce the line buffer requirements of the ALF filter. For this purpose, the virtual boundary is defined as a row by shifting the horizontal boundary of the CTU with “N” samples, as shown in FIG. 16, where N is equal to 4 for the luma component and equal to 2 for the chrominance component.

Модифицированная классификация блоков применяется к яркостной составляющей, как показано на фиг. 2 – 11. Для вычисления одномерного (1D) градиента оператора Лапласа для блока размером 4x4 выше виртуальной границы используются только отсчеты, расположенные выше виртуальной границы. Аналогично, для вычисления одномерного (1D) градиента оператора Лапласа для блока размером 4x4 ниже виртуальной границы используются только отсчеты, расположенные ниже виртуальной границы. Квантование значения активности A соответственно масштабируют с учетом уменьшенного числа отсчетов, используемых для вычисления одномерного (1D) градиента оператора Лапласа.The modified block classification is applied to the luminance component as shown in FIG. 2 – 11. To calculate the one-dimensional (1D) gradient of the Laplace operator for a 4x4 block above the virtual boundary, only the samples located above the virtual boundary are used. Similarly, to calculate the one-dimensional (1D) gradient of the Laplace operator for a 4x4 block below the virtual boundary, only the samples located below the virtual boundary are used. The quantization of the activity value A is accordingly scaled to account for the reduced number of samples used to compute the one-dimensional (1D) gradient of the Laplace operator.

Для процедуры фильтрации, используют операцию симметричного заполнения на виртуальных границах и для яркостной, и для цветностной составляющей. Как показано на фиг. 17, когда фильтруемый отсчет расположен ниже виртуальной границы, заполняют соседние отсчеты, расположенные выше этой виртуальной границы. В то же время, соответствующие отсчеты на других сторонах также заполняют симметрично.For the filtering procedure, a symmetrical filling operation is used on the virtual boundaries for both the luminance and chrominance components. As shown in FIG. 17, when the filtered sample is located below the virtual boundary, the neighboring samples located above this virtual boundary are filled. At the same time, the corresponding readings on other sides are also filled symmetrically.

2.10 Процедура нелинейной фильтрации с адаптивным смещением (SAO)2.10 Nonlinear Adaptive Offset (SAO) Filtering Procedure

Процедура нелинейной фильтрации с адаптивным смещением (sample adaptive offset (SAO)) применяется к реконструированным отсчетам после деблокирующего фильтра с использованием смещения, специфицируемого для каждого блока CTB посредством кодирующего устройства. Кодирующее устройство модели HM сначала принимает решение, следует ли применить процедуру фильтрации SAO к текущему срезу. Если фильтрацию SAO применяют к рассматриваемому срезу, каждый блок CTB классифицируют как принадлежащий одному из пяти типов SAO, как показано в таблице 2-6. Концепция фильтрации SAO состоит в классификации пикселей по категориям и уменьшает искажения путем добавления смещения к пикселям каждой категории. Операция SAO содержит смещение края (Edge Offset (EO)), которое использует смещение края для классификации пикселей по типам 1 – 4 SAO и смещение полосы (Band Offset (BO)), которое использует интенсивность пикселей для классификации пикселей и отнесения к типу 5 SAO. Каждый применимый блок CTB имеет параметры смещения SAO, совокупность которых содержит флаг sao_merge_left_flag, флаг sao_merge_up_flag, тип смещения SAO и четыре значения смещения. Если флаг sao_merge_left_flag равен 1, текущий блок CTB будет повторно использовать тип смещения SAO и смещения, присущие блоку CTB слева. Если флаг sao_merge_up_flag равен 1, текущий блок CTB будет повторно использовать тип смещения SAO и смещения, присущие блоку CTB сверху.A sample adaptive offset (SAO) nonlinear filtering procedure is applied to the reconstructed samples after the deblocking filter using an offset specified for each CTB by the encoder. The HM model encoder first decides whether to apply the SAO filtering procedure to the current slice. If SAO filtering is applied to the slice in question, each CTB is classified as belonging to one of five SAO types, as shown in Table 2-6. The concept of SAO filtering is to classify pixels into categories and reduce distortion by adding bias to the pixels of each category. The SAO operation contains an Edge Offset (EO), which uses the edge offset to classify pixels into SAO types 1 through 4, and a Band Offset (BO), which uses pixel intensity to classify pixels into SAO types 5 . Each applicable CTB has SAO offset parameters, which collectively contain the sao_merge_left_flag flag, the sao_merge_up_flag flag, the SAO offset type, and four offset values. If the sao_merge_left_flag is 1, the current CTB block will reuse the SAO offset type and offsets inherent to the left CTB block. If the sao_merge_up_flag is 1, the current CTB block will reuse the SAO offset type and offsets inherent to the CTB block above.

Таблица 2-6. Спецификации типа смещения SAO Table 2-6. SAO Offset Type Specifications

Тип SAOType SAO Тип адаптивного смещения, который должен быть использованType of adaptive offset that should be used Число категорийNumber of categories 00 НетNo 00 11 1-D смещение края рисунка на 0-градусов 1-D offset of the edge of the pattern by 0-degrees 44 22 1-D смещение края рисунка на 90-градусов 1-D offset of the edge of the design by 90 degrees 44 33 1-D смещение края рисунка на 135-градусов 1-D offset of the edge of the pattern by 135 degrees 44 44 1-D смещение края рисунка на 54-градусов 1-D offset pattern edge by 54 degrees 44 55 смещение полосыstripe offset 44

2.10.1. Работа каждого типа смещения SAO 2.10.1. How each SAO offset type works

Смещение края использует четыре одномерных (1-D) 3-пиксельных рисунка для классификации текущего пикселя p посредством учета информации о направлении края, как показано на фиг. 18. Слева направо эти смещения равны: 0-градусов, 90-градусов, 135-градусов и 45-градусов.Edge bias uses four one-dimensional (1-D) 3-pixel patterns to classify the current pixel p by taking into account edge direction information, as shown in FIG. 18. From left to right, these offsets are: 0 degrees, 90 degrees, 135 degrees and 45 degrees.

Каждый блок CTB классифицируют для отнесения к одной из пяти категорий согласно таблицы 2-7.Each CTB block is classified into one of five categories according to Table 2-7.

Таблица 2-7. Правило классификации пикселей для смещения EOTable 2-7. Pixel classification rule for EO offset

КатегорияCategory УсловиеCondition ЗначениеMeaning 00 Ничего из нижеперечисленного None of the following В значительной степени монотонноPretty much monotonous 11 p < 2 соседейp < 2 neighbors Локальный минимумLocal minimum 22 p < 1 соседа && p == 1 соседp < 1 neighbor && p == 1 neighbor Крайedge 33 p > 1 соседа && p == 1 соседp > 1 neighbor && p == 1 neighbor Крайedge 44 p > 2 соседейp > 2 neighbors Локальный максимумLocal maximum

Смещение полосы (BO) классифицирует все пиксели в области одного блока CTB на 32 одинаковых полосы путем использования пяти самых старших значимых битов значения пикселя в качестве индекса полосы. Другими словами, диапазон интенсивности пикселей разбивают на 32 равных сегмента от нуля до максимального значения интенсивности (например, 255 для 8-битовых пикселей). Четыре соседние полосы группируют вместе и каждую группу обозначают по ее крайней левой позиции, как показано на фиг. 19. Кодирующее устройство осуществляет поиск все позиций для обнаружения группы с максимальным уменьшением искажением путем компенсации смещения каждой полосы.Band offset (BO) classifies all pixels in the region of one CTB block into 32 equal bands by using the five most significant bits of the pixel value as the band index. In other words, the pixel intensity range is divided into 32 equal segments from zero to the maximum intensity value (for example, 255 for 8-bit pixels). Four adjacent stripes are grouped together and each group is designated by its leftmost position, as shown in FIG. 19. The encoder searches all positions to detect a group with maximum distortion reduction by compensating for the offset of each band.

2.11 Комбинированный режим с внутрикадровым и межкадровым прогнозированием (CIIP)2.11 Combined intra-interprediction (CIIP) mode

В документе VTM5, когда единицу CU кодируют в режиме объединения, если единица CU содержит по меньшей мере 64 отсчета яркостной составляющей (иными словами, произведение ширины единицы CU на высоту единицы CU не меньше 64), и если оба размера – ширина единицы CU и высота единицы CU, меньше 128 отсчетов яркостной составляющей, передают в виде сигнализации дополнительный флаг для индикации, применяется ли комбинированный режим с внутрикадровым и межкадровым прогнозированием (combined inter/intra prediction (CIIP)) к текущей единице CU. Как указывает само название, прогнозирование CIIP комбинирует сигнал межкадрового прогнозирования с сигналом внутрикадрового прогнозирования. Сигнал межкадрового прогнозирования в режиме прогнозирования CIIP, Pinter, получают с использованием той же самой процедуры межкадрового прогнозирования, какая применяется в обычном режиме объединения; и сигнал Pintra внутрикадрового прогнозирования получают с использованием обычной процедуры внутрикадрового прогнозирования с планарным режимом. Затем сигналы внутрикадрового и межкадрового прогнозирования комбинируют с применением взвешенного усреднения, где весовые коэффициенты вычисляют в зависимости от режимов кодирования для верхнего и левого соседних блоков (показаны на фиг. 20) следующим образом: In the VTM5 document, when a CU is encoded in merge mode, if the CU contains at least 64 luminance samples (in other words, the product of the CU width and the CU height is at least 64), and if both the CU width and the height CUs less than 128 luminance samples signal an additional flag to indicate whether combined inter/intra prediction (CIIP) mode is applied to the current CU. As the name indicates, CIIP prediction combines an inter-prediction signal with an intra-frame prediction signal. The inter prediction signal in the CIIP prediction mode, P inter , is obtained using the same inter prediction procedure as that used in the conventional combining mode; and the intra prediction signal P is obtained using a conventional planar mode intra prediction procedure. The intra- and inter-prediction signals are then combined using weighted averaging, where weights are calculated depending on the coding modes for the top and left adjacent blocks (shown in FIG. 20) as follows:

- Если сосед сверху доступен и кодирован в режиме внутрикадрового прогнозирования, тогда параметр isIntraTop устанавливают равным 1, в противном случае этот параметр isIntraTop устанавливают равным 0;- If the upper neighbor is available and encoded in intra-prediction mode, then the isIntraTop parameter is set to 1, otherwise this isIntraTop parameter is set to 0;

- Если сосед слева доступен и кодирован в режиме внутрикадрового прогнозирования, тогда параметр isIntraLeft устанавливают равным 1, в противном случае этот параметр isIntraLeft устанавливают равным 0;- If the neighbor on the left is available and encoded in intra-prediction mode, then the isIntraLeft parameter is set to 1, otherwise this isIntraLeft parameter is set to 0;

- Если (isIntraLeft + isIntraLeft) равно 2, тогда параметр wt устанавливают равным 3;- If (isIntraLeft + isIntraLeft) is 2, then wt is set to 3;

- В противном случае, если (isIntraLeft + isIntraLeft) равно 1, тогда параметр wt устанавливают равным 2;- Otherwise, if (isIntraLeft + isIntraLeft) is 1, then wt is set to 2;

- В противном случае, параметр wt устанавливают равным 1.- Otherwise, the wt parameter is set to 1.

Прогнозирование CIIP осуществляют следующим образом: CIIP forecasting is carried out as follows:

… (3-1) … (3-1)

2.12 Отображение яркостной составляющей с масштабированием цветностной составляющей (LMCS)2.12 Luminance Display with Chroma Scaling (LMCS)

В документе VTM5, инструмент кодирования, называемый отображением яркостной составляющей с масштабированием цветностной составляющей (luma mapping with chroma scaling (LMCS)), добавлен в качестве нового процессорного блока прежде контурной фильтрации. Режим LMCS имеет два главных компонента: 1) внутриконтурное отображение яркостной составляющей на основе адаптивных кусочно-линейных моделей; 2) применение зависящего от яркостной составляющей масштабирования остатка цветностной составляющей для цветностных составляющей. Фиг. 21 показывает архитектуру осуществления режима LMCS с точки зрения декодирующего устройства. Заштрихованные светло-синим блоки на фиг. 21 указывают, что обработка применяется в отображенной области; сюда входит обратное квантование, обратная трансформация, внутрикадровое прогнозирование яркостной составляющей и суммирование прогнозирования яркостной составляющей с остатком яркостной составляющей. Незаштрихованные блоки на фиг. 21 указывают, где обработка применяется в исходной (т.е. неотображенной) области; и сюда входят контурные фильтры, такие как деблокирующие фильтры, фильтры ALF и фильтры SAO, прогнозирование с компенсацией движения, внутрикадровое прогнозирование цветностной составляющей, суммирование прогнозирования цветностной составляющей с остатком цветностной составляющей, и сохранение декодированных изображений в качестве опорных изображений. Блоки, заштрихованные светло-желтым, на фиг. 21 представляют собой новые функциональные блоки для режима LMCS, включая прямое и обратное отображение сигнала яркостной составляющей и процедуру зависящего от яркостной составляющей масштабирования цветностной составляющей. Как и большинство других инструментов в стандарте кодирования VVC, режим LMCS может быть активизирован/активизация отменена на уровне последовательности с использованием флага набора SPS.In the VTM5 document, an encoding tool called luma mapping with chroma scaling (LMCS) is added as a new processing unit before edge filtering. The LMCS mode has two main components: 1) in-circuit display of the brightness component based on adaptive piecewise linear models; 2) application of luminance component-dependent scaling of the remainder of the chrominance component for chrominance components. Fig. 21 shows an implementation architecture of the LMCS mode from the point of view of a decoder. The light blue shaded blocks in Fig. 21 indicate that processing is applied to the displayed area; This includes inverse quantization, inverse transformation, intra-frame luminance prediction, and summation of luminance prediction with the remainder of the luminance component. The unshaded blocks in Fig. 21 indicate where processing is applied in the original (ie, unmapped) region; and these include edge filters such as deblocking filters, ALF filters and SAO filters, motion compensated prediction, intra-frame chrominance prediction, summing the chrominance prediction with the chrominance residual, and storing the decoded pictures as reference pictures. Blocks shaded in light yellow in Fig. 21 represent new function blocks for the LMCS mode, including forward and inverse luminance signal mapping and a luminance-dependent chrominance scaling procedure. Like most other tools in the VVC coding standard, LMCS mode can be enabled/disabled at the sequence level using the SPS set flag.

3. Примеры проблем, решаемых вариантами3. Examples of problems solved by options

Один флаг палитры обычно применяется для индикации, используется ли режим палитры для текущей CU, которая может иметь различные ограничения и вариации применительно к энтропийному кодированию. Однако в предшествующих стандартах кодирования видео вопрос о том, как лучше кодировать флаг палитры, еще не был полностью изучен. A single palette flag is typically used to indicate whether the palette mode is in use for the current CU, which may have various restrictions and variations regarding entropy encoding. However, in previous video encoding standards, the question of how best to encode the palette flag has not yet been fully explored.

Отсчеты палитры могут иметь визуальный артефакт, если их обрабатывать посредством процедуры после контурной фильтрации.Palette samples may have visual artifact if processed through a post-contour filtering procedure.

Порядок сканирования палитры может быть усовершенствован для неквадратных блоков. The palette scanning order can be improved for non-square blocks.

4. Примеры вариантов4. Examples of options

Приведенные ниже описания предложений следует рассматривать в качестве примеров для пояснения общих концепций. Эти предложения не следует интерпретировать в узком смысле. Далее, эти предложения могут быть комбинированы любым способом.The following sentence descriptions should be considered as examples to clarify general concepts. These sentences should not be interpreted in a narrow sense. Further, these offers can be combined in any way.

1. Индикация использования режима палитры для единицы преобразования/единицы прогнозирования/блока кодирования/области может быть кодирована отдельно от режима прогнозирования.1. The palette mode usage indication for the transform unit/prediction unit/coding block/area may be encoded separately from the prediction mode.

a. В одном примере, указание режима прогнозирования может быть кодировано прежде индикации использования палитры. a. In one example, the prediction mode indication may be encoded before the palette use indication.

i. Кроме того, в качестве альтернативы, индикация использования палитры может быть условно передана в виде сигнализации на основе режима прогнозирования.i. Additionally, as an alternative, the palette usage indication may be conditionally signaled based on the prediction mode.

1. В одном из примеров, когда режим прогнозирования является режимом внутрикадрового копирования блоков (т.е. режимом MODE_IBC), передача в виде сигнализации индикации использования режима палитры может быть пропущена. Кроме того, в качестве альтернативы, индикация использования палитры может быть признана ложной, когда текущий режим прогнозирования является режимом MODE_IBC.1. In one example, when the prediction mode is an intra-frame block copy mode (ie, MODE_IBC mode), transmission of palette mode use indication signaling may be skipped. Additionally, as an alternative, the palette usage indication may be false when the current prediction mode is MODE_IBC.

2. В одном из примеров, когда режим прогнозирования является режимом межкадрового прогнозирования (т.е. MODE_INTER), передача в виде сигнализации индикации использования режима палитры может быть пропущена. Кроме того, в качестве альтернативы, индикация использования палитры может быть признана ложной, когда текущий режим прогнозирования является режимом MODE_INTER.2. In one example, when the prediction mode is an inter-prediction mode (ie, MODE_INTER), signaling of a palette mode usage indication may be skipped. Additionally, as an alternative, the palette usage indication may be false when the current prediction mode is MODE_INTER.

3. В одном из примеров, когда режим прогнозирования является режимом внутрикадрового прогнозирования (т.е. MODE_INTRA), передача в виде сигнализации индикации использования режима палитры может быть пропущена. Кроме того, в качестве альтернативы, индикация использования палитры может быть признана ложной, когда текущий режим прогнозирования является режимом MODE_INTRA.3. In one example, when the prediction mode is an intra prediction mode (ie, MODE_INTRA), the palette mode usage indication signaling may be skipped. Additionally, as an alternative, the palette usage indication may be false when the current prediction mode is MODE_INTRA.

4. В одном из примеров, когда режим прогнозирования является режимом пропуска (т.е. флаг пропуска равен 1), передача в виде сигнализации индикации использования режима палитры может быть пропущена. Кроме того, в качестве альтернативы, индикация использования палитры может быть признана ложной, когда для текущей единицы CU используется режим пропуска.4. In one example, when the prediction mode is a skip mode (ie, the skip flag is 1), transmission of the palette mode use indication signaling may be skipped. Additionally, as an alternative, the palette usage indication may be false when the current CU is in skip mode.

5. В одном из примеров, когда режим прогнозирования является режимом внутрикадрового прогнозирования (т.е. MODE_INTRA), индикация использования режима палитры может быть передана в виде сигнализации. Кроме того, в качестве альтернативы, передача в виде сигнализации индикации использования палитры может быть пропущена, когда режим прогнозирования является режимом межкадрового прогнозирования или режимом внутрикадрового копирования блоков.5. In one example, when the prediction mode is an intra prediction mode (ie, MODE_INTRA), the palette mode use indication may be signaled. Moreover, as an alternative, transmission of the palette usage indication signaling may be skipped when the prediction mode is an inter-frame prediction mode or an intra-frame block copy mode.

a) Кроме того, в качестве альтернативы, когда режим прогнозирования является режимом внутрикадрового прогнозирования и не является режимом импульсно-кодовой модуляции (ИКМ (Pulse-code modulation (PCM))), может быть передана сигнализация об использовании режима палитры. a) Additionally, as an alternative, when the prediction mode is an intra-prediction mode and is not a pulse-code modulation (PCM) mode, palette mode use may be signaled.

b) Кроме того, в качестве альтернативы, когда режим прогнозирования является режимом внутрикадрового прогнозирования, индикация использования режима палитры может быть сообщена в виде сигнализации прежде индикации использования режима модуляции ИКМ. В одном из примеров, когда применяется режим палитры, сигнализация об использовании режима модуляции ИКМ может быть пропущена.b) Additionally, as an alternative, when the prediction mode is an intra-prediction mode, the palette mode usage indication may be signaled before the PCM modulation mode usage indication. In one example, when the palette mode is used, signaling that the PCM modulation mode is being used may be skipped.

c) Кроме того, в качестве альтернативы, когда режим прогнозирования является режимом межкадрового прогнозирования или режимом внутрикадрового копирования блоков, передача сигнализации с индикацией использования режима палитры может быть пропущена.c) Additionally, alternatively, when the prediction mode is an inter-prediction mode or an intra-frame block copy mode, signaling indicating the use of the palette mode may be skipped.

2. В одном из примеров, когда режим прогнозирования является режимом межкадрового прогнозирования (например, MODE_INTER), может быть в виде сигнализации передана индикация использования режима палитры. 2. In one example, when the prediction mode is an inter-prediction mode (eg, MODE_INTER), an indication of use of the palette mode may be signaled.

a) В качестве альтернативы, когда режим прогнозирования является режимом внутрикадрового прогнозирования, передача сигнализации с индикацией использования режима палитры может быть пропущена.a) Alternatively, when the prediction mode is an intra-prediction mode, signaling indicating the use of the palette mode may be skipped.

3. В одном из примеров, когда режим прогнозирования является режимом внутрикадрового копирования блоков, может быть в виде сигнализации передана индикация использования режима палитры. Кроме того, в качестве альтернативы, когда режим прогнозирования является режимом межкадрового прогнозирования или режимом внутрикадрового прогнозирования, передача сигнализации с индикацией использования режима палитры может быть пропущена.3. In one example, when the prediction mode is an intra-frame block copy mode, an indication of the use of the palette mode may be signaled. Moreover, alternatively, when the prediction mode is an inter-prediction mode or an intra-prediction mode, signaling indicating the use of the palette mode may be skipped.

ii. Кроме того, в качестве альтернативы, сигнализация с индикацией использования режима палитры может быть условно передана на основе изображения/среза/типа группы плиток.ii. Additionally, as an alternative, signaling indicating the use of a palette mode may be conditionalized based on the image/slice/tile group type.

b. В одном из примеров, указание режима прогнозирования может быть закодировано после индикации использования режима палитры. b. In one example, the prediction mode indication may be encoded after the palette mode use indication.

c. В одном из примеров, сигнализация с индикацией использования режима палитры может быть передана, когда режим прогнозирования является режимом INTRA или INTER_MODE.c. In one example, signaling indicating the use of a palette mode may be transmitted when the prediction mode is INTRA or INTER_MODE.

i. В одном из примеров, индикация использования режима палитры может быть закодирована после флага пропуска, указания режима прогнозирования и флага режима с модуляцией ИКМ. i. In one example, the palette mode use indication may be encoded after the skip flag, the prediction mode indication, and the PCM mode flag.

ii. В одном из примеров, индикация использования режима палитры может быть закодирована после флага пропуска, указания режима прогнозирования и прежде флага режима с модуляцией ИКМ ii. In one example, the palette mode use indication may be encoded after the skip flag, the prediction mode indication, and before the PCM mode flag.

iii. В одном из примеров, когда текущий блок кодируют в режиме внутрикадрового прогнозирования, далее может быть передана сигнализация с указаниями режима палитры и режима копирования IBC. iii. In one example, when the current block is encoded in intra-prediction mode, signaling indicating the palette mode and IBC copy mode may then be transmitted.

1. В одном из примеров, может быть передан в виде сигнализации однобитовый флаг для индикации, сообщается ли о режиме палитры или режиме копирования IBC.1. In one example, a one-bit flag may be signaled to indicate whether palette mode or IBC copy mode is being reported.

2. В одном из примеров, передача в виде сигнализации однобитового флага может быть пропущена при определенных условиях, таких как размеры блока и то, активизирован ли режим копировании IBC или режим палитры для одной плитки/группы плиток/среза/изображения/последовательности.2. In one example, transmission of one-bit flag signaling may be skipped under certain conditions, such as block sizes and whether IBC copy mode or palette mode is enabled for a single tile/group of tiles/slice/image/sequence.

d. В одном из примеров, указание режима прогнозирования (такое как, используется ли режим внутрикадрового прогнозирования или режим межкадрового прогнозирования) может быть закодировано первым, после чего будет следовать условная передача сигнализации, является ли этот режим режимом палитры или нет.d. In one example, an indication of the prediction mode (such as whether an intra-prediction mode or an inter-prediction mode is used) may be encoded first, followed by conditional signaling of whether the mode is a palette mode or not.

i. В одном из примеров, когда режим прогнозирования является режимом внутрикадрового прогнозирования, может быть дополнительно передан в виде сигнализации другой флаг для индикации, является ли этот режим режимом палитры или нет.i. In one example, when the prediction mode is an intra-frame prediction mode, another flag may be further signaled to indicate whether the mode is a palette mode or not.

1. В одном из примеров, указанный «другой флаг» может быть передан в виде сигнализации, когда режим палитры активизирован для одной единицы данных видео (например, последовательности/изображения/группы плиток/плитки).1. In one example, said "other flag" may be signaled when the palette mode is activated for one unit of video data (eg, sequence/image/tile group/tile).

2. В одном из примеров, указанный «другой флаг» может быть сообщен в виде сигнализации при условии соответствующего размера блока.2. In one example, the specified "other flag" may be signaled, provided the block size is appropriate.

3. Кроме того, в качестве альтернативы, если режим не является режимом палитры, один флаг может быть далее передан в виде сигнализации для индикации, является ли этот режим режимом модуляции ИКМ или нет.3. Additionally, as an alternative, if the mode is not a palette mode, one flag may be further signaled to indicate whether the mode is a PCM modulation mode or not.

4. В одном из примеров, указанный «другой флаг» может быть подвергнут контекстному кодированию в соответствии с информацией о соседних блоках. В качестве альтернативы, этот «другой флаг» может быть подвергнут контекстному кодированию в соответствии только с одним контекстом. В качестве альтернативы, этот «другой флаг» может быть кодирован «в обход», т.е. без контекста.4. In one example, said "other flag" may be context encoded according to neighboring block information. Alternatively, this "other flag" may be context encoded according to only one context. Alternatively, this "other flag" could be encoded "bypass", i.e. without context.

ii. В качестве альтернативы, когда режим прогнозирования является режимом межкадрового прогнозирования, может быть далее передан в виде сигнализации другой флаг для индикации, является ли этот режим режимом копирования IBC.ii. Alternatively, when the prediction mode is an inter-frame prediction mode, another flag may be further signaled to indicate whether the mode is an IBC copy mode.

1. В одном из примеров, указанный «другой флаг» может быть передан в виде сигнализации, когда активизирован режим копирования IBC для одной единицы данных видео (например, последовательности/ изображения/группы плиток/плитки).1. In one example, the specified "other flag" may be signaled when the IBC copy mode is activated for one unit of video data (eg, sequence/image/tile group/tile).

2. В одном из примеров, указанный «другой флаг» может быть сообщен в виде сигнализации при условии соответствующего размера блока 2. In one example, the specified "other flag" may be signaled, provided the block size is appropriate

2. Предлагается добавить режим палитры в качестве дополнительного кандидата на роль режима прогнозирования. Индикация использования режима палитры может быть определена/передана в виде сигнализации на основе режима прогнозирования, например, как обсуждается в примере варианта 1 выше. В некоторых вариантах, нет необходимости передавать в виде сигнализации индикацию использования режима палитры отдельно от индикации режима прогнозирования. 2. It is proposed to add a palette mode as an additional candidate for the role of prediction mode. The palette mode use indication may be determined/signalled based on the prediction mode, for example, as discussed in the example of option 1 above. In some embodiments, it is not necessary to signal the palette mode use indication separately from the prediction mode indication.

a. В одном из примеров, совокупность режимов прогнозирования может содержать режим внутрикадрового прогнозирования, режим внутрикадрового копирования блоков и режим палитры для подлежащих кодированию с внутрикадровым прогнозированием срезов/I-кадров/подлежащих кодированию с внутрикадровым прогнозированием групп плиток.a. In one example, the plurality of prediction modes may comprise an intra-prediction mode, an intra-block copy mode, and a palette mode for intra-predictive slices/I-frames/intra-predictive-coding tile groups.

b. В качестве альтернативы, совокупность режимов прогнозирования может содержать режим внутрикадрового прогнозирования, режим палитры для подлежащих кодированию с внутрикадровым прогнозированием срезов/I-кадров/подлежащих кодированию с внутрикадровым прогнозированием групп плиток.b. Alternatively, the plurality of prediction modes may comprise an intra-prediction mode, a palette mode for intra-predictive slices/I-frames/sub-intra-predictive tile groups.

c. В одном из примеров, совокупность режимов прогнозирования может содержать режим внутрикадрового прогнозирования, режим внутрикадрового копирования блоков и режим палитры для блоков размером 4x4.c. In one example, the plurality of prediction modes may comprise an intra-prediction mode, an intra-frame block copy mode, and a palette mode for 4x4 blocks.

d. В одном из примеров, совокупность режимов прогнозирования может содержать режим внутрикадрового прогнозирования, режим межкадрового прогнозирования, режим внутрикадрового копирования блоков и режим палитры для подлежащих кодированию с внутрикадровым прогнозированием срезов/P и/или B-кадров/подлежащих кодированию с внутрикадровым прогнозированием групп плиток.d. In one example, a plurality of prediction modes may comprise an intra-prediction mode, an inter-prediction mode, an intra-block copy mode, and a palette mode for intra-prediction-codable slices/P and/or B-frames/intra-prediction-coding tile groups.

e. В одном из примеров, совокупность режимов прогнозирования может содержать режим внутрикадрового прогнозирования, режим межкадрового прогнозирования, режим внутрикадрового копирования блоков для подлежащих кодированию с внутрикадровым прогнозированием срезов/P и/или B-кадров/подлежащих кодированию с внутрикадровым прогнозированием групп плиток.e. In one example, a plurality of prediction modes may comprise an intra-prediction mode, an inter-prediction mode, an intra-frame block copy mode for intra-predictive slices/P and/or B-frames/sub-intra-predictive tile groups.

f. В качестве альтернативы, совокупность режимов прогнозирования может содержать по меньшей мере два режима из следующего списка – режим внутрикадрового прогнозирования, режим межкадрового прогнозирования, режим внутрикадрового копирования блоков и режим палитры.f. Alternatively, the plurality of prediction modes may comprise at least two of the following list of modes: an intra-prediction mode, an inter-prediction mode, an intra-frame block copy mode, and a palette mode.

g. В одном из примеров, режим межкадрового прогнозирования может не быть включен в совокупность режимов прогнозирования для блоков размером 4x4.g. In one example, the inter-frame prediction mode may not be included in the set of prediction modes for 4x4 blocks.

h. В одном из примеров, когда блок не кодирован в режиме пропуска (что является специальным случаем режима межкадрового прогнозирования), индекс режима прогнозирования может быть подвергнут контекстному кодированию с использованием разных секций (разрядов). В некоторых вариантах, передача одной или нескольких секций (разрядов) в виде сигнализации может быть пропущена из-за некоторого условия, такого как размер блока (например, 4x4), либо режим прогнозирования не активизирован (например, режим копирования IBC не активизирован, так что соответствующие секции (разряды) пропускают). h. In one example, when the block is not encoded in the skip mode (which is a special case of the inter-prediction mode), the prediction mode index may be context-encoded using different sections (bits). In some embodiments, transmission of one or more sections (bits) as signaling may be skipped due to some condition such as block size (eg, 4x4) or the prediction mode is not activated (eg, IBC copy mode is not activated, so the corresponding sections (digits) are skipped).

i. В одном из примеров, представление в двоичном виде (бинаризация) указанных четырех режимов определено как: режим внутрикадрового прогнозирования (1), режим межкадрового прогнозирования (00), режим копирования IBC (010) и режим палитры (011). Здесь используются три секции (разряда), и каждый бит соответствует значению одной секции (разряда). i. In one example, the binary representation (binarization) of these four modes is defined as: intra-prediction mode (1), inter-prediction mode (00), IBC copy mode (010), and palette mode (011). Three sections (bits) are used here, and each bit corresponds to the value of one section (bit).

ii. В одном из примеров, бинаризация указанных четырех режимов определена как: режим внутрикадрового прогнозирования (10), режим межкадрового прогнозирования (00), режим копирования IBC (01) и режим палитры (11), как показано на фиг. 10. Здесь используются две секции (разряда), и каждый бит соответствует значению одной секции (разряда)ii. In one example, the binarization of these four modes is defined as: intra prediction mode (10), inter prediction mode (00), IBC copy mode (01) and palette mode (11), as shown in FIG. 10. Two sections (bits) are used here, and each bit corresponds to the value of one section (bit)

iii. В одном из примеров, если текущий срез является срезом, кодируемым с внутрикадровым прогнозированием, и режим копирования IBC не активизирован в наборе SPS, бинаризация режима палитры и режима внутрикадрового прогнозирования определена как: режим палитры (1) и режим внутрикадрового прогнозирования (0). Здесь используется одна секция (разряд).iii. In one example, if the current slice is an intra-prediction encoded slice and the IBC copy mode is not enabled in the SPS set, the binarization of palette mode and intra-prediction mode is defined as: palette mode (1) and intra-prediction mode (0). One section (bit) is used here.

iv. В одном из примеров, если текущий срез не является срезом, кодируемым с внутрикадровым прогнозированием, и режим копирования IBC не активизирован в наборе SPS, бинаризация режима палитры, режимов межкадрового и внутрикадрового прогнозирования определена как: режим внутрикадрового прогнозирования (1), режим межкадрового прогнозирования (00) и режим палитры (01). Здесь используются две секции (разряда), и каждый бит соответствует значению одной секции (разряда).iv. In one example, if the current slice is not an intra-prediction encoded slice and the IBC copy mode is not enabled in the SPS set, the binarization of the palette mode, inter-prediction modes, and intra-prediction modes is defined as: intra-prediction mode (1), inter-prediction mode ( 00) and palette mode (01). Here two sections (bits) are used, and each bit corresponds to the value of one section (bit).

v. В одном из примеров, если текущий срез, является срезом, кодируемым в режиме внутрикадрового прогнозирования и режим копирования IBC активизирован в SPS, бинаризация режима палитры и режима внутрикадрового прогнозирования определена как: режим копирования IBC (1), режим палитры (01) и режим внутрикадрового прогнозирования (00). Здесь используются две секции (разряда), и каждый бит соответствует значению одной секции (разряда).v. In one example, if the current slice is an intra-prediction mode encoded slice and the IBC copy mode is enabled in the SPS, the binarization of palette mode and intra-prediction mode is defined as: IBC (1) copy mode, palette (01) mode, and intra-prediction mode forecast (00). Here two sections (bits) are used, and each bit corresponds to the value of one section (bit).

vi. В одном из примеров, бинаризация указанных четырех режимов определена как: режим межкадрового прогнозирования (1), режим внутрикадрового прогнозирования (01), режим копирования IBC (001) и режим палитры (000). Здесь используются три секции (разряда), и каждый бит соответствует значению одной секции (разряда).vi. In one example, the binarization of these four modes is defined as: inter-prediction mode (1), intra-prediction mode (01), IBC copy mode (001), and palette mode (000). Three sections (bits) are used here, and each bit corresponds to the value of one section (bit).

vii. В одном из примеров, бинаризация указанных четырех режимов определена как: режим внутрикадрового прогнозирования (1), режим межкадрового прогнозирования (01), режим копирования IBC (001) и режим палитры (000). Здесь используются три секции (разряда), и каждый бит соответствует значению одной секции (разряда).vii. In one example, the binarization of these four modes is defined as: intra prediction mode (1), inter prediction mode (01), IBC copy mode (001) and palette mode (000). Three sections (bits) are used here, and each bit corresponds to the value of one section (bit).

viii. В одном из примеров, бинаризация указанных четырех режимов определена как: режим межкадрового прогнозирования (0), режим внутрикадрового прогнозирования (10), режим копирования IBC (111) и режим палитры (110), как показано на фиг. 11. Здесь используются три секции (разряда), и каждый бит соответствует значению одной секции (разряда).viii. In one example, the binarization of these four modes is defined as: inter-prediction mode (0), intra-prediction mode (10), IBC copy mode (111) and palette mode (110), as shown in FIG. 11. Three sections (bits) are used here, and each bit corresponds to the value of one section (bit).

3. Передача в виде сигнализации индикации использования режима палитры/режима копирования IBC может зависеть от информации о другом режиме.3. IBC palette mode/copy mode usage indication signaling may be dependent on other mode information.

a. В одном из примеров, индикация использования режима палитры может быть передана в виде сигнализации, когда текущий режим прогнозирования является режимом внутрикадрового прогнозирования и не является режимом копирования IBC. a. In one example, the palette mode use indication may be signaled when the current prediction mode is an intra prediction mode and is not an IBC copy mode.

b. В одном из примеров, индикация использования режима копирования IBC может быть передана в виде сигнализации, когда текущий режим прогнозирования является режимом внутрикадрового прогнозирования и не является режимом палитры.b. In one example, an indication of use of the IBC copy mode may be signaled when the current prediction mode is an intra prediction mode and is not a palette mode.

4. Как именно передать информацию о режиме в виде сигнализации может зависеть от среза/изображения/типа группы плиток.4. Exactly how to convey mode information as an alarm may depend on the slice/image/type of tile group.

a. В одном из примеров, когда рассматривается I-срез/группа плиток, кодируемая с применением внутрикадрового прогнозирования, один флаг может быть передан в виде сигнализации для индикации, является ли рассматриваемый режим режимом копирования IBC. Если этот режим не является режимом копирования IBC, может быть дополнительно передан другой флаг для индикации, является ли этот режим режимом палитры или режимом внутрикадрового прогнозирования.a. In one example, when considering an I-slice/tile group encoded using intra-prediction, one flag may be signaled to indicate whether the mode in question is an IBC copy mode. If the mode is not an IBC copy mode, another flag may optionally be transmitted to indicate whether the mode is a palette mode or an intra-prediction mode.

b. В одном из примеров, когда рассматривается I-срез/группа плиток, кодируемая с применением внутрикадрового прогнозирования, один флаг может быть передан в виде сигнализации для индикации, является ли рассматриваемый режим режимом внутрикадрового прогнозирования. Если этот режим не является режимом внутрикадрового прогнозирования, может быть дополнительно передан другой флаг для индикации, является ли этот режим режимом палитры или режимом копирования IBC.b. In one example, when considering an I-slice/tile group encoded using intra-prediction, one flag may be signaled to indicate whether the mode in question is an intra-prediction mode. If the mode is not an intra-frame prediction mode, another flag may be optionally transmitted to indicate whether the mode is a palette mode or an IBC copy mode.

5. Индикация использования режима палитры может быть передана в виде сигнализации и/или сформирована на основе следующих условий.5. The palette mode usage indication may be signaled and/or generated based on the following conditions.

a. размеры текущего блокаa. dimensions of the current block

i. В одном из примеров, индикация использования режима палитры может быть передана в виде сигнализации только для блоков, для которых произведение «ширина * высота» не больше порогового значения, такой как 64*64.i. In one example, the palette mode use indication may be signaled only for blocks for which the width*height product is not greater than a threshold value, such as 64*64.

ii. В одном из примеров, индикация использования режима палитры может быть передана в виде сигнализации только для блоков, для которых и ширина, и высота не меньше порогового значения, такой как 64ii. In one example, the palette mode use indication may be signaled only for blocks for which both the width and height are at least equal to a threshold value, such as 64

iii. В одном из примеров, индикация использования режима палитры может быть передана в виде сигнализации только для блоков, для которых все приведенные ниже условия являются истинными (true):iii. In one example, the palette mode use indication may be signaled only for blocks for which all of the following conditions are true:

1. ширина и/или высота не меньше порогового значения, такой как 16; 1. width and/or height not less than a threshold value, such as 16;

2. ширина и/или высота не больше порогового значения, такой как 32 или 64 2. width and/or height not greater than a threshold value such as 32 or 64

iv. В одном из примеров, индикация использования режима палитры может быть сообщена в виде сигнализации только для блоков, у которых ширина равна высоте (т.е. квадратных блоков)iv. In one example, the palette mode use indication may be signaled only for blocks whose width is equal to their height (i.e. square blocks)

b. режим прогнозирования для текущего блокаb. prediction mode for the current block

c. Текущий параметр квантования для текущего блока c. Current quantization parameter for the current block

d. Флаг режима палитры для соседних блоков d. Palette mode flag for adjacent blocks

e. Флаги режима внутрикадрового копирования блоков для соседних блоковe. Intra-frame block copying mode flags for adjacent blocks

f. Индикация цветового формата (такого как 4:2:0, 4:4:4)f. Color format display (such as 4:2:0, 4:4:4)

g. Раздельная/двойная структура дерева кодирования g. Separate/dual coding tree structure

h. Тип среза/группы плиток и/или тип изображения h. Slice/Tile Group Type and/or Image Type

6. Индикация использования режима копирования IBC может быть передана в виде сигнализации и/или получена на основе следующих условий.6. The IBC copy mode usage indication may be signaled and/or received based on the following conditions.

a. размеры текущего блокаa. dimensions of the current block

i. В одном из примеров, индикация использования режима копирования IBC может быть передана в виде сигнализации только для блоков, для которых и высота, и ширина меньше 128i. In one example, the use of IBC copy mode may be signaled only for blocks for which both the height and width are less than 128

b. режим прогнозирования для текущего блокаb. prediction mode for the current block

c. Текущий параметр квантования для текущего блока c. Current quantization parameter for the current block

d. Флаг режима палитры для соседних блоков d. Palette mode flag for adjacent blocks

e. Флаги режима внутрикадрового копирования блоков для соседних блоковe. Intra-frame block copying mode flags for adjacent blocks

f. Индикация цветового формата (такого как 4:2:0, 4:4:4)f. Color format display (such as 4:2:0, 4:4:4)

g. Раздельная/двойная структура дерева кодирования g. Separate/dual coding tree structure

h. Тип среза/группы плиток и/или тип изображения h. Slice/Tile Group Type and/or Image Type

7. Режим палитры можно рассматривать в качестве режима внутрикадрового прогнозирования (e.g MODE_INTRA) в процессе принятия решения о деблокировании.7. Palette mode can be considered as an intra-prediction mode (e.g MODE_INTRA) in the release decision process.

a. В одном из примеров, если отсчеты на стороне p или на стороне q кодируют в режиме палитры, жесткость границы устанавливают равной 2.a. In one example, if the samples on the p side or the q side are encoded in palette mode, the boundary hardness is set to 2.

b. В одном из примеров, если отсчеты на обеих сторонах – и на стороне p, и на стороне q, кодируют в режиме палитры, жесткость границы устанавливают равной 2b. In one example, if the samples on both the p-side and the q-side are encoded in palette mode, the boundary hardness is set to 2

c. В качестве альтернативы, режим палитры можно рассматривать в качестве режима межкадрового прогнозирования (например, MODE_INTER) в процессе принятия решения о деблокировании.c. Alternatively, the palette mode can be considered as an inter-prediction mode (eg, MODE_INTER) in the release decision process.

8. Режим палитры можно рассматривать в качестве отдельного режима (например, MODE_PLT) в процессе принятия решения о деблокировании.8. Palette mode can be considered as a separate mode (eg MODE_PLT) in the release decision process.

a. В одном из примеров, если отсчеты на стороне p или на стороне q кодируют в режиме палитры, жесткость границы устанавливают равной 0.a. In one example, if the samples on the p side or the q side are encoded in palette mode, the boundary hardness is set to 0.

i. В качестве альтернативы, если отсчеты на одной стороне кодируют в режиме палитры, жесткость границы устанавливают равной 0.i. Alternatively, if samples on one side are encoded in palette mode, the edge hardness is set to 0.

b. В одном из примеров, если отсчеты на стороне p кодируют в режиме копирования IBC и отсчеты на стороне q кодируют в режиме палитры, жесткость границы устанавливают равной 1, и наоборот.b. In one example, if samples on the p side are encoded in IBC copy mode and samples on the q side are encoded in palette mode, the boundary hardness is set to 1, and vice versa.

c. В одном из примеров, если отсчеты на стороне p кодируют в режиме внутрикадрового прогнозирования и отсчеты на стороне q кодируют в режиме палитры, жесткость границы устанавливают равной 2, и наоборот.c. In one example, if samples on the p side are encoded in intra-prediction mode and samples on the q side are encoded in palette mode, the boundary hardness is set to 2, and vice versa.

9. Режим палитры можно рассматривать в качестве режима трансформации-пропуска блока в процессе деблокирования 9. Palette mode can be considered as a block-skipping transformation mode during the release process

a. В качестве альтернативы, режим палитры можно рассматривать в качестве режима модуляции BDPCM блока в процессе деблокирования.a. Alternatively, the palette mode can be thought of as the block's BDPCM modulation mode during the deblocking process.

10. Индикация использования режима палитры для блока может быть передана в виде сигнализации и/или получена на основе флага на уровне среза/группы плиток/изображения 10. Indication of palette mode use for a block may be signaled and/or derived from a flag at the slice/tile group/image level

a. В одном из примеров, этот указывает, является ли дробная разность векторов движения (motion vector difference (MVD)) допустимой в режиме объединения с разностями вектором движения (merge with motion vector difference (MMVD, также называется UMVE)) и/или в режиме адаптивного разрешения вектора движения (adaptive motion vector resolution (AMVR)), (например, флаг slice_fracmmvd_flag). Кроме того, в качестве альтернативы, если флаг slice_fracmmvd_flag указывает, что режим дробной разности MVD активизирован, передачу сигнализации, указывающей использование режима палитры, пропускают, и режим палитры считают не активизированным.a. In one example, this indicates whether a fractional motion vector difference (MVD) is valid in merge with motion vector difference (MMVD, also called UMVE) mode and/or in adaptive mode. adaptive motion vector resolution (AMVR), (for example, the slice_fracmmvd_flag flag). Additionally, as an alternative, if the slice_fracmmvd_flag indicates that the fractional difference MVD mode is activated, signaling indicating use of the palette mode is skipped and the palette mode is considered not to be activated.

b. В одном из примеров, этот флаг указывает, активизирован ли режим палитры для среза/группы плиток/изображения. Кроме того, в качестве альтернативы, когда такой флаг указывает, что режим палитры не активизирован, передачу сигнализации, указывающей использование режима палитры, для блока пропускают, и режим палитры считают не активизированным.b. In one example, this flag indicates whether palette mode is enabled for a slice/tile group/image. Further, alternatively, when such a flag indicates that the palette mode is not activated, signaling indicating the use of the palette mode is skipped for the block, and the palette mode is considered not activated.

11. Индикацию использования режима внутрикадрового копирования блоков (IBC) для блока можно передать в виде сигнализации и/или вывести на основе флага на уровне среза/группы плиток/изображения.11. Indication of the use of Intra Block Copy (IBC) mode for a block can be signaled and/or inferred based on a flag at the slice/tile group/image level.

a. В одном из примеров, флаг указывает, является ли дробная разность векторов движения (MVD) допустимой в режиме объединения с разностями вектором движения (MMVD, также называется UMVE) и/или в режиме адаптивного разрешения вектора движения (AMVR), (например, slice_fracmmvd_flag). Кроме того, в качестве альтернативы, если флаг slice_fracmmvd_flag указывает, что режим дробной разности MVD активизирован, передачу индикации режима копирования IBC в виде сигнализации пропускают, и считают, что режим копирования IBC не активизирован.a. In one example, the flag indicates whether fractional motion vector difference (MVD) is valid in fusion motion vector difference (MMVD, also called UMVE) mode and/or adaptive motion vector resolution (AMVR) mode (e.g., slice_fracmmvd_flag) . Also, as an alternative, if the slice_fracmmvd_flag indicates that the MVD fractional difference mode is activated, signaling of the IBC copy mode indication is skipped and the IBC copy mode is considered not to be activated.

b. В одном из примеров, этот флаг указывает, активизирован ли режим копирования IBC для среза/группы плиток/изображения. Кроме того, в качестве альтернативы, когда этот флаг указывает, что режим копирования IBC не активизирован, передачу сигнализации использования режима копирования IBC для блока пропускают, и считают, что режим копирования IBC не активизирован.b. In one example, this flag indicates whether IBC copy mode is enabled for the slice/tile group/image. Also, alternatively, when this flag indicates that the IBC copy mode is not activated, IBC copy mode use signaling for the block is skipped and the IBC copy mode is considered not to be activated.

12. Отсчет, ассоциированный с одной входной позицией палитры, может иметь битовую глубину, отличную от внутренней битовой глубины и/или от битовой глубины исходных/реконструированных отсчетов.12. The sample associated with one input palette position may have a different bit depth from the internal bit depth and/or from the bit depth of the original/reconstructed samples.

a. В одном из примеров, если обозначить битовую глубину, ассоциированную с отсчетом, как N, может быть применимо следующее:a. In one example, if we denote the bit depth associated with a sample as N, the following may apply:

i. В одном из примеров, N может быть целым числом (например, 8).i. In one example, N may be an integer (eg, 8).

ii. В одном из примеров, N может быть больше, чем внутренняя битовая глубина и/или битовая глубина исходных/реконструированных отсчетов.ii. In one example, N may be greater than the internal bit depth and/or the bit depth of the original/reconstructed samples.

iii. В одном из примеров, N может быть меньше, чем внутренняя битовая глубина и/или битовая глубина исходных/реконструированных отсчетов.iii. In one example, N may be less than the internal bit depth and/or the bit depth of the original/reconstructed samples.

iv. В одном из примеров, N может зависеть от iv. In one example, N may depend on

1. Размеры текущего блока1. Dimensions of the current block

2. Текущий параметр квантования для текущего блока 2. Current quantization parameter for the current block

3. Индикация цветового формата (такого как 4:2:0, 4:4:4)3. Color format indication (such as 4:2:0, 4:4:4)

4. Раздельная/двойная структура дерева кодирования 4. Separate/dual coding tree structure

5. Срез/тип группы плиток и/или тип изображения5. Slice/Tile Group Type and/or Image Type

6. Число входных позиций палитры6. Number of input palette positions

7. Число прогнозируемых входных позиций палитры7. Number of predicted input palette positions

8. Индекс цветовой составляющей8. Color component index

b. В одном из примеров, отсчеты, ассоциированные с несколькими входными позициями палитры, могут иметь различные битовые глубины.b. In one example, samples associated with multiple input palette positions may have different bit depths.

i. В одном из примеров, пусть C0, C1 являются двумя входными позициями текущей палитры и могут иметь битовую глубину, равную b0 и b1, соответственно. Здесь b0 может быть не равно b1i. In one example, let C0, C1 be the two input positions of the current palette and may have bit depths equal to b0 and b1, respectively. Here b0 may not be equal to b1

1. В одном из примеров, b0 может быть больше/меньше внутренней битовой глубины и/или битовой глубины исходных/реконструированных отсчетов, и/или b1 может быть больше/меньше внутренней битовой глубины и/или битовой глубины исходных/реконструированных отсчетов.1. In one example, b0 may be larger/smaller than the internal bit depth and/or bit depth of the original/reconstructed samples, and/or b1 may be larger/smaller than the internal bit depth and/or bit depth of the original/reconstructed samples.

c. В одном из примеров, в режиме палитры, отсчеты могут быть реконструированы в соответствии со смещенными значениями отсчетов, ассоциированных с входными позициями палитры.c. In one example, in palette mode, samples can be reconstructed according to offset sample values associated with input palette positions.

i. В одном из примеров, отсчеты могут быть реконструированы путем левого смещения отсчетов во входных позициях палитры на M бит.i. In one example, the samples can be reconstructed by left shifting the samples at the input palette positions by M bits.

ii. В одном из примеров, реконструированное значение может быть (C<<M) + (1<<(M-1)), где C обозначает входную позицию палитры.ii. In one example, the reconstructed value could be (C<<M) + (1<<(M-1)), where C denotes the input palette position.

iii. В одном из примеров, отсчеты могут быть реконструированы путем правого смещения отсчетов во входных позициях палитры на M бит.iii. In one example, the samples can be reconstructed by right shifting the samples at the input palette positions by M bits.

iv. В одном из примеров, реконструированное значение может быть усечением ((C+(1<<(M-1)))>>M, 0, (1<<N)-1), где C обозначает входную позицию палитры, и N обозначает битовую глубину реконструкцию.iv. In one example, the reconstructed value may be a truncation ((C+(1<<(M-1)))>>M, 0, (1<<N)-1), where C denotes the input palette position and N denotes bit depth reconstruction.

v. Кроме того, в качестве альтернативы, в одном из примеров, значение M может зависеть от разности битовых глубин между отсчетами, ассоциированными с входными позициями палитры, и внутренней битовой глубиной реконструированных отсчетов/исходных отсчетов.v. Additionally, as an alternative, in one example, the value of M may depend on the difference in bit depths between the samples associated with the input palette positions and the internal bit depth of the reconstructed samples/original samples.

1. В одном из примеров, число M может быть равно внутренней битовой глубине минус битовая глубина отсчетов во входных позициях палитры 1. In one example, the number M may be equal to the internal bit depth minus the bit depth of the samples at the input palette positions

2. В одном из примеров, число M может быть равно битовой глубине отсчетов во входных позициях палитры минус внутренняя битовая глубина2. In one example, the number M may be equal to the bit depth of the samples in the input palette positions minus the internal bit depth

3. В одном из примеров, число M может быть равно битовой глубине исходных отсчетов минус битовая глубина отсчетов во входных позициях палитры 3. In one example, the number M may be equal to the bit depth of the input samples minus the bit depth of the samples in the input palette positions

4. В одном из примеров, число M может быть равно битовой глубине отсчетов во входных позициях палитры минус битовая глубина исходных отсчетов.4. In one example, the number M may be equal to the bit depth of the samples in the input palette positions minus the bit depth of the original samples.

5 В одном из примеров, число M может быть равно битовой глубине реконструированных отсчетов минус битовая глубина отсчетов во входных позициях палитры 5 In one example, the number M may be equal to the bit depth of the reconstructed samples minus the bit depth of the samples at the input palette positions

6. В одном из примеров, число M может быть равно битовой глубине отсчетов во входных позициях палитры минус битовая глубина реконструированных отсчетов6. In one example, the number M may be equal to the bit depth of the samples in the input palette positions minus the bit depth of the reconstructed samples

vi. В одном из примеров, число M может быть целым числом (например, 2).vi. In one example, the number M may be an integer (eg, 2).

vii. Кроме того, в качестве альтернативы, в одном из примеров, число M может зависеть отvii. Additionally, as an alternative, in one example, the number M may depend on

1. Размеры текущего блока1. Dimensions of the current block

2. Текущий параметр квантования для текущего блока 2. Current quantization parameter for the current block

3. Индикация цветового формата (такого как 4:2:0, 4:4:4)3. Color format indication (such as 4:2:0, 4:4:4)

4. Раздельная/двойная структура дерева кодирования 4. Separate/dual coding tree structure

5. Срез/тип группы плиток и/или тип изображения5. Slice/Tile Group Type and/or Image Type

6 Число входных позиций палитры6 Number of palette input positions

7. Число прогнозируемых входных позиций палитры7. Number of predicted input palette positions

8. Позиция отсчета в блоке/изображении/срезе/плитке8. Reference position in block/image/slice/tile

9. Индекс цветовой составляющей9. Color component index

vii. В одном из примеров, в процессе реконструкции отсчетов может быть использована операция просмотра преобразовательной таблицы на основе отсчетов во входных позициях палитры.vii. In one example, the sample reconstruction process may use a lookup table operation based on the samples at the input palette positions.

1. В одном из примеров, значения из преобразовательной таблицы могут быть переданы в виде сигнализации в составе набора SPS/набора VPS/набора PPS/заголовка изображения/заголовка среза/заголовка группы плиток/строки единиц LCU/группы единиц LCU.1. In one example, values from the lookup table may be signaled as part of an SPS set/VPS set/PPS set/picture header/slice header/tile group header/LCU row/LCU group.

2. В одном из примеров, значения из преобразовательной таблицы могут быть выведены в составе набора SPS/набора VPS/набора PPS/заголовка изображения/заголовка среза/заголовка группы плиток/строки единиц LCU/группы единиц LCU.2. In one example, the values from the lookup table may be output as part of an SPS set/VPS set/PPS set/image header/slice header/tile group header/LCU row/LCU group.

13. Переданный в виде сигнализации/выведенный параметр квантования (quantization parameter (QP)) для блоков, кодируемых в режиме кодирования палитры, может быть сначала модифицирован прежде использования для вывода выпадающих пикселей/отсчетов, например, усечением.13. The signaled/output quantization parameter (QP) for blocks encoded in palette encoding mode may first be modified before being used to output outlier pixels/samples, such as by truncation.

a. В одном из примеров, применимый диапазон параметра QP для блоков, кодируемых в режиме кодирования палитры, можно рассматривать таким же способом, как в режиме пропуска трансформации и/или в режиме модуляции BDPCM.a. In one example, the applicable QP parameter range for blocks encoded in the palette encoding mode can be considered in the same manner as in the skip transformation mode and/or in the BDPCM modulation mode.

b. В одном из примеров, применимый параметр QP для блоков, кодируемых в режиме кодирования палитры, может быть пересмотрен и сделан равным max(Qp, 4 + T), где T – целое число, и Qp представляет собой передаваемый в виде сигнализации или выводимый параметр квантования для соответствующего блока.b. In one example, the applicable QP parameter for blocks encoded in palette encoding mode may be revised to be equal to max(Qp, 4 + T), where T is an integer and Qp is a signaled or output quantization parameter for the corresponding block.

i. В одном из примеров, параметр T может представлять собой предварительно заданное пороговое значение.i. In one example, the parameter T may be a predetermined threshold value.

ii. В одном из примеров, параметр T может быть равен (4 + min_qp_prime_ts_ minus4), где параметр min_qp_prime_ts_ minus4 может быть передан в виде сигнализации.ii. In one example, the T parameter may be equal to (4 + min_qp_prime_ts_ minus4), where the min_qp_prime_ts_ minus4 parameter may be signaled.

14. Способ кодирования выпадающих отсчетов/символов может быть унифицирован независимо от того, активизирован ли режим обхода трансформации и квантования или нет. 14. The method for encoding outlier samples/symbols can be unified regardless of whether the transformation and quantization bypass mode is activated or not.

a. В одном из примеров, выпадающий отсчет может быть передан в виде сигнализации с фиксированной длиной.a. In one example, the outlier sample may be transmitted as a fixed length signaling.

b. В одном из примеров, выпадающий отсчет может быть передан в виде сигнализации с фиксированной длиной с использованием N бит. b. In one example, the outlier sample may be transmitted as a fixed length signaling using N bits.

i. В одном из примеров, число N может быть целым числом (например, 8 или 10) и может зависеть от i. In one example, the number N may be an integer (for example, 8 or 10) and may depend on

1. Сообщение передают в виде сигнализации в составе набора SPS/набора VPS/набора PPS/заголовка изображения/заголовка среза/заголовка группы плиток/строки единиц LCU/группы единиц LCU.1. The message is sent as signaling as part of an SPS set/VPS set/PPS set/Image header/Slice header/Tile group header/LCU string/LCU group.

2. Внутренняя битовая глубина2. Internal bit depth

3. Входная битовая глубина3. Input bit depth

4. Размеры текущего блока4. Dimensions of the current block

5. Текущий параметр квантования текущего блока5. Current quantization parameter of the current block

6. Индикация цветового формата (такого как 4:2:0, 4:4:4)6. Color format indication (such as 4:2:0, 4:4:4)

7. Раздельная/двойная структура дерева кодирования 7. Separate/dual coding tree structure

8. Срез/тип группы плиток и/или тип изображения8. Slice/Tile Group Type and/or Image Type

c. В одном из примеров, длина кода для передачи выпадающего пикселя/отсчета в виде сигнализации может зависеть от внутренней битовой глубины.c. In one example, the code length for signaling the outlier pixel/sample may depend on the internal bit depth.

i. В качестве альтернативы, длина кода для передачи выпадающего пикселя/отсчета в виде сигнализации может зависеть от входной битовой глубины.i. Alternatively, the code length for signaling the outlier pixel/sample may depend on the input bit depth.

d. В одном из примеров, длина кода для передачи выпадающего пикселя/отсчета в виде сигнализации может зависеть от параметра квантования.d. In one example, the length of the code for signaling the outlier pixel/sample may depend on the quantization parameter.

i. В одном из примеров, длина кода для передачи выпадающего пикселя/отсчета в виде сигнализации может быть равна f(Qp)i. In one example, the code length for signaling the outlier pixel/sample may be f(Qp)

1. В одном из примеров, функция f может быть определена как (внутренняя битовая длина – (Qp - 4)/6).1. In one example, the function f can be defined as (internal bit length – (Qp - 4)/6).

15. Процедуры квантования и/или обратного квантования для блоков, кодируемых в режиме кодирования палитры, и для блоков, кодируемых в режиме кодирования палитры, могут быть определены разными способами. 15. Quantization and/or inverse quantization procedures for blocks encoded in the palette encoding mode and for blocks encoded in the palette encoding mode can be defined in different ways.

a. В одном из примеров, правое смещение битов может быть использовано для квантования выпадающего отсчета вместо использования процедуры квантования для коэффициентов трансформации или остатков.a. In one example, right-shifting bits can be used to quantize the outlier sample instead of using the quantization procedure for transformation coefficients or residuals.

b. В одном из примеров, левое смещение битов может быть использовано для обратного квантования выпадающего отсчета вместо использования процедуры обратного квантования для коэффициентов трансформации или остатков.b. In one example, left-shifting the bits can be used to inversely quantize the outlier sample instead of using the inverse quantization procedure for transform coefficients or residuals.

c. На стороне кодирующих устройств может быть применимо следующее:c. On the encoder side, the following may apply:

i. В одном из примеров, значение выпадающего пикселя может быть передано в виде сигнализации как f(p, Qp), где p обозначает значение пикселя/отсчета.i. In one example, the value of a dropped pixel may be signaled as f(p, Qp), where p denotes the pixel/sample value.

ii. В одном из примеров, функция f может быть определена как p>>((Qp-4)/6), где p обозначает значение пикселя/отсчета, и Qp обозначает параметр квантования.ii. In one example, the function f can be defined as p>>((Qp-4)/6), where p denotes the pixel/sample value and Qp denotes the quantization parameter.

iii. В одном из примеров, значение выпадающего пикселя может быть передано в виде сигнализации как p>>N, где p обозначает значение пикселя/отсчета.iii. In one example, the value of a dropped pixel may be signaled as p>>N, where p denotes the pixel/sample value.

1. В одном из примеров, число N может быть целым числом (например, 2) и может зависеть от 1. In one example, the number N may be an integer (for example, 2) and may depend on

a) Сообщение передают в виде сигнализации в составе набора SPS/набора VPS/набора PPS/заголовка изображения/заголовка среза/заголовка группы плиток/строки единиц LCU/группы единиц LCU.a) The message is sent as signaling as part of an SPS set/VPS set/PPS set/Image header/Slice header/Tile group header/LCU string/LCU group.

b) Внутренняя битовая глубинаb) Internal bit depth

c) Входная битовая глубинаc) Input bit depth

d) Размеры текущего блокаd) Dimensions of the current block

e) Текущий параметр квантования текущего блока e) Current quantization parameter of the current block

f) Индикация цветового формата (такого как 4:2:0, 4:4:4)f) Color format indication (such as 4:2:0, 4:4:4)

g) Раздельная/двойная структура дерева кодированияg) Separate/dual coding tree structure

h) Срез/тип группы плиток и/или тип изображенияh) Slice/tile group type and/or image type

d. На стороне декодирующего устройства может применяться следующее:d. On the decoder side the following may apply:

i. В одном из примеров, значение выпадающего пикселя/отсчета может быть передано в виде сигнализации как f(bd,p,Qp)i. In one example, the value of the outlier pixel/sample may be signaled as f(bd,p,Qp)

1. В одном из примеров, функция f может быть определена как clip(0, (1<<(bd-(Qp-4)/6))-1, (p + (1<<(bd-1)))>>((Qp-4)/6)).1. In one example, the function f can be defined as clip(0, (1<<(bd-(Qp-4)/6))-1, (p + (1<<(bd-1))) >>((Qp-4)/6)).

ii. В одном из примеров, значение выпадающего пикселя/отсчета может быть реконструировано как f(p,Qp), где p обозначает декодированное значение выпадающего пикселя/отсчета.ii. In one example, the value of the dropped pixel/sample can be reconstructed as f(p,Qp), where p denotes the decoded value of the dropped pixel/sample.

1. В одном из примеров, функция f может быть определена как p<<((Qp-4)/6)1. In one example, the function f can be defined as p<<((Qp-4)/6)

iii. В одном из примеров, значение выпадающего пикселя/отсчета может быть реконструировано как f(bd,p,Qp), где p обозначает декодированное значение выпадающего пикселя/отсчета.iii. In one example, the value of the dropped pixel/sample can be reconstructed as f(bd,p,Qp), where p denotes the decoded value of the dropped pixel/sample.

1. В одном из примеров, функция усечения может быть определена как clip(0, (1<<bd)-1, p<<((Qp-4)/6))1. In one example, the clipping function can be defined as clip(0, (1<<bd)-1, p<<((Qp-4)/6))

iv. В приведенных выше примерах, функция усечения clip(a,i,b) может быть определена как (i < a ? a : (i > b ? b : i)).iv. In the above examples, the clipping function clip(a,i,b) can be defined as (i < a ? a : (i > b ? b : i)).

v. В приведенных выше примерах, функция усечения clip(a,i,b) может быть определена как (i <= a ? a : (i >= b ? b : i)).v. In the above examples, the clipping function clip(a,i,b) can be defined as (i <= a ? a : (i >= b ? b : i)).

vi. В приведенных выше примерах, p может обозначать значение пикселя/отсчета, bd может обозначать внутреннюю битовую глубину или входную битовую глубину, и Qp обозначает параметр квантования.vi. In the above examples, p may denote a pixel/sample value, bd may denote an internal bit depth or input bit depth, and Qp denotes a quantization parameter.

16. Блок, кодируемый в режиме палитры, можно рассматривать в качестве блока, кодируемого в режиме внутрикадрового прогнозирования, (например, MODE_INTRA) в ходе процедуры построения списка наиболее вероятных режимов (MPM). 16. A block encoded in palette mode can be treated as a block encoded in intra-prediction mode (eg, MODE_INTRA) during the Most Probable Mode (MPM) list generation procedure.

a. В одном из примеров, при выборке режимов внутрикадрового прогнозирования соседних (смежных или несмежных) блоков в ходе построения списка режимов MPM, если соседний блок (например, слева или сверху) кодируют в режиме палитры, его можно рассматривать в качестве блока, кодируемого в обычном режиме внутрикадрового прогнозирования, (например, MODE_INTRA) с режимом по умолчанию.a. In one example, when sampling intra-prediction modes of adjacent (adjacent or non-adjacent) blocks during MPM mode list construction, if an adjacent block (e.g., left or top) is encoded in palette mode, it can be considered a block encoded in normal mode intra-frame prediction, (for example, MODE_INTRA) with the default mode.

i. В одном из примеров, режим по умолчанию может представлять собой режим DC/PLANAR/VER/HOR.i. In one example, the default mode may be DC/PLANAR/VER/HOR mode.

ii. В одном из примеров, режим по умолчанию может представлять собой какой-либо один из режимов внутрикадрового прогнозирования.ii. In one example, the default mode may be one of the intra-prediction modes.

iii. В одном из примеров, сигнализация о режиме по умолчанию может быть передана в составе набора DPS/набора SPS/набора VPS/набора PPS/набора APS/заголовка изображения/заголовка среза/заголовка группы плиток/наибольшей единицы кодирования (Largest coding unit (LCU))/единицы кодирования (CU)/строки единиц LCU/группы единиц LCU/единицы TU/блока единиц PU/единицы кодирования видео.iii. In one example, the default mode signaling may be conveyed as part of a DPS set/SPS set/VPS set/PPS set/APS set/picture header/slice header/tile group header/Largest coding unit (LCU) )/Coding Unit (CU)/String of LCU/Group of LCU/TU/Block of PU/Video Coding Unit.

17. Блок, кодируемый в режиме палитры, можно рассматривать в качестве блока, не подвергаемого режиму внутрикадрового прогнозирования, (например, рассматривать в качестве блока, с режимом прогнозирования MODE_PLT) в ходе построения списка наиболее вероятных режимов (MPM). 17. A palette-mode encoded block may be treated as a non-intra-prediction block (eg, treated as a MODE_PLT block) during most probable mode (MPM) list construction.

a. В одном из примеров, при выборке режимов внутрикадрового прогнозирования соседних блоков в ходе построения списка режимов MPM, если соседний блок (например, слева или сверху) кодируют в режиме палитры, его можно рассматривать таким же или аналогичным образом, как блоки, кодируемые в режиме межкадрового прогнозирования.a. In one example, when sampling intra-prediction modes of neighboring blocks during MPM mode list construction, if an adjacent block (e.g., left or top) is encoded in palette mode, it can be treated in the same or similar manner as blocks encoded in inter-frame mode. forecasting.

b. В одном из примеров, при выборке режимов внутрикадрового прогнозирования соседних блоков в ходе построения списка режимов MPM, если соседний блок (например, слева или сверху) кодируют в режиме палитры, его можно рассматривать таким же или аналогичным образом, как блоки, кодируемые в режиме копирования IBC.b. In one example, when sampling intra-frame prediction modes of neighboring blocks during MPM mode list construction, if an adjacent block (e.g., left or top) is encoded in palette mode, it can be treated in the same or similar manner as blocks encoded in copy mode IBC.

18. Блок яркостной составляющей, кодируемый в режиме палитры, и соответствующий блоку цветностной составляющей, кодируемому в DM-режиме, можно интерпретировать как блок, имеющий режим внутрикадрового прогнозирования по умолчанию.18. A luma block encoded in palette mode and corresponding to a chrominance block encoded in DM mode can be interpreted as a block having a default intra-prediction mode.

a. В одном из примеров, соответствующий блок яркостной составляющей, кодируемый в режим палитры, можно рассматривать в качестве блока с внутрикадровым прогнозированием (например, MODE_PLT), когда блок цветностной составляющей кодирован в DM-режиме.a. In one example, a corresponding luma block encoded into palette mode may be considered an intra-predictive block (eg, MODE_PLT) when the chrominance block is encoded in DM mode.

b. В одном из примеров, режим прогнозирования по умолчанию может представлять собой режим DC/PLANAR/VER/HOR.b. In one example, the default forecast mode may be DC/PLANAR/VER/HOR mode.

c. В одном из примеров, режим прогнозирования по умолчанию может представлять собой какой-либо один из режимов внутрикадрового прогнозирования.c. In one example, the default prediction mode may be one of the intra-prediction modes.

d. В одном из примеров, сигнализация о режиме прогнозирования по умолчанию может быть передана в составе набора DPS/набора SPS/набора VPS/набора PPS/набора APS/заголовка изображения/заголовка среза/заголовка группы плиток/наибольшей единицы кодирования (LCU)/единицы кодирования (CU)/строки единиц LCU/группы единиц LCU/единицы TU/блока единиц PU/единицы кодирования видео.d. In one example, the default prediction mode signaling may be transmitted as part of a DPS set/SPS set/VPS set/PPS set/APS set/picture header/slice header/tile group header/largest coding unit (LCU)/coding unit (CU)/LCU Lines/LCU Groups/TU Units/PU Units/Video Coding Units.

19. Блок, кодированный в режиме палитры, можно рассматривать в качестве недоступного блока в ходе построения списка для режима прогнозирования вектора движения на основе предыстории (history-based motion vector prediction) (HMVP), режима объединения (MERGE) и/или режима усовершенствованного прогнозирования вектора движения (advanced motion vector prediction (AMVP)). 19. A block encoded in palette mode can be considered as an inaccessible block during list construction for history-based motion vector prediction (HMVP), MERGE mode, and/or advanced prediction mode advanced motion vector prediction (AMVP).

a. В одном из примеров, недоступный блок может представлять собой блок, о котором нет информации о движении, либо информация о его движении не может быть использована дл прогнозирования других блоков. a. In one example, an inaccessible block may be a block for which there is no motion information or its motion information cannot be used to predict other blocks.

b. В одном из примеров, блок, кодируемый в режиме палитры, можно рассматривать в качестве блока с внутрикадровым прогнозированием (например, MODE_INTRA) или блока в режиме палитры (например, MODE_PLT) в процессе построения списка для режимов прогнозирования HMVP, объединения MERGE и/или прогнозирования AMVP.b. In one example, a palette-mode encoded block may be considered an intra-prediction block (eg, MODE_INTRA) or a palette-mode block (eg, MODE_PLT) during the list building process for HMVP prediction, MERGE, and/or prediction modes AMVP.

i. В качестве альтернативы, в одном из примеров, при выборке информации о движении соседних блоков в процессе построения списка для режимов прогнозирования HMVP, объединения MERGE и/или прогнозирования AMVP, соседний блок, кодируемый в режиме палитры можно рассматривать в качестве блока с недействительным индексом опоры. i. Alternatively, in one example, when retrieving neighboring block motion information during list construction for HMVP prediction, MERGE, and/or AMVP prediction modes, the palette mode-encoded neighboring block may be considered to be a block with an invalid support index.

ii. В качестве альтернативы, в одном из примеров, при выборке информации о движении соседних блоков в процессе построения списка для режимов прогнозирования HMVP, объединения MERGE и/или прогнозирования AMVP, соседний блок, кодируемый в режиме палитры можно рассматривать в качестве блока с межкадровым прогнозированием, имеющего индекс опоры, равный 0. ii. Alternatively, in one example, when retrieving neighboring block motion information during list building for HMVP, MERGE, and/or AMVP prediction modes, the palette-mode-encoded neighboring block may be considered an inter-prediction block having support index equal to 0.

iii. В качестве альтернативы, в одном из примеров, при выборке информации о движении соседних блоков в процессе построения списка для режимов прогнозирования HMVP, объединения MERGE и/или прогнозирования AMVP, соседний блок, кодируемый в режиме палитры можно рассматривать в качестве блока с межкадровым прогнозированием, имеющего нулевой вектор движения.iii. Alternatively, in one example, when retrieving neighboring block motion information during list construction for HMVP, MERGE, and/or AMVP prediction modes, the palette-mode-encoded neighboring block may be considered an inter-prediction block having zero motion vector.

20. Решение о том, как именно рассматривать блок, кодированный в режиме палитры, (например, следует ли применять описываемые выше способы, и/или, каким образом их применять) может быть основано на: 20. The decision about how to treat a block encoded in palette mode (for example, whether to use the methods described above and/or how to apply them) can be based on:

a. Контент видео (например, контент экрана или естественный контент)a. Video content (such as screen content or native content)

b. Сообщение, переданное в виде сигнализации в составе набора DPS/набора SPS/набора VPS/набора PPS/набора APS/заголовка изображения/заголовка среза/заголовка группы плиток/наибольшей единицы кодирования (LCU)/единицы кодирования (CU)/строки единиц LCU/группы единиц LCU/единицы TU/блока единиц PU/единицы кодирования видео b. Message sent as signaling as part of DPS Set/SPS Set/VPS Set/PPS Set/APS Set/Picture Header/Slice Header/Tile Group Header/Largest Coding Unit (LCU)/Coding Unit (CU)/String of LCUs/ Group of LCU Units/TU Unit/Block of PU Units/Video Coding Unit

c. Положение единицы CU/единицы PU/единицы TU/блока/единицы кодирования видеоc. Position of CU unit/PU unit/TU unit/block/video coding unit

d. Размеры текущего блока и/или соседних с ним блоков d. Sizes of the current block and/or adjacent blocks

e. Форма текущего блока и/или соседних с ним блоковe. Shape of the current block and/or its neighboring blocks

f. Индикация цветового формата (такого как 4:2:0, 4:4:4, RGB или YUV)f. Color format indication (such as 4:2:0, 4:4:4, RGB or YUV)

g. Структура дерева кодирования (такая, как двойное дерево или одиночное дерево) g. Coding tree structure (such as double tree or single tree)

h. Срез/тип группы плиток и/или тип изображения h. Slice/Tile Group Type and/or Image Type

i. Цветовая составляющая (например, может быть применима только к яркостной составляющей и/или цветностной составляющей) i. Color component (for example, may only apply to the luminance component and/or chrominance component)

j. Идентификатор ID временного уровняj. Time Layer ID

k. Профили/Уровни/Ярусы стандарта k. Profiles/Levels/Tieres of the standard

21. Секции (разряды) с контекстно-зависимым кодированием для блока, кодируемого в режиме кодирования палитры, могут быть ограничены в пределах некоторого диапазона.21. Sections (bits) with context-sensitive encoding for a block encoded in palette encoding mode may be limited within a certain range.

a. В одном из примеров, с блоком ассоциируют счетчик для записи того, как много секций (разрядов) было подвергнуто контекстно-зависимому кодированию. Когда число в счетчике превышает пороговое значение, применяют обходное кодирование вместо контекстно-зависимого кодирования.a. In one example, a counter is associated with the block to record how many sections (bits) have been subjected to context-sensitive encoding. When the count in the counter exceeds the threshold, bypass encoding is used instead of context-sensitive encoding.

i. В качестве альтернативы, счетчики NumColorComp могут быть назначены для записи того, как много секций (разрядов) было подвергнуты контекстно-зависимому кодированию для каждой цветовой составляющей. Число NumColorComp представляет собой число цветовых составляющих, подлежащих кодированию в одном блоке, (например, для одной единицы CU в формате YUV, число NumColorComp устанавливают равным 3).i. Alternatively, NumColorComp counters can be assigned to record how many sections (bits) have been subjected to context-sensitive encoding for each color component. The NumColorComp number represents the number of color components to be encoded in one block (eg, for one CU unit in YUV format, the NumColorComp number is set to 3).

ii. В качестве альтернативы, счетчик может быть инициализирован на нуль, а после кодирования одной секции (разряда) контекстно-зависимым способом число в счетчике увеличивают на единицу.ii. Alternatively, the counter may be initialized to zero and, after encoding one section (bit) in a context-sensitive manner, the number in the counter is incremented by one.

b. В качестве альтернативы, счетчик может быть инициализирован некоторым значением больше нуля (например, W*H*K), и после кодирования одной секции (разряда) контекстно-зависимым способом число в счетчике уменьшают на единицу. Когда число в счетчике не больше значения T, применяют обходное кодирование вместо контекстно-зависимого кодирования.b. Alternatively, the counter may be initialized to some value greater than zero (eg, W*H*K), and after encoding one bit in a context-sensitive manner, the number in the counter is decremented by one. When the count is less than or equal to T, bypass encoding is used instead of context-sensitive encoding.

i. В одном из примеров, значение T устанавливают равным 0 или 1.i. In one example, the value of T is set to 0 or 1.

ii. В одном из примеров, значение T устанавливают в соответствии с декодированной информацией или числом проходов кодирования и т.п.ii. In one example, the value of T is set in accordance with the decoded information or the number of encoding passes or the like.

c. В одном из примеров, блоки, кодируемые в режиме кодирования палитры, могут иметь такие же или другие пороговые значения по сравнению с блоками, кодированными в режиме TS, или с блоками, кодированными в режиме не-TS, в терминах секций с контекстно-зависимым кодированием.c. In one example, blocks encoded in the palette encoding mode may have the same or different threshold values compared to blocks encoded in the TS mode, or to blocks encoded in the non-TS mode, in terms of sections with context-sensitive encoding .

i. В одном из примеров, число секций (разрядов) с контекстно-зависимым кодированием для блока, кодируемого в режиме кодирования палитры, может быть установлено равным (W*H*T), где W и H представляют собой ширину и высоту одного блока, соответственно, и T является целым числом. В одном из примеров, число T устанавливают таким же, как это используется для блоков, кодируемых в режиме TS, таким как 1.75 или 2.i. In one example, the number of context-sensitive encoding sections (bits) for a block encoded in palette encoding mode may be set to (W*H*T), where W and H represent the width and height of one block, respectively, and T is an integer. In one example, the T number is set to the same as that used for blocks encoded in the TS mode, such as 1.75 or 2.

ii. В одном из примеров, число секций (разрядов) с контекстно-зависимым кодированием для блока, кодируемого в режиме кодирования палитры, может быть установлено равным (W*H*NumColorComp*T), где W и H представляют собой ширину и высоту одного блока, соответственно; NumColorComp обозначает число цветовых составляющих, подлежащих кодированию для одного блока (например, для одной единицы CU в формате YUV, число NumColorComp устанавливают равным 3), и T является целым числом. В одном из примеров, число T устанавливают таким же, как это используется для блоков, кодируемых в режиме TS, таким как 1.75 или 2.ii. In one example, the number of context-sensitive encoding sections (bits) for a block encoded in palette encoding mode can be set to (W*H*NumColorComp*T), where W and H represent the width and height of one block, respectively; NumColorComp denotes the number of color components to be encoded for one block (for example, for one CU unit in YUV format, the NumColorComp number is set to 3), and T is an integer. In one example, the T number is set to the same as that used for blocks encoded in the TS mode, such as 1.75 or 2.

d. В одном из примеров, пороговое значение для блоков, кодируемых в режиме палитры, может быть меньше, чем для блоков, кодируемых в режиме TS, или для блоков, кодируемых в режиме не-TS, в терминах секций (разрядов) с контекстно-зависимым кодированием.d. In one example, the threshold for blocks encoded in palette mode may be less than for blocks encoded in TS mode, or for blocks encoded in non-TS mode, in terms of sections (bits) with context-sensitive encoding .

e. В одном из примеров, пороговое значение для блоков, кодируемых в режиме палитры, может быть больше, чем для блоков, кодируемых в режиме TS, или для блоков, кодируемых в режиме не-TS, в терминах секций (разрядов) с контекстно-зависимым кодированием.e. In one example, the threshold for blocks encoded in palette mode may be greater than for blocks encoded in TS mode, or for blocks encoded in non-TS mode, in terms of sections (bits) with context-sensitive encoding .

22. Блок, кодируемый в режиме палитры, можно рассматривать в качестве блока, кодируемого не в режиме внутрикадрового прогнозирования, (например, рассматривать в качестве блока с режимом прогнозирования, равным MODE_PLT) в процессе подсчета соседних блоков с внутрикадровым прогнозированием в режиме прогнозировании CIIP. 22. A palette-mode encoded block may be treated as a non-intra prediction mode encoded block (eg, considered as a block with a prediction mode set to MODE_PLT) during the CIIP prediction mode intra-prediction neighbor counting process.

a. В одном из примеров, при выборке режимов с внутрикадровым прогнозированием для соседних блоков в процессе подсчета соседних блоков с внутрикадровым прогнозированием в режиме прогнозирования CIIP, если соседний блок (например, слева и/или сверху) кодируют в режиме палитры, его можно рассматривать таким же или аналогичным образом, как блоки, кодированные в режиме с межкадровым прогнозированием.a. In one example, when sampling intra-prediction modes for neighboring blocks during intra-prediction neighbor counting in CIIP prediction mode, if an adjacent block (eg, left and/or top) is encoded in palette mode, it may be considered the same or in the same way as blocks encoded in inter-frame prediction mode.

b. В одном из примеров, при выборке режимов с внутрикадровым прогнозированием для соседних блоков в процессе подсчета соседних блоков с внутрикадровым прогнозированием в режиме прогнозирования CIIP, если соседний блок (например, слева и/или сверху) кодируют в режиме палитры, его можно рассматривать таким же или аналогичным образом, как блоки, кодированные в режиме копирования IBC.b. In one example, when sampling intra-prediction modes for neighboring blocks during intra-prediction neighbor counting in CIIP prediction mode, if an adjacent block (eg, left and/or top) is encoded in palette mode, it may be considered the same or in the same way as blocks encoded in IBC copy mode.

c. В качестве альтернативы, блок, кодируемый в режиме палитры, можно рассматривать в качестве блока с внутрикадровым прогнозированием в процессе подсчета соседних блоков с внутрикадровым прогнозированием в режиме прогнозирования CIIP.c. Alternatively, a block encoded in palette mode can be considered as an intra-prediction block during the CIIP prediction mode intra-prediction neighbor counting process.

23. Предлагается пропустить процедуры пред-фильтрации и/или пост-фильтрации для отсчетов, кодируемых в режиме палитры.23. It is suggested to skip pre-filtering and/or post-filtering procedures for samples encoded in palette mode.

a. В одном из примеров, отсчеты, кодируемые в режиме палитры, могут не подвергаться деблокированию.a. In one example, samples encoded in palette mode may not be released.

b. В одном из примеров, отсчеты, кодируемые в режиме палитры, могут не подвергаться компенсации смещении в процессе SAO.b. In one example, samples encoded in palette mode may not be subject to offset compensation during the SAO process.

c. В одном из примеров, отсчеты, кодируемые в режиме палитры, могут не подвергаться фильтрации в ходе фильтрации ALF.c. In one example, samples encoded in palette mode may not be filtered during ALF filtering.

i. В одном из примеров, классификация в процессе фильтрации ALF может пропускать отсчеты, кодируемые в режиме палитры i. In one example, the classification during the ALF filtering process may skip samples encoded in palette mode

d. В одном из примеров, режим LMCS может быть не активизирован для отсчетов, кодируемых в режиме палитры.d. In one example, the LMCS mode may not be activated for samples encoded in palette mode.

24. Предлагается добавить больше порядков сканирования в режим палитры.24. It is proposed to add more scanning orders to the palette mode.

a. В одном из примеров, может быть использован обратный порядок горизонтального поперечного сканирования, определяемый следующим образом.a. In one example, the reverse horizontal cross-scan order may be used, defined as follows.

i. В одном из примеров, направление сканирования для нечетных строк может быть слева направо.i. In one example, the scanning direction for odd lines may be left to right.

ii. В одном из примеров, направление сканирования для четных строк может быть справа налево.ii. In one example, the scanning direction for even lines may be from right to left.

iii. В одном из примеров, порядок сканирования для блока размером 4x4 может быть таким, как показано на фиг. 22.iii. In one example, the scan order for a 4x4 block may be as shown in FIG. 22.

b. В одном из примеров, может быть использован обратный порядок вертикального поперечного сканирования, определяемый следующим образом.b. In one example, a reverse vertical cross-scan order may be used, defined as follows.

i. В одном из примеров, направление сканирования для нечетных строк может быть сверху вниз.i. In one example, the scanning direction for odd lines may be from top to bottom.

ii. В одном из примеров, направление сканирования для четных строк может быть снизу вверх.ii. In one example, the scanning direction for even lines may be from bottom to top.

iii. В одном из примеров, порядок сканирования для блока размером 4x4 может быть таким, как показано на фиг. 23. iii. In one example, the scan order for a 4x4 block may be as shown in FIG. 23.

25. Комбинация допустимых порядков сканирования может зависеть от формы блока.25. The combination of valid scan orders may depend on the block shape.

a. В одном из примеров, когда отношение ширины к высоте блока больше порогового значения, могут быть применены только горизонтальный поперечный порядок сканирования и обратный горизонтальный поперечный порядок сканирования.a. In one example, when the width-to-height ratio of a block is greater than a threshold value, only the horizontal transverse scan order and the reverse horizontal transverse scan order may be applied.

i. В одном из примеров, пороговое значение равно 1.i. In one example, the threshold value is 1.

ii. В одном из примеров, пороговое значение равно 4.ii. In one example, the threshold value is 4.

b. В одном из примеров, когда отношение высоты к ширине блока больше порогового значения, могут быть применены только вертикальный поперечный порядок сканирования и обратный вертикальный поперечный порядок сканирования.b. In one example, when the height to width ratio of a block is greater than a threshold value, only the vertical lateral scan order and the reverse vertical lateral scan order may be applied.

i. В одном из примеров, пороговое значение равно 1.i. In one example, the threshold value is 1.

ii. В одном из примеров, пороговое значение равно 4.ii. In one example, the threshold value is 4.

26. Предложено, чтобы в режиме модуляции QR-BDPCM было допустимо только одно направление внутрикадрового прогнозирования и/или одно направление сканирования.26. It is proposed that in QR-BDPCM modulation mode, only one intra-prediction direction and/or one scanning direction is allowed.

a. В одном из примеров, только вертикальное направление допустимо для блока, у которого ширина больше высоты.a. In one example, only the vertical direction is allowed for a block whose width is greater than its height.

b. В одном из примеров, только горизонтальное направление допустимо для блока, у которого ширина меньше высоты.b. In one example, only the horizontal direction is allowed for a block whose width is less than its height.

c. В одном из примеров, индикация направления в режиме модуляции QR-BDPCM может быть выведена для неквадратного блока.c. In one example, a direction indication in the QR-BDPCM modulation mode may be output for a non-square block.

i. В одном из примеров, кроме того, индикация направления в режиме модуляции QR-BDPCM может указывать вертикальное направление для блока, у которого ширина больше высоты.i. In one example, furthermore, the direction indication in the QR-BDPCM modulation mode may indicate the vertical direction for a block whose width is greater than its height.

ii. В одном из примеров, кроме того, индикация направления в режиме модуляции QR-BDPCM может указывать горизонтальное направление для блока, у которого ширина меньше высоты.ii. In one example, furthermore, the direction indication in the QR-BDPCM modulation mode may indicate a horizontal direction for a block whose width is less than its height.

27. Способы согласно п. 24, 25 и 26 могут быть применены только к блокам, для которых w*Th >= h или h*Th >= w, где w и h обозначают ширину и высоту соответственно, и Th обозначает пороговое значение.27. The methods according to paragraphs 24, 25 and 26 can only be applied to blocks for which w*Th >= h or h*Th >= w, where w and h denote the width and height, respectively, and Th denotes the threshold value.

a. В одном из примеров, значение Th является целым числом (например, 4 или 8) и может быть основана на a. In one example, the Th value is an integer (for example, 4 or 8) and may be based on

i. Контент видео (например, контент экрана или естественный контент)i. Video content (such as screen content or natural content)

ii. Сообщение, переданное в виде сигнализации в составе набора DPS/набора SPS/набора VPS/набора PPS/набора APS/заголовка изображения/заголовка среза/заголовка группы плиток/наибольшей единицы кодирования (LCU)/единицы кодирования (CU)/строки единиц LCU/группы единиц LCU/единицы TU/блока единиц PU/единицы кодирования видео ii. Message sent as signaling as part of DPS Set/SPS Set/VPS Set/PPS Set/APS Set/Picture Header/Slice Header/Tile Group Header/Largest Coding Unit (LCU)/Coding Unit (CU)/String of LCUs/ Group of LCU Units/TU Unit/Block of PU Units/Video Coding Unit

iii. Положение единицы CU/единицы PU/единицы TU/блока/единицы кодирования видеоiii. Position of CU unit/PU unit/TU unit/block/video coding unit

iv. Размеры текущего блока и/или соседних с ним блоков iv. Sizes of the current block and/or adjacent blocks

v. Форма текущего блока и/или соседних с ним блоковv. Shape of the current block and/or its neighboring blocks

vi. Индикация цветового формата (такого как 4:2:0, 4:4:4, RGB или YUV)vi. Color format indication (such as 4:2:0, 4:4:4, RGB or YUV)

vii. Структура дерева кодирования (такая, как двойное дерево или одиночное дерево) vii. Coding tree structure (such as double tree or single tree)

viii. Срез/тип группы плиток и/или тип изображения viii. Slice/Tile Group Type and/or Image Type

ix. Цветовая составляющая (например, может быть применима только к яркостной составляющей и/или цветностной составляющей) ix. Color component (for example, may only apply to the luminance component and/or chrominance component)

x. Идентификатор ID временного уровняx. Time Layer ID

xi. Профили/Уровни/Ярусы стандарта xi. Profiles/Levels/Tieres of the standard

5. Дополнительные варианты5. Additional options

5.1 Вариант 15.1 Option 1

Этот раздел показывает пример варианта, в котором представление видео в форме потока битов данных может быть изменено по сравнению с базовым синтаксисом потока битов данных. Изменения выделены жирным курсивом.This section shows an example of an embodiment in which the bitstream representation of video can be modified from the basic bitstream syntax. Changes are highlighted in bold italics.

5.2 Вариант #25.2 Option #2

Этот вариант описывает переменную modeType. Вновь добавленный текст выделен жирным курсивом.This option describes the modeType variable. The newly added text is in bold italic.

Может быть использована переменная modeType, специфицирующая, могут ли быть использованы режимы кодирования с внутрикадровым прогнозированием, с копированием IBC, режим палитры и режим с межкадровым прогнозированием (MODE_TYPE_ALL), или могут ли быть использованы только режимы кодирования с внутрикадровым прогнозированием, режим палитры, режим с копированием IBC (MODE_TYPE_INTRA), или могут ли быть использованы только режимы кодирования с межкадровым прогнозированием (MODE_TYPE_INTER) для единиц кодирования внутри узла дерева кодирования.A modeType variable may be used to specify whether the intra-prediction, IBC copy, palette mode, and inter-prediction modes (MODE_TYPE_ALL) can be used, or whether only the intra-prediction, palette mode, and inter-prediction modes can be used. IBC copying (MODE_TYPE_INTRA), or whether only inter-frame prediction coding modes (MODE_TYPE_INTER) can be used for coding units within a coding tree node.

5.3 Вариантt #35.3 Option #3

Этот вариант описывает синтаксис единицы кодирования. В этом варианте передают в виде сигнализации флаг pred_mode_plt_flag после флага the pred_mode_ibc_flag. Вновь добавленный текст выделен жирным курсивом, а удаленный текст маркируют “[[ ]]”.This option describes the syntax of the encoding unit. In this embodiment, the pred_mode_plt_flag flag is signaled after the pred_mode_ibc_flag flag. Newly added text is in bold italic, and deleted text is marked “[[ ]]”.

7.3.7.5 Синтаксис единицы кодирования7.3.7.5 Coding unit syntax

5.4 Вариант #45.4 Option #4

Этот вариант описывает синтаксис единицы кодирования. В этом варианте флаг pred_mode_plt_flag передают в виде сигнализации после флага pred_mode_ibc_flag, и флаг pred_mode_plt_flag передают в виде сигнализации только тогда, когда текущий режим прогнозирования представляет собой режим MODE_INTRA. Вновь добавленный текст выделен жирным курсивом, а удаленный текст маркируют “[[ ]]”.This option describes the syntax of the encoding unit. In this embodiment, the pred_mode_plt_flag is signaled after the pred_mode_ibc_flag, and the pred_mode_plt_flag is signaled only when the current prediction mode is the MODE_INTRA mode. Newly added text is in bold italic, and deleted text is marked “[[ ]]”.

7.3.7.5 Синтаксис единицы кодирования7.3.7.5 Coding unit syntax

5.5 Вариант #55.5 Option #5

Этот вариант описывает синтаксис единицы кодирования. В этом варианте флаг pred_mode_ibc_flag передают в виде сигнализации после флага pred_mode_plt_flag. Вновь добавленный текст выделен жирным курсивом, а удаленный текст маркируют “[[ ]]”.This option describes the syntax of the encoding unit. In this embodiment, the pred_mode_ibc_flag is signaled after the pred_mode_plt_flag. Newly added text is in bold italic, and deleted text is marked “[[ ]]”.

7.3.7.5 Синтаксис единицы кодирования7.3.7.5 Coding unit syntax

5.6 Вариант #65.6 Option #6

Этот вариант описывает синтаксис единицы кодирования. В этом варианте флаг pred_mode_ibc_flag передают в виде сигнализации после флага pred_mode_plt_flag, и флаг pred_mode_plt_flag передают в виде сигнализации только тогда, когда текущий режим прогнозирования представляет собой режим MODE_INTRA. Вновь добавленный текст выделен жирным курсивом, а удаленный текст маркируют “[[ ]]”.This option describes the syntax of the encoding unit. In this embodiment, the pred_mode_ibc_flag is signaled after the pred_mode_plt_flag, and the pred_mode_plt_flag is signaled only when the current prediction mode is the MODE_INTRA mode. Newly added text is in bold italic, and deleted text is marked “[[ ]]”.

7.3.7.5 Синтаксис единицы кодирования7.3.7.5 Coding unit syntax

5.7 Вариант #75.7 Option #7

Этот вариант описывает синтаксис единицы кодирования. В этом варианте флаг pred_mode_plt_flag и флаг pred_mode_ibc_flag передают в виде сигнализации, когда режим прогнозирования представляет собой режим MODE_INTRA. Вновь добавленный текст выделен жирным курсивом, а удаленный текст маркируют “[[ ]]”.This option describes the syntax of the encoding unit. In this embodiment, the pred_mode_plt_flag flag and the pred_mode_ibc_flag flag are signaled when the prediction mode is MODE_INTRA mode. Newly added text is in bold italic, and deleted text is marked “[[ ]]”.

7.3.7.5 Синтаксис единицы кодирования7.3.7.5 Coding unit syntax

5.8 Вариант #85.8 Option #8

Этот вариант описывает синтаксис единицы кодирования. В этом варианте флаг pred_mode_plt_flag и флаг pred_mode_ibc_flag передают в виде сигнализации, когда режим прогнозирования не является режим MODE_INTRA. Вновь добавленный текст выделен жирным курсивом, а удаленный текст маркируют “[[ ]]”.This option describes the syntax of the encoding unit. In this embodiment, the pred_mode_plt_flag flag and the pred_mode_ibc_flag flag are signaled when the prediction mode is not MODE_INTRA mode. Newly added text is in bold italic, and deleted text is marked “[[ ]]”.

7.3.7.5 Синтаксис единицы кодирования7.3.7.5 Coding unit syntax

5.9 Вариант #95.9 Option #9

Этот вариант описывает синтаксис единицы кодирования. В этом варианте флаг pred_mode_plt_flag и флаг pred_mode_ibc_flag передают в виде сигнализации, когда режим прогнозирования представляет собой режим MODE_INTER. Вновь добавленный текст выделен жирным курсивом, а удаленный текст маркируют “[[ ]]”.This option describes the syntax of the encoding unit. In this embodiment, the pred_mode_plt_flag flag and the pred_mode_ibc_flag flag are signaled when the prediction mode is MODE_INTER. Newly added text is in bold italic, and deleted text is marked “[[ ]]”.

7.3.7.5 Синтаксис единицы кодирования7.3.7.5 Coding unit syntax

5.10 Вариант #105.10 Option #10

Этот вариант описывает семантику флага pred_mode_plt_flag. Вновь добавленный текст выделен жирным курсивом.This variant describes the semantics of the pred_mode_plt_flag flag. The newly added text is in bold italic.

5.11 Вариант #115.11 Option #11

Этот вариант описывает семантику флага pred_mode_plt_flag. Вновь добавленный текст выделен жирным курсивом.This variant describes the semantics of the pred_mode_plt_flag flag. The newly added text is in bold italic.

5.12 Вариант #125.12 Option #12

Этот вариант описывает определение жесткости границы. Вновь добавленный текст выделен жирным курсивом.This option describes how to determine the hardness of a boundary. The newly added text is in bold italic.

8.8.3.5 Процедура определения силы фильтрации границы8.8.3.5 Procedure for determining boundary filtration strength

Входными данными для этой процедуры являются:The inputs to this procedure are:

матрица recPicture отсчетов изображения,recPicture matrix of image samples,

позиция ( xCb, yCb ), специфирующая верхний-левый отсчет текущего блока кодирования относительно верхнего-левого отсчета текущего изображения, position ( xCb, yCb ) specifying the top-left sample of the current encoding block relative to the top-left sample of the current image,

переменная nCbW, специфицирующая ширину текущего блока кодирования,variable nCbW specifying the width of the current coding block,

переменная nCbH, специфицирующая высоту текущего блока кодирования,variable nCbH specifying the height of the current encoding block,

переменная edgeType, специфицирующая, фильтруют ли вертикальный (EDGE_VER) или горизонтальный (EDGE_HOR) край,edgeType variable specifying whether the vertical (EDGE_VER) or horizontal (EDGE_HOR) edge is filtered,

переменная cIdx, специфицирующая цветовую составляющую текущего блока кодирования,variable cIdx, which specifies the color component of the current encoding block,

двумерная (nCbW)x(nCbH) матрица edgeFlags.two-dimensional (nCbW)x(nCbH) edgeFlags matrix.

Выходными данными для этой процедуры является двумерная (nCbW)x(nCbH) матрица bS, опеределяющая силу фильтрации границы.The output of this procedure is a two-dimensional (nCbW)x(nCbH) matrix bS, which defines the filtering strength of the boundary.

...

Переменную bS[ xDi ][ yDj ] определяют следующим образом:The variable bS[ xD i ][ yD j ] is defined as follows:

Если параметр cIdx равен 0 и оба отсчета p0 и q0 находятся в блоке кодирования, для которого флаг intra_bdpcm_flag равен 1, значение bS[ xDi ][ yDj ] устанавливают равным 0.If cIdx is 0 and both samples p 0 and q 0 are in a coding block for which the intra_bdpcm_flag is 1, the value of bS[ xD i ][ yD j ] is set to 0.

В противном случае, если отсчет p0 или q0 находится в блоке кодирования из единицы кодирования, которую кодируют в режиме внутрикадрового прогнозирования, параметр bS[ xDi ][ yDj ] устанавливают равным 2.Otherwise, if a sample p 0 or q 0 is in a coding block from a coding unit that is encoded in the intra-prediction mode, the parameter bS[ xD i ][ yD j ] is set to 2.

В противном случае, если край блока является также краем блока преобразования и отсчет p0 или q0 находится в блоке кодирования, для которого флаг ciip_flag равен 1, параметр bS[ xDi ][ yDj ] устанавливают равнм 2.Otherwise, if the block edge is also a transform block edge and sample p 0 or q 0 is in an encoding block for which the ciip_flag is 1, bS[ xD i ][ yD j ] is set to 2.

В противном случае, если край блока является также краем блока преобразования и отсчет p0 или q0 находится в блоке преобразования, содержащем один или несколько ненулевых уровней трансформации, параметр bS[ xDi ][ yDj ] устанавливают равным 1.Otherwise, if the block edge is also a transform block edge and sample p 0 or q 0 is in a transform block containing one or more non-zero transformation levels, bS[ xD i ][ yD j ] is set to 1.

В противном случае, если режим прогнозирования субблока кодирования, содержащего отсчет p0, отличается от режима прогнозирования субблока кодирования, содержащего отсчет q0, параметр bS[ xDi ][ yDj ] устанавливают равным 1.Otherwise, if the prediction mode of the encoding subblock containing sample p 0 is different from the prediction mode of the encoding subblock containing sample q 0 , the parameter bS[ xD i ][ yD j ] is set to 1.

В противном случае, если параметр cIdx равен 0 и одно или несколько из следующих условий являются истинными, параметр bS[ xDi ][ yDj ] устанавливают равным 1:Otherwise, if cIdx is 0 and one or more of the following conditions are true, bS[ xD i ][ yD j ] is set to 1:

Оба субблока – субблок кодирования, содержащий отсчет p0, и субблок кодирования, содержащий отсчет q0, кодируют в режиме прогнозирования с копированием IBC, и абсолютная разница между горизонтальными или вертикальными составляющими векторов движения, используемых при прогнозировании этих двух субблоков кодирования, не меньше 4 в четвертях единицы измерения отсчетов яркостной составляющей.Both subblocks – encoding subblock containing sample p0, and subblock encoding containing sample q0, are encoded in the IBC copy prediction mode, and the absolute difference between the horizontal or vertical components of the motion vectors used in the prediction of the two encoding subblocks is not less than 4 in the quarter unit of luminance component samples.

Для прогнозирования субблока кодирования, содержащего отсчет p0, используют другие опорные изображения или другое число векторов движения по сравнению с тем, что используется для прогнозирования субблока кодирования, содержащего отсчет q0.To predict the encoding subblock containing sample p 0 , different reference images or a different number of motion vectors are used compared to that used to predict the encoding subblock containing sample q 0 .

Примечание 1 – Определение, являются ли опорные изображения, используемые для двух субблоков кодирования, одинаковыми или разными, основано только на том, на какие изображения даны ссылки, независимо от того, формируется ли прогнозирование с использованием индекса в список 0 опорных изображений или индекса в список 1 опорных изображений, и независимо от того, являются индексированные позиции в списке опорных изображений различными.Note 1 – The determination of whether the reference pictures used for two encoding subblocks are the same or different is based only on which pictures are referenced, regardless of whether the prediction is generated using index to reference picture list 0 or index to list 1 reference pictures, and regardless of whether the indexed positions in the reference picture list are different.

Примечание 2 – Число векторов движения, используемых для прогнозирования субблока кодированимя с верхним-левым отсчетом, покрывающим точку ( xSb, ySb ), равно PredFlagL0[ xSb ][ ySb ] + PredFlagL1[ xSb ][ ySb ].Note 2 – The number of motion vectors used to predict a name encoding subblock with a top-left sample covering the point ( xSb, ySb ) is equal to PredFlagL0[ xSb ][ ySb ] + PredFlagL1[ xSb ][ ySb ].

Один вектор движения, используется для прогнозирования субблока кодирования. содержащего отсчет p0, и один вектор движения используется для прогнозирования субблока кодирования, содержащего отсчет q0, и абсолютная разность между горизонтальными или вертикальными компонентами используемых векторов движения не меньше 4 в единицах отсчетов яркостной составляющей.One motion vector is used to predict the encoding subblock. containing sample p 0 , and one motion vector is used to predict a coding subblock containing sample q 0 , and the absolute difference between the horizontal or vertical components of the motion vectors used is not less than 4 in units of luminance component samples.

Два вектора движения и два разных опорных изображения используются для прогнозирования субблока кодирования, содержащего отсчет p0, два вектора движения для тех же самых двух опорных изображений используются для прогнозирования субблока кодирования, содержащего отсчет q0, и абсолютная разность между горизонтальными или вертикальными компонентами двух векторов движения, используемых для прогнозирования указанных двух субблоков кодирования для одного и того же опорного изображения не меньше 4 в единицах четвертей отсчетов яркостной составляющей.Two motion vectors and two different reference pictures are used to predict a coding subblock containing sample p 0 , two motion vectors for the same two reference pictures are used to predict a coding subblock containing sample q 0 , and the absolute difference between the horizontal or vertical components of the two vectors motion used to predict said two encoding subblocks for the same reference image of at least 4 in units of quarter luminance samples.

Два вектора движения для одного и того же опорного изображения используются для прогнозирования субблока кодирования, содержащего отсчет p0, два вектора движения для одного и того же опорного изображения используются для прогнозирования субблока кодирования, содержащего отсчет q0, и оба следующих условия являются истинными:Two motion vectors for the same reference picture are used to predict a coding subblock containing sample p 0 , two motion vectors for the same reference picture are used to predict a coding subblock containing sample q 0 , and both of the following conditions are true:

Абсолютная разность между горизонтальными или вертикальными компонентами векторов движения из списка 0, используемых для прогнозирования указанных двух субблоков кодирования, не меньше 4 в единицах четвертей отсчетов яркостной составляющей, или абсолютная разность между горизонтальными или вертикальными компонентами векторов движения из списка 1, используемых для прогнозирования указанных двух субблоков кодирования, не меньше 4 в четвертях единицы измерения отсчетов яркостной составляющей.The absolute difference between the horizontal or vertical components of the motion vectors from list 0 used to predict the specified two coding subblocks is not less than 4 in units of quarter luminance samples, or the absolute difference between the horizontal or vertical components of the motion vectors from list 1 used to predict the specified two coding subblocks, not less than 4 in quarters of the unit of measurement of the brightness component samples.

Абсолютная разность между горизонтальными или вертикальными компонентами вектора движения из списка 0, используемого для прогнозирования субблока кодирования, содержащего отсчет p0, и вектора движения из списка 1, используемого для прогнозирования субблока кодирования, содержащего отсчет q0, не меньше 4 в четвертях единицы измерения отсчетов яркостной составляющей, или абсолютная разность между горизонтальными или вертикальными компонентами вектора движения из списка 1, используемого для прогнозирования субблока кодирования, содержащего отсчет p0, и вектора движения из списка 0, используемого для прогнозирования субблока кодирования, содержащего отсчет q0, не меньше 4 в четвертях единицы измерения отсчетов яркостной составляющей.The absolute difference between the horizontal or vertical components of the motion vector from list 0 used to predict the encoding subblock containing sample p 0 and the motion vector from list 1 used to predict the encoding subblock containing sample q 0 is not less than 4 in quarters of the sample unit brightness component, or the absolute difference between the horizontal or vertical components of the motion vector from list 1 used to predict the encoding subblock containing sample p 0 and the motion vector from list 0 used to predict the encoding subblock containing sample q 0 not less than 4 in quarters of the unit of measurement of the brightness component samples.

В противном случае, переменную bS[ xDi ][ yDj ] устанавливают равной 0.Otherwise, the variable bS[ xD i ][ yD j ] is set to 0.

5.13a Вариант #13a5.13a Option #13a

Этот вариант описывает определение жесткости границы. Вновь добавленный текст выделен жирным курсивом.This option describes how to determine the hardness of a boundary. The newly added text is in bold italic.

8.8.3.5 Процедура определения силы фильтрации границы8.8.3.5 Procedure for determining boundary filtration strength

Входными данными для этой процедуры являются:The inputs to this procedure are:

матрица recPicture отсчетов изображения,recPicture matrix of image samples,

позиция ( xCb, yCb ), специфирующая верхний-левый отсчет текущего блока кодирования относительно верхнего-левого отсчета текущего изображения, position ( xCb, yCb ) specifying the top-left sample of the current encoding block relative to the top-left sample of the current image,

переменная nCbW, специфицирующая ширину текущего блока кодирования,variable nCbW specifying the width of the current coding block,

переменная nCbH, специфицирующая высоту текущего блока кодирования,variable nCbH specifying the height of the current encoding block,

переменная edgeType, специфицирующая, фильтруют ли вертикальный (EDGE_VER) или горизонтальный (EDGE_HOR) край,edgeType variable specifying whether the vertical (EDGE_VER) or horizontal (EDGE_HOR) edge is filtered,

переменная cIdx, специфицирующая цветовую составляющую текущего блока кодирования,variable cIdx, which specifies the color component of the current encoding block,

двумерная (nCbW)x(nCbH) матрица edgeFlags.two-dimensional (nCbW)x(nCbH) edgeFlags matrix.

Выходными данными для этой процедуры является двумерная (nCbW)x(nCbH) матрица bS, определяющая силу фильтрации границы.The output of this procedure is a two-dimensional (nCbW)x(nCbH) matrix bS, which defines the filtering strength of the boundary.

...

Переменную bS[ xDi ][ yDj ] определяют следующим образом:The variable bS[ xD i ][ yD j ] is defined as follows:

Если параметр cIdx равен 0 и оба отсчета p0 и q0 находятся в блоке кодирования, для которого флаг intra_bdpcm_flag равен 1, значение bS[ xDi ][ yDj ] устанавливают равным 0.If cIdx is 0 and both samples p 0 and q 0 are in a coding block for which the intra_bdpcm_flag is 1, the value of bS[ xD i ][ yD j ] is set to 0.

В противном случае, если отсчет p0 или q0 находится в блоке кодирования из единицы кодирования, которую кодируют в режиме внутрикадрового прогнозирования, параметр bS[ xDi ][ yDj ] устанавливают равным 2.Otherwise, if a sample p 0 or q 0 is in a coding block from a coding unit that is encoded in the intra-prediction mode, the parameter bS[ xD i ][ yD j ] is set to 2.

В противном случае, если край блока является также краем блока преобразования и отсчет p0 или q0 находится в блоке кодирования, для которого флаг ciip_flag равен 1, параметр bS[ xDi ][ yDj ] устанавливают равным 2.Otherwise, if the block edge is also a transform block edge and sample p 0 or q 0 is in an encoding block for which the ciip_flag is 1, bS[ xD i ][ yD j ] is set to 2.

В противном случае, если край блока является также краем блока преобразования и отсчет p0 или q0 находится в блоке преобразования, содержащем один или несколько ненулевых уровней трансформации, параметр bS[ xDi ][ yDj ] устанавливают равным 1.Otherwise, if the block edge is also a transform block edge and sample p 0 or q 0 is in a transform block containing one or more non-zero transformation levels, bS[ xD i ][ yD j ] is set to 1.

В противном случае, если режим прогнозирования субблока кодирования, содержащего отсчет p0, отличается от режима прогнозирования субблока кодирования, содержащего отсчет q0, параметр bS[ xDi ][ yDj ] устанавливают равным 1.Otherwise, if the prediction mode of the encoding subblock containing sample p 0 is different from the prediction mode of the encoding subblock containing sample q 0 , the parameter bS[ xD i ][ yD j ] is set to 1.

В противном случае, если параметр cIdx равен 0 и одно или несколько из следующих условий являются истинными, параметр bS[ xDi ][ yDj ] устанавливают равным 1:Otherwise, if cIdx is 0 and one or more of the following conditions are true, bS[ xD i ][ yD j ] is set to 1:

Оба субблока – субблок кодирования, содержащий отсчет p0, и субблок кодирования, содержащий отсчет q0, кодируют в режиме прогнозирования с копированием IBC, и абсолютная разница между горизонтальными или вертикальными компонентами векторов движения, используемых при прогнозировании этих двух субблоков кодирования, не меньше 4 в четвертях единицы измерения отсчетов яркостной составляющей.Both subblocks – encoding subblock containing sample p0, and subblock encoding containing sample q0, are encoded in the IBC copy prediction mode, and the absolute difference between the horizontal or vertical components of the motion vectors used in the prediction of the two encoding subblocks is not less than 4 in a quarter unit of luminance component samples.

Для прогнозирования субблока кодирования, содержащего отсчет p0, используют другие опорные изображения или другое число векторов движения по сравнению с тем, что используется для прогнозирования субблока кодирования, содержащего отсчет q0.To predict the encoding subblock containing sample p 0 , different reference images or a different number of motion vectors are used compared to that used to predict the encoding subblock containing sample q 0 .

Примечание 1 – Определение, являются ли опорные изображения, используемые для двух субблоков кодирования, одинаковыми или разными, основано только на том, на какие изображения даны ссылки, независимо от того, формируется ли прогнозирование с использованием индекса в список 0 опорных изображений или индекса в список 1 опорных изображений, и также независимо от того, являются индексированные позиции в списке опорных изображений различными.Note 1 – The determination of whether the reference pictures used for two encoding subblocks are the same or different is based only on which pictures are referenced, regardless of whether the prediction is generated using index to reference picture list 0 or index to list 1 reference pictures, and also regardless of whether the indexed positions in the reference picture list are different.

Примечание 2 – Число векторов движения, используемых для прогнозирования субблока кодированимя с верхним-левым отсчетом, покрывающим точку ( xSb, ySb ), равно PredFlagL0[ xSb ][ ySb ] + PredFlagL1[ xSb ][ ySb ].Note 2 – The number of motion vectors used to predict a name encoding subblock with a top-left sample covering the point ( xSb, ySb ) is equal to PredFlagL0[ xSb ][ ySb ] + PredFlagL1[ xSb ][ ySb ].

Один вектор движения, используется для прогнозирования субблока кодирования. содержащего отсчет p0, и один вектор движения используется для прогнозирования субблока кодирования, содержащего отсчет q0, и абсолютная разность между горизонтальными или вертикальными компонентами используемых векторов движения не меньше 4 в единицах отсчетов яркостной составляющей.One motion vector is used to predict the encoding subblock. containing sample p 0 , and one motion vector is used to predict a coding subblock containing sample q 0 , and the absolute difference between the horizontal or vertical components of the motion vectors used is not less than 4 in units of luminance component samples.

Два вектора движения и два разных опорных изображения используются для прогнозирования субблока кодирования, содержащего отсчет p0, два вектора движения для тех же самых двух опорных изображений используются для прогнозирования субблока кодирования, содержащего отсчет q0, и абсолютная разность между горизонтальными или вертикальными составляющими двух векторов движения, используемых для прогнозирования указанных двух субблоков кодирования для одного и того же опорного изображения не меньше 4 в единицах четвертей отсчетов яркостной составляющей.Two motion vectors and two different reference pictures are used to predict a coding subblock containing sample p 0 , two motion vectors for the same two reference pictures are used to predict a coding subblock containing sample q 0 , and the absolute difference between the horizontal or vertical components of the two vectors motion used to predict said two encoding subblocks for the same reference image of at least 4 in units of quarter luminance samples.

Два вектора движения для одного и того же опорного изображения используются для прогнозирования субблока кодирования, содержащего отсчет p0, два вектора движения для одного и того же опорного изображения используются для прогнозирования субблока кодирования, содержащего отсчет q0, и оба следующих условия являются истинными:Two motion vectors for the same reference picture are used to predict a coding subblock containing sample p 0 , two motion vectors for the same reference picture are used to predict a coding subblock containing sample q 0 , and both of the following conditions are true:

Абсолютная разность между горизонтальными или вертикальными компонентами векторов движения из списка 0, используемых для прогнозирования указанных двух субблоков кодирования, не меньше 4 в единицах четвертей отсчетов яркостной составляющей, или абсолютная разность между горизонтальными или вертикальными компонентами векторов движения из списка 1, используемых для прогнозирования указанных двух субблоков кодирования, не меньше 4 в четвертях единицы измерения отсчетов яркостной составляющей.The absolute difference between the horizontal or vertical components of the motion vectors from list 0 used to predict the specified two coding subblocks is not less than 4 in units of quarter luminance samples, or the absolute difference between the horizontal or vertical components of the motion vectors from list 1 used to predict the specified two coding subblocks, not less than 4 in quarters of the unit of measurement of the brightness component samples.

Абсолютная разность между горизонтальными или вертикальными составляющими вектора движения из списка 0, используемого для прогнозирования субблока кодирования, содержащего отсчет p0, и вектора движения из списка 1, используемого для прогнозирования субблока кодирования, содержащего отсчет q0, не меньше 4 в четвертях единицы измерения отсчетов яркостной составляющей, или абсолютная разность между горизонтальными или вертикальными компонентами вектора движения из списка 1, используемого для прогнозирования субблока кодирования, содержащего отсчет p0, и вектора движения из списка 0, используемого для прогнозирования субблока кодирования, содержащего отсчет q0, не меньше 4 в четвертях единицы измерения отсчетов яркостной составляющей.The absolute difference between the horizontal or vertical components of the motion vector from list 0 used to predict the encoding subblock containing sample p 0 and the motion vector from list 1 used to predict the encoding subblock containing sample q 0 is not less than 4 in quarters of the sample unit brightness component, or the absolute difference between the horizontal or vertical components of the motion vector from list 1 used to predict the encoding subblock containing sample p 0 and the motion vector from list 0 used to predict the encoding subblock containing sample q 0 not less than 4 in quarters of the unit of measurement of the brightness component samples.

В противном случае, переменную bS[ xDi ][ yDj ] устанавливают равной 0.Otherwise, the variable bS[ xD i ][ yD j ] is set to 0.

5.13b Вариант #13b5.13b Option #13b

Этот вариант описывает кодирование и реконструкцию выпадающих отсчетов. Вновь добавленный текст выделен жирным курсивом, а удаленный текст маркируют “[[ ]]”.This option describes the encoding and reconstruction of outlier samples. Newly added text is in bold italic, and deleted text is marked “[[ ]]”.

[[Список levelScale[ ] специфицирован как levelScale[ k ] = { 40, 45, 51, 57, 64, 72 } при k = 0..5.]][[The list levelScale[ ] is specified as levelScale[ k ] = { 40, 45, 51, 57, 64, 72 } with k = 0..5.]]

Применяется следующее:The following applies:

[[tmpVal = ( PaletteEscapeVal[ cIdx ][ xCb + xL ][ yCb + yL ] *
levelScale[ qP%6 ] ) << ( qP / 6 ) + 32 ) >> 6 (8-77)
[[tmpVal = ( PaletteEscapeVal[ cIdx ][ xCb + xL ][ yCb + yL ] *
levelScale[ qP%6 ] ) << ( qP / 6 ) + 32 ) >> 6 (8-77)

recSamples[ x ][ y ] = Clip3( 0, ( 1 << bitDepth ) − 1, tmpVal ) (8-78)]]recSamples[ x ][ y ] = Clip3( 0, ( 1 << bitDepth ) − 1, tmpVal ) (8-78)]]

5.14 Вариант #145.14 Option #14

Вновь добавленный текст выделен жирным курсивом, а удаленный текст маркируют “[[ ]]”.Newly added text is in bold italic, and deleted text is marked “[[ ]]”.

8.4.5.3 Процедура декодирования для режима палитры8.4.5.3 Decoding procedure for palette mode

Входными данными для этой процедуры являются:The inputs to this procedure are:

- позиция ( xCb, yCb ), специфицирующая верхний-левый отсчет яркостной составляющей текущего блока относительно верхнего-левого отсчета текущего изображения,- position ( xCb, yCb ), specifying the top-left sample of the brightness component of the current block relative to the top-left sample of the current image,

- переменная startComp специфицирующая первую цветовую составляющую в таблице палитры,- the startComp variable specifying the first color component in the palette table,

- переменная cIdx, специфицирующая цветовую составляющую текущего блока,- variable cIdx, which specifies the color component of the current block,

- две переменные nCbW и nCbH, специфицирующие ширину и высоту текущего блока, соответственно.- two variables nCbW and nCbH, specifying the width and height of the current block, respectively.

Выходными данными процедуры является матрица recSamples[ x ][ y ], при x = 0.. nCbW − 1, y = 0.. nCbH – 1, специфицирующая реконструированные значения отсчетов блока.The output of the procedure is the matrix recSamples[ x ][ y ], for x = 0.. nCbW − 1, y = 0.. nCbH – 1, specifying the reconstructed values of the block samples.

В зависимости от значения переменной cIdx, переменные nSubWidth и nSubHeight определяют следующим образом:Depending on the value of the cIdx variable, the nSubWidth and nSubHeight variables are defined as follows:

- Если переменная cIdx равна 0, переменную nSubWidth устанавливают равной 1, и переменную nSubHeight устанавливают равной 1.- If the cIdx variable is 0, the nSubWidth variable is set to 1, and the nSubHeight variable is set to 1.

- В противном случае, переменную nSubWidth устанавливают равной SubWidthC и переменную nSubHeight устанавливают равной SubHeightC.- Otherwise, the nSubWidth variable is set to SubWidthC and the nSubHeight variable is set to SubHeightC.

Блок ( nCbW x nCbH ) матрицы recSamples реконструированных отсчетов в позиции ( xCb, yCb ) представлен recSamples[ x ][ y ] при x = 0..nCTbW − 1 и y = 0..nCbH − 1, и значение recSamples[ x ][ y ] для каждого x в диапазоне от 0 до nCbW − 1, включительно, и каждого y в диапазоне от 0 до nCbH − 1, включительно, определяют следующим образом:A block ( nCbW x nCbH ) of the recSamples matrix of reconstructed samples at position ( xCb, yCb ) is represented by recSamples[ x ][ y ] with x = 0..nCTbW − 1 and y = 0..nCbH − 1, and the value of recSamples[ x ] [ y ] for each x in the range 0 to nCbW − 1, inclusive, and each y in the range 0 to nCbH − 1, inclusive, is defined as follows:

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

xL = palette_transpose_flag ? x * nSubHeight : x * nSubWidth (8-234)xL = palette_transpose_flag ? x * nSubHeight : x * nSubWidth (8-234)

yL = palette_transpose_flag ? y * nSubWidth : y * nSubHeight (8-235)yL = palette_transpose_flag ? y * nSubWidth : y * nSubHeight (8-235)

- Переменную bIsEscapeSample определяют следующим образом:- The bIsEscapeSample variable is defined as follows:

- Если PaletteIndexMap[ xCb + xL ][ yCb + yL ] равно MaxPaletteIndex и флаг palette_escape_val_present_flag равен 1, параметр bIsEscapeSample устанавливают равным 1.- If PaletteIndexMap[ xCb + xL ][ yCb + yL ] is equal to MaxPaletteIndex and palette_escape_val_present_flag is 1, bIsEscapeSample is set to 1.

- В противном случае, параметр bIsEscapeSample устанавливают равным 0.- Otherwise, bIsEscapeSample is set to 0.

- Если параметр bIsEscapeSample равен 0, применяется следующее:- If bIsEscapeSample is 0, the following applies:

recSamples[ x ][ y ] = CurrentPaletteEntries[ cIdx ][ PaletteIndexMap[ xCb + xL ][ yCb + yL ] ] (8-236)recSamples[ x ][ y ] = CurrentPaletteEntries[ cIdx ][ PaletteIndexMap[ xCb + xL ][ yCb + yL ] ] (8-236)

- В противном случае, если флаг cu_transquant_bypass_flag равен 1, применяется следующее:- Otherwise, if the cu_transquant_bypass_flag is 1, the following applies:

recSamples[ x ][ y ] = PaletteEscapeVal[ cIdx ][ xCb + xL ][ yCb + yL ] (8-237)recSamples[ x ][ y ] = PaletteEscapeVal[ cIdx ][ xCb + xL ][ yCb + yL ] (8-237)

- В противном случае (параметр bIsEscapeSample равен 1 и флаг cu_transquant_bypass_flag равен 0), применяются следующие упорядоченные этапы:- Otherwise (bIsEscapeSample is 1 and cu_transquant_bypass_flag is 0), the following ordered steps apply:

1. Процедуру определения параметров квантования, как это специфицировано в статье 8.7.1, привлекают с позиции ( xCb, yCb ), специфицирующей верхний-левый отсчет текущего блока относительно верхнего-левого отсчета текущего изображения.1. The procedure for determining the quantization parameters, as specified in clause 8.7.1, is invoked from the position (xCb, yCb) specifying the top-left sample of the current block relative to the top-left sample of the current image.

[Ed. (BB): параметры QP уже определены в начале процедуры декодирования единицы CU, кодированной с применением внутрикадрового прогнозирования, так что нет необходимости определять их снова в этой подстатье. Хотя это похоже на стандарт кодирования HEVC v4 SCC, я думаю, что эту избыточность можно устранить. Пожалуйста подтвердите. ][Ed. (BB): The QP parameters are already defined at the beginning of the decoding procedure of an intra-prediction encoded CU, so there is no need to define them again in this subclause. While this is similar to the HEVC v4 SCC encoding standard, I think this redundancy can be eliminated. Please confirm. ]

QpPrimeTsMin = 4 + min_qp_prime_ts_ minus4 QpPrimeTsMin = 4 + min_qp_prime_ts_ minus4

3. Переменную bitDepth определяют следующим образом:3. The bitDepth variable is defined as follows:

bitDepth = ( cIdx = = 0 ) ? BitDepthY : BitDepthC (8-241)bitDepth = ( cIdx = = 0 ) ? BitDepth Y : BitDepth C (8-241)

4. Список levelScale[ ] специфицирован как levelScale[ k ] = { 40, 45, 51, 57, 64, 72 } при k = 0..5.4. The list levelScale[ ] is specified as levelScale[ k ] = { 40, 45, 51, 57, 64, 72 } with k = 0..5.

[Ed. (BB): Для единиц CU, кодируемых не в режиме палитры, параметр levelScale зависит от rectNonTsFlag, это должно быть применено здесь тоже?][Ed. (BB): For CU units encoded not in palette mode, the levelScale parameter depends on rectNonTsFlag, should this be applied here too?]

5. Применяется следующее:5. The following applies:

tmpVal = ( PaletteEscapeVal[ cIdx ][ xCb + xL ][ yCb + yL ] *
levelScale[ qP%6 ] ) << ( qP / 6 ) + 32 ) >> 6 (8-242)
tmpVal = ( PaletteEscapeVal[ cIdx ][ xCb + xL ][ yCb + yL ] *
levelScale[ qP%6 ] ) << ( qP / 6 ) + 32 ) >> 6 (8-242)

recSamples[ x ][ y ] = Clip3( 0, ( 1 << bitDepth ) − 1, tmpVal ) (8-243)recSamples[ x ][ y ] = Clip3( 0, ( 1 << bitDepth ) − 1, tmpVal ) (8-243)

Когда одно из следующих условий является истинным:When one of the following conditions is true:

- переменная cIdx равна 0 и параметр numComps равен 1;- the variable cIdx is equal to 0 and the parameter numComps is equal to 1;

- переменная cIdx равна 3;- variable cIdx is equal to 3;

переменную PredictorPaletteSize[startComp] и матрицу PredictorPaletteEntries определяют или модифицируют следующим образом:the PredictorPaletteSize[startComp] variable and the PredictorPaletteEntries matrix are defined or modified as follows:

for( i = 0; i < CurrentPaletteSize[ startComp ]; i++ )
for( cIdx = startComp; cIdx < (startComp + numComps); cIdx++ )
newPredictorPaletteEntries[ cIdx ][ i ] = CurrentPaletteEntries[ cIdx ][ i ]
newPredictorPaletteSize = CurrentPaletteSize[ startComp ]
for( i = 0; i < PredictorPaletteSize && newPredictorPaletteSize < PaletteMaxPredictorSize; i++ )
if( !PalettePredictorEntryReuseFlags[ i ] ) {
for( cIdx = startComp; cIdx < (startComp + numComps); cIdx++ ) (8-244)
newPredictorPaletteEntries[ cIdx ][ newPredictorPaletteSize ] =
PredictorPaletteEntries[ cIdx ][ i ]
newPredictorPaletteSize++
}
for( cIdx = startComp; cIdx < ( startComp + numComps ); cIdx++ )
for( i = 0; i < newPredictorPaletteSize; i++ )
PredictorPaletteEntries[ cIdx ][ i ] = newPredictorPaletteEntries[ cIdx ][ i ]
PredictorPaletteSize[ startComp ] = newPredictorPaletteSize
for( i = 0; i < CurrentPaletteSize[ startComp ]; i++ )
for( cIdx = startComp; cIdx < (startComp + numComps); cIdx++ )
newPredictorPaletteEntries[ cIdx ][ i ] = CurrentPaletteEntries[ cIdx ][ i ]
newPredictorPaletteSize = CurrentPaletteSize[ startComp ]
for( i = 0; i < PredictorPaletteSize && newPredictorPaletteSize <PaletteMaxPredictorSize; i++ )
if( !PalettePredictorEntryReuseFlags[ i ] ) {
for( cIdx = startComp; cIdx < (startComp + numComps); cIdx++ ) (8-244)
newPredictorPaletteEntries[ cIdx ][ newPredictorPaletteSize ] =
PredictorPaletteEntries[ cIdx ][ i ]
newPredictorPaletteSize++
}
for( cIdx = startComp; cIdx < ( startComp + numComps ); cIdx++ )
for( i = 0; i <newPredictorPaletteSize; i++ )
PredictorPaletteEntries[ cIdx ][ i ] = newPredictorPaletteEntries[ cIdx ][ i ]
PredictorPaletteSize[ startComp ] = newPredictorPaletteSize

Требование соответствия потоков битов данных состоит в том, что значение PredictorPaletteSize[ startComp ] должно быть в диапазоне от 0 до PaletteMaxPredictorSize, включительно.The data bitstream matching requirement is that the value of PredictorPaletteSize[ startComp ] must be in the range 0 to PaletteMaxPredictorSize, inclusive.

5.15 Вариант # 155.15 Option #15

Вновь добавленный текст выделен жирным курсивом, а удаленный текст маркируют “[[ ]]”.Newly added text is in bold italic, and deleted text is marked “[[ ]]”.

8.4.2 Процедура определения режима внутрикадрового прогнозирования для яркостной составляющей8.4.2 Procedure for determining the intra-frame prediction mode for the luminance component

...

- В противном случае (и skip_intra_flag[ xPb ][ yPb ], и DimFlag[ xPb ][ yPb ] равны 0), параметр IntraPredModeY[ xPb ][ yPb ] определяют посредством следующих упорядоченных этапов: - Otherwise (both skip_intra_flag[ xPb ][ yPb ] and DimFlag[ xPb ][ yPb ] are 0), the IntraPredModeY[ xPb ][ yPb ] parameter is determined through the following ordered steps:

1. Соседние позиции ( xNbA, yNbA ) и ( xNbB, yNbB ) устанавливают равными ( xPb − 1, yPb ) и ( xPb, yPb − 1 ), соответственно. 1. Adjacent positions ( xNbA, yNbA ) and ( xNbB, yNbB ) are set equal to ( xPb − 1, yPb ) and ( xPb, yPb − 1 ), respectively.

2. Для X заменяемого на A или B, переменные candIntraPredModeX определяют следующим образом: 2. For X to be replaced by A or B, the candIntraPredModeX variables are defined as follows:

▪ Процедуру определения доступности для блока в порядке z-сканирования, как это специфицировано в статье 6.4.1, привлекают, при позиции ( xCurr, yCurr ), установленной равной ( xPb, yPb ), и соседней позиции ( xNbY, yNbY ), установленной равной ( xNbX, yNbX ), в качестве входных данных, и выходные данные назначают переменной availableX. ▪ The procedure for determining the availability for a block in z-scan order, as specified in clause 6.4.1, is invoked with position ( xCurr, yCurr ) set to ( xPb, yPb ) and adjacent position ( xNbY, yNbY ) set to ( xNbX, yNbX ) as input, and the output is assigned to the variable availableX.

▪ Режим-кандидат внутрикадрового прогнозирования candIntraPredModeX определяют следующим образом: ▪ The candidate intra-prediction mode candIntraPredModeX is defined as follows:

▪ Если переменная availableX равна FALSE, candIntraPredModeX устанавливают равным INTRA_DC. ▪ If availableX is FALSE, candIntraPredModeX is set to INTRA_DC.

▪ [[– В противном случае, если CuPredMode[ xNbX ][ yNbX ] не равно MODE_INTRA или pcm_flag[ xNbX ][ yNbX ] равно 1 или , candIntraPredModeX устанавливают равным INTRA_DC, ]]▪ [[– Otherwise, if CuPredMode[ xNbX ][ yNbX ] is not equal to MODE_INTRA or pcm_flag[ xNbX ][ yNbX ] is equal to 1 or , candIntraPredModeX is set to INTRA_DC, ]]

▪ В противном случае, если X равно B и yPb − 1 меньше чем ( ( yPb >> CtbLog2SizeY ) << CtbLog2SizeY ), candIntraPredModeB устанавливают равным INTRA_DC. ▪ Otherwise, if X is equal to B and yPb − 1 is less than ( ( yPb >> CtbLog2SizeY ) << CtbLog2SizeY ), candIntraPredModeB is set equal to INTRA_DC.

▪ В противном случае, если IntraPredModeY[ xNbX ][ yNbX ] больше чем 34, candIntraPredModeX устанавливают равным INTRA_DC. ▪ Otherwise, if IntraPredModeY[ xNbX ][ yNbX ] is greater than 34, candIntraPredModeX is set equal to INTRA_DC.

...

5.16 Вариант #165.16 Option #16

Вновь добавленный текст выделен жирным курсивом, а удаленный текст маркируют “[[ ]]”.Newly added text is in bold italic, and deleted text is marked “[[ ]]”.

8.4.2 Процедура определения режима внутрикадрового прогнозирования для яркостной составляющей8.4.2 Procedure for determining the intra-frame prediction mode for the luminance component

Входными данными для этой процедуры являются:The inputs to this procedure are:

- позиция ( xCb , yCb ) яркостной составляющей, специфицирующая верхний-левый отсчет текущего блока кодирования яркостной составляющей относительно верхнего-левого отсчета яркостной составляющей текущего изображения,- position ( xCb , yCb ) of the luminance component, specifying the top-left sample of the current luminance coding block relative to the top-left sample of the luminance component of the current image,

- переменная cbWidth, специфицирующая ширину текущего блока кодирования в яркостных отсчетах,- variable cbWidth, specifying the width of the current coding block in brightness samples,

- переменная cbHeight, специфицирующая высоту текущего блока кодирования в яркостных отсчетах.- variable cbHeight, specifying the height of the current coding block in brightness samples.

В этой процедуре определяют режим IntraPredModeY[ xCb ][ yCb ] внутрикадрового прогнозирования для яркостных отсчетов.This procedure defines the IntraPredModeY[ xCb ][ yCb ] intra-prediction mode for luminance samples.

1. Для X заменяемого на A или B, переменные candIntraPredModeX определяют следующим образом:1. For X to be replaced by A or B, the candIntraPredModeX variables are defined as follows:

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

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

- Переменная availableX равна FALSE.- The availableX variable is FALSE.

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

- intra_mip_flag[ xNbX ][ yNbX ] равно 1.- intra_mip_flag[ xNbX ][ yNbX ] is equal to 1.

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

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

...

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

5.17 Вариант #175.17 Option #17

Вновь добавленный текст выделен жирным курсивом, а удаленный текст маркируют “[[ ]]”.Newly added text is in bold italic, and deleted text is marked “[[ ]]”.

8.4.3 Процедура определения режима внутрикадрового прогнозирования для яркостной составляющей8.4.3 Procedure for determining the intra-frame prediction mode for the luminance component

Входными данными для этой процедуры являются:The inputs to this procedure are:

- позиция ( xCb , yCb ) яркостной составляющей, специфицирующая верхний-левый отсчет текущего блока кодирования яркостной составляющей относительно верхнего-левого отсчета яркостной составляющей в текущем изображении,- position (xCb, yCb) of the luminance component, specifying the top-left sample of the current luminance coding block relative to the top-left sample of the luminance component in the current image,

- переменная cbWidth, специфицирующая ширину текущего блока кодирования в отсчетах яркостной составляющей,- variable cbWidth, which specifies the width of the current coding block in luminance component samples,

- переменная cbHeight, специфицирующая высоту текущего блока кодирования в отсчетах яркостной составляющей.- variable cbHeight, which specifies the height of the current coding block in luminance component samples.

В этой процедуре определяют режим IntraPredModeY[ xCb ][ yCb ] внутрикадрового прогнозирования яркостной составляющей.In this procedure, the IntraPredModeY[ xCb ][ yCb ] mode of intra-frame luminance component prediction is determined.

1. Для X заменяемого на A или B, переменные candIntraPredModeX определяют следующим образом:1. For X to be replaced by A or B, the candIntraPredModeX variables are defined as follows:

- Процедуру определения доступности для блока, как это специфицировано в статье 6.4.X, [Ed. (BB): Процедура проверки доступности соседних блоков еще должна быть разработана] привлекают при позиции ( xCurr, yCurr ), установленной равной ( xCb, yCb ), и соседней позиции ( xNbY, yNbY ), установленной равной ( xNbX, yNbX ) в качестве входных данных, и выходные данные назначают переменной availableX.- The procedure for determining availability for a block, as specified in Article 6.4.X, [Ed. (BB): A procedure for checking the availability of neighboring blocks has yet to be developed] is invoked with position ( xCurr, yCurr ) set to ( xCb, yCb ) and neighboring position ( xNbY, yNbY ) set to ( xNbX, yNbX ) as input data, and the output is assigned to the variable availableX.

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

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

- Переменная availableX равна FALSE.- The availableX variable is FALSE.

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

- Флаг intra_mip_flag[ xNbX ][ yNbX ] равен 1.- The flag intra_mip_flag[ xNbX ][ yNbX ] is equal to 1.

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

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

...

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

5.18 Вариант #185.18 Option #18

Вновь добавленный текст выделен жирным курсивом, а удаленный текст маркируют “[[ ]]”.Newly added text is in bold italic, and deleted text is marked “[[ ]]”.

8.4.3 Процедура определения режима внутрикадрового прогнозирования для яркостной составляющей8.4.3 Procedure for determining the intra-frame prediction mode for the luminance component

Входными данными для этой процедуры являются:The inputs to this procedure are:

- позиция ( xCb , yCb ) яркостной составляющей, специфицирующая верхний-левый отсчет текущего блока кодирования яркостной составляющей относительно верхнего-левого отсчета яркостной составляющей в текущем изображении,- position (xCb, yCb) of the luminance component, specifying the top-left sample of the current luminance coding block relative to the top-left sample of the luminance component in the current image,

- переменная cbWidth, специфицирующая ширину текущего блока кодирования в отсчетах яркостной составляющей,- variable cbWidth, which specifies the width of the current coding block in luminance component samples,

- переменная cbHeight, специфицирующая высоту текущего блока кодирования в отсчетах яркостной составляющей.- variable cbHeight, which specifies the height of the current coding block in luminance component samples.

В этой процедуре определяют режим IntraPredModeY[ xCb ][ yCb ] внутрикадрового прогнозирования яркостной составляющей.In this procedure, the IntraPredModeY[ xCb ][ yCb ] mode of intra-frame luminance component prediction is determined.

1. Для X заменяемого на A или B, переменные candIntraPredModeX определяют следующим образом:1. For X to be replaced by A or B, the candIntraPredModeX variables are defined as follows:

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

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

- Переменная availableX равна FALSE.- The availableX variable is FALSE.

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

- Флаг intra_mip_flag[ xNbX ][ yNbX ] равен 1.- The flag intra_mip_flag[ xNbX ][ yNbX ] is equal to 1.

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

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

...

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

5.19 Вариант #195.19 Option #19

Вновь добавленный текст выделен жирным курсивом, а удаленный текст маркируют “[[ ]]”.Newly added text is in bold italic, and deleted text is marked “[[ ]]”.

5.20 Вариант #205.20 Option #20

Вновь добавленный текст выделен жирным курсивом, а удаленный текст маркируют “[[ ]]”.Newly added text is in bold italic, and deleted text is marked “[[ ]]”.

5.21 Вариант #215.21 Option #21

Вновь добавленный текст выделен жирным курсивом, а удаленный текст маркируют “[[ ]]”.Newly added text is in bold italic, and deleted text is marked “[[ ]]”.

5.22 Вариант #225.22 Option #22

Этот вариант описывает синтаксис единицы кодирования. В этом вариантие флаг pred_mode_plt_flag передают в виде сигнализации после флага pred_mode_ibc_flag. Вновь добавленный текст выделен жирным курсивом, а удаленный текст маркируют “[[ ]]”.This option describes the syntax of the encoding unit. In this embodiment, the pred_mode_plt_flag flag is signaled after the pred_mode_ibc_flag flag. Newly added text is in bold italic, and deleted text is marked “[[ ]]”.

7.3.7.5 Синтаксис единицы кодирования7.3.7.5 Coding unit syntax

5.23 Вариант #235.23 Option #23

Вновь добавленный текст выделен жирным курсивом, а удаленный текст маркируют “[[ ]]”.Newly added text is in bold italic, and deleted text is marked “[[ ]]”.

5.24 Вариант #245.24 Option #24

Этот вариант описывает синтаксис единицы кодирования. В этом варианте, флаг pred_mode_plt_flag передают в виде сигнализации после флага pred_mode_ibc_flag. Вновь добавленный текст выделен жирным курсивом, а удаленный текст маркируют “[[ ]]”.This option describes the syntax of the encoding unit. In this embodiment, the pred_mode_plt_flag is signaled after the pred_mode_ibc_flag. Newly added text is in bold italic, and deleted text is marked “[[ ]]”.

7.3.7.5 Синтаксис единицы кодирования7.3.7.5 Coding unit syntax

5.25 Вариант #255.25 Option #25

Этот вариант описывает синтаксис единицы кодирования. В этом варианте, синтаксис палитры передают в виде сигнализации, если текущий режим прогнозирования прендставляет собой режим MODE_PLT. Вновь добавленный текст выделен жирным курсивом, а удаленный текст маркируют “[[ ]]”.This option describes the syntax of the encoding unit. In this embodiment, the palette syntax is signaled if the current prediction mode is MODE_PLT mode. Newly added text is in bold italic, and deleted text is marked “[[ ]]”.

7.3.7.5 Синтаксис единицы кодирования7.3.7.5 Coding unit syntax

coding_unit( x0, y0, cbWidth, cbHeight, cqtDepth, treeType, modeType ) {coding_unit( x0, y0, cbWidth, cbHeight, cqtDepth, treeType, modeType ) { DescriptorDescriptor chType = treeType = = DUAL_TREE_CHROMA? 1 : 0 chType = treeType = = DUAL_TREE_CHROMA? 10 if( slice_type != I | | sps_ibc_enabled_flag | | sps_palette_enabled_flag) { if( slice_type != I | | sps_ibc_enabled_flag | | sps_palette_enabled_flag) { if( treeType != DUAL_TREE_CHROMA &&
!( ( ( cbWidth = = 4 && cbHeight = = 4 ) | | modeType = = MODE_TYPE_INTRA )
&& !sps_ibc_enabled_flag ) )
if( treeType != DUAL_TREE_CHROMA &&
!( ( ( cbWidth = = 4 && cbHeight = = 4 ) | | modeType = = MODE_TYPE_INTRA )
&& !sps_ibc_enabled_flag ) )
cu_skip_flag[ x0 ][ y0 ] cu_skip_flag[ x0 ][ y0 ] ae(v)ae(v) if( cu_skip_flag[ x0 ][ y0 ] = = 0 && slice_type != I
&& !( cbWidth = = 4 && cbHeight = = 4 ) && modeType = = MODE_TYPE_ALL )
if( cu_skip_flag[ x0 ][ y0 ] = = 0 && slice_type != I
&& !( cbWidth = = 4 && cbHeight = = 4 ) && modeType = = MODE_TYPE_ALL )
pred_mode_flag pred_mode_flag ae(v)ae(v) if( ( ( slice_type = = I && cu_skip_flag[ x0 ][ y0 ] = =0 ) | |
( slice_type != I && ( CuPredMode[ chType ][ x0 ][ y0 ] != MODE_INTRA | |
( cbWidth = = 4 && cbHeight = = 4 && cu_skip_flag[ x0 ][ y0 ] = = 0 ) ) ) ) &&
cbWidth <= 64 && cbHeight <= 64 && modeType != MODE_TYPE_INTER &&
sps_ibc_enabled_flag && treeType != DUAL_TREE_CHROMA )
if( ( ( slice_type = = I && cu_skip_flag[ x0 ][ y0 ] = =0 ) | |
( slice_type != I && ( CuPredMode[ chType ][ x0 ][ y0 ] != MODE_INTRA | |
( cbWidth = = 4 && cbHeight = = 4 && cu_skip_flag[ x0 ][ y0 ] = = 0 ) ) ) &&
cbWidth <= 64 && cbHeight <= 64 && modeType != MODE_TYPE_INTER &&
sps_ibc_enabled_flag && treeType != DUAL_TREE_CHROMA )
pred_mode_ibc_flag pred_mode_ibc_flag ae(v)ae(v) if( ( ( ( slice_type = = I | | ( cbWidth = = 4 && cbHeight = = 4 ) | | sps_ibc_enabled_flag ) &&
CuPredMode[ x0 ][ y0 ] = = MODE_INTRA ) | |
( slice_type != I && !( cbWidth = = 4 && cbHeight = = 4 ) && !sps_ibc_enabled_flag
&& CuPredMode[ x0 ][ y0 ] != MODE_INTRA ) ) && sps_palette_enabled_flag &&
cbWidth <= 64 && cbHeight <= 64 && && cu_skip_flag[ x0 ][ y0 ] = = 0 &&
modeType != MODE_INTER )
if( ( ( ( slice_type = = I | | ( cbWidth = = 4 && cbHeight = = 4 ) | | sps_ibc_enabled_flag ) &&
CuPredMode[ x0 ][ y0 ] = = MODE_INTRA ) | |
( slice_type != I && !( cbWidth = = 4 && cbHeight = = 4 ) && !sps_ibc_enabled_flag
&& CuPredMode[ x0 ][ y0 ] != MODE_INTRA ) ) && sps_palette_enabled_flag &&
cbWidth <= 64 && cbHeight <= 64 &&&& cu_skip_flag[ x0 ][ y0 ] == 0 &&
modeType != MODE_INTER )
pred_mode_plt_flag pred_mode_plt_flag ae(v)ae(v) } } } } if([[CuPredMode[ chType ][ x0 ][ y0 ] = = MODE_INTRA | |]]
CuPredMode[ chType ][ x0 ][ y0 ] = = MODE_PLT ) {
if([[CuPredMode[ chType ][ x0 ][ y0 ] = = MODE_INTRA | |]]
CuPredMode[ chType ][ x0 ][ y0 ] = = MODE_PLT ) {
if( treeType = = SINGLE_TREE | | treeType = = DUAL_TREE_LUMA ) { if( treeType = = SINGLE_TREE | | treeType = = DUAL_TREE_LUMA ) { if( pred_mode_plt_flag ) { if( pred_mode_plt_flag ) { if( treeType = = DUAL_TREE_LUMA ) if( treeType = = DUAL_TREE_LUMA ) palette_coding( x0, y0, cbWidth, cbHeight, 0, 1 ) palette_coding( x0, y0, cbWidth, cbHeight, 0, 1 ) else /* SINGLE_TREE */ else /* SINGLE_TREE */ palette_coding( x0, y0, cbWidth, cbHeight, 0, 3 ) palette_coding( x0, y0, cbWidth, cbHeight, 0, 3 ) } else { } else { ... } } ... } }

5.26 Вариант #265.26 Option #26

Этот вариант описывает процедуру определения режима внутрикадрового прогнозирования для цветностной составляющей. Вновь добавленный текст выделен жирным курсивом.This option describes the procedure for determining the intra-prediction mode for the chrominance component. The newly added text is in bold italic.

Процедура определения режима внутрикадрового прогнозирования для цветностной составляющей Procedure for determining the intra-frame prediction mode for the color component

Входными данными для этой процедуры являются:The inputs to this procedure are:

- позиция ( xCb, yCb ) яркостной составляющей, специфицирующая верхний-левый отсчет текущего блока кодирования цветностной составляющей относительно верхнего-левого отсчета яркостной составляющей в текущем изображении,- position ( xCb, yCb ) of the luminance component, specifying the top-left sample of the current chrominance coding block relative to the top-left sample of the luminance component in the current image,

- переменная cbWidth, специфицирующая ширину текущего блока кодирования в отсчетах яркостной составляющей,- variable cbWidth, which specifies the width of the current coding block in luminance component samples,

- переменная cbHeight, специфицирующая высоту текущего блока кодирования в отсчетах яркостной составляющей.- variable cbHeight, which specifies the height of the current coding block in luminance component samples.

В этой процедуре определяют режим IntraPredModeC[ xCb ][ yCb ] внутрикадрового прогнозирования цветностной составляющей.In this procedure, the IntraPredModeC[ xCb ][ yCb ] mode of intra-frame chrominance prediction is determined.

Соответствующий режим lumaIntraPredMode внутрикадрового прогнозирования яркостной составляющей определяют следующим образом:The corresponding lumaIntraPredMode mode for intra-frame luminance prediction is determined as follows:

- Если флаг intra_mip_flag[ xCb ][ yCb ] равен 1, параметр lumaIntraPredMode устанавливают равным INTRA_PLANAR.- If the intra_mip_flag[ xCb ][ yCb ] is 1, the lumaIntraPredMode parameter is set to INTRA_PLANAR.

- В противном случае, если параметр CuPredMode[ 0 ][ xCb ][ yCb ] равен MODE_IBC , параметр lumaIntraPredMode устанавливают равным INTRA_DC.- Otherwise, if the parameter CuPredMode[ 0 ][ xCb ][ yCb ] is equal to MODE_IBC , the lumaIntraPredMode parameter is set to INTRA_DC.

- В противном случае, параметр lumaIntraPredMode устанавливают равным IntraPredModeY[ xCb + cbWidth / 2 ][ yCb + cbHeight / 2 ].- Otherwise, the lumaIntraPredMode parameter is set to IntraPredModeY[ xCb + cbWidth / 2 ][ yCb + cbHeight / 2 ].

...

5.27 Вариант #275.27 Option #27

Этот вариант описывает процедуру реконструкции изображения с процедурой отображения для отсчетов яркостной составляющей. Вновь добавленный текст выделен жирным курсивом.This option describes an image reconstruction procedure with a display procedure for luminance component samples. The newly added text is in bold italic.

Реконструкция изображения с процедурой отображения яркостной составляющей. Входными данными для этой процедуры являются:Image reconstruction with the procedure for displaying the brightness component. The inputs to this procedure are:

- позиция ( xCurr, yCurr ) верхнего левого отсчета текущего блока относительно верхнего левого отсчета текущего изобрпажения,- position ( xCurr, yCurr ) of the upper left sample of the current block relative to the upper left sample of the current image,

- переменная nCurrSw, специфицирующая ширину блока,- variable nCurrSw, specifying the width of the block,

- переменная nCurrSh, специфицирующая высоту блока,- variable nCurrSh, specifying the height of the block,

- матрица (nCurrSw)x(nCurrSh) отсчетов predSamples, специфицирующая прогнозируемые отсчеты яркостной составляющей для текущего блока,- matrix (nCurrSw)x(nCurrSh) of predSamples samples, specifying the predicted samples of the brightness component for the current block,

- матрица (nCurrSw)x(nCurrSh) отсчетов resSamples, специфицирующая отсчеты остатков яркостной составляющей для текущего блока.- matrix (nCurrSw)x(nCurrSh) of resSamples samples, specifying samples of the residual brightness component for the current block.

Выходные данные этой процедуры представляют собой матрицу реконструированных отсчетов recSamples яркостной составляющей изображения.The output of this procedure is a matrix of reconstructed recSamples samples of the brightness component of the image.

Матрицу (nCurrSw)x(nCurrSh) отображенных прогнозируемых отсчетов predMapSamples яркостной составляющей определяют следующим образом:The matrix (nCurrSw)x(nCurrSh) of the mapped predicted samples of the brightness component predMapSamples is defined as follows:

- Если одно из следующих условий является истинным, отсчеты predMapSamples[ i ][ j ] устанавливают равными predSamples[ i ][ j ] для i = 0..nCurrSw − 1, j = 0..nCurrSh − 1:- If one of the following conditions is true, the samples predMapSamples[ i ][ j ] are set equal to predSamples[ i ][ j ] for i = 0..nCurrSw − 1, j = 0..nCurrSh − 1:

- переменная CuPredMode[ 0 ][ xCurr ][ yCurr ] равна MODE_INTRA.- the variable CuPredMode[ 0 ][ xCurr ][ yCurr ] is equal to MODE_INTRA.

- переменная CuPredMode[ 0 ][ xCurr ][ yCurr ] равна MODE_IBC.- the variable CuPredMode[ 0 ][ xCurr ][ yCurr ] is equal to MODE_IBC.

- переменная CuPredMode[ 0 ][ xCurr ][ yCurr ] равна MODE_INTER и флаг ciip_flag[ xCurr ][ yCurr ] равна 1.- the variable CuPredMode[ 0 ][ xCurr ][ yCurr ] is equal to MODE_INTER and the flag ciip_flag[ xCurr ][ yCurr ] is equal to 1.

- В противном случае параметр (CuPredMode[ 0 ][ xCurr ][ yCurr ] равен MODE_INTER и флаг ciip_flag[ xCurr ][ yCurr ] равен 0), применяется следующим:- Otherwise, the parameter (CuPredMode[ 0 ][ xCurr ][ yCurr ] is equal to MODE_INTER and the ciip_flag[ xCurr ][ yCurr ] is equal to 0) is applied as follows:

...

5.28 Вариант #285.28 Option #28

Этот вариант описывает пример порядков сканирования, соответствующих Примеру 24 в Разделе 4.This option describes an example of scan orders corresponding to Example 24 in Section 4.

Входными данными для этой процедуры являются ширина blkWidth блока и высота blkHeight блока.The input to this procedure is the block width blkWidth and the block height blkHeight.

Выходными данными этой процедуры являются матрицы hReverScan[ sPos ][ sComp ] и vReverScan[ sPos ][ sComp ]. Матрица hReverScan представляет горизонтальный обратный порядок сканирования, и матрица vReverScan представляет вертикальный обратный порядок сканирования. Индекс sPos матрицы специфицирует позицию сканирования в пределах от 0 до ( blkWidth * blkHeight ) − 1, включительно. Индекс sComp матрицы, равный 0, специфицирует горизонтальную составляющую, и индекс sComp матрицы, равный 1, специфицирует вертикальную составляющую. В зависимости от значения blkWidth и blkHeight, матрицы hTravScan и vTravScan определяют следующим образом:The output of this procedure is the matrices hReverScan[ sPos ][ sComp ] and vReverScan[ sPos ][ sComp ]. The hReverScan matrix represents the horizontal reverse scan order, and the vReverScan matrix represents the vertical reverse scan order. The sPos matrix index specifies the scan position, ranging from 0 to ( blkWidth * blkHeight ) − 1, inclusive. A matrix index sComp of 0 specifies the horizontal component, and a matrix index sComp of 1 specifies the vertical component. Depending on the value of blkWidth and blkHeight, the hTravScan and vTravScan matrices are determined as follows:

i = 0
for(y = 0; y < blkHeight; y++ )
i = 0
for(y = 0; y <blkHeight; y++ )

{
if( y % 2 != 0 ) {
for( x = 0; x < blkWidth; x++ ) {
hReverScan[ i ][ 0 ] = x
hReverScan [ i ][ 1 ] = y
i++
}
{
if( y % 2 != 0 ) {
for( x = 0; x <blkWidth; x++ ) {
hReverScan[ i ][ 0 ] = x
hReverScan[i][1] = y
i++
}

}
else
}
else

{ {

for( x = blkWidth − 1; x >= 0; x− − ) {
hReverScan [ i ][ 0 ] = x
hReverScan [ i ][ 1 ] = y
i++
}
for( x = blkWidth − 1; x >= 0; x− − ) {
hReverScan[i][0] = x
hReverScan[i][1] = y
i++
}

}}

}}

i = 0
for( x = 0; x < blkWidth; x++ )
i = 0
for( x = 0; x <blkWidth; x++ )

{
if( x % 2 != 0 )
{
if( x % 2 != 0 )

{
for( y = 0; y < blkHeight; y++ ) {
vReverScan[ i ][ 0 ] = x
vReverScan [ i ][ 1 ] = y
i++
}
{
for( y = 0; y <blkHeight; y++ ) {
vReverScan[ i ][ 0 ] = x
vReverScan[i][1] = y
i++
}

}
else
}
else

{ {

for( y = blkHeight − 1; y >= 0; y− − ) {
vReverScan [ i ][ 0 ] = x
vReverScan [ i ][ 1 ] = y
i++
}
for( y = blkHeight − 1; y >= 0; y− − ) {
vReverScan[i][0] = x
vReverScan[i][1] = y
i++
}

}}

}}

На фиг. 6 представлена блок-схема устройства 600 для обработки видео. Устройство 600 может быть использовано для реализации одного или нескольких описываемых здесь способов. Устройство 600 может быть реализовано в виде смартфона, планшета, компьютера, приемник Интернета вещей (Internet of Things (IoT)) и т.д. Устройство 600 может содержать один или несколько процессоров 602, одно или несколько запоминающих устройств 604 и аппаратуру 606 обработки видео. Процессор (ы) 602 может быть конфигурирован для реализации одного или нескольких способов, описываемых в настоящем документе. Запоминающее устройство (устройства) 604 могут быть использованы для сохранения данных и кода, применяемых для реализации способов и технологий, описываемых здесь. Аппаратура 606 для обработки видео может быть использована для реализации, в аппаратной схеме, некоторых технологий, описываемых в настоящем документе. In fig. 6 is a block diagram of a video processing apparatus 600. Apparatus 600 may be used to implement one or more of the methods described herein. Device 600 may be implemented as a smartphone, tablet, computer, Internet of Things (IoT) receiver, etc. Device 600 may include one or more processors 602, one or more storage devices 604, and video processing hardware 606. Processor(s) 602 may be configured to implement one or more of the methods described herein. Storage device(s) 604 may be used to store data and code used to implement the methods and technologies described herein. Video processing hardware 606 may be used to implement, in hardware, some of the technologies described herein.

На фиг. 8 представлена логическая схема для способа 800 обработки видео. Этот способ 800 содержит определение (805), что следует использовать режим палитры для обработки единицы преобразования, блока кодирования или области, применение режима палитры кодируют отдельно от режима прогнозирования, и осуществление (810) дальнейшей обработки единицы преобразования, блока кодирования или области с использованием режима палитры.In fig. 8 illustrates a logic diagram for a video processing method 800. This method 800 comprises determining (805) that a palette mode should be used to process a transform unit, coding block, or region, applying the palette mode code separately from the prediction mode, and performing (810) further processing of the transform unit, coding block, or region using the mode palettes.

Что касается способа 800, некоторые примеры кодирования в режиме палитры и его использования описаны в Разделе 4 настоящего документа.With respect to method 800, some examples of palette mode encoding and its use are described in Section 4 of this document.

Что касается способа 800, блок видео может быть кодирован в потоке битов данных видео, в котором битовая эффективность может быть достигнута с использованием правила генерации потока битов данных, относящегося к кодированию в режиме палитры. With respect to method 800, a block of video may be encoded in a video data bitstream, in which bit efficiency can be achieved using a data bitstream generation rule related to palette mode encoding.

Предлагаемые способы могут содержать вариант, в котором указание режима прогнозирования кодируют прежде индикации использования режима палитры.The proposed methods may include an option in which the prediction mode indication is encoded before the palette mode use indication.

Предлагаемые способы могут содержать вариант, в котором об использовании режима палитры сообщают условно в виде сигнализации на основе режима прогнозирования.The proposed methods may include an option in which the use of the palette mode is signaled conditionally in the form of signaling based on the predictive mode.

Предлагаемые способы могут содержать вариант, в котором режим прогнозирования представляет собой режим внутрикадрового копирования блоков, и передачу сигнализации с индикацией использования режима палитры пропускают.The proposed methods may include an embodiment in which the prediction mode is an intra-frame block copy mode, and signaling indicating the use of the palette mode is omitted.

Предлагаемые способы могут содержать вариант, в котором определяют, что индикация использования режима палитры является ложной (false) на основе того, что текущий режим прогнозирования является режимом внутрикадрового копирования блоков.The proposed methods may include an embodiment that determines that the palette mode use indication is false based on the fact that the current prediction mode is an intra-frame block copy mode.

Предлагаемые способы могут содержать вариант, в котором режим прогнозирования является режимом межкадрового прогнозирования и передачу сигнализации с индикацией использования режима палитры пропускают.The proposed methods may include an embodiment in which the prediction mode is an inter-frame prediction mode and signaling indicating the use of the palette mode is omitted.

Предлагаемые способы могут содержать вариант, в котором определяют, что индикация использования режима палитры является ложной (false), на основе того, что текущий режим прогнозирования является режимом межкадрового прогнозирования.The proposed methods may include an embodiment that determines that the palette mode usage indication is false based on the fact that the current prediction mode is an inter-frame prediction mode.

Предлагаемые способы могут содержать вариант, в котором режим прогнозирования является режимом внутрикадрового прогнозирования, и передачу сигнализации с индикацией использования режима палитры пропускают.The proposed methods may include an embodiment in which the prediction mode is an intra-frame prediction mode, and signaling indicating the use of the palette mode is omitted.

Предлагаемые способы могут содержать вариант, в котором определяют, что индикация использования режима палитры является ложной (false), на основе того, что текущий режим прогнозирования является режимом внутрикадрового прогнозирования.The proposed methods may include an embodiment that determines that the palette mode usage indication is false based on the fact that the current prediction mode is an intra-prediction mode.

Предлагаемые способы могут содержать вариант, в котором режим прогнозирования является режимом внутрикадрового прогнозирования, и передачу сигнализации с индикацией использования режима палитры пропускают.The proposed methods may include an embodiment in which the prediction mode is an intra-frame prediction mode, and signaling indicating the use of the palette mode is omitted.

Предлагаемые способы могут содержать вариант, в котором режим прогнозирования является режимом внутрикадрового копирования блоков, и осуществляют передачу сигнализации с индикацией использования режима палитры.The proposed methods may include an option in which the prediction mode is an intra-frame block copy mode, and carry out signaling indicating the use of the palette mode.

Предлагаемые способы могут содержать вариант, в котором индикацию использования режима палитры передают в виде сигнализации на основе изображения, среза или типа группы плиток.The proposed methods may include an option in which the palette mode use indication is provided as an alarm based on the image, slice, or tile group type.

Предлагаемые способы могут содержать вариант, в котором режим палитры добавляют в качестве кандидата на роль режима прогнозирования.The proposed methods may include an option in which a palette mode is added as a candidate for a prediction mode.

Предлагаемые способы могут содержать вариант, в котором совокупность режимов прогнозирования может содержать один или несколько режимов из следующего списка: режим внутрикадрового прогнозирования, режим внутрикадрового копирования блоков или режимы палитры для срезов с внутрикадровым прогнозированием, срезов с межкадровым прогнозированием, I-кадров, P-кадров, B-кадров или групп плиток с внутрикадровым прогнозированием.The proposed methods may include an option in which the set of prediction modes may contain one or more modes from the following list: intra-prediction mode, intra-frame block copy mode, or palette modes for intra-prediction slices, inter-frame prediction slices, I-frames, P-frames , B-frames or tile groups with intra-frame prediction.

Предлагаемые способы могут содержать вариант, в котором совокупность режимов прогнозирования содержит два или более режимов из следующего списка: режим внутрикадрового прогнозирования, режим межкадрового прогнозирования, режим внутрикадрового копирования блоков или режим палитры.The proposed methods may include an option in which the set of prediction modes contains two or more modes from the following list: intra-prediction mode, inter-frame prediction mode, intra-frame block copy mode, or palette mode.

Предлагаемые способы могут содержать вариант, в котором использование режима палитры обозначают посредством сигнализации или определяют на основе некоторого условия.The proposed methods may include an option in which the use of a palette mode is indicated by signaling or determined based on some condition.

Предлагаемые способы могут содержать вариант, в котором указанное условие может представлять собой одну или несколько позиций из следующего списка: размеры текущего блока, режим прогнозирования для текущего блока, параметр квантования (QP) для текущего блока, флаг режима палитры для соседних блоков, флаг режима внутрикадрового копирования для соседних блоков, индикация цветового формата, раздельная или сдвоенная структура дерева кодирования, либо тип среза, или тип группы или тип изображения.The proposed methods may include an option in which the specified condition may be one or more items from the following list: dimensions of the current block, prediction mode for the current block, quantization parameter (QP) for the current block, palette mode flag for adjacent blocks, intraframe mode flag copying for adjacent blocks, color format indication, split or dual coding tree structure, or slice type, or group type, or image type.

Предлагаемые способы могут содержать вариант, в котором указание использования режима палитры сообщают в виде сигнализации или определяют на основе флага на уровне среза, флага на уровне группы плиток или флага на уровне изображения.The proposed methods may include an option wherein the indication of use of the palette mode is signaled or determined based on a flag at the slice level, a flag at the tile group level, or a flag at the image level.

Предлагаемые способы могут содержать вариант, в котором индикацию использования режима внутрикадрового копирования блоков передают в виде сигнализации или определяют на основе флага на уровне среза, флага на уровне группы плиток или флага на уровне изображения.The proposed methods may include an embodiment in which the use of intra-frame block copy mode is signaled or determined based on a slice-level flag, a tile-group-level flag, or an image-level flag.

С учетом позиций 6 – 9, описываемых в предыдущем разделе, некоторые варианты могут предпочтительно использовать следующие технические решения. Taking into account items 6 - 9 described in the previous section, some options may preferably use the following technical solutions.

Одно техническое решение может содержать способ обработки видео, содержащий осуществление преобразования между текущим видео блоком из одного изображения видео и представлением рассматриваемого видеоролика в форме потока битов данных, где информацию о том, используется ли для этого преобразования режим внутрикадрового копирования блоков, передают в виде сигнализации в составе представления в форме потока битов данных или определяют на основе условия кодирования текущего видео блока; где режим внутрикадрового копирования блоков содержит кодирование текущего видео блока от другого видео блока в изображении. В различных вариантах могут быть реализованы следующие признаки One technical solution may comprise a video processing method comprising performing a conversion between a current video block from a single video image and a representation of the video in question in the form of a stream of data bits, where information about whether the intra-frame block copy mode is used for this conversion is signaled to composition of the representation in the form of a stream of data bits or determined based on the encoding condition of the current video block; where the intra-frame block copy mode contains the encoding of the current video block from another video block in the image. The following features can be implemented in various options:

- где указанное условие кодирования содержит размеры текущего видео блока. - where the specified encoding condition contains the dimensions of the current video block.

- где указанное условие кодирования содержит режим прогнозирования для текущего видео блока или параметр квантования, используемые при преобразовании для текущего видео блока.- where the specified encoding condition contains a prediction mode for the current video block or a quantization parameter used in the conversion for the current video block.

С учетом позиций 13 – 15, описываемых в предыдущем разделе, некоторые варианты могут предпочтительно реализовывать следующие технические решения. Taking into account items 13 - 15 described in the previous section, some options may preferably implement the following technical solutions.

Техническое решение может содержать способ определения, следует ли применять деблокирующий фильтр в процессе преобразования текущего видео блока из одного изображения видео, где текущий видео блок кодируют с использованием кодирования в режиме палитры, в котором текущий видео блок представлен с использованием значений репрезентативных отсчетов, число каковых меньше общего числа пикселей в текущем видео блоке; и осуществление преобразования с применением деблокирующего фильтра в случае, когда результат указанного определения показывает, что следует применить деблокирующий фильтр.The technical solution may comprise a method for determining whether to apply a deblocking filter in the process of converting a current video block from a single video image, where the current video block is encoded using palette mode encoding, in which the current video block is represented using representative sample values, the number of which is less than the total number of pixels in the current video block; and performing a transformation using the deblocking filter when the result of said determination indicates that the deblocking filter should be applied.

Другое техническое решение может содержать способ обработки видео, предусматривающий определение процедуры квантования или процедуры обратного квантования для использования в процессе преобразования между текущим видео блоком из одного изображения видео и представлением рассматриваемого видеоролика в форме потока битов данных, где текущий видео блок кодируют с использованием кодирования в режиме палитры, в котором текущий видео блок представляют с использованием значений репрезентативных отсчетов, число каковых меньше общего числа пикселей текущего видео блока; и осуществления преобразования на основе указанного определения процедуры квантования или процедуры обратного квантования. Совокупность дополнительных признаков может содержать:Another solution may comprise a video processing method of defining a quantization procedure or an inverse quantization procedure for use in the conversion process between a current video block from a single video image and a representation of the video in question in the form of a stream of data bits, where the current video block is encoded using encoding mode a palette in which the current video block is represented using representative sample values, the number of which is less than the total number of pixels of the current video block; and performing a transformation based on said definition of a quantization procedure or an inverse quantization procedure. A set of additional features may include:

- где процедура квантования или процедура обратного квантования, выбранная путем указанного определения для текущего видео блока, отличается от другой процедуры квантования или от другой процедуры обратного квантования, применяемой к другому видео блоку, кодируемому способом, отличным от кодирования в режиме палитры. - where the quantization procedure or inverse quantization procedure selected by the specified determination for the current video block is different from another quantization procedure or from another inverse quantization procedure applied to another video block encoded in a manner other than palette mode encoding.

- где процедура преобразования содержит кодирование текущего видео блока и превращение его в представление в форме потока битов данных. - where the conversion procedure involves encoding the current video block and turning it into a representation in the form of a stream of data bits.

- где процедура преобразования содержит декодирование представления в форме потока битов данных для генерации текущего видео блока рассматриваемого видеоролика.- where the conversion procedure comprises decoding a representation in the form of a stream of data bits to generate the current video block of the video in question.

- где процедура преобразования использует процедуру принятия решения, идентичную другой процедуре принятия решения, используемой для преобразования другого видео блока, кодированного с применением внутрикадрового прогнозирования.- where the transformation procedure uses a decision procedure identical to another decision procedure used to transform another video block encoded using intra-frame prediction.

Следует понимать, что описываемые технологии могут быть реализованы в кодирующих устройствах видео или в декодирующих устройствах видео для повышения эффективности сжатия с использованием усовершенствованных структур дерева кодирования.It should be understood that the described technologies may be implemented in video encoders or video decoders to improve compression efficiency using improved coding tree structures.

С учетом позиций 16 – 21 в предыдущем разделе, некоторые технические решения могут быть следующими: Taking into account items 16 – 21 in the previous section, some technical solutions could be as follows:

Способ обработки видео, содержащий: определение, для преобразования между текущим видео блоком видеоролика, содержащего множество видео блоков, и представлением этого видеоролика в форме потока битов данных, что текущий видео блок представляет собой блок, кодируемый в режиме кодирования палитры; на основе указанного определения, осуществление процедуры построения списка наиболее вероятных режимов путем рассмотрения текущего видео блока в качестве блока, кодируемого с использованием внутрикадрового прогнозирования, и осуществление преобразования на основе результата процедуры построения списка; где блок, кодируемый в режиме кодирования палитры, кодируют или декодируют с использованием палитры или значений репрезентативных отсчетов.A video processing method, comprising: determining, for converting between a current video block of a video containing a plurality of video blocks, and a representation of this video in the form of a stream of data bits, that the current video block is a block encoded in a palette encoding mode; based on the above definition, performing a procedure for constructing a list of the most probable modes by considering the current video block as a block encoded using intra-frame prediction, and performing a transformation based on the result of the list construction procedure; where a block encoded in the palette encoding mode is encoded or decoded using the palette or representative sample values.

Приведенный выше способ, где процедура построения списка рассматривает соседний блок, кодируемый в режиме палитры, в качестве блока с внутрикадровым прогнозированием в режиме по умолчанию. The above method, where the list construction procedure considers the adjacent palette-mode encoded block as an intra-prediction block in the default mode.

Способ обработки видео, содержащий: определение, для преобразования между текущим видео блоком видеоролика, содержащего множество видео блоков, и представлением этого видеоролика в форме потока битов данных, что текущий видео блок представляет собой блок, кодируемый в режиме кодирования палитры; на основе указанного определения, осуществление процедуры построения списка наиболее вероятных режимов путем рассмотрения текущего видео блока в качестве блока, кодируемого не с использованием внутрикадрового прогнозирования, и осуществление преобразования на основе результата процедуры построения списка; где блок, кодируемый в режиме кодирования палитры, кодируют или декодируют с использованием палитры или значений репрезентативных отсчетов.A video processing method, comprising: determining, for converting between a current video block of a video containing a plurality of video blocks, and a representation of this video in the form of a stream of data bits, that the current video block is a block encoded in a palette encoding mode; based on the above definition, performing a procedure for constructing a list of the most probable modes by considering the current video block as a block not encoded using intra-frame prediction, and performing a transformation based on the result of the listing procedure; where a block encoded in the palette encoding mode is encoded or decoded using the palette or representative sample values.

Приведенный выше способ, в котором процедура построения списка рассматривает соседний блок, кодируемый в режиме палитры, в качестве блока, кодируемого с применением внутрикадрового прогнозирования, при выборке режима внутрикадрового прогнозирования для соседнего блока, кодируемого в режиме кодирования палитры. The above method, in which the list construction procedure considers an adjacent block encoded in the palette mode as an intra-prediction encoded block when selecting an intra-prediction mode for the adjacent block encoded in the palette encoding mode.

Способ обработки видео, содержащий: определение, для преобразования между текущим видео блоком видеоролика, содержащего множество видео блоков, и представлением этого видеоролика в форме потока битов данных, что текущий видео блок представляет собой блок, кодируемый в режиме кодирования палитры; на основе указанного определения, осуществление процедуры построения списка путем рассмотрения текущего видео блока в качестве недоступного блока, и осуществление преобразования на основе результата процедуры построения списка; где блок, кодируемый в режиме кодирования палитры, кодируют или декодируют с использованием палитры или значений репрезентативных отсчетов.A video processing method, comprising: determining, for converting between a current video block of a video containing a plurality of video blocks, and a representation of this video in the form of a stream of data bits, that the current video block is a block encoded in a palette encoding mode; based on the above definition, performing a list construction procedure by considering the current video block as an unavailable block, and performing a conversion based on the result of the list construction procedure; where a block encoded in the palette encoding mode is encoded or decoded using the palette or representative sample values.

Приведенный выше способ, где процедура построения списка предназначена для прогнозирования вектора движения на основе предыстории. The above method, where the list construction procedure is designed to predict the motion vector based on the history.

Приведенный выше способ, где процедура построения списка применяется для режима с объединением (MERGE) или усовершенствованного режима прогнозирования вектора движения. The above method where the list construction procedure is applied to the MERGE mode or the advanced motion vector prediction mode.

Приведенные выше способы, где процедура определения далее содержит определение на основе контента видео. The above methods, where the determination procedure further comprises determining based on the content of the video.

Приведенные выше способы, где процедура определения соответствует полю в представлении в форме потока битов данных. The above methods where the definition procedure corresponds to a field in a representation in the form of a stream of data bits.

Способ обработки видео, содержащий: определение/, в ходе преобразования между текущим видео блоком и представлением этого текущего видео блока в форме потока битов данных, что текущий видео блок представляет собой блок, кодируемый в режиме кодирования палитры, определение, на основе того, что текущий видео блок является блоком, кодируемым в режиме кодирования палитры, диапазона секций (разрядов) с контекстно-зависимым кодированием, используемых для преобразования; и осуществление преобразования на основе этого диапазона секций (разрядов) с контекстно-зависимым кодированием. A video processing method, comprising: determining, during a conversion between a current video block and a representation of that current video block in the form of a data bitstream, that the current video block is a block encoded in a palette encoding mode, determining, based on the fact that the current a video block is a block encoded in palette encoding mode, a range of sections (bits) with context-sensitive encoding used for conversion; and performing a conversion based on this range of sections (bits) with context-sensitive encoding.

Приведенный выше способ, где секции (разряды) текущего видео блока, попадающие вне этого диапазона, кодируют с применением способа кодирования в режиме обхода или декодируют с использованием способа декодирования в режиме обхода в процессе преобразования The above method, where sections (bits) of the current video block falling outside this range are encoded using a bypass mode encoding method or decoded using a bypass mode decoding method in the conversion process

Приведенные выше способы, где процедура преобразования содержит кодирование видео с преобразованием его в представление в форме потока битов данных. The above methods where the conversion procedure comprises encoding the video and converting it into a representation in the form of a stream of data bits.

Приведенные выше способы, где процедура преобразования содержит декодирование представления в форме потока битов данных для генерации видео.The above methods where the conversion procedure comprises decoding a representation in the form of a stream of data bits to generate a video.

На фиг. 24 представлена блок-схема, показывающая пример системы 2400 обработки видео, в которой могут быть реализованы разнообразные описываемые здесь способы. Разнообразные варианты реализации могут содержать некоторые или все компоненты системы 2400. Система 2400 может содержать вход 2402 для приема видео контента. Этот видео контент может быть принят в исходном или несжатом формате, 8 или 10-битовые значения многокомпонентных пикселей, либо может быть в сжатом или в кодированном формате. Этот вход 2402 может представлять собой сетевой интерфейс, интерфейс шины периферийных устройств или интерфейс запоминающих устройств. К примерам сетевых интерфейсов относятся проводные интерфейсы шин, такие Этернет, пассивная оптическая сеть (passive optical network (PON)) и т.п., и беспроводные интерфейсы, такие как Wi-Fi или сотовые интерфейсы. In fig. 24 is a block diagram showing an example of a video processing system 2400 in which the various methods described herein may be implemented. Various implementations may include some or all of the components of the system 2400. The system 2400 may include an input 2402 for receiving video content. This video content may be received in its original or uncompressed format, 8 or 10-bit multi-pixel values, or may be in a compressed or encoded format. This input 2402 may be a network interface, a peripheral bus interface, or a storage interface. Examples of network interfaces include wired bus interfaces such as Ethernet, passive optical network (PON), etc., and wireless interfaces such as Wi-Fi or cellular interfaces.

Система 2400 может содержать кодирующий компонент 2404, способный реализовать различные способы кодирования, описываемые в настоящем документе. Кодирующий компонент 2404 может уменьшить среднюю скорость передачи битов данных видео от входа 2402 к выходу кодирующего компонента 2404 для получения кодированного представления видео. Поэтому, эти способы кодирования иногда называют способами сжатия видео или транскодирования видео. Выходные данные кодирующего компонента 2404 могут быть либо сохранены, либо переданы через присоединенные средства связи, представленные здесь компонентом 2406. Сохраняемое или передаваемое (или кодированное) представление видео в форме потока битов данных, принимаемое на вход 2402, может быть использовано компонентом 2408 для генерации значений пикселей или представляемого на дисплее видео, передаваемого интерфейсу 2410 дисплея. Процедура генерации просматриваемого пользователем видео из его представления в форме потока битов данных иногда называется декомпрессией (расширением) видео. Кроме того, хотя некоторые операции обработки видео называются операциями или инструментами «кодирования», следует понимать, что инструменты или операции кодирования используются в кодирующих устройствах и соответствующие инструменты или операции декодирования, которые обращают результаты кодирования, будут осуществляться декодирующим устройством. System 2400 may include an encoding component 2404 capable of implementing various encoding techniques described herein. The encoding component 2404 may reduce the average bit rate of video data from the input 2402 to the output of the encoding component 2404 to obtain an encoded representation of the video. Therefore, these encoding methods are sometimes called video compression methods or video transcoding methods. The output of encoding component 2404 may be either stored or transmitted via attached communications media, represented here by component 2406. The stored or transmitted (or encoded) representation of the video in the form of a stream of data bits received as input 2402 may be used by component 2408 to generate values. pixels or display video transmitted to display interface 2410. The procedure of generating user-viewable video from its representation in the form of a stream of data bits is sometimes called video decompression (expansion). In addition, although some video processing operations are referred to as "encoding" operations or tools, it should be understood that the encoding tools or operations are used in the encoding devices and the corresponding decoding tools or operations that reverse the encoding results will be performed by the decoding device.

Примеры интерфейса шины периферийных устройств или интерфейса дисплея могут представлять собой универсальную последовательную шину (universal serial bus (USB)) или мультимедийный интерфейс высокой четкости (high definition multimedia interface (HDMI)) или Displayport, и т.д. К примерам интерфейса запоминающих устройств относятся интерфейс усовершенствованного последовательного соединения (SATA (serial advanced technology attachment)), интерфейс периферийных устройств (PCI), интерфейс IDE и другие подобные интерфейсы. Способы, описываемые в настоящем документе, могут быть реализованы в разнообразных электронных устройствах, таких как мобильные телефоны, портативные компьютеры, смартфоны или другие устройства, способные осуществлять цифровую обработку данных и/или представлять видео на дисплее. Examples of a peripheral bus interface or display interface may be a universal serial bus (USB) or a high definition multimedia interface (HDMI) or Displayport, etc. Examples of storage interfaces include the serial advanced technology attachment (SATA) interface, the peripheral device interface (PCI), the IDE interface, and other similar interfaces. The methods described herein may be implemented in a variety of electronic devices, such as mobile phones, laptop computers, smartphones, or other devices capable of digital processing and/or displaying video.

На фиг. 25 представлена логическая схема способа 2500 обработки видео в соответствии с предлагаемой технологией. Способ 2500 содержит, в ходе операции 2510, осуществление преобразования между блоком видеообласти видеоролика и представлением этого видеоролика в форме потока битов данных. Это представление в форме потока битов данных обрабатывают согласно первому правилу форматирования, специфицирующему, передавать ли в виде сигнализации первую индикацию использования режима палитры для блока, и второму правилу форматирования, специфицирующему позицию первой индикации относительно второй индикации использования режима прогнозирования для этого блока. In fig. 25 is a logic diagram of a video processing method 2500 in accordance with the proposed technology. Method 2500 comprises, at step 2510, converting between a video region block of a video clip and a representation of that video in the form of a stream of data bits. This representation in the form of a data bit stream is processed according to a first format rule specifying whether to signal a first palette mode use indication for a block, and a second format rule specifying the position of the first indication relative to a second prediction mode use indication for that block.

В некоторых вариантах, видеообласть содержит единицу преобразования, единицу кодирования, единицу прогнозирования или область видео. В некоторых вариантах, вторая индикация использования режима прогнозирования расположена в представлении видео в форме потока битов данных прежде первой индикации использования режима палитры. In some embodiments, the video domain comprises a transform unit, an encoding unit, a prediction unit, or a video domain. In some embodiments, the second indication of use of the prediction mode is located in the video representation in the form of a stream of data bits before the first indication of use of the palette mode.

В некоторых вариантах, первую индикацию использования режима палитры условно включают в представление видео в форме потока битов данных на основе второй индикации использования режима прогнозирования. В некоторых вариантах, первую индикацию использования режима палитры пропускают в представлении видео в форме потока битов данных, если вторая индикация использования режима прогнозирования обозначает режим прогнозирования с применением внутрикадрового копирования блоков (IBC). В некоторых вариантах, первую индикацию использования режима палитры пропускают в представлении видео в форме потока битов данных, если вторая индикация использования режима прогнозирования обозначает режим межкадрового прогнозирования. В некоторых вариантах, первую индикацию использования режима палитры пропускают в представлении видео в форме потока битов данных, если вторая индикация использования режима прогнозирования обозначает режим внутрикадрового прогнозирования. В некоторых вариантах, первую индикацию использования режима палитры пропускают в представлении видео в форме потока битов данных, если вторая индикация использования режима прогнозирования обозначает режим пропуска. В некоторых вариантах, пропуск первой индикации использования режима палитры в представлении видео в форме потока битов данных означает, что режим палитры не используется. In some embodiments, a first indication of palette mode use is conditionally included in the video representation in the form of a data bitstream based on a second indication of prediction mode use. In some embodiments, the first indication of using a palette mode is omitted in the video representation in the form of a data bit stream if the second indication of using a prediction mode is a prediction mode using intra-block copy (IBC). In some embodiments, the first indication of using a palette mode is omitted in the video representation in the form of a data bit stream if the second indication of using a prediction mode indicates an inter-frame prediction mode. In some embodiments, the first indication of using a palette mode is omitted in the video representation in the form of a data bitstream if the second indication of using a prediction mode indicates an intra-frame prediction mode. In some embodiments, the first indication of using a palette mode is skipped in the video representation in the form of a data bitstream if the second indication of using a prediction mode is a skip mode. In some embodiments, omitting the first indication of use of the palette mode in the video representation in the form of a data bit stream means that the palette mode is not used.

В некоторых вариантах, первую индикацию использования режима палитры кодируют с преобразованием в поток битов данных, если вторая индикация использования режима прогнозирования обозначает режим прогнозирования с копированием IBC. В некоторых вариантах, первую индикацию использования режима палитры кодируют с преобразованием в поток битов данных, если вторая индикация использования режима прогнозирования обозначает режим внутрикадрового прогнозирования. В некоторых вариантах, режим прогнозирования не является режимом импульсно-кодовой модуляции (ИКМ (Pulse-Code Modulation (PCM))). В некоторых вариантах, первую индикацию использования режима палитры кодируют прежде индикации использования режима модуляции ИКМ в представлении видео в форме потока битов данных. В некоторых вариантах, индикацию использования режима модуляции ИКМ пропускают в представлении видео в форме потока битов данных. В некоторых вариантах, индикацию режима копирования IBC кодируют и преобразуют в представление в форме потока битов данных. В некоторых вариантах, если используется режим внутрикадрового прогнозирования, флаг в представлении в форме потока битов данных указывает, что в этом представлении в форме потока битов данных передают в форме сигнализации указание режима палитры или режима копирования IBC. В некоторых вариантах, этот флаг пропускают на основе условия, характеризующего блок, это условие содержит размер блока, указание активизирован ли режим копирования IBC для области, ассоциированной с этим блоком, или активизирован ли режим палитры для указанной области, ассоциированной с этим блоком. In some embodiments, the first palette mode use indication is encoded into a data bit stream if the second prediction mode use indication is an IBC copy prediction mode. In some embodiments, the first palette mode use indication is encoded into a data bitstream if the second prediction mode use indication indicates an intra-prediction mode. In some embodiments, the prediction mode is not a pulse-code modulation (PCM) mode. In some embodiments, the first indication of use of the palette mode is encoded before the indication of use of the PCM modulation mode in the video representation in the form of a data bitstream. In some embodiments, an indication of the use of a PCM modulation mode is provided in the video representation in the form of a stream of data bits. In some embodiments, the IBC copy mode indication is encoded and converted into a data bit stream representation. In some embodiments, if an intra-prediction mode is used, a flag in the bitstream representation indicates that the bitstream representation is signaling an indication of the palette mode or the IBC copy mode. In some embodiments, this flag is passed based on a condition characterizing the block, this condition comprising the size of the block, an indication of whether IBC copy mode is enabled for an area associated with that block, or whether palette mode is activated for a specified area associated with that block.

В некоторых вариантах, первую индикацию использования режима палитры кодируют с преобразованием в поток битов данных, если вторая индикация использования режима прогнозирования обозначает режим межкадрового прогнозирования. В некоторых вариантах, первую индикацию использования режима палитры кодируют после по меньшей мере одного из объектов: индикации режима пропуска, режима прогнозирования или индикации использования режима модуляции ИКМ. В некоторых вариантах, первую индикацию использования режима палитры кодируют после индикации режима пропуска или режима прогнозирования и кодируют прежде индикации использования режима модуляции ИКМ. In some embodiments, the first palette mode use indication is encoded into a data bit stream if the second prediction mode use indication indicates an inter-prediction mode. In some embodiments, the first palette mode use indication is encoded after at least one of a skip mode indication, a prediction mode use indication, or a PCM modulation mode use indication. In some embodiments, the first indication of using a palette mode is encoded after the indication of a skip mode or prediction mode and is encoded before the indication of using a PCM modulation mode.

В некоторых вариантах, первую индикацию использования режима палитры позиционируют прежде второй индикации использования режима прогнозирования в представлении в форме потока битов данных. В некоторых вариантах, первую индикацию использования режима палитры позиционируют после второй индикации использования режима прогнозирования, эта вторая индикация использования режима прогнозирования указывает режим внутрикадрового или межкадрового прогнозирования в представлении видео в форме потока битов данных. В некоторых вариантах, первую индикацию использования режима палитры передают в виде сигнализации на основе изображения, среза или типа группы плиток. В некоторых вариантах, первая индикация использования режима палитры содержит первый флаг, указывающий, что режим палитры активизирован для блока. В некоторых вариантах, первую индикацию использования режима палитры условно включают в представление видео в форме потока битов данных на основе первого флага, указывающего, что режим палитры активизирован на уровне последовательности, уровне изображения, уровне группы плиток или уровне плитки. В некоторых вариантах, другой флаг, указывающий режим модуляции ИКМ для блока, включают в представление в форме потока битов данных, если режим палитры для рассматриваемого блока не активизирован. В некоторых вариантах, первый флаг подвергают контекстно-зависимому кодированию на основе информации об одном или нескольких соседних блоках относительно текущего блока. В некоторых вариантах, этот первый флаг кодируют без контекстной информации от одного или нескольких соседних блоков относительно текущего блока. In some embodiments, the first palette mode use indication is positioned before the second prediction mode use indication in the data bit stream representation. In some embodiments, the first palette mode use indication is positioned after the second prediction mode use indication, this second prediction mode use indication indicating an intra- or inter-frame prediction mode in the video representation in the form of a data bit stream. In some embodiments, the first indication of palette mode use is provided as an alarm based on the image, slice, or tile group type. In some embodiments, the first palette mode use indication includes a first flag indicating that the palette mode is enabled for the block. In some embodiments, a first indication of palette mode use is conventionally included in the video presentation in the form of a data bitstream based on a first flag indicating that the palette mode is enabled at the sequence level, image level, tile group level, or tile level. In some embodiments, another flag indicating the PCM modulation mode for the block is included in the data bitstream representation if the palette mode for the block in question is not activated. In some embodiments, the first flag is subject to context-sensitive encoding based on information about one or more neighboring blocks relative to the current block. In some embodiments, this first flag is encoded without context information from one or more neighboring blocks relative to the current block.

В некоторых вариантах, вторая индикация использования режим прогнозирования содержит второй флаг, указывающий режим прогнозирования. В некоторых вариантах, если второй флаг в представлении в форме потока битов данных указывает, что режим прогнозирования является режимом межкадрового прогнозирования, это представление в форме потока битов данных далее содержит третий флаг, указывающий, что активизирован режим внутрикадрового копирования блока. В некоторых вариантах, если второй флаг в представлении в форме потока битов данных указывает, что режим прогнозирования является режимом внутрикадрового прогнозирования, это представление в форме потока битов данных далее содержит третий флаг, указывающий, что активизирован режим внутрикадрового копирования блока. В некоторых вариантах, третий флаг условно включают в представление в форме потока битов данных на основе размеров блока. In some embodiments, the second indication of use of the prediction mode includes a second flag indicating the prediction mode. In some embodiments, if a second flag in the bitstream representation indicates that the prediction mode is an inter-frame prediction mode, the bitstream representation further includes a third flag indicating that the intra-frame block copy mode is enabled. In some embodiments, if a second flag in the bitstream representation indicates that the prediction mode is an intra-frame prediction mode, the bitstream representation further includes a third flag indicating that the intra-frame block copy mode is enabled. In some embodiments, the third flag is conditionally included in the representation in the form of a data bitstream based on block sizes.

В некоторых вариантах, рассматриваемый блок является единицей кодирования, и второй флаг в представлении в форме потока битов данных указывает, что режим прогнозирования является режимом внутрикадрового прогнозирования. В некоторых вариантах, указанный первый флаг условно включают в представление в форме потока битов данных на основе размеров этого блока. In some embodiments, the block in question is a coding unit, and the second flag in the data bit stream representation indicates that the prediction mode is an intra-prediction mode. In some embodiments, said first flag is conditionally included in a data bit stream representation based on the size of the block.

На фиг. 26 показано представление логической схемы способа 2600 обработки видео в соответствии с предлагаемой технологией. Способ 2600 содержит, в ходе операции 2610, определение, для преобразования между блоком видеообласти в пределах видеоролика и представлением этого видеоролика в форме потока битов данных, режима прогнозирования на основе одного или нескольких допустимых режимов прогнозирования, включая по меньшей мере режим палитры для рассматриваемого блока. Индикацию использования режима палитры определяют в соответствии с режимом прогнозирования. Способ 2600 содержит, в ходе операции 2620, осуществление преобразования на основе указанного определения. In fig. 26 is a logic diagram representation of a video processing method 2600 in accordance with the proposed technology. Method 2600 comprises, at step 2610, determining, for conversion between a block of video region within a video and a data bitstream representation of that video, a prediction mode based on one or more valid prediction modes, including at least a palette mode for the block in question. The palette mode usage indication is determined in accordance with the prediction mode. Method 2600 comprises, at step 2620, performing a conversion based on the specified determination.

В некоторых вариантах, совокупность одного или нескольких допустимых режимов прогнозирования содержит режим внутрикадрового прогнозирования. В некоторых вариантах, совокупность одного или нескольких допустимых режимов прогнозирования содержит режим внутрикадрового копирования блоков (IBC). В некоторых вариантах, совокупность одного или нескольких допустимых режимов прогнозирования содержит режим межкадрового прогнозирования. In some embodiments, the plurality of one or more valid prediction modes comprises an intra-frame prediction mode. In some embodiments, the plurality of one or more valid prediction modes comprises an intraframe block copy (IBC) mode. In some embodiments, the plurality of one or more valid prediction modes comprises an inter-frame prediction mode.

В некоторых вариантах, рассматриваемая видеообласть содержит срез, кодируемый с применением внутрикадрового прогнозирования, изображение, кодируемое с применением внутрикадрового прогнозирования или группу плиток, кодируемую с применением внутрикадрового прогнозирования. В некоторых вариантах, совокупность одного или нескольких допустимых режимов прогнозирования содержит режим внутрикадрового прогнозирования, режим внутрикадрового копирования блоков и режим палитры.In some embodiments, the video region in question comprises an intra-prediction encoded slice, an intra-prediction encoded image, or a group of intra-prediction encoded tiles. In some embodiments, the plurality of one or more valid prediction modes comprises an intra-prediction mode, an intra-frame block copy mode, and a palette mode.

В некоторых вариантах, рассматриваемая видеообласть содержит срез, кодируемый с применением межкадрового прогнозирования, изображение, кодируемое с применением межкадрового прогнозирования или группу плиток, кодируемую с применением межкадрового прогнозирования, P-срез, B-слез, P-кадр или B-кадр. В некоторых вариантах, совокупность одного или нескольких допустимых режимов прогнозирования содержит режим внутрикадрового прогнозирования, режим внутрикадрового копирования блоков, режим палитры и режим межкадрового прогнозирования.In some embodiments, the video region in question comprises an inter-prediction encoded slice, an inter-prediction encoded image, or a group of inter-prediction encoded tiles, a P-slice, a B-tear, a P-frame, or a B-frame. In some embodiments, the plurality of one or more valid prediction modes comprises an intra-prediction mode, an intra-frame block copy mode, a palette mode, and an inter-frame prediction mode.

В некоторых вариантах, блок имеет размер 4x4. В некоторых вариантах, из указанной совокупности одного или нескольких допустимых режимов прогнозирования исключен режим межкадрового прогнозирования, если рассматриваемый блок имеет размер 4x4.In some embodiments, the block is 4x4 in size. In some embodiments, the inter-frame prediction mode is excluded from the set of one or more valid prediction modes if the block in question is 4x4 in size.

В некоторых вариантах, представление в форме потока битов данных содержит по меньшей мере индекс режима прогнозирования, представляющий один или несколько допустимых режимов прогнозирования, если рассматриваемый блок не кодируют в режиме пропуска, где индекс режима прогнозирования представлен с использованием одной или нескольких секций. In some embodiments, the data bit stream representation comprises at least a prediction mode index representing one or more valid prediction modes if the block in question is not encoded in skip mode, where the prediction mode index is represented using one or more sections.

В некоторых вариантах, индекс режима прогнозирования представлен с использованием трех двоичных секций (разрядов), где значение «1» в первой секции обозначает режим внутрикадрового прогнозирования, значение «0» в первой секции и значение «0» во второй секции указывает режим межкадрового прогнозирования, значение «0» в первой секции, значение «1» во второй секции и значение «0» в третьей секции указывает режим копирования IBC, и значение «0» в первой секции», значение «1» во второй секции и значение «1» в третьей секции указывает режим палитры. In some embodiments, the prediction mode index is represented using three binary sections (bits), where a value of "1" in the first section indicates an intra-prediction mode, a value of "0" in the first section, and a value of "0" in the second section indicates an inter-prediction mode. the value "0" in the first section, the value "1" in the second section and the value "0" in the third section indicates the IBC copy mode, and the value "0" in the first section", the value "1" in the second section and the value "1" the third section indicates the palette mode.

В некоторых вариантах, индекс режима прогнозирования представлен с использованием двух двоичных секций (разрядов), где значение «1» в первой секции и значение «0» во второй секции обозначает режим внутрикадрового прогнозирования, значение «0» в первой секции и значение «0» во второй секции указывает режим межкадрового прогнозирования, и значение «0» в первой секции» и значение «1» во второй секции указывает режим копирования IBC, и значение «1» в первой секции и значение «1» во второй секции указывает режим палитры.In some embodiments, the prediction mode index is represented using two binary sections (bits), where a value of "1" in the first section and a value of "0" in the second section indicate an intra-frame prediction mode, a value of "0" in the first section and a value of "0" in the second section indicates an inter-frame prediction mode, and a value of “0” in the first section and a value of “1” in the second section indicates an IBC copy mode, and a value of “1” in the first section and a value of “1” in the second section indicates a palette mode.

В некоторых вариантах индекс режима прогнозирования представлен с использованием одной двоичной секции (разряда), если текущей срез видео является срезом, кодируемым с внутрикадровым прогнозированием, и режим копирования IBC не активизирован, первое значение «0» в этой секции обозначает режим внутрикадрового прогнозирования и второе значение «1» в этой секции обозначает режим палитры.In some embodiments, the prediction mode index is represented using a single binary section (bit), if the current video slice is an intra-prediction encoded slice and the IBC copy mode is not enabled, the first value "0" in this section indicates the intra-prediction mode and the second value The "1" in this section indicates palette mode.

В некоторых вариантах, индекс режима прогнозирования представлен с использованием двух двоичных секций (разрядов), если текущий срез видео не является срезом, кодируемым с применением внутрикадрового прогнозирования, и режим копирования IBC не активизирован, где значение «1» в первой секции обозначает режим внутрикадрового прогнозирования, значение «0» в первой секции и значение «0» во второй секции обозначает режим межкадрового прогнозирования, и значение «0» в первой секции и значение «1 во второй секции обозначает режим палитры. В некоторых вариантах, индекс режима прогнозирования представлен с использованием двух двоичных секций (разрядов), если текущий срез видео является срезом, кодируемым с применением внутрикадрового прогнозирования, и режим копирования IBC активизирован, где значение «1» в первой секции обозначает режим копирования IBC, значение «0» в первой секции и значение «1» во второй секции указывает режим палитры, и значение «0» в первой секции и значение «0» во второй секции указывает режим внутрикадрового прогнозирования. В некоторых вариантах, индикацию использования режима копирования IBC передают в виде сигнализации в наборе параметров последовательности (SPS) в представлении в форме потока битов данных.In some embodiments, the prediction mode index is represented using two binary sections (bits) if the current video slice is not an intra-prediction encoded slice and the IBC copy mode is not enabled, where a value of "1" in the first section indicates the intra-prediction mode , a value of "0" in the first section and a value of "0" in the second section denotes an inter-frame prediction mode, and a value of "0" in the first section and a value of "1" in the second section denotes a palette mode. In some embodiments, the prediction mode index is represented using two binary sections (bits) if the current video slice is an intra-prediction encoded slice and the IBC copy mode is enabled, where the value "1" in the first section indicates the IBC copy mode value A "0" in the first section and a value of "1" in the second section indicates a palette mode, and a value of "0" in the first section and a value of "0" in the second section indicates an intra-frame prediction mode. In some embodiments, the indication of use of the IBC copy mode is conveyed as signaling in a sequence parameter set (SPS) in a data bit stream representation.

В некоторых вариантах, индекс режима прогнозирования представлен с использованием трех двоичных секций (разрядов), In some embodiments, the prediction mode index is represented using three binary sections (bits),

где значение «1» в первой секции обозначает режим межкадрового прогнозирования, значение «0» в первой секции и значение «1» во второй секции указывает режим внутрикадрового прогнозирования, значение «0» в первой секции, значение «0» во второй секции и значение «1» в третьей секции обозначают режим копирования IBC, и значение «0» в первой секции, значение «0» во второй секции и значение «0» в третьей секции обозначают режим палитры.where the value "1" in the first section indicates the inter-prediction mode, the value "0" in the first section and the value "1" in the second section indicates the intra-prediction mode, the value "0" in the first section, the value "0" in the second section and the value The "1" in the third section denotes the IBC copy mode, and the "0" value in the first section, the "0" value in the second section, and the "0" value in the third section denotes palette mode.

В некоторых вариантах, индекс режима прогнозирования представлен с использованием трех двоичных секций (разрядов), In some embodiments, the prediction mode index is represented using three binary sections (bits),

где значение «1» в первой секции обозначает режим внутрикадрового прогнозирования, значение «0» в первой секции и значение «1» во второй секции указывает режим межкадрового прогнозирования, значение «0» в первой секции, значение «0» во второй секции и значение «1» в третьей секции обозначают режим копирования IBC, и значение «0» в первой секции, значение «0» во второй секции и значение «0» в третьей секции обозначают режим палитры.where the value "1" in the first section indicates the intra-prediction mode, the value "0" in the first section and the value "1" in the second section indicates the inter-prediction mode, the value "0" in the first section, the value "0" in the second section and the value The "1" in the third section denotes the IBC copy mode, and the "0" value in the first section, the "0" value in the second section, and the "0" value in the third section denotes palette mode.

В некоторых вариантах, индекс режима прогнозирования представлен с использованием трех двоичных секций (разрядов), где значение «0» в первой секции обозначает режим межкадрового прогнозирования, значение «1» в первой секции и значение «0» во второй секции указывает режим внутрикадрового прогнозирования, значение «1» в первой секции, значение «1» во второй секции и значение «1» в третьей секции обозначают режим копирования IBC, и значение «1» в первой секции, значение «1» во второй секции и значение «0» в третьей секции обозначают режим палитры.In some embodiments, the prediction mode index is represented using three binary sections (bits), where a value of "0" in the first section indicates an inter-prediction mode, a value of "1" in the first section, and a value of "0" in the second section indicates an intra-prediction mode. the value "1" in the first section, the value "1" in the second section and the value "1" in the third section indicate the IBC copy mode, and the value "1" in the first section, the value "1" in the second section and the value "0" in The third section indicates the palette mode.

В некоторых вариантах, передачу сигнализации относительно одной или нескольких двоичных секций (разрядов) в представлении в форме потока битов данных пропускают, если удовлетворяется некое условие. В некоторых вариантах, это условие содержит размер рассматриваемого блока. В некоторых вариантах, это условие содержит указание, что некий режим прогнозирования не активизирован, и в таком случае двоичную секцию (разряд), соответствующую этому режиму прогнозирования, пропускают в представлении в форме потока битов данных. In some embodiments, signaling regarding one or more binary sections (bits) in the data bit stream representation is omitted if a certain condition is satisfied. In some embodiments, this condition contains the size of the block in question. In some embodiments, this condition includes an indication that a certain prediction mode is not activated, in which case the binary section (bit) corresponding to that prediction mode is skipped in the data bit stream representation.

На фиг. 27 показано представление логической схемы способа 2700 обработки видео в соответствии с настоящей технологией. Этот способ 2700 содержит, в ходе операции 2710, осуществление преобразования между блоком видеоролика представлением этого видеоролика в форме потока битов данных. Это представление в форме потока битов данных обрабатывают в соответствии с правилом форматирования, специфицирующим, что первую индикацию использования режима палитры и вторую индикацию использования режима внутрикадрового копирования блоков (IBC) передают в виде сигнализации одну в зависимости от другой.In fig. 27 is a logic diagram representation of a video processing method 2700 in accordance with the present technology. This method 2700 comprises, at step 2710, converting between a block of video and a representation of that video in the form of a stream of data bits. This representation in the form of a data bit stream is processed in accordance with a formatting rule specifying that a first indication of palette mode use and a second indication of intraframe block copy (IBC) mode use are signaled depending on the other.

В некоторых вариантах, это правило форматирования специфицирует, что первую индикацию передают в виде сигнализации в представлении в форме потока битов данных, если режим прогнозирования для рассматриваемого блока совпадает с первым режимом прогнозирования, который не является режимом копирования IBC. В некоторых вариантах, это правило форматирования специфицирует, что вторую индикацию передают в виде сигнализации в представлении в форме потока битов данных, если режим прогнозирования для рассматриваемого блока совпадает с первым режимом прогнозирования, который не является режимом палитры. В некоторых вариантах, указанный первый режим прогнозирования является режимом внутрикадрового прогнозирования.In some embodiments, this formatting rule specifies that a first indication is signaled in a data bitstream representation if the prediction mode for the block in question matches the first prediction mode that is not an IBC copy mode. In some embodiments, this formatting rule specifies that the second indication is signaled in a data bitstream representation if the prediction mode for the block in question matches the first prediction mode that is not a palette mode. In some embodiments, said first prediction mode is an intra-prediction mode.

На фиг. 28 показано представление логической схемы способа 2800 обработки видео в соответствии с настоящей технологией. Этот способ 2800 содержит, в ходе операции 2810, определение, для преобразования между блоком видео и представлением этого видео в форме потока битов данных, присутствия индикации использования режима палитры в представлении в форме потока битов данных на основе размера рассматриваемого блока. Способ 2800 также содержит, в ходе операции 2820, осуществление преобразования на основе указанного определения.In fig. 28 is a logic diagram representation of a video processing method 2800 in accordance with the present technology. This method 2800 comprises, at step 2810, determining, for conversion between a block of video and a bitstream representation of that video, the presence of a palette mode usage indication in the bitstream representation based on the size of the block in question. Method 2800 also includes, at step 2820, performing a conversion based on the specified determination.

На фиг. 29 показано представление логической схемы способа 2900 обработки видео в соответствии с настоящей технологией. Этот способ 2900 содержит, в ходе операции 2910, определение, для преобразования между блоком видео и представлением этого видео в форме потока битов данных, присутствия индикации использования режима внутрикадрового копирования блоков (IBC) в представлении в форме потока битов данных на основе размера рассматриваемого блока. Способ 2900 также содержит, в ходе операции 2920, осуществление преобразования на основе указанного определения. В некоторых вариантах, указание размера блока содержит по меньшей мере один из параметров: число отсчетов в блоке, ширину блока или высоту блока. In fig. 29 is a logic diagram representation of a video processing method 2900 in accordance with the present technology. This method 2900 comprises, at step 2910, determining, for conversion between a block of video and a data bitstream representation of that video, the presence of an indication of the use of an intraframe block copy (IBC) mode in the data bitstream representation based on the size of the block in question. Method 2900 also includes, at step 2920, performing a conversion based on the specified determination. In some embodiments, the block size indication comprises at least one of the number of samples per block, block width, or block height.

В некоторых вариантах, индикацию передают в виде сигнализации в представлении в форме потока битов данных, если ширина блока не больше порогового значения. В некоторых вариантах, индикацию передают в виде сигнализации в представлении в форме потока битов данных, если высота блока не больше порогового значения. В некоторых вариантах, указанная пороговое значение равно 64. In some embodiments, the indication is signaled in a data bit stream representation if the block width is not greater than a threshold. In some embodiments, the indication is signaled in a data bit stream representation if the block height is not greater than a threshold value. In some embodiments, the specified threshold value is 64.

В некоторых вариантах, индикацию передают в виде сигнализации в представлении в форме потока битов данных, если ширина и высота рассматриваемого блока больше порогового значения. В некоторых вариантах, эта пороговое значение равно 4. В некоторых вариантах, индикацию передают в виде сигнализации в представлении в форме потока битов данных, если число отсчетов рассматриваемом блоке больше порогового значения. В некоторых вариантах, эта пороговое значение равно 16. В некоторых вариантах, индикацию передают в виде сигнализации в представлении в форме потока битов данных, если ширина рассматриваемого блока равна высоте этого блока. In some embodiments, the indication is signaled in a data bit stream representation if the width and height of the block in question is greater than a threshold value. In some embodiments, this threshold value is 4. In some embodiments, the indication is provided as an alarm in a data bit stream representation if the number of samples in the block in question is greater than the threshold value. In some embodiments, this threshold value is 16. In some embodiments, the indication is signaled in a data bit stream representation if the width of the block in question is equal to the height of that block.

В некоторых вариантах, индикация не присутствует в представлении в форме потока битов данных, если (1) ширина рассматриваемого блока больше первой порогового значения, (2) высота этого блока больше второй порогового значения или (3) число отсчетов рассматриваемого блоке не больше третьей порогового значения. В некоторых вариантах, первое пороговое значение и второе пороговое значение равны 64. В некоторых вариантах, третья пороговое значение равно 16.In some embodiments, the indication is not present in the data bit stream representation if (1) the width of the block in question is greater than a first threshold, (2) the height of that block is greater than a second threshold, or (3) the number of samples in the block in question is not greater than the third threshold . In some embodiments, the first threshold value and the second threshold value are 64. In some embodiments, the third threshold value is 16.

В некоторых вариантах, указанное определение далее основано на некой характеристике, ассоциированной с рассматриваемым блоком. В некоторых вариантах, эта характеристика содержит указание режима прогнозирования для блока. В некоторых вариантах, эта характеристика содержит параметр квантования для блока. В некоторых вариантах, эта характеристика содержит флаг палитры для блока, соседнего с рассматриваемым блоком. В некоторых вариантах, эта характеристика содержит флаг режима копирования IBC для блока, соседнего с рассматриваемым блоком. В некоторых вариантах, эта характеристика содержит индикацию цветового формата для рассматриваемого блока. В некоторых вариантах, эта характеристика содержит структуру дерева кодирования для рассматриваемого блока. В некоторых вариантах, эта характеристика содержит указание типа группы срезов, типа группы плиток или типа изображения для рассматриваемого блока.In some embodiments, said determination is further based on a certain characteristic associated with the block in question. In some embodiments, this characteristic includes an indication of the prediction mode for the block. In some embodiments, this characteristic comprises a quantization parameter for the block. In some embodiments, this characteristic contains a palette flag for a block adjacent to the block in question. In some embodiments, this characteristic contains an IBC copy mode flag for a block adjacent to the block in question. In some embodiments, this characteristic includes an indication of the color format for the block in question. In some embodiments, this characteristic contains the coding tree structure for the block in question. In some embodiments, this characteristic comprises an indication of the slice group type, tile group type, or image type for the block in question.

На фиг. 30 показано представление логической схемы способа 3000 обработки видео в соответствии с настоящей технологией. Этот способ 3000 содержит, в ходе операции 3010, определение, для преобразования между блоком видео и представлением этого видео в форме потока битов данных, является ли режим палитры допустимым для рассматриваемого блока, на основе второй индикации для видеообласти, содержащей этот блок. Способ 3000 также содержит, в ходе операции 3020, осуществление преобразования на основе указанного определения. In fig. 30 is a logic diagram representation of a video processing method 3000 in accordance with the present technology. This method 3000 comprises, at step 3010, determining, for conversion between a block of video and a data bitstream representation of that video, whether a palette mode is valid for the block in question, based on a second indication for the video area containing that block. Method 3000 also includes, at step 3020, performing a conversion based on the specified determination.

В некоторых вариантах, видеообласть содержит срез, группу плиток или изображение. В некоторых вариантах, представление в форме потока битов данных исключает явную индикацию того, является ли режим палитры допустимым, если вторая индикация указывает, что активизирована дробная разность векторов движения. В некоторых вариантах, вторая индикация представлена в виде флага, присутствующего в представлении в форме потока битов данных. В некоторых вариантах, вторая индикация указывает, активизирован ли режим палитры для видеообласти. В некоторых вариантах, представление в форме потока битов данных исключает явную индикацию того, является ли режим палитры допустимым, если вторая индикация указывает, что режим палитры не активизирован для видеообласти. В некоторых вариантах, режим палитры является недопустимым для рассматриваемого блока, если представление в форме потока битов данных исключает явную индикацию того, является ли режим палитры допустимым.In some embodiments, the video area contains a slice, a group of tiles, or an image. In some embodiments, the data bit stream representation eliminates an explicit indication of whether the palette mode is valid if the second indication indicates that fractional motion vector difference is enabled. In some embodiments, the second indication is in the form of a flag present in the representation in the form of a stream of data bits. In some embodiments, the second indication indicates whether a palette mode is activated for the video area. In some embodiments, the data bit stream representation eliminates an explicit indication of whether the palette mode is valid if the second indication indicates that the palette mode is not enabled for the video region. In some embodiments, the palette mode is invalid for the block in question if the representation in the form of a stream of data bits precludes an explicit indication of whether the palette mode is valid.

На фиг. 31 показано представление логической схемы способа 3100 обработки видео в соответствии с настоящей технологией. Этот способ 3100 содержит, в ходе операции 3110, определение, для преобразования между блоком видео и представлением этого видео в форме потока битов данных, является ли режим внутрикадрового копирования блоков (IBC) допустимым для рассматриваемого блока, на основе второй индикации для видеообласти, содержащей этот блок. Способ 3100 также содержит, в ходе операции 3120, осуществление преобразования на основе указанного определения.In fig. 31 is a logic diagram representation of a video processing method 3100 in accordance with the present technology. This method 3100 comprises, at step 3110, determining, for conversion between a block of video and a representation of that video in the form of a data bit stream, whether intra-block copy (IBC) mode is valid for the block in question, based on a second indication for the video area containing that block. Method 3100 also includes, at step 3120, performing a conversion based on the specified determination.

В некоторых вариантах, указанная видеообласть содержит срез, группу плиток или изображение. В некоторых вариантах, представление в форме потока битов данных исключает явную индикацию того, является ли режим копирования IBC допустимым, если вторая индикация указывает, что активизирована дробная разность векторов движения. В некоторых вариантах, вторая индикация представлена в виде флага, присутствующего в представлении в форме потока битов данных. В некоторых вариантах, вторая индикация указывает, активизирован ли режим копирования IBC для рассматриваемой видеообласти. В некоторых вариантах, представление в форме потока битов данных исключает явную индикацию того, является ли режим копирования IBC допустимым, если вторая индикация указывает, что режим копирования IBC не активизирован для рассматриваемой видеообласти. В некоторых вариантах, режим копирования IBC является недопустимым для блока, если представление в форме потока битов данных исключает явную индикацию того, является ли режим копирования IBC допустимым.In some embodiments, said video area comprises a slice, a group of tiles, or an image. In some embodiments, the data bit stream representation eliminates an explicit indication of whether the IBC copy mode is valid if the second indication indicates that fractional motion vector difference is enabled. In some embodiments, the second indication is in the form of a flag present in the representation in the form of a stream of data bits. In some embodiments, the second indication indicates whether the IBC copy mode is activated for the video region in question. In some embodiments, the data bit stream representation eliminates an explicit indication of whether the IBC copy mode is valid if the second indication indicates that the IBC copy mode is not enabled for the video region in question. In some embodiments, the IBC copy mode is invalid for a block if the data bit stream representation precludes an explicit indication of whether the IBC copy mode is valid.

В некоторых вариантах, процедура преобразования генерирует текущий блок из представления в форме потока битов данных. В некоторых вариантах, процедура преобразования генерирует представление в форме потока битов данных из текущего блока.In some embodiments, the conversion procedure generates the current block from a data bit stream representation. In some embodiments, the conversion procedure generates a bitstream representation of the data from the current block.

Некоторые варианты предлагаемой технологии содержат принятие решение или определение, что следует активизировать инструмент или режим обработки видео. В одном из примеров, когда инструмент или режим обработки видео активизирован, кодирующее устройство будет использовать этот инструмент или режим при обработке блока видео, но может не обязательно модифицировать результирующий поток битов данных на основе использования этого инструмента или режима. Иными словами, процедура преобразования от блока видео к представлению этого видео в форме потока битов данных будет использовать указанный инструмент или режим обработки видео, когда он активизирован на основе принятого решения или определения. В другом примере, когда инструмент или режим обработки видео активизирован, декодирующее устройство будет обрабатывать поток битов данных, зная, что поток битов данных был модифицирован на основе инструмента или режима обработки видео. Иными словами, преобразование от представления этого видео в форме потока битов данных в блок видео будет осуществляться с использованием упомянутого инструмента или режима обработки видео на основе указанного режима или определения.Some embodiments of the proposed technology involve making a decision or determination that a video processing tool or mode should be activated. In one example, when a video processing tool or mode is enabled, the encoder will use that tool or mode when processing a block of video, but may not necessarily modify the resulting data bit stream based on the use of the tool or mode. In other words, the conversion procedure from a block of video to a representation of that video in the form of a stream of data bits will use the specified video processing tool or mode when it is activated based on the decision or determination made. In another example, when a video processing tool or mode is activated, the decoding device will process the data bit stream knowing that the data bit stream has been modified based on the video processing tool or mode. In other words, the conversion from a representation of this video in the form of a stream of data bits to a block of video will be carried out using said video processing tool or mode based on said mode or definition.

Некоторые варианты предлагаемой технологии содержат принятие решение или определение, что следует отменить активизацию инструмента или режима обработки видео. В одном из примеров, когда инструмент или режим обработки видео не активизирован, кодирующее устройство не будет использовать этот инструмент или режим при преобразовании блока видео в представление этого видео в форме потока битов данных. В другом примере, когда инструмент или режим обработки видео не активизирован, декодирующее устройство будет обрабатывать поток битов данных, зная, что этот поток битов данных не был модифицирован с использованием указанного инструмента или режима обработки видео, который был активизирован на основе принятого решения или определения.Some embodiments of the proposed technology involve making a decision or determination that a tool or video processing mode should be deactivated. In one example, when a video processing tool or mode is not enabled, the encoder will not use that tool or mode when converting a block of video into a data bitstream representation of that video. In another example, when a video processing tool or mode is not activated, the decoding device will process the data bit stream knowing that the data bit stream has not been modified using said video processing tool or mode that was activated based on the decision or determination made.

Предлагаемые и другие решения, примеры, варианты, модули и функциональные операции, описываемые в этом документе, могут быть реализованы в цифровой электронной схеме или в компьютерном загружаемом программном обеспечении, встроенном программном обеспечении или аппаратуре, включая структуры, рассматриваемые в настоящем документе, и их структурные эквиваленты, либо в комбинации одного или нескольких перечисленных компонентов. Рассмотренные и другие варианты могут быть реализованы в одном или нескольких компьютерных программных продуктах, т.е. в одном или нескольких модулях компьютерных программных команд, закодированных на читаемом компьютером носителе информации для выполнения посредством устройства обработки данных или для управления работой этого устройства обработки данных. Этот читаемый компьютером носитель может представлять собой машиночитаемое устройство для хранения информации, машиночитаемую подложку для хранения информации, запоминающее устройство, композицию объектов, генерирующую машиночитаемый распространяющийся сигнал или комбинацию одного или нескольких перечисленных объектов. Термин «устройство обработки данных» охватывает все устройства, аппаратуру и машины для обработки данных, включая, например, программируемый процессор, компьютер, либо нескольких процессоров или компьютеров. Такое устройство может содержать, в дополнение к аппаратуре, код, создающий среду для выполнения рассматриваемой компьютерной программы, например, код, составляющий встроенное программное обеспечение процессора, стек протоколов, систему управления базой данных, операционную систему или комбинацию одного или нескольких перечисленных объектов. Распространяющийся сигнал представляет собой искусственно генерируемый сигнал, например, генерируемый машиной электрический, оптический или электромагнитный сигнал, генерируемый для кодирования информации с целью передачи подходящему приемному устройству.The proposed and other solutions, examples, embodiments, modules and functional operations described in this document may be implemented in digital electronic circuitry or in computer downloadable software, firmware or hardware, including the structures discussed herein and their structural equivalents, or in combination of one or more of the listed components. The considered and other options can be implemented in one or more computer software products, i.e. in one or more modules of computer program instructions encoded on a computer-readable storage medium for execution by a data processing device or for controlling the operation of that data processing device. The computer-readable medium may be a computer-readable storage device, a computer-readable storage substrate, a storage device, a composition of objects generating a computer-readable propagating signal, or a combination of one or more of the above. The term "data processing device" covers all devices, apparatus and machines for processing data, including, for example, a programmable processor, a computer, or multiple processors or computers. Such a device may contain, in addition to hardware, code that provides an environment for executing the computer program in question, such as code constituting processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of these. A propagating signal is an artificially generated signal, such as a machine-generated electrical, optical, or electromagnetic signal, generated to encode information for transmission to a suitable receiving device.

Компьютерная программа (также известная как программа, программное обеспечение, программное приложение, сценарий (скрипт) или код) может быть написана на каком-либо языке программирования, включая компилируемые или интерпретируемые языки, и может быть развернута в любой форме, включая автономную программу или в виде модуля, компонента, подпрограммы или другой единицы, подходящей для использования в компьютерной среде. Компьютерная программа необязательно соответствует файлу в файловой системе. Программа может быть сохранена в части файла, который содержит также другие программы или данные (например, один или несколько сценариев сохраняются в документе на языке разметки), в одном файле, специально предназначенном только для рассматриваемой программы, или в нескольких координированных файлах (например, в файлах, сохраняющих один или несколько модулей, подпрограмм или фрагментов кода). Компьютерная программа может быть развернута для выполнения на одном компьютере или на нескольких компьютерах, расположенных в одном пункте или распределенных по нескольким пунктам и соединенных посредством сети связи.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, and may be deployed in any form, including a stand-alone program or in form of a module, component, subroutine, or other unit suitable for use in a computer environment. A computer program does not necessarily correspond to a file on a file system. A program may be stored in a portion of a file that also contains other programs or data (for example, one or more scripts are stored in a markup language document), in a single file specifically dedicated only to the program in question, or in multiple coordinated files (for example, files that save one or more modules, subroutines or code fragments). A computer program may be deployed for execution on a single computer or on multiple computers located at a single location or distributed over multiple locations and connected through a communications network.

Процедуры и логические схемы, описываемые в настоящем документе, могут быть осуществлены одним или несколькими программируемыми процессорами, выполняющими одну или несколько компьютерных программ для реализации функций путем оперирования над входными данными и генерации выходных данных. Эти процедуры и логические схемы могут также быть осуществлены посредством, и аппаратура может также быть реализована в виде, логической схемы специального назначения, например, программируемой пользователем вентильной матрицы (FPGA (field programmable gate array)) или специализированной интегральной схемы (ASIC (application specific integrated circuit)).The procedures and logic described herein may be implemented by one or more programmable processors executing one or more computer programs to implement functions by operating on input data and generating output data. These procedures and logic circuits may also be implemented by, and the hardware may also be implemented in, the form of special-purpose logic circuitry, such as a field programmable gate array (FPGA) or application specific integrated circuit (ASIC). circuit)).

К процессорам, подходящим для выполнения компьютерной программы, относятся, например, микропроцессоры общего и специального назначения и какие-либо один или несколько процессоров цифрового компьютера какого-либо типа. В общем случае, процессор будет принимать команды и данные из постоянного запоминающего устройства и/или из запоминающего устройства с произвольной выборкой. Основными элементами компьютера являются процессор для выполнения команд и одно или несколько запоминающих устройств для сохранения команд и данных. В общем случае, компьютер должен также содержать или быть оперативно связанным для приема данных и/или для передачи данных, одно или несколько запоминающих устройств большой емкости для хранения данных, например, магнитные устройства, магнитооптические диски или оптические диски. Однако компьютеру необязательно иметь такие устройства. К читаемым компьютером носителям для сохранения команд компьютерных программ и данных относятся все формы энергонезависимых запоминающих устройств и носителей информации, включая, например, полупроводниковые запоминающие устройства, например, стираемое, программируемое постоянное запоминающее устройство (СППЗУ (EPROM)), электрически стираемое программируемое запоминающее устройство (ЭСППЗУ (EEPROM)) и устройства флэш-памяти; магнитные диски, например, встроенные жесткие диски или съемные диски; магнитооптические диски; и диски CD ROM и DVD-ROM. Процессор и запоминающее устройство могут быть дополнены или встроены в логическую схему специального назначения. Processors suitable for executing a computer program include, for example, general purpose and special purpose microprocessors and any one or more digital computer processors of any type. In general, the processor will receive instructions and data from read only memory and/or random access memory. The main elements of a computer are a processor for executing commands and one or more storage devices for storing commands and data. In general, a computer will also include, or be operatively coupled to receive data and/or transmit data, one or more mass storage devices for storing data, such as magnetic devices, magneto-optical disks, or optical disks. However, the computer does not need to have such devices. Computer-readable media for storing computer program instructions and data includes all forms of non-volatile storage devices and storage media, including, for example, semiconductor storage devices, such as erasable programmable read-only memory (EPROM), electrically erasable programmable memory (EPROM). EEPROM) and flash memory devices; magnetic disks, such as built-in hard drives or removable drives; magneto-optical disks; and CD ROMs and DVD-ROMs. The processor and storage device can be augmented or embedded in special-purpose logic circuitry.

Хотя настоящий патентный документ содержит много конкретных деталей, их не следует толковать в качестве ограничений объема какого-либо предмета изобретения или того, что может быть заявлено в Формуле изобретения, а всего лишь как описание признаков, которые могут быть специфичны для конкретных вариантов конкретных способов. Некоторые признаки, описываемые в настоящем патентном документе в контексте раздельных вариантов, могут также быть реализованы в сочетании в одном варианте. Напротив, различные признаки, описываемые в контексте одного варианта, могут также быть реализованы в нескольких вариантах по отдельности или в какой-либо подходящей субкомбинации. Более того, хотя признаки могут быть описаны выше как действующие в некоторых комбинациях и даже первоначально заявлены таковыми, один или несколько признаков из заявленной комбинации могут, в некоторых случаях, быть исключены из такой комбинации, и заявленная комбинация может быть превращена в субкомбинацию или в вариацию субкомбинации.Although this patent document contains many specific details, they should not be construed as limiting the scope of any subject matter of the invention or what may be claimed, but merely as a description of features that may be specific to particular embodiments of particular methods. Certain features described in this patent document in the context of separate embodiments may also be implemented in combination in a single embodiment. Conversely, various features described in the context of one embodiment may also be implemented in multiple embodiments individually or in some suitable subcombination. Moreover, although features may be described above as operating in certain combinations, and even originally stated as such, one or more features from a claimed combination may, in some cases, be excluded from such combination, and the claimed combination may be made into a subcombination or variation subcombinations.

Аналогично, хотя операции показаны на чертежах в конкретном порядке, это не следует понимать как требование, чтобы такие операции всегда осуществлялись именно в показанном конкретном порядке, или в последовательном порядке, или чтобы все показанные операции были выполнены, для достижения желаемого результата. Более того, разделение разнообразных компонентов системы в описываемых в настоящем патентном документе вариантах не следует понимать как требование такого разделения во всех вариантах.Likewise, although operations are shown in a particular order in the drawings, this should not be understood to require that such operations always be performed in the particular order shown, or in a sequential order, or that all operations shown be performed in order to achieve the desired result. Moreover, the separation of the various system components in the embodiments described herein should not be understood to require such separation in all embodiments.

Здесь описано только небольшое число реализаций и примеров, но и другие варианты реализации, усовершенствования и вариации могут быть сделаны на основе того, что описано и иллюстрируется в настоящем патентном документе.Only a small number of implementations and examples are described herein, but other implementations, improvements and variations may be made based on what is described and illustrated herein.

Claims (35)

1. Способ обработки данных видео, содержащий этапы, на которых:1. A method for processing video data, comprising the steps of: определяют, для преобразования между текущим видеоблоком видео и потоком битов данных видео, что первый флаг прогнозирования включен в поток битов данных, причем текущий видеоблок не пропущен, при этом первый флаг прогнозирования указывает, применяется ли режим межкадрового прогнозирования или режим внутрикадрового прогнозирования; determining, for conversion between the current video video block and the video data bit stream, that a first prediction flag is included in the data bit stream, wherein the current video block is not skipped, wherein the first prediction flag indicates whether an inter-frame prediction mode or an intra-frame prediction mode is applied; определяют, что в поток битов данных дополнительно включен второй флаг прогнозирования или третий флаг прогнозирования, по меньшей мере на основе значения первого флага прогнозирования, причем второй флаг прогнозирования указывает, применяется ли первый режим прогнозирования, при этом в первом режиме прогнозирования прогнозируемые отсчеты получаются из значений реконструированных отсчетов того же изображения, которое содержит текущий видеоблок, при этом третий флаг прогнозирования указывает, применяется ли второй режим прогнозирования, причем во втором режиме прогнозирования реконструированные отсчеты представлены множеством репрезентативных цветовых значений, и множество репрезентативных цветовых значений содержит по меньшей мере одно из 1) предикторов палитры, 2) выпадающих отсчетов или 3) информации о палитре, включенной в поток битов данных; иdetermining that a second prediction flag or a third prediction flag is further included in the data bit stream, at least based on the value of the first prediction flag, wherein the second prediction flag indicates whether the first prediction mode is applied, wherein in the first prediction mode, prediction samples are obtained from the values reconstructed samples of the same image that contains the current video block, wherein a third prediction flag indicates whether a second prediction mode is applied, wherein in the second prediction mode, the reconstructed samples are represented by a plurality of representative color values, and the plurality of representative color values comprises at least one of 1) palette predictors, 2) outlier samples, or 3) palette information included in the data bitstream; And выполняют преобразование между первым видеоблоком и потоком битов данных.performing a conversion between the first video block and the data bit stream. 2. Способ по п. 1, в котором второй флаг прогнозирования дополнительно включается в поток битов данных, если первый флаг прогнозирования указывает, что применяется режим межкадрового прогнозирования.2. The method of claim 1, wherein the second prediction flag is further included in the data bit stream if the first prediction flag indicates that an inter-frame prediction mode is being applied. 3. Способ по п. 1 или 2, в котором третий флаг прогнозирования дополнительно включается в поток битов данных, если первый флаг прогнозирования указывает, что применяется режим внутрикадрового прогнозирования.3. The method of claim 1 or 2, wherein the third prediction flag is further included in the data bit stream if the first prediction flag indicates that an intra-frame prediction mode is being applied. 4. Способ по любому из пп. 1 – 3, в котором третий флаг прогнозирования кодируется контекстно-зависимым способом с использованием одного контекста. 4. Method according to any one of paragraphs. 1 to 3, in which the third prediction flag is encoded in a context-sensitive manner using a single context. 5. Способ по любому из пп. 1 – 4, в котором включение второго флага прогнозирования и третьего флага прогнозирования в поток битов данных основано на размере текущего видеоблока.5. Method according to any one of paragraphs. 1 to 4, wherein the inclusion of the second prediction flag and the third prediction flag in the data bitstream is based on the size of the current video block. 6. Способ по любому из пп. 1 – 5, в котором включение второго флага прогнозирования в поток битов данных дополнительно основано на том, что флаг активизации, относящийся к первому режиму прогнозирования, находится на более высоком уровне, и включение третьего флага прогнозирования в поток битов данных дополнительно основано на том, что флаг активизации, относящийся ко второму режиму прогнозирования, находится на более высоком уровне, 6. Method according to any one of paragraphs. 1 to 5, wherein the inclusion of a second prediction flag in the data bit stream is further based on the fact that the enable flag associated with the first prediction mode is at a higher level, and the inclusion of a third prediction flag in the data bit stream is further based on the fact that the activation flag related to the second prediction mode is at a higher level, причем указанный более высокий уровень может представлять собой уровень последовательности, уровень изображения, уровень группы плиток или группу плиток.wherein said higher level may be a sequence level, an image level, a tile group level, or a tile group level. 7. Способ по любому из пп. 1 – 6, в котором для индикации, какой режим из режима внутрикадрового прогнозирования, режима межкадрового прогнозирования, первого режима прогнозирования и второго режим прогнозирования, применяется к текущему видеоблоку, используются первый бин и второй бин,7. Method according to any one of paragraphs. 1 to 6, in which the first bin and the second bin are used to indicate which mode from the intra-prediction mode, the inter-prediction mode, the first prediction mode and the second prediction mode is applied to the current video block, причем M равно значению первого бина и N равно значению второго бина,where M is equal to the value of the first bin and N is equal to the value of the second bin, при этом в случае, когда (M, N) = (0, 0), к текущему видеоблоку применяется режим межкадрового прогнозирования.Moreover, in the case when (M, N) = (0, 0), the interframe prediction mode is applied to the current video block. 8. Способ по п. 7, в котором в случае, когда (M, N) = (0, 1), к текущему видеоблоку применяется первый режим прогнозирования.8. The method according to claim 7, wherein in the case where (M, N) = (0, 1), the first prediction mode is applied to the current video block. 9. Способ по п. 7 или 8, в котором в случае, когда (M, N) = (0, 0) или (0, 1), первый бин соответствует первому флагу прогнозирования, а второй бин соответствует второму флагу прогнозирования, при этом третий флаг прогнозирования не включен в поток битов данных.9. The method according to claim 7 or 8, wherein in the case where (M, N) = (0, 0) or (0, 1), the first bin corresponds to the first prediction flag, and the second bin corresponds to the second prediction flag, when In this case, the third prediction flag is not included in the data bit stream. 10. Способ по любому из пп. 7 – 9, в котором в случае, когда (M, N) = (1, 0), к текущему видеоблоку применяется режим внутрикадрового прогнозирования. 10. Method according to any one of paragraphs. 7 – 9, in which in the case when (M, N) = (1, 0), the intra-frame prediction mode is applied to the current video block. 11. Способ по любому из пп. 7 – 10, в котором в случае, когда (M, N) = (1, 1), к текущему видеоблоку применяется второй режим прогнозирования.11. Method according to any one of paragraphs. 7 – 10, in which in the case when (M, N) = (1, 1), the second prediction mode is applied to the current video block. 12. Способ по любому из пп. 7 – 11, в котором в случае, когда (M, N) = (1, 0) или (1, 1), первый бин соответствует первому флагу прогнозирования, а второй бин соответствует третьему флагу прогнозирования, при этом второй флаг прогнозирования не включен в поток битов данных.12. Method according to any one of paragraphs. 7 – 11, in which in the case where (M, N) = (1, 0) or (1, 1), the first bin corresponds to the first prediction flag, and the second bin corresponds to the third prediction flag, while the second prediction flag is not included into a stream of data bits. 13. Способ по любому из пп. 7 – 12, в котором в случае, когда (M, N) = (0, 0), (0, 1) или (1, 1), третий бин, указывающий, применять ли третий режим прогнозирования, исключен из потока битов данных, при этом в третьем режиме прогнозирования разность между квантованным остатком и прогнозом квантованного остатка представлена в потоке битов данных в виде представления с использованием импульсно-кодовой модуляции.13. Method according to any one of paragraphs. 7 - 12, in which in the case where (M, N) = (0, 0), (0, 1) or (1, 1), the third bin indicating whether to apply the third prediction mode is excluded from the data bit stream wherein in the third prediction mode, the difference between the quantized remainder and the prediction of the quantized remainder is represented in the data bit stream as a PCM representation. 14. Способ по любому из пп. 7 – 13, в котором третий бин, указывающий, применять ли третий режим прогнозирования, включен в поток битов данных в случае, когда (M, N) = (1, 0), при этом в третьем режиме прогнозирования разность между квантованным остатком и прогнозом квантованного остатка представлена в потоке битов данных в виде представления с использованием импульсно-кодовой модуляции.14. Method according to any one of paragraphs. 7 – 13, in which the third bin indicating whether to apply the third prediction mode is included in the data bit stream in the case where (M, N) = (1, 0), while in the third prediction mode the difference between the quantized remainder and the prediction the quantized remainder is represented in the data bit stream as a representation using pulse code modulation. 15. Способ по любому из пп. 1 – 14, в котором процедура преобразования содержит кодирование текущего видеоблока в поток битов данных.15. Method according to any one of paragraphs. 1–14, in which the conversion procedure involves encoding the current video block into a stream of data bits. 16. Способ по любому из п. 1 – 14, в котором процедура преобразования содержит декодирование текущего видеоблока из потока битов данных.16. The method as claimed in any one of claims 1 to 14, wherein the conversion procedure comprises decoding the current video block from the data bit stream. 17. Устройство обработки данных видео, содержащее процессор и энергонезависимое запоминающее устройство с записанными в нем командами, причем команды при их исполнении процессором вызывают выполнение процессором:17. A video data processing device comprising a processor and a non-volatile storage device with commands written therein, wherein the commands, when executed by the processor, cause the processor to execute: определения, для преобразования между текущим видеоблоком видео и потоком битов данных видео, что первый флаг прогнозирования включен в поток битов данных, причем текущий видеоблок не пропущен, при этом первый флаг прогнозирования указывает, применяется ли режим межкадрового прогнозирования или режим внутрикадрового прогнозирования; determining, for conversion between the current video video block and the video data bit stream, that a first prediction flag is included in the data bit stream, wherein the current video block is not skipped, wherein the first prediction flag indicates whether an inter-frame prediction mode or an intra-frame prediction mode is applied; определения, что в поток битов данных дополнительно включен второй флаг прогнозирования или третий флаг прогнозирования, по меньшей мере на основе значения первого флага прогнозирования, причем второй флаг прогнозирования указывает, применяется ли первый режим прогнозирования, при этом в этом первом режиме прогнозирования прогнозируемые отсчеты получаются из значений реконструированных отсчетов того же изображения, которое содержит текущий видеоблок, при этом третий флаг прогнозирования указывает, применяется ли второй режим прогнозирования, причем во втором режиме прогнозирования реконструированные отсчеты представлены множеством репрезентативных цветовых значений, и множество репрезентативных цветовых значений содержит по меньшей мере одно из 1) предикторов палитры, 2) выпадающих отсчетов или 3) информации о палитре, включенной в поток битов данных; иdetermining that a second prediction flag or a third prediction flag is further included in the data bit stream, at least based on the value of the first prediction flag, wherein the second prediction flag indicates whether the first prediction mode is applied, wherein in the first prediction mode, predicted samples are obtained from values of reconstructed samples of the same image that contains the current video block, wherein a third prediction flag indicates whether a second prediction mode is applied, wherein in the second prediction mode, the reconstructed samples are represented by a plurality of representative color values, and the plurality of representative color values comprises at least one of 1 ) palette predictors, 2) outlier samples, or 3) palette information included in the data bit stream; And выполнения преобразования между первым видеоблоком и потоком битов данных.performing a conversion between the first video block and the data bit stream. 18. Энергонезависимый читаемый компьютером носитель для хранения информации, хранящий команды, которые при исполнении процессором вызывают выполнение процессором:18. A non-volatile computer-readable storage medium that stores instructions that, when executed by a processor, cause the processor to execute: определения, для преобразования между текущим видеоблоком видео и потоком битов данных видео, что первый флаг прогнозирования включен в поток битов данных, причем текущий видеоблок не пропущен, при этом первый флаг прогнозирования указывает, применяется ли режим межкадрового прогнозирования или режим внутрикадрового прогнозирования; determining, for conversion between the current video video block and the video data bit stream, that a first prediction flag is included in the data bit stream, wherein the current video block is not skipped, wherein the first prediction flag indicates whether an inter-frame prediction mode or an intra-frame prediction mode is applied; определения, что в поток битов данных дополнительно включен второй флаг прогнозирования или третий флаг прогнозирования, по меньшей мере на основе значения первого флага прогнозирования, причем второй флаг прогнозирования указывает, применяется ли первый режим прогнозирования, при этом в этом первом режиме прогнозирования прогнозируемые отсчеты получаются из значений реконструированных отсчетов того же изображения, которое содержит текущий видеоблок, при этом третий флаг прогнозирования указывает, применяется ли второй режим прогнозирования, причем во втором режиме прогнозирования реконструированные отсчеты представлены множеством репрезентативных цветовых значений, и множество репрезентативных цветовых значений содержит по меньшей мере одно из 1) предикторов палитры, 2) выпадающих отсчетов или 3) информации о палитре, включенной в поток битов данных; иdetermining that a second prediction flag or a third prediction flag is further included in the data bit stream, at least based on the value of the first prediction flag, wherein the second prediction flag indicates whether the first prediction mode is applied, wherein in the first prediction mode, predicted samples are obtained from values of reconstructed samples of the same image that contains the current video block, wherein a third prediction flag indicates whether a second prediction mode is applied, wherein in the second prediction mode, the reconstructed samples are represented by a plurality of representative color values, and the plurality of representative color values comprises at least one of 1 ) palette predictors, 2) outlier samples, or 3) palette information included in the data bitstream; And выполнения преобразования между первым видеоблоком и потоком битов данных.performing a conversion between the first video block and the data bit stream. 19. Способ сохранения потока битов данных видео, содержащий этапы, на которых:19. A method for storing a video data bit stream, comprising the steps of: определяют, для преобразования между текущим видеоблоком видео и потоком битов данных видео, что первый флаг прогнозирования включен в поток битов данных, причем текущий видеоблок не пропущен, при этом первый флаг прогнозирования указывает, применяется ли режим межкадрового прогнозирования или режим внутрикадрового прогнозирования; determining, for conversion between the current video video block and the video data bit stream, that a first prediction flag is included in the data bit stream, wherein the current video block is not skipped, wherein the first prediction flag indicates whether an inter-frame prediction mode or an intra-frame prediction mode is applied; определяют, что в поток битов данных дополнительно включен второй флаг прогнозирования или третий флаг прогнозирования, по меньшей мере на основе значения первого флага прогнозирования, причем второй флаг прогнозирования указывает, применяется ли первый режим прогнозирования, при этом в первом режиме прогнозирования прогнозируемые отсчеты получаются из значений реконструированных отсчетов того же изображения, которое содержит текущий видеоблок, при этом третий флаг прогнозирования указывает, применяется ли второй режим прогнозирования, причем во втором режиме прогнозирования реконструированные отсчеты представлены множеством репрезентативных цветовых значений, и множество репрезентативных цветовых значений содержит по меньшей мере одно из 1) предикторов палитры, 2) выпадающих отсчетов или 3) информации о палитре, включенной в поток битов данных;determining that a second prediction flag or a third prediction flag is further included in the data bit stream, at least based on the value of the first prediction flag, wherein the second prediction flag indicates whether the first prediction mode is applied, wherein in the first prediction mode, prediction samples are obtained from the values reconstructed samples of the same image that contains the current video block, wherein a third prediction flag indicates whether a second prediction mode is applied, wherein in the second prediction mode, the reconstructed samples are represented by a plurality of representative color values, and the plurality of representative color values comprises at least one of 1) palette predictors, 2) outlier samples, or 3) palette information included in the data bitstream; выполняют преобразование между первым видеоблоком и потоком битов данных;performing a conversion between the first video block and the data bit stream; сохраняют поток битов данных на энергонезависимом читаемом компьютером носителе для записи информации.storing the stream of data bits on a non-volatile computer-readable medium for recording information.
RU2021125577A 2019-03-08 2020-02-24 Joint coding of palette mode indication RU2810950C2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNPCT/CN2019/077454 2019-03-08

Publications (2)

Publication Number Publication Date
RU2021125577A RU2021125577A (en) 2023-02-28
RU2810950C2 true RU2810950C2 (en) 2024-01-09

Family

ID=

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2483467C2 (en) * 2006-12-14 2013-05-27 Панасоник Корпорэйшн Method of encoding moving image, device for encoding moving image, method of recording moving image, recording medium, method of reproducing moving image, apparatus for reproducing moving image, and system for reproducing moving image
US20150312573A1 (en) * 2014-03-17 2015-10-29 Nokia Technologies Oy Method and technical equipment for video encoding and decoding
US20150373325A1 (en) * 2014-06-20 2015-12-24 Qualcomm Incorporated Single color palette mode in video coding
EP3211900A1 (en) * 2014-11-28 2017-08-30 Tongji University Image coding method, decoding method, coding device and decoding device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2483467C2 (en) * 2006-12-14 2013-05-27 Панасоник Корпорэйшн Method of encoding moving image, device for encoding moving image, method of recording moving image, recording medium, method of reproducing moving image, apparatus for reproducing moving image, and system for reproducing moving image
US20150312573A1 (en) * 2014-03-17 2015-10-29 Nokia Technologies Oy Method and technical equipment for video encoding and decoding
US20150373325A1 (en) * 2014-06-20 2015-12-24 Qualcomm Incorporated Single color palette mode in video coding
EP3211900A1 (en) * 2014-11-28 2017-08-30 Tongji University Image coding method, decoding method, coding device and decoding device

Similar Documents

Publication Publication Date Title
CN114208174B (en) Palette mode coding in prediction
US11677953B2 (en) Independent coding of palette mode usage indication
KR102624456B1 (en) Quantization process in palette mode
US11683503B2 (en) Mode determining for palette mode in prediction process
KR102649584B1 (en) Size limitations based on chroma intra mode
CN113475077B (en) Independent coding and decoding of palette mode usage indication
WO2021013119A1 (en) Mode determination for palette mode coding
KR20210132662A (en) Joint Coding of Instruction Using Palette Mode
WO2020207421A1 (en) Entry construction for palette mode coding
RU2810950C2 (en) Joint coding of palette mode indication
RU2816845C2 (en) Independent coding of palette mode usage indication
RU2803621C2 (en) Quantization procedure for palette mode
JP7442673B2 (en) Minimum acceptable quantization for skip block transformation in video coding
WO2021013210A1 (en) Mode determining for palette mode in prediction process