RU2786626C2 - Method and device for image separation - Google Patents

Method and device for image separation Download PDF

Info

Publication number
RU2786626C2
RU2786626C2 RU2021108089A RU2021108089A RU2786626C2 RU 2786626 C2 RU2786626 C2 RU 2786626C2 RU 2021108089 A RU2021108089 A RU 2021108089A RU 2021108089 A RU2021108089 A RU 2021108089A RU 2786626 C2 RU2786626 C2 RU 2786626C2
Authority
RU
Russia
Prior art keywords
current node
block
mode
node
split
Prior art date
Application number
RU2021108089A
Other languages
Russian (ru)
Other versions
RU2021108089A (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 RU2021108089A publication Critical patent/RU2021108089A/en
Application granted granted Critical
Publication of RU2786626C2 publication Critical patent/RU2786626C2/en

Links

Images

Abstract

FIELD: video encoding.
SUBSTANCE: group of inventions relates to the field of video encoding, namely to image separation technologies. A method for image separation is proposed. The method includes: determination of a mode of separation of the current node, where the current node includes a brightness block and a chromaticity block. Next, it is determined, based on the mode of separation of the current node and a size of the current node, that the chromaticity block of the current node is not additionally separated. The brightness block of the current node is separated based on the mode of separation of the current node.
EFFECT: reduction in throughput capacity of codec due to determination of separation of the current node.
45 cl, 16 dwg, 2 tbl

Description

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

Настоящее изобретение относится к области видеокодирования, а точнее, к способу и устройству для разделения изображения (picture partition).The present invention relates to the field of video coding, and more specifically, to a method and device for dividing an image (picture partition).

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

В настоящее время интернет-технологии непрерывно усовершенствуются, материальная и духовная культура людей все больше обогащается, возрастает потребность в приложениях видео, особенно видео высокой четкости, в интернете. Однако видео высокой четкости содержит довольно большой объем данных. Для передачи видео высокой четкости в интернете с ограниченной полосой пропускания, необходимо сначала решить техническую задачу, связанную с кодированием и декодированием видео. Кодирование видео используется в широком спектре приложений цифрового видео, например, в широковещательном цифровом телевидении, передаче видео через интернет и мобильные сети, в диалоговых приложениях в реальном времени, таких как видеочат и видеоконференцсвязь, диски DVD и Blu-ray, системы сбора и редактирования контента видео и приложения для видеокамер безопасности.At present, Internet technologies are continuously improving, the material and spiritual culture of people is increasingly enriched, and the need for video applications, especially high-definition video, on the Internet is increasing. However, HD video contains quite a large amount of data. To transmit high-definition video on the Internet with limited bandwidth, you must first solve the technical problem associated with encoding and decoding video. Video encoding is used in a wide range of digital video applications, such as digital broadcast television, video transmission over the Internet and mobile networks, real-time conversational applications such as video chat and video conferencing, DVD and Blu-ray discs, content collection and editing systems. video and security camera applications.

Каждое изображение видеопоследовательности обычно разделяется на набор неперекрывающихся блоков, и кодирование обычно выполняется на уровне блоков. Например, блок предсказания генерируется посредством пространственного (внутреннее изображение) предсказания и/или временного (внешнего) предсказания. Соответственно, режим предсказания может включать в себя режим внутреннего предсказания (пространственное предсказание) и режим внешнего предсказания (временное предсказание). Набор режимов внутреннего предсказания может включать в себя 35 различных режимов внутреннего предсказания, например, ненаправленные режимы, такие как DC режим (или усредненный) и планарный режим, или направленные режимы, определенные в H.265; или может включать в себя 67 различных режимов внутреннего предсказания, например, ненаправленные режимы, такие как DC режим (или усредненный) и планарный режим, или направленные режимы, определенные в H.266, находящемся в стадии разработки. Набор режимов внешнего предсказания зависит от доступного опорного изображения и другого параметра внешнего предсказания, например, в зависимости от использования всего опорного изображения или только части опорного изображения.Each picture of a video sequence is usually divided into a set of non-overlapping blocks, and encoding is usually done at the block level. For example, a prediction block is generated by spatial (inner image) prediction and/or temporal (outer) prediction. Accordingly, the prediction mode may include an intra prediction mode (spatial prediction) and an inter prediction mode (temporal prediction). The set of intra prediction modes may include 35 different intra prediction modes, such as non-directional modes such as DC (or averaged) mode and planar mode, or directional modes defined in H.265; or may include 67 different intra prediction modes, such as non-directional modes such as DC (or averaged) mode and planar mode, or directional modes defined in H.266 under development. The set of inter prediction modes depends on the available reference picture and another inter prediction parameter, such as whether the entire reference picture is used or only part of the reference picture.

Используемое в настоящее время видео, как правило, является цветным видео и включает в себя компонент цветности в дополнение к компоненту яркости. Следовательно, помимо кодирования и декодирования компонента яркости, необходимо также кодировать и декодировать компонент цветности. Однако эффективность кодирования и декодирования в традиционной технологии сравнительно невысока.The video currently in use is typically color video and includes a chrominance component in addition to a luminance component. Therefore, in addition to encoding and decoding the luma component, it is also necessary to encode and decode the chrominance component. However, the efficiency of encoding and decoding in the conventional technology is relatively low.

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

Варианты осуществления настоящего изобретения (или этого раскрытия) предоставляют устройство и способ разделения изображения.Embodiments of the present invention (or this disclosure) provide an apparatus and method for dividing an image.

Согласно первому аспекту вариант осуществления настоящего изобретения относится к способу разделения изображения. Способ выполняется устройством для декодирования или кодирования видеопотока. Способ включает в себя: определение режима разделения текущего узла, где текущий узел включает в себя блок яркости и блок цветности; определение, на основании режима разделения текущего узла и размера текущего узла, что блок цветности текущего узла дополнительно не разделяется; и, когда блок цветности текущего узла больше не разделяется, разделение блока яркости текущего узла на основании режима разделения текущего узла.According to a first aspect, an embodiment of the present invention relates to an image division method. The method is performed by a device for decoding or encoding a video stream. The method includes: determining a split mode of the current node, where the current node includes a luminance block and a chrominance block; determining, based on the split mode of the current node and the size of the current node, that the chrominance block of the current node is not further split; and, when the current node's chrominance block is no longer split, splitting the current node's luminance block based on the splitting mode of the current node.

Согласно способу в первом аспекте, когда блок цветности текущего узла дополнительно не разделяется, можно разделить только блок яркости текущего узла, тем самым, повышая эффективность кодирования и декодирования, снижая максимальную пропускную способность кодека и облегчая реализацию кодека.According to the method in the first aspect, when the chrominance block of the current node is not further divided, only the luminance block of the current node can be divided, thereby improving encoding and decoding efficiency, reducing the maximum bandwidth of the codec, and facilitating the implementation of the codec.

Согласно второму аспекту вариант осуществления настоящего изобретения относится к устройству для декодирования видеопотока, включающее в себя процессор и память. В памяти хранится инструкция, и инструкция позволяет процессору выполнять способ согласно первому аспекту.According to a second aspect, an embodiment of the present invention relates to a device for decoding a video stream, including a processor and a memory. An instruction is stored in the memory, and the instruction enables the processor to execute the method according to the first aspect.

Согласно третьему аспекту вариант осуществления настоящего изобретения относится к устройству для кодирования видеопотока, включающее в себя процессор и память. В памяти хранится инструкция, и инструкция позволяет процессору выполнять способ согласно первому аспекту.According to a third aspect, an embodiment of the present invention relates to a video stream encoding apparatus including a processor and a memory. An instruction is stored in the memory, and the instruction enables the processor to execute the method according to the first aspect.

Согласно четвертому аспекту предлагается машиночитаемый носитель данных. Машиночитаемый носитель данных хранит инструкцию; и когда инструкция выполняется, один или несколько процессоры выполнены с возможностью кодировать видеоданные. Инструкция позволяет одному или нескольким процессорам выполнять способ согласно любому возможному варианту осуществления первого аспекта.According to a fourth aspect, a computer-readable storage medium is provided. A computer-readable storage medium stores an instruction; and when the instruction is executed, one or more processors are configured to encode the video data. The instruction allows one or more processors to execute the method according to any possible embodiment of the first aspect.

Согласно пятому аспекту вариант осуществления настоящего изобретения относится к компьютерной программе, включающей в себя программный код. Когда программный код выполняется на компьютере, выполняется способ согласно любому возможному варианту осуществления первого аспекта.According to a fifth aspect, an embodiment of the present invention relates to a computer program including a program code. When the program code is executed on the computer, the method according to any possible embodiment of the first aspect is executed.

На прилагаемых чертежах и в нижеследующих описаниях приведены подробности одного или более вариантов осуществления. Другие признаки, объекты и преимущества будут очевидны из описания, чертежей и формулы изобретения.The accompanying drawings and the following descriptions provide details of one or more embodiments. Other features, objects and advantages will be apparent from the description, drawings and claims.

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

Для более четкого описания технических решений в вариантах осуществления настоящего изобретения или уровня техники, ниже описаны сопроводительные чертежи для описания вариантов осуществления настоящего изобретения или уровня техники.In order to more clearly describe the technical solutions in the embodiments of the present invention or the prior art, the following describes the accompanying drawings to describe the embodiments of the present invention or the prior art.

Фиг. 1A является блок-схемой примера системы кодирования видео для реализации варианта осуществления настоящего изобретения;Fig. 1A is a block diagram of an example of a video coding system for implementing an embodiment of the present invention;

фиг. 1B является блок-схемой примера системы кодирования видео, включающей в себя один или два кодера 20 на фиг. 2 и декодер 30 на фиг. 3;fig. 1B is a block diagram of an example of a video coding system including one or two encoders 20 in FIG. 2 and decoder 30 in FIG. 3;

фиг. 2 является блок-схемой, показывающей примерную структуру видеокодера для реализации варианта осуществления настоящего изобретения;fig. 2 is a block diagram showing an exemplary structure of a video encoder for implementing an embodiment of the present invention;

фиг. 3 является блок-схемой, показывающей примерную структуру видеодекодера для реализации варианта осуществления настоящего изобретения;fig. 3 is a block diagram showing an exemplary structure of a video decoder for implementing an embodiment of the present invention;

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

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

фиг. 6 показывает пример примерной сетки в YUV формате;fig. 6 shows an example of an exemplary grid in YUV format;

фиг. 7А-фиг. 7E показывают пять различных типов разделения;fig. 7A-fig. 7E show five different types of separation;

фиг. 8 показывает режим разделения дерева квадрантов плюс двоичного дерева;fig. 8 shows the quadtree plus binary tree split mode;

фиг. 9 является блок-схемой алгоритма способа согласно первому варианту осуществления настоящего изобретения;fig. 9 is a flowchart of a method according to the first embodiment of the present invention;

фиг. 10 является блок-схемой алгоритма этапа 906 в варианте 1 осуществления настоящего изобретения; иfig. 10 is a flowchart of step 906 in Embodiment 1 of the present invention; and

фиг. 11 показывает блок-схему алгоритма способа согласно третьему варианту осуществления настоящего изобретения.fig. 11 shows a flowchart of a method according to a third embodiment of the present invention.

В дальнейшем идентичные ссылочные позиции представляют идентичные или, по меньшей мере, функционально эквивалентные признаки, если не указано иное.In the following, identical reference numerals represent identical or at least functionally equivalent features, unless otherwise indicated.

Описание вариантов осуществленияDescription of Embodiments

Кодирование видео обычно относится к обработке последовательности изображений, которые образуют видео или видеопоследовательность. В области видеокодирования термины «изображение (picture)», «кадр (frame)» и «изображение (image)» могут использоваться как синонимы. Кодирование видео, используемое в настоящем изобретении (или настоящем раскрытии), указывает на кодирование видео или декодирование видео. Кодирование видео выполняется на стороне источника, например, путем обработки (например, путем сжатия) необработанных видеоизображений, чтобы уменьшить объем данных, требуемых для представления видеоизображений, для более эффективного хранения и/или передачи. Декодирование видео выполняется на стороне назначения и обычно включает в себя обратную обработку по сравнению с кодером для восстановления видеоизображений. «Кодирование» видеоизображений в вариантах осуществления следует понимать как «кодирование» или «декодирование» видеопоследовательности. Комбинация компонентов кодирования и компонентов декодирования также называется кодеком (кодирование и декодирование).Video coding generally refers to the processing of a sequence of images that form a video or video sequence. In the field of video coding, the terms "image (picture)", "frame (frame)" and "image (image)" can be used interchangeably. The video coding used in the present invention (or the present disclosure) refers to video coding or video decoding. Video encoding is performed at the source side, for example by processing (eg, by compressing) the raw video images to reduce the amount of data required to represent the video images for more efficient storage and/or transmission. The video decoding is performed on the destination side and usually involves inverse processing compared to the encoder to recover the video images. "Coding" of video images in the embodiments should be understood as "coding" or "decoding" of a video sequence. The combination of encoding components and decoding components is also called a codec (encoding and decoding).

Каждое изображение видеопоследовательности обычно разделяется на набор неперекрывающихся блоков, и кодирование обычно выполняется на уровне блоков. Другими словами, на стороне кодера видео обычно обрабатывается, то есть, кодируется на уровне блока (который также называется блоком изображения или видеоблоком), например, с использованием пространственного (внутреннего изображения) предсказание и/или временного (внешнего изображения) предсказания для генерирования блока предсказания, вычитания блока предсказания из текущего блока (блок, который в настоящее время обрабатывается/должен быть обработан) для получения остаточного блока, преобразования остаточного блока и квантование остаточного блока в области преобразования для уменьшения объема данных, которые должны быть переданы (сжаты). На стороне декодера к закодированному или сжатому блоку применяется обратная обработка по сравнению с кодером для восстановления текущего блока для представления. Кроме того, кодер дублирует цикл обработки декодера, так что кодер и декодер генерируют идентичные предсказания (например, внутренние предсказания и внешние предсказания) и/или восстановление для обработки, то есть, кодирования последующих блоков.Each picture of a video sequence is usually divided into a set of non-overlapping blocks, and encoding is usually done at the block level. In other words, at the encoder side, the video is usually processed, i.e., encoded at the block level (which is also called a picture block or video block), for example, using spatial (inner picture) prediction and/or temporal (outer picture) prediction to generate a prediction block. , subtracting the prediction block from the current block (the block currently being processed/to be processed) to obtain a residual block, transforming the residual block, and quantizing the residual block in the transform region to reduce the amount of data to be transmitted (compressed). On the decoder side, the encoded or compressed block is back-processed compared to the encoder to reconstruct the current block for presentation. In addition, the encoder duplicates the decoder's processing cycle so that the encoder and decoder generate identical predictions (eg, intra predictions and inter predictions) and/or reconstruction for processing, i.e., encoding subsequent blocks.

Термин «блок» может быть частью изображения или кадра. Ключевые термины определены в настоящем изобретении следующим образом:The term "block" can be part of an image or frame. Key terms are defined in the present invention as follows:

Текущий блок является блоком, который обрабатывается. Например, при кодировании текущий блок является блоком, который в настоящее время кодируется; при декодировании текущий блок является блоком, который декодируется. Если обрабатываемый в данный момент блок является блоком компонента цветности, обрабатываемый в данный момент блок называется текущим блоком цветности. Блок яркости, соответствующий текущему блоку цветности, может называться текущим блоком яркости.The current block is the block that is being processed. For example, when encoding, the current block is the block that is currently being encoded; when decoding, the current block is the block that is being decoded. If the block currently being processed is a chrominance component block, the block currently being processed is called the current chroma block. The luma block corresponding to the current chrominance block may be referred to as the current luma block.

CTU является сокращением блока дерева кодирования (coding tree unit). Изображение включает в себя множество CTUs, и один CTU обычно соответствует одной квадратной области изображения и включает в себя выборки яркости и выборки цветности в области изображения (или может включать только выборки яркости или могут включать только выборки цветности). CTU дополнительно включает в себя элементы синтаксиса. Эти элементы синтаксиса указывают способ разделения CTU, по меньшей мере, на один блок кодирования (coding unit, CU) и декодирования каждого блока кодирования для получения восстановленного изображения.CTU is short for coding tree unit. An image includes a plurality of CTUs, and one CTU typically corresponds to one square image area and includes luma samples and chrominance samples in the image area (either may include only luma samples or may include only chrominance samples). The CTU additionally includes syntax elements. These syntax elements indicate how to divide the CTU into at least one coding unit (CU) and decode each coding unit to obtain a reconstructed image.

CU является сокращением блока кодирования. CU обычно соответствует прямоугольной области AxB и включает в себя выборки яркости AxB и выборки цветности, соответствующие выборкам яркости, где A является шириной прямоугольника, B является высотой прямоугольника, и A может быть такой же, как или отличаться от B. Значения A и B обычно являются целыми степенями 2, например 256, 128, 64, 32, 16, 8 и 4. Блок кодирования может быть декодирован посредством обработки декодирования для получения восстановленного изображения области прямоугольника AxB. Обработка декодирования обычно включает в себя выполнение такой обработки, как предсказание, деквантование и обратное преобразование, для генерирования предсказанного изображения и остатка. Восстановленное изображение получается путем наложения предсказанного изображения и остатка.CU is short for coding unit. The CU typically corresponds to a rectangular region AxB and includes the luminance samples AxB and the chrominance samples corresponding to the luminance samples, where A is the width of the rectangle, B is the height of the rectangle, and A can be the same as or different from B. The values of A and B are typically are integer powers of 2, such as 256, 128, 64, 32, 16, 8, and 4. The encoding block may be decoded by decoding processing to obtain a reconstructed image of the rectangle area AxB. The decoding processing typically includes performing processing such as prediction, dequantization, and inverse transform to generate a predicted image and a residual. The reconstructed image is obtained by overlaying the predicted image and the residual.

Ниже описаны варианты осуществления кодера 20, декодера 30 и системы 10 кодирования со ссылкой на фиг. 1А-фиг. 3.Embodiments of encoder 20, decoder 30, and encoding system 10 are described below with reference to FIG. 1A-fig. 3.

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

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

Источник 16 изображения может включать в себя или быть устройством захвата изображения любого типа, например, для захвата реального изображения, и/или устройством любого типа для генерирования изображения или комментария (для кодирования содержимого экрана текст на экране также рассматривается как часть подлежащего кодированию изображения или изображения), например, процессор компьютерной графики для формирования компьютерного анимированного изображения или любое другое устройство для получения и/или предоставления изображения реального мира, компьютерное анимированное изображение (например, содержимое экрана или изображение виртуальной реальности (virtual reality, VR)) и/или любая их комбинация (например, изображение дополненной реальности (augmented reality, AR)).Image source 16 may include or be any type of image capture device, such as for capturing a real image, and/or any type of device for generating an image or comment (for screen content encoding, screen text is also considered part of the image or image to be encoded). ), for example, a computer graphics processor for generating a computer animated image, or any other device for receiving and / or providing an image of the real world, a computer animated image (for example, screen content or a virtual reality image (virtual reality, VR)) and / or any of them combination (for example, an image of augmented reality (augmented reality, AR)).

Изображение можно рассматривать как двумерный массив или матрицу выборок со значениями яркости. Выборка в массиве также может упоминаться как пиксель (pixel) (сокращенная форма элемента изображения (picture element)) или пиксель. Количество выборок в горизонтальном и вертикальном направлениях (или осях) массива или изображения определяет размер и/или разрешение изображения. Для представления цвета обычно используются три цветовых компонента, в частности, изображение может быть представлено в виде трех массивов выборок или может их включать в себя. В формате RBG или цветовом пространстве изображение включает в себя соответствующий массив выборок красного, зеленого и синего цветов. Однако при кодировании видео каждый пиксель обычно представлен в формате яркости/цветности или цветовом пространстве. Например, YCbCr, который включает в себя компонент яркости, обозначенный Y (иногда вместо него используется L), и два компонента цветности, обозначенные Cb и Cr. Компонент Y яркости (который для краткости представляет собой яркость) представляет собой яркость или интенсивность уровня серого (например, как в изображении с оттенками серого), в то время как два компонента цветности (которые для краткости являются цветностью) Cb и Cr представляют собой цветность или компоненты информации о цвете. Соответственно, изображение в формате YCbCr включает в себя массив выборок яркости значений выборок яркости (Y) и два массива выборок цветности значений цветности (Cb и Cr). Изображения в формате RGB могут быть преобразованы или конвертированы в формат YCbCr и наоборот, и этот процесс также известен как преобразование цвета или преобразование. Если изображение является монохромным, оно может включать в себя только массив выборок яркости.An image can be thought of as a two-dimensional array or matrix of samples with brightness values. A sample in an array can also be referred to as a pixel (short for picture element) or a pixel. The number of samples in the horizontal and vertical directions (or axes) of an array or image determines the size and/or resolution of the image. To represent a color, three color components are usually used, in particular, an image can be represented as three arrays of samples or can include them. In RBG format or color space, an image includes a corresponding array of red, green, and blue color samples. However, in video encoding, each pixel is typically represented in a luma/chrominance format or color space. For example, YCbCr, which includes a luma component labeled Y (sometimes L is used instead) and two chrominance components labeled Cb and Cr. The Y component of luminance (which is luminance for short) represents the brightness or intensity of the gray level (such as in a grayscale image), while the two chrominance components (which are chroma for short) Cb and Cr represent chrominance or color information components. Accordingly, the YCbCr format image includes a luma sample array of luminance sample values (Y) and two chrominance sample arrays of chroma values (Cb and Cr). Images in RGB format can be converted or converted to YCbCr format and vice versa, and this process is also known as color conversion or conversion. If the image is monochrome, it may only include an array of brightness samples.

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

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

Блок 18 предварительной обработки выполнен с возможностью: принимать (необработанные) данные 17 изображения и предварительно обработанные данные 17 изображения для получения предварительно обработанного изображения 19 или данных 19 предварительно обработанного изображения. Например, предварительная обработка, выполняемая блоком 18 предварительной обработки, может включать в себя обрезку, преобразование цветового формата (например, преобразование из RGB в YCbCr), настройку цвета и шумоподавление. Очевидно, что блок 18 предварительной обработки может быть возможным компонентом.The pre-processing unit 18 is configured to: receive (raw) image data 17 and pre-processed image data 17 to obtain a pre-processed image 19 or pre-processed image data 19. For example, the pre-processing performed by the pre-processor 18 may include cropping, color format conversion (eg, conversion from RGB to YCbCr), color adjustment, and noise reduction. Obviously, the pre-processing unit 18 could be a possible component.

Кодер 20 (например, видеокодер 20) выполнен с возможностью принимать данные 19 предварительно обработанного изображения и предоставлять данные 21 закодированного изображения (подробности дополнительно описаны ниже, например, со ссылкой на фиг. 2 или фиг. 4). В одном примере кодер 20 может быть выполнен с возможностью реализации вариантов 1-3 осуществления.The encoder 20 (eg, video encoder 20) is configured to receive pre-processed image data 19 and provide encoded image data 21 (details are further described below, for example, with reference to FIG. 2 or FIG. 4). In one example, encoder 20 may be configured to implement embodiments 1-3.

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

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

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

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

Интерфейс 22 связи может быть, например, выполнен с возможностью упаковывать данные 21 закодированного изображения в соответствующий формат, например пакеты, для передачи по каналу связи или сети связи.The communication interface 22 may, for example, be configured to package the encoded image data 21 into an appropriate format, such as packets, for transmission over a communication channel or communication network.

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

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

Декодер 30 выполнен с возможностью принимать данные 21 кодированного изображения и предоставлять данные 31 декодированного изображения или декодированного изображения 31 (подробности дополнительно описаны ниже, например, со ссылкой фиг. 3 или фиг. 5). В одном примере декодер 30 может быть выполнен с возможностью реализации вариантов 1-3 осуществления.The decoder 30 is configured to receive encoded image data 21 and provide decoded image data 31 or decoded image 31 (details are further described below, for example, with reference to FIG. 3 or FIG. 5). In one example, decoder 30 may be configured to implement embodiments 1-3.

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

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

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

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

Кодер 20 (например, видеокодер 20) и декодер 30 (например, видеодекодер 30) могут быть реализованы как любая из различных надлежащих схем, например, один или несколько микропроцессоров, цифровой сигнальный процессор (digital signal processor, DSP), специализированная интегральная схема (application-specific integrated circuit, ASIC), программируемая пользователем вентильная матрица (field-programmable gate array, FPGA), дискретная логика, оборудование или любая их комбинация. Если технологии реализуются частично с использованием программного обеспечения, устройство может хранить программную инструкцию на надлежащем постоянном машиночитаемом носителе данных и может выполнять инструкцию с использованием аппаратного обеспечения, такого как один или несколько процессоров, для реализации технологий настоящего изобретения. Любое из вышеуказанного контента (включающие в себя оборудование, программное обеспечение, комбинацию аппаратного и программного обеспечения и т.п.) может рассматриваться как один или несколько процессоров. Видеокодер 20 и видеодекодер 30 каждый может содержаться в одном или нескольких кодеров или декодеров, и либо кодер, либо декодер могут быть интегрированы в часть комбинированного кодера/декодера (кодека) в соответствующем устройстве.Encoder 20 (e.g., video encoder 20) and decoder 30 (e.g., video decoder 30) may be implemented as any of various suitable circuits, e.g., one or more microprocessors, digital signal processor (DSP), application specific integrated circuit (application -specific integrated circuit (ASIC), field-programmable gate array (FPGA), discrete logic, hardware, or any combination thereof. If the technologies are implemented in part using software, the device may store the program instruction on an appropriate permanent computer-readable storage medium and may execute the instruction using hardware, such as one or more processors, to implement the technologies of the present invention. Any of the above content (including hardware, software, a combination of hardware and software, and the like) may be considered one or more processors. Video encoder 20 and video decoder 30 may each be contained in one or more encoders or decoders, and either the encoder or decoder may be integrated into a combined encoder/decoder (codec) portion of a respective device.

Устройство 12 источника может называться устройством кодирования видео или приспособлением для кодирования видео. Устройство 14 назначения может называться устройством декодирования видео или приспособлением для декодирования видео. Устройство 12 источника и устройство 14 назначения могут быть примерами устройства кодирования видео или устройства кодирования видео.The source device 12 may be referred to as a video encoding device or a video encoding tool. The destination device 14 may be referred to as a video decoding device or a video decoding tool. Source device 12 and destination device 14 may be examples of a video encoding device or a video encoding device.

Устройство 12 источника и устройство 14 назначения могут включать в себя любое из широкого диапазона устройств, включающие в себя любой тип портативного или стационарного устройства, например, ноутбук или портативный компьютер, мобильный телефон, смартфон, планшет или планшетный компьютер, камера, настольный компьютер, телеприставка, телевизор, устройство отображения, цифровой медиаплеер, игровая консоль, устройство потокового видео (например, сервер службы контента или сервер доставки контента), устройство приемника вещания или устройство передатчика вещания и может использовать или не использовать операционную систему любого типа.Source device 12 and destination device 14 may include any of a wide range of devices, including any type of portable or stationary device, such as a laptop or laptop computer, mobile phone, smartphone, tablet or tablet computer, camera, desktop computer, set-top box. , a television, a display device, a digital media player, a game console, a video streaming device (such as a content service server or a content delivery server), a broadcast receiver device, or a broadcast transmitter device, and may or may not use any type of operating system.

В некоторых случаях устройство 12 источника и устройство 14 назначения могут быть оборудованы для беспроводной связи. Следовательно, устройство 12 источника и устройство 14 назначения могут быть устройствами беспроводной связи.In some cases, source device 12 and destination device 14 may be equipped for wireless communication. Therefore, source device 12 and destination device 14 may be wireless communication devices.

В некоторых случаях система 10 кодирования видео, показанная на фиг. 1A, является просто примером, и технологии настоящего изобретения применимы к настройкам кодирования видео (например, кодирование видео или декодирование видео), которые не обязательно включают в себя какой-либо обмен данными между устройствами кодирования и декодирования. В другом примере данные могут быть извлечены из локальной памяти, переданы в потоковом режиме по сети и т.п. Устройство для кодирования видео может кодировать данные и сохранять данные в памяти, и/или устройство декодирования видео может извлекать данные из памяти и декодировать данные. В некоторых примерах кодирование и декодирование выполняются устройствами, которые не обмениваются данными друг с другом, а просто кодируют данные в память и/или извлекают данные из памяти и декодируют данные.In some cases, the video coding system 10 shown in FIG. 1A is just an example, and the techniques of the present invention are applicable to video encoding settings (eg, video encoding or video decoding) that do not necessarily include any communication between encoding and decoding devices. In another example, data may be retrieved from local memory, streamed over a network, or the like. The video encoding device may encode the data and store the data in memory, and/or the video decoding device may retrieve the data from the memory and decode the data. In some examples, encoding and decoding are performed by devices that do not communicate with each other, but simply encode data into memory and/or retrieve data from memory and decode the data.

Следует понимать, что для каждого из вышеупомянутых примеров, описанных со ссылкой на видеокодер 20, видеодекодер 30 может быть выполнен с возможностью выполнять обратный процесс. Что касается элементов синтаксиса сигнализации, видеодекодер 30 может быть выполнен с возможностью принимать и анализировать эти элементы синтаксиса и декодировать соответствующие видеоданные. В некоторых примерах видеокодер 20 может энтропийно кодировать элементы синтаксиса в кодированный битовый поток видео. В этих примерах видеодекодер 30 может анализировать эти элементы синтаксиса и соответственно декодировать соответствующие видеоданные.It should be understood that for each of the above examples described with reference to video encoder 20, video decoder 30 may be configured to reverse the process. With regard to signaling syntax elements, video decoder 30 may be configured to receive and parse these syntax elements and decode the corresponding video data. In some examples, video encoder 20 may entropy encode syntax elements into an encoded video bitstream. In these examples, video decoder 30 may parse these syntax elements and decode the corresponding video data accordingly.

Фиг. B является иллюстративной схемой примера системы 40 видеокодирования, включающей в себя кодер 20 на фиг. 2 и/или декодер 30 на фиг. 3 согласно примерному варианту осуществления. Система 40 может реализовывать комбинацию различных технологий настоящего изобретения. В проиллюстрированной реализации система 40 видеокодирования может включать в себя устройство 41 формирования изображения, видеокодер 20, видеодекодер 30 (и/или видеокодер/декодер, реализованный логической схемой 47 блока 46 обработки), антенну 42, один или несколько процессоров 43, одно или несколько памяти 44 и/или устройство 45 отображения.Fig. B is an illustrative diagram of an example video coding system 40 including encoder 20 in FIG. 2 and/or decoder 30 in FIG. 3 according to an exemplary embodiment. System 40 may implement a combination of various technologies of the present invention. In the illustrated implementation, the video encoding system 40 may include an imager 41, a video encoder 20, a video decoder 30 (and/or a video encoder/decoder implemented by processing unit 46 logic 47), an antenna 42, one or more processors 43, one or more memories 44 and/or display device 45.

Как показано на чертеже, устройство 41 формирования изображения, антенна 42, блок 46 обработки, логическая схема 47, видеокодер 20, видеодекодер 30, процессор 43, память 44 и/или устройство 45 отображения могут взаимодействовать друг с другом. Как описано, хотя система 40 видеокодирования проиллюстрирована с использованием видеокодера 20 и видеодекодера 30, в другом примере система 40 видеокодирования может включать в себя только видеокодер 20 или только видеодекодер 30.As shown in the drawing, the imaging device 41, the antenna 42, the processing unit 46, the logic circuit 47, the video encoder 20, the video decoder 30, the processor 43, the memory 44 and/or the display device 45 may interact with each other. As described, although video encoding system 40 is illustrated using video encoder 20 and video decoder 30, in another example, video encoding system 40 may include only video encoder 20 or only video decoder 30.

В некоторых примерах, как показано на чертеже, система 40 видеокодирования может включать в себя антенну 42. Например, антенна 42 может быть выполнена с возможностью передавать или принимать видеоданные закодированного битового потока. Кроме того, в некоторых примерах система 40 видеокодирования может включать в себя устройство 45 отображения. Устройство 45 отображения может быть выполнено с возможностью представлять видеоданные. В некоторых примерах, как показано на чертеже, логическая схема 47 может быть реализована блоком 46 обработки. Блок 46 обработки может включать в себя логику специализированной интегральной схемы (application-specific integrated circuit, ASIC), графический процессор, универсальный процессор и т.п. Система 40 видеокодирования может также включать в себя дополнительный процессор 43. Дополнительный процессор 43 может аналогичным образом включать в себя логику специализированной интегральной схемы (application-specific integrated circuit, ASIC), графический процессор, универсальный процессор и т.п. В некоторых примерах логическая схема 47 может быть реализована аппаратными средствами, например, специализированным оборудованием для кодирования видео, а процессор 43 может быть реализован программным обеспечением общего назначения, операционной системой и т.п. Дополнительно, память 44 может быть любым типом памяти, например, энергозависимой памятью (например, статической памятью с произвольным доступом (Static Random Access Memory, SRAM) или динамической памятью с произвольным доступом (Dynamic Random Access Memory, DRAM) или энергонезависимой памяти (например, флэш-памятью). В неограничивающем примере память 44 может быть реализована с помощью кэш-памяти. В некоторых примерах логическая схема 47 может обращаться к памяти 44 (например, для реализации буфера изображения). В других примерах логическая схема 47 и/или блок 46 обработки могут включать в себя память (например, кэш) для реализации буфера изображений и т.п.In some examples, as shown in the drawing, video coding system 40 may include an antenna 42. For example, antenna 42 may be configured to transmit or receive encoded bitstream video data. In addition, in some examples, the video coding system 40 may include a display device 45 . The display device 45 may be configured to present video data. In some examples, as shown in the drawing, the logic circuit 47 may be implemented by the block 46 processing. The processing unit 46 may include application-specific integrated circuit (ASIC) logic, a graphics processor, a general purpose processor, and the like. The video encoding system 40 may also include an additional processor 43. The additional processor 43 may likewise include application-specific integrated circuit (ASIC) logic, a graphics processor, a general purpose processor, and the like. In some examples, logic circuitry 47 may be implemented in hardware, such as dedicated video coding hardware, and processor 43 may be implemented in general purpose software, an operating system, or the like. Additionally, the memory 44 may be any type of memory, such as volatile memory (for example, Static Random Access Memory (SRAM) or Dynamic Random Access Memory (DRAM) or non-volatile memory (for example, In a non-limiting example, memory 44 may be implemented using cache memory. In some examples, logic circuit 47 may access memory 44 (for example, to implement an image buffer). In other examples, logic circuit 47 and/or block 46 processing may include memory (eg, cache) for implementing an image buffer, and the like.

В некоторых примерах видеокодер 20, реализованный логической схемой, может включать в себя буфер изображения (который, например, реализуется блоком 46 обработки или памятью 44) и блок обработки графики (который, например, реализуемый блоком 46 обработки). Блок обработки графики может быть коммуникативно соединен с буфером изображения. Блок обработки графики может включать в себя видеокодер 20, реализованный логической схемой 47, для реализации различных модулей, которые описаны со ссылкой на фиг. 2 и/или любую другую систему или подсистему кодера, описанную в этой спецификации. Логическая схема может быть выполнена с возможностью выполнять различные операции, описанные в этой спецификации.In some examples, the video encoder 20 implemented by the logic circuit may include an image buffer (which, for example, is implemented by processing unit 46 or memory 44) and a graphics processing unit (which, for example, is implemented by processing unit 46). The graphics processing unit may be communicatively connected to the image buffer. The graphics processing unit may include a video encoder 20 implemented by logic 47 to implement the various modules that are described with reference to FIG. 2 and/or any other encoder system or subsystem described in this specification. The logic circuit may be configured to perform various operations described in this specification.

Видеодекодер 30 может быть реализован аналогично тому, как это реализовано логической схемой 47, для воплощения различных модулей, как описано в отношении декодера 30 на фиг. 3 и/или любую другую систему или подсистему декодера, описанную в этой спецификации. В некоторых примерах видеодекодер 30, реализованный логической схемой, может включать в себя буфер изображения (который, например, реализован блоком 2820 обработки или памятью 44) и блок обработки графики (который, например, реализован посредством блока 46 обработки). Блок обработки графики может быть коммуникативно соединен с буфером изображения. Блок обработки графики может включать в себя видеодекодер 30, реализованный логической схемой 47, для реализации различных модулей, которые описаны со ссылкой на фиг. 3 и/или любую другую систему или подсистему декодера, описанную в этой спецификации.Video decoder 30 may be implemented in a manner similar to that implemented by logic circuitry 47 to implement various modules as described with respect to decoder 30 in FIG. 3 and/or any other decoder system or subsystem described in this specification. In some examples, video decoder 30 implemented by logic may include an image buffer (which, for example, is implemented by processing unit 2820 or memory 44) and a graphics processing unit (which, for example, is implemented by processing unit 46). The graphics processing unit may be communicatively connected to the image buffer. The graphics processing unit may include a video decoder 30 implemented by logic 47 to implement various modules, which are described with reference to FIG. 3 and/or any other decoder system or subsystem described in this specification.

В некоторых примерах антенна 42 системы 40 видеокодирования может быть выполнена с возможностью принимать видеоданные закодированного битового потока. Как описано, кодированный битовый поток может включать в себя данные, индикатор, значение индекса, данные выбора режима и т.п., которые относятся к кодированию видеокадров и которые описаны в этой спецификации, например, данные, относящиеся к разделению кодирования (например, коэффициент преобразования или квантованный коэффициент преобразования, возможный индикатор (как описано) и/или данные, определяющие разделение кодирования). Система 40 видеокодирования может дополнительно включать в себя видеодекодер 30, который подключен к антенне 42 и выполнен с возможностью декодировать кодированный битовый поток. Устройство 45 отображения выполнено с возможностью представлять видеокадр.In some examples, antenna 42 of video coding system 40 may be configured to receive video data of the encoded bitstream. As described, the encoded bitstream may include data, an indicator, an index value, mode selection data, and the like, which is related to the encoding of video frames and which is described in this specification, for example, data related to coding separation (for example, coefficient transform or a quantized transform coefficient, an optional indicator (as described) and/or data defining a coding split). The video coding system 40 may further include a video decoder 30 that is connected to the antenna 42 and configured to decode the encoded bit stream. The display device 45 is configured to present a video frame.

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

Фиг. 2 является схематической/концептуальной блок-схемой примера видеокодера 20, выполненного с возможностью реализации технологии (раскрытой) в настоящем изобретении. В примере на фиг. 2, видеокодер 20 включает в себя блок 204 вычисления остатка, блок 206 обработки преобразования, блок 208 квантования, блок 210 обратного квантования, блок 212 обработки обратного преобразования, блок 214 восстановления, буфер 216, блок 220 контурного фильтра, буфер 230 декодированного изображения (decoded picture buffer, DPB), блок 260 обработки предсказания и блок 270 энтропийного кодирования. Блок 260 обработки предсказания может включать в себя блок 244 внешнего предсказания, блок 254 внутреннего предсказания и блок 262 выбора режима. Блок 244 внешнего предсказания может включать в себя блок оценки движения и блок компенсации движения (который не показан на схеме). Видеокодер 20, показанный на фиг. 2, также может называться гибридным видеокодером или видеокодером на основании гибридного видеокодека.Fig. 2 is a schematic/conceptual block diagram of an example of a video encoder 20 capable of implementing the technology (disclosed) in the present invention. In the example in FIG. 2, the video encoder 20 includes a residual calculation unit 204, a transform processing unit 206, a quantization unit 208, an inverse quantization unit 210, an inverse transform processing unit 212, a reconstruction unit 214, a buffer 216, a loop filter unit 220, a decoded image buffer 230 (decoded picture buffer, DPB), prediction processing unit 260, and entropy encoding unit 270. The prediction processing block 260 may include an inter prediction block 244, an intra prediction block 254, and a mode selection block 262. Inter prediction block 244 may include a motion estimator and a motion compensation block (which is not shown in the diagram). Video encoder 20 shown in FIG. 2 may also be referred to as a hybrid video encoder or a video encoder based on a hybrid video codec.

Например, блок 204 вычисления остатка, блок 206 обработки преобразования, блок 208 квантования, блок 260 обработки предсказания и блок 270 энтропийного кодирования образуют прямой сигнальный тракт кодера 20, тогда как, например, блок 210 обратного квантования, блок 212 обработки обратного преобразования, блок 214 восстановления, буфер 216, контурный фильтр 220, буфер 230 декодированного изображения (decoded picture buffer, DPB) и блок 260 обработки предсказания формируют обратный сигнальный тракт кодера, где обратный сигнальный тракт видеокодера соответствует тракту сигнала декодера (см. декодер 30 на фиг. 3).For example, the residual calculation block 204, the transform processing block 206, the quantization block 208, the prediction processing block 260, and the entropy encoding block 270 form a direct signal path of the encoder 20, while, for example, the inverse quantization block 210, the inverse transform processing block 212, block 214 recovery buffer 216, loop filter 220, decoded picture buffer (DPB) 230, and prediction processor 260 form an encoder return signal path, where the video encoder return signal path corresponds to the decoder signal path (see decoder 30 in FIG. 3) .

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

РазделениеSeparation

В варианте осуществления кодер 20 может включать в себя блок разделения (который не показан на фиг. 2), выполненный с возможностью разделять изображение 201 на множество блоков, таких как блоки 203. Изображение 201 обычно разделяется на множество неперекрывающихся блоков. Блок разделения может быть выполнен с возможностью: использовать тот же размер блока для всех изображений видеопоследовательности и соответствующей сетки, определяющей размер блока, или изменять размер блока между изображениями, или подмножествами, или группами изображений, и разделять каждое изображение на соответствующие блоки.In an embodiment, encoder 20 may include a splitter (which is not shown in FIG. 2) configured to split image 201 into multiple blocks, such as blocks 203. Image 201 is typically divided into multiple non-overlapping blocks. The dividing block may be configured to: use the same block size for all images of the video sequence and the corresponding grid defining the block size, or change the block size between images or subsets or groups of images and divide each image into appropriate blocks.

В одном примере блок 260 обработки предсказания видеокодера 20 может быть выполнен с возможностью выполнять любую комбинацию вышеупомянутых технологий разделения.In one example, prediction processing unit 260 of video encoder 20 may be configured to perform any combination of the aforementioned separation techniques.

Подобно изображению 201, блок 203 также является или может рассматриваться как двумерный массив или матрица выборок со значениями яркости (sample values), хотя размер блока 203 меньше размера изображения 201. Другими словами, блок 203 может включать в себя, например, один массив выборок (например, массив яркости в случае монохромного изображения 201), три массива выборок (например, один массив яркости и два массива цветности в случае цветного изображения) или любое другое количество и/или тип массивов в зависимости от применяемого цветового формата. Количество выборок в горизонтальном и вертикальном направлениях (или осях) блока 203 определяет размер блока 203.Like image 201, block 203 is also or can be thought of as a two-dimensional array or matrix of samples with sample values, although the size of block 203 is smaller than the size of image 201. In other words, block 203 may include, for example, one array of samples ( eg, a luminance array in the case of a monochrome image 201), three sample arrays (eg, one luminance array and two chrominance arrays in the case of a color image), or any other number and/or type of arrays depending on the color format used. The number of samples in the horizontal and vertical directions (or axes) of block 203 determines the size of block 203.

Кодер 20, показанный на фиг. 2, выполнен с возможностью кодировать изображение 201 блок за блоком, например, кодировать и предсказывать каждый блок 203.Encoder 20 shown in FIG. 2 is configured to encode image 201 block by block, such as encoding and predicting each block 203.

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

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

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

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

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

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

Блок 208 квантования выполнен с возможностью квантовать коэффициенты 207 преобразования для получения квантованных коэффициентов 209 преобразования, например, путем применения скалярного квантования или векторного квантования. Квантованные коэффициенты 209 преобразования могут также называться квантованными остаточными коэффициентами 209. Процесс квантования может уменьшить глубину в битах, относящуюся к некоторым или всем коэффициентам 207 преобразования. Например, n-битовый коэффициент преобразования может быть округлен до m-битового коэффициента преобразования во время квантования, где n больше m. Степень квантования может быть изменена путем регулировки параметра квантования (quantization parameter, QP). Например, для скалярного квантования может применяться другое масштабирование для достижения более тонкого или более грубого квантования. Меньший размер шага квантования соответствует более тонкому квантованию и больший размер шага квантования соответствует более грубому квантованию. Соответствующий размер шага квантования может быть указан параметром квантования (quantization parameter, QP). Например, параметр квантования может быть индексом для заданного набора подходящих размеров шага квантования. Например, меньший параметр квантования может соответствовать более тонкому квантованию (меньшему размеру шага квантования) и больший параметр квантования может соответствовать более грубому квантованию (большему размеру шага квантования) или наоборот. Квантование может включать в себя деление на размер шага квантования и соответствующее квантование или обратное квантование, например, выполняемое блоком 210 обратного квантования, или может включать в себя умножение на размер шага квантования. Варианты осуществления согласно некоторым стандартам, таким как HEVC, могут использовать параметр квантования для определения размера шага квантования. Обычно размер шага квантования может быть вычислен на основании параметра квантования с использованием аппроксимации с фиксированной точкой уравнения, включающего в себя деление. Для восстановления нормы остаточного блока могут быть введены дополнительные коэффициенты масштабирования для квантования и деквантования, которые могут быть изменены из-за масштабирования, используемого в аппроксимации с фиксированной точкой уравнения для размера шага квантования и параметра квантования. В одной примерной реализации масштабирование обратного преобразования и деквантования могут быть объединены. В качестве альтернативы могут использоваться настроенные таблицы квантования и передаваться из кодера к декодеру, например, в потоке битов. Квантование является операцией с потерями, при которой потери возрастают с увеличением размера шага квантования.Quantizer 208 is configured to quantize transform coefficients 207 to obtain quantized transform coefficients 209, for example by applying scalar quantization or vector quantization. The quantized transform coefficients 209 may also be referred to as quantized residual coefficients 209. The quantization process may reduce the bit depth associated with some or all of the transform coefficients 207. For example, an n-bit transform factor may be rounded to an m-bit transform factor during quantization, where n is greater than m. The degree of quantization can be changed by adjusting the quantization parameter (QP). For example, for scalar quantization, different scaling may be applied to achieve finer or coarser quantization. Smaller quantization step size corresponds to finer quantization and larger quantization step size corresponds to coarser quantization. The appropriate quantization step size may be indicated by a quantization parameter (QP). For example, the quantization parameter may be an index to a given set of suitable quantization step sizes. For example, a smaller quantization parameter may correspond to finer quantization (smaller quantization step size) and a larger quantization parameter may correspond to coarser quantization (larger quantization step size) or vice versa. Quantization may include dividing by the quantization step size and corresponding quantization or inverse quantization, such as performed by inverse quantizer 210, or may include multiplying by the quantization step size. Embodiments according to some standards, such as HEVC, may use a quantization parameter to determine the quantization step size. Typically, the quantization step size can be calculated based on the quantization parameter using a fixed-point approximation of an equation involving division. Additional scaling factors for quantization and dequantization can be introduced to restore the residual block norm, which can be changed due to the scaling used in the fixed-point approximation of the equation for the quantization step size and the quantization parameter. In one exemplary implementation, inverse transform scaling and dequantization may be combined. Alternatively, customized quantization tables can be used and transmitted from the encoder to the decoder, for example, in a bit stream. Quantization is a lossy operation in which the loss increases as the quantization step size increases.

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

Блок 212 обработки обратного преобразования выполнен с возможностью применять обратное преобразование, применяемого блоком 206 обработки преобразования, например, обратное дискретное косинусное преобразование (discrete cosine transform, DCT) или обратное дискретное синусное преобразование (discrete sine transform, DST), чтобы получить блок 213 обратного преобразования в области выборки. Блок 213 обратного преобразования также может называться деквантованным блоком 213 обратного преобразования или остаточным блоком 213 обратного преобразования.The inverse transform processing unit 212 is configured to apply the inverse transform applied by the transform processing unit 206, such as an inverse discrete cosine transform (DCT) or an inverse discrete sine transform (DST), to obtain an inverse transform unit 213 in the sample area. The inverse transform block 213 may also be referred to as the dequantized inverse transform block 213 or the residual inverse transform block 213 .

Блок 214 восстановления (например, сумматор 214) выполнен с возможностью добавлять блок 213 обратного преобразования (то есть, восстановленный остаточный блок 213) к блоку 265 предсказания, например, путем добавления значений выборок восстановленного остаточного блока 213 и значения выборки блока 265 предсказания, чтобы получить восстановленный блок 215 в области выборки.Restoration block 214 (e.g., adder 214) is configured to add inverse transform block 213 (i.e., restored residual block 213) to prediction block 265, for example, by adding the sample values of the restored residual block 213 and the sample value of prediction block 265 to obtain reconstructed block 215 in the sample area.

Возможно, блок 216 буфера (или «буфер» 216 для краткости), например, линейный буфер 216, выполнен с возможностью буферизации или хранения восстановленного блока 215 и соответствующего значения выборки, например, для внутреннего предсказания. В других вариантах осуществления кодер может быть выполнен с возможностью использовать нефильтрованный восстановленный блок и/или соответствующее значение выборки, хранящееся в блоке 216 буфера, для любого типа оценки и/или предсказания, например, внутреннего предсказания.Optionally, buffer block 216 (or "buffer" 216 for short), such as linear buffer 216, is configured to buffer or store the reconstructed block 215 and the corresponding sample value, such as for intra prediction. In other embodiments, the encoder may be configured to use the unfiltered reconstructed block and/or the corresponding sample value stored in buffer block 216 for any type of estimation and/or prediction, such as intra prediction.

Например, в варианте осуществления кодер 20 может быть выполнен с возможностью для блока 216 буфера не только хранить восстановленный блок 215 для внутреннего предсказания 254, но также используется для блока 220 контурного фильтра (который не показан на фиг. 2), и/или так, что, например, блок 216 буфера и блок 230 буфера декодированного изображения образуют один буфер. В других вариантах осуществления фильтрованные блоки 221 и/или блоки или выборки из буфера 230 декодированных изображений (блоки или выборки не показаны на фиг. 2) используются в качестве входных данных или основы для внутреннего предсказания 254.For example, in an embodiment, encoder 20 may be configured for buffer block 216 to not only store reconstructed block 215 for intra prediction 254, but is also used for loop filter block 220 (which is not shown in FIG. 2), and/or so, that, for example, buffer block 216 and decoded picture buffer block 230 form one buffer. In other embodiments, filtered blocks 221 and/or blocks or samples from decoded picture buffer 230 (blocks or samples not shown in FIG. 2) are used as input or basis for intra prediction 254.

Блок 220 контурного фильтра (или «контурный фильтр» 220 для краткости) выполнен с возможностью фильтрации восстановленного блока 215 для получения фильтрованного блока 221, сглаживания переходов пикселей или улучшения качества видео. Блок 220 контурного фильтра предназначен для представления одного или нескольких контурных фильтров, таких как фильтр удаления блочности, фильтр с адаптивным смещением к выборке (sample-adaptive offset, SAO) или другой фильтр, такой как двусторонний фильтр, адаптивный контурный фильтр (adaptive loop filter, ALF), фильтр повышения резкости или сглаживания или коллективный фильтр. Хотя блок 220 контурного фильтра показан на фиг. 2, в другой конфигурации блок 220 контурного фильтра может быть реализован как пост-контурный фильтр. Отфильтрованный блок 221 также может упоминаться как фильтрованный восстановленный блок 221. Буфер 230 декодированного изображения может хранить восстановленные кодированные блоки после того, как блок 220 контурного фильтра выполняет операции фильтрации на восстановленных кодированных блоках.The loop filter block 220 (or "loop filter" 220 for short) is configured to filter the reconstructed block 215 to obtain a filtered block 221, smooth pixel transitions, or improve video quality. The loop filter block 220 is designed to represent one or more loop filters, such as a deblocking filter, a sample-adaptive offset (SAO) filter, or another filter, such as a two-sided filter, an adaptive loop filter, ALF), sharpen or smooth filter, or collective filter. Although the loop filter unit 220 is shown in FIG. 2, in another configuration, the loop filter block 220 may be implemented as a post-loop filter. The filtered block 221 may also be referred to as the filtered reconstructed block 221. The decoded picture buffer 230 may store the reconstructed coded blocks after the loop filter block 220 performs filtering operations on the reconstructed coded blocks.

В варианте осуществления кодер 20 (соответственно, блок 220 контурного фильтра) может быть выполнен с возможностью выводить параметры контурного фильтра (такие как выборочная информация адаптивного смещения), например, непосредственно или после энтропийного кодирования, выполняемого блоком 270 энтропийного кодирования или любым другим блоком энтропийного кодирования, так что, например, декодер 30 может принимать одни и те же параметры контурного фильтра и применять те же параметры контурного фильтра для декодирования.In an embodiment, encoder 20 (respectively, loop filter block 220) may be configured to output loop filter parameters (such as adaptive bias sample information), for example, directly or after entropy encoding performed by entropy encoding block 270 or any other entropy encoding block. so that, for example, decoder 30 can receive the same loop filter parameters and apply the same loop filter parameters for decoding.

Буфер 230 декодированных изображений (decoded picture buffer, DPB) может быть памятью опорных изображений, в которой хранятся данные опорных изображений для использования при кодировании видеоданных видеокодером 20. DPB 230 может быть сформирован любым из множества устройств памяти, таких как динамическая память с произвольным доступом (dynamic random access memory, DRAM) (включающую в себя синхронную DRAM (synchronous DRAM, SDRAM), магниторезистивную RAM (magneto resistive RAM, MRAM), резистивную RAM (resistive RAM, RRAM)) или другие типы запоминающих устройств. DPB 230 и буфер 216 могут быть предоставлены одной и той же памятью или отдельными запоминающими устройствами. В примере буфер 230 декодированного изображения (decoded picture buffer, DPB) выполнен с возможностью хранить отфильтрованный блок 221. Буфер 230 декодированного изображения может быть дополнительно выполнен с возможностью хранить другие ранее отфильтрованные блоки, например, ранее восстановленных и отфильтрованных блоков 221, одного и того же текущего изображения или разных изображений, например, ранее восстановленных изображений, и может предоставлять полностью ранее восстановленные изображения, то есть, декодированные изображения (и соответствующие опорные блоки и выборки) и/или частично восстановленное текущее изображение (и соответствующее опорные блоки и выборки), например, для внешнего предсказания. В одном примере, если восстановленный блок 215 восстанавливается без внутриконтурной фильтрации, буфер 230 декодированного изображения (decoded picture buffer, DPB) выполнен с возможностью хранить восстановленный блок 215.Decoded picture buffer (DPB) 230 may be a reference picture memory that stores reference picture data for use in encoding video data by video encoder 20. DPB 230 may be formed by any of a variety of memory devices, such as dynamic random access memory ( dynamic random access memory, DRAM) (including synchronous DRAM (synchronous DRAM, SDRAM), magnetoresistive RAM (magneto resistive RAM, MRAM), resistive RAM (resistive RAM, RRAM)) or other types of storage devices. DPB 230 and buffer 216 may be provided by the same memory or separate storage devices. In an example, decoded picture buffer (DPB) 230 is configured to store a filtered block 221. Decoded picture buffer 230 may be further configured to store other previously filtered blocks, such as previously reconstructed and filtered blocks 221 of the same of the current picture or different pictures, e.g., previously reconstructed pictures, and may provide completely previously reconstructed pictures, i.e., decoded pictures (and corresponding reference blocks and samples) and/or partially reconstructed current picture (and corresponding reference blocks and samples), e.g. , for external prediction. In one example, if the reconstructed block 215 is reconstructed without in-loop filtering, the decoded picture buffer (DPB) 230 is configured to store the reconstructed block 215.

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

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

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

Дополнительно приведено подробное описание процесса обработки предсказания, выполняемой (например, с использованием блока 260 обработки предсказания), и выбора режима, выполняемого (например, с использованием блока 262 выбора режима) с помощью примера кодера 20.Further, a detailed description is given of the prediction processing performed (for example, using the prediction processing block 260) and the mode selection performed (for example, using the mode selection block 262) using the example encoder 20.

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

Набор режимов внутреннего предсказания может включать в себя 35 различных режимов внутреннего предсказания, или может включать в себя 67 различных режимов внутреннего предсказания, или может включать в себя разрабатываемый режим внутреннего предсказания, определенный в H.266.The set of intra prediction modes may include 35 different intra prediction modes, or may include 67 different intra prediction modes, or may include a developing intra prediction mode defined in H.266.

Множество взаимосвязанных режимов предсказания зависит от доступного опорного кадра (то есть, по меньшей мере, часть декодированного изображения, сохраненного в DBP 230) и другого параметра внешнего предсказания, например, в зависимости от того, используются ли все опорные изображения или только часть опорного изображения, например, окно поиска области вокруг области текущего блока, для поиска наилучшего соответствия опорного блока и/или в зависимости, например, от того, применяется ли интерполяция пикселя, такая как полупиксельная и/или четверть-пиксельная интерполяция.The plurality of interrelated prediction modes depends on the available reference frame (i.e., at least a portion of the decoded picture stored in DBP 230) and another inter-prediction parameter, such as whether all reference pictures or only part of the reference picture are used, for example, an area search box around the area of the current block, to find the best match of the reference block and/or depending on, for example, whether pixel interpolation is applied, such as half-pixel and/or quarter-pixel interpolation.

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

Блок 260 обработки предсказания может быть дополнительно выполнен с возможностью разделять блок 203 на более мелкие разделы блока или подблоки, например, путем итеративного использования разделения дерева квадрантов (quad-tree, QT), двоичного дерева (binary-tree, BT), разделение на тройное дерево (triple-tree, TT) или любую их комбинацию, а также для выполнения, например, предсказания для каждого из разделов блоков или подблоков. Выбор режима включает в себя выбор древовидной структуры разделенного блока 203 и выбор режима предсказания, применяемого к каждому из разделов блока или подблоков.The prediction processor 260 may be further configured to partition the block 203 into smaller block sections or sub-blocks, for example, by iteratively using quad-tree (QT) partitioning, binary-tree (BT), ternary partitioning. tree (triple-tree, TT) or any combination of them, as well as to perform, for example, prediction for each of the sections of blocks or subblocks. Mode selection includes selecting a tree structure of the partitioned block 203 and selecting a prediction mode applied to each of the block partitions or subblocks.

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

Так, например, кодер 20 может быть выполнен с возможностью выбирать опорный блок из множества опорных блоков одного и того же изображения или различных изображений из множества других изображений и поставлять в блок оценки движения (который не показан фиг. 2) опорное изображение и/или смещение (пространственное смещение) между положением (координаты X и Y) опорного блока и положением текущего блока в качестве параметра внешнего предсказания. Это смещение также называется вектором движения (motion vector, MV).Thus, for example, encoder 20 may be configured to select a reference block from a plurality of reference blocks of the same picture or different pictures from a plurality of other pictures, and supply to a motion estimator (which is not shown in FIG. 2) a reference picture and/or an offset (spatial offset) between the position (X and Y coordinates) of the reference block and the position of the current block as an inter prediction parameter. This offset is also called the motion vector (MV).

Блок компенсации движения выполнен с возможностью получать, например, принимать параметры внешнего предсказания и выполнять внешнее предсказания на основании или с использованием параметров внешнего предсказания для получения блока 245 внешнего предсказания. Компенсация движения, выполняемая блоком компенсации движения (который не показан на фиг. 2) может включать в себя выборку или генерацию блока предсказания на основании вектора движения/блока, определенного посредством оценки движения (возможно, посредством выполнения интерполяции с точностью до субпикселя). Интерполяционная фильтрация может генерировать дополнительные выборки пикселей из известных выборок пикселей, тем самым, потенциально увеличивая количество кандидатов блоков предсказания, которые могут использоваться для кодирования блока изображения. После приема вектора движения для PU текущего блока изображения блок 246 компенсации движения может найти блок предсказания, на который указывает вектор движения, в одном из списков опорных изображений. Блок 246 компенсации движения также может генерировать элементы синтаксиса, связанные с блоками и сегментами видео, для использования видеодекодером 30 при декодировании блоков изображения сегмента видео.The motion compensation block is configured to receive, for example, receive inter prediction parameters, and perform inter prediction based on or using the inter prediction parameters to obtain inter prediction block 245 . Motion compensation performed by a motion compensator (which is not shown in FIG. 2) may include sampling or generating a prediction block based on a motion vector/block determined by motion estimation (perhaps by performing sub-pixel interpolation). Interpolation filtering can generate additional pixel samples from known pixel samples, thereby potentially increasing the number of prediction block candidates that can be used to encode an image block. After receiving the motion vector for the PU of the current picture block, the motion compensator 246 may find the prediction block pointed to by the motion vector in one of the reference picture lists. Motion compensation block 246 may also generate syntax elements associated with video blocks and segments for use by video decoder 30 when decoding image blocks of a video segment.

Блок 254 внутреннего предсказания выполнен с возможностью получать, например, принимать блок 203 изображения (текущего блока изображения) и одного или нескольких ранее восстановленных блоков, например, восстановленных соседних блоков, одного и того же изображения для внутренней оценки. Кодер 20 может быть, например, выполнен с возможностью выбирать режим внутреннего предсказания из множества (заранее определенных) режимов внутреннего предсказания.The intra prediction block 254 is configured to receive, for example, an image block 203 (of the current image block) and one or more previously reconstructed blocks, such as reconstructed adjacent blocks, of the same image for intra estimation. Encoder 20 may be, for example, configured to select an intra prediction mode from a plurality of (predetermined) intra prediction modes.

В варианте осуществления кодер 20 может быть выполнен с возможностью выбирать режим внутреннего предсказания на основании критерия оптимизации, например, на основании минимального остатка (например, режим внутреннего предсказания, обеспечивающий блок 255 предсказания, который наиболее подходит текущему блоку 203 изображения) или искажения с минимальной скоростью.In an embodiment, encoder 20 may be configured to select an intra prediction mode based on an optimization criterion, such as minimum residual (e.g., intra prediction mode providing a prediction block 255 that best fits the current image block 203) or minimum rate distortion. .

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

Блок 270 энтропийного кодирования выполнен с возможностью применять (или не применять) алгоритм или схемы энтропийного кодирования (например, схему кодирования с переменной длиной (variable length coding, VLC), схему контекстно-адаптивного VLC (context adaptive VLC, CAVLC), схема арифметического кодирования, контекстно-адаптивное двоичное арифметическое кодирование (context adaptive binary arithmetic coding, CABAC), основанное на синтаксисе контекстно-адаптивное двоичное арифметическое кодирование (syntax-based context-adaptive binary arithmetic coding, SBAC), энтропийное кодирование разделение интервалов вероятности (probability interval partitioning entropy, PIPE) или другой способ или технология энтропийного кодирования) к одному или всем квантованным остаточным коэффициентам 209, параметрам внешнего предсказания, параметрам внутреннего предсказания и/или параметрам контурного фильтра для получения данных 21 кодированного изображения, которые могут выводиться через выход 272, например, в форме кодированного битового потока 21. Закодированный битовый поток может быть передан на видеодекодер 30, или сохранен для последующей передачи или поиска видеодекодером 30. Блок 270 энтропийного кодирования может быть дополнительно выполнен с возможностью энтропийного кодирования других элементов синтаксиса для текущего кодируемого сегмента видео.The entropy encoding unit 270 is configured to apply (or not apply) an entropy coding algorithm or schemes (e.g., variable length coding (VLC) scheme, context adaptive VLC (context adaptive VLC, CAVLC), arithmetic coding scheme , context-adaptive binary arithmetic coding (CABAC), syntax-based context-adaptive binary arithmetic coding (SBAC), probability interval partitioning entropy , PIPE) or other entropy coding method or technology) to one or all of the quantized residual coefficients 209, inter prediction parameters, intra prediction parameters, and/or loop filter parameters to obtain encoded image data 21 that can be output via output 272, e.g. ep, in the form of an encoded bitstream 21. The encoded bitstream may be transmitted to video decoder 30, or stored for later transmission or retrieval by video decoder 30. Entropy encoding unit 270 may be further configured to entropy encode other syntax elements for the current video segment being encoded.

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

Фиг. 3 показывает пример видеодекодера 30, выполненного с возможностью реализации технологии настоящего изобретения. Видеодекодер 30 выполнен с возможностью принимать данные 21 кодированного изображения (например, закодированного битового потока), закодированного, например, кодером 20, для получения декодированного изображения 231. В процессе декодирования видеодекодер 30 принимает видеоданные от видеокодера 20, например, кодированный битовый поток видео, который представляет блок изображения кодированного сегмента видео и связанные с ним элементы синтаксиса.Fig. 3 shows an example of a video decoder 30 capable of implementing the technology of the present invention. Video decoder 30 is configured to receive encoded picture data (eg, encoded bitstream) encoded by, for example, encoder 20 to obtain a decoded image 231. In the decoding process, video decoder 30 receives video data from video encoder 20, such as an encoded video bitstream that represents an image block of an encoded video segment and associated syntax elements.

В примере на фиг. 3, декодер 30 включает в себя блок 304 энтропийного декодирования, блок 310 обратного квантования, блок 312 обработки обратного преобразования, блок 314 восстановления (например, сумматор 314), буфер 316, контурный фильтр 320, буфер 330 декодированного изображения и блок 360 обработки предсказания. Блок 360 обработки предсказания может включать в себя блок 344 внешнего предсказания, блок 354 внутреннего предсказания и блок 362 выбора режима. В некоторых примерах видеодекодер 30 может выполнять процесс декодирования в целом обратный процессу кодирования, описанному со ссылкой на видеокодер 20 на фиг. 2.In the example in FIG. 3, the decoder 30 includes an entropy decoding block 304, an inverse quantization block 310, an inverse transform processing block 312, a reconstruction block 314 (e.g., adder 314), a buffer 316, a loop filter 320, a decoded image buffer 330, and a prediction processing block 360. The prediction processing block 360 may include an inter prediction block 344, an intra prediction block 354, and a mode selection block 362. In some examples, video decoder 30 may perform a decoding process that is generally the reverse of the encoding process described with reference to video encoder 20 in FIG. 2.

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

Блок 310 обратного квантования может иметь ту же функцию, что и блок 110 обратного квантования, блок 312 обработки обратного преобразования может иметь ту же функцию, что и блок 212 обработки обратного преобразования, блок 314 восстановления может иметь ту же функцию, что и блок 214 восстановления, буфер 316 может иметь ту же функцию, что и буфер 216, контурный фильтр 320 может иметь ту же функцию, что и контурный фильтр 220 и буфер 330 декодированного изображения может иметь ту же функцию, что и буфер 230 декодированного изображения.The inverse quantization block 310 may have the same function as the inverse quantization block 110, the inverse transform processing block 312 may have the same function as the inverse transform processing block 212, the reconstruction block 314 may have the same function as the reconstruction block 214 , buffer 316 may have the same function as buffer 216, loop filter 320 may have the same function as loop filter 220, and decoded picture buffer 330 may have the same function as decoded picture buffer 230.

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

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

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

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

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

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

Блок 320 контурной фильтрации (в контуре кодирования или после контура кодирования) выполнен с возможностью фильтрации восстановленного блока 315 для получения отфильтрованного блока 321, сглаживания переходов пикселей или улучшения качества видео. В одном примере блок 320 контурного фильтра может быть выполнен с возможностью выполнять любую комбинацию технологий фильтрации, описанных ниже. Блок 320 контурного фильтра предназначен для представления одного или нескольких контурных фильтров, таких как фильтр удаления блочности, фильтр с адаптивным смещением к выборке (sample-adaptive offset, SAO) или другой фильтр, такой как двусторонний фильтр, адаптивный контурный фильтр (adaptive loop filter, ALF), фильтр повышения резкости или сглаживания или коллективный фильтр. Хотя блок 320 контурного фильтра показан на фиг. 3, в другой конфигурации блок 320 контурного фильтра может быть реализован как пост-контурный фильтр.The loop filter block 320 (either in the encoding loop or after the encoding loop) is configured to filter the reconstructed block 315 to obtain a filtered block 321, smooth pixel transitions, or improve video quality. In one example, the loop filter unit 320 may be configured to perform any combination of the filter technologies described below. The loop filter block 320 is designed to represent one or more loop filters, such as a deblocking filter, a sample-adaptive offset (SAO) filter, or another filter, such as a two-sided filter, an adaptive loop filter, ALF), sharpen or smooth filter, or collective filter. Although the loop filter unit 320 is shown in FIG. 3, in another configuration, the loop filter block 320 may be implemented as a post-loop filter.

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

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

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

Фиг. 4 является схематической структурной схемой устройства 400 видеокодирования (например, устройства 400 видеокодирования или устройства 400 видеодекодирования) согласно варианту осуществления настоящего изобретения. Устройство 400 видеокодирования подходит для реализации вариантов осуществления, описанных в этой спецификации. В варианте осуществления устройство 400 видеокодирования может быть видеодекодером (например, видеодекодером 30 на фиг. 1A) или видеокодером (например, видеокодером 20 на фиг. 1A).). В другом варианте осуществления устройство 400 видеокодирования может быть одним или несколькими компонентами в видеодекодере 30 на фиг. 1A или видеокодере 20 на фиг. 1А.Fig. 4 is a schematic block diagram of a video encoding device 400 (eg, video encoding device 400 or video decoding device 400) according to an embodiment of the present invention. The video encoder 400 is suitable for implementing the embodiments described in this specification. In an embodiment, video encoding device 400 may be a video decoder (eg, video decoder 30 in FIG. 1A) or a video encoder (eg, video encoder 20 in FIG. 1A).). In another embodiment, video encoding device 400 may be one or more components in video decoder 30 in FIG. 1A or video encoder 20 in FIG. 1A.

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

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

Память 460 включает в себя один или несколько дисков, ленточных накопителей и твердотельных накопителей и может использоваться в качестве запоминающего устройства для переполнения данных, для хранения программ, когда эти программы выбраны для выполнения, и для хранения инструкций и данных, которые читаются во время выполнения программы. Память 460 может быть энергозависимой и/или энергонезависимой и может быть постоянным запоминающим устройством (ROM), памятью с произвольным доступом (RAM), троичной памятью с адресацией по содержанию (ternary content-addressable memory, TCAM) и/или статической оперативной памятью (SRAM).Memory 460 includes one or more disks, tape drives, and solid state drives and can be used as a storage device for overflowing data, for storing programs when those programs are selected for execution, and for storing instructions and data that are read during program execution. . Memory 460 may be volatile and/or non-volatile and may be read only memory (ROM), random access memory (RAM), ternary content-addressable memory (TCAM), and/or static random access memory (SRAM). ).

Фиг. 5 является упрощенной блок-схемой устройства 500, которое может использоваться как одно или два из устройства 12 источника и устройства 14 назначения на фиг. 1A согласно примерному варианту осуществления. Устройство 500 может реализовывать технологию настоящего изобретения. Устройство 500 для реализации разделения изображения может быть выполнено в форме вычислительной системы, включающей в себя множество вычислительных устройств, или в форме одного вычислительного устройства, такого как мобильный телефон, планшетный компьютер, портативный компьютер или настольный компьютер.Fig. 5 is a simplified block diagram of a device 500 that can be used as one or two of source device 12 and destination device 14 in FIG. 1A according to an exemplary embodiment. Device 500 may implement the technology of the present invention. The device 500 for realizing image division may be in the form of a computing system including a plurality of computing devices, or in the form of a single computing device such as a mobile phone, tablet computer, laptop computer, or desktop computer.

Процессор 502 устройства 500 может быть центральным процессором. В качестве альтернативы процессор 502 может быть устройством любого другого типа или множеством устройств, которые могут управлять или обрабатывать информацию и которые применяются в настоящее время или будут разработаны в будущем. Как показано на чертеже, хотя раскрытые реализации могут быть реализованы с одним процессором, таким как процессор 502, за счет использования более чем одного процессора могут быть достигнуты преимущества в скорости и эффективности.Processor 502 of device 500 may be a central processing unit. Alternatively, processor 502 may be any other type of device or a plurality of devices that can control or process information that are currently in use or will be developed in the future. As shown in the drawing, although the disclosed implementations may be implemented with a single processor, such as processor 502, speed and efficiency advantages may be achieved by using more than one processor.

В реализации, память 504 устройства 500 может быть постоянным запоминающим устройством (Read Only Memory, ROM) или устройством оперативной памяти (random access memory, RAM). В качестве памяти 504 может использоваться любой другой подходящий тип запоминающего устройства. Память 504 может включать в себя код и данные 506, к которым обращается процессор 502 с использованием шины 512. Память 504 может дополнительно включать в себя операционную систему 508 и прикладные программы. 510. Прикладные программы 510 включают в себя, по меньшей мере, одну программу, которая позволяет процессору 502 выполнять способы, описанные в этой спецификации. Например, прикладные программы 510 могут включать в себя приложения с 1 по N, приложения с 1 по N дополнительно включают в себя приложение кодирования видео, которое выполняет способ, описанный в этой спецификации. Устройство 500 также может включать в себя дополнительную память в форме вторичного хранилища 514. Вторичное хранилище 514 может быть, например, картой памяти, используемой с мобильным вычислительным устройством. Поскольку сеансы видеосвязи могут содержать большой объем информации, эта информация может быть сохранена полностью или частично во вторичном хранилище 514 и загружена в память 504 по мере необходимости для обработки.In an implementation, the memory 504 of the device 500 may be Read Only Memory (ROM) or random access memory (RAM). The memory 504 may be any other suitable type of storage device. Memory 504 may include code and data 506 accessed by processor 502 using bus 512. Memory 504 may further include operating system 508 and application programs. 510. Application programs 510 include at least one program that allows the processor 502 to perform the methods described in this specification. For example, applications 510 may include applications 1 through N, applications 1 through N further include a video encoding application that performs the method described in this specification. Device 500 may also include additional memory in the form of secondary storage 514. Secondary storage 514 may be, for example, a memory card used with a mobile computing device. Because video communications may contain a large amount of information, this information may be stored in whole or in part in secondary storage 514 and loaded into memory 504 as needed for processing.

Устройство 500 также может включать в себя одно или несколько устройств вывода, таких как дисплей 518. В примере дисплей 518 может быть сенсорным дисплеем, который сочетает в себе дисплей с сенсорным элементом, который выполнен с возможностью воспринимать сенсорные вводы. Дисплей 518 может быть соединен с процессором 502 с помощью шины 512. В дополнение или в качестве альтернативы дисплею 518 могут быть предоставлены другие устройства вывода, которые позволяют пользователю программировать или иным образом использовать устройство 500. Когда устройство вывода представляет собой или включает в себя дисплей, дисплей может быть реализован различными способами, в том числе с помощью жидкокристаллического дисплея (liquid crystal display, LCD), дисплея с электронно-лучевой трубкой (cathode-ray tube, CRT), плазменным дисплеем или диодным светоизлучающим дисплеем (light emitting diode, LED), дисплеем, таким как органический LED (organic LED, OLED) дисплей.The device 500 may also include one or more output devices, such as a display 518. In an example, the display 518 may be a touch display that combines a display with a touch element that is configured to accept touch inputs. Display 518 may be coupled to processor 502 via bus 512. In addition to or alternatively to display 518, other output devices may be provided that allow a user to program or otherwise use device 500. When an output device is or includes a display, The display can be implemented in a variety of ways, including liquid crystal display (LCD), cathode-ray tube (CRT), plasma display, or light emitting diode (LED) display , a display such as an organic LED (organic LED, OLED) display.

Устройство 500 может также включать в себя устройство 520 формирования изображения или быть подключено к нему. Устройство 520 формирования изображения представляет собой, например, камеру или любое другое устройство 520 формирования изображения, которое может воспринимать изображение и которое используется в настоящее время или будет разработан в будущем. Изображение представляет собой, например, изображение пользователя, который использует устройство 500. Устройство 520 считывания изображения может быть размещено непосредственно перед пользователем, который запускает устройство 500. В примере положение и оптическая ось считывания изображения устройство 520 может быть сконфигурировано так, что поле зрения устройства 520 формирования изображения включает в себя область, близко прилегающую к дисплею 518, и дисплей 518 может быть виден из этой области.The device 500 may also include or be connected to an imaging device 520. The imaging device 520 is, for example, a camera or any other imaging device 520 capable of sensing an image that is currently in use or will be developed in the future. The image is, for example, an image of a user who uses the device 500. The image reader 520 may be placed directly in front of the user who starts the device 500. In the example, the position and optical axis of the image reader 520 may be configured such that the field of view of the device 520 imaging includes an area adjacent to the display 518, and the display 518 can be seen from this area.

Устройство 500 может также включать в себя устройство 522 обнаружения звука или взаимодействовать с ним, например, микрофон или любое другое звуковое устройство, которое используется в настоящее время или будет разработано в будущем, и которое может воспринимать звуки рядом с устройством 500. Устройство 522 обнаружения звука может быть размещено непосредственно перед пользователем, который запускает устройство 500, и может быть выполнено с возможностью принимать звук, например, голос или другой звук, издаваемый пользователем при запуске устройства 500.The device 500 may also include or interact with an audio detection device 522, such as a microphone or any other audio device that is currently in use or will be developed in the future that can sense sounds in the vicinity of the device 500. The audio detection device 522 may be placed directly in front of the user who starts the device 500, and may be configured to receive sound, such as a voice or other sound made by the user when the device 500 is started.

Хотя фиг. 5 изображает процессор 502 и память 504 устройства 500 как интегрированные в единый блок, могут использоваться другие конфигурации. Работа процессора 502 может быть распределена между множеством машин (каждая машина включает в себя один или несколько процессоров), которые могут быть напрямую связаны или распределены в локальной области или другой сети. Память 504 может быть распределена по множеству машин, таких как сетевая память или память во множестве машин, на которых работает устройство 500. Хотя здесь изображена как одна шина, шина 512 устройства 500 может включать в себя множество шин. Дополнительно, вторичное хранилище 514 может быть напрямую связано с другими компонентами устройства 500 или может быть доступно по сети и может включать в себя один интегрированный блок, такой как карта памяти, или множество блоков, например, множество карт памяти. Таким образом, устройство 500 может быть реализовано в широком разнообразии конфигураций.Although FIG. 5 depicts the processor 502 and memory 504 of the device 500 as being integrated into a single unit, other configurations may be used. The operation of the processor 502 may be distributed among a plurality of machines (each machine includes one or more processors), which may be directly connected or distributed over a local area or other network. Memory 504 may be distributed across multiple machines, such as network storage or memory across multiple machines running device 500. Although depicted here as a single bus, bus 512 of device 500 may include multiple buses. Additionally, secondary storage 514 may be directly connected to other components of the device 500 or may be accessed over a network and may include a single integrated unit, such as a memory card, or multiple units, such as a plurality of memory cards. Thus, device 500 can be implemented in a wide variety of configurations.

Как описано выше в настоящем изобретении, помимо использования компонента яркости (Y), цветное видео дополнительно включает в себя компоненты цветности (U, V). Следовательно, помимо кодирования компонента яркости, необходимо также кодировать компоненты цветности. В соответствии с различными способами выборки компонента яркости и компонентов цветности в цветном видео обычно используются YUV4:4:4, YUV4:2:2 и YUV4:2:0. Как показано на фиг. 6 крестик представляет выборку компонента яркости, а кружок представляет выборку компонента цветности.As described above in the present invention, in addition to using a luminance (Y) component, color video further includes chrominance (U, V) components. Therefore, in addition to encoding the luminance component, it is also necessary to encode the chrominance components. According to different sampling methods of luma component and chrominance components, YUV4:4:4, YUV4:2:2, and YUV4:2:0 are commonly used in color video. As shown in FIG. 6, a cross represents a luma component sample and a circle represents a chrominance component sample.

Формат 4:4:4 указывает, что компонент цветности не подвергается пониженной дискретизации.The 4:4:4 format indicates that the chrominance component is not downsampled.

Формат 4:2:2 указывает, что по отношению к компоненту яркости для компонента цветности выполняется горизонтальная понижающая дискретизация 2:1 и вертикальная понижающая дискретизация не выполняется для компонента цветности. Для каждых двух выборок U или V каждая строка включает в себя четыре выборки Y.The 4:2:2 format indicates that 2:1 horizontal downsampling is performed on the luminance component of the chroma component and no vertical downsampling is performed on the chrominance component. For every two U or V samples, each row includes four Y samples.

Формат 4:2:0 указывает, что по отношению к компоненту яркости для компонента цветности выполняется горизонтальная понижающая дискретизация 2:1 и для компонента цветности выполняется вертикальная понижающая дискретизация 2:1.The 4:2:0 format indicates that the luminance component is downsampled 2:1 horizontally and the chrominance component is vertically downsampled 2:1.

Видеодекодер может быть выполнен с возможностью разделять видеоблок согласно трем различным структурам разделения (QT, BT и TT) с использованием пяти различных типов разделения, разрешенных на каждой глубине. Типы разделения включают в себя разделение дерева квадрантов (QT split structure), разделение горизонтального двоичного дерева (BT split structure), разделение вертикального двоичного дерева (BT split structure) и горизонтальное разделение троичного дерева по центру (TT split structure), и вертикальное разделение троичного дерева по центру (TT split structure), как показано на фиг. 7А-фиг. 7E.The video decoder may be configured to partition a video block according to three different partition patterns (QT, BT, and TT) using five different partition types allowed at each depth. Split types include quadtree split structure (QT split structure), horizontal binary tree split (BT split structure), vertical binary tree split (BT split structure), and horizontal ternary tree split in the center (TT split structure), and vertical ternary split tree in the center (TT split structure), as shown in Fig. 7A-fig. 7E.

Пять типов разделения определены следующим образом: следует отметить, что квадрат рассматривается как частный случай прямоугольника.The five types of division are defined as follows: it should be noted that a square is considered as a special case of a rectangle.

Разделение дерева квадрантов (Quad-tree, QT): блок дополнительно разделяется на четыре прямоугольных блока одинакового размера. Фиг. 7A показывает пример разделения дерева квадрантов. Согласно способу разделения CTU на основании дерева квадрантов QT, CTU используется в качестве корневого узла (root) дерева квадрантов. CTU рекурсивно разбивается на несколько листовых узлов (leaf node) на основании режима разделения дерева квадрантов. Один узел соответствует одной области изображения. Если узел не разделен, узел называется листовым узлом, и область изображения, соответствующая узлу, становится CU. Если узел разделен, область изображения, соответствующая узлу, разделяется на четыре области изображения одинакового размера (длина и ширина четырех областей составляют соответственно половину длины и ширины области разделения), и каждая область соответствует одному узлу. Отдельно определяют, будут ли эти узлы дополнительно разделены. Должен ли узел быть разделен, указывается флагом split_cu_flag разделения, который находится в битовом потоке и соответствует узлу. Глубина (qtDepth) дерева квадрантов корневого узла равна 0 и глубина дерева квадрантов дочернего узла равна глубине дерева квадрантов родительского узла плюс 1. Для краткости описания размер и форма узла в настоящем изобретении имеют размер и форму области изображения, соответствующей узлу, то есть, узел является прямоугольной областью в изображении. Узел, полученный путем разделения узла (node) в дереве кодирования, может называться дочерним узлом (child node) узла, который для краткости является дочерним узлом.Quad-tree splitting (QT): The block is further divided into four rectangular blocks of the same size. Fig. 7A shows an example of splitting a quadtree. According to the QT quadtree-based CTU partitioning method, the CTU is used as the root node of the quadtree. The CTU is recursively split into multiple leaf nodes based on the split mode of the quadtree. One node corresponds to one area of the image. If a node is not split, the node is called a leaf node, and the image area corresponding to the node becomes CU. If the node is split, the image area corresponding to the node is divided into four image areas of the same size (the length and width of the four areas are respectively half the length and width of the split area), and each area corresponds to one node. It is separately determined whether these nodes will be further divided. Whether a node should be split is indicated by the split_cu_flag flag, which is in the bitstream and corresponds to the node. The depth (qtDepth) of the root node's quadtree is 0, and the depth of the child node's quadtree is the parent node's quadtree depth plus 1. For brevity, the size and shape of the node in the present invention is the size and shape of the image area corresponding to the node, that is, the node is rectangular area in the image. A node obtained by splitting a node in an encoding tree may be called a child node of a node, which is a child node for short.

Более конкретно, 64x64 узел CTU (с глубиной дерева квадрантов, равной 0) не может быть разделен на основании split_cu_flag, соответствующего узлу CTU, и становится CU 64x64; или может быть разбит на четыре узла 32x32 (с глубиной дерева квадрантов равной 1). Каждый из четырех узлов 32x32 может быть дополнительно разделен или не разделен на основании split_cu_flag, соответствующего узлу. Если узел 32x32 продолжает разделяться, генерируются четыре узла 16x16 (с глубиной дерева квадрантов равной 2). Остальное можно вывести по аналогии, пока ни один узел не будет разделен. Таким образом, один CTU разбивается на одну группу CUs. Минимальный размер (size) CU указан в SPS. Например, 8x8 является минимальным размером CU. В вышеупомянутом процессе рекурсивного разделения, если размер узла равен минимальному размеру CU (minimum CU size), узел не должен быть дополнительно разбит по умолчанию, и флаг разделения узла не нужно добавлять в битовый поток.More specifically, a 64x64 CTU node (with a quadtree depth of 0) cannot be split based on the split_cu_flag corresponding to the CTU node and becomes a 64x64 CU; or it can be split into four 32x32 nodes (with a quadtree depth of 1). Each of the four 32x32 nodes may or may not be further split based on the split_cu_flag corresponding to the node. If a 32x32 node keeps splitting, four 16x16 nodes (with a quadtree depth of 2) are generated. The rest can be deduced by analogy until no node is split. Thus, one CTU is split into one group of CUs. The minimum size (size) of a CU is specified in the SPS. For example, 8x8 is the minimum CU size. In the above recursive partitioning process, if the node size is equal to the minimum CU size, the node does not need to be further partitioned by default, and the node partitioning flag does not need to be added to the bitstream.

После того, как посредством синтаксического анализа стало известно, что узел является листовым узлом, и листовой узел является CU, информация кодирования (включающая в себя такую информацию, как режим предсказания и коэффициент преобразования CU, например, структура синтаксиса coding_unit () в H.266), соответствующий CU, анализируется дополнительно. Затем на CU выполняется обработка декодирования, такая как предсказание, обратное квантование, обратное преобразование и контурная фильтрация, на основании информации кодирования для генерирования восстановленного изображения, соответствующего CU. В структуре дерева квадрантов (Quadtree, QT) CTU может быть разделен на группу CUs соответствующих размеров на основании признака локального изображения. Например, плоская область разбивается на более крупные CUs, в то время как богато текстурированная область разбивается на более мелкие CUs.After it is known through parsing that the node is a leaf node and the leaf node is a CU, coding information (including information such as prediction mode and transform coefficient of the CU, such as the coding_unit() syntax structure in H.266 ) corresponding to CU is analyzed further. Then, at the CU, decoding processing such as prediction, inverse quantization, inverse transform, and loop filtering is performed based on the encoding information to generate a reconstructed image corresponding to the CU. In a quadtree (QT) structure, a CTU may be divided into a group of CUs of appropriate sizes based on a local image feature. For example, a flat area is split into larger CUs, while a richly textured area is split into smaller CUs.

Режим разделения CTU на группу CUs соответствует дереву кодирования (coding tree). Конкретное дерево кодирования, которое должно использоваться CTU, обычно определяется с помощью технологии кодера оптимизации скорости-искажения (rate distorting optimization, RDO). Кодер рассматривает множество режимов разделения CTU и каждый режим разделения соответствует одной стоимости искажения скорости (RD cost). Кодер сравнивает RD стоимости для режимов разделения, которые предпринимаются, для нахождения режима разделения с минимальной RD стоимостью в качестве оптимального режима разделения CTU для фактического кодирования CTU. Все режимы разделения CTU, проверенные кодером, должны соответствовать правилу разделения, заданному декодером, чтобы режимы разделения CTU могли быть правильно идентифицированы декодером.The mode of dividing the CTU into a group of CUs corresponds to the coding tree. The specific coding tree to be used by the CTU is typically determined by the rate distorting optimization (RDO) encoder technology. The encoder considers multiple CTU split modes, and each split mode corresponds to one rate distortion cost (RD cost). The encoder compares the cost RDs for the split modes that are being attempted to find the split mode with the minimum RD cost as the optimal CTU split mode for actual CTU encoding. All CTU split modes checked by the encoder must match the split rule specified by the decoder so that the CTU split modes can be correctly identified by the decoder.

Разделение по вертикальному двоичному дереву (binary tree, BT): блок вертикально разбивается на два прямоугольных блока одинакового размера. Фиг. 7B показывает пример вертикального разбиения двоичного дерева.Splitting on a vertical binary tree (binary tree, BT): a block is vertically split into two rectangular blocks of the same size. Fig. 7B shows an example of vertical partitioning of a binary tree.

Горизонтальное разделение двоичного дерева: блок горизонтально разбивается на два прямоугольных блока одинакового размера. Фиг. 7C показывает пример горизонтального разбиения двоичного дерева.Horizontal splitting of a binary tree: a block is split horizontally into two rectangular blocks of the same size. Fig. 7C shows an example of horizontal partitioning of a binary tree.

Вертикальное разделение троичного дерева по центру (TT): блок вертикально разделен на три прямоугольных блока, так что два боковых блока имеют одинаковый размер и размер центрального блока является суммой размеров двух боковых блоков. Фиг. 7D является примером вертикального разделения троичного дерева по центру.Vertical splitting of the ternary tree at the center (TT): the block is vertically divided into three rectangular blocks, so that the two side blocks are the same size and the size of the central block is the sum of the sizes of the two side blocks. Fig. 7D is an example of vertically splitting a ternary tree down the center.

Горизонтальное разделение троичного дерева по центру: блок по горизонтали разбивается на три прямоугольных блока, так что два боковых блока имеют одинаковый размер и размер центрального блока является суммой размеров двух боковых блоков. Фиг. 7E показывает пример горизонтального разделения троичного дерева по центру.Horizontal splitting of a ternary tree in the center: the block is horizontally split into three rectangular blocks, so that the two side blocks are the same size and the size of the central block is the sum of the sizes of the two side blocks. Fig. 7E shows an example of horizontal splitting of a ternary tree along the center.

Конкретные способы разделения на фиг. 7B-фиг. 7E аналогичны описаниям на фиг. 7A, и подробности здесь снова не описываются. Кроме того, может использоваться режим разделения каскадирования QT и BT/TT, который для краткости называется QT-BTT. То есть, узел в дереве кодирования уровня 1 может быть разделен на дочерние узлы только посредством Q и листовой узел в дереве кодирования уровня 1 является корневым узлом дерева кодирования уровня 2; узел в дереве кодирования уровня 2 может быть разделен на дочерние узлы с использованием одного из следующих четырех режимов разделения: горизонтальное двоичное разделение, вертикальное двоичное разделение, горизонтальное тройное разделение и вертикальное тройное разделение; листовой узел дерева кодирования уровня 2 является блоком кодирования. В частности, разделение двоичного дерева и разделение дерева квадрантов выполняется каскадным способом, который для краткости, может быть режимом разделения QTBT. Например, CTU сначала разделяется посредством QT и листовой узел QT может дополнительно разделяться посредством BT, как показано на фиг. 8. В правой части фиг. 8 каждая конечная точка представляет один узел. Один узел, соединенный с четырьмя сплошными линиями, представляет разделение дерева квадрантов и один узел, соединяющийся с двумя пунктирными линиями, представляет разделение двоичного дерева. Узел, полученный после разделения, может называться дочерним узлом узла, который для краткости является дочерним узлом. Среди дочерних узлов от a до m находятся 13 листовых узлов, и каждый листовой узел представляет один CU. На узле двоичного дерева 1 представляет вертикальное разделение и 0 представляет горизонтальное разделение. CTU разделен на 13 CUs: от a до m, как показано в левой части фиг. 8. В режиме разделения QTBT каждый CU имеет глубину QT (Quad-tree depth, QT depth) и глубину BT (Binary tree depth, BT depth). Глубина QT представляет собой глубину QT листового узла QT, которому принадлежит CU, и глубина BT представляет глубину BT листового узла BT, которому принадлежит CU. Например, на фиг. 8, глубины QT a и b равны 1, глубины BT a и b равны 2; глубины QT для c, d и e равны 1, глубины BT для c, d и e равны 1; глубины QT для f, k и l равны 2, глубины BT для f, k и l равны 1; глубины QT i и j равны 2, глубины BT i и j равны 0; глубины QT для g и h равны 2, глубины BT для g и h равны 2; глубина QT m равна 1, глубина BT m равна 0. Если CTU разделен только на один CU, глубина QT CU равна 0 и глубина BT CU равна 0.Specific separation methods in FIG. 7B-fig. 7E are similar to the descriptions in FIG. 7A, and details are not described here again. In addition, the QT and BT/TT cascading separation mode, which is called QT-BTT for short, can be used. That is, a node in the level 1 coding tree can only be subdivided into child nodes by Q, and a leaf node in the level 1 coding tree is the root node of the level 2 coding tree; a node in the layer 2 coding tree may be split into child nodes using one of the following four splitting modes: horizontal binary split, vertical binary split, horizontal ternary split, and vertical ternary split; the leaf node of the layer 2 coding tree is the coding block. In particular, binary tree splitting and quadtree splitting are performed in a cascaded manner, which for brevity, may be the QTBT splitting mode. For example, the CTU is first split by QT, and the QT leaf node may be further split by BT, as shown in FIG. 8. On the right side of FIG. 8 each endpoint represents one node. One node connected to four solid lines represents a quadtree split and one node connected to two dashed lines represents a binary tree split. The node resulting from the split may be referred to as the child node of the node, which is a child node for short. There are 13 leaf nodes among child nodes a through m, and each leaf node represents one CU. At a binary tree node, 1 represents a vertical split and 0 represents a horizontal split. The CTU is divided into 13 CUs: a to m, as shown on the left side of FIG. 8. In the QTBT split mode, each CU has a QT depth (Quad-tree depth, QT depth) and a BT depth (Binary tree depth, BT depth). The QT depth represents the QT depth of the QT leaf node to which the CU belongs, and the BT depth represents the BT depth of the BT leaf node to which the CU belongs. For example, in FIG. 8, QT depths a and b are 1, BT depths a and b are 2; the QT depths for c, d, and e are 1; the BT depths for c, d, and e are 1; the QT depths for f, k and l are 2, the BT depths for f, k and l are 1; the depths of QT i and j are equal to 2, the depths of BT i and j are equal to 0; the QT depths for g and h are 2, the BT depths for g and h are 2; the QT depth m is 1, the BT depth m is 0. If the CTU is divided into only one CU, the QT depth of the CU is 0 and the BT depth of the CU is 0.

Для блока, ассоциированного с конкретной глубиной, кодер 20 определяет, какой тип разделения (включающий в себя отсутствие дополнительного разделения) используется, и явно или неявно (например, тип разделения может быть получен из заранее определенного правила) сигнализирует об определенном типе разделения в декодер 30. Кодер 20 может определять используемый тип разделения на основании стоимости искажения скорости для проверки другого типа разделения для блока.For a block associated with a particular depth, encoder 20 determines which split type (including no additional split) is used and explicitly or implicitly (eg, split type can be derived from a predefined rule) signals the determined split type to decoder 30 The encoder 20 may determine which type of split to use based on the rate distortion cost to test a different split type for the block.

Если блок цветности 2xM, в частности, блок цветности 2x2, 2x4 или 2x8, генерируется путем разделения узла, эффективность кодирования и декодирования цветности сравнительно низкая, и затраты на обработку аппаратного декодера сравнительно высоки. Это неблагоприятно для реализации аппаратного декодера. Когда блок цветности текущего узла не разделяется дополнительно, в этом варианте осуществления настоящего изобретения может быть разделен только блок яркости текущего узла, тем самым, повышая эффективность кодирования и декодирования, снижая максимальную пропускную способность кодека и облегчая реализацию. кодека. В частности, в этом варианте осуществления настоящего изобретения, когда дочерние узлы, сгенерированные путем разделения узла с использованием режима разделения, включают в себя блок цветности, длина стороны которого является первым пороговым значением (или включает в себя блок цветности, длина стороны которого меньше второго порогового значения), блок яркости, содержащийся в узле, разделяется с использованием этого режима разделения, блок цветности, включенный в узел, дополнительно не разделяется. В этом режиме можно избежать генерирования блока цветности, длина стороны которого является первым пороговым значением (или длина стороны меньше второго порогового значения). В конкретной реализации первое пороговое значение может быть равно 2 и второе пороговое значение может быть равно 4. Нижеследующее предоставляет подробные описания со ссылкой на варианты 1-3 осуществления. В этом варианте осуществления настоящего изобретения описания предоставляются с использованием формата видеоданных YUV4:2:0 и аналогичный способ может быть использован для данных YUV4:2:2.If a 2xM chroma block, particularly a 2x2, 2x4, or 2x8 chroma block, is generated by splitting a node, the chroma encoding and decoding efficiency is relatively low, and the hardware decoder processing cost is relatively high. This is unfavorable for the hardware decoder implementation. When the chrominance block of the current node is not further divided, in this embodiment of the present invention, only the luminance block of the current node can be divided, thereby improving encoding and decoding efficiency, reducing the maximum codec bandwidth, and facilitating implementation. codec. Specifically, in this embodiment of the present invention, when the child nodes generated by splitting a node using the split mode include a chrominance block whose side length is the first threshold value (or includes a chroma block whose side length is less than the second threshold values), the luminance block contained in the node is divided using this separation mode, the chrominance block included in the node is not further divided. In this mode, it is possible to avoid generating a chrominance block whose side length is the first threshold value (or the side length is less than the second threshold value). In a particular implementation, the first threshold may be 2 and the second threshold may be 4. The following provides detailed descriptions with reference to Embodiments 1-3. In this embodiment of the present invention, descriptions are provided using the YUV4:2:0 video data format, and a similar method can be used for YUV4:2:2 data.

В расширенном стандарте SCC HEVC принят инструмент кодирования внутреннего копирования блока (Intra Block Copy, IBC) и, в основном, используется для повышения эффективности кодирования видео контента экрана. Режим IBC представляет собой режим кодирования на уровне блоков. На стороне кодера используется способ сопоставления блоков (block matching, BM) для поиска оптимального вектора блока (block vector) или вектора движения (motion vector) для каждого CU. Вектор движения в данном документе, в основном, используется для представления смещения от текущего блока к опорному блоку, а также упоминается как вектор смещения (displacement vector). Опорный блок является восстановленным блоком в текущем изображении. Режим IBC можно рассматривать как третий режим предсказания, отличный от режима внутреннего предсказания или режима внешнего предсказания. Для экономии пространства для хранения и упрощения декодера, режим IBC в VTM4 позволяет использовать для предсказания только восстановленную часть предварительно определенной области текущего CTU.In the extended SCC HEVC standard, an Intra Block Copy (IBC) coding tool is adopted and is mainly used to improve the efficiency of encoding screen video content. The IBC mode is a block level coding mode. On the encoder side, block matching (BM) is used to find the optimal block vector or motion vector for each CU. The motion vector in this document is mainly used to represent the displacement from the current block to the reference block, and is also referred to as the displacement vector. The reference block is the reconstructed block in the current image. The IBC mode can be considered as a third prediction mode different from the intra prediction mode or the inter prediction mode. To save storage space and simplify the decoder, VTM4's IBC mode allows only the reconstructed portion of a predefined region of the current CTU to be used for prediction.

В VTM на уровне CU используется флаг для указания, используется ли режим IBC для текущего CU. Режим IBC подразделяется на режим IBC AMVP, режим пропуска IBC или режим слияния IBC.The VTM uses a flag at the CU level to indicate whether IBC mode is used for the current CU. The IBC mode is subdivided into the IBC AMVP mode, the IBC skip mode, or the IBC merge mode.

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

Фиг. 9 является блок-схемой алгоритма способа 900 согласно варианту 1 осуществления настоящего изобретения.Fig. 9 is a flowchart of a method 900 according to Embodiment 1 of the present invention.

Этап 901: определить, нужно ли разделять текущий узел, если текущий узел включает в себя блок яркости и блок цветности.Step 901: determine whether to split the current node if the current node includes a luminance block and a chrominance block.

Если текущий узел дополнительно не разделяется на дочерние узлы, текущий узел является блоком кодирования (coding unit, CU), и этап 910 выполняется для получения информации о блоке кодирования посредством синтаксического анализа; или, если текущий узел необходимо разделить, выполняется этап 902.If the current node is not further divided into child nodes, the current node is a coding unit (CU), and step 910 is performed to obtain information about the coding unit through parsing; or, if the current node needs to be split, step 902 is executed.

Вариант 1 осуществления настоящего изобретения может быть реализован устройством декодирования видео, а именно, устройством, описанным на любом из фиг. 3 - фиг. 5.Embodiment 1 of the present invention may be implemented by a video decoding apparatus, namely the apparatus described in any of FIGS. 3 - fig. five.

Вариант 1 осуществления настоящего изобретения в качестве альтернативы может быть реализован устройством кодирования видео, а именно, устройством, описанным на любом из фиг. 2, фиг. 4 и фиг. 5.Embodiment 1 of the present invention may alternatively be implemented by a video encoding device, namely the device described in any of FIGS. 2, fig. 4 and FIG. five.

Когда вариант 1 осуществления реализуется устройством декодирования видео, этап 902: устройство декодирования видео анализирует поток битов, чтобы определить режим разделения текущего узла. Режим разделения текущего узла может быть как минимум одним из разделения квадрантов (QT), горизонтальное двоичное разделение (horizontal BT), горизонтального тройного разделение (horizontal TT), вертикальное двоичное разделение (Vertical BT) и вертикальное тройное разделение (Vertical TT) или может быть другим режимом разделения. Это не ограничивается данным вариантом осуществления настоящего изобретения. Информация о режиме разделения текущего узла обычно передается в потоке битов и режим разделения текущего узла может быть получен путем анализа соответствующего элемента синтаксиса в потоке битов.When Embodiment 1 is implemented by the video decoder, step 902: The video decoder parses the bitstream to determine the split mode of the current node. The split mode of the current node can be at least one of quadrant split (QT), horizontal binary split (horizontal BT), horizontal triple split (horizontal TT), vertical binary split (Vertical BT) and vertical triple split (Vertical TT) or can be different split mode. This is not limited to this embodiment of the present invention. Information about the split mode of the current node is usually transmitted in the bitstream, and the split mode of the current node can be obtained by parsing the corresponding syntax element in the bitstream.

Когда вариант 1 осуществления реализуется устройством кодирования видео, этап 902: определить способ разделения текущего узла.When Embodiment 1 is implemented by a video coding device, step 902: determine how to split the current node.

Этап 904: определить на основании режима разделения текущего узла и размера текущего узла, нужно ли разбивать блок цветности текущего узла; и, когда блок цветности текущего узла больше не разделяется, выполнить этап 906; или, когда блок цветности текущего узла необходимо разделить, выполнить этап 908.Step 904: determine, based on the splitting mode of the current node and the size of the current node, whether to split the chrominance block of the current node; and, when the current node's chrominance block is no longer split, execute step 906; or, when the current node's chrominance block is to be split, execute step 908.

В частности, в реализации может быть определено, генерируется ли блок цветности, длина стороны которого является первым пороговым значением (или блок цветности, длина стороны которого меньше второго порогового значения), путем разделения текущего узла на основании режима разделения текущего узла. Если определено, что дочерний узел, сгенерированный путем разделения текущего узла, включает в себя блок цветности, длина стороны которого является первым пороговым значением (или включает в себя блок цветности, длина стороны которого меньше второго порогового значения), блок цветности текущего узла дополнительно не разделяется. Например, первое пороговое значение может быть равно 2 и второе пороговое значение может быть равно 4.In particular, an implementation may determine whether a chrominance block whose side length is the first threshold (or a chrominance block whose side length is less than the second threshold) is generated by splitting the current node based on the splitting mode of the current node. If it is determined that the child node generated by splitting the current node includes a chrominance block whose side length is the first threshold value (or includes a chroma block whose side length is less than the second threshold value), the current node's chrominance block is not further divided . For example, the first threshold may be 2 and the second threshold may be 4.

В этом варианте осуществления настоящего изобретения блок цветности, длина стороны которого является первым пороговым значением, является блоком цветности, ширина или высота которого является первым пороговым значением.In this embodiment of the present invention, the chrominance block whose side length is the first threshold is the chrominance block whose width or height is the first threshold.

В другой реализации, например, когда любое из условий 1 - условия 5 истинно, может быть определено, что блок цветности текущего узла дополнительно не разделяется; в противном случае определяется, что блок цветности текущего узла необходимо разделить:In another implementation, for example, when any of conditions 1 - conditions 5 is true, it may be determined that the chrominance block of the current node is not further divided; otherwise, it is determined that the current node's chrominance block is to be split:

условие 1: ширина текущего узла равна удвоенному второму пороговому значению и режим разделения текущего узла представляет собой вертикальное двоичное разделение;condition 1: the width of the current node is equal to twice the second threshold value, and the division mode of the current node is vertical binary division;

условие 2: высота текущего узла равна удвоенному второму пороговому значению, и режим разделения текущего узла представляет собой горизонтальное двоичное разделение;condition 2: the height of the current node is equal to twice the second threshold value, and the division mode of the current node is horizontal binary division;

условие 3: ширина текущего узла равна четырехкратному второму пороговому значению и режим разделения текущего узла представляет собой вертикальное тройное разделение.condition 3: the width of the current node is four times the second threshold value, and the division mode of the current node is vertical triple division.

условие 4: высота текущего узла равна четырехкратному второму пороговому значению и режим разделения текущего узла представляет собой горизонтальное тройное разделение; или condition 4: the height of the current node is four times the second threshold, and the division mode of the current node is horizontal triple division; or

условие 5: ширина текущего узла равна удвоенному второму пороговому значению и режим разделения текущего узла представляет собой четырехкратное разделение.condition 5: the width of the current node is equal to twice the second threshold value, and the division mode of the current node is a quadruple division.

Обычно ширина текущего узла является шириной блока яркости, соответствующего текущему узлу, и высота текущего узла является высотой блока яркости, соответствующего текущему узлу. В конкретной реализации, например, второе пороговое значение может быть равно 4.Typically, the width of the current node is the width of the luminance block corresponding to the current node, and the height of the current node is the height of the luminance block corresponding to the current node. In a particular implementation, for example, the second threshold may be 4.

В третьей реализации может быть определено, генерируется ли блок цветности, ширина которого является первым пороговым значением (или блок цветности, ширина которого меньше второго порогового значения), путем разделения текущего узла на основании режима разделения текущего узла. Если определено, что дочерний узел, сгенерированный путем разделения текущего узла, включает в себя блок цветности, ширина которого является первым пороговым значением (или включает в себя блок цветности, ширина которого меньше второго порогового значения), блок цветности текущего узла дополнительным не разделяется. Например, первое пороговое значение может быть равно 2 и второе пороговое значение может быть равно 4.In a third implementation, it may be determined whether a chrominance block whose width is the first threshold (or a chrominance block whose width is less than the second threshold) is generated by splitting the current node based on the splitting mode of the current node. If it is determined that the child node generated by splitting the current node includes a chrominance block whose width is the first threshold (or includes a chroma block whose width is less than the second threshold), the current node's chrominance block is not additionally split. For example, the first threshold may be 2 and the second threshold may be 4.

В четвертой реализации может быть определено, генерируется ли блок цветности, количество выборок цветности которого меньше третьего порогового значения, путем разделения текущего узла на основании режима разделения текущего узла. Если определено, что дочерний узел, сгенерированный путем разделения текущего узла, включает в себя блок цветности, количество выборок цветности которого меньше третьего порогового значения, блок цветности текущего узла дополнительно не разделяется. Например, третье пороговое значение может быть 16. В этом случае блок цветности, количество выборок цветности которого меньше 16, включает, но не ограничивается, 2x2 блок цветности, 2x4 блок цветности и 4x2 блок цветности. Третье пороговое значение может быть равно 8. В этом случае блок цветности, количество выборок цветности которого меньше 8, включает в себя, но не ограничивается, 2x2 блок цветности.In a fourth implementation, it may be determined whether a chrominance block whose number of chrominance samples is less than the third threshold is generated by splitting the current node based on the splitting mode of the current node. If it is determined that the child node generated by splitting the current node includes a chroma block whose number of chroma samples is less than the third threshold, the chroma block of the current node is not further divided. For example, the third threshold may be 16. In this case, a chroma block whose number of chroma samples is less than 16 includes, but is not limited to, a 2x2 chroma block, a 2x4 chroma block, and a 4x2 chroma block. The third threshold may be 8. In this case, a chroma block whose number of chroma samples is less than 8 includes, but is not limited to, a 2x2 chroma block.

В частности, если условие 1 или условие 2 истинно, может быть определено, что блок цветности, количество выборок цветности которого меньше третьего порогового значения, генерируется путем разделения текущего узла на основании режима разделения текущего узла; в противном случае может быть определено, что никакой блок цветности, количество выборок цветности которого меньше третьего порогового значения, не генерируется путем разделения текущего узла на основании режима разделения текущего узла:Specifically, if condition 1 or condition 2 is true, it can be determined that a chrominance block whose number of chrominance samples is less than the third threshold is generated by splitting the current node based on the splitting mode of the current node; otherwise, it may be determined that no chrominance block whose number of chrominance samples is less than the third threshold is generated by splitting the current node based on the splitting mode of the current node:

условие 1: произведение ширины и высоты текущего узла меньше 128, и режим разделения текущего узла представляет собой вертикальное двоичное разделение или горизонтальное двоичное разделение; илиcondition 1: the product of the width and height of the current node is less than 128, and the division mode of the current node is vertical binary division or horizontal binary division; or

условие 2: произведение ширины и высоты текущего узла меньше 256, и режим разделения текущего узла представляет собой вертикальное тройное разделение, горизонтальное тройное разделение или квадро разделение.condition 2: The product of the width and height of the current node is less than 256, and the split mode of the current node is vertical triple split, horizontal triple split, or quadruple split.

В частности, в другой реализации, если выполняется либо условие 3, либо условие 4, может быть определено, что блок цветности, количество выборок цветности которого меньше третьего порогового значения, генерируется путем разделения текущего узла на основании режима разделения текущего узла; в противном случае может быть определено, что никакой блок цветности, количество выборок цветности которого меньше третьего порогового значения, не генерируется путем разделения текущего узла на основании режима разделения текущего узла:Specifically, in another implementation, if either condition 3 or condition 4 is met, it may be determined that a chrominance block whose number of chrominance samples is less than the third threshold is generated by splitting the current node based on the splitting mode of the current node; otherwise, it may be determined that no chrominance block whose number of chrominance samples is less than the third threshold is generated by splitting the current node based on the splitting mode of the current node:

условие 3: произведение ширины и высоты текущего узла равно 64 и режим разделения текущего узла представляет собой вертикальное двоичное разделение, горизонтальное двоичное разделение, квадро разделение, горизонтальное тройное разделение или вертикальное тройное разделение; илиcondition 3: the product of the width and height of the current node is 64, and the split mode of the current node is vertical binary split, horizontal binary split, quadruple split, horizontal triple split, or vertical triple split; or

условие 4: произведение ширины и высоты текущего узла равно 128, и режим разделения текущего узла представляет собой вертикальное тройное разделение или горизонтальное тройное разделение.condition 4: The product of the width and height of the current node is 128, and the split mode of the current node is vertical triple split or horizontal triple split.

В пятой реализации может быть определено, генерируется ли блок цветности, высота которого является первым пороговым значением (или блок цветности, высота которого меньше второго порогового значения), путем разделения текущего узла на основании режима разделения текущего узла. Если определено, что дочерний узел, сгенерированный путем разделения текущего узла, включает в себя блок цветности, высота которого является первым пороговым значением (или блок цветности, высота которого меньше второго порогового значения), блок цветности текущего узла дополнительно не разделяется. Например, первое пороговое значение может быть равно 2 и второе пороговое значение может быть равно 4.In a fifth implementation, it may be determined whether a chrominance block whose height is the first threshold (or a chrominance block whose height is less than the second threshold) is generated by splitting the current node based on the splitting mode of the current node. If it is determined that the child node generated by splitting the current node includes a chrominance block whose height is the first threshold (or a chrominance block whose height is less than the second threshold), the current node's chroma block is not further divided. For example, the first threshold may be 2 and the second threshold may be 4.

Этап 906: разделить блок яркости (luma block) текущего узла на основании режима разделения текущего узла для получения дочерних узлов (которые также могут называться дочерними узлами блока яркости, узлами яркости для краткости) текущего узла. Каждый дочерний узел включает в себя только блок яркости. Блок цветности (chroma block) текущего узла дополнительно не разделяется и становится блоком кодирования, включающим в себя только блок цветности.Step 906: Divide the luma block of the current node based on the split mode of the current node to obtain child nodes (which may also be referred to as child nodes of the luma block, luma nodes for short) of the current node. Each child node only includes a luminance block. The chroma block of the current node is not further split and becomes a coding block including only the chroma block.

Возможно, как показано на фиг. 10, этап 906 может дополнительно включать в себя этап 9062: проанализировать блок яркости текущего узла для получения информации предсказания и остаточной информации каждой из подобластей в блоке яркости текущего узла, где каждая подобласть соответствует одному дочернему узлу.Perhaps, as shown in Fig. 10, step 906 may further include step 9062: parse the current node luminance block to obtain prediction information and residual information of each of the sub-regions in the current node luminance block, where each sub-region corresponds to one child node.

В частности, этап 9062 может быть реализован с использованием любого из следующих способов:In particular, block 9062 may be implemented using any of the following methods:

Способ 1: дополнительно не разделять каждый дочерний узел блока яркости по умолчанию (то есть, каждый узел яркости является блоком кодирования и один дочерний узел блока яркости соответствует одному блоку кодирования, включающему в себя только блок яркости) и последовательно проанализировать данные блока кодирования для дочерних узлов блока яркости для получения информации предсказания и остаточной информации каждого блока яркости. Блок яркости узла яркости является подобластью в блоке яркости текущего узла и блоки яркости узлов яркости составляют блок яркости текущего узла.Method 1: Optionally, do not separate each default luminance block child node (that is, each luminance node is a coding block and one luminance block child node corresponds to one coding block including only the luminance block), and sequentially parse the coding block data for the child nodes luminance block to obtain prediction information and residual information of each luminance block. The luminance node luminance block is a subregion in the current node luminance block, and the luma node luminance blocks constitute the current node luminance block.

Способ 2: определить, нужно ли продолжать дополнительное последовательное разделение дочерних узлов блока яркости; и, когда дочерние узлы необходимо дополнительно разделить, проанализировать режим разделения дочерних узлов и соответствующие данные блока кодирования. Более конкретно, если узел яркости не разделяется дополнительно, анализируются данные блока кодирования, соответствующие узлу яркости, для получения информации предсказания и остаточной информации, которые соответствуют блоку яркости узла яркости; или, если узел яркости продолжает разделяться, определить, необходимо ли разделять дочерние узлы (следует отметить, что дочерний узел все еще включает в себя только блок яркости) узла яркости, до тех пор, пока не будет определена информация предсказания и остаточная информация каждой подобластей блока яркости текущего узла.Method 2: determine whether to continue the additional sequential division of the child nodes of the brightness block; and, when the child nodes need to be further divided, parse the child node separation mode and the corresponding coding block data. More specifically, if the luminance node is not further divided, coding block data corresponding to the luminance node is parsed to obtain prediction information and residual information that correspond to the luma node luminance block; or, if the luma node continues to split, determine whether to split the child nodes (note that the child node still includes only the luma block) of the luma node until the prediction information and the residual information of each block subregions are determined. the brightness of the current node.

Информация предсказания включает в себя, но не ограничивается этим, режим предсказания (указывающий режим внутреннего предсказания или режим внешнего предсказания), режим внутреннего предсказания, информацию о движении и/или тому подобное. Режим внутреннего предсказания блока яркости может быть одним из планарный режим (Planar Mode), DC режим (DC Mode), угловой режим (angular Mode) и полученный режим цветности (chroma derived mode, DM). Информация о движении может включать в себя информацию, такую как направление предсказания (вперед, назад или двунаправленное), опорный индекс (reference index) и/или вектор движения (motion vector).The prediction information includes, but is not limited to, a prediction mode (indicating an intra prediction mode or an inter prediction mode), an intra prediction mode, motion information, and/or the like. The intra-luma block prediction mode may be one of planar mode (Planar Mode), DC mode (DC Mode), angular mode (angular Mode), and derived chroma mode (chroma derived mode, DM). The motion information may include information such as prediction direction (forward, backward, or bi-directional), reference index, and/or motion vector.

Остаточная информация включает в себя флаг кодированного блока (coded block flag, CBF), коэффициент преобразования и/или тип преобразования (например, DCT-2, DST-7 или DCT-8) и т.п.The residual information includes a coded block flag (CBF), a transform coefficient and/or a transform type (eg, DCT-2, DST-7, or DCT-8), and the like.

Возможно, как показано на фиг. 10, этап 906 может дополнительно включать в себя этап 9064: получить информацию предсказания и/или остаточную информацию блока цветности.Perhaps, as shown in Fig. 10, step 906 may further include step 9064: obtain prediction information and/or residual chrominance block information.

В частности, этап 9064 может включать в себя этап 90642 и этап 90644. Этап 90642 может быть этапом 90642A или этапом 90642B.In particular, block 9064 may include block 90642 and block 90644. Block 90642 may be block 90642A or block 90642B.

Этап 90642A, в частности, включает в себя:Step 90642A specifically includes:

Получить режим предсказания для заданного положения блока яркости текущего узла в качестве режима предсказания блока цветности текущего узла. Положение верхнего левого угла блока яркости текущего узла может быть выражено как (x0, y0) и его размер равен WxH. В этом случае заданного положение может включать в себя, но не ограничивается, верхний левый угол, нижний правый угол (x0 + W - 1, y0 + H - 1), центр (x0 + W/2, y0 + H/2), (x0 + W/2, 0) или (0, y0 + H/2) блока яркости или тому подобное. Режим предсказания указывает, выполняется ли внутреннее предсказание или внешнее предсказание для пикселя в заданном положении, например информация, указанная синтаксическим элементом pred_mode_flag в HEVC. Например, в VTM может быть определено, является ли режим предсказания для заданного положения режимом IBC, на основании информации, указанной синтаксическим элементом pred_mode_ibc_flag.Get the prediction mode for the given luminance block position of the current node as the chrominance block prediction mode of the current node. The position of the top left corner of the current node's luminance block can be expressed as (x0, y0) and its size is WxH. In this case, the specified position may include, but is not limited to, top left corner, bottom right corner (x0 + W - 1, y0 + H - 1), center (x0 + W/2, y0 + H/2), (x0 + W/2, 0) or (0, y0 + H/2) luminance blocks or the like. The prediction mode indicates whether intra prediction or inter prediction is performed for a pixel at a given position, such as the information indicated by the pred_mode_flag syntax element in HEVC. For example, the VTM may determine whether the prediction mode for a given position is the IBC mode based on information indicated by the pred_mode_ibc_flag syntax element.

Если режимом предсказания для заданного положения является внешнее предсказание, для определения режима предсказания блока цветности используется один из следующих способов:If the prediction mode for a given position is inter prediction, one of the following methods is used to determine the chrominance block prediction mode:

Способ 1. Выполнить внешнее предсказание для блока цветности для получения информации о движении для заданного положения в качестве информации о движении для блока цветности.Method 1: Perform inter-prediction for a chroma block to obtain motion information for a given position as motion information for a chroma block.

Способ 2: выполнить внешнее предсказание для блока цветности и разделить блок цветности на подблоки предсказания цветности (где размер подблока предсказания цветности составляет, например, две выборки цветности по ширине и две выборки цветности по высоте) и получить информацию о движении субблоков предсказания цветности следующим образом:Method 2: Perform inter-prediction on a chrominance block, and divide the chroma block into chrominance prediction sub-blocks (where the size of the chroma prediction sub-block is, for example, two width chroma samples and two height chroma samples) and obtain motion information of the chroma prediction sub-blocks as follows:

Если внешнее предсказание выполняется для блоков яркости на позициях изображения яркости, соответствующих субблокам предсказания цветности, информация движения на позициях изображения яркости, соответствующих субблокам предсказания цветности, используется в качестве информации движения субблока предсказания цветности; в противном случае информация о движении для заданного положения получается как информация о движении субблоков предсказания цветности.If inter-prediction is performed for luma blocks at luminance image positions corresponding to chrominance prediction subblocks, motion information at luma image positions corresponding to chrominance prediction subblocks is used as motion information of the chrominance prediction subblock; otherwise, motion information for a given position is obtained as motion information of chrominance prediction sub-blocks.

Для изображения YUV4:2:0 координаты субблока предсказания цветности в изображении цветности обозначаются как (xC, yC). В этом случае координаты положения изображения яркости, соответствующего субблоку предсказания цветности, равны (xC << 1, yC << 1).For a YUV4:2:0 image, coordinates of a chroma prediction sub-block in the chroma image are denoted as (xC, yC). In this case, the position coordinates of the luminance image corresponding to the chrominance prediction subblock are (xC << 1, yC << 1).

Способ 3: анализировать флаг pred_mode_flag для определения, выполняется ли внутреннее или внешнее предсказание для блока цветности; и, если внутреннее предсказание выполняется для блока цветности, анализировать режим внутреннего предсказания из битового потока как режим внутреннего предсказания блока цветности; или, если внешнее предсказание выполняется для блока цветности, получить информацию о движении для заданного положения в качестве информации о движении для блока цветности.Method 3: parse pred_mode_flag to determine whether intra or inter prediction is performed for a chrominance block; and, if intra prediction is performed for a chrominance block, parse the intra prediction mode from the bitstream as an intra prediction mode of the chrominance block; or, if inter-prediction is performed for the chrominance block, obtain the motion information for the given position as the motion information for the chrominance block.

Способ 4. Анализировать флаг pred_mode_flag для определения, выполняется ли внутреннее или внешнее предсказание для блока цветности; и, если выполняется внутреннее предсказание в блоке цветности, анализировать режим внутреннего предсказания из потока битов как режим внутреннего предсказания блока цветности, где режим внутреннего предсказания может быть одним из режима линейной модели между компонентами и режима DM, и режим внутреннего предсказания яркости, соответствующий режиму DM, устанавливается на планарный режим; или, если внешнее предсказание выполняется в блоке цветности, разделить блок цветности на субблоки предсказания цветности, где информация о движении субблоков предсказания цветности получается следующим образом:Method 4: Parse pred_mode_flag to determine whether intra or inter prediction is performed for a chrominance block; and, if intra prediction is performed in the chrominance block, parse the intra prediction mode from the bit stream as the intra prediction mode of the chrominance block, where the intra prediction mode may be one of the inter-component linear model mode and the DM mode, and the intra luminance prediction mode corresponding to the DM mode , is set to planar mode; or, if inter-prediction is performed on a chroma block, divide the chroma block into chroma prediction sub-blocks, where motion information of the chroma prediction sub-blocks is obtained as follows:

Если внешнее предсказание выполняется для блоков яркости на позициях изображения яркости, соответствующих субблокам предсказания цветности, информация движения на позициях изображения яркости, соответствующих субблокам предсказания цветности, используется в качестве информации движения субблока предсказания цветности; в противном случае информация о движении для заданного положения получается как информация о движении субблоков предсказания цветности.If inter-prediction is performed for luma blocks at luminance image positions corresponding to chrominance prediction subblocks, motion information at luma image positions corresponding to chrominance prediction subblocks is used as motion information of the chrominance prediction subblock; otherwise, motion information for a given position is obtained as motion information of chrominance prediction sub-blocks.

Контекстная модель, используемая для анализа флага pred_mode_flag, является заданной моделью, например, с номером 2 модели.The context model used to parse the pred_mode_flag is the given model, eg model number 2.

Если режимом предсказания для заданного положения является внутреннее предсказание, выполняется внутреннее предсказание для блока цветности, и режим внутреннего предсказания анализируется из потока битов как режим внутреннего предсказания блока цветности. В качестве альтернативы, непосредственно определяется, что режим внутреннего предсказания блока цветности является одним из режима DC, планарного режима, углового режима, режима кросс-компонентной линейной модели или режима DM.If the prediction mode for the given position is intra prediction, intra prediction is performed for the chrominance block, and the intra prediction mode is parsed from the bit stream as the intra prediction mode of the chrominance block. Alternatively, it is directly determined that the chrominance block intra prediction mode is one of DC mode, planar mode, angular mode, cross-component linear model mode, or DM mode.

Если режим предсказания для заданного положения является режимом IBC, блок цветности предсказывается в режиме IBC для получения информации о векторе смещения (displacement vector) для заданного положения в качестве информации вектора смещения блока цветности; илиIf the prediction mode for the given position is the IBC mode, the chrominance block is predicted in the IBC mode to obtain displacement vector information for the given position as the chrominance block displacement vector information; or

если режим предсказания для заданного положения является режимом IBC, режим предсказания блока цветности определяется на основании флага pred_mode_ibc_flag:if the prediction mode for a given position is the IBC mode, the chroma block prediction mode is determined based on the pred_mode_ibc_flag flag:

1) если pred_mode_ibc_flag равно 1, используется режим IBC для блока цветности; более конкретно, способ предсказания IBC для блока цветности может быть способом в VTM 4.0, то есть, блок цветности разделяется на субблоки 2x2, и вектор смещения каждого субблока равен вектору смещения области яркости, соответствующей субблоку; или1) if pred_mode_ibc_flag is 1, the IBC mode for the chrominance block is used; more specifically, the IBC prediction method for a chrominance block may be a method in VTM 4.0, that is, the chrominance block is divided into 2x2 subblocks, and the offset vector of each subblock is equal to the offset vector of the luma region corresponding to the subblock; or

2) если pred_mode_ibc_flag равен 0, для блока цветности используется режим внутреннего предсказания или режим внешнего предсказания.2) if pred_mode_ibc_flag is 0, the intra-prediction mode or the inter-prediction mode is used for the chrominance block.

Когда используется режим внутреннего предсказания, анализируется синтаксический элемент из потока битов для определения режима внутреннего предсказания цветности. В качестве альтернативы, непосредственно определяется, что режим внутреннего предсказания блока цветности принадлежит набору режимов внутреннего предсказания цветности. Набор режимов внутреннего предсказания цветности включает в себя DC режим, планарный режим, угловой режим, режим кросс-компонентной линейной модели и режим DM.When the intra prediction mode is used, a syntax element from the bit stream is parsed to determine the intra chrominance prediction mode. Alternatively, it is directly determined that the chroma block intra prediction mode belongs to the intra chroma prediction mode set. The set of intra chrominance prediction modes includes DC mode, planar mode, angular mode, cross-component linear model mode, and DM mode.

Когда используется режим внешнего предсказания, информация о движении для заданного положения может быть получена как информация о движении блока цветности.When the inter prediction mode is used, motion information for a given position can be obtained as motion information of a chrominance block.

Следует отметить, что, когда в потоке битов нет pred_mode_ibc_flag, если тип изображения, в котором расположен текущий узел, является I-кадром / I-сегментом, и режим IBC разрешен для использования, pred_mode_ibc_flag по умолчанию 1, то есть, используется режим IBC для блока цветности по умолчанию; или, если тип изображения, в котором расположен текущий узел, является P/B-кадром/сегментом, pred_mode_ibc_flag по умолчанию равен 0.It should be noted that when there is no pred_mode_ibc_flag in the bitstream, if the type of the picture in which the current node is located is I-frame / I-segment, and the IBC mode is allowed to be used, the default pred_mode_ibc_flag is 1, that is, the IBC mode is used for default color block; or, if the type of picture in which the current node is located is a P/B frame/segment, pred_mode_ibc_flag defaults to 0.

В VTM может быть определено, является ли режим предсказания для заданного положения режимом IBC, на основании информации, указанной синтаксическим элементом pred_mode_ibc_flag. Например, если pred_mode_ibc_flag равен 1, это указывает, что используется режим предсказания IBC; или, если pred_mode_ibc_flag равен 0, это указывает, что режим IBC не используется. Когда в битовом потоке отсутствует pred_mode_ibc_flag, если в I-кадре/I-сегменте значение pred_mode_ibc_flag равно значению sps_ibc_enabled_flag; если в Р-кадр/сегменте или B-кадр/сегменте pred_mode_ibc_flag равно 0. Когда sps_ibc_enabled_flag равен 1, это указывает на то, что текущее изображение разрешено использовать в качестве опорного изображения в процессе декодирования текущего изображения; или, когда sps_ibc_enabled_flag равен 0, то это означает, что текущий кадр не разрешается использовать в качестве опорного изображения в процессе декодирования текущего изображения.In the VTM, it can be determined whether the prediction mode for a given position is the IBC mode based on the information indicated by the pred_mode_ibc_flag syntax element. For example, if pred_mode_ibc_flag is 1, this indicates that the IBC prediction mode is being used; or, if pred_mode_ibc_flag is 0, this indicates that the IBC mode is not used. When there is no pred_mode_ibc_flag in the bitstream, if in the I-frame/I-slot the value of pred_mode_ibc_flag is equal to the value of sps_ibc_enabled_flag; if in a P frame/segment or a B frame/segment, pred_mode_ibc_flag is equal to 0. When sps_ibc_enabled_flag is equal to 1, it indicates that the current picture is allowed to be used as a reference picture in the current picture decoding process; or, when sps_ibc_enabled_flag is 0, it means that the current frame is not allowed to be used as a reference picture in the current picture decoding process.

Режим внутреннего предсказания блока цветности может быть одним из DC режим, планарный режим, угловой режим, режим кросс-компонентной линейной модели (cross-component liner model, CCLM) и полученный режим цветности. (chroma derived mode, DM), например, DC режим, планарный режим, угловой режим, режим кросс-компонентной линейной модели и полученный режим цветности в VTM.The chroma block intra prediction mode may be one of DC mode, planar mode, angular mode, cross-component liner model (CCLM) mode, and derived chroma mode. (chroma derived mode, DM), such as DC mode, planar mode, angular mode, cross-component linear model mode, and VTM derived chroma mode.

Этап 90642B, в частности, включает в себя:Step 90642B specifically includes:

Получить режимы предсказания для множества блоков яркости текущего узла и определить режим предсказания блока цветности, соответствующего текущему узлу, используя следующий способ:Obtain the prediction modes for the set of luminance blocks of the current node and determine the prediction mode of the chrominance block corresponding to the current node using the following method:

Если выполняется внутреннее предсказание для всего множества блоков яркости, внутреннее предсказание выполняется для блока цветности, и режим внутреннего предсказания анализируется из потока битов как режим внутреннего предсказания блока цветности.If intra prediction is performed on the entire plurality of luma blocks, intra prediction is performed on the chrominance block, and the intra prediction mode is parsed from the bit stream as the intra prediction mode of the chrominance block.

Если выполняется внешнее предсказание для всего множества блоков яркости, для определения режима предсказания цветности используется один из следующих способов:If inter-prediction is performed on the entire set of luminance blocks, one of the following methods is used to determine the chrominance prediction mode:

Способ 1: выполнить внешнее предсказание для блока цветности для получения информации о движении для заданного положения в качестве информации о движении для блока цветности. Заданное положение имеет то же значение, что и в варианте 1 осуществления.Method 1: Perform inter-prediction for a chrominance block to obtain motion information for a given position as motion information for a chrominance block. The set position has the same meaning as in Embodiment 1.

Способ 2: проанализировать флаг pred_mode_flag для определения, выполняется ли внутреннее или внешнее предсказание для блока цветности; и, если выполняется внутреннее предсказание для блока цветности, анализировать режим внутреннего предсказания из битового потока как режим внутреннего предсказания блока цветности; или, если выполняется внешнее предсказание для блока цветности, получить информацию о движении для заданного положения в качестве информации о движении для блока цветности.Method 2: parse the pred_mode_flag to determine whether intra or inter prediction is performed for a chrominance block; and, if intra prediction is performed for the chrominance block, parse the intra prediction mode from the bitstream as the intra prediction mode of the chrominance block; or, if inter-prediction is performed for the chrominance block, obtain the motion information for the given position as the motion information for the chrominance block.

Если внешнее предсказание и внутреннее предсказание применяются для множества блоков яркости, информация о режиме блока цветности может быть определена одним из следующих способов:If inter prediction and intra prediction are applied to a plurality of luma blocks, the chroma block mode information may be determined in one of the following ways:

(1) если режимом предсказания для заданного положения является внешнее предсказание, выполняется внешнее предсказание для блока цветности для получения информации о движении для заданного положения в качестве информации о движении блока цветности;(1) if the prediction mode for the given position is inter prediction, inter prediction is performed for the chrominance block to obtain motion information for the given position as motion information of the chrominance block;

(2) если режимом предсказания для заданного положения является внутреннее предсказание, внутреннее предсказание выполняется для блока цветности, и режим внутреннего предсказания анализируется из потока битов как режим внутреннего предсказания блока цветности; или непосредственно определяется, что режим внутреннего предсказания блока цветности является одним из DC режима, планарного режима, углового режима, режима кросс-компонентной линейной модели или режима DM;(2) if the prediction mode for the given position is intra prediction, intra prediction is performed on the chrominance block, and the intra prediction mode is parsed from the bit stream as the intra prediction mode of the chrominance block; or it is directly determined that the chrominance block intra prediction mode is one of DC mode, planar mode, angular mode, cross-component linear model mode, or DM mode;

(3) если режим предсказания для заданного положения является режимом IBC, блок цветности предсказывается в режиме IBC для получения информации вектора смещения для заданного положения в качестве информации вектора смещения блока цветности; и(3) if the prediction mode for the given position is the IBC mode, the chrominance block is predicted in the IBC mode to obtain the offset vector information for the given position as the offset vector information of the chrominance block; and

(4) режим предсказания цветности напрямую указан как один режим в наборе режимов, где набор режимов включает в себя режим AMVP, режим IBC, режим пропуска, DC режим, планарный режим, угловой режим, режим кросс-компонентной линейной модели и режим DM.(4) the chrominance prediction mode is directly listed as one mode in the mode set, where the mode set includes AMVP mode, IBC mode, skip mode, DC mode, planar mode, angular mode, cross-component linear model mode, and DM mode.

Этап 90644: анализировать остаточную информацию блока цветности. Остаточная информация блока цветности содержится в блоке преобразования. Тип преобразования по умолчанию может быть DCT-2.Step 90644: analyze the residual information of the chrominance block. The residual information of the chrominance block is contained in the transform block. The default conversion type may be DCT-2.

Этап 908: разделить текущий узел на дочерние узлы, где каждый дочерний узел включает в себя блок яркости и блок цветности. Этап 901 выполняется на каждом дочернем узле, и синтаксический анализ продолжается для режима разделения дочернего узла для определения, должен ли дочерний узел (который также упоминается, как узел) дополнительно разделен.Step 908: Divide the current node into child nodes, where each child node includes a luminance block and a chrominance block. Step 901 is performed on each child node, and parsing continues for the child node split mode to determine if the child node (which is also referred to as a node) should be further split.

После получения режима разделения подобласти блока яркости и информации предсказания и остаточной информации каждой из подобластей, для каждой подобласти может выполняться обработка внешнего предсказания или обработка внутреннего предсказания на основании соответствующего режима предсказания подобласти, чтобы получить изображение с внешним предсказанием или изображение с внутренним предсказанием для подобласти. Затем выполняются деквантование и обработка обратного преобразования коэффициента преобразования на основании остаточной информации каждой подобласти для получения остаточного изображения, и остаточное изображение накладывается на предсказанное изображение в соответствующей подобласти для генерирования восстановленного изображения блока яркости.After obtaining the sub-region separation mode of the luminance block and prediction information and residual information of each of the sub-regions, inter prediction processing or intra prediction processing may be performed for each sub-region based on the corresponding sub-region prediction mode to obtain an inter-prediction image or an intra-prediction image for the sub-region. Then, dequantization and inverse transform processing of the transform coefficient are performed based on the residual information of each sub-region to obtain a residual image, and the residual image is superimposed on the predicted image in the corresponding sub-region to generate a reconstructed luminance block image.

После получения информации предсказания и остаточной информации блока цветности, над блоком цветности может выполняться обработка внешнего предсказания или обработка внутреннего предсказания на основании режима предсказания блока цветности для получения изображения, предсказанное внешним предсказанием, или внутреннее предсказание изображения блока цветности. Затем выполняются деквантование и обработка обратного преобразования коэффициента преобразования на основании остаточной информации блока цветности, чтобы получить остаточное изображение, и остаточное изображение накладывается на предсказанное изображение блока цветности для генерирования восстановленного изображения блока цветности. After obtaining prediction information and residual chroma block information, inter prediction processing or intra prediction processing may be performed on the chroma block based on the chroma block prediction mode to obtain an inter prediction image or intra chroma block image prediction. Then, dequantization and inverse transformation processing of the transform coefficient based on the residual chrominance block information are performed to obtain a residual image, and the residual image is superimposed on the predicted chrominance block image to generate a reconstructed chrominance block image.

В варианте 1 осуществления настоящего изобретения, когда блок цветности текущего узла не разделяется дополнительно, способ может использоваться для разделения только блока яркости текущего узла, тем самым, повышая эффективность кодирования и декодирования, уменьшая максимальную пропускную способность кодека и упрощая его реализацию.In Embodiment 1 of the present invention, when the chrominance block of the current node is not further divided, the method can be used to separate only the luma block of the current node, thereby improving encoding and decoding efficiency, reducing the maximum codec bandwidth, and simplifying its implementation.

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

По сравнению с вариантом 1 осуществления к этапу 9062 добавляется следующее ограничение: для узлов яркости (то есть, дочерних узлов блоков яркости) используется один и тот же режим предсказания, то есть, выполняется внутреннее предсказание или внешнее предсказание на каждом узле яркости. Другие этапы аналогичны этапам в варианте 1 осуществления, и подробности снова не описываются.Compared to Embodiment 1, the following constraint is added to step 9062: luma nodes (i.e., child nodes of luminance blocks) use the same prediction mode, i.e., either intra-prediction or inter-prediction is performed at each luminance node. Other steps are the same as those in Embodiment 1, and details are not described again.

Для использования одного и того же режима предсказания для узлов яркости может использоваться любой из следующих способов:To use the same prediction mode for luma nodes, any of the following methods can be used:

Способ 1: если текущий кадр является I-кадром, на всех дочерних узлах текущего узла по умолчанию выполняется внутреннее предсказание; или, если текущий кадр является P-кадром или B-кадром, анализируется первый узел (который может быть первым дочерним узлом для краткости), на котором выполняется обработка синтаксического анализа, для получения режима предсказания первого узла, и режим предсказания оставшегося дочернего узла (который для краткости является узлом яркости) по умолчанию является режимом предсказания первого узла, на котором выполняется обработка синтаксического анализа; илиMethod 1: If the current frame is an I-frame, all child nodes of the current node perform intra-prediction by default; or, if the current frame is a P-frame or a B-frame, the first node (which may be the first child node for short) on which parsing processing is performed is parsed to obtain the prediction mode of the first node, and the prediction mode of the remaining child node (which is the brightness node for short) defaults to the prediction mode of the first node on which parsing processing is performed; or

способ 2: если текущий кадр является I-кадром, выполняется внутреннее предсказание на всех дочерних узлах текущего узла по умолчанию; или, если текущий кадр является P-кадром или B-кадром, выполняется внешнее предсказание на всех дочерних узлах текущего узла по умолчанию.method 2: if the current frame is an I-frame, perform intra-prediction on all child nodes of the current default node; or, if the current frame is a P-frame or a B-frame, inter-prediction is performed on all child nodes of the current default node.

Вариант 3 реализацииOption 3 implementation

Фиг. 11 является блок-схемой 1100 способа согласно варианту 3 осуществления настоящего изобретения. Вариант 3 осуществления аналогичен варианту 1 осуществления, за исключением этапа 1104.Fig. 11 is a flowchart 1100 of a method according to Embodiment 3 of the present invention. Embodiment 3 is the same as Embodiment 1 except for step 1104.

Этап 1104: определить на основании режима разделения текущего узла размер текущего узла и режим предсказания первого узла, на котором выполняется обработка синтаксического анализа (который может быть первым дочерним узлом для краткости) в текущем узле, следует ли разделить блок цветности текущего узла, где первый дочерний узел включает в себя только блок яркости. Один и тот же режим предсказания выполняется для множества дочерних узлов текущего узла. Каждый дочерний узел включает в себя только блок яркости.Step 1104: Determine, based on the partitioning mode of the current node, the size of the current node and the prediction mode of the first node on which parsing processing is performed (which may be the first child node for short) in the current node, whether to split the chrominance block of the current node, where the first child is the node includes only the luma block. The same prediction mode is performed for multiple child nodes of the current node. Each child node only includes a luminance block.

Следует ли определить режим разделения текущего узла и размер текущего узла, или сначала определяется режим предсказания первого дочернего узла, не ограничивается в этом варианте осуществления настоящего изобретения.Whether the division mode of the current node and the size of the current node should be determined, or whether the prediction mode of the first child node is determined first is not limited in this embodiment of the present invention.

На основании варианта1 или 2 осуществления в варианте 3 осуществления определяется режим разделения блока цветности текущего узла, соответствующий режиму синтаксического анализа информации предсказания и соответствующий режиму синтаксического анализа остаточной информации, со ссылкой на режим предсказания первого дочернего узла текущего узла.Based on Embodiment 1 or 2, in Embodiment 3, the chrominance block splitting mode of the current node corresponding to the prediction information parsing mode and corresponding to the residual information parsing mode is determined with reference to the prediction mode of the first child node of the current node.

В реализации, на основании режима разделения текущего узла и размера текущего узла определяется, что дочерний узел, сгенерированный путем разделения текущего узла, включает в себя блок цветности, длина стороны которого равна первому пороговому значению, или длина стороны которого меньше второго порогового значения и режим предсказания первого дочернего узла является внутренним предсказанием; в этом случае блок цветности текущего узла не разделяется. Подобно варианту 1 осуществления, например, первое пороговое значение может быть 2 и второе пороговое значение может быть 4.In the implementation, based on the split mode of the current node and the size of the current node, it is determined that the child node generated by splitting the current node includes a chrominance block whose side length is equal to the first threshold value, or whose side length is less than the second threshold value, and the prediction mode the first child node is an intra prediction; in this case, the current node's chrominance block is not split. Similar to Embodiment 1, for example, the first threshold may be 2 and the second threshold may be 4.

В этом варианте осуществления настоящего изобретения блок цветности, длина стороны которого является первым пороговым значением, является блоком цветности, ширина или высота которого является первым пороговым значением.In this embodiment of the present invention, the chrominance block whose side length is the first threshold is the chrominance block whose width or height is the first threshold.

В другой реализации, когда режим предсказания первого дочернего узла является внутренним предсказанием и выполняется любое из условий 1-5:In another implementation, when the prediction mode of the first child node is intra prediction and any of conditions 1-5 are met:

условие 1: ширина текущего узла равна удвоенному второму пороговому значению, и режим разделения текущего узла представляет собой вертикальное двоичное разделение;condition 1: the width of the current node is equal to twice the second threshold value, and the division mode of the current node is vertical binary division;

условие 2: высота текущего узла равна удвоенному второму пороговому значению, и режим разделения текущего узла представляет собой горизонтальное двоичное разделение;condition 2: the height of the current node is equal to twice the second threshold value, and the division mode of the current node is horizontal binary division;

условие 3: ширина текущего узла в четыре раза больше второго порогового значения, и режим разделения текущего узла представляет собой вертикальное тройное разделение;condition 3: the width of the current node is four times the second threshold value, and the division mode of the current node is vertical triple division;

условие 4: высота текущего узла равна четырехкратному второму пороговому значению, и режим разделения текущего узла представляет собой горизонтальное тройное разделение; илиcondition 4: the height of the current node is four times the second threshold, and the division mode of the current node is horizontal triple division; or

условие 5: если ширина текущего узла равна удвоенному второму пороговому значению и режим разделения текущего узла представляет собой четырехкратное разделение, блок цветности текущего узла дополнительно не разделяется.condition 5: if the width of the current node is twice the second threshold value and the division mode of the current node is four times division, the chrominance block of the current node is not further divided.

Обычно ширина текущего узла является шириной блока яркости, соответствующего текущему узлу, и высота текущего узла является высотой блока яркости, соответствующего текущему узлу. В конкретной реализации, например, второе пороговое значение может быть равно 4.Typically, the width of the current node is the width of the luminance block corresponding to the current node, and the height of the current node is the height of the luminance block corresponding to the current node. In a particular implementation, for example, the second threshold may be 4.

Когда режим предсказания первого дочернего узла является внутренним предсказанием, аналогичным первому варианту осуществления, в третьей реализации, может быть определено, генерируется ли блок цветности, ширина которого является первым пороговым значением (или блоком цветности, ширина которого меньше чем второе пороговое значением) путем разделения текущего узла на основании режима разделения текущего узла. Если определено, что дочерний узел, сгенерированный путем разделения текущего узла, включает в себя блок цветности, ширина которого является первым пороговым значением (или блок цветности, ширина которого меньше второго порогового значением) и режим предсказания первого дочернего узла является внутренним предсказанием, блок цветности текущего узла дополнительно не разделяется. Например, первое пороговое значение может быть равно 2 и второе пороговое значение может быть равно 4.When the prediction mode of the first child node is intra prediction similar to the first embodiment, in the third implementation, it can be determined whether a chrominance block whose width is the first threshold value (or a chrominance block whose width is less than the second threshold value) is generated by dividing the current node based on the partitioning mode of the current node. If it is determined that the child node generated by dividing the current node includes a chrominance block whose width is the first threshold value (or a chrominance block whose width is less than the second threshold value) and the prediction mode of the first child node is intra prediction, the chrominance block of the current node is not further divided. For example, the first threshold may be 2 and the second threshold may be 4.

Когда режим предсказания первого дочернего узла является внутренним предсказанием, аналогичным первому варианту осуществления, в четвертой реализации, может быть определено, генерируется ли блок цветности, количество выборок цветности которого меньше третьего порогового значением, путем разделения текущего узла на основании режима разделения текущего узла. Если определено, что дочерний узел, сгенерированный путем разделения текущего узла, включает в себя блок цветности, количество выборок цветности которого меньше третьего порогового значения, и режим предсказания первого дочернего узла является внутренним предсказанием, блок цветности текущего узла дополнительно не разделяется. Например, третье пороговое значение может быть 16. В этом случае блок цветности, количество выборок цветности которого меньше 16, включает в себя, но не ограничивается, блок цветности 2x2, блок цветности 2x4 и блок цветности 4x2. Третье пороговое значение может быть равно 8. В этом случае блок цветности, количество выборок цветности которого меньше 8, включает в себя, но не ограничивается, блок цветности 2x2.When the prediction mode of the first child node is intra prediction similar to the first embodiment, in the fourth implementation, it can be determined whether a chrominance block whose number of chrominance samples is less than the third threshold is generated by splitting the current node based on the splitting mode of the current node. If it is determined that the child node generated by dividing the current node includes a chrominance block whose number of chroma samples is less than the third threshold, and the prediction mode of the first child node is intra prediction, the chrominance block of the current node is not further divided. For example, the third threshold may be 16. In this case, a chroma block whose number of chroma samples is less than 16 includes, but is not limited to, a 2x2 chroma block, a 2x4 chroma block, and a 4x2 chroma block. The third threshold may be 8. In this case, a chroma block whose number of chroma samples is less than 8 includes, but is not limited to, a 2x2 chroma block.

В частности, если истинно либо условие 1, либо условие 2, может быть определено, что блок цветности, количество выборок цветности которого меньше третьего порогового значения, генерируется путем разделения текущего узла на основании режима разделения текущего узла; в противном случае может быть определено, что никакой блок цветности, количество выборок цветности которого меньше третьего порогового значения, не генерируется путем разделения текущего узла на основании режима разделения текущего узла:Specifically, if either condition 1 or condition 2 is true, it can be determined that a chrominance block whose number of chroma samples is less than the third threshold is generated by splitting the current node based on the splitting mode of the current node; otherwise, it may be determined that no chrominance block whose number of chrominance samples is less than the third threshold is generated by splitting the current node based on the splitting mode of the current node:

условие 1: произведение ширины и высоты текущего узла меньше 128, и режим разделения текущего узла представляет собой вертикальное двоичное разделение или горизонтальное двоичное разделение; илиcondition 1: the product of the width and height of the current node is less than 128, and the division mode of the current node is vertical binary division or horizontal binary division; or

условие 2: произведение ширины и высоты текущего узла меньше 256, и режим разделения текущего узла представляет собой вертикальное тройное разделение, горизонтальное тройное разделение или четырехкратное разделение.condition 2: The product of the width and height of the current node is less than 256, and the split mode of the current node is vertical triple split, horizontal triple split, or quadruple split.

В частности, в другой реализации, если выполняется либо условие 3, либо условие 4, может быть определено, что блок цветности, количество выборок цветности которого меньше третьего порогового значения, генерируется путем разделения текущего узла на основании режима разделения текущего узла; в противном случае может быть определено, что никакой блок цветности, количество выборок цветности которого меньше третьего порогового значения, не генерируется путем разделения текущего узла на основании режима разделения текущего узла:Specifically, in another implementation, if either condition 3 or condition 4 is met, it may be determined that a chrominance block whose number of chrominance samples is less than the third threshold is generated by splitting the current node based on the splitting mode of the current node; otherwise, it may be determined that no chrominance block whose number of chrominance samples is less than the third threshold is generated by splitting the current node based on the splitting mode of the current node:

условие 3: произведение ширины и высоты текущего узла равно 64, и режим разделения текущего узла представляет собой вертикальное двоичное разделение, горизонтальное двоичное разделение, четырехкратное разделение, горизонтальное тройное разделение или вертикальное тройное разделение; илиcondition 3: the product of the width and height of the current node is 64, and the division mode of the current node is vertical binary division, horizontal binary division, quadruple division, horizontal triple division, or vertical triple division; or

условие 4: произведение ширины и высоты текущего узла равно 128, и режим разделения текущего узла представляет собой вертикальное тройное разделение или горизонтальное тройное разделение.condition 4: The product of the width and height of the current node is 128, and the split mode of the current node is vertical triple split or horizontal triple split.

Когда режим предсказания первого дочернего узла является внутренним предсказанием, аналогичным первому варианту осуществления, в пятой реализации, может быть определено, генерируется ли блок цветности, высота которого является первым пороговым значением (или блок цветности, высота которого меньше чем второе пороговое значение) путем разделения текущего узла на основании режима разделения текущего узла. Если определено, что дочерний узел, сгенерированный путем разделения текущего узла, включает в себя блок цветности, высота которого является первым пороговым значением (или блок цветности, высота которого меньше второго порогового значения), и режим предсказания первого дочернего узла является внутренним предсказанием, блок цветности текущего узла дополнительно не разделяется. Например, первое пороговое значение может быть равно 2 и второе пороговое значение может быть равно 4.When the prediction mode of the first child node is intra prediction similar to the first embodiment, in the fifth implementation, it can be determined whether a chrominance block whose height is the first threshold value (or a chrominance block whose height is less than the second threshold value) is generated by dividing the current node based on the partitioning mode of the current node. If it is determined that the child node generated by dividing the current node includes a chroma block whose height is the first threshold (or a chroma block whose height is less than the second threshold), and the prediction mode of the first child node is intra prediction, the chroma block the current node is not further split. For example, the first threshold may be 2 and the second threshold may be 4.

Если блок цветности текущего узла дополнительно не разделяется, блок цветности текущего узла становится блоком кодирования, включающим в себя только блок цветности. Способ 1100 может дополнительно включать в себя: получение информации предсказания и/или остаточной информации блока цветности.If the chrominance block of the current node is not further divided, the chrominance block of the current node becomes a coding block including only the chrominance block. Method 1100 may further include: obtaining prediction information and/or residual chroma block information.

В другой реализации на основании режима разделения текущего узла и размера текущего узла определяется, что дочерний узел, сгенерированный путем разделения текущего узла, включает в себя блок цветности, длина стороны которого меньше порогового значения. Если режим предсказания первого дочернего узла является внешним предсказанием, блок цветности текущего узла разделяется на основании режима разделения текущего узла. Возможно, информация о движении соответствующего дочернего узла блока цветности определяется на основании информации о движении дочернего узла текущего узла. Например, информация о движении дочернего узла блока цветности текущего узла может быть установлена как информация о движении соответствующего узла яркости (то есть, информацию о движении каждого дочернего узла блока цветности не нужно анализировать из битового потока). Дочерние узлы блока цветности анализируются для получения остаточной информации о дочерних узлах блока цветности.In another implementation, based on the splitting mode of the current node and the size of the current node, it is determined that a child node generated by splitting the current node includes a chroma block whose side length is less than a threshold value. If the prediction mode of the first child node is inter-prediction, the chrominance block of the current node is divided based on the split mode of the current node. Perhaps the motion information of the corresponding child node of the chrominance block is determined based on the motion information of the child node of the current node. For example, the motion information of a chrominance block child node of the current node may be set as the motion information of the corresponding luminance node (ie, the motion information of each child node of the chrominance block need not be parsed from the bitstream). The child nodes of the chrominance block are parsed to obtain residual information about the child nodes of the chrominance block.

Когда режим предсказания первого дочернего узла является внешним предсказанием, и выполняется любое из следующих условий:When the prediction mode of the first child node is inter-prediction, and any of the following conditions are met:

условие 1: ширина текущего узла равна удвоенному второму пороговому значению, и режим разделения текущего узла представляет собой вертикальное двоичное разделение;condition 1: the width of the current node is equal to twice the second threshold value, and the division mode of the current node is vertical binary division;

условие 2: высота текущего узла равна удвоенному второму пороговому значению, и режим разделения текущего узла представляет собой горизонтальное двоичное разделение;condition 2: the height of the current node is equal to twice the second threshold value, and the division mode of the current node is horizontal binary division;

условие 3: ширина текущего узла в четыре раза больше второго порогового значения и режим разделения текущего узла представляет собой вертикальное тройное разделение;condition 3: the width of the current node is four times the second threshold value, and the division mode of the current node is vertical triple division;

условие 4: высота текущего узла равна четырехкратному второму пороговому значению, и режим разделения текущего узла представляет собой горизонтальное тройное разделение; или condition 4: the height of the current node is four times the second threshold, and the division mode of the current node is horizontal triple division; or

условие 5: если ширина текущего узла равна удвоенному второму пороговому значению и режим разделения текущего узла представляет собой четырехкратное разделение, блок цветности текущего узла все еще необходимо разделить.condition 5: if the width of the current node is equal to twice the second threshold value and the division mode of the current node is four times division, the chrominance block of the current node still needs to be divided.

Обычно ширина текущего узла является шириной блока яркости, соответствующего текущему узлу, и высота текущего узла является высотой блока яркости, соответствующего текущему узлу. В конкретной реализации, например, второе пороговое значение может быть равно 4.Typically, the width of the current node is the width of the luminance block corresponding to the current node, and the height of the current node is the height of the luminance block corresponding to the current node. In a particular implementation, for example, the second threshold may be 4.

В варианте 3 осуществления, режим разделения блока цветности, соответствующий режиму синтаксического анализа информации предсказания и соответствующий режиму синтаксического анализа остаточной информации также могут быть определены на основании режима предсказания узла яркости. Таким образом достигается более высокая гибкость. Кроме того, когда режимом предсказания узла яркости является внутреннее предсказание, блок цветности текущего узла дополнительно не разделяется, тем самым, повышая эффективность кодирования и декодирования цветности, уменьшая максимальную пропускную способность кодека и облегчая реализацию кодека.In Embodiment 3, a chrominance block separation mode corresponding to the prediction information parsing mode and corresponding to the residual information parsing mode can also be determined based on the luma node prediction mode. In this way, greater flexibility is achieved. In addition, when the luma node prediction mode is intra prediction, the chrominance block of the current node is not further divided, thereby improving chroma encoding and decoding efficiency, reducing the maximum codec bandwidth, and facilitating codec implementation.

В таблице 1 показаны некоторые синтаксические структуры на уровне CU. Если текущий узел не разделяется дополнительно на дочерние узлы, текущий узел является блоком кодирования и блок предсказания блока кодирования анализируется в соответствии со следующими синтаксическими структурами.Table 1 shows some syntax structures at the CU level. If the current node is not further divided into child nodes, the current node is a coding block, and the coding block prediction block is parsed according to the following syntax structures.

skip_flag является флагом, представляющий режим пропуска. Когда значение skip_flag равно 1, это указывает, что для текущего CU используется режим пропуска; или когда значение skip_flag равно 0, это указывает, что для текущего CU режим пропуска не используется.skip_flag is a flag representing the skip mode. When the value of skip_flag is 1, it indicates that the current CU is in skip mode; or when the value of skip_flag is 0, it indicates that the current CU does not use the skip mode.

merge_flag является флагом, представляющий прямой режим. Когда значение merge_flag равно 1, это указывает, что для текущего CU используется режим слияния; или когда значение merge_flag равно 0, это указывает, что режим слияния не используется.merge_flag is a flag representing direct mode. When the value of merge_flag is 1, it indicates that the current CU is in merge mode; or when the value of merge_flag is 0, it indicates that the merge mode is not used.

cu_pred_mode является флагом, представляющий режим предсказания блока кодирования. Когда значение cu_pred_mode равно 1, это указывает, что для текущего блока кодирования используется режим внутреннего предсказания; или, когда значение cu_pred_mode равно 0, это указывает, что для текущего блока кодирования используется общий режим внешнего предсказания.cu_pred_mode is a flag representing the coding block prediction mode. When the value of cu_pred_mode is 1, it indicates that the current coding block is using intra prediction mode; or, when the value of cu_pred_mode is 0, it indicates that the current coding block is using the common inter prediction mode.

Таблица 1Table 1

Figure 00000001
Figure 00000001

В таблице 2 показан некоторый синтаксический анализ на уровне CU. Таблица 2 является просто примером. В таблице 2 значение skip_flag такое же, как у skip_flag в таблице 1, и значение pred_mode_flag такое же, как у cu_pred_mode в таблице 1.Table 2 shows some parsing at the CU level. Table 2 is just an example. In table 2, the value of skip_flag is the same as skip_flag in table 1, and the value of pred_mode_flag is the same as cu_pred_mode in table 1.

cu_skip_flag является флагом, представляющий режим пропуска. Когда значение cu_skip_flag равно 1, это указывает, что для текущего CU используется режим пропуска; или, когда значение cu_skip_flag равно 0, это указывает, что для текущего CU режим пропуска не используется.cu_skip_flag is a flag representing the skip mode. When the value of cu_skip_flag is 1, it indicates that the current CU is in skip mode; or, when the value of cu_skip_flag is 0, it indicates that the current CU does not use skip mode.

merge_flag является флагом, представляющий прямой режим. Когда значение merge_flag равно 1, это указывает, что для текущего CU используется режим слияния; или, когда значение merge_flag равно 0, это указывает, что режим слияния не используется.merge_flag is a flag representing direct mode. When the value of merge_flag is 1, it indicates that the current CU is in merge mode; or, when the value of merge_flag is 0, it indicates that the merge mode is not used.

pred_mode_flag является флагом, представляющий режим предсказания блока кодирования. Когда значение pred_mode_flag равно 1, это указывает, что режим внутреннего предсказания используется для текущего блока предсказания; или, когда значение pred_mode_flag равно 0, это указывает, что для текущего блока предсказания используется общий режим внешнего предсказания. Если значение pred_mode_flag равно 1, значением CuPredMode [x0] [y0] является MODE_INTRA; или, если значение pred_mode_flag равно 0, значением CuPredMode [x0] [y0] является MODE_INTER.pred_mode_flag is a flag representing the coding block prediction mode. When the value of pred_mode_flag is 1, this indicates that the intra prediction mode is used for the current prediction block; or, when the value of pred_mode_flag is 0, it indicates that the current prediction block is using the common inter prediction mode. If the value of pred_mode_flag is 1, the value of CuPredMode[x0][y0] is MODE_INTRA; or, if the value of pred_mode_flag is 0, the value of CuPredMode[x0][y0] is MODE_INTER.

Таблица 2table 2

Figure 00000002
Figure 00000002

В режиме вертикального двоичного разделения (или горизонтального двоичного разделения) узел размером 8xM (или Mx8) разделяется на два дочерних узла размером 4xM (или Mx4). Точно так же разделяется узел размером 16xM (или Mx16) на четыре дочерних узла размером 4xM (или Mx4) и один дочерний узел размером 8xN (или Nx8) в вертикальном расширенном четырехкратном разделении (или горизонтальном расширенном четырехкратном разделении). Точно так же разделяется узел размером 16xM (или Mx16) в режиме вертикального троичного разделения (или горизонтального тройного разделения) для генерирования дочерних узлов размером два 4xM (или Mx4) и одного дочернего узла размером 8xM (или Mx8). Для формата данных YUV4:2:0 разрешение составляющей цветности составляет 1/2 от составляющей яркости. То есть, узел 4xM включает в себя один блок яркости 4xM и два блока цветности 2x (M/2). Для аппаратного декодера затраты на обработку небольших блоков (особенно с размером 2x2, 2x4 и 2x8) сравнительно высоки. Однако в этом режиме разделения генерируются небольшие блоки размером 2x2, 2x4 и т.п., что неблагоприятно для реализации аппаратного декодера. Для аппаратного декодера сложность обработки небольших блоков сравнительно высока, что конкретно воплощено в следующих трех аспектах.In vertical binary splitting (or horizontal binary splitting) mode, an 8xM (or Mx8) node is split into two 4xM (or Mx4) child nodes. Similarly, a 16xM (or Mx16) node is split into four 4xM (or Mx4) children and one 8xN (or Nx8) child in a vertical extended quadruple split (or horizontal extended quadruple split). Similarly, a 16xM (or Mx16) node is split in vertical ternary split (or horizontal ternary split) mode to generate two 4xM (or Mx4) children and one 8xM (or Mx8) child. For the YUV4:2:0 data format, the resolution of the chrominance component is 1/2 of the luma component. That is, a 4xM node includes one 4xM luminance block and two 2x (M/2) chrominance blocks. For a hardware decoder, the cost of processing small blocks (especially 2x2, 2x4 and 2x8 sizes) is relatively high. However, in this split mode, small blocks of 2x2, 2x4, etc. are generated, which is unfavorable for the hardware decoder implementation. For a hardware decoder, the complexity of processing small blocks is relatively high, which is specifically embodied in the following three aspects.

(1) Технические задачи внутреннего предсказания: в конструкции оборудования для повышения скорости обработки обычно одновременно обрабатываются 16 пикселей один раз для внутреннего предсказания, и небольшой блок размером 2x2, 2x4, 4x2 или тому подобное включает в себя менее 16 пикселей, что снижает производительность обработки внутреннего предсказания.(1) Technical tasks of intra prediction: in the design of equipment to improve the processing speed, it is common to process 16 pixels once for intra prediction at the same time, and a small block of 2x2, 2x4, 4x2 or the like includes less than 16 pixels, which reduces the processing performance of the internal predictions.

(2) Технические задачи кодирования коэффициентов: в HEVC кодирование коэффициентов преобразования основано на группе коэффициентов (группа коэффициентов, CG), включающая в себя 16 коэффициентов, но небольшой блок размером 2x2, 2x4, 4x2 или тому подобное включает в себя четыре или восемь коэффициентов преобразования. В результате для поддержки кодирования коэффициентов этих небольших блоков должны быть добавлены группы коэффициентов, включающие в себя четыре коэффициента и восемь коэффициентов; следовательно, увеличивается сложность реализации.(2) Coefficient coding technical problems: In HEVC, transform coefficient coding is based on a coefficient group (coefficient group, CG) including 16 coefficients, but a small block of 2x2, 2x4, 4x2 or the like includes four or eight transform coefficients . As a result, in order to support coefficient coding of these small blocks, coefficient groups including four coefficients and eight coefficients must be added; hence, the implementation complexity increases.

(3) Технические задачи внешнего предсказания: внешнее предсказание для небольшого блока предъявляет сравнительно высокие требования к полосе пропускания данных, а также влияет на скорость обработки декодирования.(3) Technical challenges of inter prediction: small block inter prediction has a relatively high data bandwidth requirement, and also affects the decoding processing speed.

Когда узел дополнительно разделяется на основании режима разделения, и один из сгенерированных дочерних узлов включает в себя блок цветности, длина стороны которого равна 2, блок яркости, включенный в дочерний узел, продолжает дополнительно разделяться в этом режиме разделения, и блок цветности, включенный в дочерний узел, дополнительно не разделяется. Этот режим может избежать генерирования блока цветности, длина стороны которого равна 2, снизить максимальную пропускную способность декодера и облегчить реализацию декодера. Дополнительно, предлагается способ определения режима предсказания блока цветности на основании режима предсказания блока яркости, эффективно повышающий эффективность кодирования.When a node is further divided based on a partition mode, and one of the generated child nodes includes a chrominance block whose side length is 2, the luminance block included in the child node continues to be further divided in this partition mode, and the chrominance block included in the child node is not further divided. This mode can avoid generating a chrominance block whose side length is 2, reduce the maximum throughput of the decoder, and facilitate the implementation of the decoder. Further, a method for determining a chrominance block prediction mode based on a luminance block prediction mode is provided, effectively improving coding efficiency.

Способ, предусмотренный в настоящем изобретении, может быть применен к видеокодеку в вышеупомянутом варианте осуществления.The method provided in the present invention can be applied to the video codec in the above embodiment.

Вариант 4 реализацииImplementation Option 4

Этот вариант осуществления относится к режиму разделения блоков при декодировании видео. Формат видеоданных в этом варианте осуществления является форматом YUV4:2:0. Аналогичный режим можно использовать для данных YUV4:2:2.This embodiment relates to a block division mode in video decoding. The video data format in this embodiment is the YUV4:2:0 format. A similar mode can be used for YUV4:2:2 data.

Этап 1: анализировать режим разделения S узла A, где, если узел A продолжает разделяться, выполняется этап 2; или, если текущий узел дополнительно не разделяется на дочерние узлы, текущий узел соответствует одному блоку кодирования, и информация о блоке кодирования получается посредством синтаксического анализа.Step 1: parse partition mode S of node A, where if node A continues to split, step 2 is performed; or, if the current node is not further divided into child nodes, the current node corresponds to one coding block, and information about the coding block is obtained by parsing.

Режим разделения узла A может быть, по меньшей мере, одним из разделением дерева квадрантов, вертикальным двоичным разделением, горизонтальным двоичным разделением, вертикальным тройным разделением и горизонтальным тройным разделением, или может быть другим режимом разделения. Режим разделения узла A не ограничивается настоящим изобретением. Информация о режиме разделения текущего узла может быть передана в битовом потоке и режим разделения текущего узла может быть получен путем анализа соответствующего элемента синтаксиса в битовом потоке. В качестве альтернативы режим разделения текущего узла может быть определен в соответствии с заранее установленным правилом и не ограничивается настоящим изобретением.The splitting mode of node A may be at least one of quadtree splitting, vertical binary splitting, horizontal binary splitting, vertical ternary splitting, and horizontal ternary splitting, or may be another splitting mode. Node A split mode is not limited to the present invention. Information about the split mode of the current node may be transmitted in the bitstream, and the split mode of the current node can be obtained by parsing the corresponding syntax element in the bitstream. Alternatively, the split mode of the current node may be determined according to a predetermined rule and is not limited to the present invention.

Этап 2: определить, является ли блок цветности, по меньшей мере, одного дочернего узла B в дочерних узлах, полученный путем разделения узла A на основании режима S разделения, небольшим блоком (или имеет ли ширина, высота и/или режим разделения узла A и/или ширина и высота узла B удовлетворяют, по меньшей мере, одному из условий). Если блок цветности, по меньшей мере, одного дочернего узла B в дочерних узлах, полученный путем разделения узла A, является небольшим блоком, выполняются этапы с 3 по 6.Step 2: determine whether the chrominance block of at least one child node B in the child nodes obtained by partitioning node A based on partition mode S is a small block (or has the width, height and/or partition mode of node A and /or the width and height of node B satisfy at least one of the conditions). If the chrominance block of at least one child node B in the child nodes obtained by splitting node A is a small block, steps 3 to 6 are performed.

В частности, один из следующих способов может использоваться для определения того, является ли блок цветности, по меньшей мере, одного дочернего узла B узла A субблоком:In particular, one of the following methods may be used to determine whether a chroma block of at least one child node B of node A is a sub-block:

(1) Если блок цветности, по меньшей мере, одного дочернего узла B узла A имеет размер 2x2, 2x4 или 4x2, блок цветности, по меньшей мере, одного дочернего узла B узла A является небольшим блоком;(1) If the chrominance block of at least one child node B of node A has a size of 2x2, 2x4, or 4x2, the chroma block of at least one child node B of node A is a small block;

(2) если ширина или высота блока цветности, по меньшей мере, одного дочернего узла B узла A равна 2, блок цветности, по меньшей мере, одного дочернего узла B узла A является небольшим блоком;(2) if the width or height of the chrominance block of at least one child node B of node A is 2, the chrominance block of at least one child node B of node A is a small block;

(3) если узел A включает в себя 128 выборок яркости и выполняется разделение троичного дерева на узле A, или узел A включает в себя 64 выборки яркости и выполняется разделение двоичного дерева на узле A, режим разделения дерева квадрантов или режим разделения троичного дерева, блок цветности, по меньшей мере, одного дочернего узла B узла A является небольшим блоком;(3) if node A includes 128 luminance samples and ternary tree splitting is performed at node A, or node A includes 64 luma samples and binary tree splitting is performed at node A, quadtree split mode or ternary tree split mode, block the chromaticity of at least one child node B of node A is a small block;

(4) если узел A включает в себя 256 выборок яркости и узел разбивается в режиме разделения троичного дерева или в режиме разделения дерева квадрантов, или узел A включает в себя 128 выборок яркости, узел разбивается в режиме разделения двоичного дерева, блок цветности, по меньшей мере, одного дочернего узла B узла A является небольшим блоком;(4) if node A includes 256 luminance samples and the node splits in ternary tree split mode or quadtree split mode, or node A includes 128 luma samples, the node splits in binary tree split mode, the chrominance block is at least at least one child node B node A is a small block;

(5) если узел A включает в себя N1 выборок яркости и разделение троичного дерева выполняется на узле A, где N1 равно 64, 128 или 256;(5) if node A includes N1 luma samples and ternary tree splitting is performed at node A, where N1 is 64, 128, or 256;

(6) если узел A включает в себя N2 выборок яркости и выполняется разделение дерева квадрантов на узле A, где N2 равно 64 или 256; или(6) if node A includes N2 luma samples and a quadtree split is performed at node A, where N2 is 64 or 256; or

(7) если узел A включает в себя N3 выборок яркости и узел A разделен в режиме разделения двоичного дерева, где N3 равно 64, 128 или 256.(7) if node A includes N3 luma samples and node A is split in binary tree split mode, where N3 is 64, 128, or 256.

Следует отметить, что то, что узел A включает в себя 128 выборок яркости, также может быть описано как то, что область текущего узла равна 128, или произведение ширины и высоты узла A равно 128. Подробности не описаны.It should be noted that node A includes 128 luminance samples can also be described as that the area of the current node is 128, or the product of the width and height of node A is 128. Details are not described.

Этап 3: ограничить выполнение внутреннего предсказания или внешнего предсказания для всех блоков кодирования в области покрытия узла A. Для внутреннего предсказания и внешнего предсказания для всех блоков кодирования параллельная обработка небольших блоков может быть реализована аппаратным обеспечением, тем самым, повышая производительность кодирования и декодирования.Step 3: Limit the execution of intra prediction or inter prediction for all coding blocks in the coverage area of node A. For intra prediction and inter prediction for all coding blocks, parallel processing of small blocks can be realized by hardware, thereby improving encoding and decoding performance.

Один из следующих способов может использоваться для определения выполнения внутреннего предсказания или внешнего предсказания для всех блоков кодирования в области покрытия узла A.One of the following methods may be used to determine whether intra prediction or inter prediction is performed for all coding blocks in the coverage area of node A.

Способ 1: определение выполняется на основании флага в таблице синтаксиса.Method 1: The determination is made based on a flag in the syntax table.

Если блок цветности, по меньшей мере, одного дочернего узла B, полученный путем разделения узла A на основании режима S разделения, является небольшим блоком (и блок цветности узла A не является небольшим блоком), флаг cons_pred_mode_flag анализируется из битового потока. Когда значение cons_pred_mode_flag равно 0, это указывает, что внешнее предсказание выполняется для всех блоков кодирования в области покрытия узла A; или, когда значение cons_pred_mode_flag равно 1, это указывает, что внутреннее предсказание выполняется для всех блоков кодирования в области покрытия узла A. cons_pred_mode_flag может быть элементом синтаксиса, который необходимо проанализировать в процессе разделения блока. Когда синтаксический элемент анализируется, cu_pred_mode блока кодирования в области покрытия узла A может больше не анализироваться, и значение cu_pred_mode является значением по умолчанию, соответствующим значению cons_pred_mode_flag.If the chrominance block of at least one child node B obtained by partitioning node A based on the partition mode S is a small block (and the chroma block of node A is not a small block), the cons_pred_mode_flag flag is parsed from the bitstream. When the value of cons_pred_mode_flag is 0, this indicates that inter-prediction is performed for all coding blocks in the coverage area of node A; or, when the value of cons_pred_mode_flag is equal to 1, it indicates that intra prediction is performed for all coding blocks in the coverage area of node A. cons_pred_mode_flag may be a syntax element to be parsed in the block splitting process. When a syntax element is parsed, the cu_pred_mode of the coding block in the coverage area of node A may no longer be parsed, and the value of cu_pred_mode is the default value corresponding to the value of cons_pred_mode_flag.

Следует отметить, что, если только режим внутреннего предсказания может использоваться для дочерних узлов узла A, например, узел A находится во внутреннем изображении (то есть, тип изображения, в котором узел A является внутренним типом или I-типом), или узел A находится во внутреннем изображении, и технология IBC не используется для последовательности, значение cons_pred_mode_flag по умолчанию равно 1, cons_pred_mode_flag отсутствует в битовом потоке. Технология IBC может принадлежать к внешнему предсказанию или может принадлежать к внутреннему предсказанию.It should be noted that if only the intra prediction mode can be used for the child nodes of node A, for example, node A is in an intra-picture (that is, a picture type in which node A is an intra-type or I-type), or node A is in the internal image, and IBC technology is not used for the sequence, the default value of cons_pred_mode_flag is 1, cons_pred_mode_flag is not present in the bitstream. The IBC technology may belong to external prediction or may belong to intra prediction.

Способ 2: определение выполняется на основании режима предсказания первого узла в области узла A.Method 2: The determination is performed based on the prediction mode of the first node in the region of node A.

Анализируется режим предсказания первого блока кодирования B0 (где режим предсказания первого блока кодирования B0 не ограничен) в области узла A. Если режим предсказания B0 является внутренним предсказанием, внутреннее предсказание выполняется для всех блоков кодирования в области покрытия узла A; или, если режимом предсказания B0 является внешнее предсказание, внешнее предсказание выполняется для всех блоков кодирования в области покрытия узла A.The prediction mode of the first coding block B0 (where the prediction mode of the first coding block B0 is not limited) in the region of node A is analyzed. If the prediction mode B0 is intra prediction, intra prediction is performed for all coding blocks in the coverage region of node A; or, if the prediction mode of B0 is inter prediction, inter prediction is performed for all coding blocks in the coverage area of node A.

Этап 4: определить режим разделения блока цветности и режим разделения блока яркости узла A на основании режима предсказания, используемого для блоков кодирования в области покрытия узла A.Step 4: determine the chrominance block separation mode and the luma block separation mode of node A based on the prediction mode used for coding blocks in the coverage area of node A.

Если режим внутреннего предсказания используется для всех блоков кодирования в области покрытия узла A, блок яркости узла A разделяется на основании режима S разделения, чтобы получить N узлов дерева кодирования яркости; и блок цветности узла A не разделяется и соответствует одному блоку кодирования цветности (который для краткости является CB цветности). N узлов дерева кодирования яркости могут не ограничиваться дополнительным разделением или могут не ограничиваться. Если дочерний узел яркости продолжает разделяться, выполняется анализ режима разделения дочернего узла яркости для выполнения рекурсивного разделения. Когда узел дерева кодирования яркости не разделяется дополнительно, узел дерева кодирования яркости соответствует блоку кодирования яркости (который для краткости является CB яркости). Блок преобразования цветности, соответствующий CB сигнала цветности, и блок кодирования цветности имеют одинаковый размер, и блок предсказания цветности и блок кодирования цветности имеют одинаковый размер.If the intra prediction mode is used for all coding blocks in the coverage area of node A, the luminance block of node A is divided based on the division mode S to obtain N nodes of the luminance coding tree; and node A's chroma block is not split and corresponds to one chroma coding block (which is chroma CB for short). The N nodes of the luma coding tree may or may not be limited to the additional partition. If the child luminance node continues to split, the split mode of the child luma node is analyzed to perform a recursive split. When the luma coding tree node is not further split, the luminance coding tree node corresponds to a luminance coding block (which is luminance CB for short). The chrominance transform block corresponding to the CB of the chrominance signal and the chrominance coding block have the same size, and the chrominance prediction block and the chrominance coding block have the same size.

Если режим внешнего предсказания используется для всех блоков кодирования в области покрытия узла A, блок яркости и блок цветности узла A дополнительно разделяются на N узлов дерева кодирования, включающие в себя блок яркости и блок цветности на основании режима S разделения, и N узлов дерева кодирования могут продолжать разделяться или могут не разделяться и соответствовать блокам кодирования, включающие в себя блок яркости и блок цветности.If the inter prediction mode is used for all coding blocks in the coverage area of node A, the luminance block and chrominance block of node A are further divided into N coding tree nodes including the luminance block and the chrominance block based on the separation mode S, and the N coding tree nodes may continue to be separated or may not be separated and correspond to coding blocks including a luma block and a chrominance block.

Этап 5: анализировать информацию предсказания и остаточную информацию CU, полученную путем разделения узла A.Step 5: analyze prediction information and residual CU information obtained by splitting Node A.

Информация предсказания включает в себя режим предсказания (указывающий режим внутреннего предсказания или режим не внутреннего предсказания), режим внутреннего предсказания, режим внешнего предсказания, информацию о движении и т.п. Информация о движении может включать в себя такую информацию, как направление предсказания (вперед, назад или двунаправленное), опорный индекс (reference index) и вектор движения (motion vector).The prediction information includes a prediction mode (indicating an intra prediction mode or a non-intra prediction mode), an intra prediction mode, an inter prediction mode, motion information, and the like. The motion information may include information such as prediction direction (forward, backward, or bi-directional), reference index, and motion vector.

Остаточная информация включает в себя флаг кодированного блока (coded block flag, CBF), коэффициент преобразования, тип преобразования (например, DCT-2, DST-7, DCT-8) и т.п. Тип преобразования по умолчанию может быть DCT-2.The residual information includes a coded block flag (CBF), a transform factor, a transform type (eg, DCT-2, DST-7, DCT-8), and the like. The default conversion type may be DCT-2.

Если ограничено, что только внутреннее предсказание может выполняться для каждого CU, полученного разделением узла A, синтаксический анализ блока предсказания CB яркости, полученного разделением узла A, включает в себя: skip_flag, merge_flag и cu_pred_mode устанавливаются соответственно равными 0, 0 и 1 (то есть, ни один из skip_flag, merge_flag и cu_pred_mode не присутствует в потоке битов), или skip_flag и cu_pred_mode установлены соответственно на 0 и 1 по умолчанию (то есть, ни один из skip_flag и cu_pred_mode отсутствуют в потоке битов), и анализируется информация о режиме внутреннего предсказания CB яркости; анализ блока предсказания CB цветности, полученного путем разделения узла A, включает в себя: анализ режима внутреннего предсказания CB цветности. Способ синтаксического анализа режима внутреннего предсказания CB цветности может быть: (1) синтаксическим анализом элемента синтаксиса из битового потока для получения режима внутреннего предсказания CB цветности; и (2) непосредственно устанавливают режим внутреннего предсказания CB цветности в один режим предсказания в наборе режима внутреннего предсказания цветности, например, один из режима линейной модели между компонентами, режима DM (chroma derived mode, DM), или IBC режим.If it is limited that only intra prediction can be performed for each CU obtained by splitting node A, the parsing of the luminance prediction block CB obtained by splitting node A includes: skip_flag, merge_flag, and cu_pred_mode are set to 0, 0, and 1, respectively (that is, , none of skip_flag, merge_flag, and cu_pred_mode are present in the bitstream), or skip_flag and cu_pred_mode are set to 0 and 1, respectively, by default (that is, none of skip_flag and cu_pred_mode are present in the bitstream), and the mode information of the internal CB brightness predictions; analyzing the chroma CB prediction block obtained by splitting node A includes: analyzing the chroma CB intra prediction mode. A method for parsing a chroma CB intra prediction mode may be: (1) parsing a syntax element from a bitstream to obtain a chroma CB intra prediction mode; and (2) directly setting the CB intra chroma prediction mode to one prediction mode in the intra chroma prediction mode set, for example, one of inter-component linear model mode, chroma derived mode (DM) mode, or IBC mode.

Если ограничено, что может выполняться только внешнее предсказание для каждого CU, полученного разделением узла A, синтаксический анализ режима предсказания CU, полученного разделением узла A, включает в себя: анализ skip_flag или/и merge_flag, установку cu_pred_mode равным 0 по умолчанию и получение посредством синтаксического анализа блока внешнего предсказания, такого как индекс слияния (merge index), направление внешнего предсказания (inter dir), опорный индекс (reference index), индекс предиктора вектора движения (motion vector predictor index) и разность векторов движения (motion vector difference).If it is limited that only inter-prediction can be performed for each CU obtained by splitting node A, parsing the prediction mode of the CU obtained by splitting node A includes: parsing skip_flag or/and merge_flag, setting cu_pred_mode to 0 by default, and obtaining by parsing analysis of an inter prediction block such as merge index, inter dir direction, reference index, motion vector predictor index, and motion vector difference.

skip_flag является флагом, представляющий режим пропуска. Когда значение skip_flag равно 1, это указывает, что для текущего CU используется режим пропуска; или когда значение skip_flag равно 0, это указывает, что для текущего CU не используется режим пропуска. merge_flag является флагом, представляющий режим слияния. Когда значение merge_flag равно 1, это указывает, что для текущего CU используется режим слияния; или когда значение merge_flag равно 0, это указывает, что режим слияния не используется. cu_pred_mode является флагом, представляющий режим предсказания блока кодирования. Когда значение cu_pred_mode равно 1, это указывает, что внутреннее предсказание выполняется для текущего блока предсказания; или, когда значение cu_pred_mode равно 0, это указывает, что общее внешнее предсказание выполняется для текущего блока предсказания (такая информация, как направление внешнего предсказания, опорный индекс, индекс предиктора вектора движения и компонент разности векторов движения идентифицируется в битовом потоке).skip_flag is a flag representing the skip mode. When the value of skip_flag is 1, it indicates that the current CU is in skip mode; or when the value of skip_flag is 0, it indicates that no skip mode is used for the current CU. merge_flag is a flag representing the merge mode. When the value of merge_flag is 1, it indicates that the current CU is in merge mode; or when the value of merge_flag is 0, it indicates that the merge mode is not used. cu_pred_mode is a flag representing the coding block prediction mode. When the value of cu_pred_mode is 1, it indicates that intra prediction is being performed for the current prediction block; or, when the value of cu_pred_mode is 0, it indicates that the overall inter prediction is performed for the current prediction block (information such as inter prediction direction, reference index, motion vector predictor index, and motion vector difference component are identified in the bitstream).

Следует отметить, что в этом варианте осуществления режим внутреннего предсказания является режимом предсказания для генерирования предиктора блока кодирования с использованием пространственного опорного пикселя изображения, в котором расположен блок кодирования, например, прямой текущий режим (direct current mode, DC), планарный режим (planar mode) или угловой режим (angular mode) или может включать в себя режим сопоставления с шаблоном (template matching mode) и режим IBC.It should be noted that in this embodiment, the intra prediction mode is a prediction mode for generating a coding block predictor using a spatial reference pixel of an image in which the coding block is located, for example, direct current mode (DC), planar mode ) or angular mode, or may include template matching mode and IBC mode.

Режим внешнего предсказания является режимом предсказания для генерирования предиктора блока кодирования с использованием временного опорного пикселя в опорном изображении блока кодирования, например, режим пропуска (skip mode), режим слияния (merge mode), режим AMVP (advanced motion vector prediction), общий внешний режим или режим IBC.The inter prediction mode is a prediction mode for generating a coding block predictor using a temporal reference pixel in the coding block reference picture, e.g., skip mode, merge mode, AMVP (advanced motion vector prediction) mode, general inter mode or IBC mode.

Этап 6: декодировать каждый CU для получения восстановленного блока изображения, соответствующего узлу A.Step 6: decode each CU to obtain a reconstructed image block corresponding to node A.

Например, блок предсказания каждого CU выполняет обработку внешнего предсказания или обработку внутреннего предсказания CU для получения изображения с внешним предсказанием или изображение с внутренним предсказанием для CU. Затем деквантование и обработка обратного преобразования выполняются для коэффициента преобразования на основании остаточной информации каждого CU, чтобы получить остаточное изображение, и остаточное изображение накладывается на предсказанное изображение в соответствующей области для генерирования восстановленного изображения.For example, the predictor of each CU performs inter-prediction processing or intra-prediction processing of the CU to obtain an inter-predictive image or an intra-predictive image for the CU. Then, dequantization and inverse transform processing are performed on the transform coefficient based on the residual information of each CU to obtain a residual image, and the residual image is superimposed on the predicted image in the corresponding area to generate a reconstructed image.

Согласно режиму разделения в варианте 4 осуществления, генерируется большой блок цветности, на котором выполняется внутреннее предсказание, тем самым, решая техническую задачу внутреннего предсказания малых блоков.According to the division mode in Embodiment 4, a large chrominance block is generated on which intra prediction is performed, thereby solving the technical problem of small block intra prediction.

Вариант 5 реализацииImplementation Option 5

Этап 1, этап 2, этап 3 и этап 6 в этом варианте осуществления такие же, как и в варианте 4 осуществления.Step 1, Step 2, Step 3, and Step 6 in this embodiment are the same as in Embodiment 4.

Этап 4: определить режим разделения блока цветности и режим разделения блока яркости узла A.Step 4: Determine the chroma block split mode and the luminance block split mode of node A.

Блок яркости узла A продолжает разделяться на основании режима S разделения, чтобы генерировать N узлов дерева кодирования яркости. Блок цветности узла A дополнительно не разделяется и соответствует одному блоку кодирования цветности (CB chroma). Блок преобразования цветности, соответствующий CB цветности, и блок кода цветности имеют одинаковый размер. [Примечание: по сравнению с вариантом 4 осуществления, в этом варианте осуществления, независимо от того, используется ли режим внешнего предсказания или режим внутреннего предсказания, используется ограничение, что блок цветности всегда не разделяется, и блок яркости всегда разделяется на основании режима S разделения независимо от режима предсказания для области покрытия узла A.]The node A luminance block continues to be divided based on the division mode S to generate N nodes of the luminance coding tree. The node A chroma block is not further split and corresponds to one chroma coding block (CB chroma). The chrominance conversion block corresponding to the chroma CB and the chroma code block have the same size. [Note: Compared with Embodiment 4, in this embodiment, regardless of whether the inter prediction mode or the intra prediction mode is used, the constraint that the chrominance block is always not divided and the luma block is always divided based on the separation mode S is used regardless on the prediction mode for the coverage area of node A.]

Этап 5: анализировать блок предсказания и остаточную информацию CU, полученную путем разделения узла A.Step 5: analyze the prediction block and the CU residual information obtained by splitting node A.

Если ограничено, что может выполняться только внутреннее предсказание для каждого CU, полученного путем разделения узла A, процесс обработки является таким же, как и в варианте 4 осуществления.If it is limited that only intra prediction can be performed for each CU obtained by splitting Node A, the processing is the same as in Embodiment 4.

Если ограничено, что может выполняться только внешнее предсказание для каждого CU, полученного разделением узла A, синтаксический анализ режима предсказания CB яркости, полученного разделением узла A, включает в себя: анализ skip_flag или/и merge_flag, установку cu_pred_mode равным 0 по умолчанию, и получение посредством синтаксического анализа блока внешнего предсказания, такого как индекса слияния (merge index), направление внешнего предсказания (inter dir), опорный индекс (reference index), индекс предиктора вектора движения (motion vector predictor index) и разность векторов движения (motion vector difference). Информация о движении каждого субблока 4x4 в яркости CB выводится из блока внешнего предсказания, полученного посредством синтаксического анализа.If it is limited that only inter-prediction can be performed for each CU obtained by splitting node A, parsing the luminance prediction mode CB obtained by splitting node A includes: parsing skip_flag or/and merge_flag, setting cu_pred_mode to 0 by default, and obtaining by parsing an inter prediction block such as merge index, inter dir direction, reference index, motion vector predictor index, and motion vector difference . The motion information of each 4x4 sub-block in the CB luma is output from the inter-prediction block obtained by parsing.

Если ограничено, что может выполняться только внешнее предсказание для каждого CU, полученного путем разделения узла A, блок предсказания CB цветности, полученный путем разделения узла A, не нужно анализировать, и CB цветности разделяется на подблоки цветности 2x2 (где режим разделения может быть режимом S разделения). Информация о движении каждого субблока цветности 2x2 является информацией движения области яркости 4x4, соответствующей субблоку цветности 2x2.If it is limited that only inter-prediction can be performed for each CU obtained by splitting Node A, the chroma CB prediction block obtained by splitting Node A does not need to be parsed, and the chroma CB is divided into 2x2 chroma sub-blocks (where the split mode may be S separation). The motion information of each 2x2 chrominance subblock is the motion information of the 4x4 luma region corresponding to the 2x2 chrominance subblock.

Согласно режиму разделения в варианте 5 осуществления, не генерируется ни малый блок цветности, на котором выполняется внутреннее предсказание, ни блок преобразования менее 16 пикселей. Следовательно, в варианте 5 осуществления решены вышеупомянутые технические задачи внутреннего предсказания и кодирования коэффициентов.According to the separation mode in Embodiment 5, neither a small chrominance block on which intra prediction is performed nor a transform block smaller than 16 pixels is generated. Therefore, in Embodiment 5, the above technical problems of intra prediction and coefficient coding are solved.

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

Этап 1, этап 2, этап 3, этап 4 и этап 6 в этом варианте осуществления такие же, как и в варианте 5 осуществления.Step 1, step 2, step 3, step 4 and step 6 in this embodiment are the same as those in Embodiment 5.

Этап 5: анализировать блок предсказания и остаточную информацию CU, полученную путем разделения узла A.Step 5: analyze the prediction block and the CU residual information obtained by splitting node A.

Если ограничено, что может выполняться только внутреннее предсказание для каждого CU, полученного путем разделения узла A, обработка такая же, как и в варианте 5 осуществления.If it is limited that only intra prediction can be performed for each CU obtained by splitting Node A, the processing is the same as in Embodiment 5.

Если ограничено, что может выполняться только внешнее предсказание для каждого CU, полученного путем разделения узла A, синтаксический анализ блока предсказания CB яркости, полученного путем разделения узла A, является таким же, как в варианте 5 осуществления.If it is limited that only inter-prediction can be performed for each CU obtained by splitting node A, the parsing of the luminance prediction block CB obtained by splitting node A is the same as in Embodiment 5.

Если ограничено, что может выполняться только внешнее предсказание для каждого CU, полученного путем разделения узла A, блок предсказания CB цветности, полученный путем разделения узла A, не нуждается в синтаксическом анализе, блок предсказания цветности и блоки кодирования цветности имеют одинаковый размер, и информация о движении CB цветности представляет собой информацию о движении для конкретной заданной позиции в области яркости, соответствующей цвету CB (например, центр, нижний правый угол или верхний левый угол области яркости).If it is limited that only inter-prediction can be performed for each CU obtained by splitting Node A, the chrominance prediction block CB obtained by splitting Node A does not need to be parsed, the chrominance prediction block and the chrominance coding blocks have the same size, and information about The chrominance CB motion is motion information for a particular predetermined position in the luminance region corresponding to the CB color (eg, center, lower right corner, or upper left corner of the luminance region).

Согласно режиму разделения в варианте 6 осуществления, не генерируется ни малый блок цветности, на котором выполняется внутреннее предсказание, ни блок преобразования малого блока, ни малый блок цветности, на котором генерируется внешнее предсказание.According to the division mode in Embodiment 6, neither the small block chroma on which intra prediction is performed, nor the small block transform block, nor the small chrominance block on which inter prediction is generated is generated.

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

Этап 1: этап 1 аналогичен этапу 1 в варианте 4 осуществления.Step 1: Step 1 is the same as Step 1 in Embodiment 4.

Этап 2: определить, является ли блок яркости, по меньшей мере, одного дочернего блока B в дочерних узлах, полученный путем разделения узла A на основании режима S разделения, блоком яркости 4x4 (будь то ширина, высота и/или режим разделения узла A и/или ширина и высота узла B удовлетворяют, по меньшей мере, одному из условий в случае 1).Step 2: determine if the luma block of at least one child block B in the child nodes obtained by splitting node A based on the partition mode S is a 4x4 luma block (whether it be width, height and/or split mode of node A and /or the width and height of node B satisfy at least one of the conditions in case 1).

Если размер (то есть ширина и высота) узла A и/или режим S разделения удовлетворяет/удовлетворяют, по меньшей мере, одному из условий в случае 1, ограничивается, что внутреннее предсказание выполняется для всех блоков кодирования в области покрытия узла A; в противном случае определяется, является ли блок цветности, по меньшей мере, одного дочернего узла B в дочерних узлах, полученный путем разделения узла A на основании режима S разделения, небольшим блоком (независимо от того, удовлетворяют ли размер и/или режим S разделения узла A и/или ширина и высота узла B, по меньшей мере, одному из условий в случае 2, если да, выполняются этапы с 3 по этап 6.If the size (ie, width and height) of node A and/or partition mode S satisfies/satisfies at least one of the conditions in case 1, it is restricted that intra prediction is performed for all coding blocks in the coverage area of node A; otherwise, it is determined whether the chrominance block of at least one child node B in the child nodes obtained by partitioning node A based on the partition mode S is a small block (regardless of whether the size and/or partition mode S of the node A and/or width and height of node B, at least one of the conditions in case 2, if yes, steps 3 to step 6 are performed.

В частности, рассматривают следующие два случая для способа определения, что блок цветности, по меньшей мере, одного дочернего узла B узла A является небольшим блоком.In particular, the following two cases are considered for the method of determining that a chrominance block of at least one child Node B of Node A is a small block.

Случай 1:Case 1:

Если выполняется одно или несколько из следующих предварительно установленных условий, узел A разделяется на основании режима S разделения для получения блока яркости 4x4:If one or more of the following preset conditions are met, node A is split based on split mode S to obtain a 4x4 luma block:

(1) узел A включает в себя M1 пикселей, и режим разделения узла A представляет собой разделение дерева квадрантов. Например, M1 равен 64;(1) Node A includes M1 pixels, and the split mode of Node A is quadtree split. For example, M1 is 64;

(2) узел A включает в себя M2 пикселей и режим разделения узла A представляет собой разделение троичного дерева. Например, M2 равен 64;(2) Node A includes M2 pixels, and the split mode of Node A is ternary tree split. For example, M2 is 64;

(3) узел A включает в себя M3 пикселей и режим разделения узла A представляет собой разделение двоичного дерева. Например, M3 равен 32;(3) Node A includes M3 pixels, and Node A splitting mode is binary tree splitting. For example, M3 is 32;

(4) ширина узла A равна четырехкратному второму пороговому значению, высота узла A равна второму пороговому значению и режим разделения узла A представляет собой вертикальное разделение троичного дерева;(4) the width of node A is equal to four times the second threshold, the height of node A is equal to the second threshold, and the split mode of node A is a vertical split ternary tree;

(5) ширина узла A равна второму пороговому значению, высота узла A равна четырехкратному второму пороговому значению, и режим разделения узла A представляет собой горизонтальное разделение троичного дерева;(5) the width of node A is equal to the second threshold value, the height of node A is equal to four times the second threshold value, and the partitioning mode of node A is horizontal splitting of the ternary tree;

(6) ширина узла A равна удвоенному второму пороговому значению, высота узла A равна второму пороговому значению, и режим разделения текущего узла представляет собой вертикальное двоичное разделение;(6) the width of node A is equal to twice the second threshold, the height of node A is equal to the second threshold, and the split mode of the current node is vertical binary split;

(7) высота узла A равна удвоенному второму пороговому значению, ширина узла A равна второму пороговому значению, и режим разделения текущего узла представляет собой горизонтальное двоичное разделение; или(7) the height of node A is equal to twice the second threshold, the width of node A is equal to the second threshold, and the division mode of the current node is horizontal binary division; or

(8) ширина или/и высота узла A в два раза превышает второе пороговое значение, и режим разделения узла A представляет собой разделение дерева квадрантов.(8) the width or/and height of node A is twice the second threshold, and the split mode of node A is quadtree split.

Размер может быть шириной и высотой области изображения, соответствующей узлу A, или количеством выборок яркости, включенных в область изображения, соответствующую узлу A, или область изображения, соответствующей узлу А.The size may be the width and height of the image area corresponding to node A, or the number of luminance samples included in the image area corresponding to node A or the image area corresponding to node A.

Обычно ширина текущего узла является шириной блока яркости, соответствующего текущему узлу и высота текущего узла является высотой блока яркости, соответствующего текущему узлу. В конкретной реализации, например, второе пороговое значение может быть равно 4.Typically, the width of the current node is the width of the luminance block corresponding to the current node, and the height of the current node is the height of the luminance block corresponding to the current node. In a particular implementation, for example, the second threshold may be 4.

Случай 2:Case 2:

(1) блок цветности, по меньшей мере, одного дочернего узла B узла A имеет размер 2x4 или 4x2;(1) the chrominance block of at least one child node B of node A has a size of 2x4 or 4x2;

(2) ширина или высота блока цветности, по меньшей мере, одного дочернего узла B узла A равна 2;(2) the width or height of the chrominance block of at least one child node B of node A is 2;

(3) узел A включает в себя 128 выборок яркости, и разделение троичного дерева выполняется на узле A, или узел A включает в себя 64 выборки яркости, и на узле А выполняется разделение двоичного дерева, разделение дерева квадрантов или разделение троичного дерева;(3) node A includes 128 luma samples and ternary tree splitting is performed at node A, or node A includes 64 luma samples and binary tree splitting, quadtree splitting, or ternary tree splitting is performed at node A;

(4) узел A включает в себя 256 выборок яркости, и разделение троичного дерева или разделение дерева квадрантов выполняется на узле, или узел A включает в себя 128 выборок яркости, и на узле выполняется разделение двоичного дерева;(4) node A includes 256 luma samples and ternary tree splitting or quadtree splitting is performed at the node, or node A includes 128 luma samples and binary tree splitting is performed at the node;

(5) узел A включает в себя N1 выборок яркости, и на узле A выполняется разделение троичного дерева, где N1 равно 64, 128 или 256;(5) node A includes N1 luma samples, and a ternary tree split is performed at node A, where N1 is 64, 128, or 256;

(6) узел A включает в себя N2 выборок яркости, и на узле A выполняется разделение дерева квадрантов, где N2 равно 64 или 256; или (6) node A includes N2 luma samples, and a quadtree split is performed at node A, where N2 is 64 or 256; or

(7) узел A включает в себя N3 выборок яркости, и на узле A выполняется разделение двоичного дерева, где N3 равно 64, 128 или 256.(7) node A includes N3 luma samples, and a binary tree split is performed at node A, where N3 is 64, 128, or 256.

Следует отметить, что то, что узел A включает в себя 128 выборок яркости, также может быть описано как то, что область текущего узла равна 128, или произведение ширины и высоты узла A равно 128. Подробности не описаны.It should be noted that node A includes 128 luminance samples can also be described as that the area of the current node is 128, or the product of the width and height of node A is 128. Details are not described.

Этап 3: этап 3 такой же, как этап 3 в варианте 4 осуществления.Step 3: Step 3 is the same as Step 3 in Embodiment 4.

Этап 4: определить режим разделения блока цветности и режим разделения блока яркости узла A на основании режима предсказания, используемого для блоков кодирования в области покрытия узла A.Step 4: determine the chrominance block separation mode and the luma block separation mode of node A based on the prediction mode used for coding blocks in the coverage area of node A.

Если режим внешнего предсказания используется для всех блоков кодирования в области покрытия узла A, блок яркости и блок цветности узла A разделяются на основании режима S разделения для получения дочерних узлов узел A и/или дочерних узлов в области покрытия узла A. Если генерируется блок яркости 4x4 на основании режима разделения дочернего узла A и/или дочернего узла в области покрытия узла A, режим разделения дочернего узла не разрешен или дополнительное разделение дочернего узла не может быть выполнено. Например, если генерируются узел A имеет размер 8x8 и два узла 8x4 (или два 4x8) путем разделения узла A в режиме горизонтального разделения двоичного дерева (или вертикального разделения двоичного дерева), то режим 8x4 (или 4x8) узел продолжает разделяться на блок 4x4; в этом случае узел 8x4 (или 4x8) не может быть дополнительно разделен.If the inter prediction mode is used for all coding blocks in the node A coverage area, the luma block and the chrominance block of node A are separated based on the separation mode S to obtain node A children and/or child nodes in the node A coverage area. If a 4x4 luma block is generated based on the split mode of the child node A and/or the child node in the coverage area of the node A, the split mode of the child node is not allowed or additional split of the child node cannot be performed. For example, if node A is generated that has a size of 8x8 and two 8x4 nodes (or two 4x8) by splitting node A in horizontal splitting binary tree mode (or vertical splitting binary tree), then the 8x4 mode (or 4x8) node continues splitting into a 4x4 block; in this case, the 8x4 (or 4x8) node cannot be further split.

Если режим внутреннего предсказания используется для всех блоков кодирования в области покрытия узла A, способы в вариантах 4, 5 и 6 осуществления могут использоваться как способы реализации, и подробности здесь снова не описываются. Например, блок яркости узла A разделяется и блок цветности узла A не разделяется.If the intra prediction mode is used for all coding blocks in the coverage area of node A, the methods in Embodiments 4, 5, and 6 may be used as implementation methods, and details are not described here again. For example, node A's luma block is split and node A's chrominance block is not split.

Этап 5: анализировать блок предсказания и остаточную информацию CU, полученную путем разделения узла A.Step 5: analyze the prediction block and the CU residual information obtained by splitting node A.

Этот этап аналогичен этапу 5 в варианте 4 осуществления, и подробности здесь снова не описываются.This step is the same as step 5 in Embodiment 4, and details are not described here again.

Этап 6: декодировать каждый CU для получения восстановленного сигнала блока изображения, соответствующего узлу A.Step 6: decode each CU to obtain a reconstructed picture block signal corresponding to node A.

Этап 6 может быть реализован аналогично этапу 6 в варианте 4 осуществления и дополнительно здесь не описывается.Step 6 may be implemented similarly to step 6 in Embodiment 4 and is not further described here.

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

Этап 1: этап 1 аналогичен этапу 1 в варианте 4 осуществления.Step 1: Step 1 is the same as Step 1 in Embodiment 4.

Этап 2: определить, является ли блок яркости, по меньшей мере, одного дочернего блока B в дочерних узлах, полученный путем разделения узла A на основании режима S разделения, блоком яркости 4x4 (будь то ширина, высота и/или режим разделения узла A и/или ширина и высота узла B удовлетворяют, по меньшей мере, одному из условий в случае 1). Если размер (то есть, ширина и высота) узла A и/или режима S разделения удовлетворяет/удовлетворяют, по меньшей мере, одному из условий в случае 1, ограничивается, что выполняется внутреннее предсказание для всех блоков кодирования в области покрытия узла A; илиStep 2: determine if the luma block of at least one child block B in the child nodes obtained by splitting node A based on the partition mode S is a 4x4 luma block (whether it be width, height and/or split mode of node A and /or the width and height of node B satisfy at least one of the conditions in case 1). If the size (ie, width and height) of node A and/or partition mode S satisfies/satisfies at least one of the conditions in case 1, it is restricted that intra prediction is performed for all coding blocks in the coverage area of node A; or

определяется, является ли блок цветности, по меньшей мере, одного дочернего узла B в дочерних узлах, полученный путем разделения узла A на основании режима S разделения, небольшим блоком (или размер и/или режим S разделения узла A, и/или ширина и высота узла B удовлетворяют, по меньшей мере, одному из условий в случае 2, выполняются этапы с 3 по этап 6.it is determined whether the chrominance block of at least one child node B in the child nodes obtained by partitioning node A based on partition mode S is a small block (or size and/or partition mode S of node A, and/or width and height node B satisfy at least one of the conditions in case 2, steps 3 to step 6 are performed.

В частности, рассматривают следующие два случая для способа определения, что блок цветности, по меньшей мере, одного дочернего узла B узла A является небольшим блоком.In particular, the following two cases are considered for the method of determining that a chrominance block of at least one child Node B of Node A is a small block.

Случай 1:Case 1:

Если одно или несколько из следующих заданных условий истинны, узел A разделяется на основании режима S разделения для получения блока яркости 4x4:If one or more of the following specified conditions are true, node A is split based on split mode S to obtain a 4x4 luma block:

(1) узел A включает в себя M1 пикселей и режим разделения узла A представляет собой разделение дерева квадрантов. Например, M1 равен 64;(1) Node A includes M1 pixels, and Node A split mode is quadtree split. For example, M1 is 64;

(2) узел A включает в себя M2 пикселей и режим разделения узла A представляет собой разделение троичного дерева. Например, M2 равен 128;(2) Node A includes M2 pixels, and the split mode of Node A is ternary tree split. For example, M2 is 128;

(3) узел A включает в себя M3 пикселей и режим разделения узла A представляет собой разделение двоичного дерева. Например, M3 равен 32;(3) Node A includes M3 pixels, and Node A splitting mode is binary tree splitting. For example, M3 is 32;

(4) ширина узла A равна четырехкратному второму пороговому значению, высота узла A равна второму пороговому значению, и режим разделения узла A представляет собой вертикальное разделение троичного дерева;(4) the width of node A is equal to four times the second threshold, the height of node A is equal to the second threshold, and the split mode of node A is a vertical split ternary tree;

(5) ширина узла A равна второму пороговому значению, высота узла A равна четырехкратному второму пороговому значению, и режим разделения узла A представляет собой горизонтальное разделение троичного дерева;(5) the width of node A is equal to the second threshold value, the height of node A is equal to four times the second threshold value, and the partitioning mode of node A is horizontal splitting of the ternary tree;

(6) ширина узла A равна удвоенному второму пороговому значения, высота узла A равна второму пороговому значению, и режим разделения текущего узла представляет собой вертикальное двоичное разделение;(6) the width of node A is equal to twice the second threshold, the height of node A is equal to the second threshold, and the division mode of the current node is vertical binary division;

(7) высота узла A равна удвоенному второму пороговому значению, ширина узла A равна второму пороговому значению, и режим разделения текущего узла представляет собой горизонтальное двоичное разделение; или(7) the height of node A is equal to twice the second threshold, the width of node A is equal to the second threshold, and the division mode of the current node is horizontal binary division; or

(8) ширина и/или высота узла A в два раза превышает второе пороговое значение, и режим разделения узла A представляет собой разделение дерева квадрантов.(8) the width and/or height of node A is twice the second threshold, and the split mode of node A is quadtree split.

Размер может быть шириной и высотой области изображения, соответствующей узлу A, или количеством выборок яркости, включенных в область изображения, соответствующую узлу A, или областью области изображения, соответствующей узлу. А.The size may be the width and height of the image area corresponding to node A, or the number of luminance samples included in the image area corresponding to node A or the area of the image area corresponding to the node. AND.

Обычно ширина текущего узла является шириной блока яркости, соответствующей текущему узлу, и высота текущего узла является высотой блока яркости, соответствующего текущему узлу. В конкретной реализации, например, второе пороговое значение может быть равно 4.Typically, the width of the current node is the width of the luminance block corresponding to the current node, and the height of the current node is the height of the luminance block corresponding to the current node. In a particular implementation, for example, the second threshold may be 4.

Случай 2:Case 2:

(1) блок цветности, по меньшей мере, одного дочернего узла B узла A имеет размер 2x4 или 4x2;(1) the chrominance block of at least one child node B of node A has a size of 2x4 or 4x2;

(2) ширина или высота блока цветности, по меньшей мере, одного дочернего узла B узла A равна 2;(2) the width or height of the chrominance block of at least one child node B of node A is 2;

(3) узел A включает в себя 128 выборок яркости, и выполняется разделение троичного дерева на узле A, или узел A включает в себя 64 выборки яркости, и на узле А выполняется разделение двоичного дерева, разделение дерева квадрантов или разделение троичного дерева;(3) Node A includes 128 luma samples and node A ternary tree split is performed, or Node A includes 64 luma samples and binary tree split, quadtree split, or ternary tree split is performed at node A;

(4) узел A включает в себя 256 выборок яркости, и на узле выполняется разделение троичного дерева или разделение дерева квадрантов, или узел A включает в себя 128 выборок яркости, и на узле выполняется разделение двоичного дерева;(4) Node A includes 256 luminance samples, and node A splits ternary tree or quadtree splits, or Node A includes 128 luma samples, and binary tree splits performs at node;

(5) узел A включает в себя N1 выборок яркости, и на узле A выполняется разделение троичного дерева, где N1 равно 64, 128 или 256;(5) node A includes N1 luma samples, and a ternary tree split is performed at node A, where N1 is 64, 128, or 256;

(6) узел A включает в себя N2 выборок яркости, и разделение дерева квадрантов выполняется на узле A, где N2 равно 64 или 256; или(6) node A includes N2 luma samples, and quadtree splitting is performed at node A, where N2 is 64 or 256; or

(7) узел A включает в себя N3 выборок яркости, и на узле A выполняется разделение двоичного дерева, где N3 равно 64, 128 или 256.(7) node A includes N3 luma samples, and a binary tree split is performed at node A, where N3 is 64, 128, or 256.

Следует отметить, что то, что узел A включает в себя 128 выборок яркости, также может быть описано как то, что область текущего узла равна 128, или произведение ширины и высоты узла A равно 128. Подробности не описаны.It should be noted that node A includes 128 luminance samples can also be described as that the area of the current node is 128, or the product of the width and height of node A is 128. Details are not described.

Этап 3: этап 3 такой же, как этап 3 в варианте 4 осуществления.Step 3: Step 3 is the same as Step 3 in Embodiment 4.

Этап 4: определить режим разделения блока цветности и режим разделения блока яркости узла A на основании режима предсказания, используемого для блоков кодирования в области покрытия узла A.Step 4: determine the chrominance block separation mode and the luma block separation mode of node A based on the prediction mode used for coding blocks in the coverage area of node A.

Если для всех блоков кодирования в области покрытия узла A используется режим внешнего предсказания, блок яркости и блок цветности узла A разделяются на основании режима S разделения для получения дочерних узлов узла A и/или дочерних узлов в области покрытия узла A. Если блок яркости 4x4 генерируется на основании режима разделения дочернего узла A и/или дочернего узла в области покрытия узла A, режим разделения дочернего узла не разрешен или дочерний узел дополнительно не разделяется. Например, если узел A имеет размер 8x8 и два узла 8x4 (или два 4x8) генерируются путем разделения узла A в режиме горизонтального разделения двоичного дерева (или вертикального разделения двоичного дерева), то режим 8x4 (или 4x8) узел продолжает разбиваться на блок 4x4; в этом случае узел 8x4 (или 4x8) не может быть разделен.If inter prediction mode is used for all coding blocks in the Node A coverage area, the luma block and the chrominance block of Node A are separated based on the separation mode S to obtain Node A children and/or children in the Node A coverage area. If a 4x4 luma block is generated based on the split mode of the child node A and/or the child node in the coverage area of node A, the split mode of the child node is not allowed or the child node is not further split. For example, if node A has a size of 8x8 and two 8x4 nodes (or two 4x8) are generated by splitting node A in horizontal splitting binary tree mode (or vertical splitting binary tree), then the 8x4 mode (or 4x8) node continues to split into a 4x4 block; in this case, the 8x4 (or 4x8) node cannot be split.

Если для всех блоков кодирования в области покрытия узла A используется режим внутреннего предсказания, способы в вариантах 4, 5 и 6 осуществления могут использоваться как способы реализации, и подробности здесь снова не описываются. Например, блок яркости узла A разделяется и блок цветности узла A не разделяется.If intra prediction mode is used for all coding blocks in the coverage area of node A, the methods in Embodiments 4, 5, and 6 may be used as implementation methods, and details are not described here again. For example, node A's luma block is split and node A's chrominance block is not split.

Этап 5: анализировать блок предсказания и остаточную информацию CU, полученную путем разделения узла A.Step 5: analyze the prediction block and the CU residual information obtained by splitting node A.

Этот этап аналогичен этапу 5 в варианте 4 осуществления, и подробности здесь снова не описываются.This step is the same as step 5 in Embodiment 4, and details are not described here again.

Этап 6: декодировать каждый CU для получения восстановленного сигнала блока изображения, соответствующего узлу A.Step 6: decode each CU to obtain a reconstructed picture block signal corresponding to node A.

Этап 6 может быть реализован аналогично этапу 6 в варианте 4 осуществления и дополнительно здесь не описывается.Step 6 may be implemented similarly to step 6 in Embodiment 4 and is not further described here.

Вариант 9 осуществленияOption 9 implementation

Если текущая область разделяется один раз для генерирования блока яркости 4x4 (например, 64 выборки яркости разделяются в режиме QT или 128 выборок яркости разделяются в режиме TT), ограничивается только, что внутренний режим по умолчанию может использоваться для текущего региона;If the current area is split once to generate a 4x4 luma block (for example, 64 luma samples are split in QT mode or 128 luma samples are split in TT mode), it is only limited that the default internal mode can be used for the current region;

в противном случае передается флаг, указывающий, что для текущей области можно использовать только внешний режим или только внутренний режим.otherwise, a flag is passed indicating that only outer mode or only inner mode can be used for the current region.

Если ограничено, что для текущей области может использоваться только внешний режим, яркость и цветность разделяются совместно. Если узел в текущей области разбивается для генерирования блока яркости 4x4, такое разделение не допускается. Например, если текущий узел 8x8 и разделен в режиме HBT (или VBT) для генерирования двух узлов 8x4. Если эти узлы по-прежнему разделяются для генерирования CU 4x4, эти узлы 8x4 не могут и дополнительно разделяться.If it is limited that only outer mode can be used for the current area, luma and chrominance are shared together. If a node in the current region is split to generate a 4x4 luma block, such splitting is not allowed. For example, if the current node is 8x8 and split in HBT (or VBT) mode to generate two 8x4 nodes. If these nodes are still split to generate 4x4 CUs, these 8x4 nodes cannot further split.

Если ограничено, что для области может использоваться только внутренний режим, эта реализация такая же, как и исходная реализация (яркость разделяется, но цветность не разделяется).If it is restricted that only intra mode can be used for an area, this implementation is the same as the original implementation (luma is split, but chroma is not split).

Этот вариант осуществления настоящего изобретения обеспечивает способ разделения блоков, чтобы избежать использования режима внутреннего предсказания для блока цветности сравнительно небольшой областью и облегчить конвейерную обработку оборудования и реализацию декодера. Дополнительно, при внешнем предсказании процессы синтаксического анализа элементов синтаксиса для некоторых режимов предсказания могут быть пропущены, тем самым, снижая сложность кодирования.This embodiment of the present invention provides a block splitting method to avoid using the intra prediction mode for a chrominance block with a relatively small area and to facilitate hardware pipelining and decoder implementation. Additionally, in inter prediction, parsing processes of syntax elements for some prediction modes can be skipped, thereby reducing coding complexity.

Таким образом решаются технические задачи кодирования коэффициентов и снижается сложность кодирования.Thus, the technical problems of coding the coefficients are solved and the complexity of coding is reduced.

Способ разделения блоков может быть следующим:The block splitting method can be as follows:

Анализируется режим разделения узла A.The partitioning mode of node A is analyzed.

Определяется, получен ли блок цветности, по меньшей мере, одного дочернего узла B как небольшой блок после того, как узел A разделен на основании режима S разделения. (Определяется, удовлетворяют ли ширина, высота и/или режим разделения узла A и/или ширина и высота узла B, по меньшей мере, одному из вышеуказанных условий.)It is determined whether a chrominance block of at least one child node B is received as a small block after the node A is divided based on the partition mode S. (It is determined whether the width, height, and/or split mode of node A and/or the width and height of node B satisfy at least one of the above conditions.)

Если определено, что блок цветности, по меньшей мере, одного дочернего узла B получен как небольшой блок после того, как узел A разделен на основании режима S разделения, режим внутреннего предсказания или режим внешнего предсказания используется для всех блоков кодирования в области покрытия узла A.If it is determined that a chrominance block of at least one child node B is obtained as a small block after node A is partitioned based on the partition mode S, the intra prediction mode or the inter prediction mode is used for all coding blocks in the coverage area of node A.

Определяется, продолжать ли разделять блок цветности и блок яркости узла A.Determines whether to continue separating the chroma block and the luma block of node A.

Если внутреннее предсказание выполняется для всех блоков кодирования в области покрытия узла A, блок яркости узла A дополнительно разделяться на основании режима S разделения, и блок цветности узла A дополнительно не разделяется. Если выполняется внешнее предсказание для всех блоков кодирования в области покрытия узла A, блок яркости и блок цветности узла A продолжают разделяться на основании режима S разделения на N узлов дерева кодирования, включающие в себя блок яркости и блок цветности.If intra prediction is performed for all coding blocks in the node A coverage area, the node A luminance block is further divided based on the separation mode S, and the node A chrominance block is not further divided. If inter-prediction is performed for all coding blocks in the coverage area of node A, the luma block and the chrominance block of node A continue to be divided based on the split mode S into N coding tree nodes including the luma block and the chrominance block.

Блок яркости узла A продолжает разделяться на основании режима S разделения, и блок цветности узла A больше не разделяется. Блок преобразования цветности и блок кодирования цветности имеют одинаковый размер.The node A luminance block continues to be divided based on the separation mode S, and the node A chrominance block is no longer divided. The chrominance conversion block and the chroma encoding block have the same size.

Когда выполняется внутреннее предсказание для всех блоков кодирования в области покрытия узла A, блок предсказания цветности и блок кодирования цветности имеют одинаковый размер; или, когда выполняется внешнее предсказание для всех блоков кодирования в области покрытия узла A, блок предсказания цветности разделяется на субблоки (где субблоки меньше, чем блок кодирования цветности), и вектор движения каждого субблока является вектором движения в области яркости, соответствующей субблоку.When intra prediction is performed for all coding blocks in the coverage area of node A, the chrominance prediction block and the chrominance coding block have the same size; or, when inter-prediction is performed for all coding blocks in the coverage area of node A, the chrominance prediction block is divided into subblocks (where the subblocks are smaller than the chrominance coding block), and the motion vector of each subblock is the motion vector in the luminance region corresponding to the subblock.

Блок яркости узла A дополнительно разделяется на основании режима S разделения. Блок цветности узла A дополнительно не разделяется. Блок преобразования цветности, соответствующий блоку кодирования цветности и блоку кодирования цветности, имеют одинаковый размер, блок предсказания цветности и блок кодирования цветности имеют одинаковый размер, и информация движения CB цветности является информацией движения для конкретной заданной позиции в области яркости, соответствующая цветности CB.The luminance block of node A is further divided based on the separation mode S. The node A chrominance block is not further split. The chrominance conversion block corresponding to the chrominance coding block and the chrominance coding block have the same size, the chrominance prediction block and the chrominance coding block have the same size, and the chrominance motion information CB is motion information for a specific predetermined position in the luma region corresponding to the chrominance CB.

Например, следует понимать, что раскрытый контент со ссылкой на описанный способ также может быть верным для соответствующего устройства или системы, выполненной с возможностью выполнять способ, и наоборот. Например, если описан один или несколько конкретных этапов способа, соответствующее устройство может включать в себя один или несколько блоков, таких как функциональные блоки, для выполнения описанных одного или нескольких этапов способа (например, один блок, выполняющий один или несколько этапов; или множество блоков, каждый из которых выполняет один или несколько из множества этапов) даже, если такой один или несколько блоков явно не описаны или не проиллюстрированы на сопроводительных чертежах. Дополнительно, например, если конкретное устройство описывается на основании одного или нескольких блоков, таких как функциональные блоки, соответствующий способ может включать в себя один этап для выполнения функций одного или нескольких блоков (например, один этап для выполнения функций одного или нескольких блоков) один или несколько блоков или множество этапов, каждый из которых используется для выполнения функций одного или нескольких из множества блоков), даже если такой один или несколько этапов явно не описаны или не проиллюстрированы на сопроводительных чертежах. Дополнительно, следует понимать, что признаки примерных вариантов осуществления и/или аспектов, описанных в этом описании, могут быть объединены друг с другом, если специально не указано иное.For example, it should be understood that the disclosed content with reference to the described method may also be true for the corresponding device or system configured to perform the method, and vice versa. For example, if one or more specific method steps are described, the corresponding device may include one or more blocks, such as functional blocks, for performing the one or more method steps described (for example, one block performing one or more steps; or a plurality of blocks , each of which performs one or more of the plurality of steps) even if such one or more units are not explicitly described or illustrated in the accompanying drawings. Additionally, for example, if a particular device is described in terms of one or more blocks, such as functional blocks, the corresponding method may include one step to perform the functions of one or more blocks (for example, one step to perform the functions of one or more blocks) one or several blocks or a plurality of steps, each of which is used to perform the functions of one or more of the plurality of blocks), even if such one or more steps are not explicitly described or illustrated in the accompanying drawings. Additionally, it should be understood that features of the exemplary embodiments and/or aspects described in this specification may be combined with each other unless specifically noted otherwise.

В одном или нескольких примерах описанные функции могут быть реализованы аппаратными средствами, программным обеспечением, встроенным программным обеспечением или любой их комбинацией. Если реализованы в программном обеспечении, функции могут храниться или передаваться в виде одной или нескольких инструкций или кода на машиночитаемом носителе и выполняться аппаратным процессором. Машиночитаемый носитель может включать в себя машиночитаемый носитель данных, который соответствует материальному носителю, например носителю данных, или носителю связи, включающий в себя любой носитель, который облегчает передачу компьютерной программы из одного места в другое, например, в соответствии с протоколом. Таким образом, машиночитаемый носитель обычно может соответствовать (1) энергонезависимому материальному машиночитаемому носителю данных или (2) среде связи, такой как сигнал или несущая волна. Носитель данных может быть любым доступным носителем, к которому может получить доступ один или несколько компьютеров или один или несколько процессоров для извлечения инструкций, кода и/или структур данных для реализации технологий, описанных в настоящем изобретении. Компьютерный программный продукт может включать в себя машиночитаемый носитель.In one or more examples, the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored or transmitted as one or more instructions or code on a computer-readable medium and executed by a hardware processor. A computer-readable medium may include a computer-readable medium that corresponds to a tangible medium, such as a data medium, or a communication medium, including any medium that facilitates the transfer of a computer program from one place to another, for example, in accordance with a protocol. Thus, a computer-readable medium can typically correspond to (1) a non-volatile tangible computer-readable storage medium, or (2) a communication medium such as a signal or carrier wave. A storage medium may be any available medium that can be accessed by one or more computers or one or more processors to retrieve instructions, code, and/or data structures for implementing the technologies described in the present invention. The computer program product may include a computer readable medium.

В качестве примера, но не ограничения, такой тип машиночитаемого носителя данных может включать в себя RAM, ROM, EEPROM, CD-ROM или другое запоминающее устройство на оптическом диске, запоминающее устройство на магнитном диске или другое магнитное запоминающее устройство, флэш-память или любой другой носитель, который может использоваться для хранения желаемого программного кода в форме инструкций или структур данных и к которому может иметь доступ компьютер. Дополнительно, любое соединение уместно называется машиночитаемым носителем. Например, если инструкции передаются с веб-сайта, сервера или другого удаленного источника с помощью коаксиального кабеля, оптоволоконного кабеля, витой пары, цифровой абонентской линии (digital subscriber line, DSL) или беспроводных технологий, таких как инфракрасный порт, радио и микроволновый диапазон, коаксиальный кабель, оптоволоконный кабель, витая пара, DSL или беспроводные технологии, такие как инфракрасный порт, радио и микроволновый диапазон содержаться в определение среды. Однако следует понимать, что машиночитаемый носитель данных и носитель данных не включают в себя соединение, несущую волну, сигнал или другой временный носитель, и фактически направлены на энергонезависимые материальные носители данных. Как используется в этой спецификации, диск и оптический диск включают в себя компакт-диск (compact disc, CD), лазерный диск, оптический диск, цифровой универсальный диск (digital versatile disc, DVD), мягкий диск и Blu-ray диск. Диск обычно воспроизводит данные магнитным способом, тогда как оптический диск воспроизводит данные оптически с помощью лазера. Комбинация вышеперечисленного также должна быть включена в объем машиночитаемых носителей.By way of example, and not limitation, such type of computer-readable storage medium may include RAM, ROM, EEPROM, CD-ROM or other optical disk storage device, magnetic disk storage device or other magnetic storage device, flash memory, or any another medium that can be used to store the desired program code in the form of instructions or data structures and that can be accessed by a computer. Additionally, any connection is appropriately referred to as a computer-readable medium. For example, if instructions are sent from a website, server, or other remote source using coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are contained in the media definition. However, it should be understood that the computer-readable storage medium and the storage medium do not include a connection, carrier wave, signal, or other temporary medium, and are in fact directed to non-volatile tangible storage media. As used in this specification, a disc and an optical disc include a compact disc (CD), a laser disc, an optical disc, a digital versatile disc (DVD), a soft disc, and a Blu-ray disc. A disc usually reproduces data magnetically, while an optical disc reproduces data optically using a laser. A combination of the above should also be included in the scope of computer readable media.

Инструкции могут выполняться одним или несколькими процессорами, такими как один или несколько процессоров цифровых сигналов (digital signal processor, DSP), микропроцессоры общего назначения, специализированные интегральные схемы (application specific integrated circuit, ASIC), программируемые пользователем вентильные матрицы (field programmable logic array, FPGA) или другие эквивалентные интегральные или дискретные логические схемы. Следовательно, термин «процессор», используемый в этой спецификации, может представлять любую из вышеупомянутых структур или другую структуру, которая применима для реализации технологий, описанных в этой спецификации. Кроме того, в некоторых аспектах функциональные возможности, описанные в этой спецификации, могут быть предоставлены в рамках выделенных аппаратных и/или программных модулей, выполненных с возможностью кодировать и декодировать или содержавшиеся в комбинированный кодек. Дополнительно, все технологии могут быть реализованы в одной или нескольких схемах или логических элементах.Instructions may be executed by one or more processors, such as one or more digital signal processors (DSPs), general purpose microprocessors, application specific integrated circuits (ASICs), field programmable logic arrays, FPGA) or other equivalent integrated or discrete logic circuits. Therefore, the term "processor" as used in this specification may represent any of the above structures, or another structure that is applicable to implement the technologies described in this specification. Furthermore, in some aspects, the functionality described in this specification may be provided within dedicated hardware and/or software modules capable of encoding and decoding or contained in a combined codec. Additionally, all technologies may be implemented in one or more circuits or logic elements.

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

Claims (98)

1. Способ разделения изображения, содержащий:1. A method for dividing an image, comprising: определение режима разделения текущего узла, в котором текущий узел содержит блок яркости и блок цветности;determining a splitting mode of the current node, in which the current node contains a luminance block and a chrominance block; определение, на основании режима разделения текущего узла и размера текущего узла, что блок цветности текущего узла дополнительно не разделяется; иdetermining, based on the split mode of the current node and the size of the current node, that the chrominance block of the current node is not further split; and разделение блока яркости текущего узла на основании режима разделения текущего узла.splitting the luminance block of the current node based on the splitting mode of the current node. 2. Способ по п. 1, в котором определение, что блок цветности текущего узла дополнительно не разделяется, содержит:2. The method of claim 1, wherein determining that the current node's chrominance block is not further split comprises: при определении на основании режима разделения текущего узла и размера текущего узла, что дочерний узел, сгенерированный путем разделения текущего узла, содержит блок цветности, длина стороны которого меньше порогового значения, блок цветности текущего узла дополнительно не разделяется.when determining based on the splitting mode of the current node and the size of the current node that the child node generated by splitting the current node contains a chrominance block whose side length is less than a threshold value, the chrominance block of the current node is not further divided. 3. Способ по п. 1, в котором3. The method according to claim 1, in which когда ширина текущего узла равна двукратному пороговому значению и режим разделения текущего узла представляет собой вертикальное двоичное разделение, илиwhen the width of the current node is two times the threshold and the splitting mode of the current node is vertical binary splitting, or когда высота текущего узла равна двукратному пороговому значению и режим разделения текущего узла является горизонтальным двоичным разделением, илиwhen the height of the current node is two times the threshold and the splitting mode of the current node is horizontal binary splitting, or когда ширина текущего узла равна четырехкратному пороговому значению и режим разделения текущего узла является вертикальным тройным разделением, илиwhen the width of the current node is four times the threshold and the split mode of the current node is vertical triple split, or когда высота текущего узла равна четырехкратному пороговому значению и режим разделения текущего узла является горизонтальным тройным разделением, илиwhen the height of the current node is four times the threshold and the split mode of the current node is horizontal triple split, or когда ширина текущего узла равна двукратному пороговому значению и режим разделения текущего узла является четырехкратным разделением,when the width of the current node is two times the threshold value and the split mode of the current node is quadruple split, блок цветности текущего узла дополнительно не разделяется.the current node's chrominance block is not further split. 4. Способ по любому из пп. 1-3, в котором блок яркости текущего узла разделяется на основании режима разделения текущего узла для получения дочерних узлов текущего узла, в котором каждый дочерний узел содержит только блок яркости.4. The method according to any one of paragraphs. 1-3, wherein the luminance block of the current node is split based on the splitting mode of the current node to obtain child nodes of the current node, wherein each child node contains only the luminance block. 5. Способ по п. 4, в котором способ дополнительно содержит:5. The method of claim 4, wherein the method further comprises: анализ информации блока яркости текущего узла для получения информации предсказания и остаточной информации каждой из подобластей в блоке яркости, в котором подобласти взаимно однозначно соответствуют дочерним узлам.parsing the luminance block information of the current node to obtain prediction information and residual information of each of the sub-regions in the luminance block, in which the sub-regions one-to-one correspond to child nodes. 6. Способ по п. 4 или 5, в котором дочерние узлы дополнительно не разделяются по умолчанию и каждый дочерний узел соответствует одному блоку кодирования, содержащий только блок яркости.6. The method according to claim 4 or 5, wherein the child nodes are further not split by default and each child node corresponds to one coding block containing only a luma block. 7. Способ по любому из пп. 1-6, в котором способ дополнительно содержит:7. The method according to any one of paragraphs. 1-6, wherein the method further comprises: когда блок цветности текущего узла дополнительно не разделяется, получение режима предсказания блока цветности.when the chrominance block of the current node is not further divided, obtaining the chrominance block prediction mode. 8. Способ по п. 7, в котором режим предсказания блока цветности текущего узла определяется на основании режима предсказания блока яркости на заданной позиции текущего узла.8. The method of claim 7, wherein the chrominance block prediction mode of the current node is determined based on the luminance block prediction mode at a given position of the current node. 9. Способ по п. 8, в котором, когда режим предсказания, используемый для блока яркости на заданной позиции, является режимом внешнего предсказания,9. The method of claim 8, wherein when the prediction mode used for the luminance block at the given position is an inter prediction mode, режим внешнего предсказания используется для блока цветности текущего узла; илиthe inter prediction mode is used for the chrominance block of the current node; or первый флаг анализируется для определения режима предсказания блока цветности на основании первого флага.the first flag is parsed to determine a chrominance block prediction mode based on the first flag. 10. Способ по п. 9, в котором, когда режим внешнего предсказания используется для блока цветности текущего узла,10. The method of claim 9, wherein when the inter prediction mode is used for a chrominance block of the current node, информация о движении блока яркости на заданной позиции получается, как информация о движении блока цветности; илиinformation about the movement of the luminance block at a given position is obtained as information about the movement of the chrominance block; or блок цветности разделяется на субблоки предсказания цветности, и получается информация о движении субблоков предсказания цветности.the chrominance block is divided into chrominance prediction sub-blocks, and motion information of the chrominance prediction sub-blocks is obtained. 11. Способ по п. 9, в котором, когда определяется, на основании первого флага, что11. The method of claim 9, wherein when it is determined, based on the first flag, that режим внутреннего предсказания используется для блока цветности, режим внутреннего предсказания анализируется из битового потока и используется в качестве режима внутреннего предсказания блока цветности;the intra prediction mode is used for the chrominance block, the intra prediction mode is parsed from the bitstream and used as the intra prediction mode of the chrominance block; когда, на основании первого флага, определяется, что режим внешнего предсказания используется для блока цветности, информация движения блока яркости на заданной позиции получается, как информация о движении блока цветности; илиwhen, based on the first flag, it is determined that the inter prediction mode is used for the chrominance block, motion information of the luma block at a given position is obtained as motion information of the chrominance block; or когда, на основании первого флага, определяется, что режим внешнего предсказания используется для блока цветности, блок цветности разделяется на субблоки предсказания цветности, и получается информация о движении субблоков предсказания цветности.when, based on the first flag, it is determined that the inter prediction mode is used for a chrominance block, the chrominance block is divided into chrominance prediction subblocks, and movement information of the chrominance prediction subblocks is obtained. 12. Способ по п. 10 или 11, в котором информацию о движении субблоков предсказания цветности получают, содержит:12. The method according to claim 10 or 11, wherein the motion information of the chrominance prediction sub-blocks is obtained, comprising: если внешнее предсказание выполняется для блоков яркости на позициях изображения яркости, соответствующих субблокам предсказания цветности, информация о движении на позициях изображения яркости, соответствующих субблокам предсказания цветности, используется в качестве информации о движении субблоков предсказания цветности;if inter-prediction is performed for luma blocks at luma image positions corresponding to chrominance prediction subblocks, motion information at luminance image positions corresponding to chrominance prediction subblocks is used as motion information of chrominance prediction subblocks; в противном случае информация о движении на заданной позиции используется в качестве информации о движении субблоков предсказания цветности.otherwise, the motion information at the given position is used as the motion information of the chrominance prediction sub-blocks. 13. Способ по п. 8, в котором, когда режим предсказания, используемый для блока яркости на заданной позиции, является режимом внутреннего предсказания, режим внутреннего предсказания используется для блока цветности текущего узла.13. The method of claim 8, wherein when the prediction mode used for the luma block at the given position is the intra prediction mode, the intra prediction mode is used for the chrominance block of the current node. 14. Способ по п. 13, в котором режим внутреннего предсказания анализируется из битового потока как режим внутреннего предсказания блока цветности текущего узла; или14. The method of claim 13, wherein the intra prediction mode is parsed from the bitstream as the intra prediction mode of the current node's chrominance block; or режим внутреннего предсказания блока цветности текущего узла является одним из: постоянным режимом, планарным режимом, угловым режимом, режимом кросс-компонентной линейной модели или полученным режимом цветности DM.the chrominance block intra prediction mode of the current node is one of: constant mode, planar mode, angular mode, cross-component linear model mode, or derived DM chroma mode. 15. Способ по п. 8, в котором, когда режим предсказания, используемый для блока яркости на заданной позиции, является режимом внутреннего копирования блока, IBC,15. The method of claim 8, wherein when the prediction mode used for the luminance block at the given position is the intra block copy mode, IBC, IBC режим предсказания используется для блока цветности текущего узла; илиIBC prediction mode is used for the current node's chrominance block; or второй флаг анализируется для определения режима предсказания блока цветности на основании второго флага.the second flag is parsed to determine a chrominance block prediction mode based on the second flag. 16. Способ по п. 15, в котором, когда IBC режим предсказания используется для блока цветности текущего узла, способ дополнительно содержит: получение информации вектора смещения блока яркости на заданной позиции в качестве информации вектора смещения блока цветности текущего узла.16. The method of claim 15, wherein when the IBC prediction mode is used for a chrominance block of the current node, the method further comprises: obtaining the offset vector information of the luminance block at a given position as the offset vector information of the chrominance block of the current node. 17. Способ по п. 15, в котором IBC режим используется для блока цветности, если17. The method of claim 15, wherein the IBC mode is used for the chroma block if значение второго флага является первым значением;the value of the second flag is the first value; режим внутреннего предсказания используется для блока цветности, если значение второго флага является первым значением; илиthe intra prediction mode is used for the chrominance block if the value of the second flag is the first value; or режим внешнего предсказания используется для блока цветности, если значение второго флага является вторым значением.the inter prediction mode is used for the chrominance block if the value of the second flag is the second value. 18. Способ по п. 7, в котором способ дополнительно содержит:18. The method of claim 7, wherein the method further comprises: получение режима предсказания множества блоков яркости, полученных посредством разделения; иobtaining a prediction mode of a plurality of luminance blocks obtained by division; and определение режима предсказания блока цветности текущего узла на основании режима предсказания множества блоков яркости, полученных посредством разделения.determining a chrominance block prediction mode of the current node based on the prediction mode of the plurality of luma blocks obtained by splitting. 19. Способ по п. 18, в котором, когда режим предсказания, используемый для множества блоков яркости, является режимом внутреннего предсказания, режим внутреннего предсказания используется для блока цветности текущего узла.19. The method of claim 18, wherein when the prediction mode used for the plurality of luma blocks is an intra prediction mode, the intra prediction mode is used for the chrominance block of the current node. 20. Способ по п. 18, в котором, когда режим предсказания, используемый для множества блоков яркости, является режимом внешнего предсказания, информация о движении блока яркости на заданной позиции используется в качестве информации о движении блока цветности текущего узла, когда режим внешнего предсказания используется для блока цветности текущего узла; или20. The method of claim 18, wherein when the prediction mode used for the plurality of luma blocks is an inter prediction mode, the motion information of the luminance block at a given position is used as the motion information of the chrominance block of the current node when the inter prediction mode is used. for the chrominance block of the current node; or когда режим предсказания, используемый для множества блоков яркости, является режимом внешнего предсказания, анализируется первый флаг для определения режима предсказания блока цветности на основании первого флага.when the prediction mode used for the plurality of luminance blocks is the inter prediction mode, the first flag is analyzed to determine the chrominance block prediction mode based on the first flag. 21. Способ по п. 20, в котором, когда определяется, на основании первого флага, что21. The method of claim 20, wherein when it is determined, based on the first flag, that режим внутреннего предсказания используется для блока цветности, режим внутреннего предсказания анализируется из битового потока и используется в качестве режима внутреннего предсказания для блока цветности; илиan intra prediction mode is used for the chrominance block, the intra prediction mode is parsed from the bitstream and used as the intra prediction mode for the chrominance block; or когда, на основании первого флага, определяется, что режим внешнего предсказания используется для блока цветности, информация о движении блока яркости на заданной позиции получается, как информация о движении блока цветности.when, based on the first flag, it is determined that the inter prediction mode is used for a chrominance block, motion information of the luma block at a given position is obtained as motion information of the chrominance block. 22. Способ по п. 18, в котором, когда режим предсказания, используемый для множества блоков яркости, содержит режим внешнего предсказания и режим внутреннего предсказания, режим предсказания блока яркости на заданной позиции текущего узла получается как режим предсказания блока цветности текущего узла.22. The method of claim 18, wherein when the prediction mode used for the plurality of luminance blocks comprises an inter prediction mode and an intra prediction mode, the luminance block prediction mode at a given position of the current node is obtained as the chrominance block prediction mode of the current node. 23. Способ по любому из пп. 1-22, в котором, если текущий узел является I-кадром, режим внутреннего предсказания используется для каждого дочернего узла текущего узла; или, если текущий узел является P-кадром или B-кадром, первый дочерний узел анализируется для получения режима предсказания первого дочернего узла, в котором режим предсказания оставшихся дочерних узлов совпадает с режимом предсказания для первого дочернего узла и первый дочерний узел является узлом, который анализируется первым.23. The method according to any one of paragraphs. 1-22, in which, if the current node is an I-frame, the intra prediction mode is used for each child node of the current node; or, if the current node is a P-frame or a B-frame, the first child node is parsed to obtain the prediction mode of the first child node, in which the prediction mode of the remaining child nodes is the same as the prediction mode for the first child node, and the first child node is the node that is parsed first. 24. Способ по любому из пп. 1-22, в котором, если текущий узел является I-кадром, режим внутреннего предсказания используется для каждого дочернего узла текущего узла; или, если текущий узел является P-кадром или B-кадром, режим внешнего предсказания используется для каждого дочернего узла текущего узла.24. The method according to any one of paragraphs. 1-22, in which, if the current node is an I-frame, the intra prediction mode is used for each child node of the current node; or, if the current node is a P-frame or a B-frame, the inter prediction mode is used for each child node of the current node. 25. Способ по любому из пп. 1-24, в котором определение, на основании режима разделения текущего узла, размера текущего узла и режима предсказания первого дочернего узла текущего узла, что блок цветности текущего узла дополнительно не разделяется, в котором первый дочерний узел содержит только блок яркости и первый дочерний узел является узлом, который анализируется первым.25. The method according to any one of paragraphs. 1-24, wherein determining, based on the splitting mode of the current node, the size of the current node, and the prediction mode of the first child node of the current node, that the chrominance block of the current node is not further divided, in which the first child node contains only the luma block, and the first child node is the node that is parsed first. 26. Способ по п. 25, в котором, на основании режима разделения текущего узла и размера текущего узла, определяют, что дочерний узел, сгенерированный разделением текущего узла, содержит блок цветности, длина стороны которого меньше порогового значения и режим предсказания первого дочернего узла является режимом внутреннего предсказания, блок цветности текущего узла дополнительно не разделяется.26. The method of claim 25, wherein, based on the split mode of the current node and the size of the current node, it is determined that the child node generated by splitting the current node contains a chrominance block whose side length is less than a threshold value and the prediction mode of the first child node is mode of intra prediction, the chrominance block of the current node is not further divided. 27. Способ по п. 26, в котором, когда режим предсказания первого дочернего узла является внутренним предсказанием, и выполняется любое из следующих условий:27. The method of claim 26, wherein when the prediction mode of the first child node is intra prediction, and any of the following conditions are met: когда ширина текущего узла равна удвоенному пороговому значению и режим разделения текущего узла является вертикальным двоичным разделением, илиwhen the width of the current node is twice the threshold and the splitting mode of the current node is vertical binary splitting, or когда высота текущего узла равна удвоенному пороговому значению и режим разделения текущего узла является горизонтальным двоичным разделением, илиwhen the height of the current node is twice the threshold value and the splitting mode of the current node is horizontal binary splitting, or когда ширина текущего узла равна четырехкратному пороговому значению и режим разделения текущего узла является вертикальным тройным разделением, илиwhen the width of the current node is four times the threshold and the split mode of the current node is vertical triple split, or когда высота текущего узла равна четырехкратному пороговому значению и режим разделения текущего узла является горизонтальным тройным разделением, илиwhen the height of the current node is four times the threshold and the split mode of the current node is horizontal triple split, or когда ширина текущего узла равна удвоенному пороговому значению и режим разделения текущего узла является четырехкратным разделением,when the width of the current node is twice the threshold value and the split mode of the current node is quadruple split, блок цветности текущего узла дополнительно не разделяется.the current node's chrominance block is not further split. 28. Способ по любому из пп. 1-24, в котором, на основании режима разделения текущего узла и размера текущего узла, определяют, что дочерний узел, сгенерированный разделением текущего узла, содержит блок цветности, сторона которого длина меньше порогового значения; если режим предсказания первого дочернего узла является внешним предсказанием, блок цветности текущего узла разделяется на основании режима разделения текущего узла, в котором первый дочерний узел является узлом, который анализируется первым.28. The method according to any one of paragraphs. 1-24, in which, based on the division mode of the current node and the size of the current node, it is determined that the child node generated by the division of the current node contains a chrominance block whose side length is less than a threshold value; if the prediction mode of the first child node is inter-prediction, the chrominance block of the current node is divided based on the split mode of the current node, in which the first child node is the node that is parsed first. 29. Способ по п. 28, в котором способ дополнительно содержит:29. The method of claim 28, wherein the method further comprises: определение информации о движении соответствующего дочернего узла блока цветности на основании информации о движении дочерних узлов текущего узла.determining motion information of a corresponding child node of the chrominance block based on the motion information of the child nodes of the current node. 30. Способ по любому из пп. 1-24, в котором, при определении на основании режима разделения текущего узла и размера текущего узла, что дочерний узел, сгенерированный разделением текущего узла, содержит блок цветности, ширина которого меньше порогового значения, блок цветности текущего узла дополнительно не разделяется.30. The method according to any one of paragraphs. 1-24, wherein, when it is determined based on the splitting mode of the current node and the size of the current node that the child node generated by splitting the current node contains a chroma block whose width is less than a threshold value, the chroma block of the current node is not further divided. 31. Способ по любому из пп. 1-24, в котором при определении, на основании режима разделения текущего узла и размера текущего узла, что дочерний узел, сгенерированный разделением текущего узла, содержит блок цветности, количество выборок цветности которого меньше 16, блок цветности текущего узла дополнительно не разделяется.31. The method according to any one of paragraphs. 1-24, wherein when it is determined, based on the splitting mode of the current node and the size of the current node, that the child node generated by splitting the current node contains a chroma block whose number of chroma samples is less than 16, the chroma block of the current node is not further divided. 32. Способ по п. 31, в котором32. The method according to claim 31, in which когда произведение ширины и высоты текущего узла меньше 128 и режим разделения текущего узла представляет собой вертикальное двоичное разделение или горизонтальное двоичное разделение, илиwhen the product of the current node's width and height is less than 128 and the current node's split mode is vertical binary split or horizontal binary split, or когда произведение ширины и высоты текущего узла меньше 256 и режим разделения текущего узла представляет собой вертикальное тройное разделение, горизонтальное тройное разделение или четырехкратное разделение, илиwhen the product of the current node's width and height is less than 256 and the current node's split mode is vertical tri-split, horizontal tri-split, or quadruple split, or когда произведение ширины и высоты текущего узла равно 64 и режим разделения текущего узла представляет собой вертикальное двоичное разделение, горизонтальное двоичное разделение, четырехкратное разделение, горизонтальное тройное разделение или вертикальное тройное разделение, илиwhen the product of the current node's width and height is 64 and the current node's split mode is vertical binary split, horizontal binary split, quadruple split, horizontal triple split, or vertical triple split, or когда произведение ширины и высоты текущего узла равно 128 и режим разделения текущего узла представляет собой вертикальное тройное разделение или горизонтальное тройное разделение,when the product of the width and height of the current node is 128 and the split mode of the current node is vertical triple split or horizontal triple split, блок цветности текущего узла дополнительно не разделяется.the current node's chrominance block is not further split. 33. Способ по пп. 2, 3, 26, 27, 28 или 30, в котором пороговое значение равно 4.33. The method according to paragraphs. 2, 3, 26, 27, 28, or 30 where the threshold is 4. 34. Способ по любому из пп. 1-33, в котором режим разделения текущего узла содержит, по меньшей мере, одно из: четырехкратное разделение (QT), горизонтальное двоичное разделение (horizontal BT), горизонтальное троичное разделение (horizontal TT), вертикальное двоичное разделение (Vertical BT) и вертикальное тройное разделение (Vertical TT).34. The method according to any one of paragraphs. 1-33, wherein the split mode of the current node comprises at least one of: quadruple split (QT), horizontal binary split (horizontal BT), horizontal ternary split (horizontal TT), vertical binary split (Vertical BT), and vertical triple separation (Vertical TT). 35. Способ по п. 1, в котором, когда произведение ширины и высоты текущего узла35. The method of claim 1, wherein when the product of the width and height of the current node равно 64 и режим разделения текущего узла представляет собой разделение дерева квадрантов или разделение троичного дерева, илиis 64 and the split mode of the current node is quadtree split or ternary tree split, or когда произведение ширины и высоты текущего узла равно 32 и режим разделения текущего узла представляет собой разделение двоичного дерева,when the product of the width and height of the current node is 32 and the splitting mode of the current node is binary tree splitting, блок цветности текущего узла дополнительно не разделяется.the current node's chrominance block is not further split. 36. Способ по п. 1, в котором текущий узел принадлежит I-сегменту; когда36. The method according to p. 1, in which the current node belongs to the I-segment; when произведение ширины и высоты текущего узла равно 64 и режим разделения текущего узла представляет собой разделение двоичного дерева, илиthe product of the current node's width and height is 64 and the current node's split mode is a binary tree split, or когда произведение ширины и высоты текущего узла равно 128 и режим разделения текущего узла представляет собой разделение троичного дерева,when the product of the width and height of the current node is 128 and the split mode of the current node is ternary tree split, блок цветности текущего узла дополнительно не разделяется.the current node's chrominance block is not further split. 37. Способ по любому из пп. 1-36, в котором необходимость разделения блока цветности текущего узла определяется на основании режима разделения текущего узла, размера текущего узла и идентификатора (cons_pred_mode_flag) режима предсказания узла.37. The method according to any one of paragraphs. 1-36, in which the need to split the chrominance block of the current node is determined based on the split mode of the current node, the size of the current node, and the ID (cons_pred_mode_flag) of the prediction mode of the node. 38. Способ по п. 37, в котором текущий узел принадлежит P- или B-сегменту; когда38. The method of claim 37, wherein the current node belongs to a P or B segment; when произведение ширины и высоты текущего узла равно 64 и режим разделения текущего узла представляет собой разделение двоичного дерева, или произведение ширины и высоты текущего узла равно 128 и режим разделения текущего узла является разделением троичного дерева, иthe product of the width and height of the current node is 64 and the split mode of the current node is binary tree split, or the product of the width and height of the current node is 128 and the split mode of the current node is ternary tree split, and когда идентификатор режима предсказания узла указывает, что внешнее предсказание не выполняется для блока кодирования (coding block), полученного путем разделения текущего узла,when the node prediction mode identifier indicates that inter-prediction is not performed on the coding block obtained by dividing the current node, блок цветности текущего узла дополнительно не разделяется.the current node's chrominance block is not further split. 39. Способ по любому из пп. 1-38, в котором, на основании формата данных текущего узла, режима разделения текущего узла и размера текущего узла определяется, следует ли дополнительно разделять блок цветности текущего узла.39. The method according to any one of paragraphs. 1-38, in which, based on the data format of the current node, the division mode of the current node, and the size of the current node, it is determined whether to further divide the chrominance block of the current node. 40. Способ по п. 39, в котором формат данных текущего узла является YUV4:2:0 или YUV4:2:2.40. The method of claim 39, wherein the data format of the current node is YUV4:2:0 or YUV4:2:2. 41. Способ по п. 39, в котором выполняется внутреннее предсказание или внешнее предсказание для всех блоков кодирования в области покрытия текущего узла.41. The method of claim 39, wherein intra prediction or inter prediction is performed on all coding blocks in the coverage area of the current node. 42. Устройство для декодирования видеопотока, содержащее процессор и память, в котором память хранит инструкцию, и эта инструкция позволяет процессору выполнять способ по любому из пп. 1-41.42. A device for decoding a video stream, comprising a processor and a memory, in which the memory stores an instruction, and this instruction allows the processor to perform the method according to any one of paragraphs. 1-41. 43. Устройство для кодирования видеопотока, содержащее процессор и память, в котором память хранит инструкцию, и эта инструкция позволяет процессору выполнять способ по любому из пп. 1-41.43. A device for encoding a video stream, containing a processor and memory, in which the memory stores an instruction, and this instruction allows the processor to perform the method according to any one of paragraphs. 1-41. 44. Устройство для декодирования, содержащее постоянную память и процессор, которые соединены друг с другом, в котором память выполнена с возможностью хранить программную инструкцию, и программная инструкция позволяет процессору выполнять способ по любому из пп. 1-41.44. A device for decoding, containing a read-only memory and a processor that are connected to each other, in which the memory is configured to store a program instruction, and the program instruction allows the processor to perform the method according to any one of paragraphs. 1-41. 45. Устройство для кодирования, содержащее постоянную память и процессор, которые соединены друг с другом, в котором память выполнена с возможностью хранить программную инструкцию, и программная инструкция позволяет процессору выполнять способ по любому из пп. 1-41.45. A device for encoding, containing a read-only memory and a processor that are connected to each other, in which the memory is configured to store a program instruction, and the program instruction allows the processor to perform the method according to any one of paragraphs. 1-41.
RU2021108089A 2018-08-28 2019-08-28 Method and device for image separation RU2786626C2 (en)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
CN201810990466.9 2018-08-28
CN201811116761.8 2018-09-25
CN201910173454.1 2019-03-07
CN201910183731.7 2019-03-11
CN201910191131.5 2019-03-13
CN201910219440.9 2019-03-21
CN201910696741.0 2019-07-30

Publications (2)

Publication Number Publication Date
RU2021108089A RU2021108089A (en) 2022-09-29
RU2786626C2 true RU2786626C2 (en) 2022-12-22

Family

ID=

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120230421A1 (en) * 2011-03-10 2012-09-13 Qualcomm Incorporated Transforms in video coding
US20130195199A1 (en) * 2012-01-30 2013-08-01 Qualcomm Incorporated Residual quad tree (rqt) coding for video coding
US20140301437A1 (en) * 2013-04-05 2014-10-09 Qualcomm Incorporated Picture alignments in multi-layer video coding
US20150208094A1 (en) * 2014-01-20 2015-07-23 Electronics And Telecommunications Research Institute Apparatus and method for determining dct size based on transform depth
RU2575409C2 (en) * 2011-11-08 2016-02-20 Квэлкомм Инкорпорейтед Context reduction for context-adaptive binary arithmetic coding
WO2016074147A1 (en) * 2014-11-11 2016-05-19 Mediatek Singapore Pte. Ltd. Separated coding tree for luma and chroma

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120230421A1 (en) * 2011-03-10 2012-09-13 Qualcomm Incorporated Transforms in video coding
RU2575409C2 (en) * 2011-11-08 2016-02-20 Квэлкомм Инкорпорейтед Context reduction for context-adaptive binary arithmetic coding
US20130195199A1 (en) * 2012-01-30 2013-08-01 Qualcomm Incorporated Residual quad tree (rqt) coding for video coding
US20140301437A1 (en) * 2013-04-05 2014-10-09 Qualcomm Incorporated Picture alignments in multi-layer video coding
US20150208094A1 (en) * 2014-01-20 2015-07-23 Electronics And Telecommunications Research Institute Apparatus and method for determining dct size based on transform depth
WO2016074147A1 (en) * 2014-11-11 2016-05-19 Mediatek Singapore Pte. Ltd. Separated coding tree for luma and chroma

Similar Documents

Publication Publication Date Title
JP2023103292A (en) Encoder, decoder and corresponding intra prediction method
JP7317973B2 (en) IMAGE PREDICTION METHOD, DEVICE AND SYSTEM, APPARATUS AND STORAGE MEDIUM
CN111327904B (en) Image reconstruction method and device
WO2020038378A1 (en) Method and device for predicting chroma block
US20230370597A1 (en) Picture partitioning method and apparatus
CN110868590B (en) Image dividing method and device
CN113228632B (en) Encoder, decoder, and corresponding methods for local illumination compensation
CN110876061B (en) Chroma block prediction method and device
WO2020114509A1 (en) Video image encoding and decoding method and apparatus
RU2786626C2 (en) Method and device for image separation
CN111901593A (en) Image dividing method, device and equipment
CA3110477C (en) Picture partitioning method and apparatus
RU2809841C2 (en) Method and device for intra-frame prediction using linear model
US20240146909A1 (en) Image prediction method, apparatus, and system, device, and storage medium
WO2020143684A1 (en) Image prediction method, device, apparatus and system and storage medium
CN110944177B (en) Video decoding method, video decoder, video encoding method and video encoder
WO2020135368A1 (en) Inter-frame prediction method and apparatus
CN111669583A (en) Image prediction method, device, equipment, system and storage medium