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

RU2785816C2 - Position-dependent intra-prediction combination expanded with angular modes - Google Patents

Position-dependent intra-prediction combination expanded with angular modes Download PDF

Info

Publication number
RU2785816C2
RU2785816C2 RU2020131995A RU2020131995A RU2785816C2 RU 2785816 C2 RU2785816 C2 RU 2785816C2 RU 2020131995 A RU2020131995 A RU 2020131995A RU 2020131995 A RU2020131995 A RU 2020131995A RU 2785816 C2 RU2785816 C2 RU 2785816C2
Authority
RU
Russia
Prior art keywords
prediction
coordinate
sample
intra
current block
Prior art date
Application number
RU2020131995A
Other languages
Russian (ru)
Other versions
RU2020131995A (en
Inventor
Герт ВАН ДЕР АУВЕРА
Вадим СЕРЕГИН
Амир САИД
Марта Карчевич
Original Assignee
Квэлкомм Инкорпорейтед
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US16/371,638 external-priority patent/US11611757B2/en
Application filed by Квэлкомм Инкорпорейтед filed Critical Квэлкомм Инкорпорейтед
Publication of RU2020131995A publication Critical patent/RU2020131995A/en
Application granted granted Critical
Publication of RU2785816C2 publication Critical patent/RU2785816C2/en

Links

Images

Abstract

FIELD: video encoding/decoding.
SUBSTANCE: method for using a position-dependent intra-prediction combination (PDPC) in cases, where the current block is predicted in an intra-mode, using an angular intra-prediction mode, is proposed.
EFFECT: improvement of the encoding efficiency.
55 cl, 14 dwg

Description

[0001] Настоящая заявка испрашивает приоритет заявки США № 16/371,638, поданной 01 апреля 2019, которая испрашивает приоритет предварительной заявки США № 62/651,424, поданной 2 апреля 2018, полное содержимое обеих из которых включено в настоящий документ посредством ссылки. [0001] This application claims priority of U.S. Application No. 16/371,638, filed April 1, 2019, which claims priority of U.S. Provisional Application No. 62/651,424, filed April 2, 2018, the entire contents of both of which are incorporated herein by reference.

Область техники Technical field

[0002] Данное раскрытие относится к кодированию видео и декодированию видео. [0002] This disclosure relates to video coding and video decoding.

ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ PRIOR ART

[0003] Возможности цифрового видео могут быть включены в широкий диапазон устройств, в том числе в цифровые телевизоры, цифровые системы прямого вещания, беспроводные широковещательные системы, персональные цифровые ассистенты (PDA), портативные или настольные компьютеры, планшетные компьютеры, считыватели электронных книг, цифровые камеры, цифровые записывающие устройства, цифровые мультимедийные плееры, видеоигровые устройства, видеоигровые консоли, сотовые или спутниковые радиотелефоны, так называемые смартфоны, устройства телеконференцсвязи, устройства потокового видео и тому подобное. Цифровые видеоустройства реализуют способы кодирования видео, такие как описанные в стандартах, определенных MPEG-2, MPEG-4, ITEG-T H.263, ITEG-T H.264/MPEG-4, часть 10, Усовершенствованное кодирование видео (AVC), стандарте Высокоэффективного кодирования видео (HEVC) и расширениях таких стандартов. Видеоустройства могут передавать, принимать, кодировать, декодировать и/или сохранять цифровую видеоинформацию более эффективно посредством реализации таких способов кодирования видео. [0003] Digital video capabilities can be incorporated into a wide range of devices, including digital televisions, digital live broadcast systems, wireless broadcast systems, personal digital assistants (PDAs), laptop or desktop computers, tablet computers, e-book readers, digital cameras, digital recorders, digital media players, video game devices, video game consoles, cellular or satellite radio telephones, so-called smartphones, teleconferencing devices, video streaming devices and the like. Digital video devices implement video coding techniques such as those described in the standards defined by MPEG-2, MPEG-4, ITEG-T H.263, ITEG-T H.264/MPEG-4 Part 10, Advanced Video Coding (AVC), High Efficiency Video Coding (HEVC) standard and extensions of such standards. Video devices can transmit, receive, encode, decode and/or store digital video information more efficiently by implementing such video coding techniques.

[0004] Методы кодирования видео включают в себя пространственное (внутрикадровое) предсказание и/или временное (межкадровое) предсказание для уменьшения или удаления избыточности, присущей видеопоследовательностям. Для блочного кодирования видео, видеослайс (например, видеокадр или часть видеокадра) может быть разделена на видеоблоки, которые также могут упоминаться как блоки дерева, CU и/или узлы кодирования. Изображения (картинки) могут упоминаться как кадры. Опорные картинки могут упоминаться как опорные кадры. [0004] Video coding techniques include spatial (intra-frame) prediction and/or temporal (inter-frame) prediction to reduce or remove redundancy inherent in video sequences. For block video coding, a video slice (eg, a video frame or part of a video frame) may be divided into video blocks, which may also be referred to as tree blocks, CUs, and/or coding nodes. Images (pictures) may be referred to as frames. Reference pictures may be referred to as reference frames.

[0005] Пространственное или временное предсказание приводит к блоку предсказания для блока, подлежащего кодированию. Остаточные данные представляют пиксельные разности между исходным блоком, подлежащим кодированию, и блоком предсказания. Для дополнительного сжатия, остаточные данные могут быть преобразованы из пиксельной области в область преобразования, приводя к остаточным коэффициентам преобразования, которые затем могут быть квантованы. Энтропийное кодирование может применяться для достижения еще большего сжатия. [0005] Spatial or temporal prediction results in a prediction block for the block to be coded. The residual data represents the pixel differences between the original block to be encoded and the prediction block. For additional compression, the residual data may be converted from the pixel domain to the transform domain, resulting in residual transform coefficients, which may then be quantized. Entropy encoding can be used to achieve even greater compression.

Краткое описание сущности изобретения Brief description of the essence of the invention

[0006] В этом раскрытии описаны методы для кодирования блока видеоданных с использованием внутрикадрового (интра-) предсказания. Например, методы настоящего раскрытия включают в себя кодирование блока видеоданных с использованием комбинации позиционно-зависимого интра-предсказания (PDPC), расширенной для использования с угловым режимом интра-предсказания (например, диагональными режимами интра-предсказания или угловыми режимами интра-предсказания, смежными с диагональными режимами интра-предсказания). При интра-предсказании, блок предсказания генерируется для текущего блока на основе пикселов, соседних с текущим блоком. В PDPC, выборки предсказания в блоке предсказания модифицируются, и модифицированные выборки предсказания используются для кодирования или декодирования текущего блока. Для кодирования, видеокодер использует модифицированные выборки предсказания для определения остаточных значений, которые сигнализируются видеодекодеру, и для декодирования, видеодекодер суммирует модифицированные выборки предсказания с принятыми остаточными значениями для восстановления текущего блока. [0006] This disclosure describes methods for encoding a block of video data using intra-frame (intra-) prediction. For example, the techniques of the present disclosure include encoding a block of video data using a position-dependent intra prediction combination (PDPC) extended for use with an intra prediction angular mode (e.g., diagonal intra prediction modes or intra prediction angular modes adjacent to diagonal modes of intra-prediction). In intra-prediction, a prediction block is generated for the current block based on pixels adjacent to the current block. In PDPC, the prediction samples in a prediction block are modified, and the modified prediction samples are used to encode or decode the current block. For encoding, the video encoder uses the modified prediction samples to determine the residuals that are signaled to the video decoder, and for decoding, the video decoder adds the modified prediction samples to the received residuals to reconstruct the current block.

[0007] Методы PDPC ограничивались определенными режимами интра-предсказания, такими как DC, планарные, вертикальные и горизонтальные режимы интра-предсказания. В этом раскрытии описаны примерные способы, каким образом распространить методы PDPC на угловые режимы интра-предсказания. Например, в методах PDPC, опорные выборки, внешние по отношению к текущему блоку, используются для модификации выборок предсказания. Могут иметь место сложности в определении того, какие опорные выборки должны использоваться, когда методы PDPC распространяются на угловые режимы интра-предсказания. Данное раскрытие описывает примерные способы, как определить опорные выборки для использования, и способ, каким образом опорные выборки и выборки предсказания взвешиваются для выполнения методов PDPC для угловых режимов интра-предсказания, таких как определение опорных выборок на основе угловых режимов интра-предсказания (например, на основе углов угловых режимов интра-предсказания). [0007] PDPC methods have been limited to certain intra-prediction modes, such as DC, planar, vertical, and horizontal intra-prediction modes. This disclosure describes exemplary methods for how to extend PDPC techniques to intra-prediction angular modes. For example, in PDPC techniques, reference samples external to the current block are used to modify the prediction samples. There may be difficulties in determining which reference samples should be used when PDPC methods are extended to intra-prediction angular modes. This disclosure describes exemplary methods of how to determine the reference samples to use, and the manner in which the reference samples and prediction samples are weighted to perform PDPC methods for intra-prediction angular modes, such as determining reference samples based on intra-prediction angular modes (e.g., based on the angles of the intra-prediction angular modes).

[0008] В одном примере, раскрытие описывает способ декодирования видеоданных, причем способ содержит определение блока предсказания, который включает в себя множество выборок предсказания, для текущего блока на основе углового режима интра-предсказания, который не является DC, планарным, горизонтальным или вертикальным режимом интра-предсказания, модифицирование выборки предсказания из множества выборок предсказания блока предсказания для генерации модифицированной выборки предсказания с использованием комбинации позиционно-зависимого интра-предсказания (PDPC), при этом модифицирование выборки предсказания содержит определение одной или более опорных выборок, которые являются внешними по отношению к текущему блоку, на основе углового режима интра-предсказания и модифицирование выборки предсказания для генерации модифицированной выборки предсказания на основе определенной одной или более опорных выборок и восстановление выборки текущего блока на основе модифицированной выборки предсказания и остаточного значения. [0008] In one example, the disclosure describes a method for decoding video data, the method comprising determining a prediction block, which includes a plurality of prediction samples, for the current block based on an intra-prediction angular mode that is not DC, planar, horizontal, or vertical mode. intra-prediction, modifying a prediction sample from a plurality of prediction samples of a prediction block to generate a modified prediction sample using a position-dependent intra-prediction combination (PDPC), wherein the modification of the prediction sample comprises determining one or more reference samples that are external to to the current block, based on the intra-prediction angular mode, and modifying the prediction sample to generate a modified prediction sample based on the determined one or more reference samples, and re-sampling the current block based on the modified prediction sample niya and residual value.

[0009] В одном примере, раскрытие описывает способ кодирования видеоданных, причем способ содержит определение блока предсказания, который включает в себя множество выборок предсказания, для текущего блока на основе углового режима интра-предсказания, который не является DC, планарным, горизонтальным или вертикальным режимом интра-предсказания, модифицирование выборки предсказания из множества выборок предсказания блока предсказания для генерации модифицированной выборки предсказания с использованием комбинации позиционно-зависимого интра-предсказания (PDPC), при этом модифицирование выборки предсказания содержит определение одной или более опорных выборок, которые являются внешними по отношению к текущему блоку, на основе углового режима интра-предсказания и модифицирование выборки предсказания для генерации модифицированный выборки предсказания на основе определенной одной или более опорных выборок, определение остаточного значения для остаточного блока на основе модифицированной выборки предсказания и значения выборки в текущем блоке и сигнализацию информации, указывающей остаточное значение. [0009] In one example, the disclosure describes a method for encoding video data, the method comprising determining a prediction block, which includes a plurality of prediction samples, for the current block based on an intra-prediction angular mode that is not DC, planar, horizontal, or vertical mode. intra-prediction, modifying a prediction sample from a plurality of prediction samples of a prediction block to generate a modified prediction sample using a position-dependent intra-prediction combination (PDPC), wherein the modification of the prediction sample comprises determining one or more reference samples that are external to to the current block, based on the intra-prediction angular mode, and modifying the prediction sample to generate a modified prediction sample based on the determined one or more reference samples, determining a residual value for the residual block based on the modified sample prediction orks and sample values in the current block, and signaling information indicating the residual value.

[0010] В одном примере, раскрытие описывает устройство для декодирования видеоданных, причем устройство содержит память, сконфигурированную, чтобы хранить блок предсказания, и видеодекодер, содержащий по меньшей мере одну из схемы с фиксированной функцией и программируемой схемы. Видеодекодер сконфигурирован, чтобы определять блок предсказания, который включает в себя множество выборок предсказания, для текущего блока, для хранения в памяти, на основе углового режима интра-предсказания, который не является DC, планарным, горизонтальным или вертикальным режимом интра-предсказания, модифицировать выборку предсказания из множества выборок предсказания блока предсказания для генерации модифицированной выборки предсказания с использованием комбинации позиционно-зависимого интра-предсказания (PDPC), при этом для модифицирования выборки предсказания, видеодекодер сконфигурирован, чтобы определять одну или более опорных выборок, которые являются внешними по отношению к текущему блоку, на основе углового режима интра-предсказания и модифицировать выборку предсказания для генерации модифицированной выборки предсказания на основе определенной одной или более опорных выборок и восстанавливать выборку текущего блока на основе модифицированной выборки предсказания и остаточного значения. [0010] In one example, the disclosure describes an apparatus for decoding video data, the apparatus comprising a memory configured to store a prediction block and a video decoder comprising at least one of a fixed function circuit and a programmable circuit. The video decoder is configured to determine a prediction block that includes a plurality of prediction samples for the current block to be stored in memory, based on an intra-prediction angular mode that is not a DC, planar, horizontal, or vertical intra-prediction mode, modify the sample multiple prediction samples of the prediction block to generate a modified prediction sample using a position-dependent intra-prediction combination (PDPC), wherein to modify the prediction sample, the video decoder is configured to determine one or more reference samples that are external to the current block, based on the intra-prediction angular mode, and modify the prediction sample to generate a modified prediction sample based on the determined one or more reference samples, and resample the current block based on the modified prediction sample and the residual th value.

[0011] В одном примере, раскрытие описывает устройство для кодирования видеоданных, причем устройство содержит память, сконфигурированную, чтобы хранить блок предсказания, и видеокодер, содержащий по меньшей мере одну из схемы с фиксированной функцией и программируемой схемы. Видеокодер сконфигурирован, чтобы определять блок предсказания, который включает в себя множество выборок предсказания, для текущего блока, для хранения в памяти, на основе углового режима интра-предсказания, который не является DC, планарным, горизонтальным или вертикальным режимом интра-предсказания, модифицировать выборку предсказания из множества выборок предсказания блока предсказания для генерации модифицированной выборки предсказания с использованием комбинации позиционно-зависимого интра-предсказания (PDPC), при этом для модифицирования выборки предсказания, видеокодер сконфигурирован, чтобы определять одну или более опорных выборок, которые являются внешними по отношению к текущему блоку, на основе углового режима интра-предсказания и модифицировать выборку предсказания для генерации модифицированной выборки предсказания на основе определенной одной или более опорных выборок, определять остаточное значение для остаточного блока на основе модифицированной выборки предсказания и значения выборки в текущем блоке и сигнализировать информацию, указывающую остаточное значение. [0011] In one example, the disclosure describes an apparatus for encoding video data, the apparatus comprising a memory configured to store a prediction block and a video encoder comprising at least one of a fixed function circuit and a programmable circuit. The video encoder is configured to determine a prediction block, which includes a plurality of prediction samples, for the current block, for storage in memory, based on an intra-prediction angular mode that is not DC, planar, horizontal, or vertical intra-prediction mode, modify the sample multiple prediction samples of the prediction block to generate a modified prediction sample using a position-dependent intra-prediction combination (PDPC), wherein to modify the prediction sample, the video encoder is configured to determine one or more reference samples that are external to the current block, based on the intra-prediction angle mode, and modify the prediction sample to generate a modified prediction sample based on the determined one or more reference samples, determine a residual value for the residual block based on the modified prediction sample, and sample values in the current block and signal information indicating the residual value.

[0012] В одном примере, раскрытие описывает считываемый компьютером запоминающий носитель, хранящий инструкции, которые при исполнении побуждают один или более процессоров устройства для декодирования видеоданных: [0012] In one example, the disclosure describes a computer-readable storage medium that stores instructions that, when executed, cause one or more processors of a device to decode video data:

[0013] В одном примере, раскрытие описывает считываемый компьютером носитель данных, хранящий инструкции, которые при исполнении побуждают один или более процессоров устройства для декодирования видеоданных определять блок предсказания, который включает в себя множество выборок предсказания, для текущего блока на основе углового режима интра-предсказания, который не является DC, планарным, горизонтальным или вертикальным режимом интра-предсказания, модифицировать выборку предсказания из множества выборок предсказания блока предсказания для генерации модифицированной выборки предсказания с использованием комбинации позиционно-зависимого интра-предсказания (PDPC), причем инструкции, которые побуждают один или более процессоров модифицировать выборки предсказания, содержат инструкции, которые побуждают один или более процессоров определять одну или более опорных выборок, которые являются внешними по отношению к текущему блоку, на основе углового режима интра-предсказания и модифицировать выборку предсказания для генерации модифицированной выборки предсказания на основе определенной одной или более опорных выборок и восстанавливать выборку текущего блока на основе модифицированной выборки предсказания и остаточного значения. [0013] In one example, the disclosure describes a computer-readable storage medium storing instructions that, when executed, causes one or more processors of a video decoding device to determine a prediction block, which includes a plurality of prediction samples, for the current block based on the angle mode of the intra- prediction that is not DC, planar, horizontal, or vertical intra-prediction mode, modify a prediction sample from a plurality of prediction samples of the prediction block to generate a modified prediction sample using a position-dependent intra-prediction (PDPC) combination, wherein the instructions that cause one or more processors modify prediction samples contain instructions that cause one or more processors to determine one or more reference samples that are external to the current block based on the intra-prediction angular mode and modify a prediction sample to generate a modified prediction sample based on the determined one or more reference samples; and to resample the current block based on the modified prediction sample and the residual.

[0014] В одном примере, раскрытие описывает считываемый компьютером запоминающий носитель, хранящий инструкции, которые при исполнении побуждают один или более процессоров устройства для кодирования видеоданных определять блок предсказания, который включает в себя множество выборок предсказания, для текущего блока, на основе углового режима интра-предсказания, который не является DC, планарным, горизонтальным или вертикальным режимом интра-предсказания, для генерации модифицированной выборки предсказания с использованием комбинации позиционно-зависимого интра-предсказания (PDPC), причем инструкции, которые побуждают один или более процессоров модифицировать выборку предсказания, содержат инструкции, которые побуждают один или более процессоров определять одну или более опорных выборок, которые являются внешними по отношению к текущему блоку, на основе углового режима интра-предсказания и модифицировать выборку предсказания для генерации модифицированной выборки предсказания на основе определенного одной или более опорных выборок, определять остаточное значение для остаточного блока на основе модифицированной выборки предсказания и значения выборки в текущем блоке и сигнализировать информацию, указывающую остаточное значение. [0014] In one example, the disclosure describes a computer-readable storage medium storing instructions that, when executed, causes one or more processors of a video encoding device to determine a prediction block, which includes a plurality of prediction samples, for the current block, based on the angle mode of the intra -prediction that is not DC, planar, horizontal, or vertical intra-prediction mode, to generate a modified prediction sample using a position-dependent intra-prediction combination (PDPC), wherein the instructions that cause one or more processors to modify the prediction sample comprise instructions that cause one or more processors to determine one or more reference samples that are external to the current block based on the intra-prediction angular mode and modify the prediction sample to generate a modified prediction sample based on o determined by one or more reference samples, determine a residual value for the residual block based on the modified prediction sample and the sample value in the current block, and signal information indicating the residual value.

[0015] В одном примере, раскрытие описывает устройство для декодирования видеоданных, причем устройство содержит средство для определения блока предсказания, который включает в себя множество выборок предсказания, для текущего блока на основе углового режима интра-предсказания, который не является DC, планарным, горизонтальным или вертикальным режимом интра-предсказания, средство для модифицирования выборки предсказания из множества выборок предсказания в блоке предсказания для генерации модифицированной выборки предсказания с использованием комбинации позиционно-зависимого интра-предсказания (PDPC), при этом средство для модифицирования выборки предсказания содержит средство для определения одной или более опорных выборок, которые являются внешними по отношению к текущему блоку, на основе углового режима интра-предсказания и средство для модифицирования выборки предсказания для генерации модифицированной выборки предсказания на основе определенного одной или более опорных выборок и средство для восстановления выборки текущего блока на основе модифицированной выборки предсказания и остаточного значения. [0015] In one example, the disclosure describes an apparatus for decoding video data, the apparatus comprising means for determining a prediction block, which includes a plurality of prediction samples, for a current block based on an intra-prediction angular mode that is not DC, planar, horizontal. or vertical intra-prediction mode, means for modifying a prediction sample from a plurality of prediction samples in the prediction block to generate a modified prediction sample using a position-dependent intra-prediction combination (PDPC), wherein the means for modifying the prediction sample comprises means for determining one or more reference samples that are external to the current block based on the intra-prediction angular mode and means for modifying the prediction sample to generate a modified prediction sample based on the determined one or more reference samples, and cf. A tool for restoring the sample of the current block based on the modified prediction sample and the residual.

[0016] В одном примере, раскрытие описывает устройство для кодирования видеоданных, причем устройство содержит средство для определения блока предсказания, который включает в себя множество выборок предсказания, для текущего блока на основе углового режима интра-предсказания, который не является DC, планарным, горизонтальным или вертикальным режимом интра-предсказания, средство для модифицирования выборки предсказания из множества выборок предсказания блока предсказания для генерации модифицированной выборки предсказания с использованием комбинации позиционно-зависимого интра-предсказания (PDPC), при этом средство для модифицирования выборки предсказания содержит средство для определения одной или более опорных выборок, которые являются внешними по отношению к текущему блоку, на основе углового режима интра-предсказания и средство для модифицирования выборки предсказания для генерации модифицированной выборки предсказания на основе определенной одной или более опорных выборок, средство для определения остаточного значения для остаточного блока на основе модифицированной выборки предсказания и значения выборки в текущем блоке и средство для сигнализации информации, указывающей остаточное значение. [0016] In one example, the disclosure describes an apparatus for encoding video data, the apparatus comprising means for determining a prediction block, which includes a plurality of prediction samples, for a current block based on an intra-prediction angular mode that is not DC, planar, horizontal. or vertical intra-prediction mode, means for modifying a prediction sample from a plurality of prediction samples of the prediction block to generate a modified prediction sample using a position-dependent intra-prediction combination (PDPC), wherein the means for modifying the prediction sample comprises means for determining one or more reference samples that are external to the current block based on the intra-prediction angular mode and means for modifying the prediction sample for generating a modified prediction sample based on the determined one or more reference samples, means for determining a residual value for the residual block based on the modified prediction sample and the sample value in the current block; and means for signaling information indicating the residual value.

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

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

[0018] Фиг. 1 представляет собой блок-схему, иллюстрирующую примерную систему кодирования и декодирования видео, сконфигурированную для реализации методов раскрытия. [0018] FIG. 1 is a block diagram illustrating an exemplary video encoding and decoding system configured to implement disclosure techniques.

[0019] Фиг. 2А и 2В представляют собой концептуальные диаграммы, иллюстрирующие примеры весов PDPC режима DC для позиций выборок внутри блока 4×4. [0019] FIG. 2A and 2B are conceptual diagrams illustrating examples of DC mode PDPC weights for sample positions within a 4×4 block.

[0020] Фиг. 3 представляет собой концептуальную диаграмму, иллюстрирующую примеры угловых режимов интра-предсказания. [0020] FIG. 3 is a conceptual diagram illustrating examples of intra prediction angular modes.

[0021] Фиг. 4А представляет собой концептуальную диаграмму, иллюстрирующую пример диагонального вверх-вправо режима. [0021] FIG. 4A is a conceptual diagram illustrating an example of diagonal up-right mode.

[0022] Фиг. 4B представляет собой концептуальную диаграмму, иллюстрирующую пример диагонального вниз-влево режима. [0022] FIG. 4B is a conceptual diagram illustrating an example of a diagonal down-left mode.

[0023] Фиг. 4С представляет собой концептуальную диаграмму, иллюстрирующую пример смежного диагонального вверх-вправо режима. [0023] FIG. 4C is a conceptual diagram illustrating an example of an adjacent up-right diagonal mode.

[0024] Фиг. 4D представляет собой концептуальную диаграмму, иллюстрирующую пример смежного диагонального вниз-влево режима. [0024] FIG. 4D is a conceptual diagram illustrating an example of an adjacent diagonal down-left mode.

[0025] Фиг. 5A представляет собой концептуальную схему, иллюстрирующую пример таблицы 1, содержащей "BD-Rates" условия полного интра-тестирования для расширения PDPC, исключающего граничную фильтрацию диагонального и смежного режима. [0025] FIG. 5A is a conceptual diagram illustrating an example of Table 1 containing "BD-Rates" full intra-test conditions for a PDPC extension eliminating diagonal and adjacent mode edge filtering.

[0026] Фиг. 5B представляет собой концептуальную схему, иллюстрирующую пример таблицы 2, содержащей "BD-Rates" условия полного интра-тестирования для расширения PDPC, включающего граничную фильтрацию диагонального и смежного режима. [0026] FIG. 5B is a conceptual diagram illustrating an example of Table 2 containing "BD-Rates" full intra-test conditions for a PDPC extension including diagonal and adjacent mode edge filtering.

[0027] Фиг. 6 представляет собой блок-схему, иллюстрирующую пример видеокодера. [0027] FIG. 6 is a block diagram illustrating an example of a video encoder.

[0028] Фиг. 7 представляет собой блок-схему, иллюстрирующую пример видеодекодера. [0028] FIG. 7 is a block diagram illustrating an example of a video decoder.

[0029] Фиг. 8 представляет собой блок-схему последовательности операций, иллюстрирующую примерный способ кодирования видеоданных. [0029] FIG. 8 is a flowchart illustrating an exemplary method for encoding video data.

[0030] Фиг. 9 представляет собой блок-схему последовательности операций, иллюстрирующую примерный способ декодирования видеоданных. [0030] FIG. 9 is a flowchart illustrating an exemplary method for decoding video data.

Подробное описание Detailed description

[0031] Настоящее раскрытие описывает способы кодирования блока видеоданных с использованием интра-предсказания, и, более конкретно, настоящее раскрытие описывает способы, относящиеся к использованию интра-предсказания таким образом, чтобы использовать подход комбинации позиционно-зависимого интра-предсказания (PDPC) и, более конкретно, использовать подход PDPC, который распространяет такой подход PDPC на угловые режимы интра-предсказания (например, диагональные интра-режимы и угловые режимы, которые являются смежными с диагональными интра-режимами). Методы, описанные в настоящем документе, вводят эффективность сжатия в целом для кодирования блока видеоданных и, в частности, вводят эффективность сжатия в подход PDPC посредством использования таких методов для угловых режимов интра-предсказания (например, диагональных режимов интра-предсказания или угловых режимов интра-предсказания, смежных с диагональными режимами интра-предсказания), где эффективность сжатия является обычно желательной целью для совершенствования состояния существующих методов кодирования видео и улучшения рабочих характеристик процессоров кодирования видео и видеокодеков. [0031] The present disclosure describes methods for encoding a block of video data using intra-prediction, and more specifically, the present disclosure describes methods related to using intra-prediction in such a way as to use a position-dependent intra-prediction (PDPC) combination approach and, more specifically, use a PDPC approach that extends such a PDPC approach to intra-prediction angular modes (eg, diagonal intra modes and angular modes that are adjacent to diagonal intra modes). The techniques described herein introduce compression efficiency in general for encoding a block of video data, and in particular introduce compression efficiency into the PDPC approach by using such methods for intra-prediction angle modes (e.g., intra-prediction diagonal modes or intra-angle angle modes). prediction adjacent to diagonal intra-prediction modes), where compression efficiency is generally a desirable goal for improving the state of existing video coding techniques and improving the performance of video coding processors and video codecs.

[0032] Используемый в данном описании термин "кодирование видео" относится либо к кодированию видео, либо к декодированию видео. Аналогично, термин "устройство кодирования видео" может, в общем, относиться к видеокодеру или видеодекодеру. Кроме того, определенные способы, описанные в этом раскрытии в отношении декодирования видео, могут также применяться к кодированию видео и наоборот. Например, часто видеокодеры и видеодекодеры конфигурируются для выполнения того же самого процесса или взаимно обратных процессов. Кроме того, видеокодеры обычно выполняют декодирование видео как часть процессов определения того, как кодировать видеоданные. Таким образом, если не указано обратное, не следует предполагать, что способ, описанный в отношении декодирования видео, не может быть также выполнен как часть кодирования видео, или наоборот. [0032] As used herein, the term "video coding" refers to either video coding or video decoding. Likewise, the term "video encoder" may refer generally to a video encoder or video decoder. In addition, certain techniques described in this disclosure with respect to video decoding may also apply to video coding and vice versa. For example, often video encoders and video decoders are configured to perform the same process or reciprocal processes. In addition, video encoders typically perform video decoding as part of the processes of determining how to encode video data. Thus, unless otherwise indicated, it should not be assumed that the method described with respect to video decoding cannot also be performed as part of video coding, or vice versa.

[0033] Настоящее раскрытие также может использовать термины, такие как текущий уровень, текущий блок, текущая картинка (кадр), текущий слайс и т.д. В контексте настоящего раскрытия, термин "текущий" предназначен для идентификации блока, изображения, слайса и т.д., который в текущее время кодируется, в противоположность, например, ранее или уже кодированным блокам, картинкам и слайсам или еще не кодированным блокам, картинкам и слайсам. [0033] The present disclosure may also use terms such as current layer, current block, current picture (frame), current slice, and so on. In the context of this disclosure, the term "current" is intended to identify a block, picture, slice, etc. that is currently being encoded, as opposed to, for example, previously or already encoded blocks, pictures, and slices or not yet encoded blocks, pictures. and slices.

[0034] На фиг. 1 показана блок-схема, иллюстрирующая примерную систему 10 кодирования и декодирования видео, которая может использовать методы этого раскрытия для кодирования блока видеоданных с использованием подхода PDPC и, более конкретно, с использованием подхода PDPC, который распространяет такой подход PDPC на угловой режим интра-предсказания (например, диагональные интра-режимы и на угловые режимы, смежные с диагональными интра-режимами). Как показано на фиг. 1, система 10 включает в себя устройство 12 источника, которое предоставляет кодированные видеоданные, подлежащие декодированию позже устройством 14 места назначения. В частности, устройство 12 источника предоставляет видеоданные в устройство 14 места назначения через считываемый компьютером носитель 16. Устройство 12 источника и устройство 14 места назначения могут содержать любое из широкого диапазона устройств, включая настольные компьютеры, ноутбуки (т.е. портативные компьютеры), планшетные компьютеры, телевизионные приставки, телефонные трубки, такие как так называемые смартфоны, планшетные компьютеры, телевизоры, камеры, устройства отображения, цифровые мультимедийные плееры, видеоигровые консоли, устройство потокового видео или тому подобное. В некоторых случаях, устройство 12 источника и устройство 14 места назначения могут быть оснащены для беспроводной связи. Таким образом, устройство 12 источника и устройство 14 места назначения могут быть устройствами беспроводной связи. Устройство 12 источника представляет собой примерное устройство кодирования видео (то есть, устройство для кодирования видеоданных). Устройство 14 места назначения является примерным устройством декодирования видео (например, устройством или аппаратом для декодирования видеоданных). [0034] FIG. 1 is a block diagram illustrating an exemplary video encoding and decoding system 10 that may use the techniques of this disclosure to encode a block of video data using a PDPC approach, and more specifically, using a PDPC approach that extends such a PDPC approach to intra-prediction angular mode. (for example, diagonal intra-modes and angled modes adjacent to diagonal intra-modes). As shown in FIG. 1, system 10 includes source device 12 that provides encoded video data to be decoded later by destination device 14. In particular, source device 12 provides video data to destination device 14 via computer-readable media 16. Source device 12 and destination device 14 may comprise any of a wide range of devices, including desktop computers, laptops (i.e., laptops), tablet computers, set-top boxes, handsets such as so-called smartphones, tablet computers, televisions, cameras, display devices, digital media players, video game consoles, video streaming device or the like. 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. The source device 12 is an exemplary video encoding device (ie, a device for encoding video data). Destination device 14 is an exemplary video decoding device (eg, a device or apparatus for decoding video data).

[0035] В примере, показанном на фиг. 1, устройство 12 источника включает в себя источник 18 видео, запоминающие носители 20, сконфигурированные для хранения видеоданных, видеокодер 22 и интерфейс 24 вывода. Устройство 14 места назначения включает в себя интерфейс 26 ввода, запоминающие носители 28, сконфигурированные для хранения кодированных видеоданных, видеодекодер 30 и устройство 32 отображения. В других примерах, устройство 12 источника и устройство 14 места назначения включают в себя другие компоненты или компоновки. Например, устройство 12 источника может принимать видеоданные от внешнего источника видео, такого как внешняя камера. Аналогично, устройство 14 места назначения может взаимодействовать с внешним устройством отображения, вместо того, чтобы включать в себя интегрированное устройство отображения. [0035] In the example shown in FIG. 1, source device 12 includes a video source 18, storage media 20 configured to store video data, a video encoder 22, and an output interface 24. The destination device 14 includes an input interface 26, storage media 28 configured to store encoded video data, a video decoder 30, and a display device 32. In other examples, source device 12 and destination device 14 include other components or arrangements. For example, source device 12 may receive video data from an external video source such as an external camera. Likewise, destination device 14 may communicate with an external display device, instead of including an integrated display device.

[0036] Проиллюстрированная система 10, показанная на фиг. 1, представляет собой только один пример. Методы обработки видеоданных могут выполняться любым цифровым устройством или аппаратом кодирования и/или декодирования видео. Хотя в общем случае методы настоящего раскрытия выполняются устройством кодирования видео и устройством декодирования видео, методы также могут выполняться комбинированным видеокодером/декодером, обычно упоминаемым как кодек. Устройство 12 источника и устройство 14 места назначения являются просто примерами таких устройств кодирования, в которых устройство 12 источника генерирует кодированные видеоданные для передачи в устройство 14 места назначения. В некоторых примерах, устройство 12 источника и устройство 14 места назначения работают по существу симметричным образом, так что каждое из устройства 12 источника и устройства 14 места назначения включает в себя компоненты кодирования и декодирования видео. Следовательно, система 10 может поддерживать однонаправленную или двунаправленную передачу видео между устройством 12 источника и устройством 14 места назначения, например, для потоковой передачи видео, воспроизведения видео, видеовещания или видеотелефонии. [0036] The illustrated system 10 shown in FIG. 1 is just one example. The video data processing techniques may be performed by any digital device or video encoding and/or decoding apparatus. Although the methods of the present disclosure are generally performed by a video encoder and a video decoder, the methods can also be performed by a combined video encoder/decoder, commonly referred to as a codec. Source device 12 and destination device 14 are merely examples of such encoders, in which source device 12 generates encoded video data for transmission to destination device 14. In some examples, source device 12 and destination device 14 operate in a substantially symmetrical manner such that source device 12 and destination device 14 each include video encoding and decoding components. Therefore, system 10 can support unidirectional or bidirectional video transmission between source device 12 and destination device 14, such as for video streaming, video playback, video broadcasting, or video telephony.

[0037] Источник 18 видео устройства 12 источника может включать в себя устройство захвата видео, такое как видеокамера, видеоархив, содержащий ранее захваченное видео, и/или интерфейс ввода видео для приема видеоданных от поставщика видеоконтента. В качестве дополнительной альтернативы, источник 18 видео может генерировать данные на основе компьютерной графики в качестве исходного видео или комбинацию видео реального времени, архивированного видео и сгенерированного компьютером видео. Устройство 12 источника может содержать один или более носителей данных (например, запоминающих носителей 20), сконфигурированных для хранения видеоданных. Методы, описанные в этом раскрытии, могут применяться к кодированию видео в общем и могут применяться к беспроводным и/или проводным приложениям. В каждом случае, захваченное, предварительно захваченное или сгенерированное компьютером видео может кодироваться видеокодером 22. Интерфейс 24 вывода может выводить информацию кодированного видео на считываемый компьютером носитель 1615. [0037] Video source 18 of source device 12 may include a video capture device such as a video camera, a video archive containing previously captured video, and/or a video input interface for receiving video data from a video content provider. As a further alternative, video source 18 may generate computer graphics based data as source video, or a combination of live video, archived video, and computer generated video. Source device 12 may include one or more storage media (eg, storage media 20) configured to store video data. The techniques described in this disclosure may apply to video coding in general and may apply to wireless and/or wired applications. In each case, captured, pre-captured, or computer-generated video may be encoded by video encoder 22. Output interface 24 may output encoded video information to computer-readable media 1615.

[0038] Устройство 14 места назначения может принимать кодированные видеоданные, подлежащие декодированию, посредством считываемого компьютером носителя 16. Считываемый компьютером носитель 16 может содержать носитель или устройство любого типа, способное перемещать кодированные видеоданные от устройства 12 источника к устройству 14 места назначения. В некоторых примерах, считываемый компьютером носитель 16 содержит коммуникационную среду, чтобы обеспечивать возможность устройству 12 источника передавать кодированные видеоданные непосредственно в устройство 14 места назначения в реальном времени. Кодированные видеоданные могут модулироваться в соответствии со стандартом связи, таким как протокол беспроводной связи, и передаваться в устройство 14 места назначения. Коммуникационная среда может содержать любую беспроводную или проводную коммуникационную среду, такую как радиочастотный (RF) спектр или одна или более физических линий передачи. Коммуникационная среда может образовывать часть пакетной сети, такой как локальная сеть, сеть широкого охвата или глобальная сеть, такая как Интернет. Коммуникационная среда может включать в себя маршрутизаторы, коммутаторы, базовые станции или любое другое оборудование, которое может быть полезно для облегчения связи от устройства 12 источника к устройству 14 места назначения. Устройство 14 места назначения может содержать один или более носителей данных, сконфигурированных для хранения кодированных видеоданных и декодированных видеоданных. [0038] Destination device 14 may receive encoded video data to be decoded via computer-readable medium 16. Computer-readable medium 16 may comprise any type of media or device capable of transferring encoded video data from source device 12 to destination device 14. In some examples, computer-readable medium 16 includes a communication medium to enable source device 12 to transmit encoded video data directly to destination device 14 in real time. The encoded video data may be modulated according to a communication standard such as a wireless communication protocol and transmitted to the destination device 14 . The communication medium may comprise any wireless or wired communication medium, such as radio frequency (RF) spectrum or one or more physical transmission lines. The communication medium may form part of a packet network such as a local area network, a wide area network, or a wide area network such as the Internet. The communication medium may include routers, switches, base stations, or any other equipment that may be useful in facilitating communications from source device 12 to destination device 14. Destination device 14 may include one or more storage media configured to store encoded video data and decoded video data.

[0039] В некоторых примерах, кодированные данные (например, кодированные видеоданные) могут выводиться из интерфейса 24 вывода в устройство хранения. Аналогично, кодированные данные могут быть доступными из устройства хранения через интерфейс 26 ввода. Устройство хранения может включать в себя любой из множества распределенных или локально доступных носителей данных, таких как жесткий диск, Blu-ray диски, DVD, CD-ROM, флэш-память, энергозависимая или энергонезависимая память или любой другой подходящий цифровой носитель данных для хранения кодированных видеоданных. В другом примере, устройство хранения может соответствовать файловому серверу или другому промежуточному устройству хранения, которое может хранить кодированное видео, генерируемое устройством 12 источника. Устройство 14 места назначения может осуществлять доступ к сохраненным видеоданным из устройства хранения посредством потоковой передачи или загрузки. Файловым сервером может быть любой тип сервера, способный хранить кодированные видеоданные и передавать эти кодированные видеоданные в устройство 14 места назначения. Примеры файловых серверов включают в себя веб-сервер (например, для веб-сайта), FTP-сервер, сетевые устройства хранения (NAS) или локальный дисковод. Устройство 14 места назначения может осуществлять доступ к кодированным видеоданным через любое стандартное соединение передачи данных, включая Интернет-соединение. Это может включать в себя беспроводной канал (например, соединение Wi-Fi), проводное соединение (например, DSL, кабельный модем и т.д.) или их комбинацию, пригодную для доступа к кодированным видеоданным, хранящимся на файловом сервере. Передача кодированных видеоданных из устройства хранения может представлять собой потоковую передачу, передачу загрузки или их комбинацию. [0039] In some examples, encoded data (eg, encoded video data) may be output from the output interface 24 to a storage device. Likewise, the encoded data can be accessed from the storage device via the input interface 26 . The storage device may include any of a variety of distributed or locally available storage media such as a hard drive, Blu-ray discs, DVDs, CD-ROMs, flash memory, volatile or non-volatile memory, or any other suitable digital storage media for storing encoded video data. In another example, the storage device may correspond to a file server or other intermediate storage device that can store the encoded video generated by source device 12. The destination device 14 can access the stored video data from the storage device via streaming or download. The file server may be any type of server capable of storing encoded video data and transmitting this encoded video data to the destination device 14 . Examples of file servers include a web server (eg, for a website), an FTP server, network attached storage (NAS), or a local drive. Destination device 14 can access the encoded video data via any standard data connection, including an Internet connection. This may include a wireless link (eg, a Wi-Fi connection), a wired connection (eg, DSL, cable modem, etc.), or a combination thereof suitable for accessing encoded video data stored on a file server. The transmission of the encoded video data from the storage device may be a streaming transmission, a download transmission, or a combination thereof.

[0040] Методы настоящего раскрытия могут применяться к кодированию видео при поддержке любого из множества мультимедийных приложений, таких как широковещательные эфирные телевизионные передачи, передачи кабельного телевидения, передачи спутникового телевидения, передачи потокового видео через Интернет, такие как методы адаптивной потоковой передачи, включающие в себя динамическую адаптивную потоковую передачу по HTTP (DASH), цифровое видео, которое кодируется на носителе данных, декодирование цифрового видео, хранимого на носителе данных, или другие приложения. В некоторых примерах, система 10 может быть сконфигурирована для поддержки однонаправленной или двунаправленной передачи видео для поддержки приложений, таких как потоковая передача видео, воспроизведение видео, видеовещание и/или видеотелефония. [0040] The techniques of the present disclosure may be applied to video coding supporting any of a variety of multimedia applications, such as broadcast television transmissions, cable television transmissions, satellite television transmissions, video streaming over the Internet, such as adaptive streaming techniques, including dynamic adaptive streaming over HTTP (DASH), digital video that is encoded on a storage medium, decoding of digital video stored on a storage medium, or other applications. In some examples, system 10 may be configured to support unidirectional or bidirectional video to support applications such as video streaming, video playback, video broadcasting, and/or video telephony.

[0041] Считываемый компьютером носитель 16 может включать в себя переходные среды, такие как беспроводная широковещательная или проводная сетевая передача, или носители хранения (то есть непереходные (не-временные) носители данных), такие как жесткий диск, флэш-накопитель, компакт-диск, цифровой видеодиск, Blu-Ray диск или другие считываемые компьютером носители. В некоторых примерах, сетевой сервер (не показан) может принимать кодированные видеоданные от устройства 12 источника и выдавать закодированные видеоданные в устройство 14 места назначения, например, через сетевую передачу. ​Подобным образом, вычислительное устройство оборудования по производству носителей, такого как оборудование штамповки дисков, может принимать кодированные видеоданные от устройства 12 источника и производить диск, содержащий кодированные видеоданные. Поэтому считываемый компьютером носитель 16 может пониматься как включающий в себя один или более считываемых компьютером носителей различных форм, в различных примерах. [0041] Computer-readable media 16 may include transient media such as wireless broadcast or wired network transmission, or storage media (i.e., non-transient (non-transient) storage media) such as a hard drive, flash drive, compact disc, digital video disc, Blu-ray disc, or other computer-readable media. In some examples, a network server (not shown) may receive encoded video data from source device 12 and provide encoded video data to destination device 14, such as via a network transmission. ​Similarly, the computing device of media production equipment, such as disc stamping equipment, may receive encoded video data from source device 12 and produce a disc containing encoded video data. Therefore, computer-readable media 16 can be understood to include one or more computer-readable media in various forms, in various examples.

[0042] Интерфейс 26 ввода устройства 14 места назначения принимает информацию от считываемого компьютером носителя 16. Информация считываемого компьютером носителя 16 может включать в себя синтаксическую информацию, определенную видеокодером 22, также используемую видеодекодером 30, которая включает в себя синтаксические элементы, которые описывают характеристики и/или обработку блоков и других кодированных единиц, например групп изображений (картинок) (GOP). Запоминающие носители 28 могут хранить кодированные видеоданные, принятые интерфейсом 26 ввода. Устройство 32 отображения отображает декодированные видеоданные пользователю. Устройство 32 отображения может содержать любое из множества устройств отображения, таких как электронно-лучевая трубка (CRT), жидкокристаллический дисплей (LCD), плазменный дисплей, дисплей на органических светоизлучающих диодах (OLED) или другой тип устройства отображения. [0042] The input interface 26 of the destination device 14 receives information from the computer-readable medium 16. The information of the computer-readable medium 16 may include syntax information defined by video encoder 22, also used by video decoder 30, which includes syntax elements that describe characteristics and /or processing of blocks and other coded units, such as groups of pictures (pictures) (GOP). The storage media 28 may store the encoded video data received by the input interface 26 . The display device 32 displays the decoded video data to the user. The display device 32 may comprise any of a variety of display devices such as a cathode ray tube (CRT), liquid crystal display (LCD), plasma display, organic light emitting diode (OLED) display, or other type of display device.

[0043] Видеокодер 22 и видеодекодер 30 могут быть реализованы как любая из множества подходящих схем кодера или декодера, таких как один или более микропроцессоров, цифровых сигнальных процессоров (DSP), специализированных интегральных схем (ASIC), программируемых вентильных матриц (FPGA), дискретных логических схем, программного обеспечения, аппаратных средств, микропрограммного обеспечения или любых их комбинаций. ​Когда методы реализованы частично в программном обеспечении, устройство может хранить инструкции для программного обеспечения в подходящем не-временном считываемом компьютером носителе и может исполнять инструкции в аппаратных средствах с использованием одного или более процессоров для выполнения методов данного раскрытия. Каждый из видеокодера 22 и видеодекодера 30 может быть включен в один или более кодеров или декодеров, каждый из которых может быть интегрирован как часть комбинированного кодера/декодера (CODEC) в соответствующем устройстве. [0043] Video encoder 22 and video decoder 30 may be implemented as any of a variety of suitable encoder or decoder circuits, such as one or more microprocessors, digital signal processors (DSPs), application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), discrete logic, software, hardware, firmware, or any combination thereof. ​When the methods are implemented in part in software, the device may store the instructions for the software in a suitable non-transitory computer-readable medium and may execute the instructions in hardware using one or more processors to execute the methods of this disclosure. Each of video encoder 22 and video decoder 30 may be included in one or more encoders or decoders, each of which may be integrated as part of a combined encoder/decoder (CODEC) in a respective device.

[0044] В некоторых примерах, видеокодер 22 и видеодекодер 30 могут работать в соответствии со стандартом кодирования видео. Примеры стандартов кодирования видео включают в себя, без ограничения указанным, ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 или ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual и ITU-T H.264 (также известный как ISO/IEC MPEG-4 AVC), включая его расширения Масштабируемого кодирования видео (SVC) и Мульти-видового кодирования видео (MVC). Стандарт кодирования видео HEVC (Высокоэффективное кодирование видео) или ITU-T H 265, включая его расширения кодирования диапазона и экранного контента, 3D кодирование видео (3D-HEVC) и мульти-видовые расширения (MV-HEVC) и масштабируемое расширение (SHVC), были разработаны Объединенной группой по кодированию видео (JCT-VC) Группы экспертов по кодированию видео ITU-T (VCEG) и Группы экспертов по движущимся изображениям ISO/IEC (MPEG). Спецификация проекта HEVC, упоминаемая далее как HEVC WD, доступна из ttp://phenix.int-evry.fr/jct/doc_end_user/documents/[0044] In some examples, video encoder 22 and video decoder 30 may operate in accordance with a video coding standard. Examples of video coding standards include, but are not limited to, ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 or ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO /IEC MPEG-4 Visual and ITU-T H.264 (also known as ISO/IEC MPEG-4 AVC), including its Scalable Video Coding (SVC) and Multi-View Video Coding (MVC) extensions. The HEVC (High Efficiency Video Coding) or ITU-T H 265 video coding standard, including its range and screen content coding extensions, 3D video coding (3D-HEVC) and multi-view extensions (MV-HEVC) and scalable extension (SHVC), were developed by the Joint Video Coding Group (JCT-VC) of the ITU-T Video Coding Expert Group (VCEG) and the ISO/IEC Moving Picture Expert Group (MPEG). The HEVC project specification, hereinafter referred to as HEVC WD, is available from ttp://phenix.int-evry.fr/jct/doc_end_user/documents/

l4_Vienna/wg11/JCTVC-Nl003-vl.zip. l4_Vienna/wg11/JCTVC-Nl003-vl.zip.

[0045] Видеокодер 22 и видеодекодер 30 также могут работать в соответствии с другими проприетарными или промышленными стандартами, такими как Тестовая модель совместного исследования (JEM) или ITU-T H.266, также упоминаемая как Многоцелевое кодирование видео (VVC). Недавний проект стандарта VVC описан в Bross, et al. “Versatile Video Coding (Draft 4)”, Joint Video Experts Team (JVET) ITU-T SG 16 WP 3 и ISO/IEC JTC 1/SC 29/WG 11, 13th Meeting: Marrakech, MA, 9-18 January 2019, JVET-M1001-v5 (далее “VVC Draft 4”). Однако методы настоящего раскрытия не ограничиваются каким-либо конкретным стандартом кодирования. [0045] Video encoder 22 and video decoder 30 may also operate in accordance with other proprietary or industry standards such as the Joint Exploration Test Model (JEM) or ITU-T H.266, also referred to as Versatile Video Coding (VVC). A recent draft VVC standard is described in Bross, et al. “Versatile Video Coding (Draft 4)”, Joint Video Experts Team (JVET) ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 13th Meeting : Marrakech, MA, 9-18 January 2019 , JVET-M1001-v5 (hereinafter referred to as “VVC Draft 4”). However, the techniques of the present disclosure are not limited to any particular coding standard.

[0046] В HEVC и VVC и других спецификациях кодирования видео, видеопоследовательность обычно включает в себя последовательность изображений (картинок). Картинки также могут упоминаться как кадры. Картинка может включать в себя три массива выборок, обозначенных как SL, SСb и SСr. SL представляет собой двумерный массив (т.е. блок) выборок яркости. SСb представляет собой двумерный массив выборок сигнала цветности Cb. SСr представляет собой двумерный массив выборок цветности Cr. Выборки цветности также могут упоминаться в данном документе как выборки цветовой насыщенности. В других случаях, картинка может быть монохромной и может включать в себя только массив выборок яркости. [0046] In HEVC and VVC and other video coding specifications, a video sequence typically includes a sequence of images (pictures). Pictures may also be referred to as frames. The picture may include three arrays of samples, denoted as S L , S Cb and S Cr . S L is a two-dimensional array (ie block) of luminance samples. S Cb is a two-dimensional array of chroma samples Cb. S Cr is a two-dimensional array of Cr chromaticity samples. Chroma samples may also be referred to herein as chroma samples. In other cases, the picture may be monochrome and may include only an array of luminance samples.

[0047] Кроме того, в HEVC и других спецификациях кодирования видео, для генерации кодированного представления картинки, видеокодер 22 может генерировать набор единиц дерева кодирования (CTU). Каждая из CTU может содержать блок дерева кодирования выборок яркости, два соответствующих блока дерева кодирования выборок цветности и синтаксические структуры, используемые для кодирования выборок блоков дерева кодирования. В монохромных картинках или картинках, имеющих три отдельные цветовые плоскости, CTU может содержать один блок дерева кодирования и синтаксические структуры, используемые для кодирования выборок блока дерева кодирования. Блок дерева кодирования может быть блоком N×N выборок. CTU может также упоминаться как “блок дерева” или “наибольшая единица кодирования” (LCU). CTU в HEVC могут быть в целом аналогичны макроблокам других стандартов, таких как H.264/AVC. ​Однако CTU не обязательно ограничена конкретным размером и может включать в себя одну или более единиц кодирования (CU). Слайс может включать в себя целое число CTU, упорядоченных последовательно в порядке растрового сканирования. [0047] In addition, in HEVC and other video coding specifications, to generate an encoded representation of a picture, video encoder 22 may generate a set of coding tree units (CTUs). Each of the CTUs may contain a luminance sample coding tree block, two corresponding chrominance sample coding tree blocks, and syntax structures used to encode the coding tree block samples. In monochrome pictures or pictures having three separate color planes, the CTU may contain one coding tree block and the syntax structures used to encode samples of the coding tree block. The coding tree block may be a block of NxN samples. A CTU may also be referred to as a "tree block" or "largest coding unit" (LCU). CTUs in HEVC may be broadly similar to macroblocks in other standards such as H.264/AVC. ​However, a CTU is not necessarily limited to a specific size and may include one or more coding units (CUs). A slice may include an integer number of CTUs ordered sequentially in raster scan order.

[0048] При работе в соответствии с HEVC, для генерации кодированной CTU, видеокодер 22 может рекурсивно выполнять разбиение квадродерева на блоки дерева кодирования из CTU для разделения блоков дерева кодирования на блоки кодирования, отсюда название “единицы дерева кодирования”. Блок кодирования представляет собой блок N×N выборок. CU может содержать блок кодирования выборок яркости и два соответствующих блока кодирования выборок цветности картинки, которая имеет массив выборок яркости, массив выборок Cb и массив выборок Cr, и синтаксические структуры, используемые для кодирования выборок блоков кодирования. В монохромных картинках или картинках, имеющих три отдельные цветовые плоскости, CU может содержать один блок кодирования и синтаксические структуры, используемые для кодирования выборок блока кодирования. [0048] When operating in accordance with HEVC, to generate an encoded CTU, video encoder 22 may recursively perform quadtree splitting into coding tree blocks from the CTU to split coding tree blocks into coding blocks, hence the name “coding tree units”. The coding block is a block of N×N samples. The CU may comprise a luminance sample coding block and two corresponding chrominance sample coding blocks of a picture that has a luminance sample array, a Cb sample array, and a Cr sample array, and syntax structures used to encode the coding block samples. In monochrome pictures or pictures having three separate color planes, a CU may contain one coding unit and syntax structures used to encode the coding unit samples.

[0049] Синтаксические данные в битовом потоке также могут определять размер для CTU. Слайс включает в себя ряд последовательных CTU в порядке кодирования. Видеокадр или картинка могут быть разбиты на один или более слайсов. Как упомянуто выше, каждый блок дерева может быть разделен на CU в соответствии с квадродеревом. В общем, структура данных квадродерева включает в себя один узел на CU, с корневым узлом, соответствующим блоку дерева. Если CU разбивается на четыре под-CU, узел, соответствующий CU, включает в себя четыре листовых узла, каждый из которых соответствует одной из под-CU. [0049] The syntax data in the bitstream may also determine the size for the CTU. A slice includes a number of consecutive CTUs in coding order. A video frame or picture may be divided into one or more slices. As mentioned above, each tree block can be divided into CUs according to the quadtree. In general, the quadtree data structure includes one node per CU, with the root node corresponding to the tree block. If the CU is split into four sub-CUs, the node corresponding to the CU includes four leaf nodes, each corresponding to one of the sub-CUs.

[0050] Каждый узел структуры данных квадродерева может предоставлять синтаксические данные для соответствующей CU. Например, узел в квадродереве может включать в себя флаг разделения, указывающий, разделяется ли CU, соответствующая узлу, на под-CU. Синтаксические элементы для CU могут быть определены рекурсивно и могут зависеть от того, разделяется ли CU на под-CU. Если CU дальше не разделяется, то она упоминается как листовая CU. Если блок CU разделяется дальше, то он может обычно упоминаться как не-листовая CU. В некоторых примерах данного раскрытия, четыре под-CU листовой CU могут упоминаться как листовые CU, даже если не существует явного разделения исходной листовой CU. Например, если CU с размером 16×16 не разделяется дальше, то четыре 8×8 под-CU также могут упоминаться как листовые CU, хотя 16×16 CU ни разу не была разделена. [0050] Each node of the quadtree data structure may provide syntax data for the corresponding CU. For example, a node in the quadtree may include a split flag indicating whether the CU corresponding to the node is split into sub-CUs. The syntax elements for a CU may be determined recursively and may depend on whether the CU is split into sub-CUs. If the CU is not split further, then it is referred to as a leaf CU. If the CU is split further, then it may generally be referred to as a non-leaf CU. In some examples of this disclosure, four sub-CUs of a leaf-CU may be referred to as leaf-CUs even if there is no explicit separation of the original leaf-CU. For example, if a 16x16 CU is not split further, then four 8x8 sub-CUs may also be referred to as leaf CUs, even though the 16x16 CU has never been split.

[0051] CU имеет то же назначение, что и макроблок стандарта H.264, за исключением того, что CU не имеет отличий по размеру. Например, блок дерева может быть разделен на четыре дочерних узла (также упоминаемых как под-CU), и каждый дочерний узел может, в свою очередь, быть родительским узлом и быть разделен на другие четыре дочерних узла. Наконец, неразделенный дочерний узел, упоминаемый как листовой узел квадродерева, содержит узел кодирования, также упоминаемый как листовая CU. Синтаксические данные, ассоциированные с кодированным битовым потоком, могут определять максимальное количество раз разделения блока дерева, упоминаемое как максимальная глубина CU, и может также определять минимальный размер узлов кодирования. Соответственно, битовый поток может также определять наименьшую единицу кодирования (SCU). Это раскрытие использует термин "блок" для ссылки на любую из CU, PU или TU, в контексте HEVC, или аналогичные структуры данных в контексте других стандартов (например, макроблоки и их подблоки в H.264/AVC). [0051] The CU has the same purpose as the H.264 macroblock, except that the CU has no difference in size. For example, a tree block may be divided into four child nodes (also referred to as sub-CUs), and each child node may in turn be a parent node and be divided into another four child nodes. Finally, an unshared child node, referred to as a quadtree leaf node, contains an encoding node, also referred to as a leaf CU. The syntax data associated with the encoded bitstream may define the maximum number of times a tree block is split, referred to as the maximum CU depth, and may also define the minimum size of coding nodes. Accordingly, the bitstream may also define a smallest coding unit (SCU). This disclosure uses the term "block" to refer to any of a CU, PU, or TU, in the context of HEVC, or similar data structures in the context of other standards (eg, macroblocks and their subblocks in H.264/AVC).

[0052] CU включает в себя узел кодирования, а также единицы предсказания (PU) и единицы преобразования (TU), ассоциированные с узлом кодирования. Размер CU соответствует размеру узла кодирования и может, в некоторых примерах, иметь квадратную форму. В примере HEVC, размер CU может находиться в диапазоне от 8×8 пикселов до размера блока дерева максимум с 64×64 пикселов или больше. Каждая CU может содержать одну или более PU и одну или более TU. Синтаксические данные, ассоциированные с CU, могут описывать, например, разбиение CU на одну или более PU. Режимы разбиения могут различаться между тем, пропускается ли CU или кодируется в прямом режиме, кодируется в режиме интра-предсказания или кодируется в режиме интер-предсказания. PU могут разбиваться так, чтобы иметь неквадратную форму. Синтаксические данные, ассоциированные с CU, могут также описывать, например, разбиение CU на одну или более TU в соответствии с квадродеревом. TU может иметь квадратную или неквадратную (например, прямоугольную) форму. [0052] The CU includes an encoding node, as well as prediction units (PUs) and transformation units (TUs) associated with the encoding node. The size of the CU corresponds to the size of the coding unit and may, in some examples, be square. In the HEVC example, the CU size may range from 8x8 pixels up to a tree block size of at most 64x64 pixels or more. Each CU may contain one or more PUs and one or more TUs. The syntax data associated with a CU may describe, for example, the partitioning of the CU into one or more PUs. The partitioning modes may differ between whether the CU is skipped or encoded in direct mode, encoded in intra-prediction mode, or encoded in inter-prediction mode. PUs can be broken so as to have a non-square shape. Syntax data associated with a CU may also describe, for example, partitioning the CU into one or more TUs according to a quadtree. The TU may be square or non-square (eg, rectangular) in shape.

[0053] Стандарт HEVC позволяет осуществлять преобразования в соответствии с TU. TU могут отличаться для различных CU. Размеры TU обычно выбираются на основе размера PU в данной CU, определенного для разбитой LCU, хотя это не всегда может иметь место. TU обычно имеют такой же размер или меньше, чем PU. В некоторых примерах, остаточные выборки, соответствующие CU, могут быть разделены на меньшие единицы с использованием структуры квадродерева, иногда называемой "остаточным квадродеревом" (RQT). Листовые узлы RQT могут упоминаться как TU. Пиксельные разностные значения, ассоциированные с TU, могут быть преобразованы для получения коэффициентов преобразования, которые могут быть квантованы. [0053] The HEVC standard allows conversions according to TU. TUs may differ for different CUs. The TU sizes are usually chosen based on the size of the PUs in a given CU as defined for the broken LCU, although this may not always be the case. TUs are usually the same size or smaller than PUs. In some examples, the residual samples corresponding to the CU may be divided into smaller units using a quadtree structure, sometimes referred to as a "residual quadtree" (RQT). Leaf nodes of an RQT may be referred to as TUs. The pixel differences associated with the TU may be transformed to obtain transform coefficients, which may be quantized.

[0054] Листовая CU может включать в себя одну или более PU. В общем случае, PU представляет собой пространственную область, соответствующую всей или части соответствующей CU, и может включать в себя данные для извлечения опорной выборки для PU. Кроме того, PU включает в себя данные, относящиеся к предсказанию. Например, когда PU является кодированной в интра-режиме, данные для PU могут быть включены в RQT, которое может включать в себя данные, описывающие режим интра-предсказания для TU, соответствующей PU. ​В качестве другого примера, когда PU является кодированной в интер-режиме, PU может включать в себя данные, определяющие один или более векторов движения для PU. Данные, определяющие вектор движения для PU, могут описывать, например, горизонтальную составляющую вектора движения, вертикальную составляющую вектора движения, разрешение для вектора движения (например, точность в одну четверть пиксела или точность в одну восьмую пиксела), опорную картинку, на которую указывает вектор движения, и/или список опорных картинок (например, список 0, список 1 или список С) для вектора движения. [0054] A leaf CU may include one or more PUs. In general, a PU is a spatial region corresponding to all or part of a corresponding CU and may include data for extracting a reference sample for the PU. In addition, the PU includes prediction-related data. For example, when the PU is intra-mode encoded, data for the PU may be included in the RQT, which may include data describing the intra-prediction mode for the TU corresponding to the PU. As another example, when the PU is inter-mode encoded, the PU may include data specifying one or more motion vectors for the PU. The data defining the motion vector for the PU may describe, for example, the horizontal component of the motion vector, the vertical component of the motion vector, the resolution for the motion vector (e.g., one quarter pixel precision or one eighth pixel precision), the reference picture pointed to by the motion vector motion, and/or a list of reference pictures (eg, list 0, list 1, or list C) for the motion vector.

[0055] Листовая CU, имеющая одну или более PU, может также включать в себя одну или более TU. TU могут быть определены с использованием RQT (также упоминаемого как структура квадродерева TU), как обсуждалось выше. Например, флаг разделения может указывать, разделена ли листовая CU на четыре единицы преобразования. В некоторых примерах, каждая единица преобразования может быть разделена дополнительно на дальнейшие под-TU. Если TU дальше не разделена, то она может упоминаться как листовая TU. В общем случае, для интра-кодирования, все листовые TU, принадлежащие листовой CU, содержат остаточные данные, полученные из одного и того же режима интра- предсказания. То есть, тот же самый режим интра-предсказания обычно применяется для вычисления предсказанных значений, которые будут преобразованы, во всех TU листовой CU. Для интра- кодирования, видеокодер 22 может вычислять остаточное значение для каждой листовой TU с использованием режима интра-предсказания как разность между частью CU, соответствующей TU, и исходным блоком. TU не обязательно ограничена размером PU. Таким образом, TU могут быть больше или меньше, чем PU. Для интра-кодирования, PU может быть расположена совместно с соответствующей листовой TU для той же самой CU. В некоторых примерах, максимальный размер листового TU может соответствовать размеру соответствующей листовой CU. [0055] A leaf CU having one or more PUs may also include one or more TUs. TUs can be defined using the RQT (also referred to as the TU quadtree structure) as discussed above. For example, the split flag may indicate whether the leaf-CU is divided into four transform units. In some examples, each transformation unit may be further divided into further sub-TUs. If the TU is not further partitioned, then it may be referred to as a leaf TU. In general, for intra coding, all leaf TUs belonging to a leaf CU contain residual data obtained from the same intra prediction mode. That is, the same intra-prediction mode is generally applied to calculate predicted values to be transformed across all TUs of a leaf-CU. For intra coding, video encoder 22 may calculate a residual value for each leaf TU using the intra prediction mode as the difference between the portion of the CU corresponding to the TU and the original block. The TU is not necessarily limited by the size of the PU. Thus, TUs may be larger or smaller than PUs. For intra coding, a PU may be co-located with a corresponding leaf TU for the same CU. In some examples, the maximum leaf TU size may correspond to the corresponding leaf CU size.

[0056] Кроме того, TU листовых CU также могут быть ассоциированы с соответствующими структурами RQT. То есть, листовая CU может включать в себя квадродерево, указывающее, как листовая CU разбивается на TU. Корневой узел квадродерева TU обычно соответствует листовой CU, тогда как корневой узел квадродерева CU обычно соответствует блоку дерева (или LCU). [0056] In addition, leaf-CU TUs may also be associated with corresponding RQT structures. That is, the leaf-CU may include a quadtree indicating how the leaf-CU is partitioned into TUs. A TU quadtree root node usually corresponds to a leaf CU, while a CU quadtree root node usually corresponds to a tree block (or LCU).

[0057] Как обсуждалось выше, видеокодер 22 может разбивать блок кодирования CU на один или более блоков предсказания. Блок предсказания представляет собой прямоугольный (т.е. квадратный или неквадратный) блок выборок, на котором применяется одно и то же предсказание. PU в CU могут содержать блок предсказания выборок яркости, два соответствующих блока предсказания выборок цветности и синтаксические структуры, используемые для предсказания блоков предсказания. В монохромных картинках или изображениях, имеющих три отдельные цветовые плоскости, PU может содержать один блок предсказания и синтаксические структуры, используемые для предсказания блока предсказания. Видеокодер 22 может генерировать блоки предсказания (например, блоки предсказания яркости, Cb и Cr) для блоков предсказания (например, блоков предсказания яркости, Cb и Cr) каждой PU в CU. [0057] As discussed above, video encoder 22 may partition a CU coding block into one or more prediction blocks. A prediction block is a rectangular (ie, square or non-square) block of samples over which the same prediction is applied. The PUs in the CU may contain a luminance sample predictor, two corresponding chrominance sample predictors, and syntax structures used to predict the prediction blocks. In monochrome pictures or images having three separate color planes, the PU may contain one prediction block and syntax structures used to predict the prediction block. Video encoder 22 may generate prediction blocks (eg, luminance prediction blocks, Cb and Cr) for prediction blocks (eg, luminance prediction blocks, Cb and Cr) of each PU in the CU.

[0058] Видеокодер 22 и видеодекодер 30 могут быть сконфигурированы так, чтобы работать в соответствии с VVC. Согласно VVC, видеокодер (такой как видеокодер 22) разбивает картинку на множество единиц дерева кодирования (CTU). Видеокодер 22 может разбивать CTU в соответствии со структурой дерева, такой как структура квадродерева-двоичного дерева (QTBT) или структура дерева множественного типа (МТТ). Структура QTBT удаляет концепции множества типов разбиения, такие как разделение между CU, PU и TU в HEVC. Структура QTBT включает в себя два уровня: первый уровень, разбиваемый в соответствии с разбиением квадродерева, и второй уровень, разбиваемый в соответствии с разбиением двоичного дерева. Корневой узел структуры QTBT соответствует CTU. Листовые узлы двоичных деревьев соответствуют единицам кодирования (CU). [0058] Video encoder 22 and video decoder 30 may be configured to operate in accordance with VVC. According to VVC, a video encoder (such as video encoder 22) partitions a picture into multiple coding tree units (CTUs). Video encoder 22 may partition the CTU according to a tree structure, such as a quadtree-binary tree (QTBT) structure or a multiple tree type (MTT) structure. The QTBT structure removes the concepts of multiple partition types, such as the partition between CUs, PUs, and TUs in HEVC. The QTBT structure includes two levels: a first level split according to a quadtree split and a second level split according to a binary tree split. The root node of the QTBT structure corresponds to the CTU. The leaf nodes of binary trees correspond to coding units (CUs).

[0059] В структуре разбиения МТТ, блоки могут быть разбиты с использованием разбиения квадродерева (QT), разбиения двоичного дерева (BT) и одного или более типов разбиения троичного дерева (ТТ). Разбиение троичного дерева представляет собой разбиение, в котором блок разделяется на три подблока. В некоторых примерах, разбиение троичного дерева делит блок на три подблока без разделения исходного блока через центр. Типы разбиения в МТТ (например, QT, ВТ и ТТ) могут быть симметричными или асимметричными. [0059] In an MTT split structure, blocks may be split using a quadtree split (QT), a binary tree split (BT), and one or more types of ternary tree split (TT). A ternary tree split is a split in which a block is divided into three subblocks. In some examples, splitting a ternary tree divides a block into three subblocks without splitting the original block through the center. Partition types in MTT (for example, QT, BT and TT) can be symmetrical or asymmetric.

[0060] В некоторых примерах, видеокодер 22 и видеодекодер 30 могут использовать одну структуру QTBT или MTT для представления каждого из компонентов яркости и цветности, в то время как в других примерах видеокодер 22 и видеодекодер 30 могут использовать две или более структуры QTBT или MTT, такие как одна структура QTBT/MTT для компонента яркости и другая структура QTBT/MTT для обоих компонентов цветности (или две структуры QTBT/MTT для соответствующих компонентов цветности). [0060] In some examples, video encoder 22 and video decoder 30 may use one QTBT or MTT structure to represent each of the luminance and chrominance components, while in other examples, video encoder 22 and video decoder 30 may use two or more QTBT or MTT structures, such as one QTBT/MTT structure for the luminance component and another QTBT/MTT structure for both chrominance components (or two QTBT/MTT structures for the respective chrominance components).

[0061] Видеокодер 22 и видеодекодер 30 могут быть сконфигурированы, чтобы использовать разбиение квадродерева по HEVC, разбиение QTBT, разбиение МТТ или другие структуры разбиения. Для целей объяснения, описание методов настоящего раскрытия представлено применительно к разбиению QTBT. Однако следует понимать, что методы настоящего раскрытия также могут применяться к видеокодерам, сконфигурированным для использования разбиения квадродерева или других типов разбиения. [0061] Video encoder 22 and video decoder 30 may be configured to use HEVC quadtree partitioning, QTBT partitioning, MTT partitioning, or other partitioning structures. For the purposes of explanation, the description of the methods of the present disclosure is presented in relation to partitioning QTBT. However, it should be understood that the techniques of the present disclosure may also apply to video encoders configured to use quadtree splitting or other types of splitting.

[0062] Видеокодер 22 может использовать интра-предсказание или интер-предсказание для генерации блоков предсказания для PU. Если видеокодер 22 использует интра-предсказание для генерации блоков предсказания PU, видеокодер 22 может генерировать блоки предсказания PU на основе декодированных выборок картинки, которая включает в себя PU. [0062] Video encoder 22 may use intra-prediction or inter-prediction to generate prediction blocks for the PU. If video encoder 22 uses intra prediction to generate PU prediction blocks, video encoder 22 may generate PU prediction blocks based on decoded samples of a picture that includes the PU.

[0063] После того, как видеокодер 22 генерирует блоки предсказания (например, блоки предсказания яркости, Cb и Cr) для одной или более PU в CU, видеокодер 22 может генерировать один или более остаточных блоков для CU. Например, видеокодер 22 может генерировать остаточный блок яркости для CU. Каждая выборка в остаточном блоке яркости CU указывает разность между выборкой яркости в одном из блоков предсказания яркости CU и соответствующей выборкой в исходном блоке кодирования яркости CU. Кроме того, видеокодер 22 может генерировать остаточный блок Cb для CU. Каждая выборка в остаточном блоке Cb CU может указывать разность между выборкой Cb в одном из блоков предсказания Cb CU и соответствующей выборкой в исходном блоке кодирования Cb CU. Видеокодер 22 может также генерировать остаточный блок Cr для CU. Каждая выборка в остаточном блоке Cr CU может указывать разность между выборкой Cr в одном из блоков Cr предсказания CU и соответствующей выборкой в исходном блоке кодирования Cr CU. [0063] After video encoder 22 generates prediction blocks (eg, luminance, Cb, and Cr prediction blocks) for one or more PUs in a CU, video encoder 22 may generate one or more residual blocks for the CU. For example, video encoder 22 may generate a residual luminance block for the CU. Each sample in the CU's residual luminance block indicates the difference between a luminance sample in one of the CU's luminance prediction blocks and a corresponding sample in the original CU's luminance coding block. In addition, video encoder 22 may generate a residual block Cb for the CU. Each sample in the residual Cb CU may indicate a difference between a sample Cb in one of the prediction blocks Cb CU and a corresponding sample in the original coding block Cb CU. Video encoder 22 may also generate a residual Cr for the CU. Each sample in the CU residual Cr may indicate a difference between a Cr sample in one of the CU prediction Crs and a corresponding sample in the original CU Cr coding block.

[0064] Кроме того, как обсуждалось выше, видеокодер 22 может использовать разбиение квадродерева для разложения остаточных блоков (например, остаточных блоков яркости, Cb и Cr) CU в один или более блоков преобразования (например, блоков преобразования яркости, Cb и Cr). Блок преобразования представляет собой прямоугольный (например, квадратный или неквадратный) блок выборок, к которому применяется одно и то же преобразование. Блок преобразования (TU) в CU может содержать блок преобразования выборок яркости, два соответствующих блока преобразования выборок цветности и синтаксические структуры, используемые для преобразования выборок блока преобразования. Таким образом, каждый TU в CU может иметь блок преобразования яркости, блок преобразования Cb и блок преобразования Cr. Блок преобразования яркости TU может быть подблоком остаточного блока яркости CU. Блок преобразования Cb может быть подблоком остаточного блока Cb CU. Блок преобразования Cr может быть подблоком остаточного блока Cr CU. В монохромных картинках или в картинках, имеющих три отдельные цветовые плоскости, TU может содержать один блок преобразования и синтаксические структуры, используемые для преобразования выборок блока преобразования. [0064] In addition, as discussed above, video encoder 22 may use quadtree partitioning to decompose residual blocks (eg, luminance residual blocks, Cb and Cr) of the CU into one or more transform blocks (eg, luma transform blocks, Cb and Cr). A transform block is a rectangular (eg, square or non-square) block of samples to which the same transform is applied. A transform unit (TU) in the CU may contain a luminance sample transform unit, two corresponding chrominance sample transform units, and syntax structures used to transform the transform block samples. Thus, each TU in a CU may have a luminance transform block, a Cb transform block, and a Cr transform block. The luminance transform block TU may be a sub-block of the residual luminance block CU. The transform block Cb may be a subblock of the residual block Cb of the CU. The Cr transform block may be a sub-block of the CU residual block Cr. In monochrome pictures or pictures having three separate color planes, a TU may contain one transform block and syntax structures used to transform the transform block samples.

[0065] Видеокодер 22 может применять одно или более преобразований блока преобразования TU для генерации блока коэффициентов для TU. Например, видеокодер 22 может применять одно или более преобразований к блоку преобразования яркости TU для генерации блока коэффициентов яркости для TU. Блок коэффициентов может быть двумерным массивом коэффициентов преобразования. Коэффициент преобразования может быть скалярной величиной. Видеокодер 22 может применять одно или более преобразований к блоку преобразования Cb TU для генерации блока коэффициентов Cb для TU. Видеокодер 22 может применять одно или более преобразований к блоку преобразования Cr TU для генерации блока коэффициентов Cr для TU. [0065] Video encoder 22 may apply one or more TU transform block transforms to generate a coefficient block for the TU. For example, video encoder 22 may apply one or more transforms to the TU luminance transform block to generate a luminance coefficient block for the TU. The coefficient block may be a two-dimensional array of transform coefficients. The conversion factor can be a scalar value. Video encoder 22 may apply one or more transforms to the transform block Cb of the TU to generate a block of Cb coefficients for the TU. Video encoder 22 may apply one or more transforms to the TU Cr transform block to generate a TU Cr coefficient block.

[0066] В некоторых примерах, видеокодер 22 пропускает применение преобразований к блоку преобразования. В таких примерах, видеокодер 22 может обрабатывать остаточные значения выборок таким же образом, как коэффициенты преобразования. Таким образом, в примерах, где видеокодер 22 пропускает применение преобразований, последующее обсуждение коэффициентов преобразования и блоков коэффициентов может применяться к блокам преобразования остаточных выборок. [0066] In some examples, video encoder 22 skips applying transforms to the transform block. In such examples, video encoder 22 may process sample residuals in the same manner as transform coefficients. Thus, in examples where video encoder 22 skips applying transforms, the following discussion of transform coefficients and coefficient blocks may apply to transform blocks of the residual samples.

[0067] После генерации блока коэффициентов (например, блока коэффициентов яркости, блока коэффициентов Cb или блока коэффициентов Cr), видеокодер 22 может квантовать блок коэффициентов, чтобы, возможно, уменьшить объем данных, используемых для представления блока коэффициентов, потенциально обеспечивая дополнительное сжатие. Квантование обычно относится к процессу, в котором диапазон значений сжимается до одного значения. Например, квантование может выполняться путем деления значения на константу и затем округления до ближайшего целого числа. Чтобы квантовать блок коэффициентов, видеокодер 22 может квантовать коэффициенты преобразования блока коэффициентов. После того как видеокодер 22 квантует блок коэффициентов, видеокодер 22 может энтропийно кодировать синтаксические элементы, указывающие квантованные коэффициенты преобразования. Например, видеокодер 22 может выполнять контекстно-адаптивное двоичное арифметическое кодирование (CABAC) или другие методы энтропийного кодирования на синтаксических элементах, указывающих квантованные коэффициенты преобразования. [0067] After generating a coefficient block (eg, a luma coefficient block, a Cb coefficient block, or a Cr coefficient block), video encoder 22 may quantize the coefficient block to possibly reduce the amount of data used to represent the coefficient block, potentially providing additional compression. Quantization generally refers to a process in which a range of values is compressed into a single value. For example, quantization may be performed by dividing a value by a constant and then rounding to the nearest whole number. To quantize the coefficient block, video encoder 22 may quantize the transform coefficients of the coefficient block. After video encoder 22 quantizes the block of coefficients, video encoder 22 may entropy encode syntax elements indicating the quantized transform coefficients. For example, video encoder 22 may perform context adaptive binary arithmetic coding (CABAC) or other entropy coding techniques on syntax elements indicating quantized transform coefficients.

[0068] Видеокодер 22 может выводить битовый поток, который включает в себя последовательность битов, которая формирует представление кодированных картинок и ассоциированных данных. Таким образом, битовый поток содержит кодированное представление видеоданных. Битовый поток может содержать последовательность единиц уровня сетевой абстракции (NAL). Единица NAL представляет собой синтаксическую структуру, содержащую указание типа данных в единице NAL, и байты, содержащие эти данные в форме полезной нагрузки (RBSP) исходной последовательности байтов, распределенных по мере необходимости с битами предотвращения эмуляции. Каждая из единиц NAL может включать в себя заголовок единицы NAL и может инкапсулировать RBSP. Заголовок единицы NAL может включать в себя синтаксический элемент, указывающий код типа единицы NAL. Код типа единицы NAL, заданный заголовком единицы NAL в единице NAL, указывает тип единицы NAL. RBSP может быть синтаксической структурой, содержащей целое число байтов, которое инкапсулировано в единице NAL. В некоторых случаях RBSP включает в себя нулевые биты. [0068] Video encoder 22 may output a bit stream that includes a bit sequence that forms a representation of encoded pictures and associated data. Thus, the bitstream contains an encoded representation of the video data. The bitstream may contain a sequence of Network Abstraction Layer (NAL) units. The NAL unit is a syntactic structure containing an indication of the type of data in the NAL unit, and bytes containing this data in the form of a payload (RBSP) of the original sequence of bytes, distributed as necessary with emulation prevention bits. Each of the NAL units may include a NAL unit header and may encapsulate an RBSP. The NAL unit header may include a syntax element indicating a NAL unit type code. The NAL unit type code given by the NAL unit header in the NAL unit indicates the type of the NAL unit. An RBSP may be a syntax structure containing an integer number of bytes that is encapsulated in a NAL unit. In some cases, RBSP includes zero bits.

[0069] Видеодекодер 30 может принимать битовый поток, генерируемый видеокодером 22. Видеодекодер 30 может декодировать битовый поток для восстановления картинок видеоданных. Как часть декодирования битового потока, видеодекодер 30 может выполнять синтаксический анализ битового потока для получения синтаксических элементов из битового потока. Видеодекодер 30 может восстанавливать картинки видеоданных на основании, по меньшей мере частично, синтаксических элементов, полученных из битового потока. Процесс восстановления видеоданных может быть, в общем, обратным процессу, выполняемому видеокодером 22. Например, видеодекодер 30 может использовать векторы движения PU для определения блоков предсказания для PU текущей CU. Кроме того, видеодекодер 30 может выполнять обратное квантование блоков коэффициентов TU текущей CU. Видеодекодер 30 может выполнять обратные преобразования на блоках коэффициентов для восстановления блоков преобразования TU текущей CU. Видеодекодер 30 может восстанавливать блоки кодирования текущей CU путем суммирования выборок блоков предсказания для PU текущей CU с соответствующими выборками блоков преобразования TU текущей CU. Путем восстановления блоков кодирования для каждой CU картинки, видеодекодер 30 может восстанавливать картинку. [0069] Video decoder 30 may receive a bitstream generated by video encoder 22. Video decoder 30 may decode the bitstream to recover pictures of the video data. As part of bitstream decoding, video decoder 30 may parse the bitstream to obtain syntax elements from the bitstream. Video decoder 30 may reconstruct pictures of video data based at least in part on syntax elements obtained from the bitstream. The video data recovery process may be generally the reverse of the process performed by video encoder 22. For example, video decoder 30 may use PU motion vectors to determine prediction blocks for PUs of the current CU. In addition, video decoder 30 may perform inverse quantization of the TU coefficient blocks of the current CU. Video decoder 30 may perform inverse transforms on the coefficient blocks to recover the TU transform blocks of the current CU. Video decoder 30 may recover the coding blocks of the current CU by summing the prediction block samples for the PUs of the current CU with the corresponding transform block samples of the TUs of the current CU. By recovering the coding blocks for each picture CU, video decoder 30 can recover the picture.

[0070] Методы, раскрытые в настоящем документе, построены на блочном интра-предсказании, которое является частью стандартов видео, включающих в себя AVC, HEVC и VVC. В блочном интра-предсказании, обычно линии опорных выборок из смежных восстановленных блоков используются для предсказания выборок в текущем блоке. Одна или более линий выборок могут использоваться для предсказания. Опорные выборки используются типовыми режимами интра-предсказания, такими как DC, планарные и угловые/направленные режимы. [0070] The methods disclosed herein are based on block intra-prediction, which is part of the video standards, including AVC, HEVC, and VVC. In block intra-prediction, typically reference sample lines from adjacent reconstructed blocks are used to predict samples in the current block. One or more sample lines may be used for prediction. Reference samples are used by typical intra-prediction modes such as DC, planar, and angle/directional modes.

[0071] Интра-предсказание выполняет предсказание блоков изображения с использованием пространственно соседних восстановленных выборок изображения блока. При интра- предсказании, блок N×M (например, 4×4) предсказывается верхними и левыми соседними восстановленными выборками (опорными выборками) вдоль выбранного направления предсказания. В качестве одного примера, блок предсказывается верхними и левыми соседними восстановленными выборками (т.е. опорными выборками) вдоль выбранного направления предсказания. Опорные выборки являются внешними по отношению к предсказываемому блоку. С опорными выборками, видеокодер 22 формирует блок предсказания, имеющий выборки предсказания, основанные на опорных выборках. [0071] Intra-prediction performs prediction of image blocks using spatially adjacent reconstructed block image samples. In intra-prediction, an N×M (eg, 4×4) block is predicted by the top and left adjacent reconstructed samples (reference samples) along the selected prediction direction. As one example, the block is predicted by top and left adjacent recovered samples (ie, pivot samples) along the selected prediction direction. Reference samples are external to the predicted block. With the reference samples, video encoder 22 generates a prediction block having prediction samples based on the reference samples.

[0072] В общем, в методах интра-предсказания, видеокодер 22 определяет остаточный блок, указывающий различия между блоком предсказания и текущим блоком (например, остаточные значения, указывающие различия между выборками предсказания и выборками текущего блока), и сигнализирует информацию, указывающую остаточные значения в остаточном блоке. Видеодекодер 30 аналогично определяет опорные выборки и формирует блок предсказания. ​Видеодекодер 30 определяет остаточные значения остаточного блока на основе принятой информации и суммирует остаточные значения остаточного блока с выборками предсказания блока предсказания для восстановления текущего блока. [0072] In general, in intra-prediction techniques, video encoder 22 determines a residual block indicating differences between a prediction block and the current block (e.g., residuals indicating differences between prediction samples and current block samples), and signals information indicating residual values in the rest block. Video decoder 30 similarly determines the reference samples and generates a prediction block. ​Video decoder 30 determines the residual block residuals based on the received information, and sums the residual block residuals with the prediction block prediction samples to reconstruct the current block.

[0073] Как описано более подробно, примерные методы, описанные в этом раскрытии, модифицируют одну или более (например, все) из выборок предсказания блока предсказания. Видеокодер 22 может определять остаточные значения на основе модифицированных выборок предсказания. Видеодекодер 30 может суммировать остаточные значения с модифицированными выборками предсказания для восстановления текущего блока. Как также описано более подробно, способы применимы для угловых режимов интра-предсказания, и способ, которым модифицируются выборки предсказания, может быть основан на угловом режиме интра-предсказания, используемом для кодирования или декодирования текущего блока. [0073] As described in more detail, the exemplary methods described in this disclosure modify one or more (eg, all) of the prediction samples of a prediction block. Video encoder 22 may determine residuals based on the modified prediction samples. Video decoder 30 may add the residuals with the modified prediction samples to reconstruct the current block. As also described in more detail, the methods are applicable to the intra-prediction angle modes, and the manner in which the prediction samples are modified may be based on the intra-angle mode used to encode or decode the current block.

[0074] Существует множество режимов интра-предсказания. В некоторых примерах, интра-предсказание блока яркости включает в себя 35 режимов, включая планарный режим, DC-режим и 33 угловых режима (например, режимы диагонального интра-предсказания и угловые режимы, смежные с диагональными режимами интра- предсказания). 35 режимов интра-предсказания проиндексированы, как показано в приведенной ниже таблице. В других примерах может быть определено больше интра-режимов, включая углы предсказания, которые могут не быть представлены 33 угловыми режимами. В других примерах, углы предсказания, ассоциированные с угловыми режимами, могут отличаться от углов, используемых в HEVC. [0074] There are many intra-prediction modes. In some examples, luma block intra prediction includes 35 modes including planar mode, DC mode, and 33 angle modes (eg, diagonal intra prediction modes and angle modes adjacent to diagonal intra prediction modes). The 35 intra-prediction modes are indexed as shown in the table below. In other examples, more intra modes may be defined, including prediction angles, which may not be represented by the 33 angle modes. In other examples, the prediction angles associated with the angle modes may be different from the angles used in HEVC.

Таблица 1. Спецификация режима интра-предсказания и ассоциированные наименованияTable 1. Intra prediction mode specification and associated names

Режим интра-предсказанияIntra prediction mode Ассоциированное наименование Associated name 00 INTRA_PLANARINTRA_PLANAR 1one INTRA_DCINTRA_DC 2…342…34 INTRA_ANGULAR2…INTRA_ANGULAR34INTRA_ANGULAR2…INTRA_ANGULAR34

[0075] Для выполнения планарного предсказания для блока N×N, для каждой выборки pxy, расположенной в (x, y), значение предсказания может быть вычислено посредством применения билинейного фильтра к четырем конкретным соседним восстановленным выборкам, т.е. опорным выборкам. Четыре опорных выборки включают в себя верхнюю-правую восстановленную выборку TR, нижнюю-левую восстановленную выборку BL и две восстановленные выборки, расположенные в одном и том же столбце (rx,-1) и строке (r-1,y) текущей выборки. Планарный режим может быть сформулирован следующим образом: [0075] To perform planar prediction for an N×N block, for each sample p xy located at (x, y), a prediction value may be computed by applying a bilinear filter to four specific adjacent reconstructed samples, i.e. base samples. The four pivot samples include a top-right reconstruction sample TR, a bottom-left reconstruction sample BL, and two reconstruction samples located in the same column (r x,-1 ) and row (r -1,y ) of the current sample. The planar regime can be formulated as follows:

pxy=((N-x1)∙L+(N-y1)∙T+x1∙R+y1∙B)/(2*N) p xy =((N-x1)∙L+(N-y1)∙T+x1∙R+y1∙B)/(2*N)

где x1=x+1, y1=y+1, R=TR и B=BL where x1=x+1, y1=y+1, R=TR and B=BL

[0076] Для DC-режима, блок предсказания заполняется средним значением соседних восстановленных выборок. Как правило, как планарный, так и DC режимы применяются для моделирования плавно изменяющихся и постоянных областей изображения. [0076] For the DC mode, the prediction block is filled with the average of adjacent recovered samples. As a rule, both planar and DC modes are used to simulate smoothly changing and constant areas of the image.

[0077] Для угловых режимов интра-предсказания в HEVC, которые включают в себя 33 различных направления предсказания, процесс интра-предсказания может быть описан следующим образом. Для каждого данного углового режима интра-предсказания, направление интра-предсказания может быть идентифицировано соответствующим образом; например, интра-режим 18 соответствует чисто горизонтальному направлению предсказания, а интра-режим 26 соответствует чисто вертикальному направлению предсказания. [0077] For the intra-prediction angular modes in HEVC, which include 33 different prediction directions, the intra-prediction process can be described as follows. For each given intra-prediction angular mode, the intra-prediction direction can be identified appropriately; for example, intra mode 18 corresponds to a purely horizontal prediction direction, and intra mode 26 corresponds to a purely vertical prediction direction.

[0078] С учетом конкретного направления интра-предсказания, для каждой выборки блока предсказания, его координата (x, y) сначала проецируется на строку/столбец соседних восстановленных выборок вдоль направления предсказания. Предположим, что (x, y) проецируется на дробное положение α между двумя соседними восстановленными выборками L и R; затем значение предсказания для (x, y) может быть вычислено с использованием двухотводного билинейного интерполяционного фильтра, сформулированного следующим образом: [0078] Considering a specific intra-prediction direction, for each prediction block sample, its (x, y) coordinate is first projected onto a row/column of adjacent reconstructed samples along the prediction direction. Assume that (x, y) is projected onto the fractional position α between two adjacent reconstructed samples L and R; then the prediction value for (x, y) can be computed using a two-tap bilinear interpolation filter, formulated as follows:

рxy=(1-a)∙L+a∙R p xy \u003d (1-a) ∙ L + a ∙ R

Например, координаты (x, y) выборки блока предсказания проецируются вдоль конкретного направления интра-предсказания (например, одного из угловых режимов интра-предсказания). Чтобы избежать операций с плавающей запятой, в HEVC, вышеупомянутое вычисление фактически аппроксимируется с использованием целочисленной арифметики как: For example, the (x, y) coordinates of a prediction block sample are projected along a particular intra-prediction direction (eg, one of the intra-prediction angular modes). To avoid floating point operations, in HEVC, the above calculation is actually approximated using integer arithmetic as:

pxy=((32-a')∙L+a'∙R+16>>5,p xy =((32-a')∙L+a'∙R+16>>5,

где а'- целое число, равное 32*а. where a' is an integer equal to 32*a.

[0079] В некоторых примерах, перед интра-предсказанием соседние опорные выборки фильтруют с использованием 2-отводного билинейного или 3-отводного (1,2,1)/4 фильтра, известного как внутри-опорное сглаживание или зависимое от режима внутреннее сглаживание (MDIS). При выполнении интра-предсказания, с учетом индекса режима интра-предсказания (predModelntra) и размера блока (nTbS), принимается решение о том, выполняется ли процесс опорного сглаживания, и какой сглаживающий фильтр используется. Индекс режима интра-предсказания представляет собой индекс, указывающий режим интра-предсказания. [0079] In some examples, prior to intra-prediction, adjacent reference samples are filtered using a 2-tap bilinear or 3-tap (1,2,1)/4 filter, known as intra-reference smoothing or mode-dependent intra-smoothing (MDIS). ). When intra-prediction is performed, considering the intra-prediction mode index (predModelntra) and the block size (nTbS), it is decided whether a reference smoothing process is performed and which anti-aliasing filter is used. The intra prediction mode index is an index indicating the intra prediction mode.

[0080] Выборки предсказания блока предсказания генерируются с использованием вышеприведенных примерных методов. После генерации выборок предсказаний, одна или более из выборок предсказания могут быть модифицированы с использованием комбинации позиционно-зависимого интра-предсказания (PDPC). Формы PDPC описаны в ITU-T SG16/Q6 Doc. COM16-C1046, “Position Dependent intra Prediction Combination (PDPC), и X. Zhao, V. Seregin, A. Said, M. Karczewicz, “EE1 related: Simplification and extension of PDPC”, 8th JVET Meeting, Macau, Oct. 2018, JVET-H0057. В этом документе раскрыто введение PDPC в применении к планарному, DC, горизонтальному и вертикальному режимам без сигнализации, как кратко изложено ниже. [0080] Prediction block prediction samples are generated using the exemplary methods above. After generating the prediction samples, one or more of the prediction samples may be modified using a position-dependent intra-prediction (PDPC) combination. PDPC forms are described in ITU-T SG16/Q6 Doc. COM16-C1046, “Position Dependent intra Prediction Combination (PDPC), and X. Zhao, V. Seregin, A. Said, M. Karczewicz, “EE1 related: Simplification and extension of PDPC”, 8th JVET Meeting, Macau, Oct. 2018, JVET-H0057. This document discloses the introduction of PDPC as applied to planar, DC, horizontal and vertical modes without signaling, as summarized below.

[0081] Выборка предсказания pred(x, y), расположенная в (x, y), предсказывается с помощью режима интра-предсказания (DC, планарного, углового), и его значение модифицируется с использованием выражения PDPC для одиночной линии опорной выборки: [0081] The prediction sample pred(x, y) located at (x, y) is predicted using the intra-prediction mode (DC, Planar, Angular), and its value is modified using the reference sample single line PDPC expression:

pred(x, y)=(wL×R-1,y+wT×Rx,-1-wTL×R-1,-1+(64-wL-wT+wTL)×pred' (x, y)+32)>>6, (Уравнение 1) pred(x, y)=(wL×R-1,y+wT×Rx,-1-wTL×R-1,-1+(64-wL-wT+wTL)×pred' (x, y)+ 32)>>6, (Equation 1)

[0082] В уравнении 1, pred'(x, y) представляет собой значение выборки предсказания, как определено с использованием вышеупомянутых примерных методов для генерации выборок предсказания, и pred(x, y) представляет собой модифицированное значение pred'(x, y). В уравнении 1, Rх,-l, R-1,y представляют опорные выборки, расположенные сверху и слева от текущей выборки (x, y) и внешние для текущего блока, соответственно, и R-1,-l представляет опорную выборку, расположенную в верхнем левом углу и внешнюю для текущего блока. Другими словами, Rx,-1 представляет выборку, которая на одну строку выше текущего блока с той же х-координатой, что и х-координата модифицируемой выборки предсказания, и R-1,y представляет выборку, которая на один столбец левее текущего блока с той же y-координатой, что и у-координата модифицируемой выборки предсказания. [0082] In Equation 1, pred'(x, y) is a prediction sample value as determined using the above exemplary methods for generating prediction samples, and pred(x, y) is a modified value of pred'(x, y) . In Equation 1, Rx,-l, R-1,y represent the reference samples located above and to the left of the current sample (x, y) and external to the current block, respectively, and R-1,-l represents the reference sample located in the upper left corner and outer for the current block. In other words, Rx,-1 represents the sample that is one row above the current block with the same x-coordinate as the x-coordinate of the prediction sample being modified, and R-1,y represents the sample that is one column to the left of the current block with the same y-coordinate as the y-coordinate of the modified prediction sample.

[0083] Выборки (например, опорные выборки), которые используются, чтобы модифицировать выборку предсказания, представляют собой выборки в картинке (например, выборки яркости и цветности) и необязательно другие выборки предсказания (хотя возможно). Например, положим, что текущий интра-предсказываемый блок имеет размер N×M. Для этого текущего блока, видеокодер 22 и видеодекодер 30 могут генерировать блок предсказания размером N×M. Опорные выборки, используемые, чтобы модифицировать выборки предсказания, представляют собой выборки текущей картинки (например, выборки яркости и/или цветности), которая включает в себя текущий блок, и являются внешними для текущего блока. [0083] The samples (eg, reference samples) that are used to modify the prediction sample are in-picture samples (eg, luma and chrominance samples) and optionally other prediction samples (although possible). For example, let's say that the current intra-predict block has a size of N×M. For this current block, video encoder 22 and video decoder 30 may generate an N×M prediction block. The reference samples used to modify the prediction samples are the current picture samples (eg, luma and/or chroma samples) that includes the current block and are external to the current block.

[0084] Система координат предназначена для идентификации выборок, внешних для текущего блока, которые относятся к текущему блоку. Например, выборка, расположенная в верхнем-левом углу текущего блока, имеет координату (0,0). Видеокодер 22 может определять остаток между выборкой предсказания, расположенной в верхнем-левом углу блока предсказания (например, имеющей координату (0,0)), и выборкой в текущем блоке, имеющей координату (0,0). Чтобы восстановить выборку, расположенную в (0,0) в текущем блоке, видеодекодер 30 может суммировать выборку предсказания, расположенную в (0,0) в блоке предсказания, с остаточным значением, соответствующим выборке, расположенной в (0,0). Соответственно, для каждой выборки в текущем блоке, имеется соответствующая выборка в блоке предсказания (например, имеющая ту же самую координату).[0084] The coordinate system is for identifying samples external to the current block that are related to the current block. For example, the selection located in the upper-left corner of the current block has a coordinate of (0,0). Video encoder 22 may determine the residual between the prediction sample located at the upper-left corner of the prediction block (eg, having coordinate (0,0)), and the sample in the current block having coordinate (0,0). To recover the sample located at (0,0) in the current block, video decoder 30 may sum the prediction sample located at (0,0) in the prediction block with the residual value corresponding to the sample located at (0,0). Accordingly, for each sample in the current block, there is a corresponding sample in the prediction block (eg, having the same coordinate).

[0085] Соответственно, Rx,-1, означает, что y-координата равна -1 и поэтому относится к выборке в строке, которая выше текущего блока. x-координата может быть той же самой, что и x-координата модифицируемой выборки предсказания. Для R-1,y, x-координата равна -1 и поэтому относится к столбцу, который слева от текущего блока. y-координата может быть той же самой, что и y-координата модифицируемой выборки предсказания. [0085] Accordingly, Rx,-1 means that the y-coordinate is -1 and therefore refers to the sample in the line that is above the current block. the x-coordinate may be the same as the x-coordinate of the modified prediction sample. For R-1,y, the x-coordinate is -1 and therefore refers to the column to the left of the current box. The y-coordinate may be the same as the y-coordinate of the modified prediction sample.

[0086] Может быть возможным использовать также другую систему координат, такую как система координат, где координата (0,0) относится к верхней-левой выборке картинки. Примерные методы описаны относительно системы координат, где координата (0,0) относится к верхней-левой выборке блока. [0086] It may be possible to use another coordinate system as well, such as a coordinate system where coordinate (0,0) refers to the top-left sample of the picture. The exemplary methods are described with respect to a coordinate system, where the coordinate (0,0) refers to the top-left sample of the block.

[0087] Для DC режима, веса вычисляются, как описано далее для блока с измерениями ширины (width) и высоты (height):[0087] For DC mode, the weights are calculated as follows for a block with width (width) and height (height) measurements:

wT=32>>((y<<1)>>shift), wL=32>>((x<<1)>>shift), wTL=(wL>>4)+(wT>>4),wT=32>>((y<<1)>>shift), wL=32>>((x<<1)>>shift), wTL=(wL>>4)+(wT>>4),

[0088] В уравнении выше, сдвиг определяется следующим образом: shift=(log2(width)+log2(height)+2)>>2, в то время как для планарного режима wTL=0, для горизонтального режима wTL=wT, и для вертикального режима wTL=wL. Веса PDPC могут вычисляться только с помощью суммирований и сдвигов. Значение pred(x, y) может вычисляться на одном этапе с использованием Уравнения 1.[0088] In the equation above, the shift is defined as: shift=(log2(width)+log2(height)+2)>>2 while for planar mode wTL=0, for horizontal mode wTL=wT, and for vertical mode wTL=wL. PDPC weights can only be calculated using sums and shifts. The value of pred(x, y) can be calculated in one step using Equation 1.

[0089] Фиг. 2A иллюстрирует веса (wL, wT,wTL) PDPC режима DC для положения (0,0) внутри одного блока 4×4. Фиг. 2B иллюстрирует веса (wL, wT,wTL) PDPC режима DC для положения (1,0) внутри одного блока 4×4. Если PDPC применяется к DC, планарному, горизонтальному и вертикальному интра-режимам, дополнительные граничные фильтры не применяются, такие как граничный фильтр режима DC или краевые фильтры горизонтального/вертикального режима. Уравнение 1 может быть обобщено, чтобы включать дополнительные линии опорных выборок (например, без ограничения выборками на одну строку выше или одну строку левее текущего блока). В этом случае, множество опорных выборок возможны по соседству с Rx,-1, R-1,y, R-1,-1 и каждая может иметь назначенный вес, который может быть оптимизирован, например, путем обучения.[0089] FIG. 2A illustrates the DC mode PDPC weights (wL, wT, wTL) for position (0,0) within one 4x4 block. Fig. 2B illustrates the DC mode PDPC weights (wL, wT, wTL) for position (1,0) within one 4x4 block. If PDPC is applied to DC, planar, horizontal, and vertical intra modes, no additional edge filters are applied, such as the DC mode edge filter or horizontal/vertical mode edge filters. Equation 1 can be generalized to include additional reference sample lines (eg, not limited to samples one line above or one line to the left of the current block). In this case, multiple reference samples are possible in the neighborhood of Rx,-1, R-1,y, R-1,-1 and each may have an assigned weight, which may be optimized, for example, by training.

[0090] Как раскрыто здесь, PDPC может теперь распространяться на угловые режимы в общем (например, на диагональные интра-режимы и на угловые режимы, которые являются смежными с диагональными режимами). Предполагаемые диагональные интра-режимы представляют собой режимы, которые предсказывают в соответствии с направлениями вниз-влево и вверх-вправо, а также некоторые смежные угловые режимы, например, N смежных режимов между диагональным вниз-влево режимом и вертикальным режимом, и N или M смежных режимов между диагональным вверх-вправо режимом и горизонтальным режимом. Фиг. 3 иллюстрирует идентификацию угловых режимов, как раскрыто здесь. В общем, смежные режимы могут представлять собой выбранный поднабор доступных угловых режимов. Разнесение между угловыми режимами может, например, быть неоднородным, и некоторые угловые режимы могут, например, быть пропущены.[0090] As disclosed here, PDPC can now extend to corner modes in general (eg, diagonal intra modes and corner modes that are adjacent to diagonal modes). The estimated diagonal intra modes are modes that predict according to the down-left and up-right directions, as well as some adjacent angular modes, for example, N adjacent modes between the diagonal down-left mode and the vertical mode, and N or M adjacent modes between diagonal up-right mode and horizontal mode. Fig. 3 illustrates the identification of angular modes as disclosed here. In general, adjacent modes may be a selected subset of the available angle modes. The spacing between angular modes may, for example, be non-uniform, and some angular modes may, for example, be skipped.

[0091] В примерных методах, описанных в настоящем раскрытии, видеокодер 22 и видеодекодер 30 могут быть сконфигурированы, чтобы выполнять PDPC, где текущий блок интра-предсказывается в угловом режиме, который исключает DC, планарный, вертикальный или горизонтальный режимы. Однако могут иметься технические сложности в распространении PDPC на угловые режимы интра-предсказания. Например, опорные выборки, при расположении внешним образом для текущего блока, не должны иметь те же самые x- и/или y-координаты, что и модифицируемая выборка предсказания. Поэтому может быть неясно, какие опорные выборки следует использовать для модифицирования выборки предсказания, так чтобы получить выигрыш по эффективности кодирования видео. [0091] In the exemplary techniques described in this disclosure, video encoder 22 and video decoder 30 may be configured to perform PDPC where the current block is intra-predicted in an angle mode that excludes DC, planar, vertical, or horizontal modes. However, there may be technical difficulties in extending PDPC to intra-prediction angular modes. For example, reference samples, when positioned externally to the current block, need not have the same x- and/or y-coordinates as the prediction sample being modified. Therefore, it may not be clear which reference samples should be used to modify the prediction sample so as to gain video coding efficiency.

[0092] Например, если информация, необходимая для сигнализации остаточных значений, уменьшается, то имеет место повышение в эффективности ширины полосы. Соответственно, опорные выборки, используемые для модифицирования блока предсказания, должны быть такими, что остаточные значения, сгенерированные из модифицированного блока предсказания, требуют сигнализации меньшего количества информации, по сравнению с другими методами. Однако, если определение того, какие опорные выборки следует использовать, чрезмерно интенсивно, то может иметь место запаздывание по времени, требуемому видеодекодеру 30 для восстановления текущего блока.[0092] For example, if the information needed to signal the residuals is reduced, then there is an increase in bandwidth efficiency. Accordingly, the reference samples used to modify the prediction block should be such that the residuals generated from the modified prediction block require less signaling information compared to other methods. However, if the determination of which reference samples to use is excessive, then there may be a lag in the time required for video decoder 30 to recover the current block.

[0093] Настоящее раскрытие описывает примерные методы, которые обеспечивают практическое применение для методов кодирования видео, таких как методы для PDPC, используемые с угловыми режимами интра-предсказания. Например, примерные методы обеспечивают техническое решение для использования PDPC с угловыми режимами интра-предсказания. Примерные способы, которыми видеокодер 22 и видеодекодер 30 могут выполнять PDPC с угловыми режимами интра-предсказания, описаны более подробно ниже.[0093] The present disclosure describes exemplary methods that provide practical application for video coding methods, such as methods for PDPC, used with intra-prediction angular modes. For example, the exemplary methods provide a technical solution for using PDPC with intra-prediction angular modes. Exemplary ways in which video encoder 22 and video decoder 30 can perform PDPC with intra-angle modes are described in more detail below.

[0094] В качестве одного примера, видеокодер 22 может быть сконфигурирован, чтобы определять блок предсказания, который включает в себя множество выборок предсказания, для текущего блока на основе углового режима интра-предсказания, который не является DC, планарным, горизонтальным или вертикальным режимом интра-предсказания, и модифицировать выборку предсказания блока предсказания, чтобы сгенерировать модифицированную выборку предсказания с использованием комбинации позиционно-зависимого интра-предсказания (PDPC). Следует понимать, что хотя методы описаны относительно одной выборки предсказания, примерные методы не ограничены этим. В некоторых примерах, видеокодер 22 может модифицировать другие выборки предсказания блока предсказания с использованием PDPC.[0094] As one example, video encoder 22 may be configured to determine a prediction block that includes a plurality of prediction samples for the current block based on an intra prediction angle mode that is not DC, planar, horizontal, or vertical intra. -prediction, and modify the prediction sample of the prediction block to generate a modified prediction sample using a position-dependent intra-prediction combination (PDPC). It should be understood that although the methods are described with respect to a single prediction sample, the exemplary methods are not limited to this. In some examples, video encoder 22 may modify other prediction samples of the prediction block using PDPC.

[0095] Чтобы модифицировать выборку предсказания, видеокодер 22 может определять одну или более опорных выборок, которые являются внешними для текущего блока, на основе углового режима интра-предсказания и модифицировать выборку предсказания, чтобы сгенерировать модифицированную выборку предсказания на основе определенной одной или более опорных выборок. Видеокодер 22 может определять остаточное значение для остаточного блока на основе модифицированной выборки предсказания и значения выборки в текущем блоке и сигнализировать информацию, указывающую остаточное значение.[0095] To modify the prediction sample, video encoder 22 may determine one or more reference samples that are external to the current block based on the intra-prediction angular mode and modify the prediction sample to generate a modified prediction sample based on the determined one or more reference samples. . Video encoder 22 may determine the residual value for the residual block based on the modified prediction sample and the sample value in the current block, and signal information indicating the residual value.

[0096] В качестве одного примера, видеодекодер 30 может быть сконфигурирован, чтобы определять блок предсказания, который включает в себя множество выборок предсказания, для текущего блока на основе углового режима интра-предсказания, который не является DC, планарным, горизонтальным или вертикальным режимом интра-предсказания, и модифицировать выборку предсказания блока предсказания, чтобы сгенерировать модифицированную выборку предсказания с использованием комбинации позиционно-зависимого интра-предсказания (PDPC). Аналогично изложенному выше, хотя методы описаны относительно одной выборки предсказания, примерные методы не ограничены этим. В некоторых примерах, видеодекодер 30 может модифицировать другие выборки предсказания блока предсказания с использованием PDPC.[0096] As one example, video decoder 30 may be configured to determine a prediction block that includes a plurality of prediction samples for the current block based on an intra prediction angle mode that is not DC, planar, horizontal, or vertical intra. -prediction, and modify the prediction sample of the prediction block to generate a modified prediction sample using a position-dependent intra-prediction combination (PDPC). Similar to the above, although the methods are described with respect to a single prediction sample, the exemplary methods are not limited to this. In some examples, video decoder 30 may modify other prediction samples of the prediction block using PDPC.

[0097] Чтобы модифицировать выборку предсказания, видеодекодер 30 может быть сконфигурирован, чтобы определять одну или более опорных выборок, которые являются внешними для текущего блока, на основе углового режима интра-предсказания и модифицировать выборку предсказания, чтобы сгенерировать модифицированную выборку предсказания на основе определенной одной или более опорных выборок. Видеодекодер 30 может также быть сконфигурирован, чтобы восстанавливать выборку текущего блока на основе модифицированной выборки предсказания и остаточного значения.[0097] To modify the prediction sample, video decoder 30 may be configured to determine one or more reference samples that are external to the current block based on the intra prediction angular mode and modify the prediction sample to generate a modified prediction sample based on the determined one. or more reference samples. Video decoder 30 may also be configured to resample the current block based on the modified prediction sample and the residual.

[0098] Фиг. 4A-4D иллюстрируют определение выборок, используемых посредством распространения PDPC на диагональные и смежные угловые интра-режимы. Фиг. 4A иллюстрирует определение опорных выборок Rx,-1, R-1,y и R-1,-1 для распространения PDPC на диагональный вверх-вправо режим. Выборка pred(x’,y’) предсказания расположена в (x’,y’) в блоке предсказания. Координата x опорной выборки Rx,-1 задается посредством: x=x’+y’+1, и координата y опорной выборки R-1,y аналогично задается посредством: y=x’+y’+1. Веса PDPC для диагонального вверх-вправо режима составляют, например: wT=16>>((y’<<1)>>shift), wL=16>>((x’<<1)>>shift), wTL=0.[0098] FIG. 4A-4D illustrate the definition of samples used by propagating PDPC to diagonal and adjacent angular intra modes. Fig. 4A illustrates the determination of the reference samples Rx,-1, R-1,y, and R-1,-1 for PDPC propagation in the up-right diagonal mode. The prediction sample pred(x',y') is located at (x',y') in the prediction block. The x-coordinate of the reference sample Rx,-1 is given by: x=x'+y'+1, and the y-coordinate of the reference sample R-1,y is similarly given by: y=x'+y'+1. The PDPC weights for diagonal up-right mode are, for example: wT=16>>((y'<<1)>>shift), wL=16>>((x'<<1)>>shift), wTL= 0.

[0099] Аналогично, фиг. 4B иллюстрирует определение опорных выборок Rx,-1, R-1,y и R-1,-1 для распространения PDPC на диагональный вниз-влево режим. Координата x опорной выборки Rx,-1 задается посредством: x=x’+y’+1, и координата y опорной выборки R-1,y представляет собой: y=x’+y’+1. Веса PDPC для диагонального вверх-вправо режима составляют, например: wT=16>>((y’<<1)>>shift), wL=16>>((x’<<1)>>shift), wTL=0.[0099] Similarly, FIG. 4B illustrates the definition of the reference samples Rx,-1, R-1,y, and R-1,-1 for PDPC propagation to the diagonal down-left mode. The x-coordinate of the reference sample Rx,-1 is given by: x=x'+y'+1, and the y-coordinate of the reference sample R-1,y is: y=x'+y'+1. The PDPC weights for diagonal up-right mode are, for example: wT=16>>((y'<<1)>>shift), wL=16>>((x'<<1)>>shift), wTL= 0.

[0100] На фиг. 4A и 4B, видеокодер 22 и видеодекодер 30 могут каждый определять строку, которая находится выше текущего блока (например, непосредственно выше, но методы не ограничены этим), и определять x-координату в определенной строке. x-координата в определенной строке равна x-координате выборки предсказания плюс y-координата выборки предсказания плюс 1. Видеокодер 22 и видеодекодер 30 могут определять опорную выборку из одной или более опорных выборок на основе определенной строки и определенной x-координаты.[0100] In FIG. 4A and 4B, video encoder 22 and video decoder 30 may each determine the line that is above the current block (eg, immediately above, but methods are not limited to this) and determine the x-coordinate in the determined line. The x-coordinate in a certain row is equal to the x-coordinate of the prediction sample plus the y-coordinate of the prediction sample plus 1. Video encoder 22 and video decoder 30 may determine a reference sample from one or more reference samples based on the determined row and the determined x-coordinate.

[0101] Аналогично, на фиг. 4A и 4B, видеокодер 22 и видеодекодер 30 могут определять столбец, который находится слева от текущего блока (например, непосредственно слева, но методы не ограничены этим), и определять y-координату в определенном столбце. y-координата в определенном столбце равна x-координате выборки предсказания плюс y-координата выборки предсказания плюс 1. Видеокодер 22 и видеодекодер 30 могут определять опорную выборку из одной или более опорных выборок на основе определенного столбца и определенной y-координаты.[0101] Similarly, in FIG. 4A and 4B, video encoder 22 and video decoder 30 may determine the column that is to the left of the current block (eg, immediately to the left, but methods are not limited to this) and determine the y-coordinate in the determined column. The y-coordinate in a certain column is equal to the x-coordinate of the prediction sample plus the y-coordinate of the prediction sample plus 1. Video encoder 22 and video decoder 30 may determine a reference sample from one or more reference samples based on the determined column and the determined y-coordinate.

[0102] На основе определенных x и y-координат, видеокодер 22 и видеодекодер 30 могут определять опорные выборки (например, первую опорную выборку на основе определенной строки и определенной x-координаты и вторую опорную выборку на основе определенного столбца и определенной y-координаты). Также, видеокодер 22 и видеодекодер 30 могут определять веса в соответствии с изложенными выше примерными методами для диагональных режимов (например, диагонального вверх-вправо режима и диагонального вниз-влево режима, в качестве двух примеров). Затем, на основе Уравнения 1 (в качестве одного не ограничивающего примера), видеокодер 22 и видеодекодер 30 могут определять модифицированную выборку предсказания (например, pred(x, y)).[0102] Based on the determined x and y coordinates, video encoder 22 and video decoder 30 may determine reference samples (e.g., a first reference sample based on a certain row and a certain x coordinate and a second reference sample based on a certain column and a certain y coordinate) . Also, video encoder 22 and video decoder 30 may determine weights in accordance with the exemplary methods set forth above for diagonal modes (eg, diagonal up-right mode and diagonal down-left mode, as two examples). Then, based on Equation 1 (as one non-limiting example), video encoder 22 and video decoder 30 may determine a modified prediction sample (eg, pred(x, y)).

[0103] Случай смежного диагонального вверх-вправо режима проиллюстрирован на фиг. 4C. В общем, для угла α, определенного на фиг. 3, y-координата опорной выборки R-1,y определяется следующим образом: y=y’+tan(α)×(x’+1), и x-координата Rx,-1 задается посредством: x=x’+cotan(α)×(y’+1), где tan(α) и cotan(α) представляют собой тангенс и котангенс угла α. Веса PDPC для смежного диагонального вверх-вправо режима составляют, например: wT=32>>((y’<<1)>>shift), wL=32>>((x’<<1)>>shift), wTL=0 или wT=32>>((y’<<1)>>shift), wL=0, wTL=0.[0103] The case of the adjacent up-right diagonal mode is illustrated in FIG. 4C. In general, for the angle α defined in FIG. 3, the y-coordinate of the reference sample R-1,y is defined as: y=y'+tan(α)×(x'+1), and the x-coordinate of Rx,-1 is defined by: x=x'+cotan (α)×(y'+1), where tan(α) and cotan(α) are the tangent and cotangent of the angle α. The PDPC weights for the adjacent up-right diagonal mode are, for example: wT=32>>((y'<<1)>>shift), wL=32>>((x'<<1)>>shift), wTL =0 or wT=32>>((y'<<1)>>shift), wL=0, wTL=0.

[0104] Аналогично, случай смежного диагонального вниз-влево режима проиллюстрирован на фиг. 4D. В общем, для угла β, определенного на фиг. 3, x-координата опорной выборки Rx,-1 определяется следующим образом: x=x’+tan(β)×(y’+1), и y-координата R-1,y задается посредством: y=y’+cotan(β)×(x’+1), где tan(β) и cotan(β) представляют собой тангенс и котангенс угла β. Веса PDPC для смежного диагонального вниз-влево режима составляют, например: wL=32>>((x’<<1)>>shift), wT=32>>((y’<<1)>>shift), wTL=0 или wL=32>>((x’<<1)>>shift), wT=0, wTL=0.[0104] Similarly, the case of adjacent diagonal down-left mode is illustrated in FIG. 4D. In general, for the angle β defined in FIG. 3, the x-coordinate of the reference sample Rx,-1 is defined as follows: x=x'+tan(β)×(y'+1), and the y-coordinate of R-1,y is defined by: y=y'+cotan (β)×(x'+1), where tan(β) and cotan(β) are the tangent and cotangent of the angle β. The PDPC weights for the adjacent diagonal down-left mode are, for example: wL=32>>((x'<<1)>>shift), wT=32>>((y'<<1)>>shift), wTL =0 or wL=32>>((x'<<1)>>shift), wT=0, wTL=0.

[0105] На фиг. 4C и 4D, видеокодер 22 и видеодекодер 30 могут каждый определять строку, которая находится выше текущего блока (например, непосредственно выше, но методы не ограничены этим), и определять x-координату в определенной строке. x-координата в определенной строке основана на угле углового режима интра-предсказания. Видеокодер 22 и видеодекодер 30 могут определять опорную выборку из одной или более опорных выборок на основе определенной строки и определенной x-координаты.[0105] In FIG. 4C and 4D, video encoder 22 and video decoder 30 may each determine the line that is above the current block (eg, immediately above, but methods are not limited to this) and determine the x-coordinate in the determined line. The x-coordinate in a certain row is based on the intra-prediction angular mode angle. Video encoder 22 and video decoder 30 may determine a reference sample from one or more reference samples based on a specific row and a specific x-coordinate.

[0106] Чтобы определить x-координату в определенной строке, видеокодер 22 и видеодекодер 30 могут определять одно из котангенса (например, для смежного диагонального вверх-вправо режима) или тангенса (например, для смежного диагонального вниз-влево режима) угла углового режима интра-предсказания. Видеокодер 22 и видеодекодер 30 могут определять x-координату в определенной строке на основе одного из котангенса или тангенса угла углового режима интра-предсказания, x-координаты выборки предсказания и y-координаты выборки предсказания. Например, для смежного диагонального вверх-вправо углового режима интра-предсказания, x-координата в определенной строке равна x’+cotan(α)×(y’+1), и для смежного диагонального вниз-влево режима, x-координата в определенной строке равна x’+tan(β)×(y’+1), где x’ и y’ представляют собой x и y-координаты модифицируемой выборки предсказания.[0106] In order to determine the x-coordinate in a particular line, video encoder 22 and video decoder 30 may determine one of the cotangent (eg, for an adjacent diagonal up-right mode) or the tangent (eg, for an adjacent diagonal down-left mode) of the angular mode angle of the intra -predictions. Video encoder 22 and video decoder 30 may determine an x-coordinate in a certain row based on one of the cotangent or tangent of an intra-prediction angular mode angle, a prediction sample x-coordinate, and a prediction sample y-coordinate. For example, for an adjacent diagonal up-right angle intra-prediction mode, the x-coordinate at a particular row is x'+cotan(α)×(y'+1), and for an adjacent diagonal down-left mode, the x-coordinate at a particular row row is x'+tan(β)×(y'+1), where x' and y' are the x and y coordinates of the modified prediction sample.

[0107] Аналогично, на фиг. 4C и 4D, видеокодер 22 и видеодекодер 30 могут каждый определять столбец, который находится слева от текущего блока (например, непосредственно слева, но методы не ограничены этим), и определять y-координату в определенном столбце. y-координата в определенном столбце основана на угле углового режима интра-предсказания. Видеокодер 22 и видеодекодер 30 могут определять опорную выборку из одной или более опорных выборок на основе определенного столбца и определенной y-координаты.[0107] Similarly, in FIG. 4C and 4D, video encoder 22 and video decoder 30 may each determine the column that is to the left of the current block (eg, immediately to the left, but methods are not limited to this) and determine the y-coordinate at the determined column. The y-coordinate in a particular column is based on the intra-prediction angular mode angle. Video encoder 22 and video decoder 30 may determine a reference sample from one or more reference samples based on the determined column and the determined y-coordinate.

[0108] Чтобы определить y-координату в определенном столбце, видеокодер 22 и видеодекодер 30 могут определять одно из котангенса (например, для смежного диагонального вниз-влево режима) или тангенса (например, для смежного диагонального вверх-вправо режима) угла углового режима интра-предсказания. Видеокодер 22 и видеодекодер 30 могут определять y-координату в определенном столбце на основе одного из котангенса или тангенса угла углового режима интра-предсказания, x-координаты выборки предсказания и y-координаты выборки предсказания. Например, для смежного диагонального вверх-вправо углового режима интра-предсказания, y-координата в определенном столбце равна y’+tan(α)×(x’+1), и для смежного диагонального вниз-влево режима, y-координата в определенном столбце равна y’+cotan(β)×(x’+1), где x’ и y’ представляют собой x и y-координаты модифицируемой выборки предсказания.[0108] To determine the y-coordinate in a particular column, video encoder 22 and video decoder 30 may determine one of the cotangent (eg, for an adjacent diagonal down-left mode) or tangent (eg, for an adjacent diagonal up-right mode) of the angle mode angle of the intra -predictions. Video encoder 22 and video decoder 30 may determine the y-coordinate in a particular column based on one of the cotangent or tangent of the intra-prediction angular mode angle, the x-coordinate of the prediction sample, and the y-coordinate of the prediction sample. For example, for an adjacent diagonal up-right angle intra-prediction mode, the y-coordinate at a particular column is y'+tan(α)×(x'+1), and for an adjacent diagonal down-left mode, the y-coordinate at a particular column is column is y'+cotan(β)×(x'+1), where x' and y' are the x and y coordinates of the modified prediction sample.

[0109] На основе определенной x и y-координат, видеокодер 22 и видеодекодер 30 могут определять опорные выборки (например, первую опорную выборку на основе определенной строки и определенной x-координаты и вторую опорную выборку на основе определенного столбца и определенной y-координаты). Также, видеокодер 22 и видеодекодер 30 могут определять веса в соответствии с изложенными выше примерными методами для смежных диагональных режимов (например, смежного диагонального вверх-вправо режима и смежного диагонального вниз-влево режима, в качестве двух примеров). Затем, на основе Уравнения 1 (в качестве одного не ограничивающего примера), видеокодер 22 и видеодекодер 30 могут определять модифицированную выборку предсказания (например, pred(x, y)).[0109] Based on the determined x and y coordinates, video encoder 22 and video decoder 30 may determine reference samples (e.g., a first reference sample based on a certain row and a certain x-coordinate and a second reference sample based on a certain column and a certain y-coordinate) . Also, video encoder 22 and video decoder 30 may determine weights in accordance with the exemplary methods set forth above for adjacent diagonal modes (eg, adjacent diagonal up-right mode and adjacent diagonal down-left mode, as two examples). Then, based on Equation 1 (as one non-limiting example), video encoder 22 and video decoder 30 may determine a modified prediction sample (eg, pred(x, y)).

[0110] Изложенное выше описывает примерные методы для диагональных вверх-вправо и вниз-влево режимов и смежного диагонального вверх-вправо и смежного диагонального вниз-влево режимов в качестве примерных угловых режимов, для которых может применяться PDPC. Примерные методы могут быть распространены также на другие угловые режимы. Также, в некоторых примерах, одна или более опорных выборок имеют как x-, так и y-координату, которая отличается от и x-, и y-координаты выборки предсказания в блоке предсказания. Например, в приведенных выше примерных уравнениях, чтобы определить x- и y-координаты в соответственных строках и столбцах, чтобы определить опорные выборки, x-координата отличается от x-координаты модифицируемой выборки предсказания, и y-координата отличается от y-координаты модифицируемой выборки предсказания. То есть, опорные выборки могут не находиться в той же самой строке или том же самом столбце, что и модифицируемая выборка предсказания.[0110] The above describes exemplary methods for diagonal up-right and down-left modes and adjacent diagonal up-right and adjacent diagonal down-left modes as exemplary angular modes for which PDPC can be applied. The exemplary methods can be extended to other angle modes as well. Also, in some examples, one or more reference samples have both an x- and a y-coordinate that is different from both the x- and y-coordinates of the prediction sample in the prediction block. For example, in the above example equations, to determine the x- and y-coordinates in the respective rows and columns to determine the reference samples, the x-coordinate is different from the x-coordinate of the modified prediction sample, and the y-coordinate is different from the y-coordinate of the modified sample predictions. That is, the reference samples may not be in the same row or the same column as the modified prediction sample.

[0111] Как в случае для DC, планарного, горизонтального и вертикального режима PDPC, отсутствует дополнительная граничная фильтрация, например, как специфицировано в ‘J. Chen, E. Alshina, G. J. Sullivan, J.-R. Ohm, J. Boyce, “Algorithm description of Joint Exploration Test Model 7,” 7th JVET Meeting, Torino, Italy, July 2017, JVET-G1001, для диагональных и смежных диагональных режимов, когда PDPC распространяется на эти угловые режимы.[0111] As is the case for DC, planar, horizontal, and vertical PDPC modes, there is no additional edge filtering, such as as specified in 'J. Chen, E. Alshina, G. J. Sullivan, J.-R. Ohm, J. Boyce, “Algorithm description of Joint Exploration Test Model 7,” 7th JVET Meeting, Torino, Italy, July 2017, JVET-G1001, for diagonal and adjacent diagonal modes when PDPC extends to these angular modes.

[0112] Как описано выше, примерные методы, описанные в настоящем раскрытии, могут создавать возможность применения PDPC к угловым режимам интра-предсказания с минимальным влиянием на сложность. При практической реализации, значения тангенсов и котангенсов углов могут храниться в таблицах, так что они не вычисляются на ходу (например, во время выполнения). Ниже представлены примерные таблицы для 129 угловых режимов в общем:[0112] As described above, the exemplary techniques described in this disclosure can enable the application of PDPC to intra-prediction angular modes with minimal impact on complexity. In practical implementation, the values of tangents and cotangents of angles can be stored in tables so that they are not calculated on the fly (eg, at runtime). Below are sample tables for 129 angle modes in total:

[0113] TanAngTable[33] = {0, 1, 2, 3, 4, 5, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 49, 52, 55, 58, 61, 64}. [0113] TanAngTable[33] = {0, 1, 2, 3, 4, 5, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34 , 36, 38, 40, 42, 44, 46, 49, 52, 55, 58, 61, 64}.

[0114] CotanAngTable[33] = {0, 65536, 32768, 21845, 16384, 13107, 10923, 8192, 6554, 5461, 4681, 4096, 3641, 3277, 2979, 2731, 2521, 2341, 2185, 2048, 1928, 1820, 1725, 1638, 1560, 1489, 1425, 1337, 1260, 1192, 1130, 1074, 1024}.[0114] CotanAngTable[33] = {0, 65536, 32768, 21845, 16384, 13107, 10923, 8192, 6554, 5461, 4681, 4096, 3641, 3277, 2979, 2731, 2521, 2185 , 1820, 1725, 1638, 1560, 1489, 1425, 1337, 1260, 1192, 1130, 1074, 1024}.

[0115] Более того, таблицы могут уже быть использованы угловым интра-предсказанием блоков и могут быть повторно использованы для распространения PDPC на диагональные и смежные режимы (например, угловые режимы интра-предсказания). Поэтому никакие дополнительные таблицы могут не требоваться в реализации PDPC. В некоторых примерах, настраиваемые таблицы могут формироваться, например, путем обучения, чтобы дополнительно оптимизировать PDPC.[0115] Moreover, the tables may already be used by angular block intra-prediction and may be reused to propagate PDPC to diagonal and adjacent modes (eg, angular intra-prediction modes). Therefore, no additional tables may be required in a PDPC implementation. In some examples, custom tables may be generated, for example, by training, to further optimize PDPC.

[0116] В некоторых случаях, все горизонтальные угловые режимы отображаются на вертикальные режимы путем зеркального отображения блока относительно нижней-правой диагонали. Симметрия относительно вертикального режима позволяет дополнительно уменьшить количество углов до 33 при хранении значений тангенса и котангенса в TanAngTable и CotanAngTable, соответственно. Ввиду требуемой целочисленной точности, значения в обеих таблицах масштабируются коэффициентом 64 в случае TanAngTable и значением 1024 в случае CotanAngTable. Умножений в формулах выше для вычисления координат x и y избегают за счет накопления табличных значений, соответствующих угловому режиму с увеличением x’ и y’ при проходе блока предсказания.[0116] In some cases, all horizontal angular modes are mapped to vertical modes by mirroring the block about the bottom-right diagonal. Symmetry about vertical mode allows you to further reduce the number of angles to 33 when storing tangent and cotangent values in TanAngTable and CotanAngTable, respectively. Due to the required integer precision, the values in both tables are scaled by a factor of 64 in the case of TanAngTable and a value of 1024 in the case of CotanAngTable. Multiplications in the formulas above to calculate the x and y coordinates are avoided by accumulating table values corresponding to the angular mode as x' and y' increase as the prediction block is passed.

[0117] Интерполяция опорных выборок, например, посредством линейной или кубической интерполяции, или округление до ближайшего соседа могут использоваться, если вычисляются дробные значения. Например, чтобы определить одну или более опорных выборок, которые являются внешними для текущего блока, на основе углового режима интра-предсказания, видеокодер 22 и видеодекодер 30 могут быть сконфигурированы, чтобы определять набор из одной или более выборок на основе углового режима интра-предсказания и интерполировать набор из одной или более выборок, чтобы сгенерировать одну или более опорных выборок. Интерполяция является одним примером. В некоторых примерах, видеокодер 22 или видеодекодер 30 могут выполнять по меньшей мере одно из интерполяции, округления со смещением или округления без смещения. Видеокодер 22 или видеодекодер 30 могут выполнять такое округление со смещением или без смещения на основе соседних выборок в наборе из одной или более выборок, чтобы сгенерировать одну или более опорных выборок.[0117] Interpolation of reference samples, such as by linear or cubic interpolation, or rounding to the nearest neighbor, may be used if fractional values are being calculated. For example, to determine one or more reference samples that are external to the current block based on the intra-angle mode, video encoder 22 and video decoder 30 may be configured to determine a set of one or more samples based on the intra-angle mode and interpolate a set of one or more samples to generate one or more pivot samples. Interpolation is one example. In some examples, video encoder 22 or video decoder 30 may perform at least one of interpolation, round with offset, or round without offset. Video encoder 22 or video decoder 30 may perform such offset or non-offset rounding based on adjacent samples in the set of one or more samples to generate one or more reference samples.

[0118] Отсечение может требоваться, чтобы предотвратить доступность опорных выборок вне границ буфера опорных линий, в случае, если вычисляются большие значения координат. Если выполняется отсечение, последняя доступная опорная выборка может использоваться или PDPC может возвращаться только к угловому интра-предсказанию, что эквивалентно применению нулевых весов для wL, wT, wTL в Уравнении. 1, например. Например, чтобы определить одну или более опорных выборок, которые являются внешними для текущего блока, на основе углового режима интра-предсказания, видеокодер 22 и видеодекодер 30 могут быть сконфигурированы, чтобы определять, что одна или более выборок, внешних для текущего блока, идентифицированных на основе углового режима интра-предсказания, не сохранены в буфере опорных линий, и определять одну или более опорных выборок на основе последней опорной выборки, сохраненной в буфере опорных линий. [0118] Clipping may be required to prevent the availability of reference samples outside the boundaries of the reference line buffer, in case large coordinate values are calculated. If clipping is performed, the last available reference sample may be used, or PDPC may only fall back to angular intra-prediction, which is equivalent to applying zero weights for wL, wT, wTL in Equation. 1 for example. For example, to determine one or more reference samples that are external to the current block based on the intra-prediction angle mode, video encoder 22 and video decoder 30 may be configured to determine that one or more samples external to the current block identified on based on the intra-prediction angle mode are not stored in the reference line buffer, and determine one or more reference samples based on the last reference sample stored in the reference line buffer.

[0119] В некоторых примерах, вместо использования последней выборки в буфере опорных линий, PDPC может быть выключено для текущего блока, или PDPC может быть выключено для определенных предсказанных выборок, так что используется нормальное интра-предсказание (например, без модифицированных выборок предсказания). В качестве одного примера, для выборки предсказания в блоке предсказания, видеокодер 22 или видеодекодер 30 могут определять, что первая опорная выборка доступна в опорном буфере, но что вторая опорная выборка недоступна в опорном буфере. В этом примере, видеокодер 22 или видеодекодер 30 могут определять, что PDPC выключена для выборки предсказания. Однако, в некоторых примерах, видеокодер 22 или видеодекодер 30 могут использовать первую опорную выборку для PDPC и не использовать вторую опорную выборку (например, путем установки веса для второй опорной выборки равного нулю).[0119] In some examples, instead of using the last sample in the reference line buffer, PDPC may be turned off for the current block, or PDPC may be turned off for certain predicted samples such that normal intra-prediction is used (e.g., no modified prediction samples). As one example, for a prediction sample in a prediction block, video encoder 22 or video decoder 30 may determine that the first reference sample is available in the reference buffer, but that the second reference sample is not available in the reference buffer. In this example, video encoder 22 or video decoder 30 may determine that PDPC is off for the prediction sample. However, in some examples, video encoder 22 or video decoder 30 may use the first reference sample for PDPC and not use the second reference sample (eg, by setting the weight for the second reference sample to zero).

[0120] Как описано выше, в некоторых примерах, видеокодер 22 и видеодекодер 30 могут выполнять примерные методы PDPC на множестве выборок предсказания в блоке предсказания. Однако могут существовать случаи, когда методы PDPC используются на некоторых выборках предсказания, но не на других выборках предсказания в одном и том же блоке предсказания. Например, положим, что для первой выборки предсказания в блоке предсказания, видеокодер 22 или видеодекодер 30 выполняют методы PDPC, описанные в настоящем раскрытии. Однако для второй выборки предсказания в том же самом блоке предсказания, положим, что опорные выборки, необходимые для выполнения методов PDPC на второй выборке предсказания, не сохранены в буфере опорных линий. В этом примере, для второй выборки предсказания, видеокодер 22 или видеодекодер 30 могут не выполнять методы PDPC и могут использоваться методы нормального интра-предсказания. В некоторых случаях, для второй выборки предсказания, может быть возможным, что одна из опорных выборок доступна в буфере опорных линий, а другая - нет. В некоторых примерах, видеокодер 22 или видеодекодер 30 могут не выполнять методы PDPC на второй выборке предсказания или могут использовать только опорную выборку, которая является доступной, и назначать нулевой вес весам, примененным к опорной выборке, которая не является доступной.[0120] As described above, in some examples, video encoder 22 and video decoder 30 may perform exemplary PDPC techniques on a plurality of prediction samples in a prediction block. However, there may be cases where PDPC methods are used on some prediction samples but not on other prediction samples in the same prediction block. For example, suppose that for the first prediction sample in a prediction block, video encoder 22 or video decoder 30 performs the PDPC techniques described in this disclosure. However, for the second prediction sample in the same prediction block, assume that the reference samples needed to perform the PDPC methods on the second prediction sample are not stored in the reference line buffer. In this example, for the second prediction sample, video encoder 22 or video decoder 30 may not perform PDPC techniques and normal intra-prediction techniques may be used. In some cases, for the second prediction sample, it may be possible that one of the reference samples is available in the reference line buffer and the other is not. In some examples, video encoder 22 or video decoder 30 may not perform PDPC techniques on the second prediction sample, or may only use a reference sample that is available and assign zero weight to weights applied to a reference sample that is not available.

[0121] Эффективность сжатия для распространения PDPC на диагональные и смежные угловые режимы проиллюстрирована в следующих таблицах. Всего имеется 16 режимов, смежных с диагональным вверх-вправо режимом, и 16 режимов, смежных с диагональным вниз-влево режимом, в этом примерном тестировании. Условием примерного тестирования является ‘полное интра’, и используемые значения QP составляют {22, 27, 32, 37}. Таблица 1 (фиг. 5A) представляет BD-rates условия полного интра-тестирования для расширения PDPC (диагонального и смежного), без граничной фильтрации диагонального и смежного режимов. Таблица на фиг. 5A перечисляет BD-rates, когда тестирование проводится с выключенной граничной фильтрацией для диагонального и смежного режимов. Дополнительно, Таблица 2 (фиг. 5B) представляет BD-rates условия полного интра-тестирования для расширения PDPC (диагонального и смежного), включая граничную фильтрацию диагонального и смежного режима. Дополнительно, Таблица 2 на фиг. 5B перечисляет BD-rates, когда тестирование проводится с включенной граничной фильтрацией для диагонального и смежного режимов.[0121] The compression efficiency for propagating PDPC to diagonal and adjacent corner modes is illustrated in the following tables. There are a total of 16 modes adjacent to the diagonal up-right mode and 16 modes adjacent to the diagonal down-left mode in this exemplary testing. The exemplary testing condition is 'full intra' and the QP values used are {22, 27, 32, 37}. Table 1 (FIG. 5A) presents the BD-rates full intra-test conditions for PDPC expansion (diagonal and adjacent), without diagonal and adjacent mode boundary filtering. The table in FIG. 5A lists the BD-rates when testing is done with edge filtering turned off for the diagonal and adjacent modes. Additionally, Table 2 (FIG. 5B) presents the BD-rates of the full intra-test conditions for PDPC extension (diagonal and adjacent), including diagonal and adjacent mode boundary filtering. Additionally, Table 2 in FIG. 5B lists the BD-rates when testing is done with edge filtering enabled for the diagonal and adjacent modes.

[0122] Подобно распространению PDPC на диагональные и смежные угловые режимы, PDPC может быть распространена на угловые режимы, которые являются смежными с горизонтальными и вертикальными режимами. Смежные угловые режимы в этом случае могут относиться к угловым режимам по обе стороны от горизонтального и вертикального режимов. В случае смежных горизонтальных угловых режимов, x-координата Rx,-1 равна x-координате pred(x, y). Примерные веса PDPC составляют: wT=16>>((y<<1)>>shift), wL=0, wTL=wT. В случае смежных вертикальных угловых режимов, y-координата R-1,y равна y-координате pred(x, y). Примерные веса PDPC составляют: wL=16>>((x<<1)>>shift), wT=0, wTL=wL.[0122] Similar to the extension of PDPC to diagonal and adjacent angular modes, PDPC can be extended to angular modes that are adjacent to horizontal and vertical modes. Adjacent angular modes in this case may refer to the angular modes on either side of the horizontal and vertical modes. In the case of adjacent horizontal angle modes, the x-coordinate of Rx,-1 is equal to the x-coordinate of pred(x, y). Approximate PDPC weights are: wT=16>>((y<<1)>>shift), wL=0, wTL=wT. In the case of adjacent vertical angle modes, the y-coordinate of R-1,y is equal to the y-coordinate of pred(x, y). Approximate PDPC weights are: wL=16>>((x<<1)>>shift), wT=0, wTL=wL.

[0123] Фиг. 6 представляет собой блок-схему, иллюстрирующую примерный видеокодер 22, который может реализовывать методы настоящего раскрытия. Фиг. 6 обеспечена с целью объяснения и не должна пониматься как ограничивающая методы, как широко объяснено на примерах и описано в настоящем раскрытии. Методы настоящего раскрытия могут быть применимы к различным стандартам кодирования (например, HEVC или VVC) или способам.[0123] FIG. 6 is a block diagram illustrating an exemplary video encoder 22 that may implement the techniques of the present disclosure. Fig. 6 is provided for the purpose of explanation and is not to be understood as limiting the methods as broadly explained by way of example and described in this disclosure. The techniques of this disclosure may be applicable to various coding standards (eg, HEVC or VVC) or methods.

[0124] Различные модули (блоки) на фиг. 6 проиллюстрированы, чтобы помочь пониманию операций, выполняемых видеокодером 22. Модули могут быть реализованы как схемы с фиксированной функцией, программируемые схемы или их комбинация. Схемы с фиксированной функцией относятся к схемам, которые обеспечивают конкретную функциональность и предварительно настроены на операции, которые могут выполняться. Программируемые схемы относятся к схемам, которые могут быть запрограммированы, чтобы выполнять различные задачи, и обеспечивают гибкую функциональность в операциях, которые могут выполняться. Например, программируемые схемы могут исполнять программное обеспечение или прошивку, которые побуждают программируемые схемы работать способом, определенным инструкциями программного обеспечения или прошивки. Схемы с фиксированной функцией могут исполнять инструкции программного обеспечения (например, принимать параметры или выводить параметры), но типы операций, которые выполняют схемы с фиксированной функцией, в общем неизменны. В некоторых примерах, один или более модулей могут представлять собой отдельные схемные блоки (с фиксированной функцией или программируемые), и в некоторых примерах, один или более модулей могут представлять собой интегральные схемы. [0124] Various modules (blocks) in FIG. 6 are illustrated to aid understanding of the operations performed by video encoder 22. The modules may be implemented as fixed function circuits, programmable circuits, or a combination of both. Fixed function circuits refer to circuits that provide specific functionality and are preconfigured for operations that can be performed. Programmable circuits refer to circuits that can be programmed to perform various tasks and provide flexible functionality in the operations that can be performed. For example, the programmable circuits may execute software or firmware that causes the programmable circuits to operate in a manner determined by the instructions of the software or firmware. Fixed-function circuits can execute software instructions (eg, accept parameters or output parameters), but the types of operations that fixed-function circuits perform are generally unchanged. In some examples, one or more modules may be separate circuit blocks (fixed function or programmable), and in some examples, one or more modules may be integrated circuits.

[0125] В примере на фиг. 6, видеокодер 22 включает в себя модуль 100 обработки предсказания, память 101 видеоданных, модуль 102 генерации остатка, модуль 104 обработки преобразования, модуль 106 квантования, модуль 108 обратного квантования, модуль 110 обработки обратного преобразования, модуль 112 восстановления, модуль 114 фильтрации, буфер 116 декодированной картинки и модуль 118 энтропийного кодирования. Модуль 100 обработки предсказания включает в себя модуль 120 обработки интер-предсказания и модуль 126 обработки интра-предсказания. Модуль 120 обработки интер-предсказания может включать в себя модуль оценки движения и модуль компенсации движения (не показаны). [0125] In the example of FIG. 6, the video encoder 22 includes a prediction processing unit 100, a video data memory 101, a residual generation unit 102, a transform processing unit 104, a quantization unit 106, an inverse quantization unit 108, an inverse transform processing unit 110, a reconstruction unit 112, a filtering unit 114, a buffer. 116 of the decoded picture and the entropy encoding module 118 . The prediction processing unit 100 includes an inter prediction processing unit 120 and an intra prediction processing unit 126 . The inter prediction processing module 120 may include a motion estimation module and a motion compensation module (not shown).

[0126] Память 101 видеоданных может быть сконфигурирована, чтобы хранить видеоданные, подлежащие кодированию компонентами видеокодера 22. Видеоданные, хранящиеся в памяти 101 видеоданных, могут быть получены, например, из источника 18 видео. Буфер 116 декодированной картинки может представлять собой память опорной картинки, которая хранит опорные видеоданные для использования при кодировании видеоданных видеокодером 22, например, в режимах интра- или интер-кодирования. Память 101 видеоданных и буфер 116 декодированной картинки могут быть сформированы любым из множества устройств памяти, таким как динамическая память с произвольным доступом (DRAM), включая синхронную DRAM (SDRAM), магниторезистивную RAM (MRAM), резистивную RAM (RRAM) или другие типы устройств памяти. Память 101 видеоданных и буфер 116 декодированной картинки могут быть обеспечены тем же самым устройством памяти или отдельными устройствами памяти. В различных примерах, память 101 видеоданных может находиться на одном чипе с другими компонентами видеокодера 22 или вне чипа относительно этих компонентов. Память 101 видеоданных может представлять собой то же самое, что и запоминающие носители 20 на фиг. 1 или их часть.[0126] The video data memory 101 may be configured to store video data to be encoded by the components of the video encoder 22. The video data stored in the video data memory 101 may be obtained from a video source 18, for example. The decoded picture buffer 116 may be a reference picture memory that stores reference video data for use in encoding video data by video encoder 22, such as in intra- or inter-coding modes. The video data memory 101 and the decoded picture buffer 116 may be formed by any of a variety of memory devices such as dynamic random access memory (DRAM), including synchronous DRAM (SDRAM), magnetoresistive RAM (MRAM), resistive RAM (RRAM), or other types of devices. memory. The video data memory 101 and the decoded picture buffer 116 may be provided by the same memory device or by separate memory devices. In various examples, video data memory 101 may be on the same chip as other components of video encoder 22, or off-chip relative to those components. The video data memory 101 may be the same as the storage media 20 in FIG. 1 or part of them.

[0127] Видеокодер 22 принимает видеоданные. Видеокодер 22 может кодировать каждую CTU в слайсе картинки видеоданных. Каждая из CTU может быть ассоциирована с равными по размеру CTB яркости и соответствующими CTB картинки. В качестве части кодирования CTU, модуль 100 обработки предсказания может выполнять разбиение, чтобы разделить CTB CTU на постепенно все меньшие блоки. Меньшие блоки могут быть блоками кодирования CU. Например, модуль 100 обработки предсказания может разбивать CTB, ассоциированный с CTU, в соответствии с древовидной структурой. В соответствии с одним или более методами настоящего раскрытия, для каждого соответственного не-листового узла древовидной структуры на каждом уровне глубины древовидной структуры, имеется множество разрешенных шаблонов разделения для соответственного не-листового узла, и видеоблок, соответствующий соответственному не-листовому узлу, разбивается на видеоблоки, соответствующие дочерним узлам соответственного не-листового узла в соответствии с одним из множества разрешенных шаблонов разделения. В одном примере, модуль 100 обработки предсказания или другой модуль обработки видеокодера 22 может быть сконфигурирован, чтобы выполнять любую комбинацию методов, описанных здесь. [0127] Video encoder 22 receives video data. Video encoder 22 may encode each CTU in a video data picture slice. Each of the CTUs may be associated with equal-sized luma CTBs and corresponding picture CTBs. As part of CTU coding, prediction processing unit 100 may perform partitioning to divide the CTB CTU into progressively smaller blocks. Smaller blocks may be CU coding blocks. For example, the prediction processing module 100 may partition the CTB associated with the CTU according to a tree structure. In accordance with one or more methods of the present disclosure, for each respective non-leaf node of the tree structure, at each depth level of the tree structure, there are a plurality of allowed split patterns for the respective non-leaf node, and the video block corresponding to the respective non-leaf node is split into video blocks corresponding to the child nodes of the respective non-leaf node according to one of the plurality of allowed partition patterns. In one example, prediction processing module 100 or another processing module of video encoder 22 may be configured to perform any combination of the techniques described herein.

[0128] Видеокодер 22 может кодировать CU CTU, чтобы генерировать кодированные представления CU (т.е., кодированные CU). Как часть кодирования CU, модуль 100 обработки предсказания может разбивать блоки кодирования, ассоциированные с CU, среди одной или более PU CU. В соответствии с методами настоящего раскрытия, CU может включать в себя только одну PU. То есть, в некоторых примерах настоящего раскрытия, CU не разделяется на отдельные блоки предсказания, а наоборот, процесс предсказания выполняется на всей CU. Таким образом, каждая CU может быть ассоциирована с блоком предсказания яркости и соответствующими блоками предсказания цветности. Видеокодер 22 и видеодекодер 30 могут поддерживать CU, имеющие различные размеры. Как указано выше, размер CU может относиться к размеру блоку кодирования яркости CU, а также к размеру блока предсказания яркости. Как обсуждено выше, видеокодер 22 и видеодекодер 30 могут поддерживать размеры CU, определенные любой комбинацией примерных методов разбиения, описанных здесь.[0128] Video encoder 22 may encode the CTU CUs to generate encoded CU representations (ie, encoded CUs). As part of CU encoding, prediction processing unit 100 may partition coding blocks associated with a CU among one or more CU PUs. In accordance with the techniques of the present disclosure, a CU may include only one PU. That is, in some examples of the present disclosure, the CU is not divided into separate prediction blocks, but rather, the prediction process is performed on the entire CU. Thus, each CU may be associated with a luminance predictor and corresponding chrominance predictors. Video encoder 22 and video decoder 30 may support CUs having different sizes. As stated above, the CU size may refer to the size of the CU luminance coding block as well as the size of the luminance prediction block. As discussed above, video encoder 22 and video decoder 30 may support CU sizes defined by any combination of the exemplary partitioning methods described herein.

[0129] Модуль 120 обработки интер-предсказания может генерировать данные предсказания для PU путем выполнения интер-предсказания на каждой PU CU. Как объяснено здесь, в некоторых примерах настоящего раскрытия, CU может содержать только одну PU, то есть, CU и PU могут быть синонимичными. Данные предсказания для PU могут включать в себя блоки предсказания PU и информацию движения для PU. Модуль 120 обработки интер-предсказания может выполнять разные операции для PU или CU в зависимости от того, находится ли PU в I-слайсе, P-слайсе или B-слайсе. В I-слайсе, все PU соответствуют интра-предсказанию. Таким образом, если PU находится в I-слайсе, модуль 120 обработки интер-предсказания не выполняет интер-предсказание на PU. Таким образом, для блоков, закодированных в I-режиме, предсказанный блок формируется с использованием пространственного предсказания из ранее закодированных соседних блоков в том же самом кадре. Если PU находится в P-слайсе, модуль 120 обработки интер-предсказания может использовать однонаправленное интер-предсказание, чтобы сгенерировать блок предсказания PU. Если PU находится в B-слайсе, модуль 120 обработки интер-предсказания может использовать однонаправленное или двунаправленное интер-предсказание, чтобы сгенерировать блок предсказания PU.[0129] The inter prediction processing unit 120 may generate prediction data for the PU by performing inter prediction on each PU of the CU. As explained here, in some examples of the present disclosure, a CU may contain only one PU, that is, CU and PU may be synonymous. The prediction data for the PU may include PU prediction blocks and motion information for the PU. The inter-prediction processing unit 120 may perform different operations for a PU or a CU depending on whether the PU is in an I-slice, a P-slice, or a B-slice. In an I-slice, all PUs match the intra-prediction. Thus, if the PU is in an I slice, the inter prediction processing unit 120 does not perform inter prediction on the PU. Thus, for blocks encoded in I-mode, a predicted block is generated using spatial prediction from previously encoded adjacent blocks in the same frame. If the PU is in a P slice, inter prediction processing unit 120 may use unidirectional inter prediction to generate a PU prediction block. If the PU is in a B slice, inter prediction processing unit 120 may use unidirectional or bidirectional inter prediction to generate a PU prediction block.

[0130] Модуль 126 обработки интра-предсказания может генерировать данные предсказания для PU путем выполнения интра-предсказания на PU. Данные предсказания для PU могут включать в себя блоки предсказания PU и различные синтаксические элементы. Модуль 126 обработки интра-предсказания может выполнять интра-предсказание на PU в I-слайсах, P-слайсах и B-слайсах.[0130] The intra prediction processing unit 126 may generate prediction data for the PU by performing intra prediction on the PU. The prediction data for the PU may include PU prediction blocks and various syntax elements. The intra-prediction processing unit 126 may perform intra-prediction on PUs in I-slices, P-slices, and B-slices.

[0131] Чтобы выполнить интра-предсказание на PU, модуль 126 обработки интра-предсказания может использовать множество режимов интра-предсказания, чтобы генерировать множество наборов данных предсказания для PU. Модуль 126 обработки интра-предсказания может использовать выборки из блоков выборки соседних PU, чтобы сгенерировать блок предсказания для PU. Соседние PU могут находиться выше, выше и справа, выше и слева или слева от PU, предполагая порядок кодирования слева направо, сверху вниз для PU, CU и CTU. Модуль 126 обработки интра-предсказания может использовать различные количества режимов интра-предсказания, например, 35 направленных режимов интра-предсказания. В некоторых примерах, количество режимов интра-предсказания может зависеть от размера области, ассоциированной с PU.[0131] In order to perform intra prediction on the PU, the intra prediction processing unit 126 may use a plurality of intra prediction modes to generate a plurality of prediction data sets for the PU. Intra-prediction processing unit 126 may use samples from neighboring PU sample blocks to generate a prediction block for the PU. Neighbor PUs may be above, above and to the right, above and to the left, or to the left of the PU, assuming the encoding order is left to right, top to bottom for PUs, CUs, and CTUs. The intra-prediction processing unit 126 may use various numbers of intra-prediction modes, for example, 35 directional intra-prediction modes. In some examples, the number of intra prediction modes may depend on the size of the region associated with the PU.

[0132] В одном примере, модуль 126 обработки интра-предсказания может быть сконфигурирован, чтобы реализовывать методы раскрытия. В других примерах, другие блоки или модули могут быть сконфигурированы, чтобы реализовывать все или некоторые из методов раскрытия.[0132] In one example, intra-prediction processing module 126 may be configured to implement disclosure techniques. In other examples, other blocks or modules may be configured to implement all or some of the expansion methods.

[0133] Модуль 100 обработки предсказания может выбирать данные предсказания для PU CU среди данных предсказания, сгенерированных модулем 120 обработки интер-предсказания для PU, или данных предсказания, сгенерированных модулем 126 обработки интра-предсказания для PU. В некоторых примерах, модуль 100 обработки предсказания выбирает данные предсказания для PU CU на основе метрик скорости/искажения наборов данных предсказания. Блоки предсказания выбранных данных предсказания могут упоминаться здесь как выбранные блоки предсказания.[0133] The prediction processing unit 100 may select the prediction data for the CU PU from the prediction data generated by the PU inter prediction processing unit 120 or the prediction data generated by the PU intra prediction processing unit 126 . In some examples, the prediction processing unit 100 selects prediction data for the CU PUs based on the rate/distortion metrics of the prediction data sets. Prediction blocks of selected prediction data may be referred to herein as selected prediction blocks.

[0134] Модуль 102 генерации остатка может генерировать, на основе блоков кодирования (например, блоков кодирования яркости, Cb и Cr) для CU и выбранных блоков предсказания (например, блоков предсказания яркости, Cb и Cr) для PU CU, остаточные блоки (например, остаточные блоки яркости, Cb и Cr) для CU. Например, модуль 102 генерации остатка может генерировать остаточные блоки CU так, что каждая выборка в остаточных блоках имеет значение, равное разнице между выборкой в блоке кодирования CU и соответствующей выборкой в соответствующем выбранном блоке предсказания PU CU.[0134] Residual generation unit 102 may generate, based on coding blocks (eg, luminance coding blocks, Cb and Cr) for CUs and selected prediction blocks (eg, luminance prediction blocks, Cb and Cr) for CU PUs, residual blocks (eg , luma residual blocks, Cb and Cr) for CU. For example, residual generation module 102 may generate residual CUs such that each sample in the residual blocks has a value equal to the difference between a sample in the coding block of the CU and a corresponding sample in the corresponding selected prediction block of the CU PU.

[0135] Модуль 104 обработки преобразования может выполнять разбиение квадродерева или разбиение квадродерева/двоичного дерева (QTBT), чтобы разбить остаточные блоки, ассоциированные с CU, на блоки преобразования, ассоциированные с TU CU. Таким образом, TU может быть ассоциирована с блоком преобразования яркости и двумя блоками преобразования цветности. Размеры и положения блоков преобразования яркости и цветности TU CU могут или не могут быть основаны на размерах и положениях блоков предсказания PU CU. Структура квадродерева, известная как “остаточное квадродерево” (RQT), может включать в себя узлы, ассоциированные с каждой из областей. TU CU могут соответствовать листовым узлам RQT. Видеокодер 22 не может далее разделять CU на TU с использованием структуры RQT. Например, в одном примере, CU включает в себя одну TU.[0135] Transform processing unit 104 may perform quadtree splitting or quadtree/binary tree splitting (QTBT) to split residual blocks associated with a CU into transform blocks associated with a TU of the CU. Thus, a TU may be associated with a luma transform block and two chrominance transform blocks. The sizes and positions of the CU TU luma and chrominance transform blocks may or may not be based on the sizes and positions of the CU PU prediction blocks. The quadtree structure, known as a "residual quadtree" (RQT), may include nodes associated with each of the regions. The CU TUs may correspond to RQT leaf nodes. Video encoder 22 cannot further divide CUs into TUs using the RQT structure. For example, in one example, a CU includes one TU.

[0136] Модуль 104 обработки преобразования может генерировать блоки коэффициентов преобразования для каждой TU CU путем применения одного или более преобразований, к блокам преобразования TU. Модуль 104 обработки преобразования может применять различные преобразования к блоку преобразования, ассоциированному с TU. Например, модуль 104 обработки преобразования может применять дискретное косинусное преобразование (DCT), направленное преобразование или концептуально аналогичное преобразование к блоку преобразования. В некоторых примерах, модуль 104 обработки преобразования не применяет преобразования к блоку преобразования. В таких примерах, блок преобразования может интерпретироваться как блок коэффициентов преобразования.[0136] Transform processing unit 104 may generate transform coefficient blocks for each TU of the CU by applying one or more transforms to the transform blocks of the TU. Transform processing module 104 may apply various transforms to a transform unit associated with a TU. For example, transform processing module 104 may apply a discrete cosine transform (DCT), a directional transform, or a conceptually similar transform to the transform block. In some examples, the transform processing module 104 does not apply transforms to the transform block. In such examples, a transform block may be interpreted as a transform coefficient block.

[0137] Модуль 106 квантования может квантовать коэффициенты преобразования в блоке коэффициентов. Процесс квантования может уменьшать битовую глубину, ассоциированную с некоторыми или всеми коэффициентами преобразования. Например, n-битовый коэффициент преобразования может быть округлен в меньшую сторону до m-битного коэффициента преобразования во время квантования, где n больше, чем m. Модуль 106 квантования может квантовать блок коэффициентов, ассоциированный с TU CU, на основе значения параметра квантования (QP), ассоциированного с CU. Видеокодер 22 может регулировать степень квантования, применяемого к блокам коэффициентов, ассоциированным с CU, путем регулировки значения QP, ассоциированного с CU. Квантование может вводить потери информации. Таким образом, квантованные коэффициенты преобразования могут иметь более низкую точность, чем исходные.[0137] Quantization module 106 may quantize the transform coefficients in the coefficient block. The quantization process may reduce the bit depth associated with some or all of the transform coefficients. For example, an n-bit transform factor may be rounded down to an m-bit transform factor during quantization, where n is greater than m. Quantization unit 106 may quantize the coefficient block associated with the TU of the CU based on the value of a quantization parameter (QP) associated with the CU. Video encoder 22 may adjust the amount of quantization applied to the coefficient blocks associated with the CU by adjusting the QP value associated with the CU. Quantization may introduce loss of information. Thus, the quantized transform coefficients may have lower accuracy than the original ones.

[0138] Модуль 108 обратного квантования и модуль 110 обработки обратного преобразования могут применять обратное квантование и обратные преобразования к блоку коэффициентов, соответственно, чтобы восстановить остаточный блок из блока коэффициентов. Модуль 112 восстановления может суммировать восстановленный остаточный блок с соответствующими выборками из одного или более блоков предсказания, сгенерированных модулем 100 обработки предсказания, чтобы сформировать восстановленный блок преобразования, ассоциированный с TU. Путем восстановления блоков преобразования для каждой TU CU таким образом, видеокодер 22 может восстанавливать блоки кодирования CU. [0138] The inverse quantization unit 108 and the inverse transform processing unit 110 may apply inverse quantization and inverse transforms to the coefficient block, respectively, to recover the residual block from the coefficient block. Recovery unit 112 may add the recovered residual block with corresponding samples from one or more prediction blocks generated by prediction processing unit 100 to form a recovered transform block associated with the TU. By recovering the transform blocks for each TU of the CU in this way, video encoder 22 can recover the coding blocks of the CU.

[0139] Модуль 114 фильтрации может выполнять одну или более фильтраций устранения блочности и/или других операций фильтрации, чтобы уменьшить артефакты блочности в блоках кодирования, ассоциированных с CU. Буфер 116 декодированной картинки может сохранять восстановленные блоки кодирования после того, как модуль 114 фильтрации выполняет одну или более операций устранения блочности на восстановленных блоках кодирования. Модуль 120 обработки интер-предсказания может использовать опорную картинку, которая содержит восстановленные блоки кодирования, чтобы выполнить интер-предсказание на PU других картинок. К тому же, модуль 126 обработки интра-предсказания может использовать восстановленные блоки кодирования в буфере 116 декодированных картинок, чтобы выполнить интра-предсказание на других PU в той же самой картинке, что и CU.[0139] Filtering module 114 may perform one or more deblocking filters and/or other filtering operations to reduce blocking artifacts in coding blocks associated with a CU. The decoded picture buffer 116 may store the recovered coding blocks after the filter module 114 performs one or more deblocking operations on the recovered coding blocks. Inter-prediction processing unit 120 may use a reference picture that contains recovered coding blocks to perform inter-prediction on PUs of other pictures. In addition, the intra prediction processing unit 126 may use the recovered coding blocks in the decoded picture buffer 116 to perform intra prediction on other PUs in the same picture as the CU.

[0140] Модуль 118 энтропийного кодирования может принимать данные от других функциональных компонентов видеокодера 22. Например, модуль 118 энтропийного кодирования может принимать блоки коэффициентов от модуля 106 квантования и может принимать синтаксические элементы от модуля 100 обработки предсказания. Модуль 118 энтропийного кодирования может выполнять одну или более операций энтропийного кодирования на данных, чтобы сгенерировать энтропийно закодированные данные. Например, модуль 118 энтропийного кодирования может выполнять операцию CABAC, операцию контекстно-адаптивного кодирования с переменной длиной (CAVLC), операцию кодирования из переменной в переменную длину (V2V), операцию синтаксического контекстно-адаптивного двоичного арифметического кодирования (SBAC), операцию энтропийного кодирования с разбиением вероятностных интервалов (PIPE), операцию кодирования экспоненциальным кодом Голомба или другой тип операции энтропийного кодирования на данных. Видеокодер 22 может выводить битовый поток, который включает в себя энтропийно кодированные данные, сгенерированные модулем 118 энтропийного кодирования. Например, битовый поток может включать в себя данные, которые представляют структуру разбиения для CU в соответствии с методами настоящего раскрытия.[0140] Entropy encoding unit 118 may receive data from other functional components of video encoder 22. For example, entropy encoding unit 118 may receive blocks of coefficients from quantization unit 106 and may receive syntax elements from prediction processing unit 100. Entropy encoding module 118 may perform one or more entropy encoding operations on the data to generate entropy encoded data. For example, entropy encoding unit 118 may perform a CABAC operation, a context adaptive variable length coding (CAVLC) operation, a variable to variable length (V2V) coding operation, a syntactic context adaptive binary arithmetic coding (SBAC) operation, an entropy coding operation with interval partitioning (PIPE), an exponential Golomb encoding operation, or another type of entropy encoding operation on the data. Video encoder 22 may output a bit stream that includes entropy encoded data generated by entropy encoding module 118 . For example, the bitstream may include data that represents a split structure for a CU in accordance with the techniques of the present disclosure.

[0141] Фиг. 7 представляет собой блок-схему, иллюстрирующую примерный видеодекодер 30, который сконфигурирован, чтобы реализовывать методы настоящего раскрытия. Фиг. 7 обеспечена с целью объяснения и не ограничивает методы, как широко проиллюстрировано и описано в настоящем раскрытии. С целью объяснения, настоящее раскрытие описывает видеодекодер 30 в контексте кодирования HEVC или VVC. Однако методы настоящего раскрытия могут быть применимы к другим стандартам или способам кодирования.[0141] FIG. 7 is a block diagram illustrating an exemplary video decoder 30 that is configured to implement the techniques of the present disclosure. Fig. 7 is provided for the purpose of explanation and is not intended to limit the methods as broadly illustrated and described in this disclosure. For the purpose of explanation, the present disclosure describes video decoder 30 in the context of HEVC or VVC coding. However, the methods of this disclosure may be applicable to other standards or encoding methods.

[0142] Различные модули, показанные на фиг. 7, проиллюстрированы для пояснения операций, выполняемых видеодекодером 30. Модули могут быть реализованы как схемы с фиксированной функцией, программируемые схемы или их комбинация. Аналогично фиг. 6, схемы с фиксированной функцией относятся к схемам, которые обеспечивают конкретную функциональность и предварительно настроены на операции, которые могут выполняться. Программируемые схемы относятся к схемам, которые могут быть запрограммированы, чтобы выполнять различные задачи, и обеспечивают гибкую функциональность в операциях, которые могут выполняться. Например, программируемые схемы могут исполнять программное обеспечение или прошивку, которые побуждают программируемые схемы работать способом, определенным инструкциями программного обеспечения или прошивки. Схемы с фиксированной функцией могут исполнять инструкции программного обеспечения (например, принимать параметры или выводить параметры), но типы операций, которые выполняют схемы с фиксированной функцией, в общем неизменны. В некоторых примерах, один или более модулей могут представлять собой отдельные схемные блоки (с фиксированной функцией или программируемые), и в некоторых примерах, один или более модулей могут представлять собой интегральные схемы. [0142] The various modules shown in FIG. 7 are illustrated to explain the operations performed by video decoder 30. The modules may be implemented as fixed function circuits, programmable circuits, or a combination of both. Similarly to FIG. 6, fixed function circuits refer to circuits that provide specific functionality and are pre-configured for operations that can be performed. Programmable circuits refer to circuits that can be programmed to perform various tasks and provide flexible functionality in the operations that can be performed. For example, the programmable circuits may execute software or firmware that cause the programmable circuits to operate in a manner determined by the instructions of the software or firmware. Fixed-function circuits can execute software instructions (eg, accept parameters or output parameters), but the types of operations that fixed-function circuits perform are generally unchanged. In some examples, one or more modules may be separate circuit blocks (fixed function or programmable), and in some examples, one or more modules may be integrated circuits.

[0143] В примере на фиг. 7, видеодекодер 30 включает в себя модуль 150 энтропийного декодирования, память 151 видеоданных, модуль 125 обработки предсказания, модуль 154 обратного квантования, модуль 156 обработки обратного преобразования, модуль 158 восстановления, модуль 160 фильтрации и буфер 162 декодированной картинки. Модуль 125 обработки предсказания включает в себя модуль 164 компенсации движения и модуль 166 обработки интра-предсказания. В других примерах, видеодекодер 30 может включать в себя больше, меньше или другие функциональные компоненты. [0143] In the example of FIG. 7, the video decoder 30 includes an entropy decoding unit 150, a video data memory 151, a prediction processing unit 125, an inverse quantization unit 154, an inverse transform processing unit 156, a reconstruction unit 158, a filtering unit 160, and a decoded picture buffer 162. The prediction processing unit 125 includes a motion compensation unit 164 and an intra prediction processing unit 166 . In other examples, video decoder 30 may include more, less, or other functional components.

[0144] Память 151 видеоданных может хранить закодированные видеоданные, такие как закодированный битовый видеопоток, подлежащие декодированию компонентами видеодекодера 30. Видеоданные, хранящиеся в памяти 151 видеоданных, могут быть получены, например, из считываемого компьютером носителя 16, например, из локального видеоисточника, такого как камера, посредством проводной или беспроводной сети передачи видеоданных или путем доступа к физическим носителям данных. Память 151 видеоданных может формировать буфер кодированной картинки (CPB), который хранит кодированные видеоданные из кодированного битового видеопотока. Буфер 162 декодированной картинки может представлять собой память опорной картинки, которая хранит опорные видеоданные для использования при декодировании видеоданных видеодекодером 30, например, в режимах интра- или интер-кодирования, или для вывода. Память 151 видеоданных и буфер 162 декодированной картинки могут быть сформированы любым из множества устройств памяти, таким как динамическая память с произвольным доступом (DRAM), включая синхронную DRAM (SDRAM), магниторезистивную RAM (MRAM), резистивную RAM (RRAM) или другие типы устройств памяти. Память 151 видеоданных и буфер 162 декодированной картинки могут быть обеспечены тем же самым устройством памяти или отдельными устройствами памяти. В различных примерах, память 151 видеоданных может находиться на чипе с другими компонентами видеодекодера 30 или вне чипа относительно этих компонентов. Память 151 видеоданных может представлять собой то же самое, что и запоминающие носители 28 на фиг. 1, или их часть.[0144] The video data memory 151 may store encoded video data, such as an encoded video bitstream, to be decoded by the components of the video decoder 30. The video data stored in the video data memory 151 may be obtained, for example, from a computer-readable medium 16, such as from a local video source such as as a camera, through a wired or wireless video network, or through access to physical storage media. The video data memory 151 may generate a coded picture buffer (CPB) that stores encoded video data from an encoded video bitstream. The decoded picture buffer 162 may be a reference picture memory that stores reference video data for use in video decoding by video decoder 30, such as in intra- or inter-coding modes, or for output. The video data memory 151 and the decoded picture buffer 162 may be formed by any of a variety of memory devices such as dynamic random access memory (DRAM), including synchronous DRAM (SDRAM), magnetoresistive RAM (MRAM), resistive RAM (RRAM), or other types of devices. memory. The video data memory 151 and the decoded picture buffer 162 may be provided by the same memory device or by separate memory devices. In various examples, video data memory 151 may be on-chip with other components of video decoder 30, or off-chip relative to those components. The video data memory 151 may be the same as the storage media 28 in FIG. 1, or part of them.

[0145] Память 151 видеоданных принимает и сохраняет закодированные видеоданные (например, единицы NAL) битового потока. Модуль 150 энтропийного декодирования может принимать закодированные видеоданные (например, единицы NAL) от памяти 151 видеоданных и может выполнять синтаксический анализ единиц NAL, чтобы получить синтаксические элементы. Модуль 150 энтропийного декодирования может энтропийно декодировать энтропийно закодированные синтаксические элементы в единицах NAL. Модуль 125 обработки предсказания, модуль 154 обратного квантования, модуль 156 обработки обратного преобразования, модуль 158 восстановления и модуль 160 фильтрации могут генерировать декодированные видеоданные на основе синтаксических элементов, извлеченных из битового потока. Модуль 150 энтропийного декодирования может выполнять процесс, по существу обратный процессу модуля 118 энтропийного кодирования. [0145] The video data memory 151 receives and stores encoded video data (eg, NAL units) of the bitstream. Entropy decoding module 150 may receive encoded video data (eg, NAL units) from video data memory 151 and may parse the NAL units to obtain syntax elements. Entropy decoding module 150 may entropy decode entropy encoded syntax elements in NAL units. Prediction processing unit 125, inverse quantization unit 154, inverse transform processing unit 156, reconstruction unit 158, and filter unit 160 may generate decoded video data based on syntax elements extracted from the bitstream. Module 150 entropy decoding may perform a process essentially reverse process module 118 entropy encoding.

[0146] В соответствии с некоторыми примерами настоящего раскрытия, модуль 150 энтропийного декодирования или другой модуль обработки видеодекодера 30 может определять древовидную структуру как часть получения синтаксических элементов из битового потока. Древовидная структура может специфицировать, как исходный видеоблок, такой как CTB, разбивается на меньшие видеоблоки, такие как единицы кодирования. В соответствии с одним или более методами настоящего раскрытия, для каждого соответственного не-листового узла древовидной структуры на каждом уровне глубины древовидной структуры, существует множество разрешенных типов разбиения для соответственного не-листового узла, и видеоблок, соответствующий соответственному не-листовому узлу, разбивается на видеоблоки, соответствующие дочерним узлам соответственного не-листового узла в соответствии с одним из множества разрешенных шаблонов разделения.[0146] In accordance with some examples of the present disclosure, entropy decoding module 150 or another processing module of video decoder 30 may determine a tree structure as part of deriving syntax elements from a bitstream. The tree structure may specify how a source video block, such as a CTB, is split into smaller video blocks, such as coding units. In accordance with one or more methods of the present disclosure, for each respective non-leaf node of the tree structure at each depth level of the tree structure, there is a plurality of allowed split types for the respective non-leaf node, and the video block corresponding to the respective non-leaf node is partitioned into video blocks corresponding to the child nodes of the respective non-leaf node according to one of the plurality of allowed partition patterns.

[0147] В дополнение к получению синтаксических элементов из битового потока, видеодекодер 30 может выполнять операцию восстановления на неразбитой CU. Чтобы выполнить операцию восстановления на CU, видеодекодер 30 может выполнять операцию восстановления на каждой TU CU. Путем выполнения операции восстановления для каждой TU CU, видеодекодер 30 может восстановить остаточные блоки CU. Как рассмотрено выше, в одном примере раскрытия, CU включает в себя одну TU.[0147] In addition to obtaining syntax elements from a bitstream, video decoder 30 may perform a recovery operation on an unsplit CU. To perform a restore operation on a CU, video decoder 30 may perform a restore operation on each TU of the CU. By performing a restore operation for each CU TU, video decoder 30 can restore the remaining CUs. As discussed above, in one exemplary disclosure, a CU includes one TU.

[0148] Как часть выполнения операции восстановления на TU CU, модуль 154 обратного квантования может обратно квантовать, т.е. де-квантовать, блоки коэффициентов, ассоциированные с TU. После того, как модуль 154 обратного квантования обратно квантовал блок коэффициентов, модуль 156 обработки обратного преобразования может применить одно или более обратных преобразований к блоку коэффициентов, чтобы сгенерировать остаточный блок, ассоциированный с TU. Например, модуль 156 обработки обратного преобразования может применить обратное DCT, обратное целочисленное преобразование, обратное преобразование Карунена-Лоэва (KLT), обратное преобразование вращения, обратное направленное преобразование или другое обратное преобразование к блоку коэффициентов. [0148] As part of performing a recovery operation on the TU CU, inverse quantizer 154 may inverse quantize, i.e. de-quantize, blocks of coefficients associated with the TU. After inverse quantizer 154 has inversely quantized the coefficient block, inverse transform processing module 156 may apply one or more inverse transforms to the coefficient block to generate a residual block associated with the TU. For example, inverse transform processing module 156 may apply an inverse DCT, inverse integer transform, inverse Karhunen-Loeve (KLT), inverse rotation, inverse directional transform, or other inverse transform to the coefficient block.

[0149] Если CU или PU закодирована с использованием интра-предсказания, модуль 166 обработки интра-предсказания может выполнять интра-предсказание, чтобы сгенерировать блоки предсказания PU. Модуль 166 обработки интра-предсказания может использовать режим интра-предсказания, чтобы сгенерировать блоки предсказания PU на основе выборок пространственно соседних блоков. Модуль 166 обработки интра-предсказания может определять режим интра-предсказания для PU на основе одного или более синтаксических элементов, полученных из битового потока. [0149] If the CU or PU is encoded using intra prediction, intra prediction processing unit 166 may perform intra prediction to generate PU prediction blocks. The intra-prediction processing unit 166 may use the intra-prediction mode to generate PU prediction blocks based on samples of spatially adjacent blocks. The intra-prediction processing unit 166 may determine the intra-prediction mode for the PU based on one or more syntax elements obtained from the bitstream.

[0150] В одном примере, модуль 166 обработки интра-предсказания может быть сконфигурирован, чтобы реализовывать методы раскрытия. В других примерах, другие блоки или модули могут быть сконфигурированы, чтобы реализовывать все или некоторые методы раскрытия.[0150] In one example, intra-prediction processing module 166 may be configured to implement disclosure techniques. In other examples, other blocks or modules may be configured to implement all or some of the expansion methods.

[0151] Если PU закодирована с использованием интер-предсказания, модуль 150 энтропийного декодирования может определять информацию движения для PU. Модуль 164 компенсации движения может определять, на основе информации движения PU, один или более опорных блоков. Модуль 164 компенсации движения может генерировать, на основе одного или более опорных блоков, блоки предсказания (например, блоки предсказания яркости, Cb и Cr) для PU. Как рассмотрено выше, CU может включать в себя только одну PU. То есть, CU может не разделяться на множество PU.[0151] If the PU is encoded using inter-prediction, entropy decoding module 150 may determine motion information for the PU. The motion compensation module 164 may determine, based on the motion information of the PU, one or more reference blocks. Motion compensation module 164 may generate, based on one or more reference blocks, prediction blocks (eg, luma, Cb, and Cr prediction blocks) for the PU. As discussed above, a CU may include only one PU. That is, a CU may not be divided into multiple PUs.

[0152] Модуль 158 восстановления может использовать блоки преобразования (например, блоки преобразования яркости, Cb и Cr) для TU CU и блоки предсказания (например, блоки яркости, Cb и Cr) PU CU, т.е., либо данные интра-предсказания, либо данные интер-предсказания, как применимо, чтобы восстановить блоки кодирования (например, блоки кодирования яркости, Cb и Cr) для CU. Например, модуль 158 восстановления может суммировать выборки блоков преобразования (например, блоков преобразования яркости, Cb и Cr) с соответствующими выборками блоков предсказания (например, блоков предсказания яркости, Cb и Cr), чтобы восстановить блоки кодирования (например, блоки кодирования яркости, Cb и Cr) CU. [0152] Recovery module 158 may use transform blocks (eg, luminance transform blocks, Cb and Cr) for CU TUs and prediction blocks (eg, luminance blocks, Cb and Cr) of CU PUs, i.e., either intra-prediction data , or inter-prediction data, as applicable, to recover the coding blocks (eg, luminance, Cb, and Cr coding blocks) for the CU. For example, deconstructor 158 may add samples of transform blocks (eg, luminance transform blocks, Cb and Cr) with corresponding samples of prediction blocks (eg, luminance prediction blocks, Cb and Cr) to recover coding blocks (eg, luminance coding blocks, Cb and Cr) CU.

[0153] Модуль 160 фильтрации может выполнять операцию устранения блочности, чтобы уменьшить артефакты блочности, ассоциированные с блоками кодирования CU. Видеодекодер 30 может сохранять блоки кодирования CU в буфере 162 декодированной картинки. Буфер 162 декодированной картинки может обеспечивать опорные картинки для последующей компенсации движения, интра-предсказания и представления на устройстве отображения, таком как устройство 32 отображения на фиг. 1. Например, видеодекодер 30 может выполнять, на основе блоков в буфере 162 декодированной картинки, операции интра-предсказания или интер-предсказания для PU других CU.[0153] Filtering module 160 may perform a deblocking operation to reduce blocking artifacts associated with CU coding blocks. Video decoder 30 may store coding units CU in decoded picture buffer 162 . The decoded picture buffer 162 may provide reference pictures for subsequent motion compensation, intra-prediction, and presentation on a display device, such as display device 32 in FIG. 1. For example, video decoder 30 may perform, based on the blocks in decoded picture buffer 162, intra-prediction or inter-prediction operations for PUs of other CUs.

[0154] Видеодекодер выводит декодированную версию текущей картинки, которая включает в себя декодированную версию текущего блока. Когда видеодекодер представляет собой видеодекодер, сконфигурированный, чтобы выводить отображаемое декодированное видео, то видеодекодер может, например, выводить декодированную версию текущей картинки на устройство отображения. Когда декодирование выполняется как часть цикла декодирования процесса кодирования видео, видеодекодер может сохранять декодированную версию текущей картинки как опорную картинку для использования при кодировании другой картинки видеоданных.[0154] The video decoder outputs a decoded version of the current picture, which includes the decoded version of the current block. When the video decoder is a video decoder configured to output displayed decoded video, the video decoder may, for example, output a decoded version of the current picture to a display device. When decoding is performed as part of a decoding cycle of a video encoding process, the video decoder may store a decoded version of the current picture as a reference picture for use in encoding another picture of video data.

[0155] Фиг. 8 представляет собой блок-схему последовательности операций, иллюстрирующую примерный способ кодирования видеоданных. Видеокодер 22 (например, с модулем 126 обработки интра-предсказания) может быть сконфигурирован, чтобы определять блок предсказания, который включает в себя множество выборок предсказания, для текущего блока на основе углового режима интра-предсказания, который не является DC, планарным, горизонтальным или вертикальным режимом интра-предсказания (200). Память 101 видеоданных или DPB 16 может хранить блок предсказания.[0155] FIG. 8 is a flowchart illustrating an exemplary method for encoding video data. Video encoder 22 (eg, with intra prediction processing unit 126) may be configured to determine a prediction block that includes a plurality of prediction samples for the current block based on an intra prediction angular mode that is not DC, planar, horizontal, or vertical intra-prediction mode (200). The video data memory 101 or DPB 16 may store a prediction block.

[0156] Видеокодер 22 (например, с модулем 126 обработки интра-предсказания) может быть сконфигурирован, чтобы модифицировать выборку предсказания блока предсказания, чтобы сгенерировать модифицированную выборку предсказания с использованием комбинации позиционно-зависимого интра-предсказания (PDPC) (202). Например, чтобы модифицировать выборку предсказания, видеокодер 22 может быть сконфигурирован, чтобы определять одну или более опорных выборок, которые являются внешними для текущего блока, на основе углового режима интра-предсказания (204) и модифицировать выборку предсказания, чтобы сгенерировать модифицированную выборку предсказания на основе определенной одной или более опорных выборок (206). В одном примере, чтобы определить одну или более опорных выборок, которые являются внешними для текущего блока, видеокодер 22 может быть сконфигурирован, чтобы определять одну или более опорных выборок, имеющих x- и y-координату, отличную от x- и y-координаты выборки предсказания в блоке предсказания. [0156] Video encoder 22 (eg, with intra-prediction processing module 126) may be configured to modify the prediction block prediction sample to generate a modified prediction sample using a position-dependent intra-prediction combination (PDPC) (202). For example, to modify the prediction sample, video encoder 22 may be configured to determine one or more reference samples that are external to the current block based on the intra-prediction angle mode (204) and modify the prediction sample to generate a modified prediction sample based on a certain one or more reference samples (206). In one example, to determine one or more reference samples that are external to the current block, video encoder 22 may be configured to determine one or more reference samples having an x- and y-coordinate different from the x- and y-coordinate of the sample. predictions in the prediction block.

[0157] В качестве одного примера, чтобы определить одну или более опорных выборок, которые являются внешними для текущего блока, видеокодер 22 может быть сконфигурирован, чтобы определять строку, которая находится выше текущего блока, и определять x-координату в определенной строке. x-координата в определенной строке равна x-координате выборки предсказания плюс y-координата выборки предсказания плюс 1. Видеокодер 22 может определять опорную выборку из одной или более опорных выборок на основе определенной строки и определенной x-координаты. В качестве другого примера, чтобы определить одну или более опорных выборок, которые являются внешними для текущего блока, видеокодер 22 может быть сконфигурирован, чтобы определять столбец, который находится слева от текущего блока, и определять y-координату в определенном столбце. y-координата в определенном столбце равна x-координате выборки предсказания плюс y-координата выборки предсказания плюс 1. Видеокодер 22 может быть сконфигурирован, чтобы определять опорную выборку из одной или более опорных выборок на основе определенного столбца и определенной y-координаты.[0157] As one example, to determine one or more reference samples that are external to the current block, video encoder 22 may be configured to determine the line that is above the current block and determine the x-coordinate in the determined line. The x-coordinate in a certain row is equal to the x-coordinate of the prediction sample plus the y-coordinate of the prediction sample plus 1. Video encoder 22 may determine a reference sample from one or more reference samples based on the determined row and the determined x-coordinate. As another example, to determine one or more reference samples that are external to the current block, video encoder 22 may be configured to determine the column that is to the left of the current block and determine the y-coordinate in the determined column. The y-coordinate in a particular column is equal to the x-coordinate of the prediction sample plus the y-coordinate of the prediction sample plus 1. Video encoder 22 may be configured to determine a reference sample from one or more reference samples based on the particular column and the particular y-coordinate.

[0158] В качестве одного примера, чтобы определить одну или более опорных выборок, которые являются внешними для текущего блока, видеокодер 22 может быть сконфигурирован, чтобы определять строку, которая находится выше текущего блока, и определять x-координату в определенной строке. x-координата в определенной строке основана на угле углового режима интра-предсказания. Видеокодер 22 может быть сконфигурирован, чтобы определять опорную выборку из одной или более опорных выборок на основе определенной строки и определенной x-координаты. Чтобы определить x-координату в определенной строке, видеокодер 22 может быть сконфигурирован, чтобы определять одно из котангенса или тангенса угла углового режима интра-предсказания и определять x-координату в определенной строке на основе одного из котангенса или тангенса угла углового режима интра-предсказания, x-координаты выборки предсказания и y-координаты выборки предсказания.[0158] As one example, to determine one or more reference samples that are external to the current block, video encoder 22 may be configured to determine the line that is above the current block and determine the x-coordinate in the determined line. The x-coordinate in a specific row is based on the intra-prediction angular mode angle. Video encoder 22 may be configured to determine a reference sample from one or more reference samples based on a specific row and a specific x-coordinate. In order to determine the x-coordinate at a specific row, video encoder 22 may be configured to determine one of the cotangent or tangent of the intra-prediction angular mode angle, and determine the x-coordinate at the specific row based on one of the cotangent or tangent of the intra-prediction angular mode angle, x-coordinates of the prediction sample and y-coordinates of the prediction sample.

[0159] В качестве другого примера, чтобы определить одну или более опорных выборок, которые являются внешними для текущего блока, видеокодер 22 может быть сконфигурирован, чтобы определять столбец, который находится слева от текущего блока, и определять y-координату в определенном столбце. y-координата в определенном столбце основана на угле углового режима интра-предсказания. Видеокодер 22 может быть сконфигурирован, чтобы определять опорную выборку из одной или более опорных выборок на основе определенного столбца и определенной y-координаты. Чтобы определить y-координату в определенном столбце, видеокодер 22 может быть сконфигурирован, чтобы определять одно из котангенса или тангенса угла углового режима интра-предсказания и определять y-координату в определенном столбце на основе одного из котангенса или тангенса угла углового режима интра-предсказания, x-координаты выборки предсказания и y-координаты выборки предсказания.[0159] As another example, to determine one or more reference samples that are external to the current block, video encoder 22 may be configured to determine the column that is to the left of the current block and determine the y-coordinate in the determined column. The y-coordinate in a specific column is based on the intra-prediction angular mode angle. Video encoder 22 may be configured to determine a reference sample from one or more reference samples based on a specific column and a specific y-coordinate. To determine the y-coordinate at a specific column, video encoder 22 may be configured to determine one of the cotangent or tangent of the intra-prediction angular mode angle, and determine the y-coordinate at the specific column based on one of the cotangent or tangent of the intra-prediction angular mode angle, x-coordinates of the prediction sample and y-coordinates of the prediction sample.

[0160] В качестве одного примера, чтобы определить одну или более опорных выборок, которые являются внешними для текущего блока, на основе углового режима интра-предсказания, видеокодер 22 может быть сконфигурирован, чтобы определять набор из одной или более выборок на основе углового режима интра-предсказания и интерполировать набор из одной или более выборок, чтобы сгенерировать одну или более опорных выборок. В некоторых примерах, видеокодер 22 может быть сконфигурирован, чтобы выполнять по меньшей мере одно из интерполяции, округления со сдвигом или округления без сдвига на наборе из одной или более выборок, чтобы сгенерировать одну или более опорных выборок.[0160] As one example, to determine one or more reference samples that are external to the current block based on the intra angle mode, video encoder 22 may be configured to determine a set of one or more samples based on the intra angle mode. -predict and interpolate a set of one or more samples to generate one or more reference samples. In some examples, video encoder 22 may be configured to perform at least one of interpolation, round with a shift, or round without a shift on a set of one or more samples to generate one or more reference samples.

[0161] В качестве одного примера, чтобы определить одну или более опорных выборок, которые являются внешними для текущего блока, на основе углового режима интра-предсказания, видеокодер 22 может быть сконфигурирован, чтобы определять, что одна или более выборок, внешних для текущего блока, идентифицированных на основе углового режима интра-предсказания, не хранятся в буфере опорных линий, и определять одну или более опорных выборок на основе последней опорной выборки, сохраненной в буфере опорных линий. В некоторых примерах, модифицирование выборки предсказания блока предсказания может включать в себя модифицирование первой выборки предсказания блока предсказания, и одна или более опорных выборок могут представлять собой первый набор из одной или более опорных выборок. Видеокодер 22 может быть сконфигурирован, чтобы определять, для второй выборки предсказания того же самого блока предсказания, что по меньшей мере одна опорная выборка из второго набора из одной или более опорных выборок для второй выборки предсказания не хранится в буфере опорных линий, и выполнять один из следующих этапов: (a) не применять PDPC ко второй выборке предсказания или (b) применять PDPC с использованием только опорных выборок, доступных в буфере опорных линий (например, путем применения нулевого веса к опорной выборке, которая не является доступной).[0161] As one example, to determine one or more reference samples that are external to the current block, based on the intra-prediction angular mode, video encoder 22 may be configured to determine that one or more samples external to the current block identified based on the intra-prediction angle mode are not stored in the reference line buffer, and determine one or more reference samples based on the last reference sample stored in the reference line buffer. In some examples, modifying a prediction block prediction sample may include modifying a first prediction block prediction sample, and the one or more reference samples may be the first set of the one or more reference samples. Video encoder 22 may be configured to determine, for a second prediction sample of the same prediction block, that at least one reference sample from a second set of one or more reference samples for the second prediction sample is not stored in a reference line buffer, and perform one of the following steps: (a) not apply PDPC to the second prediction sample, or (b) apply PDPC using only the reference samples available in the reference line buffer (eg, by applying zero weight to a reference sample that is not available).

[0162] В соответствии с одним или более примерами, видеокодер 22 может быть сконфигурирован, чтобы определять множество весов на основе x- и y-координат выборки предсказания. Чтобы модифицировать выборку предсказания, видеокодер 22 может быть сконфигурирован, чтобы модифицировать выборку предсказания, чтобы сгенерировать модифицированную выборку предсказания на основе определенной одной или более опорных выборок, определенных весов и выборки предсказания.[0162] According to one or more examples, video encoder 22 may be configured to determine a plurality of weights based on the x- and y-coordinates of the prediction sample. To modify the prediction sample, video encoder 22 may be configured to modify the prediction sample to generate a modified prediction sample based on the determined one or more reference samples, the determined weights, and the prediction sample.

[0163] Видеокодер 22 может быть сконфигурирован, чтобы определять остаточное значение для остаточного блока на основе модифицированной выборки предсказания и значения выборки в текущем блоке (208). Видеокодер 22 может быть сконфигурирован, чтобы сигнализировать информацию, указывающую остаточное значение (210).[0163] Video encoder 22 may be configured to determine a residual value for the residual block based on the modified prediction sample and the sample value in the current block (208). Video encoder 22 may be configured to signal information indicative of the residual value (210).

[0164] Фиг. 9 представляет собой блок-схему последовательности операций, иллюстрирующую примерный способ декодирования видеоданных. Видеодекодер 30 (например, с модулем 166 обработки интра-предсказания) может быть сконфигурирован, чтобы определять блок предсказания, который включает в себя множество выборок предсказания, для текущего блока на основе углового режима интра-предсказания, который не является DC, планарным, горизонтальным или вертикальным режимом интра-предсказания (212). Память 151 видеоданных или DPB 162 может сохранять блок предсказания.[0164] FIG. 9 is a flowchart illustrating an exemplary method for decoding video data. Video decoder 30 (eg, with intra prediction processing module 166) may be configured to determine a prediction block that includes a plurality of prediction samples for the current block based on an intra prediction angular mode that is not DC, planar, horizontal, or vertical intra-prediction mode (212). Video memory 151 or DPB 162 may store a prediction block.

[0165] Видеодекодер 30 (например, с модулем 166 обработки интра-предсказания) может быть сконфигурирован, чтобы модифицировать выборку предсказания блока предсказания, чтобы сгенерировать модифицированную выборку предсказания с использованием комбинации позиционно-зависимого интра-предсказания (PDPC) (214). Например, чтобы модифицировать выборку предсказания, видеодекодер 30 может быть сконфигурирован, чтобы определять одну или более опорных выборок, которые являются внешними для текущего блока, на основе углового режима интра-предсказания (216), и модифицировать выборку предсказания, чтобы сгенерировать модифицированную выборку предсказания на основе определенной одной или более опорных выборок (218). В одном примере, чтобы определить одну или более опорных выборок, которые являются внешними для текущего блока, видеодекодер 30 может быть сконфигурирован, чтобы определять одну или более опорных выборок, имеющих как x-, так и y-координату, отличную от x- и y-координаты выборки предсказания в блоке предсказания. [0165] Video decoder 30 (eg, with intra-prediction processing module 166) may be configured to modify the prediction block prediction sample to generate a modified prediction sample using a position-dependent intra-prediction combination (PDPC) (214). For example, to modify the prediction sample, video decoder 30 may be configured to determine one or more reference samples that are external to the current block based on the intra-prediction angle mode (216) and modify the prediction sample to generate a modified prediction sample on based on a defined one or more reference samples (218). In one example, to determine one or more reference samples that are external to the current block, video decoder 30 may be configured to determine one or more reference samples having both an x- and a y-coordinate other than x- and y -coordinates of the prediction sample in the prediction block.

[0166] В качестве одного примера, чтобы определить одну или более опорных выборок, которые являются внешними для текущего блока, видеодекодер 30 может быть сконфигурирован, чтобы определять строку, которая находится выше текущего блока, и определять x-координату в определенной строке. x-координата в определенной строке равна x-координата выборки предсказания плюс y-координата выборки предсказания плюс 1. Видеодекодер 30 может определять опорную выборку из одной или более опорных выборок на основе определенной строки и определенной x-координаты. В качестве другого примера, чтобы определить одну или более опорных выборок, которые являются внешними для текущего блока, видеодекодер 30 может быть сконфигурирован, чтобы определять столбец, который находится слева от текущего блока, и определять y-координату в определенном столбце. y-координата в определенном столбце равна x-координате выборки предсказания плюс y-координата выборки предсказания плюс 1. Видеодекодер 30 может быть сконфигурирован, чтобы определять опорную выборку из одной или более опорных выборок на основе определенного столбца и определенной y-координаты.[0166] As one example, to determine one or more reference samples that are external to the current block, video decoder 30 may be configured to determine the line that is above the current block and determine the x-coordinate in the determined line. The x-coordinate in a certain row is equal to the x-coordinate of the prediction sample plus the y-coordinate of the prediction sample plus 1. Video decoder 30 may determine a reference sample from one or more reference samples based on the determined row and the determined x-coordinate. As another example, to determine one or more reference samples that are external to the current block, video decoder 30 may be configured to determine the column that is to the left of the current block and determine the y-coordinate in the determined column. The y-coordinate in a specific column is equal to the x-coordinate of the prediction sample plus the y-coordinate of the prediction sample plus 1. Video decoder 30 may be configured to determine a reference sample from one or more reference samples based on the specific column and the specific y-coordinate.

[0167] В качестве одного примера, чтобы определить одну или более опорных выборок, которые являются внешними для текущего блока, видеодекодер 30 может быть сконфигурирован, чтобы определять строку, которая находится выше текущего блока, и определять x-координату в определенной строке. x-координата в определенной строке основана на угле углового режима интра-предсказания. Видеодекодер 30 может быть сконфигурирован, чтобы определять опорную выборку из одной или более опорных выборок на основе определенной строки и определенной x-координаты. Чтобы определить x-координату в определенной строке, видеодекодер 30 может быть сконфигурирован, чтобы определять одно из котангенса или тангенса угла углового режима интра-предсказания и определять x-координату в определенной строке на основе одного из котангенса или тангенса угла углового режима интра-предсказания, x-координаты выборки предсказания и y-координаты выборки предсказания.[0167] As one example, to determine one or more reference samples that are external to the current block, video decoder 30 may be configured to determine the line that is above the current block and determine the x-coordinate in the determined line. The x-coordinate in a certain row is based on the intra-prediction angular mode angle. Video decoder 30 may be configured to determine a reference sample from one or more reference samples based on a specific row and a specific x-coordinate. To determine the x-coordinate in a specific row, video decoder 30 may be configured to determine one of the cotangent or tangent of the intra-prediction angular mode angle, and determine the x-coordinate in the specific row based on one of the cotangent or tangent of the intra-prediction angular mode, x-coordinates of the prediction sample and y-coordinates of the prediction sample.

[0168] В качестве другого примера, чтобы определить одну или более опорных выборок, которые являются внешними для текущего блока, видеодекодер 30 может быть сконфигурирован, чтобы определять столбец, который находится слева от текущего блока, и определять y-координату в определенном столбце. y-координата в определенном столбце основана на угле углового режима интра-предсказания. Видеодекодер 30 может быть сконфигурирован, чтобы определять опорную выборку из одной или более опорных выборок на основе определенного столбца и определенной y-координаты. Чтобы определить y-координату в определенном столбце, видеодекодер 30 может быть сконфигурирован, чтобы определять одно из котангенса или тангенса угла углового режима интра-предсказания и определять y-координату в определенном столбце на основе одного из котангенса или тангенса угла углового режима интра-предсказания, x-координаты выборки предсказания и y-координаты выборки предсказания.[0168] As another example, to determine one or more reference samples that are external to the current block, video decoder 30 may be configured to determine the column that is to the left of the current block and determine the y-coordinate in the determined column. The y-coordinate in a particular column is based on the intra-prediction angular mode angle. Video decoder 30 may be configured to determine a reference sample from one or more reference samples based on a specific column and a specific y-coordinate. To determine the y-coordinate at a specific column, video decoder 30 may be configured to determine one of the cotangent or tangent of the intra-prediction angular mode angle, and determine the y-coordinate at the specific column based on one of the cotangent or tangent of the intra-prediction angular mode angle, x-coordinates of the prediction sample and y-coordinates of the prediction sample.

[0169] В качестве одного примера, чтобы определить одну или более опорных выборок, которые являются внешними для текущего блока, на основе углового режима интра-предсказания, видеодекодер 30 может быть сконфигурирован, чтобы определять набор из одной или более выборок на основе углового режима интра-предсказания и интерполировать набор из одной или более выборок, чтобы сгенерировать одну или более опорных выборок. В некоторых примерах, видеодекодер 30 может быть сконфигурирован, чтобы выполнять по меньшей мере одно из интерполяции, округления со сдвигом или округления без сдвига на наборе из одной или более выборок, чтобы сгенерировать одну или более опорных выборок.[0169] As one example, to determine one or more reference samples that are external to the current block based on the intra angle mode, video decoder 30 may be configured to determine a set of one or more samples based on the intra angle mode. -predict and interpolate a set of one or more samples to generate one or more reference samples. In some examples, video decoder 30 may be configured to perform at least one of interpolation, round with a shift, or round without a shift on a set of one or more samples to generate one or more reference samples.

[0170] В качестве одного примера, чтобы определить одну или более опорных выборок, которые являются внешними для текущего блока, на основе углового режима интра-предсказания, видеодекодер 30 может быть сконфигурирован, чтобы определять, что одна или более выборок, внешних для текущего блока, идентифицированных на основе углового режима интра-предсказания, не хранятся в буфере опорных линий, и определять одну или более опорных выборок на основе последней опорной выборки, сохраненной в буфере опорных линий. В некоторых примерах, модифицирование выборки предсказания блока предсказания может включать в себя модифицирование первой выборки предсказания блока предсказания, и одна или более опорных выборок могут представлять собой первый набор из одной или более опорных выборок. Видеодекодер 30 может быть сконфигурирован, чтобы определять, для второй выборки предсказания того же самого блока предсказания, что по меньшей мере одна опорная выборка из второго набора из одной или более опорных выборок для второй выборки предсказания не хранится в буфере опорных линий, и выполнять один из следующих этапов: (a) не применять PDPC ко второй выборке предсказания или (b) применять PDPC с использованием только опорных выборок, доступных в буфере опорных линий (например, путем применения нулевого веса к опорной выборке, которая не является доступной).[0170] As one example, to determine one or more reference samples that are external to the current block, based on the intra-prediction angular mode, video decoder 30 may be configured to determine that one or more samples external to the current block , identified based on the intra-prediction angle mode, are not stored in the reference line buffer, and determine one or more reference samples based on the last reference sample stored in the reference line buffer. In some examples, modifying a prediction block prediction sample may include modifying a first prediction block prediction sample, and the one or more reference samples may be the first set of the one or more reference samples. Video decoder 30 may be configured to determine, for a second prediction sample of the same prediction block, that at least one reference sample from a second set of one or more reference samples for the second prediction sample is not stored in a reference line buffer, and perform one of the following steps: (a) not apply PDPC to the second prediction sample, or (b) apply PDPC using only the reference samples available in the reference line buffer (eg, by applying zero weight to a reference sample that is not available).

[0171] В соответствии с одним или более примерами, видеодекодер 30 может быть сконфигурирован, чтобы определять множество весов на основе x- и y-координат выборки предсказания. Чтобы модифицировать выборку предсказания, видеодекодер 30 может быть сконфигурирован, чтобы модифицировать выборку предсказания, чтобы сгенерировать модифицированную выборку предсказания на основе определенной одной или более опорных выборок, определенных весов и выборки предсказания.[0171] According to one or more examples, video decoder 30 may be configured to determine a plurality of weights based on the x- and y-coordinates of the prediction sample. To modify the prediction sample, video decoder 30 may be configured to modify the prediction sample to generate a modified prediction sample based on the determined one or more reference samples, the determined weights, and the prediction sample.

[0172] Видеодекодер 30 может быть сконфигурирован, чтобы восстанавливать выборку текущего блока на основе модифицированной выборки предсказания и остаточного значения (220). Например, видеодекодер 30 может принимать информацию для остаточного значения. Видеодекодер 30 может суммировать остаточное значение с модифицированной выборкой предсказания, чтобы восстановить выборку в текущем блоке.[0172] Video decoder 30 may be configured to resample the current block based on the modified prediction sample and the residual (220). For example, video decoder 30 may receive information for the residual value. Video decoder 30 may add the residual value to the modified prediction sample to reconstruct the sample in the current block.

[0173] Некоторые аспекты настоящего раскрытия были описаны относительно расширений стандарта HEVC с целью иллюстрации. Однако, методы, описанные в настоящем раскрытии, могут использоваться для других процессов кодирования видео, включая другие стандартные или проприетарные процессы кодирования видео, еще не разработанные.[0173] Some aspects of the present disclosure have been described with respect to extensions to the HEVC standard for purposes of illustration. However, the techniques described in this disclosure may be used for other video encoding processes, including other standard or proprietary video encoding processes not yet developed.

[0174] Устройство кодирования видео, как описано в настоящем раскрытии, может относиться к видеокодеру или видеодекодеру. Аналогично, модуль кодирования видео может относиться к видеокодеру или видеодекодеру. Подобным образом, кодирование видео может относиться к кодированию видео или декодированию видео, как это применимо. В настоящем раскрытии, фраза “на основе” может указывать на основе только, на основе по меньшей мере частично или на основе некоторым образом. Настоящее раскрытие может использовать термин “единица видео”, или “блок видео”, или “блок”, чтобы ссылаться на один или более блоков выборок и синтаксических структур, используемых, чтобы кодировать выборки одного или более блоков выборок. Примерные типы единиц видео могут включать в себя CTU, CU, PU, единицы преобразования (TU), макроблоки, разбиения макроблоков и так далее. В некоторых контекстах, обсуждение PU может быть взаимозаменяемым с обсуждением макроблоков или разбиений макроблоков. Примерные типы блоков видео могут включать в себя блоки дерева кодирования, блоки кодирования и другие типы блоков видеоданных.[0174] A video encoding device as described in this disclosure may refer to a video encoder or video decoder. Likewise, a video coding module may refer to a video encoder or a video decoder. Similarly, video encoding may refer to video encoding or video decoding, as applicable. In the present disclosure, the phrase “based on” may indicate based only, based at least in part, or based in some way. The present disclosure may use the term "video unit" or "video block" or "block" to refer to one or more sample blocks and syntax structures used to encode samples of one or more sample blocks. Exemplary types of video units may include CTUs, CUs, PUs, transform units (TUs), macroblocks, macroblock splits, and so on. In some contexts, the discussion of PUs may be interchangeable with the discussion of macroblocks or macroblock partitions. Exemplary video block types may include coding tree blocks, coding blocks, and other types of video data blocks.

[0175] Следует иметь в виду, что в зависимости от примера, определенные действия или события любых из методов, описанных здесь, могут выполняться в другой последовательности, могут суммироваться, объединяться или опускаться совсем (например, не все описанные действия или события необходимы для практической реализации методов). Более того, в некоторых примерах, действия или события могут выполняться одновременно, например, через многопотоковую обработку, обработку прерываний или множество процессоров, а не последовательно.[0175] It should be borne in mind that, depending on the example, certain actions or events of any of the methods described here may be performed in a different sequence, may be summarized, combined, or omitted altogether (for example, not all of the described actions or events are necessary for practical method implementations). Moreover, in some examples, actions or events may be executed simultaneously, such as through multi-threading, interrupt handling, or multiple processors, rather than sequentially.

[0176] В одном или более примерах, описанные функции могут быть реализованы в аппаратных средствах, программном обеспечении, прошивке или любой их комбинации. При реализации в программном обеспечении, функции могут сохраняться или передаваться как одна или более инструкций или код на считываемом компьютером носителе и исполняться аппаратным процессором. Считываемые компьютером носители могут включать в себя считываемые компьютером носители хранения, которые соответствует материальному носителю, такому как носители данных, или коммуникационным средам, включая любой носитель, который обеспечивает перенос компьютерной программы из одного места в другое, например, в соответствии с протоколом связи. Таким образом, считываемые компьютером носители в общем могут соответствовать (1) материальным считываемым компьютером запоминающим носителям, которые являются непереходными (не-временными), или (2) коммуникационной среде, такой как сигнал или несущая волна. Носители данных могут представлять собой любые доступные носители, доступ к которым может осуществляться одним или более компьютерами или одним или более процессорами для извлечения инструкций, кода и/или структур данных для реализации методов, описанных в настоящем раскрытии. Компьютерный программный продукт может включать в себя считываемый компьютером носитель.[0176] In one or more examples, the functions described may be implemented in hardware, software, firmware, or any combination thereof. When implemented in software, the functions may be stored or transmitted as one or more instructions or code on a computer-readable medium and executed by a hardware processor. Computer-readable media may include computer-readable storage media that corresponds to a tangible medium, such as storage media, or communication media, including any medium that allows a computer program to be transferred from one place to another, such as in accordance with a communication protocol. Thus, computer-readable media can generally correspond to (1) tangible computer-readable storage media that is non-transient (non-temporal), 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 methods described in this disclosure. The computer program product may include a computer-readable medium.

[0177] В качестве примера, и не для ограничения, такие считываемые компьютером запоминающие носители могут содержать RAM, ROM, EEPROM, CD-ROM или другое хранилище на оптическом диске, хранилище на магнитном диске или другие магнитные устройства хранения, флэш-память или любой другой носитель, который может использоваться, чтобы хранить желательный программный код в форме инструкций или структур данных, и доступ к которому может осуществляться компьютером. Также, любое соединение может быть надлежащим образом определено как считываемый компьютером носитель. Например, если инструкции передаются с веб-сайта, сервера или другого удаленного источника с использованием коаксиального кабеля, оптоволоконного кабеля, скрученной пары, цифровой абонентской линии (DSL) или беспроводных технологий, таких как инфракрасная, радио и микроволновая, то коаксиальный кабель, оптоволоконный кабель, скрученная пара, DSL или беспроводные технологии, такие как инфракрасная, радио и микроволновая, включаются в определение носителя. Следует понимать, однако, что считываемые компьютером запоминающие носители и носители данных не включают в себя соединения, несущие волны, сигналы или другие переходные (временные) носители, а вместо этого относятся к непереходным (не-временным) материальным запоминающим носителям. Магнитный диск (disk) и оптический диск (disc), как использовано здесь, включают в себя компакт-диск (CD), лазерный диск, оптический диск, цифровой универсальный диск (DVD), флоппи-диск и Blu-ray диск, где магнитные диски (disks) обычно воспроизводят данные магнитным способом, в то время как оптические диски (discs) воспроизводят данные оптическим способом при помощи лазеров. Комбинации изложенного выше также должны быть включены в объем считываемых компьютером носителей.[0177] By way of example, and not limitation, such computer-readable storage 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 another medium that can be used to store the desired program code in the form of instructions or data structures and that can be accessed by a computer. Also, any connection can be properly defined 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, then coaxial cable, fiber optic cable , twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the media definition. It should be understood, however, that computer-readable storage media and storage media do not include connections, carrier waves, signals, or other transient (temporary) media, but instead refer to non-transitory (non-temporal) tangible storage media. The magnetic disc (disk) and the optical disc (disc) as used herein include a compact disc (CD), a laser disc, an optical disc, a digital versatile disc (DVD), a floppy disc, and a Blu-ray disc, where the magnetic discs usually reproduce data magnetically, while optical discs (discs) reproduce data optically using lasers. Combinations of the above should also be included within the scope of computer-readable media.

[0178] Инструкции могут исполняться одним или более процессорами, такими как один или более DSP, универсальные цифровые микропроцессоры, ASIC, FPGA или другие эквивалентные интегральные или дискретные логические схемы. Соответственно, термин “процессор”, как использовано здесь, может относиться к любой из вышеописанных структур или любой другой структуре, подходящей для реализации методов, описанных здесь. К тому же, в некоторых аспектах, функциональность, описанная здесь, может обеспечиваться в выделенных аппаратных средствах и/или модулях программного обеспечения, сконфигурированных для кодирования и декодирования или встроенных в комбинированный кодек. Также, методы могут быть полностью реализованы в одной или более схемах или логических элементах. [0178] The instructions may be executed by one or more processors, such as one or more DSPs, general purpose digital microprocessors, ASICs, FPGAs, or other equivalent integrated or discrete logic circuits. Accordingly, the term "processor", as used here, may refer to any of the structures described above, or any other structure suitable for implementing the methods described here. Also, in some aspects, the functionality described herein may be provided in dedicated hardware and/or software modules configured for encoding and decoding or embedded in a combined codec. Also, the methods may be fully implemented in one or more circuits or logic elements.

[0179] Методы настоящего раскрытия могут быть реализованы в широком разнообразии устройств или приборов, включая беспроводной телефон, интегральную схему (IC) или набор IC (например, чипсет). Различные компоненты, модули или блоки описаны в настоящем раскрытии, чтобы выделить функциональные аспекты устройств, сконфигурированных, чтобы выполнять раскрытые методы, но не обязательно требуют реализации разными модулями аппаратных средств. Напротив, как описано выше, различные модули могут комбинироваться в модуле аппаратных средств кодека или обеспечиваться совокупностью взаимодействующих аппаратных модулей, включая один или более процессоров, как описано выше, во взаимосвязи с подходящим программным обеспечением и/или прошивкой.[0179] The techniques of the present disclosure may be implemented in a wide variety of devices or devices, including a wireless telephone, an integrated circuit (IC), or a set of ICs (eg, a chipset). Various components, modules, or blocks are described in this disclosure to highlight the functional aspects of devices configured to perform the disclosed methods, but do not necessarily require implementation by different hardware modules. Rather, as described above, various modules may be combined in a codec hardware module, or provided by a combination of cooperating hardware modules, including one or more processors, as described above, in conjunction with suitable software and/or firmware.

[0180] Были описаны различные примеры. Эти и другие примеры находятся в пределах объема следующей формулы изобретения.[0180] Various examples have been described. These and other examples are within the scope of the following claims.

Claims (199)

1. Способ декодирования видеоданных, причем способ содержит:1. A method for decoding video data, the method comprising: определение блока предсказания, который включает в себя множество выборок предсказания, для текущего блока на основе углового режима интра-предсказания, который не является DC, планарным, горизонтальным или вертикальным режимом интра-предсказания;determining a prediction block that includes a plurality of prediction samples for the current block based on an angular intra-prediction mode that is not a DC, planar, horizontal, or vertical intra-prediction mode; модифицирование выборки предсказания из множества выборок предсказания блока предсказания, чтобы сгенерировать модифицированную выборку предсказания с использованием комбинации позиционно-зависимого интра-предсказания (PDPC), причем модифицирование выборки предсказания содержит:modifying the prediction sample from the plurality of prediction samples of the prediction block to generate a modified prediction sample using a position-dependent intra-prediction (PDPC) combination, the modification of the prediction sample comprising: определение одной или более опорных выборок, которые являются внешними для текущего блока, на основе углового режима интра-предсказания; и determining one or more reference samples that are external to the current block based on the intra-prediction angular mode; and модифицирование выборки предсказания, чтобы сгенерировать модифицированную выборку предсказания на основе определенной одной или более опорных выборок; иmodifying the prediction sample to generate a modified prediction sample based on the determined one or more reference samples; and восстановление выборки текущего блока на основе модифицированной выборки предсказания и остаточного значения.restoring a sample of the current block based on the modified prediction sample and the residual. 2. Способ по п. 1, причем определение одной или более опорных выборок, которые являются внешними для текущего блока, содержит определение одной или более опорных выборок, имеющих как x-координату, так и y-координату, которые отличаются от соответственных x-координаты и y-координаты выборки предсказания в блоке предсказания.2. The method of claim 1, wherein determining one or more reference samples that are external to the current block comprises defining one or more reference samples having both an x-coordinate and a y-coordinate that differ from the respective x-coordinates. and y-coordinates of the prediction sample in the prediction block. 3. Способ по п. 1, причем определение одной или более опорных выборок, которые являются внешними для текущего блока, содержит: 3. The method of claim 1, wherein determining one or more reference samples that are external to the current block comprises: определение строки, которая находится выше текущего блока; determining the line that is above the current block; определение x-координаты в определенной строке, причем x-координата в определенной строке равна x-координате выборки предсказания плюс y-координата выборки предсказания плюс 1; иdetermining an x-coordinate in the determined row, wherein the x-coordinate in the determined row is equal to the x-coordinate of the prediction sample plus the y-coordinate of the prediction sample plus 1; and определение опорной выборки из одной или более опорных выборок на основе определенной строки и определенной x-координаты.determining a reference sample from one or more reference samples based on the determined row and the determined x-coordinate. 4. Способ по п. 1, причем определение одной или более опорных выборок, которые являются внешними для текущего блока, содержит: 4. The method of claim 1, wherein determining one or more reference samples that are external to the current block comprises: определение столбца, который находится слева от текущего блока; defining the column to the left of the current block; определение y-координаты в определенном столбце, причем y-координата в определенном столбце равна х-координате выборки предсказания плюс y-координата выборки предсказания плюс 1; иdetermining a y-coordinate in the determined column, wherein the y-coordinate in the determined column is equal to the x-coordinate of the prediction sample plus the y-coordinate of the prediction sample plus 1; and определение опорной выборки из одной или более опорных выборок на основе определенного столбца и определенной y-координаты.determining a reference sample from one or more reference samples based on the specified column and the specified y-coordinate. 5. Способ по п. 1, причем определение одной или более опорных выборок, которые являются внешними для текущего блока, содержит: 5. The method of claim 1, wherein determining one or more reference samples that are external to the current block comprises: определение строки, которая находится выше текущего блока; determining the line that is above the current block; определение x-координаты в определенной строке, причем x-координата в определенной строке основана на угле углового режима интра-предсказания; иdetermining an x-coordinate in the determined row, wherein the x-coordinate in the determined row is based on an angle of the intra-prediction angular mode; and определение опорной выборки из одной или более опорных выборок на основе определенной строки и определенной x-координаты.determining a reference sample from one or more reference samples based on the determined row and the determined x-coordinate. 6. Способ по п. 5, причем определение x-координаты в определенной строке содержит:6. The method according to claim 5, wherein the definition of the x-coordinate in a certain line contains: определение одного из котангенса или тангенса угла углового режима интра-предсказания; иdetermining one of the cotangent or tangent of the intra-prediction angular mode angle; and определение x-координаты в определенной строке на основе одного из котангенса или тангенса угла углового режима интра-предсказания, x-координаты выборки предсказания и y-координаты выборки предсказания.determining an x-coordinate in a certain row based on one of the intra-prediction angular mode cotangent or tangent, the prediction sample x-coordinate, and the prediction sample y-coordinate. 7. Способ по п. 1, причем определение одной или более опорных выборок, которые являются внешними для текущего блока, содержит: 7. The method of claim 1, wherein determining one or more reference samples that are external to the current block comprises: определение столбца, который находится слева от текущего блока; defining the column to the left of the current block; определение y-координаты в определенном столбце, причем y-координата в определенном столбце основана на угле углового режима интра-предсказания; иdetermining a y-coordinate in the determined column, wherein the y-coordinate in the determined column is based on an intra-prediction angular mode angle; and определение опорной выборки из одной или более опорных выборок на основе определенного столбца и определенной y-координаты.determining a reference sample from one or more reference samples based on the specified column and the specified y-coordinate. 8. Способ по п. 7, причем определение y-координаты в определенном столбце содержит:8. The method according to claim 7, wherein the determination of the y-coordinate in a certain column contains: определение одного из котангенса или тангенса угла углового режима интра-предсказания; иdetermining one of the cotangent or tangent of the intra-prediction angular mode angle; and определение y-координаты в определенном столбце на основе одного из котангенса или тангенса угла углового режима интра-предсказания, x-координаты выборки предсказания и y-координаты выборки предсказания.determining a y-coordinate in a certain column based on one of the intra-prediction angular mode cotangent or tangent, the prediction sample x-coordinate, and the prediction sample y-coordinate. 9. Способ по п. 1, причем определение одной или более опорных выборок, которые являются внешними для текущего блока, на основе углового режима интра-предсказания содержит:9. The method of claim 1, wherein determining one or more reference samples that are external to the current block based on the intra-prediction angular mode comprises: определение набора из одной или более выборок на основе углового режима интра-предсказания; иdetermining a set of one or more samples based on the intra-prediction angular mode; and по меньшей мере одно из интерполяции, округления со смещением или округления без смещения набора из одной или более выборок, чтобы сгенерировать одну или несколько опорных выборок.at least one of interpolating, rounding with a bias, or rounding without a bias of a set of one or more samples to generate one or more reference samples. 10. Способ по п. 1, причем определение одной или более опорных выборок, которые являются внешними для текущего блока, на основе углового режима интра-предсказания содержит:10. The method of claim 1, wherein determining one or more reference samples that are external to the current block based on the intra-prediction angular mode comprises: определение, что одна или несколько выборок, внешних для текущего блока, идентифицированных на основе углового режима интра-предсказания, не хранятся в буфере опорных линий; иdetermining that one or more samples external to the current block, identified based on the intra-prediction angular mode, are not stored in the reference line buffer; and определение одной или более опорных выборок на основе последней опорной выборки, сохраненной в буфере опорных линий.determining one or more reference samples based on the last reference sample stored in the reference line buffer. 11. Способ по п. 1, причем модифицирование выборки предсказания блока предсказания содержит модифицирование первой выборки предсказания блока предсказания, и причем одна или несколько опорных выборок содержат первый набор из одной или более опорных выборок, причем способ дополнительно содержит:11. The method of claim 1, wherein modifying a prediction block prediction sample comprises modifying a first prediction block prediction sample, and wherein the one or more reference samples comprise a first set of one or more reference samples, the method further comprising: определение, для второй выборки предсказания того же самого блока предсказания, что по меньшей мере одна опорная выборка из второго набора из одной или более опорных выборок для второй выборки предсказания не хранится в буфере опорных линий; иdetermining, for a second prediction sample of the same prediction block, that at least one reference sample from a second set of one or more reference samples for the second prediction sample is not stored in the reference line buffer; and либо неприменение PDPC ко второй выборке предсказания, либо применение PDPC с использованием только опорных выборок, доступных в буфере опорных линий.either not applying PDPC to the second prediction sample, or applying PDPC using only the reference samples available in the reference line buffer. 12. Способ по п. 1, дополнительно содержащий12. The method according to p. 1, further comprising определение множества весов на основе x- и y-координат выборки предсказания,determining a set of weights based on the x- and y-coordinates of the prediction sample, причем модифицирование выборки предсказания содержит модифицирование выборки предсказания, чтобы сгенерировать модифицированную выборку предсказания на основе определенной одной или более опорных выборок, определенных весов и выборки предсказания.wherein modifying the prediction sample comprises modifying the prediction sample to generate a modified prediction sample based on the determined one or more reference samples, the determined weights, and the prediction sample. 13. Способ кодирования видеоданных, причем способ содержит:13. A method for encoding video data, the method comprising: определение блока предсказания, который включает в себя множество выборок предсказания, для текущего блока на основе углового режима интра-предсказания, который не является DC, планарным, горизонтальным или вертикальным режимом интра-предсказания;determining a prediction block that includes a plurality of prediction samples for the current block based on an angular intra-prediction mode that is not a DC, planar, horizontal, or vertical intra-prediction mode; модифицирование выборки предсказания из множества выборок предсказания блока предсказания, чтобы сгенерировать модифицированную выборку предсказания, с использованием комбинации позиционно-зависимого интра-предсказания (PDPC), причем модифицирование выборки предсказания содержит:modifying a prediction sample from the plurality of prediction samples of the prediction block to generate a modified prediction sample using a position-dependent intra-prediction (PDPC) combination, the modification of the prediction sample comprising: определение одной или более опорных выборок, которые являются внешними для текущего блока, на основе углового режима интра-предсказания; и determining one or more reference samples that are external to the current block based on the intra-prediction angular mode; and модифицирование выборки предсказания, чтобы сгенерировать модифицированную выборку предсказания, на основе определенной одной или более опорных выборок;modifying the prediction sample to generate a modified prediction sample based on the determined one or more reference samples; определение остаточного значения для остаточного блока на основе модифицированной выборки предсказания и значения выборки в текущем блоке; иdetermining a residual value for the residual block based on the modified prediction sample and the sample value in the current block; and сигнализацию информации, указывающей остаточное значение.signaling information indicating the residual value. 14. Способ по п. 13, причем определение одной или более опорных выборок, которые являются внешними для текущего блока, содержит определение одной или более опорных выборок, имеющих как x-координату, так и y-координату, которые отличаются от соответственных x-координаты и y-координаты выборки предсказания в блоке предсказания.14. The method of claim 13, wherein determining one or more reference samples that are external to the current block comprises defining one or more reference samples having both an x-coordinate and a y-coordinate that differ from the respective x-coordinates. and y-coordinates of the prediction sample in the prediction block. 15. Способ по п. 13, причем определение одной или более опорных выборок, которые являются внешними для текущего блока, содержит: 15. The method of claim 13, wherein determining one or more reference samples that are external to the current block comprises: определение строки, которая находится выше текущего блока; determining the line that is above the current block; определение x-координаты в определенной строке, причем x-координата в определенной строке равна x-координате выборки предсказания плюс y-координата выборки предсказания плюс 1; иdetermining an x-coordinate in the determined row, wherein the x-coordinate in the determined row is equal to the x-coordinate of the prediction sample plus the y-coordinate of the prediction sample plus 1; and определение опорной выборки из одной или более опорных выборок на основе определенной строки и определенной x-координаты.determining a reference sample from one or more reference samples based on the determined row and the determined x-coordinate. 16. Способ по п. 13, причем определение одной или более опорных выборок, которые являются внешними для текущего блока, содержит: 16. The method of claim 13, wherein determining one or more reference samples that are external to the current block comprises: определение столбца, который находится слева от текущего блока; defining the column to the left of the current block; определение y-координаты в определенном столбце, причем y-координата в определенном столбце равна x-координате выборки предсказания плюс y-координата выборки предсказания плюс 1; иdetermining a y-coordinate in the determined column, wherein the y-coordinate in the determined column is equal to the x-coordinate of the prediction sample plus the y-coordinate of the prediction sample plus 1; and определение опорной выборки из одной или более опорных выборок на основе определенного столбца и определенной y-координаты.determining a reference sample from one or more reference samples based on the specified column and the specified y-coordinate. 17. Способ по п. 13, причем определение одной или более опорных выборок, которые являются внешними для текущего блока, содержит: 17. The method of claim 13, wherein determining one or more reference samples that are external to the current block comprises: определение строки, которая находится выше текущего блока; determining the line that is above the current block; определение x-координаты в определенной строке, причем x-координата в определенной строке основана на угле углового режима интра-предсказания; иdetermining an x-coordinate in the determined row, wherein the x-coordinate in the determined row is based on an intra-prediction angular mode angle; and определение опорной выборки из одной или более опорных выборок на основе определенной строки и определенной x-координаты.determining a reference sample from one or more reference samples based on the determined row and the determined x-coordinate. 18. Способ по п. 17, причем определение x-координаты в определенной строке содержит:18. The method according to claim 17, wherein the definition of the x-coordinate in a certain line contains: определение одного из котангенса или тангенса угла углового режима интра-предсказания; иdetermining one of the cotangent or tangent of the intra-prediction angular mode angle; and определение x-координаты в определенной строке на основе одного из котангенса или тангенса угла углового режима интра-предсказания, x-координаты выборки предсказания и y-координаты выборки предсказания.determining an x-coordinate in a certain row based on one of the intra-prediction angular mode cotangent or tangent, the prediction sample x-coordinate, and the prediction sample y-coordinate. 19. Способ по п. 13, причем определение одной или более опорных выборок, которые являются внешними для текущего блока, содержит: 19. The method of claim 13, wherein determining one or more reference samples that are external to the current block comprises: определение столбца, который находится слева от текущего блока; defining the column to the left of the current block; определение y-координаты в определенном столбце, причем y-координата в определенном столбце основана на угле углового режима интра-предсказания; иdetermining a y-coordinate in the determined column, wherein the y-coordinate in the determined column is based on an intra-prediction angular mode angle; and определение опорной выборки из одной или более опорных выборок на основе определенного столбца и определенной y-координаты.determining a reference sample from one or more reference samples based on the specified column and the specified y-coordinate. 20. Способ по п. 19, причем определение y-координаты в определенном столбце содержит:20. The method according to claim 19, wherein the determination of the y-coordinate in a certain column contains: определение одного из котангенса или тангенса угла углового режима интра-предсказания; иdetermining one of the cotangent or tangent of the intra-prediction angular mode angle; and определение y-координаты в определенном столбце на основе одного из котангенса или тангенса угла углового режима интра-предсказания, x-координаты выборки предсказания и y-координаты выборки предсказания.determining a y-coordinate in a certain column based on one of the intra-prediction angular mode cotangent or tangent, the prediction sample x-coordinate, and the prediction sample y-coordinate. 21. Способ по п. 13, причем определение одной или более опорных выборок, которые являются внешними для текущего блока, на основе углового режима интра-предсказания содержит:21. The method of claim 13, wherein determining one or more reference samples that are external to the current block based on the intra-prediction angular mode comprises: определение набора из одной или более выборок на основе углового режима интра-предсказания; иdetermining a set of one or more samples based on the intra-prediction angular mode; and по меньшей мере одно из интерполяции, округления со смещением или округления без смещения набора из одной или более выборок, чтобы сгенерировать одну или несколько опорных выборок.at least one of interpolating, rounding with a bias, or rounding without a bias of a set of one or more samples to generate one or more reference samples. 22. Способ по п. 13, причем определение одной или более опорных выборок, которые являются внешними для текущего блока, на основе углового режима интра-предсказания содержит:22. The method of claim 13, wherein determining one or more reference samples that are external to the current block based on the intra-prediction angular mode comprises: определение, что одна или несколько выборок, внешних для текущего блока, идентифицированных на основе углового режима интра-предсказания, не хранятся в буфере опорных линий; иdetermining that one or more samples external to the current block, identified based on the intra-prediction angular mode, are not stored in the reference line buffer; and определение одной или более опорных выборок на основе последней опорной выборки, сохраненной в буфере опорных линий.determining one or more reference samples based on the last reference sample stored in the reference line buffer. 23. Способ по п. 13, причем модифицирование выборки предсказания блока предсказания содержит модифицирование первой выборки предсказания блока предсказания, и причем одна или несколько опорных выборок содержат первый набор из одной или более опорных выборок, при этом способ дополнительно содержит:23. The method of claim 13, wherein modifying the prediction block prediction sample comprises modifying the first prediction block prediction sample, and wherein the one or more reference samples comprise a first set of one or more reference samples, the method further comprising: определение, для второй выборки предсказания того же самого блока предсказания, что по меньшей мере одна опорная выборка из второго набора из одной или более опорных выборок для второй выборки предсказания не хранится в буфере опорных линий; иdetermining, for a second prediction sample of the same prediction block, that at least one reference sample from a second set of one or more reference samples for the second prediction sample is not stored in the reference line buffer; and либо неприменение PDPC ко второй выборке предсказания, либо применение PDPC с использованием только опорных выборок, доступных в буфере опорных линий.either not applying PDPC to the second prediction sample, or applying PDPC using only the reference samples available in the reference line buffer. 24. Способ по п. 13, дополнительно содержащий24. The method of claim 13, further comprising определение множества весов на основе x- и y-координат выборки предсказания,determining a set of weights based on the x- and y-coordinates of the prediction sample, причем модифицирование выборки предсказания содержит модифицирование выборки предсказания, чтобы сгенерировать модифицированную выборку предсказания на основе определенной одной или более опорных выборок, определенных весов и выборки предсказания.wherein modifying the prediction sample comprises modifying the prediction sample to generate a modified prediction sample based on the determined one or more reference samples, the determined weights, and the prediction sample. 25. Устройство для декодирования видеоданных, причем устройство содержит:25. A device for decoding video data, the device comprising: память, сконфигурированную, чтобы хранить блок предсказания; иa memory configured to store the prediction block; and видеодекодер, содержащий по меньшей мере одну из схемы с фиксированной функцией или программируемой схемы, причем видеодекодер сконфигурирован, чтобы:a video decoder comprising at least one of a fixed function circuit or a programmable circuit, the video decoder being configured to: определять блок предсказания, который включает в себя множество выборок предсказания, для текущего блока, для хранения в памяти, на основе углового режима интра-предсказания, который не является DC, планарным, горизонтальным или вертикальным режимом интра-предсказания;determine a prediction block that includes a plurality of prediction samples for the current block to be stored in memory based on an intra-prediction angle mode that is not a DC, planar, horizontal, or vertical intra-prediction mode; модифицировать выборку предсказания из множества выборок предсказания блока предсказания, чтобы сгенерировать модифицированную выборку предсказания с использованием комбинации позиционно-зависимого интра-предсказания (PDPC), причем, чтобы модифицировать выборку предсказания, видеодекодер сконфигурирован, чтобы:modify the prediction sample from the plurality of prediction samples of the prediction block to generate a modified prediction sample using a position-dependent intra-prediction combination (PDPC), wherein, to modify the prediction sample, the video decoder is configured to: определять одну или несколько опорных выборок, которые являются внешними для текущего блока, на основе углового режима интра-предсказания; и determine one or more reference samples that are external to the current block based on the intra-prediction angular mode; and модифицировать выборку предсказания, чтобы сгенерировать модифицированную выборку предсказания на основе определенной одной или более опорных выборок; иmodify the prediction sample to generate a modified prediction sample based on the determined one or more reference samples; and восстанавливать выборку текущего блока на основе модифицированной выборки предсказания и остаточного значения.resample the current block based on the modified prediction sample and the residual. 26. Устройство по п. 25, причем, чтобы определять одну или несколько опорных выборок, которые являются внешними для текущего блока, видеодекодер сконфигурирован, чтобы определять одну или несколько опорных выборок, имеющих как x-координату, так и y-координату, отличающиеся от соответственных x-координаты и y-координаты выборки предсказания в блоке предсказания.26. The apparatus of claim 25, wherein in order to determine one or more reference samples that are external to the current block, the video decoder is configured to determine one or more reference samples having both an x-coordinate and a y-coordinate different from the respective x-coordinates and y-coordinates of the prediction sample in the prediction block. 27. Устройство по п. 25, причем, чтобы определять одну или несколько опорных выборок, которые являются внешними для текущего блока, видеодекодер сконфигурирован, чтобы: 27. The apparatus of claim 25, wherein in order to determine one or more reference samples that are external to the current block, the video decoder is configured to: определять строку, которая находится выше текущего блока; determine the line that is above the current block; определять x-координату в определенной строке, причем x-координата в определенной строке равна x-координате выборки предсказания плюс y-координата выборки предсказания плюс 1; иdetermine an x-coordinate in the determined row, wherein the x-coordinate in the determined row is equal to the x-coordinate of the prediction sample plus the y-coordinate of the prediction sample plus 1; and определять опорную выборку из одной или более опорных выборок на основе определенной строки и определенной x-координаты.determine a reference sample from one or more reference samples based on the specific row and the specific x-coordinate. 28. Устройство по п. 25, причем, чтобы определять одну или несколько опорных выборок, которые являются внешними для текущего блока, видеодекодер сконфигурирован, чтобы: 28. The apparatus of claim 25, wherein in order to determine one or more reference samples that are external to the current block, the video decoder is configured to: определять столбец, который находится слева от текущего блока; determine the column that is located to the left of the current block; определять y-координату в определенном столбце, причем y-координата в определенном столбце равна x-координате выборки предсказания плюс y-координата выборки предсказания плюс 1; иdetermine a y-coordinate in the determined column, wherein the y-coordinate in the determined column is equal to the x-coordinate of the prediction sample plus the y-coordinate of the prediction sample plus 1; and определять опорную выборку из одной или более опорных выборок на основе определенного столбца и определенной y-координаты.determine a reference sample from one or more reference samples based on the specified column and the specified y-coordinate. 29. Устройство по п. 25, причем, чтобы определять одну или несколько опорных выборок, которые являются внешними для текущего блока, видеодекодер сконфигурирован, чтобы: 29. The apparatus of claim 25, wherein in order to determine one or more reference samples that are external to the current block, the video decoder is configured to: определять строку, которая находится выше текущего блока; determine the line that is above the current block; определять x-координату в определенной строке, причем x-координата в определенной строке основана на угле углового режима интра-предсказания; иdetermining an x-coordinate in the determined row, wherein the x-coordinate in the determined row is based on an intra-prediction angular mode angle; and определять опорную выборку из одной или более опорных выборок на основе определенной строки и определенной x-координаты.determine a reference sample from one or more reference samples based on the specific row and the specific x-coordinate. 30. Устройство по п. 29, причем, чтобы определять x-координату в определенной строке, видеодекодер сконфигурирован, чтобы:30. The apparatus of claim 29, wherein, in order to determine the x-coordinate in a particular line, the video decoder is configured to: определять одно из котангенса или тангенса угла углового режима интра-предсказания; иdetermine one of the cotangent or tangent of the intra-prediction angular mode angle; and определять x-координату в определенной строке на основе одного из котангенса или тангенса угла углового режима интра-предсказания, x-координаты выборки предсказания и y-координаты выборки предсказания.determine an x-coordinate in a certain row based on one of the intra-prediction angular mode cotangent or tangent, the prediction sample x-coordinate, and the prediction sample y-coordinate. 31. Устройство по п. 25, причем, чтобы определять одну или несколько опорных выборок, которые являются внешними для текущего блока, видеодекодер сконфигурирован, чтобы: 31. The apparatus of claim 25, wherein in order to determine one or more reference samples that are external to the current block, the video decoder is configured to: определять столбец, который находится слева от текущего блока; determine the column that is located to the left of the current block; определять y-координату в определенном столбце, причем y-координата в определенном столбце основана на угле углового режима интра-предсказания; иdetermine a y-coordinate in the determined column, wherein the y-coordinate in the determined column is based on the intra-prediction angular mode angle; and определять опорную выборку из одной или более опорных выборок на основе определенного столбца и определенной y-координаты.determine a reference sample from one or more reference samples based on the specified column and the specified y-coordinate. 32. Устройство по п. 31, причем, чтобы определять y-координату в определенном столбце, видеодекодер сконфигурирован, чтобы:32. The apparatus of claim 31, wherein in order to determine the y-coordinate in a particular column, the video decoder is configured to: определять одно из котангенса или тангенса угла углового режима интра-предсказания; иdetermine one of the cotangent or tangent of the intra-prediction angular mode angle; and определять y-координату в определенном столбце на основе одного из котангенса или тангенса угла углового режима интра-предсказания, x-координаты выборки предсказания и y-координаты выборки предсказания.determine a y-coordinate in a specific column based on one of the cotangent or tangent of the intra-prediction angular mode angle, the x-coordinate of the prediction sample, and the y-coordinate of the prediction sample. 33. Устройство по п. 25, причем, чтобы определять одну или несколько опорных выборок, которые являются внешними для текущего блока на основе углового режима интра-предсказания, видеодекодер сконфигурирован, чтобы:33. The apparatus of claim 25, wherein in order to determine one or more reference samples that are external to the current block based on the intra-prediction angle mode, the video decoder is configured to: определять набор из одной или более выборок на основе углового режима интра-предсказания; иdetermine a set of one or more samples based on the intra-prediction angular mode; and выполнять по меньшей мере одно из интерполяции, округления со сдвигом или округления без сдвига на наборе из одной или более выборок, чтобы сгенерировать одну или несколько опорных выборок.perform at least one of interpolation, round with a shift, or round without a shift on the set of one or more samples to generate one or more reference samples. 34. Устройство по п. 25, причем, чтобы определять одну или несколько опорных выборок, которые являются внешними для текущего блока на основе углового режима интра-предсказания, видеодекодер сконфигурирован, чтобы:34. The apparatus of claim 25, wherein in order to determine one or more reference samples that are external to the current block based on the intra-prediction angle mode, the video decoder is configured to: определять, что одна или несколько выборок, внешних для текущего блока, идентифицированных на основе углового режима интра-предсказания, не хранятся в буфере опорных линий; иdetermine that one or more samples external to the current block, identified based on the intra-prediction angular mode, are not stored in the reference line buffer; and определять одну или несколько опорных выборок на основе последней опорной выборки, сохраненной в буфере опорных линий.determine one or more reference samples based on the last reference sample stored in the reference line buffer. 35. Устройство по п. 25, причем, чтобы модифицировать выборку предсказания блока предсказания, видеодекодер сконфигурирован, чтобы модифицировать первую выборку предсказания блока предсказания, причем одна или несколько опорных выборок содержат первый набор из одной или более опорных выборок, и причем видеодекодер сконфигурирован, чтобы:35. The apparatus of claim 25, wherein, in order to modify the prediction block prediction sample, the video decoder is configured to modify the first prediction block prediction sample, wherein the one or more reference samples comprise a first set of one or more reference samples, and the video decoder is configured to : определять, для второй выборки предсказания того же самого блока предсказания, что по меньшей мере одна опорная выборка из второго набора из одной или более опорных выборок для второй выборки предсказания не хранится в буфере опорных линий; иdetermine, for a second prediction sample of the same prediction block, that at least one reference sample from a second set of one or more reference samples for the second prediction sample is not stored in the reference line buffer; and либо не применять PDPC ко второй выборке предсказания, либо применять PDPC с использованием только опорных выборок, доступных в буфере опорных линий.either not apply PDPC to the second prediction sample, or apply PDPC using only the reference samples available in the reference line buffer. 36. Устройство по п. 25, причем видеодекодер сконфигурирован, чтобы36. The apparatus of claim 25, wherein the video decoder is configured to определять множество весов на основе x- и y-координат выборки предсказания,determine a set of weights based on the x- and y-coordinates of the prediction sample, причем, чтобы модифицировать выборку предсказания, видеодекодер сконфигурирован, чтобы модифицировать выборку предсказания, чтобы сгенерировать модифицированную выборку предсказания на основе определенной одной или более опорных выборок, определенных весов и выборки предсказания.wherein, to modify the prediction sample, the video decoder is configured to modify the prediction sample to generate a modified prediction sample based on the determined one or more reference samples, the determined weights, and the prediction sample. 37. Устройство по п. 25, дополнительно содержащее дисплей, сконфигурированный, чтобы отображать текущий блок.37. The apparatus of claim 25, further comprising a display configured to display the current block. 38. Устройство по п. 25, причем устройство содержит одно или более из камеры, компьютера, мобильного устройства, устройства радиовещательного приемника или телевизионной приставки.38. The apparatus of claim 25, wherein the apparatus comprises one or more of a camera, a computer, a mobile device, a broadcast receiver device, or a set-top box. 39. Устройство для кодирования видеоданных, причем устройство содержит:39. Device for encoding video data, and the device contains: память, сконфигурированную, чтобы хранить блок предсказания; иa memory configured to store the prediction block; and видеокодер, содержащий по меньшей мере одну из схемы с фиксированной функцией или программируемой схемы, причем видеокодер сконфигурирован, чтобы:a video encoder comprising at least one of a fixed function circuit or a programmable circuit, the video encoder configured to: определять блок предсказания, который включает в себя множество выборок предсказания, для текущего блока, для хранения в памяти, на основе углового режима интра-предсказания, который не является DC, планарным, горизонтальным или вертикальным режимом интра-предсказания;determine a prediction block that includes a plurality of prediction samples for the current block to be stored in memory based on an intra-prediction angle mode that is not a DC, planar, horizontal, or vertical intra-prediction mode; модифицировать выборку предсказания из множества выборок предсказания блока предсказания, чтобы сгенерировать модифицированную выборку предсказания с использованием комбинации позиционно-зависимого интра-предсказания (PDPC), причем, чтобы модифицировать выборку предсказания, видеокодер сконфигурирован, чтобы:modify the prediction sample from the plurality of prediction samples of the prediction block to generate a modified prediction sample using a position-dependent intra-prediction combination (PDPC), wherein, to modify the prediction sample, the video encoder is configured to: определять одну или несколько опорных выборок, которые являются внешними для текущего блока, на основе углового режима интра-предсказания; и determine one or more reference samples that are external to the current block based on the intra-prediction angular mode; and модифицировать выборку предсказания, чтобы сгенерировать модифицированную выборку предсказания на основе определенной одной или более опорных выборок; modify the prediction sample to generate a modified prediction sample based on the determined one or more reference samples; определять остаточное значение для остаточного блока на основе модифицированной выборки предсказания и значения выборки в текущем блоке; иdetermine a residual value for the residual block based on the modified prediction sample and the sample value in the current block; and сигнализировать информацию, указывающую остаточное значение.signal information indicating the residual value. 40. Устройство по п. 39, причем, чтобы определять одну или несколько опорных выборок, которые являются внешними для текущего блока, видеокодер сконфигурирован, чтобы определять одну или несколько опорных выборок, имеющих как x-координату, так и y-координату, отличающиеся от соответственных x-координаты и y-координаты выборки предсказания в блоке предсказания.40. The apparatus of claim 39, wherein in order to determine one or more reference samples that are external to the current block, the video encoder is configured to determine one or more reference samples having both x-coordinate and y-coordinate different from the respective x-coordinates and y-coordinates of the prediction sample in the prediction block. 41. Устройство по п. 39, причем, чтобы определять одну или несколько опорных выборок, которые являются внешними для текущего блока, видеокодер сконфигурирован, чтобы: 41. The apparatus of claim 39, wherein in order to determine one or more reference samples that are external to the current block, the video encoder is configured to: определять строку, которая находится выше текущего блока; determine the line that is above the current block; определять x-координату в определенной строке, причем x-координата в определенной строке равна x-координате выборки предсказания плюс y-координата выборки предсказания плюс 1; иdetermine an x-coordinate in the determined row, wherein the x-coordinate in the determined row is equal to the x-coordinate of the prediction sample plus the y-coordinate of the prediction sample plus 1; and определять опорную выборку из одной или более опорных выборок на основе определенной строки и определенной x-координаты.determine a reference sample from one or more reference samples based on the specific row and the specific x-coordinate. 42. Устройство по п. 39, причем, чтобы определять одну или несколько опорных выборок, которые являются внешними для текущего блока, видеокодер сконфигурирован, чтобы: 42. The apparatus of claim 39, wherein in order to determine one or more reference samples that are external to the current block, the video encoder is configured to: определять столбец, который находится слева от текущего блока; determine the column that is located to the left of the current block; определять y-координату в определенном столбце, причем y-координата в определенном столбце равна x-координате выборки предсказания плюс y-координата выборки предсказания плюс 1; иdetermine a y-coordinate in the determined column, wherein the y-coordinate in the determined column is equal to the x-coordinate of the prediction sample plus the y-coordinate of the prediction sample plus 1; and определять опорную выборку из одной или более опорных выборок на основе определенного столбца и определенной y-координаты.determine a reference sample from one or more reference samples based on the specified column and the specified y-coordinate. 43. Устройство по п. 39, причем, чтобы определять одну или несколько опорных выборок, которые являются внешними для текущего блока, видеокодер сконфигурирован, чтобы: 43. The apparatus of claim 39, wherein in order to determine one or more reference samples that are external to the current block, the video encoder is configured to: определять строку, которая находится выше текущего блока; determine the line that is above the current block; определять x-координату в определенной строке, причем x-координата в определенной строке основана на угле углового режима интра-предсказания; иdetermining an x-coordinate in the determined row, wherein the x-coordinate in the determined row is based on an intra-prediction angular mode angle; and определять опорную выборку из одной или более опорных выборок на основе определенной строки и определенной x-координаты.determine a reference sample from one or more reference samples based on the specific row and the specific x-coordinate. 44. Устройство по п. 43, причем, чтобы определять x-координату в определенной строке, видеокодер сконфигурирован, чтобы:44. The apparatus of claim 43, wherein, in order to determine the x-coordinate in a certain line, the video encoder is configured to: определять одно из котангенса или тангенса угла углового режима интра-предсказания; иdetermine one of the cotangent or tangent of the intra-prediction angular mode angle; and определять x-координату в определенной строке на основе одного из котангенса или тангенса угла углового режима интра-предсказания, x-координаты выборки предсказания и y-координаты выборки предсказания.determine an x-coordinate in a certain row based on one of the intra-prediction angular mode cotangent or tangent, the prediction sample x-coordinate, and the prediction sample y-coordinate. 45. Устройство по п. 39, причем, чтобы определять одну или несколько опорных выборок, которые являются внешними для текущего блока, видеокодер сконфигурирован, чтобы: 45. The apparatus of claim 39, wherein in order to determine one or more reference samples that are external to the current block, the video encoder is configured to: определять столбец, который находится слева от текущего блока; determine the column to the left of the current block; определять y-координату в определенном столбце, причем y-координата в определенном столбце основана на угле углового режима интра-предсказания; иdetermine a y-coordinate in the determined column, wherein the y-coordinate in the determined column is based on the intra-prediction angular mode angle; and определять опорную выборку из одной или более опорных выборок на основе определенного столбца и определенной y-координаты.determine a reference sample from one or more reference samples based on the specified column and the specified y-coordinate. 46. Устройство по п. 45, причем, чтобы определять y-координату в определенном столбце, видеокодер сконфигурирован, чтобы:46. The apparatus of claim 45, wherein in order to determine the y-coordinate in a particular column, the video encoder is configured to: определять одно из котангенса или тангенса угла углового режима интра-предсказания; иdetermine one of the cotangent or tangent of the intra-prediction angular mode angle; and определять y-координату в определенном столбце на основе одного из котангенса или тангенса угла углового режима интра-предсказания, x-координаты выборки предсказания и y-координаты выборки предсказания.determine a y-coordinate in a specific column based on one of the cotangent or tangent of the intra-prediction angular mode angle, the x-coordinate of the prediction sample, and the y-coordinate of the prediction sample. 47. Устройство по п. 39, причем, чтобы определять одну или несколько опорных выборок, которые являются внешними для текущего блока, на основе углового режима интра-предсказания, видеокодер сконфигурирован, чтобы:47. The apparatus of claim 39, wherein, in order to determine one or more reference samples that are external to the current block, based on the intra-prediction angle mode, the video encoder is configured to: определять набор из одной или более выборок на основе углового режима интра-предсказания; иdetermine a set of one or more samples based on the intra-prediction angular mode; and выполнять по меньшей мере одно из интерполяции, округления со сдвигом или округления без сдвига на наборе из одной или более выборок, чтобы сгенерировать одну или несколько опорных выборок.perform at least one of interpolation, round with a shift, or round without a shift on the set of one or more samples to generate one or more reference samples. 48. Устройство по п. 39, причем, чтобы определять одну или несколько опорных выборок, которые являются внешними для текущего блока, на основе углового режима интра-предсказания, видеокодер сконфигурирован, чтобы:48. The apparatus of claim 39, wherein, in order to determine one or more reference samples that are external to the current block, based on the intra-prediction angle mode, the video encoder is configured to: определять, что одна или несколько выборок, внешних для текущего блока, идентифицированных на основе углового режима интра-предсказания, не хранятся в буфере опорных линий; иdetermine that one or more samples external to the current block, identified based on the intra-prediction angular mode, are not stored in the reference line buffer; and определять одну или несколько опорных выборок на основе последней опорной выборки, сохраненной в буфере опорных линий.determine one or more reference samples based on the last reference sample stored in the reference line buffer. 49. Устройство по п. 39, причем, чтобы модифицировать выборку предсказания блока предсказания, видеокодер сконфигурирован, чтобы модифицировать первую выборку предсказания блока предсказания, причем одна или несколько опорных выборок содержат первый набор из одной или более опорных выборок, и причем видеокодер сконфигурирован, чтобы:49. The apparatus of claim 39, wherein, in order to modify the prediction block prediction sample, the video encoder is configured to modify the first prediction block prediction sample, wherein the one or more reference samples comprise a first set of one or more reference samples, and the video encoder is configured to : определять, для второй выборки предсказания того же самого блока предсказания, что по меньшей мере одна опорная выборка из второго набора из одной или более опорных выборок для второй выборки предсказания не хранится в буфере опорных линий; иdetermine, for a second prediction sample of the same prediction block, that at least one reference sample from a second set of one or more reference samples for the second prediction sample is not stored in the reference line buffer; and либо не применять PDPC ко второй выборке предсказания, либо применять PDPC с использованием только опорных выборок, доступных в буфере опорных линий.either not apply PDPC to the second prediction sample, or apply PDPC using only the reference samples available in the reference line buffer. 50. Устройство по п. 39, причем видеокодер сконфигурирован, чтобы50. The apparatus of claim 39, wherein the video encoder is configured to определять множество весов на основе x- и y-координат выборки предсказания,determine a set of weights based on the x- and y-coordinates of the prediction sample, причем, чтобы модифицировать выборку предсказания, видеокодер сконфигурирован, чтобы модифицировать выборку предсказания, чтобы сгенерировать модифицированную выборку предсказания на основе определенной одной или более опорных выборок, определенных весов и выборки предсказания.wherein, to modify the prediction sample, the video encoder is configured to modify the prediction sample to generate a modified prediction sample based on the determined one or more reference samples, the determined weights, and the prediction sample. 51. Устройство по п. 39, причем устройство содержит одно или более из камеры, компьютера, мобильного устройства, устройства широковещательного приемника или телевизионной приставки.51. The apparatus of claim 39, wherein the apparatus comprises one or more of a camera, a computer, a mobile device, a broadcast receiver device, or a set-top box. 52. Считываемый компьютером запоминающий носитель, хранящий инструкции, которые при исполнении побуждают один или несколько процессоров устройства для декодирования видеоданных:52. A computer-readable storage medium that stores instructions that, when executed, cause one or more processors of the device to decode video data: определять блок предсказания, который включает в себя множество выборок предсказания, для текущего блока на основе углового режима интра-предсказания, который не является DC, планарным, горизонтальным или вертикальным режимом интра-предсказания;determine a prediction block that includes a plurality of prediction samples for the current block based on an angular intra-prediction mode that is not a DC, planar, horizontal, or vertical intra-prediction mode; модифицировать выборку предсказания из множества выборок предсказания блока предсказания, чтобы сгенерировать модифицированную выборку предсказания, с использованием комбинации позиционно-зависимого интра-предсказания (PDPC), причем инструкции, которые побуждают один или несколько процессоров модифицировать выборку предсказания, содержат инструкции, которые побуждают один или несколько процессоров:modify a prediction sample from a plurality of prediction samples of a prediction block to generate a modified prediction sample using a position-dependent intra-prediction (PDPC) combination, wherein the instructions that cause one or more processors to modify the prediction sample contain instructions that cause one or more processors: определять одну или несколько опорных выборок, которые являются внешними для текущего блока, на основе углового режима интра-предсказания; и determine one or more reference samples that are external to the current block based on the intra-prediction angular mode; and модифицировать выборку предсказания, чтобы сгенерировать модифицированную выборку предсказания, на основе определенной одной или более опорных выборок; иmodify the prediction sample to generate a modified prediction sample based on the determined one or more reference samples; and восстанавливать выборку текущего блока на основе модифицированной выборки предсказания и остаточного значения.resample the current block based on the modified prediction sample and the residual. 53. Считываемый компьютером запоминающий носитель, хранящий инструкции, которые при исполнении побуждают один или несколько процессоров устройства для кодирования видеоданных:53. A computer-readable storage medium that stores instructions that, when executed, cause one or more processors of the device to encode video data: определять блок предсказания, который включает в себя множество выборок предсказания, для текущего блока на основе углового режима интра-предсказания, который не является DC, планарным, горизонтальным или вертикальным режимом интра-предсказания;determine a prediction block that includes a plurality of prediction samples for the current block based on an angular intra-prediction mode that is not a DC, planar, horizontal, or vertical intra-prediction mode; модифицировать выборку предсказания из множества выборок предсказания блока предсказания, чтобы сгенерировать модифицированную выборку предсказания, с использованием комбинации позиционно-зависимого интра-предсказания (PDPC), причем инструкции, которые побуждают один или несколько процессоров модифицировать выборку предсказания, содержат инструкции, которые побуждают один или несколько процессоров:modify a prediction sample from a plurality of prediction samples of a prediction block to generate a modified prediction sample using a position-dependent intra-prediction (PDPC) combination, wherein the instructions that cause one or more processors to modify the prediction sample contain instructions that cause one or more processors: определять одну или несколько опорных выборок, которые являются внешними для текущего блока, на основе углового режима интра-предсказания; и determine one or more reference samples that are external to the current block based on the intra-prediction angular mode; and модифицировать выборку предсказания, чтобы сгенерировать модифицированную выборку предсказания, на основе определенной одной или более опорных выборок;modify the prediction sample to generate a modified prediction sample based on the determined one or more reference samples; определять остаточное значение для остаточного блока на основе модифицированной выборки предсказания и значения выборки в текущем блоке; иdetermine a residual value for the residual block based on the modified prediction sample and the sample value in the current block; and сигнализировать информацию, указывающую остаточное значение.signal information indicating the residual value. 54. Устройство для декодирования видеоданных, причем устройство содержит:54. Device for decoding video data, and the device contains: средство для определения блока предсказания, который включает в себя множество выборок предсказания, для текущего блока на основе углового режима интра-предсказания, который не является DC, планарным, горизонтальным или вертикальным режимом интра-предсказания;means for determining a prediction block that includes a plurality of prediction samples for the current block based on an intra-prediction angular mode that is not a DC, planar, horizontal, or vertical intra-prediction mode; средство для модифицирования выборки предсказания из множества выборок предсказания в блоке предсказания, чтобы сгенерировать модифицированную выборку предсказания, с использованием комбинации позиционно-зависимого интра-предсказания (PDPC), причем средство для модифицирования выборки предсказания содержит:means for modifying a prediction sample from a plurality of prediction samples in the prediction block to generate a modified prediction sample using a position-dependent intra prediction (PDPC) combination, the means for modifying the prediction sample comprising: средство для определения одной или более опорных выборок, которые являются внешними для текущего блока, на основе углового режима интра-предсказания; и means for determining one or more reference samples that are external to the current block based on the intra-prediction angular mode; and средство для модифицирования выборки предсказания, чтобы сгенерировать модифицированную выборку предсказания на основе определенной одной или более опорных выборок; иmeans for modifying the prediction sample to generate a modified prediction sample based on the determined one or more reference samples; and средство для восстановления выборки текущего блока на основе модифицированной выборки предсказания и остаточного значения.means for restoring a sample of the current block based on the modified prediction sample and the residual. 55. Устройство для кодирования видеоданных, причем устройство содержит:55. Device for encoding video data, and the device contains: средство для определения блока предсказания, который включает в себя множество выборок предсказания, для текущего блока на основе углового режима интра-предсказания, который не является DC, планарным, горизонтальным или вертикальным режимом интра-предсказания;means for determining a prediction block that includes a plurality of prediction samples for the current block based on an intra-prediction angular mode that is not a DC, planar, horizontal, or vertical intra-prediction mode; средство для модифицирования выборки предсказания из множества выборок предсказания блока предсказания, чтобы сгенерировать модифицированную выборку предсказания, с использованием комбинации позиционно-зависимого интра-предсказания (PDPC), причем средство для модифицирования выборки предсказания содержит:means for modifying a prediction sample from a plurality of prediction samples of the prediction block to generate a modified prediction sample using a position-dependent intra-prediction (PDPC) combination, the means for modifying the prediction sample comprising: средство для определения одной или более опорных выборок, которые являются внешними для текущего блока, на основе углового режима интра-предсказания; и means for determining one or more reference samples that are external to the current block based on the intra-prediction angular mode; and средство для модифицирования выборки предсказания, чтобы сгенерировать модифицированную выборку предсказания на основе определенной одной или более опорных выборок;means for modifying the prediction sample to generate a modified prediction sample based on the determined one or more reference samples; средство для определения остаточного значения для остаточного блока на основе модифицированной выборки предсказания и значения выборки в текущем блоке; иmeans for determining a residual value for the residual block based on the modified prediction sample and the sample value in the current block; and средство для сигнализации информации, указывающей остаточное значение. means for signaling information indicating the residual value.
RU2020131995A 2018-04-02 2019-04-02 Position-dependent intra-prediction combination expanded with angular modes RU2785816C2 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862651424P 2018-04-02 2018-04-02
US62/651,424 2018-04-02
US16/371,638 US11611757B2 (en) 2018-04-02 2019-04-01 Position dependent intra prediction combination extended with angular modes
US16/371,638 2019-04-01
PCT/US2019/025376 WO2019195283A1 (en) 2018-04-02 2019-04-02 Position dependent intra prediction combination extended with angular modes

Publications (2)

Publication Number Publication Date
RU2020131995A RU2020131995A (en) 2022-05-06
RU2785816C2 true RU2785816C2 (en) 2022-12-13

Family

ID=

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2619706C2 (en) * 2011-06-28 2017-05-17 Самсунг Электроникс Ко., Лтд. Method and device for encoding video, and method and device for decoding video which is accompanied with internal prediction
WO2017165391A1 (en) * 2016-03-21 2017-09-28 Qualcomm Incorporated Using luma information for chroma prediction with separate luma-chroma framework in video coding
WO2017205701A1 (en) * 2016-05-25 2017-11-30 Arris Enterprises Llc Weighted angular prediction for intra coding

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2619706C2 (en) * 2011-06-28 2017-05-17 Самсунг Электроникс Ко., Лтд. Method and device for encoding video, and method and device for decoding video which is accompanied with internal prediction
WO2017165391A1 (en) * 2016-03-21 2017-09-28 Qualcomm Incorporated Using luma information for chroma prediction with separate luma-chroma framework in video coding
WO2017205701A1 (en) * 2016-05-25 2017-11-30 Arris Enterprises Llc Weighted angular prediction for intra coding

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
AMIR SAID et al, Position dependent prediction combination for intra-frame video coding, IEEE International Conference on Image Processing (ICIP), 2016. *
PANUSOPONE K. et al, Unequal Weight Planar Prediction and Constrained PDPC, Joint Video Exploration Team (JVET) of ITU-T SG16 WP3 and ISO/IEC JTC 1/SC 29/WG11, JVET-E0068-r1, 5th Meeting: Geneva, 12-20 January 2017. *

Similar Documents

Publication Publication Date Title
AU2023202344B2 (en) Position dependent intra prediction combination extended with angular modes
US10506246B2 (en) Multi-type-tree framework for video coding
US11431968B2 (en) Variable number of intra modes for video coding
US10484712B2 (en) Implicit coding of reference line index used in intra prediction
RU2723568C2 (en) Determining prediction parameters for non-square video coding units
US20180199062A1 (en) Intra prediction techniques for video coding
JP2021530906A (en) Position-dependent intra-prediction combination with wide-angle intra-prediction
CN110720218A (en) Intra-frame filtering applied with transform processing in video coding
JP2019525585A (en) Quantization information signaling in video coding not partitioned by quadtree alone
KR20210015819A (en) Block-based Adaptive Loop Filter (ALF) Design and Signaling
KR20190006174A (en) Signaling of filtering information
JP2016529783A (en) Pallet prediction in palette-based video coding
JP7423647B2 (en) Video coding in triangular predictive unit mode using different chroma formats
KR102309353B1 (en) Divisionless bidirectional filter
CN111903129A (en) Multi-type tree framework for transforms in video coding
RU2785816C2 (en) Position-dependent intra-prediction combination expanded with angular modes
RU2781854C2 (en) Position-dependent combination with internal prediction with wide-angle internal prediction