RU2802368C2 - Syntax elements for video coding or decoding - Google Patents

Syntax elements for video coding or decoding Download PDF

Info

Publication number
RU2802368C2
RU2802368C2 RU2020143949A RU2020143949A RU2802368C2 RU 2802368 C2 RU2802368 C2 RU 2802368C2 RU 2020143949 A RU2020143949 A RU 2020143949A RU 2020143949 A RU2020143949 A RU 2020143949A RU 2802368 C2 RU2802368 C2 RU 2802368C2
Authority
RU
Russia
Prior art keywords
flag
coding
encoding
frame data
video
Prior art date
Application number
RU2020143949A
Other languages
Russian (ru)
Other versions
RU2020143949A (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 RU2020143949A publication Critical patent/RU2020143949A/en
Application granted granted Critical
Publication of RU2802368C2 publication Critical patent/RU2802368C2/en

Links

Images

Abstract

FIELD: video coding.
SUBSTANCE: invention relates to syntax elements for encoding or decoding video. The result is that efficient coding tool signalling is the transfer of information representing the coding tools used for coding, for example, from an encoder device to a receiver device (for example, a decoder or display), so that the appropriate tools are used for the decoding stage. These tools include new segmentation modes, new intra-prediction modes, increased flexibility for sampled adaptive bias, and a new luminance compensation mode for bi-prediction blocks based on a single flag capable of determining whether independent coding trees or general coding trees are used for coding luminance and chrominance blocks, while the single flag mentioned above is inserted into the high-level syntax elements of the frame's encoded data.
EFFECT: increasing the coding efficiency.
14 cl, 12 dwg, 11 tbl

Description

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

По меньшей мере, один из настоящих вариантов осуществления, в общем, относится к синтаксическим элементам для кодирования или декодирования видео.At least one of the present embodiments generally relates to syntax elements for encoding or decoding video.

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

Чтобы достигать высокой эффективности сжатия, схемы кодирования изображений и видео обычно используют прогнозирование и преобразование для того, чтобы использовать пространственную и временную избыточность в видеоконтенте. Обычно, внутреннее (intra) или взаимное (inter) прогнозирование используется для того, чтобы использовать внутри- или межкадровую корреляцию, после этого разности между исходным блоком и прогнозированным блоком, зачастую обозначаемые в качестве ошибок прогнозирования или остатков прогнозирования, преобразуются, квантуются и энтропийно кодируются. Чтобы восстанавливать видео, сжатые данные декодируются посредством обратных процессов, соответствующих энтропийному кодированию, квантованию, преобразованию и прогнозированию.To achieve high compression efficiency, image and video coding schemes typically use prediction and transform to exploit spatial and temporal redundancy in video content. Typically, intra or inter prediction is used to exploit intra- or inter-frame correlation, then the differences between the original block and the predicted block, often referred to as prediction errors or prediction residuals, are transformed, quantized and entropy encoded . To reconstruct video, the compressed data is decoded through inverse processes corresponding to entropy encoding, quantization, transform, and prediction.

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

Согласно первому аспекту, по меньшей мере, одного варианта осуществления, представляется видеосигнал, причем видеосигнал форматируется с возможностью включать в себя информацию согласно стандарту кодирования видео и содержит поток битов, содержащий видеоконтент и высокоуровневую синтаксическую информацию, причем упомянутая высокоуровневая синтаксическая информация содержит, по меньшей мере, один параметр из параметра, представляющего тип сегментации, параметра, представляющего тип режима внутреннего прогнозирования, параметра, представляющего адаптацию размеров блоков для контурного фильтра на основе дискретизированного адаптивного смещения, и параметра, представляющего режим компенсации освещенности для блоков бипрогнозирования.According to a first aspect of at least one embodiment, a video signal is presented, wherein the video signal is formatted to include information according to a video coding standard and comprises a bitstream comprising video content and high-level syntax information, wherein said high-level syntax information comprises at least , one parameter of a parameter representing the segmentation type, a parameter representing the intra-prediction mode type, a parameter representing the adaptation of block sizes for the contour filter based on the sampled adaptive offset, and a parameter representing the illumination compensation mode for the bi-prediction blocks.

Согласно второму аспекту, по меньшей мере, одного варианта осуществления, представляется носитель данных, причем носитель данных содержит закодированные на нем сигнальные видеоданные, причем видеосигнал форматируется с возможностью включать в себя информацию согласно стандарту кодирования видео и содержит поток битов, содержащий видеоконтент и высокоуровневую синтаксическую информацию, причем упомянутая высокоуровневая синтаксическая информация содержит, по меньшей мере, один параметр из параметра, представляющего тип сегментации, параметра, представляющего тип режима внутреннего прогнозирования, параметра, представляющего адаптацию размеров блоков для контурного фильтра на основе дискретизированного адаптивного смещения, и параметра, представляющего режим компенсации освещенности для блоков бипрогнозирования.According to a second aspect of at least one embodiment, a storage medium is provided, wherein the storage medium contains video signal data encoded thereon, wherein the video signal is formatted to include information according to a video encoding standard and contains a bitstream containing video content and high-level syntax information wherein said high-level syntax information comprises at least one parameter of a parameter representing a segmentation type, a parameter representing an intra prediction mode type, a parameter representing an adaptation of block sizes for the loop filter based on the sampled adaptive offset, and a parameter representing a compensation mode illumination for biforecasting blocks.

Согласно третьему аспекту, по меньшей мере, одного варианта осуществления, представляется оборудование, причем оборудование содержит видеокодер для кодирования данных кадров, по меньшей мере, для одного блока в кадре, при этом кодирование выполняется с использованием, по меньшей мере, одного параметра из параметра, представляющего тип сегментации, параметра, представляющего тип режима внутреннего прогнозирования, параметра, представляющего адаптацию размеров блоков для контурного фильтра на основе дискретизированного адаптивного смещения, и параметра, представляющего режим компенсации освещенности для блоков бипрогнозирования, и при этом упомянутые параметры вставляются в высокоуровневые синтаксические элементы кодированных данных кадров.According to a third aspect of at least one embodiment, equipment is provided, wherein the equipment includes a video encoder for encoding frame data for at least one block in the frame, wherein the encoding is performed using at least one parameter of a parameter, representing a type of segmentation, a parameter representing a type of intra-prediction mode, a parameter representing block size adaptation for the contour filter based on the sampled adaptive offset, and a parameter representing a light compensation mode for the bi-prediction blocks, and wherein said parameters are inserted into high-level syntax elements of the encoded data frames.

Согласно четвертому аспекту, по меньшей мере, одного варианта осуществления, представляется способ, при этом способ содержит кодирование данных кадров, по меньшей мере, для одного блока в кадре, при этом кодирование выполняется с использованием, по меньшей мере, одного параметра из параметра, представляющего тип сегментации, параметра, представляющего тип режима внутреннего прогнозирования, параметра, представляющего адаптацию размеров блоков для контурного фильтра на основе дискретизированного адаптивного смещения, и параметра, представляющего режим компенсации освещенности для блоков бипрогнозирования, и вставку параметров в высокоуровневые синтаксические элементы кодированных данных кадров.According to a fourth aspect of at least one embodiment, a method is provided, the method comprising encoding frame data for at least one block in the frame, wherein the encoding is performed using at least one parameter of a parameter representing a segmentation type, a parameter representing the intra-prediction mode type, a parameter representing the adaptation of block sizes for the contour filter based on the sampled adaptive offset, and a parameter representing the light compensation mode for the bi-prediction blocks, and inserting parameters into high-level syntax elements of the encoded frame data.

Согласно пятому аспекту, по меньшей мере, одного варианта осуществления, представляется оборудование, причем оборудование содержит видеодекодер для декодирования данных кадров, по меньшей мере, для одного блока в кадре, при этом декодирование выполняется с использованием, по меньшей мере, одного параметра из параметра, представляющего тип сегментации, параметра, представляющего тип режима внутреннего прогнозирования, параметра, представляющего адаптацию размеров блоков для контурного фильтра на основе дискретизированного адаптивного смещения, и параметра, представляющего режим компенсации освещенности для блоков бипрогнозирования, и при этом упомянутые параметры получаются из высокоуровневых синтаксических элементов кодированных данных кадров.According to a fifth aspect of at least one embodiment, equipment is provided, wherein the equipment includes a video decoder for decoding frame data for at least one block in the frame, wherein the decoding is performed using at least one parameter of the parameter, representing the type of segmentation, a parameter representing the type of the intra prediction mode, a parameter representing the adaptation of block sizes for the contour filter based on the sampled adaptive offset, and a parameter representing the illumination compensation mode for the bi-prediction blocks, and wherein said parameters are obtained from high-level syntax elements of the encoded data frames.

Согласно шестому аспекту, по меньшей мере, одного варианта осуществления, представляется способ, при этом способ содержит получение параметров из высокоуровневых синтаксических элементов кодированных данных кадров и декодирование данных кадров, по меньшей мере, для одного блока в кадре, при этом декодирование выполняется с использованием, по меньшей мере, одного параметра из параметра, представляющего тип сегментации, параметра, представляющего тип режима внутреннего прогнозирования, параметра, представляющего адаптацию размеров блоков для контурного фильтра на основе дискретизированного адаптивного смещения, и параметра, представляющего режим компенсации освещенности для блоков бипрогнозирования.According to a sixth aspect of at least one embodiment, a method is provided, the method comprising obtaining parameters from high-level syntax elements of encoded frame data and decoding the frame data for at least one block in the frame, wherein the decoding is performed using, at least one parameter of a parameter representing a segmentation type, a parameter representing an intra-prediction mode type, a parameter representing an adaptation of block sizes for the contour filter based on the sampled adaptive offset, and a parameter representing a light compensation mode for the bi-prediction blocks.

Согласно седьмому аспекту, по меньшей мере, одного варианта осуществления, представляется энергонезависимый машиночитаемый носитель, причем энергонезависимый машиночитаемый носитель содержит контент данных, сформированный согласно третьему или четвертому аспекту.According to a seventh aspect of at least one embodiment, a non-transitory computer-readable medium is provided, wherein the non-transitory computer-readable medium contains data content generated according to the third or fourth aspect.

Согласно седьмому аспекту, по меньшей мере, одного варианта осуществления, представляется компьютерная программа, содержащая инструкции с программным кодом, выполняемые посредством процессора, причем компьютерная программа реализует этапы способа согласно, по меньшей мере, четвертому или шестому аспекту.According to a seventh aspect of at least one embodiment, there is provided a computer program containing program code instructions executable by a processor, wherein the computer program implements steps of a method according to at least the fourth or sixth aspect.

Согласно восьмому аспекту, по меньшей мере, одного варианта осуществления, представляется компьютерный программный продукт, который сохранен на энергонезависимом машиночитаемом носителе и содержит инструкции с программным кодом, выполняемые посредством процессора, причем компьютерный программный продукт реализует этапы способа согласно, по меньшей мере, четвертому или шестому аспекту.According to an eighth aspect of at least one embodiment, there is provided a computer program product that is stored on a non-transitory computer readable medium and contains program code instructions executable by a processor, wherein the computer program product implements the method steps of at least the fourth or sixth aspect.

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

Фиг. 1 иллюстрирует пример видеокодера 100, такого как кодер по стандарту высокоэффективного кодирования видео (HEVC).Fig. 1 illustrates an example of a video encoder 100, such as a High Efficiency Video Coding (HEVC) encoder.

Фиг. 2 иллюстрирует блок-схему примера видеодекодера 200, такого как HEVC-декодер.Fig. 2 illustrates a block diagram of an example video decoder 200, such as a HEVC decoder.

Фиг. 3 иллюстрирует пример единицы дерева кодирования и дерева кодирования в сжатой области.Fig. 3 illustrates an example of a coding tree unit and a compressed region coding tree.

Фиг. 4 иллюстрирует пример разделения CTU на единицы кодирования, единицы прогнозирования и единицы преобразования.Fig. 4 illustrates an example of dividing a CTU into coding units, prediction units, and transformation units.

Фиг. 5 иллюстрирует пример CTU-представления в виде дерева квадрантов плюс двоичного дерева (QTBT).Fig. 5 illustrates an example of a quadtree plus binary tree (QTBT) representation of a CTU.

Фиг. 6 иллюстрирует примерный расширенный набор сегментации единиц кодирования.Fig. 6 illustrates an example superset of coding unit segmentation.

Фиг. 7 иллюстрирует пример режима внутреннего прогнозирования с двумя опорными слоями.Fig. 7 illustrates an example of an intra prediction mode with two reference layers.

Фиг. 8 иллюстрирует примерный вариант осуществления режима компенсации для двунаправленной компенсации освещенности.Fig. 8 illustrates an exemplary embodiment of a compensation mode for bidirectional illumination compensation.

Фиг. 9 иллюстрирует интерпретацию bt-split-flag согласно примерному варианту осуществления.Fig. 9 illustrates the interpretation of bt-split-flag according to an exemplary embodiment.

Фиг. 10 иллюстрирует блок-схему примера системы, в которой реализуются различные аспекты и варианты осуществления.Fig. 10 illustrates a block diagram of an example system in which various aspects and embodiments are implemented.

Фиг. 11 иллюстрирует блок-схему последовательности операций примера способа кодирования согласно варианту осуществления с использованием новых инструментальных средств кодирования.Fig. 11 illustrates a flowchart of an example encoding method according to an embodiment using the new encoding tools.

Фиг. 12 иллюстрирует блок-схему последовательности операций примера части способа декодирования согласно варианту осуществления с использованием новых инструментальных средств кодирования.Fig. 12 illustrates a flowchart of an example portion of a decoding method according to an embodiment using the new encoding tools.

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

По меньшей мере, в одном варианте осуществления, использование новых инструментальных средств кодирования, описанных ниже, приводит в результате к повышению эффективности кодирования. В примерном варианте осуществления, эффективное сигнализирование этих инструментальных средств кодирования представляет собой передачу информации, представляющей инструментальные средства кодирования, используемые для кодирования, например, из устройства кодера в приемное устройство (например, декодер или дисплей), так что соответствующие инструментальные средства используются для каскада декодирования. Эти инструментальные средства содержат новые режимы сегментации, новые режимы внутреннего прогнозирования, повышенную гибкость для дискретизированного адаптивного смещения и новый режим компенсации освещенности для блоков бипрогнозирования. Следовательно, предложенный новый синтаксис, собирающий множество инструментальных средств кодирования, обеспечивает более эффективное кодирование видео.In at least one embodiment, use of the new encoding tools described below results in increased encoding efficiency. In an exemplary embodiment, effective signaling of these encoding tools is the transmission of information representing the encoding tools used for encoding, for example, from an encoder device to a receiving device (for example, a decoder or display), such that the corresponding tools are used for the decoding stage . These tools include new segmentation modes, new intraprediction modes, increased flexibility for sampled adaptive offset, and a new light compensation mode for biprediction blocks. Therefore, the proposed new syntax, which collects multiple encoding tools, provides more efficient video encoding.

Фиг. 1 иллюстрирует пример видеокодера 100, такого как кодер по стандарту высокоэффективного кодирования видео (HEVC). Фиг. 1 также может иллюстрировать кодер, в котором вносятся улучшения в HEVC-стандарт, либо кодер с использованием технологий, аналогичных HEVC, такой как кодер по стандарту JEM (по стандарту объединенной исследовательской группы по тестовой модели), разрабатываемый посредством JVET (объединенной исследовательской группы по видеостандартам).Fig. 1 illustrates an example of a video encoder 100, such as a High Efficiency Video Coding (HEVC) encoder. Fig. 1 may also illustrate an encoder that makes improvements to the HEVC standard, or an encoder using technologies similar to HEVC, such as a JEM encoder being developed through JVET. ).

В настоящей заявке, термины "восстановленный" и "декодированный" могут использоваться взаимозаменяемо, термины "закодированный (encoded)" или "кодированный (coded)" могут использоваться взаимозаменяемо, и термины "изображение", "кадр" и "кинокадр" могут использоваться взаимозаменяемо. Обычно, но не обязательно, термин "восстановленный" используется на стороне кодера, в то время как "декодированный" используется на стороне декодера.In this application, the terms "recovered" and "decoded" may be used interchangeably, the terms "encoded" or "coded" may be used interchangeably, and the terms "image", "frame" and "cine frame" may be used interchangeably . Typically, but not necessarily, the term "reconstructed" is used on the encoder side, while "decoded" is used on the decoder side.

Перед кодированием, видеопоследовательность может проходить через обработку перед кодированием (101). Например, она выполняется посредством применения преобразования цветов к входному цветному кадру (например, преобразования из RGB 4:4:4 в YCbCr 4:2:0) или выполнения повторного преобразования компонентов входного кадра, чтобы получать распространение сигналов, более устойчивое к сжатию (например, с использованием частотной коррекции гистограммы одного из цветовых компонентов). Метаданные могут быть ассоциированы с предварительной обработкой и присоединены к потоку битов.Before encoding, the video sequence may go through pre-encoding processing (101). For example, it is performed by applying a color transform to the input color frame (eg, converting from RGB 4:4:4 to YCbCr 4:2:0) or performing a re-conversion of components of the input frame to produce signal propagations that are more resistant to compression (eg , using frequency correction of the histogram of one of the color components). Metadata may be associated with preprocessing and attached to the bitstream.

В HEVC, для того, чтобы кодировать видеопоследовательность с помощью одного или более кадров, кадр сегментируется (102) на одну или более серий последовательных макроблоков, причем каждая серия последовательных макроблоков (срез, slice) может включать в себя один или более сегментов серий последовательных макроблоков. Сегмент серий последовательных макроблоков организуется в единицы кодирования, единицы прогнозирования и единицы преобразования. HEVC-спецификация различает "блоки" и "единицы", при этом "блок" адресует конкретную область в массиве выборок (например, сигнал яркости, Y), а "единица" включает в себя совместно размещенные блоки всех кодированных цветовых компонентов (Y, Cb, Cr или монохромного), синтаксические элементы и прогнозирующие данные, которые ассоциированы с блоками (например, векторы движения).In HEVC, in order to encode a video sequence using one or more frames, the frame is segmented (102) into one or more slices, where each slice may include one or more slice segments. . A segment of serial macroblocks is organized into coding units, prediction units, and transformation units. The HEVC specification distinguishes between "blocks" and "units", with a "block" addressing a specific region in the sample array (eg luminance, Y) and a "unit" including co-located blocks of all encoded color components (Y, Cb , Cr or monochrome), syntactic elements and predictive data that are associated with blocks (for example, motion vectors).

Для кодирования в HEVC, кадр сегментируется на блоки дерева кодирования (CTB) квадратной формы с конфигурируемым размером, и последовательный набор блоков дерева кодирования группируется в серию последовательных макроблоков. Единица дерева кодирования (CTU) содержит CTB кодированных цветовых компонентов. CTB представляет собой корень сегментации на дерево квадрантов на блоки кодирования (CB), и блок кодирования может сегментироваться на один или более блоков прогнозирования (PB) и формирует корень сегментации на дерево квадрантов на блоки преобразования (TB). Согласно блоку кодирования, блоку прогнозирования и блоку преобразования, единица кодирования (CU) включает в себя единицы прогнозирования (PU) и набор с древовидной структурой единиц преобразования (TU), PU включает в себя информацию прогнозирования для всех цветовых компонентов, и TU включает в себя синтаксическую структуру остаточного кодирования для каждого цветового компонента. Размер CB, PB и TB компонента сигнала яркости применяется к соответствующей CU, PU и TU. В настоящей заявке, термин "блок" может использоваться как означающий, например, любое из CTU, CU, PU, TU, CB, PB и TB. Помимо этого, "блок" также может использоваться как означающий макроблок и сегмент, как указано в H.264/AVC или других стандартах кодирования видео, и если обобщить, как означающий массив данных различных размеров.For HEVC encoding, a frame is segmented into square-shaped coding tree blocks (CTBs) with a configurable size, and a sequential set of coding tree blocks is grouped into a series of sequential macroblocks. The Coding Tree Unit (CTU) contains the CTB of coded color components. The CTB represents a segmentation root of a quadtree into coding blocks (CBs), and a coding block may be segmented into one or more prediction blocks (PBs) and forms a segmentation root of a quadtree into transform blocks (TB). According to the encoding unit, the prediction unit and the transform unit, a coding unit (CU) includes prediction units (PUs) and a tree-structured set of transformation units (TUs), the PU includes prediction information for all color components, and the TU includes syntactic structure of residual coding for each color component. The CB, PB and TB size of the luminance signal component is applied to the corresponding CU, PU and TU. In this application, the term "block" may be used to mean, for example, any of CTU, CU, PU, TU, CB, PB and TB. In addition, "block" can also be used to mean macroblock and segment, as specified in H.264/AVC or other video coding standards, and more generally, to mean an array of data of various sizes.

В примере кодера 100, кадр кодируется посредством элементов кодера, как описано ниже. Кадр, который должен кодироваться, обрабатывается в единицах CU. Каждая CU кодируется использованием внутреннего или взаимного режима. Когда CU кодируется во внутреннем режиме, он выполняет внутреннее прогнозирование (160). Во взаимном режиме, выполняются оценка (175) и компенсация (170) движения. Кодер определяет (105) то, какой из внутреннего режима или взаимного режима следует использовать для кодирования CU, и указывает решение по внутреннему/взаимному режиму посредством флага режима прогнозирования. Остатки прогнозирования вычисляются посредством вычитания (110) прогнозированного блока из исходного блока изображений.In the example encoder 100, a frame is encoded by encoder elements as described below. The frame to be encoded is processed in CU units. Each CU is encoded using internal or mutual mode. When the CU is encoded in intra mode, it performs intra prediction (160). In reciprocal mode, motion estimation (175) and motion compensation (170) are performed. The encoder determines (105) which of the internal mode or the inter-mode should be used for encoding the CU, and indicates the intra/inter-mode decision via a prediction mode flag. The prediction residuals are calculated by subtracting (110) the predicted block from the original image block.

CU во внутреннем режиме прогнозируются из восстановленных соседних выборок в идентичной серии последовательных макроблоков. В HEVC доступен набор из 35 режимов внутреннего прогнозирования, включающий в себя DC, плоский и 33 режима углового прогнозирования. Опорный элемент внутреннего прогнозирования восстанавливается из строки и столбца, смежных с текущим блоком. Опорный элемент в два раза превышает размер блока в горизонтальном и вертикальном направлениях с использованием доступных выборок из ранее восстановленных блоков. Когда режим углового прогнозирования используется для внутреннего прогнозирования, опорные выборки могут копироваться вдоль направления, указываемого посредством режима углового прогнозирования.CUs in internal mode are predicted from reconstructed adjacent samples in an identical series of consecutive macroblocks. A set of 35 intraprediction modes are available in HEVC, including DC, flat and 33 angular prediction modes. The internal prediction reference is reconstructed from the row and column adjacent to the current block. The reference element is twice the size of the block in the horizontal and vertical directions using available samples from previously reconstructed blocks. When the angle prediction mode is used for intra prediction, reference samples can be copied along the direction indicated by the angle prediction mode.

Применимый режим внутреннего прогнозирования сигналов яркости для текущего блока может кодироваться с использованием двух различных вариантов. Если применимый режим включается в конструируемый список из трех наиболее вероятных режимов (MPM), режим сигнализируется посредством индекса в MPM-списке. В противном случае, режим сигнализируется посредством преобразования в двоичную форму фиксированной длины индекса режима. Три наиболее вероятных режима извлекаются из режимов внутреннего прогнозирования верхнего и левого соседних блоков.The applicable intra-luminance signal prediction mode for the current block may be encoded using two different options. If an applicable mode is included in a constructed list of three most probable modes (MPMs), the mode is signaled by an index in the MPM list. Otherwise, the mode is signaled by binarizing a fixed length mode index. The three most probable modes are extracted from the internal prediction modes of the top and left neighboring blocks.

Для взаимной CU, соответствующий блок кодирования дополнительно сегментируется на один или более блоков прогнозирования. Взаимное прогнозирование выполняется на уровне PB, и соответствующая PU содержит информацию относительно того, как выполняется взаимное прогнозирование. Информация движения (например, вектор движения и индекс опорного кадра) может сигнализироваться в двух способах, а именно, в "режиме объединения" и в "усовершенствованном прогнозировании векторов движения (AMVP)".For a mutual CU, the corresponding encoding block is further segmented into one or more prediction blocks. Inter-prediction is performed at the PB level, and the corresponding PU contains information regarding how inter-prediction is performed. Motion information (eg, motion vector and reference frame index) may be signaled in two ways, namely, “fusion mode” and “advanced motion vector prediction (AMVP)”.

В режиме объединения, видеокодер или декодер собирает список возможных вариантов на основе уже кодированных блоков, и видеокодер сигнализирует индекс для одного из возможных вариантов в списке возможных вариантов. На стороне декодера, вектор движения (MV) и индекс опорного кадра восстанавливаются на основе сигнализируемого возможного варианта.In merge mode, the video encoder or decoder assembles a candidate list based on the blocks already encoded, and the video encoder signals an index for one of the candidates in the candidate list. At the decoder side, the motion vector (MV) and the reference frame index are reconstructed based on the signaled candidate.

В AMVP, видеокодер или декодер собирает списки возможных вариантов на основе векторов движения, определенных из уже кодированных блоков. Видеокодер затем сигнализирует индекс в списке возможных вариантов, чтобы идентифицировать предиктор вектора движения (MVP), и сигнализирует разность векторов движения (MVD). На стороне декодера, вектор движения (MV) восстанавливается в качестве MVP+MVD. Применимый индекс опорного кадра также явно кодируется в PU-синтаксисе для AMVP.In AMVP, a video encoder or decoder assembles candidate lists based on motion vectors determined from already encoded blocks. The video encoder then signals an index in the candidate list to identify a motion vector predictor (MVP), and signals a motion vector difference (MVD). At the decoder side, the motion vector (MV) is reconstructed as MVP+MVD. The applicable reference frame index is also explicitly encoded in the PU syntax for AMVP.

Остатки прогнозирования затем преобразуются (125) и квантуются (130), что включает в себя, по меньшей мере, один вариант осуществления для адаптации параметра квантования сигналов цветности, описанный ниже. Преобразования, в общем, основаны на разделимых преобразованиях. Например, DCT-преобразование сначала применяется в горизонтальном направлении, затем в вертикальном направлении. В последних кодеках, таких как JEM, преобразования, используемые в обоих направлениях (например, DCT в одном направлении, DST в другой), могут отличаться, что приводит к широкому спектру двумерных преобразований, тогда как в предыдущих кодеках, разнообразие двумерных преобразований для данного размера блока обычно ограничивается.The prediction residuals are then transformed (125) and quantized (130), which includes at least one embodiment for adapting a chrominance signal quantization parameter described below. Transformations are, in general, based on separable transformations. For example, the DCT transform is first applied in the horizontal direction, then in the vertical direction. In recent codecs such as JEM, the transforms used in both directions (e.g. DCT in one direction, DST in the other) can be different, resulting in a wide variety of 2D transforms, whereas in earlier codecs, a variety of 2D transforms for a given size block is usually limited.

Квантованные коэффициенты преобразования, а также векторы движения и другие синтаксические элементы энтропийно кодируются (145), чтобы выводить поток битов. Кодер также может пропускать преобразование и применять квантование непосредственно к непреобразованному остаточному сигналу на основе TU 4×4. Кодер также может обходить как преобразование, так и квантование, т.е. остаток кодируется непосредственно без применения процесса преобразования или квантования. При прямом PCM-кодировании, прогнозирование не применяется, и выборки единиц кодирования непосредственно кодируются в поток битов.The quantized transform coefficients, as well as motion vectors and other syntactic elements, are entropy encoded (145) to output the bit stream. The encoder can also skip the transform and apply quantization directly to the unconverted residual signal based on the 4x4 TU. The encoder can also bypass both conversion and quantization, i.e. the remainder is encoded directly without applying a conversion or quantization process. With direct PCM encoding, prediction is not applied and samples of coding units are directly encoded into the bitstream.

Кодер декодирует кодированный блок, чтобы предоставлять опорный элемент для дополнительных прогнозирований. Квантованные коэффициенты преобразования деквантуются (140) и обратно преобразуются (150), чтобы декодировать остатки прогнозирования. При комбинировании (155) декодированных остатков прогнозирования и прогнозированного блока, восстанавливается блок изображений. Внутриконтурные фильтры (165) применяются к восстановленному кадру, например, чтобы выполнять удаление блочности/фильтрацию на основе SAO (дискретизированного адаптивного смещения), с тем чтобы уменьшать артефакты кодирования. Фильтрованное изображение сохраняется в буфере опорных кадров (180).The encoder decodes the coded block to provide a reference element for additional predictions. The quantized transform coefficients are dequantized (140) and back-transformed (150) to decode the prediction residuals. By combining (155) the decoded prediction residuals and the predicted block, the image block is reconstructed. In-loop filters (165) are applied to the reconstructed frame, for example, to perform deblocking/SAO (sampled adaptive offset) filtering to reduce encoding artifacts. The filtered image is stored in the reference frame buffer (180).

Фиг. 2 иллюстрирует блок-схему примера видеодекодера 200, такого как HEVC-декодер. В примере декодера 200, поток битов декодируется посредством элементов декодера, как описано ниже. Видеодекодер 200, в общем, выполняет проход декодирования, обратный по отношению к проходу кодирования, как описано на фиг. 1, который выполняет декодирование видео в качестве части кодирования видеоданных. Фиг. 2 также может иллюстрировать декодер, в котором вносятся улучшения в HEVC-стандарт, или декодер с использованием технологий, аналогичных HEVC, такой как JEM-декодер.Fig. 2 illustrates a block diagram of an example video decoder 200, such as a HEVC decoder. In the example of decoder 200, the bit stream is decoded by decoder elements, as described below. Video decoder 200 generally performs a decoding pass inverse to the encoding pass as described in FIG. 1, which performs video decoding as part of video data encoding. Fig. 2 may also illustrate a decoder that makes improvements to the HEVC standard, or a decoder using technologies similar to HEVC, such as a JEM decoder.

В частности, ввод декодера включает в себя поток видеобитов, который может формироваться посредством видеокодера 100. Поток битов сначала энтропийно декодируется (230), чтобы получать коэффициенты преобразования, векторы движения, информацию сегментации кадров и другую кодированную информацию. Информация сегментации кадров указывает размер CTU и способ, которым CTU разбивается на CU и возможно на PU, если применимо. Декодер в силу этого может разделять (235) кадр на CTU, а каждую CTU - на CU, согласно информации сегментации декодированных кадров. Коэффициенты преобразования деквантуются (240), что включает в себя, по меньшей мере, один вариант осуществления для адаптации параметра квантования сигналов цветности, описанный ниже, и обратно преобразуются (250), чтобы декодировать остатки прогнозирования.Specifically, the decoder input includes a video bit stream that may be generated by video encoder 100. The bit stream is first entropy decoded (230) to obtain transform coefficients, motion vectors, frame segmentation information, and other encoded information. Frame segmentation information indicates the size of the CTU and the manner in which the CTU is partitioned into CUs and possibly into PUs, if applicable. The decoder can therefore divide (235) a frame into CTUs, and each CTU into CUs, according to the segmentation information of the decoded frames. The transform coefficients are dequantized (240), which includes at least one embodiment for adapting a chrominance signal quantization parameter described below, and dequantized (250) to decode the prediction residuals.

При комбинировании (255) декодированных остатков прогнозирования и прогнозированного блока, восстанавливается блок изображений. Прогнозированный блок может получаться (270) из внутреннего прогнозирования (260) или прогнозирования с компенсацией движения (т.е. взаимного прогнозирования) (275). Как описано выше, AMVP и технологии на основе режима объединения могут использоваться для того, чтобы извлекать векторы движения для компенсации движения, которая может использовать интерполяционные фильтры, чтобы вычислять интерполированные значения для субцелочисленных выборок опорного блока. Внутриконтурные фильтры (265) применяются к восстановленному изображению. Фильтрованное изображение сохраняется в буфере опорных кадров (280).By combining (255) the decoded prediction residuals and the predicted block, the image block is reconstructed. The predicted block may be obtained (270) from intra-prediction (260) or motion-compensated prediction (ie, inter-prediction) (275). As described above, AMVP and pooling mode-based technologies can be used to extract motion vectors for motion compensation, which can use interpolation filters to compute interpolated values for sub-integer reference block samples. In-loop filters (265) are applied to the reconstructed image. The filtered image is stored in the reference frame buffer (280).

Декодированный кадр дополнительно может проходить через обработку после декодирования (285), например, обратное преобразование цветов (например, преобразование из YCbCr 4:2:0 в RGB 4:4:4) или обратное повторное преобразование, выполняющее инверсию процесса повторного преобразования, выполняемого при обработке перед кодированием (101). Обработка после декодирования может использовать метаданные, извлекаемые при обработке перед кодированием и сигнализируемые в потоке битов.The decoded frame may further undergo post-decoding processing (285), such as inverse color conversion (eg, conversion from YCbCr 4:2:0 to RGB 4:4:4) or inverse reconversion, which performs the inversion of the reconversion process performed at processing before encoding (101). Post-decoding processing may use metadata extracted during pre-encoding processing and signaled in the bitstream.

Фиг. 3 иллюстрирует пример единицы дерева кодирования и дерева кодирования в сжатой области. В HEVC-стандарте сжатия видео, кадр разделяется на так называемые единицы дерева кодирования (CTU), размер которых типично составляет 64×64, 128×128 или 256×256 пикселов. Каждая CTU представляется посредством дерева кодирования в сжатой области. Оно представляет собой разделение на дерево квадрантов CTU, в котором каждый лист называется "единицей кодирования (CU)".Fig. 3 illustrates an example of a coding tree unit and a compressed region coding tree. In the HEVC video compression standard, a frame is divided into so-called coding tree units (CTUs), which are typically 64x64, 128x128, or 256x256 pixels in size. Each CTU is represented by an encoding tree in a compressed region. It represents a division into a quadtree of CTUs, in which each leaf is called a "coding unit (CU)".

Фиг. 4 иллюстрирует пример разделения CTU на единицы кодирования, единицы прогнозирования и единицы преобразования. Для каждой CU затем предоставляются некоторые параметры внутреннего или взаимного прогнозирования (информация прогнозирования). Для этого, она пространственно сегментируется на одну или более единиц прогнозирования (PU), причем каждой PU назначается некоторая информация прогнозирования. Режим внутреннего или взаимного кодирования назначается на уровне CU.Fig. 4 illustrates an example of dividing a CTU into coding units, prediction units, and transformation units. For each CU, some internal or inter-prediction parameters (prediction information) are then provided. To do this, it is spatially segmented into one or more prediction units (PUs), with each PU assigned some prediction information. The internal or intercoding mode is assigned at the CU level.

Новые появляющиеся инструментальные средства сжатия видео, включающие в себя представление в виде единиц дерева кодирования в сжатой области, предлагаются для того, чтобы представлять данные кадров более гибким способом. Преимущество этого более гибкого представления дерева кодирования состоит в том, что оно обеспечивает повышенную эффективность сжатия по сравнению с CU/PU/TU-компоновкой HEVC-стандарта.New emerging video compression tools that include a representation of encoding tree units in a compressed domain are proposed to represent frame data in a more flexible manner. The advantage of this more flexible coding tree representation is that it provides improved compression efficiency compared to the CU/PU/TU layout of the HEVC standard.

Фиг. 5 иллюстрирует пример CTU-представления в виде дерева квадрантов плюс двоичного дерева (QTBT). Инструментальное средство кодирования на основе дерева квадрантов плюс двоичного дерева (QTBT) обеспечивает такую повышенную гибкость. QTBT заключается в дереве кодирования, в котором единицы кодирования могут разбиваться в виде дерева квадрантов и в виде двоичного дерева. Разбиение единицы кодирования определяется на стороне кодера через процедуру оптимизации искажения в зависимости от скорости передачи, которая определяет QTBT-представление CTU с функцией минимальных затрат на искажение в зависимости от скорости передачи. В QTBT-технологии, CU имеет квадратную или прямоугольную форму. Размер единицы кодирования всегда имеет степень 2 и типично составляет от 4 до 128. Помимо этого множества прямоугольных форм для единицы кодирования, такое CTU-представление имеет следующие различные характеристики по сравнению с HEVC. QTBT-разложение CTU состоит из двух стадий: сначала CTU разбивается в виде дерева квадрантов, затем каждый лист дерева квадрантов может дополнительно разделяться в двоичном виде. Это проиллюстрировано в правой части чертежа, в которой сплошные линии представляют линии для фаз разложения на дерево квадрантов, и пунктирные линии представляют двоичное разложение, которое пространственно встраивается в листья дерева квадрантов. Во внутренних сериях последовательных макроблоков, структура сегментации на блоки сигналов яркости и сигналов цветности разделяется и определяется независимо. CU-сегментация на единицы прогнозирований или единицу преобразования более не используется. Другими словами, каждая единица кодирования систематически состоит из одной единицы прогнозирования (типа сегмента единиц прогнозирования 2Nx2N) и одной единицы преобразования (без разделения на дерево преобразования).Fig. 5 illustrates an example of a quadtree plus binary tree (QTBT) representation of a CTU. The quadtree plus binary tree (QTBT) coding tool provides this increased flexibility. QTBT consists of a coding tree in which coding units can be partitioned as a quadtree and as a binary tree. The coding unit partitioning is determined at the encoder side through a rate-based distortion optimization procedure that defines a QTBT representation of the CTU with a minimum rate-based distortion cost function. In QTBT technology, the CU has a square or rectangular shape. The coding unit size is always a power of 2 and typically ranges from 4 to 128. In addition to this variety of rectangular shapes for the coding unit, this CTU representation has the following different characteristics compared to HEVC. QTBT decomposition of a CTU consists of two stages: first, the CTU is decomposed into a quadtree, then each leaf of the quadtree can be further partitioned in binary form. This is illustrated on the right side of the drawing, in which the solid lines represent the lines for the phases of the quadtree decomposition, and the dotted lines represent the binary decomposition that is spatially embedded in the leaves of the quadtree. In the inner series of successive macroblocks, the segmentation structure into blocks of luma signals and chrominance signals is separated and determined independently. CU segmentation into prediction units or conversion units is no longer used. In other words, each coding unit systematically consists of one prediction unit (such as a 2Nx2N segment of prediction units) and one transformation unit (without partitioning into a transformation tree).

Фиг. 6 иллюстрирует примерный расширенный набор сегментации единиц кодирования. В режимах разбиения на асимметричное двоичное дерево (ABT), прямоугольная единица кодирования с размером (ширина и высота), которая должна разбиваться через один из режимов асимметричного двоичного разбиения, например, HOR_UP (вверх по горизонтали), должна приводить к 2 субъединицам кодирования с соответствующими прямоугольными размерами и Помимо этого, может использоваться так называемая сегментация на троичное дерево CU, приводящая к набору возможных сегментов, приведенных на фиг. 5. Троичное дерево состоит в разбиении CU на древовидную суб-CU с размером (1/4, 1/2, 1/4) относительно родительской CU в рассматриваемой ориентации (например: HOR_TRIPLE для режима горизонтального разбиения).Fig. 6 illustrates an example superset of coding unit segmentation. In asymmetric binary tree (ABT) partitioning modes, a rectangular encoding unit with size (width and height), which should be split through one of the asymmetric binary partitioning modes, e.g. HOR_UP (horizontally up), should result in 2 encoding subunits with corresponding rectangular dimensions And In addition, so-called ternary CU tree segmentation can be used, leading to the set of possible segments shown in FIG. 5. Ternary tree consists of splitting a CU into a tree-like sub-CU with size (1/4, 1/2, 1/4) relative to the parent CU in the orientation in question (eg: HOR_TRIPLE for horizontal splitting mode).

Значительное повышение эффективности кодирования обеспечивается с использованием одного или более вариантов осуществления новых топологий, описанных выше.Significant improvements in coding efficiency are achieved using one or more embodiments of the new topologies described above.

Фиг. 7 иллюстрирует пример режима внутреннего прогнозирования с двумя опорными слоями. Фактически, новые режимы внутреннего прогнозирования рассматриваются в улучшенном синтаксисе. Первый новый внутренний режим гибели называется "множественным опорным внутренним прогнозированием (MRIP)". Это инструментальное средство упрощает использование нескольких опорных слоев для внутреннего прогнозирования блока. Типично, 2 опорных слоя используются для внутреннего прогнозирования, при этом каждый опорный слой состоит из левого опорного массива и верхнего опорного массива. Каждый опорный слой конструируется посредством замены опорных выборок и затем предварительно фильтруется.Fig. 7 illustrates an example of an intra prediction mode with two reference layers. In fact, new internal prediction modes are covered in improved syntax. The first new internal doom mode is called "multiple reference internal prediction (MRIP)." This tool makes it easy to use multiple reference layers for internal block prediction. Typically, 2 reference layers are used for intraprediction, with each reference layer consisting of a left reference array and a top reference array. Each reference layer is constructed by replacing reference samples and then pre-filtered.

С использованием каждого опорного слоя, конструируется прогнозирование для блока, типично как выполняется в HEVC или в JEM. Конечное прогнозирование формируется в качестве среднего взвешенного прогнозирований, выполненных из двух опорных слоев. Прогнозированию из самого ближнего опорного слоя присваивается более высокий весовой коэффициент, чем прогнозированию из самого дальнего слоя. Типичные используемые весовые коэффициенты равны 3 и 1.Using each reference layer, a prediction is constructed for the block, typically as done in HEVC or JEM. The final prediction is formed as a weighted average of the predictions made from the two reference layers. Predictions from the closest reference layer are weighted higher than predictions from the farthest layer. Typical weighting factors used are 3 and 1.

В последней части процесса прогнозирования, несколько опорных слоев могут использоваться для того, чтобы сглаживать граничные выборки для определенных режимов прогнозирования, с использованием зависимого от режима процесса.In the last part of the prediction process, multiple reference layers can be used to smooth the boundary samples for certain prediction modes, using a mode-dependent process.

В примерном варианте осуществления, инструментальные средства сжатия видео включают в себя также адаптивный размер блока для дискретизированного адаптивного смещения (SAO). Это инструментальное средство представляет собой контурный фильтр, указываемый в HEVC. В HEVC, SAO-процесс классифицирует восстановленные выборки одного блока на несколько классов, и выборки, принадлежащие некоторым классам, корректируются со смещениями. SAO-параметры кодируются в расчете на блок либо могут быть унаследованы только из левого или верхнего соседних блоков.In an exemplary embodiment, the video compression tool also includes an adaptive block size for sampled adaptive offset (SAO). This tool is a loop filter specified in HEVC. In HEVC, the SAO process classifies the reconstructed samples of one block into several classes, and the samples belonging to some classes are adjusted with biases. SAO parameters are encoded per block or can be inherited only from the left or top adjacent blocks.

Дополнительные улучшения предлагаются посредством задания палитрового SAO-режима. SAO-палитра сохраняет идентичные SAO-параметры в расчете на блок, но блоки могут наследовать эти параметры из всех других блоков. Это обеспечивает большую гибкость для SAO посредством расширения диапазона возможных SAO-параметров для одного блока. SAO-палитра состоит из набора различных SAO-параметров. Для каждого блока, индекс кодируется, чтобы указывать то, какой SAO-параметр следует использовать.Additional improvements are offered by setting the SAO palette mode. An SAO palette retains identical SAO parameters per block, but blocks can inherit these parameters from all other blocks. This provides greater flexibility for SAO by expanding the range of possible SAO parameters for a single block. The SAO palette consists of a set of different SAO parameters. For each block, an index is encoded to indicate which SAO parameter should be used.

Фиг. 8 иллюстрирует примерный вариант осуществления режима компенсации для двунаправленной компенсации освещенности. Компенсация освещенности (IC) обеспечивает возможность коррекции блочных прогнозных выборок (SMC), полученных через компенсацию движения, посредством возможного рассмотрения пространственного или временного варьирования локальной освещенности.Fig. 8 illustrates an exemplary embodiment of a compensation mode for bidirectional illumination compensation. Illumination Compensation (IC) provides the ability to correct block prediction samples (SMC) obtained through motion compensation by possibly considering spatial or temporal variation in local illumination.

SIC=ai . SMC+bi S IC =a i . S MC +b i

В случае бипрогнозирования, IC-параметры оцениваются с использованием выборок двух опорных выборок CU, как проиллюстрировано на фиг. 8. Во-первых, IC-параметры (a, b) оцениваются между двумя опорными блоками, затем IC-параметры (ai, bi) i=0,1 между опорным и текущим блоками извлекаются следующим образом:In the case of bi-prediction, the IC parameters are estimated using samples from two reference CU samples, as illustrated in FIG. 8. Firstly, the IC parameters (a, b) are estimated between two reference blocks, then the IC parameters (ai, bi) i=0.1 between the reference and current blocks are extracted as follows:

где: Where:

Если CU-размер меньше или равен 8 по ширине или высоте, IC-параметры оцениваются с использованием однонаправленного процесса. Когда CU-размер превышает 8, выбор между использованием IC-параметров, извлекаемых из двунаправленного или однонаправленного процесса, осуществляется посредством выбора IC-параметров, которые минимизируют разность среднего IC-компенсированных опорных блоков. Двунаправленный оптический поток (BIO) активируется с помощью инструментального средства двунаправленной компенсации освещенности.If the CU dimension is less than or equal to 8 in width or height, the IC parameters are estimated using a unidirectional process. When the CU size is greater than 8, the choice between using IC parameters extracted from a bidirectional or unidirectional process is made by selecting IC parameters that minimize the difference in the average of the IC-compensated reference blocks. Bidirectional Optical Flow (BIO) is enabled using the Bidirectional Light Compensation tool.

Множество инструментальных средств, введенных выше, выбираются и используются посредством видеокодера 100 и должны получаться и использоваться посредством видеодекодера 200. С этой целью, информация, представляющая использование этих инструментальных средств, переносится в кодированном потоке битов, сформированном посредством видеокодера, и получается посредством видеодекодера 200 в форме высокоуровневой синтаксической информации. С этой целью, соответствующий синтаксис задается и описывается в дальнейшем в этом документе. Этот синтаксис, собирающий множество инструментальных средств, обеспечивает повышенную эффективность кодирования.The plurality of tools introduced above are selected and used by the video encoder 100 and must be obtained and used by the video decoder 200. To this end, information representing the use of these tools is carried in a coded bit stream generated by the video encoder and obtained by the video decoder 200 at form of high-level syntactic information. To this end, appropriate syntax is specified and described later in this document. This syntax, which brings together many tools, provides increased coding efficiency.

Эта синтаксическая структура использует синтаксическую HEVC-структуру в качестве основы и включает в себя некоторые дополнительные синтаксические элементы. Синтаксические элементы, сообщаемые в курсивном полужирном шрифте и выделенные серым цветом в следующих таблицах, соответствуют дополнительным синтаксическим элементам согласно примерному варианту осуществления. Следует отметить, что синтаксические элементы могут иметь формы или названия, отличающиеся от форм и названий, показанных в синтаксических таблицах, при одновременной обработке идентичных функций. Синтаксические элементы могут постоянно размещаться на различных уровнях, например, некоторые синтаксические элементы могут быть размещены в наборе параметров последовательности (SPS), и некоторые синтаксические элементы могут быть размещены в наборе параметров кадра (PPS).This syntax structure uses the HEVC syntax structure as a basis and includes some additional syntax elements. Syntactic elements reported in italic bold font and highlighted in gray in the following tables correspond to additional syntactic elements according to the exemplary embodiment. It should be noted that syntactic elements may have forms or names that differ from those shown in the syntax tables while simultaneously processing identical functions. Syntax elements may be permanently located at different levels, for example, some syntax elements may be located in a sequence parameter set (SPS), and some syntax elements may be located in a frame parameter set (PPS).

Нижеприведенная таблица 1 иллюстрирует набор параметров последовательности (SPS) и вводит новые синтаксические элементы, вставленные в этот набор параметров, согласно, по меньшей мере, одному примерному варианту осуществления, более точно: multi_type_tree_enabled_primary, log2_min_cu_size_minus2, log2_max_cu_size_minus4, log2_max_tu_size_minus2, sep_tree_mode_intra, multi_type_tree_enabled_secondary, sps_bdip_enabled_flag, sps_mrip_enabled_flag, use_erp_aqp_flag, use_high_perf_chroma_qp_table, abt_one_third_flag, sps_num_intra_mode_ratio. Table 1 below illustrates a sequence parameter set (SPS) and introduces new syntax elements inserted into this parameter set, according to at least one exemplary embodiment, more specifically: multi_type_tree_enabled_primary, log2_min_cu_size_minus2, log2_max_cu_size_minus4, log2_max_tu_size_minus2, sep_tree_mode_intra, multi_type _tree_enabled_secondary, sps_bdip_enabled_flag, sps_mrip_enabled_flag, use_erp_aqp_flag, use_high_perf_chroma_qp_table, abt_one_third_flag, sps_num_intra_mode_ratio.

pic_parameter_set_rbsp() {pic_parameter_set_rbsp() { ДескрипторDescriptor sps_video_parameter_set_id sps_video_parameter_set_id u(4)u(4) sps_max_sub_layers_minus1 sps_max_sub_layers_minus1 u(3)u(3) sps_temporal_id_nesting_flag sps_temporal_id_nesting_flag u(1)u(1) profile_tier_level(1, vps_max_sub_layers_minus1) profile_tier_level(1, vps_max_sub_layers_minus1) sps_seq_parameter_set_id sps_seq_parameter_set_id ue(v)ue(v) chroma_format_idc chroma_format_idc ue(v)ue(v) if(chroma_format_idc==3) { if(chroma_format_idc==3) { separate_colour_plane_flag separate_colour_plane_flag u(1)u(1) pic_width_in_luma_samples pic_width_in_luma_samples ue(v)ue(v) pic_height_in_luma_samples pic_height_in_luma_samples ue(v)ue(v) conformance_window_flag conformance_window_flag u(1)u(1) if(conformance_window_flag) { if(conformance_window_flag) { conf_win_left_offset conf_win_left_offset ue(v)ue(v) conf_win_right_offset conf_win_right_offset ue(v)ue(v) conf_win_top_offset conf_win_top_offset ue(v)ue(v) conf_win_bottom_offset conf_win_bottom_offset ue(v)ue(v) } } bit_depth_luma_minus8 bit_depth_luma_minus8 ue(v)ue(v) bit_depth_chroma_minus8 bit_depth_chroma_minus8 ue(v)ue(v) log2_max_pic_order_cnt_lsb_minus4 log2_max_pic_order_cnt_lsb_minus4 ue(v)ue(v) sps_sub_layer_ordering_info_present_flag sps_sub_layer_ordering_info_present_flag u(1)u(1) for (i=(sps_sub_layer_ordering_info_present_flag ? 0 : sps_max_sub_layers_minus1)
- i<=sps_max_sub_layers_minus1; i++){
for (i=(sps_sub_layer_ordering_info_present_flag ? 0 : sps_max_sub_layers_minus1)
- i<=sps_max_sub_layers_minus1; i++){
sps_max_dec_pic_buffering_minus1[i] sps_max_dec_pic_buffering_minus1[i] ue(v)ue(v) sps_max_num_reorder_pics[i] sps_max_num_reorder_pics[i] ue(v)ue(v) sps_max_latency_increase_plus1[i] sps_max_latency_increase_plus1[i] ue(v)ue(v) } } multi_type_tree_enabled_primary multi_type_tree_enabled_primary ue(v)ue(v) log2_min_cu_size_minus2 log2_min_cu_size_minus2 ue(v)ue(v) log2_max_cu_size_minus4 log2_max_cu_size_minus4 ue(v)ue(v) log2_max_tu_size_minus2 log2_max_tu_size_minus2 ue(v)ue(v) sep_tree_mode_intra sep_tree_mode_intra u(1)u(1) if(sep_tree_mode_intra) if(sep_tree_mode_intra) multi_type_tree_enabled_secondary multi_type_tree_enabled_secondary ue(v)ue(v) sample_adaptive_offset_enabled_flag sample_adaptive_offset_enabled_flag u(1)u(1) pcm_enabled_flag pcm_enabled_flag u(1)u(1) if(pcm_enabled_flag) { if(pcm_enabled_flag) { pcm_sample_bit_depth_luma_minus1 pcm_sample_bit_depth_luma_minus1 u(4)u(4) pcm_sample_bit_depth_chroma_minus1 pcm_sample_bit_depth_chroma_minus1 u(4)u(4) log2_min_pcm_luma_coding_block_size_minus3 log2_min_pcm_luma_coding_block_size_minus3 ue(v)ue(v) log2_diff_max_min_pcm_luma_coding_block_size log2_diff_max_min_pcm_luma_coding_block_size ue(v)ue(v) pcm_loop_filter_disabled_flag pcm_loop_filter_disabled_flag u(1)u(1) } } num_short_term_ref_pic_sets num_short_term_ref_pic_sets ue(v)ue(v) for (i=0; i<num_short_term_ref_pic_sets; i++) for (i=0; i<num_short_term_ref_pic_sets; i++) st_ref_pic_set(i) st_ref_pic_set(i) long_term_ref_pics_present_flag long_term_ref_pics_present_flag u(1)u(1) if(long_term_ref_pics_present_flag) { if(long_term_ref_pics_present_flag) { num_long_term_ref_pics_sps num_long_term_ref_pics_sps ue(v)ue(v) for (i=0; i<num_long_term_pics; i++) { for (i=0; i<num_long_term_pics; i++) { lt_ref_pic_poc_lsb_sps[i] lt_ref_pic_poc_lsb_sps [i] u(v)u(v) used_by_curr_pic_lt_sps_flag[i] used_by_curr_pic_lt_sps_flag[i] u(1)u(1) } } } } sps_temporal_mvp_enabled_flag sps_temporal_mvp_enabled_flag u(1)u(1) vui_parameters_present_flag vui_parameters_present_flag u(1)u(1) if(vui_parameters_present_flag) if(vui_parameters_present_flag) vui_parameters() vui_parameters() use_imv use_imv u(1)u(1) fruc_merge_mode fruc_merge_mode u(1)u(1) if(fruc_merge_mode) { if(fruc_merge_mode) { idx_num_template idx_num_template ue(v)ue(v) idx_num_template_ic idx_num_template_ic ue(v)ue(v) fruc_template_affine fruc_template_affine u(1)u(1) } } mode_bilateral_TM mode_bilateral_TM ue(v)ue(v) optical_flow_filtering optical_flow_filtering ue(v)ue(v) atmvp_flag atmvp_flag u(1)u(1) sps_lic_enabled_flag sps_lic_enabled_flag u(1)u(1) sps_bidir_ic_present_flag sps_bidir_ic_present_flag u(1)u(1) sps_use_intra_emt sps_use_intra_emt u(1)u(1) sps_use_inter_emt sps_use_inter_emt u(1)u(1) sps_nsst_enabled_flag sps_nsst_enabled_flag u(1)u(1) sps_cross_component_prediction_enabled_flag sps_cross_component_prediction_enabled_flag u(1)u(1) sps_intra_4tap_filter_enabled_flag sps_intra_4tap_filter_enabled_flag u(1)u(1) sps_intra_boundary_filter_enabled_flag sps_intra_boundary_filter_enabled_flag u(1)u(1) sps_obmc_flag sps_obmc_flag u(1)u(1) if(sps_obmc_flag) if(sps_obmc_flag) obmc_blk_size obmc_blk_size ue(v)ue(v) obmc_for_sub_block obmc_for_sub_block u(1)u(1) sps_affine_enabled_flag sps_affine_enabled_flag u(1)u(1) use_NL_Bil_flag use_NL_Bil_flag u(1)u(1) sps_bdip_enabled_flag sps_bdip_enabled_flag u(1)u(1) sps_mrip_enabled_flag sps_mrip_enabled_flag u(1)u(1) num_predicted_coef_signs num_predicted_coef_signs u(4)u(4) mc_frame_pad mc_frame_pad u(1)u(1) use_erp_aqp_flag use_erp_aqp_flag u(1)u(1) use_chroma_qp_table use_chroma_qp_table if(use_chroma_qp_table) if(use_chroma_qp_table) use_high_perf_chroma_qp_table use_high_perf_chroma_qp_table u(1)u(1) log2_intra131modes_min_area_minus6 log2_intra131modes_min_area_minus6 ue(v)ue(v) log2_intra65modes_min_area_minus4 log2_intra65modes_min_area_minus4 ue(v)ue(v) abt_one_third_flag abt_one_third_flag u(1)u(1) sps_num_intra_mode_ratio sps_num_intra_mode_ratio u(1)u(1) if(sps_range_extension_flag) if(sps_range_extension_flag) sps_range_extension() sps_range_extension() if(sps_multilayer_extension_flag) if(sps_multilayer_extension_flag) sps_multilayer_extension()/* указано в приложении F */ sps_multilayer_extension()/* specified in Appendix F */ if(sps_3d_extension_flag) if(sps_3d_extension_flag) sps_3d_extension()/* указано в приложении I */ sps_3d_extension()/* specified in Appendix I */ if(sps_extension_5bits) if(sps_extension_5bits) while(more_rbsp_data()) while(more_rbsp_data()) sps_extension_data_flag sps_extension_data_flag u(1)u(1) rbsp_trailing_bits() rbsp_trailing_bits() }}

Таблица 1. Модифицированный набор параметров последовательностиTable 1. Modified set of sequence parameters

Новые синтаксические элементы задаются следующим образом:New syntax elements are specified as follows:

- use_high_perf_chroma_qp_table: Этот синтаксический элемент указывает QP-таблицу сигналов цветности, используемую для того извлекать QP, используемый при декодировании компонентов сигнала цветности, ассоциированных с серией последовательных макроблоков, в качестве функции базового QP сигналов цветности, ассоциированного с компонентами сигнала цветности рассматриваемой серии последовательных макроблоков.- use_high_perf_chroma_qp_table: This syntax element specifies a chroma QP table used to extract the QP used in decoding the chroma components associated with a run of macroblocks as a function of the underlying chroma QP associated with the chroma components of the run of slices in question.

- multi_type_tree_enabled_primary: Этот синтаксический элемент указывает тип сегментации, разрешенной в кодированных сериях последовательных макроблоков. По меньшей мере, в одной реализации, этот синтаксический элемент сигнализируется на уровне последовательности (в SPS) и в силу этого применяется ко всем кодированным сериям последовательных макроблоков, которые используют этот SPS. Например, первое значение этого синтаксического элемента обеспечивает возможность сегментации на дерево квадрантов и двоичное дерево (QTBT) (NO-SPLIT, QT-SPLIT, HOR и VER по фиг. 5), второе значение обеспечивает возможность сегментации на QTBT плюс троичное дерево (TT) (NO-SPLIT, QT-SPLIT, HOR, VER, HOR_TRIPLE и VER_TRIPLE по фиг. 5), третье значение обеспечивает возможность сегментации на QTBT плюс асимметричное двоичное дерево (ABT) (NO-SPLIT, QT-SPLIT, HOR, VER, HOR-UP, HOR_DOWN, VER_LEFT и VER_RIGHT по фиг. 5), четвертое значение обеспечивает возможность сегментации на QTBT плюс TT плюс ABT (все случаи разбиения по фиг. 5).- multi_type_tree_enabled_primary: This syntax element specifies the type of segmentation enabled in the encoded series of successive macroblocks. In at least one implementation, this syntax element is signaled at the sequence level (in the SPS) and thereby applies to all coded runs of consecutive macroblocks that use this SPS. For example, the first value of this syntax element allows segmentation into quadtree and binary tree (QTBT) (NO-SPLIT, QT-SPLIT, HOR and VER in Fig. 5), the second value allows segmentation into QTBT plus ternary tree (TT) (NO-SPLIT, QT-SPLIT, HOR, VER, HOR_TRIPLE and VER_TRIPLE from Fig. 5), the third value allows segmentation into QTBT plus asymmetric binary tree (ABT) (NO-SPLIT, QT-SPLIT, HOR, VER, HOR -UP, HOR_DOWN, VER_LEFT and VER_RIGHT of Fig. 5), the fourth value allows segmentation into QTBT plus TT plus ABT (all partitioning cases of Fig. 5).

- sep_tree_mode_intra: Этот синтаксический элемент указывает то, используется или нет отдельное дерево кодирования для блоков сигналов яркости и сигналов цветности. Когда sep_tree_mode_intra равен 1, блоки сигналов яркости и сигналов цветности используют независимые деревья кодирования, и в силу этого сегментация блоков сигналов яркости и сигналов цветности является независимой. По меньшей мере, в одной реализации, этот синтаксический элемент сигнализируется на уровне последовательности (в SPS) и в силу этого применяется ко всем кодированным сериям последовательных макроблоков, которые используют этот SPS.- sep_tree_mode_intra: This syntax element indicates whether or not a separate coding tree is used for luma and chroma blocks. When sep_tree_mode_intra is equal to 1, the luma and chrominance blocks use independent encoding trees, and therefore the segmentation of the luma and chrominance blocks is independent. In at least one implementation, this syntax element is signaled at the sequence level (in the SPS) and thereby applies to all coded runs of consecutive macroblocks that use this SPS.

- multi_type_tree_enabled_secondary: Этот синтаксический элемент указывает то, что тип сегментации разрешается для блоков сигналов цветности в кодированных сериях последовательных макроблоков. Значения, которые может принимать этот синтаксический элемент, типично являются идентичными значениям синтаксического элемента multi_type_tree_enabled_primary. По меньшей мере, в одной реализации, этот синтаксический элемент сигнализируется на уровне последовательности (в SPS) и в силу этого применяется ко всем кодированным сериям последовательных макроблоков, которые используют этот SPS.- multi_type_tree_enabled_secondary: This syntax element indicates that the segmentation type is enabled for chroma blocks in a coded series of consecutive macroblocks. The values that this syntax element can take are typically identical to the values of the multi_type_tree_enabled_primary syntax element. In at least one implementation, this syntax element is signaled at the sequence level (in the SPS) and thereby applies to all coded runs of consecutive macroblocks that use this SPS.

- sps_bdip_enabled_flag: Этот синтаксический элемент указывает то, что двунаправленное внутреннее прогнозирование, описанное в JVET-J0022, разрешается в кодированных сериях последовательных макроблоков, содержащихся в рассматриваемой кодированной видеопоследовательности.- sps_bdip_enabled_flag: This syntax element indicates that bidirectional intra prediction, as described in JVET-J0022, is enabled in the coded runs of consecutive macroblocks contained in the coded video sequence in question.

- sps_mrip_enabled_flag: Этот синтаксический элемент указывает то, что инструментальное средство множественного опорного внутреннего прогнозирования используется при декодировании кодированных серий последовательных макроблоков, содержащихся в рассматриваемом кодированном потоке видеобитов.- sps_mrip_enabled_flag: This syntax element indicates that the multiple reference intra prediction tool is used when decoding the coded runs of consecutive macroblocks contained in the coded video bitstream in question.

- use_erp_aqp_flag: Этот синтаксический элемент указывает то, активируется или нет пространственно адаптивное квантование для VR360 ERP-контента, как описано в JVET-J0022, в кодированных сериях последовательных макроблоков.- use_erp_aqp_flag: This syntax element indicates whether or not spatially adaptive quantization is enabled for VR360 ERP content, as described in JVET-J0022, in a coded series of consecutive macroblocks.

- abt_one_third_flag: Этот синтаксический элемент указывает то, активируется или нет асимметричная сегментация на два сегмента с горизонтальной или вертикальной размерностью, составляющей 1/3 и 2/3 либо 2/3 и 1/3, соответственно, от горизонтальной или вертикальной размерности начальной CU, в кодированных сериях последовательных макроблоков.- abt_one_third_flag: This syntax element indicates whether or not asymmetric segmentation into two segments with a horizontal or vertical dimension of 1/3 and 2/3 or 2/3 and 1/3, respectively, of the horizontal or vertical dimension of the initial CU is activated, in encoded series of successive macroblocks.

- sps_num_intra_mode_ratio: Этот синтаксический элемент указывает то, как извлекать число внутреннего прогнозирования, используемого для размеров блоков, равных кратному 3 по ширине или высоте.- sps_num_intra_mode_ratio: This syntax element specifies how to extract the internal prediction number used for block sizes equal to a multiple of 3 in width or height.

Помимо этого, следующие три синтаксических элемента используются для того, чтобы управлять размером единиц кодирования (CU) и единиц преобразования (TU). По меньшей мере, в одной реализации, эти синтаксические элементы сигнализируются на уровне последовательности (в SPS) и в силу этого применяются ко всем кодированным сериям последовательных макроблоков, которые используют этот SPS.In addition, the following three syntax elements are used to control the size of coding units (CU) and transformation units (TU). In at least one implementation, these syntax elements are signaled at the sequence level (in the SPS) and thereby apply to all coded runs of consecutive macroblocks that use that SPS.

- log2_min_cu_size_minus2 указывает минимальный CU-размер.- log2_min_cu_size_minus2 indicates the minimum CU size.

- log2_max_cu_size_minus4 указывает максимальный CU-размер.- log2_max_cu_size_minus4 indicates the maximum CU size.

- log2_max_tu_size_minus2 указывает максимальный TU-размер.- log2_max_tu_size_minus2 indicates the maximum TU size.

В варианте осуществления, новые синтаксические элементы, введенные выше, вводятся не в наборе параметров последовательности, а в наборе параметров кадра (PPS).In an embodiment, the new syntax elements introduced above are not introduced in a sequence parameter set, but in a frame parameter set (PPS).

Нижеприведенная таблица 2 иллюстрирует набор параметров последовательности (SPS) и вводит новые синтаксические элементы, вставленные в этот набор параметров, согласно, по меньшей мере, одному примерному варианту осуществления, более точно:Table 2 below illustrates a sequence parameter set (SPS) and introduces new syntax elements inserted into this parameter set, according to at least one exemplary embodiment, more specifically:

- slice_sao_size_id: Этот синтаксический элемент указывает размер блоков, для которых SAO применяется для кодированной серии последовательных макроблоков.- slice_sao_size_id: This syntax element specifies the size of blocks for which SAO is applied for a coded series of consecutive macroblocks.

- slice_bidir_ic_enable_flag: указывает то, активируется или нет двунаправленная компенсация освещенности для кодированной серии последовательных макроблоков.- slice_bidir_ic_enable_flag: Indicates whether or not bidirectional light compensation is enabled for a coded series of consecutive macroblocks.

slice_segment_header() {slice_segment_header() { ДескрипторDescriptor first_slice_segment_in_pic_flag first_slice_segment_in_pic_flag u(1)u(1) if(nal_unit_type>=BLA_W_LP && nal_unit_type<=RSV_IRAP_VCL23) if(nal_unit_type>=BLA_W_LP && nal_unit_type<=RSV_IRAP_VCL23) no_output_of_prior_pics_flag no_output_of_prior_pics_flag u(1)u(1) slice_pic_parameter_set_id slice_pic_parameter_set_id ue(v)ue(v) if(!first_slice_segment_in_pic_flag){ if(!first_slice_segment_in_pic_flag){ if(dependent_slice_segments_enabled_flag) if(dependent_slice_segments_enabled_flag) dependent_slice_segment_flag dependent_slice_segment_flag u(1)u(1) slice_segment_address slice_segment_address u(v)u(v) } } if(!dependent_slice_segment_flag){ if(!dependent_slice_segment_flag){ for (i=0; i<num_extra_slice_header_bits; i++) for (i=0; i<num_extra_slice_header_bits; i++) slice_reserved_flag[i]slice_reserved_flag[i] u(1)u(1) slice_type slice_type ue(v)ue(v) if(output_flag_present_flag) if(output_flag_present_flag) pic_output_flag pic_output_flag u(1)u(1) if(separate_colour_plane_flag==1) if(separate_colour_plane_flag==1) colour_plane_id color_plane_id u(2)u(2) if(nal_unit_type !=IDR_W_RADL && nal_unit_type !=IDR_N_LP) { if(nal_unit_type !=IDR_W_RADL && nal_unit_type !=IDR_N_LP) { slice_pic_order_cnt_lsb slice_pic_order_cnt_lsb u(v)u(v) short_term_ref_pic_set_sps_flag short_term_ref_pic_set_sps_flag u(1)u(1) if(!short_term_ref_pic_set_sps_flag) if(!short_term_ref_pic_set_sps_flag) st_ref_pic_set(num_short_term_ref_pic_sets) st_ref_pic_set(num_short_term_ref_pic_sets) else if(num_short_term_ref_pic_sets>1) else if(num_short_term_ref_pic_sets>1) short_term_ref_pic_set_idx short_term_ref_pic_set_idx u(v)u(v) if(long_term_ref_pics_present_flag) { if(long_term_ref_pics_present_flag) { if(num_long_term_ref_pics_sps>0) if(num_long_term_ref_pics_sps>0) num_long_term_sps num_long_term_sps ue(v)ue(v) num_long_term_pics num_long_term_pics ue(v)ue(v) for(i=0; i<num_long_term_sps+num_long_term_pics; i++) { for(i=0; i<num_long_term_sps+num_long_term_pics; i++) { if(i<num_long_term_sps) { if(i<num_long_term_sps) { if(num_long_term_ref_pics_sps>1) if(num_long_term_ref_pics_sps>1) lt_idx_sps[i] lt_idx_sps[i] u(v)u(v) } else { } else { poc_lsb_lt[i] poc_lsb_lt[i] u(v)u(v) used_by_curr_pic_lt_flag[i] used_by_curr_pic_lt_flag[i] u(1)u(1) } } delta_poc_msb_present_flag[i] delta_poc_msb_present_flag[i] u(1)u(1) if(delta_poc_msb_present_flag[i]) if(delta_poc_msb_present_flag[i]) delta_poc_msb_cycle_lt[i] delta_poc_msb_cycle_lt[i] ue(v)ue(v) } } } } if(sps_temporal_mvp_enabled_flag) if(sps_temporal_mvp_enabled_flag) slice_temporal_mvp_enabled_flag slice_temporal_mvp_enabled_flag u(1)u(1) } } if(sample_adaptive_offset_enabled_flag) { if(sample_adaptive_offset_enabled_flag) { slice_sao_luma_flag slice_sao_luma_flag u(1)u(1) if(ChromaArrayType != 0) if(ChromaArrayType != 0) slice_sao_chroma_flag slice_sao_chroma_flag u(1)u(1) } } if(slice_sao_luma_flag || slice_sao_chroma_flag) { if(slice_sao_luma_flag || slice_sao_chroma_flag) { slice_sao_size_id slice_sao_size_id u(3)u(3) if(slice_type==P || slice_type==B) { if(slice_type==P || slice_type==B) { num_ref_idx_active_override_flag num_ref_idx_active_override_flag u(1)u(1) if(num_ref_idx_active_override_flag) { if(num_ref_idx_active_override_flag) { num_ref_idx_l0_active_minus1 num_ref_idx_l0_active_minus1 ue(v)ue(v) if(slice_type==B) if(slice_type==B) num_ref_idx_l1_active_minus1 num_ref_idx_l1_active_minus1 ue(v)ue(v) } } if(lists_modification_present_flag && NumPicTotalCurr>1) if(lists_modification_present_flag && NumPicTotalCurr>1) ref_pic_lists_modification() ref_pic_lists_modification() if(slice_type==B) if(slice_type==B) mvd_l1_zero_flag mvd_l1_zero_flag u(1)u(1) if(cabac_init_present_flag) if(cabac_init_present_flag) cabac_init_flag cabac_init_flag u(1)u(1) if(slice_temporal_mvp_enabled_flag) { if(slice_temporal_mvp_enabled_flag) { if(slice_type==B) if(slice_type==B) collocated_from_l0_flag collocated_from_l0_flag u(1)u(1) if((collocated_from_l0_flag && num_ref_idx_l0_active_minus1>0) | |
(! collocated_from_l0_flag && num_ref_idx_l1_active_minus1>0))
if((collocated_from_l0_flag &&num_ref_idx_l0_active_minus1>0) | |
(! collocated_from_l0_flag &&num_ref_idx_l1_active_minus1>0))
collocated_ref_idx collocated_ref_idx ue(v)ue(v) } } if((weighted_pred_flag && slice_type==P) | |
(weighted_bipred_flag && slice_type==B))
if((weighted_pred_flag && slice_type==P) | |
(weighted_bipred_flag && slice_type==B))
pred_weight_table() pred_weight_table() if(sps_ic_present_flag && slice_type !=I) { if(sps_ic_present_flag && slice_type !=I) { slice_ic_enable_flag slice_ic_enable_flag u(1)u(1) if(sps_bidir_ic_present_flag && slice_ic_enable_flag) if(sps_bidir_ic_present_flag && slice_ic_enable_flag) slice_bidir_ic_enable_flag slice_bidir_ic_enable_flag u(1)u(1) max_search_depth_region_tree max_search_depth_region_tree ue(v)ue(v) for (i=0; i<max_search_depth_region_tree; i++) for (i=0; i<max_search_depth_region_tree; i++) max_search_depth_prediction_tree[i] max_search_depth_prediction_tree [i] ue(v)ue(v) if(slice_type !=I) if(slice_type !=I) for (i=0; i<max_search_depth_region_tree; i++) for (i=0; i<max_search_depth_region_tree; i++) max_search_depth_prediction_tree_chroma[i] max_search_depth_prediction_tree_chroma [i] if(slice_type !=I) if(slice_type !=I) max_num_merge_cand max_num_merge_cand ue(v)ue(v) slice_qp_delta slice_qp_delta se(v)se(v) if(pps_slice_chroma_qp_offsets_present_flag) { if(pps_slice_chroma_qp_offsets_present_flag) { slice_cb_qp_offset slice_cb_qp_offset se(v)se(v) slice_cr_qp_offset slice_cr_qp_offset se(v)se(v) } } if(chroma_qp_offset_list_enabled_flag) if(chroma_qp_offset_list_enabled_flag) cu_chroma_qp_offset_enabled_flag cu_chroma_qp_offset_enabled_flag u(1)u(1) if(deblocking_filter_override_enabled_flag) if(deblocking_filter_override_enabled_flag) deblocking_filter_override_flag deblocking_filter_override_flag u(1)u(1) if(deblocking_filter_override_flag) { if(deblocking_filter_override_flag) { slice_deblocking_filter_disabled_flag slice_deblocking_filter_disabled_flag u(1)u(1) if(!slice_deblocking_filter_disabled_flag) { if(!slice_deblocking_filter_disabled_flag) { slice_beta_offset_div2 slice_beta_offset_div2 se(v)se(v) slice_tc_offset_div2 slice_tc_offset_div2 se(v)se(v) } } } } if(pps_loop_filter_across_slices_enabled_flag &&
(slice_sao_luma_flag || slice_sao_chroma_flag | |
! slice_deblocking_filter_disabled_flag))
if(pps_loop_filter_across_slices_enabled_flag &&
(slice_sao_luma_flag || slice_sao_chroma_flag | |
! slice_deblocking_filter_disabled_flag))
slice_loop_filter_across_slices_enabled_flag slice_loop_filter_across_slices_enabled_flag u(1)u(1) } } if(tiles_enabled_flag || entropy_coding_sync_enabled_flag) { if(tiles_enabled_flag || entropy_coding_sync_enabled_flag) { num_entry_point_offsets num_entry_point_offsets ue(v)ue(v) if(num_entry_point_offsets>0) { if(num_entry_point_offsets>0) { offset_len_minus1 offset_len_minus1 ue(v)ue(v) for (i=0; i<num_entry_point_offsets; i++) for (i=0; i<num_entry_point_offsets; i++) entry_point_offset_minus1[i]entry_point_offset_minus1[i] u(v)u(v) } } } } if(pps_clip_adaptive_enable_flag) if(pps_clip_adaptive_enable_flag) clip_adaptive_flag clip_adaptive_flag u(1)u(1) if(clip_adaptive_flag) { if(clip_adaptive_flag) { clip_adaptive_y_min clip_adaptive_y_min ue(v)ue(v) clip_adaptive_y_max clip_adaptive_y_max ue(v)ue(v) clip_adaptive_flag_chroma clip_adaptive_flag_chroma u(1)u(1) if(clip_adaptive_flag_chroma) { if(clip_adaptive_flag_chroma) { clip_adaptive_c0_min clip_adaptive_c0_min ue(v)ue(v) clip_adaptive_c0_max clip_adaptive_c0_max ue(v)ue(v) clip_adaptive_c1_min clip_adaptive_c1_min ue(v)ue(v) clip_adaptive_c1_max clip_adaptive_c1_max ue(v)ue(v) } } } } } } if(sps_affine_enabled_flag && slice_type !=I) { if(sps_affine_enabled_flag && slice_type !=I) { affine_control_flag[0] affine_control_flag[0 ] u(1)u(1) affine_control_flag[1] affine_control_flag[1 ] u(1)u(1) } } if(slice_segment_header_extension_present_flag) {if(slice_segment_header_extension_present_flag) { slice_segment_header_extension_length slice_segment_header_extension_length ue(v)ue(v) for (i=0; i<slice_segment_header_extension_length; i++) for (i=0; i<slice_segment_header_extension_length; i++) slice_segment_header_extension_data_byte[i]slice_segment_header_extension_data_byte[i] u(8)u(8) } } byte_alignment() byte_alignment() }}

Таблица 2. Заголовок серии последовательных макроблоковTable 2. Header of a series of consecutive macroblocks

Нижеприведенные таблицы 3, 4, 5, 6 иллюстрируют синтаксис дерева кодирования, модифицированный, чтобы поддерживать дополнительные режимы сегментации согласно, по меньшей мере, одному примерному варианту осуществления. В частности, синтаксис для обеспечения возможности асимметричной сегментации указывается в coding_binary_tree(). Новые синтаксические элементы вставляются в синтаксис дерева кодирования, более точно:Tables 3, 4, 5, 6 below illustrate coding tree syntax modified to support additional segmentation modes according to at least one exemplary embodiment. In particular, the syntax to enable asymmetric segmentation is specified in coding_binary_tree(). New syntax elements are inserted into the coding tree syntax, more precisely:

- asymmetricSplitFlag, который указывает то, разрешается или нет асимметричное двоичное разбиение для текущей CU, и- asymmetricSplitFlag, which indicates whether asymmetric binary splitting is enabled or not for the current CU, and

- asymmetric_type, который указывает тип асимметричного двоичного разбиения. Он может принимать два значения, чтобы обеспечивать возможность горизонтального разбиения вверх или вниз либо вертикального разбиения влево или вправо.- asymmetric_type, which specifies the type of asymmetric binary partition. It can take two values to allow horizontal splitting up or down, or vertical splitting left or right.

Помимо этого, параметр btSplitMode интерпретируется по-другому.Additionally, the btSplitMode parameter is interpreted differently.

coding_tree_unit() {coding_tree_unit() { ДескрипторDescriptor xCtb=(% CtbAddrInRs PicWidthInCtbsY)<<CtbLog2SizeY xCtb=(% CtbAddrInRs PicWidthInCtbsY)<<CtbLog2SizeY yCtb=(CtbAddrInRs/PicWidthInCtbsY)<<CtbLog2SizeY yCtb=(CtbAddrInRs/PicWidthInCtbsY)<<CtbLog2SizeY if(slice_sao_luma_flag || slice_sao_chroma_flag) if(slice_sao_luma_flag || slice_sao_chroma_flag) if(slice_type==I) { if(slice_type==I) { coding_tree(xCtb, yCtb, CtbSizeX, CtbSizeY, LUMA_TREE, 0, 0) coding_tree(xCtb, yCtb, CtbSizeX, CtbSizeY, LUMA_TREE, 0, 0) coding_tree(xCtb, yCtb, CtbSizeX, CtbSizeY, CHROMA_TREE, 0, 0) coding_tree(xCtb, yCtb, CtbSizeX, CtbSizeY, CHROMA_TREE, 0, 0) } else { } else { coding_tree(xCtb, yCtb, CtbSizeX, CtbSizeY, LUMA_CHROMA_TREE, 0, 0) coding_tree(xCtb, yCtb, CtbSizeX, CtbSizeY, LUMA_CHROMA_TREE, 0, 0) } } }}

Таблица 3. coding_tree_unitTable 3. coding_tree_unit

coding_tree(x0, y0, log2CbSize, cqtDepth){coding_tree(x0, y0, log2CbSize, cqtDepth){ ДескрипторDescriptor if(x0+(1<<log2CbSize)<=pic_width_in_luma_samples &&
- y0+(1<<log2CbSize)<=pic_height_in_luma_samples &&
log2CbSize==MinCbLog2SizeY)
if(x0+(1<<log2CbSize)<=pic_width_in_luma_samples &&
- y0+(1<<log2CbSize)<=pic_height_in_luma_samples &&
log2CbSize==MinCbLog2SizeY)
split_cu_flag[x0][y0]split_cu_flag[x0][y0] ae(v)ae(v) if(split_cu_flag[x0][y0]) { if(split_cu_flag[x0][y0]) { x1=x0+(1<<(log2CbSize-1)) x1=x0+(1<<(log2CbSize-1)) y1=y0+(1<<(log2CbSize-1)) y1=y0+(1<<(log2CbSize-1)) coding_tree(x0, y0, log2CbSize-1, cqtDepth+1) coding_tree(x0, y0, log2CbSize-1, cqtDepth+1) if(x1<pic_width_in_luma_samples) if(x1<pic_width_in_luma_samples) coding_tree(x1, y0, log2CbSize-1, cqtDepth+1) coding_tree(x1, y0, log2CbSize-1, cqtDepth+1) if(y1<pic_height_in_luma_samples) if(y1<pic_height_in_luma_samples) coding_tree(x0, y1, log2CbSize-1, cqtDepth+1) coding_tree(x0, y1, log2CbSize-1, cqtDepth+1) if(x1<pic_width_in_luma_samples && y1<pic_height_in_luma_samples) if(x1<pic_width_in_luma_samples && y1<pic_height_in_luma_samples) coding_tree(x1, y1, log2CbSize-1, cqtDepth+1) coding_tree(x1, y1, log2CbSize-1, cqtDepth+1) } else } else coding_binary_tree(x0, y0, 1<<log2CbSize, 1<<log2CbSize, cqtDepth) coding_binary_tree(x0, y0, 1<<log2CbSize, 1<<log2CbSize, cqtDepth) }}

Таблица 4. coding_treeTable 4. coding_tree

coding_binary_tree(x0, y0, width, height, cqtDepth) {coding_binary_tree(x0, y0, width, height, cqtDepth) { ДескрипторDescriptor if(btSplitAllowed(x0,y0,width, height){ if(btSplitAllowed(x0,y0,width, height){ bt_split_mode(x0,y0,width, height,cqtDepth) bt_split_mode(x0,y0,width, height,cqtDepth) } } if(btSplitFlag) { if(btSplitFlag) { if(btSplitMode==HOR) { if(btSplitMode==HOR) { x1=x0 x1=x0 y1=y0+(height>>1) y1=y0+(height>>1) sub_width_1=sub_width_0=width; sub_width_1=sub_width_0=width; sub_height_1=sub_height_0=(height>>1) sub_height_1=sub_height_0=(height>>1) } } else if(btSplitMode==VER) { else if(btSplitMode==VER) { x1=x0+(width>>1) x1=x0+(width>>1) y1=y0 y1=y0 sub_width_1=sub_width_0=(width>>1) sub_width_1=sub_width_0=(width>>1) sub_height_1=sub_height_0=height sub_height_1=sub_height_0=height } } else if(btSplitMode==HOR_UP) { else if(btSplitMode==HOR_UP) { x1=x0 x1=x0 y1=y0+(height>>2) y1=y0+(height>>2) sub_width_1=sub_width_0=width sub_width_1=sub_width_0=width sub_height_0=(height>>2) sub_height_0=(height>>2) sub_height_1=((height *3)>>2) sub_height_1=((height *3)>>2) } } else if(btSplitMode==HOR_DOWN) { else if(btSplitMode==HOR_DOWN) { x1=x0 x1=x0 y1=y0+((height*3)>>2) y1=y0+((height*3)>>2) sub_width_1=sub_width_0=width sub_width_1=sub_width_0=width sub_height_0=((height *3)>>2) sub_height_0=((height *3)>>2) sub_height_1=(height>>2) sub_height_1=(height>>2) } } else if(btSplitMode==VER_LEFT) { else if(btSplitMode==VER_LEFT) { x1=x0+(width>>2) x1=x0+(width>>2) y1=y0 y1=y0 sub_width_0=width>>2 sub_width_0=width>>2 sub_width_1=(width *3)>>2 sub_width_1=(width *3)>>2 sub_height_1=sub_height_0=height sub_height_1=sub_height_0=height } } else if(btSplitMode==VER_RIGHT) { else if(btSplitMode==VER_RIGHT) { x1=x0+(width*3)>>2 x1=x0+(width*3)>>2 y1=y0 y1=y0 sub_width_0=(width*3)>>2 sub_width_0=(width*3)>>2 sub_width_1=width>>2 sub_width_1=width>>2 sub_height_1=sub_height_0=height sub_height_1=sub_height_0=height } } coding_binary_tree(x0, y0, sub_width, sub_height, cqtDepth) coding_binary_tree(x0, y0, sub_width, sub_height, cqtDepth) if(x1<pic_width_in_luma_samples && y1<pic_height_in_luma_samples) if(x1<pic_width_in_luma_samples && y1<pic_height_in_luma_samples) coding_binary_tree(x1, y1, sub_width, sub_height, cqtDepth) coding_binary_tree(x1, y1, sub_width, sub_height, cqtDepth) } } } else } else coding_unit(x0, y0, width, height) coding_unit(x0, y0, width, height) }}

Таблица 5. coding_binary_treeTable 5. coding_binary_tree

bt_split_mode(x0,y0,width, height,cqtDepth){bt_split_mode(x0,y0,width, height,cqtDepth){ ДескрипторDescriptor if(btSplitAllowed(x0,y0,width, height){ if(btSplitAllowed(x0,y0,width, height){ btSplitFlag[x0][y0][cbSizeX][cbSizeY]btSplitFlag[x0][y0][cbSizeX][cbSizeY] ae(v)ae(v) } } if(btSplitFlag[x0][y0][cbSizeX][cbSizeY]) { if(btSplitFlag[x0][y0][cbSizeX][cbSizeY]) { if(horizontalSplitAllowed && verticalSplitAllowed){ if(horizontalSplitAllowed && verticalSplitAllowed){ btSplitOrientation[x0][y0][cbSizeX][cbSizeY] btSplitOrientation[x0][y0][cbSizeX][cbSizeY ] ae(v)ae(v) } } if(btSplitOrientation==HOR && horizontal_asymmetric_allowed || if(btSplitOrientation==HOR && horizontal_asymmetric_allowed || btSplitOrientation==VER && vertical_asymmetric_allowed){ btSplitOrientation==VER && vertical_asymmetric_allowed){ asymmetricSplitFlag[x0][y0][cbSizeX][cbSizeYasymmetricSplitFlag[x0][y0][cbSizeX][cbSizeY ]] ae(v)ae(v) if(asymmetricSplitFlag==true){ if(asymmetricSplitFlag==true) { asymmetric_type[x0][y0][cbSizeX][cbSizeYasymmetric_type[x0][y0][cbSizeX][cbSizeY ]] ae(v)ae(v) } } } } } } } }

Таблица 6. bt_split_modeTable 6. bt_split_mode

Фиг. 9 иллюстрирует интерпретацию bt-split-flag согласно, по меньшей мере, одному примерному варианту осуществления. Два синтаксических элемента asymmetricSplitFlag и asymmetric_type используются для того, чтобы указывать значение параметра btSplitMode; btSplitMode указывает режим двоичного разбиения, который применяется к текущей CU; btSplitMode извлекается отлично от предшествующего уровня техники. В JEM, он может принимает значения HOR, VER. В улучшенном синтаксисе, помимо этого, он может принимать значения HOR_UP, HOR_DOWN, VER_LEFT, VER_RIGHT, согласно сегментации, как проиллюстрировано на фиг. 6.Fig. 9 illustrates the interpretation of bt-split-flag according to at least one exemplary embodiment. The two syntax elements asymmetricSplitFlag and asymmetric_type are used to specify the value of the btSplitMode parameter; btSplitMode specifies the binary split mode that is applied to the current CU; btSplitMode is extracted differently from the prior art. In JEM, it can accept values HOR, VER. In the improved syntax, in addition, it can take the values HOR_UP, HOR_DOWN, VER_LEFT, VER_RIGHT, according to the segmentation, as illustrated in FIG. 6.

Нижеприведенные таблицы 7, 8, 9 и 10 иллюстрируют синтаксические элементы единицы кодирования и вводят новый синтаксический элемент для режима двунаправленного внутреннего прогнозирования.Tables 7, 8, 9 and 10 below illustrate the syntax elements of a coding unit and introduce a new syntax element for the bidirectional intra prediction mode.

coding_unit (x0, y0, cuWidth, cuHeight, treeMode){coding_unit (x0, y0, cuWidth, cuHeight, treeMode){ ДескрипторDescriptor if(transquant_bypass_enabled_flag) if(transquant_bypass_enabled_flag) cu_transquant_bypass_flag cu_transquant_bypass_flag ae(v)ae(v) if(slice_type !=I) if(slice_type !=I) cu_skip_flag[x0][y0]cu_skip_flag[x0][y0] ae(v)ae(v) if(cu_skip_flag[x0][y0]) if(cu_skip_flag[x0][y0]) cu_data_merge(x0, y0, cuWidth, cuHeight, treeMode) cu_data_merge(x0, y0, cuWidth, cuHeight, treeMode) else { else { if(slice_type !=I) if(slice_type !=I) pred_mode_flag pred_mode_flag ae(v)ae(v) if(CuPredMode[x0][y0]==MODE_INTRA) if(CuPredMode[x0][y0]==MODE_INTRA) cu_data_intra(x0, y0, cuWidth, cuHeight, treeMode) cu_data_intra(x0, y0, cuWidth, cuHeight, treeMode) else { else { merge_flag[x0][y0]merge_flag[x0][y0] ae(v)ae(v) if(merge_flag[x0][y0]) if(merge_flag[x0][y0]) cu_data_merge(x0, y0, cuWidth, cuHeight, treeMode) cu_data_merge(x0, y0, cuWidth, cuHeight, treeMode) else else cu_data_inter(x0, y0, cuWidth, cuHeight, treeMode) cu_data_inter(x0, y0, cuWidth, cuHeight, treeMode) if(cuPredMode[x0][y0] !=MODE_INTRA && !(merge_flag[x0][y0]) if(cuPredMode[x0][y0] !=MODE_INTRA && !(merge_flag[x0][y0]) rqt_root_cbf rqt_root_cbf ae(v)ae(v) if(rqt_root_cbf) if(rqt_root_cbf) cu_residual_data(x0, y0, cuWidth, cuHeight, treeMode) cu_residual_data(x0, y0, cuWidth, cuHeight, treeMode) } } } } } }

Таблица 7. coding_unitTable 7. coding_unit

cu_data_merge(x0, y0, cuWidth, cuHeight, treeMode){cu_data_merge(x0, y0, cuWidth, cuHeight, treeMode){ ДескрипторDescriptor if(fruc_merge_enabled_flag) if(fruc_merge_enabled_flag) fruc_merge_mode[x0][y0] fruc_merge_mode[x0][y0] ae(v)ae(v) if(fruc_merge_mode[x0][y0]) if(fruc_merge_mode[x0][y0]) if(lic_enabled_flag && fruc_merge_mode[x0][y0]==1) if(lic_enabled_flag && fruc_merge_mode[x0][y0]==1) lic_flag[x0][y0] lic_flag[x0][y0] ae(v)ae(v) if(fruc_merge_mode[x0][y0]==1 && MaxNumMergeCand>1) if(fruc_merge_mode[x0][y0]==1 && MaxNumMergeCand>1) merge_idx[x0][y0]merge_idx[x0][y0] ae(v)ae(v) if(lic_enabled_flag) if(lic_enabled_flag) lic_flag[x0][y0] lic_flag[x0][y0] ae(v)ae(v) else else if(MaxNumMergeCand>1) if(MaxNumMergeCand>1) merge_idx[x0][y0]merge_idx[x0][y0] }}

Таблица 8. cu_data_mergeTable 8. cu_data_merge

cu_data_intra(x0, y0, cuWidth, cuHeight, treeMode){cu_data_intra(x0, y0, cuWidth, cuHeight, treeMode){ ДескрипторDescriptor if(treeMode and LUMA_TREE) { if(treeMode and LUMA_TREE) { prev_intra_luma_pred_flag[x0][y0]prev_intra_luma_pred_flag[x0][y0] ae(v)ae(v) if(prev_intra_luma_pred_flag[x0][y0]) { if(prev_intra_luma_pred_flag[x0][y0]) { merge_idx[x0][y0]merge_idx[x0][y0] ae(v)ae(v) } else { } else { second_mpm_flag[x0][y0] second_mpm_flag[x0][y0] ae(v)ae(v) if(ciip_luma_mpm_flag[x0][y0]) if(ciip_luma_mpm_flag[x0][y0]) second_mpm[x0][y0] second_mpm[x0][y0 ] f(5)f(5) else else rem_intra_luma_pred_mode[x0][y0]rem_intra_luma_pred_mode[x0][y0] ae(v)ae(v) } } if(bdip_enable_flag && ((luma_mode>=2 && luma_mode<18) || (luma_mode>=114 && luma_mode<130) if(bdip_enable_flag && ((luma_mode>=2 && luma_mode<18) || (luma_mode>=114 && luma_mode<130) bdip_enable_flagbdip_enable_flag [x0][y0][x0][y0] ae(v)ae(v) } } if(treeMode and CHROMA_TREE) { if(treeMode and CHROMA_TREE) { intra_chroma_pred_mode[x0][y0]intra_chroma_pred_mode[x0][y0] ae(v)ae(v) } } }}

Таблица 9. cu_data_intraTable 9. cu_data_intra

cu_data_inter(x0, y0, cuWidth, cuHeight, treeMode){cu_data_inter(x0, y0, cuWidth, cuHeight, treeMode){ ДескрипторDescriptor if(slice_type==B) if(slice_type==B) inter_pred_idc[x0][y0] inter_pred_idc[x0][y0 ] ae(v)ae(v) if(affine_enabled_flag && cuWidth>8 && cuHeight>8) if(affine_enabled_flag && cuWidth>8 && cuHeight>8) affine_flag[x0][y0] affine_flag[x0][y0] ae(v)ae(v) if(inter_pred_idc[x0][y0] !=PRED_L1) { if(inter_pred_idc[x0][y0] !=PRED_L1) { if(num_ref_idx_l0_active_minus1>0) if(num_ref_idx_l0_active_minus1>0) ref_idx_l0[x0][y0]ref_idx_l0[x0][y0] ae(v)ae(v) if(affine_flag[x0][y0]) { if(affine_flag[x0][y0]) { mvd_gr0(x0, y0, 0, AFFINE_LEFT)mvd_gr0(x0, y0, 0, AFFINE_LEFT) ae(v)ae(v) mvd_gr0(x0, y0, 0, AFFINE_RIGHT)mvd_gr0(x0, y0, 0, AFFINE_RIGHT) ae(v)ae(v) } else } else mvd_ gr0(x0, y0, 0, AFFINE_OFF)mvd_ gr0(x0, y0, 0, AFFINE_OFF) mvp_l0_flag[x0][y0]mvp_l0_flag[x0][y0] ae(v)ae(v) } } if(inter_pred_idc[x0][y0] !=PRED_L0) { if(inter_pred_idc[x0][y0] !=PRED_L0) { if(num_ref_idx_l1_active_minus1>0) if(num_ref_idx_l1_active_minus1>0) ref_idx_l1[x0][y0]ref_idx_l1[x0][y0] ae(v)ae(v) if(mvd_l1_zero_flag && inter_pred_idc[x0][y0]==PRED_BI) { if(mvd_l1_zero_flag && inter_pred_idc[x0][y0]==PRED_BI) { MvdL1[x0][y0][0]=0 MvdL1[x0][y0][0]=0 MvdL1[x0][y0][1]=0 MvdL1[x0][y0][1]=0 } else if(affine_flag[x0][y0]) { } else if(affine_flag[x0][y0]) { mvd_gr0(x0, y0, 1, AFFINE_LEFT)mvd_gr0(x0, y0, 1, AFFINE_LEFT) ae(v)ae(v) mvd_gr0(x0, y0, 1, AFFINE_RIGHT)mvd_gr0(x0, y0, 1, AFFINE_RIGHT) ae(v)ae(v) } else } else mvd_gr0(x0, y0, 1, AFFINE_OFF)mvd_gr0(x0, y0, 1, AFFINE_OFF) mvp_l1_flag[x0][y0]mvp_l1_flag[x0][y0] ae(v)ae(v) } } if(imv_enabled_flag && CuHasNonZeroMvd) if(imv_enabled_flag && CuHasNonZeroMvd) imv_mode[x0][y0] imv_mode[x0][y0 ] ae(v)ae(v) if(affine[x0][y0] || CuHasNonZeroMvd) if(affine[x0][y0] || CuHasNonZeroMvd) { { if(inter_pred_idc[x0][y0] !=PRED_L1) { if(inter_pred_idc[x0][y0] !=PRED_L1) { if(affine_flag[x0][y0]) { if(affine_flag[x0][y0]) { mvd_remain(x0, y0, 0, AFFINE_LEFT)mvd_remain(x0, y0, 0, AFFINE_LEFT) ae(v)ae(v) mvd_remain(x0, y0, 0, AFFINE_RIGHT)mvd_remain(x0, y0, 0, AFFINE_RIGHT) ae(v)ae(v) } else } else mvd_remain(x0, y0, 0, AFFINE_OFF)mvd_remain(x0, y0, 0, AFFINE_OFF) ae(v)ae(v) } } if(inter_pred_idc[x0][y0] !=PRED_L0) { if(inter_pred_idc[x0][y0] !=PRED_L0) { if(mvd_l1_zero_flag && inter_pred_idc[x0][y0]==PRED_BI) { if(mvd_l1_zero_flag && inter_pred_idc[x0][y0]==PRED_BI) { MvdL1[x0][y0][0]=0 MvdL1[x0][y0][0]=0 MvdL1[x0][y0][1]=0 MvdL1[x0][y0][1]=0 } else if(affine_flag[x0][y0]) { } else if(affine_flag[x0][y0]) { mvd_gr0(x0, y0, 1, AFFINE_LEFT)mvd_gr0(x0, y0, 1, AFFINE_LEFT) ae(v)ae(v) mvd_gr0(x0, y0, 1, AFFINE_RIGHT)mvd_gr0(x0, y0, 1, AFFINE_RIGHT) ae(v)ae(v) } else } else mvd_gr0(x0, y0, 1, AFFINE_OFF)mvd_gr0(x0, y0, 1, AFFINE_OFF) ae(v)ae(v) } } } } if(obmc_enabled_flag && cuWidth*cuHeight<=16*16) if(obmc_enabled_flag && cuWidth*cuHeight<=16*16) obmc_flag[x0][y0]obmc_flag[x0][y0] ae(v)ae(v) if(lic_enabled_flag && !affine_flag[x0][y0]) if(lic_enabled_flag && !affine_flag[x0][y0]) lic_flag[x0][y0]lic_flag[x0][y0] ae(v)ae(v) }}

Таблица 10. cu_data_interTable 10. cu_data_inter

cu_residual_data(x0, y0, cuWidth, cuHeight, treeMode){cu_residual_data(x0, y0, cuWidth, cuHeight, treeMode){ ДескрипторDescriptor if(treeMode and CHROMA_TREE) { if(treeMode and CHROMA_TREE) { cbf_cb[x0][y0] cbf_cb[x0][y0 ] ae(v)ae(v) cbf_cr[x0][y0] cbf_cr[x0][y0 ] ae(v)ae(v) } } if(treeMode and LUMA_TREE) { if(treeMode and LUMA_TREE) { if(CuPredMode[x0][y0] !=MODE_INTRA | |
- cbf_cb[x0][y0] || cbf_cr[x0][y0])
if(CuPredMode[x0][y0] !=MODE_INTRA | |
- cbf_cb[x0][y0] || cbf_cr[x0][y0])
cbf_luma[x0][y0]cbf_luma[x0][y0] ae(v)ae(v) } } if(treeMode and CHROMA_TREE) { if(treeMode and CHROMA_TREE) { if(cbf_cb[x0][y0]) if(cbf_cb[x0][y0]) residual_coding(x0, y0, cuWidth/2, cuHeight/2, treeMode, 1) residual_coding(x0, y0, cuWidth/2, cuHeight/2, treeMode, 1) if(cbf_cr[x0][y0]) if(cbf_cr[x0][y0]) residual_coding(x0, y0, cuWidth/2, cuHeight/2, treeMode, 2) residual_coding(x0, y0, cuWidth/2, cuHeight/2, treeMode, 2) } } if(treeMode and LUMA_TREE) { if(treeMode and LUMA_TREE) { if(emt_enable_flag && cuWidth<=64 && cuHeight<=64) if(emt_enable_flag && cuWidth<=64 && cuHeight<=64) emt_cu_flag[x0][y0]emt_cu_flag[x0][y0] ae(v)ae(v) residual_coding(x0, y0, cuWidth, cuHeight, treeMode, 0) residual_coding(x0, y0, cuWidth, cuHeight, treeMode, 0) } }

Таблица 11. cu_residual_dataTable 11. cu_residual_data

Несколько из синтаксических элементов, поясненных в этом документе, задаются как массивы. Например, btSplitFlag задается как массив с размерностью 4, индексированный посредством горизонтальной и вертикальной позиций в кадре и посредством размеров по горизонтали и вертикали кодированного блока. Для упрощений системы обозначений, в семантическом описании синтаксических элементов, индексы не сохраняются (например, btSplitFlag[x0][y0][cbSizeX][cbSizeY] помечается просто как btSplitFlag).Several of the syntax elements explained in this document are specified as arrays. For example, btSplitFlag is specified as a 4-dimensional array indexed by the horizontal and vertical positions in the frame and by the horizontal and vertical dimensions of the encoded block. To simplify the notation, indices are not stored in the semantic description of syntactic elements (for example, btSplitFlag[x0][y0][cbSizeX][cbSizeY] is simply marked as btSplitFlag).

Фиг. 10 иллюстрирует блок-схему примера системы, в которой реализуются различные аспекты и варианты осуществления. Система 1000 может быть осуществлена в качестве устройства, включающего в себя различные компоненты, описанные ниже, и выполнена с возможностью выполнять один или более аспектов, описанных в данной заявке. Примеры таких устройств включают в себя, но не только, различные электронные устройства, такие как персональные компьютеры, переносные компьютеры, смартфоны, планшетные компьютеры, цифровые мультимедийные абонентские приставки, цифровые телевизионные приемники, персональные записывающие видеосистемы, соединенные бытовые приборы, кодеры, транскодеры и серверы. Элементы системы 1000, отдельно или в комбинации, могут быть осуществлены в одной интегральной схеме, в нескольких IC и/или в дискретных компонентах. Например, по меньшей мере, в одном варианте осуществления, элементы обработки и кодера/декодера системы 1000 распределяются по нескольким IC и/или дискретных компонентам. В различных вариантах осуществления, система 1000 функционально соединяется с другими аналогичными системами или с другими электронными устройствами, например, через шину связи или через выделенные порты ввода и/или вывода. В различных вариантах осуществления, система 1000 выполнена с возможностью реализовывать один или более аспектов, описанных в этом документе.Fig. 10 illustrates a block diagram of an example system in which various aspects and embodiments are implemented. The system 1000 may be implemented as a device including various components described below and configured to perform one or more of the aspects described herein. Examples of such devices include, but are not limited to, various electronic devices such as personal computers, laptop computers, smartphones, tablet computers, digital media set-top boxes, digital television receivers, personal video recording systems, connected home appliances, encoders, transcoders and servers . The elements of system 1000, alone or in combination, may be implemented in a single integrated circuit, multiple ICs, and/or discrete components. For example, in at least one embodiment, the processing and encoder/decoder elements of system 1000 are distributed across multiple ICs and/or discrete components. In various embodiments, the system 1000 is operatively connected to other similar systems or to other electronic devices, for example, through a communications bus or through dedicated input and/or output ports. In various embodiments, system 1000 is configured to implement one or more aspects described herein.

Система 1000 включает в себя, по меньшей мере, один процессор 1010, выполненный с возможностью выполнять инструкции, загруженные в него, для реализации, например, различных аспектов, описанных в этом документе. Процессор 1010 может включать в себя встраиваемое запоминающее устройство, интерфейс ввода-вывода и различные другие схемы, как известно в данной области техники. Система 1000 включает в себя, по меньшей мере, одно запоминающее устройство 1020 (например, энергозависимое запоминающее устройство и/или энергонезависимое запоминающее устройство). Система 1000 включает в себя устройство 1040 хранения данных, которое может включать в себя энергонезависимое запоминающее устройство и/или энергозависимое запоминающее устройство, в том числе, но не только, EEPROM, ROM, PROM, RAM, DRAM, SRAM, флэш-память, накопитель на магнитных дисках и/или накопитель на оптических дисках. Устройство 1040 хранения данных может включать в себя внутреннее устройство хранения данных, подключенное устройство хранения данных и/или сетевое доступное устройство хранения данных, в качестве неограничивающих примеров.System 1000 includes at least one processor 1010 configured to execute instructions loaded thereon to implement, for example, various aspects described herein. Processor 1010 may include embedded storage, an input/output interface, and various other circuitry as is known in the art. System 1000 includes at least one storage device 1020 (eg, volatile storage and/or non-volatile storage). System 1000 includes a data storage device 1040, which may include non-volatile memory and/or volatile memory, including, but not limited to, EEPROM, ROM, PROM, RAM, DRAM, SRAM, flash memory, storage magnetic disk and/or optical disk drive. The storage device 1040 may include an internal storage device, an attached storage device, and/or a network accessible storage device, as non-limiting examples.

Система 1000 включает в себя сконфигурированный модуль 1030 кодера/декодера, например, выполненный с в возможностью обрабатывать данные, чтобы предоставлять кодированное видео или декодированное видео, и модуль 1030 кодера/декодера может включать в себя собственный процессор и запоминающее устройство. Модуль 1030 кодера/декодера представляет модуль(и), который может быть включен в устройство, чтобы выполнять функции кодирования и/или декодирования. Как известно, устройство может включать в себя один или оба из модулей кодирования и декодирования. Дополнительно, модуль 1030 кодера/декодера может реализовываться как отдельный элемент системы 1000 или может быть включен в процессор 1010 в качестве комбинации аппаратных средств и программного обеспечения, как известно специалистам в данной области техники.System 1000 includes a configured encoder/decoder module 1030, for example, configured to process data to provide encoded video or decoded video, and encoder/decoder module 1030 may include its own processor and memory. Encoder/decoder module 1030 represents module(s) that may be included in a device to perform encoding and/or decoding functions. As is known, the device may include one or both of encoding and decoding modules. Additionally, encoder/decoder module 1030 may be implemented as a separate element of system 1000 or may be included in processor 1010 as a combination of hardware and software, as is known to those skilled in the art.

Программный код, который должен загружаться в процессор 1010 или кодер/декодер 1030, чтобы выполнять различные аспекты, описанные в этом документе, может сохраняться на устройстве 1040 хранения данных и затем загружаться в запоминающее устройство 1020 для выполнения посредством процессора 1010. В соответствии с различными вариантами осуществления, одно или более из процессора 1010, запоминающего устройства 1020, устройства 1040 хранения данных и модуля 1030 кодера/декодера могут сохранять один или более различных элементов в ходе выполнения процессов, описанных в этом документе. Такие сохраненные элементы могут включать в себя, но не только, входное видео, декодированное видео или части декодированного видео, потока битов, матрицы, переменные и промежуточные или конечные результаты из обработки уравнений, формул, операций и оперативной логики.Program code that must be loaded into processor 1010 or encoder/decoder 1030 to perform various aspects described herein may be stored on storage device 1040 and then loaded into storage device 1020 for execution by processor 1010. In accordance with various embodiments implementation, one or more of the processor 1010, memory 1020, data storage device 1040, and encoder/decoder module 1030 may store one or more different elements while performing the processes described herein. Such stored elements may include, but are not limited to, input video, decoded video or portions of decoded video, bitstreams, matrices, variables, and intermediate or final results from processing equations, formulas, operations, and operational logic.

В нескольких вариантах осуществления, запоминающее устройство в процессоре 1010 и/или модуле 1030 кодера/декодера используется для того, чтобы сохранять инструкции и предоставлять оперативное запоминающее устройство для обработки, которая требуется во время кодирования или декодирования. Тем не менее, в других вариантах осуществления, запоминающее устройство, внешнее для обрабатывающего устройства (например, обрабатывающее устройство может представлять собой либо процессор 1010, либо модуль 1030 кодера/декодера), используется для одной или более из этих функций. Внешнее запоминающее устройство может представлять собой запоминающее устройство 1020 и/или устройство 1040 хранения данных, например, динамическое энергозависимое запоминающее устройство и/или энергонезависимую флэш-память. В нескольких вариантах осуществления, внешняя энергонезависимая флэш-память используется для того, чтобы сохранять операционную систему телевизионного приемника. По меньшей мере, в одном варианте осуществления, быстрое внешнее динамическое энергозависимое запоминающее устройство, такое как RAM, используется в качестве оперативного запоминающего устройства для операций кодирования и декодирования видео, к примеру, для MPEG-2, HEVC или VVC (стандарта универсального кодирования видео).In several embodiments, memory in processor 1010 and/or encoder/decoder module 1030 is used to store instructions and provide random access memory for processing that is required during encoding or decoding. However, in other embodiments, a storage device external to the processing device (eg, the processing device may be either a processor 1010 or an encoder/decoder module 1030) is used for one or more of these functions. The external storage device may be a memory device 1020 and/or a data storage device 1040, such as dynamic volatile memory and/or non-volatile flash memory. In several embodiments, external non-volatile flash memory is used to store the operating system of the television receiver. In at least one embodiment, a fast external dynamic volatile memory device, such as RAM, is used as random access memory for video encoding and decoding operations, for example, MPEG-2, HEVC or VVC (Video Coding Standard) .

Ввод в элементы системы 1000 может предоставляться через различные устройства ввода, как указано в блоке 1130. Такие устройства ввода включают в себя, но не только(i) RF-часть, которая принимает RF-сигнал, передаваемый, например, по радиоинтерфейсу посредством широковещательного передающего устройства, (ii) композитный входной контактный вывод, (iii) входной контактный USB-вывод и/или (iv) входной контактный HDMI-вывод.Input to elements of the system 1000 may be provided through various input devices, as indicated at block 1130. Such input devices include, but are not limited to: (i) an RF portion that receives an RF signal transmitted, for example, over an air interface via a broadcast transmitter device, (ii) composite input pin, (iii) USB input pin, and/or (iv) HDMI input pin.

В различных вариантах осуществления, устройства ввода блока 1130 имеют ассоциированные соответствующие элементы обработки ввода, как известно в данной области техники. Например, RF-часть может быть ассоциирована с элементами, необходимыми для (i) выбора требуемой частоты (также называемого "выбором сигнала" или "ограничением полосы частот сигнала полосой частот"), (ii) преобразования с понижением частоты выбранного сигнала, (iii) ограничения полосы частот снова до более узкой полосы частот, чтобы выбирать (например) полосу частоты сигнала, которая может упоминаться как канал в конкретных вариантах осуществления, (iv) демодуляции преобразованного с понижением частоты сигнала с ограниченной полосой частот, (v) выполнения коррекции ошибок и (vi) демультиплексирования, чтобы выбирать требуемый поток пакетов данных. RF-часть различных вариантов осуществления включает в себя один или более элементов для того, чтобы выполнять эти функции, например, модули выбора частоты, модули выбора сигналов, модули ограничения полосы частот, модули выбора каналов, фильтры, преобразователи с понижением частоты, демодуляторы, модули коррекции ошибок и демультиплексоры. RF-часть может включать в себя тюнер, который выполняет различные эти функции, включающие в себя, например, преобразование с понижением частоты принимаемого сигнала до более низкой частоты (например, до промежуточной частоты или до частоты практически в полосе модулирующих частот) либо до полосы модулирующих частот. В одном варианте осуществления абонентской приставки, RF-часть и ее ассоциированный элемент обработки ввода принимают RF-сигнал, передаваемый по проводной (например, по кабелю) среде и выполняет выбор частоты посредством фильтрации, преобразования с понижением частоты и фильтрации снова в требуемую полосу частот. Различные варианты осуществления перекомпонуют порядок вышеописанных (и других) элементов, удаляют некоторые из этих элементов и/или добавляют другие элементы, выполняющие аналогичные или различные функции. Добавление элементов может включать в себя вставку элементов между существующими элементами, такую как, например, вставка усилителей и аналого-цифрового преобразователя. В различных вариантах осуществления, RF-часть включает в себя антенну.In various embodiments, the input devices of block 1130 have associated corresponding input processing elements, as is known in the art. For example, the RF portion may be associated with elements necessary to (i) select a desired frequency (also called “signal selection” or “band-limiting a signal”), (ii) downconvert the selected signal, (iii) limiting the frequency band again to a narrower frequency band to select (for example) a frequency band of the signal, which may be referred to as a channel in particular embodiments, (iv) demodulating the down-converted signal with a limited frequency band, (v) performing error correction, and (vi) demultiplexing to select the desired stream of data packets. The RF portion of various embodiments includes one or more elements to perform these functions, for example, frequency selection modules, signal selection modules, band limiting modules, channel selection modules, filters, frequency downconverters, demodulators, modules error correction and demultiplexers. The RF portion may include a tuner that performs various of these functions, including, for example, downconverting the received signal to a lower frequency (e.g., to an intermediate frequency or near baseband frequency) or to a baseband frequency. frequency In one embodiment of a set-top box, the RF portion and its associated input processing element receives an RF signal transmitted over a wired (eg, cable) medium and performs frequency selection by filtering, down-converting, and filtering back to the desired frequency band. Various embodiments rearrange the order of the above (and other) elements, remove some of these elements, and/or add other elements that perform similar or different functions. Adding elements may include inserting elements between existing elements, such as, for example, inserting amplifiers and an analog-to-digital converter. In various embodiments, the RF portion includes an antenna.

Дополнительно, контактные USB- и/или HDMI-выводы могут включать в себя соответствующие интерфейсные процессоры для соединения системы 1000 с другими электронными устройствами через USB- и/или HDMI-соединения. Следует понимать, что различные аспекты обработки ввода, например, коррекция ошибок Рида-Соломона, могут реализовываться, например, в отдельной IC обработки ввода или в процессоре 1010 при необходимости. Аналогично, аспекты интерфейсной USB- или HDMI-обработки могут реализовываться в отдельных интерфейсных IC или в процессоре 1010 при необходимости. Демодулированный и демультиплексированный поток после коррекции ошибок предоставляется в различные обрабатывающие элементы, включающие в себя, например, процессор 1010 и кодер/декодер 1030, работающие в комбинации с запоминающими элементами и элементами хранения данных, чтобы обрабатывать поток данных при необходимости для представления на устройстве вывода.Additionally, the USB and/or HDMI pins may include associated interface processors for connecting the system 1000 to other electronic devices via USB and/or HDMI connections. It should be understood that various aspects of input processing, such as Reed-Solomon error correction, may be implemented, for example, in a separate input processing IC or processor 1010 as needed. Likewise, aspects of USB or HDMI interface processing may be implemented in separate interface ICs or in processor 1010 as needed. The demodulated and demultiplexed stream, after error correction, is provided to various processing elements, including, for example, a processor 1010 and an encoder/decoder 1030, operating in combination with memory and storage elements to process the data stream as needed for presentation on an output device.

Различные элементы системы 1000 могут предоставляться в интегрированном корпусе. В интегрированном корпусе, различные элементы могут взаимно соединяться и передавать данные между собой с использованием подходящей компоновки соединений, например, внутренней шины, как известно в данной области техники, включающей в себя I2C-шину, монтажные и печатные платы.Various elements of the system 1000 may be provided in an integrated housing. In an integrated package, various elements can be interconnected and communicate data among themselves using a suitable interconnection arrangement, for example, an internal bus, as is known in the art, including an I2C bus, circuit boards and printed circuit boards.

Система 1000 включает в себя интерфейс 1050 связи, который обеспечивает связь с другими устройствами через канал 1060 связи. Интерфейс 1050 связи может включать в себя, но не только, приемо-передающее устройство, выполненное с возможностью передавать и принимать данные по каналу 1060 связи. Интерфейс 1050 связи может включать в себя, но не только, модем или сетевую карту, и канал 1060 связи может реализовываться, например, в проводной и/или беспроводной среде.System 1000 includes a communications interface 1050 that allows communication with other devices via a communications link 1060. The communication interface 1050 may include, but is not limited to, a transceiver device configured to transmit and receive data over the communication channel 1060. Communication interface 1050 may include, but is not limited to, a modem or network card, and communication channel 1060 may be implemented, for example, in a wired and/or wireless environment.

Данные передаются в потоковом режиме в систему 1000, в различных вариантах осуществления, с использованием Wi-Fi-сети, такой как IEEE 802.11. Wi-Fi-сигнал этих вариантов осуществления принимается по каналу 1060 связи и интерфейсу 1050 связи, которые адаптируются к Wi-Fi-связи. Канал 1060 связи этих вариантов осуществления типично соединяется с точкой доступа или маршрутизатором, который предоставляет доступ к внешним сетям, включающим в себя Интернет для обеспечения возможности работы приложений потоковой передачи данных и другой связи поверх сетей. Другие варианты осуществления предоставляют передаваемые в потоковом режиме данные в систему 1000 с использованием абонентской приставки, которая доставляет данные по HDMI-соединению входного блока 1130. Еще другие варианты осуществления предоставляют передаваемые в потоковом режиме данные в систему 1000 с использованием RF-соединения входного блока 1130.The data is streamed to the system 1000, in various embodiments, using a Wi-Fi network such as IEEE 802.11. The Wi-Fi signal of these embodiments is received over a communication channel 1060 and a communication interface 1050 that adapt to Wi-Fi communication. The link 1060 of these embodiments typically connects to an access point or router that provides access to external networks, including the Internet, to enable streaming applications and other communications over the networks. Other embodiments provide streaming data to system 1000 using a set-top box that delivers the data over an HDMI connection of input unit 1130. Still other embodiments provide streaming data to system 1000 using an RF connection of input unit 1130.

Система 1000 может предоставлять выходной сигнал в различные устройства вывода, включающие в себя дисплей 1100, динамики 1110 и другие периферийные устройства 1120. Другие периферийные устройства 1120 включают в себя, в различных примерах вариантов осуществления, одно или более из автономного DVR, проигрывателя дисков, стереосистемы, системы освещения и других устройств, которые предоставляют функцию на основе вывода системы 1000. В различных вариантах осуществления, управляющие сигналы передаются между системой 1000 и дисплеем 1100, динамиками 1110 или другими периферийными устройствами 1120 с использованием сигнализации, такой как AV.Link, CEC или другие протоколы связи, которые обеспечивают управление между устройствами с или без вмешательства пользователя. Устройства вывода могут функционально соединяться с системой 1000 через выделенные соединения через соответствующие интерфейсы 1070, 1080 и 1090. Альтернативно, устройства вывода могут соединяться с системой 1000 с использованием канала 1060 связи через интерфейс 1050 связи. Дисплей 1100 и динамики 1110 могут интегрироваться в одном модуле с другими компонентами системы 1000 в электронном устройстве, таком как, например, телевизионный приемник. В различных вариантах осуществления, интерфейс 1070 отображения включает в себя драйвер дисплея, такой как, например, микросхема контроллера синхронизации (T Con).System 1000 may provide output to various output devices, including display 1100, speakers 1110, and other peripherals 1120. Other peripherals 1120 include, in various example embodiments, one or more of a standalone DVR, disc player, stereo system , lighting systems, and other devices that provide a function based on the output of the system 1000. In various embodiments, control signals are transmitted between the system 1000 and the display 1100, speakers 1110, or other peripheral devices 1120 using signaling such as AV.Link, CEC, or other communication protocols that provide control between devices with or without user intervention. Output devices may be operatively coupled to system 1000 via dedicated connections via respective interfaces 1070, 1080, and 1090. Alternatively, output devices may be coupled to system 1000 using communications link 1060 via communications interface 1050. The display 1100 and speakers 1110 may be integrated in one module with other components of the system 1000 in an electronic device, such as, for example, a television receiver. In various embodiments, display interface 1070 includes a display driver, such as, for example, a timing controller (T Con) chip.

Дисплей 1100 и динамик 1110 альтернативно могут быть отдельными от одного или более других компонентов, например, если RF-часть ввода 1130 представляет собой часть отдельной абонентской приставки. В различных вариантах осуществления, в которых дисплей 1100 и динамики 1110 представляют собой внешние компоненты, выходной сигнал может предоставляться через выделенные выходные соединения, включающие в себя, например, HDMI-порты, USB-порты или COMP-выводы. Реализации, описанные в данном документе, могут осуществляться, например, в способе или процессе, оборудовании, программно-реализованной программе, потоке данных или сигнале. Даже если поясняется только в контексте одной формы реализации (например, поясняется только как способ), реализация поясненных признаков также может осуществляться в других формах (например, как устройство или программа). Оборудование может реализовываться, например, в соответствующих аппаратных средствах, программном обеспечении и микропрограммном обеспечении. Способы могут реализовываться, например, в таком оборудовании, как, например, процессор, который означает устройства обработки в целом, включающие в себя, например, компьютер, микропроцессор, интегральную схему или программируемое логическое устройство. Процессоры также включают в себя устройства связи, такие как, например, компьютеры, сотовые телефоны, портативные/персональные цифровые устройства (PDA) и другие устройства, которые упрощают обмен информацией между конечными пользователями.The display 1100 and speaker 1110 may alternatively be separate from one or more other components, for example, if the RF input portion 1130 is part of a separate set-top box. In various embodiments in which the display 1100 and speakers 1110 are external components, the output signal may be provided through dedicated output connections including, for example, HDMI ports, USB ports, or COMP pins. The implementations described herein may be implemented, for example, in a method or process, hardware, firmware, data stream, or signal. Even if explained only in the context of one form of implementation (eg, explained only as a method), the implementation of the explained features may also be implemented in other forms (eg, as a device or program). The equipment may be implemented, for example, in associated hardware, software and firmware. The methods may be implemented, for example, in equipment such as, for example, a processor, which means processing devices in general, including, for example, a computer, a microprocessor, an integrated circuit, or a programmable logic device. Processors also include communications devices, such as, for example, computers, cellular phones, portable/personal digital devices (PDAs), and other devices that facilitate the exchange of information between end users.

Фиг. 11 иллюстрирует блок-схему последовательности операций примера способа кодирования согласно варианту осуществления с использованием новых инструментальных средств кодирования. Такой способ кодирования может осуществляться посредством системы 1000, описанной на фиг. 10, и более точно, может реализовываться посредством процессора 1010. По меньшей мере, в одном варианте осуществления, на этапе 1190, процессор 1010 выбирает инструментальные средства кодирования, которые должны использоваться. Выбор может осуществляться с использованием различных технологий. Выбор может осуществляться пользователем через конфигурационный параметр кодирования (типично флаг), который указывает инструментальные средства, которые должны использоваться (а также соответствующие параметры при необходимости) во время процессов кодирования и декодирования. В примерном варианте осуществления, выбор осуществляется посредством задания значения для значения в файле, причем флаг считывается посредством устройства кодирования, которое интерпретирует значение флага, чтобы выбирать то, какое инструментальное средство следует использовать. В примерном варианте осуществления, выбор осуществляется посредством выполняемой вручную операции выбора, пользователем, конфигурационных параметров кодирования с использованием графического пользовательского интерфейса, который обрабатывает устройство кодера. После того как этот выбор осуществляется, кодирование выполняется на этапе 1193 с использованием выбранного инструментального средства из числа других инструментальных средств кодирования, и выбор инструментальных средств сигнализируется в высокоуровневых синтаксических элементах (например, в следующем SPS, PPS или даже заголовке серии последовательных макроблоков).Fig. 11 illustrates a flowchart of an example encoding method according to an embodiment using the new encoding tools. This encoding method may be accomplished by the system 1000 described in FIG. 10, and more specifically, may be implemented by processor 1010. In at least one embodiment, at step 1190, processor 1010 selects the encoding tools to be used. The selection can be made using various technologies. The selection may be made by the user through an encoding configuration parameter (typically a flag) that specifies the tools to be used (as well as corresponding parameters if necessary) during the encoding and decoding processes. In an exemplary embodiment, the selection is made by setting a value to a value in a file, wherein the flag is read by an encoder that interprets the value of the flag to select which tool should be used. In an exemplary embodiment, the selection is made through a manual operation of selecting, by the user, encoding configuration parameters using a graphical user interface that is processed by the encoder device. Once this selection is made, encoding is performed at step 1193 using the selected tool from among other encoding tools, and the choice of tool is signaled in high-level syntax elements (eg, the next SPS, PPS, or even a runtime header).

Фиг. 12 иллюстрирует блок-схему последовательности операций примера части способа декодирования согласно варианту осуществления с использованием новых инструментальных средств кодирования. Такой способ декодирования может осуществляться посредством системы 1000, описанной на фиг. 10, и более точно, может реализовываться посредством процессора 1010. По меньшей мере, в одном варианте осуществления, на этапе 1200, процессор 1010 осуществляет доступ к сигналу (например, принимаемому в интерфейсе ввода или считываемому из средства поддержки мультимедийной среды), извлекает и анализирует высокоуровневые синтаксические элементы, чтобы определять инструментальные средства, которые выбраны в устройстве кодирования. На этапе 1210, эти инструментальные средства используются для того, чтобы выполнять декодирование и формировать декодированное изображение, которое, например, может предоставляться в устройство или отображаться на устройстве.Fig. 12 illustrates a flowchart of an example portion of a decoding method according to an embodiment using the new encoding tools. Such a decoding method may be performed by the system 1000 described in FIG. 10, and more specifically, may be implemented by a processor 1010. In at least one embodiment, at step 1200, the processor 1010 accesses, extracts, and analyzes a signal (eg, received at an input interface or read from a media support tool). high-level syntax elements to specify the tools that are selected at the encoder. At step 1210, these tools are used to perform decoding and generate a decoded image, which, for example, can be provided to or displayed on the device.

Ссылка на "один вариант осуществления" или "вариант осуществления" либо "одну реализацию" или "реализацию", а также другие их разновидности означает то, что конкретный признак, структура, характеристика, и т.д., описанная в связи с вариантом осуществления, включается, по меньшей мере, в один вариант осуществления. Таким образом, вхождения фразы "в одном варианте осуществления" или "в варианте осуществления" либо "в одной реализации" или "в реализации", а также всех их разновидностей, появляющиеся в различных местах в подробном описании, не обязательно ссылаются на тот же самый вариант осуществления.Reference to “one embodiment” or “embodiment” or “one implementation” or “implementation”, as well as other variations thereof, means that the particular feature, structure, characteristic, etc. described in connection with the embodiment , is included in at least one embodiment. Thus, occurrences of the phrase "in one embodiment" or "in an embodiment" or "in one implementation" or "in an implementation", and all variations thereof, appearing at various places in the detailed description do not necessarily refer to the same embodiment.

Дополнительно, эта заявка или ее формула изобретения может ссылаться на "определение" различных фрагментов информации. Определение информации может включать в себя, например, одно или более из оценки информации, вычисления информации, прогнозирования информации или извлечения информации из запоминающего устройства.Additionally, this application or its claims may refer to "definition" of various pieces of information. Determining information may include, for example, one or more of evaluating information, calculating information, predicting information, or retrieving information from a storage device.

Дополнительно, эта заявка или ее формула изобретения может ссылаться на "осуществление доступа" к различным фрагментам информации. Осуществление доступа к информации может включать в себя, например, одно или более из приема информации, извлечения информации (например, из запоминающего устройства), сохранения информации, перемещения информации, копирования информации, вычисления информации, прогнозирования информации или оценки информации.Additionally, this application or its claims may refer to “accessing” various pieces of information. Accessing information may include, for example, one or more of receiving information, retrieving information (eg, from a storage device), storing information, moving information, copying information, calculating information, predicting information, or evaluating information.

Дополнительно, эта заявка или ее формула изобретения может ссылаться на "прием" различных фрагментов информации. Прием, аналогично "осуществлению доступа", должен быть общим термином. Прием информации может включать в себя, например, одно или более из осуществления доступа к информации или извлечения информации (например, из запоминающего устройства или оптического мультимедийного устройства хранения данных). Дополнительно, "прием" типично предусмотрен, так или иначе, в ходе таких операций, как, например, сохранение информации, обработка информации, передача информации, перемещение информации, копирование информации, стирание информации, вычисление информации, определение информации, прогнозирование информации или оценка информации.Additionally, this application or its claims may refer to “receiving” various pieces of information. Receiving, like "accessing", should be a general term. Receiving information may include, for example, one or more of accessing or retrieving information (eg, from a memory device or an optical multimedia storage device). Additionally, "receiving" is typically provided in one way or another during operations such as, for example, storing information, processing information, transmitting information, moving information, copying information, erasing information, calculating information, determining information, predicting information, or evaluating information. .

Следует принимать во внимание, что использование любого из следующих "/", "и/или" и "по меньшей мере, одно из", например, в случаях "A/B", "A и/или B" и "по меньшей мере, одно из A и B" имеет намерение охватывать выбор только первого перечисленного варианта (A) или выбор только второго перечисленного варианта (B), или выбор обоих вариантов (A и B). В качестве дополнительного примера, в случаях "A, B и/или C" и "по меньшей мере, одно из A, B и C", такая формулировка имеет намерение охватывать выбор только первого перечисленного варианта (A) или выбор только второго перечисленного варианта (B), или выбор только третьего перечисленного варианта (C), или выбор только первого и второго перечисленных вариантов (A и B), или выбор только первого и третьего перечисленных вариантов (A и C), или выбор только второго и третьего перечисленных вариантов (B и C), или выбор всех трех вариантов (A и B, и C). Это может распространяться, как очевидно для специалистов в данной области техники, на все перечисленные элементы.It should be appreciated that the use of any of the following "/", "and/or" and "at least one of", for example, in the cases of "A/B", "A and/or B" and "at least At least one of "A and B" is intended to cover the choice of only the first listed option (A), or the choice of only the second listed option (B), or the choice of both options (A and B). As a further example, in the cases of "A, B and/or C" and "at least one of A, B and C", such language is intended to cover the selection of only the first listed option (A) or the selection of only the second listed option (B), or selecting only the third listed option (C), or selecting only the first and second listed options (A and B), or selecting only the first and third listed options (A and C), or selecting only the second and third listed options (B and C), or select all three options (A and B, and C). This may extend, as will be apparent to those skilled in the art, to all of the elements listed.

Специалистам данной области техники должно быть очевидным, что реализации также могут формировать множество сигналов, отформатированных с возможностью переносить информацию, которая, например, может сохраняться или передаваться. Информация может включать в себя, например, инструкции для осуществления способа или данные, сформированные посредством одной из описанных реализаций. Например, сигнал может иметь такой формат, чтобы переносить поток битов описанного варианта осуществления. Этот сигнал, например, может форматироваться как электромагнитная волна (к примеру, с использованием радиочастотного участка спектра) или как сигнал в полосе модулирующих частот. Форматирование может включать в себя, например, кодирование потока данных и модуляцию несущей с кодированным потоком данных. Информация, которую переносит сигнал, например, может представлять собой аналоговую или цифровую информацию. Как известно, сигнал может передаваться по множеству различных линий проводной или беспроводной связи. Сигнал может сохраняться на машиночитаемом носителе.It will be apparent to those skilled in the art that implementations may also generate a plurality of signals formatted to carry information that, for example, may be stored or transmitted. The information may include, for example, instructions for implementing a method or data generated by one of the described implementations. For example, the signal may be formatted to carry the bitstream of the described embodiment. This signal, for example, may be formatted as an electromagnetic wave (eg, using the radio frequency portion of the spectrum) or as a baseband signal. Formatting may include, for example, encoding the data stream and modulating a carrier with the encoded data stream. The information that the signal carries, for example, may be analog or digital information. As you know, a signal can be transmitted over many different wired or wireless communication lines. The signal may be stored on a computer readable medium.

В разновидности первого, второго, третьего, четвертого, пятого, шестого, седьмого и восьмого аспекта, по меньшей мере, варианта осуществления, параметр, представляющий тип сегментации, содержит первое значение для сегментации на дерево квадрантов и двоичное дерево, второе значение для сегментации на дерево квадрантов и двоичное дерево плюс сегментации на троичное дерево, третье значение для сегментации на дерево квадрантов и двоичное дерево плюс сегментации на асимметричное двоичное дерево и четвертое значение для сегментации на дерево квадрантов и двоичное дерево плюс сегментации на троичное дерево плюс сегментации на асимметричное двоичное дерево.In a variation of the first, second, third, fourth, fifth, sixth, seventh and eighth aspect of at least an embodiment, a parameter representing a segmentation type comprises a first value for quadtree and binary tree segmentation, a second value for tree segmentation quadtree and binary tree plus ternary tree segmentations, a third value for quadtree and binary tree segmentations plus asymmetric binary tree segmentations, and a fourth value for quadtree and binary tree segmentations plus ternary tree segmentations plus asymmetric binary tree segmentations.

В разновидности первого, второго, третьего, четвертого, пятого, шестого, седьмого и восьмого аспекта, по меньшей мере, одного варианта осуществления, упомянутые параметры дополнительно содержат размер блоков, для которых дискретизированное адаптивное смещение применяется для кодированной серии последовательных макроблоков.In a variation of the first, second, third, fourth, fifth, sixth, seventh and eighth aspect of at least one embodiment, said parameters further comprise a block size for which a sampled adaptive offset is applied to the encoded series of successive macroblocks.

В разновидности первого, второго, третьего, четвертого, пятого, шестого, седьмого и восьмого аспекта, по меньшей мере, одного варианта осуществления, тип режима внутреннего прогнозирования содержит, по меньшей мере, один из режима внутреннего бипрогнозирования и режима множественного опорного внутреннего прогнозирования.In a variation of the first, second, third, fourth, fifth, sixth, seventh and eighth aspect of at least one embodiment, the intra prediction mode type comprises at least one of an intra bi prediction mode and a multiple reference intra prediction mode.

Claims (18)

1. Видеокодер для кодирования данных кадров видео, при этом видеокодер выполнен с возможностью кодировать данные кадра для по меньшей мере одного блока в кадре на основе единственного флага, выполненного с возможностью определения того, используются ли при кодировании для блоков сигналов яркости и сигналов цветности независимые деревья кодирования или общие деревья кодирования, и вставлять единственный флаг в высокоуровневые синтаксические элементы кодированных данных кадра.1. A video encoder for encoding video frame data, wherein the video encoder is configured to encode frame data for at least one block in the frame based on a single flag configured to determine whether independent trees are used for encoding the luma and chrominance signal blocks encodings or general encoding trees, and insert a single flag into high-level syntax elements of the encoded frame data. 2. Устройство по п. 1, при этом единственный флаг равен 1, блоки сигналов яркости и сигналов цветности используют независимые деревья кодирования.2. The device according to claim 1, wherein the only flag is 1, the blocks of luminance signals and chrominance signals use independent coding trees. 3. Устройство по п. 1 или 2, при этом единственный флаг выполнен с возможностью сигнализироваться в наборе параметров последовательности на уровне последовательности, чтобы применяться ко всем кодированным срезам с использованием упомянутого набора параметров последовательности.3. The apparatus of claim 1 or 2, wherein a single flag is configured to be signaled in a sequence parameter set at the sequence level to apply to all encoded slices using said sequence parameter set. 4. Способ кодирования данных кадров видео, при этом способ осуществляется видеокодером и содержит этапы, на которых:4. A method for encoding video frame data, wherein the method is carried out by a video encoder and contains the steps of: кодируют данные кадра для по меньшей мере одного блока в кадре на основе единственного флага, определяющего, используются ли при кодировании для блоков сигналов яркости и сигналов цветности независимые деревья кодирования или общие деревья кодирования, иencoding frame data for at least one block in the frame based on a single flag determining whether the encoding of the luma and chroma blocks uses independent encoding trees or common encoding trees, and вставляют единственный флаг в высокоуровневые синтаксические элементы кодированных данных кадра.insert a single flag into high-level syntax elements of the encoded frame data. 5. Способ по п. 4, в котором, когда единственный флаг равен 1, блоки сигналов яркости и сигналов цветности используют независимые деревья кодирования.5. The method of claim 4, wherein, when the single flag is 1, the luma and chroma blocks use independent coding trees. 6. Способ по п. 4 или 5, в котором единственный флаг сигнализируется в наборе параметров последовательности на уровне последовательности, чтобы применяться ко всем кодированным срезам с использованием упомянутого набора параметров последовательности.6. The method of claim 4 or 5, wherein a single flag is signaled in the sequence parameter set at the sequence level to apply to all encoded slices using said sequence parameter set. 7. Видеодекодер для декодирования данных кадров видео, при этом видеокодер выполнен с возможностью получать параметры из высокоуровневых синтаксических элементов кодированных данных кадра и декодировать данные кадра для по меньшей мере одного блока в кадре на основе единственного флага, выполненного с возможностью определения того, используются ли при кодировании для блоков сигналов яркости и сигналов цветности независимые деревья кодирования или общие деревья кодирования.7. A video decoder for decoding video frame data, wherein the video encoder is configured to obtain parameters from high-level syntax elements of the encoded frame data and decode frame data for at least one block in the frame based on a single flag configured to determine whether coding for luma and chrominance blocks independent coding trees or common coding trees. 8. Устройство по п. 7, при этом единственный флаг равен 1, блоки сигналов яркости и сигналов цветности используют независимые деревья кодирования.8. The device according to claim 7, wherein the only flag is 1, the blocks of luminance signals and chrominance signals use independent coding trees. 9. Устройство по п. 7 или 8, при этом единственный флаг выполнен с возможностью сигнализироваться в наборе параметров последовательности на уровне последовательности, чтобы применяться ко всем кодированным срезам с использованием упомянутого набора параметров последовательности.9. The apparatus of claim 7 or 8, wherein the single flag is configured to be signaled in the sequence parameter set at the sequence level to apply to all encoded slices using said sequence parameter set. 10. Способ декодирования данных кадров видео, при этом способ осуществляется видеокодером и содержит этапы, на которых:10. A method for decoding video frame data, wherein the method is carried out by a video encoder and contains the steps of: получают параметры из высокоуровневых синтаксических элементов кодированных данных кадра, иobtaining parameters from high-level syntax elements of the encoded frame data, and декодируют данные кадра для по меньшей мере одного блока в кадре на основе единственного флага, определяющего, используются ли при кодировании для блоков сигналов яркости и сигналов цветности независимые деревья кодирования или общие деревья кодирования.decoding frame data for at least one block in the frame based on a single flag that determines whether independent coding trees or common coding trees are used when encoding the luma and chroma blocks. 11. Способ по п. 10, в котором, когда единственный флаг равен 1, блоки сигналов яркости и сигналов цветности используют независимые деревья кодирования.11. The method of claim 10, wherein when the single flag is 1, the luma and chroma blocks use independent coding trees. 12. Способ по п. 10 или 11, в котором единственный флаг сигнализируется в наборе параметров последовательности на уровне последовательности, чтобы применяться ко всем кодированным срезам с использованием упомянутого набора параметров последовательности.12. The method of claim 10 or 11, wherein a single flag is signaled in the sequence parameter set at the sequence level to apply to all encoded slices using said sequence parameter set. 13. Энергонезависимый машиночитаемый носитель, на котором сохранены инструкции с программным кодом, исполняемые процессором для реализации этапов способа по п. 4.13. A non-volatile machine-readable medium on which instructions with program code are stored, executed by the processor to implement the stages of the method according to claim 4. 14. Энергонезависимый машиночитаемый носитель, на котором сохранены инструкции с программным кодом, исполняемые процессором для реализации этапов способа по п. 10.14. A non-volatile machine-readable medium on which instructions with program code are stored, executed by the processor to implement the stages of the method according to claim 10.
RU2020143949A 2018-06-07 2019-05-28 Syntax elements for video coding or decoding RU2802368C2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP18305693.6 2018-06-07
EP18305849.4 2018-07-02

Publications (2)

Publication Number Publication Date
RU2020143949A RU2020143949A (en) 2022-07-11
RU2802368C2 true RU2802368C2 (en) 2023-08-28

Family

ID=

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2575986C2 (en) * 2011-08-01 2016-02-27 Квэлкомм Инкорпорейтед Coding parameter sets for various dimensions in video coding
WO2016074567A1 (en) * 2014-11-11 2016-05-19 Mediatek Singapore Pte. Ltd Method of video coding using separate coding tree for luma and chroma
WO2017123980A1 (en) * 2016-01-15 2017-07-20 Qualcomm Incorporated Multi-type-tree framework for video coding
RU2636692C2 (en) * 2012-03-16 2017-11-27 Квэлкомм Инкорпорейтед High-level syntactic expansions for high-efficient video coding

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2575986C2 (en) * 2011-08-01 2016-02-27 Квэлкомм Инкорпорейтед Coding parameter sets for various dimensions in video coding
RU2636692C2 (en) * 2012-03-16 2017-11-27 Квэлкомм Инкорпорейтед High-level syntactic expansions for high-efficient video coding
WO2016074567A1 (en) * 2014-11-11 2016-05-19 Mediatek Singapore Pte. Ltd Method of video coding using separate coding tree for luma and chroma
WO2017123980A1 (en) * 2016-01-15 2017-07-20 Qualcomm Incorporated Multi-type-tree framework for video coding

Similar Documents

Publication Publication Date Title
US9253495B2 (en) Methods and apparatus for improved chroma transforms for inter frames in video encoding and decoding
US11956473B2 (en) Managing coding tools combinations and restrictions
US20220141493A1 (en) Syntax elements for video encoding or decoding
CN113228650A (en) Quantization of video encoding or decoding based on block-based surfaces
CN112889287A (en) Generalized bi-directional prediction and weighted prediction
CN114208178A (en) Quadratic transforms for video encoding and decoding
US20240048750A1 (en) Encoder and bitstream for efficient coding of global motion vectors
TW202118300A (en) Homogeneous syntax
CN112771874A (en) Method and apparatus for picture coding and decoding
CN111937383B (en) Chroma quantization parameter adjustment in video encoding and decoding
CN113508599A (en) Syntax for motion information signaling in video coding
RU2802368C2 (en) Syntax elements for video coding or decoding
US20220312041A1 (en) Method and apparatus for signaling decoding data using high level syntax elements
US20210385471A1 (en) Parameter grouping among plural coding units for video encoding and decoding
KR20220024835A (en) Method and apparatus for coding/decoding picture data
EP3591969A1 (en) Syntax elements for video encoding or decoding
WO2024007695A1 (en) Encoding/decoding video picture data
US20210344962A1 (en) Method and apparatus for video encoding and decoding with signaling of coding type or coding tree type
EP4070547A1 (en) Scaling process for joint chroma coded blocks
CN114073093A (en) Signaling of merging indices for triangle partitioning
CN113170153A (en) Initializing current picture reference block vectors based on binary trees
CN117501692A (en) Template matching prediction for video encoding and decoding