[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

RU2823042C1 - Encoder, decoder and corresponding methods to simplify signaling of picture header - Google Patents

Encoder, decoder and corresponding methods to simplify signaling of picture header Download PDF

Info

Publication number
RU2823042C1
RU2823042C1 RU2022112072A RU2022112072A RU2823042C1 RU 2823042 C1 RU2823042 C1 RU 2823042C1 RU 2022112072 A RU2022112072 A RU 2022112072A RU 2022112072 A RU2022112072 A RU 2022112072A RU 2823042 C1 RU2823042 C1 RU 2823042C1
Authority
RU
Russia
Prior art keywords
picture
inter
slice
pic
flag
Prior art date
Application number
RU2022112072A
Other languages
Russian (ru)
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 Хуавэй Текнолоджиз Ко., Лтд.
Application granted granted Critical
Publication of RU2823042C1 publication Critical patent/RU2823042C1/en

Links

Abstract

FIELD: physics.
SUBSTANCE: invention relates to image encoding and decoding. Disclosed is a method which involves parsing a bit stream to obtain a flag from the header of the picture of the bit stream, wherein the flag indicates whether the current picture is an I-picture. When the flag indicates that the current picture is an I-picture, the syntax element intended for external prediction is logically output as a default value; or, when the flag indicates that the current picture is a P or B picture, obtaining a syntax element intended for external prediction from the picture header.
EFFECT: high efficiency of encoding and decoding.
21 cl, 19 dwg

Description

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

Эта патентная заявка испрашивает приоритет по предварительной заявке США №. 62/913,730, поданной 10 октября 2019 г., которая полностью включена в настоящий документ посредством ссылки.This patent application claims priority to US Provisional Application No. 62/913,730, filed October 10, 2019, which is incorporated herein by reference in its entirety.

ОБЛАСТЬ ТЕХНИКИTECHNICAL FIELD

Варианты осуществления настоящей заявки (раскрытие) в основном относятся к области обработки картинки и, более конкретно, к упрощению сигнализации заголовка картинки.Embodiments of the present application (disclosure) generally relate to the field of picture processing and, more specifically, to simplifying picture header signaling.

УРОВЕНЬ ТЕХНИКИBACKGROUND OF THE ART

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

Объем видеоданных, необходимых для представления даже относительно короткого видео, может быть существенным, что может привести к трудностям, когда эти данные должны передаваться в потоковом режиме или иным образом сообщаться по сети связи с ограниченной пропускной способностью. Таким образом, видеоданные, как правило, сжимаются перед тем, как передаваться через современные телекоммуникационные сети. Размер видео также может быть проблемой, когда видео хранится на запоминающем устройстве, поскольку ресурсы памяти могут быть ограничены. Устройства сжатия видео часто используют программное и/или аппаратное обеспечение в источнике для кодирования видеоданных перед передачей или хранением, тем самым уменьшая количество данных, необходимых для представления цифровых видеоизображений. Сжатые данные затем принимаются устройством декомпрессии видео получателя, которое декодирует видеоданные. С ограниченными сетевыми ресурсами и постоянно растущими требованиями к более высокому качеству видео, желательно упрощение сигнализации заголовка картинки.The amount of video data required to present even a relatively short video can be significant, which can lead to difficulties when the data must be streamed or otherwise communicated over a communications network with limited bandwidth. Thus, video data is typically compressed before being transmitted over modern telecommunications networks. Video size can also be an issue when the video is stored on a storage device, as memory resources may be limited. Video compression devices often use software and/or hardware at the source to encode video data before transmission or storage, thereby reducing the amount of data required to represent digital video images. The compressed data is then received by the recipient's video decompressor, which decodes the video data. With limited network resources and ever-increasing demands for higher video quality, simplifying picture header signaling is desirable.

СУЩНОСТЬ ИЗОБРЕТЕНИЯSUMMARY OF THE INVENTION

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

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

Согласно первому аспекту изобретение относится к способу кодировки, реализуемому устройством декодирования. Способ включает в себя синтаксический анализ битового потока для получения флага из заголовка картинки битового потока, при этом флаг указывает, является ли текущая картинка I-картинкой.According to a first aspect, the invention relates to an encoding method implemented by a decoding device. The method includes parsing a bitstream to obtain a flag from a bitstream picture header, wherein the flag indicates whether the current picture is an I-picture.

Когда флаг указывает, что текущей картинкой является I-картинка, синтаксический элемент, предназначенный для внешнего предсказания, выводится как значение по умолчанию; или когда флаг указывает, что текущая картинка является картинкой P или B, получение синтаксического элемента, предназначенного для внешнего предсказания, из заголовка картинки.When the flag indicates that the current picture is an I-picture, the syntax element intended for external prediction is output as the default value; or when the flag indicates that the current picture is picture P or B, obtaining a syntactic element intended for external prediction from the picture header.

Синтаксический элемент, предназначенный для внешнего предсказания, включает в себя один или несколько из следующих элементов: pic_log2_diff_min_qt_min_cb_inter_slice, pic_max_mtt_hierarchy_depth_inter_slice, pic_log2_diff_max_bt_min_qt_inter_slice, pic_log2_diff_max_tt_min_qt_inter_slice, pic_cu_qp_delta_subdiv_inter_slice, pic_cu_chroma_qp_offset_subdiv_inter_slice, pic_temporal_mvp_enabled_flag, mvd_l1_zero_flag, pic_fpel_mmvd_enabled_flag или pic_disable_bdof_dmvr_flag.A syntax element intended for external prediction includes one or more of the following elements: pic_log2_diff_min_qt_min_cb_inter_slice, pic_max_mtt_hierarchy_depth_inter_slice, pic_log2_diff_max_bt_min_qt_inter_slice, pic_log2_diff_max_tt_min_qt_inter_slice, pic_cu_qp_ delta_subdiv_inter_slice, pic_cu_chroma_qp_offset_subdiv_inter_slice, pic_temporal_mvp_enabled_flag, mvd_l1_zero_flag, pic_fpel_mmvd_enabled_flag or pic_disable_bdof_dmvr_flag.

Согласно второму аспекту изобретение относится к способу кодировки, реализуемому устройством кодирования. Способ включает в себя определение, является ли текущая картинка I-картинкой; иAccording to a second aspect, the invention relates to an encoding method implemented by an encoding device. The method includes determining whether the current picture is an I picture; And

отправку битового потока на устройство декодирования, при этом заголовок картинки битового потока включает в себя флаг, указывающий, является ли текущая картинка I-картинкой; и при этом, когда текущей картинкой является I-картинка, синтаксический элемент, предназначенный для внешнего предсказания, не сигнализируется в заголовке картинки; или когда текущей картинкой является картинка P или B, в заголовке картинки сигнализируется синтаксический элемент, предназначенный для внешнего предсказания.sending the bit stream to the decoding device, wherein the bit stream picture header includes a flag indicating whether the current picture is an I picture; and wherein, when the current picture is an I-picture, the syntactic element for inter-prediction is not signaled in the picture header; or when the current picture is picture P or B, a syntactic element for inter-prediction is signaled in the header of the picture.

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

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

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

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

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

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

Как обсуждалось выше, посредством указания, является ли текущая картинка I-картинкой в заголовке картинки битового потока, синтаксический элемент, предназначенный для внешнего предсказания, не сигнализируется в заголовке картинки, когда текущая картинка является I-картинкой. Таким образом, варианты осуществления могут упростить сигнализацию заголовка картинки для всех внутренних картинок, т. е. I картинки. Соответственно уменьшаются накладные расходы на сигнализацию.As discussed above, by indicating whether the current picture is an I-picture in the bitstream picture header, the syntax element for inter-prediction is not signaled in the picture header when the current picture is an I-picture. Thus, embodiments can simplify picture header signaling for all internal pictures, i.e., I picture. Accordingly, signaling overhead costs are reduced.

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

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

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

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

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

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

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

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

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

Фиг. 6 - пример синтаксиса RBSP набора параметров картинки;Fig. 6 is an example of the RBSP syntax for a set of picture parameters;

Фиг. 7 является примером синтаксиса RBSP набора параметров картинки;Fig. 7 is an example of the RBSP picture parameter set syntax;

Фиг. 8 - пример синтаксиса набора параметров адаптации;Fig. 8 is an example of the syntax of a set of adaptation parameters;

Фиг. 9 является примером общего синтаксиса заголовка слайса;Fig. 9 is an example of general slice header syntax;

Фиг. 10а представляет собой пример синтаксической структуры единицы дерева кодировки;Fig. 10a is an example of the syntactic structure of an encoding tree unit;

Фиг. 10b - пример синтаксиса заголовка картинки;Fig. 10b is an example of picture header syntax;

Фиг. 11 - еще один пример общего синтаксиса заголовка слайса;Fig. 11 is another example of general slice header syntax;

Фиг. 12 показана блок-схема 1200, иллюстрирующая способ, реализованный устройством кодирования;Fig. 12 is a block diagram 1200 illustrating a method implemented by an encoding device;

Фиг. 13 показывает блок-схему 1300, иллюстрирующую способ, реализованный устройством декодирования;Fig. 13 shows a block diagram 1300 illustrating a method implemented by a decoding apparatus;

Фиг. 14 иллюстрирует конфигурацию устройства кодирования;Fig. 14 illustrates the configuration of an encoding device;

Фиг. 15 иллюстрирует конфигурацию устройства декодирования;Fig. 15 illustrates the configuration of a decoding device;

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

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

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

ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯIMPLEMENTATION OF THE INVENTION

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Блок 204 вычисления остатка, блок 206 обработки преобразования, блок 208 квантования, блок 260 выбора режима могут относится к формированию прямого пути прохождения сигнала кодера 20, тогда как блок 210 обратного квантования, блок 212 обработки обратного преобразования, блок 214 восстановления, буфер 216, контурный фильтр 220, буфер 230 (DPB) декодированных картинок, блок 244 внешнего предсказания и блок 254 внутреннего предсказания могут относится к формированию обратного пути прохождения сигнала видеокодера 20, при этом обратный путь прохождения сигнала видеокодера 20 соответствует пути прохождения сигнала декодера (см. видеодекодер 30 на Фиг. 3). Блок 210 обратного квантования, блок 212 обработки обратного преобразования, блок 214 восстановления, контурный фильтр 220, буфер декодированных картинок (DPB) 230, блок 244 внешнего предсказания и блок 254 внутреннего предсказания также относятся к формированию «встроенного декодера» видеокодера 20.The remainder calculation block 204, transform processing block 206, quantization block 208, mode selection block 260 may relate to the formation of the forward signal path of the encoder 20, while the inverse quantization block 210, inverse transform processing block 212, restoration block 214, buffer 216, contour filter 220, decoded picture buffer (DPB) 230, inter prediction block 244, and intra prediction block 254 may relate to generating a reverse signal path of video encoder 20, wherein the reverse signal path of video encoder 20 corresponds to the signal path of the decoder (see video decoder 30 on Fig. 3). The inverse quantization unit 210, the inverse transform processing unit 212, the restoration unit 214, the loop filter 220, the decoded picture buffer (DPB) 230, the inter prediction unit 244, and the intra prediction unit 254 are also relevant to forming the “on-chip decoder” of the video encoder 20.

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

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

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

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

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

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

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

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

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

Вычисление остаткаCalculating the remainder

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ФильтрацияFiltration

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

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

Буфер декодированных картинокBuffer of decoded pictures

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

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

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

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

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

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

Далее более подробно поясняется разделение (например, посредством блока 260 разбиения) и обработка предсказания (посредством блока 244 внешнего предсказания и блока 254 внутреннего предсказания), выполняемые примерным видеокодером 20.Next, the division (e.g., through partitioner 260) and prediction processing (through inter-prediction block 244 and intra-prediction block 254) performed by the exemplary video encoder 20 are explained in more detail.

РазделениеSeparation

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ФильтрацияFiltration

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

Буфер декодированных картинокBuffer of decoded pictures

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Способ 2: удаление MSB переполнения посредством усечения значенияMethod 2: Remove MSB overflow by truncating the value

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

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

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

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

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

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

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

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

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

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

Наборы параметровParameter Sets

Наборы параметров в современных кодеках принципиально схожи и преследуют одни и те же основные цели разработки, а именно эффективность скорости передачи данных, устойчивость к ошибкам и предоставление интерфейсов системного уровня. В HEVC (H.265) существует иерархия наборов параметров, включающая в себя набор параметров видео (VPS), набор параметров последовательности (SPS) и набор параметров картинки (PPS), которые аналогичны своим аналогам в AVC и VVC. Каждый слайс ссылается на один активный PPS, SPS и VPS для доступа к информации, используемой для декодирования слайса. PPS содержит информацию, которая применяется ко всем слайсам в картинке, и, следовательно, все слайсы в картинке должны относиться к одному и тому же PPS. Слайсы в разных картинках также могут ссылаться на один и тот же PPS. Аналогичным образом, SPS содержит информацию, которая применяется ко всем картинкам в одной и той же кодируемой/декодируемой видеопоследовательности.The parameter sets in modern codecs are fundamentally similar and pursue the same basic design goals, namely data rate efficiency, error tolerance, and provision of system-level interfaces. In HEVC (H.265), there is a hierarchy of parameter sets, including a video parameter set (VPS), a sequence parameter set (SPS), and a picture parameter set (PPS), which are similar to their counterparts in AVC and VVC. Each slice references one active PPS, SPS and VPS to access information used to decode the slice. The PPS contains information that applies to all slices in a picture, and therefore all slices in a picture must belong to the same PPS. Slices in different pictures can also refer to the same PPS. Likewise, the SPS contains information that applies to all pictures in the same coded/decoded video sequence.

Хотя PPS может различаться для отдельных картинках, обычно многие или все картинки в кодируемой/декодируемой видеопоследовательности относятся к одному и тому же PPS. Повторное использование наборов параметров является эффективным с точки зрения битрейта, поскольку позволяет избежать многократной отправки совместно используемой информации. Он также является устойчивым к потерям, поскольку позволяет переносить содержимое набора параметров по более надежному внешнему каналу связи или часто повторять его в битовом потоке, чтобы гарантировать, что он не будет потерян.Although the PPS may vary for individual pictures, typically many or all of the pictures in a video sequence to be encoded/decoded are assigned to the same PPS. Reusing parameter sets is bitrate efficient because it avoids sending shared information multiple times. It is also loss-tolerant because it allows the contents of the parameter set to be carried over a more reliable external communication channel or repeated frequently in the bitstream to ensure that it is not lost.

В HEVC, чтобы идентифицировать для данного слайса активный набор параметров на каждом уровне иерархии типов набора параметров, каждый заголовок слайса содержит идентификатор PPS, который ссылается на конкретный PPS. Внутри PPS находится идентификатор, который ссылается на конкретный SPS. В свою очередь, внутри SPS есть идентификатор, который ссылается на конкретный VPS.In HEVC, to identify for a given slice the active parameter set at each level of the parameter set type hierarchy, each slice header contains a PPS identifier that refers to a specific PPS. Inside the PPS is an identifier that refers to a specific SPS. In turn, inside the SPS there is an identifier that refers to a specific VPS.

Набор параметров активируется, когда текущий кодированный слайс, подлежащий декодированию, ссылается на этот набор параметров. Все активные наборы параметров должны быть доступны для декодера при первом обращении к ним. Наборы параметров могут быть отправлены внутри или вне диапазона, а также могут быть отправлены повторно.A parameter set is activated when the current encoded slice to be decoded references this parameter set. All active parameter sets must be available to the decoder the first time they are accessed. Parameter sets can be sent within or outside the range, and can also be sent repeatedly.

Наборы параметров могут быть получены в любом порядке.The parameter sets can be obtained in any order.

Эти особенности наборов параметров обеспечивают повышенную устойчивость к ошибкам за счет устранения некоторых потерь наборов параметров в сети. Кроме того, использование наборов параметров позволяет декодировать отдельный слайс, даже если другой слайс в той же картинке терпит потери в сети, по сравнению с тем, если заголовок картинки, содержащий ту же информацию, присутствует в поднаборе слайсов картинки.These features of parameter sets provide increased error tolerance by eliminating some of the loss of parameter sets in the network. In addition, the use of parameter sets allows a single slice to be decoded even if another slice in the same picture suffers network loss, compared to if a picture header containing the same information is present in a subset of the picture slices.

Набор параметров картинки (PPS)Picture Parameter Set (PPS)

PPS содержит параметры, которые могут изменяться для разных картинок в одной и той же закодированной видеопоследовательности. Однако несколько картинок могут относиться к одному и тому же PPS, даже с разными типами кодирования слайсов (I, P и B). Включение этих параметров в наборы параметров картинки, а не в заголовок слайса, может улучшить эффективность скорости передачи данных и обеспечить устойчивость к ошибкам при более надежной передаче PPS.PPS contains parameters that can change for different pictures in the same encoded video sequence. However, multiple pictures can belong to the same PPS, even with different slice encoding types (I, P and B). Including these parameters in picture parameter sets rather than in the slice header can improve data rate efficiency and provide error tolerance for more reliable PPS transmission.

PPS содержит идентификатор PPS, а также индекс опорного SPS. Остальные параметры описывают инструменты кодировки, используемые в слайсах, которые относятся к PPS. Инструменты кодировки могут быть включены или отключены, включая тайлы, взвешенное предсказание, скрытие данных знака, временное предсказание вектора движения и т. д. Параметры инструмента кодировки, сигнализируемые в PPS, включают в себя количество опорных индексов, начальный параметр квантования (QP) и смещения QP цветности. Параметры инструмента кодировки также могут сигнализироваться в PPS, например, элементы управления фильтром устранения блочности, конфигурации тайлов и данные списка масштабирования. Пример PPS изображен на фиг. 6 и 7, в соответствии с документом «Versatile Video Coding (Draft 6) of Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 (available under http://phenix.it-sudparis.eu/jvet/, document no: Document: JVET-O2001-vE).The PPS contains the PPS ID as well as the reference SPS index. The remaining parameters describe the encoding tools used in slices that are specific to PPS. Encoding tools can be enabled or disabled, including tiles, weighted prediction, sign data hiding, temporal motion vector prediction, etc. Encoding tool parameters signaled in PPS include number of reference indexes, quantization start parameter (QP), and offsets Chroma QP. Encoding tool parameters can also be signaled to the PPS, such as deblocking filter controls, tile configurations, and scaling list data. An example PPS is shown in FIG. 6 and 7, in accordance with the document “Versatile Video Coding (Draft 6) of Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 (available under http:/ /phenix.it-sudparis.eu/jvet/, document no: Document: JVET-O2001-vE).

На фиг. 7 изображен участок PPS. На этом рисунке синтаксический элемент Constant_slice_header_params_enabled_flag (constant_slice_header_params_enabled_flag) указывает, имеются ли постоянные параметры в PPS. Когда значение Constant_slice_header_params_enabled_flag равно 1, дополнительные синтаксические элементы , такие как pps_temporal_mvp_enabled_idc (730), включаются в PPS. pps_temporal_mvp_enabled_idc - это синтаксический элемент, который может присутствовать в PPS и управлять применением временного предсказания вектора движения и указывает следующее:In fig. 7 shows a PPS section. In this figure, the syntax element Constant_slice_header_params_enabled_flag (constant_slice_header_params_enabled_flag) indicates whether there are constant parameters in the PPS. When the value of Constant_slice_header_params_enabled_flag is 1, additional syntax elements such as pps_temporal_mvp_enabled_idc (730) are included in the PPS. pps_temporal_mvp_enabled_idc is a syntax element that can be present in PPS that controls the application of temporal motion vector prediction and specifies the following:

Если значение синтаксического элемента равно 1, то временное предсказание MV отключено в слайсах, которые ссылаются на упомянутый PPS.If the value of the syntax element is 1, then MV temporal prediction is disabled in slices that reference the referenced PPS.

Если значение синтаксического элемента равно 2, то временное предсказание MV включено в слайсах, которые ссылаются на упомянутый PPS.If the value of the syntax element is 2, then MV temporal prediction is enabled in the slices that reference the referenced PPS.

Если значение синтаксического элемента равно 0, то в заголовок слайса включается второй синтаксический элемент для управления применением временного предсказания MV для слайса. В соответствии с предшествующим уровнем техники (JVET-O2001-vE), значение pps_temporal_mvp_enabled_idc, равное 0, указывает, что синтаксический элемент slice_temporal_mvp_enabled_flag присутствует в заголовке слайсов с slice_type, не равным I слайсов, ссылающихся на PPS. pps_temporal_mvp_enabled_idc, равный 1 или 2, указывает, что slice_temporal_mvp_enabled_flag отсутствует в заголовке слайсов, ссылающихся на PPS. pps_temporal_mvp_enabled_idc, равный 3, зарезервирован для будущего использования ITU-T | ISO/IEC.If the value of the syntax element is 0, then a second syntax element is included in the slice header to control the application of MV temporal prediction to the slice. According to the prior art (JVET-O2001-vE), a pps_temporal_mvp_enabled_idc value of 0 indicates that the slice_temporal_mvp_enabled_flag syntax element is present in the header of slices with slice_type not equal to I slices referencing the PPS. pps_temporal_mvp_enabled_idc equal to 1 or 2 indicates that slice_temporal_mvp_enabled_flag is not present in the header of slices referencing the PPS. pps_temporal_mvp_enabled_idc equal to 3 reserved for future use by ITU-T | ISO/IEC.

На фиг.7 изображен другой пример, который представляет собой флаг dep_quant_enabled_flag (720). Значение pps_dep_quant_enabled_idc, равное 0, указывает, что синтаксический элемент dep_quant_enabled_flag присутствует в заголовке слайсов, ссылающихся на PPS. pps_dep_quant_enabled_idc, равный 1 или 2, указывает, что синтаксический элемент dep_quant_enabled_flag отсутствует в заголовке слайсов, ссылающихся на PPS. pps_dep_quant_enabled_idc, равный 3, зарезервирован для будущего использования ITU-T | ISO/IEC. Когда флаг dep_quant_enabled_flag управляет применением зависимого квантования слайса, значение нуля соответствует отключению зависимого квантования, а значение 1 соответствует включению зависимого квантования. Когда pps_dep_quant_enabled_idc не равен нулю, флаг dep_quant_enabled_flag не включается в заголовок слайса, вместо этого логически выводится, что его значение равно pps_dep_quant_enabled_idc - 1.Figure 7 shows another example, which is the dep_quant_enabled_flag (720). A pps_dep_quant_enabled_idc value of 0 indicates that the dep_quant_enabled_flag syntax element is present in the header of slices referencing the PPS. pps_dep_quant_enabled_idc equal to 1 or 2 indicates that the dep_quant_enabled_flag syntax element is not present in the header of slices referencing the PPS. pps_dep_quant_enabled_idc equal to 3 reserved for future use by ITU-T | ISO/IEC. When the dep_quant_enabled_flag controls the use of dependent quantization on a slice, a value of zero corresponds to disabling dependent quantization, and a value of 1 corresponds to enabling dependent quantization. When pps_dep_quant_enabled_idc is not zero, the dep_quant_enabled_flag is not included in the slice header, but is instead inferred to be pps_dep_quant_enabled_idc - 1.

Синтаксические элементы, которые включаются в PPS, когда для параметра Constant_slice_header_params_enabled_flag установлено значение true, показаны на рис. 7. Синтаксические элементы определяют значения по умолчанию, которые включаются в PPS, когда для параметра Constant_slice_header_params_enabled_flag установлено значение true, и имеют следующее общее свойство:The syntax elements that are included in PPS when Constant_slice_header_params_enabled_flag is set to true are shown in Figure 1. 7. Syntax elements define default values that are included in PPS when Constant_slice_header_params_enabled_flag is set to true, and have the following common property:

Каждый синтаксический элемент в PPS имеет соответствующий синтаксический элемент в заголовке слайса. Например, pps_dep_quant_enabled_idc - это синтаксический элемент в PPS, а dep_quant_enabled_flag - соответствующий синтаксический элемент в заголовке слайса.Each syntax element in PPS has a corresponding syntax element in the slice header. For example, pps_dep_quant_enabled_idc is a syntax element in PPS, and dep_quant_enabled_flag is the corresponding syntax element in the slice header.

Если синтаксический элемент в PPS имеет нулевое значение, то аналог заголовка слайса присутствует (включен) в заголовок слайса. В противном случае синтаксический элемент заголовка слайса отсутствует в заголовке слайса.If the syntax element in PPS has a null value, then the equivalent of the slice header is present (included) in the slice header. Otherwise, the slice header syntax element is not present in the slice header.

Если синтаксический элемент в PPS имеет значение, отличное от нуля, то значение соответствующего синтаксического элемента заголовка слайса выводится в соответствии со значением синтаксического элемента в PPS. Например, если значение pps_dep_quant_enabled_idc равно 1, логически выводится, что значение dep_quant_enabled_idc равно pps_dep_quant_enabled_idc - 1=0.If a syntax element in the PPS has a value other than zero, then the value of the corresponding syntax element in the slice header is output according to the value of the syntax element in the PPS. For example, if the value of pps_dep_quant_enabled_idc is 1, it is logically concluded that the value of dep_quant_enabled_idc is equal to pps_dep_quant_enabled_idc - 1=0.

В форматах VVC и HEVC разделы одной и той же видеокартинки (слайсы, тайлы, субкартинки, кирпичи и т. д.) должны относиться к одному и тому же набору параметров картинки. Это требование стандарта кодировки, поскольку PPS может включать в себя параметры, применимые ко всей картинке. Например, синтаксические элементы, заключенные в квадратную скобку (610), описывают, как картинка разделена на несколько разделов тайла следующим образом:In VVC and HEVC formats, sections of the same video picture (slices, tiles, subpictures, bricks, etc.) must refer to the same set of picture parameters. This is a requirement of the encoding standard because PPS may include parameters that apply to the entire picture. For example, the syntax elements enclosed in square bracket (610) describe how the picture is divided into several tile sections as follows:

tile_cols_width_minus1 указывает ширину каждого тайла в единицах CTB, когда картинка равномерно разделена на тайлы.tile_cols_width_minus1 specifies the width of each tile in CTB units when the image is evenly divided into tiles.

tile_rows_height_minus1 указывает высоту каждого тайла в единицах CTB, когда картинка равномерно разделена на тайлы.tile_rows_height_minus1 specifies the height of each tile in CTB units when the image is evenly divided into tiles.

num_tile_columns_minus1 указывает количество столбцов тайлов в картинке.num_tile_columns_minus1 indicates the number of tile columns in the image.

num_tile_rows_minus1 указывает количество строк тайлов в картинке.num_tile_rows_minus1 indicates the number of rows of tiles in the image.

Картинка, относящаяся к PPS, разделена на несколько частей тайла, которые указаны в соответствии с приведенными выше синтаксическими элементами. Если два слайса одной и той же картинки ссылаются на 2 разных PPS, это может вызвать конфликтную ситуацию, поскольку каждый PPS может указывать разные типы разделения картинки на тайлы. Поэтому запрещается, чтобы 2 слайса (или вообще 2 раздела картинки) ссылались на 2 разных PPS.The PPS-related picture is divided into several tile parts, which are specified according to the syntax elements above. If two slices of the same image refer to 2 different PPS, this can cause a conflict situation, since each PPS can specify different types of image tiles. Therefore, it is prohibited for 2 slices (or even 2 sections of a picture) to refer to 2 different PPS.

В VVC определены различные механизмы разделения картинки, они называются слайсами, тайлами, кирпичами и субкартинками. В настоящей заявке раздел картинки является общим термином для обозначения любого из слайсов, тайлов, кирпичей или субкартинок. Раздел картинки обычно относится к части кадра, кодируемой независимо от других частей той же картинки.VVC defines various mechanisms for dividing a picture, they are called slices, tiles, bricks and subpictures. As used herein, a picture section is a general term to refer to any of the slices, tiles, bricks, or subpictures. A picture section usually refers to a portion of a frame that is encoded independently of other parts of the same picture.

Набор параметров адаптацииSet of adaptation parameters

В современных видеокодеках битовый поток состоит из последовательности блоков данных, называемых блоками уровня сетевой абстракции (NAL). Некоторые блоки NAL содержат наборы параметров, которые несут информацию высокого уровня, касающуюся всей закодированной видеопоследовательности или подмнабора картинок в ней. Другие блоки NAL несут закодированные выборки в форме слайсов, принадлежащих одному из различных типов картинки. Набор параметров адаптации (APS) представляет собой набор параметров, который используется для инкапсуляции данных управления фильтром ALF (например, коэффициентов фильтра).In modern video codecs, a bitstream consists of a sequence of data blocks called network abstraction layer (NAL) blocks. Some NAL blocks contain parameter sets that carry high-level information regarding the entire encoded video sequence or a subset of pictures within it. Other NAL blocks carry encoded samples in the form of slices belonging to one of the different picture types. An adaptation parameter set (APS) is a set of parameters that is used to encapsulate ALF filter control data (eg, filter coefficients).

Фиг. 8 иллюстрирует набор параметров адаптации в соответствии с документом «Versatile Video Coding (Draft 6) of Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 (available under http://phenix.it-sudparis.eu/jvet/, document no: Document: JVET-O2001-vE).Fig. 8 illustrates a set of adaptation parameters in accordance with the document “Versatile Video Coding (Draft 6) of Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 (available under http: //phenix.it-sudparis.eu/jvet/, document no: Document: JVET-O2001-vE).

Заголовок слайсаSlice title

Заголовок сегмента слайса содержит индекс опорного PPS. Заголовок сегмента слайса содержит данные, идентифицирующие начальный адрес слайса. Некоторые параметры включаются только в первый сегмент слайса, включая тип слайса (I, P или B), флаг вывода картинки и т. д. Присутствие некоторых параметров инструмента кодировки в заголовке слайса, если инструменты были включены в SPS или PPS, в том числе включение SAO отдельно для яркости и цветности, включение операции фильтра устранения блочности для слайсов и начальное значение параметра квантования слайса (QP). Параметры фильтра устранения блочности могут присутствовать либо в заголовке сегмента слайса, либо в PPS.The slice segment header contains the index of the reference PPS. The slice segment header contains data identifying the starting address of the slice. Some parameters are included only in the first segment of the slice, including the slice type (I, P or B), the picture output flag, etc. The presence of some encoding tool parameters in the slice header if the tools were included in SPS or PPS, including inclusion SAO separately for luma and chrominance, enabling the deblocking filter operation for slices, and the initial value of the slice quantization parameter (QP). The deblocking filter parameters can be present either in the slice segment header or in the PPS.

Кодированный слайсCoded slice

Каждый кодированный слайс обычно состоит из заголовка слайса, за которым следуют данные слайса. Заголовок слайса несет управляющую информацию для слайса, а данные слайса несут закодированные выборки. На фиг. 9 и 11 показан заголовок слайса в соответствии с документом JVET-O2001-vE. Кроме того, на фиг.10а показана синтаксическая структура единицы дерева кодировки, которая является частью данных слайса.Each encoded slice typically consists of a slice header followed by slice data. The slice header carries control information for the slice, and the slice data carries the encoded samples. In fig. 9 and 11 show the slice header according to JVET-O2001-vE. In addition, Fig. 10a shows the syntactic structure of an encoding tree unit that is part of the slice data.

Каждый слайс независим от других слайсов в том смысле, что информация, содержащаяся в слайсе, кодируется без какой-либо зависимости от данных из других слайсов в пределах той же картинки.Each slice is independent of other slices in the sense that the information contained in a slice is encoded without any dependence on data from other slices within the same picture.

Заголовок картинкиPicture title

Заголовок картинки (PH) представляет собой синтаксическую структуру, содержащую синтаксические элементы, которые применяются ко всем слайсам кодированной картинки. На фиг. 10b показан пример заголовка картинки в соответствии с документом JVET-P1006 (http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/16_Geneva/wg11/JVET-P1006-v2.zip). Например, pic_temporal_mvp_enabled_flag определяет, можно ли использовать предикторы временного вектора движения для внешнего предсказания для всех слайслв, ассоциированных с заголовком картинки. Если pic_temporal_mvp_enabled_flag равен 0, синтаксические элементы слайсов, связанных с заголовком картинки, должны быть ограничены таким образом, чтобы при декодировании слайсов не использовался предсказатель временного вектора движения. В противном случае (pic_temporal_mvp_enabled_flag равен 1) могут использоваться предикторы временного вектора движения при декодировании слайсов, ассоциированных с заголовком картинки.A picture header (PH) is a syntactic structure containing syntactic elements that apply to all slices of the encoded picture. In fig. 10b shows an example of a picture header according to the document JVET-P1006 (http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/16_Geneva/wg11/JVET-P1006-v2.zip). For example, pic_temporal_mvp_enabled_flag determines whether temporal motion vector predictors can be used for external prediction for all slices associated with the picture title. If pic_temporal_mvp_enabled_flag is 0, the syntax elements of the slices associated with the picture header must be constrained such that the temporal motion vector predictor is not used when decoding the slices. Otherwise (pic_temporal_mvp_enabled_flag is equal to 1), temporal motion vector predictors may be used when decoding the slices associated with the picture title.

Заголовок картинки предназначен для всех типов картинок, т.е. I-картинка, P-картинка и B-картинка. I-картинка содержит только блок внутреннего предсказания, в то время как картинка P или B содержит блок внутреннего предсказания. Разница между картинками P и B заключается в том, что картинка B может содержать блок внешнего предсказания с двунаправленным предсказанием, в то время как в картинке P разрешено только однонаправленное внешнее предсказание. Обратите внимание, что в картинках P или B также могут быть блоки с внутренним предсказанием.The picture title is for all types of pictures, i.e. I-picture, P-picture and B-picture. The I picture contains only the intra prediction block, while the P or B picture contains the intra prediction block. The difference between pictures P and B is that picture B can contain an inter-prediction block with bi-directional prediction, while picture P only allows uni-directional inter-prediction. Note that pictures P or B may also have intra-prediction blocks.

В заголовке картинки имеется довольно много синтаксических элементов, которые применимы только для внешнего предсказания, а именно только для P- и B-картинок. Эти элементы не являются необходимыми для I-картинок.There are quite a few syntactic elements in the picture header that are only applicable for external prediction, namely only for P- and B-pictures. These elements are not necessary for I-pictures.

Варианты осуществления этого изобретения предлагают ввести флаг, указывающий, является ли текущая картинка I-картинкой или нет. Когда текущей картинкой является I-картинка, все синтаксические элементы, предназначенные для внешнего предсказания, не сигнализируются в заголовке картинки, а выводятся в значение по умолчанию. Embodiments of this invention propose to introduce a flag indicating whether the current picture is an I-picture or not. When the current picture is an I-picture, all syntactic elements intended for external prediction are not signaled in the picture header, but are output to a default value.

В одном примере предлагаемый флаг называется ph_all_intra_flag. Использование этого флага иллюстрируется следующим образом.In one example, the proposed flag is called ph_all_intra_flag. The use of this flag is illustrated as follows.

partition_constraints_override_flag, равный 1, указывает, что параметры ограничения раздела присутствуют в заголовке картинки. partition_constraints_override_flag, равный 0, указывает, что параметры ограничения раздела отсутствуют в заголовке картинки. Если он отсутствует, логически выводится, что значение partition_constraints_override_flag равно 0. partition_constraints_override_flag equal to 1 indicates that the partition constraint parameters are present in the image header. partition_constraints_override_flag equal to 0 indicates that the partition constraint parameters are not present in the image header. If it is missing, the value of partition_constraints_override_flag is inferred to be 0.

pic_log2_diff_min_qt_min_cb_intra_slice_luma задает разницу между логарифмом по основанию 2 минимального размера в выборках яркости листового блока яркости, полученным в результате разбиения CTU квадродеревом, и логарифмом по основанию 2 минимального размера блока кодировки в выборках яркости для CU яркости в слайсах с slice_type равным 2 (I), ассоциированным с заголовком картинки. Значение pic_log2_diff_min_qt_min_cb_intra_slice_luma должно находиться в диапазоне от 0 до CtbLog2SizeY - MinCbLog2SizeY включительно. Если он отсутствует, логически выводится, что значение pic_log2_diff_min_qt_min_cb_luma равно sps_log2_diff_min_qt_min_cb_intra_slice_luma. pic_log2_diff_min_qt_min_cb_intra_slice_luma specifies the difference between the base 2 logarithm of the minimum size in luminance samples of a leaf luminance block resulting from a quadtree partition of the CTU, and the base 2 logarithm of the minimum size of the encoding block in luminance samples for a luminance CU in slices with slice_type equal to 2 (I) associated with the title of the picture. The value of pic_log2_diff_min_qt_min_cb_intra_slice_luma must be in the range from 0 to CtbLog2SizeY - MinCbLog2SizeY inclusive. If it is missing, it is logically concluded that the value of pic_log2_diff_min_qt_min_cb_luma is equal to sps_log2_diff_min_qt_min_cb_intra_slice_luma.

pic_log2_diff_min_qt_min_cb_inter_slice определяет разницу между логарифмом по основанию 2 минимального размера в выборках яркости листового блока яркости, полученным в результате разбиения CTU квадродеревом, и логарифмом по основанию 2 минимального размера блока кодировки яркости в выборках яркости для CU яркости в слайсах с slice_type, равным 0 (B) или 1 (P), асоциированным с заголовком картинки. Значение pic_log2_diff_min_qt_min_cb_inter_slice должно находиться в диапазоне от 0 до CtbLog2SizeY - MinCbLog2SizeY включительно. Если он отсутствует, логически выводится, что значение pic_log2_diff_min_qt_min_cb_luma равно sps_log2_diff_min_qt_min_cb_inter_slice. pic_log2_diff_min_qt_min_cb_inter_slice defines the difference between the base 2 logarithm of the minimum size in luminance samples of a leaf luminance block resulting from a quadtree partition of the CTU, and the base 2 logarithm of the minimum size of luminance encoding block in luminance samples for a luminance CU in slices with slice_type equal to 0 (B) or 1 (P) associated with the title of the picture. The value of pic_log2_diff_min_qt_min_cb_inter_slice must be in the range from 0 to CtbLog2SizeY - MinCbLog2SizeY inclusive. If it is missing, it is logically concluded that the value of pic_log2_diff_min_qt_min_cb_luma is equal to sps_log2_diff_min_qt_min_cb_inter_slice.

pic_max_mtt_hierarchy_depth_inter_slice определяет максимальную глубину иерархии для блоков кодировки, полученных в результате многотипного разбиения дерева некоторого листа квадродерева на слайсы с slice_type, равным 0 (B) или 1 (P), ассоциированным с заголовком картинки. Значение pic_max_mtt_hierarchy_depth_inter_slice должно находиться в диапазоне от 0 до CtbLog2SizeY - MinCbLog2SizeY включительно. Если он отсутствует, логически выводится, что значение pic_max_mtt_hierarchy_depth_inter_slice равно sps_max_mtt_hierarchy_depth_inter_slice. pic_max_mtt_hierarchy_depth_inter_slice defines the maximum hierarchy depth for encoding blocks obtained as a result of a multi-type tree split of some quadtree leaf into slices with slice_type equal to 0 (B) or 1 (P) associated with the picture title. The value of pic_max_mtt_hierarchy_depth_inter_slice must be in the range from 0 to CtbLog2SizeY - MinCbLog2SizeY inclusive. If it is missing, the value of pic_max_mtt_hierarchy_depth_inter_slice is inferred to be equal to sps_max_mtt_hierarchy_depth_inter_slice.

pic_max_mtt_hierarchy_depth_intra_slice_luma определяет максимальную глубину иерархии для блоков кодировки, возникающих в результате многотипного разбиения дерева некоторого листа квадродерева на слайсы с slice_type, равным 2 (I), ассоциированным с заголовком картинки. Значение pic_max_mtt_hierarchy_depth_intra_slice_luma должно находиться в диапазоне от 0 до CtbLog2SizeY - MinCbLog2SizeY включительно. Если он отсутствует, логически выводится, что значение pic_max_mtt_hierarchy_depth_intra_slice_luma равно sps_max_mtt_hierarchy_depth_intra_slice_luma. pic_max_mtt_hierarchy_depth_intra_slice_luma defines the maximum hierarchy depth for encoding blocks resulting from a multi-type tree split of some quadtree leaf into slices with slice_type equal to 2 (I) associated with the picture title. The value of pic_max_mtt_hierarchy_depth_intra_slice_luma must be in the range from 0 to CtbLog2SizeY - MinCbLog2SizeY inclusive. If it is missing, it is logically concluded that the value of pic_max_mtt_hierarchy_depth_intra_slice_luma is equal to sps_max_mtt_hierarchy_depth_intra_slice_luma.

pic_log2_diff_max_bt_min_qt_intra_slice_luma определяет разницу между логарифмом по основанию 2 максимального размера (ширины или высоты) в выборках яркости блока кодировки яркости, который можно разделить с помощью двоичного разбиения, и минимальным размером (ширина или высота) в выборках яркости листового блока яркости, полученного в результате разбиения CTU квадродеревом на слайсы с slice_type, равным 2 (I), ассоциированным с заголовком картинки. Значение pic_log2_diff_max_bt_min_qt_intra_slice_luma должно находиться в диапазоне от 0 до CtbLog2SizeY - MinQtLog2SizeIntraY включительно. Если он отсутствует, логически выводится, что значение pic_log2_diff_max_bt_min_qt_intra_slice_luma равно sps_log2_diff_max_bt_min_qt_intra_slice_luma. pic_log2_diff_max_bt_min_qt_intra_slice_luma defines the difference between the base-2 logarithm of the maximum size (width or height) in the luma samples of a luma encoding block that can be divided using a binary slice, and the minimum size (width or height) in the luma samples of a luma leaf block resulting from a CTU split quadtree into slices with slice_type equal to 2 (I), associated with the image title. The value of pic_log2_diff_max_bt_min_qt_intra_slice_luma must be in the range from 0 to CtbLog2SizeY - MinQtLog2SizeIntraY inclusive. If it is missing, it is logically deduced that the value of pic_log2_diff_max_bt_min_qt_intra_slice_luma is equal to sps_log2_diff_max_bt_min_qt_intra_slice_luma.

pic_log2_diff_max_tt_min_qt_intra_slice_luma определяет разницу между логарифмом по основанию 2 максимального размера (ширины или высоты) в выборках яркости блока кодировки яркости, который можно разбить с помощью троичного разбиения, и минимальным размером (ширина или высота) в выборках яркости листового блока яркости, полученного в результате разбиения CTU квадродеревом на слайсы с slice_type, равным 2 (I), ассоциированным с заголовком картинки. Значение pic_log2_diff_max_tt_min_qt_intra_slice_luma должно находиться в диапазоне от 0 до CtbLog2SizeY - MinQtLog2SizeIntraY включительно. Если он отсутствует, логически выводится, что значение pic_log2_diff_max_tt_min_qt_intra_slice_luma равно sps_log2_diff_max_tt_min_qt_intra_slice_luma. pic_log2_diff_max_tt_min_qt_intra_slice_luma defines the difference between the base-2 logarithm of the maximum size (width or height) in the luma samples of a luma encoding block that can be split using a ternary slice, and the minimum size (width or height) in the luma samples of a leaf luma block resulting from a CTU split quadtree into slices with slice_type equal to 2 (I), associated with the image title. The value of pic_log2_diff_max_tt_min_qt_intra_slice_luma must be in the range from 0 to CtbLog2SizeY - MinQtLog2SizeIntraY inclusive. If it is missing, it is logically deduced that the value of pic_log2_diff_max_tt_min_qt_intra_slice_luma is equal to sps_log2_diff_max_tt_min_qt_intra_slice_luma.

pic_log2_diff_max_bt_min_qt_inter_slice определяет разницу между логарифмом по основанию 2 максимального размера (ширины или высоты) в выборках яркости блока кодировки яркости, который может быть разбит с использованием двоичного разбиения, и минимальным размером (шириной или высотой) в выборках яркости листового блока яркости, полученного в результате разбиения CTU на слайсы с slice_type, равным 0 (B) или 1 (P), ассоциированным с заголовком картинки. Значение pic_log2_diff_max_bt_min_qt_inter_slice должно находиться в диапазоне от 0 до CtbLog2SizeY - MinQtLog2SizeInterY включительно. Если он отсутствует, логически выводится, что значение pic_log2_diff_max_bt_min_qt_inter_slice равно sps_log2_diff_max_bt_min_qt_inter_slice. pic_log2_diff_max_bt_min_qt_inter_slice defines the difference between the base-2 logarithm of the maximum size (width or height) in the luminance samples of a luminance encoding block that can be sliced using binary slicing, and the minimum size (width or height) in luminance samples of a leaf luminance block resulting from the split CTU for slices with slice_type equal to 0 (B) or 1 (P) associated with the image title. The value of pic_log2_diff_max_bt_min_qt_inter_slice must be in the range from 0 to CtbLog2SizeY - MinQtLog2SizeInterY inclusive. If it is missing, it is logically concluded that the value of pic_log2_diff_max_bt_min_qt_inter_slice is equal to sps_log2_diff_max_bt_min_qt_inter_slice.

pic_log2_diff_max_tt_min_qt_inter_slice определяет разницу между логарифмом по основанию 2 максимального размера (ширины или высоты) в выборках яркости блока кодировки яркости, который может быть разбит с использованием троичного разбиения, и минимальным размером (ширина или высота) в выборках яркости листового блока яркости, полученного в результате разбиения CTU квадродеревом на слайсы с slice_type, равным 0 (B) или 1 (P), ассоциированным с заголовком картинки. Значение pic_log2_diff_max_tt_min_qt_inter_slice должно находиться в диапазоне от 0 до CtbLog2SizeY - MinQtLog2SizeInterY включительно. Если он отсутствует, логически выводится, что значение pic_log2_diff_max_tt_min_qt_inter_slice равно sps_log2_diff_max_tt_min_qt_inter_slice. pic_log2_diff_max_tt_min_qt_inter_slice defines the difference between the base-2 logarithm of the maximum size (width or height) in the luma samples of a luma encoding block that can be split using a ternary split, and the minimum size (width or height) in the luma samples of a leaf luma block resulting from the split CTU quadtree into slices with slice_type equal to 0 (B) or 1 (P) associated with the picture title. The value of pic_log2_diff_max_tt_min_qt_inter_slice must be in the range from 0 to CtbLog2SizeY - MinQtLog2SizeInterY inclusive. If it is missing, it is logically concluded that the value of pic_log2_diff_max_tt_min_qt_inter_slice is equal to sps_log2_diff_max_tt_min_qt_inter_slice.

pic_log2_diff_min_qt_min_cb_intra_slice_chroma определяет разницу между логарифмом по основанию 2 минимального размера в выборках яркости листового блока цветности, полученным в результате разбиения квадродерева CTU цветности с treeType, равным DUAL_TREE_CHROMA, и логарифмом по основанию 2 минимального размера блока кодировки в выборках яркости для CU цветности с treeType, равным DUAL_TREE_CHROMA, в слайсах с slice_type, равным 2 (I), ассоциированным с заголовком картинки. Значение pic_log2_diff_min_qt_min_cb_intra_slice_chroma должно находиться в диапазоне от 0 до CtbLog2SizeY - MinCbLog2SizeY включительно. Если он отсутствует, логически выводится, что значение pic_log2_diff_min_qt_min_cb_intra_slice_chroma равно sps_log2_diff_min_qt_min_cb_intra_slice_chroma. pic_log2_diff_min_qt_min_cb_intra_slice_chroma defines the difference between the base 2 logarithm of the minimum size in luminance samples of a leaf chroma block obtained by splitting a chrominance CTU quadtree with treeType equal to DUAL_TREE_CHROMA and the base 2 logarithm of the minimum size of the encoding block in luminance samples for a chrominance CU with treeType equal to DUAL _TREE_CHROMA , in slices with slice_type equal to 2 (I) associated with the image title. The value of pic_log2_diff_min_qt_min_cb_intra_slice_chroma must be in the range from 0 to CtbLog2SizeY - MinCbLog2SizeY inclusive. If it is missing, it is logically concluded that the value of pic_log2_diff_min_qt_min_cb_intra_slice_chroma is equal to sps_log2_diff_min_qt_min_cb_intra_slice_chroma.

pic_max_mtt_hierarchy_depth_intra_slice_chroma определяет максимальную глубину иерархии для блоков кодировки цветности, полученную в результате многотипного древовидного разбиения листа квадродерева цветности с treeType, равным DUAL_TREE_CHROMA, на слайсы с slice_type, равным 2 (I), ассоциированным с заголовком картинки. Значение pic_max_mtt_hierarchy_depth_intra_slice_chroma должно находиться в диапазоне от 0 до CtbLog2SizeY - MinCbLog2SizeY включительно. Если он отсутствует, логически выводится, что значение pic_max_mtt_hierarchy_depth_intra_slice_chroma равно sps_max_mtt_hierarchy_depth_intra_slice_chroma. pic_max_mtt_hierarchy_depth_intra_slice_chroma defines the maximum hierarchy depth for chroma encoding blocks, resulting from a multi-type tree splitting of a chroma quadtree leaf with treeType equal to DUAL_TREE_CHROMA into slices with slice_type equal to 2 (I) associated with the picture title. The value of pic_max_mtt_hierarchy_depth_intra_slice_chroma must be in the range from 0 to CtbLog2SizeY - MinCbLog2SizeY inclusive. If it is missing, it is logically concluded that the value of pic_max_mtt_hierarchy_depth_intra_slice_chroma is equal to sps_max_mtt_hierarchy_depth_intra_slice_chroma.

pic_log2_diff_max_bt_min_qt_intra_slice_chroma определяет разницу между логарифмом по основанию 2 максимального размера (ширины или высоты) в выборках яркости блока кодировки цветности, который может быть разбит с использованием двоичного разбиения, и минимальным размером (ширина или высота) в выборках яркости листового блока цветности, полученного в результате разбиения CTU цветности на квадродерево с treeType, равным DUAL_TREE_CHROMA, на слайсы с slice_type, равным 2 (I), ассоциированным с заголовком картинки. Значение pic_log2_diff_max_bt_min_qt_intra_slice_chroma должно находиться в диапазоне от 0 до CtbLog2SizeY - MinQtLog2SizeIntraC включительно. Если он отсутствует, логически выводится, что значение pic_log2_diff_max_bt_min_qt_intra_slice_chroma равно sps_log2_diff_max_bt_min_qt_intra_slice_chroma. pic_log2_diff_max_bt_min_qt_intra_slice_chroma defines the difference between the base-2 logarithm of the maximum size (width or height) in the luminance samples of a chroma block that can be sliced using binary slicing, and the minimum size (width or height) in the luminance samples of a leaf chroma block resulting from the slice Chromaticity CTU per quadtree with treeType equal to DUAL_TREE_CHROMA, per slice with slice_type equal to 2 (I), associated with the picture title. The value of pic_log2_diff_max_bt_min_qt_intra_slice_chroma must be in the range from 0 to CtbLog2SizeY - MinQtLog2SizeIntraC inclusive. If it is missing, it is logically concluded that the value of pic_log2_diff_max_bt_min_qt_intra_slice_chroma is equal to sps_log2_diff_max_bt_min_qt_intra_slice_chroma.

pic_log2_diff_max_tt_min_qt_intra_slice_chroma определяет разницу между логарифмом по основанию 2 максимального размера (ширины или высоты) в выборках яркости блока кодировки цветности, который может быть разбит с использованием троичного разбиения, и минимальным размером (ширина или высота) в выборках яркости листового блока цветности, полученного в результате разбиения CTU цветности на квадродерево с treeType, равным DUAL_TREE_CHROMA, на слайсы с slice_type, равным 2 (I), ассоциированным с заголовком картинки. Значение pic_log2_diff_max_tt_min_qt_intra_slice_chroma должно находиться в диапазоне от 0 до CtbLog2SizeY - MinQtLog2SizeIntraC включительно. Если он отсутствует, логически выводится, что значение pic_log2_diff_max_tt_min_qt_intra_slice_chroma равно sps_log2_diff_max_tt_min_qt_intra_slice_chroma. pic_log2_diff_max_tt_min_qt_intra_slice_chroma defines the difference between the base-2 logarithm of the maximum size (width or height) in the luminance samples of a chroma block that can be sliced using a ternary slice, and the minimum size (width or height) in the luminance samples of a leaf chroma block resulting from the slice Chromaticity CTU per quadtree with treeType equal to DUAL_TREE_CHROMA, per slice with slice_type equal to 2 (I), associated with the picture title. The value of pic_log2_diff_max_tt_min_qt_intra_slice_chroma must be in the range from 0 to CtbLog2SizeY - MinQtLog2SizeIntraC inclusive. If it is missing, it is logically concluded that the value of pic_log2_diff_max_tt_min_qt_intra_slice_chroma is equal to sps_log2_diff_max_tt_min_qt_intra_slice_chroma.

pic_cu_qp_delta_subdiv_intra_slice определяет максимальное значение cbSubdiv блоков кодировки во внутреннем слайсе, которые передают cu_qp_delta_abs и cu_qp_delta_sign_flag. Значение pic_cu_qp_delta_subdiv_intra_slice должно находиться в диапазоне от 0 до 2 * ( CtbLog2SizeY − MinQtLog2SizeIntraY+pic_max_mtt_hierarchy_depth_intra_slice_luma ) включительно. pic_cu_qp_delta_subdiv_intra_slice defines the maximum cbSubdiv value of the encoding blocks in the inner slice that carry cu_qp_delta_abs and cu_qp_delta_sign_flag. The value of pic_cu_qp_delta_subdiv_intra_slice must be in the range 0 to 2 * ( CtbLog2SizeY − MinQtLog2SizeIntraY+pic_max_mtt_hierarchy_depth_intra_slice_luma ) inclusive.

Если он отсутствует, логически выводится, что значение pic_cu_qp_delta_subdiv_intra_slice равно 0.If it is missing, it is logically concluded that the value of pic_cu_qp_delta_subdiv_intra_slice is 0.

pic_cu_qp_delta_subdiv_inter_slice определяет максимальное значение cbSubdiv для блоков кодировки во внешнем слайсе, которые передают cu_qp_delta_abs и cu_qp_delta_sign_flag. Значение pic_cu_qp_delta_subdiv_inter_slice должно находиться в диапазоне от 0 до 2 * (CtbLog2SizeY − MinQtLog2SizeInterY+pic_max_mtt_hierarchy_depth_inter_slice) включительно. pic_cu_qp_delta_subdiv_inter_slice defines the maximum cbSubdiv value for encoding blocks in the outer slice that carry cu_qp_delta_abs and cu_qp_delta_sign_flag. The value of pic_cu_qp_delta_subdiv_inter_slice must be in the range from 0 to 2 * (CtbLog2SizeY − MinQtLog2SizeInterY+pic_max_mtt_hierarchy_depth_inter_slice) inclusive.

Если он отсутствует, логически выводится, что значение pic_cu_qp_delta_subdiv_inter_slice равно 0.If it is missing, it is logically concluded that the value of pic_cu_qp_delta_subdiv_inter_slice is 0.

pic_cu_chroma_qp_offset_subdiv_intra_slice определяет максимальное значение cbSubdiv блоков кодировки во внутреннем слайсе, которые передают cu_chroma_qp_offset_flag. Значение pic_cu_chroma_qp_offset_subdiv_intra_slice должно находиться в диапазоне от 0 до 2 * ( CtbLog2SizeY − MinQtLog2SizeIntraY+pic_max_mtt_hierarchy_depth_intra_slice_luma ) включительно. pic_cu_chroma_qp_offset_subdiv_intra_slice defines the maximum cbSubdiv value of the encoding blocks in the internal slice that pass cu_chroma_qp_offset_flag. The value of pic_cu_chroma_qp_offset_subdiv_intra_slice must be in the range 0 to 2 * ( CtbLog2SizeY − MinQtLog2SizeIntraY+pic_max_mtt_hierarchy_depth_intra_slice_luma ) inclusive.

Если он отсутствует, логически выводится, что значение pic_cu_chroma_qp_offset_subdiv_intra_slice равно 0.If it is missing, the value of pic_cu_chroma_qp_offset_subdiv_intra_slice is inferred to be 0.

pic_cu_chroma_qp_offset_subdiv_inter_slice определяет максимальное значение cbSubdiv блоков кодировки в внутреннем слайсе, которые передают cu_chroma_qp_offset_flag. Значение pic_cu_chroma_qp_offset_subdiv_inter_slice должно находиться в диапазоне от 0 до 2 * (CtbLog2SizeY − MinQtLog2SizeInterY+pic_max_mtt_hierarchy_depth_inter_slice) включительно. pic_cu_chroma_qp_offset_subdiv_inter_slice defines the maximum cbSubdiv value of the encoding blocks in the internal slice that pass cu_chroma_qp_offset_flag. The value of pic_cu_chroma_qp_offset_subdiv_inter_slice must be in the range 0 to 2 * (CtbLog2SizeY − MinQtLog2SizeInterY+pic_max_mtt_hierarchy_depth_inter_slice) inclusive.

Если он отсутствует, логически выводится, что значение pic_cu_chroma_qp_offset_subdiv_inter_slice равно 0.If it is missing, the value of pic_cu_chroma_qp_offset_subdiv_inter_slice is inferred to be 0.

pic_temporal_mvp_enabled_flag указывает, могут ли предикторы временного вектора движения использоваться для внешнего предсказания для слайсов, ассоциированных с заголовком картинки. Если pic_temporal_mvp_enabled_flag равен 0, синтаксические элементы слайсов, ассоцированных с заголовком картинки, должны быть ограничены таким образом, чтобы при декодировании слайсов не использовался предиктор временного вектора движения. В противном случае (pic_temporal_mvp_enabled_flag равен 1) могут использоваться предикторы временного вектора движения при декодировании слайсов, ассоцированных с заголовком картинки. pic_temporal_mvp_enabled_flag indicates whether temporal motion vector predictors can be used for external prediction for slices associated with the picture title. If pic_temporal_mvp_enabled_flag is 0, the syntax elements of the slices associated with the picture title must be constrained such that the temporal motion vector predictor is not used when decoding the slices. Otherwise (pic_temporal_mvp_enabled_flag is equal to 1), temporal motion vector predictors can be used when decoding slices associated with the picture title.

Когда pic_temporal_mvp_enabled_flag отсутствует, применяется следующее:When pic_temporal_mvp_enabled_flag is not present, the following applies:

Если sps_temporal_mvp_enabled_flag равен 0, логически выводится, что значение pic_temporal_mvp_enabled_flag равно 0.If sps_temporal_mvp_enabled_flag is 0, it is inferred that pic_temporal_mvp_enabled_flag is 0.

В противном случае (sps_temporal_mvp_enabled_flag равен 1) логически выводится, что значение pic_temporal_mvp_enabled_flag равно pps_temporal_mvp_enabled_idc - 1.Otherwise (sps_temporal_mvp_enabled_flag is equal to 1), it is logically deduced that the value of pic_temporal_mvp_enabled_flag is equal to pps_temporal_mvp_enabled_idc - 1.

mvd_l1_zero_flag, равный 1, определяет , что синтаксическая структура mvd_coding( x0, y0, 1 ) не анализируется синтаксически, а MvdL1[ x0 ][ y0 ][ compIdx ] и MvdL1 [ x0 ][ y0 ][ cpIdx ][ compIdx ] установлены равными 0 для compIdx=0..1 и cpIdx=0..2. mvd_l1_zero_flag, равный 0, указывает, что синтаксическая структура mvd_coding( x0, y0, 1 ) анализируется синтаксически. Если он отсутствует, логически выводится, что значение mvd_l1_zero_flag равно pps_mvd_l1_zero_idc - 1. mvd_l1_zero_flag equal to 1 specifies that the syntax structure mvd_coding( x0, y0, 1 ) is not parsed syntactically, and MvdL1[ x0 ][ y0 ][ compIdx ] and MvdL1[ x0 ][ y0 ][ cpIdx ][ compIdx ] are set to 0 for compIdx=0..1 and cpIdx=0..2. mvd_l1_zero_flag equal to 0 indicates that the syntactic structure mvd_coding( x0, y0, 1 ) is parsed syntactically. If it is missing, it is logically concluded that the value of mvd_l1_zero_flag is equal to pps_mvd_l1_zero_idc - 1.

pic_six_minus_max_num_merge_cand определяет максимальное количество кандидатов предсказания вектора движения слияния (MVP), поддерживаемых в слайсах, ассоциированных с заголовком картинки, вычтенное из 6. Максимальное количество кандидатов слияния MVP, MaxNumMergeCand, получается следующим образом: pic_six_minus_max_num_merge_cand specifies the maximum number of merge motion vector prediction (MVP) candidates supported in the slices associated with a picture title, subtracted from 6. The maximum number of MVP merge candidates, MaxNumMergeCand, is obtained as follows:

MaxNumMergeCand=6 - picsix_minus_max_num_merge_cand (7 111)MaxNumMergeCand=6 - picsix_minus_max_num_merge_cand (7 111)

Значение MaxNumMergeCand должно быть в диапазоне от 1 до 6 включительно. Если он отсутствует, логически выводится, что значение pic_six_minus_max_num_merge_cand равно pps_six_minus_max_num_merge_cand_plus1-1.The MaxNumMergeCand value must be between 1 and 6, inclusive. If it is missing, it is logically concluded that the value of pic_six_minus_max_num_merge_cand is equal to pps_six_minus_max_num_merge_cand_plus1-1.

pic_five_minus_max_num_subblock_merge_cand определяет максимальное количество кандидатов предсказания вектора движения слияния на основе субблоков, поддерживаемых в слайсе, вычтенное из 5. pic_five_minus_max_num_subblock_merge_cand specifies the maximum number of subblock-based merge motion vector prediction candidates supported in a slice, subtracted from 5.

Когда pic_five_minus_max_num_subblock_merge_cand отсутствует, применяется следующее:When pic_five_minus_max_num_subblock_merge_cand is missing, the following applies:

Если sps_affine_enabled_flag равен 0, логически выводится, что значение pic_five_minus_max_num_subblock_merge_cand равно 5 - (sps_sbtmvp_enabled_flag  &&  pic_temporal_mvp_enabled_flag ).If sps_affine_enabled_flag is 0, it is logically deduced that the value of pic_five_minus_max_num_subblock_merge_cand is 5 - (sps_sbtmvp_enabled_flag  &&  pic_temporal_mvp_enabled_flag ).

В противном случае (sps_affine_enabled_flag равен 1) логически выводится, что значение pic_five_minus_max_num_subblock_merge_cand равно pps_five_minus_max_num_subblock_merge_cand_plus1-1.Otherwise (sps_affine_enabled_flag is equal to 1), it is logically deduced that the value of pic_five_minus_max_num_subblock_merge_cand is equal to pps_five_minus_max_num_subblock_merge_cand_plus1-1.

Максимальное количество кандидатов MVP слияния на основе субблоков, MaxNumSubblockMergeCand, получается следующим образом:The maximum number of subblock-based merge MVP candidates, MaxNumSubblockMergeCand, is obtained as follows:

MaxNumSubblockMergeCand=5 - pic_five_minus_max_num_subblock_merge_cand (7 112)MaxNumSubblockMergeCand=5 - pic_five_minus_max_num_subblock_merge_cand (7 112)

Значение MaxNumSubblockMergeCand должно находиться в диапазоне от 0 до 5 включительно.The MaxNumSubblockMergeCand value must be between 0 and 5, inclusive.

pic_fpel_mmvd_enabled_flag, равное 1, определяет, что режим слияния с разностью векторов движения использует точность целочисленной выборки в слайсах, ассоциированных с заголовком картинки. Значение pic_fpel_mmvd_enabled_flag, равное 0, указывает, что режим слияния с разностью векторов движения может использовать дробную точность выборки в слайсах, ассоциированных с заголовком картинки. Если он отсутствует, логически выводится, что значение pic_fpel_mmvd_enabled_flag равно 0. pic_fpel_mmvd_enabled_flag equal to 1 specifies that the motion vector difference fusion mode uses integer sampling precision in the slices associated with the picture title. A pic_fpel_mmvd_enabled_flag value of 0 indicates that the motion vector difference fusion mode can use fractional sampling precision in the slices associated with the picture title. If it is missing, the value of pic_fpel_mmvd_enabled_flag is inferred to be 0.

pic_disable_bdof_dmvr_flag, равный 1, определяет, что ни двунаправленное внешнее предсказание двунаправленного оптического потока, ни внешнее двунаправленное предсказание уточнения вектора движения декодера не разрешены в слайсах, ассоциированных с заголовком картинки. pic_disable_bdof_dmvr_flag, равный 0, определяет, что двунаправленное внешнее предсказание двунаправленного оптического потока или внешнее двунаправленное предсказание уточнения вектора движения декодера могут быть разрешены или не разрешены в слайсах, ассоциированных с заголовком картинки. Если он отсутствует, логически выводится, что значение pic_disable_bdof_dmvr_flag равно 0. pic_disable_bdof_dmvr_flag equal to 1 specifies that neither bidirectional outer bidirectional optical flow prediction nor outer bidirectional decoder motion vector refinement prediction is enabled in the slices associated with the picture header. pic_disable_bdof_dmvr_flag equal to 0 specifies that bidirectional inter-prediction of bi-directional optical flow or external bi-directional decoder motion vector refinement prediction may or may not be enabled in the slices associated with the picture header. If it is missing, the value of pic_disable_bdof_dmvr_flag is inferred to be 0.

pic_max_num_merge_cand_minus_max_num_triangle_cand определяет максимальное количество треугольных кандидатов в режим слияния, поддерживаемых в слайсах, ассоциированных с заголовком pictur, вычтенным из MaxNumMergeCand. pic_max_num_merge_cand_minus_max_num_triangle_cand specifies the maximum number of triangular merge mode candidates supported in the slices associated with the pictur header subtracted from MaxNumMergeCand.

Если pic_max_num_merge_cand_minus_max_num_triangle_cand отсутствует, а значение sps_triangle_enabled_flag равно 1, а значение MaxNumMergeCand больше или равно 2, логически выводится, что pic_max_num_merge_cand_minus_max_num_triangle_cand равно pps_max_num_merge_cand_minus_max_num_triangle_cand_plus1 −1.If pic_max_num_merge_cand_minus_max_num_triangle_cand is missing and sps_triangle_enabled_flag is 1 and MaxNumMergeCand is greater than or equal to 2, the logical conclusion is that pic_max_num_merge_cand_minus_max_num_triangle_cand is equal to pps_max_num_merge_cand_minus_max_num_triangle_cand_plus1 −1.

Максимальное количество кандидатов в треугольный режим слияния, MaxNumTriangleMergeCand, получается следующим образом:The maximum number of triangular merge mode candidates, MaxNumTriangleMergeCand, is obtained as follows:

MaxNumTriangleMergeCand=MaxNumMergeCand - pic_max_num_merge_cand_minus_max_num_triangle_cand (7 113) MaxNumTriangleMergeCand=MaxNumMergeCand - pic_max_num_merge_cand_minus_max_num_triangle_cand (7 113)

Когда присутствует pic_max_num_merge_cand_minus_max_num_triangle_cand, значение MaxNumTriangleMergeCand должно находиться в диапазоне от 2 до MaxNumMergeCand включительно.When pic_max_num_merge_cand_minus_max_num_triangle_cand is present, the MaxNumTriangleMergeCand value must be in the range 2 to MaxNumMergeCand, inclusive.

Когда pic_max_num_merge_cand_minus_max_num_triangle_cand отсутствует и (sps_triangle_enabled_flag равен 0 или MaxNumMergeCand меньше 2), MaxNumTriangleMergeCand устанавливается равным 0.When pic_max_num_merge_cand_minus_max_num_triangle_cand is missing and (sps_triangle_enabled_flag is 0 or MaxNumMergeCand is less than 2), MaxNumTriangleMergeCand is set to 0.

Когда MaxNumTriangleMergeCand равен 0, режим слияния треугольников не допускается для слайсов, ассоциированных с заголовком картинки.When MaxNumTriangleMergeCand is 0, triangle merging mode is not allowed for slices associated with the image title.

pic_six_minus_max_num_ibc_merge_cand определяет максимальное количество кандидатов предсказания вектора блока слияния (BVP) IBC, поддерживаемых в слайсах, ассоциированных с заголовком картинки, вычтенное из 6. Максимальное количество IBC-кандидатов слияния BVP, MaxNumIbcMergeCand, определяется следующим образом: pic_six_minus_max_num_ibc_merge_cand defines the maximum number of IBC merge block vector prediction (BVP) candidates supported in the slices associated with the picture header, subtracted from 6. The maximum number of IBC merge BVP candidates, MaxNumIbcMergeCand, is defined as follows:

MaxNumIbcMergeCand=6 - pic_six_minus_max_num_ibc_merge_cand (7 114)MaxNumIbcMergeCand=6 - pic_six_minus_max_num_ibc_merge_cand (7 114)

Значение MaxNumIbcMergeCand должно находиться в диапазоне от 1 до 6 включительно.The MaxNumIbcMergeCand value must be between 1 and 6, inclusive.

Следует отметить, что флаг ph_all_intra_flag может сигнализироваться в любом месте до первого места, когда он будет управлять синтаксическим элементом, относящимся к внешнему предсказанию, то есть pic_log2_diff_min_qt_min_cb_inter_slice. Следует отметить, что одно или несколько мест, где ph_all_intra_flag может быть удален (т. е. управлять только поднабором синтаксических элементов вариантов осуществления настоящего изобретения). В качестве другого примера использование этого флага проиллюстрировано следующим образом.It should be noted that the ph_all_intra_flag may be signaled anywhere before the first place where it will control the syntax element related to the interprediction, that is, pic_log2_diff_min_qt_min_cb_inter_slice. It should be noted that there are one or more places where ph_all_intra_flag may be removed (ie, control only a subset of syntax elements of embodiments of the present invention). As another example, the use of this flag is illustrated as follows.

В частности, предусмотрены следующие способы и варианты осуществления, реализованные устройством кодирования. Устройство кодирования может быть видеокодером 20 по Фиг.1A или кодером 20 по Фиг.2.In particular, the following methods and embodiments implemented by the encoding apparatus are provided. The encoding device may be video encoder 20 of FIG. 1A or encoder 20 of FIG. 2.

Согласно варианту 1200 осуществления (см. фиг. 12) устройство определяет, является ли текущая картинка I-картинкой, на этапе 1201.According to embodiment 1200 (see FIG. 12), the device determines whether the current picture is an I picture at step 1201.

Поскольку I-картинка содержит только блок внутреннего предсказания, нет необходимости сигнализировать синтаксический элемент, предназначенный для внешнего предсказания, в заголовке картинки битового потока. Таким образом, когда текущей картинкой является I-картинка, синтаксический элемент, предназначенный для внешнего предсказания, не сигнализируется в заголовке картинки. На этапе 1203 устройство отправляет ,битовый поток в устройство декодирования, где заголовок картинки битового потока включает в себя флаг, который используется для указания, является ли текущая картинка I-картинкой. В этой ситуации флаг указывает, что текущей картинкой является I-картинка. Синтаксический элемент, предназначенный для внешнего предсказания, не сигнализируется в заголовке картинки. Когда текущей картинкой является I-картинка, синтаксический элемент, предназначенный для внешнего предсказания, выводится на значение по умолчанию.Since the I-picture contains only an intra-prediction block, there is no need to signal the syntax element intended for inter-prediction in the bitstream picture header. Thus, when the current picture is an I-picture, the syntactic element intended for inter-prediction is not signaled in the picture header. At step 1203, the device sends the bitstream to the decoder, where the bitstream picture header includes a flag that is used to indicate whether the current picture is an I-picture. In this situation, the flag indicates that the current picture is an I-picture. The syntactic element intended for external prediction is not signaled in the picture header. When the current picture is an I-picture, the syntactic element intended for external prediction is output to the default value.

Когда текущая картинка не является I-картинкой, то есть текущей картинкой является картинка P или B, устройство получает синтаксический элемент, предназначенный для внешнего предсказания, на этапе 1205. Как описано выше, синтаксический элемент предназначен для внешнего предсказания включает в себя один или несколько из следующих элементов: pic_log2_diff_min_qt_min_cb_inter_slice, pic_max_mtt_hierarchy_depth_inter_slice, pic_log2_diff_max_bt_min_qt_inter_slice, pic_log2_diff_max_tt_min_qt_inter_slice, pic_cu_qp_delta_subdiv_inter_slice, pic_cu_chroma_qp_offset_subdiv_inter_slice, pic_temporal_mvp_enabled_flag, mvd_l1_zero_flag, pic_fpel_mmvd_enabled_flag или pic_disable_bdof_dmvr_flag.When the current picture is not an I picture, that is, the current picture is a P or B picture, the device obtains a syntax element for inter-prediction at step 1205. As described above, the syntax element for inter-prediction includes one or more of the following elements: pic_log2_diff_min_qt_min_cb_inter_slice, pic_max_mtt_hierarchy_depth_inter_slice, pic_log2_diff_max_bt_min_qt_inter_slice, pic_log2_diff_max_tt_min_qt_inter_slice, pic_cu_qp_delta_subdiv_inter_slice, pic_cu_chroma_ qp_offset_subdiv_inter_slice, pic_temporal_mvp_enabled_flag, mvd_l1_zero_flag, pic_fpel_mmvd_enabled_flag or pic_disable_bdof_dmvr_flag.

На этапе 1207 устройство отправляет битовый поток на устройство декодирования. Заголовок картинки битового потока включает в себя не только флаг, который используется для указания, является ли текущая картинка I-картинкой, но также синтаксический элемент, предназначенный для внешнего предсказания. В этой ситуации флаг указывает, что текущая картинка не является I-картинкой.At step 1207, the device sends the bit stream to the decoding device. The bitstream picture header includes not only a flag that is used to indicate whether the current picture is an I-picture, but also a syntax element for inter-prediction. In this situation, the flag indicates that the current picture is not an I-picture.

Например, флаг называется ph_all_intra_flag. Флаг ph_all_intra_flag надлежащим образом сигнализируется в любом месте до первой позиции, управляющей синтаксическим элементом, предназначенным для внешнего предсказания. Использование этого флага показано, как описано выше.For example, the flag is called ph_all_intra_flag. The ph_all_intra_flag is properly signaled anywhere before the first position controlling a syntax element intended for inter prediction. The use of this flag is shown as described above.

Предусмотрены следующие способы и варианты осуществления, реализованные устройством декодирования. Устройством декодирования может быть видеодекодер 30 по фиг. 1А или декодер 30 по фиг. 3. Согласно варианту 1300 осуществления (см. фиг. 13) устройство принимает битовый поток и синтаксически анализирует битовый поток для получения флага из заголовка картинки битового потока на этапе 1301, где флаг указывает, является ли текущая картинка I-картинкой.The following methods and embodiments implemented by the decoding apparatus are provided. The decoding device may be the video decoder 30 of FIG. 1A or decoder 30 of FIG. 3. According to embodiment 1300 (see FIG. 13), the device receives a bitstream and parses the bitstream to obtain a flag from the bitstream picture header at step 1301, where the flag indicates whether the current picture is an I-picture.

Например, флаг называется ph_all_intra_flag. Флаг ph_all_intra_flag надлежащим образом сигнализируется в любом месте до первой позиции, управляющей синтаксическим элементом, предназначенным для внешнего предсказания. Использование этого флага показано, как описано выше.For example, the flag is called ph_all_intra_flag. The ph_all_intra_flag is properly signaled anywhere before the first position controlling a syntax element intended for inter prediction. The use of this flag is shown as described above.

Устройство определяет, является ли текущая картинка I-картинкой, на основе флага на этапе 1303.The device determines whether the current picture is an I picture based on the flag at step 1303.

Когда текущей картинкой является I-картинка, синтаксический элемент, предназначенный для внешнего предсказания, не сигнализируется в заголовке картинки, синтаксический элемент, предназначенный для внешнего предсказания, выводится в значение по умолчанию на этапе 1305.When the current picture is an I-picture, the inter-prediction syntax element is not signaled in the picture header, the inter-prediction syntax element is output to a default value in step 1305.

Когда текущая картинка не является I-картинкой, то есть текущей картинкой является картинка P или B, устройство получает синтаксический элемент, предназначенный для внешнего предсказания, из заголовка картинки битового потока на этапе 1307. Как описано выше, синтаксический элемент предназначен для внешнего предсказания включает в себя один или несколько из следующих элементов: pic_log2_diff_min_qt_min_cb_inter_slice, pic_max_mtt_hierarchy_depth_inter_slice, pic_log2_diff_max_bt_min_qt_inter_slice, pic_log2_diff_max_tt_min_qt_inter_slice, pic_cu_qp_delta_subdiv_inter_slice, pic_cu_chroma_qp_offset_subdiv_inter_slice, pic_temporal_mvp_enabled_flag, mvd_l1_zero_flag, pic_fpel_mmvd_enabled_flag или pic_disable_bdof_dmvr_flag.When the current picture is not an I picture, that is, the current picture is a P or B picture, the device obtains an inter-prediction syntax element from the bitstream picture header at step 1307. As described above, the inter-prediction syntax element includes in itself one or more of the following elements: pic_log2_diff_min_qt_min_cb_inter_slice, pic_max_mtt_hierarchy_depth_inter_slice, pic_log2_diff_max_bt_min_qt_inter_slice, pic_log2_diff_max_tt_min_qt_inter_slice, pic_cu_qp_delta_subdiv_inter_slice, cu_chroma_qp_offset_subdiv_inter_slice, pic_temporal_mvp_enabled_flag, mvd_l1_zero_flag, pic_fpel_mmvd_enabled_flag or pic_disable_bdof_dmvr_flag.

На Фиг. 14 показаны варианты осуществления устройства 1400. Устройство 1400 может представлять собой видеокодер 20 по фиг. 1А или кодер 20 по фиг. 2. Устройство 1400 можно использовать для реализации варианта 1200 осуществления и других вариантов осуществления, описанных выше.In FIG. 14 illustrates embodiments of device 1400. Device 1400 may be the video encoder 20 of FIG. 1A or encoder 20 of FIG. 2. Apparatus 1400 may be used to implement embodiment 1200 and other embodiments described above.

Устройство 1400 согласно настоящему раскрытию включает в себя блок 1401 определения, блок 1402 получения и блок 1403 сигнализации. Блок 1401 определения сконфигурирован для определения, является ли текущая картинка I-картинкой.The device 1400 according to the present disclosure includes a determining block 1401, a receiving block 1402, and a signaling block 1403. The determination unit 1401 is configured to determine whether the current picture is an I picture.

Блок 1402 получения сконфигурирован для получения синтаксического элемента, предназначенного для внешнего предсказания, когда текущая картинка не является I-картинкой, т.е. P- или B-картинка. Как описано выше, синтаксический элемент, предназначенный для внешнего предсказания, включает в себя один или несколько из следующих элементов: pic_log2_diff_min_qt_min_cb_inter_slice, pic_max_mtt_hierarchy_depth_inter_slice, pic_log2_diff_max_bt_min_qt_inter_slice, pic_log2_diff_max_tt_min_qt_inter_slice, pic_cu_qp_delta_subdiv_inter_slice, pic_cu_chroma_qp_offset_subdiv_inter_slice, pic_temporal_mvp_enabled_flag, mvd_l1_zero_flag, pic_fpel_mmvd_enabled_flag или pic_disable_bdof_dmvr_flag.The receiving unit 1402 is configured to receive a syntax element for inter-prediction when the current picture is not an I picture, i.e. P- or B-picture. As described above, a syntax element for inter-prediction includes one or more of the following elements: pic_log2_diff_min_qt_min_cb_inter_slice, pic_max_mtt_hierarchy_depth_inter_slice, pic_log2_diff_max_bt_min_qt_inter_slice, pic_log2_diff_max_tt_min_qt_inter_slice, cu_qp_delta_subdiv_inter_slice, pic_cu_chroma_qp_offset_subdiv_inter_slice, pic_temporal_mvp_enabled_flag, mvd_l1_zero_flag, pic_fpel_mmvd_enabled_flag or pic_disable_bdof_dmvr_flag.

Когда текущей картинкой является I-картинка, синтаксический элемент, предназначенный для внешнего предсказания, выводится на значение по умолчанию. When the current picture is an I-picture, the syntactic element intended for external prediction is output to the default value.

Блок 1403 сигнализации сконфигурирован для отправки битового потока на устройство декодирования, где заголовок картинки битового потока включает в себя флаг, который используется для указания, является ли текущая картинка I-картинкой.The signaling unit 1403 is configured to send the bit stream to the decoding device, where the bit stream picture header includes a flag that is used to indicate whether the current picture is an I picture.

Заголовок картинки битового потока дополнительно включает в себя синтаксический элемент, предназначенный для внешнего предсказания, когда текущая картинка не является I-картинкой. Поскольку I-картинка содержит только блок внутреннего предсказания, нет необходимости сигнализировать синтаксический элемент, предназначенный для внешнего предсказания, в заголовке картинки битового потока.The bitstream picture header further includes a syntax element for inter-prediction when the current picture is not an I-picture. Since the I-picture contains only an intra-prediction block, there is no need to signal the syntax element intended for inter-prediction in the bitstream picture header.

Например, флаг называется ph_all_intra_flag. Флаг ph_all_intra_flag надлежащим образом сигнализируется в любом месте до первого места, управляющей синтаксическим элементом, предназначенным для внешнего предсказания. Использование этого флага показано, как описано выше.For example, the flag is called ph_all_intra_flag. The ph_all_intra_flag flag is appropriately signaled anywhere before the first place controlling a syntax element intended for inter prediction. The use of this flag is shown as described above.

Фиг. 15 показаны варианты осуществления устройства 1500. Устройство 1500 может представлять собой видеодекодер 30 на фиг. 1А или декодер 30 на фиг. 3. Устройство 1500 может использоваться для реализации варианта 1300 осуществления и других вариантов осуществления, описанных выше.Fig. 15 illustrates embodiments of device 1500. Device 1500 may be the video decoder 30 of FIG. 1A or decoder 30 in FIG. 3. Apparatus 1500 may be used to implement embodiment 1300 and other embodiments described above.

Устройство 1500 включает в себя блок 1501 получения и блок 1502 определения. Блок 1501 получения сконфигурирован для синтаксического анализа битового потока для получения флага из заголовка картинки битового потока, где флаг указывает, является ли текущая картинка I-картинкой. Например, флаг называется ph_all_intra_flag.The device 1500 includes a receiving unit 1501 and a determining unit 1502. The receiving unit 1501 is configured to parse the bit stream to obtain a flag from the bit stream picture header, where the flag indicates whether the current picture is an I picture. For example, the flag is called ph_all_intra_flag.

Блок 1502 определения сконфигурирован для определения, является ли текущая картинка I-картинкой на основе флага. The determination unit 1502 is configured to determine whether the current picture is an I picture based on the flag.

Блок 1501 получения дополнительно сконфигурирован для получения синтаксического элемента, предназначенного для внешнего предсказания, из заголовка картинки, когда флаг указывает, что текущая картинка не является I-картинкой, т.е. P- или B-картинка. Когда текущей картинкой является I-картинка, синтаксический элемент, предназначенный для внешнего предсказания, не сигнализируется в заголовке картинки, синтаксический элемент, предназначенный для внешнего предсказания, выводится со значением по умолчанию.The obtaining unit 1501 is further configured to obtain a syntax element for inter-prediction from the picture header when the flag indicates that the current picture is not an I-picture, i.e. P- or B-picture. When the current picture is an I-picture, the syntax element for inter-prediction is not signaled in the picture header, the syntax element for inter-prediction is output with a default value.

Кроме того, в настоящем документе предусмотрены следующие варианты осуществления.In addition, the following embodiments are provided herein.

Вариант 1 осуществления. Способ кодировки, реализуемый устройством декодирования, содержащий:Option 1 implementation. An encoding method implemented by a decoding device, containing:

синтаксический анализ битового потока; иbitstream parsing; And

получение флага из заголовка картинки битового потока, при этом флаг указывает, является ли текущая картинка I-картинкой.obtaining a flag from the bitstream picture header, where the flag indicates whether the current picture is an I-picture.

Вариант 2 осуществления. Способ по варианту 1 осуществления, в котором, когда текущей картинкой является I-картинка, синтаксический элемент, предназначенный для внешнего предсказания, выводится как значение по умолчанию.Option 2 implementation. The method as in Embodiment 1, in which, when the current picture is an I-picture, a syntax element intended for inter-prediction is output as a default value.

Вариант 3 осуществления. Способ по варианту осуществления 1 или 2, в котором флаг переносится в синтаксисе PBSP заголовка картинки.Option 3 implementation. The method of Embodiment 1 or 2, wherein the flag is carried in PBSP picture header syntax.

Вариант 4 осуществления. Способ по любому из вариантов 1-3 осуществления, в котором флаг называется ph_all_intra_flag.Option 4 implementation. The method as in any one of embodiments 1 to 3, wherein the flag is named ph_all_intra_flag.

Вариант 5 осуществления. Способ по варианту 4 осуществления, в котором флаг используется следующим образом:Option 5 implementation. The method of embodiment 4, wherein the flag is used as follows:

Вариант 6 осуществления. Способ по варианту 4 или 5 осуществления, в котором флаг используется следующим образом:Option 6 implementation. The method according to embodiment 4 or 5, in which the flag is used as follows:

Вариант 7 осуществления. Способ по любому из вариантов 4-6 осуществления, в котором флаг используется следующим образом:Option 7 implementation. The method as in any one of embodiments 4-6, wherein the flag is used as follows:

Вариант 8 осуществления. Способ по любому из вариантов 4-7 осуществления, в котором флаг используется следующим образом:Embodiment 8. The method as in any one of embodiments 4 to 7, wherein the flag is used as follows:

Вариант 9 осуществления. Способ по любому из вариантов 1- 8 осуществления, в котором I-картинка содержит только блок внутреннего предсказания, тогда как P- или B-картинка содержат блок внешнего предсказания.Option 9 implementation. The method as in any one of embodiments 1 to 8, wherein the I picture contains only an intra prediction block, while the P or B picture contains an inter prediction block.

Вариант 10 осуществления. Способ кодировки, реализуемый устройством кодирования, содержащий:Embodiment 10. An encoding method implemented by an encoding device, containing:

сигнализацию флага в заголовок картинки битового потока, при этом флаг указывает, является ли текущая картинка I-картинкой; иsignaling a flag to the bitstream picture header, wherein the flag indicates whether the current picture is an I-picture; And

отправку битового потока.sending a bit stream.

Вариант 11 осуществления. Способ по варианту 10 осуществления, в котором, когда текущей картинкой является I-картинка, все синтаксические элементы, предназначенные для внешнего предсказания, не сигнализируются в заголовке картинки.Embodiment 11. The method of Embodiment 10, in which, when the current picture is an I-picture, all syntax elements intended for inter-prediction are not signaled in the picture header.

Вариант 12 осуществления. Способ по варианту 10 или 11 осуществления, в котором, когда текущей картинкой является I-картинка, синтаксический элемент, предназначенный для внешнего предсказания, выводится как значение по умолчанию.Embodiment 12. The method as in Embodiment 10 or 11, wherein when the current picture is an I-picture, a syntax element intended for inter-prediction is output as a default value.

Вариант 13 осуществления. Способ по любому из вариантов 10-12 осуществления, в котором флаг сигнализируется в синтаксисе PBSP заголовка картинки.Embodiment 13. The method as in any one of embodiments 10-12, wherein the flag is signaled in PBSP picture header syntax.

Вариант 14 осуществления. Способ по любому из вариантов 10-13 осуществления, в котором флаг называется ph_all_intra_flag.Embodiment 14. The method as in any one of embodiments 10-13, wherein the flag is named ph_all_intra_flag.

Вариант 15 осуществления. Способ по варианту 14 осуществления, в котором флаг ph_all_intra_flag надлежащим образом сигнализируется в любом месте до первой позиции, управляющей синтаксическим элементом, относящимся к внешнему предсказанию.Embodiment 15. The method of Embodiment 14, wherein the ph_all_intra_flag is suitably signaled anywhere before the first position controlling a syntax element related to inter prediction.

Вариант 16 осуществления. Способ по варианту 14 или 15 осуществления, в котором флаг используется следующим образом:Embodiment 16. The method of embodiment 14 or 15, wherein the flag is used as follows:

Вариант 17 осуществления. Способ по любому из вариантов 14-16 осуществления, в котором флаг используется следующим образом:Embodiment 17. The method as in any one of embodiments 14-16, wherein the flag is used as follows:

Вариант 18 осуществления. Способ по любому из вариантов 14-17 осуществления, в котором флаг используется следующим образом:Embodiment 18. The method as in any one of embodiments 14-17, wherein the flag is used as follows:

Вариант 19 осуществления. Способ по любому из вариантов 14-18 осуществления, в котором флаг используется следующим образом:Embodiment 19. The method as in any one of embodiments 14-18, wherein the flag is used as follows:

Как обсуждалось выше, посредством указания, является ли текущая картинка I-картинкой в заголовке картинки битового потока, синтаксический элемент, предназначенный для внешнего предсказания, не сигнализируется в заголовке картинки, когда текущая картинка является I-картинкой. Таким образом, варианты осуществления могут упростить сигнализацию заголовка картинки для всех внутренних картинок, т. е. I-картинки. Соответственно уменьшаются издержки на сигнализацию.As discussed above, by indicating whether the current picture is an I-picture in the bitstream picture header, the syntax element for inter-prediction is not signaled in the picture header when the current picture is an I-picture. Thus, embodiments can simplify picture header signaling for all internal pictures, i.e., I-picture. Signaling costs are reduced accordingly.

Термин «получение» может относиться к приему (например, в явном виде, как соответствующий параметр от другого объекта/устройства или модуля в том же устройстве, например, для декодера путем синтаксического анализа битового потока) и/или извлечению (например, что также может относиться к как неявный прием, например, для декодера путем синтаксического анализа другой информации/параметров из битового потока и извлечения соответствующей информации или параметра из такой другой информации/параметров).The term "receive" may refer to receiving (for example, explicitly, as a corresponding parameter from another object/device or module in the same device, for example, for a decoder by parsing a bitstream) and/or retrieving (for example, which may also treated as an implicit technique, for example for a decoder by parsing other information/parameters from the bitstream and extracting the corresponding information or parameter from such other information/parameters).

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

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

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

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

Для терминального устройства со своим дисплеем, например смартфона или планшета 3108, компьютера или ноутбука 3110, сетевого видеорегистратора (NVR)/цифрового видеорегистратора (DVR) 3112, телевизора 3114, карманного персонального компьютера (КПК) 3122 или устанавливаемого на транспортное средство устройства 3124, терминальное устройство может передавать декодированные данные на свой дисплей. Для терминального устройства, не оборудованного дисплеем, такого как STB 3116, система 3118 видеоконференцсвязи или система 3120 видеонаблюдения, контакт в нем устанавливается с внешним дисплеем 3126 для приема и показа декодированных данных.For a terminal device with its own display, such as a smartphone or tablet 3108, a computer or laptop 3110, a network video recorder (NVR)/digital video recorder (DVR) 3112, a television 3114, a personal digital assistant (PDA) 3122, or a vehicle-mounted device 3124, terminal the device can transmit decoded data to its display. For a non-display terminal device, such as the STB 3116, video conferencing system 3118, or video surveillance system 3120, it communicates with an external display 3126 to receive and display the decoded data.

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

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

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

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

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

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

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

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

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

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

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

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

x && yx && y

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

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

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

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

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

> Больше> More

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

< Меньше< Less

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

== Равно== Equal

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

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

Битовые операторыBit operators

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

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

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

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

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

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

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

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

= оператор присваивания= assignment operator

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Round( x )=Sign( x ) * Floor( Abs( x ) + 0,5)Round( x )=Sign( x ) * Floor( Abs( x ) + 0.5)

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

Sqrt( x )= Sqrt( x )=

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

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

Порядок приоритетности операцийOrder of priority of operations

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

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

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

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

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

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

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

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

если ( условие 0 ) определение 0 if ( condition 0 ) definition 0

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

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

иначе /* информативный комментарий по оставшемуся условию */ определение nelse /* informative comment on the remaining condition */ definition n

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

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

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

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

- ...- ...

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

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

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

если( условие 0a && условие 0b ) определение 0 if( condition 0a && condition 0b ) definition 0

иначе если( условие 1a | | условие 1b ) определение 1 ... иначе определение nelse if ( condition 1a | | condition 1b ) definition 1 ... else definition n

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

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

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

- условие 0a- condition 0a

- условие 0b- condition 0b

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

- условие 1a- condition 1a

- условие 1b- condition 1b

- ...- ...

- Иначе, определение n- Otherwise, the definition of n

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

если ( условие 0 ) определение 0 если ( условие 1 ) определение 1if (condition 0) definition 0 if (condition 1) definition 1

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

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

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

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

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

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

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

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

Claims (55)

1. Способ декодирования, реализуемый устройством декодирования, содержащий:1. A decoding method implemented by a decoding device, containing: синтаксический анализ (1301) битового потока для получения первого флага из заголовка картинки битового потока, при этом первый флаг указывает, является ли текущая картинка I-картинкой;parsing (1301) the bitstream to obtain a first flag from the bitstream picture header, the first flag indicating whether the current picture is an I-picture; когда первый флаг указывает, что текущей картинкой является I-картинка, синтаксический элемент, предназначенный для внешнего предсказания, не сигнализируется в заголовке картинки и логически выводится равным значению синтаксического элемента, предназначенного для внешнего предсказания в наборе параметров последовательности (SPS) битового потока (1305); или, когда первый флаг указывает, что текущая картинка является картинкой P или B, и второй флаг указывает, что параметры ограничения раздела присутствуют в заголовке картинки, получение (1307) синтаксического элемента, предназначенного для внешнего предсказания, из заголовка картинки, причем второй флаг представляет собой partition_constraints_override_flag.when the first flag indicates that the current picture is an I-picture, the inter-prediction syntax element is not signaled in the picture header and is logically inferred to be equal to the value of the inter-prediction syntax element in the bitstream sequence parameter set (SPS) (1305) ; or, when the first flag indicates that the current picture is a picture P or B, and the second flag indicates that the section constraint parameters are present in the picture header, obtaining (1307) a syntax element intended for inter-prediction from the picture header, wherein the second flag represents is partition_constraints_override_flag. 2. Способ по п. 1, отличающийся тем, что синтаксический элемент, предназначенный для внешнего предсказания, включает в себя pic_log2_diff_min_qt_min_cb_inter_slice, 2. The method according to claim 1, characterized in that the syntactic element intended for external prediction includes pic_log2_diff_min_qt_min_cb_inter_slice, причем, когда первый флаг указывает, что текущая картинка является картинкой P или B, pic_log2_diff_min_qt_min_cb_inter_slice определяет разницу между логарифмом по основанию 2 минимального размера в выборках яркости листового блока яркости, полученного в результате разбиения квадродерева единицы дерева кодировки (CTU), и логарифмом по основанию 2 минимального размера блока кодировки яркости в выборках яркости для блоков кодировки яркости (CU) в слайсах с картинкой P или B, ассоциированных с заголовком картинки; илиwherein, when the first flag indicates that the current picture is a P or B picture, pic_log2_diff_min_qt_min_cb_inter_slice determines the difference between the base 2 logarithm of the minimum size in luminance samples of the luminance leaf block resulting from the quadtree split of the encoding tree unit (CTU), and the base 2 logarithm the minimum luminance coding block size in luminance samples for luminance coding units (CU) in slices with a P or B picture associated with the picture header; or при этом, когда первый флаг указывает, что текущая картинка является I-картинкой, значение pic_log2_diff_min_qt_min_cb_luma логически выводится равным sps_log2_diff_min_qt_min_cb_inter_slice.Moreover, when the first flag indicates that the current picture is an I-picture, the value of pic_log2_diff_min_qt_min_cb_luma is logically output to be equal to sps_log2_diff_min_qt_min_cb_inter_slice. 3. Способ по п. 1 или 2, в котором синтаксический элемент, предназначенный для внешнего предсказания, дополнительно включает в себя pic_max_mtt_hierarchy_depth_inter_slice, 3. The method according to claim 1 or 2, wherein the syntax element for inter-prediction further includes pic_max_mtt_hierarchy_depth_inter_slice, при этом, когда первый флаг указывает, что текущей картинкой является картинка P или B, pic_max_mtt_hierarchy_depth_inter_slice указывает максимальную глубину иерархии для блоков кодировки, полученную в результате многотипного разбиения некоторого листа квадродерева на слайсы; илиin this case, when the first flag indicates that the current picture is picture P or B, pic_max_mtt_hierarchy_depth_inter_slice indicates the maximum hierarchy depth for encoding blocks, obtained as a result of a multi-type splitting of a certain quadtree leaf into slices; or при этом, когда первый флаг указывает, что текущая картинка представляет собой I-картинку, значение pic_max_mtt_hierarchy_depth_inter_slice логически выводится равным sps_max_mtt_hierarchy_depth_inter_slice.however, when the first flag indicates that the current picture is an I-picture, the value of pic_max_mtt_hierarchy_depth_inter_slice is logically output to be equal to sps_max_mtt_hierarchy_depth_inter_slice. 4. Способ по п. 3, в котором, когда pic_max_mtt_hierarchy_depth_inter_slice не равен 0, синтаксический элемент, предназначенный для внешнего предсказания, дополнительно включает в себя pic_log2_diff_max_bt_min_qt_inter_slice, 4. The method of claim 3, wherein when pic_max_mtt_hierarchy_depth_inter_slice is not equal to 0, the syntax element for inter-prediction further includes pic_log2_diff_max_bt_min_qt_inter_slice, причем, когда первый флаг указывает, что текущая картинка является картинкой P или B, pic_log2_diff_max_bt_min_qt_inter_slice указывает разницу между логарифмом по основанию 2 максимального размера (ширины или высоты) в выборках яркости блока кодировки яркости, который может быть разбит с использованием двоичного разбиения, и логарифмом по основанию 2 минимального размера (ширины или высоты) в выборках яркости листового блока яркости, полученного в результате разбиения квадродерева некоторого CTU на слайсы; илиwherein, when the first flag indicates that the current picture is a P or B picture, pic_log2_diff_max_bt_min_qt_inter_slice indicates the difference between the base 2 logarithm of the maximum size (width or height) in the luminance samples of the luminance encoding block, which can be sliced using binary slicing, and the logarithm of base 2 of the minimum size (width or height) in the brightness samples of the leaf luma block obtained by splitting the quadtree of some CTU into slices; or при этом, когда первый флаг указывает, что текущей картинкой является картинка I, значение pic_log2_diff_max_bt_min_qt_inter_slice логически выводится равным sps_log2_diff_max_bt_min_qt_inter_slice.Moreover, when the first flag indicates that the current picture is picture I, the value of pic_log2_diff_max_bt_min_qt_inter_slice is logically output equal to sps_log2_diff_max_bt_min_qt_inter_slice. 5. Способ по п. 3 или 4, в котором, когда pic_max_mtt_hierarchy_depth_inter_slice не равен 0, синтаксический элемент, предназначенный для внешнего предсказания, дополнительно включает в себя pic_log2_diff_max_tt_min_qt_inter_slice, 5. The method as claimed in claim 3 or 4, wherein when pic_max_mtt_hierarchy_depth_inter_slice is not equal to 0, the syntax element for inter-prediction further includes pic_log2_diff_max_tt_min_qt_inter_slice, причем, когда первый флаг указывает, что текущая картинка является картинкой P или B, pic_log2_diff_max_tt_min_qt_inter_slice указывает разницу между логарифмом по основанию 2 максимального размера (ширины или высоты) в выборках яркости блока кодировки яркости, который может быть разбит с использованием троичного разбиения, и логарифмом по основанию 2 минимального размера (ширины или высоты) в выборках яркости листового блока яркости, полученного в результате разбиения квадродерева некоторого CTU на слайсы; илиwherein, when the first flag indicates that the current picture is a P or B picture, pic_log2_diff_max_tt_min_qt_inter_slice indicates the difference between the base 2 logarithm of the maximum size (width or height) in the luminance samples of a luminance encoding block that can be split using ternary slicing, and the logarithm of base 2 of the minimum size (width or height) in the brightness samples of the leaf luma block obtained by splitting the quadtree of some CTU into slices; or при этом, когда первый флаг указывает, что текущей картинкой является картинка I, значение pic_log2_diff_max_tt_min_qt_inter_slice логически выводится равным sps_log2_diff_max_tt_min_qt_inter_slice.Moreover, when the first flag indicates that the current picture is picture I, the value of pic_log2_diff_max_tt_min_qt_inter_slice is logically output equal to sps_log2_diff_max_tt_min_qt_inter_slice. 6. Способ по любому из пп. 1-5, в котором синтаксический элемент, предназначенный для внешнего предсказания, дополнительно включает в себя pic_cu_qp_delta_subdiv_inter_slice, 6. Method according to any one of paragraphs. 1-5, wherein the syntax element for inter-prediction further includes pic_cu_qp_delta_subdiv_inter_slice, при этом, когда первый флаг указывает, что текущая картинка является картинкой P или B, pic_cu_qp_delta_subdiv_inter_slice указывает максимальное значение cbSubdiv блоков кодировки, которые в внешнем слайсе передают cu_qp_delta_abs и cu_qp_delta_sign_flag; илиin this case, when the first flag indicates that the current picture is a P or B picture, pic_cu_qp_delta_subdiv_inter_slice indicates the maximum value cbSubdiv of encoding blocks, which in the external slice transmit cu_qp_delta_abs and cu_qp_delta_sign_flag; or при этом, когда первый флаг указывает, что текущей картинкой является картинка I, логически выводится, что значение pic_cu_qp_delta_subdiv_inter_slice равно 0.however, when the first flag indicates that the current picture is picture I, it is logically inferred that the value of pic_cu_qp_delta_subdiv_inter_slice is 0. 7. Способ по любому из пп. 1-6, в котором синтаксический элемент, предназначенный для внешнего предсказания, дополнительно включает в себя pic_cu_chroma_qp_offset_subdiv_inter_slice, 7. Method according to any one of paragraphs. 1-6, wherein the syntax element for inter-prediction further includes pic_cu_chroma_qp_offset_subdiv_inter_slice, при этом, когда первый флаг указывает, что текущая картинка является картинкой P или B, pic_cu_chroma_qp_offset_subdiv_inter_slice указывает максимальное значение cbSubdiv блоков кодировки в внешнем слайсе, которые передают cu_chroma_qp_offset_flag; илиwherein, when the first flag indicates that the current picture is a P or B picture, pic_cu_chroma_qp_offset_subdiv_inter_slice indicates the maximum cbSubdiv value of encoding blocks in the outer slice that transmit cu_chroma_qp_offset_flag; or при этом, когда первый флаг указывает, что текущей картинкой является картинка I, логически выводится, что значение pic_cu_chroma_qp_offset_subdiv_inter_slice равно 0.however, when the first flag indicates that the current picture is picture I, it is logically inferred that the value of pic_cu_chroma_qp_offset_subdiv_inter_slice is 0. 8. Способ по любому из пп. 1-7, в котором синтаксический элемент, предназначенный для внешнего предсказания, дополнительно включает в себя pic_cu_chroma_qp_offset_subdiv_inter_slice, 8. Method according to any one of paragraphs. 1-7, wherein the syntax element for inter-prediction further includes pic_cu_chroma_qp_offset_subdiv_inter_slice, при этом, когда первый флаг указывает, что текущая картинка является картинкой P или B, pic_cu_chroma_qp_offset_subdiv_inter_slice указывает максимальное значение cbSubdiv блоков кодировки в внешнем слайсе, которые передают cu_chroma_qp_offset_flag; илиwherein, when the first flag indicates that the current picture is a P or B picture, pic_cu_chroma_qp_offset_subdiv_inter_slice indicates the maximum cbSubdiv value of encoding blocks in the outer slice that transmit cu_chroma_qp_offset_flag; or при этом, когда первый флаг указывает, что текущей картинкой является картинка I, логически выводится, что значение pic_cu_chroma_qp_offset_subdiv_inter_slice равно 0.however, when the first flag indicates that the current picture is picture I, it is logically inferred that the value of pic_cu_chroma_qp_offset_subdiv_inter_slice is 0. 9. Способ по любому из пп. 1-8, в котором синтаксический элемент, предназначенный для внешнего предсказания, дополнительно включает в себя pic_temporal_mvp_enabled_flag, 9. Method according to any one of paragraphs. 1-8, wherein the syntax element for inter-prediction further includes pic_temporal_mvp_enabled_flag, при этом, когда первый флаг указывает, что текущая картинка является картинкой P или B, pic_temporal_mvp_enabled_flag указывает, могут ли предикторы временных векторов движения использоваться для внешнего предсказания для слайсов, ассоциированных с заголовком картинки; илиwherein, when the first flag indicates that the current picture is a P or B picture, pic_temporal_mvp_enabled_flag indicates whether temporal motion vector predictors can be used for inter-prediction for slices associated with the picture header; or при этом, когда первый флаг указывает, что текущая картинка является I-картинкой, если sps_temporal_mvp_enabled_flag равен 0, значение pic_temporal_mvp_enabled_flag логически выводится равным 0, в противном случаеhowever, when the first flag indicates that the current picture is an I-picture, if sps_temporal_mvp_enabled_flag is equal to 0, the value of pic_temporal_mvp_enabled_flag is logically output equal to 0, otherwise если sps_temporal_mvp_enabled_flag равен 1, логически выводится, что значение pic_temporal_mvp_enabled_flag равно pps_temporal_mvp_enabled_idc - 1. if sps_temporal_mvp_enabled_flag is equal to 1, it is logically concluded that the value of pic_temporal_mvp_enabled_flag is equal to pps_temporal_mvp_enabled_idc - 1. 10. Способ по любому из пп. 1-9, отличающийся тем, что первый флаг переносится в синтаксисе PBSP заголовка картинки.10. Method according to any one of paragraphs. 1-9, characterized in that the first flag is carried in the PBSP syntax of the picture header. 11. Способ по любому из пп. 1-10, отличающийся тем, что первый флаг называется ph_all_intra_flag.11. Method according to any one of paragraphs. 1-10, characterized in that the first flag is called ph_all_intra_flag. 12. Способ по п. 11, отличающийся тем, что первый флаг используется следующим образом:12. The method according to claim 11, characterized in that the first flag is used as follows: 13. Способ по любому из пп. 1-12, отличающийся тем, что некоторая I-картинка содержит только блок с внутренним предсказанием, тогда как картинка P или B содержит блок с внешним предсказанием.13. Method according to any one of paragraphs. 1-12, characterized in that a certain I picture contains only an intra prediction block, while a P or B picture contains an inter prediction block. 14. Декодер (30), содержащий схему обработки для выполнения способа по любому из пп. 1-13.14. A decoder (30) comprising a processing circuit for performing the method according to any one of claims. 1-13. 15. Декодер, содержащий:15. Decoder containing: один или более процессоров; иone or more processors; And долговременный считываемый компьютером носитель, связанный с процессорами и хранящий программу для исполнения одним или несколькими процессорами, чтобы вынуждать один или несколько процессоров выполнять способ по любому из пп. 1-13. a non-transitory computer-readable medium coupled to the processors and storing a program for execution by one or more processors to cause the one or more processors to execute the method of any one of claims. 1-13. 16. Устройство (1500) декодирования, содержащее:16. A decoding device (1500), comprising: блок (1501) получения, выполненный с возможностью синтаксического анализа битового потока для получения первого флага из заголовка картинки битового потока, при этом первый флаг указывает, является ли текущая картинка I-картинкой;an acquisition unit (1501) configured to parse the bitstream to obtain a first flag from the bitstream picture header, wherein the first flag indicates whether the current picture is an I-picture; блок (1502) определения, сконфигурированный для определения, является ли текущая картинка I-картинкой, на основе первого флага;a determination unit (1502), configured to determine whether the current picture is an I picture based on the first flag; блок (1501) получения, дополнительно сконфигурированный для получения синтаксического элемента, предназначенного для внешнего предсказания, из заголовка картинки, когда первый флаг указывает, что текущая картинка представляет собой картинку P или B, и второй флаг указывает, что параметры ограничения раздела присутствуют в заголовке картинки, причем второй флаг представляет собой partition_constraints_override_flag;an obtaining unit (1501) further configured to obtain a syntax element for inter-prediction from the picture header when the first flag indicates that the current picture is a P or B picture and the second flag indicates that the section limit parameters are present in the picture header , where the second flag is partition_constraints_override_flag; причем первый флаг указывает, что текущая картинка является I-картинкой, синтаксический элемент, предназначенный для внешнего предсказания, не сигнализируется в заголовке картинки и логически выводится равным значению синтаксического элемента, предназначенного для внешнего предсказания в наборе параметров последовательности (SPS) битового потока.wherein the first flag indicates that the current picture is an I-picture, the inter-prediction syntax element is not signaled in the picture header and is logically derived equal to the value of the inter-prediction syntax element in the sequence parameter set (SPS) of the bitstream. 17. Устройство по п. 16, в котором синтаксический элемент, предназначенный для внешнего предсказания, включает в себя pic_log2_diff_min_qt_min_cb_inter_slice, 17. The apparatus of claim 16, wherein the syntax element for inter-prediction includes pic_log2_diff_min_qt_min_cb_inter_slice, причем, когда первый флаг указывает, что текущая картинка является картинкой P или B, pic_log2_diff_min_qt_min_cb_inter_slice определяет разницу между логарифмом по основанию 2 минимального размера в выборках яркости листового блока яркости, полученного в результате разбиения квадродерева блока дерева кодировки (CTU), и логарифмом по основанию 2 минимального размера блока кодировки яркости в выборках яркости для блоков кодировки яркости (CU) в слайсах с картинкой P или B, ассоциированных с заголовком картинки; илиwherein, when the first flag indicates that the current picture is a P or B picture, pic_log2_diff_min_qt_min_cb_inter_slice specifies the difference between the base 2 logarithm of the minimum size in luminance samples of a leaf luminance block resulting from a quadtree split of the encoding tree unit (CTU), and the base 2 logarithm the minimum luminance coding block size in luminance samples for luminance coding units (CU) in slices with a P or B picture associated with the picture header; or при этом, когда первый флаг указывает, что текущая картинка является I-картинкой, значение pic_log2_diff_min_qt_min_cb_luma логически выводится равным sps_log2_diff_min_qt_min_cb_inter_slice.Moreover, when the first flag indicates that the current picture is an I-picture, the value of pic_log2_diff_min_qt_min_cb_luma is logically output to be equal to sps_log2_diff_min_qt_min_cb_inter_slice. 18. Устройство по п. 16 или 17, в котором синтаксический элемент, предназначенный для внешнего предсказания, дополнительно включает в себя pic_max_mtt_hierarchy_depth_inter_slice, 18. The apparatus of claim 16 or 17, wherein the syntax element for inter-prediction further includes pic_max_mtt_hierarchy_depth_inter_slice, при этом, когда первый флаг указывает, что текущей картинкой является картинка P или B, pic_max_mtt_hierarchy_depth_inter_slice указывает максимальную глубину иерархии для блоков кодировки, полученную в результате многотипного разбиения дерева листа квадродерева на слайсы; илиin this case, when the first flag indicates that the current picture is picture P or B, pic_max_mtt_hierarchy_depth_inter_slice indicates the maximum hierarchy depth for encoding blocks obtained as a result of a multi-type splitting of the quadtree leaf tree into slices; or при этом, когда первый флаг указывает, что текущая картинка представляет собой I-картинку, значение pic_max_mtt_hierarchy_depth_inter_slice логически выводится равным sps_max_mtt_hierarchy_depth_inter_slice.however, when the first flag indicates that the current picture is an I-picture, the value of pic_max_mtt_hierarchy_depth_inter_slice is logically output to be equal to sps_max_mtt_hierarchy_depth_inter_slice. 19. Устройство по п. 18, в котором, когда pic_max_mtt_hierarchy_depth_inter_slice не равно 0, синтаксический элемент, предназначенный для внешнего предсказания, дополнительно включает в себя pic_log2_diff_max_bt_min_qt_inter_slice, 19. The apparatus of claim 18, wherein when pic_max_mtt_hierarchy_depth_inter_slice is not equal to 0, the syntax element for inter-prediction further includes pic_log2_diff_max_bt_min_qt_inter_slice, причем, когда первый флаг указывает, что текущая картинка является картинкой P или B, pic_log2_diff_max_bt_min_qt_inter_slice определяет разницу между логарифмом по основанию 2 максимального размера (ширины или высоты) в выборках яркости блока кодировки яркости, который может быть разбит с использованием двоичного разбиения, и логарифмом по основанию 2 минимального размера (ширины или высоты) в выборках яркости листового блока яркости, полученного в результате разбиения квадродерева CTU на слайсы; илиwherein, when the first flag indicates that the current picture is a P or B picture, pic_log2_diff_max_bt_min_qt_inter_slice specifies the difference between the base 2 logarithm of the maximum size (width or height) in the luminance samples of a luminance encoding block that can be sliced using binary slicing, and the logarithm of base 2 of the minimum size (width or height) in the brightness samples of the leaf luma block obtained by splitting the CTU quadtree into slices; or при этом, когда первый флаг указывает, что текущей картинкой является картинка I, значение pic_log2_diff_max_bt_min_qt_inter_slice логически выводится равным sps_log2_diff_max_bt_min_qt_inter_slice.Moreover, when the first flag indicates that the current picture is picture I, the value of pic_log2_diff_max_bt_min_qt_inter_slice is logically output equal to sps_log2_diff_max_bt_min_qt_inter_slice. 20. Устройство по п. 18 или 19, в котором, когда pic_max_mtt_hierarchy_depth_inter_slice не равно 0, синтаксический элемент, предназначенный для внешнего предсказания, дополнительно включает в себя pic_log2_diff_max_tt_min_qt_inter_slice, 20. The apparatus of claim 18 or 19, wherein when pic_max_mtt_hierarchy_depth_inter_slice is not equal to 0, the syntax element for inter-prediction further includes pic_log2_diff_max_tt_min_qt_inter_slice, причем, когда первый флаг указывает, что текущая картинка является картинкой P или B, pic_log2_diff_max_tt_min_qt_inter_slice указывает разницу между логарифмом по основанию 2 максимального размера (ширины или высоты) в выборках яркости блока кодировки яркости, который может быть разбит с использованием троичного разбиения, и логарифмом по основанию 2 минимального размера (ширины или высоты) в выборках яркости листового блока яркости, полученного в результате разбиения квадродерева CTU на слайсы; илиwherein, when the first flag indicates that the current picture is a P or B picture, pic_log2_diff_max_tt_min_qt_inter_slice indicates the difference between the base 2 logarithm of the maximum size (width or height) in the luminance samples of a luminance encoding block that can be split using ternary slicing, and the logarithm of base 2 of the minimum size (width or height) in the brightness samples of the leaf luma block obtained by splitting the CTU quadtree into slices; or при этом, когда первый флаг указывает, что текущей картинкой является картинка I, значение pic_log2_diff_max_tt_min_qt_inter_slice логически выводится равным sps_log2_diff_max_tt_min_qt_inter_slice.Moreover, when the first flag indicates that the current picture is picture I, the value of pic_log2_diff_max_tt_min_qt_inter_slice is logically output equal to sps_log2_diff_max_tt_min_qt_inter_slice. 21. Устройство по любому из пп. 18-20, в котором I-картинка содержит только блок с внутренним предсказанием, тогда как картинка P или B содержит блок с внешним предсказанием.21. The device according to any one of paragraphs. 18-20, in which the I picture contains only an intra prediction block, while the P or B picture contains an inter prediction block.
RU2022112072A 2019-10-10 2020-10-10 Encoder, decoder and corresponding methods to simplify signaling of picture header RU2823042C1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US62/913,730 2019-10-10

Related Child Applications (1)

Application Number Title Priority Date Filing Date
RU2024118241A Division RU2024118241A (en) 2019-10-10 2020-10-10 ECODER, DECODER AND RELATED METHODS FOR SIMPLIFYING PICTURE HEADER SIGNALING

Publications (1)

Publication Number Publication Date
RU2823042C1 true RU2823042C1 (en) 2024-07-17

Family

ID=

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9313514B2 (en) * 2010-10-01 2016-04-12 Sharp Kabushiki Kaisha Methods and systems for entropy coder initialization
US9392235B2 (en) * 2011-11-18 2016-07-12 Google Technology Holdings LLC Explicit way for signaling a collocated reference picture for video coding
RU2645270C1 (en) * 2011-06-30 2018-02-19 Вилос Медиа Интернэшнл Лимитед Context initialization based on buffer of decoder pictures

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9313514B2 (en) * 2010-10-01 2016-04-12 Sharp Kabushiki Kaisha Methods and systems for entropy coder initialization
RU2645270C1 (en) * 2011-06-30 2018-02-19 Вилос Медиа Интернэшнл Лимитед Context initialization based on buffer of decoder pictures
US9392235B2 (en) * 2011-11-18 2016-07-12 Google Technology Holdings LLC Explicit way for signaling a collocated reference picture for video coding

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WADE WAN et al., AHG17: Text for picture header, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-P1006-v12, 16th Meeting: Geneva, 1-11 October 2019, version 2 - date 2019-10-09, JVET-P1006_SpecText-v2, найдено в Интернет на https://jvet-experts.org/ doc_end_user/documents/16_Geneva/wg11/JVET-P1006-v2.zip. BENJAMIN BROSS et al., Versatile Video Coding (Draft 6), Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-O2001-vE, 15th Meeting: Gothenburg, 3-12 July 2019. JIE CHEN еt al., AHG15: cu_qp_delta_subdiv and cu_chroma_qp_offset_subdiv syntax dependency removal, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-P0407-r2, 16th Meeting: Geneva, 1-11 October 2019, version 2 - date 2019-10-09. *

Similar Documents

Publication Publication Date Title
CN115567716B (en) Encoder and corresponding method and device
US11876997B2 (en) Encoder, decoder and corresponding methods of most probable mode list construction for blocks with multi-hypothesis prediction
JP7206397B2 (en) Encoders, Decoders, and Corresponding Methods for Tile Configuration Signaling
KR20220065040A (en) Encoders, decoders and countermeasures
AU2024201141A1 (en) The method and apparatus for intra sub-partitions coding mode
JP2024055894A (en) Encoder, decoder and corresponding method for simplifying picture header signaling - Patents.com
JP2024147569A (en) DECODER AND CORRESPONDING METHOD FOR SIGNALING PICTURE PARTITION INFORMATION FOR A SLICE - Patent application
JP7384998B2 (en) Encoders, decoders, and corresponding methods for chroma intramode derivation
WO2021185278A1 (en) An encoder, a decoder and corresponding methods
RU2823042C1 (en) Encoder, decoder and corresponding methods to simplify signaling of picture header
RU2833493C1 (en) Decoder and corresponding methods for signaling image division information for slices
RU2831978C1 (en) Encoder, decoder and corresponding signaling methods and semantics in parameter sets
RU2828202C1 (en) Encoder, decoder and corresponding methods for signaling sub-images in set of sequence parameters
RU2832151C1 (en) Encoder, decoder and corresponding methods simplifying signalling of slice header syntax elements
US12231690B2 (en) Encoder, decoder and corresponding methods for simplifying signaling picture header
RU2823668C1 (en) Encoder, decoder and related methods
RU2830551C1 (en) Encoder, decoder and related methods
RU2827439C1 (en) Cross-component adaptive loop filtering for video encoding
RU2817389C2 (en) Encoder, decoder and corresponding methods for obtaining intra-frame colour mode
RU2832719C1 (en) Encoder, decoder and related methods
RU2829116C1 (en) Encoding device, decoding device and corresponding methods and equipment
RU2811983C2 (en) Encoder, decoder and related methods for sub-block partition mode
JP7414976B2 (en) Encoders, decoders and corresponding methods