RU2781854C2 - Position-dependent combination with internal prediction with wide-angle internal prediction - Google Patents

Position-dependent combination with internal prediction with wide-angle internal prediction Download PDF

Info

Publication number
RU2781854C2
RU2781854C2 RU2021100378A RU2021100378A RU2781854C2 RU 2781854 C2 RU2781854 C2 RU 2781854C2 RU 2021100378 A RU2021100378 A RU 2021100378A RU 2021100378 A RU2021100378 A RU 2021100378A RU 2781854 C2 RU2781854 C2 RU 2781854C2
Authority
RU
Russia
Prior art keywords
sample
prediction
intra
coordinate
samples
Prior art date
Application number
RU2021100378A
Other languages
Russian (ru)
Other versions
RU2021100378A (en
Inventor
Герт ВАН ДЕР АУВЕРА
Адарш Кришнан РАМАСУБРАМОНИАН
Марта Карчевич
Original Assignee
Квэлкомм Инкорпорейтед
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Квэлкомм Инкорпорейтед filed Critical Квэлкомм Инкорпорейтед
Publication of RU2021100378A publication Critical patent/RU2021100378A/en
Application granted granted Critical
Publication of RU2781854C2 publication Critical patent/RU2781854C2/en

Links

Images

Abstract

FIELD: video encoding and decoding.
SUBSTANCE: invention relates to video encoding and decoding, using position-depending combination with internal prediction (hereinafter – PDPC) with wide-angle internal prediction. A size of the current video data unit is determined. A mode of wide-angle internal prediction can be determined for the current unit based on the size. A prediction unit for the current unit can be determined, using the mode of wide-angle internal prediction. A prediction sample from the prediction unit can be modified in such a way that to form a modified prediction sample, using PDPC, which may include the determination of one or more reference samples, which are external for the current unit, based on the mode of wide-angle internal prediction, and modification of the prediction sample to form a modified prediction sample based on determined one or more reference samples.
EFFECT: increase in the encoding efficiency.
67 cl, 16 dwg, 1 tbl

Description

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

[0001] Данная заявка относится к кодированию и декодированию видео. В некоторых случаях, описываются системы, оборудование, способы и машиночитаемые носители для выполнения позиционно-зависимого комбинирования с внутренним прогнозированием (PDPC) с широкоугольным внутренним прогнозированием.[0001] This application relates to video encoding and decoding. In some cases, systems, equipment, methods, and computer-readable media are described for performing position-dependent intra-prediction combining (PDPC) with wide-angle intra-prediction.

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

[0002] Поддержка цифрового видео может быть включена в широкий диапазон устройств, включающих в себя цифровые телевизионные приемники, системы цифровой прямой широковещательной передачи, беспроводные широковещательные системы, персональные цифровые устройства (PDA), переносные или настольные компьютеры, планшетные компьютеры, устройства для чтения электронных книг, цифровые камеры, цифровые записывающие устройства, цифровые мультимедийные проигрыватели, устройства видеоигр, консоли для видеоигр, сотовые или спутниковые радиотелефоны, так называемые смартфоны, устройства видеоконференц-связи, устройства потоковой передачи видео и т.п. Такие устройства обеспечивают возможность обработки и вывода видеоданных для потребления. Цифровые видеоданные включают в себя большие объемы данных, чтобы удовлетворять потребности потребителей и видеопоставщиков. Например, потребители видеоданных хотят видео самого лучшего качества, с высокой точностью воспроизведения, разрешением, частотами кадров и т.п. Как результат, большой объем видеоданных, который требуется для того, чтобы удовлетворять эти требования, налагает нагрузку на сети связи и устройства, которые обрабатывают и сохраняют видеоданные.[0002] Support for digital video can be included in a wide range of devices, including digital television receivers, digital direct broadcast systems, wireless broadcast systems, personal digital assistants (PDAs), laptop or desktop computers, tablet computers, e-readers books, digital cameras, digital recorders, digital media players, video game devices, video game consoles, cellular or satellite radio telephones, so-called smartphones, video conferencing devices, video streaming devices, and the like. Such devices provide the ability to process and output video data for consumption. Digital video data includes large amounts of data to meet the needs of consumers and video providers. For example, video consumers want the best video quality, high fidelity, resolution, frame rates, and the like. As a result, the large amount of video data required to meet these requirements places a burden on communication networks and devices that process and store video data.

[0003] Цифровые видеоустройства могут реализовывать технологии кодирования видео для того, чтобы сжимать видеоданные. Кодирование видео выполняется согласно одному или более стандартов кодирования видео. Например, стандарты кодирования видео включают в себя стандарт универсального кодирования видео (VVC), стандарт высокоэффективного кодирования видео (HEVC), стандарт усовершенствованного кодирования видео (AVC), MPEG-2-стандарт кодирования, часть 2 (MPEG означает "Экспертную группу по киноизображению"), в числе других. Кодирование видео, в общем, использует способы прогнозирования (например, взаимное прогнозирование, внутреннее прогнозирование и т.п.), которые используют преимущество избыточности, присутствующей в видеоизображениях или последовательностях. Важная цель технологий кодирования видео состоит в том, чтобы сжимать видеоданные в форму, которая использует более низкую скорость передачи битов при недопущении или минимизации ухудшения качества видео. В силу постоянно появляющихся совершенствующихся услуг передачи видео, требуются технологии кодирования с более высокой эффективностью кодирования.[0003] Digital video devices may implement video coding techniques to compress video data. Video coding is performed according to one or more video coding standards. For example, video coding standards include Universal Video Coding (VVC), High Efficiency Video Coding (HEVC), Advanced Video Coding (AVC), MPEG-2 Coding Standard Part 2 (MPEG stands for Motion Picture Expert Group) ), among others. Video coding generally uses prediction techniques (eg, inter prediction, intra prediction, and the like) that take advantage of the redundancy present in video images or sequences. An important goal of video coding technologies is to compress video data into a form that uses a lower bit rate while avoiding or minimizing video quality degradation. Due to the ever-evolving improved video transmission services, coding technologies with higher coding efficiency are required.

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

[0004] В данном документе описываются технологии и системы для выполнения позиционно-зависимого комбинирования с внутренним прогнозированием (PDPC) с широкоугольными режимами для внутреннего прогнозирования. С использованием внутреннего прогнозирования, устройство кодирования (например, видеокодер и/или видеодекодер) может формировать блок прогнозирования с использованием технологий пространственного прогнозирования на основе соседних выборок из ранее кодированных соседних блоков в идентичном кинокадре. Соседние выборки могут идентифицироваться на основе конкретного используемого режима внутреннего прогнозирования, такого как планарный режим, DC-режим и/или один из нескольких режимов направленного прогнозирования (вертикальный, горизонтальный и различные угловые режимы). Режимы направленного прогнозирования типично используют направления (или углы) приблизительно от -135 градусов приблизительно до 45 градусов относительно вертикального направления из прогнозной выборки.[0004] This document describes technologies and systems for performing position-dependent intra prediction combining (PDPC) with wide-angle modes for intra prediction. Using intra prediction, an encoding device (eg, a video encoder and/or video decoder) can generate a prediction block using spatial prediction techniques based on adjacent samples from previously encoded adjacent blocks in an identical movie frame. Adjacent samples may be identified based on the particular intra prediction mode used, such as planar mode, DC mode, and/or one of several directional prediction modes (vertical, horizontal, and various angle modes). Directional prediction modes typically use directions (or angles) from about -135 degrees to about 45 degrees relative to the vertical direction of the prediction sample.

[0005] В эффективных видеокодерах и/или декодерах, блочная структура, используемая для указания блока прогнозирования для внутреннего прогнозирования, не ограничивается квадратом (блок является квадратным, когда ширина (w) = высота (h)). Использование прямоугольных блоков прогнозирования (w>h или w<h) позволяет повышать эффективность кодирования на основе характеристик контента. В таких прямоугольных блоках, ограничение направления внутреннего прогнозирования в пределах от -135 градусов до 45 градусов может приводить к ситуациям, когда опорные выборки, которые находятся дальше от прогнозной выборки (прогнозируемой выборки), используются для внутреннего прогнозирования, вместо более близких опорных выборок. Данное проектное решение с большой вероятностью имеет отрицательное влияние на эффективность кодирования. Должно быть более преимущественным иметь диапазон ограничений, ослабленный таким образом, что более близкие опорные выборки (например, за пределами углов от -135 до 45 градусов) могут использоваться для внутреннего прогнозирования. Например, режимы направленного прогнозирования, которые используют направления (или углы), которые меньше -135 градусов или больше 45 градусов (называются "широкоугольными режимами") относительно вертикального направления из прогнозной выборки.[0005] In efficient video encoders and/or decoders, a block structure used to indicate a prediction block for intra prediction is not limited to a square (a block is square when width (w) = height (h)). The use of rectangular prediction blocks (w>h or w<h) can improve coding efficiency based on content characteristics. In such rectangular blocks, limiting the intra prediction direction to between -135 degrees and 45 degrees can lead to situations where reference samples that are further away from the prediction sample (predictive sample) are used for intra prediction instead of closer reference samples. This design decision is likely to have a negative impact on coding efficiency. It should be more advantageous to have the constraint range relaxed such that closer reference samples (eg, outside -135 to 45 degree angles) can be used for intra prediction. For example, directional prediction modes that use directions (or angles) that are less than -135 degrees or greater than 45 degrees (referred to as "wide-angle modes") relative to the vertical direction from the prediction sample.

[0006] PDPC может использоваться для того, чтобы модифицировать прогнозные выборки, определенные с использованием внутреннего прогнозирования. Например, с использованием PDPC, устройство кодирования (например, видеокодер и/или видеодекодер) может определять опорные выборки, которые присутствуют в одной или более линий выше и/или слева от текущего блока, и может использовать опорные выборки для того, чтобы модифицировать прогнозные выборки, определенные с использованием внутреннего прогнозирования. Модифицированные прогнозные выборки затем могут использоваться для того, чтобы кодировать или декодировать текущий блок.[0006] PDPC may be used to modify predictive samples determined using intra prediction. For example, using PDPC, an encoder (eg, a video encoder and/or video decoder) may determine the reference samples that are present in one or more lines above and/or to the left of the current block and may use the reference samples to modify the predictive samples. determined using internal prediction. The modified predictive samples may then be used to encode or decode the current block.

[0007] Технологии и системы, описанные в данном документе, предоставляют способы для того, чтобы выполнять PDPC, когда используются режимы широкоугольного внутреннего прогнозирования. Также описываются технологии для передачи в служебных сигналах и/или декодирования ассоциированной информации. В некоторых случаях, для кодирования, видеокодер может использовать модифицированные прогнозные выборки для того, чтобы определять остаточные значения, которые передаются в служебных сигналах в видеодекодер. В некоторых случаях, для декодирования, видеодекодер может суммировать модифицированные прогнозные выборки с принимаемыми остаточными значениями для того, чтобы восстанавливать текущий блок.[0007] The technologies and systems described herein provide methods for performing PDPC when wide-angle intra prediction modes are used. Techniques for signaling and/or decoding associated information are also described. In some cases, for coding, the video encoder may use modified predictive samples to determine the residuals that are signaled to the video decoder. In some cases, for decoding, the video decoder may add the modified predictive samples to the received residuals in order to reconstruct the current block.

[0008] Согласно, по меньшей мере, одному примеру, предоставляется способ декодирования видеоданных. Способ включает в себя получение текущего блока видеоданных и определение размера текущего блока. Способ дополнительно включает в себя определение, на основе размера текущего блока, режима широкоугольного внутреннего прогнозирования, который следует использовать для текущего блока. Способ дополнительно включает в себя определение блока прогнозирования для текущего блока с использованием режима широкоугольного внутреннего прогнозирования. Блок прогнозирования включает в себя множество прогнозных выборок. Способ дополнительно включает в себя модификацию прогнозной выборки из множества прогнозных выборок блока прогнозирования для того, чтобы формировать модифицированную прогнозную выборку с использованием позиционно-зависимого комбинирования с внутренним прогнозированием (PDPC). Модификация прогнозной выборки содержит: определение одной или более опорных выборок, которые являются внешними для текущего блока, на основе режима широкоугольного внутреннего прогнозирования; и модификацию прогнозной выборки для того, чтобы формировать модифицированную прогнозную выборку на основе определенной одной или более опорных выборок. Способ дополнительно включает в себя восстановление выборки текущего блока на основе модифицированной прогнозной выборки и остаточного значения.[0008] According to at least one example, a method for decoding video data is provided. The method includes obtaining the current block of video data and determining the size of the current block. The method further includes determining, based on the size of the current block, a wide-angle intra prediction mode to use for the current block. The method further includes determining a prediction block for the current block using the wide-angle intra prediction mode. The prediction block includes a plurality of prediction samples. The method further includes modifying the prediction sample from the plurality of prediction samples of the predictor to generate a modified prediction sample using position-dependent intra-prediction combining (PDPC). Modifying the prediction sample comprises: determining one or more reference samples that are external to the current block based on the wide-angle intra prediction mode; and modifying the predictive sample to generate the modified predictive sample based on the determined one or more reference samples. The method further includes restoring a sample of the current block based on the modified predictive sample and the residual.

[0009] В другом примере, предоставляется устройство для декодирования видеоданных, которое включает в себя запоминающее устройство, выполненное с возможностью сохранять один или более блоков прогнозирования, и видеодекодер, содержащий, по меньшей мере, одну из фиксированной функциональной или программируемой схемы. В некоторых примерах, видеодекодер выполнен с возможностью получать текущий блок видеоданных и определять размер текущего блока. Видеодекодер дополнительно выполнен с возможностью определять, на основе размера текущего блока, режим широкоугольного внутреннего прогнозирования, который следует использовать для текущего блока. Видеодекодер дополнительно выполнен с возможностью определять блок прогнозирования для текущего блока с использованием режима широкоугольного внутреннего прогнозирования. Блок прогнозирования включает в себя множество прогнозных выборок. Видеодекодер дополнительно выполнен с возможностью модифицировать прогнозную выборку из множества прогнозных выборок блока прогнозирования для того, чтобы формировать модифицированную прогнозную выборку с использованием позиционно-зависимого комбинирования с внутренним прогнозированием (PDPC). Модификация прогнозной выборки содержит: определение одной или более опорных выборок, которые являются внешними для текущего блока, на основе режима широкоугольного внутреннего прогнозирования; и модификацию прогнозной выборки для того, чтобы формировать модифицированную прогнозную выборку на основе определенной одной или более опорных выборок. Видеодекодер дополнительно выполнен с возможностью восстанавливать выборку текущего блока на основе модифицированной прогнозной выборки и остаточного значения.[0009] In another example, an apparatus for decoding video data is provided that includes a memory configured to store one or more prediction blocks and a video decoder comprising at least one of a fixed functional or programmable circuit. In some examples, the video decoder is configured to receive the current block of video data and determine the size of the current block. The video decoder is further configured to determine, based on the size of the current block, the wide-angle intra prediction mode to use for the current block. The video decoder is further configured to determine a prediction block for the current block using the wide-angle intra prediction mode. The prediction block includes a plurality of prediction samples. The video decoder is further configured to modify the prediction sample from the plurality of predictor samples of the predictor to generate a modified prediction sample using position-dependent intra-prediction combining (PDPC). Modifying the prediction sample comprises: determining one or more reference samples that are external to the current block based on the wide-angle intra prediction mode; and modifying the predictive sample to generate the modified predictive sample based on the determined one or more reference samples. The video decoder is further configured to resample the current block based on the modified predictive sample and the residual.

[0010] В другом примере, машиночитаемый носитель хранения данных, сохраняющий инструкции, которые при выполнении инструктируют одному или более процессоров устройства для декодирования видеоданных: получать текущий блок видеоданных; определять размер текущего блока; определять, на основе размера текущего блока, режим широкоугольного внутреннего прогнозирования, который следует использовать для текущего блока; определять блок прогнозирования для текущего блока с использованием режима широкоугольного внутреннего прогнозирования, причем блок прогнозирования включает в себя множество прогнозных выборок; модифицировать прогнозную выборку из множества прогнозных выборок блока прогнозирования для того, чтобы формировать модифицированную прогнозную выборку с использованием позиционно-зависимого комбинирования с внутренним прогнозированием (PDPC), при этом модификация прогнозной выборки содержит: определение одной или более опорных выборок, которые являются внешними для текущего блока, на основе режима широкоугольного внутреннего прогнозирования; и модификацию прогнозной выборки для того, чтобы формировать модифицированную прогнозную выборку на основе определенной одной или более опорных выборок; и восстанавливать выборку текущего блока на основе модифицированной прогнозной выборки и остаточного значения.[0010] In another example, a computer-readable storage medium that stores instructions that, when executed, instructs one or more processors of a video decoding device to: obtain a current block of video data; determine the size of the current block; determine, based on the size of the current block, a wide-angle intra prediction mode to be used for the current block; determine a prediction block for the current block using a wide-angle intra prediction mode, the prediction block including a plurality of prediction samples; modify the prediction sample from the plurality of prediction samples of the prediction block to generate a modified prediction sample using position-dependent intra-prediction combining (PDPC), wherein the modification of the prediction sample comprises: determining one or more reference samples that are external to the current block , based on the wide-angle indoor prediction mode; and modifying the predictive sample to generate a modified predictive sample based on the determined one or more reference samples; and resample the current block based on the modified predictive sample and the residual.

[0011] В другом примере, предоставляется устройство для декодирования видеоданных. Устройство включает в себя средство для получения текущего блока видеоданных и средство для определения размера текущего блока. Устройство дополнительно включает в себя средство для определения, на основе размера текущего блока, режима широкоугольного внутреннего прогнозирования, который следует использовать для текущего блока. Устройство дополнительно включает в себя средство для определения блока прогнозирования для текущего блока с использованием режима широкоугольного внутреннего прогнозирования. Блок прогнозирования включает в себя множество прогнозных выборок. Устройство дополнительно включает в себя средство для модификации прогнозной выборки из множества прогнозных выборок блока прогнозирования для того, чтобы формировать модифицированную прогнозную выборку с использованием позиционно-зависимого комбинирования с внутренним прогнозированием (PDPC). Модификация прогнозной выборки содержит: определение одной или более опорных выборок, которые являются внешними для текущего блока, на основе режима широкоугольного внутреннего прогнозирования; и модификацию прогнозной выборки для того, чтобы формировать модифицированную прогнозную выборку на основе определенной одной или более опорных выборок. Устройство дополнительно включает в себя средство для восстановления выборки текущего блока на основе модифицированной прогнозной выборки и остаточного значения.[0011] In another example, an apparatus for decoding video data is provided. The device includes means for obtaining the current block of video data and means for determining the size of the current block. The apparatus further includes means for determining, based on the size of the current block, a wide-angle intra prediction mode to use for the current block. The apparatus further includes means for determining a prediction block for the current block using the wide-angle intra prediction mode. The prediction block includes a plurality of prediction samples. The apparatus further includes means for modifying a prediction sample from a plurality of prediction samples of the predictor to generate a modified prediction sample using position-dependent intra-prediction combining (PDPC). Modifying the prediction sample comprises: determining one or more reference samples that are external to the current block based on the wide-angle intra prediction mode; and modifying the predictive sample to generate the modified predictive sample based on the determined one or more reference samples. The apparatus further includes means for restoring a sample of the current block based on the modified predictive sample and the residual.

[0012] В другом примере, предоставляется способ кодирования видеоданных. Способ включает в себя получение текущего блока видеоданных и определение размера текущего блока. Способ дополнительно включает в себя определение, на основе размера текущего блока, режима широкоугольного внутреннего прогнозирования, который следует использовать для текущего блока. Способ дополнительно включает в себя определение блока прогнозирования для текущего блока с использованием режима широкоугольного внутреннего прогнозирования. Блок прогнозирования включает в себя множество прогнозных выборок. Способ дополнительно включает в себя модификацию прогнозной выборки из множества прогнозных выборок блока прогнозирования для того, чтобы формировать модифицированную прогнозную выборку с использованием позиционно-зависимого комбинирования с внутренним прогнозированием (PDPC). Модификация прогнозной выборки содержит: определение одной или более опорных выборок, которые являются внешними для текущего блока, на основе режима широкоугольного внутреннего прогнозирования; и модификацию прогнозной выборки для того, чтобы формировать модифицированную прогнозную выборку на основе определенной одной или более опорных выборок. Способ дополнительно включает в себя определение остаточного значения для остаточного блока на основе модифицированной прогнозной выборки и выборочного значения в текущем блоке и передачу в служебных сигналах информации, указывающей остаточное значение.[0012] In another example, a method for encoding video data is provided. The method includes obtaining the current block of video data and determining the size of the current block. The method further includes determining, based on the size of the current block, a wide-angle intra prediction mode to use for the current block. The method further includes determining a prediction block for the current block using the wide-angle intra prediction mode. The prediction block includes a plurality of prediction samples. The method further includes modifying the prediction sample from the plurality of prediction samples of the predictor to generate a modified prediction sample using position-dependent intra-prediction combining (PDPC). Modifying the prediction sample comprises: determining one or more reference samples that are external to the current block based on the wide-angle intra prediction mode; and modifying the predictive sample to generate the modified predictive sample based on the determined one or more reference samples. The method further includes determining a residual value for the residual block based on the modified predictive sample and the sample value in the current block, and signaling information indicating the residual value.

[0013] В другом примере, предоставляется устройство для кодирования видеоданных, которое включает в себя запоминающее устройство, выполненное с возможностью сохранять один или более блоков прогнозирования, и видеокодер, содержащий, по меньшей мере, одну из фиксированной функциональной или программируемой схемы. В некоторых примерах, видеокодер выполнен с возможностью получать текущий блок видеоданных и определять размер текущего блока. Видеокодер дополнительно выполнен с возможностью определять, на основе размера текущего блока, режим широкоугольного внутреннего прогнозирования, который следует использовать для текущего блока. Видеокодер дополнительно выполнен с возможностью определять блок прогнозирования для текущего блока с использованием режима широкоугольного внутреннего прогнозирования. Блок прогнозирования включает в себя множество прогнозных выборок. Видеокодер дополнительно выполнен с возможностью модифицировать прогнозную выборку из множества прогнозных выборок блока прогнозирования для того, чтобы формировать модифицированную прогнозную выборку с использованием позиционно-зависимого комбинирования с внутренним прогнозированием (PDPC). Модификация прогнозной выборки содержит: определение одной или более опорных выборок, которые являются внешними для текущего блока, на основе режима широкоугольного внутреннего прогнозирования; и модификацию прогнозной выборки для того, чтобы формировать модифицированную прогнозную выборку на основе определенной одной или более опорных выборок. Видеокодер дополнительно выполнен с возможностью определять остаточное значение для остаточного блока на основе модифицированной прогнозной выборки и выборочного значения в текущем блоке. Видеокодер дополнительно выполнен с возможностью передавать в служебных сигналах информацию, указывающую остаточное значение.[0013] In another example, a device for encoding video data is provided that includes a memory configured to store one or more prediction blocks and a video encoder comprising at least one of a fixed functional or programmable circuit. In some examples, the video encoder is configured to receive the current block of video data and determine the size of the current block. The video encoder is further configured to determine, based on the size of the current block, the wide-angle intra prediction mode to use for the current block. The video encoder is further configured to determine a prediction block for the current block using the wide-angle intra prediction mode. The prediction block includes a plurality of prediction samples. The video encoder is further configured to modify the prediction sample from the plurality of predictor samples of the predictor to generate a modified prediction sample using position-dependent intra-prediction combining (PDPC). Modifying the prediction sample comprises: determining one or more reference samples that are external to the current block based on the wide-angle intra prediction mode; and modifying the predictive sample to generate the modified predictive sample based on the determined one or more reference samples. The video encoder is further configured to determine a residual value for the residual block based on the modified predictive sample and the sample value in the current block. The video encoder is further configured to signal information indicative of the residual value.

[0014] В другом примере, машиночитаемый носитель хранения данных, сохраняющий инструкции, которые при выполнении инструктируют одному или более процессоров устройства для кодирования видеоданных: получать текущий блок видеоданных; определять размер текущего блока; определять, на основе размера текущего блока, режим широкоугольного внутреннего прогнозирования, который следует использовать для текущего блока; определять блок прогнозирования для текущего блока с использованием режима широкоугольного внутреннего прогнозирования, причем блок прогнозирования включает в себя множество прогнозных выборок; модифицировать прогнозную выборку из множества прогнозных выборок блока прогнозирования для того, чтобы формировать модифицированную прогнозную выборку с использованием позиционно-зависимого комбинирования с внутренним прогнозированием (PDPC), при этом модификация прогнозной выборки содержит: определение одной или более опорных выборок, которые являются внешними для текущего блока, на основе режима широкоугольного внутреннего прогнозирования; и модификацию прогнозной выборки для того, чтобы формировать модифицированную прогнозную выборку на основе определенной одной или более опорных выборок; определение остаточного значения для остаточного блока на основе модифицированной прогнозной выборки и выборочного значения в текущем блоке; и передачу в служебных сигналах информации, указывающей остаточное значение.[0014] In another example, a computer-readable storage medium that stores instructions that, when executed, instructs one or more processors of a video encoding device to: obtain the current block of video data; determine the size of the current block; determine, based on the size of the current block, a wide-angle intra prediction mode to be used for the current block; determine a prediction block for the current block using a wide-angle intra prediction mode, the prediction block including a plurality of prediction samples; modify the prediction sample from the plurality of prediction samples of the prediction block to generate a modified prediction sample using position-dependent intra-prediction combining (PDPC), wherein the modification of the prediction sample comprises: determining one or more reference samples that are external to the current block , based on the wide-angle indoor prediction mode; and modifying the predictive sample to generate a modified predictive sample based on the determined one or more reference samples; determining a residual value for the residual block based on the modified predictive sample and the sample value in the current block; and signaling information indicating the residual value.

[0015] В другом примере, предоставляется устройство для кодирования видеоданных. Устройство включает в себя средство для получения текущего блока видеоданных и средство для определения размера текущего блока. Устройство дополнительно включает в себя средство для определения, на основе размера текущего блока, режима широкоугольного внутреннего прогнозирования, который следует использовать для текущего блока. Устройство дополнительно включает в себя средство для определения блока прогнозирования для текущего блока с использованием режима широкоугольного внутреннего прогнозирования. Блок прогнозирования включает в себя множество прогнозных выборок. Устройство дополнительно включает в себя средство для модификации прогнозной выборки из множества прогнозных выборок блока прогнозирования для того, чтобы формировать модифицированную прогнозную выборку с использованием позиционно-зависимого комбинирования с внутренним прогнозированием (PDPC). Модификация прогнозной выборки содержит: определение одной или более опорных выборок, которые являются внешними для текущего блока, на основе режима широкоугольного внутреннего прогнозирования; и модификацию прогнозной выборки для того, чтобы формировать модифицированную прогнозную выборку на основе определенной одной или более опорных выборок. Устройство дополнительно включает в себя средство для определения остаточного значения для остаточного блока на основе модифицированной прогнозной выборки и выборочного значения в текущем блоке. Устройство дополнительно включает в себя средство для передачи в служебных сигналах информации, указывающей остаточное значение.[0015] In another example, a device for encoding video data is provided. The device includes means for obtaining the current block of video data and means for determining the size of the current block. The apparatus further includes means for determining, based on the size of the current block, a wide-angle intra prediction mode to use for the current block. The apparatus further includes means for determining a prediction block for the current block using the wide-angle intra prediction mode. The prediction block includes a plurality of prediction samples. The apparatus further includes means for modifying a prediction sample from a plurality of prediction samples of the predictor to generate a modified prediction sample using position-dependent intra-prediction combining (PDPC). Modifying the prediction sample comprises: determining one or more reference samples that are external to the current block based on the wide-angle intra prediction mode; and modifying the predictive sample to generate the modified predictive sample based on the determined one or more reference samples. The apparatus further includes means for determining a residual value for the residual block based on the modified predictive sample and the sample value in the current block. The apparatus further includes means for signaling information indicative of the residual value.

[0016] В некоторых аспектах, определение размера текущего блока включает в себя определение того, что ширина блока и высота блока представляют собой различные размеры.[0016] In some aspects, determining the size of the current block includes determining that the block width and block height are different sizes.

[0017] В некоторых аспектах, одна или более опорных выборок, которые являются внешними для текущего блока, определяются с использованием угла режима широкоугольного внутреннего прогнозирования относительно прогнозной выборки. В некоторых примерах, угол режима широкоугольного внутреннего прогнозирования составляет меньше -135 градусов или больше 45 градусов относительно прогнозной выборки.[0017] In some aspects, one or more reference samples that are external to the current block are determined using a wide-angle intra prediction mode angle relative to the predictive sample. In some examples, the wide angle intra prediction mode angle is less than -135 degrees or greater than 45 degrees with respect to the prediction sample.

[0018] В некоторых аспектах, способы, устройства и машиночитаемые носители, описанные выше, могут содержать определение одного или более весовых коэффициентов на основе координат X и Y прогнозной выборки. В таких аспектах, модификация прогнозной выборки содержит модификацию прогнозной выборки для того, чтобы формировать модифицированную прогнозную выборку на основе определенной одной или более опорных выборок, определенного одного или более весовых коэффициентов и прогнозной выборки.[0018] In some aspects, the methods, apparatuses, and computer-readable media described above may comprise determining one or more weighting factors based on the X and Y coordinates of the predictive sample. In such aspects, modifying the predictive sample comprises modifying the predictive sample to generate a modified predictive sample based on the determined one or more reference samples, the determined one or more weights, and the predictive sample.

[0019] В некоторых аспектах, определение одной или более опорных выборок, которые являются внешними для текущего блока, содержит определение одной или более опорных выборок, имеющих и координату X и координату Y, которые отличаются от соответствующих координаты X и координаты Y прогнозной выборки в блоке прогнозирования.[0019] In some aspects, defining 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 are different from the corresponding X coordinate and Y coordinate of the prediction sample in the block. forecasting.

[0020] В некоторых аспектах, определение одной или более опорных выборок, которые являются внешними для текущего блока, содержит: определение строки, которая находится выше текущего блока; определение координаты X в определенной строке, при этом координата X в определенной строке равна координате X прогнозной выборки плюс координата Y прогнозной выборки плюс 1; и определение опорной выборки из одной или более опорных выборок на основе определенной строки и определенной координаты X.[0020] In some aspects, defining one or more reference samples that are external to the current block comprises: defining a row that is above the current block; 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 determining a reference sample from one or more reference samples based on the determined row and the determined x-coordinate.

[0021] В некоторых аспектах, определение одной или более опорных выборок, которые являются внешними для текущего блока, содержит: определение столбца, который находится слева от текущего блока; определение координаты Y в определенном столбце, при этом координата Y в определенном столбце равна координате Y прогнозной выборки плюс координата X прогнозной выборки плюс 1; и определение опорной выборки из одной или более опорных выборок на основе определенного столбца и определенной координаты Y.[0021] In some aspects, defining one or more reference samples that are external to the current block comprises: defining a column that is to the left of the current block; determining a Y coordinate in the determined column, wherein the Y coordinate in the determined column is equal to the Y coordinate of the prediction sample plus the X coordinate of the prediction sample plus 1; and determining a reference sample from one or more reference samples based on the determined column and the determined Y coordinate.

[0022] В некоторых аспектах, определение одной или более опорных выборок, которые являются внешними для текущего блока, содержит: определение строки, которая находится выше текущего блока; определение координаты X в определенной строке, при этом координата X в определенной строке основана на углу режима широкоугольного внутреннего прогнозирования относительно прогнозной выборки; и определение опорной выборки из одной или более опорных выборок на основе определенной строки и определенной координаты X. В некоторых случаях, определение координаты X в определенной строке содержит: определение одного из котангенса или тангенса угла режима широкоугольного внутреннего прогнозирования; и определение координаты X в определенной строке на основе одного из котангенса или тангенса угла режима широкоугольного внутреннего прогнозирования, координаты X прогнозной выборки и координаты Y прогнозной выборки.[0022] In some aspects, defining one or more reference samples that are external to the current block comprises: defining a row that is above the current block; determining an X coordinate in the determined row, wherein the X coordinate in the determined row is based on an angle of the wide-angle intra prediction mode with respect to the prediction sample; and determining a reference sample from one or more reference samples based on the determined row and the determined X coordinate. In some cases, determining the X coordinate in the determined row comprises: determining one of the cotangent or tangent of the angle of the wide-angle intra prediction mode; and determining an X coordinate in the determined row based on one of the cotangent or tangent of the angle of the wide-angle intra prediction mode, the X coordinate of the prediction sample, and the Y coordinate of the prediction sample.

[0023] В некоторых аспектах, определение одной или более опорных выборок, которые являются внешними для текущего блока, содержит: определение столбца, который находится слева от текущего блока; определение координаты Y в определенном столбце, при этом координата Y в определенном столбце основана на углу режима широкоугольного внутреннего прогнозирования; и определение опорной выборки из одной или более опорных выборок на основе определенного столбца и определенной координаты Y. В некоторых случаях, определение координаты Y в определенном столбце содержит: определение одного из котангенса или тангенса угла режима широкоугольного внутреннего прогнозирования; и определение координаты Y в определенном столбце на основе одного из котангенса или тангенса угла режима широкоугольного внутреннего прогнозирования, координаты X прогнозной выборки и координаты Y прогнозной выборки.[0023] In some aspects, defining one or more reference samples that are external to the current block comprises: defining a column that is to the left of the current block; determining a Y coordinate in the determined column, wherein the Y coordinate in the determined column is based on an angle of the wide-angle intra prediction mode; and determining a reference sample from one or more reference samples based on the determined column and the determined Y coordinate. In some cases, determining the Y coordinate in the determined column comprises: determining one of the cotangent or tangent of the angle of the wide-angle intra prediction mode; and determining a Y coordinate in a certain column based on one of a cotangent or a tangent of an angle of the wide-angle intra prediction mode, an X coordinate of the prediction sample, and a Y coordinate of the prediction sample.

[0024] В некоторых аспектах, определение одной или более опорных выборок, которые являются внешними для текущего блока, на основе режима широкоугольного внутреннего прогнозирования содержит: определение набора из одной или более выборок на основе режима широкоугольного внутреннего прогнозирования; и, по меньшей мере, одно из интерполяции, округления со смещением или округления без смещения набора из одной или более выборок для того, чтобы формировать одну или более опорных выборок.[0024] In some aspects, determining one or more reference samples that are external to the current block based on the wide-angle intra mode comprises: determining a set of one or more samples based on the wide-angle intra mode; and at least one of interpolating, rounding with a bias, or rounding without a bias of a set of one or more samples in order to generate one or more reference samples.

[0025] В некоторых аспектах, определение одной или более опорных выборок, которые являются внешними для текущего блока, на основе режима широкоугольного внутреннего прогнозирования содержит: определение того, что одна или более выборок, внешних для текущего блока, идентифицированного на основе режима широкоугольного внутреннего прогнозирования, не сохраняются в опорном линейном буфере; и определение одной или более опорных выборок на основе последней опорной выборки, сохраненной в опорном линейном буфере.[0025] In some aspects, determining one or more reference samples that are external to the current block based on the wide-angle intra prediction mode comprises: determining that one or more samples external to the current block identified based on the wide-angle intra prediction mode , are not stored in the reference linear buffer; and determining one or more reference samples based on the last reference sample stored in the linear reference buffer.

[0026] В некоторых аспектах, модификация прогнозной выборки из множества прогнозных выборок блока прогнозирования содержит модификацию первой прогнозной выборки блока прогнозирования. В таких аспектах, одна или более опорных выборок содержат первый набор из одной или более опорных выборок. В таких аспектах, способы, устройства и машиночитаемые носители, описанные выше, могут содержать: определение, для второй прогнозной выборки блока прогнозирования, того, что, по меньшей мере, одна опорная выборка из второго набора из одной или более опорных выборок для второй прогнозной выборки не сохраняется в опорном линейном буфере; и одно из неприменения PDPC ко второй прогнозной выборке или применения PDPC только с использованием опорных выборок, доступных в опорном линейном буфере.[0026] In some aspects, modifying a prediction sample of a plurality of prediction samples of a prediction block comprises modifying a first prediction sample of the prediction block. In such aspects, one or more reference samples comprise a first set of one or more reference samples. In such aspects, the methods, apparatuses, and computer-readable media described above may comprise: determining, for a second prediction sample of a prediction block, that at least one reference sample from a second set of one or more reference samples for the second prediction sample not stored in the reference line buffer; and one of not applying the PDPC to the second predictive sample, or applying the PDPC only using the reference samples available in the linear reference buffer.

[0027] В некоторых аспектах, режим широкоугольного внутреннего прогнозирования не представляет собой режим DC-, планарного, горизонтального или вертикального внутреннего прогнозирования.[0027] In some aspects, the wide-angle intra prediction mode is not a DC-, planar, horizontal, or vertical intra prediction mode.

[0028] В некоторых аспектах, устройство для декодирования видеоданных содержит дисплей, выполненный с возможностью отображать текущий блок. В некоторых аспектах, устройство для декодирования видео содержит одно или более из камеры, компьютера, мобильного устройства, широковещательного приемного устройства или абонентской приставки.[0028] In some aspects, the device for decoding video data includes a display configured to display the current block. In some aspects, the video decoding device comprises one or more of a camera, a computer, a mobile device, a broadcast receiver, or a set-top box.

[0029] В некоторых аспектах, устройство для кодирования видеоданных содержит дисплей, выполненный с возможностью отображать текущий блок. В некоторых аспектах, устройство для кодирования видео содержит одно или более из камеры, компьютера, мобильного устройства, широковещательного приемного устройства или абонентской приставки.[0029] In some aspects, the device for encoding video data contains a display configured to display the current block. In some aspects, the video encoding device comprises one or more of a camera, a computer, a mobile device, a broadcast receiver, or a set-top box.

[0030] Эта сущность не имеет намерением ни то, чтобы идентифицировать ключевые или существенные признаки заявленного предмета изобретения, ни то, чтобы использоваться изолированно таким образом, что она определяет объем заявленного предмета изобретения. Предмет изобретения должен пониматься со ссылкой на соответствующие части всего подробного описания этого патента, любых чертежей и каждого пункта формулы изобретения.[0030] This summary is neither intended to identify key or essential features of the claimed subject matter, nor to be used in isolation such that it defines the scope of the claimed subject matter. The subject matter of the invention is to be understood with reference to the relevant parts of the entire detailed description of this patent, any drawings and each claim.

[0031] Вышеприведенные, наряду с другими признаками и вариантами осуществления, должны становиться очевидными после прочтения нижеприведенного подробного описания, формулы изобретения и прилагаемых чертежей.[0031] The above, along with other features and embodiments, should become apparent upon reading the detailed description below, the claims, and the accompanying drawings.

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

[0032] Ниже подробно описываются иллюстративные варианты осуществления настоящей заявки со ссылкой на следующие чертежи:[0032] Exemplary embodiments of the present application are described in detail below with reference to the following drawings:

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

[0034] Фиг. 2A и 2B являются концептуальными схемами, иллюстрирующими примеры весовых коэффициентов позиционно-зависимого комбинирования с (внутренним) прогнозированием (PDPC) в DC-режиме для прогнозных выборочных позиций в блоке 4×4, в соответствии с некоторыми примерами;[0034] FIG. 2A and 2B are conceptual diagrams illustrating examples of DC-mode position dependent (internal) prediction combining (PDPC) weights for predictive sample positions in a 4x4 block, in accordance with some examples;

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

[0036] Фиг. 4A является концептуальной схемой, иллюстрирующей пример режима вверх и вправо по диагонали, в соответствии с некоторыми примерами;[0036] FIG. 4A is a conceptual diagram illustrating an example of the up and right diagonal mode, according to some examples;

[0037] Фиг. 4B является концептуальной схемой, иллюстрирующей пример режима вниз и влево по диагонали, в соответствии с некоторыми примерами;[0037] FIG. 4B is a conceptual diagram illustrating an example of a diagonal down and left mode according to some examples;

[0038] Фиг. 4C является концептуальной схемой, иллюстрирующей пример смежного режима вверх и вправо по диагонали, в соответствии с некоторыми примерами;[0038] FIG. 4C is a conceptual diagram illustrating an example of the diagonal up and right adjacent mode, according to some examples;

[0039] Фиг. 4D является концептуальной схемой, иллюстрирующей пример смежного режима вниз и влево по диагонали, в соответствии с некоторыми примерами;[0039] FIG. 4D is a conceptual diagram illustrating an example of a diagonal down and left adjacent mode, according to some examples;

[0040] Фиг. 5 является концептуальной схемой, иллюстрирующей пример режима направленного внутреннего прогнозирования, в соответствии с некоторыми примерами;[0040] FIG. 5 is a conceptual diagram illustrating an example of a directional intra prediction mode according to some examples;

[0041] Фиг. 6 является концептуальной схемой, иллюстрирующей примеры режимов направленного внутреннего прогнозирования, включающих в себя широкоугольные режимы, в соответствии с некоторыми примерами;[0041] FIG. 6 is a conceptual diagram illustrating examples of directional intra prediction modes including wide-angle modes, according to some examples;

[0042] Фиг. 7 является концептуальной схемой, иллюстрирующей пример режима внутреннего прогнозирования с использованием широкоугольного режима и PDPC, при этом PDPC выполняется с использованием широкоугольного режима, в соответствии с некоторыми примерами;[0042] FIG. 7 is a conceptual diagram illustrating an example of intra prediction mode using wide-angle mode and PDPC, wherein PDPC is performed using wide-angle mode, according to some examples;

[0043] Фиг. 8 является концептуальной схемой, иллюстрирующей другой пример режима внутреннего прогнозирования с использованием широкоугольного режима и PDPC, при этом PDPC выполняется с использованием широкоугольного режима, в соответствии с некоторыми примерами;[0043] FIG. 8 is a conceptual diagram illustrating another example of intra prediction mode using wide-angle mode and PDPC, wherein PDPC is performed using wide-angle mode, according to some examples;

[0044] Фиг. 9 является блок-схемой последовательности операций способа, иллюстрирующей пример процесса для декодирования видеоданных, в соответствии с некоторыми примерами;[0044] FIG. 9 is a flowchart illustrating an example of a process for decoding video data, in accordance with some examples;

[0045] Фиг. 10 является блок-схемой последовательности операций способа, иллюстрирующей пример процесса для кодирования видеоданных, в соответствии с некоторыми примерами; и[0045] FIG. 10 is a flowchart illustrating an example of a process for encoding video data, in accordance with some examples; and

[0046] Фиг. 11 является блок-схемой, иллюстрирующей пример видеокодера, в соответствии с некоторыми примерами; и[0046] FIG. 11 is a block diagram illustrating an example of a video encoder according to some examples; and

[0047] Фиг. 12 является блок-схемой, иллюстрирующей пример видеодекодера, в соответствии с некоторыми примерами.[0047] FIG. 12 is a block diagram illustrating an example of a video decoder according to some examples.

Подробное описание изобретенияDetailed description of the invention

[0048] Ниже предоставляются конкретные аспекты и варианты осуществления этого раскрытия сущности. Некоторые из этих аспектов и вариантов осуществления могут применяться независимо, и некоторые из них могут применяться в комбинации, как должно быть очевидным для специалистов в данной области техники. В нижеприведенном описании, для целей пояснения, конкретные подробности изложены для того, чтобы предоставлять полное понимание вариантов осуществления заявки. Тем не менее, должно быть очевидным то, что различные варианты осуществления могут осуществляться на практике без этих конкретных подробностей. Чертежи и описание не имеют намерение быть ограничивающими.[0048] Specific aspects and embodiments of this disclosure are provided below. Some of these aspects and embodiments may be used independently, and some of them may be used in combination, as will be apparent to those skilled in the art. In the description below, for purposes of explanation, specific details are set forth in order to provide a thorough understanding of the embodiments of the application. However, it should be apparent that various embodiments may be practiced without these specific details. The drawings and description are not intended to be limiting.

[0049] Нижеприведенное описание предоставляет только примерные варианты осуществления и не имеет намерение ограничивать объем, применимость или конфигурацию раскрытия сущности. Наоборот, нижеприведенное описание примерных вариантов осуществления должно предоставлять специалистам в данной области техники достаточное описание для реализации примерного варианта осуществления. Следует понимать, что различные изменения могут вноситься в функцию и компоновку элементов без отступления от сущности и объема заявки, изложенной в прилагаемой формуле изобретения.[0049] The following description provides only exemplary embodiments and is not intended to limit the scope, applicability, or configuration of the disclosure. Rather, the following description of exemplary embodiments should provide those skilled in the art with sufficient description to implement the exemplary embodiment. It should be understood that various changes may be made to the function and arrangement of the elements without departing from the spirit and scope of the application as set forth in the appended claims.

[0050] Устройства кодирования видео (также называемые "видеокодерами") реализуют технологии сжатия видео для того, чтобы эффективно кодировать и декодировать видеоданные. Технологии сжатия видео могут включать в себя применение различных режимов прогнозирования, включающих в себя пространственное прогнозирование (например, внутрикадровое прогнозирование или внутреннее прогнозирование), временное прогнозирование (например, межкадровое прогнозирование или взаимное прогнозирование), межслойное прогнозирование (между различными слоями видеоданных) и/или другие технологии прогнозирования для того, чтобы уменьшать или удалять избыточность, внутренне присущую в видеопоследовательностях. Видеокодер может сегментировать каждый кинокадр исходной видеопоследовательности на прямоугольные области, называемые "видеоблоками" или "единицами кодирования" (подробнее описываются ниже). Эти видеоблоки могут кодироваться с использованием конкретного режима прогнозирования.[0050] Video encoding devices (also referred to as "video encoders") implement video compression technologies in order to efficiently encode and decode video data. Video compression techniques may include applying various prediction modes, including spatial prediction (eg, intra-frame prediction or intra-prediction), temporal prediction (eg, inter-frame prediction or inter-prediction), inter-layer prediction (between different layers of video data), and/or other prediction technologies to reduce or remove redundancy inherent in video sequences. The video encoder may segment each movie frame of the source video sequence into rectangular regions called "video blocks" or "coding units" (described in more detail below). These video blocks may be encoded using a particular prediction mode.

[0051] Видеоблоки могут разделяться одним или более способов на одну или более групп меньших блоков. Блоки могут включать в себя блоки дерева кодирования, блоки прогнозирования, блоки преобразования и/или другие подходящие блоки. Ссылки, в общем, на "блок", если не указано иное, могут ссылаться на такие видеоблоки (например, блоки дерева кодирования, блоки кодирования, блоки прогнозирования, блоки преобразования или другие соответствующие блоки или субблоки, как должны понимать специалисты в данной области техники). Дополнительно, каждый из этих блоков также может взаимозаменяемо называться в данном документе "единицами" (например, "единица дерева кодирования (CTU)", "единица кодирования", "единица прогнозирования (PU)", "единица преобразования (TU)" и т.п.). В некоторых случаях, единица может указывать логическую единицу кодирования, которая кодируется в потоке битов, в то время как блок может указывать часть буфера видеокадров, для которой процесс является целью.[0051] Video blocks may be divided in one or more ways into one or more groups of smaller blocks. The blocks may include coding tree blocks, prediction blocks, transform blocks, and/or other suitable blocks. References, in general, to a "block", unless otherwise indicated, may refer to such video blocks (e.g., coding tree blocks, coding blocks, prediction blocks, transform blocks, or other appropriate blocks or sub-blocks, as will be understood by those skilled in the art ). Additionally, each of these units may also be referred to interchangeably herein as "units" (e.g., "coding tree unit (CTU)", "coding unit", "prediction unit (PU)", "transformation unit (TU)", etc. .P.). In some cases, a unit may indicate a logical coding unit that is encoded in the bitstream, while a block may indicate the portion of the video frame buffer that the process is targeting.

[0052] Для режимов взаимного прогнозирования, видеокодер может выполнять поиск блока, аналогичного блоку, кодируемому в кадре (или кинокадре), расположенном в другом временном местоположении, называемом "опорным кадром" или "опорным кинокадром". Видеокодер может ограничивать поиск определенным пространственным смещением от блока, который должен кодироваться. Наилучшее совпадение может находиться с использованием двумерного вектора движения, который включает в себя горизонтальный компонент смещения и вертикальный компонент смещения. Для режимов внутреннего прогнозирования, видеокодер может формировать прогнозированный блок с использованием технологий пространственного прогнозирования на основе данных из ранее кодированных соседних блоков в идентичном кинокадре.[0052] For inter-prediction modes, the video encoder may search for a block similar to the block encoded in a frame (or movie frame) located at a different temporal location called a "reference frame" or "reference movie frame". The video encoder may limit the search to a specific spatial offset from the block to be encoded. The best match can be found using a 2D motion vector that includes a horizontal displacement component and a vertical displacement component. For intra prediction modes, the video encoder may generate a predicted block using spatial prediction techniques based on data from previously encoded adjacent blocks in the same movie frame.

[0053] Видеокодер может определять ошибку прогнозирования. Например, прогнозирование может определяться в качестве разности между пиксельными значениями (или выборочными значениями) в кодируемом блоке и прогнозированном блоке. Ошибка прогнозирования также может называться "остатком". Видеокодер также может применять преобразование к ошибке прогнозирования (например, дискретное косинусное преобразование (DCT) или другое подходящее преобразование) для того, чтобы формировать коэффициенты преобразования. После преобразования, видеокодер может квантовать коэффициенты преобразования. Квантованные коэффициенты преобразования и векторы движения могут представляться с использованием синтаксических элементов и, наряду с управляющей информацией, формировать кодированное представление видеопоследовательности. В некоторых случаях, видеокодер может энтропийно кодировать синтаксические элементы, за счет этого дополнительно уменьшая число битов, необходимых для их представления.[0053] The video encoder may determine the prediction error. For example, the prediction may be defined as the difference between the pixel values (or sample values) in the encoded block and the predicted block. The prediction error may also be referred to as a "residual". The video encoder may also apply a transform to the prediction error (eg, a discrete cosine transform (DCT) or other suitable transform) in order to generate transform coefficients. After the transform, the video encoder may quantize the transform coefficients. The quantized transform coefficients and motion vectors may be represented using syntax elements and, along with control information, form an encoded representation of the video sequence. In some cases, the video encoder may entropy encode the syntax elements, thereby further reducing the number of bits required to represent them.

[0054] Видеодекодер, с использованием синтаксических элементов и управляющей информации, поясненной выше, может конструировать прогнозирующие данные (например, прогнозирующий блок) для декодирования текущего кадра. Например, видеодекодер может суммировать прогнозированный блок и сжатую ошибку прогнозирования. Видеодекодер может определять сжатую ошибку прогнозирования посредством взвешивания базисных функций преобразования с использованием квантованных коэффициентов. Разность между восстановленным кадром и исходным кадром называется "ошибкой восстановления".[0054] The video decoder, using the syntax elements and control information explained above, may construct predictive data (eg, a predictor block) for decoding the current frame. For example, the video decoder may sum the predicted block and the compressed prediction error. The video decoder may determine the compressed prediction error by weighting the transform basis functions using the quantized coefficients. The difference between the reconstructed frame and the original frame is called the "recovery error".

[0055] Это раскрытие сущности описывает системы и технологии для кодирования одной или более выборок и/или блоков видеоданных с использованием внутреннего прогнозирования и позиционно-зависимого комбинирования с (внутренним) прогнозированием (PDPC). Например, режим широкоугольного внутреннего прогнозирования может выполняться для того, чтобы формировать блок прогнозирования прогнозных выборок. Режимы широкоугольного внутреннего прогнозирования используют углы за пределами стандартных углов от -135 градусов (режим 2 внутреннего прогнозирования) до 45 градусов (режим 66 внутреннего прогнозирования) и могут использовать углы, которые меньше -135 градусов, и/или углы, которые больше 45 градусов относительно вертикального направления из прогнозной выборки. Системы и технологии, предоставленные в настоящем документе, расширяют использование PDPC на такие режимы широкоугольного внутреннего прогнозирования, с тем чтобы определять опорные выборки, которые используются для того, чтобы модифицировать прогнозные выборки блока прогнозирования.[0055] This disclosure describes systems and technologies for encoding one or more samples and/or blocks of video data using intra prediction and position-dependent combining with (intra) prediction (PDPC). For example, a wide-angle intra prediction mode may be performed in order to generate a predictive sample prediction block. The wide-angle intra prediction modes use angles outside the standard angles of -135 degrees (intra prediction mode 2) to 45 degrees (intra prediction mode 66) and may use angles that are less than -135 degrees and/or angles that are greater than 45 degrees relative to vertical direction from the predictive sample. The systems and technologies provided herein extend the use of PDPC to such wide-angle intra prediction modes in order to determine the reference samples that are used to modify the predictor samples of the predictor.

[0056] Системы и технологии, описанные в данном документе, вводят улучшение по эффективности сжатия, в общем, при кодировании выборки и/или блока видеоданных. Например, эффективность сжатия предоставляется посредством выполнения PDPC-подхода, который использует широкоугольные режимы, частично вследствие опорных выборок, которые находятся ближе к прогнозной выборке, используемой для PDPC. Эффективность сжатия, в общем, представляет собой требуемую цель при совершенствовании уровня существующих технологий кодирования видео.[0056] The systems and technologies described herein introduce an improvement in compression efficiency, in general, when encoding a sample and/or block of video data. For example, compression efficiency is provided by performing a PDPC approach that uses wide-angle modes, due in part to reference samples that are closer to the predictive sample used for PDPC. Compression efficiency is, in general, a desirable goal when improving the level of existing video coding technologies.

[0057] При использовании в этом раскрытии сущности, термин "кодирование видео" обобщенно означает либо кодирование видео, либо декодирование видео. Аналогично, термин "видеокодер" может обобщенно означать видеокодер, видеодекодер или комбинированный видеокодер-декодер (кодек). Кроме того, определенные технологии, описанные в этом раскрытии сущности относительно декодирования видео, также могут применяться к кодированию видео, и наоборот. Например, видеокодеры и видеодекодеры могут быть выполнены с возможностью выполнять идентичный процесс или взаимообратные процессы. Кроме того, видеокодеры типично выполняют декодирование видео в качестве части процессов определения того, как кодировать видеоданные. Таким образом, если не указано иное, не следует предполагать, что технология, описанная относительно декодирования видео, не может также выполняться в качестве части кодирования видео, или наоборот.[0057] As used in this disclosure, the term "video coding" generically means either video coding or video decoding. Similarly, the term "video encoder" can generically mean a video encoder, a video decoder, or a combined video encoder/decoder (codec). In addition, certain techniques described in this disclosure regarding video decoding may also be applied to video coding, and vice versa. For example, video encoders and video decoders may be 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 noted, it should not be assumed that the technology described with respect to video decoding cannot also be performed as part of video coding, or vice versa.

[0058] Это раскрытие сущности также может использовать такие термины, как "текущий слой", "текущий блок", "текущий кинокадр", "текущий срез" и т.д. В контексте этого раскрытия сущности, термин "текущий" имеет намерение идентифицировать блок, кинокадр, срез и т.д., который в данный момент кодируется, например, в отличие от ранее или уже кодированных блоков, кинокадров и срезов либо подлежащих кодированию блоков, кинокадров и срезов.[0058] This disclosure may also use terms such as "current layer", "current block", "current movie frame", "current slice", etc. In the context of this disclosure, the term "current" is intended to identify a block, movie frame, slice, etc., that is currently being encoded, e.g., as opposed to previously or already coded blocks, movie frames, and slices, or blocks, movie frames to be coded. and slices.

[0059] Технологии, описанные в данном документе, могут применяться к любому из существующих видеокодеков (например, по стандарту высокоэффективного кодирования видео (HEVC), стандарту усовершенствованного кодирования видео (AVC) или к другому подходящему существующему видеокодеку) и/или могут представлять собой эффективное инструментальное средство кодирования для любых разрабатываемых стандартов кодирования видео и/или будущих стандартов кодирования видео, таких как, например, стандарт универсального кодирования видео (VVC), стандарт объединенной исследовательской группы по тестовой модели (JEM) и/или другой стандарт кодирования видео, разрабатываемый или подлежащий разработке. Хотя примеры предоставляются в данном документе с использованием кодирования видео в качестве иллюстрации, в некоторых случаях, технологии, описанные в данном документе, могут выполняться с использованием любого устройства кодирования, такого как кодер изображений (например, JPEG-кодер и/или декодер и т.п.), видеокодер (например, видеокодер и/или видеодекодер) или другое подходящее устройство кодирования.[0059] The techniques described herein may be applied to any of the existing video codecs (e.g., High Efficiency Video Coding (HEVC), Advanced Video Coding (AVC), or other suitable existing video codec) and/or may be an effective coding tool for any video coding standards under development and/or future video coding standards such as, for example, the Universal Video Coding (VVC) standard, the Joint Research Group Test Model (JEM) standard and/or other video coding standard under development or to be developed. Although examples are provided herein using video encoding as an illustration, in some cases, the techniques described herein may be performed using any encoding device such as an image encoder (e.g., JPEG encoder and/or decoder, etc.). etc.), a video encoder (eg, a video encoder and/or a video decoder), or other suitable encoding device.

[0060] Фиг. 1 является блок-схемой, иллюстрирующей примерную систему 10 кодирования и декодирования видео, которая может использовать технологии этого раскрытия сущности для кодирования одной или более выборок и/или блоков видеоданных. В некоторых примерах, система 10 кодирования и декодирования видео может кодировать видеоданные с использованием PDPC-подхода, когда несколько опорных линий используются для формирования внутренне кодированных прогнозных выборок и/или для формирования опорных PDPC-выборок, используемых для модификации внутренне кодированных прогнозных выборок. MRL-режим включает в себя использование нескольких опорных линий, которые находятся в окружении текущего блока.[0060] 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 one or more samples and/or blocks of video data. In some examples, video encoding and decoding system 10 may encode video data using a PDPC approach where multiple reference lines are used to generate intra-coded predictive samples and/or to generate PDPC reference samples used to modify the intra-coded predictive samples. MRL mode involves the use of multiple reference lines that are surrounded by the current block.

[0061] Как показано на фиг. 1, система 10 включает в себя исходное устройство 12, которое предоставляет кодированные видеоданные, которые должны декодироваться впоследствии посредством целевого устройства 14. В частности, исходное устройство 12 предоставляет видеоданные в целевое устройство 14 через машиночитаемый носитель 16. Исходное устройство 12 и целевое устройство 14 могут содержать любые из широкого диапазона устройств, включающих в себя настольные компьютеры, ноутбуки (т.е. переносные компьютеры), планшетные компьютеры, абонентские приставки, телефонные трубки, к примеру, так называемые смартфоны, телевизионные приемники, камеры, устройства отображения, цифровые мультимедийные проигрыватели, консоли для видеоигр, устройство потоковой передачи видео и т.п. В некоторых случаях, исходное устройство 12 и целевое устройство 14 могут быть оснащены возможностями беспроводной связи. Таким образом, исходное устройство 12 и целевое устройство 14 могут представлять собой устройства беспроводной связи. Исходное устройство 12 представляет собой примерное устройство кодирования видео (т.е. устройство для кодирования видеоданных). Целевое устройство 14 представляет собой примерное устройство декодирования видео (например, устройство или оборудование для декодирования видеоданных).[0061] As shown in FIG. 1, system 10 includes a source device 12 that provides encoded video data to be subsequently decoded by a target device 14. In particular, source device 12 provides video data to a target device 14 via a computer-readable medium 16. Source device 12 and target device 14 may contain any of a wide range of devices including desktops, laptops (i.e. laptops), tablets, set-top boxes, handsets, such as so-called smartphones, televisions, cameras, display devices, digital media players , video game consoles, video streaming device, etc. In some cases, source device 12 and destination device 14 may be equipped with wireless capabilities. Thus, source device 12 and target device 14 may be wireless communication devices. Source device 12 is an exemplary video encoding device (ie, a device for encoding video data). Target device 14 is an exemplary video decoding device (eg, video decoding device or equipment).

[0062] В примере по фиг. 1, исходное устройство 12 включает в себя видеоисточник 18, носители 20 хранения данных, выполненные с возможностью сохранять видеоданные, видеокодер 22 и интерфейс 24 вывода. Целевое устройство 14 включает в себя интерфейс 26 ввода, носители 28 хранения данных, выполненные с возможностью сохранять кодированные видеоданные, видеодекодер 30 и устройство 32 отображения. В других примерах, исходное устройство 12 и целевое устройство 14 включают в себя другие компоненты или компоновки. Например, исходное устройство 12 может принимать видеоданные из внешнего видеоисточника, такого как внешняя камера. Аналогично, целевое устройство 14 может взаимодействовать с внешним устройством отображения вместо включения в себя интегрированного устройства отображения.[0062] In the example of 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 target 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 target 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, target device 14 may interact with an external display device instead of including an integrated display device.

[0063] Проиллюстрированная система 10 по фиг. 1 представляет собой просто один пример. Технологии для обработки видеоданных могут выполняться посредством любого устройства или оборудования кодирования и/или декодирования цифрового видео. Хотя, в общем, технологии этого раскрытия сущности выполняются посредством устройства кодирования видео и устройства декодирования видео, технологии также могут выполняться посредством видеокодера/декодера, типично называемого "кодеком". Исходное устройство 12 и целевое устройство 14 представляют собой просто примеры таких устройств кодирования, в которых исходное устройство 12 формирует кодированные видеоданные для передачи в целевое устройство 14. В некоторых примерах, исходное устройство 12 и целевое устройство 14 работают практически симметрично таким образом, что каждое из исходного устройства 12 и целевого устройства 14 включает в себя компоненты кодирования и декодирования видео. Следовательно, система 10 может поддерживать одностороннюю и двухстороннюю передачу видео между исходным устройством 12 и целевым устройством 14, к примеру, для потоковой передачи видео, воспроизведения видео, широковещательной передачи видео или видеотелефонии.[0063] The illustrated system 10 of FIG. 1 is just one example. Techniques for processing video data may be performed by any device or equipment for encoding and/or decoding digital video. Although, in general, the techniques of this disclosure are performed by a video encoder and a video decoder, the techniques may also be performed by a video encoder/decoder, typically 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 substantially symmetrically such that each of source device 12 and destination device 14 includes video encoding and decoding components. Therefore, system 10 can support one-way and two-way video transmission between source device 12 and destination device 14, such as for video streaming, video playback, video broadcast, or video telephony.

[0064] Видеоисточник 18 исходного устройства 12 может включать в себя устройство видеозахвата, такое как видеокамера, видеоархив, содержащий ранее захваченное видео, и/или интерфейс прямых видеотрансляций для того, чтобы принимать видеоданные от поставщика видеконтента. В качестве дополнительной альтернативы, видеоисточник 18 может формировать данные компьютерной графики в качестве исходного видео либо комбинацию передаваемого вживую видео, архивного видео и машиногенерируемого видео. Исходное устройство 12 может содержать один или более носителей хранения данных (например, носителей 20 хранения данных), выполненных с возможностью сохранять видеоданные. Технологии, описанные в этом раскрытии сущности, могут быть применимыми к кодированию видео в целом и могут применяться к беспроводным и/или проводным вариантам применения. В каждом случае, захваченное, предварительно захваченное или машиногенерируемое видео может кодироваться посредством видеокодера 22. Интерфейс 24 вывода может выводить кодированную видеоинформацию в машиночитаемый носитель 16.[0064] 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 live video interface for receiving video data from a video content provider. As a further alternative, video source 18 may generate computer graphics 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 be applicable to video coding in general and may apply to wireless and/or wired applications. In each case, captured, pre-captured, or machine-generated video may be encoded by video encoder 22. Output interface 24 may output encoded video information to computer-readable medium 16.

[0065] Целевое устройство 14 может принимать кодированные видеоданные, которые должны декодироваться, через машиночитаемый носитель 16. Машиночитаемый носитель 16 может содержать любой тип носителя или устройства, допускающего перемещение кодированных видеоданных из исходного устройства 12 в целевое устройство 14. В некоторых примерах, машиночитаемый носитель 16 содержит среду связи для того, чтобы обеспечивать возможность исходному устройству 12 передавать кодированные видеоданные непосредственно в целевое устройство 14 в реальном времени. Кодированные видеоданные могут модулироваться согласно стандарту связи, такому как протокол беспроводной связи, и передаваться в целевое устройство 14. Среда связи может содержать любую беспроводную или проводную среду связи, такую как радиочастотный (RF) спектр или одна или более физических линий передачи. Среда связи может формировать часть сети с коммутацией пакетов, такой как локальная вычислительная сеть, глобальная вычислительная сеть либо глобальная сеть, такая как Интернет. Среда связи может включать в себя маршрутизаторы, коммутаторы, базовые станции или любое другое оборудование, которое может быть полезным для того, чтобы упрощать связь из исходного устройства 12 в целевое устройство 14. Целевое устройство 14 может содержать один или более носителей хранения данных, выполненных с возможностью сохранять кодированные видеоданные и декодированные видеоданные.[0065] Target 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 for allowing source device 12 to transmit encoded video data directly to target 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 target 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-switched 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 order to facilitate communication from source device 12 to destination device 14. Destination device 14 may include one or more storage media configured with the ability to store encoded video data and decoded video data.

[0066] В некоторых примерах, кодированные данные (например, кодированные видеоданные) могут выводиться из интерфейса 24 вывода в устройство хранения данных. Аналогично, к кодированным данным может осуществляться доступ из устройства хранения данных посредством интерфейса 26 ввода. Устройство хранения данных может включать в себя любые из множества распределенных или локально доступных носителей хранения данных, таких как жесткий диск, Blu-Ray-диски, DVD, CD-ROM, флэш-память, энергозависимое или энергонезависимое запоминающее устройство либо любые другие подходящие цифровые носители хранения данных для сохранения кодированных видеоданных. В дополнительном примере, устройство хранения данных может соответствовать файловому серверу или другому промежуточному устройству хранения данных, которое может сохранять кодированное видео, сформированное посредством исходного устройства 12. Целевое устройство 14 может осуществлять доступ к сохраненным видеоданным из устройства хранения данных, например, через потоковую передачу или загрузку. Файловый сервер может представлять собой любой тип сервера, допускающего сохранение кодированных видеоданных и передачу этих кодированных видеоданных в целевое устройство 14. Примерные файловые серверы включают в себя веб-сервер (например, для веб-узла), FTP-сервер, устройства системы хранения данных с подключением по сети (NAS) или локальный накопитель на дисках. Целевое устройство 14 может осуществлять доступ к кодированным видеоданным через любое стандартное соединение для передачи данных, включающее в себя Интернет-соединение. Оно может включать в себя беспроводной канал (например, Wi-Fi-соединение), проводное соединение (например, DSL, кабельный модем и т.д.), либо комбинацию означенного, которая является подходящей для осуществления доступа к кодированным видеоданным, сохраненным на файловом сервере. Передача кодированных видеоданных из устройства хранения данных может представлять собой потоковую передачу, передачу на основе загрузки либо комбинацию вышеозначенного.[0066] In some examples, encoded data (eg, encoded video data) may be output from the output interface 24 to a data storage device. Similarly, the encoded data can be accessed from the data 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 storage, or any other suitable digital media. data storage for storing encoded video data. In a further example, the storage device may correspond to a file server or other intermediate storage device that may store the encoded video generated by the source device 12. The destination device 14 may access the stored video data from the storage device, such as via streaming or loading. The file server may be any type of server capable of storing the encoded video data and transmitting that encoded video data to the target device 14. Exemplary file servers include a web server (eg, for a web site), an FTP server, storage devices with network connection (NAS) or local disk storage. The target device 14 may access the encoded video data over any standard data connection, including an Internet connection. It may include a wireless channel (for example, a Wi-Fi connection), a wired connection (for example, DSL, cable modem, etc.), or a combination of the above, which is 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-based transmission, or a combination of the above.

[0067] Технологии этого раскрытия сущности могут применяться к кодированию видео в поддержку любых из множества мультимедийных вариантов применения, таких как телевизионные широковещательные передачи по радиоинтерфейсу, кабельные телевизионные передачи, спутниковые телевизионные передачи, потоковые передачи видео по Интернету, такие как технологии адаптивной потоковой передачи, включающие в себя динамическую адаптивную потоковую передачу по HTTP (DASH), цифровое видео, которое кодируется на носитель хранения данных, декодирование цифрового видео, сохраненного на носителе хранения данных, или другие варианты применения. В некоторых примерах, система 10 может быть выполнена с возможностью поддерживать одностороннюю или двустороннюю передачу видео для того, чтобы поддерживать такие варианты применения, как потоковая передача видео, воспроизведение видео, широковещательная передача видео и/или видеотелефония.[0067] The techniques of this disclosure may be applied to video coding in support of any of a variety of multimedia applications such as over-the-air television broadcasts, cable television, satellite television, video streaming over the Internet such as adaptive streaming technologies, including Dynamic Adaptive Streaming over HTTP (DASH), digital video that is encoded to 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 one-way or two-way video in order to support applications such as video streaming, video playback, video broadcast, and/or video telephony.

[0068] Машиночитаемый носитель 16 может включать в себя энергозависимые носители, такие как беспроводная широковещательная передача или проводная сетевая передача, либо носители хранения данных (т.е. энергонезависимые носители хранения данных), такие как жесткий диск, флэш-накопитель, компакт-диск, цифровой видеодиск, Blu-Ray-диск или другие машиночитаемые носители. В некоторых примерах, сетевой сервер (не показан) может принимать кодированные видеоданные из исходного устройства 12 и предоставлять кодированные видеоданные в целевое устройство 14, например, через сетевую передачу. Аналогично, вычислительное устройство оборудования для изготовления носителей, такого как оборудование для штамповки дисков, может принимать кодированные видеоданные из исходного устройства 12 и изготавливать диск, содержащий кодированные видеоданные. Следовательно, можно понимать, что машиночитаемый носитель 16 включает в себя один или более машиночитаемых носителей различных форм, в различных примерах.[0068] Computer-readable media 16 may include volatile media such as wireless broadcast or wired network transmission, or storage media (i.e., non-volatile storage media) such as a hard drive, flash drive, CD , digital video disc, Blu-ray disc, or other machine-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 target device 14, such as through a network transmission. Similarly, a computing device of media manufacturing equipment, such as disc stamping equipment, may receive encoded video data from source device 12 and produce a disc containing the encoded video data. Therefore, it can be understood that the computer-readable medium 16 includes one or more computer-readable media in various forms, in various examples.

[0069] Интерфейс 26 ввода целевого устройства 14 принимает информацию из машиночитаемого носителя 16. Информация машиночитаемого носителя 16 может включать в себя синтаксическую информацию, заданную посредством видеокодера 22 видеокодера 22, которая также используется посредством видеодекодера 30, которая включает в себя синтаксические элементы, которые описывают характеристики и/или обработку блоков и других кодированных единиц, например, групп кинокадров (GOP). Носители 28 хранения данных могут сохранять кодированные видеоданные, принимаемые посредством интерфейса 26 ввода. Устройство 32 отображения отображает декодированные видеоданные пользователю. Устройство 32 отображения может содержать любое из множества устройств отображения, таких как дисплей на электронно-лучевой трубке (CRT), жидкокристаллический дисплей (LCD), плазменный дисплей, дисплей на органических светодиодах (OLED) или другой тип устройства отображения.[0069] The input interface 26 of the target device 14 receives information from the computer-readable medium 16. The information of the computer-readable medium 16 may include syntax information specified by the video encoder 22 of the video encoder 22, which is also used by the video decoder 30, which includes syntax elements that describe characteristics and/or processing of blocks and other coded units, such as groups of pictures (GOPs). 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 display (CRT), liquid crystal display (LCD), plasma display, organic light emitting diode (OLED) display, or other type of display device.

[0070] Видеокодер 22 и модуль 30 видеодекодера могут реализовываться как любая из множества надлежащих схем кодера или декодера, к примеру, как один или более микропроцессоров, процессоров цифровых сигналов (DSP), специализированных интегральных схем (ASIC), программируемых пользователем вентильных матриц (FPGA), дискретная логика, программное обеспечение, аппаратные средства, микропрограммное обеспечение либо любые комбинации вышеозначенного. Когда технологии реализуются частично в программном обеспечении, устройство может сохранять инструкции для программного обеспечения на подходящем энергонезависимом машиночитаемом носителе и может выполнять инструкции в аппаратных средствах с использованием одного или более процессоров, чтобы осуществлять технологии этого раскрытия сущности. Каждый из видеокодера 22 и видеодекодера 30 может быть включен в один или более кодеров или декодеров, любой из которых может быть интегрирован как часть комбинированного кодера/декодера (кодека) в соответствующем устройстве.[0070] Video encoder 22 and video decoder module 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 of the foregoing. When the technologies are implemented in part in software, the device may store the instructions for the software on a suitable non-volatile computer-readable medium and may execute the instructions in hardware using one or more processors to implement the technologies of this disclosure. Each of video encoder 22 and video decoder 30 may be included in one or more encoders or decoders, any of which may be integrated as part of a combined encoder/decoder (codec) in a respective device.

[0071] В некоторых примерах, видеокодер 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-HEVC) и многовидовые расширения (MV-HEVC) и масштабируемое расширение (SHVC), разработан посредством Объединенной группы для совместной работы над видеостандартами (JCT-VC) Экспертной группы в области кодирования видео (VCEG) ITU-T и Экспертной группы по киноизображению (MPEG) ISO/IEC. Последняя проектная HEVC-спецификация, называемая "HEVC WD" в дальнейшем в этом документе, доступна по адресу http://phenix.int-evry.fr/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC-N1003-v1.zip.[0071] In some examples, video encoder 22 and video decoder 30 may operate according to a video coding standard. Exemplary 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), which includes Scalable Video Coding (SVC) and Multi-View Video Coding (MVC) extensions. "High Efficiency Video Coding (HEVC)" or "ITU-T H.265" video coding standard, including its extensions for band and screen content coding, 3D video coding (3D-HEVC) and multi-view extensions (MV-HEVC) and Scalable Extension (SHVC), developed through the Joint Video Standards Collaborative Group (JCT-VC) of the Video Coding Expert Group (VCEG) of ITU-T and the Motion Picture Expert Group (MPEG) of ISO/IEC. The latest HEVC design specification, referred to as "HEVC WD" throughout this document, is available at http://phenix.int-evry.fr/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC-N1003-v1.zip.

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

[0073] В HEVC, VVC и других спецификациях кодирования видео, видеопоследовательность типично включает в себя последовательность кинокадров. Кинокадры также могут называться "кадрами". Кинокадр может включать в себя три массива выборок, обозначаемых как SL, SCb и SCr. SL представляет собой двумерный массив (т.е. блок) выборок сигнала яркости. SCb представляет собой двумерный массив выборок Cb-цветности. SCr представляет собой двумерный массив выборок Cr-цветности. Выборки цветности также могут называться в данном документе "выборками сигнала цветности". Пиксел может означать все три компонента (выборки сигнала яркости и сигнала цветности) для данного местоположения в массиве кинокадра. В других случаях, кинокадр может быть монохромным и может включать в себя только массив выборок сигнала яркости, причем в этом случае термины "пиксел" и "выборка" могут использоваться взаимозаменяемо.[0073] In HEVC, VVC, and other video coding specifications, a video sequence typically includes a sequence of movie frames. Movie frames may also be referred to as "frames". The movie frame 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 luma samples. S Cb is a two-dimensional array of Cb-chromaticity samples. S Cr is a two-dimensional array of Cr-chroma samples. Chroma samples may also be referred to herein as "chroma samples". A pixel may mean all three components (luminance and chrominance samples) for a given location in the movie frame array. In other cases, the movie frame may be monochrome and may include only an array of luminance samples, in which case the terms "pixel" and "sample" may be used interchangeably.

[0074] Кроме того, в HEVC и других спецификациях кодирования видео, для того, чтобы формировать кодированное представление кинокадра, видеокодер 22 может формировать набор единиц дерева кодирования (CTU). Каждая из CTU может содержать блок дерева кодирования выборок сигнала яркости, два соответствующих блока дерева кодирования выборок сигнала цветности и синтаксические структуры, используемые для того, чтобы кодировать выборки блоков дерева кодирования. В монохромных кинокадрах или кинокадрах, имеющих три отдельных цветовых плоскости, CTU может содержать один блок дерева кодирования и синтаксические структуры, используемые для того, чтобы кодировать выборки блока дерева кодирования. Блок дерева кодирования может представлять собой блок NxN выборок. CTU также может называться "древовидным блоком" или "наибольшей единицей кодирования (LCU)". CTU HEVC в широком смысле могут быть аналогичными макроблокам других стандартов, таких как H.264/AVC. Тем не менее, CTU не обязательно ограничивается конкретным размером и может включать в себя одну или более единиц кодирования (CU). Срез может включать в себя целое число CTU, упорядоченных последовательно в порядке растрового сканирования.[0074] In addition, in HEVC and other video coding specifications, in order to generate an encoded representation of a movie frame, 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 movie frames or movies having three separate color planes, the CTU may contain one coding tree block and 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)". HEVC CTUs may be broadly similar to macroblocks in other standards such as H.264/AVC. However, the CTU is not necessarily limited to a specific size and may include one or more coding units (CUs). The slice may include an integer number of CTUs ordered sequentially in raster scan order.

[0075] При работе согласно HEVC, для того, чтобы формировать кодированную CTU, видеокодер 22 может рекурсивно выполнять сегментацию на дерево квадрантов для блоков дерева кодирования CTU для того, чтобы разделять блоки дерева кодирования на блоки кодирования, отсюда имя "единицы дерева кодирования". Блок кодирования представляет собой блок NxN выборок. CU может содержать блок кодирования выборок сигнала яркости и два соответствующих блока кодирования выборок сигнала цветности кинокадра, который имеет массив выборок сигнала яркости, массив Cb-выборок и массив Cr-выборок, и синтаксические структуры, используемые для того, чтобы кодировать выборки блоков кодирования. В монохромных кинокадрах или кинокадрах, имеющих три отдельных цветовых плоскости, CU может содержать один блок кодирования и синтаксические структуры, используемые для того, чтобы кодировать выборки блока кодирования.[0075] When operating according to HEVC, in order to generate an encoded CTU, video encoder 22 may recursively perform quadtree segmentation on CTU coding tree blocks in order to partition coding tree blocks into coding blocks, hence the name "coding tree units". The coding block is a block of NxN samples. The CU may comprise a luminance sample coding unit and two corresponding movie chrominance sample coding units, which has an array of luma samples, an array of Cb samples, and an array of Cr samples, and syntax structures used to encode the coding block samples. In monochrome movie frames or movie frames having three separate color planes, a CU may contain one coding block and syntax structures used to encode samples of the coding block.

[0076] Синтаксические данные в потоке битов также могут задавать размер для CTU. Срез включает в себя определенное число последовательных CTU в порядке кодирования. Видеокадр или кинокадр может сегментироваться на один или более срезов. Как упомянуто выше, каждый древовидный блок может разбиваться на CU согласно дереву квадрантов. В общем, структура данных в виде дерева квадрантов включает в себя один узел в расчете на CU, при этом корневой узел соответствует древовидному блоку. Если CU разбивается на четыре суб-CU, узел, соответствующий CU, включает в себя четыре узла-листа, каждый из которых соответствует одной из суб-CU.[0076] The syntax data in the bit stream may also specify the size for the CTU. The slice includes a certain number of consecutive CTUs in coding order. A video or movie frame may be segmented into one or more slices. As mentioned above, each treeblock may be partitioned 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.

[0077] Каждый узел структуры данных в виде дерева квадрантов может предоставлять синтаксические данные для соответствующей CU. Например, узел в дереве квадрантов может включать в себя флаг разбиения, указывающий то, разбивается или нет CU, соответствующая узлу, на суб-CU. Синтаксические элементы для CU могут задаваться рекурсивно и могут зависеть от того, разбивается или нет CU на суб-CU. Если CU не разбивается дополнительно, он называется "CU-листом". Если блок CU разбивается дополнительно, он, в общем, может называться "CU-нелистом". В некоторых примерах этого раскрытия сущности, четыре суб-CU CU-листа могут называться "CU-листьями", даже если отсутствует явное разбиение исходного CU-листа. Например, если CU с размером 16×16 не разбивается дополнительно, четыре суб-CU 8×8 также могут называться "CU-листьями", хотя CU 16×16 никогда не разбивается.[0077] 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 or not the CU corresponding to the node is split into sub-CUs. The syntax elements for a CU may be defined recursively and may depend on whether or not the CU is split into sub-CUs. If a CU is not split further, it is called a "CU-list". If a CU is split further, it may be generically referred to as a "CU-non-leaf". In some examples of this disclosure, the four sub-CUs of a CU-leaf may be referred to as "CU-leaves" even if there is no explicit splitting of the original CU-leaf. For example, if a 16x16 CU is not split further, the four 8x8 sub-CUs may also be referred to as "leaf CUs", although a 16x16 CU is never split.

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

[0079] CU включает в себя узел кодирования, а также единицы прогнозирования (PU) и единицы преобразования (TU), ассоциированные с узлом кодирования. Размер CU соответствует размеру узла кодирования и, в некоторых примерах, может иметь квадратную форму. В примере HEVC, размер CU может колебаться от 8×8 пикселов вплоть до размера древовидного блока максимум с 64×64 пикселов или больше. Каждая CU может содержать одну или более PU и одну или более TU. Синтаксические данные, ассоциированные с CU, могут описывать, например, сегментацию CU на одну или более PU. Режимы сегментации могут отличаться между тем, CU кодируется в режиме пропуска или прямом режиме, кодируется в режиме внутреннего прогнозирования или кодируется в режиме взаимного прогнозирования. PU могут сегментироваться таким образом, что они имеют неквадратную форму. Синтаксические данные, ассоциированные с CU, также могут описывать, например, сегментацию CU на одну или более TU согласно дереву квадрантов. TU может иметь квадратную или неквадратную (например, прямоугольную) форму.[0079] 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, in some examples, may be square. In the HEVC example, the CU size can range from 8x8 pixels up to a treeblock size of at most 64x64 pixels or more. Each CU may contain one or more PUs and one or more TUs. Syntax data associated with a CU may describe, for example, segmentation of a CU into one or more PUs. The segmentation modes may be different between whether the CU is coded in skip mode or direct mode, coded in intra prediction mode, or coded in inter prediction mode. The PUs may be segmented such that they are non-square. Syntax data associated with a CU may also describe, for example, segmentation of the CU into one or more TUs according to a quadtree. The TU may be square or non-square (eg, rectangular) in shape.

[0080] HEVC-стандарт предоставляет возможность преобразований согласно TU. TU могут отличаться для различных CU. Размеры NU типично задаются на основе размера PU в данной CU, заданного для сегментированной LCU, хотя это может не всегда иметь место. TU типично имеет идентичный размер или меньше по сравнению с PU. В некоторых примерах, остаточные выборки, соответствующие CU, могут подразделяться на меньшие единицы с использованием структуры в виде дерева квадрантов, иногда называемой "остаточным деревом квадрантов" (RQT). Узлы-листья RQT могут называться "TU". Значения пиксельных разностей, ассоциированные с TU, могут преобразовываться, с тем чтобы формировать коэффициенты преобразования, которые могут квантоваться.[0080] The HEVC standard allows for transformations according to TU. TUs may differ for different CUs. The sizes of NUs are typically set based on the size of the PUs in a given CU given for a segmented LCU, although this may not always be the case. The TU is typically the same size or smaller than the PU. In some examples, the residual samples corresponding to the CU may be subdivided into smaller units using a quadtree structure, sometimes referred to as a "residual quadtree" (RQT). The leaf nodes of an RQT may be referred to as "TU". The pixel difference values associated with the TU may be transformed so as to generate transform coefficients, which may be quantized.

[0081] CU-лист может включать в себя одну или более PU. В общем, PU представляет пространственную область, соответствующую всей или части соответствующей CU, и может включать в себя данные для извлечения опорной выборки для PU. Кроме того, PU включает в себя данные, связанные с прогнозированием. Например, когда PU кодируется во внутреннем режиме, данные для PU могут быть включены в RQT, которое может включать в себя данные, описывающие режим внутреннего прогнозирования для TU, соответствующей PU. В качестве другого примера, когда PU кодируется во взаимном режиме, PU может включать в себя данные, задающие один или более векторов движения для PU. Данные, задающие вектор движения для PU, могут описывать, например, горизонтальный компонент вектора движения, вертикальный компонент вектора движения, разрешение для вектора движения (например, точность в одну четверть пиксела или точность в одну восьмую пиксела), опорный кинокадр, на который указывает вектор движения, и/или список опорных кинокадров (например, список 0, список 1 или список C) для вектора движения.[0081] A CU list may include one or more PUs. In general, a PU represents 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 encoded in intra mode, 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 encoded in inter-mode, 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 that the motion vector points to. motion, and/or a list of reference pictures (eg, list 0, list 1, or list C) for the motion vector.

[0082] 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-листа.[0082] A CU-list having one or more PUs may also include one or more TUs. TUs may be indicated using an RQT (also referred to as a "TU Quadtree Structure") as explained above. For example, the split flag may indicate whether or not the CU-list is split into four transform units. In some examples, each transformation unit may be split further into additional sub-TUs. When a TU is not further split, it may be referred to as a "TU-list". Generally, for intra coding, all TU leaves belonging to a CU sheet contain residual data generated from the same intra prediction mode. In other words, the same intra prediction mode is generally applied to calculate predicted values to be converted across all TUs of a CU-list. For intra coding, video encoder 22 may calculate a residual value for each TU sheet using an intra prediction mode, as a difference between the CU portion corresponding to the TU and the original block. The TU is not necessarily limited to 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 TU-list for an identical CU. In some examples, the maximum size of a TU-leaf may correspond to the size of the corresponding CU-leaf.

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

[0084] Как пояснено выше, видеокодер 22 может сегментировать блок кодирования CU на один или более блоков прогнозирования. Блок прогнозирования представляет собой прямоугольный (т.е. квадратный или неквадратный) блок выборок, к которым применяется идентичное прогнозирование. PU CU может содержать блок прогнозирования выборок сигнала яркости, два соответствующих блока прогнозирования выборок сигнала цветности и синтаксические структуры, используемые для того, чтобы прогнозировать блоки прогнозирования. В монохромных кинокадрах или кинокадрах, имеющих три отдельных цветовых плоскости, PU может содержать один блок прогнозирования и синтаксические структуры, используемые для того, чтобы прогнозировать блок прогнозирования. Видеокодер 22 может формировать прогнозирующие блоки (например, прогнозирующие блоки сигналов яркости, прогнозирующие Cb-блоки и прогнозирующие Cr-блоки) для блоков прогнозирования (блоков прогнозирования сигналов яркости, Cb-блоков прогнозирования и Cr-блоков прогнозирования) каждой PU CU.[0084] As explained above, video encoder 22 may segment a coding block CU into one or more prediction blocks. A prediction block is a rectangular (ie, square or non-square) block of samples to which the same prediction is applied. The PU CU may comprise a luminance sample predictor, two corresponding chrominance sample predictors, and syntax structures used to predict the predictors. In monochrome movie frames or movie frames 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 predictors (eg, luminance predictors, Cb predictors, and Cr predictors) for the predictors (luminance predictors, Cb predictors, and Cr predictors) of each CU PU.

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

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

[0087] В некоторых примерах, видеокодер 22 и видеодекодер 30 могут использовать одну QTBT- или MTT-структуру для того, чтобы представлять каждый из компонентов яркости и цветности, в то время как в других примерах, видеокодер 22 и видеодекодер 30 могут использовать две или более QTBT или MTT-структур, к примеру, одну QTBT/MTT-структуру для компонента яркости и другую QTBT/MTT-структуру для обоих компонентов цветности (либо две QTBT/MTT-структуры для соответствующих компонентов цветности).[0087] In some examples, video encoder 22 and video decoder 30 may use a single 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 than QTBT or MTT structures, eg one QTBT/MTT structure for the luma component and another QTBT/MTT structure for both chrominance components (or two QTBT/MTT structures for the respective chrominance components).

[0088] В VVC, кинокадр может сегментироваться на срезы, плитки и кирпичи. В общем, кирпич может представлять собой прямоугольную область CTU-строк в конкретной плитке в кинокадре. Плитка может представлять собой прямоугольную область CTU в конкретном столбце плиток и конкретной строке плиток в кинокадре. Столбец плиток представляет собой прямоугольную область CTU, имеющих высоту, равную высоте кинокадра, и ширину, указываемую посредством синтаксических элементов в наборе параметров кинокадра. Строка плиток представляет собой прямоугольную область CTU, имеющих высоту, указываемую посредством синтаксических элементов в наборе параметров кинокадра, и ширину, равную ширине кинокадра. В некоторых случаях, плитка может сегментироваться на несколько кирпичей, каждый из которых может включать в себя одну или более CTU-строк внутри плитки. Плитка, которая не сегментируется на несколько кирпичей, также называется "кирпичом". Тем не менее, кирпич, который представляет собой истинный поднабор плитки, не называется "плиткой". Срез может представлять собой целое число кирпичей кинокадра, которые содержатся исключительно в одной NAL-единице. В некоторых случаях, срез может включать в себя либо определенное число полных плиток, либо только жесткую последовательность полных кирпичей одной плитки.[0088] In VVC, a movie frame can be segmented into slices, tiles, and bricks. In general, a brick may be a rectangular area of CTU rows in a particular tile in a movie frame. A tile may be a rectangular area of the CTU in a particular column of tiles and a particular row of tiles in a movie frame. The tile column is a rectangular area of CTUs having a height equal to the height of the movie frame and a width specified by syntax elements in the movie frame parameter set. The row of tiles is a rectangular area of CTUs having a height indicated by syntax elements in the movie frame parameter set and a width equal to the width of the movie frame. In some cases, a tile may be segmented into multiple bricks, each of which may include one or more CTU rows within the tile. A tile that does not segment into multiple bricks is also called a "brick". However, a brick that is a true subset of a tile is not called a "tile". A slice can be an integer number of movie frame bricks that are contained solely in one NAL unit. In some cases, a slice may include either a certain number of full tiles, or only a rigid sequence of full bricks of a single tile.

[0089] Видеокодер 22 и видеодекодер 30 могут быть выполнены с возможностью использовать сегментацию на дерево квадрантов согласно HEVC, QTBT-сегментации, MTT-сегментации либо другим структурам сегментации. Для целей пояснения, описание технологий этого раскрытия сущности представляется относительно QTBT-сегментации. Тем не менее, следует понимать, что технологии этого раскрытия сущности также могут применяться к видеокодерам, выполненным с возможностью использовать также сегментацию на дерево квадрантов или другие типы сегментации.[0089] Video encoder 22 and video decoder 30 may be configured to use quadtree segmentation according to HEVC, QTBT segmentation, MTT segmentation, or other segmentation structures. For purposes of explanation, the description of the technologies of this disclosure is provided in relation to QTBT segmentation. However, it should be understood that the techniques of this disclosure may also be applied to video encoders configured to also use quadtree segmentation or other types of segmentation.

[0090] Видеокодер 22 может использовать внутреннее прогнозирование или взаимное прогнозирование для того, чтобы формировать прогнозирующие блоки для PU. Если видеокодер 22 использует внутреннее прогнозирование для того, чтобы формировать прогнозирующие блоки PU, видеокодер 22 может формировать прогнозирующие блоки PU на основе декодированных выборок кинокадра, который включает в себя PU. После того, как видеокодер 22 формирует прогнозирующие блоки (например, прогнозирующие блоки сигналов яркости, прогнозирующие Cb-блоки и прогнозирующие Cr-блоки) для одной или более PU одной или более 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.[0090] Video encoder 22 may use intra prediction or inter prediction to generate predictive blocks for the PU. If video encoder 22 uses intra prediction to generate predictive PUs, video encoder 22 may generate predictive PUs based on decoded samples of a movie frame that includes the PU. After video encoder 22 generates predictors (eg, luma predictors, Cb predictors, and Cr predictors) for one or more PUs of one or more CU PUs, 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 residual luma CU indicates a difference between a luminance sample in one of the luminance predictor blocks of the CU and a corresponding sample in the original luminance coding block CU. In addition, video encoder 22 may generate a residual Cb block for the CU. Each sample in the CU's Cb residual block may indicate a difference between a Cb sample in one of the CU's predictive Cb blocks and a corresponding sample in the CU's original Cb coding block. Video encoder 22 may also generate a residual Cr block for the CU. Each sample in the CU's residual Cr block may indicate a difference between a Cr sample in one of the predictive CU Cr blocks and a corresponding sample in the original Cr coding block of the CU.

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

[0092] Видеокодер 22 может применять одно или более преобразований к блоку преобразования TU для того, чтобы формировать блок коэффициентов для TU. Например, видеокодер 22 может применять одно или более преобразований к блоку преобразования сигналов яркости TU для того, чтобы формировать блок коэффициентов сигнала яркости для TU. Блок коэффициентов может представлять собой двумерный массив коэффициентов преобразования. Коэффициент преобразования может быть скалярной величиной. Видеокодер 22 может применять одно или более преобразований к Cb-блоку преобразования TU для того, чтобы формировать Cb-блок коэффициентов для TU. Видеокодер 22 может применять одно или более преобразований к Cr-блоку преобразования TU для того, чтобы формировать Cr-блок коэффициентов для TU.[0092] Video encoder 22 may apply one or more transforms to the TU transform block in order to generate a coefficient block for the TU. For example, video encoder 22 may apply one or more transforms to the luminance transform block of the TU in order to generate the block of luminance signal coefficients 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 Cb transform block of the TU in order to generate the Cb coefficient block for the TU. Video encoder 22 may apply one or more transforms to the Cr transform block of the TU in order to generate the Cr coefficient block for the TU.

[0093] В некоторых примерах, видеокодер 22 пропускает применение преобразований к блоку преобразования. В таких примерах, видеокодер 22 может трактовать остаточные выборочные значения аналогично коэффициентам преобразования. Таким образом, в примерах, в которых видеокодер 22 пропускает применение преобразований, нижеприведенное пояснение коэффициентов преобразования и блоков коэффициентов может быть применимым к блокам преобразования остаточных выборок.[0093] In some examples, video encoder 22 skips applying transforms to the transform block. In such examples, video encoder 22 may treat the residual sample values similarly to the transform coefficients. Thus, in instances where video encoder 22 skips applying transforms, the following explanation of transform coefficients and coefficient blocks may be applicable to residual sample transform blocks.

[0094] После формирования блока коэффициентов (например, блока коэффициентов сигнала яркости, Cb-блока коэффициентов или Cr-блока коэффициентов), видеокодер 22 может квантовать блок коэффициентов, чтобы возможно уменьшать объем данных, используемых для того, чтобы представлять блок коэффициентов, потенциально предоставляя дополнительное сжатие. Квантование, в общем, означает процесс, в котором диапазон значений сжимается в одно значение. Например, квантование может осуществляться посредством деления значения на константу и затем округления до ближайшего целого числа. Чтобы квантовать блок коэффициентов, видеокодер 22 может квантовать коэффициенты преобразования блока коэффициентов. После того, как видеокодер 22 квантует блок коэффициентов, видеокодер 22 может энтропийно кодировать синтаксические элементы, указывающие квантованные коэффициенты преобразования. Например, видеокодер 22 может выполнять контекстно-адаптивное двоичное арифметическое кодирование (CABAC) или другие технологии энтропийного кодирования для синтаксических элементов, указывающих квантованные коэффициенты преобразования.[0094] After generating a coefficient block (eg, a luminance 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 extra compression. Quantization, in general, means a process in which a range of values is compressed into a single value. For example, quantization can be done 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.

[0095] Видеокодер 22 может выводить поток битов, который включает в себя последовательность битов, которая формирует представление кодированных кинокадров, и ассоциированные данные. Таким образом, поток битов содержит кодированное представление видеоданных. Поток битов может содержать последовательность единиц уровня абстрагирования от сети (NAL). NAL-единица представляет собой синтаксическую структуру, содержащую индикатор относительно типа данных в NAL-единице, и байты, содержащие эти данные в форме первичной байтовой последовательности данных (RBSP), перемежаемой при необходимости битами предотвращения эмуляции. Каждая из NAL-единиц может включать в себя заголовок NAL-единицы и может инкапсулировать RBSP. Заголовок NAL-единицы может включать в себя синтаксический элемент, указывающий код типа NAL-единицы. Код типа NAL-единицы, указываемый посредством заголовка NAL-единицы для NAL-единицы, указывает тип NAL-единицы. RBSP может представлять собой синтаксическую структуру, содержащую целое число байтов, которое инкапсулируется в NAL-единице. В некоторых случаях, RBSP включает в себя нулевые биты.[0095] Video encoder 22 may output a bit stream that includes a bit sequence that forms a representation of the encoded movie frames and associated data. Thus, the bitstream contains an encoded representation of the video data. The bitstream may comprise a sequence of Network Abstraction Layer (NAL) units. A NAL unit is a syntactic structure containing an indicator as to the type of data in the NAL unit, and bytes containing that data in the form of a Primary Data Byte Sequence (RBSP), interspersed with emulation prevention bits if necessary. 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 indicated by the NAL unit header for 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.

[0096] Видеодекодер 30 может принимать поток битов, сформированный посредством видеокодера 22. Видеодекодер 30 может декодировать поток битов для того, чтобы восстанавливать кинокадры видеоданных. В качестве части декодирования потока битов, видеодекодер 30 может синтаксически анализировать поток битов для того, чтобы получать синтаксические элементы из потока битов. Видеодекодер 30 может восстанавливать кинокадры видеоданных, по меньшей мере, частично на основе синтаксических элементов, полученных из потока битов. Процесс для того, чтобы восстанавливать видеоданные, в общем, может быть взаимообратным по отношению к процессу, выполняемому посредством видеокодера 22. Например, видеодекодер 30 может использовать векторы движения PU для того, чтобы определять прогнозирующие блоки для PU текущей CU. Помимо этого, видеодекодер 30 может обратно квантовать блоки коэффициентов TU текущей CU. Видеодекодер 30 может выполнять обратные преобразования для блоков коэффициентов для того, чтобы восстанавливать блоки преобразования TU текущей CU. Видеодекодер 30 может восстанавливать блоки кодирования текущей CU посредством суммирования выборок прогнозирующих блоков для PU текущей CU с соответствующими выборками блоков преобразования TU текущей CU. Посредством восстановления блоков кодирования для каждой CU кинокадра, видеодекодер 30 может восстанавливать кинокадр.[0096] Video decoder 30 may receive a bitstream generated by video encoder 22. Video decoder 30 may decode the bitstream in order to recover movie frames of video data. As part of decoding the bitstream, video decoder 30 may parse the bitstream in order to obtain syntax elements from the bitstream. Video decoder 30 may reconstruct movie frames of video data based at least in part on syntax elements obtained from the bit stream. The process for recovering video data may generally be reciprocal to the process performed by video encoder 22. For example, video decoder 30 may use PU motion vectors to determine predictive blocks for the PUs of the current CU. In addition, video decoder 30 may inversely quantize the TU coefficient blocks of the current CU. Video decoder 30 may perform inverse transforms on the coefficient blocks in order 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 CU of the movie frame, video decoder 30 can recover the movie frame.

[0097] Технологии, раскрытые в данном документе, основываются на внутреннем прогнозировании на основе блоков, которое представляет собой часть видеостандартов, включающих в себя AVC, HEVC и VVC. Во внутреннем прогнозировании на основе блоков, типично, линии опорных выборок из смежных восстановленных блоков используются для прогнозирования выборок в текущем блоке. Одна или более линий выборок могут использоваться для прогнозирования. Опорные выборки используются посредством типичных режимов внутреннего прогнозирования, таких как DC-, планарный и угловые/направленные режимы.[0097] The technologies disclosed herein are based on block-based intra prediction, which is part of the video standards including AVC, HEVC, and VVC. In block-based 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 through typical intra prediction modes such as DC-, planar, and angle/directional modes.

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

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

[0100] Как подробнее описано, примерные технологии, описанные в этом раскрытии сущности, модифицируют одну или более (например, все) прогнозных выборок блока прогнозирования. Видеокодер 22 может определять остаточные значения на основе модифицированных прогнозных выборок. Видеодекодер 30 может суммировать остаточные значения с модифицированными прогнозными выборками для того, чтобы восстанавливать текущий блок.[0100] As described in more detail, the exemplary techniques described in this disclosure modify one or more (eg, all) prediction samples of a prediction block. Video encoder 22 may determine residuals based on the modified predictive samples. Video decoder 30 may add the residuals with the modified predictive samples in order to reconstruct the current block.

[0101] Предусмотрено множество режимов внутреннего прогнозирования (также называемых "внутренними режимами"). В некоторых примерах, внутреннее прогнозирование блока сигналов яркости включает в себя 35 режимов, включающих в себя планарный режим, DC-режим и 33 угловых режима (например, режимы диагонального внутреннего прогнозирования и угловые режимы, смежные с режимами диагонального внутреннего прогнозирования). Кодер 22 и/или декодер 30 могут выбирать режим прогнозирования для каждого блока, который минимизирует остаток между блоком прогнозирования и блоком, который должен кодироваться (например, на основе суммы абсолютных ошибок (SAE), суммы абсолютных разностей (SAD), суммы абсолютных преобразованных разностей (SATD) или другой меры подобия). Например, SAE может вычисляться посредством рассмотрения абсолютной разности между каждым пикселом (или выборкой) в блоке, который должен кодироваться, и соответствующим пикселом (или выборкой) в блоке прогнозирования, используемом для сравнения. Разности пикселов (или выборок) суммируются для того, чтобы создавать показатель подобия блоков, такой как L1-норма разностного изображения, манхэттенское расстояние между двумя блоками изображений либо другое вычисление. С использованием SAE в качестве примера, SAE для каждого прогнозирования с использованием каждого из режимов внутреннего прогнозирования указывает абсолютную величину ошибки прогнозирования. Режим внутреннего прогнозирования, который имеет наилучшее совпадение с фактическим текущим блоком, задается посредством режима внутреннего прогнозирования, который обеспечивает наименьшую SAE.[0101] A variety of intra prediction modes (also referred to as "intra modes") are provided. In some examples, luminance 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). Encoder 22 and/or decoder 30 may select a prediction mode for each block that minimizes the residual between the prediction block and the block to be encoded (e.g., based on Sum of Absolute Errors (SAE), Sum of Absolute Differences (SAD), Sum of Absolute Transformed Differences (SATD) or other measure of similarity). For example, the SAE may be calculated by considering the absolute difference between each pixel (or sample) in the block to be encoded and the corresponding pixel (or sample) in the prediction block used for comparison. The pixel (or sample) differences are summed to create a block similarity score, such as the L1-norm of the difference image, the Manhattan distance between two image blocks, or another calculation. Using the SAE as an example, the SAE for each prediction using each of the intra prediction modes indicates the absolute value of the prediction error. The intra prediction mode that has the best match with the actual current block is set by the intra prediction mode that provides the lowest SAE.

[0102] 35 режимов внутреннего прогнозирования индексируются, как показано в нижеприведенной таблице 1. В других примерах, может задаваться большее число внутренних режимов, включающих в себя углы прогнозирования, которые могут уже не представляться посредством 33 угловых режимов. В других примерах, углы прогнозирования, ассоциированные с угловыми режимами, могут отличаться от углов прогнозирования, используемых в HEVC.[0102] The 35 intra prediction modes are indexed as shown in Table 1 below. In other examples, more intra modes may be defined, including prediction angles that may no longer be represented by the 33 angle modes. In other examples, the prediction angles associated with the angle modes may be different from the prediction angles used in HEVC.

Режим внутреннего прогнозированияInternal Prediction Mode Ассоциированное названиеAssociated name 00 INTRA_PLANARINTRA_PLANAR 1one INTRA_DCINTRA_DC 2...342...34 INTRA_ANGULAR2...INTRA_ANGULAR34INTRA_ANGULAR2...INTRA_ANGULAR34

Таблица 1. Спецификация режима внутреннего прогнозирования и ассоциированных названийTable 1 Specification of intra prediction mode and associated names

[0103] Чтобы выполнять планарное прогнозирование для блока NxN, для каждой выборки pxy, расположенной в (x, y), прогнозное выборочное значение может вычисляться посредством применения билинейного фильтра к четырем конкретным соседним восстановленным выборкам (используемым в качестве опорных выборок для внутреннего прогнозирования). Четыре опорных выборки включают в себя правую верхнюю восстановленную выборку TR, левую нижнюю восстановленную выборку BL и две восстановленных выборки, расположенные в идентичном столбце (rx,-1) и строке (r-1,y) текущей выборки. Планарный режим может формулироваться так, как указано ниже:[0103] To perform planar prediction for an NxN block, for each sample p xy located at (x, y), a predictive sample value may be computed by applying a bilinear filter to four specific neighboring reconstructed samples (used as reference samples for intra prediction) . The four pivot samples include a top right recovery sample TR, a bottom left recovery sample BL, and two recovery samples located in the same column (r x,-1 ) and row (r -1,y ) of the current sample. Planar mode 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),

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

[0105] Для DC-режима, блок прогнозирования заполняется средним значением соседних восстановленных выборок. Обычно, планарный и DC-режимы применяются для моделирования плавно варьирующихся и постоянных областей изображения.[0105] For the DC mode, the prediction block is filled with the average of adjacent recovered samples. Typically, planar and DC modes are used to simulate smoothly varying and constant areas of an image.

[0106] Для режимов углового внутреннего прогнозирования в HEVC, которые включают в себя 33 различных направления прогнозирования, процесс внутреннего прогнозирования может описываться следующим образом. Для каждого данного режима углового внутреннего прогнозирования, направление внутреннего прогнозирования может идентифицироваться соответствующим образом; например, внутренний режим 18 соответствует направлению чистого горизонтального прогнозирования, и внутренний режим 26 соответствует направлению чистого вертикального прогнозирования. Режимы углового прогнозирования показаны на фиг. 3. В некоторых кодеках, может использоваться другое число режимов внутреннего прогнозирования. Например, в дополнение к планарному и DC-режимам, могут задаваться 65 угловых режимов, при этом режим 2 указывает направление прогнозирования в -135°, режим 34 указывает направление прогнозирования в -45°, и режим 66 указывает направление прогнозирования в 45°. В некоторых кодеках (например, в VVC), также могут задаваться углы за пределами -135° (меньше -135°) и за пределами 45° (больше 45°); они могут называться "широкоугольными внутренними режимами". Хотя описание в данном документе приводится относительно проектного решения на основе внутренних режимов в HEVC (т.е. с 35 режимами), раскрытые технологии также могут применяться к большему числу внутренних режимов, в том числе к широкоугольным внутренним режимам.[0106] For HEVC angular intra prediction modes that include 33 different prediction directions, the intra prediction process may be described as follows. For each given angle intra prediction mode, the direction of intra prediction may be identified accordingly; for example, intra mode 18 corresponds to the pure horizontal prediction direction, and intra mode 26 corresponds to the pure vertical prediction direction. Angular prediction modes are shown in FIG. 3. In some codecs, a different number of intra prediction modes may be used. For example, in addition to planar and DC modes, 65 angle modes can be set, with mode 2 indicating a prediction direction of -135°, mode 34 indicating a prediction direction of -45°, and mode 66 indicating a prediction direction of 45°. Some codecs (eg VVC) can also specify angles beyond -135° (less than -135°) and beyond 45° (greater than 45°); these may be referred to as "wide-angle indoor modes". Although the description in this document is in relation to the design solution based on indoor modes in HEVC (ie, with 35 modes), the disclosed techniques can also be applied to a larger number of indoor modes, including wide-angle indoor modes.

[0107] Координаты (X, Y) каждой выборки блока прогнозирования проецируются вдоль конкретного направления внутреннего прогнозирования (например, одного из режимов углового внутреннего прогнозирования). Например, с учетом конкретного направления внутреннего прогнозирования, координаты (X, Y) выборки блока прогнозирования сначала проецируются на строку/столбец соседних восстановленных выборок вдоль направления внутреннего прогнозирования. В случаях, если (X, Y) проецируется на дробную позицию α между двумя соседними восстановленными выборками L и R; то прогнозное значение для (X, Y) может вычисляться с использованием двухотводного билинейного интерполяционного фильтра, формулируемого следующим образом:[0107] The (X, Y) coordinates of each prediction block sample are projected along a particular intra prediction direction (eg, one of the angular intra prediction modes). For example, given a particular intra prediction direction, the (X, Y) coordinates of a sample of the prediction block are first projected onto a row/column of adjacent reconstructed samples along the intra prediction direction. In cases where (X, Y) is projected onto a fractional position α between two adjacent recovered samples L and R; then the predictive value for (X, Y) can be calculated using a two-tap bilinear interpolation filter, formulated as follows:

pxy=(1-a)*L+a*R.p xy =(1-a)*L+a*R.

[0108] Чтобы не допускать операций с плавающей запятой, в HEVC, вышеприведенное вычисление может аппроксимироваться с использованием целочисленной арифметики следующим образом:[0108] In order to avoid floating point operations, in HEVC, the above calculation can be approximated using integer arithmetic as follows:

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

[0109] где a' является целым числом, равным 32*a.[0109] where a' is an integer equal to 32*a.

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

[0111] Прогнозные выборки блока прогнозирования формируются с использованием вышеуказанных примерных технологий. После того, как прогнозные выборки формируются, одна или более прогнозных выборок могут модифицироваться с использованием позиционно-зависимого комбинирования с (внутренним) прогнозированием (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", 8-ая JVET-конференция, Макао, октябрь 2018 года, JVET-H0057, которые настоящим полностью фактически содержатся в данном документе по ссылке. В данном документе раскрывается введение PDPC, применяемого к планарному, DC-, горизонтальным и вертикальным режимам без передачи служебных сигналов, как обобщено далее.[0111] Predictive samples of the prediction block are generated using the above exemplary technologies. After the prediction samples are generated, one or more prediction samples may be modified using position dependent (internal) prediction combining (PDPC). PDPC forms are described in ITU-T SG16/Q6 Doc. COM16-C1046, "Position Dependent intra Prediction Combination (PDPC)" and in X. Zhao, V. Seregin, A. Said, M. Karczewicz "EE1 related: Simplification and extension of PDPC", 8th JVET Conference, Macao, October 2018, JVET-H0057, which are hereby actually contained in this document by reference in their entirety This document discloses the introduction of PDPC applicable to planar, DC-, horizontal and vertical modes without signaling, as summarized below.

[0112] Например, прогнозная выборка pred(x, y), расположенная в (x, y), прогнозируется с помощью режима внутреннего прогнозирования (например, планарного, DC- или углового), и ее значение модифицируется с использованием PDPC-выражения для одной линии опорных выборок следующим образом:[0112] For example, a prediction sample pred(x, y) located at (x, y) is predicted using an intra prediction mode (e.g., planar, DC, or angular) and its value is modified using a PDPC expression for one reference sample lines as follows:

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*R x,-1- wTL*R -1,-1 +(64-wL-wT+wTL)*pred'(x, y) +32)>>6, (equation 1)

[0113] В уравнении 1, pred'(x, y) является значением прогнозной выборки, определенным с использованием режима внутреннего прогнозирования, как описано выше для формирования прогнозных выборок, и pred(x, y) является модифицированным значением pred'(x, y). Члены Rx,-1 и R-1,y представляют опорные выборки, расположенные сверху и слева от текущей выборки(x, y) (смежные верхние и левые выборки, внешние для текущего блока), соответственно, и член R-1,-1 представляет опорную выборку, расположенную в левом верхнем углу текущего блока (в смежном левом верхнем углу, внешнем для текущего блока). Например, как показано на фиг. 2A (описан ниже), с точки зрения первой прогнозной выборки 202, расположенной в левом верхнем углу блока 200A, Rx,-1 представляет выборку, которая находится на одну строку выше текущего блока с координатой X, идентичной координате X модифицируемой прогнозной выборки (соответствующей значению pred'(x, y)), R-1,y представляет выборку, которая находится на один столбец слева (или "в левой стороне") от текущего блока с координатой Y, идентичной координате Y модифицируемой прогнозной выборки, и R-1,-1 представляет выборку, которая находится на один столбец слева от текущего блока и на одну строку выше текущего блока.[0113] In Equation 1, pred'(x, y) is a predictive sample value determined using the intra prediction mode as described above for generating predictive samples, and pred(x, y) is a modified value of pred'(x, y ). The terms R x,-1 and R -1,y represent the pivot samples above and to the left of the current sample(x, y) (adjacent top and left samples external to the current block), respectively, and the R -1,- 1 represents the reference sample located in the upper left corner of the current block (in the adjacent upper left corner, external to the current block). For example, as shown in FIG. 2A (described below), from the point of view of the first prediction sample 202 located in the upper left corner of block 200A, R x,-1 represents the sample that is one line above the current block with an X coordinate identical to the X coordinate of the modified prediction sample (corresponding to value of pred'(x, y)), R -1,y represents the sample that is one column to the left (or "left side") of the current block with a y-coordinate identical to the y-coordinate of the predictive sample being modified, and R- 1 ,-1 represents a selection that is one column to the left of the current block and one row above the current block.

[0114] Выборки (например, опорные выборки, используемые для PDPC), которые используются для того, чтобы модифицировать прогнозную выборку (сформированную с использованием режима внутреннего прогнозирования), представляют собой выборки в кинокадре (например, выборки сигнала яркости и сигнала цветности) и не обязательно представляют собой другие прогнозные выборки (хотя и возможно). Например, для текущего внутренне прогнозируемого блока, который имеет размер NxM, видеокодер 22 и/или видеодекодер 30 могут формировать блок прогнозирования размера NxM. Опорные выборки, используемые для того, чтобы модифицировать прогнозные выборки, представляют собой опорные выборки текущего кинокадра (включающего в себя текущий блок) и являются внешними для текущего блока (в одном или более соседних блоков относительно текущего блока).[0114] The samples (eg, reference samples used for PDPC) that are used to modify the predictive sample (generated using the intra prediction mode) are samples in the movie frame (eg, luminance and chrominance samples) and are not necessarily represent other forecast samples (although possible). For example, for a current intra prediction block that is NxM in size, video encoder 22 and/or video decoder 30 may generate an NxM size prediction block. The reference samples used to modify the predictive samples are the reference samples of the current movie frame (including the current block) and are external to the current block (in one or more blocks adjacent to the current block).

[0115] Система координат для идентификации выборок, внешних для текущего блока, является относительной для текущего блока. Например, выборка, расположенная в левом верхнем углу текущего блока, имеет координату (0, 0). Видеокодер 22 может определять остаток между прогнозной выборкой, расположенной в левом верхнем углу блока прогнозирования (например, имеющей координату (0, 0)), и выборкой в текущем блоке, имеющей координату (0, 0). Чтобы восстанавливать выборку, расположенную в (0, 0) в текущем блоке, видеодекодер 30 может суммировать прогнозную выборку, расположенную в (0, 0) в блоке прогнозирования, с остаточным значением, соответствующим выборке, расположенной в (0, 0). Соответственно, для каждой выборки в текущем блоке, предусмотрена соответствующая выборка в блоке прогнозирования (например, имеющая идентичную координату).[0115] The coordinate system for identifying samples external to the current block is relative to the current block. For example, the selection located in the upper left corner of the current block has the coordinate (0, 0). Video encoder 22 may determine the residual between the prediction sample located in 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, a corresponding sample in the prediction block (eg, having the same coordinate) is provided.

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

[0117] Также может быть возможным использовать другую систему координат, к примеру, систему координат, в которой координата (0, 0) ссылается на правую верхнюю выборку кинокадра. Примерные технологии описываются относительно системы координат, в которой координата (0, 0) ссылается на левую верхнюю выборку блока.[0117] It may also be possible to use a different coordinate system, such as a coordinate system in which the coordinate (0, 0) refers to the upper right sample of the movie frame. Exemplary techniques are described with respect to a coordinate system in which the coordinate (0, 0) refers to the upper left sample of the block.

[0118] Для DC-режима, весовые коэффициенты вычисляются следующим образом для блока с размерами width и height:[0118] For DC mode, the weights are calculated as follows for a box with dimensions width and height:

wT=32>>((y<<1)>>shift), wL=32>>((x<<1)>>shift), wTL=(wL>>4)+(wT>>4), (уравнение 2)wT=32>>((y<<1)>>shift), wL=32>>((x<<1)>>shift), wTL=(wL>>4)+(wT>>4), (equation 2)

[0119] В уравнении 2, shift=(log2(width)+log2(height)+2)>>2. Для планарного режима wTL=0, для горизонтального режима wL=0 и wTL=wT, и для вертикального режима wT=0 и wTL=wL. В некоторых случаях, весовые PDPC-коэффициенты могут вычисляться только с суммированиями и сдвигами. Значение pred(x, y) может вычисляться на одном этапе с использованием уравнения 1.[0119] In Equation 2, shift=(log 2 (width)+log 2 (height)+2)>>2. For planar mode wTL=0, for horizontal mode wL=0 and wTL=wT, and for vertical mode wT=0 and wTL=wL. In some cases, PDPC weights can only be computed with sums and shifts. The value of pred(x, y) can be calculated in one step using Equation 1.

[0120] Фиг. 2A является схемой, иллюстрирующей весовые PDPC-коэффициенты (wL, wT, wTL) в DC-режиме для первой прогнозной выборки 202 (в выборочной позиции (0, 0)) в одном блоке 200A 4×4. Как показано, весовой коэффициент wL для опорной PDPC-выборки R-1,y равен 32, весовой коэффициент wT для опорной PDPC-выборки Rx,-1 равен 32, и весовой коэффициент wTL для опорной PDPC-выборки R-1,-1 равен -4. Весовые коэффициенты (wL, wT, wTL) могут определяться согласно вышеприведенному уравнению 2. Как показано в уравнении 2, весовые коэффициенты определяются на основе позиции (x, y) прогнозной выборки pred(x, y) в текущем блоке.[0120] FIG. 2A is a diagram illustrating the DC mode PDPC weights (wL, wT, wTL) for the first predictive sample 202 (at sample position (0, 0)) in one 4×4 block 200A. As shown, the weight wL for the PDPC reference sample R -1,y is 32, the weight wT for the PDPC reference sample R x,-1 is 32, and the weight wTL for the PDPC reference sample R -1,-1 is -4. The weights (wL, wT, wTL) may be determined according to Equation 2 above. As shown in Equation 2, the weights are determined based on the position (x, y) of the prediction sample pred(x, y) in the current block.

[0121] Фиг. 2B иллюстрирует весовые PDPC-коэффициенты (wL, wT, wTL) в DC-режиме для выборочной позиции (1, 0) в одном блоке 4×4. Как показано, весовой коэффициент wL для опорной PDPC-выборки R-1,y равен 8, весовой коэффициент wT для опорной PDPC-выборки Rx,-1 равен 32, и весовой коэффициент wTL для опорной PDPC-выборки R-1,-1 равен -2. Весовые коэффициенты (wL, wT, wTL) могут определяться согласно вышеприведенному уравнению 2.[0121] FIG. 2B illustrates the PDPC weights (wL, wT, wTL) in DC mode for sample position (1, 0) in one 4×4 block. As shown, the weight wL for the PDPC reference sample R -1,y is 8, the weight wT for the PDPC reference sample R x,-1 is 32, and the weight wTL for the PDPC reference sample R -1,-1 equals -2. The weighting factors (wL, wT, wTL) may be determined according to Equation 2 above.

[0122] В некоторых случаях, если PDPC применяется к DC-, планарному, горизонтальным и вертикальным внутренним режимам, дополнительные граничные фильтры не применяются, такие как граничный фильтр DC-режима или краевые фильтры горизонтального/вертикального режимов. В некоторых случаях, уравнение 1 может обобщаться таким образом, что оно включает в себя дополнительные линии опорных выборок (например, не ограниченные выборками на одну строку выше или на одну строку слева от текущего блока). В этом случае, несколько опорных выборок доступны в окружениях Rx,-1, R-1,y, R-1,-1, и каждая из них может иметь назначенный весовой коэффициент, который может оптимизироваться, например, за счет обучения.[0122] In some cases, if PDPC is applied to DC, planar, horizontal, and vertical intrinsic modes, additional edge filters are not applied, such as DC mode edge filter or horizontal/vertical mode edge filters. In some cases, Equation 1 may be generalized such that it includes 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 available in the environments R x,-1 , R -1,y , R -1,-1 , and each of them may have an assigned weight that may be optimized, for example, through training.

[0123] В некоторых случаях, PDPC, в общем, может расширяться на угловые режимы (например, на диагональные внутренние режимы и на угловые режимы, которые являются смежными с диагональными режимами). Намеченные диагональные внутренние режимы представляют собой режимы, которые прогнозируют согласно направлениям вниз и влево и вверх и вправо, а также несколько смежных угловых режимов, например, N смежных режимов между левым нижним диагональным режимом и вертикальным режимом и N или M смежных режимов между правым верхним диагональным режимом и горизонтальным режимом. Фиг. 3 иллюстрирует идентификацию угловых режимов, раскрытую в данном документе. В общем, смежные режимы могут представлять собой выбранный поднабор доступных угловых режимов. Разнесение между угловыми режимами, например, может быть неоднородным, и некоторые угловые режимы, например, могут пропускаться.[0123] In some cases, PDPC can generally be extended to corner modes (eg, diagonal internal modes and corner modes that are adjacent to diagonal modes). The intended diagonal inner modes are the modes that predict according to the directions down and left and up and right, as well as several adjacent angular modes, for example, N adjacent modes between the lower left diagonal mode and the vertical mode and N or M adjacent modes between the upper right diagonal mode. mode and horizontal mode. Fig. 3 illustrates the identification of angular modes disclosed in this document. In general, adjacent modes may be a selected subset of the available angle modes. The spacing between angular modes, for example, may be non-uniform, and some angular modes, for example, may be skipped.

[0124] В некоторых примерах, видеокодер 22 и видеодекодер 30 могут быть выполнены с возможностью выполнять PDPC, при котором текущий блок внутренне прогнозируется в угловом режиме, который исключает DC-, планарный, вертикальные или горизонтальные режимы. Тем не менее, могут возникать технические сложности при расширении PDPC на режимы углового внутреннего прогнозирования. Например, опорные выборки, хотя расположены внешне для текущего блока, не должны обязательно иметь идентичные координаты X и/или Y с модифицируемой прогнозной выборкой. Следовательно, может быть непонятно то, какие опорные выборки следует использовать для модификации прогнозной выборки таким образом, что достигается эффективность кодирования видео.[0124] In some examples, video encoder 22 and video decoder 30 may be configured to perform PDPC in which the current block is intra-predicted in a corner mode that excludes DC, planar, vertical, or horizontal modes. However, technical difficulties may arise when extending PDPC to angle intra prediction modes. For example, reference samples, although located external to the current block, do not need to have identical X and/or Y coordinates with the predictive sample being modified. Therefore, it may not be clear which reference samples should be used to modify the predictive sample in such a way that video coding efficiency is achieved.

[0125] Например, если информация, требуемая для того, чтобы передавать в служебных сигналах остаточные значения, уменьшается, возникает повышение эффективности использования полосы пропускания. Соответственно, опорные PDPC-выборки, используемые для того, чтобы модифицировать блок прогнозирования (определенный с использованием внутреннего прогнозирования), должны быть такими, что остаточные значения, сформированные из модифицированного блока прогнозирования, требуют меньшего объема информации, которая должна передаваться в служебных сигналах, по сравнению с другими технологиями. Тем не менее, если определение того, какие опорные выборки следует использовать, является чрезмерно интенсивным, может быть задержка касательно того, сколько времени требуется видеодекодеру 30 для того, чтобы восстанавливать текущий блок.[0125] For example, if the information required to signal the residual values is reduced, an increase in bandwidth efficiency occurs. Accordingly, the PDPC reference samples used to modify the prediction block (determined using intra prediction) should be such that the residuals generated from the modified prediction block require less information to be signaled over compared to other technologies. However, if determining which reference samples to use is excessively intensive, there may be a delay in how long it takes for video decoder 30 to recover the current block.

[0126] Фиг. 4A-4D иллюстрируют определения выборок, используемых посредством PDPC, расширенной на диагональные и смежные угловые внутренние режимы. Пунктирные стрелки на фиг. 4A-4D указывают направление прогнозирования (например, из фиг. 3) и исходят из опорной выборки, используемой для внутренне прогнозированной прогнозной выборки pred(x',y'). Фиг. 4A иллюстрирует определение опорных PDPC-выборок R(x,-1), R(-1,y) и R(-1,-1) для расширения PDPC на правый верхний диагональный режим. Прогнозная выборка pred(x',y') расположена в (x', y') в блоке прогнозирования. Координата X опорной PDPC-выборки R(x,-1) задается следующим образом: x= x'+y'+1, и координата Y опорной PDPC-выборки R(-1,y) аналогично задается следующим образом: y=x'+y'+1. Весовые PDPC-коэффициенты для правого верхнего диагонального режима, например, составляют: wT=16>>((y'<<1)>>shift), wL=16>>((x'<<1)>>shift), wTL=0.[0126] FIG. 4A-4D illustrate the sample definitions used by PDPC extended to diagonal and adjacent angle intra modes. The dotted arrows in Fig. 4A-4D indicate the direction of prediction (eg, from FIG. 3) and are based on the reference sample used for the internally predicted predictive sample pred(x',y'). Fig. 4A illustrates the definition of the PDPC reference samples R (x,-1) , R (-1,y) , and R (-1,-1) for PDPC extension to the upper right diagonal mode. The prediction sample pred(x',y') is located at (x', y') in the prediction block. The X coordinate of the reference PDPC sample R (x,-1) is given as follows: x= x'+y'+1, and the Y coordinate of the reference PDPC sample R (-1,y) is similarly given as follows: y=x'+y'+1. The PDPC weights for the upper right diagonal mode, for example, are: wT=16>>((y'<<1)>>shift), wL=16>>((x'<<1)>>shift), wTL=0.

[0127] Фиг. 4B иллюстрирует определение опорных выборок R(x,-1), R(-1,y) и R(-1,-1) для расширения PDPC на левый нижний диагональный режим. Координата X опорной PDPC-выборки R(x,-1) задается следующим образом: x=x'+y'+1, и координата Y опорной PDPC-выборки R(-1,y) задается следующим образом: y=x'+y'+1. Весовые PDPC-коэффициенты для правого верхнего диагонального режима, например, составляют: wT=16>>((y'<<1)>>shift), wL=16>>((x'<<1)>>shift), wTL=0.[0127] FIG. 4B illustrates the definition of the reference samples R (x,-1) , R (-1,y) , and R (-1,-1) for extending the PDPC to the left lower diagonal mode. The X coordinate of the reference PDPC sample R (x,-1) is defined as: x=x'+y'+1, and the Y coordinate of the reference PDPC sample R (-1,y) is defined as: y=x'+ y'+1. The PDPC weights for the upper right diagonal mode, for example, are: wT=16>>((y'<<1)>>shift), wL=16>>((x'<<1)>>shift), wTL=0.

[0128] На фиг. 4A и фиг. 4B, видеокодер 22 и видеодекодер 30 могут определять строку, которая находится выше текущего блока (например, непосредственно выше, но технологии не ограничены этим), и определять координату X в определенной строке. Координата X в определенной строке равна координате X прогнозной выборки плюс координата Y прогнозной выборки плюс 1. Видеокодер 22 и видеодекодер 30 могут определять опорную выборку из одной или более опорных выборок на основе определенной строки и определенной координаты X.[0128] In FIG. 4A and FIG. 4B, video encoder 22 and video decoder 30 may determine the line that is above the current block (eg, immediately above, but technologies 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.

[0129] Аналогично, на фиг. 4A и фиг. 4B, видеокодер 22 и видеодекодер 30 могут определять столбец, который находится слева от текущего блока (например, непосредственно слева, но технологии не ограничены этим), и могут определять координату Y в определенном столбце. Координата Y в определенном столбце равна координате X прогнозной выборки плюс координата Y прогнозной выборки плюс 1. Видеокодер 22 и видеодекодер 30 могут определять опорную выборку из одной или более опорных выборок на основе определенного столбца и определенной координаты Y.[0129] Similarly, in FIG. 4A and FIG. 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 technologies are not limited to this) and may determine the Y coordinate in the determined column. The Y coordinate in a particular column is equal to the X coordinate of the predictive 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.

[0130] На основе определенных координат X и Y, видеокодер 22 и видеодекодер 30 могут определять опорные выборки (например, первую опорную выборку на основе определенной строки и определенной координаты X и вторую опорную выборку на основе определенного столбца и определенной координаты Y). Видеокодер 22 и видеодекодер 30 также могут определять весовые коэффициенты согласно вышеуказанным примерным технологиям для диагональных режимов (например, для правого верхнего диагонального режима и левого нижнего диагонального режима, в качестве двух примеров). Затем на основе уравнения 1 (в качестве одного неограничивающего примера), видеокодер 22 и видеодекодер 30 могут определять модифицированную прогнозную выборку (например, pred(x, y)).[0130] Based on the determined X and Y coordinates, video encoder 22 and video decoder 30 may determine reference samples (eg, 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). Video encoder 22 and video decoder 30 may also determine weights according to the above exemplary techniques for diagonal modes (eg, right upper diagonal mode and left lower diagonal 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 predictive sample (eg, pred(x, y)).

[0131] Случай смежного правого верхнего диагонального режима проиллюстрирован на фиг. 4C. В общем, для угла α, заданного на фиг. 3, координата Y опорной PDPC-выборки R(-1,y) определяется следующим образом: y=y'+tan(α)*(x'+1), и координата X опорной PDPC-выборки R(x,-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.[0131] The case of adjacent right upper diagonal mode is illustrated in FIG. 4C. In general, for the angle α given in FIG. 3, the Y coordinate of the reference PDPC sample R (-1,y) is defined as follows: y=y'+tan(α)*(x'+1), and the X coordinate of the reference PDPC sample R (x,-1) is given as follows: x=x'+cotan(α)*(y'+1), where tan(α) and cotan(α) are the tangent and cotangent of the angle α, respectively. The PDPC weights for the adjacent right upper 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.

[0132] Аналогично, случай смежного левого нижнего диагонального режима проиллюстрирован на фиг. 4D. В общем, для угла β, заданного на фиг. 3, координата X опорной PDPC-выборки R(x,-1) определяется следующим образом: x=x'+tan(β)*(y'+1), и координата Y опорной PDPC-выборки 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.[0132] Similarly, the case of adjacent left lower diagonal mode is illustrated in FIG. 4D. In general, for the angle β given in FIG. 3, the X coordinate of the reference PDPC sample R (x,-1) is determined as follows: x=x'+tan(β)*(y'+1), and the Y coordinate of the reference PDPC sample R (-1,y) is given by y=y'+cotan(β)*(x'+1), where tan(β) and cotan(β) are the tangent and cotangent of the angle β, respectively. The PDPC weights for the adjacent left lower diagonal 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.

[0133] На фиг. 4C и фиг. 4D, видеокодер 22 и видеодекодер 30 могут определять строку, которая находится выше текущего блока (например, непосредственно выше, но технологии не ограничены этим), и могут определять координату X в определенной строке. Координата X в определенной строке основана на углу режима углового внутреннего прогнозирования. Видеокодер 22 и видеодекодер 30 могут определять опорную выборку из одной или более опорных выборок на основе определенной строки и определенной координаты X.[0133] FIG. 4C and FIG. 4D, video encoder 22 and video decoder 30 may determine the line that is above the current block (eg, directly above, but technologies are not limited to this) and may determine the X coordinate in the determined line. The X coordinate in a certain row is based on the angle of the angular intra prediction mode. 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.

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

[0135] Аналогично, на фиг. 4C и фиг. 4D, видеокодер 22 и видеодекодер 30 могут определять столбец, который находится слева от текущего блока (например, непосредственно слева, но технологии не ограничены этим), и могут определять координату Y в определенном столбце. Координата Y в определенном столбце основана на углу режима углового внутреннего прогнозирования. Видеокодер 22 и видеодекодер 30 могут определять опорную выборку из одной или более опорных выборок на основе определенного столбца и определенной координаты Y.[0135] Similarly, in FIG. 4C and FIG. 4D, 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 technologies are not limited to this) and may determine the Y coordinate in the determined column. The Y coordinate in a specific column is based on the angle of the angular intra prediction mode. Video encoder 22 and video decoder 30 may determine a reference sample from one or more reference samples based on a specific column and a specific Y coordinate.

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

[0137] На основе определенных координат X и Y, видеокодер 22 и видеодекодер 30 могут определять опорные выборки (например, первую опорную выборку на основе определенной строки и определенной координаты X и вторую опорную выборку на основе определенного столбца и определенной координаты Y). Видеокодер 22 и видеодекодер 30 также могут определять весовые коэффициенты согласно вышеуказанным примерным технологиям для смежных диагональных режимов (например, для смежного правого верхнего диагонального режима и смежного левого нижнего диагонального режима, в качестве двух примеров). Затем на основе уравнения 1 (в качестве одного неограничивающего примера), видеокодер 22 и видеодекодер 30 могут определять модифицированную прогнозную выборку (например, pred(x, y)).[0137] Based on the determined X and Y coordinates, video encoder 22 and video decoder 30 may determine reference samples (eg, 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). Video encoder 22 and video decoder 30 may also determine weights according to the above exemplary techniques for adjacent diagonal modes (eg, adjacent right upper diagonal mode and adjacent left lower diagonal 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 predictive sample (eg, pred(x, y)).

[0138] Как описано выше, PDPC может применяться к режимам углового внутреннего прогнозирования с минимальным влиянием на сложность. В практической реализации, значения тангенсов и котангенсов углов могут сохраняться в таблицах таким образом, что они не вычисляются на лету (например, в среде выполнения). Далее приводятся примерные таблицы в сумме для 129 угловых режимов:[0138] As described above, PDPC can be applied to angular intra prediction modes with minimal impact on complexity. In a practical implementation, the values of tangents and cotangents of angles can be stored in tables in such a way that they are not calculated on the fly (eg, in the runtime environment). The following are exemplary tables in total for 129 angular modes:

[0139] 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}.[0139] 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}.

[0140] 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}.[0140] CotanAngTable[33]={0, 65536, 32768, 21845, 16384, 13107, 10923, 8192, 6554, 5461, 4681, 4096, 3641, 3277, 2979, 2731, 2521, 2925 , 1820, 1725, 1638, 1560, 1489, 1425, 1337, 1260, 1192, 1130, 1074, 1024}.

[0141] Значения в таблице тангенсов указывают местоположение выборки, найденной с использованием режима внутреннего прогнозирования. Значение в таблице котангенсов указывает местоположение опорной PDPC-выборки согласно соответствующему значению в таблице тангенсов. Например, первая запись в таблице тангенсов (указывающая местоположение выборки внутреннего прогнозирования) соответствует первой записи в таблице котангенсов (указывающей местоположение опорной PDPC-выборки).[0141] The values in the tangent table indicate the location of the sample found using the intra prediction mode. The value in the tangent table indicates the location of the PDPC reference sample according to the corresponding value in the tangent table. For example, the first entry in the tangent table (indicating the location of the intra prediction sample) corresponds to the first entry in the tangent table (indicating the location of the PDPC reference sample).

[0142] Кроме того, таблицы могут уже использоваться посредством углового внутреннего прогнозирования блоков и могут многократно использоваться для расширения PDPC на диагональные и смежные режимы (например, на режимы углового внутреннего прогнозирования). Следовательно, дополнительные таблицы могут не требоваться в реализации PDPC. В некоторых примерах, пользовательские таблицы могут формироваться, например, за счет обучения, с возможностью дополнительно оптимизировать PDPC.[0142] In addition, the tables may already be used by angular intra block prediction and may be reused to extend PDPC to diagonal and adjacent modes (eg, angle intra prediction modes). Therefore, additional tables may not be required in a PDPC implementation. In some examples, user tables may be generated, for example, through training, with the ability to further optimize the PDPC.

[0143] В некоторых видеокодеках, блочная структура, используемая для указания блока прогнозирования для внутреннего прогнозирования, не ограничивается квадратом (ширина w=высота h). Прямоугольные блоки прогнозирования (w>h или w<h) могут повышать эффективность кодирования на основе характеристик контента. В таких прямоугольных блоках, ограничение направления внутреннего прогнозирования в пределах углов, проиллюстрированных на фиг. 3 (от -135 градусов до 45 градусов текущего блока относительно вертикального направления из прогнозной выборки), может приводить к ситуациям, когда для внутреннего прогнозирования используются более далекие опорные выборки, вместо более близких опорных выборок.[0143] In some video codecs, a block structure used to indicate a prediction block for intra prediction is not limited to a square (width w=height h). Rectangular prediction blocks (w>h or w<h) can improve coding efficiency based on content characteristics. In such rectangular blocks, limiting the intra prediction direction within the angles illustrated in FIG. 3 (-135 degrees to 45 degrees of the current block relative to the vertical direction from the prediction sample) can lead to situations where more distant reference samples are used for intra prediction instead of closer reference samples.

[0144] Фиг. 5 является схемой, иллюстрирующей пример режима направленного внутреннего прогнозирования, в котором более далекие опорные выборки используются для внутреннего прогнозирования текущего блока 503 текущего кинокадра 502, вместо более близких опорных выборок. Текущий блок 503 представляет собой прямоугольный блок 4×8 выборок. Также показаны опорные выборки 506 и опорные выборки 508. Опорные выборки 506 могут представлять собой часть одного или более блоков выше текущего кинокадра 502, и опорные выборки 508 могут представлять собой часть одного или более блоков слева от текущего кинокадра 502.[0144] FIG. 5 is a diagram illustrating an example of a directional intra prediction mode in which more distant reference samples are used for intra prediction of the current block 503 of the current movie frame 502, instead of closer reference samples. The current block 503 is a rectangular block of 4×8 samples. Also shown are reference samples 506 and reference samples 508. Reference samples 506 may be a portion of one or more blocks above the current movie frame 502, and reference samples 508 may be a portion of one or more blocks to the left of the current movie frame 502.

[0145] Внутреннее прогнозирование выполняется для того, чтобы определять прогнозную выборку 504 (обозначается как pred(x',y')). Вследствие ограничения направления внутреннего прогнозирования диапазоном от -135 градусов до 45 градусов (как показано на фиг. 3), более близкие опорные выборки не используются, но более далекие опорные выборки могут использоваться. Например, левый нижний диагональный режим может использоваться для того, чтобы прогнозировать прогнозную выборку 504, причем угол или направление левого нижнего диагонального режима проиллюстрирован посредством стрелки 512. Правый верхний диагональный режим также может использоваться, причем угол или направление этого режима проиллюстрирован посредством стрелки 510. Левый нижний диагональный режим может выполняться под углом в -135 градусов относительно вертикального направления из прогнозной выборки 504, который представляет собой наименьший левый нижний угол, который может использоваться в диапазоне от -135 градусов до 45 градусов.[0145] Intra prediction is performed in order to determine the predictive sample 504 (denoted as pred(x',y')). Due to the restriction of the intra prediction direction to -135 degrees to 45 degrees (as shown in FIG. 3), closer reference samples are not used, but more distant reference samples can be used. For example, the lower left diagonal mode may be used to predict the predictive sample 504, with the angle or direction of the lower left diagonal mode illustrated by arrow 512. The upper right diagonal mode may also be used, with the angle or direction of this mode illustrated by arrow 510. Left the bottom diagonal mode may be performed at an angle of -135 degrees relative to the vertical direction from the predictive sample 504, which is the smallest bottom left angle that can be used in the range of -135 degrees to 45 degrees.

[0146] Пунктирная стрелка 514 соответствует углу, который больше угла в 45 градусов, используемого в типичных режимах внутреннего прогнозирования (в режимах внутреннего прогнозирования, показанных на фиг. 3). Как показано на фиг. 5, опорная выборка 518, определенная с использованием левой нижней диагональной модели (иллюстрируется посредством стрелки 512), находится дальше от прогнозной выборки 504, чем опорная выборка 516, которая может определяться с использованием более широкоугольного режима внутреннего прогнозирования угла (иллюстрируется посредством пунктирной стрелки 514). Данное проектное решение с большой вероятностью имеет влияние на эффективность кодирования. Должно быть более преимущественным иметь диапазон ограничений, ослабленный таким образом, что более близкие опорные выборки (например, за пределами угла от -135 до 45 градусов) могут использоваться для прогнозирования.[0146] The dotted arrow 514 corresponds to an angle that is larger than the 45 degree angle used in typical intra prediction modes (in the intra prediction modes shown in FIG. 3). As shown in FIG. 5, reference sample 518 determined using a left lower diagonal model (illustrated by arrow 512) is farther from prediction sample 504 than reference sample 516 that may be determined using a wider intra angle prediction mode (illustrated by dashed arrow 514) . This design decision is likely to have an impact on coding efficiency. It should be more advantageous to have the constraint range relaxed such that closer reference samples (eg, outside of -135 to 45 degrees) can be used for prediction.

[0147] Фиг. 6 является схемой, иллюстрирующей примеры режимов направленного внутреннего прогнозирования, включающих в себя режимы внутреннего прогнозирования, которые протягиваются за пределы углов от -135 (режим 2 внутреннего прогнозирования) до 45 градусов (режим 66 внутреннего прогнозирования). Например, режимы направленного внутреннего прогнозирования 67-80 и от -1 до -14, проиллюстрированные с помощью пунктирных стрелок, могут называться "режимами широкоугольного внутреннего прогнозирования". Следует отметить, что стрелки на фиг. 6 указывают на соответствующие опорные выборки, используемые для прогнозирования, и не указывают направление прогнозирования. Направление прогнозирования является противоположным относительно направления, в котором указывает стрелка. Например, направление прогнозирования режима 68 внутреннего прогнозирования исходит из номера 68 на фиг. 6 (который представляет собой аппроксимированную позицию опорной выборки, используемой в режиме 68) в середину блока. Как отмечено выше, PDPC может использоваться для того, чтобы модифицировать прогнозные выборки, определенные с использованием внутреннего прогнозирования. Например, с использованием PDPC, видеокодер 22 и/или видеодекодер 30 могут определять опорные выборки, которые присутствуют в одной или более линий выше и/или слева от текущего блока, и могут использовать опорные выборки для того, чтобы модифицировать прогнозные выборки, определенные с использованием внутреннего прогнозирования. Модифицированные прогнозные выборки затем могут использоваться для того, чтобы кодировать или декодировать текущий блок. Тем не менее, когда один или более режимов широкоугольного внутреннего прогнозирования используются, из текущих стандартов кодирования видео непонятно, как должно применяться PDPC.[0147] FIG. 6 is a diagram illustrating examples of directional intra prediction modes including intra prediction modes that extend beyond angles from −135 (intra prediction mode 2) to 45 degrees (intra prediction mode 66). For example, the directional intra prediction modes 67-80 and -1 to -14, illustrated by dashed arrows, may be referred to as "wide-angle intra prediction modes". It should be noted that the arrows in Fig. 6 indicate the respective reference samples used for prediction and do not indicate the direction of prediction. The prediction direction is the opposite of the direction in which the arrow is pointing. For example, the prediction direction of the intra prediction mode 68 comes from the number 68 in FIG. 6 (which is an approximate position of the reference sample used in mode 68) to the middle of the block. As noted above, PDPC may be used to modify the prediction samples determined using the intra prediction. For example, using PDPC, video encoder 22 and/or video decoder 30 may determine reference samples that are present in one or more lines above and/or to the left of the current block and may use the reference samples to modify the prediction samples determined using internal forecasting. The modified predictive samples may then be used to encode or decode the current block. However, when one or more wide-angle intra prediction modes are used, it is not clear from current video coding standards how PDPC should be applied.

[0148] В данном документе описываются системы и технологии для расширения использования PDPC на режимы широкоугольного внутреннего прогнозирования, которые используют углы за пределами стандартных углов от -135 градусов (режим 2) до 45 градусов (режим 66). Системы и технологии предоставляют практический вариант применения технологий кодирования видео, таких как технологии кодирования видео для PDPC, используемого с режимами широкоугольного внутреннего прогнозирования. Например, примерные технологии предоставляют техническое решение для использования PDPC с режимами широкоугольного внутреннего прогнозирования. Ниже подробнее описываются примерные способы, которыми видеокодер 22 и видеодекодер 30 могут выполнять PDPC с режимами углового внутреннего прогнозирования.[0148] This document describes systems and technologies for extending the use of PDPC to wide-angle intra prediction modes that use angles outside of standard angles from -135 degrees (mode 2) to 45 degrees (mode 66). Systems and technologies provide a practical application of video coding technologies, such as video coding technologies for PDPC, used with wide-angle intra prediction modes. For example, exemplary technologies provide a solution for using PDPC with wide-angle indoor prediction modes. Described in more detail below are exemplary ways in which video encoder 22 and video decoder 30 can perform PDPC with angle intra prediction modes.

[0149] В качестве одного примера, видеокодер 22 может быть выполнен с возможностью получать текущий блок видеоданных и определять размер текущего блока. Например, ширина и высота текущего блока могут анализироваться для того, чтобы определять то, является или нет текущий блок прямоугольным. В некоторых случаях, видеокодер 22 может определять то, представляет текущий блок собой вертикально ориентированный блок (в котором высота > ширина) или горизонтально ориентированный блок (в котором ширина > высота). Видеокодер 22 может определять то, что режим широкоугольного внутреннего прогнозирования используется для текущего блока, на основе размера текущего блока (например, на основе того, что блок является прямоугольным). Режим широкоугольного внутреннего прогнозирования не представляет собой режим DC-, планарного, горизонтального или вертикального внутреннего прогнозирования и имеет направление, которое меньше -135 градусов или больше 45 градусов относительно вертикального направления из каждой прогнозной выборки блока прогнозирования.[0149] As one example, video encoder 22 may be configured to receive the current block of video data and determine the size of the current block. For example, the width and height of the current box may be parsed to determine whether or not the current box is rectangular. In some cases, video encoder 22 may determine whether the current block is a vertically oriented block (where height > width) or a horizontally oriented block (where width > height). Video encoder 22 may determine that the wide-angle intra prediction mode is being used for the current block based on the size of the current block (eg, based on the fact that the block is rectangular). The wide-angle intra prediction mode is not a DC, planar, horizontal, or vertical intra prediction mode, and has a direction that is less than -135 degrees or greater than 45 degrees with respect to the vertical direction from each prediction sample of the prediction block.

[0150] В некоторых случаях, угол диагонали, простирающейся из позиции слева снизу текущего блока в позицию слева сверху текущего блока, может использоваться в качестве ограничения на выбор режима внутреннего прогнозирования, причем может выбираться любой режим внутреннего прогнозирования, имеющий угол, который не превышает диагональ текущего блока (из левого нижнего угла в правый верхний угол блока). Режим внутреннего прогнозирования может выбираться из допустимых режимов внутреннего прогнозирования на основе технологий, описанных выше. Например, режим внутреннего прогнозирования для каждого блока, который минимизирует остаток между блоком прогнозирования и блоком, который должен кодироваться (например, на основе суммы абсолютных ошибок (SAE), суммы абсолютных разностей (SAD), суммы абсолютных преобразованных разностей (SATD) или другой меры подобия), может выбираться из допустимых режимов внутреннего прогнозирования.[0150] In some cases, the angle of a diagonal extending from the bottom left position of the current block to the top left position of the current block may be used as a constraint on intra prediction mode selection, any intra prediction mode having an angle that does not exceed the diagonal may be selected. current block (from the lower left corner to the upper right corner of the block). The intra prediction mode may be selected from valid intra prediction modes based on the techniques described above. For example, a per-block intra prediction mode that minimizes the residual between the prediction block and the block to be encoded (e.g., based on sum of absolute errors (SAE), sum of absolute differences (SAD), sum of absolute transformed differences (SATD), or other measure similarity) can be selected from the allowed intra-prediction modes.

[0151] Видеокодер 22 может быть выполнен с возможностью определять блок прогнозирования (который включает в себя множество прогнозных выборок) для текущего блока на основе режима широкоугольного внутреннего прогнозирования. Видеокодер 22 может быть выполнен с возможностью модифицировать прогнозную выборку блока прогнозирования для того, чтобы формировать модифицированную прогнозную выборку с использованием PDPC. Следует понимать, что, хотя технологии описываются относительно одной прогнозной выборки, примерные технологии не ограничены этим. В некоторых примерах, видеокодер 22 может модифицировать другие прогнозные выборки блока прогнозирования с использованием PDPC.[0151] Video encoder 22 may be configured to determine a prediction block (which includes a plurality of prediction samples) for the current block based on the wide-angle intra prediction mode. Video encoder 22 may be configured to modify the prediction block prediction sample to generate a modified prediction sample using PDPC. It should be understood that while the technologies are described with respect to a single predictive sample, the exemplary technologies are not limited to this. In some examples, video encoder 22 may modify other predictor samples of the prediction block using PDPC.

[0152] Чтобы модифицировать прогнозную выборку, видеокодер 22 может определять одну или более опорных выборок (опорных PDPC-выборок), которые являются внешними для текущего блока, на основе режима широкоугольного внутреннего прогнозирования, и может модифицировать прогнозную выборку для того, чтобы формировать модифицированную прогнозную выборку на основе определенной одной или более опорных выборок. Одна или более опорных выборок могут идентифицироваться с использованием направления или угла выбранного режима широкоугольного внутреннего прогнозирования. Например, если прогнозная выборка выбирается из строки пикселов соседнего блока, расположенного выше текущего блока под углом n относительно вертикального направления из местоположения прогнозной выборки, первая опорная PDPC-выборка может выбираться из столбца пикселов соседнего блока, расположенного слева от текущего блока под идентичным углом n относительно выборочного местоположения. В некоторых примерах, вторая опорная PDPC-выборка может выбираться из выборочного местоположения, идентичного выборочному местоположению, используемому для прогнозной выборки. В некоторых случаях, значение из выборочного местоположения может фильтроваться или сглаживаться для того, чтобы получать вторую опорную PDPC-выборку. В некоторых примерах, третья опорная PDPC-выборка может выбираться из выборочного местоположения в соседнем блоке, которое является смежным с левой верхней выборкой текущего блока (например, из местоположения R-1,-1, показанного на фиг. 4A). Первая опорная PDPC-выборка (и в некоторых случаях вторая и/или третья опорные PDPC-выборки) может использоваться для того, чтобы модифицировать прогнозную выборку в блоке прогнозирования для того, чтобы формировать модифицированную прогнозную выборку. В одном иллюстративном примере, модифицированная прогнозная выборка может определяться посредством вычисления комбинирования со взвешиванием (с использованием одного или более весовых коэффициентов) первой опорной PDPC-выборки, второй опорной PDPC-выборки, третьей опорной PDPC-выборки и прогнозной выборки, к примеру, с использованием вышеприведенного уравнения 1.[0152] To modify the predictive sample, video encoder 22 may determine one or more reference samples (PDPC reference samples) that are external to the current block based on the wide-angle intra prediction mode, and may modify the predictive sample to generate a modified predictive a sample based on the determined one or more reference samples. One or more reference samples may be identified using the direction or angle of the selected wide-angle intra prediction mode. For example, if a prediction sample is selected from a row of pixels of a neighboring block located above the current block at an angle n relative to the vertical direction from the prediction sample location, the first reference PDPC sample may be selected from a column of neighboring block pixels located to the left of the current block at an identical angle n relative to selective location. In some examples, the second PDPC reference sample may be selected from an identical sample location to the sample location used for the predictive sample. In some cases, the value from the sample location may be filtered or smoothed in order to obtain a second PDPC reference sample. In some examples, the third PDPC reference sample may be selected from a sample location in an adjacent block that is adjacent to the top left sample of the current block (eg, from the R -1,-1 location shown in FIG. 4A). The first PDPC reference sample (and in some cases the second and/or third PDPC reference samples) may be used to modify the prediction sample in the prediction block to generate the modified prediction sample. In one illustrative example, a modified predictive sample may be determined by calculating a weighted combination (using one or more weights) of the first PDPC reference sample, the second PDPC reference sample, the third PDPC reference sample, and the predictive sample, for example, using Equation 1 above.

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

[0154] В качестве другого примера, видеодекодер 30 может быть выполнен с возможностью получать текущий блок видеоданных и определять размер текущего блока. Например, ширина и высота текущего блока могут анализироваться для того, чтобы определять то, является или нет текущий блок прямоугольным. В некоторых случаях, видеодекодер 30 может определять то, представляет текущий блок собой вертикально ориентированный блок (в котором высота > ширина) или горизонтально ориентированный блок (в котором ширина > высота). Видеокодер 22 может определять то, что режим широкоугольного внутреннего прогнозирования используется для текущего блока, на основе размера текущего блока (например, на основе того, что блок является прямоугольным). Режим широкоугольного внутреннего прогнозирования не представляет собой режим DC-, планарного, горизонтального или вертикального внутреннего прогнозирования и имеет направление, которое меньше -135 градусов или больше 45 градусов относительно вертикального направления из каждой прогнозной выборки блока прогнозирования.[0154] As another example, video decoder 30 may be configured to receive the current block of video data and determine the size of the current block. For example, the width and height of the current box may be parsed to determine whether or not the current box is rectangular. In some cases, video decoder 30 may determine whether the current block is a vertically oriented block (in which height > width) or a horizontally oriented block (in which width > height). Video encoder 22 may determine that the wide-angle intra prediction mode is being used for the current block based on the size of the current block (eg, based on the fact that the block is rectangular). The wide-angle intra prediction mode is not a DC, planar, horizontal, or vertical intra prediction mode, and has a direction that is less than -135 degrees or greater than 45 degrees with respect to the vertical direction from each prediction sample of the prediction block.

[0155] Видеодекодер 30 может быть выполнен с возможностью определять блок прогнозирования, который включает в себя множество прогнозных выборок, для текущего блока на основе режима широкоугольного внутреннего прогнозирования. Видеодекодер 30 может модифицировать прогнозную выборку блока прогнозирования для того, чтобы формировать модифицированную прогнозную выборку с использованием PDPC. Аналогично вышеуказанному, хотя технологии описываются относительно одной прогнозной выборки, примерные технологии не ограничены этим. В некоторых примерах, видеодекодер 30 может модифицировать другие прогнозные выборки блока прогнозирования с использованием PDPC.[0155] Video decoder 30 may be configured to determine a prediction block that includes a plurality of prediction samples for the current block based on the wide-angle intra prediction mode. Video decoder 30 may modify the prediction block prediction sample to generate a modified prediction sample using PDPC. Similar to the above, although the technologies are described with respect to one predictive sample, the exemplary technologies are not limited to this. In some examples, video decoder 30 may modify other predictor samples of the prediction block using PDPC.

[0156] Чтобы модифицировать прогнозную выборку, видеодекодер 30 может быть выполнен с возможностью определять одну или более опорных выборок, которые являются внешними для текущего блока, на основе режима широкоугольного внутреннего прогнозирования и модифицировать прогнозную выборку для того, чтобы формировать модифицированную прогнозную выборку на основе определенной одной или более опорных выборок. Аналогично описанному выше относительно видеокодера 22, одна или более опорных выборок могут идентифицироваться с использованием направления или угла выбранного режима широкоугольного внутреннего прогнозирования. Например, первая опорная PDPC-выборка может выбираться из столбца или строки пикселов соседнего блока под идентичным углом n относительно выборочного местоположения. В некоторых примерах, вторая опорная PDPC-выборка может выбираться из выборочного местоположения, идентичного выборочному местоположению, используемому для прогнозной выборки (значение которой должно фильтроваться или сглаживаться для того, чтобы получать вторую опорную PDPC-выборку) и/или третья опорная PDPC-выборка может выбираться из выборочного местоположения в соседнем блоке, которое является смежным с левой верхней выборкой текущего блока (например, из местоположения R-1,-1, показанного на фиг. 4A). Первая опорная PDPC-выборка (и в некоторых случаях вторая и/или третья опорные PDPC-выборки) может использоваться для того, чтобы модифицировать прогнозную выборку в блоке прогнозирования для того, чтобы формировать модифицированную прогнозную выборку (например, с использованием вышеприведенного уравнения 1). Видеодекодер 30 также может быть выполнен с возможностью восстанавливать выборку текущего блока на основе модифицированной прогнозной выборки и остаточного значения.[0156] 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 wide-angle intra prediction mode and modify the prediction sample to generate a modified prediction sample based on the determined one or more reference samples. As described above with respect to video encoder 22, one or more reference samples may be identified using the direction or angle of the selected wide-angle intra prediction mode. For example, the first PDPC reference sample may be selected from a column or row of neighboring block pixels at an identical angle n relative to the sample location. In some examples, the second PDPC reference sample may be selected from a sample location identical to the sample location used for the predictive sample (the value of which must be filtered or smoothed in order to obtain the second PDPC reference sample) and/or the third PDPC reference sample may be selected from a sample location in an adjacent block that is adjacent to the top left sample of the current block (eg, from location R -1,-1 shown in FIG. 4A). The first PDPC reference sample (and in some cases the second and/or third PDPC reference samples) may be used to modify the prediction sample in the prediction block to generate the modified prediction sample (eg, using Equation 1 above). Video decoder 30 may also be configured to resample the current block based on the modified predictive sample and the residual.

[0157] Фиг. 7 является схемой, иллюстрирующей пример PDPC, выполняемого с помощью режима широкоугольного внутреннего прогнозирования. Текущий кинокадр 702 показывается с текущим блоком 703 видеоданных. Текущий блок 703 представляет собой прямоугольный блок 4×8 выборок (например, компонентные выборки сигнала яркости и/или сигнала цветности или полный набор компонентных выборок сигнала яркости и сигнала цветности, составляющих блок пикселов). Также показаны соседние восстановленные опорные выборки 706 и соседние восстановленные опорные выборки 708. Соседние опорные выборки 706 могут представлять собой часть одного или более блоков выше текущего кинокадра 702, и соседние опорные выборки 708 могут представлять собой часть одного или более блоков слева от текущего кинокадра 702.[0157] FIG. 7 is a diagram illustrating an example of PDPC performed with the wide-angle intra prediction mode. The current movie frame 702 is shown with the current block 703 of video data. The current block 703 is a rectangular block of 4x8 samples (eg, luma and/or chrominance component samples, or the entire set of luminance and chrominance component samples constituting a block of pixels). Also shown are neighboring reconstructed reference samples 706 and neighboring reconstructed reference samples 708. Adjacent reference samples 706 may be part of one or more blocks above the current movie frame 702, and neighboring reference samples 708 can be part of one or more blocks to the left of the current movie frame 702.

[0158] Устройство кодирования (например, видеокодер 22 и/или видеодекодер 30) может определять размер текущего блока 703 и может определять или выбирать режим внутреннего прогнозирования, который следует выполнять, на основе размера текущего блока 703. Как описано выше, устройство кодирования может определять то, что режим широкоугольного внутреннего прогнозирования используется для текущего блока 703, на основе размера текущего блока 703. Например, режим широкоугольного внутреннего прогнозирования может использоваться когда определяется то, что текущий блок представляет собой прямоугольный блок (ширина и высота имеют различные размеры). В некоторых случаях, любой режим внутреннего прогнозирования, имеющий угол, который не превышает диагональ текущего блока 703 (из левого нижнего угла в правый верхний угол блока), может выбираться для использования при прогнозировании текущего блока 703. В некоторых случаях, отношения размеров блоков могут использоваться для того, чтобы определять режим внутреннего прогнозирования, который следует использовать. Например, отношение размеров блоков для прямоугольного блока может использоваться для того, чтобы определять диагональное направление из позиции слева снизу в позицию справа сверху и в силу этого разрешенный диапазон углов (или направлений) прогнозирования.[0158] An encoder (eg, video encoder 22 and/or video decoder 30) may determine the size of the current block 703 and may determine or select an intra prediction mode to perform based on the size of the current block 703. As described above, the encoder may determine that the wide-angle intra prediction mode is used for the current block 703 based on the size of the current block 703. For example, the wide-angle intra prediction mode may be used when it is determined that the current block is a rectangular block (width and height have different sizes). In some cases, any intra prediction mode having an angle that does not exceed the diagonal of the current block 703 (from the lower left corner to the upper right corner of the block) may be selected for use in predicting the current block 703. In some cases, block size ratios may be used in order to determine the intra prediction mode to be used. For example, the block size ratio for a rectangular block can be used to determine the diagonal direction from the bottom left position to the top right position and therefore the allowed range of prediction angles (or directions).

[0159] В некоторых примерах, режимы внутреннего прогнозирования (включающие в себя режимы 2-66), которые находятся за пределами угла диагонали блока 703, могут запрещаться, и дополнительные широкоугольные режимы, которые находятся в пределах угла диагонали блока 703, может задаваться доступными для выбора посредством устройства кодирования. Например, для горизонтально ориентированного прямоугольного блока 703 (в котором ширина > высота), если угол, ассоциированный с режимом 5 внутреннего прогнозирования (как показано на фиг. 6), представляет собой угол диагонали блока 703 (из левого нижнего угла в правый верхний угол), то режимы 2, 3 и 4 могут запрещаться, и дополнительные режимы 67, 68 и 69 (с углами больше 45° относительно вертикального направления из каждого выборочного местоположения в текущем блоке 703) могут задаваться доступными для прогнозирования одной или более прогнозных выборок блока прогнозирования текущего блока 703.[0159] In some examples, intra prediction modes (including modes 2-66) that are outside the diagonal corner of block 703 may be disabled, and additional wide-angle modes that are within the diagonal corner of block 703 may be made available to selection by means of an encoder. For example, for a horizontally oriented rectangular block 703 (in which width > height), if the corner associated with intra prediction mode 5 (as shown in FIG. 6) is the diagonal corner of block 703 (from the lower left corner to the upper right corner) , then modes 2, 3, and 4 may be disabled, and additional modes 67, 68, and 69 (with angles greater than 45° relative to the vertical direction from each sample location in the current block 703) may be made available for prediction of one or more prediction samples of the current prediction block. block 703.

[0160] На основе анализа различных доступных режимов внутреннего прогнозирования (например, на основе отношений размеров блоков, на основе SAE или другой меры подобия, отмеченной выше, или с использованием другого подходящего анализа), устройство кодирования может выбирать режим широкоугольного внутреннего прогнозирования (например, режим 67, 68 или 69 широкоугольного внутреннего прогнозирования) для выполнения внутреннего прогнозирования для выборочного местоположения текущего блока 703. Стрелка 710 на фиг. 7 указывает направление прогнозирования (или угол прогнозирования) выбранного режима широкоугольного внутреннего прогнозирования и исходит из опорной выборки 712, используемой для внутреннего прогнозирования прогнозной выборки 704 (обозначается как pred(x',y')). Режим широкоугольного внутреннего прогнозирования, проиллюстрированный на фиг. 7, представляет собой смежный режим вниз и влево по диагонали (например, режим широкоугольного внутреннего прогнозирования 69 из фиг. 6).[0160] Based on an analysis of the various available intra prediction modes (e.g., based on block size ratios, based on SAE or other similarity measure noted above, or using other suitable analysis), the encoder may select a wide-angle intra prediction mode (e.g., wide-angle intra prediction mode 67, 68, or 69) to perform intra prediction for the sample location of the current block 703. Arrow 710 in FIG. 7 indicates the prediction direction (or prediction angle) of the selected wide-angle intra prediction mode and is based on the reference sample 712 used for intra prediction of the prediction sample 704 (denoted as pred(x',y')). The wide-angle intra prediction mode illustrated in FIG. 7 is the diagonal down and left adjacent mode (for example, the wide-angle intra prediction mode 69 of FIG. 6).

[0161] С использованием выбранного режима широкоугольного внутреннего прогнозирования, прогнозная выборка 704 (pred(x',y')) может определяться для правого нижнего выборочного местоположения в блоке прогнозирования текущего блока 703. Например, значение выборки 712 из соседних опорных выборок 708 может выбираться в качестве значения для прогнозной выборки 704, на основе направления (представленного посредством стрелки 710) выбранного режима широкоугольного внутреннего прогнозирования. В некоторых случаях, идентичный режим широкоугольного внутреннего прогнозирования может использоваться для каждой прогнозной выборки блока прогнозирования. В некоторых случаях, различный режим внутреннего прогнозирования (включающий в себя широкоугольные режимы) может использоваться для различных прогнозных выборок блока прогнозирования.[0161] Using the selected wide-angle intra prediction mode, a predictive sample 704 (pred(x',y')) may be determined for the lower right sample location in the prediction block of the current block 703. For example, a sample value 712 from adjacent reference samples 708 may be selected as a value for predictive sample 704, based on the direction (represented by arrow 710) of the selected wide-angle intra prediction mode. In some cases, the same wide-angle intra prediction mode may be used for each prediction sample of a prediction block. In some cases, a different intra prediction mode (including wide-angle modes) may be used for different prediction samples of the prediction block.

[0162] Устройство кодирования затем может выполнять PDPC для того, чтобы определять одну или более опорных PDPC-выборок, которые используются для того, чтобы модифицировать значение прогнозной выборки 704. Одна или более опорных PDPC-выборок могут идентифицироваться с использованием направления (представленного посредством стрелки 710) выбранного режима широкоугольного внутреннего прогнозирования. Например, как отмечено выше и показано на фиг. 7, выборка 712 из строки опорных выборок 708, расположенных выше текущего блока 703, выбирается в качестве прогнозной выборки 704 (pred(x',y')). Прогнозная выборка 704 (pred(x',y')) расположена в местоположении (x', y') в блоке прогнозирования. Первая опорная PDPC-выборка 714 (обозначается как R(-1,y)) выбирается из столбца опорных выборок 706, расположенных слева от текущего блока 703 и вдоль идентичного направления прогнозирования (заданного посредством стрелки 710) режима широкоугольного внутреннего прогнозирования. Для угла β, показанного на фиг. 7 (также показанного на фиг. 3), координата Y опорной выборки R(-1,y) определяется следующим образом: y=y'+cotan(β)*(x'+1), где cotan(β) является котангенсом угла β. Ниже описываются примеры значений котангенса.[0162] The encoder may then perform PDPC to determine one or more PDPC reference samples that are used to modify the value of the predictive sample 704. One or more PDPC reference samples may be identified using a direction (represented by an arrow). 710) of the selected wide-angle indoor prediction mode. For example, as noted above and shown in FIG. 7, a sample 712 from the row of reference samples 708 above the current block 703 is selected as the predictive sample 704 (pred(x',y')). Predictive sample 704 (pred(x',y')) is located at location (x', y') in the prediction block. The first PDPC reference sample 714 (denoted as R (-1,y) ) is selected from a column of reference samples 706 located to the left of the current block 703 and along the identical prediction direction (given by arrow 710) of the wide-angle intra prediction mode. For the angle β shown in Fig. 7 (also shown in FIG. 3), the y-coordinate of the reference sample R (-1,y) is defined as follows: y=y'+cotan(β)*(x'+1), where cotan(β) is the cotangent of the angle β. Examples of cotangent values are described below.

[0163] В некоторых реализациях, вторая опорная PDPC-выборка (обозначается как R(x,-1)) также может выбираться из идентичного выборочного местоположения 712, которое использовано для прогнозной выборки 704. В таком примере, идентичное выборочное значение (значение выборки 712) может использоваться для прогнозной выборки 704 и для второй опорной PDPC-выборки R(x,-1), причем в этом случае прогнозная выборка 704 (pred(x',y')) является идентичной второй опорной PDPC-выборке R(x,-1). Для угла β, показанного на фиг. 7, координата X R(x,-1) задается следующим образом: x=x'+tan(β)*(y'+1), где tan(β) является тангенсом угла β. Ниже описываются примеры значений тангенса.[0163] In some implementations, a second PDPC reference sample (denoted as R (x,-1) ) may also be sampled from the same sample location 712 that was used for predictive sample 704. In such an example, the same sample value (sample value 712 ) can be used for predictive sample 704 and for second PDPC reference sample R (x,-1) , in which case prediction sample 704 (pred(x',y')) is identical to second PDPC reference sample R (x, -1) . For the angle β shown in Fig. 7, the XR coordinate (x,-1) is defined as follows: x=x'+tan(β)*(y'+1), where tan(β) is the tangent of the angle β. Examples of tangent values are described below.

[0164] В некоторых случаях, значение выборки 712 может фильтроваться или сглаживаться для того, чтобы получать вторую опорную PDPC-выборку R(x,-1), причем в этом случае значение второй опорной PDPC-выборки R(x,-1) должно отличаться от значения прогнозной выборки 704. Как отмечено выше, прогнозная выборка 704 (pred(x',y')) является идентичной R(x,-1), если вторая опорная выборка R(x,-1) является нефильтрованной. В некоторых примерах, опорное выборочное значение может фильтроваться с использованием внутреннего опорного сглаживания, зависимого от режима внутреннего сглаживания (MDIS), адаптивной фильтрации опорных выборок (RSAF), адаптивного сглаживания опорных выборок (ARSS) и/или другой технологии фильтрации. Например, может использоваться 2-отводный билинейный фильтр, 3-отводный сглаживающий [1,2,1]/4-фильтр или другой фильтр.[0164] In some cases, the sample value 712 may be filtered or smoothed in order to obtain a second PDPC reference sample R (x,-1) , in which case the value of the second PDPC reference sample R (x,-1) should be different from the value of predictive sample 704. As noted above, predictive sample 704 (pred(x',y')) is identical to R (x,-1) if the second reference sample R (x,-1) is unfiltered. In some examples, the reference sample value may be filtered using intra-reference smoothing mode dependent intra-dithering (MDIS), adaptive reference sample filtering (RSAF), adaptive reference sample smoothing (ARSS), and/or other filtering technology. For example, a 2-tap bilinear filter, a 3-tap [1,2,1]/4-tap anti-aliasing filter, or other filter may be used.

[0165] В одном иллюстративном примере, значение выборки 712 может фильтроваться посредством сглаживающего [1,2,1]-фильтра (или другого фильтра), и фильтрованное значение может использоваться в качестве второй опорной PDPC-выборки R(x,-1). С использованием 3-отводного сглаживающего [1,2,1]/4-фильтра в качестве примера, крайние внешние опорные выборки p[-1][2N-1] и p[2N-1][-1] не модифицируются (где N является числом выборок в направлении по оси X и/или Y), и все остальные опорные выборки фильтруются посредством использования двух соседних опорных выборок. Как подробнее описано ниже, число отводов фильтра может адаптироваться на основе конкретного режима внутреннего прогнозирования, который выбирается, на основе размера блока, на основе характеристик одного или более соседних блоков, любой комбинации вышеозначенного и/или с использованием других коэффициентов.[0165] In one illustrative example, sample value 712 may be filtered by a smoothing [1,2,1] filter (or other filter), and the filtered value may be used as a second reference PDPC sample R (x,-1) . Using the 3-tap [1,2,1]/4-tap smoothing filter as an example, the outermost reference samples p[-1][2N-1] and p[2N-1][-1] are not modified (where N is the number of samples in the x and/or y direction), and all other reference samples are filtered by using two adjacent reference samples. As described in more detail below, the number of filter taps may be adapted based on the particular intra prediction mode that is selected, based on the block size, based on characteristics of one or more adjacent blocks, any combination of the above, and/or using other coefficients.

[0166] В некоторых реализациях, третья опорная PDPC-выборка 716 (обозначается как R(-1,-1)) может выбираться из соседнего блока, который является смежным с левой верхней выборкой текущего блока 703. Первая опорная PDPC-выборка 714 (R(-1,y)), вторая опорная PDPC-выборка R(x,-1) и третьи опорные PDPC-выборки 716 (R(-1,-1)) могут использоваться для того, чтобы модифицировать прогнозную выборку 704 (pred(x',y')) для того, чтобы формировать модифицированную прогнозную выборку, которая может обозначаться как (pred(x, y)). Например, с использованием вышеприведенного уравнения 1, модифицированная прогнозная выборка pred(x, y) может определяться посредством вычисления комбинирования со взвешиванием первой опорной PDPC-выборки 714, второй опорной PDPC-выборки R(x,-1), третьей опорной PDPC-выборки 716 и прогнозной выборки pred(x',y'). Весовые коэффициенты могут определяться с использованием технологий, описанных выше. Например, весовые PDPC-коэффициенты для смежного левого нижнего диагонального режима, например, составляют: wL=32>>((x'<<1)>>shift), wT=32>>((y'<<1)>>shift), wTL=0 или wL=32>>((x'<<1)>>shift), wT=0, wTL=0.[0166] In some implementations, a third PDPC reference sample 716 (denoted R (-1,-1) ) may be selected from an adjacent block that is adjacent to the upper left sample of the current block 703. First PDPC reference sample 714 (R (-1,y) ), the second PDPC reference sample R (x,-1) and the third PDPC reference samples 716 (R (-1,-1) ) may be used to modify the predictive sample 704 (pred( x',y')) to form a modified predictive sample, which may be denoted as (pred(x, y)). For example, using Equation 1 above, the modified predictive sample pred(x, y) can be determined by calculating the weighted combination of the first PDPC reference sample 714, the second PDPC reference sample R (x,-1) , the third PDPC reference sample 716 and predictive sample pred(x',y'). The weighting factors may be determined using the techniques described above. For example, the PDPC weights for the adjacent left lower diagonal 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.

[0167] Чтобы определять опорную PDPC-выборку R(x,-1) (например, вторую опорную PDPC-выборку на фиг. 7), устройство кодирования может определять строку, которая находится выше текущего блока (например, непосредственно выше либо на несколько строк выше текущего блока 703), и может определять координату X в определенной строке. Как отмечено выше, координата X в определенной строке основана на направлении (или углу) режима широкоугольного внутреннего прогнозирования, и устройство кодирования может определять опорную выборку на основе определенной строки и определенной координаты X.[0167] To determine the PDPC reference sample R (x,-1) (e.g., the second PDPC reference sample in FIG. 7), the encoder may determine a line that is above the current block (e.g., directly above or several lines above the current block 703), and may determine the X coordinate in a certain line. As noted above, the X coordinate in a specific row is based on the direction (or angle) of the wide-angle intra prediction mode, and the encoder may determine a reference sample based on the specific row and the specific X coordinate.

[0168] Чтобы определять координату X в определенной строке, устройство кодирования может определять одно из котангенса (например, для смежного правого верхнего диагонального режима) или тангенса (например, для смежного левого нижнего диагонального режима) угла режима широкоугольного внутреннего прогнозирования. Устройство кодирования может определять координату X в определенной строке на основе одного из котангенса или тангенса угла режима широкоугольного внутреннего прогнозирования, координаты X прогнозной выборки и координаты Y прогнозной выборки. В одном примере, для смежного левого нижнего диагонального режима широкоугольного внутреннего прогнозирования (например, как показано на фиг. 7), координата X в определенной строке равна x=x'+tan(β)*(y'+1). В другом примере, для смежного правого верхнего диагонального режима, координата X в определенной строке равна x=x'+cotan(α)*(y'+1). Здесь, x' и y' являются координатами X и Y модифицируемой прогнозной выборки.[0168] In order to determine the X coordinate in a certain row, the encoder may determine one of the cotangent (eg, for an adjacent right upper diagonal mode) or tangent (eg, for an adjacent left lower diagonal mode) of the wide-angle intra prediction mode angle. The encoder may determine an X coordinate in a certain row based on one of the cotangent or tangent of the angle of the wide-angle intra prediction mode, the X coordinate of the prediction sample, and the Y coordinate of the prediction sample. In one example, for the adjacent left lower diagonal wide-angle intra prediction mode (eg, as shown in FIG. 7), the X coordinate in a certain row is x=x'+tan(β)*(y'+1). In another example, for the adjacent right top diagonal mode, the X coordinate in a certain row is x=x'+cotan(α)*(y'+1). Here, x' and y' are the X and Y coordinates of the modified prediction sample.

[0169] Аналогично, чтобы определять опорную PDPC-выборку R(-1,y) (например, первую опорную PDPC-выборку 714 на фиг. 7), устройство кодирования может определять столбец, который находится слева от текущего блока (например, непосредственно слева или на несколько столбцов слева от текущего блока 703), и может определять координату Y в определенном столбце. Как отмечено выше, координата Y в определенном столбце основана на направлении режима широкоугольного внутреннего прогнозирования. Устройство кодирования может определять опорную выборку из одной или более опорных выборок на основе определенного столбца и определенной координаты Y.[0169] Similarly, to determine the PDPC reference sample R (-1,y) (e.g., the first PDPC reference sample 714 in FIG. 7), the encoder may determine a column that is to the left of the current block (e.g., immediately to the left of or several columns to the left of the current block 703), and may determine the Y coordinate in a particular column. As noted above, the Y coordinate in a certain column is based on the direction of the wide-angle intra prediction mode. The encoder may determine a reference sample from one or more reference samples based on a specific column and a specific Y coordinate.

[0170] Чтобы определять координату Y в определенном столбце, устройство кодирования может определять одно из котангенса (например, для смежного левого нижнего диагонального режима) или тангенса (например, для смежного правого верхнего диагонального режима) угла режима углового внутреннего прогнозирования. Устройство кодирования может определять координату Y в определенном столбце на основе одного из котангенса или тангенса угла режима широкоугольного внутреннего прогнозирования, координаты X прогнозной выборки и координаты Y прогнозной выборки. Например, для смежного правого верхнего диагонального режима углового внутреннего прогнозирования, координата Y в определенном столбце равна y'+tan(α)*(x'+1), а для смежного левого нижнего диагонального режима (например, в примере по фиг. 7), координата Y в определенном столбце равна y'+cotan(β)*(x'+1), где x' и y' являются координатами X и Y модифицируемой прогнозной выборки.[0170] In order to determine the Y coordinate in a particular column, the encoder may determine one of the cotangent (eg, for adjacent left lower diagonal mode) or tangent (eg, adjacent right upper diagonal mode) of the angular intra-angle prediction mode. The encoder may determine a Y coordinate in a certain column based on one of a cotangent or a tangent of an angle of the wide-angle intra prediction mode, an X coordinate of a prediction sample, and a Y coordinate of a prediction sample. For example, for the adjacent right upper diagonal mode of the angular intra prediction, the Y coordinate in a certain column is y'+tan(α)*(x'+1), and for the adjacent left lower diagonal mode (for example, in the example of Fig. 7) , the Y coordinate in a particular column is y'+cotan(β)*(x'+1), where x' and y' are the X and Y coordinates of the modified prediction sample.

[0171] На основе определенных координат X и Y, устройство кодирования может определять опорные PDPC-выборки (например, первую опорную PDPC-выборку на основе определенной строки и определенной координаты X и вторую опорную PDPC-выборку на основе определенного столбца и определенной координаты Y). Устройство кодирования также может определять весовые коэффициенты согласно вышеуказанным примерным технологиям для смежных диагональных режимов (например, для смежного правого верхнего диагонального режима и смежного левого нижнего диагонального режима, в качестве двух примеров). Затем на основе уравнения 1 (в качестве одного неограничивающего примера), устройство кодирования может определять модифицированную прогнозную выборку (например, pred(x, y)).[0171] Based on the determined X and Y coordinates, the encoder may determine PDPC reference samples (e.g., a first PDPC reference sample based on a specific row and a specific X coordinate, and a second PDPC reference sample based on a specific column and a specific Y coordinate) . The encoder may also determine weights according to the above exemplary techniques for adjacent diagonal modes (eg, adjacent right upper diagonal mode and adjacent left lower diagonal mode, as two examples). Then, based on Equation 1 (as one non-limiting example), the encoder may determine a modified predictive sample (eg, pred(x, y)).

[0172] Как описано выше, PDPC может применяться к режимам углового внутреннего прогнозирования с минимальным влиянием на сложность. В практической реализации, значения тангенсов (например, tan(α) и/или tan(β)) и котангенсов (например, cotan(α) и/или cotan(β)) углов могут сохраняться в таблицах таким образом, что они не вычисляются на лету (например, в среде выполнения). Далее приводятся примерные таблицы для различных угловых режимов (включающих в себя широкоугольные режимы):[0172] As described above, PDPC can be applied to angular intra prediction modes with minimal impact on complexity. In a practical implementation, the values of the tangents (for example, tan(α) and/or tan(β)) and cotangents (for example, cotan(α) and/or cotan(β)) of the angles can be stored in tables in such a way that they are not calculated on the fly (for example, in a runtime environment). The following are exemplary tables for various angle modes (including wide angle modes):

[0173] TanAngTable[32]={0, 1, 2, 3, 4, 6, 8, 10, 12, 14, 16, 18, 20, 23, 26, 29, 32, 35, 39, 45, 51, 57, 64, 73, 86, 102, 128, 171, 256, 341, 512, 1024}.[0173] TanAngTable[32]={0, 1, 2, 3, 4, 6, 8, 10, 12, 14, 16, 18, 20, 23, 26, 29, 32, 35, 39, 45, 51 , 57, 64, 73, 86, 102, 128, 171, 256, 341, 512, 1024}.

[0174] CotanAngTable[32]={0, 8192, 4096, 2731, 2048, 1365, 1024, 819, 683, 585, 512, 455, 410, 356, 315, 282, 256, 234, 210, 182, 160, 144, 128, 112, 95, 80, 64, 48, 32, 24, 16, 8};//(256*32)/Угол.[0174] CotanAngTable[32]={0, 8192, 4096, 2731, 2048, 1365, 1024, 819, 683, 585, 512, 455, 410, 356, 315, 282, 256, 234, 210, 182, 160 , 144, 128, 112, 95, 80, 64, 48, 32, 24, 16, 8};//(256*32)/Angle.

[0175] Значения в таблице тангенсов "TanAngTable[32]" указывают местоположение выборки, найденной с использованием режима внутреннего прогнозирования. Значения в таблице тангенсов нормализуются посредством значения 32. Например, ссылаясь на фиг. 6, режим 66 выполняется при 45 градусах (относительно вертикального направления из центра блока) с уклоном в 1 и представляет собой прогнозирование из позиции сверху справа в позицию вниз влево (выборочное значение из правого верхнего используется в качестве прогнозного выборочного значения для выборки в середине блока на фиг. 6). Значение "32" в таблице тангенсов соответствует режиму 66, показанному на фиг. 6. Значение "0" в таблице тангенсов соответствует вертикальному режиму (режиму 50), показанному на фиг. 6. Значение "1024" соответствует режиму 80 на фиг. 6.[0175] The values in the tangent table "TanAngTable[32]" indicate the location of the sample found using the intra prediction mode. The values in the tangent table are normalized by the value 32. For example, referring to FIG. 6, mode 66 is performed at 45 degrees (relative to the vertical direction from the center of the block) with a slope of 1, and is a prediction from the top right position to the bottom left position (the sample value from the top right is used as the predictive sample value for the sample in the middle of the block at Fig. 6). The value "32" in the tangent table corresponds to mode 66 shown in FIG. 6. The value "0" in the tangent table corresponds to the vertical mode (mode 50) shown in FIG. 6. The value "1024" corresponds to mode 80 in FIG. 6.

[0176] Значение в таблице котангенсов "CotanAngTable[32]" указывает местоположение опорной PDPC-выборки согласно соответствующему значению в таблице тангенсов. Значения в таблице котангенсов нормализуются посредством значения 256. Например, первая запись в таблице тангенсов (указывающая местоположение выборки внутреннего прогнозирования) соответствует первой записи в таблице котангенсов (указывающей местоположение опорной PDPC-выборки). В одном примере со ссылкой на фиг. 7, если прогнозная выборка 704 определяется с использованием опорной выборки 712, которая может иметь значение в таблице тангенсов в 35 в таблице тангенсов (18-ой позиции в таблице тангенсов), вторая PDPC-выборка 714 может соответствовать значению в таблице котангенсов в 234 (18-ой позиции в таблице котангенсов). Котангенс соответствует

Figure 00000001
. Как отмечено выше, значение "0" в таблице тангенсов соответствует вертикальному режиму (режиму 50), показанному на фиг. 6. Следует отметить, что отсутствует противоположный режим относительно вертикального режима 50. Для режима 51, предусмотрен противоположный режим, который представляет собой режим -14. Режим 51 соответствует значению 1 в таблице тангенсов.[0176] The value in the tangent table "CotanAngTable[32]" indicates the location of the reference PDPC sample according to the corresponding value in the tangent table. The values in the cotant table are normalized by the value 256. For example, the first entry in the tangent table (indicating the location of the intra prediction sample) corresponds to the first entry in the tangent table (indicating the location of the PDPC reference sample). In one example, with reference to FIG. 7, if the predictive sample 704 is determined using the reference sample 712, which may have a tan table value of 35 in the tan table (the 18th position in the tan table), the second PDPC sample 714 may correspond to a tan table value of 234 (18 -th position in the table of cotangents). Cotangent matches
Figure 00000001
. As noted above, the value "0" in the tangent table corresponds to the vertical mode (mode 50) shown in FIG. 6. It should be noted that there is no reverse mode with respect to vertical mode 50. For mode 51, an opposite mode is provided, which is mode -14. Mode 51 corresponds to value 1 in the tangent table.

[0177] Пример, описанный выше относительно фиг. 7 (и пример, описанный ниже относительно фиг. 8), служит для смежных правых верхних режимов широкоугольного внутреннего прогнозирования. Смежные правые верхние режимы широкоугольного внутреннего прогнозирования предоставляются в качестве примерного широкоугольного внутреннего режима, для которого может применяться PDPC. Примерные технологии также могут расширяться на другие угловые режимы, к примеру, на один или более смежных левых нижних режимов широкоугольного внутреннего прогнозирования либо на другие широкоугольные режимы. Кроме того, в некоторых примерах, одна или более опорных выборок могут иметь координаты X и Y, которые отличаются от координат X и Y прогнозной выборки в блоке прогнозирования. Например, в вышеуказанных примерных уравнениях, чтобы определять координаты X и Y в соответствующих строках и столбцах, чтобы определять опорные выборки, координата X может отличаться от координаты X модифицируемой прогнозной выборки, и координата Y может отличаться от координаты Y модифицируемой прогнозной выборки. В таких случаях, опорные выборки могут не находиться в идентичной строке или идентичном столбце с модифицируемой прогнозной выборкой.[0177] The example described above with respect to FIG. 7 (and the example described below with respect to FIG. 8) is for adjacent right upper wide-angle intra prediction modes. The adjacent upper right wide-angle intra prediction modes are provided as an exemplary wide-angle intra mode for which PDPC may be applied. The exemplary techniques may also extend to other angle modes, such as one or more adjacent bottom left wide-angle intra prediction modes, or other wide-angle modes. In addition, in some examples, one or more reference samples may have X and Y coordinates that are different from the X and Y coordinates of the predictive sample in the prediction block. For example, in the above exemplary equations, in order to determine the X and Y coordinates in the respective rows and columns to determine the reference samples, the X coordinate may be different from the X coordinate of the modified prediction sample, and the Y coordinate may be different from the Y coordinate of the modified prediction sample. In such cases, the pivot samples may not be in the same row or the same column as the predictive sample being modified.

[0178] Как и в случае для PDPC в DC-, планарном, горизонтальном и вертикальном режиме, может отсутствовать дополнительная граничная фильтрация, например, как указано в работе авторов J. Chen, E. Alshina, G. J. Sullivan, J.-R. R. Ohm, J. Boyce "Algorithm description of Joint Exploration Test Model 7", 7-ая JVET-конференция, Торино, Италия, июль 2017 года, JVET-G1001, для диагональных и смежных диагональных режимов, когда PDPC расширяется на эти угловые режимы.[0178] As is the case for PDPC in DC-, planar, horizontal and vertical mode, there may be no additional boundary filtering, for example, as indicated in the work of authors J. Chen, E. Alshina, G. J. Sullivan, J.-R. R. Ohm, J. Boyce "Algorithm description of Joint Exploration Test Model 7", 7th JVET Conference, Torino, Italy, July 2017, JVET-G1001, for Diagonal and Adjacent Diagonal Modes when PDPC is extended to these angles modes.

[0179] В некоторых случаях, все горизонтальные угловые режимы могут преобразовываться в вертикальные режимы посредством зеркального отражения блока вокруг правой нижней диагонали. Симметрия вокруг вертикального режима обеспечивает возможность дополнительного уменьшения числа углов до 33 с сохраненными значениями тангенса и котангенса в TanAngTable и CotanAngTable, соответственно. Например, как описано выше, значение "0" в таблице тангенсов соответствует вертикальному режиму (режиму 50), показанному на фиг. 6. На основе симметрии вокруг вертикального режима, значение "0" также может соответствовать горизонтальному режиму (режиму 18) на фиг. 6. Вследствие требуемой целочисленной точности, значения в обеих таблицах масштабируются на коэффициент 64 в случае TanAngTable и значение 1024 в случае CotanAngTable. Умножения в вышеприведенных формулах для вычисления координат X и Y не допускаются посредством накопления табличных значений, соответствующих угловому режиму, с увеличением x' и y' при прохождении по блоку прогнозирования.[0179] In some cases, all horizontal corner modes can be converted to vertical modes by flipping the block around the bottom right diagonal. The symmetry around the vertical mode provides the ability to further reduce the number of angles to 33 with stored tangent and cotangent values in TanAngTable and CotanAngTable, respectively. For example, as described above, the value "0" in the tangent table corresponds to the vertical mode (mode 50) shown in FIG. 6. Based on the symmetry around the vertical mode, the value "0" may also correspond to the horizontal mode (mode 18) in FIG. 6. 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 above formulas for calculating the X and Y coordinates are prevented by accumulating table values corresponding to the angular mode as x' and y' increase while passing through the prediction block.

[0180] В некоторых случаях, опорная PDPC-выборка, идентифицированная посредством направления (или угла) режима широкоугольного внутреннего прогнозирования, может не соответствовать целочисленной позиции опорной выборки, а вместо этого может соответствовать дробной позиции (например, между двумя выборками в целочисленных позициях). Фиг. 8 является схемой, иллюстрирующей другой пример PDPC, выполняемого с помощью широкоугольного режима. Текущий кинокадр 802 включает в себя текущий блок 803, который представляет собой прямоугольный блок 4×8 выборок. Аналогично этому на фиг. 7, также показаны соседние восстановленные опорные выборки 806 и соседние восстановленные опорные выборки 808, которые могут представлять собой часть одного или более блоков выше и слева, соответственно, от текущего кинокадра 802.[0180] In some cases, the PDPC reference sample identified by the direction (or angle) of the wide-angle intra prediction mode may not correspond to an integer position of the reference sample, but may instead correspond to a fractional position (e.g., between two samples at integer positions). Fig. 8 is a diagram illustrating another example of PDPC performed using the wide mode. The current movie frame 802 includes the current block 803, which is a rectangular block of 4×8 samples. Similarly, in FIG. 7, adjacent reconstructed reference samples 806 and adjacent reconstructed reference samples 808 are also shown, which may be part of one or more blocks above and to the left, respectively, of the current movie frame 802.

[0181] Устройство кодирования (например, видеокодер 22 и/или видеодекодер 30) может определять размер текущего блока 803 и может выбирать режим внутреннего прогнозирования, который следует выполнять, на основе размера текущего блока 803. Режим широкоугольного внутреннего прогнозирования может использоваться на основе определения того, что текущий блок представляет собой прямоугольный блок. Например, аналогично описанному выше относительно фиг. 7, на основе анализа различных доступных режимов внутреннего прогнозирования (например, на основе SAE или другой меры подобия, отмеченной выше), устройство кодирования может выбирать режим широкоугольного внутреннего прогнозирования (например, режим широкоугольного -2, -3 или -4 внутреннего прогнозирования) для выполнения внутреннего прогнозирования для выборочного местоположения текущего блока 803. Стрелка 810 на фиг. 8 указывает направление прогнозирования выбранного режима широкоугольного внутреннего прогнозирования и исходит из опорной выборки 814, используемой для внутреннего прогнозирования прогнозной выборки 804 (обозначается как pred(x',y')). Режим широкоугольного внутреннего прогнозирования, проиллюстрированный на фиг. 8, представляет собой смежный режим вверх и вправо по диагонали (например, режим широкоугольного внутреннего прогнозирования в -3 из фиг. 6).[0181] An encoder (eg, video encoder 22 and/or video decoder 30) may determine the size of the current block 803 and may select an intra prediction mode to perform based on the size of the current block 803. The wide-angle intra prediction mode may be used based on determining whether that the current block is a rectangular block. For example, as described above with respect to FIG. 7, based on an analysis of the various available intra prediction modes (eg, based on SAE or other similarity measure noted above), the encoder may select a wide-angle intra-prediction mode (eg, a wide-angle -2, -3, or -4 intra prediction mode) for performing intra prediction for the sample location of the current block 803. Arrow 810 in FIG. 8 indicates the prediction direction of the selected wide-angle intra prediction mode and is based on the reference sample 814 used for intra prediction of the prediction sample 804 (denoted as pred(x',y')). The wide-angle intra prediction mode illustrated in FIG. 8 is the diagonal up and right adjacent mode (for example, the -3 wide-angle intra prediction mode of FIG. 6).

[0182] С использованием направления (представленного посредством стрелки 810) выбранного режима широкоугольного внутреннего прогнозирования, значение выборки 814 из соседних опорных выборок 806 может выбираться в качестве значения для прогнозной выборки 804 (обозначается как pred(x',y')) в блоке прогнозирования текущего блока 803. Устройство кодирования затем может определять одну или более опорных PDPC-выборок, которые используются для того, чтобы модифицировать значение прогнозной выборки 804. Например, с использованием технологий, аналогичных технологиям, описанным выше, могут определяться первая опорная PDPC-выборка (обозначается как R(x,-1)) и, в некоторых случаях, вторая опорная PDPC-выборка (обозначается как R(-1,y)) и/или третья опорная PDPC-выборка 816 (обозначается как R(-1,-1)). Третья опорная PDPC-выборка 816 (R(-1,-1)) может выбираться из соседнего блока, который является смежным с левой верхней выборкой текущего блока 803.[0182] Using the direction (represented by arrow 810) of the selected wide-angle intra prediction mode, a sample value 814 from neighboring reference samples 806 may be selected as a value for predictive sample 804 (denoted as pred(x',y')) in the prediction block current block 803. The encoder may then determine one or more PDPC reference samples that are used to modify the value of the predictive sample 804. For example, using techniques similar to those described above, a first PDPC reference sample (denoted as R (x,-1) ) and, in some cases, a second PDPC reference sample (referred to as R (-1,y) ) and/or a third PDPC reference sample 816 (referred to as R (-1,-1 ) ). A third PDPC reference sample 816 (R (-1,-1) ) may be selected from an adjacent block that is adjacent to the top left sample of the current block 803.

[0183] Прогнозная выборка 804 (pred(x',y')) расположена в местоположении (x', y') в блоке прогнозирования. Первая опорная PDPC-выборка R(x,-1) выбирается из строки опорных выборок 808, расположенных выше текущего блока 803 и вдоль идентичного направления прогнозирования (заданного посредством стрелки 810) режима широкоугольного внутреннего прогнозирования. Для угла α, показанного на фиг. 8 (также показанного на фиг. 3), координата X опорной выборки R(x,-1) определяется следующим образом: x=x'+cotan(α)*(y'+1), где cotan(α) является котангенсом угла α. Выше описываются примеры значений котангенса.[0183] Predictive sample 804 (pred(x',y')) is located at location (x', y') in the prediction block. The first PDPC reference sample R (x,-1) is selected from a row of reference samples 808 located above the current block 803 and along the identical prediction direction (given by arrow 810) of the wide-angle intra prediction mode. For the angle α shown in Fig. 8 (also shown in FIG. 3), the X coordinate of the reference sample R (x,-1) is defined as follows: x=x'+cotan(α)*(y'+1), where cotan(α) is the cotangent of the angle a. The above describes examples of cotangent values.

[0184] Вторая опорная PDPC-выборка (R(-1,y)) также может выбираться из идентичного выборочного местоположения 814, которое использовано для прогнозной выборки 804. В таком примере, идентичное выборочное значение (значение выборки 814) может использоваться для прогнозной выборки 804 и для второй опорной PDPC-выборки R(-1,y), причем в этом случае прогнозная выборка 804 (pred(x',y')) является идентичной второй опорной PDPC-выборке R(-1,y). Как отмечено выше, значение выборки 814 может фильтроваться или сглаживаться для того, чтобы получать вторую опорную PDPC-выборку R(-1,y), причем в этом случае значение второй опорной PDPC-выборки R(-1,y) должно отличаться от значения прогнозной выборки 804. Для угла α, показанного на фиг. 8, координата Y R(-1,y) задается следующим образом: y=y'+tan(α)*(x'+1), где tan(α) является тангенсом угла α. Выше описываются примеры значений тангенса.[0184] The second reference PDPC sample (R (-1,y) ) may also be sampled from the same sample location 814 that is used for the predictive sample 804. In such an example, the same sample value (sample value 814) can be used for the predictive sample 804 and for the second PDPC reference sample R (-1,y) , in which case the predictive sample 804 (pred(x',y')) is identical to the second PDPC reference sample R (-1,y) . As noted above, the sample value 814 may be filtered or smoothed to obtain a second PDPC reference sample R (-1,y) , in which case the value of the second PDPC reference sample R (-1,y) must be different from the value prediction sample 804. For the angle α shown in FIG. 8, the YR coordinate (-1,y) is given as follows: y=y'+tan(α)*(x'+1), where tan(α) is the tangent of the angle α. Examples of tangent values are described above.

[0185] Первая опорная PDPC-выборка R(x,-1), вторая опорная PDPC-выборка R(-1,y) и третьи опорные PDPC-выборки 816 (R(-1,-1)) могут использоваться для того, чтобы модифицировать прогнозную выборку 804 (pred(x',y')) для того, чтобы формировать модифицированную прогнозную выборку, обозначаемую как (pred(x, y)), к примеру, посредством вычисления комбинирования со взвешиванием (например, с использованием вышеприведенного уравнения 1) опорных PDPC-выборок и прогнозной выборки pred(x',y'). Например, весовые PDPC-коэффициенты для смежного правого верхнего диагонального режима, например, составляют: wT=32>>((y'<<1)>>shift), wL=32>>((x'<<1)>>shift), wTL=0 или wT=32>>((y'<<1)>>shift), wL=0, wTL=0.[0185] The first PDPC reference sample R (x,-1) , the second PDPC reference sample R (-1,y) , and the third PDPC reference samples 816 (R (-1,-1) ) may be used to to modify the predictive sample 804 (pred(x',y')) to generate a modified predictive sample, denoted as (pred(x, y)), for example, by computing a weighted combination (for example, using the above equation 1) reference PDPC samples and predictive sample pred(x',y'). For example, the PDPC weights for the adjacent right upper 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.

[0186] Как показано на фиг. 8, первая опорная PDPC-выборка R(x,-1) не соответствует целочисленной позиции опорной выборки и вместо этого находится в дробной позиции между двумя выборками 812, которые находятся в целочисленных позициях. В таком случае, опорная PDPC-выборка R(x,-1) может интерполироваться на основе двух опорных выборок 812. Интерполяция опорных выборок 812 может выполняться, например, посредством линейной или кубической интерполяции, либо может использоваться округление до ближайшего соседнего узла, если вычисляются дробные значения. В некоторых случаях, интерполяция может выполняться с использованием интерполяционного фильтра. Например, интерполяционный фильтр может применять линейную интерполяцию между двумя опорными выборками 812. В некоторых случаях, интерполяционный фильтр и число отводов, используемых для интерполяционного фильтра, используемого для получения опорной PDPC-выборки, могут зависеть от режима внутреннего прогнозирования, размера блока (например, ширины и высоты), характеристик одного или более соседних блоков (например, того, кодируется или нет соседний блок с использованием внутреннего прогнозирования), любой комбинации вышеозначенного и/или от других факторов. В одном иллюстративном примере, 6-отводный гауссов фильтр может использоваться для интерполяции для определенных размеров блоков и режимов за пределами 45 градусов, и 4-отводный гауссов фильтр может использоваться для других размеров блоков и режимов за пределами -135 градусов.[0186] As shown in FIG. 8, the first PDPC reference sample R (x,-1) does not correspond to the integer position of the reference sample and instead is in a fractional position between two samples 812 that are in integer positions. In such a case, the PDPC reference sample R (x,-1) may be interpolated based on the two reference samples 812. The interpolation of the reference samples 812 may be performed, for example, by linear or cubic interpolation, or rounding to the nearest neighbor node may be used if fractional values. In some cases, interpolation may be performed using an interpolation filter. For example, the interpolation filter may apply linear interpolation between two reference samples 812. In some cases, the interpolation filter and the number of taps used for the interpolation filter used to obtain the PDPC reference sample may depend on the intra prediction mode, block size (e.g., width and height), characteristics of one or more neighboring blocks (eg, whether or not a neighboring block is encoded using intra prediction), any combination of the above and/or other factors. In one illustrative example, a 6-tap Gaussian filter may be used to interpolate for certain block sizes and modes beyond 45 degrees, and a 4-tap Gaussian filter may be used for other block sizes and modes beyond -135 degrees.

[0187] Интерполяция представляет собой один иллюстративный пример определения опорной PDPC-выборки, которая находится в дробной (нецелочисленной) позиции. В некоторых примерах, устройство кодирования (например, видеокодер 22 и/или видеодекодер 30) может выполнять, по меньшей мере, одно из интерполяции, округления со смещением и/или округления без смещения. Устройство кодирования может выполнять такое округление с или без смещения на основе соседних выборок в наборе из одной или более выборок для того, чтобы формировать одну или более опорных выборок.[0187] Interpolation is one illustrative example of determining a reference PDPC sample that is in a fractional (non-integer) position. In some examples, the encoder (eg, video encoder 22 and/or video decoder 30) may perform at least one of interpolation, rounding with offset, and/or rounding without offset. The encoder may perform such rounding, with or without offset, based on adjacent samples in the set of one or more samples in order to generate one or more reference samples.

[0188] В некоторых примерах, отсечение может требоваться для того, чтобы предотвращать доступ опорных выборок за пределами границ опорного линейного буфера в случае, если вычисляются большие значения координат. Если отсечение выполняется, последняя доступная опорная выборка может использоваться, или PDPC может откатываться только к угловому внутреннему прогнозированию, что, например, является эквивалентным применению нулевых весовых коэффициентов для wL, wT, wTL в уравнении 1. Например, чтобы определять одну или более опорных выборок, которые являются внешними для текущего блока, на основе режима углового внутреннего прогнозирования, устройство кодирования может быть выполнено с возможностью определять то, что одна или более выборок, внешних для текущего блока, идентифицированного на основе режима углового внутреннего прогнозирования, не сохраняются в опорном линейном буфере, и может определять одну или более опорных выборок на основе последней опорной выборки, сохраненной в опорном линейном буфере.[0188] In some examples, clipping may be required to prevent access of reference samples outside the bounds of the reference linear buffer in case large coordinate values are being calculated. If pruning 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 , which are external to the current block, based on the angular intra prediction mode, the encoder may be configured to determine that one or more samples external to the current block, identified based on the angular intra prediction mode, are not stored in the reference linear buffer. , and may determine one or more reference samples based on the last reference sample stored in the linear reference buffer.

[0189] В некоторых примерах, вместо использования последней выборки в опорном линейном буфере, PDPC может деактивироваться для текущего блока, или PDPC может деактивироваться для определенных прогнозированных выборок таким образом, что нормальное внутреннее прогнозирование (например, без модифицированных прогнозных выборок) используется. В качестве одного примера, для прогнозной выборки в блоке прогнозирования, устройство кодирования может определять то, что первая опорная выборка доступна в опорном буфере, но что вторая опорная выборка не доступна в опорном буфере. В этом примере, устройство кодирования может определять то, что PDPC деактивируется для прогнозной выборки. Тем не менее, в некоторых примерах, устройство кодирования может использовать первую опорную выборку для PDPC и не использовать вторую опорную выборку (например, посредством задания весового коэффициента для второй опорной выборки равным нулю).[0189] In some examples, instead of using the last sample in the linear reference buffer, PDPC may be disabled for the current block, or PDPC may be disabled for certain predicted samples such that normal intra prediction (eg, without modified predictive samples) is used. As one example, for a prediction sample in a prediction block, the encoder 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, the encoder may determine that PDPC is disabled for the predictive sample. However, in some examples, the encoder 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).

[0190] В некоторых примерах, как отмечено выше, опорные выборки, используемые для PDPC-фильтрации, могут фильтроваться (или сглаживаться) посредством фильтра (например, [1,2,1]-фильтра или более сильного фильтра). Число отводов может адаптироваться на основе конкретного режима, размера блока (например, ширины и высоты), характеристик одного или более соседних блоков, любой комбинации вышеозначенного и/или на основе других факторов. Например, если внутренний режим указывает широкоугольный режим прогнозирования, более сильный фильтр может применяться к опорным выборкам, чтобы получать опорные PDPC-выборки. В некоторых примерах, для больших расстояний внутреннего прогнозирования, может применяться сглаживающая фильтрация, которая удаляет некоторый шум и может приводить к лучшему прогнозированию.[0190] In some examples, as noted above, the reference samples used for PDPC filtering may be filtered (or smoothed) by a filter (eg, a [1,2,1] filter or a stronger filter). The number of taps may be adapted based on a particular mode, block size (eg, width and height), characteristics of one or more neighboring blocks, any combination of the foregoing, and/or other factors. For example, if the intra mode indicates a wide-angle prediction mode, a stronger filter may be applied to the reference samples to obtain PDPC reference samples. In some examples, for large intra prediction distances, smoothing filtering may be applied, which removes some noise and may result in better prediction.

[0191] В некоторых случаях, фильтр, используемый для опорной фильтрации, и/или фильтр, используемый для интерполяционной фильтрации, могут отличаться для вертикальных опорных выборок (слева от текущего блока) и горизонтальных опорных выборок (выше текущего блока). В некоторых альтернативах, решение использовать различные фильтры может зависеть от размера блока (например, ширины и высоты), внутреннего режима, используемый для прогнозирования, характеристик одного или более соседних блоков, любой комбинации вышеозначенного и/или от других факторов.[0191] In some cases, the filter used for reference filtering and/or the filter used for interpolation filtering may be different for vertical reference samples (to the left of the current block) and horizontal reference samples (above the current block). In some alternatives, the decision to use different filters may depend on the block size (eg, width and height), the intra mode used for prediction, the characteristics of one or more adjacent blocks, any combination of the above, and/or other factors.

[0192] В некоторых примерах, более одной опорной линии из соседнего блока могут использоваться для внутреннего прогнозирования и/или для определения опорных PDPC-выборок. Когда более одной опорной линии из соседнего блока могут использоваться для внутреннего прогнозирования, опорные PDPC-выборки могут получаться для режимов широкоугольного внутреннего прогнозирования для дополнительной опорной линии(й), которая может получаться посредством комбинирования двух или более опорных линий либо посредством выбора одной или более опорных линий из окружения блока.[0192] In some examples, more than one reference line from an adjacent block may be used for intra prediction and/or to determine PDPC reference samples. When more than one reference line from an adjacent block may be used for intra prediction, PDPC reference samples may be obtained for wide-angle intra prediction modes for additional reference line(s), which may be obtained by combining two or more reference lines or by selecting one or more reference lines. lines from the block's environment.

[0193] В некоторых случаях, когда широкоугольное внутреннее прогнозирование используется, PDPC может ограничиваться на основе размера блока, внутреннего режима, используемого для прогнозирования, характеристик одного или более соседних блоков, любой комбинации вышеозначенного и/или на основе других факторов. Например, PDPC может деактивироваться для небольших блоков, которые меньше порогового значения размера (например, для блоков с шириной и/или высотой меньше четырех пикселов, к примеру, для блоков 4×4).[0193] In some cases where wide-angle intra prediction is used, PDPC may be limited based on the block size, the intra mode used for prediction, characteristics of one or more adjacent blocks, any combination of the above, and/or other factors. For example, PDPC may be disabled for small blocks that are smaller than a size threshold (eg, for blocks with a width and/or height less than four pixels, eg, for 4x4 blocks).

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

[0195] Фиг. 9 является блок-схемой последовательности операций способа, иллюстрирующей пример процесса 900 декодирования видеоданных с использованием одной или более технологий, описанных в данном документе. На этапе 902, процесс 900 включает в себя получение текущего блока видеоданных. В одном иллюстративном примере, текущий блок видеоданных может включать в себя блок 703 видеоданных, показанный на фиг. 7. В другом иллюстративном примере текущий блок видеоданных может включать в себя блок 803 видеоданных, показанный на фиг. 8.[0195] FIG. 9 is a flowchart illustrating an example of a process 900 for decoding video data using one or more of the technologies described herein. At 902, process 900 includes obtaining the current block of video data. In one illustrative example, the current video block may include the video block 703 shown in FIG. 7. In another illustrative example, the current video block may include the video block 803 shown in FIG. eight.

[0196] На этапе 904, процесс 900 включает в себя определение размера текущего блока. В некоторых случаях, определение размера текущего блока может включать в себя определение того, что ширина блока и высота блока представляют собой различные размеры, что указывает то, что блок представляет собой прямоугольный блок. В некоторых случаях, определение размера текущего блока может включать в себя определение угла или направления диагонали текущего блока (например, диагонального направления из левого нижнего угла текущего блока в правый верхний угол текущего блока либо диагонального направления из левого верхнего угла текущего блока в правый нижний угол текущего блока). В некоторых случаях, отношение размеров блоков для текущего блока может использоваться для того, чтобы определять диагональное направление (например, с использованием теоремы Пифагора:

Figure 00000002
). Как отмечено выше, диагональное направление (например, из позиции слева снизу в позицию справа сверху или из позиции слева сверху в позицию справа снизу) может использоваться для того, чтобы определять разрешенный диапазон направлений (или углов) прогнозирования.[0196] At block 904, process 900 includes determining the size of the current block. In some cases, determining the size of the current block may include determining that the block width and block height are different sizes, indicating that the block is a rectangular block. In some cases, determining the size of the current box may include determining the angle or direction of the diagonal of the current box (for example, a diagonal direction from the lower left corner of the current box to the upper right corner of the current box, or a diagonal direction from the upper left corner of the current box to the lower right corner of the current block). In some cases, the ratio of block sizes for the current block can be used to determine the diagonal direction (for example, using the Pythagorean theorem:
Figure 00000002
). As noted above, a diagonal direction (eg, bottom left position to top right position, or top left position to bottom right position) may be used to determine the permitted range of prediction directions (or angles).

[0197] На этапе 906, процесс 900 включает в себя определение, на основе размера текущего блока, режима широкоугольного внутреннего прогнозирования, который следует использовать для текущего блока. Режим широкоугольного внутреннего прогнозирования не представляет собой режим DC-, планарного, горизонтального или вертикального внутреннего прогнозирования. Например, угол режима широкоугольного внутреннего прогнозирования может составлять меньше -135 градусов (например, режимы -1, -2, -3, ..., до -14, показанные на фиг. 6) или больше 45 градусов (например, режимы 67, 68, 69, ..., до 80, показанные на фиг. 6) относительно прогнозной выборки (например, относительно вертикального направления из прогнозной выборки).[0197] At 906, process 900 includes determining, based on the size of the current block, a wide-angle intra prediction mode to use for the current block. The wide-angle indoor prediction mode is not a DC, planar, horizontal, or vertical indoor prediction mode. For example, the angle of the wide-angle intra prediction mode may be less than -135 degrees (for example, modes -1, -2, -3, ..., up to -14, shown in Fig. 6) or more than 45 degrees (for example, modes 67, 68, 69, ..., to 80 shown in Fig. 6) relative to the predictive sample (eg, relative to the vertical direction from the predictive sample).

[0198] В качестве примерной реализации этапа 906, устройство кодирования (например, устройство для декодирования видеоданных) может определять то, что режим широкоугольного внутреннего прогнозирования может использоваться для текущего блока на основе размера текущего блока. Например, режим широкоугольного внутреннего прогнозирования может использоваться, когда определяется то, что, текущий блок представляет собой прямоугольный блок (ширина и высота имеют различные размеры). В некоторых случаях, любой режим внутреннего прогнозирования, имеющий направление (или угол), которое не превышает диагональ текущего блока (из левого нижнего угла в правый верхний угол блока или из левого верхнего угла в правый нижний угол блока), может выбираться для использования при прогнозировании текущего блока. В некоторых случаях, отношения размеров блоков могут использоваться для того, чтобы определять режим внутреннего прогнозирования, который следует использовать. Например, отношение размеров блоков для прямоугольного блока может использоваться для того, чтобы определять диагональное направление (например, из позиции слева снизу в позицию справа сверху) и в силу этого разрешенный диапазон направлений прогнозирования.[0198] As an exemplary implementation of step 906, an encoder (eg, a device for decoding video data) may determine that a wide-angle intra prediction mode can be used for the current block based on the size of the current block. For example, the wide-angle intra prediction mode may be used when it is determined that the current block is a rectangular block (width and height have different sizes). In some cases, any intra prediction mode having a direction (or angle) that does not exceed the diagonal of the current block (lower left to upper right corner of the block, or upper left to lower right corner of the block) may be selected for use in prediction. current block. In some cases, block size ratios may be used to determine which intra prediction mode should be used. For example, the block size ratio for a rectangular block can be used to determine the diagonal direction (eg, bottom left position to top right position) and therefore the allowed range of prediction directions.

[0199] В некоторых примерах, индикатор режима широкоугольного внутреннего прогнозирования может передаваться в служебных сигналах в потоке битов. В некоторых примерах, режим внутреннего прогнозирования, который минимизирует остаток между блоком прогнозирования и блоком, который должен кодироваться (например, на основе суммы абсолютных ошибок (SAE), суммы абсолютных разностей (SAD), суммы абсолютных преобразованных разностей (SATD) или другой меры подобия), может выбираться для использования для текущего блока. С использованием SAE в качестве иллюстративного примера, SAE для каждого прогнозирования, определенная с использованием каждого из режимов внутреннего прогнозирования, указывает абсолютную величину ошибки прогнозирования. Режим внутреннего прогнозирования, который имеет наилучшее совпадение с фактическим текущим блоком, задается посредством режима внутреннего прогнозирования, который обеспечивает наименьшую SAE. Например, процесс 900 может выбирать режим широкоугольного внутреннего прогнозирования на основе SAE-анализа, который может указывать режим широкоугольного внутреннего прогнозирования в качестве оптимального режима на основе того, что текущий блок является прямоугольным.[0199] In some examples, the wide-angle intra prediction mode indicator may be signaled in the bitstream. In some examples, an intra prediction mode that minimizes the residual between a prediction block and a block to be encoded (e.g., based on sum of absolute errors (SAE), sum of absolute differences (SAD), sum of absolute transformed differences (SATD), or other measure of similarity) ) can be selected to be used for the current block. Using the SAE as an illustrative example, the SAE for each prediction determined using each of the intra prediction modes indicates the absolute amount of the prediction error. The intra prediction mode that has the best match with the actual current block is set by the intra prediction mode that provides the lowest SAE. For example, process 900 may select a wide-angle intra prediction mode based on the SAE analysis, which may indicate the wide-angle intra prediction mode as the optimal mode based on the fact that the current block is rectangular.

[0200] На этапе 908, процесс 900 включает в себя определение блока прогнозирования для текущего блока с использованием режима широкоугольного внутреннего прогнозирования. Блок прогнозирования включает в себя множество прогнозных выборок. Каждая прогнозная выборка может определяться с использованием режима широкоугольного внутреннего прогнозирования. На этапе 910, процесс 900 включает в себя модификацию прогнозной выборки из множества прогнозных выборок блока прогнозирования для того, чтобы формировать модифицированную прогнозную выборку с использованием позиционно-зависимого комбинирования с внутренним прогнозированием (PDPC). Например, модификация прогнозной выборки может включать в себя определение одной или более опорных выборок, которые являются внешними для текущего блока, на основе режима широкоугольного внутреннего прогнозирования и модификацию прогнозной выборки для того, чтобы формировать модифицированную прогнозную выборку на основе определенной одной или более опорных выборок.[0200] At step 908, process 900 includes determining a prediction block for the current block using a wide-angle intra prediction mode. The prediction block includes a plurality of prediction samples. Each prediction sample may be determined using a wide-angle intra prediction mode. At 910, process 900 includes modifying a prediction sample from a plurality of prediction block prediction samples to generate a modified prediction sample using position-dependent intra-prediction combining (PDPC). For example, modifying the prediction sample may include determining one or more reference samples that are external to the current block based on the wide-angle intra prediction mode and modifying the predictive sample to generate a modified prediction sample based on the determined one or more reference samples.

[0201] В некоторых примерах, одна или более опорных выборок, которые являются внешними для текущего блока, определяются с использованием угла режима широкоугольного внутреннего прогнозирования относительно прогнозной выборки. Например, как показано на фиг. 7, первая опорная PDPC-выборка 714 (обозначается как R(-1,y)) и, в некоторых случаях, вторая опорная PDPC-выборка R(x,-1) определяются вдоль направления (или угла) режима широкоугольного внутреннего прогнозирования, представленного посредством стрелки 710.[0201] In some examples, one or more reference samples that are external to the current block are determined using the angle of the wide-angle intra prediction mode relative to the predictive sample. For example, as shown in FIG. 7, the first PDPC reference sample 714 (denoted as R (-1,y) ) and, in some cases, the second PDPC reference sample R (x,-1) are determined along the direction (or angle) of the wide-angle intra prediction mode represented by through arrow 710.

[0202] В некоторых случаях, определение одной или более опорных выборок, которые являются внешними для текущего блока, может включать в себя определение строки, которая находится выше текущего блока, определение координаты X в определенной строке и определение опорной выборки из одной или более опорных выборок на основе определенной строки и определенной координаты X. В таких случаях, координата X в определенной строке равна координате X прогнозной выборки плюс координата Y прогнозной выборки плюс 1. Дополнительно, в некоторых случаях, определение одной или более опорных выборок, которые являются внешними для текущего блока, может включать в себя определение строки, которая находится выше текущего блока, определение координаты X в определенной строке (при этом координата X в определенной строке основана на углу режима широкоугольного внутреннего прогнозирования относительно прогнозной выборки) и определение опорной выборки из одной или более опорных выборок на основе определенной строки и определенной координаты X. Например, определение координаты X в определенной строке может включать в себя определение одного из котангенса или тангенса угла режима широкоугольного внутреннего прогнозирования и определение координаты X в определенной строке на основе одного из котангенса или тангенса угла режима широкоугольного внутреннего прогнозирования, координаты X прогнозной выборки и координаты Y прогнозной выборки. В одном иллюстративном примере, со ссылкой на фиг. 7, вторая опорная PDPC-выборка R(x,-1) определяется из строки соседних восстановленных опорных выборок 708. Координата X R(x,-1) может определяться в качестве x=x'+tan(β)*(y'+1), где tan(β) является тангенсом угла β, показанного на фиг. 7. В таком примере, координата X (x) в определенной строке (например, в строке 708 на фиг. 7) равна координате X прогнозной выборки (x') плюс координата Y прогнозной выборки (y') плюс 1 и также основана на углу (на тангенсе угла β, tan(β)) режима широкоугольного внутреннего прогнозирования.[0202] In some cases, determining one or more reference samples that are external to the current block may include determining a row that is above the current block, determining an X coordinate in a certain row, and determining a reference sample from one or more reference samples based on a specific row and a specific x-coordinate. In such cases, the x-coordinate in a specific row is equal to the x-coordinate of the prediction sample plus the y-coordinate of the prediction sample plus 1. Additionally, in some cases, specifying one or more reference samples that are external to the current block , may include determining a row that is above the current block, determining an X coordinate in the determined row (wherein the X coordinate in the determined row is based on the angle of the wide-angle intra prediction mode relative to the predictive sample), and determining a reference sample from one or more reference samples at based on certain strings and and the specific X coordinate. For example, determining the X coordinate in the specific row may include determining one of the cotangent or tangent of the wide-angle intra prediction mode, and determining the X-coordinate in the specific row based on one of the cotangent or tangent of the wide-angle intra prediction mode, coordinate X of the predictive sample and Y coordinates of the predictive sample. In one illustrative example, with reference to FIG. 7, the second PDPC reference sample R (x,-1) is determined from the row of adjacent reconstructed reference samples 708. The coordinate XR (x,-1) may be determined as x=x'+tan(β)*(y'+1 ), where tan(β) is the tangent of the angle β shown in FIG. 7. In such an example, the X coordinate (x) in a particular row (eg, row 708 in FIG. 7) is equal to the X coordinate of the prediction sample (x') plus the Y coordinate of the prediction sample (y') plus 1, and is also based on the angle (on the tangent of the angle β, tan(β)) of the wide-angle intra prediction mode.

[0203] В некоторых случаях, определение одной или более опорных выборок, которые являются внешними для текущего блока, может включать в себя определение столбца, который находится слева от текущего блока, определение координаты Y в определенном столбце и определение опорной выборки из одной или более опорных выборок на основе определенного столбца и определенной координаты Y. В таких случаях, координата Y в определенном столбце равна координате Y прогнозной выборки плюс координата X прогнозной выборки плюс 1. Дополнительно, в некоторых случаях, определение одной или более опорных выборок, которые являются внешними для текущего блока, может включать в себя определение столбца, который находится слева от текущего блока, определение координаты Y в определенном столбце (при этом координата Y в определенном столбце основана на углу режима широкоугольного внутреннего прогнозирования) и определение опорной выборки из одной или более опорных выборок на основе определенного столбца и определенной координаты Y. Например, определение координаты Y в определенном столбце может включать в себя определение одного из котангенса или тангенса угла режима широкоугольного внутреннего прогнозирования и определение координаты Y в определенном столбце на основе одного из котангенса или тангенса угла режима широкоугольного внутреннего прогнозирования, координаты X прогнозной выборки и координаты Y прогнозной выборки. В одном иллюстративном примере, со ссылкой на фиг. 7, первая опорная PDPC-выборка 714 (R(-1,y)) определяется из столбца соседних восстановленных опорных выборок 706. Координата Y R(-1,y) может определяться в качестве y=y'+cotan(β)*(x'+1), где cotan(β) является котангенсом угла β, показанного на фиг. 7. В таком примере, координата Y (y) в определенном столбце (например, в столбце 706 на фиг. 7) равна координате Y прогнозной выборки (y') плюс координата X прогнозной выборки (x') плюс 1 и также основана на углу (на котангенсе угла β, cotan(β)) режима широкоугольного внутреннего прогнозирования.[0203] In some cases, determining one or more reference samples that are external to the current block may include determining a column that is to the left of the current block, determining the Y coordinate in the specified column, and determining a reference sample from one or more reference samples. samples based on a specific column and a specific y-coordinate. In such cases, the y-coordinate in a specific column is equal to the y-coordinate of the predictive sample plus the x-coordinate of the predictive sample plus 1. Additionally, in some cases, specifying one or more reference samples that are external to the current block may include determining a column that is to the left of the current block, determining a Y coordinate in the determined column (wherein the Y coordinate in the determined column is based on the angle of the wide-angle intra prediction mode), and determining a reference sample from one or more reference samples based on a specific column and a specific th Y coordinate. For example, determining the Y coordinate in a specific column may include determining one of the cotangent or tangent of the angle of the wide-angle intra prediction mode, and determining the Y coordinate in the specific column based on one of the cotangent or tangent of the angle of the wide-angle intra prediction mode, the X coordinate of the predictive sample and Y coordinates of the predictive sample. In one illustrative example, with reference to FIG. 7, the first PDPC reference sample 714 (R (-1,y) ) is determined from a column of adjacent reconstructed reference samples 706. The YR (-1,y) coordinate may be determined as y=y'+cotan(β)*(x '+1), where cotan(β) is the cotangent of the angle β shown in FIG. 7. In such an example, the Y coordinate (y) in a particular column (eg, column 706 in FIG. 7) is equal to the Y coordinate of the predictive sample (y') plus the X coordinate of the predictive sample (x') plus 1, and is also based on the angle (on the cotangent of the angle β, cotan(β)) of the wide-angle intra prediction mode.

[0204] В некоторых реализациях, определение одной или более опорных выборок, которые являются внешними для текущего блока, на основе режима широкоугольного внутреннего прогнозирования может включать в себя определение набора из одной или более выборок на основе режима широкоугольного внутреннего прогнозирования и, по меньшей мере, одно из интерполяции, округления со смещением или округления без смещения набора из одной или более выборок для того, чтобы формировать одну или более опорных выборок. Например, ссылаясь на фиг. 8, интерполяция может выполняться для выборок 812, чтобы формировать опорную PDPC-выборку R(x,-1).[0204] In some implementations, determining one or more reference samples that are external to the current block based on the wide-angle intra mode may include determining a set of one or more samples based on the wide-angle intra mode and at least one of interpolation, rounding with offset, or rounding without offset of a set of one or more samples in order to generate one or more reference samples. For example, referring to FIG. 8, interpolation may be performed on samples 812 to generate a PDPC reference sample R (x,-1) .

[0205] В некоторых примерах, определение одной или более опорных выборок, которые являются внешними для текущего блока, содержит определение одной или более опорных выборок, имеющих и координату X и координату Y, которые отличаются от соответствующих координаты X и координаты Y прогнозной выборки в блоке прогнозирования. Например, как описано относительно фиг. 7, третья опорная PDPC-выборка 716 (обозначается как R(-1,-1)) также может определяться из соседнего блока, который является смежным с левой верхней выборкой текущего блока 703.[0205] In some examples, defining 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 are different from the corresponding X coordinate and Y coordinate of the prediction sample in the block forecasting. For example, as described with respect to FIG. 7, a third PDPC reference sample 716 (denoted as R (-1,-1) ) may also be determined from an adjacent block that is adjacent to the top left sample of the current block 703.

[0206] В некоторых реализациях, определение одной или более опорных выборок, которые являются внешними для текущего блока, на основе режима широкоугольного внутреннего прогнозирования может включать в себя определение того, что одна или более выборок, внешних для текущего блока, идентифицированного на основе режима широкоугольного внутреннего прогнозирования, не сохраняются в опорном линейном буфере. Одна или более опорных выборок могут определяться на основе последней опорной выборки, сохраненной в опорном линейном буфере, на основе одной или более выборок, внешних для текущего блока, не сохраняемых в опорном линейном буфере.[0206] In some implementations, determining one or more reference samples that are external to the current block based on the wide-angle intra prediction mode may include determining that one or more samples external to the current block identified based on the wide-angle mode internal prediction are not stored in the linear reference buffer. One or more reference samples may be determined based on the last reference sample stored in the line reference buffer, based on one or more samples external to the current block not stored in the line reference buffer.

[0207] В некоторых аспектах, процесс 900 может включать в себя определение одного или более весовых коэффициентов на основе координат X и Y прогнозной выборки. Например, как отмечено выше, весовые PDPC-коэффициенты для смежного правого верхнего диагонального режима могут определяться следующим образом: wT=32>>((y'<<1)>>shift), wL=32>>((x'<<1)>>shift), wTL=0 или wT=32>>((y'<<1)>>shift), wL=0, wTL=0. В другом примере, как отмечено выше, весовые PDPC-коэффициенты для смежного левого нижнего диагонального режима могут определяться следующим образом: wL=32>>((x'<<1)>>shift), wT=32>>((y'<<1)>>shift), wTL=0 или wL=32>>((x'<<1)>>shift), wT=0, wTL=0. Определенные один или более весовых коэффициентов могут использоваться для того, чтобы модифицировать прогнозную выборку наряду с одной или более опорных выборок. Например, модифицированная прогнозная выборка может формироваться на основе определенной одной или более опорных выборок, определенного одного или более весовых коэффициентов и прогнозной выборки (например, с использованием вышеприведенного уравнения 1).[0207] In some aspects, process 900 may include determining one or more weights based on the X and Y coordinates of the predictive sample. For example, as noted above, the PDPC weights for the adjacent right upper diagonal mode may be defined as follows: wT=32>>((y'<<1)>>shift), wL=32>>((x'<< 1)>>shift), wTL=0 or wT=32>>((y'<<1)>>shift), wL=0, wTL=0. In another example, as noted above, the PDPC weights for the adjacent left lower diagonal mode may be defined as follows: wL=32>>((x'<<1)>>shift), wT=32>>((y' <<1)>>shift), wTL=0 or wL=32>>((x'<<1)>>shift), wT=0, wTL=0. The determined one or more weights may be used to modify the predictive sample along with the one or more reference samples. For example, the modified prediction sample may be generated based on the determined one or more reference samples, the determined one or more weights, and the predictive sample (eg, using Equation 1 above).

[0208] В некоторых примерах, модификация прогнозной выборки из множества прогнозных выборок блока прогнозирования может включать в себя модификацию первой прогнозной выборки блока прогнозирования. Например, одна или более опорных выборок могут включать в себя первый набор из одной или более опорных выборок, и процесс 900 может включать в себя определение, для второй прогнозной выборки блока прогнозирования, того, что, по меньшей мере, одна опорная выборка из второго набора из одной или более опорных выборок для второй прогнозной выборки не сохраняется в опорном линейном буфере. В некоторых случаях, PDPC может не применяться ко второй прогнозной выборке на основе определения, для второй прогнозной выборки, того, что, по меньшей мере, одна опорная выборка из второго набора из одной или более опорных выборок для второй прогнозной выборки не сохраняется в опорном линейном буфере. В некоторых случаях, PDPC может применяться ко второй прогнозной выборке только с использованием опорных выборок, доступных в опорном линейном буфере, на основе определения, для второй прогнозной выборки, того, что, по меньшей мере, одна опорная выборка из второго набора из одной или более опорных выборок для второй прогнозной выборки не сохраняется в опорном линейном буфере.[0208] In some examples, modifying a prediction sample of a plurality of prediction samples of a prediction block may include modifying a first prediction sample of the prediction block. For example, one or more reference samples may include a first set of one or more reference samples, and process 900 may include determining, for a second predictor sample of the predictor, that at least one reference sample from the second set of one or more reference samples for the second predictive sample is not stored in the linear reference buffer. In some cases, PDPC may not be applied to the second prediction sample based on determining, for the second prediction sample, that at least one reference sample from the second set of one or more reference samples for the second prediction sample is not stored in the reference linear buffer. In some cases, PDPC may be applied to the second predictive sample using only the reference samples available in the linear reference buffer based on determining, for the second predictive sample, that at least one reference sample from the second set of one or more reference samples for the second predictive sample is not stored in the linear reference buffer.

[0209] На этапе 912, процесс 900 включает в себя восстановление выборки текущего блока на основе модифицированной прогнозной выборки и остаточного значения. Например, как описано выше, устройство для декодирования видеоданных может определять остаточное значение остаточного блока на основе принимаемой информации и может суммировать остаточные значения остаточного блока с прогнозными выборками блока прогнозирования для того, чтобы восстанавливать текущий блок. Устройство для декодирования видеоданных может принимать информацию для остаточного значения (например, коэффициенты для остаточных блоков преобразования в потоке битов) и может восстанавливать выборку посредством суммирования остаточного значения с модифицированной прогнозной выборкой (модифицированной с использованием PDPC) для того, чтобы восстанавливать выборку в текущем блоке.[0209] At 912, process 900 includes resample of the current block based on the modified predictive sample and the residual. For example, as described above, the video decoding apparatus may determine a residual block residual value based on the received information, and may add the residual block residual values with the prediction samples of the prediction block in order to reconstruct the current block. The video decoding apparatus may receive information for the residual value (eg, coefficients for residual transform blocks in the bitstream) and may desample by summing the residual with a modified predictive sample (modified using PDPC) to desample the current block.

[0210] Фиг. 10 является блок-схемой последовательности операций способа, иллюстрирующей пример процесса 1000 кодирования видеоданных с использованием одной или более технологий, описанных в данном документе. На этапе 1002, процесс 1000 включает в себя получение текущего блока видеоданных. В одном иллюстративном примере, текущий блок видеоданных может включать в себя блок 703 видеоданных, показанный на фиг. 7. В другом иллюстративном примере текущий блок видеоданных может включать в себя блок 803 видеоданных, показанный на фиг. 8.[0210] FIG. 10 is a flowchart illustrating an example of a process 1000 for encoding video data using one or more of the technologies described herein. At 1002, process 1000 includes obtaining the current block of video data. In one illustrative example, the current video block may include the video block 703 shown in FIG. 7. In another illustrative example, the current video block may include the video block 803 shown in FIG. eight.

[0211] На этапе 1004, процесс 1000 включает в себя определение размера текущего блока. В некоторых случаях, определение размера текущего блока может включать в себя определение того, что ширина блока и высота блока представляют собой различные размеры, что указывает то, что блок представляет собой прямоугольный блок. В некоторых случаях, определение размера текущего блока может включать в себя определение угла или направления диагонали текущего блока (например, диагонального направления из левого нижнего угла текущего блока в правый верхний угол текущего блока либо диагонального направления из левого верхнего угла текущего блока в правый нижний угол текущего блока). В некоторых случаях, отношение размеров блоков для текущего блока может использоваться для того, чтобы определять диагональное направление (например, с использованием теоремы Пифагора:

Figure 00000003
). Как отмечено выше, диагональное направление (например, из позиции слева снизу в позицию справа сверху или из позиции слева сверху в позицию справа снизу) может использоваться для того, чтобы определять разрешенный диапазон направлений (или углов) прогнозирования.[0211] At 1004, process 1000 includes determining the size of the current block. In some cases, determining the size of the current block may include determining that the block width and block height are different sizes, indicating that the block is a rectangular block. In some cases, determining the size of the current box may include determining the angle or direction of the diagonal of the current box (for example, a diagonal direction from the lower left corner of the current box to the upper right corner of the current box, or a diagonal direction from the upper left corner of the current box to the lower right corner of the current block). In some cases, the ratio of block sizes for the current block can be used to determine the diagonal direction (for example, using the Pythagorean theorem:
Figure 00000003
). As noted above, a diagonal direction (eg, bottom left position to top right position, or top left position to bottom right position) may be used to determine the permitted range of prediction directions (or angles).

[0212] На этапе 1006, процесс 1000 включает в себя определение, на основе размера текущего блока, режима широкоугольного внутреннего прогнозирования, который следует использовать для текущего блока. Режим широкоугольного внутреннего прогнозирования не представляет собой режим DC-, планарного, горизонтального или вертикального внутреннего прогнозирования. Например, угол режима широкоугольного внутреннего прогнозирования может составлять меньше -135 градусов (например, режимы -1, -2, -3, ..., до -14, показанные на фиг. 6) или больше 45 градусов (например, режимы 67, 68, 69, ..., до 80, показанные на фиг. 6) относительно прогнозной выборки (например, относительно вертикального направления из прогнозной выборки).[0212] At 1006, process 1000 includes determining, based on the size of the current block, a wide-angle intra prediction mode to use for the current block. The wide-angle indoor prediction mode is not a DC, planar, horizontal, or vertical indoor prediction mode. For example, the angle of the wide-angle intra prediction mode may be less than -135 degrees (for example, modes -1, -2, -3, ..., up to -14, shown in Fig. 6) or more than 45 degrees (for example, modes 67, 68, 69, ..., to 80 shown in Fig. 6) relative to the predictive sample (eg, relative to the vertical direction from the predictive sample).

[0213] В качестве примерной реализации блока 1006, устройство кодирования (например, устройство для кодирования видеоданных) может определять то, что режим широкоугольного внутреннего прогнозирования может использоваться для текущего блока на основе размера текущего блока. Например, режим широкоугольного внутреннего прогнозирования может использоваться, когда определяется то, что, текущий блок представляет собой прямоугольный блок (ширина и высота имеют различные размеры). В некоторых случаях, любой режим внутреннего прогнозирования, имеющий направление (или угол), которое не превышает диагональ текущего блока (из левого нижнего угла в правый верхний угол блока или из левого верхнего угла в правый нижний угол блока), может выбираться для использования при прогнозировании текущего блока. В некоторых случаях, отношения размеров блоков могут использоваться для того, чтобы определять режим внутреннего прогнозирования, который следует использовать. Например, отношение размеров блоков для прямоугольного блока может использоваться для того, чтобы определять диагональное направление (например, из позиции слева снизу в позицию справа сверху) и в силу этого разрешенный диапазон направлений прогнозирования. Режим внутреннего прогнозирования, который минимизирует остаток между блоком прогнозирования и блоком, который должен кодироваться (например, на основе суммы абсолютных ошибок (SAE), суммы абсолютных разностей (SAD), суммы абсолютных преобразованных разностей (SATD) или другой меры подобия), может выбираться для использования для текущего блока. С использованием SAE в качестве иллюстративного примера, SAE для каждого прогнозирования, определенная с использованием каждого из режимов внутреннего прогнозирования, указывает абсолютную величину ошибки прогнозирования. Режим внутреннего прогнозирования, который имеет наилучшее совпадение с фактическим текущим блоком, задается посредством режима внутреннего прогнозирования, который обеспечивает наименьшую SAE. Например, процесс 900 может выбирать режим широкоугольного внутреннего прогнозирования на основе SAE-анализа, который может указывать режим широкоугольного внутреннего прогнозирования в качестве оптимального режима на основе того, что текущий блок является прямоугольным.[0213] As an exemplary implementation of block 1006, an encoder (eg, a video encoder) may determine that a wide-angle intra prediction mode can be used for the current block based on the size of the current block. For example, the wide-angle intra prediction mode may be used when it is determined that the current block is a rectangular block (width and height have different sizes). In some cases, any intra prediction mode having a direction (or angle) that does not exceed the diagonal of the current block (lower left to upper right corner of the block, or upper left to lower right corner of the block) may be selected for use in prediction. current block. In some cases, block size ratios may be used to determine which intra prediction mode should be used. For example, the block size ratio for a rectangular block can be used to determine the diagonal direction (eg, bottom left position to top right position) and therefore the allowed range of prediction directions. An intra prediction mode that minimizes the residual between a prediction block and a block to be encoded (e.g., based on sum of absolute errors (SAE), sum of absolute differences (SAD), sum of absolute transformed differences (SATD), or other similarity measure) may be selected. to use for the current block. Using the SAE as an illustrative example, the SAE for each prediction determined using each of the intra prediction modes indicates the absolute amount of the prediction error. The intra prediction mode that has the best match with the actual current block is set by the intra prediction mode that provides the lowest SAE. For example, process 900 may select a wide-angle intra prediction mode based on the SAE analysis, which may indicate the wide-angle intra prediction mode as the optimal mode based on the fact that the current block is rectangular.

[0214] На этапе 1008, процесс 1000 включает в себя определение блока прогнозирования для текущего блока с использованием режима широкоугольного внутреннего прогнозирования. Блок прогнозирования включает в себя множество прогнозных выборок. Блок прогнозирования включает в себя множество прогнозных выборок. Каждая прогнозная выборка может определяться с использованием режима широкоугольного внутреннего прогнозирования. На этапе 1010, процесс 1000 включает в себя модификацию прогнозной выборки из множества прогнозных выборок блока прогнозирования для того, чтобы формировать модифицированную прогнозную выборку с использованием позиционно-зависимого комбинирования с внутренним прогнозированием (PDPC). Например, модификация прогнозной выборки может включать в себя определение одной или более опорных выборок, которые являются внешними для текущего блока, на основе режима широкоугольного внутреннего прогнозирования и модификацию прогнозной выборки для того, чтобы формировать модифицированную прогнозную выборку на основе определенной одной или более опорных выборок.[0214] At 1008, process 1000 includes determining a prediction block for the current block using a wide-angle intra prediction mode. The prediction block includes a plurality of prediction samples. The prediction block includes a plurality of prediction samples. Each prediction sample may be determined using a wide-angle intra prediction mode. At 1010, process 1000 includes modifying a prediction sample from a plurality of predictor samples of the predictor to generate a modified prediction sample using position-dependent intra-prediction combining (PDPC). For example, modifying the prediction sample may include determining one or more reference samples that are external to the current block based on the wide-angle intra prediction mode and modifying the predictive sample to generate a modified prediction sample based on the determined one or more reference samples.

[0215] В некоторых примерах, одна или более опорных выборок, которые являются внешними для текущего блока, определяются с использованием угла режима широкоугольного внутреннего прогнозирования относительно прогнозной выборки. Например, как показано на фиг. 7, первая опорная PDPC-выборка 714 (обозначается как R(-1,y)) и, в некоторых случаях, вторая опорная PDPC-выборка R(x,-1) определяются вдоль направления (или угла) режима широкоугольного внутреннего прогнозирования, представленного посредством стрелки 710.[0215] In some examples, one or more reference samples that are external to the current block are determined using the wide-angle intra prediction mode angle relative to the predictive sample. For example, as shown in FIG. 7, the first PDPC reference sample 714 (denoted as R (-1,y) ) and, in some cases, the second PDPC reference sample R (x,-1) are determined along the direction (or angle) of the wide-angle intra prediction mode represented by through arrow 710.

[0216] В некоторых случаях, определение одной или более опорных выборок, которые являются внешними для текущего блока, может включать в себя определение строки, которая находится выше текущего блока, определение координаты X в определенной строке и определение опорной выборки из одной или более опорных выборок на основе определенной строки и определенной координаты X. В таких случаях, координата X в определенной строке равна координате X прогнозной выборки плюс координата Y прогнозной выборки плюс 1. Дополнительно, в некоторых случаях, определение одной или более опорных выборок, которые являются внешними для текущего блока, может включать в себя определение строки, которая находится выше текущего блока, определение координаты X в определенной строке (при этом координата X в определенной строке основана на углу режима широкоугольного внутреннего прогнозирования относительно прогнозной выборки) и определение опорной выборки из одной или более опорных выборок на основе определенной строки и определенной координаты X. Например, определение координаты X в определенной строке может включать в себя определение одного из котангенса или тангенса угла режима широкоугольного внутреннего прогнозирования и определение координаты X в определенной строке на основе одного из котангенса или тангенса угла режима широкоугольного внутреннего прогнозирования, координаты X прогнозной выборки и координаты Y прогнозной выборки. В одном иллюстративном примере, со ссылкой на фиг. 7, вторая опорная PDPC-выборка R(x,-1) определяется из строки соседних восстановленных опорных выборок 708. Координата X R(x,-1) может определяться в качестве x=x'+tan(β)*(y'+1), где tan(β) является тангенсом угла β, показанного на фиг. 7. В таком примере, координата X (x) в определенной строке (например, в строке 708 на фиг. 7) равна координате X прогнозной выборки (x') плюс координата Y прогнозной выборки (y') плюс 1 и также основана на углу (на тангенсе угла β, tan(β)) режима широкоугольного внутреннего прогнозирования.[0216] In some cases, determining one or more reference samples that are external to the current block may include determining a row that is above the current block, determining an X coordinate in a certain row, and determining a reference sample from one or more reference samples based on a specific row and a specific x-coordinate. In such cases, the x-coordinate in a specific row is equal to the x-coordinate of the prediction sample plus the y-coordinate of the prediction sample plus 1. Additionally, in some cases, specifying one or more reference samples that are external to the current block , may include determining a row that is above the current block, determining an X coordinate in the determined row (wherein the X coordinate in the determined row is based on the angle of the wide-angle intra prediction mode relative to the predictive sample), and determining a reference sample from one or more reference samples at based on certain strings and and the specific X coordinate. For example, determining the X coordinate in the specific row may include determining one of the cotangent or tangent of the wide-angle intra prediction mode, and determining the X-coordinate in the specific row based on one of the cotangent or tangent of the wide-angle intra prediction mode, coordinate X of the predictive sample and Y coordinates of the predictive sample. In one illustrative example, with reference to FIG. 7, the second PDPC reference sample R (x,-1) is determined from the row of adjacent reconstructed reference samples 708. The coordinate XR (x,-1) may be determined as x=x'+tan(β)*(y'+1 ), where tan(β) is the tangent of the angle β shown in FIG. 7. In such an example, the X coordinate (x) in a particular row (eg, row 708 in FIG. 7) is equal to the X coordinate of the prediction sample (x') plus the Y coordinate of the prediction sample (y') plus 1, and is also based on the angle (on the tangent of the angle β, tan(β)) of the wide-angle intra prediction mode.

[0217] В некоторых случаях, определение одной или более опорных выборок, которые являются внешними для текущего блока, может включать в себя определение столбца, который находится слева от текущего блока, определение координаты Y в определенном столбце и определение опорной выборки из одной или более опорных выборок на основе определенного столбца и определенной координаты Y. В таких случаях, координата Y в определенном столбце равна координате Y прогнозной выборки плюс координата X прогнозной выборки плюс 1. Дополнительно, в некоторых случаях, определение одной или более опорных выборок, которые являются внешними для текущего блока, может включать в себя определение столбца, который находится слева от текущего блока, определение координаты Y в определенном столбце (при этом координата Y в определенном столбце основана на углу режима широкоугольного внутреннего прогнозирования) и определение опорной выборки из одной или более опорных выборок на основе определенного столбца и определенной координаты Y. Например, определение координаты Y в определенном столбце может включать в себя определение одного из котангенса или тангенса угла режима широкоугольного внутреннего прогнозирования и определение координаты Y в определенном столбце на основе одного из котангенса или тангенса угла режима широкоугольного внутреннего прогнозирования, координаты X прогнозной выборки и координаты Y прогнозной выборки. В одном иллюстративном примере, со ссылкой на фиг. 7, первая опорная PDPC-выборка 714 (R(-1,y)) определяется из столбца соседних восстановленных опорных выборок 706. Координата Y R(-1,y) может определяться в качестве y=y'+cotan(β)*(x'+1), где cotan(β) является котангенсом угла β, показанного на фиг. 7. В таком примере, координата Y (y) в определенном столбце (например, в столбце 706 на фиг. 7) равна координате Y прогнозной выборки (y') плюс координата X прогнозной выборки (x') плюс 1 и также основана на углу (на котангенсе угла β, cotan(β)) режима широкоугольного внутреннего прогнозирования.[0217] In some cases, determining one or more reference samples that are external to the current block may include determining a column that is to the left of the current block, determining a Y coordinate in the specified column, and determining a reference sample from one or more reference samples. samples based on a specific column and a specific y-coordinate. In such cases, the y-coordinate in a specific column is equal to the y-coordinate of the predictive sample plus the x-coordinate of the predictive sample plus 1. Additionally, in some cases, specifying one or more reference samples that are external to the current block may include determining a column that is to the left of the current block, determining a Y coordinate in the determined column (wherein the Y coordinate in the determined column is based on the angle of the wide-angle intra prediction mode), and determining a reference sample from one or more reference samples based on a specific column and a specific th Y coordinate. For example, determining the Y coordinate in a specific column may include determining one of the cotangent or tangent of the angle of the wide-angle intra prediction mode, and determining the Y coordinate in the specific column based on one of the cotangent or tangent of the angle of the wide-angle intra prediction mode, the X coordinate of the predictive sample and Y coordinates of the predictive sample. In one illustrative example, with reference to FIG. 7, the first PDPC reference sample 714 (R (-1,y) ) is determined from a column of adjacent reconstructed reference samples 706. The YR (-1,y) coordinate may be determined as y=y'+cotan(β)*(x '+1), where cotan(β) is the cotangent of the angle β shown in FIG. 7. In such an example, the Y coordinate (y) in a particular column (eg, column 706 in FIG. 7) is equal to the Y coordinate of the predictive sample (y') plus the X coordinate of the predictive sample (x') plus 1, and is also based on the angle (on the cotangent of the angle β, cotan(β)) of the wide-angle intra prediction mode.

[0218] В некоторых реализациях, определение одной или более опорных выборок, которые являются внешними для текущего блока, на основе режима широкоугольного внутреннего прогнозирования может включать в себя определение набора из одной или более выборок на основе режима широкоугольного внутреннего прогнозирования и, по меньшей мере, одно из интерполяции, округления со смещением или округления без смещения набора из одной или более выборок для того, чтобы формировать одну или более опорных выборок. Например, ссылаясь на фиг. 8, интерполяция может выполняться для выборок 812, чтобы формировать опорную PDPC-выборку R(x,-1).[0218] In some implementations, determining one or more reference samples that are external to the current block based on the wide-angle intra mode may include determining a set of one or more samples based on the wide-angle intra mode and at least one of interpolation, rounding with offset, or rounding without offset of a set of one or more samples in order to generate one or more reference samples. For example, referring to FIG. 8, interpolation may be performed on samples 812 to generate a PDPC reference sample R (x,-1) .

[0219] В некоторых примерах, определение одной или более опорных выборок, которые являются внешними для текущего блока, содержит определение одной или более опорных выборок, имеющих и координату X и координату Y, которые отличаются от соответствующих координаты X и координаты Y прогнозной выборки в блоке прогнозирования. Например, как описано относительно фиг. 7, третья опорная PDPC-выборка 716 (обозначается как R(-1,-1)) также может определяться из соседнего блока, который является смежным с левой верхней выборкой текущего блока 703.[0219] In some examples, defining 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 are different from the corresponding X coordinate and Y coordinate of the prediction sample in the block forecasting. For example, as described with respect to FIG. 7, a third PDPC reference sample 716 (denoted as R (-1,-1) ) may also be determined from an adjacent block that is adjacent to the top left sample of the current block 703.

[0220] В некоторых реализациях, определение одной или более опорных выборок, которые являются внешними для текущего блока, на основе режима широкоугольного внутреннего прогнозирования может включать в себя определение того, что одна или более выборок, внешних для текущего блока, идентифицированного на основе режима широкоугольного внутреннего прогнозирования, не сохраняются в опорном линейном буфере. Одна или более опорных выборок могут определяться на основе последней опорной выборки, сохраненной в опорном линейном буфере, на основе одной или более выборок, внешних для текущего блока, не сохраняемых в опорном линейном буфере.[0220] In some implementations, determining one or more reference samples that are external to the current block based on the wide-angle intra prediction mode may include determining that one or more samples external to the current block identified based on the wide-angle intra prediction mode internal prediction are not stored in the linear reference buffer. One or more reference samples may be determined based on the last reference sample stored in the line reference buffer, based on one or more samples external to the current block not stored in the line reference buffer.

[0221] В некоторых аспектах, процесс 900 может включать в себя определение одного или более весовых коэффициентов на основе координат X и Y прогнозной выборки. Например, как отмечено выше, весовые PDPC-коэффициенты для смежного правого верхнего диагонального режима могут определяться следующим образом: wT=32>>((y'<<1)>>shift), wL=32>>((x'<<1)>>shift), wTL=0 или wT=32>>((y'<<1)>>shift), wL=0, wTL=0. В другом примере, как отмечено выше, весовые PDPC-коэффициенты для смежного левого нижнего диагонального режима могут определяться следующим образом: wL=32>>((x'<<1)>>shift), wT=32>>((y'<<1)>>shift), wTL=0 или wL=32>>((x'<<1)>>shift), wT=0, wTL=0. Определенные один или более весовых коэффициентов могут использоваться для того, чтобы модифицировать прогнозную выборку наряду с одной или более опорных выборок. Например, модифицированная прогнозная выборка может формироваться на основе определенной одной или более опорных выборок, определенного одного или более весовых коэффициентов и прогнозной выборки (например, с использованием вышеприведенного уравнения 1).[0221] In some aspects, process 900 may include determining one or more weights based on the X and Y coordinates of the predictive sample. For example, as noted above, the PDPC weights for the adjacent right upper diagonal mode may be defined as follows: wT=32>>((y'<<1)>>shift), wL=32>>((x'<< 1)>>shift), wTL=0 or wT=32>>((y'<<1)>>shift), wL=0, wTL=0. In another example, as noted above, the PDPC weights for the adjacent left lower diagonal mode may be defined as follows: wL=32>>((x'<<1)>>shift), wT=32>>((y' <<1)>>shift), wTL=0 or wL=32>>((x'<<1)>>shift), wT=0, wTL=0. The determined one or more weights may be used to modify the predictive sample along with the one or more reference samples. For example, the modified prediction sample may be generated based on the determined one or more reference samples, the determined one or more weights, and the predictive sample (eg, using Equation 1 above).

[0222] В некоторых примерах, модификация прогнозной выборки из множества прогнозных выборок блока прогнозирования может включать в себя модификацию первой прогнозной выборки блока прогнозирования. Например, одна или более опорных выборок могут включать в себя первый набор из одной или более опорных выборок, и процесс 900 может включать в себя определение, для второй прогнозной выборки блока прогнозирования, того, что, по меньшей мере, одна опорная выборка из второго набора из одной или более опорных выборок для второй прогнозной выборки не сохраняется в опорном линейном буфере. В некоторых случаях, PDPC может не применяться ко второй прогнозной выборке на основе определения, для второй прогнозной выборки, того, что, по меньшей мере, одна опорная выборка из второго набора из одной или более опорных выборок для второй прогнозной выборки не сохраняется в опорном линейном буфере. В некоторых случаях, PDPC может применяться ко второй прогнозной выборке только с использованием опорных выборок, доступных в опорном линейном буфере, на основе определения, для второй прогнозной выборки, того, что, по меньшей мере, одна опорная выборка из второго набора из одной или более опорных выборок для второй прогнозной выборки не сохраняется в опорном линейном буфере.[0222] In some examples, modifying a prediction sample of a plurality of prediction samples of a prediction block may include modifying a first prediction sample of the prediction block. For example, one or more reference samples may include a first set of one or more reference samples, and process 900 may include determining, for a second predictor sample of the predictor, that at least one reference sample from the second set of one or more reference samples for the second predictive sample is not stored in the linear reference buffer. In some cases, PDPC may not be applied to the second prediction sample based on determining, for the second prediction sample, that at least one reference sample from the second set of one or more reference samples for the second prediction sample is not stored in the reference linear buffer. In some cases, PDPC may be applied to the second predictive sample using only the reference samples available in the linear reference buffer based on determining, for the second predictive sample, that at least one reference sample from the second set of one or more reference samples for the second predictive sample is not stored in the linear reference buffer.

[0223] На этапе 1012, процесс 1000 включает в себя определение остаточного значения для остаточного блока на основе модифицированной прогнозной выборки и выборочного значения в текущем блоке. Например, остаточное значение может включать в себя разность (или ошибку) между модифицированной прогнозной выборкой и выборочным значением в текущем блоке. Блок преобразования (например, TU, TB и т.п.) с остаточными значениями и/или коэффициентами преобразования может формироваться на основе одного или более остаточных значений, определенных для текущего блока. Например, остаточные данные могут преобразовываться из пиксельной области в область преобразования, приводя к остаточным коэффициентам преобразования. Остаточные коэффициенты преобразования могут квантоваться, и в некоторых случаях, энтропийное кодирование может применяться к квантованным коэффициентам преобразования. На этапе 1014, процесс 1000 включает в себя передачу в служебных сигналах информации, указывающей остаточное значение. Информация может включать в себя остаточный блок преобразования (который может энтропийно кодироваться), остаточные коэффициенты преобразования, квантованные остаточные коэффициенты преобразования или энтропийно кодированные квантованные остаточные коэффициенты преобразования.[0223] At 1012, process 1000 includes determining a residual value for the residual block based on the modified predictive sample and the sample value in the current block. For example, the residual value may include the difference (or error) between the modified predictive sample and the sample value in the current block. A transform block (eg, TU, TB, etc.) with residuals and/or transform coefficients may be generated based on one or more residuals determined for the current block. For example, the residual data may be transformed from a pixel region to a transformation region, resulting in residual transformation coefficients. The residual transform coefficients may be quantized, and in some cases, entropy encoding may be applied to the quantized transform coefficients. At 1014, process 1000 includes signaling information indicative of a residual value. The information may include a residual transform block (which may be entropy encoded), residual transform coefficients, quantized residual transform coefficients, or entropy encoded quantized residual transform coefficients.

[0224] В некоторых примерах, процессы 900 и 1000 могут выполняться посредством вычислительного устройства или оборудования. Например, процесс 900 может выполняться посредством видеодекодера 30 либо посредством устройства или оборудования (например, камеры, компьютера, мобильного устройства, широковещательного приемного устройства или абонентской приставки) для декодирования видеоданных, которое включает в себя видеодекодер 30. В другом примере, процесс 1000 может выполняться посредством видеокодера 22 либо посредством устройства или оборудования (например, камеры, компьютера, мобильного устройства, широковещательного приемного устройства или абонентской приставки) для кодирования видеоданных, которое включает в себя видеокодер 22. В некоторых случаях, вычислительное устройство или оборудование может включать в себя процессор, микропроцессор, микрокомпьютер или другой компонент устройства, которое выполнено с возможностью выполнять этапы одного или обоих из процессов 900 и 1000. В некоторых примерах, вычислительное устройство или оборудование может включать в себя один или более компонентов, к примеру, одну или более камер для захвата одного или более изображений, устройство ввода (например, интерфейс сенсорного экрана, клавишную панель, мышь или другое устройство ввода), устройство вывода (например, дисплей для отображения текущего блока, одного или более изображений, уведомлений и/или других отображаемых данных, динамик для вывода аудио или другое устройство вывода), любую комбинацию вышеозначенного либо другой подходящий компонент. В некоторых примерах, вычислительное устройство может включать в себя настольный компьютер, ноутбук (т.е. переносной компьютер) компьютер, планшетный компьютер, абонентскую приставку, телефонную трубку, к примеру, так называемый смартфон, телевизионный приемник, камеру, устройство отображения, цифровой мультимедийный проигрыватель, консоль для видеоигр, устройство потоковой передачи видео, носимое устройство и т.п. либо другое устройство с одним или более компонентов. В некоторых случаях, вычислительное устройство может включать в себя видеокодек. В некоторых примерах, некоторые из одного или более компонентов могут быть отдельным от вычислительного устройства, причем в этом случае вычислительное устройство принимает данные или передает данные. Вычислительное устройство дополнительно может включать в себя сетевой интерфейс, выполненный с возможностью обмениваться данными. Сетевой интерфейс может быть выполнен с возможностью обмениваться данными на основе Интернет-протокола (IP) или другими подходящими сетевыми данными.[0224] In some examples, processes 900 and 1000 may be performed by a computing device or equipment. For example, process 900 may be performed by video decoder 30, or by a video decoding device or equipment (eg, camera, computer, mobile device, broadcast receiver, or set-top box) that includes video decoder 30. In another example, process 1000 may be performed via video encoder 22 or via a device or equipment (for example, a camera, computer, mobile device, broadcast receiver, or set-top box) for encoding video data, which includes video encoder 22. In some cases, the computing device or equipment may include a processor, a microprocessor, microcomputer, or other device component that is configured to perform the steps of one or both of processes 900 and 1000. In some examples, a computing device or equipment may include one or more components, such as one or more cameras for capturing one or more images, an input device (for example, a touch screen interface, a keypad, a mouse, or other input device), an output device (for example, a display for displaying the current block, one or more images, notifications, and/or other display data, audio output speaker, or other output device), any combination of the above, or other suitable component. In some examples, the computing device may include a desktop computer, a laptop (i.e., laptop) computer, a tablet computer, a set-top box, a handset such as a so-called smartphone, a television receiver, a camera, a display device, a digital media player, video game console, video streaming device, wearable device, etc. or another device with one or more components. In some cases, the computing device may include a video codec. In some examples, some of the one or more components may be separate from the computing device, in which case the computing device receives data or transmits data. The computing device may further include a network interface configured to communicate. The network interface may be configured to exchange Internet Protocol (IP) based data or other suitable network data.

[0225] Компоненты вычислительного устройства (например, один или более процессоров, один или более микропроцессоров, один или более микрокомпьютеров и/или другой компонент) могут реализовываться в схеме. Например, компоненты могут включать в себя и/или могут реализовываться с использованием электронных схем или других электронных аппаратных средств, которые могут включать в себя одну или более программируемых электронных схем (например, микропроцессоров, графических процессоров (GPU), процессоров цифровых сигналов (DSP), центральных процессоров (CPU) и/или других подходящих электронных схем), и/или могут включать в себя и/или реализовываться с использованием компьютерного программного обеспечения, микропрограммного обеспечения либо любой комбинации вышеозначенного для того, чтобы выполнять различные операции, описанные в данном документе.[0225] Components of a computing device (eg, one or more processors, one or more microprocessors, one or more microcomputers, and/or other component) may be implemented in circuitry. For example, components may include and/or be implemented using electronic circuits or other electronic hardware, which may include one or more programmable electronic circuits (e.g., microprocessors, graphics processing units (GPUs), digital signal processors (DSPs) , central processing units (CPUs), and/or other suitable electronic circuitry), and/or may include and/or be implemented using computer software, firmware, or any combination of the foregoing in order to perform the various operations described herein. .

[0226] Процессы 900 и 1000 проиллюстрированы в качестве логической блок-схемы последовательности операций способа, работа которой представляет последовательность операций, которая может реализовываться в аппаратных средствах, компьютерных инструкциях либо комбинации вышеозначенного. В контексте компьютерных инструкций, операции представляют машиноисполняемые инструкции, сохраненные на одном или более машиночитаемых носителей хранения данных, которые, при выполнении посредством одного или более процессоров, выполняют изложенные операции. В общем, машиноисполняемые инструкции включают в себя процедуры, программы, объекты, компоненты, структуры данных и т.п., которые выполняют конкретные функции или реализуют конкретные типы данных. Порядок, в котором описываются операции, не должен истолковываться как ограничение, и любое число описанных операций может комбинироваться в любом порядке и/или параллельно, чтобы реализовывать процессы.[0226] Processes 900 and 1000 are illustrated as a logical flow diagram, the operation of which is a sequence of operations that may be implemented in hardware, computer instructions, or a combination of the above. In the context of computer instructions, operations are computer-executable instructions stored on one or more computer-readable storage media that, when executed by one or more processors, perform the recited operations. In general, computer-executable instructions include procedures, programs, objects, components, data structures, and the like that perform specific functions or implement specific data types. The order in which the operations are described is not to be construed as a limitation, and any number of the described operations may be combined in any order and/or in parallel to implement the processes.

[0227] Дополнительно, процессы 900 и 1000 могут выполняться под управлением одной или более компьютерных систем, сконфигурированных с выполняемыми инструкциями, и могут реализовываться как код (например, выполняемые инструкции, одна или более компьютерных программ или одно или более приложений), выполняющийся совместно на одном или более процессоров, посредством аппаратных средств либо как комбинации вышеозначенного. Как отмечено выше, код может сохраняться на компьютерно-читаемом или машиночитаемом носителе хранения данных, например, в форме компьютерной программы, содержащей множество инструкций, выполняемых посредством одного или более процессоров. Компьютерно-читаемый или машиночитаемый носитель хранения данных может быть энергонезависимым.[0227] Additionally, processes 900 and 1000 may run under the control of one or more computer systems configured with executable instructions, and may be implemented as code (e.g., executable instructions, one or more computer programs, or one or more applications) executing together on one or more processors, through hardware, or a combination of the foregoing. As noted above, the code may be stored on a computer-readable or machine-readable storage medium, for example, in the form of a computer program containing a plurality of instructions executable by one or more processors. The computer-readable or machine-readable storage medium may be non-volatile.

[0228] Фиг. 11 является блок-схемой, иллюстрирующей примерный видеокодер 22, который может реализовывать технологии этого раскрытия сущности. Фиг. 11 предоставляется для целей пояснения и не должен считаться ограничением технологий, как проиллюстрировано и описано в общих чертах в этом раскрытии сущности. Технологии этого раскрытия сущности могут быть применимыми к различным стандартам или способам кодирования.[0228] FIG. 11 is a block diagram illustrating an exemplary video encoder 22 that may implement the techniques of this disclosure. Fig. 11 is provided for purposes of explanation and should not be considered a limitation of the technologies as illustrated and outlined in this disclosure. The techniques of this disclosure may be applicable to various standards or encoding methods.

[0229] В примере по фиг. 11, видеокодер 22 включает в себя модуль 100 обработки прогнозирования, запоминающее устройство 98 видеоданных, модуль 102 формирования остатков, модуль 104 обработки преобразования, модуль 106 квантования, модуль 108 обратного квантования, модуль 110 обработки обратного преобразования, модуль 112 восстановления, модуль 114 фильтрации, буфер 116 декодированных кинокадров и модуль 118 энтропийного кодирования. Модуль 100 обработки прогнозирования включает в себя модуль 120 обработки взаимного прогнозирования и модуль 126 обработки внутреннего прогнозирования. Модуль 120 обработки взаимного прогнозирования может включать в себя модуль оценки движения и модуль компенсации движения (не показаны).[0229] In the example of FIG. 11, the video encoder 22 includes a prediction processing unit 100, a video memory 98, a residual generating 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 decoded movie frame buffer 116; and an 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 unit 120 may include a motion estimation unit and a motion compensation unit (not shown).

[0230] Запоминающее устройство 101 видеоданных может быть выполнено с возможностью сохранять видеоданные, которые должны кодироваться посредством компонентов видеокодера 22. Видеоданные, сохраненные в запоминающем устройстве 101 видеоданных, могут получаться, например, из видеоисточника 18. Буфер 116 декодированных кинокадров может представлять собой запоминающее устройство опорных кинокадров, которое сохраняет опорные видеоданные для использования при кодировании видеоданных посредством видеокодера 22, например, в режимах внутреннего или взаимного кодирования. Запоминающее устройство 101 видеоданных и буфер 116 декодированных кинокадров могут формироваться посредством любого из множества запоминающих устройств, к примеру, как динамическое оперативное запоминающее устройство (DRAM), включающее в себя синхронное DRAM (SDRAM), магниторезистивное RAM (MRAM), резистивное RAM (RRAM) или другие типы запоминающих устройств. Запоминающее устройство 101 видеоданных и буфер 116 декодированных кинокадров могут предоставляться посредством идентичного запоминающего устройства или отдельных запоминающих устройств. В различных примерах, запоминающее устройство 101 видеоданных может быть внутримикросхемным с другими компонентами видеокодера 22 или внемикросхемным относительно этих компонентов. Запоминающее устройство 101 видеоданных может быть идентичным или представлять собой часть носителей 20 хранения данных по фиг. 1.[0230] The video data storage device 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 storage device 101 may be obtained from a video source 18, for example. reference movie frames 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 movie frame buffer 116 may be formed by any of a plurality of memories such as dynamic random access memory (DRAM) including synchronous DRAM (SDRAM), magnetoresistive RAM (MRAM), resistive RAM (RRAM) or other types of storage devices. The video data storage 101 and the decoded movie frame buffer 116 may be provided by an identical storage device or separate storage devices. In various examples, video memory 101 may be on-chip with other components of video encoder 22 or off-chip with respect to these components. The video storage device 101 may be identical to or be part of the storage media 20 of FIG. one.

[0231] Видеокодер 22 принимает видеоданные. Видеокодер 22 может кодировать каждую CTU в срезе кинокадра видеоданных. Каждая из CTU может быть ассоциирована с CTB сигналов яркости одинакового размера и соответствующими CTB кинокадра. В качестве части кодирования CTU, модуль 100 обработки прогнозирования может выполнять сегментацию для того, чтобы разделять CTB CTU на постепенно меньшие блоки. Меньшие блоки могут представлять собой блоки кодирования CU. Например, модуль 100 обработки прогнозирования может сегментировать CTB, ассоциированный с CTU, согласно древовидной структуре. В соответствии с одной или более технологий этого раскрытия сущности, для каждого соответствующего узла-нелиста древовидной структуры на каждом уровне глубины древовидной структуры, предусмотрено множество разрешенных шаблонов разбиения для соответствующего узла-нелиста, и видеоблок, соответствующий соответствующему узлу-нелисту, сегментируется на видеоблоки, соответствующие дочерним узлам соответствующего узла-нелиста согласно одному из множества допустимых шаблонов разбиения. В одном примере, модуль 100 обработки прогнозирования или другой модуль обработки видеокодера 22 может быть выполнен с возможностью выполнять любую комбинацию технологий, описанных в данном документе.[0231] Video encoder 22 receives video data. Video encoder 22 may encode each CTU in a slice of a video frame. Each of the CTUs may be associated with luminance CTBs of the same size and corresponding movie CTBs. As part of CTU coding, prediction processing unit 100 may perform segmentation in order to partition CTB CTUs into progressively smaller blocks. The smaller blocks may be CU coding blocks. For example, the prediction processing module 100 may segment the CTB associated with the CTU according to a tree structure. In accordance with one or more techniques of this disclosure, for each respective non-leaf node of the tree structure, at each depth level of the tree structure, a plurality of allowed split patterns for the corresponding non-leaf node are provided, and the video block corresponding to the corresponding non-leaf node is segmented into video blocks, corresponding to the child nodes of the corresponding non-leaf node, according to one of the set of valid 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 technologies described herein.

[0232] Видеокодер 22 может кодировать CU CTU для того, чтобы формировать кодированные представления CU (т.е. кодированные CU). В качестве части кодирования CU, модуль 100 обработки прогнозирования может сегментировать блоки кодирования, ассоциированные с CU, между одной или более PU CU. В соответствии с технологиями этого раскрытия сущности, CU может включать в себя только одну PU. Таким образом, в некоторых примерах этого раскрытия сущности, CU не разделяется на отдельные блоки прогнозирования, а вместо этого процесс прогнозирования выполняется для всей CU. Таким образом, каждая CU может быть ассоциирована с блоком прогнозирования сигналов яркости и соответствующими блоками прогнозирования сигналов цветности. Видеокодер 22 и видеодекодер 30 могут поддерживать CU, имеющие различные размеры. Как указано выше, размер CU может означать размер блока кодирования сигналов яркости CU, а также размер блока прогнозирования сигналов яркости. Как пояснено выше, видеокодер 22 и видеодекодер 30 могут поддерживать CU-размеры, заданные посредством любой комбинации примерных технологий сегментации, описанных в данном документе.[0232] Video encoder 22 may encode the CTU CUs in order to generate encoded CU representations (ie, encoded CUs). As part of CU encoding, prediction processing unit 100 may segment coding units associated with a CU between one or more CU PUs. In accordance with the techniques of this disclosure, a CU may include only one PU. Thus, in some examples of this disclosure, the CU is not divided into individual prediction blocks, but instead, 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 mentioned above, the size of the CU may mean the size of the luminance coding block of the CU as well as the size of the luminance prediction block. As explained above, video encoder 22 and video decoder 30 may support CU sizes defined by any combination of the exemplary segmentation technologies described herein.

[0233] Модуль 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.[0233] The inter prediction processing unit 120 may generate prediction data for the PU by performing inter prediction for each PU of the CU. As explained herein, in some examples of this disclosure, a CU may contain only one PU, ie. CU and PU may be synonymous. Predictive data for the PU may include predictive blocks of the PU 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 the I-slice, all PUs are internally predicted. Therefore, if the PU is in an I-slice, the inter prediction processing unit 120 does not perform inter prediction for 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, the inter prediction processing unit 120 may use unidirectional inter prediction to generate a PU predictor. If the PU is in a B-slice, the inter prediction processing unit 120 may use unidirectional or bidirectional inter prediction to generate a PU predictor.

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

[0235] Чтобы выполнять внутреннее прогнозирование для PU, модуль 126 обработки внутреннего прогнозирования может использовать несколько режимов внутреннего прогнозирования для того, чтобы формировать несколько наборов прогнозирующих данных для PU. Модуль 126 обработки внутреннего прогнозирования может использовать выборки из блоков выборок соседних PU для того, чтобы формировать прогнозирующий блок для PU. Соседние PU могут располагаться выше, выше и справа, выше и слева или слева от PU, при условии порядка кодирования слева направо, сверху вниз для PU, CU и CTU. Модуль 126 обработки внутреннего прогнозирования может использовать различные числа режимов внутреннего прогнозирования, например, 33 режима направленного внутреннего прогнозирования. В некоторых примерах, число режимов внутреннего прогнозирования может зависеть от размера области, ассоциированной с PU.[0235] In order to perform intra prediction for the PU, the intra prediction processing unit 126 may use multiple intra prediction modes to generate multiple sets of prediction data for the PU. Intra prediction processing unit 126 may use samples from neighbor PU sample blocks to generate a prediction block for the PU. Neighboring PUs may be above, above and to the right, above and to the left, or to the left of the PU, subject to the encoding order from 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, 33 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.

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

[0237] Модуль 100 обработки прогнозирования может выбирать прогнозирующие данные для PU CU из числа прогнозирующих данных, сформированных посредством модуля 120 обработки взаимного прогнозирования для PU, или прогнозирующих данных, сформированных посредством модуля 126 обработки внутреннего прогнозирования для PU. В некоторых примерах, модуль 100 обработки прогнозирования выбирает прогнозирующие данные для PU CU на основе показателей искажения в зависимости от скорости передачи наборов прогнозирующих данных. Прогнозирующие блоки выбранных прогнозирующих данных могут называться в данном документе "выбранными прогнозирующими блоками".[0237] The prediction processing unit 100 may select prediction data for the CU PU from among prediction data generated by the PU mutual prediction processing unit 120 or 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 PU based on the distortion metrics depending on the transmission rate of the prediction data sets. The predictor blocks of the selected predictor data may be referred to herein as "selected predictor blocks".

[0238] Модуль 102 формирования остатков может формировать, на основе блоков кодирования (к примеру, блоков кодирования сигналов яркости, Cb-блоков кодирования и Cr-блоков кодирования) для CU и выбранных прогнозирующих блоков (к примеру, блоков сигналов яркости, прогнозирующих Cb-блоков и прогнозирующих Cr-блоков) для PU CU, остаточные блоки (к примеру, остаточные блоки сигналов яркости, остаточные Cb-блоки и остаточные Cr-блоки) для CU. Например, модуль 102 формирования остатков может формировать остаточные блоки CU таким образом, что каждая выборка в остаточных блоках имеет значение, равное разности между выборкой в блоке кодирования CU и соответствующей выборкой в соответствующем выбранном прогнозирующем блоке PU CU.[0238] Residue generator 102 may generate, based on coding blocks (eg, luminance coding blocks, Cb coding blocks, and Cr coding blocks) for CUs and selected predictors (eg, luminance blocks predicting Cb- blocks and predictor Cr blocks) for the PU CU, residual blocks (eg, luminance residual blocks, Cb residual blocks, and Cr residual blocks) for the CU. For example, residual generator 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 predictive block of the CU PU.

[0239] Модуль 104 обработки преобразования может выполнять сегментацию на дерево квадрантов для того, чтобы сегментировать остаточные блоки, ассоциированные с CU, на блоки преобразования, ассоциированные с TU CU. Таким образом, TU может быть ассоциирована с блоком преобразования сигналов яркости и двумя блоками преобразования сигналов цветности. Размеры и позиции блоков преобразования сигналов яркости и сигналов цветности TU CU могут быть основаны либо могут не быть основаны на размерах и позициях блоков прогнозирования PU CU. Структура в виде дерева квадрантов, известная как "остаточное дерево квадрантов (RQT)", может включать в себя узлы, ассоциированные с каждой из областей. TU CU могут соответствовать узлам-листьям RQT. В других примерах, модуль 104 обработки преобразования может быть выполнен с возможностью сегментировать TU в соответствии с технологиями сегментации, описанными в данном документе. Например, видеокодер 22 может не разделять дополнительно CU на TU с использованием RQT-структуры. В связи с этим, в одном примере, CU включает в себя одну TU.[0239] Transform processing unit 104 may perform quadtree segmentation in order to segment 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 unit and two chrominance transform units. The sizes and positions of the CU TU luminance and chrominance transform blocks may or may not be based on the sizes and positions of the CU PU prediction blocks. A quadtree structure known as a "residual quadtree (RQT)" may include nodes associated with each of the regions. CU TUs may correspond to RQT leaf nodes. In other examples, transform processing module 104 may be configured to segment the TU in accordance with the segmentation techniques described herein. For example, video encoder 22 may not further divide CUs into TUs using an RQT structure. In this regard, in one example, a CU includes one TU.

[0240] Модуль 104 обработки преобразования может формировать блоки коэффициентов преобразования для каждой TU CU посредством применения одного или более преобразований к блокам преобразования TU. Модуль 104 обработки преобразования может применять различные преобразования к блоку преобразования, ассоциированному с TU. Например, модуль 104 обработки преобразования может применять дискретное косинусное преобразование (DCT), направленное преобразование или концептуально аналогичное преобразование к блоку преобразования. В некоторых примерах, модуль 104 обработки преобразования не применяет преобразования к блоку преобразования. В таких примерах, блок преобразования может трактоваться в качестве блока коэффициентов преобразования.[0240] Transform processing unit 104 may generate transform coefficient blocks for each CU TU by applying one or more transforms to the TU transform blocks. Transform processing module 104 may apply various transforms to a transform block associated with a TU. For example, transform processing module 104 may apply a discrete cosine transform (DCT), 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 treated as a transform coefficient block.

[0241] Модуль 106 квантования может квантовать коэффициенты преобразования в блоке коэффициентов. Процесс квантования может уменьшать битовую глубину, ассоциированную с некоторыми или всеми коэффициентами преобразования. Например, n-битовый коэффициент может округляться в меньшую сторону до m-битового коэффициента во время квантования, где n больше m. Модуль 106 квантования может квантовать блок коэффициентов, ассоциированный с TU CU, на основе значения параметра квантования (QP), ассоциированного с CU. Видеокодер 22 может регулировать степень квантования, применяемого к блокам коэффициентов, ассоциированным с CU, посредством регулирования QP-значения, ассоциированного с CU. Таким образом, квантованные коэффициенты преобразования могут иметь меньшую точность, чем исходные коэффициенты преобразования.[0241] 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 coefficient may be rounded down to an m-bit coefficient 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. Thus, the quantized transform coefficients may be less accurate than the original transform coefficients.

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

[0243] Модуль 114 фильтрации может выполнять одну или более операций удаления блочности, чтобы уменьшать артефакты блочности в блоках кодирования, ассоциированных с CU. Буфер 116 декодированных кинокадров может сохранять восстановленные блоки кодирования после того, как модуль 114 фильтрации выполняет одну или более операций удаления блочности для восстановленных блоков кодирования. Модуль 120 обработки взаимного прогнозирования может использовать опорный кинокадр, который содержит восстановленные блоки кодирования, для того чтобы выполнять взаимное прогнозирование для PU других кинокадров. Помимо этого, модуль 126 обработки внутреннего прогнозирования может использовать восстановленные блоки кодирования в буфере 116 декодированных кинокадров для того, чтобы выполнять внутреннее прогнозирование для других PU в кинокадре, идентичном кинокадру CU.[0243] Filtering module 114 may perform one or more deblocking operations to reduce blocking artifacts in coding blocks associated with a CU. The decoded movie frame buffer 116 may store the recovered coding blocks after the filter module 114 performs one or more deblocking operations on the recovered coding blocks. The inter prediction processing unit 120 may use the reference movie frame, which contains the recovered coding blocks, to perform inter prediction for PUs of other movie frames. In addition, the intra prediction processing unit 126 may use the recovered coding blocks in the decoded movie frame buffer 116 to perform intra prediction for other PUs in the same movie frame as the CU's movie frame.

[0244] Модуль 118 энтропийного кодирования может принимать данные из других функциональных компонентов видеокодера 22. Например, модуль 118 энтропийного кодирования может принимать блоки коэффициентов из модуля 106 квантования и может принимать синтаксические элементы из модуля 100 обработки прогнозирования. Модуль 118 энтропийного кодирования может выполнять одну или более операций энтропийного кодирования для данных, чтобы формировать энтропийно кодированные данные. Например, модуль 118 энтропийного кодирования может выполнять CABAC-операцию, операцию контекстно-адаптивного кодирования переменной длины (CAVLC), операцию кодирования переменно-переменной (V2V) длины, операцию синтаксического контекстно-адаптивного двоичного арифметического кодирования (SBAC), операцию энтропийного кодирования на основе сегментирования на интервалы вероятности (PIPE), операцию кодирования экспоненциальным кодом Голомба или другой тип операции энтропийного кодирования для данных. Видеокодер 22 может выводить поток битов, который включает в себя энтропийно кодированные данные, сформированные посредством модуля 118 энтропийного кодирования. Например, поток битов может включать в себя данные, которые представляют структуру сегментации для CU согласно технологиям этого раскрытия сущности.[0244] 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 length variable (V2V) coding operation, a syntactic context adaptive binary arithmetic coding (SBAC) operation, an entropy coding operation based on segmentation into probability intervals (PIPE), an exponential Golomb encoding operation, or another type of entropy encoding operation for 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 segmentation structure for a CU according to the techniques of this disclosure.

[0245] Фиг. 12 является блок-схемой, иллюстрирующей примерный видеодекодер 30, который выполнен с возможностью реализовывать технологии этого раскрытия сущности. Фиг. 12 предоставляется для целей пояснения и не является ограничением технологий, как проиллюстрировано и описано в общих чертах в этом раскрытии сущности. Для целей пояснения, это раскрытие сущности описывает видеодекодер 30 в контексте HEVC-кодирования. Тем не менее, технологии этого раскрытия сущности могут быть применимыми к другим стандартам или способам кодирования.[0245] FIG. 12 is a block diagram illustrating an exemplary video decoder 30 that is configured to implement the technologies of this disclosure. Fig. 12 is provided for purposes of explanation and is not a limitation of the technologies as illustrated and outlined in this disclosure. For purposes of explanation, this disclosure describes video decoder 30 in the context of HEVC coding. However, the techniques of this disclosure may be applicable to other standards or encoding methods.

[0246] В примере по фиг. 12, видеодекодер 30 включает в себя модуль 150 энтропийного декодирования, запоминающее устройство 151 видеоданных, модуль 152 обработки прогнозирования, модуль 154 обратного квантования, модуль 156 обработки обратного преобразования, модуль 158 восстановления, модуль 160 фильтрации и буфер 162 декодированных кинокадров. Модуль 152 обработки прогнозирования включает в себя модуль 164 компенсации движения и модуль 166 обработки внутреннего прогнозирования. В других примерах, видеодекодер 30 может включать в себя большее число, меньше число или другие функциональные компоненты.[0246] In the example of FIG. 12, the video decoder 30 includes an entropy decoding unit 150, a video memory 151, a prediction processing unit 152, an inverse quantization unit 154, an inverse transform processing unit 156, a reconstruction unit 158, a filter unit 160, and a decoded movie frame buffer 162. The prediction processing unit 152 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.

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

[0248] Запоминающее устройство 151 видеоданных принимает и сохраняет кодированные видеоданные (например, NAL-единицы) потока битов. Модуль 150 энтропийного декодирования может принимать кодированные видеоданные (например, NAL-единицы) из запоминающего устройства 151 видеоданных и может синтаксически анализировать NAL-единицы, чтобы получать синтаксические элементы. Модуль 150 энтропийного декодирования может энтропийно декодировать энтропийно кодированные синтаксические элементы в NAL-единицах. Модуль 152 обработки прогнозирования, модуль 154 обратного квантования, модуль 156 обработки обратного преобразования, модуль 158 восстановления и модуль 160 фильтрации могут формировать декодированные видеоданные на основе синтаксических элементов, извлеченных из потока битов. Модуль 150 энтропийного декодирования, в общем, может выполнять процесс, взаимообратный по отношению к процессу модуля 118 энтропийного кодирования.[0248] The video data storage 151 receives and stores encoded video data (eg, NAL units) of the bitstream. The entropy decoding module 150 may receive encoded video data (eg, NAL units) from the video storage device 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 152, 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 bit stream. Module 150 entropy decoding, in General, can perform a process that is mutually inverse with respect to the process of module 118 entropy encoding.

[0249] В соответствии с некоторыми примерами этого раскрытия сущности, модуль 150 энтропийного декодирования или другой модуль обработки видеодекодера 30 может определять древовидную структуру в качестве части получения синтаксических элементов из потока битов. Древовидная структура может указывать то, как начальный видеоблок, такой как CTB, сегментируется на меньшие видеоблоки, такие как единицы кодирования. В соответствии с одной или более технологий этого раскрытия сущности, для каждого соответствующего узла-нелиста древовидной структуры на каждом уровне глубины древовидной структуры, предусмотрено множество разрешенных типов сегментации для соответствующего узла-нелиста, и видеоблок, соответствующий соответствующему узлу-нелисту, сегментируется на видеоблоки, соответствующие дочерним узлам соответствующего узла-нелиста согласно одному из множества допустимых шаблонов разбиения.[0249] In accordance with some examples of this 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 indicate how an initial video block, such as a CTB, is segmented into smaller video blocks, such as coding units. In accordance with one or more technologies of this disclosure, for each respective non-leaf node of the tree structure, at each depth level of the tree structure, a plurality of allowed segmentation types are provided for the corresponding non-leaf node, and the video block corresponding to the corresponding non-leaf node is segmented into video blocks, corresponding to the child nodes of the corresponding non-leaf node, according to one of the set of valid partition patterns.

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

[0251] В качестве части выполнения операции восстановления для TU CU, модуль 154 обратного квантования может обратно квантовать, т.е. деквантовать, блоки коэффициентов, ассоциированные с TU. После того, как модуль 154 обратного квантования обратно квантует блок коэффициентов, модуль 156 обработки обратного преобразования может применять одно или более обратных преобразований к блоку коэффициентов, чтобы формировать остаточный блок, ассоциированный с TU. Например, модуль 156 обработки обратного преобразования может применять обратное DCT, обратное целочисленное преобразование, обратное преобразование Карунена-Лоэва (KLT), обратное вращательное преобразование, обратное направленное преобразование или другое обратное преобразование к блоку коэффициентов.[0251] As part of performing a recovery operation on the TU CU, inverse quantizer 154 may inverse quantize, i.e. dequantize, blocks of coefficients associated with the TU. After inverse quantization module 154 inversely quantizes 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 rotational, inverse directional transform, or other inverse transform to the coefficient block.

[0252] Если CU PU кодируется с использованием внутреннего прогнозирования, модуль 166 обработки внутреннего прогнозирования может выполнять внутреннее прогнозирование для того, чтобы формировать прогнозирующие блоки PU. Модуль 166 обработки внутреннего прогнозирования может использовать режим внутреннего прогнозирования для того, чтобы формировать прогнозирующие блоки PU на основе пространственно соседних блоков выборок. Модуль 166 обработки внутреннего прогнозирования может определять режим внутреннего прогнозирования для PU на основе одного или более синтаксических элементов, полученных из потока битов.[0252] If the PU CU is encoded using intra prediction, the intra prediction processing unit 166 may perform intra prediction in order to generate PU predictors. Intra prediction processing unit 166 may use an intra prediction mode to generate predictive PUs based on spatially adjacent sample 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 bit stream.

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

[0254] Кроме того, если PU кодируется с использованием взаимного прогнозирования, модуль 150 энтропийного декодирования может определять информацию движения для PU. Модуль 164 компенсации движения может определять, на основе информации движения PU, один или более опорных блоков. Модуль 164 компенсации движения может формировать, на основе одного или более опорных блоков, прогнозирующие блоки (например, прогнозирующие блоки сигналов яркости, прогнозирующие Cb-блоки и прогнозирующие Cr-блоки) для PU. Как пояснено выше, CU может включать в себя только одну PU. Таким образом, CU может не разделяться на несколько PU.[0254] In addition, if the PU is encoded using inter prediction, entropy decoding unit 150 may determine motion information for the PU. 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, predictive blocks (eg, luminance predictor blocks, Cb predictor blocks, and Cr predictor blocks) for the PU. As explained above, a CU may include only one PU. Thus, a CU may not be split into multiple PUs.

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

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

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

[0258] Конкретные аспекты этого раскрытия сущности описаны относительно расширений HEVC-стандарта для целей иллюстрации. Тем не менее, технологии, описанные в этом раскрытии сущности, могут быть полезными для других процессов кодирования видео, включающих в себя другие стандартные или собственные процессы кодирования видео, еще не разработанные.[0258] Specific aspects of this disclosure are described with respect to extensions to the HEVC standard for purposes of illustration. However, the techniques described in this disclosure may be useful for other video encoding processes, including other standard or proprietary video encoding processes not yet developed.

[0259] Видеокодер, как описано в этом раскрытии сущности, может означать видеокодер или видеодекодер. Аналогично, модуль кодирования видео может означать видеокодер или видеодекодер. Аналогично, кодирование видео может означать кодирование видео или декодирование видео, при соответствующих условиях. В этом раскрытии сущности, фраза "на основе" может указывать только на основе, по меньшей мере, на частично на основе или в некотором роде на основе. Это раскрытие сущности может использовать термин "видеоединица" или "видеоблок", или "блок" для того, чтобы означать один или более блоков выборок и синтаксических структур, используемых для того, чтобы кодировать выборки одного или более блоков выборок. Примерные типы видеоединиц могут включать в себя CTU, CU, PU, единицы преобразования (TU), макроблоки, сегменты макроблока и т.д. В некоторых контекстах, пояснение PU может заменяться на пояснение макроблоков или сегментов макроблока. Примерные типы видеоблоков могут включать в себя блоки дерева кодирования, блоки кодирования и другие типы блоков видеоданных.[0259] A video encoder, as described in this disclosure, may mean a video encoder or a video decoder. Likewise, a video encoding module may mean a video encoder or a video decoder. Likewise, video encoding may mean video encoding or video decoding, as appropriate. In this disclosure, the phrase "based" may indicate based only, at least partially based, or based in some way. This disclosure may use the term "video unit" or "video block" or "block" to mean 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 segments, and so on. In some contexts, the PU explanation may be replaced by a macroblock or macroblock segment explanation. Exemplary video block types may include coding tree blocks, coding blocks, and other types of video data blocks.

[0260] Технологии этого раскрытия сущности не обязательно ограничены вариантами применения или настройками беспроводной связи. Технологии могут применяться к кодированию видео в поддержку любых из множества мультимедийных вариантов применения, таких как телевизионные широковещательные передачи по радиоинтерфейсу, кабельные телевизионные передачи, спутниковые телевизионные передачи, потоковые передачи видео по Интернету, такие как динамическая адаптивная потоковая передача по HTTP (DASH), цифровое видео, которое кодируется на носитель хранения данных, декодирование цифрового видео, сохраненного на носителе хранения данных, или другие варианты применения. В некоторых примерах, система может быть выполнена с возможностью поддерживать одностороннюю или двустороннюю передачу видео для того, чтобы поддерживать такие варианты применения, как потоковая передача видео, воспроизведение видео, широковещательная передача видео и/или видеотелефония.[0260] The technologies of this disclosure are not necessarily limited to wireless communication applications or settings. The technologies may be applied to video coding in support of any of a variety of multimedia applications such as over-the-air television broadcasts, cable television, satellite television, Internet video streaming such as dynamic adaptive streaming over HTTP (DASH), digital video that is encoded onto a storage medium, decoding digital video stored on a storage medium, or other applications. In some examples, the system may be configured to support one-way or two-way video in order to support applications such as video streaming, video playback, video broadcast, and/or video telephony.

[0261] При использовании в данном документе, термин "машиночитаемый носитель" включает в себя, но не только, портативные или непортативные устройства хранения данных, оптические устройства хранения данных и различные другие носители, допускающие хранение, содержание или перенос инструкции(й) и/или данных. Машиночитаемый носитель может включать в себя энергонезависимый носитель, на котором могут сохраняться данные, и который не включает в себя несущие волны и/или переходные электронные сигналы, распространяющиеся в беспроводном режиме или по проводным соединениям. Примеры энергонезависимого носителя могут включать в себя, но не только, магнитный диск или ленту, оптические носители хранения данных, к примеру, компакт-диск (CD) или универсальный цифровой диск (DVD), флэш-память, запоминающее устройство или запоминающие устройства. Машиночитаемый носитель может иметь сохраненными код и/или машиноисполняемые инструкции, которые могут представлять процедуру, функцию, подпрограмму, программу, процедуру, вложенную процедуру, модуль, программный пакет, класс или любую комбинацию инструкций, структур данных или программных операторов. Сегмент кода может быть связан с другим сегментом кода или аппаратной схемой посредством пересылки и/или приема информации, данных, аргументов, параметров или контента запоминающего устройства. Информация, аргументы, параметры, данные и т.д. могут пересылаться, перенаправляться или передаваться посредством любого надлежащего средства, в том числе совместного использования запоминающего устройства, пересылки сообщений, пересылки маркера, передачи по сети и т.д.[0261] As used herein, the term "computer-readable medium" includes, but is not limited to, portable or non-portable storage devices, optical storage devices, and various other media capable of storing, containing, or carrying instruction(s) and/ or data. The computer-readable medium may include a non-volatile medium on which data can be stored and which does not include carrier waves and/or transient electronic signals propagated wirelessly or over wired connections. Examples of non-volatile media may include, but are not limited to, a magnetic disk or tape, optical storage media such as a compact disc (CD) or digital versatile disc (DVD), flash memory, a storage device or storage devices. The computer-readable medium may have stored code and/or computer-executable instructions that may represent a procedure, function, subroutine, program, procedure, nested procedure, module, software package, class, or any combination of instructions, data structures, or program statements. A code segment may be associated with another code segment or hardware circuitry by sending and/or receiving information, data, arguments, parameters, or storage device content. Information, arguments, options, data, etc. may be forwarded, redirected, or transmitted by any appropriate means, including storage sharing, message forwarding, token forwarding, network transmission, and so on.

[0262] В некоторых вариантах осуществления, машиночитаемые устройства хранения данных, носители и запоминающие устройства могут включать в себя кабель или беспроводной сигнал, содержащий поток битов, и т.п. Тем не менее, если упоминаются, энергонезависимые машиночитаемые носители хранения данных явно исключают такие среды, как энергия, несущие сигналы, электромагнитные волны и сигналы по сути.[0262] In some embodiments, computer-readable storage devices, media, and storage devices may include a cable or wireless signal containing a bit stream, and the like. However, if mentioned, non-volatile computer-readable storage media explicitly excludes media such as energy, carrier signals, electromagnetic waves, and signals per se.

[0263] Конкретные подробности предоставляются в вышеприведенном описании для того, чтобы предоставлять полное понимание вариантов осуществления и примеров, предоставленных в настоящем документе. Тем не менее, специалисты в данной области техники должны понимать, что варианты осуществления могут осуществляться на практике без этих конкретных подробностей. Для ясности пояснения, в некоторых случаях настоящая технология может представляться как включающая в себя отдельные функциональные блоки, включающие в себя функциональные блоки, содержащие устройства, компоненты устройства, этапы или процедуры в способе, осуществленном в программном обеспечении либо в комбинациях аппаратных средств и программного обеспечения. Могут использоваться дополнительные компоненты, отличные от компонентов, показанных на чертежах и/или описанных в данном документе. Например, схемы, системы, сети, процессы и другие компоненты могут быть показаны как компоненты в форме блок-схемы, чтобы не затруднять понимание вариантов осуществления необязательными подробностями. В других случаях, широко распространенные схемы, процессы, алгоритмы, структуры и технологии могут быть показаны без необязательных подробностей, чтобы не допускать затруднения в понимании вариантов осуществления.[0263] Specific details are provided in the above description in order to provide a thorough understanding of the embodiments and examples provided herein. However, those skilled in the art will appreciate that the embodiments may be practiced without these specific details. For clarity of explanation, in some cases, the present technology may be represented as including separate functional blocks, including functional blocks containing devices, device components, steps or procedures in a method implemented in software or in combinations of hardware and software. Additional components other than those shown in the drawings and/or described herein may be used. For example, circuits, systems, networks, processes, and other components may be shown as components in block diagram form so as not to obscure the embodiments in unnecessary detail. In other instances, commonly used schemes, processes, algorithms, structures, and techniques may be shown without unnecessary detail so as not to obscure the embodiments.

[0264] Отдельные варианты осуществления могут описываться выше в качестве процесса или способа, который проиллюстрирован как блок-схема последовательности операций способа (flowchart), блок-схема последовательности операций способа (flow diagram), диаграмма потоков данных, структурная схема или блок-схема. Хотя блок-схема последовательности операций способа может описывать операции как последовательный процесс, многие операции могут выполняться параллельно или одновременно. Помимо этого, порядок операций может перекомпоновываться. Процесс завершается, когда операции выполнены, но может иметь дополнительные этапы, не включенные на чертеже. Процесс может соответствовать способу, функции, процедуре, подпрограмме, подпрограмме и т.д. Когда процесс соответствует функции, его завершение соответствует возврату функции в вызывающую функцию или основную функцию.[0264] Individual embodiments may be described above as a process or method, which is illustrated as a flowchart, flow diagram, data flow diagram, block diagram, or block diagram. While the flowchart may describe the operations as a sequential process, many of the operations may be performed in parallel or simultaneously. In addition, the order of operations can be rearranged. The process ends when the operations are completed, but may have additional steps not included in the drawing. A process may correspond to a method, a function, a procedure, a subroutine, a subroutine, and so on. When a process matches a function, its termination corresponds to the return of the function to the calling function or main function.

[0265] Процессы и способы согласно вышеописанным примерам могут реализовываться с использованием машиноисполняемых инструкций, которые сохраняются или являются иным способом доступными из машиночитаемых носителей. Такие инструкции могут включать в себя, например, инструкции и данные, которые инструктируют или иначе конфигурируют компьютер общего назначения, компьютер специального назначения или обрабатывающее устройство с возможностью выполнять определенную функцию или группу функций. Части используемых компьютерных ресурсов могут быть доступными по сети. Машиноисполняемые инструкции, например, могут представлять собой двоичные файлы, инструкции в промежуточном формате, такие как ассемблерный язык, микропрограммное обеспечение, исходный код и т.д. Примеры машиночитаемых носителей, которые могут использоваться для того, чтобы сохранять инструкции, информацию, используемую, и/или информацию, созданную в ходе способов согласно описанным примерам, включают в себя магнитные или оптические диски, флэш-память, USB-устройства, содержащие энергонезависимое запоминающее устройство, сетевые устройства хранения данных и т.д.[0265] The processes and methods of the examples described above may be implemented using computer-executable instructions that are stored on or otherwise accessible from computer-readable media. Such instructions may include, for example, instructions and data that instruct or otherwise configure a general purpose computer, special purpose computer, or processing device to perform a specific function or group of functions. Portions of the computer resources used may be available over the network. Machine-executable instructions, for example, may be binary files, instructions in an intermediate format such as assembly language, firmware, source code, and so on. Examples of computer-readable media that can be used to store instructions, information used, and/or information created during the methods of the examples described include magnetic or optical disks, flash memory, USB devices containing non-volatile storage device, network storage devices, etc.

[0266] Процессы реализации устройств и способы согласно этим раскрытиям сущности могут включать в себя аппаратные средства, программное обеспечение, микропрограммное обеспечение, промежуточное программное обеспечение, микрокод, языки описания аппаратных средств или любую комбинацию вышеозначенного и могут принимать любое множество форм-факторов. При реализации в программном обеспечении, микропрограммном обеспечении, промежуточном программном обеспечении или микрокоде, программный код или сегменты кода для того, чтобы выполнять необходимые задачи (например, компьютерный программный продукт), могут сохраняться на машиночитаемом или машиночитаемом носителе. Процессоры могут выполнять требуемые задачи. Типичные примеры форм-факторов включают в себя переносные компьютеры, смартфоны, мобильные телефоны, планшетные устройства или другие персональные компьютеры с миниатюрным форм-фактором, персональные цифровые устройства, смонтированные в стойке устройства, автономные устройства и т.д. Функциональность, описанная в данном документе, также может осуществляться в периферийных устройствах или расширительных платах. Такая функциональность также может реализовываться на схемной плате для различных микросхем или различных процессов, выполняющихся в одном устройстве, в качестве дополнительного примера.[0266] The device implementation processes and methods according to these disclosures may include hardware, software, firmware, middleware, microcode, hardware description languages, or any combination of the foregoing, and may take any of a variety of form factors. When implemented in software, firmware, middleware, or microcode, program code or code segments to perform necessary tasks (eg, a computer program product) may be stored on a computer-readable or computer-readable medium. The processors can perform the required tasks. Typical examples of form factors include laptops, smartphones, mobile phones, tablet devices or other miniature form factor personal computers, personal digital devices, rack-mounted devices, stand-alone devices, and so on. The functionality described in this document may also be implemented in peripheral devices or expansion cards. Such functionality can also be implemented on a circuit board for different chips or different processes running in the same device, as a further example.

[0267] Инструкции, среды для передачи таких инструкций, вычислительные ресурсы для их выполнения и другие структуры для поддержки таких вычислительных ресурсов представляют собой примерные средства для предоставления функций, описанных в раскрытии сущности.[0267] Instructions, media for transmitting such instructions, computing resources for executing them, and other structures for supporting such computing resources are exemplary means for providing the functions described in the disclosure.

[0268] В вышеприведенном описании, аспекты заявки описываются со ссылкой на ее конкретные варианты осуществления, но специалисты в данной области техники должны признавать, что заявка не ограничена этим. Таким образом, в то время как иллюстративные варианты осуществления заявки описываются подробно в данном документе, следует понимать, что идеи изобретения могут иными и различными способами осуществляться и использоваться, и что прилагаемая формула изобретения имеет намерение истолковываться как включающая в себя такие варьирования, за исключением ограничений посредством предшествующего уровня техники. Различные признаки и аспекты вышеописанной заявки могут использоваться отдельно или объединенно. Дополнительно, варианты осуществления могут использоваться в любом числе окружений и вариантов применения, помимо окружений и вариантов применения, описанных в данном документе, без отступления от более широкой сущности и объема подробного описания. Соответственно, подробное описание и чертежи должны рассматриваться как иллюстративные, а не ограничивающие. Для целей иллюстрации, способы описаны в конкретном порядке. Следует принимать во внимание, что в альтернативных вариантах осуществления, способы могут осуществляться в порядке, отличном от описанного порядка.[0268] In the above description, aspects of the application are described with reference to specific embodiments thereof, but those skilled in the art should recognize that the application is not limited thereto. Thus, while illustrative embodiments of the application are described in detail herein, it should be understood that the teachings of the invention may be carried out and used in other and different ways, and that the appended claims are intended to be construed as including such variations, except as limited through the prior art. Various features and aspects of the above application may be used separately or combined. Additionally, the embodiments may be used in any number of environments and applications, in addition to the environments and applications described herein, without departing from the broader spirit and scope of the detailed description. Accordingly, the detailed description and drawings are to be considered illustrative and not restrictive. For purposes of illustration, the methods are described in specific order. It should be appreciated that in alternative embodiments, the methods may be performed in an order other than the order described.

[0269] Специалисты в данной области техники должны принимать во внимание, что символы меньше ("<") и больше (">") либо терминология, используемая в данном документе, могут заменяться символы меньше или равно ("≤") и больше или равно ("≥"), соответственно, без отступления от объема этого описания.[0269] Those skilled in the art will appreciate that the less than ("<") and greater than (">") symbols or terminology used herein may be replaced by less than or equal ("≤") and greater than or equals ("≥"), respectively, without departing from the scope of this description.

[0270] Если компоненты описываются как "выполненные с возможностью" выполнять определенные операции, такая конфигурация может достигаться, например, посредством проектирования электронных схем или других аппаратных средств с возможностью выполнять операцию, посредством программирования программируемых электронных схем (например, микропроцессоров или других подходящих электронных схем) с возможностью выполнять операцию либо посредством любой комбинации вышеозначенного.[0270] If components are described as "capable" of performing certain operations, such configuration may be achieved, for example, by designing electronic circuits or other hardware with the ability to perform an operation, by programming programmable electronic circuits (e.g., microprocessors or other suitable electronic circuits ) with the ability to perform the operation or through any combination of the above.

[0271] Фраза "соединенный с" означает любой компонент, который физически соединяется с другим компонентом прямо или косвенно, и/или любой компонент, который поддерживает связь с другим компонентом (например, соединяется с другим компонентом по проводному или беспроводному соединению и/или другому подходящему интерфейсу связи) прямо или косвенно.[0271] The phrase "connected to" means any component that is physically connected to another component, directly or indirectly, and/or any component that communicates with another component (e.g., connects to another component via a wired or wireless connection and/or other appropriate communication interface) directly or indirectly.

[0272] Текст формулы изобретения или другой текст, излагающий "по меньшей мере, одно из" набора, указывает то, что один элемент набора или несколько элементов набора удовлетворяют требованию. Например, текст формулы изобретения, излагающий "по меньшей мере, одно из A и B", означает A, B или A и B.[0272] The text of the claims or other text setting out "at least one of" the set indicates that one element of the set or several elements of the set satisfy the requirement. For example, the text of the claims stating "at least one of A and B" means A, B or A and B.

[0273] Различные иллюстративные логические блоки, модули, схемы и этапы алгоритма, описанные в связи с раскрытыми в данном документе вариантами осуществления, могут реализовываться как электронные аппаратные средства, вычислительное программное обеспечение либо как комбинации вышеозначенного. Чтобы понятно иллюстрировать эту взаимозаменяемость аппаратных средств и программного обеспечения, различные иллюстративные компоненты, блоки, модули, схемы и этапы описаны выше, в общем, на основе функциональности. То, реализована эта функциональность в качестве аппаратных средств или программного обеспечения, зависит от конкретного варианта применения и проектных ограничений, накладываемых на систему в целом. Высококвалифицированные специалисты могут реализовывать описанную функциональность различными способами для каждого конкретного варианта применения, но такие решения по реализации не должны быть интерпретированы как вызывающие отступление от объема настоящей заявки.[0273] The various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computing software, or combinations of the foregoing. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of functionality. Whether this functionality is implemented as hardware or software depends on the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in a variety of ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of this application.

[0274] Технологии, описанные в данном документе, также могут реализовываться в электронных аппаратных средствах, компьютерном программном обеспечении, микропрограммном обеспечении либо в любой комбинации вышеозначенного. Такие технологии могут реализовываться в любых из множества устройств, таких как компьютеры общего назначения, переносные телефонные аппараты для беспроводной связи или устройства на интегральных схемах, имеющие несколько вариантов использования, включающих в себя вариант применения в переносных телефонных аппаратах для беспроводной связи, а также другие устройства. Любые признаки, описанные как модули или компоненты, могут реализовываться совместно в интегральном логическом устройстве или отдельно как дискретные, но имеющие возможность взаимодействовать логические устройства. При реализации в программном обеспечении, технологии могут реализовываться, по меньшей мере, частично посредством машиночитаемого носителя хранения данных, содержащего программный код, включающий в себя инструкции, которые при выполнении осуществляют один или более способов, описанных выше. Машиночитаемый носитель может формировать часть компьютерного программного продукта, который может включать в себя упаковку. Машиночитаемый носитель хранения данных могут содержать запоминающие устройства или носители хранения данных, такие как оперативное запоминающее устройство (RAM), такое как синхронное динамическое оперативное запоминающее устройство (SDRAM), постоянное запоминающее устройство (ROM), энергонезависимое оперативное запоминающее устройство (NVRAM), электрически стираемое программируемое постоянное запоминающее устройство (EEPROM), флэш-память, магнитные или оптические носители хранения данных и т.п. Дополнительно, либо альтернативно, технологии могут реализовываться, по меньшей мере, частично посредством машиночитаемой среды связи, которая переносит или передает программный код в форме инструкций или структур данных и которая может быть доступной, может считываться и/или может выполняться посредством компьютера, такой как распространяемые сигналы или волны.[0274] The technologies described herein may also be implemented in electronic hardware, computer software, firmware, or any combination of the foregoing. Such technologies may be implemented in any of a variety of devices, such as general purpose computers, wireless handsets, or integrated circuit devices, having multiple uses, including the use in wireless handsets, as well as other devices. . Any features described as modules or components may be implemented together in an integrated logic device or separately as discrete but interoperable logic devices. When implemented in software, the techniques may be implemented at least in part by a computer-readable storage medium containing program code including instructions that, when executed, perform one or more of the methods described above. The computer-readable medium may form part of a computer program product, which may include packaging. The computer readable storage medium may comprise memory devices or storage media such as random access memory (RAM), such as synchronous dynamic random access memory (SDRAM), read only memory (ROM), nonvolatile random access memory (NVRAM), electrically erasable programmable read only memory (EEPROM), flash memory, magnetic or optical storage media, and the like. Additionally or alternatively, the techniques may be implemented at least in part by a computer-readable communication medium that carries or transmits program code in the form of instructions or data structures and that can be accessed, read and/or executed by a computer, such as distributed signals or waves.

[0275] Программный код выполняться посредством процессора, который включает в себя один или более процессоров, например, один или более процессоров цифровых сигналов (DSP), микропроцессоров общего назначения, специализированных интегральных схем (ASIC), программируемых пользователем логических матриц (FPGA) или других эквивалентных интегральных или дискретных логических схем. Такой процессор может быть выполнен с возможностью осуществлять любую из технологий, описанных в этом раскрытии сущности. Процессор общего назначения может представлять собой микропроцессор, но в альтернативном варианте, процессор может представлять собой любой традиционный процессор, контроллер, микроконтроллер или конечный автомат. Процессор также может реализовываться как комбинация вычислительных устройств, к примеру, как комбинация DSP и микропроцессора, множество микропроцессоров, один или более микропроцессоров вместе с ядром DSP либо любая другая подобная конфигурация. Соответственно, термин "процессор" при использовании в данном документе может означать любую вышеприведенную структуру, любую комбинацию вышеприведенной структуры либо любую другую структуру или оборудование, подходящее для реализации технологий, описанных в данном документе. Помимо этого, в некоторых аспектах, функциональность, описанная в данном документе, может предоставляться внутри специализированных программных модулей или аппаратных модулей, выполненных с возможностью кодирования или декодирования либо встроенных в комбинированный видеокодер-декодер (кодек).[0275] Software code is executed by a processor that includes one or more processors, such as one or more digital signal processors (DSPs), general purpose microprocessors, application specific integrated circuits (ASICs), field programmable logic arrays (FPGAs), or others. equivalent integrated or discrete logic circuits. Such a processor may be configured to implement any of the technologies described in this disclosure. A general purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, such as a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors together with a DSP core, or any other such configuration. Accordingly, the term "processor" as used herein can mean any of the above structures, any combination of the above structures, or any other structure or hardware suitable for implementing the technologies described herein. In addition, in some aspects, the functionality described herein may be provided within specialized software modules or hardware modules capable of encoding or decoding, or embedded in a combined video encoder/decoder (codec).

Claims (215)

1. Способ декодирования видеоданных, при этом способ содержит этапы, на которых:1. A method for decoding video data, the method comprising the steps of: - определяют размер текущего блока видеоданных; - determine the size of the current block of video data; - определяют, на основе размера текущего блока, режим широкоугольного внутреннего прогнозирования, который следует использовать для текущего блока;determining, based on the size of the current block, a wide-angle intra prediction mode to be used for the current block; - определяют блок прогнозирования для текущего блока с использованием режима широкоугольного внутреннего прогнозирования, причем блок прогнозирования включает в себя множество внутренне прогнозированных прогнозных выборок, определенных с использованием угла режима широкоугольного внутреннего прогнозирования;determining a prediction block for the current block using a wide-angle intra prediction mode, the prediction block including a plurality of intra-predictive prediction samples determined using an angle of the wide-angle intra prediction mode; - определяют одну или более опорные выборки с использованием позиционно-зависимого комбинирования с внутренним прогнозированием (PDPC), которые являются внешними для текущего блока, для модифицирования множества внутренне прогнозированных прогнозных выборок блока прогнозирования, при этом каждая опорная PDPC-выборка из одной или более опорных PDPC-выборок определяется с использованием угла режима широкоугольного внутреннего прогнозирования относительно соответствующей внутренне прогнозированной прогнозной выборки из множества внутренне прогнозированных прогнозных выборок;one or more position-dependent intra prediction combining (PDPC) reference samples that are external to the current block are determined to modify a plurality of intra predictive prediction samples of the prediction block, each PDPC reference sample from one or more reference PDPCs -samples is determined using the angle of the wide-angle intra prediction mode with respect to the corresponding intra predictive prediction sample from the plurality of intra predictive prediction samples; - модифицируют, с использованием одной или более опорных PDPC-выборок, внутренне прогнозированную прогнозную выборку из множества внутренне прогнозированных прогнозных выборок блока прогнозирования для того, чтобы формировать модифицированную прогнозную выборку; иmodifying, using one or more PDPC reference samples, an intra predictive sample from a plurality of predictor block intra predictive samples to generate a modified predictive sample; and - восстанавливают блок на основе модифицированной прогнозной выборки и остаточного значения.- restore the block based on the modified predictive sample and the residual value. 2. Способ по п. 1, в котором определение размера текущего блока включает в себя этап, на котором определяют то, что ширина текущего блока и высота текущего блока представляют собой различные размеры.2. The method of claim 1, wherein determining the size of the current box includes determining that the width of the current box and the height of the current box are different sizes. 3. Способ по п. 1, в котором угол режима широкоугольного внутреннего прогнозирования составляет меньше -135 градусов или больше 45 градусов относительно внутренне прогнозированной прогнозной выборки.3. The method of claim 1, wherein the intra wide-angle mode angle is less than -135 degrees or greater than 45 degrees with respect to the intra-predicted prediction sample. 4. Способ по п. 1, содержащий также этап, на котором:4. The method according to claim 1, further comprising the step of: - определяют один или более весовые коэффициенты на основе координат X и Y внутренне прогнозированной прогнозной выборки, при этом модификация внутренне прогнозированной прогнозной выборки содержит этап, на котором модифицируют внутренне прогнозированную прогнозную выборку для того, чтобы формировать модифицированную прогнозную выборку на основе определенных одной или более опорных PDPC-выборок, определенных одного или более весовых коэффициентов и внутренне прогнозированной прогнозной выборки.- determining one or more weight coefficients based on the X and Y coordinates of the internally predicted predictive sample, wherein the modification of the internally predicted predictive sample comprises the step of modifying the internally predicted predictive sample in order to generate a modified predictive sample based on the determined one or more reference PDPC samples, one or more weights determined, and an internally predicted predictive sample. 5. Способ по п. 1, в котором определение одной или более опорных PDPC-выборок, которые являются внешними для текущего блока, содержит этап, на котором определяют одну или более опорные PDPC-выборки, имеющие и координату X и координату Y, которые отличаются от соответствующих координаты X и координаты Y внутренне прогнозированной прогнозной выборки в блоке прогнозирования.5. The method of claim 1, wherein determining one or more PDPC reference samples that are external to the current block comprises determining one or more PDPC reference samples having both an X coordinate and a Y coordinate that differ from the respective X coordinate and Y coordinate of the internally predicted prediction sample in the prediction block. 6. Способ по п. 1, в котором определение одной или более опорных PDPC-выборок, которые являются внешними для текущего блока, содержит этапы, на которых:6. The method of claim 1, wherein determining one or more PDPC reference samples that are external to the current block comprises: - определяют строку, которая находится выше текущего блока;- determine the line that is above the current block; - определяют координату X в определенной строке, при этом координата X в определенной строке равна координате X внутренне прогнозированной прогнозной выборки плюс координата Y внутренне прогнозированной прогнозной выборки плюс 1; и- determining the X coordinate in the determined row, wherein the X coordinate in the determined row is equal to the X coordinate of the internally predicted predictive sample plus the Y coordinate of the internally predicted predictive sample plus 1; and - определяют опорную PDPC-выборку из одной или более опорных PDPC-выборок на основе определенной строки и определенной координаты X. - determine a PDPC reference sample from one or more PDPC reference samples based on a specific row and a specific x-coordinate. 7. Способ по п. 1, в котором определение одной или более опорных PDPC-выборок, которые являются внешними для текущего блока, содержит этапы, на которых:7. The method of claim 1, wherein determining one or more PDPC reference samples that are external to the current block comprises: - определяют столбец, который находится слева от текущего блока;- define the column that is located to the left of the current block; - определяют координату Y в определенном столбце, при этом координата Y в определенном столбце равна координате Y внутренне прогнозированной прогнозной выборки плюс координата X внутренне прогнозированной прогнозной выборки плюс 1; и- determine the Y coordinate in a certain column, while the Y coordinate in a certain column is equal to the Y coordinate of the internally predicted predictive sample plus the X coordinate of the internally predicted predictive sample plus 1; and - определяют опорную PDPC-выборку из одной или более опорных PDPC-выборок на основе определенного столбца и определенной координаты Y. - determining a reference PDPC sample from one or more reference PDPC samples based on a certain column and a certain Y-coordinate. 8. Способ по п. 1, в котором определение одной или более опорных PDPC-выборок, которые являются внешними для текущего блока, содержит этапы, на которых:8. The method of claim 1, wherein determining one or more PDPC reference samples that are external to the current block comprises: - определяют строку, которая находится выше текущего блока;- 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 angle of the wide-angle intra-prediction mode with respect to the intra-predictive prediction sample; and - определяют опорную PDPC-выборку из одной или более опорных PDPC-выборок на основе определенной строки и определенной координаты X. - determine a PDPC reference sample from one or more PDPC reference samples based on a specific row and a specific x-coordinate. 9. Способ по п. 8, в котором определение координаты X в определенной строке содержит этапы, на которых:9. The method according to claim 8, in which determining the X coordinate in a certain line comprises the steps of: - определяют одно из котангенса или тангенса угла режима широкоугольного внутреннего прогнозирования; и- determining one of the cotangent or tangent of the angle of the wide-angle intra prediction mode; and - определяют координату X в определенной строке на основе одного из котангенса или тангенса угла режима широкоугольного внутреннего прогнозирования, координаты X внутренне прогнозированной прогнозной выборки и координаты Y внутренне прогнозированной прогнозной выборки.determining an X coordinate in a certain row based on one of the cotangent or tangent of the angle of the wide-angle intra prediction mode, the X coordinate of the intra predictive sample, and the Y coordinate of the intra predictive sample. 10. Способ по п. 1, в котором определение одной или более опорных PDPC-выборок, которые являются внешними для текущего блока, содержит этапы, на которых:10. The method of claim 1, wherein determining one or more PDPC reference samples that are external to the current block comprises: - определяют столбец, который находится слева от текущего блока;- define the column that is located to the left of the current block; - определяют координату Y в определенном столбце, при этом координата Y в определенном столбце основана на угле режима широкоугольного внутреннего прогнозирования; иdetermining a Y coordinate in a certain column, wherein the Y coordinate in a certain column is based on an angle of a wide-angle intra prediction mode; and - определяют опорную PDPC-выборку из одной или более опорных PDPC-выборок на основе определенного столбца и определенной координаты Y.- determining a reference PDPC sample from one or more reference PDPC samples based on a certain column and a certain Y-coordinate. 11. Способ по п. 10, в котором определение координаты Y в определенном столбце содержит этапы, на которых:11. The method of claim 10, wherein determining the Y coordinate in a specific column comprises the steps of: - определяют одно из котангенса или тангенса угла режима широкоугольного внутреннего прогнозирования; и- determining one of the cotangent or tangent of the angle of the wide-angle intra prediction mode; and - определяют координату Y в определенном столбце на основе одного из котангенса или тангенса угла режима широкоугольного внутреннего прогнозирования, координаты X внутренне прогнозированной прогнозной выборки и координаты Y внутренне прогнозированной прогнозной выборки.determining a Y coordinate in a certain column based on one of the cotangent or tangent of the angle of the wide-angle intra prediction mode, the X coordinate of the intra predictive sample, and the Y coordinate of the intra predictive sample. 12. Способ по п. 1, в котором определение одной или более опорных PDPC-выборок, которые являются внешними для текущего блока, на основе режима широкоугольного внутреннего прогнозирования содержит этапы, на которых: 12. The method of claim 1, wherein determining one or more PDPC reference samples that are external to the current block based on the wide-angle intra prediction mode comprises: - определяют набор из одной или более выборок на основе режима широкоугольного внутреннего прогнозирования; иdetermining a set of one or more samples based on the wide-angle intra prediction mode; and - выполняют, по меньшей мере, одно из интерполяции, округления со смещением или округления без смещения набора из одной или более выборок для того, чтобы формировать одну или более опорные PDPC-выборки.performing at least one of interpolation, rounding with offset, or rounding without offset of the set of one or more samples in order to generate one or more PDPC reference samples. 13. Способ по п. 1, в котором определение одной или более опорных PDPC-выборок, которые являются внешними для текущего блока, на основе режима широкоугольного внутреннего прогнозирования содержит этапы, на которых:13. The method of claim 1, wherein determining one or more PDPC reference samples that are external to the current block based on the wide-angle intra prediction mode comprises: - определяют то, что одна или более выборки, внешние для текущего блока, идентифицированного на основе режима широкоугольного внутреннего прогнозирования, не сохраняются в опорном линейном буфере; и- determining that one or more samples external to the current block identified based on the wide-angle intra prediction mode are not stored in the linear reference buffer; and - определяют одну или более опорные PDPC-выборки на основе последней опорной PDPC-выборки, сохраненной в опорном линейном буфере.one or more PDPC reference samples are determined based on the last PDPC reference sample stored in the linear reference buffer. 14. Способ по п. 1, в котором модификация внутренне прогнозированной прогнозной выборки из множества внутренне прогнозированных прогнозных выборок блока прогнозирования содержит этап, на котором модифицируют первую внутренне прогнозированную прогнозную выборку блока прогнозирования, и при этом одна или более опорные PDPC-выборки содержат первый набор из одной или более опорных PDPC-выборок, причем способ дополнительно содержит этапы, на которых: 14. The method of claim 1, wherein modifying the first intra predictive block prediction sample of a plurality of intra predictive prediction samples of the prediction block comprises modifying the first intra predictive block prediction sample, wherein the one or more reference PDPC samples comprise a first set from one or more PDPC reference samples, the method further comprising: - определяют, для второй внутренне прогнозированной прогнозной выборки блока прогнозирования, то, что, по меньшей мере, одна опорная PDPC-выборка из второго набора из одной или более опорных PDPC-выборок для второй внутренне прогнозированной прогнозной выборки не сохраняется в опорном линейном буфере; иdetermining, for the second intra predictive prediction sample of the prediction block, that at least one PDPC reference sample from a second set of one or more PDPC reference samples for the second intra predictive predictive sample is not stored in the linear reference buffer; and - выполняют одно из неприменения PDPC ко второй внутренне прогнозированной прогнозной выборке или применения PDPC только с использованием опорных PDPC-выборок, доступных в опорном линейном буфере. one of not applying the PDPC to the second internally predicted predictive sample or applying the PDPC using only the PDPC reference samples available in the linear reference buffer is performed. 15. Способ по п. 1, в котором режим широкоугольного внутреннего прогнозирования не представляет собой режим DC-, планарного, горизонтального или вертикального внутреннего прогнозирования.15. The method of claim 1, wherein the wide-angle intra prediction mode is not a DC-, planar, horizontal, or vertical intra prediction mode. 16. Способ кодирования видеоданных, при этом способ содержит этапы, на которых:16. A method for encoding video data, the method comprising the steps of: - определяют размер текущего блока видеоданных;- determine the size of the current block of video data; - определяют, на основе размера текущего блока, режим широкоугольного внутреннего прогнозирования, который следует использовать для текущего блока;determining, based on the size of the current block, a wide-angle intra prediction mode to be used for the current block; - определяют блок прогнозирования для текущего блока с использованием режима широкоугольного внутреннего прогнозирования, причем блок прогнозирования включает в себя множество внутренне прогнозированных прогнозных выборок, определенных с использованием угла режима широкоугольного внутреннего прогнозирования;determining a prediction block for the current block using a wide-angle intra prediction mode, the prediction block including a plurality of intra-predictive prediction samples determined using an angle of the wide-angle intra prediction mode; определяют одну или более опорные выборки с использованием позиционно-зависимого комбинирования с внутренним прогнозированием (PDPC), которые являются внешними для текущего блока, для модифицирования множества внутренне прогнозированных прогнозных выборок блока прогнозирования, при этом каждая опорная PDPC-выборка из одной или более опорных PDPC-выборок определяется с использованием угла режима широкоугольного внутреннего прогнозирования относительно соответствующей внутренне прогнозированной прогнозной выборки из множества внутренне прогнозированных прогнозных выборок;determining one or more reference samples using position-dependent intra-prediction combining (PDPC) that are external to the current block to modify a plurality of intra-predictive prediction samples of the prediction block, wherein each reference PDPC sample of one or more reference PDPCs is the samples are determined using the angle of the wide-angle intra prediction mode with respect to the corresponding intra predictive prediction sample of the plurality of intra predictive prediction samples; - модифицируют, с использованием одной или более опорных PDPC-выборок, внутренне прогнозированную прогнозную выборку из множества внутренне прогнозированных прогнозных выборок блока прогнозирования для того, чтобы формировать модифицированную прогнозную выборку; modifying, using one or more PDPC reference samples, an intra predictive sample from a plurality of predictor block intra predictive samples to generate a modified predictive sample; -определяют остаточное значение для остаточного блока на основе модифицированной прогнозной выборки и значения выборки в текущем блоке; и- determine the residual value for the residual block based on the modified predictive sample and the value of the sample in the current block; and - передают в служебных сигналах информацию, указывающую остаточное значение.- transmit in service signals information indicating the residual value. 17. Способ по п. 16, в котором определение размера текущего блока включает в себя этап, на котором определяют то, что ширина текущего блока и высота текущего блока представляют собой различные размеры.17. The method of claim 16, wherein determining the size of the current box includes determining that the width of the current box and the height of the current box are different sizes. 18. Способ по п. 16, в котором угол режима широкоугольного внутреннего прогнозирования составляет меньше -135 градусов или больше 45 градусов относительно внутренне прогнозированной прогнозной выборки.18. The method of claim 16, wherein the wide-angle intra prediction mode angle is less than -135 degrees or greater than 45 degrees with respect to the intra-predicted prediction sample. 19. Способ по п. 16, содержащий также этап, на котором:19. The method of claim 16, further comprising the step of: - определяют один или более весовые коэффициенты на основе координат X и Y внутренне прогнозированной прогнозной выборки, при этом модификация внутренне прогнозированной прогнозной выборки содержит этап, на котором модифицируют внутренне прогнозированную прогнозную выборку для того, чтобы формировать модифицированную прогнозную выборку на основе определенных одной или более опорных PDPC-выборок, определенных одного или более весовых коэффициентов и внутренне прогнозированной прогнозной выборки.- determining one or more weight coefficients based on the X and Y coordinates of the internally predicted predictive sample, wherein the modification of the internally predicted predictive sample comprises the step of modifying the internally predicted predictive sample in order to generate a modified predictive sample based on the determined one or more reference PDPC samples, one or more weights determined, and an internally predicted predictive sample. 20. Способ по п. 16, в котором определение одной или более опорных PDPC-выборок, которые являются внешними для текущего блока, содержит этап, на котором определяют одну или более опорные PDPC-выборки, имеющие и координату X и координату Y, которые отличаются от соответствующих координаты X и координаты Y внутренне прогнозированной прогнозной выборки в блоке прогнозирования.20. The method of claim 16, wherein determining one or more PDPC reference samples that are external to the current block comprises determining one or more PDPC reference samples having both an X coordinate and a Y coordinate that differ from the respective X coordinate and Y coordinate of the internally predicted prediction sample in the prediction block. 21. Способ по п. 16, в котором определение одной или более опорных PDPC-выборок, которые являются внешними для текущего блока, содержит этапы, на которых:21. The method of claim 16, wherein determining one or more PDPC reference samples that are external to the current block comprises: - определяют строку, которая находится выше текущего блока;- determine the line that is above the current block; - определяют координату X в определенной строке, при этом координата X в определенной строке равна координате X внутренне прогнозированной прогнозной выборки плюс координата Y внутренне прогнозированной прогнозной выборки плюс 1; и - determining the X coordinate in the determined row, wherein the X coordinate in the determined row is equal to the X coordinate of the internally predicted predictive sample plus the Y coordinate of the internally predicted predictive sample plus 1; and - определяют опорную PDPC-выборку из одной или более опорных PDPC-выборок на основе определенной строки и определенной координаты X.- determine a PDPC reference sample from one or more PDPC reference samples based on a specific row and a specific x-coordinate. 22. Способ по п. 16, в котором определение одной или более опорных PDPC-выборок, которые являются внешними для текущего блока, содержит этапы, на которых:22. The method of claim 16, wherein determining one or more PDPC reference samples that are external to the current block comprises: - определяют столбец, который находится слева от текущего блока;- define the column that is located to the left of the current block; - определяют координату Y в определенном столбце, при этом координата Y в определенном столбце равна координате Y внутренне прогнозированной прогнозной выборки плюс координата X внутренне прогнозированной прогнозной выборки плюс 1; и- determine the Y coordinate in a certain column, while the Y coordinate in a certain column is equal to the Y coordinate of the internally predicted predictive sample plus the X coordinate of the internally predicted predictive sample plus 1; and - определяют опорную PDPC-выборку из одной или более опорных PDPC-выборок на основе определенного столбца и определенной координаты Y.- determining a reference PDPC sample from one or more reference PDPC samples based on a certain column and a certain Y-coordinate. 23. Способ по п. 16, в котором определение одной или более опорных PDPC-выборок, которые являются внешними для текущего блока, содержит этапы, на которых:23. The method of claim 16, wherein determining one or more PDPC reference samples that are external to the current block comprises: - определяют строку, которая находится выше текущего блока;- 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 angle of the wide-angle intra-prediction mode with respect to the intra-predictive prediction sample; and - определяют опорную PDPC-выборку из одной или более опорных PDPC-выборок на основе определенной строки и определенной координаты X.- determine a PDPC reference sample from one or more PDPC reference samples based on a specific row and a specific x-coordinate. 24. Способ по п. 23, в котором определение координаты X в определенной строке содержит этапы, на которых:24. The method according to claim 23, wherein determining the X coordinate in a particular row comprises the steps of: - определяют одно из котангенса или тангенса угла режима широкоугольного внутреннего прогнозирования; и- determining one of the cotangent or tangent of the angle of the wide-angle intra prediction mode; and - определяют координату X в определенной строке на основе одного из котангенса или тангенса угла режима широкоугольного внутреннего прогнозирования, координаты X внутренне прогнозированной прогнозной выборки и координаты Y внутренне прогнозированной прогнозной выборки.determining an X coordinate in a certain row based on one of the cotangent or tangent of the angle of the wide-angle intra prediction mode, the X coordinate of the intra predictive sample, and the Y coordinate of the intra predictive sample. 25. Способ по п. 16, в котором определение одной или более опорных PDPC-выборок, которые являются внешними для текущего блока, содержит этапы, на которых:25. The method of claim 16, wherein determining one or more PDPC reference samples that are external to the current block comprises: - определяют столбец, который находится слева от текущего блока;- define the column that is located to the left of the current block; - определяют координату Y в определенном столбце, при этом координата Y в определенном столбце основана на угле режима широкоугольного внутреннего прогнозирования; иdetermining a Y coordinate in a certain column, wherein the Y coordinate in a certain column is based on an angle of a wide-angle intra prediction mode; and - определяют опорную PDPC-выборку из одной или более опорных PDPC-выборок на основе определенного столбца и определенной координаты Y.- determining a reference PDPC sample from one or more reference PDPC samples based on a certain column and a certain Y-coordinate. 26. Способ по п. 25, в котором определение координаты Y в определенном столбце содержит этапы, на которых:26. The method of claim 25, wherein determining the Y coordinate in a specific column comprises the steps of: - определяют одно из котангенса или тангенса угла режима широкоугольного внутреннего прогнозирования; и- determining one of the cotangent or tangent of the angle of the wide-angle intra prediction mode; and - определяют координату Y в определенном столбце на основе одного из котангенса или тангенса угла режима широкоугольного внутреннего прогнозирования, координаты X внутренне прогнозированной прогнозной выборки и координаты Y внутренне прогнозированной прогнозной выборки.determining a Y coordinate in a certain column based on one of the cotangent or tangent of the angle of the wide-angle intra prediction mode, the X coordinate of the intra predictive sample, and the Y coordinate of the intra predictive sample. 27. Способ по п. 16, в котором определение одной или более опорных PDPC-выборок, которые являются внешними для текущего блока, на основе режима широкоугольного внутреннего прогнозирования содержит этапы, на которых:27. The method of claim 16, wherein determining one or more PDPC reference samples that are external to the current block based on the wide-angle intra prediction mode comprises: - определяют набор из одной или более выборок на основе режима широкоугольного внутреннего прогнозирования; иdetermining a set of one or more samples based on the wide-angle intra prediction mode; and - выполняют, по меньшей мере, одно из интерполяции, округления со смещением или округления без смещения набора из одной или более выборок для того, чтобы формировать одну или более опорные PDPC-выборки.performing at least one of interpolation, rounding with offset, or rounding without offset of the set of one or more samples in order to generate one or more PDPC reference samples. 28. Способ по п. 16, в котором определение одной или более опорных PDPC-выборок, которые являются внешними для текущего блока, на основе режима широкоугольного внутреннего прогнозирования содержит этапы, на которых:28. The method of claim 16, wherein determining one or more PDPC reference samples that are external to the current block based on the wide-angle intra prediction mode comprises: - определяют то, что одна или более выборки, внешние для текущего блока, идентифицированного на основе режима широкоугольного внутреннего прогнозирования, не сохраняются в опорном линейном буфере; и- determining that one or more samples external to the current block identified based on the wide-angle intra prediction mode are not stored in the linear reference buffer; and - определяют одну или более опорные PDPC-выборки на основе последней опорной PDPC-выборки, сохраненной в опорном линейном буфере.one or more PDPC reference samples are determined based on the last PDPC reference sample stored in the linear reference buffer. 29. Способ по п. 16, в котором модификация внутренне прогнозированной прогнозной выборки из множества внутренне прогнозированных прогнозных выборок блока прогнозирования содержит этап, на котором модифицируют первую внутренне прогнозированную прогнозную выборку блока прогнозирования, и при этом одна или более опорные PDPC-выборки содержат первый набор из одной или более опорных PDPC-выборок, причем способ дополнительно содержит этапы, на которых:29. The method of claim 16, wherein modifying a first prediction block intra predictive sample of a plurality of intra predictive prediction samples of the prediction block comprises modifying the first intra predictive prediction sample of the prediction block, wherein the one or more reference PDPC samples comprise a first set from one or more PDPC reference samples, the method further comprising: - определяют, для второй внутренне прогнозированной прогнозной выборки блока прогнозирования, то, что, по меньшей мере, одна опорная PDPC-выборка из второго набора из одной или более опорных PDPC-выборок для второй внутренне прогнозированной прогнозной выборки не сохраняется в опорном линейном буфере; иdetermining, for the second intra predictive prediction sample of the prediction block, that at least one PDPC reference sample from a second set of one or more PDPC reference samples for the second intra predictive predictive sample is not stored in the linear reference buffer; and - выполняют одно из неприменения PDPC ко второй внутренне прогнозированной прогнозной выборке или применения PDPC только с использованием опорных PDPC-выборок, доступных в опорном линейном буфере.one of not applying the PDPC to the second internally predicted predictive sample or applying the PDPC using only the PDPC reference samples available in the linear reference buffer is performed. 30. Способ по п. 16, в котором режим широкоугольного внутреннего прогнозирования не представляет собой режим DC-, планарного, горизонтального или вертикального внутреннего прогнозирования.30. The method of claim 16, wherein the wide-angle intra prediction mode is not a DC-, planar, horizontal, or vertical intra prediction mode. 31. Устройство для декодирования видеоданных, при этом устройство содержит:31. Device for decoding video data, wherein the device contains: - запоминающее устройство, выполненное с возможностью сохранять один или более блоки прогнозирования; иa storage device configured to store one or more prediction blocks; and - видеодекодер, содержащий, по меньшей мере, одну из фиксированной функциональной или программируемой схемы, при этом видеодекодер выполнен с возможностью:- a video decoder comprising at least one of a fixed functional or programmable circuit, wherein the video decoder is configured to: - определять размер текущего блока видеоданных;- determine the size of the current block of video data; - определять, на основе размера текущего блока, режим широкоугольного внутреннего прогнозирования, который следует использовать для текущего блока;- determine, based on the size of the current block, the wide-angle intra prediction mode to be used for the current block; - определять блок прогнозирования для текущего блока с использованием режима широкоугольного внутреннего прогнозирования, причем блок прогнозирования включает в себя множество внутренне прогнозированных прогнозных выборок, определенных с использованием угла режима широкоугольного внутреннего прогнозирования;determining a prediction block for the current block using the wide-angle intra prediction mode, the prediction block including a plurality of intra-predictive prediction samples determined using the angle of the wide-angle intra prediction mode; определять одну или более опорные выборки с использованием позиционно-зависимого комбинирования с внутренним прогнозированием (PDPC), которые являются внешними для текущего блока, для модифицирования множества внутренне прогнозированных прогнозных выборок блока прогнозирования, при этом каждая опорная PDPC-выборка из одной или более опорных PDPC-выборок определяется с использованием угла режима широкоугольного внутреннего прогнозирования относительно соответствующей внутренне прогнозированной прогнозной выборки из множества внутренне прогнозированных прогнозных выборок;determine one or more reference samples using position-dependent intra-prediction combining (PDPC) that are external to the current block to modify a plurality of intra-predictive prediction samples of the prediction block, where each reference PDPC sample of one or more reference PDPCs is the samples are determined using the angle of the wide-angle intra prediction mode with respect to the corresponding intra predictive prediction sample of the plurality of intra predictive prediction samples; - модифицировать, с использованием одной или более опорных PDPC-выборок, внутренне прогнозированную прогнозную выборку из множества внутренне прогнозированных прогнозных выборок блока прогнозирования для того, чтобы формировать модифицированную прогнозную выборку; иmodifying, using one or more PDPC reference samples, an intra predictive sample from a plurality of predictor block intra predictive samples to generate a modified predictive sample; and - восстанавливать блок на основе модифицированной прогнозной выборки и остаточного значения.- restore the block based on the modified predictive sample and the residual value. 32. Устройство по п. 31, в котором определение размера текущего блока включает в себя определение того, что ширина текущего блока и высота текущего блока представляют собой различные размеры.32. The apparatus of claim 31, wherein determining the size of the current block includes determining that the width of the current block and the height of the current block are different sizes. 33. Устройство по п. 31, в котором угол режима широкоугольного внутреннего прогнозирования составляет меньше -135 градусов или больше 45 градусов относительно внутренне прогнозированной прогнозной выборки.33. The apparatus of claim 31, wherein the intra-prediction wide-angle mode angle is less than -135 degrees or greater than 45 degrees with respect to the intra-predicted prediction sample. 34. Устройство по п. 31, в котором видеодекодер выполнен с возможностью:34. The apparatus of claim 31, wherein the video decoder is configured to: - определять один или более весовые коэффициентыв на основе координат X и Y внутренне прогнозированной прогнозной выборки, при этом модификация внутренне прогнозированной прогнозной выборки содержит модификацию внутренне прогнозированной прогнозной выборки для того, чтобы формировать модифицированную прогнозную выборку на основе определенных одной или более опорных PDPC-выборок, определенных одного или более весовых коэффициентов и внутренне прогнозированной прогнозной выборки.- determine one or more weights based on the X and Y coordinates of the internally predicted predictive sample, wherein the modification of the internally predicted predictive sample comprises modifying the internally predicted predictive sample in order to generate a modified predictive sample based on the determined one or more PDPC reference samples, the determined one or more weights; and the internally predicted prediction sample. 35. Устройство по п. 31, в котором определение одной или более опорных PDPC-выборок, которые являются внешними для текущего блока, содержит определение одной или более опорных PDPC-выборок, имеющих и координату X и координату Y, которые отличаются от соответствующих координаты X и координаты Y внутренне прогнозированной прогнозной выборки в блоке прогнозирования.35. The apparatus of claim 31, wherein determining one or more PDPC reference samples that are external to the current block comprises defining one or more PDPC reference samples having both an X coordinate and a Y coordinate that differ from the corresponding X coordinate. and the Y coordinates of the internally predicted prediction sample in the prediction block. 36. Устройство по п. 31, в котором определение одной или более опорных PDPC-выборок, которые являются внешними для текущего блока, содержит:36. The apparatus of claim 31, wherein determining one or more PDPC reference samples that are external to the current block comprises: - определение строки, которая находится выше текущего блока;- definition of the line that is above the current block; - определение координаты X в определенной строке, при этом координата X в определенной строке равна координате X внутренне прогнозированной прогнозной выборки плюс координата Y внутренне прогнозированной прогнозной выборки плюс 1; и- determining the x-coordinate in the specific row, wherein the x-coordinate in the specific row is equal to the x-coordinate of the internally predicted predictive sample plus the y-coordinate of the internally predicted predictive sample plus 1; and - определение опорной PDPC-выборки из одной или более опорных PDPC-выборок на основе определенной строки и определенной координаты X.- determining a PDPC reference sample from one or more PDPC reference samples based on a specific row and a specific x-coordinate. 37. Устройство по п. 31, в котором определение одной или более опорных PDPC-выборок, которые являются внешними для текущего блока, содержит:37. The apparatus of claim 31, wherein determining one or more PDPC reference samples that are external to the current block comprises: - определение столбца, который находится слева от текущего блока;- definition of the column that is located to the left of the current block; - определение координаты Y в определенном столбце, при этом координата Y в определенном столбце равна координате Y внутренне прогнозированной прогнозной выборки плюс координата X внутренне прогнозированной прогнозной выборки плюс 1; и- determining a Y-coordinate in a certain column, wherein the Y-coordinate in a certain column is equal to the Y-coordinate of the internally predicted predictive sample plus the X-coordinate of the internally predicted predictive sample plus 1; and - определение опорной PDPC-выборки из одной или более опорных PDPC-выборок на основе определенного столбца и определенной координаты Y.- determining a PDPC reference sample from one or more PDPC reference samples based on a specific column and a specific Y coordinate. 38. Устройство по п. 31, в котором определение одной или более опорных PDPC-выборок, которые являются внешними для текущего блока, содержит:38. The apparatus of claim 31, wherein determining one or more PDPC reference samples that are external to the current block comprises: - определение строки, которая находится выше текущего блока;- definition of the line that is above the current block; - определение координаты X в определенной строке, при этом координата X в определенной строке основана на угле режима широкоугольного внутреннего прогнозирования относительно внутренне прогнозированной прогнозной выборки; и - determining an X coordinate in a certain line, wherein the X coordinate in a certain line is based on the angle of the wide-angle intra-prediction mode relative to the internal-predicted prediction sample; and - определение опорной PDPC-выборки из одной или более опорных PDPC-выборок на основе определенной строки и определенной координаты X.- determining a PDPC reference sample from one or more PDPC reference samples based on a specific row and a specific x-coordinate. 39. Устройство по п. 38, в котором определение координаты X в определенной строке содержит:39. The device according to claim 38, in which the definition of the X coordinate in a certain line contains: - определение одного из котангенса или тангенса угла режима широкоугольного внутреннего прогнозирования; и- determining one of the cotangent or tangent of the angle of the wide-angle indoor prediction mode; and - определение координаты X в определенной строке на основе одного из котангенса или тангенса угла режима широкоугольного внутреннего прогнозирования, координаты X внутренне прогнозированной прогнозной выборки и координаты Y внутренне прогнозированной прогнозной выборки.- determining an X coordinate in a certain row based on one of the cotangent or tangent of the angle of the wide-angle intra prediction mode, the X coordinate of the intra predictive sample, and the Y coordinate of the intra predictive sample. 40. Устройство по п. 31, в котором определение одной или более опорных PDPC-выборок, которые являются внешними для текущего блока, содержит:40. The apparatus of claim 31, wherein determining one or more PDPC reference samples that are external to the current block comprises: - определение столбца, который находится слева от текущего блока;- definition of the column that is located to the left of the current block; - определение координаты Y в определенном столбце, при этом координата Y в определенном столбце основана на угле режима широкоугольного внутреннего прогнозирования; и- determining a Y coordinate in a certain column, wherein the Y coordinate in a certain column is based on the angle of the wide-angle intra prediction mode; and - определение опорной PDPC-выборки из одной или более опорных PDPC-выборок на основе определенного столбца и определенной координаты Y.- determining a PDPC reference sample from one or more PDPC reference samples based on a specific column and a specific Y coordinate. 41. Устройство по п. 40, в котором определение координаты Y в определенном столбце содержит:41. The device according to claim 40, in which the definition of the Y coordinate in a certain column contains: - определение одного из котангенса или тангенса угла режима широкоугольного внутреннего прогнозирования; и- determining one of the cotangent or tangent of the angle of the wide-angle indoor prediction mode; and - определение координаты Y в определенном столбце на основе одного из котангенса или тангенса угла режима широкоугольного внутреннего прогнозирования, координаты X внутренне прогнозированной прогнозной выборки и координаты Y внутренне прогнозированной прогнозной выборки.- determining the Y coordinate in a specific column based on one of the cotangent or tangent of the angle of the wide-angle intra prediction mode, the x-coordinate of the intra-predictive prediction sample, and the Y-coordinate of the intra-predictive prediction sample. 42. Устройство по п. 31, в котором определение одной или более опорных PDPC-выборок, которые являются внешними для текущего блока, на основе режима широкоугольного внутреннего прогнозирования содержит:42. The apparatus of claim 31, wherein determining one or more PDPC reference samples that are external to the current block based on the wide-angle intra prediction mode comprises: - определение набора из одной или более выборок на основе режима широкоугольного внутреннего прогнозирования; и- determining a set of one or more samples based on the wide-angle intra prediction mode; and - по меньшей мере, одно из интерполяции, округления со смещением или округления без смещения набора из одной или более выборок для того, чтобы формировать одну или более опорные PDPC-выборки.at least one of interpolation, rounding with offset, or rounding without offset of a set of one or more samples in order to generate one or more PDPC reference samples. 43. Устройство по п. 31, в котором определение одной или более опорных PDPC-выборок, которые являются внешними для текущего блока, на основе режима широкоугольного внутреннего прогнозирования содержит:43. The apparatus of claim 31, wherein determining one or more PDPC reference samples that are external to the current block based on the wide-angle intra prediction mode comprises: - определение того, что одна или более выборки, внешние для текущего блока, идентифицированного на основе режима широкоугольного внутреннего прогнозирования, не сохраняются в опорном линейном буфере; и- determining that one or more samples external to the current block identified based on the wide-angle intra prediction mode are not stored in the linear reference buffer; and - определение одной или более опорных PDPC-выборок на основе последней опорной PDPC-выборки, сохраненной в опорном линейном буфере.- determining one or more PDPC reference samples based on the last PDPC reference sample stored in the linear reference buffer. 44. Устройство по п. 31, в котором модификация внутренне прогнозированной прогнозной выборки из множества внутренне прогнозированных прогнозных выборок блока прогнозирования содержит модификацию первой внутренне прогнозированной прогнозной выборки блока прогнозирования, при этом одна или более опорные PDPC-выборки содержат первый набор из одной или более опорных PDPC-выборок, и при этом видеодекодер выполнен с возможностью:44. The apparatus of claim 31, wherein modifying the intra predictive prediction sample of a plurality of intra predictive prediction samples of the prediction block comprises modifying the first intra predictive prediction sample of the prediction block, wherein the one or more reference PDPC samples comprise a first set of one or more reference PDPC samples, and the video decoder is configured to: - определять, для второй внутренне прогнозированной прогнозной выборки блока прогнозирования, что, по меньшей мере, одна опорная PDPC-выборка из второго набора из одной или более опорных PDPC-выборок для второй внутренне прогнозированной прогнозной выборки не сохраняется в опорном линейном буфере; и- determine, for the second intra predictive prediction sample of the prediction block, that at least one PDPC reference sample from the second set of one or more PDPC reference samples for the second intra predictive predictive sample is not stored in the linear reference buffer; and - выполнять одно из неприменения PDPC ко второй внутренне прогнозированной прогнозной выборке или применения PDPC только с использованием опорных PDPC-выборок, доступных в опорном линейном буфере.- perform one of not applying the PDPC to the second internally predicted predictive sample, or applying the PDPC only using the PDPC reference samples available in the linear reference buffer. 45. Устройство по п. 31, в котором режим широкоугольного внутреннего прогнозирования не представляет собой режим DC-, планарного, горизонтального или вертикального внутреннего прогнозирования.45. The apparatus of claim 31, wherein the wide-angle intra prediction mode is not a DC-, planar, horizontal, or vertical intra prediction mode. 46. Устройство по п. 31, содержащее также дисплей, выполненный с возможностью отображать текущий блок.46. The apparatus of claim 31, further comprising a display configured to display the current block. 47. Устройство по п. 31, при этом устройство содержит одно или более из камеры, компьютера, мобильного устройства, широковещательного приемного устройства или абонентской приставки.47. The apparatus of claim 31, wherein the apparatus comprises one or more of a camera, a computer, a mobile device, a broadcast receiver, or a set-top box. 48. Устройство кодирования видеоданных, при этом устройство содержит:48. Device for encoding video data, wherein the device contains: - запоминающее устройство, выполненное с возможностью сохранять один или более блоки прогнозирования; иa storage device configured to store one or more prediction blocks; and - видеокодер, содержащий, по меньшей мере, одну из фиксированной функциональной или программируемой схемы, при этом видеокодер выполнен с возможностью:- a video encoder comprising at least one of a fixed functional or programmable circuit, wherein the video encoder is configured to: - определять размер текущего блока видеоданных; - determine the size of the current block of video data; - определять, на основе размера текущего блока, режим широкоугольного внутреннего прогнозирования, который следует использовать для текущего блока;- determine, based on the size of the current block, the wide-angle intra prediction mode to be used for the current block; - определять блок прогнозирования для текущего блока с использованием режима широкоугольного внутреннего прогнозирования, причем блок прогнозирования включает в себя множество внутренне прогнозированных прогнозных выборок, определенных с использованием угла режима широкоугольного внутреннего прогнозирования;determining a prediction block for the current block using the wide-angle intra prediction mode, the prediction block including a plurality of intra-predictive prediction samples determined using the angle of the wide-angle intra prediction mode; определять одну или более опорные выборки с использованием позиционно-зависимого комбинирования с внутренним прогнозированием (PDPC), которые являются внешними для текущего блока, для модифицирования множества внутренне прогнозированных прогнозных выборок блока прогнозирования, при этом каждая опорная PDPC-выборка из одной или более опорных PDPC-выборок определяется с использованием угла режима широкоугольного внутреннего прогнозирования относительно соответствующей внутренне прогнозированной прогнозной выборки из множества внутренне прогнозированных прогнозных выборок;determine one or more reference samples using position-dependent intra-prediction combining (PDPC) that are external to the current block to modify a plurality of intra-predictive prediction samples of the prediction block, where each reference PDPC sample of one or more reference PDPCs is the samples are determined using the angle of the wide-angle intra prediction mode with respect to the corresponding intra predictive prediction sample of the plurality of intra predictive prediction samples; - модифицировать, с использованием одной или более опорных PDPC-выборок, внутренне прогнозированную прогнозную выборку из множества внутренне прогнозированных прогнозных выборок блока прогнозирования для того, чтобы формировать модифицированную прогнозную выборку; иmodifying, using one or more PDPC reference samples, an intra predictive sample from a plurality of predictor block intra predictive samples to generate a modified predictive sample; and - определять остаточное значение для остаточного блока на основе модифицированной прогнозной выборки и выборочного значения в текущем блоке; и- determine the residual value for the residual block based on the modified predictive sample and the sample value in the current block; and - передавать в служебных сигналах информацию, указывающую остаточное значение.- transmit information indicating the residual value in service signals. 49. Устройство по п. 48, в котором определение размера текущего блока включает в себя определение того, что ширина текущего блока и высота текущего блока представляют собой различные размеры.49. The apparatus of claim 48, wherein determining the size of the current block includes determining that the width of the current block and the height of the current block are different sizes. 50. Устройство по п. 48, в котором угол режима широкоугольного внутреннего прогнозирования составляет меньше -135 градусов или больше 45 градусов относительно внутренне прогнозированной прогнозной выборки.50. The apparatus of claim 48, wherein the intra-prediction wide-angle mode angle is less than -135 degrees or greater than 45 degrees with respect to the intra-predicted prediction sample. 51. Устройство по п. 48, в котором видеокодер выполнен с возможностью:51. The apparatus of claim 48, wherein the video encoder is configured to: - определять один или более весовые коэффициенты на основе координат X и Y внутренне прогнозированной прогнозной выборки, при этом модификация внутренне прогнозированной прогнозной выборки содержит модификацию внутренне прогнозированной прогнозной выборки для того, чтобы формировать модифицированную прогнозную выборку на основе определенных одной или более опорных PDPC-выборок, определенных одного или более весовых коэффициентов и внутренне прогнозированной прогнозной выборки.- determine one or more weights based on the X and Y coordinates of the internally predicted predictive sample, wherein the modification of the internally predicted predictive sample comprises modifying the internally predicted predictive sample in order to generate a modified predictive sample based on the determined one or more reference PDPC samples, the determined one or more weights; and the internally predicted prediction sample. 52. Устройство по п. 48, в котором определение одной или более опорных PDPC-выборок, которые являются внешними для текущего блока, содержит определение одной или более опорных PDPC-выборок, имеющих и координату X и координату Y, которые отличаются от соответствующих координаты X и координаты Y внутренне прогнозированной прогнозной выборки в блоке прогнозирования.52. The apparatus of claim 48, wherein determining one or more PDPC reference samples that are external to the current block comprises defining one or more PDPC reference samples having both an X coordinate and a Y coordinate that differ from the corresponding X coordinate. and the Y coordinates of the internally predicted prediction sample in the prediction block. 53. Устройство по п. 48, в котором определение одной или более опорных PDPC-выборок, которые являются внешними для текущего блока, содержит:53. The apparatus of claim 48, wherein determining one or more PDPC reference samples that are external to the current block comprises: - определение строки, которая находится выше текущего блока;- definition of the line that is above the current block; - определение координаты X в определенной строке, при этом координата X в определенной строке равна координате X внутренне прогнозированной прогнозной выборки плюс координата Y внутренне прогнозированной прогнозной выборки плюс 1; и- determining the x-coordinate in the specific row, wherein the x-coordinate in the specific row is equal to the x-coordinate of the internally predicted predictive sample plus the y-coordinate of the internally predicted predictive sample plus 1; and - определение опорной PDPC-выборки из одной или более опорных PDPC-выборок на основе определенной строки и определенной координаты X.- determining a PDPC reference sample from one or more PDPC reference samples based on a specific row and a specific x-coordinate. 54. Устройство по п. 48, в котором определение одной или более опорных PDPC-выборок, которые являются внешними для текущего блока, содержит:54. The apparatus of claim 48, wherein determining one or more PDPC reference samples that are external to the current block comprises: - определение столбца, который находится слева от текущего блока;- definition of the column that is located to the left of the current block; - определение координаты Y в определенном столбце, при этом координата Y в определенном столбце равна координате Y внутренне прогнозированной прогнозной выборки плюс координата X внутренне прогнозированной прогнозной выборки плюс 1; и- determining a Y-coordinate in a certain column, wherein the Y-coordinate in a certain column is equal to the Y-coordinate of the internally predicted predictive sample plus the X-coordinate of the internally predicted predictive sample plus 1; and - определение опорной PDPC-выборки из одной или более опорных PDPC-выборок на основе определенного столбца и определенной координаты Y.- determining a PDPC reference sample from one or more PDPC reference samples based on a specific column and a specific Y coordinate. 55. Устройство по п. 48, в котором определение одной или более опорных PDPC-выборок, которые являются внешними для текущего блока, содержит:55. The apparatus of claim 48, wherein determining one or more PDPC reference samples that are external to the current block comprises: - определение строки, которая находится выше текущего блока;- definition of the line that is above the current block; - определение координаты X в определенной строке, при этом координата X в определенной строке основана на угле режима широкоугольного внутреннего прогнозирования относительно внутренне прогнозированной прогнозной выборки; и - determining an X coordinate in a certain line, wherein the X coordinate in a certain line is based on the angle of the wide-angle intra-prediction mode relative to the internal-predicted prediction sample; and - определение опорной PDPC-выборки из одной или более опорных PDPC-выборок на основе определенной строки и определенной координаты X.- determining a PDPC reference sample from one or more PDPC reference samples based on a specific row and a specific x-coordinate. 56. Устройство по п. 55, в котором определение координаты X в определенной строке содержит:56. The device according to claim 55, in which the definition of the X coordinate in a certain line contains: - определение одного из котангенса или тангенса угла режима широкоугольного внутреннего прогнозирования; и- determining one of the cotangent or tangent of the angle of the wide-angle indoor prediction mode; and - определение координаты X в определенной строке на основе одного из котангенса или тангенса угла режима широкоугольного внутреннего прогнозирования, координаты X внутренне прогнозированной прогнозной выборки и координаты Y внутренне прогнозированной прогнозной выборки.- determining an X coordinate in a certain row based on one of the cotangent or tangent of the angle of the wide-angle intra prediction mode, the X coordinate of the intra predictive sample, and the Y coordinate of the intra predictive sample. 57. Устройство по п. 48, в котором определение одной или более опорных PDPC-выборок, которые являются внешними для текущего блока, содержит:57. The apparatus of claim 48, wherein determining one or more PDPC reference samples that are external to the current block comprises: - определение столбца, который находится слева от текущего блока;- definition of the column that is located to the left of the current block; - определение координаты Y в определенном столбце, при этом координата Y в определенном столбце основана на угле режима широкоугольного внутреннего прогнозирования; и- determining a Y coordinate in a certain column, wherein the Y coordinate in a certain column is based on the angle of the wide-angle intra prediction mode; and - определение опорной PDPC-выборки из одной или более опорных PDPC-выборок на основе определенного столбца и определенной координаты Y.- determining a PDPC reference sample from one or more PDPC reference samples based on a specific column and a specific Y coordinate. 58. Устройство по п. 57, в котором определение координаты Y в определенном столбце содержит:58. The device according to claim 57, in which the definition of the Y coordinate in a certain column contains: - определение одного из котангенса или тангенса угла режима широкоугольного внутреннего прогнозирования; и- determining one of the cotangent or tangent of the angle of the wide-angle indoor prediction mode; and - определение координаты Y в определенном столбце на основе одного из котангенса или тангенса угла режима широкоугольного внутреннего прогнозирования, координаты X внутренне прогнозированной прогнозной выборки и координаты Y внутренне прогнозированной прогнозной выборки.- determining the Y coordinate in a specific column based on one of the cotangent or tangent of the angle of the wide-angle intra prediction mode, the x-coordinate of the intra-predictive prediction sample, and the Y-coordinate of the intra-predictive prediction sample. 59. Устройство по п. 48, в котором определение одной или более опорных PDPC-выборок, которые являются внешними для текущего блока, на основе режима широкоугольного внутреннего прогнозирования содержит:59. The apparatus of claim 48, wherein determining one or more PDPC reference samples that are external to the current block based on the wide-angle intra prediction mode comprises: - определение набора из одной или более выборок на основе режима широкоугольного внутреннего прогнозирования; и- determining a set of one or more samples based on the wide-angle intra prediction mode; and - по меньшей мере, одно из интерполяции, округления со смещением или округления без смещения набора из одной или более выборок для того, чтобы формировать одну или более опорные PDPC-выборки.at least one of interpolation, rounding with offset, or rounding without offset of a set of one or more samples in order to generate one or more PDPC reference samples. 60. Устройство по п. 48, в котором определение одной или более опорных PDPC-выборок, которые являются внешними для текущего блока, на основе режима широкоугольного внутреннего прогнозирования содержит:60. The apparatus of claim 48, wherein determining one or more PDPC reference samples that are external to the current block based on the wide-angle intra prediction mode comprises: - определение того, что одна или более выборки, внешние для текущего блока, идентифицированного на основе режима широкоугольного внутреннего прогнозирования, не сохраняются в опорном линейном буфере; и- determining that one or more samples external to the current block identified based on the wide-angle intra prediction mode are not stored in the linear reference buffer; and - определение одной или более опорных PDPC-выборок на основе последней опорной PDPC-выборки, сохраненной в опорном линейном буфере.- determining one or more PDPC reference samples based on the last PDPC reference sample stored in the linear reference buffer. 61. Устройство по п. 48, в котором модификация внутренне прогнозированной прогнозной выборки из множества внутренне прогнозированных прогнозных выборок блока прогнозирования содержит модификацию первой внутренне прогнозированной прогнозной выборки блока прогнозирования, при этом одна или более опорные PDPC-выборки содержат первый набор из одной или более опорных PDPC-выборок, и при этом видеокодер выполнен с возможностью: 61. The apparatus of claim 48, wherein modifying the intra predictive prediction sample of a plurality of intra predictive prediction samples of the prediction block comprises modifying the first intra predictive prediction sample of the prediction block, wherein the one or more reference PDPC samples comprise a first set of one or more reference PDPC samples, and the video encoder is configured to: - определять, для второй внутренне прогнозированной прогнозной выборки блока прогнозирования, что, по меньшей мере, одна опорная PDPC-выборка из второго набора из одной или более опорных PDPC-выборок для второй внутренне прогнозированной прогнозной выборки не сохраняется в опорном линейном буфере; и- determine, for the second intra predictive prediction sample of the prediction block, that at least one PDPC reference sample from the second set of one or more PDPC reference samples for the second intra predictive predictive sample is not stored in the linear reference buffer; and - выполнять одно из неприменения PDPC ко второй внутренне прогнозированной прогнозной выборке или применения PDPC только с использованием опорных PDPC-выборок, доступных в опорном линейном буфере.- perform one of not applying the PDPC to the second internally predicted predictive sample, or applying the PDPC only using the PDPC reference samples available in the linear reference buffer. 62. Устройство по п. 48, в котором режим широкоугольного внутреннего прогнозирования не представляет собой режим DC-, планарного, горизонтального или вертикального внутреннего прогнозирования.62. The apparatus of claim 48, wherein the wide-angle intra prediction mode is not a DC-, planar, horizontal, or vertical intra prediction mode. 63. Устройство по п. 48, при этом устройство содержит одно или более из камеры, компьютера, мобильного устройства, широковещательного приемного устройства или абонентской приставки.63. The apparatus of claim 48, wherein the apparatus comprises one or more of a camera, a computer, a mobile device, a broadcast receiver, or a set-top box. 64. Машиночитаемый носитель хранения данных, сохраняющий инструкции, которые при выполнении инструктируют одному или более процессорам устройства для декодирования видеоданных:64. A computer-readable storage medium that stores instructions that, when executed, instruct one or more device processors to decode video data: - определять размер текущего блока видеоданных; - determine the size of the current block of video data; - определять, на основе размера текущего блока, режим широкоугольного внутреннего прогнозирования, который следует использовать для текущего блока;- determine, based on the size of the current block, the wide-angle intra prediction mode to be used for the current block; - определять блок прогнозирования для текущего блока с использованием режима широкоугольного внутреннего прогнозирования, причем блок прогнозирования включает в себя множество внутренне прогнозированных прогнозных выборок, определенных с использованием угла режима широкоугольного внутреннего прогнозирования;determining a prediction block for the current block using the wide-angle intra prediction mode, the prediction block including a plurality of intra-predictive prediction samples determined using the angle of the wide-angle intra prediction mode; - определять одну или более опорные выборки с использованием позиционно-зависимого комбинирования с внутренним прогнозированием (PDPC), которые являются внешними для текущего блока, для модифицирования множества внутренне прогнозированных прогнозных выборок блока прогнозирования, при этом каждая опорная PDPC-выборка из одной или более опорных PDPC-выборок определяется с использованием угла режима широкоугольного внутреннего прогнозирования относительно соответствующей внутренне прогнозированной прогнозной выборки из множества внутренне прогнозированных прогнозных выборок;- determine one or more reference samples using position-dependent intra-prediction combining (PDPC) that are external to the current block to modify a plurality of intra-predictive prediction samples of the prediction block, with each reference PDPC sample from one or more reference PDPCs -samples is determined using the angle of the wide-angle intra-prediction mode relative to the corresponding intra-predictive prediction sample from the plurality of intra-predictive prediction samples; - модифицировать, с использованием одной или более опорных PDPC-выборок, внутренне прогнозированную прогнозную выборку из множества внутренне прогнозированных прогнозных выборок блока прогнозирования для того, чтобы формировать модифицированную прогнозную выборку; иmodifying, using one or more PDPC reference samples, an intra predictive sample from a plurality of predictor block intra predictive samples to generate a modified predictive sample; and - восстанавливать текущий блок на основе модифицированной прогнозной выборки и остаточного значения.- restore the current block based on the modified predictive sample and the residual value. 65. Машиночитаемый носитель хранения данных, сохраняющий инструкции, которые при выполнении инструктируют одному или более процессорам устройства для кодирования видеоданных:65. A computer-readable storage medium that stores instructions that, when executed, instruct one or more processors of a device for encoding video data: - определять размер текущего блока видеоданных;- determine the size of the current block of video data; - определять, на основе размера текущего блока, режим широкоугольного внутреннего прогнозирования, который следует использовать для текущего блока;- determine, based on the size of the current block, the wide-angle intra prediction mode to be used for the current block; - определять блок прогнозирования для текущего блока с использованием режима широкоугольного внутреннего прогнозирования, причем блок прогнозирования включает в себя множество внутренне прогнозированных прогнозных выборок, определенных с использованием угла режима широкоугольного внутреннего прогнозирования;determining a prediction block for the current block using the wide-angle intra prediction mode, the prediction block including a plurality of intra-predictive prediction samples determined using the angle of the wide-angle intra prediction mode; определять одну или более опорные выборки с использованием позиционно-зависимого комбинирования с внутренним прогнозированием (PDPC), которые являются внешними для текущего блока, для модифицирования множества внутренне прогнозированных прогнозных выборок блока прогнозирования, при этом каждая опорная PDPC-выборка из одной или более опорных PDPC-выборок определяется с использованием угла режима широкоугольного внутреннего прогнозирования относительно соответствующей внутренне прогнозированной прогнозной выборки из множества внутренне прогнозированных прогнозных выборок;determine one or more reference samples using position-dependent intra-prediction combining (PDPC) that are external to the current block to modify a plurality of intra-predictive prediction samples of the prediction block, where each reference PDPC sample of one or more reference PDPCs is the samples are determined using the angle of the wide-angle intra prediction mode with respect to the corresponding intra predictive prediction sample of the plurality of intra predictive prediction samples; - модифицировать, с использованием одной или более опорных PDPC-выборок, внутренне прогнозированную прогнозную выборку из множества внутренне прогнозированных прогнозных выборок блока прогнозирования для того, чтобы формировать модифицированную прогнозную выборку; modifying, using one or more PDPC reference samples, an intra predictive sample from a plurality of predictor block intra predictive samples to generate a modified predictive sample; -определять остаточное значение для остаточного блока на основе модифицированной прогнозной выборки и значения выборки в текущем блоке; и- determine the residual value for the residual block based on the modified predictive sample and the sample value in the current block; and - передавать в служебных сигналах информацию, указывающую остаточное значение.- transmit information indicating the residual value in service signals. 66. Устройство для декодирования видеоданных, при этом устройство содержит:66. Device for decoding video data, wherein the device contains: - средство для определения размера текущего блока видеоданных; means for determining the size of the current block of video data; - средство для определения, на основе размера текущего блока, режима широкоугольного внутреннего прогнозирования, который следует использовать для текущего блока;means for determining, based on the size of the current block, a wide-angle intra prediction mode to be used for the current block; - средство для определения блока прогнозирования для текущего блока с использованием режима широкоугольного внутреннего прогнозирования, причем блок прогнозирования включает в себя множество внутренне прогнозированных прогнозных выборок, определенных с использованием угла режима широкоугольного внутреннего прогнозирования;means for determining a prediction block for the current block using a wide-angle intra prediction mode, the prediction block including a plurality of intra-predicted prediction samples determined using an angle of the wide-angle intra prediction mode; - средство для определения одной или более опорных выборок с использованием позиционно-зависимого комбинирования с внутренним прогнозированием (PDPC), которые являются внешними для текущего блока, для модифицирования множества внутренне прогнозированных прогнозных выборок блока прогнозирования, при этом каждая опорная PDPC-выборка из одной или более опорных PDPC-выборок определяется с использованием угла режима широкоугольного внутреннего прогнозирования относительно соответствующей внутренне прогнозированной прогнозной выборки из множества внутренне прогнозированных прогнозных выборок;means for determining one or more position-dependent intra-prediction combining (PDPC) reference samples that are external to the current block to modify a plurality of intra-predictive prediction samples of the prediction block, each PDPC reference sample of one or more the PDPC reference samples are determined using the angle of the wide-angle intra prediction mode relative to the corresponding intra predictive prediction sample of the plurality of intra predictive prediction samples; - средство для модифицирования, с использованием одной или более опорных PDPC-выборок, внутренне прогнозированной прогнозной выборки из множества внутренне прогнозированных прогнозных выборок блока прогнозирования для того, чтобы формировать модифицированную прогнозную выборку; иmeans for modifying, using one or more PDPC reference samples, an internally predicted prediction sample from a plurality of internally predicted predictive samples of the predictor block in order to generate a modified prediction sample; and - средство для восстановления текущего блока на основе модифицированной прогнозной выборки и остаточного значения.means for restoring the current block based on the modified predictive sample and the residual. 67. Устройство для кодирования видеоданных, при этом устройство содержит:67. Device for encoding video data, wherein the device contains: - средство для определения размера текущего блока видеоданных;means for determining the size of the current block of video data; - средство для определения, на основе размера текущего блока, режима широкоугольного внутреннего прогнозирования, который следует использовать для текущего блока;means for determining, based on the size of the current block, a wide-angle intra prediction mode to be used for the current block; - средство для определения блока прогнозирования для текущего блока с использованием режима широкоугольного внутреннего прогнозирования, причем блок прогнозирования включает в себя множество внутренне прогнозированных прогнозных выборок, определенных с использованием угла режима широкоугольного внутреннего прогнозирования;means for determining a prediction block for the current block using a wide-angle intra prediction mode, the prediction block including a plurality of intra-predicted prediction samples determined using an angle of the wide-angle intra prediction mode; - средство для определения одной или более опорных выборок с использованием позиционно-зависимого комбинирования с внутренним прогнозированием (PDPC), которые являются внешними для текущего блока, для модифицирования множества внутренне прогнозированных прогнозных выборок блока прогнозирования, при этом каждая опорная PDPC-выборка из одной или более опорных PDPC-выборок определяется с использованием угла режима широкоугольного внутреннего прогнозирования относительно соответствующей внутренне прогнозированной прогнозной выборки из множества внутренне прогнозированных прогнозных выборок;means for determining one or more position-dependent intra-prediction combining (PDPC) reference samples that are external to the current block to modify a plurality of intra-predictive prediction samples of the prediction block, each PDPC reference sample of one or more the PDPC reference samples are determined using the angle of the wide-angle intra prediction mode relative to the corresponding intra predictive prediction sample of the plurality of intra predictive prediction samples; - средство для модифицирования, с использованием одной или более опорных PDPC-выборок, внутренне прогнозированной прогнозной выборки из множества внутренне прогнозированных прогнозных выборок блока прогнозирования для того, чтобы формировать модифицированную прогнозную выборку; means for modifying, using one or more PDPC reference samples, an internally predicted prediction sample from a plurality of internally predicted predictive samples of the predictor block in order to generate a modified prediction sample; - средство для определения остаточного значения для остаточного блока на основе модифицированной прогнозной выборки и значения выборки в текущем блоке; иmeans for determining a residual value for the residual block based on the modified predictive sample and the sample value in the current block; and - средство для передачи в служебных сигналах информации, указывающей остаточное значение.means for signaling information indicating the residual value.
RU2021100378A 2018-07-16 2019-07-15 Position-dependent combination with internal prediction with wide-angle internal prediction RU2781854C2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US62/698,804 2018-07-16
US16/510,863 2019-07-12

Publications (2)

Publication Number Publication Date
RU2021100378A RU2021100378A (en) 2022-08-16
RU2781854C2 true RU2781854C2 (en) 2022-10-19

Family

ID=

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2575992C2 (en) * 2011-09-12 2016-02-27 Кэнон Кабусики Кайся Deriving reference mode values and encoding and decoding information representing prediction modes
WO2016123091A1 (en) * 2015-01-26 2016-08-04 Qualcomm Incorporated Enhanced multiple transforms for prediction residual
RU2658137C2 (en) * 2010-04-23 2018-06-19 М энд К ХОЛДИНГС ИНК. Intra prediction apparatus

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2658137C2 (en) * 2010-04-23 2018-06-19 М энд К ХОЛДИНГС ИНК. Intra prediction apparatus
RU2575992C2 (en) * 2011-09-12 2016-02-27 Кэнон Кабусики Кайся Deriving reference mode values and encoding and decoding information representing prediction modes
WO2016123091A1 (en) * 2015-01-26 2016-08-04 Qualcomm Incorporated Enhanced multiple transforms for prediction residual

Similar Documents

Publication Publication Date Title
CN112449753B (en) Position dependent intra prediction combining using wide angle intra prediction
JP7295879B2 (en) Position-dependent intra-prediction combination extended with angular mode
US11159806B2 (en) Position dependent intra prediction combination with multiple reference lines for intra prediction
US10484712B2 (en) Implicit coding of reference line index used in intra prediction
JP7422684B2 (en) Block-based adaptive loop filter (ALF) design and signaling
TWI782904B (en) Merging filters for multiple classes of blocks for video coding
JP7504925B2 (en) Combined inter and intra prediction modes for video coding - Patents.com
EP3459245A1 (en) Confusion of multiple filters in adaptive loop filtering in video coding
TW202415068A (en) Signaling of triangle merge mode indexes in video coding
KR20190006174A (en) Signaling of filtering information
JP2019534631A (en) Peak sample adaptive offset
RU2781854C2 (en) Position-dependent combination with internal prediction with wide-angle internal prediction
RU2785816C2 (en) Position-dependent intra-prediction combination expanded with angular modes