RU2787810C1 - Method and apparatus for colour conversion in versatile video coding (vvc) - Google Patents

Method and apparatus for colour conversion in versatile video coding (vvc) Download PDF

Info

Publication number
RU2787810C1
RU2787810C1 RU2021128205A RU2021128205A RU2787810C1 RU 2787810 C1 RU2787810 C1 RU 2787810C1 RU 2021128205 A RU2021128205 A RU 2021128205A RU 2021128205 A RU2021128205 A RU 2021128205A RU 2787810 C1 RU2787810 C1 RU 2787810C1
Authority
RU
Russia
Prior art keywords
inverse
transform
video
color
current block
Prior art date
Application number
RU2021128205A
Other languages
Russian (ru)
Inventor
Синь ЧЖАО
Сяочжун СЮЙ
Сян Ли
Шань ЛЮ
Original Assignee
Тенсент Америка Ллс
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Тенсент Америка Ллс filed Critical Тенсент Америка Ллс
Application granted granted Critical
Publication of RU2787810C1 publication Critical patent/RU2787810C1/en

Links

Images

Abstract

FIELD: video encoding.
SUBSTANCE: in the method for video decoding, wherein a bit stream of the encoded video including the current image is received, reverse quantisation is executed for the current block of the current image, and reverse colour conversion is executed for the current block after reverse quantisation; herein, reverse colour conversion for the current block is executed in response to determining that different colour components of the reverse colour conversion are encoded using the same coding unit division tree, and reverse colour conversion is applied for intra-coded blocks.
EFFECT: higher accuracy of signal encoding.
21 cl, 21 dwg

Description

ВКЛЮЧЕНИЕ ПОСРЕДСТВОМ ССЫЛКИINCLUSION BY LINK

[0001] Настоящее изобретение испрашивает приоритет обычной заявки США №16/817,028, "METHOD AND APPARATUS FOR COLOR TRANSFORM IN VVC", поданной 12 марта 2020 г., которая испрашивает приоритет предварительной заявки США №62/817,500, "COLOR TRANSFORM IN VVC", поданной 12 марта 2019 г. Содержание предыдущих заявок, таким образом, включено посредством ссылки в полном объеме.[0001] The present invention claims priority in U.S. Ordinary Application No. 16/817,028, "METHOD AND APPARATUS FOR COLOR TRANSFORM IN VVC", filed March 12, 2020, which claims priority in U.S. Provisional Application No. 62/817,500, "COLOR TRANSFORM IN VVC" filed March 12, 2019. The contents of the previous applications are hereby incorporated by reference in their entirety.

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕFIELD OF TECHNOLOGY TO WHICH THE INVENTION RELATES

[0002] В настоящей заявке описаны варианты осуществления, в целом относящиеся к видеокодированию.[0002] This application describes embodiments generally related to video coding.

ПРЕДПОСЫЛКИ ИЗОБРЕТЕНИЯBACKGROUND OF THE INVENTION

[0003] Описание предпосылок создания изобретения приведено здесь с целью представления в целом контекста изобретения. Работа авторов изобретения, в той мере, в какой она описана в этом разделе, а также аспекты описания, которые не могут квалифицироваться как уровень техники на момент подачи заявки, ни прямо, ни косвенно не признаются уровнем техники, лежащим в основе настоящего изобретения.[0003] The description of the background of the invention is provided herein to provide a general context for the invention. The work of the authors of the invention, to the extent that it is described in this section, as well as aspects of the description that cannot be qualified as state of the art at the time of filing, neither expressly nor impliedly recognized as the state of the art underlying the present invention.

[0004] Кодирование и декодирование видеосигнала может осуществляться с использованием предсказания между изображениями с компенсацией движения. Цифровое видео без сжатия может включать в себя последовательность изображений, каждое из которых имеет пространственный размер, например, 1920 х 1080 отсчетов яркости и связанных с ними отсчетов цветности. Последовательность изображений может иметь фиксированную или переменную частоту смены изображений (неформально также называемую частотой кадров), например, 60 изображений в секунду, или 60 Гц. Видео без сжатия предъявляет значительные требования к битовой скорости. Например, видео 1080р60 4:2:0 с 8 битами на отсчет (разрешение отсчетов яркости 1920x1080 при частоте кадров 60 Гц) требует полосы около 1,5 Гбит/с. Час такого видео требует объема памяти более 600 ГБ.[0004] Encoding and decoding of the video signal may be performed using inter-picture prediction with motion compensation. Uncompressed digital video may include a sequence of images, each of which has a spatial size of, for example, 1920 x 1080 luma samples and associated chrominance samples. The image sequence may have a fixed or variable image rate (informally also referred to as frame rate), such as 60 images per second, or 60 Hz. Uncompressed video has significant bitrate requirements. For example, 1080p60 4:2:0 video with 8 bits per sample (resolution of 1920x1080 luminance samples at 60Hz frame rate) requires about 1.5Gbps of bandwidth. An hour of such video requires more than 600 GB of storage.

[0005] Одной целью кодирования и декодирования видеосигнала может быть снижение избыточности во входном видеосигнале путем сжатия. Сжатие может способствовать смягчению вышеупомянутых требований к полосе или объему памяти, в ряде случаев на два порядка величины или более. Можно использовать как сжатие без потерь, так и сжатие с потерями, а также их комбинацию. Сжатие без потерь относится к методам реконструкции точной копии исходного сигнала из сжатого исходного сигнала. При использовании сжатия с потерями реконструированный сигнал может быть не идентичен исходному сигналу, но расхождение между исходным и реконструированным сигналами достаточно мало, чтобы реконструированный сигнал можно было использовать для намеченного применения. Сжатие с потерями широко применяется для видео. Допустимая степень искажения зависит от применения; например, пользователи некоторых заказных потоковых приложений могут мириться с более высокими искажениями, чем пользователи телевещательных приложений. При достижимой степени сжатия более высокое разрешенное/допустимое искажение может давать более высокую степень сжатия.[0005] One goal of video encoding and decoding may be to reduce redundancy in the input video signal by compressing. Compression can help to alleviate the aforementioned bandwidth or storage requirements, in some cases by two orders of magnitude or more. You can use both lossless and lossy compression, as well as a combination of both. Lossless compression refers to techniques for reconstructing an exact copy of the original signal from the compressed original signal. When lossy compression is used, the reconstructed signal may not be identical to the original signal, but the discrepancy between the original and reconstructed signals is small enough that the reconstructed signal can be used for the intended application. Lossy compression is widely used for video. The amount of distortion allowed depends on the application; for example, users of some custom streaming applications can tolerate higher distortion than users of broadcast TV applications. With an achievable compression ratio, a higher allowed/allowable distortion may result in a higher compression ratio.

[0006] Кодер и декодер видеосигнала может использовать методы из нескольких широких категорий, включающих в себя, например, компенсацию движения, преобразование, квантование и энтропийное кодирование.[0006] The video encoder and decoder may use techniques from several broad categories including, for example, motion compensation, transformation, quantization, and entropy coding.

[0007] Технологии видеокодека могут включать в себя методы, известные как внутреннее кодирование. При внутреннем (интра-) кодировании, значения отсчетов представляются без ссылки на отсчеты или другие данные из ранее реконструированных опорных изображений. В некоторых видеокодеках изображение пространственно разделяется на блоки отсчетов. Когда все блоки отсчетов кодируются в интра-режиме, изображение называется интра-изображением. Интра-изображения и их производные, например, изображения, полученные в режиме независимого обновления декодера, могут использоваться для сброса состояния декодера, что позволяет использовать их как первое изображение в битовом потоке кодированного видео и видеосеансе, или как неподвижное изображение. Отсчеты интра-блока могут подвергаться преобразованию, и коэффициенты преобразования могут квантоваться до энтропийного кодирования. Внутреннее предсказание может быть методом минимизации значений отсчетов в области предварительного преобразования. В ряде случаев, чем меньше значение DC (постоянной составляющей) после преобразования, и чем меньше коэффициенты АС (переменных составляющих), тем меньше битов требуется при данном размере шага квантования для представления блока после энтропийного кодирования.[0007] Video codec technologies may include techniques known as intra-coding. With internal (intra-) coding, sample values are represented without reference to samples or other data from previously reconstructed reference pictures. In some video codecs, the image is spatially divided into blocks of samples. When all blocks of samples are encoded in intra-mode, the picture is called an intra-picture. Intra-pictures and their derivatives, such as pictures obtained in the decoder independent update mode, can be used to reset the decoder state, allowing them to be used as the first picture in the encoded video bitstream and video session, or as a still picture. The intra-block samples may be transformed and the transform coefficients may be quantized prior to entropy coding. Intra-prediction may be a technique for minimizing sample values in the pre-transform region. In some cases, the smaller the value of DC (constant component) after the transformation, and the smaller the AC (variable components) coefficients, the fewer bits are required for a given quantization step size to represent a block after entropy coding.

[0008] Традиционное внутреннее кодирование, известное, например, из технологий кодирования поколения MPEG-2, не использует внутреннего предсказания. Однако некоторые более современные технологии сжатия видео включают в себя методы, которые пытаются сделать это, например, из данных окружающих отсчетов и/или метаданных, полученных в ходе кодирования/декодирования пространственно соседних и предшествующих, в порядке декодирования, блоков данных. Такие методы далее именуются методами "внутреннего предсказания". Заметим, что по меньшей мере в некоторых случаях внутреннее предсказание осуществляется только с использованием опорных данных из текущего изображения, подлежащего реконструкции, но не из опорных изображений.[0008] Conventional intra coding known, for example, from MPEG-2 generation coding technologies, does not use intra prediction. However, some more recent video compression technologies include techniques that attempt to do this from, for example, ambient sample data and/or metadata obtained during encoding/decoding of spatially adjacent and preceding, in decoding order, data blocks. Such methods are hereinafter referred to as "internal prediction" methods. Note that, in at least some cases, intra prediction is only performed using reference data from the current image to be reconstructed, and not from reference images.

[0009] Может существовать много разных форм внутреннего предсказания. Когда в данной технологии видеокодирования может использоваться более одного из таких методов, используемый метод может кодироваться в режиме внутреннего предсказания. В некоторых случаях, режимы могут иметь подрежимы и/или параметры, которые могут кодироваться по отдельности или включаться в кодовое слово режима. Использование того или иного кодового слова для данной комбинации режимов/подрежимов/параметров может оказывать влияние на выигрыш в эффективности кодирования посредством внутреннего предсказания и, следовательно, на технологию энтропийного кодирования, используемую для перевода кодовых слов в битовый поток.[0009] There may be many different forms of intra prediction. When more than one of these methods can be used in a given video coding technology, the method used can be encoded in intra prediction mode. In some cases, modes may have sub-modes and/or parameters that may be encoded separately or included in the mode codeword. The use of a particular codeword for a given combination of modes/submodes/parameters can affect the gain in coding efficiency through intra prediction and hence the entropy coding technology used to translate the codewords into the bitstream.

[0010] Определенный режим внутреннего предсказания впервые был задан в Н.264, уточнен в Н.265, и дополнительно уточнен в более современных технологиях кодирования, например, модели совместного исследования (JEM, joint exploration model), универсального видеокодирования (VVC, versatile video coding) и наборе эталонов (BMS, benchmark set). Блок предсказателя может формироваться с использованием значений соседних отсчетов, принадлежащих уже доступным отсчетам. Значения соседних отсчетов копируются в блок предсказателя согласно направлению. Ссылка на используемое направление может кодироваться в битовом потоке или может сама предсказываться.[0010] A certain mode of intra prediction was first specified in H.264, refined in H.265, and further refined in more modern coding technologies, for example, the joint exploration model (JEM, joint exploration model), universal video coding (VVC, versatile video coding) and a set of standards (BMS, benchmark set). The predictor block can be formed using the values of neighboring samples belonging to already available samples. The values of neighboring samples are copied into the predictor block according to the direction. The reference to the direction to be used may be encoded in the bitstream, or may be self-predictable.

[0011] В нижнем правом углу фиг. 1А изображено подмножество из девяти направлений предсказателя множества, известного из 33 возможных направлений предсказателя Н.265 (соответствующих 33 угловым режимам из 35 интра-режимов). Точка (101), где сходятся стрелки, представляет предсказываемый отсчет. Стрелки представляют направление, из которого предсказывается отсчет. Например, стрелка (102) указывает, что отсчет (101) предсказывается из отсчета или отсчетов, расположенного(ых) вверху справа, под углом 45 градусов к горизонтали. Аналогично, стрелка (103) указывает, что отсчет (101) предсказывается из отсчета или отсчетов расположенного(ых) внизу слева от отсчета (101), под углом 22,5 градусов к горизонтали.[0011] In the lower right corner of FIG. 1A shows a subset of the nine predictor directions of the set known from 33 possible H.265 predictor directions (corresponding to 33 angular modes out of 35 intra modes). The point (101) where the arrows converge represents the predicted count. The arrows represent the direction from which the reading is predicted. For example, an arrow (102) indicates that the reading (101) is predicted from the reading or readings located at the upper right, at an angle of 45 degrees to the horizontal. Likewise, arrow (103) indicates that sample (101) is predicted from the sample(s) located down to the left of sample (101), at an angle of 22.5 degrees to the horizontal.

[0012] В верхнем левом углу фиг. 1А изображен квадратный блок (104) 4x4 отсчетов (указанный жирной пунктирной линией). Квадратный блок (104) включает в себя 16 отсчетов, каждый из которых обозначен буквой "S", позицией по оси Y (например, индексом строки) и позицией по оси X (например, индексом столбца). Например, отсчет S21 является вторым отсчетом по оси Y (сверху) и первым (слева) отсчетом по оси X. Аналогично, отсчет S44 является четвертым отсчетом в блоке (104) по обеим осям Y и X. Поскольку блок имеет размер 4x4 отсчета, S44 располагается внизу справа. Дополнительно показаны опорные отсчеты, которые следуют аналогичной схеме нумерации. Опорный отсчет обозначается буквой R, своей Y-позицией (например, индексом строки) и Х-позицией (индексом столбца) относительно блока (104). В обоих Н.264 и Н.265 предсказанные отсчеты соседствуют с блоком, подлежащим реконструкции; поэтому нет необходимости использовать отрицательные значения.[0012] In the upper left corner of FIG. 1A depicts a square block (104) of 4x4 samples (indicated by the heavy dotted line). The square block (104) includes 16 samples, each of which is denoted by the letter "S", a y-axis position (eg, row index) and an x-axis position (eg, column index). For example, sample S21 is the second sample on the Y axis (top) and the first sample (left) on the X axis. Similarly, sample S44 is the fourth sample in block (104) on both the Y and X axes. Since the block has a size of 4x4 samples, S44 located at the bottom right. Additionally, reference readings are shown that follow a similar numbering scheme. The reference sample is denoted by the letter R, its Y-position (eg, row index) and X-position (column index) relative to the block (104). In both H.264 and H.265, the predicted samples are adjacent to the block to be reconstructed; so there is no need to use negative values.

[0013] Предсказание внутри изображения может работать путем копирования опорных значений отсчетов из соседних отсчетов, указанных сигнализируемым направлением предсказания. Например, предположим, что битовый поток кодированного видео включает в себя сигнализацию, которая, для этого блока, указывает направление предсказания, обозначенное стрелкой (102) то есть отсчеты предсказываются из предсказанного(ых) отсчета или отсчетов, расположенного(ых) вверху справа, под углом 45 градусов к горизонтали. В этом случае отсчеты S41, S32, S23 и S14 предсказываются из одного и того же опорного отсчета R05. Затем отсчет S44 предсказывается из опорного отсчета R08.[0013] Intra-picture prediction may work by copying sample reference values from neighboring samples indicated by the signaled prediction direction. For example, suppose the coded video bitstream includes signaling that, for this block, indicates the direction of prediction indicated by the arrow (102) i.e. the samples are predicted from the predicted sample(s) located at the top right, below 45 degree angle to the horizontal. In this case, samples S41, S32, S23 and S14 are predicted from the same reference sample R05. Then, the sample S44 is predicted from the reference sample R08.

[0014] В некоторых случаях значения множества опорных отсчетов можно комбинировать, например, посредством интерполяции для вычисления опорного отсчета; в особенности, когда направления не кратны 45 градусам.[0014] In some cases, the values of multiple reference samples can be combined, for example, by interpolation to calculate the reference sample; especially when the directions are not multiples of 45 degrees.

[0015] Количество возможных направлений увеличивается по мере развития технологий видеокодирования. В Н.264 (2003 год) можно было представлять девять разных направлений. В Н.265 это количество увеличилось до 33 (2013 год), и JEM/VVC/BMS во время составления данного описания может поддерживать до 65 направлений. Были проведены эксперименты для выявления наиболее вероятных направлений, и некоторые методы энтропийного кодирования используются для представления этих вероятных направлений малым количеством битов, ценой утраты некоторых менее вероятных направлений. Дополнительно, сами направления иногда можно предсказывать из соседних направлений, используемых в соседних, уже декодированных, блоках.[0015] The number of possible directions increases as video coding technologies develop. In H.264 (2003), nine different directions could be represented. In H.265 this has increased to 33 (2013), and JEM/VVC/BMS can support up to 65 destinations at the time of writing this description. Experiments have been made to identify the most likely directions, and some entropy encoding techniques are used to represent these likely directions with a small number of bits, at the cost of losing some of the less likely directions. Additionally, the directions themselves can sometimes be predicted from adjacent directions used in adjacent already decoded blocks.

[0016] Режимы внутреннего предсказания, применяемые в высокопроизводительном видеокодировании, представлены на фиг. 1В. Высокопроизводительное видеокодирование насчитывает 35 режимов внутреннего предсказания. При этом режим 10 горизонтальный, а режим 26 вертикальный. Режимы 2, 18 и 34 - диагональные режимы. Режимы внутреннего предсказания сигнализируются тремя режимами наибольшей вероятности и 32-умя остальными режимами.[0016] Intra prediction modes used in high performance video coding are shown in FIG. 1B. High-performance video coding has 35 intra prediction modes. In this case, mode 10 is horizontal, and mode 26 is vertical. Modes 2, 18 and 34 are diagonal modes. The intra prediction modes are signaled by the three highest probability modes and 32 other modes.

[0017] Фиг. 1С изображает режимы внутреннего предсказания, используемые в высокопроизводительном видеокодировании. Согласно фиг. 1С, в высокопроизводительном видеокодировании существует 95 режимов внутреннего предсказания. Режим 18 горизонтальный, режим 50 вертикальный, а режимы 2, 34 и 66 диагональные. Режимы -1 ~ -14, а также режимы 67 ~ 80 называются широкоугольными режимами внутреннего предсказания (Wide-Angle Intra Prediction, WAIP).[0017] FIG. 1C depicts intra prediction modes used in high performance video coding. According to FIG. 1C, there are 95 intra prediction modes in high performance video coding. Mode 18 is horizontal, mode 50 is vertical, and modes 2, 34 and 66 are diagonal. Modes -1~-14 as well as modes 67~80 are called Wide-Angle Intra Prediction (WAIP) modes.

[0018] Отображение битов направлений внутреннего предсказания в битовом потоке кодированного видео, которые представляют направление, может отличаться от одной технологии видеокодирования к другой технологии видеокодирования; и может охватывать, например, от простого прямого отображения направления предсказания до режима внутреннего предсказания, кодовых слов, сложных адаптивных схем, задействующих наиболее вероятные режимы, и аналогичных методов. Однако во всех случаях могут существовать некоторые направления, возникновение которых в видеоконтенте статистически менее вероятно, чем для некоторых других направлений. Поскольку целью сжатия видео является снижение избыточности, эти менее вероятные направления, в хорошо работающей технологии видеокодирования, будут представляться большим количеством битов, чем более вероятные направления.[0018] The mapping of intra prediction direction bits in the encoded video bitstream that represent the direction may differ from one video coding technology to another video coding technology; and may cover, for example, from simple forward prediction direction mapping to intra prediction mode, code words, complex adaptive schemes involving most likely modes, and similar techniques. However, in all cases, there may be some trends that are statistically less likely to occur in video content than for some other trends. Because the goal of video compression is to reduce redundancy, these less likely directions will, in a well-performing video coding technology, be represented by more bits than more likely directions.

[0019] Кодирование и декодирование видеосигнала может осуществляться с использованием предсказания между изображениями с компенсацией движения. Цифровое видео без сжатия может включать в себя последовательность изображений, каждое из которых имеет пространственный размер, например, 1920 х 1080 отсчетов яркости и связанных с ними отсчетов цветности. Последовательность изображений может иметь фиксированную или переменную частоту смены изображений (неформально также называемую частотой кадров), например, 60 изображений в секунду, или 60 Гц. Видео без сжатия предъявляет значительные требования к битовой скорости. Например, видео 1080р60 4:2:0 с 8 битами на отсчет (разрешение отсчетов яркости 1920x1080 при частоте кадров 60 Гц) требует полосы около 1,5 Гбит/с. Час такого видео требует объема памяти более 600 ГБ.[0019] Video encoding and decoding may be performed using inter-picture prediction with motion compensation. Uncompressed digital video may include a sequence of images, each of which has a spatial size of, for example, 1920 x 1080 luma samples and associated chrominance samples. The image sequence may have a fixed or variable image rate (informally also referred to as frame rate), such as 60 images per second, or 60 Hz. Uncompressed video has significant bitrate requirements. For example, 1080p60 4:2:0 video with 8 bits per sample (resolution of 1920x1080 luminance samples at 60Hz frame rate) requires about 1.5Gbps of bandwidth. An hour of such video requires more than 600 GB of storage.

[0020] Компенсация движения может быть методом сжатия с потерями, а также методом, при котором блок данных отсчетов из предыдущего восстановленного изображения или его части (опорное изображение) после его перемещения в направлении, указанном вектором движения (далее ВД (MV, motion vector)), используется для предсказания заново восстановленного изображения или его части. В ряде случаев опорное изображение может соответствовать восстанавливаемому изображению. У ВД может быть два измерения, X и Y, или три измерения. Третье измерение - показатель используемого опорного изображения (последнее косвенно может быть временным измерением).[0020] Motion compensation can be a lossy compression method, as well as a method in which a block of sample data from a previous reconstructed image or part thereof (reference image) after it has been moved in the direction indicated by the motion vector (hereinafter MV (MV, motion vector) ) is used to predict the newly reconstructed image or part of it. In some cases, the reference image may correspond to the reconstructed image. A VD can have two dimensions, X and Y, or three dimensions. The third dimension is an indicator of the reference image used (the latter can indirectly be a temporal dimension).

[0021] В некоторых методах видеокомпрессии ВД, применяемый в определенной области данных отсчетов, можно предсказывать из других ВД, например, из тех, которые относятся к другой области данных отсчетов, примыкающей к восстанавливаемой, и предшествуют этому ВД в порядке декодирования. Такой подход может значительно сократить количество данных, необходимых для кодирования ВД, сокращая тем самым избыточность и увеличивая сжатие. Предсказание ВД может быть эффективным. Например, при кодировании входного видеосигнала с камеры (несжатого видео) существует статистическая вероятность перемещения областей (которые превышают область применения единичного ВД) в одном направлении и, таким образом, в некоторых случаях возможно предсказание с помощью идентичного вектора движения из соседней области ВД. В итоге обнаруженный в заданной области ВД аналогичен или похож на ВД, предсказанный из соседних ВД, который, в свою очередь, может быть представлен после энтропийного кодирования в меньшем количестве битов, чем при прямом кодировании ВД. В некоторых случаях предсказание ВД может быть примером сжатия сигнала (ВД) без потерь, полученного из первоначального сигнала (потока отсчетов). В других случаях предсказание ВД может проходить с потерями, например, из-за ошибок округления при подсчете предсказателя по нескольким соседним ВД.[0021] In some video compression techniques, the VD applied in a certain sample data region can be predicted from other VDs, for example, those belonging to another sample data region adjacent to the one being reconstructed and preceding that VD in decoding order. This approach can significantly reduce the amount of data needed to encode the VD, thereby reducing redundancy and increasing compression. PD prediction can be effective. For example, when encoding a video input signal from a camera (uncompressed video), there is a statistical probability that areas (that exceed the scope of a single VD) move in the same direction, and thus, in some cases, prediction with an identical motion vector from an adjacent VD area is possible. As a result, the VD detected in the given area is similar or similar to the VD predicted from neighboring VDs, which, in turn, can be represented after entropy coding in fewer bits than with direct coding of the VD. In some cases, TD prediction may be an example of lossless compression of a signal (SR) obtained from the original signal (sample stream). In other cases, PD prediction may be lossy, for example, due to rounding errors when the predictor is calculated over several adjacent PDs.

[0022] Различные механизмы предсказания ВД описаны в H.265/HEVC (ITU-T Rec. Н.265, "Высокоэффективное видеокодирование", декабрь, 2016 г.). Из множества механизмов предсказания ВД, предлагаемых Н.265, в данном документе представлен метод "пространственного слияния".[0022] Various VD prediction mechanisms are described in H.265/HEVC (ITU-T Rec. H.265, "High Efficiency Video Coding", December 2016). Of the many VD prediction mechanisms offered by H.265, this document introduces a "spatial fusion" technique.

[0023] На фиг. 1D текущий блок (101) включает отсчеты, обнаруженные кодером в ходе поиска движения, предсказываемого из предыдущего блока идентичного размера с частичным смещением. Вместо кодирования этого ВД напрямую его можно получить из метаданных одного или более опорных изображений, используя ВД одного из пяти соседних отсчетов - А0, А1 и В0, B1, В2 (102 - 106 соответственно). При предсказании ВД посредством Н.265 могут использоваться предсказатели одного и того же опорного изображения, применяемого соседним блоком. Порядок составления списка кандидатов может быть следующим: А0 → В0 → В1 → А1 → В2.[0023] FIG. 1D, the current block (101) includes samples detected by the encoder while searching for motion predicted from a previous block of identical size with partial offset. Instead of encoding this VD directly, it can be obtained from the metadata of one or more reference pictures using the VD of one of the five neighboring samples - A0, A1 and B0, B1, B2 (102 - 106 respectively). VD prediction by H.265 may use predictors of the same reference picture used by an adjacent block. The order of compilation of the list of candidates can be as follows: A0 → B0 → B1 → A1 → B2.

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

[0024] Согласно иллюстративному варианту осуществления, способ декодирования видео осуществляется кодером видео. Способ включает прием битового потока кодированного видео, включая текущее изображение. Далее выполняют обратное квантование на текущем блоке, включенном в текущее изображение. После обратного квантования выполняют обратное преобразование на текущем блоке. Далее, после обратного преобразования на текущем блоке, осуществляется предсказание с установлением исполнения или неисполнения предварительно заданного условия. При установлении выполнения предварительно заданного условия на текущем блоке осуществляется обратное цветовое преобразование.[0024] According to an exemplary embodiment, the video decoding method is performed by a video encoder. The method includes receiving an encoded video bitstream including a current picture. Next, inverse quantization is performed on the current block included in the current image. After inverse quantization, an inverse transform is performed on the current block. Further, after the inverse transformation on the current block, prediction is carried out with the establishment of the fulfillment or non-fulfillment of a predetermined condition. When a predetermined condition is met, a reverse color transformation is performed on the current block.

[0025] Согласно иллюстративному варианту осуществления, видеодекодер для декодирования видео, включая схему обработки, настроен на получение кодированного видеопотока, включая текущее изображение. Далее схема обработки настраивается на выполнение обратного квантования на текущем блоке текущего изображения. После обратного квантования на текущем блоке схема обработки настраивается на обратное преобразование на текущем блоке. После обратное преобразования на текущем блоке схема обработки настраивается на предсказание на текущем блоке. После предсказания на текущем блоке схема обработки настраивается на установление выполнения (невыполнения) предварительно заданного условия. По установлении выполнения предварительно заданного условия схема обработки настраивается на обратное цветовое преобразование на текущем блоке.[0025] According to an exemplary embodiment, a video decoder for video decoding, including a processing circuit, is configured to receive an encoded video stream including a current picture. Next, the processing circuit is configured to perform inverse quantization on the current block of the current image. After inverse quantization on the current block, the processing circuit is tuned to inverse transform on the current block. After the inverse transformation on the current block, the processing scheme is tuned to the prediction on the current block. After the prediction on the current block, the processing scheme is set to establish the fulfillment (non-fulfillment) of the predetermined condition. Upon establishing the fulfillment of a predetermined condition, the processing scheme is adjusted to the inverse color transformation on the current block.

[0026] Согласно иллюстративному варианту осуществления, машиночитаемый носитель информации хранит инструкции, которые при их исполнении процессором видеокодера заставляют видеокодер выполнять процедуру получения кодированного видеопотока с участием текущего изображения. Далее выполняют обратное квантование на текущем блоке текущего изображения. После обратного квантования выполняют обратное преобразование на текущем блоке. После обратного преобразования выполняют предсказание на текущем блоке. После предсказания на текущем блоке выполняют установление выполнения или невыполнения предварительно заданного условия. По установлении выполнения предварительно заданного условия на текущем блоке осуществляется обратное цветовое преобразование.[0026] According to an exemplary embodiment, the computer-readable storage medium stores instructions that, when executed by the video encoder processor, cause the video encoder to perform a procedure for obtaining an encoded video stream involving the current picture. Next, inverse quantization is performed on the current block of the current image. After inverse quantization, an inverse transform is performed on the current block. After the inverse transformation, prediction is performed on the current block. After the prediction on the current block, the determination of the fulfillment or non-fulfillment of the predetermined condition is performed. Upon establishing the fulfillment of a predetermined condition on the current block, an inverse color transformation is performed.

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

[0027] Дополнительные особенности, характер и различные преимущества раскрытого изобретения будут понятны из нижеследующего подробного описания и прилагаемых чертежей, на которых:[0027] Additional features, nature and various advantages of the disclosed invention will be apparent from the following detailed description and the accompanying drawings, in which:

[0028] фиг. 1А - схема иллюстративного подмножества режимов внутреннего предсказания;[0028] FIG. 1A is a diagram of an exemplary subset of intra prediction modes;

[0029] фиг. 1В - схема направлений внутреннего предсказания.[0029] FIG. 1B is a diagram of intra prediction directions.

[0030] фиг. 1С - схема направлений внутреннего предсказания.[0030] FIG. 1C is a diagram of intra prediction directions.

[0031] фиг. 1D - схема текущего блока и его окружающих кандидатов для пространственного слияния в одном примере.[0031] FIG. 1D is a diagram of the current block and its surrounding candidates for spatial merging in one example.

[0032] фиг. 2 - упрощенная блок-схема системы связи (200) в соответствии с вариантом осуществления.[0032] FIG. 2 is a simplified block diagram of a communications system (200) in accordance with an embodiment.

[0033] фиг. 3 - упрощенная блок-схема системы связи (300) в соответствии с вариантом осуществления.[0033] FIG. 3 is a simplified block diagram of a communications system (300) in accordance with an embodiment.

[0034] фиг. 4 - упрощенная блок-схема декодера в соответствии с вариантом осуществления.[0034] FIG. 4 is a simplified block diagram of a decoder according to an embodiment.

[0035] фиг. 5 - упрощенная блок-схема кодера в соответствии с вариантом осуществления.[0035] FIG. 5 is a simplified block diagram of an encoder according to an embodiment.

[0036] фиг. 6 - блок-схема кодера в соответствии с другим вариантом осуществления.[0036] FIG. 6 is a block diagram of an encoder in accordance with another embodiment.

[0037] фиг. 7 - блок-схема декодера в соответствии с другим вариантом осуществления.[0037] FIG. 7 is a block diagram of a decoder according to another embodiment.

[0038] фиг. 8А - деление блоков в соответствии с вариантом осуществления.[0038] FIG. 8A shows block division according to an embodiment.

[0039] фиг. 8В дерево деления блоков в соответствии с вариантом осуществления.[0039] FIG. 8B is a block division tree according to an embodiment.

[0040] фиг. 9А - деление вертикального центрально-бокового тернарного дерева в соответствии с вариантом осуществления.[0040] FIG. 9A is a division of a vertical center-side ternary tree according to an embodiment.

[0041] фиг. 9В - деление горизонтального центрально-бокового тернарного дерева в соответствии с вариантом осуществления.[0041] FIG. 9B is a division of a horizontal center-side ternary tree according to an embodiment.

[0042] фиг. 10A-10D - различные цветовые форматы в соответствии с вариантами осуществления.[0042] FIG. 10A-10D show various color formats according to embodiments.

[0043] фиг. 11 - пример кодера в соответствии с вариантом осуществления.[0043] FIG. 11 is an example of an encoder according to an embodiment.

[0044] фиг. 12 - пример декодера в соответствии с вариантом осуществления.[0044] FIG. 12 is an example of a decoder according to an embodiment.

[0045] фиг. 13 - прямая линия между минимальным и максимальным значением яркости в соответствии с вариантом осуществления.[0045] FIG. 13 is a straight line between the minimum and maximum brightness value according to the embodiment.

[0046] фиг. 14А и 14В - положения отсчетов для получения α and β в LT_CCLM в соответствии с вариантом осуществления.[0046] FIG. 14A and 14B show sample positions for obtaining α and β in LT_CCLM according to an embodiment.

[0047] фиг. 15А и 15В - положения отсчетов для получения α и β в Т_CCLM в соответствии с вариантом осуществления.[0047] FIG. 15A and 15B show sample positions for obtaining α and β in T_CCLM according to an embodiment.

[0048] фиг. 16А и 16В - положения отсчетов для получения α и β в L_CCLM в соответствии с вариантом осуществления.[0048] FIG. 16A and 16B show sample positions for obtaining α and β in L_CCLM according to an embodiment.

[0049] фиг. 17 - пример классификации соседних отсчетов в две группы в соответствии с вариантом осуществления.[0049] FIG. 17 is an example of classifying adjacent samples into two groups according to an embodiment.

[0050] фиг. 18 - схема кодера и декодера в соответствии с вариантом осуществления.[0050] FIG. 18 is a diagram of an encoder and decoder according to the embodiment.

[0051] фиг. 19 - схема варианта осуществления работы кодера.[0051] FIG. 19 is a diagram of an embodiment of the encoder.

[0052] фиг. 20 - схема варианта осуществления работы декодера.[0052] FIG. 20 is a diagram of an embodiment of a decoder.

[0053] фиг. 21 - схема компьютерной системы в соответствии с вариантом осуществления.[0053] FIG. 21 is a diagram of a computer system in accordance with an embodiment.

ПОДРОБНОЕ ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯDETAILED DESCRIPTION OF EMBODIMENTS

[0054] На фиг. 2 показана упрощенная блок-схема системы связи (200) согласно варианту осуществления настоящего изобретения. Система связи (200) включает в себя множество оконечных устройств, которые могут осуществлять связь друг с другом, например, через сеть (250). Например, система связи (200) включает в себя первую пару оконечных устройств (210) и (220), соединенных между собой через сеть (250). В примере, приведенном на фиг. 2, первая пара оконечных устройств (210) и (220) осуществляет однонаправленную передачу данных. Например, оконечное устройство (210) может кодировать видеоданные (например, поток видеоизображений, захваченных оконечным устройством (210)) для передачи в другое оконечное устройство (220) через сеть (250). Кодированные видеоданные могут передаваться в форме одного или более битовых потоков кодированного видео. Оконечное устройство (220) может принимать кодированные видеоданные из сети (250), декодировать кодированные видеоданные для восстановления видеоизображений и отображения видеоизображений согласно восстановленным видеоданным. Однонаправленная передача данных может быть свойственна приложениям служб массовой информации и т.п.[0054] FIG. 2 shows a simplified block diagram of a communication system (200) according to an embodiment of the present invention. The communication system (200) includes a plurality of terminal devices that can communicate with each other, for example, through a network (250). For example, the communication system (200) includes a first pair of terminals (210) and (220) interconnected via a network (250). In the example shown in FIG. 2, the first pair of terminals (210) and (220) performs a unidirectional data transfer. For example, a terminal device (210) may encode video data (eg, a video stream captured by a terminal device (210)) for transmission to another terminal device (220) via a network (250). The encoded video data may be transmitted in the form of one or more encoded video bitstreams. The terminal device (220) may receive the encoded video data from the network (250), decode the encoded video data to recover the video images, and display the video images according to the recovered video data. One-way communication may be inherent in media service applications and the like.

[0055] В другом примере, система связи (200) включает в себя вторую пару оконечных устройств (230) и (240), которые осуществляют двунаправленную передачу кодированных видеоданных, которые могут возникать, например, в ходе видеоконференцсвязи. Для двунаправленной передачи данных, в порядке примера, каждое оконечное устройство из оконечных устройств (230) и (240) может кодировать видеоданные (например, поток видеоизображений, захваченных оконечным устройством) для передачи в другое оконечное устройство из оконечных устройств (230) и (240) через сеть (250). Каждое оконечное устройство из оконечных устройств (230) и (240) также может принимать кодированные видеоданные, передаваемые другим оконечным устройством из оконечных устройств (230) и (240), и может декодировать кодированные видеоданные для восстановления видеоизображений и отображать видеоизображения на доступном устройстве отображения согласно восстановленным видеоданным.[0055] In another example, the communication system (200) includes a second pair of terminals (230) and (240) that carry out bi-directional transmission of encoded video data that may occur, for example, during a video conference. For bidirectional data communication, by way of example, each terminal of terminals (230) and (240) may encode video data (eg, a video stream captured by the terminal) for transmission to the other terminal of terminals (230) and (240). ) through the network (250). Each terminal of terminals (230) and (240) may also receive encoded video data transmitted by another terminal from terminals (230) and (240) and may decode the encoded video data to reconstruct video images and display video images on an available display device according to recovered video data.

[0056] В примере, приведенном на фиг. 2, оконечные устройства (210), (220), (230) и (240) могут быть проиллюстрированы как серверы, персональные компьютеры и смартфоны, но это не ограничивает принципы настоящего изобретения. Варианты осуществления настоящего изобретения находят применение для портативных компьютеров, планшетных компьютеров, медиаплееров и/или специального оборудования для видеоконференцсвязи. Сеть (250) представляет любое количество сетей, которые переносят кодированные видеоданные между оконечными устройствами (210), (220), (230) и (240), включая, например, проводные и/или беспроводные сети связи. Сеть связи (250) позволяет обмениваться данными в режиме канальной коммутации и/или пакетной коммутации. Иллюстративные сети включают в себя телекоммуникационные сети, локальные сети, глобальные сети и/или интернет. В целях настоящего рассмотрения, архитектура и топология сети (250) могут не иметь отношения к настоящему изобретению, если конкретно не указаны ниже.[0056] In the example shown in FIG. 2, terminal devices (210), (220), (230), and (240) can be illustrated as servers, personal computers, and smartphones, but this does not limit the principles of the present invention. Embodiments of the present invention find application in laptop computers, tablet computers, media players and/or dedicated video conferencing equipment. Network (250) represents any number of networks that carry encoded video data between terminals (210), (220), (230) and (240), including, for example, wired and/or wireless communication networks. The communication network (250) allows data to be exchanged in a circuit switched and/or packet switched mode. Exemplary networks include telecommunications networks, local area networks, wide area networks, and/or the Internet. For the purposes of this discussion, the architecture and topology of the network (250) may not be relevant to the present invention unless specifically noted below.

[0057] На фиг. 3 показано, в порядке примера применения раскрытого изобретения, размещение видеокодера и видеодекодера в окружении потоковой передачи. Раскрытое изобретение может быть в равной степени применимо к другим применениям обработки видео, включая, например, видеоконференцсвязь, цифровое телевидение, хранение сжатого видео на цифровых носителях, в том числе CD, DVD, карте памяти и т.п., и т.д.[0057] FIG. 3 shows, as an example of the application of the disclosed invention, the placement of a video encoder and a video decoder in a streaming environment. The disclosed invention may be equally applicable to other video processing applications, including, for example, videoconferencing, digital television, storage of compressed video on digital media, including CD, DVD, memory card, etc., etc.

[0058] Система потоковой передачи может включать в себя подсистему захвата (313), которая может включать в себя источник видеосигнала (301), например, цифровую камеру, создающую, например, поток видеоизображений (302), не подвергнутых сжатию. Например, поток видеоизображений (302) включает в себя отсчеты, взятые цифровой камерой. Поток видеоизображений (302), изображенный жирной линией, чтобы подчеркнуть большой объем данных по сравнению с кодированными видеоданными (304) (или битовыми потоками кодированного видео), может обрабатываться электронным устройством (320), которое включает в себя видеокодер (303), подключенный к источнику видеосигнала (301). Видеокодер (303) может включать в себя оборудование, программное обеспечение или их комбинацию для обеспечения или реализации аспектов раскрытого изобретения, как более подробно описано ниже. Кодированные видеоданные (304) (или битовый поток кодированного видео (304)), изображенные тонкой линией, чтобы подчеркнуть меньший объем данных по сравнению с потоком видеоизображений (302), могут храниться на потоковом сервере (305) для использования в будущем. Одна или более клиентских подсистем потоковой передачи, например, клиентские подсистемы (306) и (308) на фиг. 3, могут осуществлять доступ к потоковому серверу (305) для извлечения копий (307) и (309) кодированных видеоданных (304). Клиентская подсистема (306) может включать в себя видеодекодер (310), например, в электронном устройстве (330). Видеодекодер (310) декодирует входящую копию (307) кодированных видеоданных и создает исходящий поток видеоизображений (311), который может визуализироваться на дисплее (412) (например, отображающем экране) или другом устройстве визуализации (не показано). В некоторых системах потоковой передачи, кодированные видеоданные (304), (307) и (309) (например, битовые потоки видео) могут кодироваться согласно тем или иным стандартам кодирования/сжатия видео. Примеры этих стандартов включают в себя ITU-Т Recommendation Н.265. Например, разрабатывается стандарт видеокодирования под официальным названием "универсальное видеокодирование" (VVC, Versatile Video Coding). Раскрытое изобретение может использоваться в контексте VVC.[0058] The streaming system may include a capture subsystem (313), which may include a video signal source (301), such as a digital camera, creating, for example, an uncompressed video stream (302). For example, the video stream (302) includes samples taken by a digital camera. The video stream (302), shown in bold to highlight the large amount of data compared to the encoded video data (304) (or encoded video bitstreams), may be processed by an electronic device (320) that includes a video encoder (303) connected to video source (301). The video encoder (303) may include hardware, software, or a combination thereof for providing or implementing aspects of the disclosed invention, as described in more detail below. The encoded video data (304) (or the encoded video bitstream (304)), depicted with a thin line to emphasize the smaller amount of data compared to the video stream (302), may be stored on the streaming server (305) for future use. One or more streaming client subsystems, such as client subsystems (306) and (308) in FIG. 3 may access the streaming server (305) to retrieve copies (307) and (309) of the encoded video data (304). The client subsystem (306) may include a video decoder (310), such as in an electronic device (330). The video decoder (310) decodes the incoming copy (307) of the encoded video data and creates an outgoing video stream (311) that can be rendered on a display (412) (eg, a display screen) or other rendering device (not shown). In some streaming systems, the encoded video data (304), (307), and (309) (eg, video bitstreams) may be encoded according to one or another video coding/compression standard. Examples of these standards include ITU-T Recommendation H.265. For example, a video coding standard is being developed under the official name "universal video coding" (VVC, Versatile Video Coding). The disclosed invention may be used in the context of VVC.

[0059] Заметим, что электронные устройства (320) и (330) могут включать в себя другие компоненты (не показаны). Например, электронное устройство (320) может включать в себя видеодекодер (не показан), и электронное устройство (330) также может включать в себя видеокодер (не показан).[0059] Note that the electronic devices (320) and (330) may include other components (not shown). For example, electronic device (320) may include a video decoder (not shown), and electronic device (330) may also include a video encoder (not shown).

[0060] На фиг. 4 показана блок-схема видеодекодера (410) согласно варианту осуществления настоящего изобретения. Видеодекодер (410) может входить в состав электронного устройства (430). Электронное устройство (430) может включать в себя приемник (431) (например, приемные схемы). Видеодекодер (410) может использоваться вместо видеодекодера (310) в примере, приведенном на фиг. 3.[0060] FIG. 4 shows a block diagram of a video decoder (410) according to an embodiment of the present invention. The video decoder (410) may be included in the electronic device (430). The electronic device (430) may include a receiver (431) (eg, receiver circuits). Video decoder (410) may be used instead of video decoder (310) in the example shown in FIG. 3.

[0061] Приемник (431) может принимать одну или более кодированных видеопоследовательностей для декодирования видеодекодером (410); в том же или другом варианте осуществления, по одной кодированной видеопоследовательности за раз, где декодирование каждой кодированной видеопоследовательности не зависит от других кодированных видеопоследовательностей. Кодированная видеопоследовательность может приниматься из канала (401), который может быть аппаратной/программной линией связи с запоминающим устройством, где хранятся кодированные видеоданные. Приемник (431) может принимать кодированные видеоданные с другими данными, например, кодированными аудиоданными и/или вспомогательными потоками данных, которые могут ретранслироваться на соответствующие использующие их объекты (не показаны). Приемник (431) может отделять кодированную видеопоследовательность от других данных. Для борьбы с джиттером сети, буферная память (415) может быть подключена между приемником (431) и энтропийным декодером / анализатором (420) (далее "анализатором (420)"). В некоторых вариантах применения буферная память (415) входит в состав видеодекодера (410). В других она может не входить в состав видеодекодера (410) (не показан). В прочих вариантах может существовать буферная память (не показана) вне видеодекодера (410), например, для борьбы с джиттером сети, помимо другой буферной памяти (415) в составе видеодекодера (410), например, для управления хронированием проигрывания. Когда приемник (431) принимает данные от устройства хранения/ретрансляции с достаточной полосой и управляемостью или из изосинхронной сети, буферная память (415) может быть не нужна или может быть мала. Для использования в пакетных сетях наилучшей попытки, например, Интернете, буферная память (415) может требоваться, может быть сравнительно большой и может иметь преимущественно адаптивный размер, и по меньшей мере частично может быть реализована в операционной системе или аналогичных элементах (не показаны) вне видеодекодера (410).[0061] The receiver (431) may receive one or more encoded video sequences for decoding by the video decoder (410); in the same or another embodiment, one coded video sequence at a time, where the decoding of each coded video sequence is independent of other coded video sequences. The encoded video sequence may be received from a channel (401), which may be a hardware/software link to a storage device where the encoded video data is stored. The receiver (431) may receive the encoded video data with other data, such as encoded audio data and/or auxiliary data streams, which may be relayed to their respective utilizing entities (not shown). The receiver (431) may separate the encoded video sequence from other data. To combat network jitter, a buffer memory (415) may be connected between the receiver (431) and the entropy decoder/analyzer (420) (hereinafter "analyzer (420)"). In some applications, the buffer memory (415) is included in the video decoder (410). In others, it may not be part of the video decoder (410) (not shown). In other embodiments, there may be a buffer memory (not shown) outside the video decoder (410), for example, to combat network jitter, in addition to another buffer memory (415) within the video decoder (410), for example, to control playback timing. When the receiver (431) receives data from a storage/relay device with sufficient bandwidth and controllability, or from an isosynchronous network, the buffer memory (415) may not be needed or may be small. For use in best attempt packet networks, such as the Internet, buffer memory (415) may be required, may be relatively large, and may have a predominantly adaptive size, and may at least partially be implemented in an operating system or similar elements (not shown) outside video decoder (410).

[0062] Видеодекодер (410) может включать в себя анализатор (420) для реконструкции символов (421) из кодированной видеопоследовательности. Категории этих символов включают в себя информацию, используемую для управления работой видеодекодера (410), и возможно информацию для управления устройством визуализации, например, устройством визуализации (412) (например, отображающим экраном), которое не является частью электронного устройства (430), а может быть подключено к электронному устройству (430), как показано на фиг. 4. Информация управления для устройств(а) визуализации может представлять собой сообщения информации дополнительного улучшения (SEI, Supplemental Enhancement Information) или фрагменты набора параметров информации пригодности видео (VUI, Video Usability Information) (не показаны). Анализатор (420) может анализировать / энтропийно декодировать принятую кодированную видеопоследовательность. Кодирование кодированной видеопоследовательности может соответствовать технологии или стандарту видеокодирования и может следовать различным принципам, в том числе кодированию с переменной длиной серии, кодированию по Хаффману, арифметическому кодированию с контекстной чувствительностью или без нее и т.д. Анализатор (420) может извлекать из кодированной видеопоследовательности набор параметров подгруппы для по меньшей мере одной из подгрупп пикселей в видеодекодере на основании по меньшей мере одного параметра, соответствующего группе. Подгруппы могут включать в себя группы изображений (GOP, Groups of Pictures), изображения, тайлы, слайсы, макроблоки, единицы кодирования (CU, Coding Units), блоки, единицы преобразования (TU, Transform Units), единицы предсказания (PU, Prediction Units) и т.д. Анализатор (420) также может извлекать из кодированной видеопоследовательности информацию, например, коэффициенты преобразования, значения параметров квантователя, векторы движения и т.д.[0062] The video decoder (410) may include an analyzer (420) for reconstructing the symbols (421) from the encoded video sequence. The categories of these symbols include information used to control the operation of the video decoder (410) and possibly information to control a visualization device such as a visualization device (412) (for example, a display screen) that is not part of the electronic device (430), but may be connected to an electronic device (430) as shown in FIG. 4. The control information for the rendering device(s) may be Supplemental Enhancement Information (SEI) messages or Video Usability Information (VUI) parameter set fragments (not shown). The analyzer (420) may analyze/entropy decode the received encoded video sequence. Encoding of the encoded video sequence may follow a video coding technology or standard and may follow various principles, including variable run length coding, Huffman coding, arithmetic coding with or without context sensitivity, and so on. The analyzer (420) can extract from the encoded video sequence a set of subgroup parameters for at least one of the subgroups of pixels in the video decoder based on at least one parameter corresponding to the group. Subgroups may include groups of pictures (GOP, Groups of Pictures), images, tiles, slices, macroblocks, coding units (CU, Coding Units), blocks, transformation units (TU, Transform Units), prediction units (PU, Prediction Units ) etc. The analyzer (420) can also extract information from the encoded video sequence, such as transform coefficients, quantizer parameter values, motion vectors, and so on.

[0063] Анализатор (420) может осуществлять операцию энтропийного декодирования / анализа видеопоследовательности, принятой из буферной памяти (415), для создания символов (421).[0063] The analyzer (420) may perform an entropy decoding/analysis operation of the video sequence received from the buffer memory (415) to create symbols (421).

[0064] Для реконструкции символов (421) могут использоваться несколько разных модулей в зависимости от типа кодированного видеоизображения или его частей (например: интер- и интра-изображения, интер- и интра-блока) и других факторов. Какие модули используются, и как, может определяться информацией управления подгруппами, выделенной из кодированной видеопоследовательности анализатором (420). Поток такой информации управления подгруппами между анализатором (420) и множественными модулями для простоты в дальнейшем не показан.[0064] Several different modules may be used for symbol reconstruction (421) depending on the type of encoded video image or parts thereof (eg: inter- and intra-pictures, inter- and intra-block) and other factors. Which modules are used, and how, may be determined by the subgroup management information extracted from the encoded video sequence by the analyzer (420). The flow of such subgroup management information between the analyzer (420) and multiple modules is not shown hereinafter for simplicity.

[0065] Помимо ранее упомянутых функциональных блоков, видеодекодер (410) может принципиально подразделяться на несколько функциональных модулей, как описано ниже. В практической реализации, работающей в условиях коммерческих ограничений, многие из этих модулей тесно взаимодействуют друг с другом и могут, по меньшей мере частично, встраиваться один в другой. Однако в целях описания раскрытого изобретения уместно принципиальное подразделение на нижеперечисленные функциональные модули.[0065] In addition to the previously mentioned functional blocks, the video decoder (410) can be fundamentally divided into several functional modules, as described below. In a practical implementation operating under commercial constraints, many of these modules interact closely with one another and can, at least partially, be nested within one another. However, for the purposes of describing the disclosed invention, a fundamental subdivision into the following functional modules is appropriate.

[0066] Первым модулем является модуль масштабирования / обратного преобразования (451). Модуль масштабирования / обратного преобразования (451) принимает квантованный коэффициент преобразования, а также информацию управления, включающую в себя используемое преобразование, размер блока, коэффициент квантования, матрицы масштабирования квантования и т.д. в качестве символа(ов) (421) от анализатора (420). Модуль масштабирования / обратного преобразования (451) может выводить блоки, содержащие значения отсчетов, которые можно вводить в агрегатор (455).[0066] The first module is the scaling/inverse transform module (451). The scaling/inverse transform module (451) receives the quantized transform coefficient as well as control information including the transform used, block size, quantization factor, quantization scaling matrices, and so on. as character(s) (421) from the analyzer (420). The scaling/inverse transform module (451) can output blocks containing sample values that can be input to the aggregator (455).

[0067] В ряде случаев, выходные отсчеты блока масштабирования / обратного преобразования (451) могут относиться к внутренне-кодированному блоку; то есть к блоку, который не использует предсказанную информацию из ранее реконструированных изображений, но может использовать предсказанную информацию из ранее реконструированных частей текущего изображения. Такая предсказанная информация может обеспечиваться модулем предсказания внутри изображения (452). В ряде случаев модуль предсказания внутри изображения (452) генерирует блок такого же размера и формы как блок, подлежащий реконструкции, с использованием информации ранее реконструированного окружения, извлеченной из буфера текущего изображения (458). Буфер текущего изображения (458) буферизует, например, частично реконструированное текущее изображение и/или полностью реконструированное текущее изображение. Агрегатор (455) в ряде случаев добавляет для каждого отсчета информацию предсказания, генерированную модулем внутреннего предсказания (452), в информацию выходных отсчетов, обеспеченную модулем масштабирования / обратного преобразования (451).[0067] In some cases, the output samples of the scaling/inverse transform block (451) may refer to an intra-coded block; that is, to a block that does not use predicted information from previously reconstructed images, but may use predicted information from previously reconstructed portions of the current image. Such predicted information may be provided by an intra-picture prediction module (452). In some cases, the intra-image prediction module (452) generates a block of the same size and shape as the block to be reconstructed using the previously reconstructed environment information retrieved from the current image buffer (458). The current picture buffer (458) buffers, for example, a partially reconstructed current picture and/or a fully reconstructed current picture. The aggregator (455) in some cases adds, for each sample, the prediction information generated by the intra prediction module (452) to the output sample information provided by the scaling/inverse transform module (451).

[0068] В других случаях выходные отсчеты модуля масштабирования / обратного преобразования (451) могут относиться к внутренне кодированному блоку, возможно, с компенсацией движения. В таком случае, модуль предсказания с компенсацией движения (453) может осуществлять доступ к памяти опорных изображений (457) для извлечения отсчетов, используемых для предсказания. После применения компенсации движения к извлеченным отсчетам в соответствии с символами (421), относящимися к блоку, эти отсчеты могут добавляться агрегатором (455) к выходному сигналу модуля масштабирования / обратного преобразования (451) (в этом случае именуемому остаточными отсчетами или остаточным сигналом) для генерации информации выходных отсчетов. Адреса в памяти опорных изображений (457), откуда модуль предсказания с компенсацией движения (453) извлекает предсказанные отсчеты, могут регулироваться векторами движения, доступными модулю предсказания с компенсацией движения (453), в форме символов (421), которые могут иметь, например, компоненты X, Y и опорного изображения. Компенсация движения также может включать в себя интерполяцию значений отсчетов, извлеченных из памяти опорных изображений (457), когда используются точные векторы движения под-отсчетов, механизмы предсказания векторов движения и т.д.[0068] In other cases, the output samples of the scaler / demapper (451) may refer to an intra-coded block, possibly with motion compensation. In such a case, the motion compensation prediction module (453) may access the reference picture memory (457) to retrieve samples used for prediction. After motion compensation is applied to the extracted samples according to the symbols (421) associated with the block, these samples can be added by the aggregator (455) to the output signal of the scaler / inverse transform module (451) (in this case referred to as residual samples or residual signal) for generation of output sample information. The addresses in the reference picture memory (457) from where the motion compensation prediction module (453) retrieves the predicted samples may be governed by the motion vectors available to the motion compensation prediction module (453) in the form of symbols (421), which may have, for example, X, Y components and reference image. Motion compensation may also include interpolation of sample values retrieved from reference picture memory (457) when accurate sub-sample motion vectors, motion vector prediction mechanisms, etc. are used.

[0069] К выходным отсчетам агрегатора (455) можно применять различные методы контурной фильтрации в модуле контурного фильтра (456). Технологии сжатия видео могут включать в себя технологии деблокирующего фильтра под управлением параметров, включенных в кодированную видеопоследовательность (также именуемую битовым потоком кодированного видео) и становиться доступными модулю контурного фильтра (456) в качестве символов (421) от анализатора (420), но также могут реагировать на метаинформацию, полученную в ходе декодирования предыдущих (в порядке декодирования) частей кодированного изображения или кодированной видеопоследовательности, а также реагировать на ранее реконструированные и подвергнутые контурной фильтрации значения отсчетов.[0069] Various loop filtering methods can be applied to the output samples of the aggregator (455) in the loop filter module (456). The video compression technologies may include deblocking filter technologies driven by parameters included in the encoded video sequence (also referred to as the encoded video bitstream) and made available to the loop filter module (456) as symbols (421) from the analyzer (420), but may also respond to meta-information obtained during the decoding of the previous (in the order of decoding) parts of the encoded image or encoded video sequence, as well as respond to previously reconstructed and loop-filtered sample values.

[0070] Модуль контурного фильтра (456) может выдавать поток отсчетов, который может поступать на устройство визуализации (412), а также сохраняться в памяти опорных изображений (457) для использования в будущем предсказании между изображениями.[0070] The loop filter module (456) may provide a stream of samples that may be fed to the renderer (412) and also stored in reference picture memory (457) for use in future inter-picture prediction.

[0071] Некоторые кодированные изображения, будучи полностью реконструированы, могут использоваться в качестве опорных изображений для будущего предсказания. Например, когда кодированное изображение, соответствующее текущему изображению, полностью реконструировано, и кодированное изображение идентифицировано как опорное изображение (например, анализатором (420)), буфер текущего изображения (458) может становиться частью памяти опорных изображений (457), и свежий буфер текущего изображения может повторно выделяться до начала реконструкции следующего кодированного изображения.[0071] Some encoded pictures, when fully reconstructed, can be used as reference pictures for future prediction. For example, when the encoded picture corresponding to the current picture is completely reconstructed and the encoded picture is identified as a reference picture (eg, by the analyzer (420)), the current picture buffer (458) may become part of the reference picture memory (457), and a fresh current picture buffer may be re-allocated before the reconstruction of the next encoded picture starts.

[0072] Видеодекодер (410) может осуществлять операции декодирования согласно заранее заданной технологии сжатия видео, например, по стандарту ITU-T Rec. Н.265. Кодированная видеопоследовательность может согласовываться с синтаксисом, заданным используемой/ым технологией или стандартом сжатия видео, в том смысле, что кодированная видеопоследовательность может придерживаться как синтаксиса технологии или стандарта сжатия видео, так и профилей, задокументированных в технологии или стандарте сжатия видео. В частности, профиль может выбирать некоторые инструменты как инструменты, доступные для использования только под этим профилем, из всех инструментов, доступных в технологии или стандарте сжатия видео. Также для согласованности может быть необходимо, чтобы сложность кодированной видеопоследовательности оставалась в границах, заданных уровнем технологии или стандарта сжатия видео. В ряде случаев, уровни ограничивают максимальный размер изображения, максимальную частоту кадров, максимальную частоту отсчетов для реконструкции (измеряемую, например, в мегаотсчетах в секунду), максимальный размер опорного изображения и т.д. Пределы, установленные уровнями, в ряде случаев могут дополнительно ограничиваться спецификациями гипотетического эталонного декодера (HRD, Hypothetical Reference Decoder) и метаданными для управления буфером HRD, сигнализируемыми в кодированной видеопоследовательности.[0072] The video decoder (410) may perform decoding operations according to a predetermined video compression technology, such as the ITU-T Rec. H.265. The encoded video sequence may conform to the syntax defined by the used video compression technology or standard, in the sense that the encoded video sequence may adhere to both the syntax of the video compression technology or standard and the profiles documented in the video compression technology or standard. In particular, a profile may select certain tools as tools available for use only under that profile, from among all the tools available in a video compression technology or standard. It may also be necessary for consistency that the complexity of the encoded video sequence remain within the boundaries set by the video compression technology level or standard. In some cases, the levels limit the maximum image size, the maximum frame rate, the maximum sampling rate for reconstruction (measured in megasamples per second, for example), the maximum reference image size, and so on. The limits set by the levels, in some cases, may be further limited by the specifications of the Hypothetical Reference Decoder (HRD) and the metadata for managing the HRD buffer signaled in the encoded video sequence.

[0073] Согласно варианту осуществления, приемник (431) может принимать дополнительные (избыточные) данные с кодированным видео. Дополнительные данные могут быть включены как часть кодированной(ых) видеопоследовательности(ей). Дополнительные данные могут использоваться видеодекодером (410) для правильного декодирования данных и/или более точной реконструкции исходных видеоданных. Дополнительные данные могут представлять собой, например, слои улучшения во времени, пространстве или для отношения сигнал/шум (SNR, signal noise ratio), избыточные слайсы, избыточные изображения, коды прямой коррекции ошибок и т.д.[0073] According to an embodiment, the receiver (431) may receive additional (redundant) data with encoded video. Additional data may be included as part of the encoded video sequence(s). The additional data may be used by the video decoder (410) to correctly decode the data and/or more accurately reconstruct the original video data. The additional data may be, for example, enhancement layers in time, space, or signal-to-noise ratio (SNR), redundant slices, redundant images, forward error correction codes, and so on.

[0074] На фиг. 5 показана блок-схема видеокодера (503) согласно варианту осуществления настоящего изобретения. Видеокодер (503) входит в состав электронного устройства (520). Электронное устройство (520) включает в себя передатчик (540) (например, передающую схему). Видеокодер (503) может использоваться вместо видеокодера (303) в примере, приведенном на фиг. 3.[0074] FIG. 5 shows a block diagram of a video encoder (503) according to an embodiment of the present invention. The video encoder (503) is included in the electronic device (520). The electronic device (520) includes a transmitter (540) (eg, a transmission circuit). Video encoder (503) may be used instead of video encoder (303) in the example shown in FIG. 3.

[0075] Видеокодер (503) может принимать отсчеты видео от источника видеосигнала (501) (который не входит в состав электронного устройства (520) в примере, показанном на фиг. 5), который может захватывать видеоизображение(я), подлежащее(ие) кодированию видеокодером (503). В другом примере источник видеосигнала (501) входит в состав электронного устройства (520).[0075] The video encoder (503) may receive video samples from a video source (501) (which is not part of the electronic device (520) in the example shown in FIG. 5) that may capture the video image(s) to be encoding with a video encoder (503). In another example, the video signal source (501) is included in the electronic device (520).

[0076] Источник видеосигнала (501) может обеспечивать исходную видеопоследовательность, подлежащую кодированию видеокодером (503) в форме потока отсчетов цифрового видео любой подходящей битовой глубины (например: 8 бит, 10 бит, 12 бит, …), любого цветового пространства (например, ВТ.601 Y CrCB, RGB, …), и любой подходящей структуры дискретизации (например, Y CrCb 4:2:0, Y CrCb 4:4:4). В системе службы массовой информации источником видеосигнала (501) может быть запоминающее устройство, где хранится ранее подготовленное видео. В системе видеоконференцсвязи источником видеосигнала (501) может быть камера, которая захватывает информацию локального изображения как видеопоследовательность. Видеоданные могут обеспечиваться как множество отдельных изображений, которые создают ощущение движения при наблюдении в последовательности. Сами изображения могут быть организованы как пространственный массив пикселей, где каждый пиксель может содержать один или более отсчетов в зависимости от используемых структуры дискретизации, цветового пространства и т.д. Специалисту в данной области техники нетрудно понять соотношение между пикселями и отсчетами. Нижеследующее описание посвящено отсчетам.[0076] The video source (501) may provide the source video sequence to be encoded by the video encoder (503) in the form of a digital video sample stream of any suitable bit depth (eg: 8 bit, 10 bit, 12 bit, ...), any color space (eg, BT.601 Y CrCB, RGB, ...) and any suitable sampling structure (eg Y CrCb 4:2:0, Y CrCb 4:4:4). In a media service system, the video source (501) may be a storage device where previously prepared video is stored. In a videoconferencing system, the video source (501) may be a camera that captures local image information as a video sequence. The video data may be provided as a plurality of individual images that give a sense of movement when viewed in sequence. The images themselves may be organized as a spatial array of pixels, where each pixel may contain one or more samples depending on the sampling structure, color space, etc. used. It is not difficult for a person skilled in the art to understand the relationship between pixels and samples. The following description is about readings.

[0077] Согласно варианту осуществления, видеокодер (503) может кодировать и сжимать изображения исходной видеопоследовательности в кодированную видеопоследовательность (543) в реальном времени или с учетом любых других временных ограничений, налагаемых применением. Установление надлежащей скорости кодирования является одной из функций контроллера (550). В некоторых вариантах осуществления контроллер (550) управляет другими функциональными модулями, как описано ниже, и функционально подключен к другим функциональным модулям. Подключение для простоты не показано. Параметры, установленные контроллером (550), могут включать в себя параметры, связанные с регулировкой частоты (пропуск изображения, квантователь, значение лямбда, применяемое при оптимизация скорости-искажения, …), размер изображения, схему групп изображений (GOP, group of pictures), максимальную зону поиска вектора движения и т.д. Контроллер (550) может быть выполнен с возможностью иметь другие подходящие функции, относящиеся к видеокодеру (503), оптимизированному для той или иной конструкции системы.[0077] According to an embodiment, the video encoder (503) can encode and compress images of the original video sequence into the encoded video sequence (543) in real time or subject to any other time constraints imposed by the application. Establishing a proper coding rate is one of the functions of the controller (550). In some embodiments, the controller (550) controls other functional modules, as described below, and is operatively connected to other functional modules. The connection is not shown for simplicity. The parameters set by the controller (550) may include parameters related to frequency adjustment (picture skip, quantizer, lambda value applied in rate-distortion optimization, ...), picture size, group of pictures scheme (GOP, group of pictures) , maximum motion vector search area, etc. The controller (550) may be configured to have other suitable functions related to the video encoder (503) optimized for a given system design.

[0078] В некоторых вариантах осуществления видеокодер (503) выполнен с возможностью работать в петле кодирования. В качестве очень упрощенного описания, в порядке примера, петля кодирования может включать в себя исходный кодер (530) (например, отвечающий за создание символов, например, потока символов, на основе входного изображения, подлежащего кодированию, и опорного(ых) изображения(ий)) и (локальный) декодер (533), встроенный в видеокодер (503). Декодер (533) реконструирует символы для создания данных отсчетов, аналогично тому, как это делал бы (удаленный) декодер (поскольку любое сжатие между символами и битовым потоком кодированного видео происходит без потерь в технологиях сжатия видео, рассматриваемых в раскрытом изобретении). Реконструированный поток отсчетов (данные отсчетов) поступают в память опорных изображений (534). Поскольку декодирование потока символов приводит к результатам, с точностью до бита, не зависящим от положения декодера (локального или удаленного), содержимое памяти опорных изображений (534) также будет одинаковым с точностью до бита для локального и удаленного кодера. Другими словами, предсказанная часть кодера "видит" в качестве отсчетов опорного изображения точно такие же значения отсчетов, как "видел" бы декодер при использовании предсказания в ходе декодирования. Этот фундаментальный принцип синхронизма опорного изображения (и, в итоге, дрейф, если синхронизм не удается поддерживать, например, вследствие канальных ошибок) используется также в некоторых связанных областях техники.[0078] In some embodiments, the video encoder (503) is configured to operate in a coding loop. As a very simplified description, by way of example, an encoding loop may include a source encoder (530) (e.g., responsible for generating symbols, e.g., a stream of symbols, based on the input image to be encoded and the reference image(s) )) and a (local) decoder (533) built into the video encoder (503). The decoder (533) reconstructs the symbols to create sample data, in a similar manner as a (remote) decoder would (because any compression between the symbols and the encoded video bitstream is lossless in the video compression technologies of the disclosed invention). The reconstructed sample stream (sample data) enters the reference picture memory (534). Since the decoding of the symbol stream results in bit-accurate results independent of the position of the decoder (local or remote), the contents of the reference picture memory (534) will also be the same bit-accurate for the local and remote encoder. In other words, the predicted portion of the encoder "sees" as reference picture samples exactly the same sample values as the decoder would "see" if using prediction during decoding. This fundamental principle of reference picture synchronism (and eventually drift if synchronism cannot be maintained, for example due to channel errors) is also used in some related fields of technology.

[0079] "Локальный" декодер (533) может действовать таким же образом, как "удаленный" декодер, например, видеодекодер (410), подробно вышеописанный со ссылкой на фиг. 4. Однако, опять же, согласно фиг. 4, поскольку символы доступны, и кодирование/декодирование символов в кодированную видеопоследовательность энтропийным кодером (545) и анализатором (420) может осуществляться без потерь, части энтропийного декодирования видеодекодера (410), включающие в себя буферную память (415) и анализатор (420), могут быть не полностью реализованы в локальном декодере (533).[0079] A "local" decoder (533) may operate in the same manner as a "remote" decoder, such as the video decoder (410) detailed above with reference to FIG. 4. However, again, referring to FIG. 4, since the symbols are available and the entropy encoder (545) and analyzer (420) can be losslessly encoded/decoded into the encoded video sequence, the entropy decoding parts of the video decoder (410) including the buffer memory (415) and the analyzer (420) , may not be fully implemented in the local decoder (533).

[0080] При этом можно сделать вывод, что любая технология декодирования, присутствующая в декодере, за исключением анализа/энтропийного декодирования, также обязательно должна присутствовать, по существу в идентичной функциональной форме, в соответствующем кодере. По этой причине раскрытое изобретение сконцентрировано на работе декодера. Описание технологий кодирования может быть сокращено, поскольку они являются обратными подробно описанным технологиям декодированная. Только в некоторых областях требуется более детальное описание, которое приведено ниже.[0080] It can thus be concluded that any decoding technology present in a decoder, with the exception of analysis/entropy decoding, must also be present, in substantially identical functional form, in the corresponding encoder. For this reason, the disclosed invention is focused on the operation of the decoder. The description of encoding technologies can be abbreviated as they are the inverse of the decoded technologies described in detail. Only in some areas a more detailed description is required, which is given below.

[0081] Согласно некоторым примерам, в ходе работы исходный кодер (530) может осуществлять кодирование с предсказанием и компенсацией движения, при котором входное изображение кодируется с предсказанием на основании одного или более ранее кодированных изображений из видеопоследовательности, указанных как "опорные изображения". Таким образом, машина кодирования (532) кодирует различия между пиксельными блоками входного изображения и пиксельными блоками опорного изображения(й), которое(ые) может(ут) выбираться в качестве предсказанной(ых) ссылки(ок) на входное изображение.[0081] According to some examples, in operation, source encoder (530) may perform motion-compensated predictive coding, in which an input picture is predictively encoded based on one or more previously encoded pictures from a video sequence, referred to as "reference pictures". Thus, the encoding engine (532) encodes the differences between the pixel blocks of the input image and the pixel blocks of the reference image(s) that can be selected as the predicted reference(s) to the input image.

[0082] Локальный видеодекодер (533) может декодировать кодированные видеоданные изображений, которые могут быть указаны как опорные изображения, на основе символов, созданных исходным кодером (530). Операции машины кодирования (532) могут быть преимущественно процессами с потерями. Когда кодированные видеоданные могут декодироваться в видеодекодере (не показан на фиг. 5), реконструированная видеопоследовательность обычно может представлять собой копию исходной видеопоследовательности с некоторыми ошибками. Локальный видеодекодер (533) дублирует процессы декодирования, которые могут осуществляться видеодекодером на опорных изображениях, и может предписывать сохранение реконструированных опорных изображений в кэш-памяти (534) опорных изображений. Таким образом, видеокодер (503) может локально сохранять копии реконструированных опорных изображений, имеющие такое же содержимое, как реконструированные опорные изображения, которые будут получены видеодекодером на стороне приемника (в отсутствие ошибок передачи).[0082] The local video decoder (533) may decode the encoded video data of pictures that can be specified as reference pictures based on the symbols generated by the source encoder (530). The operations of the encoding engine (532) may be predominantly lossy processes. When the encoded video data can be decoded in a video decoder (not shown in FIG. 5), the reconstructed video sequence can typically be a copy of the original video sequence with some errors. The local video decoder (533) duplicates the decoding processes that may be performed by the video decoder on the reference pictures and may cause the reconstructed reference pictures to be stored in the reference picture cache (534). Thus, the video encoder (503) can locally store copies of the reconstructed reference pictures having the same content as the reconstructed reference pictures to be received by the video decoder at the receiver side (in the absence of transmission errors).

[0083] Предсказатель (535) может осуществлять поиски предсказания для машины кодирования (532). Таким образом, для нового изображения, подлежащего кодированию, предсказатель (535) может искать в памяти опорных изображений (534) данные отсчетов (в качестве кандидатов на роль опорных пиксельных блоков) или те или иные метаданные, например, векторы движения опорного изображения, формы блоков и т.д., которые могут служить надлежащей ссылкой для предсказания новых изображений. Предсказатель (535) может работать на основе "блоки отсчетов -пиксельные блоки", чтобы находить надлежащие ссылки для предсказания. В ряде случаев, согласно результатам поиска, полученным предсказателем (535), входное изображение может иметь ссылки для предсказания, извлеченные из множества опорных изображений, хранящихся в памяти опорных изображений (534).[0083] The predictor (535) may perform prediction searches for the encoding engine (532). Thus, for a new picture to be encoded, the predictor (535) can search the reference picture memory (534) for sample data (as candidates for the role of reference pixel blocks) or some metadata, for example, motion vectors of the reference picture, block shapes etc., which can serve as a proper reference for predicting new images. The predictor (535) may operate on a sample-block-pixel-block basis to find the proper references for prediction. In some cases, according to the search results obtained by the predictor (535), the input picture may have prediction references extracted from the plurality of reference pictures stored in the reference picture memory (534).

[0084] Контроллер (550) может управлять операциями кодирования исходного кодера (530), включая, например, установление параметров и параметров подгруппы, используемых для кодирования видеоданных.[0084] The controller (550) may control the encoding operations of the source encoder (530), including, for example, setting parameters and subgroup parameters used to encode video data.

[0085] Выходной сигнал всех вышеупомянутых функциональных модулей может подвергаться энтропийному кодированию в энтропийном кодере (545). Энтропийный кодер (545) преобразует символы, сгенерированные различными функциональными модулями, в кодированную видеопоследовательность путем сжатия символов без потерь согласно технологиям, например, кодирования по Хаффману, кодирования с переменной длиной серии, арифметического кодирования и т.д.[0085] The output signal of all the above functional modules can be entropy encoded in an entropy encoder (545). An entropy encoder (545) converts the symbols generated by the various functional units into an encoded video sequence by lossless symbol compression according to techniques such as Huffman coding, variable run length coding, arithmetic coding, and so on.

[0086] Передатчик (540) может буферизовать кодированную(ые) видеопоследовательность(и), созданную энтропийным кодером (545), для подготовки к передаче через канал связи (560), который может быть аппаратной/программной линией связи с запоминающим устройством, где хранятся кодированные видеоданные. Передатчик (540) может объединять кодированные видеоданные от видеокодера (503) с другими данными, подлежащими передаче, например, кодированными аудиоданными и/или вспомогательными потоками данных (источники не показаны).[0086] The transmitter (540) may buffer the encoded video sequence(s) created by the entropy encoder (545) in preparation for transmission over a communication channel (560), which may be a hardware/software link to a storage device where encoded video data. The transmitter (540) may combine the encoded video data from the video encoder (503) with other data to be transmitted, such as encoded audio data and/or auxiliary data streams (sources not shown).

[0087] Контроллер (550) может управлять работой видеокодера (503). В ходе кодирования контроллер (550) может назначать каждому кодированному изображению тот или иной тип кодированного изображения, который может определять методы кодирования, применимые к соответствующему изображению. Например, изображениям часто могут назначаться следующие типы изображения:[0087] The controller (550) may control the operation of the video encoder (503). During encoding, the controller (550) may assign to each encoded picture an encoded picture type, which may determine the encoding methods applicable to the corresponding picture. For example, images can often be assigned the following image types:

[0088] Интра-изображение (I-изображение), которое можно кодировать и декодировать без использования какого-либо другого изображения в последовательности как источника предсказания. Некоторые видеокодеки допускают разные типы интра-изображений, включая, например, изображения в формате независимого обновления декодера ("IDR", Independent Decoder Refresh). Специалисту в данной области техники известны разновидности 1-изображений и их соответствующие варианты применения и особенности.[0088] An intra-picture (I-picture) that can be encoded and decoded without using any other picture in the sequence as a prediction source. Some video codecs allow different types of intra-pictures, including, for example, pictures in the Independent Decoder Refresh ("IDR" format). One skilled in the art will be aware of the 1-image varieties and their respective uses and features.

[0089] Предсказанное изображение (Р-изображение), которое можно кодировать и декодировать с использованием внутреннего предсказания или внешнего предсказания с использованием не более одного вектора движения и опорного индекса для предсказания значений отсчетов каждого блока.[0089] A predicted picture (P-picture) that can be encoded and decoded using intra prediction or inter prediction using at most one motion vector and reference index to predict sample values of each block.

[0090] Двунаправленно-предсказанное изображение (В-изображение), которое можно кодировать и декодировать с использованием внутреннего предсказания или внешнего предсказания посредством не более двух векторов движения и опорных индексов для предсказания значений отсчетов каждого блока. Аналогично, мультипредсказанные изображения могут использовать более двух опорных изображений и связанные метаданные для реконструкции единого блока.[0090] A bi-directionally predicted picture (B-picture) that can be encoded and decoded using intra prediction or inter prediction with no more than two motion vectors and reference indices to predict sample values of each block. Likewise, multi-predicted pictures may use more than two reference pictures and associated metadata to reconstruct a single block.

[0091] Исходные изображения обычно допускают пространственное разделение на множество блоков отсчетов (например, блоки 4x4, 8x8, 4x8 или 16x16 отсчетов каждый) и кодирование на поблочной основе (блок за блоком). Блоки могут кодироваться предиктивно со ссылкой на другие (ранее кодированные) блоки, определенные назначением кодирования, применяемым к соответствующим изображениям этих блоков. Например, блоки I-изображений могут кодироваться без предсказания или с предсказанием со ссылкой на ранее кодированные блоки того же изображения (пространственным предсказанием или внутренним предсказанием). Пиксельные блоки Р-изображений могут кодироваться с предсказанием, посредством пространственного предсказания или временного предсказания со ссылкой на одно ранее кодированное опорное изображение. Блоки В-изображений могут кодироваться с предсказанием, посредством пространственного предсказания или временного предсказания со ссылкой на одно или два ранее кодированных опорных изображения.[0091] Source images typically allow for spatial division into multiple blocks of samples (eg, blocks of 4x4, 8x8, 4x8, or 16x16 samples each) and coding on a block-by-block basis. The blocks may be predictively encoded with reference to other (previously encoded) blocks determined by the coding assignment applied to the respective images of those blocks. For example, blocks of I-pictures may be encoded without prediction or predictively with reference to previously coded blocks of the same picture (spatial prediction or intra prediction). The pixel blocks of P-pictures may be predictively encoded by spatial prediction or temporal prediction with reference to one previously encoded reference picture. Blocks of B-pictures may be predictively encoded by spatial prediction or temporal prediction with reference to one or two previously encoded reference pictures.

[0092] Видеокодер (503) может осуществлять операции кодирования согласно заранее заданной технологии или стандарту видеокодирования, например, ITU-T Rec. Н.265. В своей работе видеокодер (503) может осуществлять различные операции сжатия, в том числе операции предиктивного кодирования, которые используют временные и пространственные избыточности во входной видеопоследовательности. Поэтому кодированные видеоданные могут согласовываться с синтаксисом, заданным используемой технологией или стандартом видеокодирования.[0092] The video encoder (503) may perform encoding operations according to a predetermined video coding technology or standard, such as ITU-T Rec. H.265. In operation, the video encoder (503) may perform various compression operations, including predictive coding operations that exploit temporal and spatial redundancies in the input video sequence. Therefore, the encoded video data may conform to the syntax given by the video coding technology or standard being used.

[0093] Согласно варианту осуществления, передатчик (540) может передавать дополнительные данные с кодированным видео. Исходный кодер (530) может включать такие данные как часть кодированной видеопоследовательности. Дополнительные данные могут содержать временные/пространственные/SNR слои улучшения, другие формы избыточных данных, например, избыточные изображения и слайсы, сообщения SEI, фрагменты набора параметров VUI и т.д.[0093] According to an embodiment, the transmitter (540) may transmit additional data with encoded video. The source encoder (530) may include such data as part of the encoded video sequence. The additional data may include temporal/spatial/SNR enhancement layers, other forms of redundant data such as redundant images and slices, SEI messages, VUI parameter set fragments, and so on.

[0094] Видео может захватываться как множество исходных изображений (видеоизображений) во временной последовательности. Предсказание внутри изображения (часто сокращенно именуемое внутренним предсказанием) использует пространственную корреляцию в данном изображении, а предсказание между изображениями использует (временную или иную) корреляцию между изображениями. Например, конкретное изображение, подлежащее кодированию/декодированию, которое именуется текущим изображением, разбивается на блоки. Когда блок в текущем изображении аналогичен опорному блоку в ранее кодированном и все еще буферизованном опорном изображении в видео, блок в текущем изображении может кодироваться вектором, который именуется вектором движения. Вектор движения указывает на опорный блок в опорном изображении и может иметь третье измерение, идентифицирующее опорное изображение в случае использования множественных опорных изображений.[0094] The video may be captured as a plurality of source images (video images) in time sequence. Intra-image prediction (often abbreviated as intra-image prediction) uses spatial correlation within a given image, and inter-image prediction uses (temporal or otherwise) correlation between images. For example, a specific image to be encoded/decoded, which is called the current image, is divided into blocks. When a block in the current picture is similar to a reference block in a previously encoded and still buffered reference picture in a video, the block in the current picture may be encoded with a vector, which is referred to as a motion vector. The motion vector points to a reference block in the reference picture and may have a third dimension identifying the reference picture in case multiple reference pictures are used.

[0095] В некоторых вариантах осуществления, метод двойного предсказания может использоваться в предсказании между изображениями. Согласно методу двойного предсказания, используются два опорных изображения, например, первое опорное изображение и второе опорное изображение, которые оба предшествуют в порядке декодирования текущему изображению в видео (но могут быть в прошлом и будущем, соответственно, в порядке отображения). Блок в текущем изображении может кодироваться первым вектором движения, который указывает на первый опорный блок в первом опорном изображении, и вторым вектором движения, который указывает на второй опорный блок во втором опорном изображении. Блок может предсказываться комбинацией первого и второго опорного блока.[0095] In some embodiments, a dual prediction technique may be used in inter-picture prediction. According to the double prediction method, two reference pictures are used, for example, a first reference picture and a second reference picture, both of which precede the current picture in the video in decoding order (but may be in the past and future, respectively, in display order). A block in the current picture may be encoded by a first motion vector that points to a first reference block in the first reference picture and a second motion vector that points to a second reference block in the second reference picture. The block may be predicted by a combination of the first and second reference blocks.

[0096] Дополнительно, метод режима объединения может использоваться в предсказании между изображениями для повышения эффективности кодирования.[0096] Additionally, a combining mode technique may be used in inter-picture prediction to improve coding efficiency.

[0097] Согласно некоторым вариантам осуществления изобретения, предсказания, например, предсказания между изображениями и предсказания внутри изображения, осуществляются поблочно. Например, согласно стандарту HEVC, изображение в последовательности видеоизображений разбивается на единицы дерева кодирования (CTU, coding tree units) для сжатия, CTU в изображении имеют одинаковый размер, например 64x64 пикселя, 32x32 пикселя или 16x16 пикселей. В общем случае CTU включает в себя три блока дерева кодирования (СТВ, coding tree blocks), а именно, один СТВ яркости и два СТВ цветности. Каждый CTU может рекурсивно делиться квадрадеревом на одну или несколько единиц кодирования (CU). Например, CTU размером 64x64 пикселя может делиться на одну CU размером 64x64 пикселя или 4 CU размером 32x32 пикселя или 16 CU размером 16x16 пикселей. Например, каждая CU анализируется для определения типа предсказания для CU, например, типа внешнего предсказания или типа внутреннего предсказания. CU делится на одну или более единиц предсказания (PU, prediction unit) в зависимости от временного и/или пространственного предсказания. В целом, каждая PU включает в себя блок предсказания (РВ, prediction block) яркости и два РВ цветности. Согласно варианту осуществления, операция предсказания при кодировании (кодировании/декодировании) осуществляется в единице блока предсказания. Если использовать блок предсказания яркости в качестве примера блока предсказания, блок предсказания включает в себя матрицу значений (например, значений яркости) для пикселей, например, 8x8 пикселей, 16x16 пикселей, 8x16 пикселей, 16x8 пикселей и т.п.[0097] According to some embodiments of the invention, predictions, such as inter-picture predictions and intra-picture predictions, are performed block by block. For example, according to the HEVC standard, an image in a video sequence is divided into coding tree units (CTUs) for compression, CTUs in an image are the same size, such as 64x64 pixels, 32x32 pixels, or 16x16 pixels. In general, the CTU includes three coding tree blocks (CTBs), namely one luma CTB and two chrominance CTBs. Each CTU may recursively divide the quadtree into one or more coding units (CUs). For example, a 64x64 pixel CTU can be divided into one 64x64 pixel CU or 4 32x32 pixel CUs or 16 16x16 pixel CUs. For example, each CU is analyzed to determine a prediction type for the CU, such as an inter prediction type or an intra prediction type. The CU is divided into one or more prediction units (PU) depending on the temporal and/or spatial prediction. In general, each PU includes a luma prediction block (PB) and two chrominance PBs. According to an embodiment, an encoding (encoding/decoding) prediction operation is performed in a prediction block unit. If using the luminance prediction block as an example of the prediction block, the prediction block includes a matrix of values (e.g., luminance values) for pixels, e.g., 8x8 pixels, 16x16 pixels, 8x16 pixels, 16x8 pixels, and the like.

[0098] На фиг. 6 показана схема видеокодера (603) согласно другому варианту осуществления изобретения. Видеокодер (603) выполнен с возможностью приема блока обработки (например, блока предсказания) значений отсчетов в текущем видеоизображении в последовательности видеоизображений и кодирования блока обработки в кодированное изображение, которое составляет часть кодированной видеопоследовательности. Например, видеокодер (603) используется вместо видеокодера (303) в примере, приведенном на фиг. 3.[0098] FIG. 6 shows a diagram of a video encoder (603) according to another embodiment of the invention. The video encoder (603) is configured to receive a processing unit (eg, a prediction unit) of sample values in the current video image in the video sequence and encoding the processing unit into an encoded image that is part of the encoded video sequence. For example, video encoder (603) is used instead of video encoder (303) in the example shown in FIG. 3.

[0099] В примере HEVC видеокодер (603) принимает матрицу значений отсчетов для блока обработки, например, блока предсказания 8x8 отсчетов и т.п. Видеокодер (603) определяет, наилучшим ли образом кодируется блок обработки в интра-режиме, интеррежиме или режиме двойного предсказания с использованием, например, оптимизации скорость-искажения. Когда блок обработки подлежит кодированию в интра-режиме, видеокодер (603) может использовать метод внутреннего предсказания для кодирования блока обработки в кодированное изображение; и когда блок обработки подлежит кодированию в интер-режиме или режиме двойного предсказания, видеокодер (603) может использовать метод внешнего предсказания или двойного предсказания, соответственно, для кодирования блока обработки в кодированное изображение. В некоторых технологиях видеокодирования, режим объединения может быть подрежимом предсказания между изображениями, где вектор движения выводится из одного или более предсказателей вектора движения без привлечения кодированного компонента вектора движения вне предсказателей. В некоторых других технологиях видеокодирования может присутствовать компонент вектора движения, применимый к данному блоку. В порядке примера, видеокодер (603) включает в себя другие компоненты, например, модуль определения режима (не показан) для определения режима блоков обработки.[0099] In the HEVC example, video encoder (603) receives a matrix of sample values for a processing block, such as an 8x8 sample prediction block, or the like. The video encoder (603) determines whether the processing block is best encoded in intra mode, inter mode, or dual prediction mode using, for example, rate-distortion optimization. When the processing block is to be encoded in intra mode, the video encoder (603) may use an intra prediction technique to encode the processing block into an encoded picture; and when the processing unit is to be encoded in inter mode or dual prediction mode, the video encoder (603) may use an inter prediction or dual prediction technique, respectively, to encode the processing unit into an encoded picture. In some video coding technologies, the combining mode may be a sub-mode of inter-picture prediction where a motion vector is derived from one or more motion vector predictors without involving the encoded motion vector component outside of the predictors. In some other video coding technologies, there may be a motion vector component applicable to a given block. By way of example, the video encoder (603) includes other components, such as a mode determination module (not shown) for determining the mode of the processing units.

[0100] В примере, приведенном на фиг. 6, видеокодер (603) включает в себя интер-кодер (630), интра-кодер (622), вычислитель остатка (623), переключатель (626), кодер остатка (624), общий контроллер (621) и энтропийный кодер (625), соединенные друг с другом как показано на фиг. 6.[0100] In the example shown in FIG. 6, the video encoder (603) includes an inter encoder (630), an intra encoder (622), a residual calculator (623), a switch (626), a residual encoder (624), a common controller (621), and an entropy encoder (625). ) connected to each other as shown in Fig. 6.

[0101] Интер-кодер (630) выполнен с возможностью приема отсчетов текущего блока (например, блока обработки), сравнения блока с одним или более опорными блоками в опорных изображениях (например, с блоками в предыдущих изображениях и более поздних изображениях), генерации информации внешнего предсказания (например, описания избыточной информации согласно методу внутреннего кодирования, векторов движения, информации режима объединения), и вычисления результатов внешнего предсказания (например, блока предсказания) на основании информации внешнего предсказания с использованием любого подходящего метода. В некоторых примерах опорными изображениями являются декодированные опорные изображения, которые декодируются на основе информации кодированного видео.[0101] The inter-encoder (630) is configured to receive samples of the current block (e.g., processing block), compare the block with one or more reference blocks in reference pictures (e.g., blocks in previous pictures and later pictures), generate information inter prediction (eg, describing redundant information according to the intra coding method, motion vectors, combining mode information), and calculating inter prediction results (eg, prediction block) based on the inter prediction information using any suitable method. In some examples, reference pictures are decoded reference pictures that are decoded based on encoded video information.

[0102] Интра-кодер (622) выполнен с возможностью приема отсчетов текущего блока (например, блока обработки), в ряде случаев сравнения блока с блоками, ранее кодированными в том же изображении, генерирования квантованных коэффициентов после преобразования, и в ряде случаев также информации внутреннего предсказания (например, информации направления внутреннего предсказания согласно одному или более методам внутреннего кодирования). В порядке примера, интра-кодер (622) также вычисляет результаты внутреннего предсказания (например, блок предсказания) на основании информации внутреннего предсказания и опорных блоков в том же изображении.[0102] The intra-encoder (622) is configured to receive samples of the current block (e.g., processing block), in some cases comparing the block with blocks previously encoded in the same picture, generating quantized coefficients after the transform, and in some cases also information intra prediction (eg, intra prediction direction information according to one or more intra coding methods). By way of example, the intra encoder 622 also calculates intra prediction results (eg, prediction block) based on intra prediction information and reference blocks in the same picture.

[0103] Общий контроллер (621) выполнен с возможностью определения общих данных управления и управления другими компонентами видеокодера (703) на основе общих данных управления. Например, общий контроллер (621) определяет режим блока и выдает сигнал управления переключателю (626) на основе режима. Например, когда режим является интра-режимом, общий контроллер (621) управляет переключателем (626) для выбора результата интра-режима в целях использования вычислителя остатка (623), и энтропийным кодером (625) для выбора информации внутреннего предсказания и включения информации внутреннего предсказания в битовый поток; и когда режим является интер-режимом, общий контроллер (621) управляет переключателем (626) для выбора результата внешнего предсказания в целях использования вычислителя остатка (623), и энтропийным кодером (625) для выбора и включения информации внешнего предсказания в битовый поток.[0103] The common controller (621) is configured to determine common control data and control other components of the video encoder (703) based on the common control data. For example, the common controller (621) determines the mode of the block and outputs a control signal to the switch (626) based on the mode. For example, when the mode is the intra mode, the common controller (621) controls the switch (626) to select the result of the intra mode in order to use the residual calculator (623), and the entropy encoder (625) to select the intra prediction information and turn on the intra prediction information into the bitstream; and when the mode is inter mode, the common controller (621) controls a switch (626) to select an inter prediction result to use a residual calculator (623), and an entropy encoder (625) to select and include inter prediction information in the bitstream.

[0104] Вычислитель остатка (623) выполнен с возможностью вычисления разности (данных остатка) между принятым блоком и результатами предсказания, выбранными из интра-кодера (622) или интер-кодера (630). Кодер остатка (624) выполнен с возможностью действовать на основе данных остатка для кодирования данных остатка в целях генерации коэффициентов преобразования. Например, кодер остатка (624) выполнен с возможностью преобразования данных остатка из пространственной области в частотную область и генерирования коэффициентов преобразования. Затем коэффициенты преобразования подвергаются обработке квантования для получения квантованных коэффициентов преобразования. В различных вариантах осуществления видеокодер (603) также включает в себя декодер остатка (628). Декодер остатка (628) выполнен с возможностью осуществления обратного преобразования и генерирования декодированных данных остатка. Декодированные данные остатка могут надлежащим образом использоваться интра-кодером (622) и интер-кодером (630). Например, интер-кодер (630) может генерировать декодированные блоки на основе декодированных данных остатка и информации внешнего предсказания, и интра-кодер (622) может генерировать декодированные блоки на основе декодированных данных остатка и информации внутреннего предсказания. Декодированные блоки надлежащим образом обрабатываются для генерации декодированных изображений, и декодированные изображения могут буферизоваться в схеме памяти (не показана) и в некоторых примерах использоваться в качестве опорных изображений.[0104] The residual calculator (623) is configured to calculate the difference (residual data) between the received block and the prediction results selected from the intra-coder (622) or inter-coder (630). The residual encoder (624) is configured to operate on the residual data to encode the residual data in order to generate transform coefficients. For example, the residual encoder (624) is configured to transform residual data from the spatial domain to the frequency domain and generate transform coefficients. Then, the transform coefficients are subjected to quantization processing to obtain quantized transform coefficients. In various embodiments, the video encoder (603) also includes a residual decoder (628). The residual decoder (628) is configured to perform inverse transformation and generate decoded residual data. The decoded residual data may be appropriately used by the intra-coder (622) and the inter-coder (630). For example, the inter-coder (630) may generate decoded blocks based on the decoded residual data and inter prediction information, and the intra-coder (622) may generate decoded blocks based on the decoded residual data and intra prediction information. The decoded blocks are properly processed to generate decoded pictures, and the decoded pictures can be buffered in a memory circuit (not shown) and used as reference pictures in some examples.

[0105] Энтропийный кодер (625) выполнен с возможностью форматирования битового потока так, чтобы он включал в себя кодированный блок. Энтропийный кодер (625) выполнен с возможностью включать различную информацию согласно подходящему стандарту, например, стандарту HEVC. Например, энтропийный кодер (625) выполнен с возможностью включать общие данные управления, выбранную информацию предсказания (например, информацию внутреннего предсказания или информацию внешнего предсказания), информацию остатка и другую подходящую информацию в битовый поток. Заметим, что, согласно раскрытому изобретению, при кодировании блока в подрежиме объединения интер-режима или режима двойного предсказания, информация остатка отсутствует.[0105] The entropy encoder (625) is configured to format the bitstream so that it includes a coded block. The entropy encoder (625) is configured to include various information according to a suitable standard, such as the HEVC standard. For example, the entropy encoder (625) is configured to include common control data, selected prediction information (eg, intra prediction information or inter prediction information), residual information, and other appropriate information in the bitstream. Note that, according to the disclosed invention, when encoding a block in the combining submode of the inter mode or dual prediction mode, there is no residual information.

[0106] На фиг. 7 показана схема видеодекодера (710) согласно другому варианту осуществления изобретения. Видеодекодер (710) выполнен с возможностью приема кодированных изображений, составляющих часть кодированной видеопоследовательности, и декодирования кодированных изображений для генерации реконструированных изображений. Например, видеодекодер (710) используется вместо видеодекодера (310) в примере, приведенном на фиг. 3.[0106] In FIG. 7 shows a diagram of a video decoder (710) according to another embodiment of the invention. The video decoder (710) is configured to receive encoded pictures that are part of the encoded video sequence and decode the encoded pictures to generate reconstructed pictures. For example, video decoder (710) is used instead of video decoder (310) in the example shown in FIG. 3.

[0107] В примере, приведенном на фиг. 7, видеодекодер (710) включает в себя энтропийный декодер (771), интер-декодер (780), декодер остатка (773), модуль реконструкции (774) и интра-декодер (772), соединенные друг с другом как показано на фиг. 7.[0107] In the example shown in FIG. 7, the video decoder (710) includes an entropy decoder (771), an inter decoder (780), a residual decoder (773), a reconstruction unit (774), and an intra decoder (772) connected to each other as shown in FIG. 7.

[0108] Энтропийный декодер (771) может быть выполнен с возможностью реконструкции, из кодированного изображения, некоторых символов, которые представляют синтаксические элементы, образующие кодированное изображение. Такие символы могут включать в себя, например, режим кодирования блока (например, интра-режим, интер-режим, режим двойного предсказания, причем последние два в подрежиме объединения или другом подрежиме), информацию предсказания (например, информацию внутреннего предсказания или информацию внешнего предсказания), которая может идентифицировать определенный отсчет или метаданные, используемые для предсказания интра-декодером (772) или интер-декодером (780), соответственно, информацию остатка в форме, например, квантованных коэффициентов преобразования и т.п. Например, когда режим предсказания является режимом внутреннего или двойного предсказания, информация внешнего предсказания поступает на интер-декодер (780); а когда тип предсказания является типом внутреннего предсказания, информация внутреннего предсказания поступает на интра-декодер (772). Информация остатка может подвергаться обратному квантованию и поступать на декодер остатка (773).[0108] The entropy decoder (771) may be configured to reconstruct, from the encoded image, some symbols that represent the syntax elements that form the encoded image. Such symbols may include, for example, a block coding mode (e.g., intra mode, inter mode, dual prediction mode, the latter two being in a pooling submode or other submode), prediction information (e.g., intra prediction information, or inter prediction information ) that can identify a specific sample or metadata used for prediction by the intra-decoder (772) or inter-decoder (780), respectively, residual information in the form of, for example, quantized transform coefficients, and the like. For example, when the prediction mode is an intra or dual prediction mode, the inter prediction information is input to the inter decoder (780); and when the prediction type is an intra prediction type, the intra prediction information is input to the intra decoder (772). The residual information may be inverse quantized and fed to a residual decoder (773).

[0109] Интер-декодер (780) выполнен с возможностью приема информации внешнего предсказания и генерирования результатов внешнего предсказания на основании информации внешнего предсказания.[0109] The inter decoder (780) is configured to receive inter prediction information and generate inter prediction results based on the inter prediction information.

[0110] Интра-декодер (772) выполнен с возможностью приема информации внутреннего предсказания и генерирования результатов предсказания на основании информации внутреннего предсказания.[0110] The intra decoder (772) is configured to receive intra prediction information and generate prediction results based on the intra prediction information.

[0111] Декодер остатка (773) выполнен с возможностью осуществления обратного квантования для извлечения деквантованных коэффициентов преобразования и обработки деквантованных коэффициентов преобразования с целью преобразования остатка из частотной области в пространственную область. Декодер остатка (773) также может требовать некоторой информации управления (включать параметр квантователя (QP, Quantizer Parameter)), и эта информация может обеспечиваться энтропийным декодером (771) (путь данных не показан, поскольку это может быть только информация управления малого объема).[0111] The residual decoder (773) is configured to perform inverse quantization to extract the dequantized transform coefficients and process the dequantized transform coefficients to transform the residual from the frequency domain to the spatial domain. The residual decoder (773) may also require some control information (include a quantizer parameter (QP, Quantizer Parameter)), and this information may be provided by the entropy decoder (771) (the data path is not shown since this may only be small volume control information).

[0112] Модуль реконструкции (774) выполнен с возможностью объединения в пространственной области остатка на выходе декодера остатка (773) и результатов предсказания (на выходе модулей внешнего или внутреннего предсказания, в зависимости от ситуации) для формирования реконструированного блока, который может входить в состав реконструированного изображения, которое, в свою очередь, может входить в состав реконструированного видео. Заметим, что другие подходящие операции, например, операция деблокирования и т.п., может осуществляться для повышения визуального качества.[0112] The reconstruction module (774) is configured to combine in the spatial domain the residual at the output of the residual decoder (773) and prediction results (at the output of the inter or intra prediction modules, as appropriate) to form a reconstructed block that may be included in reconstructed image, which, in turn, can be part of the reconstructed video. Note that other suitable operations, such as a release operation and the like, may be performed to improve the visual quality.

[0113] Заметим, что видеокодеры (303), (503) и (603) и видеодекодеры (310), (410) и (710) могут быть реализованы с использованием любого подходящего метода. Согласно варианту осуществления, видеокодеры (303), (503) и (603) и видеодекодеры (310), (410) и (710) могут быть реализованы с использованием одной или более интегральных схем. В другом варианте осуществления видеокодеры (303), (503) и (603) и видеодекодеры (310), (410) и (710) могут быть реализованы с использованием одного или более процессоров, которые выполняют программные инструкции.[0113] Note that video encoders (303), (503) and (603) and video decoders (310), (410) and (710) may be implemented using any suitable technique. According to an embodiment, video encoders (303), (503) and (603) and video decoders (310), (410) and (710) may be implemented using one or more integrated circuits. In another embodiment, video encoders (303), (503) and (603) and video decoders (310), (410) and (710) may be implemented using one or more processors that execute program instructions.

[0114] Согласно некоторым вариантам осуществления, единица дерева кодирования разбивается на единицы кодирования посредством структуры дерева квадрантов - двоичного дерева (QTBT, quad tree binary tree), известной как дерево кодирования для адаптации различных локальных характеристик индивидуальных блоков, включенных в единицы кодирования. Решение о кодировании области изображения посредством временного или пространственного предсказания изображений можно принимать на уровне единицы кодирования. Каждую единицу кодирования можно разбить на одну, две или четыре единицы предсказания, согласно типу разделения единиц предсказания. Согласно некоторым вариантам осуществления, внутри одной единицы предсказания осуществляется идентичный процесс предсказания, и необходимая информация передается декодеру на основании единицы предсказания. При получении остаточного блока путем процесса предсказания на основании типа разделения единиц предсказания, единицу кодирования можно разделить на единицы преобразования согласно другой структуре дерева квадрантов, похожей на структуру дерева квадрантов, применяемую для дерева кодирования и его единиц. В ряде других вариантов осуществления, единица предсказания содержит только одну единицу преобразования, той же формы, что и единица предсказания.[0114] According to some embodiments, the coding tree unit is partitioned into coding units by a quad tree binary tree (QTBT) structure known as the coding tree to adapt various local characteristics of the individual blocks included in the coding units. The decision to encode an image region by temporal or spatial image prediction may be made at the coding unit level. Each coding unit can be divided into one, two, or four prediction units, according to the division type of prediction units. According to some embodiments, within one prediction unit, an identical prediction process is performed and the necessary information is transmitted to the decoder based on the prediction unit. When obtaining a residual block by a prediction process based on a division type of prediction units, a coding unit can be divided into transformation units according to another quadtree structure similar to the quadtree structure applied to the coding tree and its units. In some other embodiments, the prediction unit contains only one transformation unit, of the same form as the prediction unit.

[0115] Дерево кодирования для единиц дерева кодирования может включать различные разделы, включая единицы кодирования, единицы предсказания и единицы преобразования. В некоторых вариантах осуществления единица кодирования или преобразования представлена исключительно квадратной формой, а единица предсказания может быть квадратной или прямоугольной для блока внутреннего предсказания. В других вариантах осуществления допускаются прямоугольные единицы кодирования, предсказания и преобразования. На границе изображения может применяться неявное дерево квадрантов, так что блок продолжает разделение дерева квадрантов, пока размер отделенного блока не будет подогнан под границу изображения. В некоторых вариантах осуществления неявное разделение означает скрытие флага разделения. Например, неявное дерево квадрантов (QT) означает разрешение на разделение QT для пограничного блока изображения. Флаг разделения не сигнализируется на границе изображения. Другой пример: при допуске разделения двоичного дерева (ВТ) на границе изображения неявное разделение является бинарным разделением. В некоторых вариантах осуществления при допуске QT и ВТ на границе изображения неявное разделение отсутствует, а метод разделения сигнализируется в явном виде.[0115] The coding tree for coding tree units may include various partitions, including coding units, prediction units, and transform units. In some embodiments, the coding or transform unit is represented solely by a square shape, and the prediction unit may be square or rectangular for an intra prediction block. In other embodiments, rectangular coding, prediction, and transform units are allowed. An implicit quadtree can be applied at the image boundary so that the block continues to split the quadtree until the size of the separated block is adjusted to fit the image boundary. In some embodiments, an implicit split means hiding the split flag. For example, implicit quadtree (QT) means permission to split QT for a border block of an image. The split flag is not signaled at the image boundary. Another example: when allowing a binary tree (BT) split at an image boundary, the implicit split is a binary split. In some embodiments, when QT and BT are allowed at the image boundary, there is no implicit separation, and the separation method is signaled explicitly.

[0116] Согласно некоторым вариантам осуществления, структура дерева квадрантов - двоичного дерева (QTBT) не включает множество типов разделения (например, QTBT не включает разделения единиц кодирования, предсказания и преобразования) и является более гибкой для форм разделения единиц кодирования. Например, в блочной структуре QTBT единица кодирования может быть квадратной или прямоугольной. Фиг. 8А иллюстрирует пример единицы дерева кодирования (800), разделенной структурой QTBT. Например, единица дерева кодирования (800) поделена на 4 подъединицы кодирования (А), (В), (С) и (D). Фиг. 8В изображает соответствующее дерево кодирования с ветвями, соответствующими подъединицам кодирования (А), (В), (С) и (D). Сплошные линии обозначают разделение дерева квадрантов, а пунктирные линии - разделение двоичного дерева. Структура двоичного дерева может включать два типа разделения: (i) симметричное горизонтальное разделение и (ii) симметричное вертикальное разделение. В каждом разделенном (то есть не листовом) узле двоичного дерева один флаг может быть сигнализирован для указания типа применяемого разделения (например, горизонтального или вертикального), где 0 обозначает горизонтальное разделение, а 1 - вертикальное разделение, или наоборот. Для разделения дерева квадрантов тип разделения не указывается, поскольку при соответствующем разделении происходит одновременно горизонтальное и вертикальное разделение блока для получения четырех субблоков одинакового размера.[0116] According to some embodiments, the Quadtree Binary Tree (QTBT) structure does not include multiple split types (eg, QTBT does not include coding, prediction, and transform unit splits) and is more flexible for coding unit splitting forms. For example, in the QTBT block structure, the coding unit may be square or rectangular. Fig. 8A illustrates an example coding tree unit (800) separated by a QTBT structure. For example, the coding tree unit (800) is divided into 4 coding subunits (A), (B), (C), and (D). Fig. 8B shows the corresponding coding tree with branches corresponding to coding subunits (A), (B), (C), and (D). The solid lines represent the quadtree split, and the dotted lines represent the binary tree split. The binary tree structure may include two types of partitioning: (i) symmetrical horizontal partitioning and (ii) symmetrical vertical partitioning. At each partitioned (i.e., non-leaf) node of the binary tree, one flag may be signaled to indicate the type of partitioning applied (eg, horizontal or vertical), where 0 denotes a horizontal partition and 1 a vertical partition, or vice versa. For quadtree splitting, the type of splitting is not specified because the corresponding splitting splits the block horizontally and vertically simultaneously to produce four sub-blocks of the same size.

[0117] Согласно изображениям фиг. 8А и 8В, подъединица кодирования (А) сначала разделяется на два субблока посредством вертикального деления с последующим вертикальным делением левого субблока. Далее подъединица кодирования (В) проходит горизонтальное деление. Далее подъединица кодирования (С) делится четверным делением. Верхний левый субблок подъединицы кодирования (С) делится вертикально с последующим горизонтальным делением. Далее нижний правый субблок подъединицы кодирования (С) делится горизонтально. Верхний правый и нижний левый субблоки подъединицы кодирования (С) не подлежат дальнейшему делению. Подъединица кодирования (D) не подлежит дальнейшему делению и, таким образом, не включает дополнительные листовые узлы дерева кодирования ниже ветви "D".[0117] According to the images of FIG. 8A and 8B, the coding subunit (A) is first divided into two subblocks by vertical division followed by vertical division of the left subblock. Next, the coding subunit (B) goes through a horizontal division. Further, the coding subunit (C) is divided by a quadruple division. The upper left subunit of the coding subunit (C) is divided vertically followed by a horizontal division. Further, the lower right subunit of the coding subunit (C) is divided horizontally. The upper right and lower left subunits of the coding subunit (C) are not subject to further division. The encoding subunit (D) is not subject to further subdivision and thus does not include additional leaf nodes of the encoding tree below branch "D".

[0118] Листовые узлы двоичного дерева могут относиться к единицам кодирования, где двоичное деление можно применять для обработки предсказания и преобразования без последующего деления. Это означает, что у единиц кодирования, предсказания и преобразования одинаковый по размерам блок в структуре кодирования блоков QTBT. Единица кодирования может включать блоки кодирования различных цветовых компонентов. Например, одна единица кодирования может содержать один блок кодирования яркости и два блока кодирования цветности в случае слайсов Р и В цветового формата 4:2:0 и иногда может содержать блок кодирования единичного компонента (например, одна единица кодирования содержит только один блок кодирования яркости или всего лишь два блока кодирования цветности в случае внутренне-кодированных изображений или слайсов). В некоторых вариантах осуществления у внутренне-кодированных изображений или слайсов ширина или высота единицы преобразования ограничивается (например, 64 для яркости и 32 для цветности). Если ширина или высота блока кодирования превышает предел, то единица преобразования делится до тех пор, пока размер не перестанет превышать заданный предел.[0118] The leaf nodes of a binary tree may refer to coding units, where binary division can be used to process prediction and transformation without subsequent division. This means that the coding, prediction, and transform units have the same block size in the QTBT block coding structure. A coding unit may include coding units of various color components. For example, one coding unit may contain one luminance coding unit and two chrominance coding units in the case of slices P and B of the 4:2:0 color format, and sometimes may contain a single component coding unit (for example, one coding unit contains only one luminance coding unit or just two chroma coding units in the case of intra-coded images or slices). In some embodiments, intra-coded images or slices have a transform unit width or height constrained (eg, 64 for luma and 32 for chrominance). If the width or height of the coding block exceeds the limit, then the transformation unit is divided until the size does not exceed the specified limit.

[0119] Согласно некоторым вариантам осуществления, схема разделения QTBT включает следующие параметры: CTU size: размер корневого узла дерева квадрантов MinQTSize: минимально допустимый размер листового узла дерева квадрантов MaxBTSize: максимально допустимый размер корневого узла двоичного дерева MaxBTDepth: максимально допустимая глубина двоичного дерева MinBTSize: минимально допустимый размер листового узла двоичного дерева.[0119] According to some embodiments, the QTBT partitioning scheme includes the following parameters: CTU size: quadtree root node size MinQTSize: minimum allowed quadtree leaf node size MaxBTSize: maximum allowed binary tree root node size MaxBTDepth: maximum allowed binary tree depth MinBTSize: the minimum allowable size of a leaf node in a binary tree.

[0120] В одном примере структуры деления QTBT размер единицы дерева кодирования составляет 128×128 отсчетов яркости с соответствующими блоками отсчетов цветности размером 64×64, MinQTSize составляет 16×16, MaxBTSize - 64×64, MinBTSize (по ширине и высоте) - 4×4, MaxBTDepth - 4. Структура деления QTBT применяется к единице дерева кодирования для формирования листовых узлов дерева квадрантов. Размеры листовых узлов дерева квадрантов: от 16×16 (то есть MinQTSize) до 128×128 (то есть размер единицы дерева кодирования). Если размер узла листа дерева квадрантов 128×128, узел листа дерева квадрантов не будет далее делиться двоичным деревом, поскольку его размер превышает MaxBTSize (64×64). В противном случае узел листа дерева квадрантов может быть снова поделен двоичным деревом. Таким образом, узел листа дерева квадрантов также является корневым узлом двоичного дерева и лист дерева квадрантов имеет нулевую глубину двоичного дерева. При достижении максимальной глубины двоичного дерева MaxBTDepth (например, 4) дальнейшее деление не производится. Если ширина узла двоичного дерева минимальна MinBTSize (например, 4), дальнейшее горизонтальное деление не производится. Аналогично, если высота узла двоичного дерева минимальна MinBTSize, дальнейшее вертикальное деление не производится. Далее листовые узлы двоичного дерева обрабатываются предсказанием и преобразованием без дальнейшего деления. В некоторых вариантах осуществления максимальный размер единиц дерева кодирования составляет 256×256 отсчетов яркости.[0120] In one example of the QTBT division structure, the coding tree unit size is 128×128 luma samples with corresponding chroma sample blocks of 64×64, MinQTSize is 16×16, MaxBTSize is 64×64, MinBTSize (width and height) is 4 ×4, MaxBTDepth - 4. The QTBT division structure is applied to the coding tree unit to form the leaf nodes of the quadtree. Quadtree leaf node sizes: from 16x16 (i.e. MinQTSize) to 128x128 (i.e. coding tree unit size). If the size of the quadtree leaf node is 128x128, the quadtree leaf node will not further divide the binary tree because its size is larger than MaxBTSize (64x64). Otherwise, the leaf node of the quadtree can again be divided into a binary tree. Thus, the leaf node of the quadtree is also the root node of the binary tree, and the leaf of the quadtree has zero depth of the binary tree. When the maximum depth of the binary tree MaxBTDepth (for example, 4) is reached, no further division is performed. If the width of a binary tree node is MinBTSize (eg 4), no further horizontal division is made. Similarly, if the height of a binary tree node is MinBTSize, no further vertical division is made. Next, the leaf nodes of the binary tree are processed by prediction and transformation without further division. In some embodiments, the maximum size of coding tree units is 256×256 luminance samples.

[0121] Также структура деления QTBT может поддерживать способность компонентов яркости и цветности иметь отдельные структуры QTBT. Например, для слайсов Р и В, блоки яркости и цветности дерева кодирования в одной единице дерева кодирования могут иметь одинаковую структуру QTBT. Однако для I-слайсов яркость блока дерева кодирования делится на единицы кодирования посредством одной структуры QTBT, а блоки цветности дерева кодирования делятся на единицы кодирования цветности другой структурой QTBT. Таким образом, в данном примере единица кодирования в I-слайсе содержит блок кодирования компонента яркости или блоки кодирования двух компонентов цветности, а единица кодирования в слайсе Р или В содержит блоки кодирования всех трех цветовых компонентов.[0121] Also, the QTBT division structure may support the ability of the luma and chrominance components to have separate QTBT structures. For example, for P and B slices, coding tree luma and chrominance blocks in the same coding tree unit may have the same QTBT structure. However, for I-slices, the luminance of a coding tree block is divided into coding units by one QTBT structure, and the chrominance blocks of the coding tree are divided into chroma coding units by another QTBT structure. Thus, in this example, a coding unit in an I-slice contains a luma component coding block or coding blocks of two chrominance components, and a coding unit in a P or B slice contains coding blocks of all three color components.

[0122] В некоторых вариантах осуществления внешнее предсказание для малых блоков ограничено в целях сокращения требований доступа к памяти для компенсации движения, чтобы двунаправленное предсказание не поддерживалось для блоков 4×8 и 8×4, а внешнее предсказание не поддерживалось для блоков 4×4. В других вариантах осуществления схема деления QTBT не включает эти ограничения.[0122] In some embodiments, inter prediction for small blocks is limited in order to reduce memory access requirements for motion compensation so that bidirectional prediction is not supported for 4x8 and 8x4 blocks, and inter prediction is not supported for 4x4 blocks. In other embodiments, the QTBT division scheme does not include these restrictions.

[0123] Согласно некоторым вариантам осуществления, структура многотипового дерева (МТТ, Multi-type-tree) включает (i) разделение дерева квадрантов, (ii) разделение двоичного дерева и (iii) горизонтальные и вертикальные тернарные центрально-боковые деревья. На фиг. 9А показан вариант осуществления вертикального тернарного центрально-бокового дерева, а на фиг. 9В - пример горизонтального тернарного центрально-бокового дерева. По сравнению со структурой QTBT структура многотипового дерева может быть более гибкой, поскольку разрешены дополнительные структуры.[0123] According to some embodiments, a multi-type tree (MTT) structure includes (i) quad-tree splitting, (ii) binary tree splitting, and (iii) horizontal and vertical ternary center-side trees. In FIG. 9A shows an embodiment of a vertical ternary center-side tree, and FIG. 9B is an example of a horizontal ternary center-side tree. Compared to the QTBT structure, the multitype tree structure can be more flexible because additional structures are allowed.

[0124] Разделение тернарного дерева включают существенно полезные функции, например, предоставление дополнения к разделению дерева квадрантов и бинарного дерева, при котором деление тернарного дерева способно захватывать объекты, расположенные в центре блока при разделении дерева квадрантов и двоичного дерева по центру блока. Другое преимущество деления тернарного дерева - ширина и высота делений предлагаемых тернарных деревьев умножаются на 2, так что дополнительных трансформаций не требуется. Преимущество двухуровневого дерева заключается в снижении сложности. Например, сложность обхода дерева TD, где Т - количество типов делений, a D - глубина дерева.[0124] Ternary tree splitting includes significantly useful features, such as providing a complement to quadtree/binary tree splitting, whereby ternary tree splitting is able to capture objects located in the center of a block while splitting the quadtree and binary tree at the center of the block. Another advantage of ternary tree divisions is that the width and height of the proposed ternary tree divisions are multiplied by 2, so no additional transformations are required. The advantage of a two-level tree is to reduce complexity. For example, the complexity of traversing a tree is T D , where T is the number of division types, and D is the depth of the tree.

[0125] Существуют различные форматы YUV, или форматы цветности, представленные на фиг. 10A-10D. Каждый формат цветности задает свою сетку понижения частоты отсчетов различных цветовых компонентов.[0125] There are various YUV formats, or chrominance formats, shown in FIG. 10A-10D. Each color format defines its own downsampling grid for various color components.

[0126] Цвет отсчетов видео может быть представлен в различных цветовых форматах (например, в формате YCbCr или RGB). В формате RGB у трех компонентов имеются сильные корреляции (то есть у R, G и В), приводящие к статистической избыточности трех цветовых компонентов. Цветовое представление отсчетов видео можно преобразовывать в другое цветовое пространство с помощью линейных преобразований. Преобразование цветового пространства RGB в цветовое пространство YUV происходит следующим образом:[0126] The color of video samples can be represented in various color formats (eg, YCbCr or RGB format). In RGB format, the three components have strong correlations (ie, R, G, and B), leading to statistical redundancy of the three color components. The color representation of video samples can be converted to another color space using linear transformations. The conversion of the RGB color space to the YUV color space is as follows:

Figure 00000001
Figure 00000001

Figure 00000002
Figure 00000002

Figure 00000003
Figure 00000003

[0127] Преобразование цветового пространства RGB в цветовое пространство YUV может происходить следующим образом:[0127] The conversion of the RGB color space to the YUV color space can occur as follows:

Figure 00000004
Figure 00000004

Figure 00000005
Figure 00000005

Figure 00000006
Figure 00000006

[0128] Для эффективного кодирования видеоконтента RGB был разработан метод контурного адаптивного преобразования цвета (ACT, Adaptive Colour Transform), работающий в области остатка. Флаг уровня единиц кодирования может быть сигнализирован для указания на применение ACT. Прямое преобразование цвета по методу ACT (например, преобразование, выполняемое кодером) может выполняться следующим образом:[0128] For efficient coding of RGB video content, a contour adaptive color transform (ACT, Adaptive Color Transform) method has been developed that works in the residual region. A coding unit level flag may be signaled to indicate the use of ACT. A direct color conversion using the ACT method (for example, the conversion performed by the encoder) can be performed as follows:

Figure 00000007
Figure 00000007

[0129] Обратное цветовое преобразование ACT (например, обратное преобразование, выполняемое декодером) можно осуществлять следующим образом:[0129] An inverse color transform ACT (eg, an inverse transform performed by a decoder) can be performed as follows:

Figure 00000008
Figure 00000008

[0130] На фиг. 11 изображен пример кодера 1100 для выполнения преобразования цветового пространства. На фиг. 11 предсказание выполняется до выполнения преобразования цветового пространства. Например, внутреннее или внешнее предсказание выполняется на текущем блоке для формирования остаточного сигнала. Остаточный сигнал образуется посредством блока (1102) преобразования цветового пространства для выполнения прямого преобразования как в Ур. (7). Результат прямого преобразования цветового пространства передается на блок (1102) формирования кросс-компонентов (ССР, cross component production). Выходной сигнал от ССР (1102) передается в блок (1106) преобразования (Т, transform) для выполнения преобразований типа дискретного косинусного преобразования (DCT). Результат преобразователя (1106) передается на квантователь (Q) (1108) для получения коэффициентов. Коэффициенты передаются на энтропийный кодер (1110) для обеспечения битового потока. Энтропийный кодер (1110) может получить сигнал режима/mv для выбора определенного режима работы энтропийного кодера.[0130] In FIG. 11 shows an example of an encoder 1100 for performing color space conversion. In FIG. 11, the prediction is performed before the color space conversion is performed. For example, intra or inter prediction is performed on the current block to generate a residual signal. The residual signal is generated by the color space conversion block (1102) to perform direct conversion as in Eq. (7). The result of the direct conversion of the color space is transmitted to the block (1102) the formation of cross-components (CCP, cross component production). The output from the CCP (1102) is passed to a transform (T, transform) block (1106) to perform discrete cosine transform (DCT) type transformations. The result of the transform (1106) is transmitted to the quantizer (Q) (1108) to obtain the coefficients. The coefficients are passed to an entropy encoder (1110) to provide a bit stream. The entropy encoder (1110) may receive a mode signal/mv to select a specific mode of operation of the entropy encoder.

[0131] Кодер (1100) может также включать компоненты для конвертации битового потока в остаточный сигнал. Например, битовый поток, производимый энтропийным кодером (1110), может передаваться на обратный квантователь (IQ) (1112). Результат обратного квантователя (IQ) может передаваться на обратный преобразователь (IT) (1114). Результат обратного преобразователя (IT) (1114) может передаваться в блок обратного СРР (1116). Выходной сигнал блока обратного СРР (1116) может передаваться на обратный преобразователь цветового пространства (1118), выполняющий преобразование согласно Ур. (8).[0131] The encoder (1100) may also include components for converting the bitstream into a residual signal. For example, the bitstream produced by the entropy encoder (1110) may be transmitted to an inverse quantizer (IQ) (1112). The result of the inverse quantizer (IQ) may be transmitted to an inverse transform (IT) (1114). The result of the inverse transform (IT) (1114) may be passed to the inverse CPP block (1116). The output signal of the inverse CPP block (1116) may be transmitted to a color space inverse transform (1118) performing the conversion according to Eq. (8).

[0132] Фиг. 12 демонстрирует иллюстративный декодер (1200) для конвертации битового потока в остаточный сигнал. Битовый поток, представленный на фиг. 12 может генерироваться энтропийным кодером (1110) (фиг. 11). Битовый поток может передаваться на энтропийный кодер (1200). Результат энтропийного кодера (1202) можно передавать на обратный квантователь (IQ) (1202). Результат обратного квантователя (IQ) можно передавать на обратный преобразователь (IT) (1204). Результат обратного преобразователя (IT) (1204) можно передавать в блок обратного СРР (1206). Результат обратного СРР (1206) можно передавать на обратный преобразователь цветового пространства (1208), представленный, например, в Ур. (8), который может генерировать остаточный сигнал. Внутреннее или внешнее предсказание можно осуществлять по остаточному сигналу для декодирования текущего блока. Устройства на фиг. 11 и 12 можно применять через программы посредством процессора или посредством схем, например, посредством специальной интегральной схемы, спроектированной для выполнения функции каждого устройства.[0132] FIG. 12 shows an exemplary decoder (1200) for converting a bit stream into a residual signal. The bit stream shown in FIG. 12 may be generated by the entropy encoder (1110) (FIG. 11). The bit stream may be transmitted to an entropy encoder (1200). The result of the entropy encoder (1202) may be transmitted to an inverse quantizer (IQ) (1202). The result of the inverse quantizer (IQ) may be transmitted to an inverse transform (IT) (1204). The result of the inverse transform (IT) (1204) may be passed to the inverse CPP block (1206). The result of the inverse CPP (1206) may be transmitted to the color space inverse mapper (1208) shown in Eq. (8) which can generate residual signal. Intra or inter prediction may be performed on the residual signal to decode the current block. The devices in FIG. 11 and 12 can be applied through programs through a processor or through circuits, for example through a special integrated circuit designed to perform the function of each device.

[0133] Для цветового компонента внутренней единицы предсказания (PU) кодер может выбрать лучшие режимы предсказания цветов из 8, включая планарный, прямого кодирования, постоянной составляющей, горизонтальный, вертикальный, прямого копирования режима внутреннего предсказания (DM) из компонента яркости, левый и верхний линейный кросс-компонентный режим (LT_CCLM), левый линейный кросс-компонентный режим (L_CCLM), а также верхний линейный кросс-компонентный режим (T_CCLM). Режимы LT_CCLM, L_CCLM и T_CCLM можно включить в группу линейного кросс-компонентного режима (CCLM). Разница между этими тремя режимами заключается в возможности применения различных областей соседних отсчетов для получения параметров α и β. Для LT_CCLM левый и верхний соседние отсчеты могут применяться, чтобы получить параметры α и β. Для L_CCLM в ряде примеров только левые соседние отсчеты применяются, чтобы получить параметры α и β. Для Т_CCLM в ряде примеров только верхние соседние отсчеты применяются, чтобы получить параметры α и β.[0133] For the internal prediction unit (PU) color component, the encoder can select the best color prediction modes out of 8, including planar, direct coding, DC, horizontal, vertical, intra prediction mode (DM) direct copy from luma component, left and top linear cross-component mode (LT_CCLM), left linear cross-component mode (L_CCLM), and upper linear cross-component mode (T_CCLM). The LT_CCLM, L_CCLM, and T_CCLM modes can be included in a Linear Cross-Component Mode (CCLM) group. The difference between these three modes lies in the possibility of using different areas of neighboring samples to obtain the parameters α and β. For LT_CCLM, the left and top adjacent samples may be used to obtain the parameters α and β. For L_CCLM, in some examples, only left adjacent samples are used to obtain the parameters α and β. For T_CCLM, in some examples only the upper adjacent samples are used to obtain the parameters α and β.

[0134] Режимы предсказания линейной кросс-компонентной модели (CCLM) могут применяться для сокращения кросс-компонентной избыточности, при которой отсчеты цветности предсказываются на основании восстановленных отсчетов яркости той же CU посредством применения квантователя линейной модели следующим образом:[0134] Linear cross-component model (CCLM) prediction modes can be applied to reduce cross-component redundancy in which chrominance samples are predicted from reconstructed luma samples of the same CU by applying a linear model quantizer as follows:

Figure 00000009
Figure 00000009

где predc(i,j) - предсказанные отсчеты цветности в единице кодирования, а recL(i,j) - восстановленные отсчеты яркости пониженного разрешения той же единицы кодирования CU. Параметры α и β можно получить из уравнения прямой линии, которое может также называться максимально-минимальным методом. Поскольку данный процесс вычисления может выполняться в рамках процесса декодирования, а не просто как операция поиска кодером, синтаксис для передачи значений α и β может не использоваться.where pred c (i,j) are the predicted chrominance samples in a coding unit and rec L (i,j) are the reconstructed reduced resolution luma samples of the same coding unit CU. The parameters α and β can be obtained from the straight line equation, which may also be called the maximum-minimum method. Since this calculation process may be performed as part of the decoding process and not simply as a lookup operation by the encoder, the syntax for passing the values of α and β may not be used.

[0135] Для формата цветности 4:2:0 предсказание CCLM может применять шестиотводный интерполяционный фильтр для получения отсчета яркости пониженного разрешения, соответствующего отсчету цветности на фиг. 13. По формуле вычисляется отсчет Rec'L[x, у] яркости пониженного разрешения из восстановленных отсчетов яркости.[0135] For a 4:2:0 chrominance format, CCLM prediction may apply a six-tap interpolation filter to obtain a reduced resolution luminance sample corresponding to the chroma sample in FIG. 13. The reduced resolution luminance reading Rec'L[x, y] is calculated from the reconstructed luminance readings using the formula.

[0136] Отсчеты яркости пониженного разрешения могут применяться для нахождения максимальной и минимальной точек отсчетов. Две точки (пара яркость и цветность) (А, В) могут быть минимальным и максимальным значениями внутри набора соседних отсчетов яркости, как показано на фиг. 13.[0136] Reduced resolution luminance samples may be used to find the maximum and minimum sample points. The two points (luma and chrominance pair) (A, B) may be the minimum and maximum values within a set of adjacent luminance samples, as shown in FIG. 13.

[0137] Параметры линейной модели α и β можно получить по следующим уравнениям:[0137] The linear model parameters α and β can be obtained from the following equations:

Figure 00000010
Figure 00000010

Figure 00000011
Figure 00000011

[0138] Операции деления можно эффективно избежать посредством операций сдвига и умножения. Одну справочную таблицу (LUT) можно применять для хранения предварительно вычисляемых значений, а значения абсолютной разности между минимальным и максимальным отсчетами яркости можно использовать для обозначения указателя записи LUT. Размер LUT может составлять 512.[0138] Division operations can be effectively avoided by shift and multiplication operations. A single look-up table (LUT) may be used to store the precomputed values, and the absolute difference between the minimum and maximum brightness samples may be used to designate the LUT record pointer. The LUT size can be 512.

[0139] На фиг. 14А и 14В изображены иллюстративные положения отсчетов, применяемых для получения α и β в LT_CCLM. В режиме T_CCLM, в некоторых примерах используются только вышеуказанные соседние отсчеты (включающие 2*W отсчетов) для расчета коэффициентов линейной модели. На фиг. 15А и 15В изображены иллюстративные положения отсчетов, применяемых для получения α и β в T_CCLM.[0139] FIG. 14A and 14B depict exemplary sample positions used to obtain α and β in LT_CCLM. In T_CCLM mode, some examples use only the above adjacent samples (including 2*W samples) to calculate the linear model coefficients. In FIG. 15A and 15B depict exemplary sample positions used to obtain α and β in T_CCLM.

[0140] В режиме L_CCLM, в ряде примеров, только левые соседние отсчеты (включающие отсчеты 2*Н отсчетов) применяются для расчета коэффициентов линейной модели. На фиг. 16А и 16В изображены иллюстративные положения отсчетов, применяемых для получения α и β в L_CCLM.[0140] In the L_CCLM mode, in some examples, only left adjacent samples (including 2*H samples) are used to calculate the linear model coefficients. In FIG. 16A and 16B depict exemplary sample positions used to obtain α and β in L_CCLM.

[0141] Режим предсказания CCLM может также включать предсказание между двумя компонентами цветности (например, компонент Cr предсказывается из компонента Cb). Вместо применения восстановленного сигнала отсчета можно использовать предсказание CCLM Cb-Cr в остаточной области. Предсказание CCLM Cb-Cr можно применять, добавляя взвешенное восстановленное остаточное предсказание Cb к исходному внутреннему предсказанию Cr, для формирования конечного предсказания Cr:[0141] The CCLM prediction mode may also include prediction between two chrominance components (eg, the Cr component is predicted from the Cb component). Instead of using the recovered sample signal, CCLM Cb-Cr prediction in the residual region can be used. The CCLM Cb-Cr prediction can be applied by adding the weighted reconstructed residual prediction Cb to the original intra prediction Cr to form the final prediction Cr:

Figure 00000012
Figure 00000012

[0142] Режим предсказания яркость-цветность CCLM можно добавить как дополнительный режим внутреннего предсказания цветности. Со стороны кодера производится дополнительная проверка стоимости искажения-скорость передачи (RD) для компонентов цветности в целях выбора режима внутреннего предсказания цветности. При применении режима внутреннего предсказания для компонентов цветности единицы кодирования, отличающегося от режима предсказания яркость-цветность CCLM, для компонента Cr применяется предсказание CCLM Cb-Cr.[0142] The CCLM luminance-chrominance prediction mode can be added as an additional intra chroma prediction mode. On the part of the encoder, an additional cost-distortion-rate (RD) check is made for the chrominance components in order to select the intra chrominance prediction mode. When applying an intra prediction mode for the chrominance components of a coding unit other than the CCLM luminance-chrominance prediction mode, Cb-Cr CCLM prediction is applied to the Cr component.

[0143] Множественная модель CCLM (MMLM) - другое расширение CCLM с возможностью наличия нескольких моделей (например, 2 или более моделей). В MMLM соседние отсчеты яркости и цветности текущего блока можно классифицировать по двум группам, и каждую из групп можно использовать как обучающий набор для получения линейной модели (то есть определенные α и β получают для определенной группы). Далее отсчеты текущего блока яркости можно также классифицировать на основании одного и того же правила классификации соседних отсчетов яркости.[0143] Multiple CCLM Model (MMLM) is another extension of CCLM with the possibility of having multiple models (eg, 2 or more models). In MMLM, adjacent luminance and chrominance samples of the current block can be classified into two groups, and each of the groups can be used as a training set to obtain a linear model (ie, certain α and β are obtained for a certain group). Further, the samples of the current luminance block can also be classified based on the same classification rule for adjacent luma samples.

[0144] Фиг. 17 демонстрирует пример классификации соседних отсчетов в две группы. Порог, представленный на фиг. 17, можно рассчитать как среднее значение соседних восстановленных отсчетов яркости. Если Rec'L[x,y] <= Threshold (Порог), соседний отсчет определен в группу 1, а если Rec'L[x,y] > Threshold, соседний отсчет определен в группу 2.[0144] FIG. 17 shows an example of classifying adjacent samples into two groups. The threshold shown in Fig. 17 can be calculated as the average of adjacent reconstructed brightness samples. If Rec'L[x,y] <= Threshold, the adjacent sample is defined in group 1, and if Rec'L[x,y] > Threshold, the adjacent sample is defined in group 2.

Figure 00000013
Figure 00000013

[0145] Для проведения контурного цветового преобразования в универсальном видеокодировании с целью эффективной кодировки входного видеосигнала в формате RGB необходимо отрегулировать взаимодействие между преобразованием цветности и несколькими инструментами кодировки (например, кросс-компонентная линейная модель и метод разделения дуального дерева) в универсальном видеокодировании. Варианты осуществления настоящего изобретения предоставляют крайне эффективные функции регулировки преобразования цветности кодирующим инструментарием универсального видеокодирования.[0145] In order to perform a color contour transform in universal video coding in order to efficiently encode an input video signal in RGB format, it is necessary to adjust the interaction between the chrominance transform and several encoding tools (for example, cross-component linear model and dual tree splitting method) in universal video coding. Embodiments of the present invention provide highly efficient chroma transform adjustment functions by the universal video coding tool.

[0146] Варианты осуществления настоящего изобретения могут применяться раздельно или вместе в любом порядке. Также каждый из способов, кодер и декодер, согласно вариантам осуществления настоящего изобретения, может быть выполнен обрабатывающей схемой (например, одним или более процессорами или одной или более интегральными схемами). В одном примере один или несколько процессоров выполняют программу, хранящуюся на машиночитаемом носителе информации. Согласно вариантам осуществления настоящего изобретения, под термином "блок" может пониматься блок предсказания, блок кодировки или единица кодирования (то есть CU). Согласно вариантам осуществления настоящего изобретения, термин "компонент яркости" может относиться к любому цветовому компоненту, кодированному как первый компонент в порядке кодирования (например, красный (R) или зеленый (G) цветовой компонент). Далее, согласно вариантам осуществления настоящего изобретения, под термином "компонент цветности" может пониматься любой цветовой компонент, не кодируемый как первый компонент в порядке кодирования.[0146] Embodiments of the present invention may be applied separately or together in any order. Also, each of the methods, encoder and decoder, according to embodiments of the present invention, may be implemented by a processing circuit (eg, one or more processors or one or more integrated circuits). In one example, one or more processors execute a program stored on a computer-readable storage medium. According to embodiments of the present invention, the term "block" may refer to a prediction block, a coding block, or a coding unit (ie, CU). According to embodiments of the present invention, the term "luminance component" may refer to any color component encoded as the first component in coding order (eg, red (R) or green (G) color component). Further, according to embodiments of the present invention, the term "chrominance component" can be understood to mean any color component that is not encoded as the first component in the coding order.

[0147] Согласно некоторым вариантам осуществления настоящего изобретения, цветовое преобразование, такое как ACT? применяется перед предсказанием кодера, а после кодер осуществляет восстановление. В кодере преобразование ACT может выполняться перед предсказанием (например, перед внутренним или внешним предсказанием), а опорные отсчеты и входящие начальные отсчеты могут отображаться в другом цветовом пространстве, если ACT применяется для текущей единицы кодирования. При пиксельном восстановлении декодером, если ACT применяется для восстанавливаемого блока, опорные отсчеты могут отображаться в альтернативном цветовом пространстве перед их использованием для предсказания, а восстановленные отсчеты могут снова отображаться в первоначальном цветовом пространстве.[0147] According to some embodiments of the present invention, a color transform such as ACT? is applied before the encoder's prediction, and after the encoder performs the recovery. At the encoder, ACT may be performed prior to prediction (eg, intra or inter prediction), and reference samples and incoming seed samples may be displayed in a different color space if ACT is applied to the current coding unit. In pixel reconstruction by the decoder, if ACT is applied to the block being restored, the reference samples may be displayed in an alternate color space before they are used for prediction, and the reconstructed samples may again be displayed in the original color space.

[0148] На фиг. 18 показаны варианты осуществления процессов кодирования и декодирования с помощью ACT. Блоки, представленные на фиг. 18, можно реализовать в виде программ процессором или схемой, например, специальной интегральной схемой, разработанной для выполнения функции каждого блока, представленного на фиг. 18. ACT блоки (1800) и (1804) выполняют ACT преобразование на опорном и входном сигнале, соответственно. ACT преобразование, выполняемое ACT блоками кодера (1800) и (1804), может быть ACT преобразованием, раскрытым в Ур. (7). Результат ACT (1800) предоставляется блоку предсказания (1802). Далее опорный сигнал передается блоку предсказания (1806). Блоки предсказания (1802) и (1806) могут выполнять внутреннее или внешнее предсказание. Блок преобразования 1808 получает (i) разницу между результатом (выходным сигналом) блока предсказания (1802) и результатом блока ACT (1804) или (ii) разницу между результатом блока предсказания (1806) и входящим сигналом. Блок преобразования (1808) может выполнять операцию преобразования, например, дискретное косинусное преобразование (DCT). Результат блока преобразования (1808) передается квантователю (Q) (1810) для проведения квантования с последующим получением ряда коэффициентов.[0148] In FIG. 18 shows embodiments of ACT encoding and decoding processes. The blocks shown in Fig. 18 may be implemented in programs by a processor or a circuit, such as an ASIC, designed to perform the function of each block shown in FIG. 18. ACT blocks (1800) and (1804) perform an ACT transform on the reference and input signal, respectively. The ACT transform performed by the ACT encoder units (1800) and (1804) may be the ACT transform disclosed in Eq. (7). The result of the ACT (1800) is provided to the prediction block (1802). The reference signal is then passed to a prediction block (1806). Predictors (1802) and (1806) may perform intra or inter prediction. Transform block 1808 receives (i) the difference between the result (output) of the prediction block (1802) and the result of the ACT block (1804), or (ii) the difference between the result of the prediction block (1806) and the input signal. The transform block (1808) may perform a transform operation, such as a discrete cosine transform (DCT). The result of the transform block (1808) is passed to the quantizer (Q) (1810) for quantization, followed by a series of coefficients.

[0149] Обратный квантователь (IQ) декодера (1812) получает коэффициенты для выполнения обратного квантования. Результат обратного квантователя (IQ) (1812) передается на обратный преобразователь (IT) (1814) для проведения обратного преобразования. Блок ACT (1820) получает итоговый результат блока предсказания (1818), а также результат блока обратного преобразования (IT) (1814). Блок ACT (1816) получает результат блока предсказания (1818). Блоки ACT (1816) и (1820) могут выполнять обратное преобразование цвета как в Ур. (8). Блоки преобразования (1818) и (1822) могут выполнять внешнее или внутреннее предсказание. Восстановленный опорный сигнал обеспечивается результатом блока ACT (1816), а восстановленный первоначальный сигнал обеспечивается результатом блока ACT (1820).[0149] The inverse quantizer (IQ) of the decoder (1812) obtains coefficients to perform inverse quantization. The result of the inverse quantizer (IQ) (1812) is passed to the inverse transform (IT) (1814) for inverse transformation. The ACT block (1820) receives the final result of the prediction block (1818) as well as the result of the inverse transform (IT) block (1814). The ACT block (1816) receives the result of the prediction block (1818). Blocks ACT (1816) and (1820) can perform the inverse color transformation as in Eq. (8). Transform blocks (1818) and (1822) may perform inter or intra prediction. The restored reference signal is provided by the result of the ACT block (1816) and the restored original signal is provided by the result of the ACT block (1820).

[0150] Согласно некоторым вариантам осуществления, в процессе ACT 2-ой и 3-ий цветовые компоненты смещаются на постоянную "с" после и до цветового преобразования для прямого и обратного преобразования, соответственно. Ур. (14) изображает модифицированное прямое преобразование, а Ур. (15) - модифицированное обратное преобразование.[0150] According to some embodiments, during the ACT process, the 2nd and 3rd color components are shifted by a constant "c" after and before the color transform for forward and reverse transform, respectively. Lv. (14) depicts a modified direct transformation, and Eq. (15) - modified inverse transformation.

Figure 00000014
Figure 00000014

Figure 00000015
Figure 00000015

[0151] В некоторых вариантах осуществления постоянная с определяется как 1<<(bitDepth-1), где bitDepth - битовая глубина входного отсчета.[0151] In some embodiments, the constant c is defined as 1<<(bitDepth-1), where bitDepth is the bit depth of the input sample.

[0152] Согласно некоторым вариантам осуществления, преобразование цвета применяется только при кодировании различных цветовых компонентов с помощью дерева единицы преобразования. В одном варианте осуществления, при использовании дуального дерева (DualTree) на интра-слайсе, цветовое преобразование применяется только для интер-слайса.[0152] According to some embodiments, color transformation is only applied when encoding different color components with a transformation unit tree. In one embodiment, when using a DualTree on an intra-slice, the color transform is only applied to the inter-slice.

[0153] Согласно некоторым вариантам осуществления, при использовании цветового преобразовании режим CCLM не применяется или не сигнализируется, поскольку генерация остаточных отсчетов из одного компонента зависит от восстановления другого компонента. В другом варианте осуществления при использовании режима CCLM преобразование цвета не применяется или не сигнализируется. В одном варианте осуществления при использовании цветового преобразования на остаточных отсчетах внутреннего кодирования режим CCLM не применяется или не сигнализируется, поскольку генерация остаточных отсчетов из одного компонента зависит от восстановления другого компонента. В одном варианте осуществления при использовании цветового преобразования на остаточном отсчете и применении режима CCLM, цветовое преобразование не применяется или не сигнализируется.[0153] According to some embodiments, when color transform is used, the CCLM mode is not applied or signaled because the generation of residual samples from one component depends on the reconstruction of another component. In another embodiment, no color conversion is applied or signaled when using the CCLM mode. In one embodiment, when color transform is used on the intra-coding residual samples, the CCLM mode is not applied or signaled because the generation of residual samples from one component depends on the reconstruction of another component. In one embodiment, when using a color transform on the residual sample and applying the CCLM mode, no color transform is applied or signaled.

[0154] Согласно некоторым вариантам осуществления, цветовое преобразование сигнализируется для каждой единицы дерева кодирования, которая является самой крупной единицей кодирования.[0154] According to some embodiments, a color transform is signaled for each coding tree unit that is the largest coding unit.

[0155] В некоторых вариантах осуществления цветовое преобразование сигнализируется и применяется только для блоков внутреннего кодирования или только для блоков внешнего кодирования. В некоторых вариантах осуществления при применении цветового преобразования дуальное дерево не применяется (то есть различные цветовые компоненты используют одинаковое разделение единиц преобразования).[0155] In some embodiments, a color transform is signaled and applied only to intra coding blocks or only to outer coding blocks. In some embodiments, no dual tree is applied when applying a color transform (ie, different color components use the same division of transform units).

[0156] Фиг. 19 демонстрирует вариант осуществления процесса, выполняемого кодером (603). Процесс может запуститься на этапе (S1900) определения, выполнено ли условие цветового преобразования. Например, условием цветового преобразования может быть флаг, указывающий на разрешение цветового преобразования для текущего блока. Другой пример: условием цветового преобразования может быть флаг, указывающий на разрешение цветового преобразования для каждого блока в CTU. При выполнении условия цветового преобразования процесс переходит к этапу (S1902), на котором цветовое преобразование выполняется на текущем блоке. Например, цветовым преобразованием может выступать операция ACT, представленная в Ур. (7).[0156] FIG. 19 shows an embodiment of the process performed by the encoder (603). The process may start at the step (S1900) of determining whether the color conversion condition is met. For example, the color transform condition may be a flag indicating whether the color transform is enabled for the current block. As another example, the color transform condition could be a flag indicating that color transform is enabled for each block in the CTU. When the color conversion condition is met, the process proceeds to a step (S1902) in which color conversion is performed on the current block. For example, the color transform may be the ACT operation presented in Eq. (7).

[0157] Процесс переходит от этапа (S1902) к этапу (S1904) для выполнения предсказания для текущего блока с цветовым преобразованием. Предсказание может быть внутренним или внешним. Если на этапе (S1900) условие цветового преобразования не выполняется, процесс переходит на этап (S1904). Процесс переходит с этапа (S1904) на этап (S1906) для выполнения, например, дискретного косинусного преобразования (DCT) на предсказанном текущем блоке. Процесс переходит на этап (S1908) для выполнения квантования на преобразованном текущем блоке. Результатом квантования может быть набор коэффициентов, включаемый в битовый поток, передаваемый декодеру. Процесс, представленный на рис. 19, можно заканчивать после выполнения этапа (S1908).[0157] The process proceeds from step (S1902) to step (S1904) to perform prediction for the current color transform block. Prediction can be internal or external. If the color conversion condition is not met in step (S1900), the process proceeds to step (S1904). The process proceeds from step (S1904) to step (S1906) to perform, for example, discrete cosine transform (DCT) on the predicted current block. The process proceeds to step (S1908) to perform quantization on the transformed current block. The result of the quantization may be a set of coefficients included in the bitstream transmitted to the decoder. The process shown in fig. 19 can be ended after step (S1908) is completed.

[0158] Фиг. 20 демонстрирует вариант осуществления процесса, выполняемого декодером (710). Процесс может запускаться на этапе (S2000) при получении битового потока кодированного видео. Этот битовый поток включает коэффициенты, генерируемые на этапе (S1908) (фиг. 19). Процесс переходит на этап (S2002) выполнения обратного квантования на ряде коэффициентов, соответствующих текущему блоку. Процесс переходит на этап (S2004) выполнения обратного преобразования на результате обратного квантования для текущего блока. Процесс переходит на этап (S2006), где внутреннее или внешнее предсказание выполняется на результате обратного преобразования, соответствующего текущему блоку. На этапе (S2008) определяется выполнение условия цветового преобразования для текущего блока. Например, условием цветового преобразования может быть флаг, указывающий, что цветовое преобразование разрешено для текущего блока. Другой пример: условием цветового преобразования может быть флаг, указывающий, что цветовое преобразование разрешено для каждого блока в CTU. При выполнении условия цветового преобразования процесс переходит к этапу (S2010) выполнения обратного цветового преобразования на текущем блоке. Например, обратное цветовое преобразование может представлять собой операцию ACT, представленную в Ур. (8). При невыполнении условия цветового преобразования, завершается процесс, изображенный на фиг. 20. Процесс, изображенный на фиг. 20, может также быть выполнен по завершении этапа (S2010).[0158] FIG. 20 shows an embodiment of the process performed by the decoder (710). The process may be started in step (S2000) when an encoded video bitstream is received. This bitstream includes the coefficients generated in step (S1908) (FIG. 19). The process proceeds to the step (S2002) of performing inverse quantization on a number of coefficients corresponding to the current block. The process proceeds to a step (S2004) of performing an inverse transform on the inverse quantization result for the current block. The process proceeds to a step (S2006) where intra or inter prediction is performed on the inverse transform result corresponding to the current block. In step (S2008), the fulfillment of the color conversion condition for the current block is determined. For example, the color transform condition may be a flag indicating that a color transform is allowed for the current block. As another example, a color transform condition could be a flag indicating that a color transform is allowed for each block in the CTU. When the color conversion condition is met, the process proceeds to the step (S2010) of performing an inverse color conversion on the current block. For example, the inverse color transform may be the ACT operation presented in Eq. (8). If the color conversion condition is not met, the process shown in FIG. 20. The process depicted in FIG. 20 may also be executed upon completion of the step (S2010).

[0159] Вышеописанные методы могут быть реализованы в виде компьютерного программного обеспечения, использующего компьютерно-считываемые инструкции и физически хранящегося на одном или более компьютерно-считываемых носителях. Например, на фиг. 21 показана компьютерная система (2100), пригодная для реализации некоторых вариантов осуществления раскрытого изобретения.[0159] The above methods may be implemented in computer software using computer-readable instructions and physically stored on one or more computer-readable media. For example, in FIG. 21 shows a computer system (2100) suitable for implementing some embodiments of the disclosed invention.

[0160] Компьютерное программное обеспечение может кодироваться с использованием любого подходящего машинного кода или компьютерного языка, который может подвергаться ассемблированию, компиляции, редактированию связей или аналогичной обработке для создания кода, содержащего инструкции, которые могут выполняться напрямую, или посредством интерпретации, выполнения микрокода и т.п., одним или более компьютерными центральными процессорами (CPU, central processing units), графическими процессорами (GPU, Graphics Processing Units) и т.п.[0160] Computer software may be coded using any suitable machine code or computer language that may be assembled, compiled, linked, or similarly processed to create code containing instructions that can be executed directly, or through interpretation, execution of microcode, etc. .p., one or more computer central processing units (CPU, central processing units), graphic processors (GPU, Graphics Processing Units), etc.

[0161] Инструкции могут выполняться на компьютерах различных типов или их компонентах, включая, например, персональные компьютеры, планшетные компьютеры, серверы, смартфоны, игровые устройства, устройства интернета вещей и т.п.[0161] The instructions may be executed on various types of computers or components thereof, including, for example, personal computers, tablet computers, servers, smartphones, gaming devices, IoT devices, and the like.

[0162] Компоненты компьютерной системы (2100), показанные на фиг. 21, носят иллюстративный характер и не призваны налагать какое-либо ограничение на объем применения или функциональные возможности компьютерного программного обеспечения, реализующего варианты осуществления настоящего изобретения. Конфигурацию компонентов также не следует интерпретировать как имеющую какую-либо зависимость или требование в связи с любым одним или комбинацией компонентов, показанных в иллюстративном варианте осуществления компьютерной системы (2100).[0162] The computer system components (2100) shown in FIG. 21 are illustrative in nature and are not intended to impose any limitation on the scope of application or functionality of computer software implementing embodiments of the present invention. The configuration of the components should also not be interpreted as having any dependency or requirement in connection with any one or combination of the components shown in the illustrative embodiment of the computer system (2100).

[0163] Компьютерная система (2100) может включать в себя некоторые устройства ввода интерфейса с человеком. Такое устройство ввода может отвечать за ввод одним или более пользователями посредством, например, тактильного ввода (например, нажатий на клавиши, махов, движений информационной перчатки), аудио-ввода (например, голосового, хлопков), визуального ввода (например, жестов), обонятельного ввода (не показан). Устройства интерфейса также могут использоваться для захвата некоторых информационных носителей, не обязательно напрямую связанных с осознанным вводом человеком, например, звука (например, речи, музыки, внешнего звука), изображений (например, отсканированных изображений, фотографических изображений, полученных от камеры неподвижных изображений), видео (например, двухмерного видео, трехмерного видео, включающего в себя стереоскопическое видео).[0163] The computer system (2100) may include some human interface input devices. Such an input device may be responsible for input by one or more users through, for example, tactile input (e.g., keystrokes, waving, glove movements), audio input (e.g., voice, claps), visual input (e.g., gestures), olfactory input (not shown). Interface devices may also be used to capture certain media not necessarily directly related to conscious human input, e.g. sound (e.g. speech, music, external sound), images (e.g. scanned images, photographic images received from a still camera) , video (eg, 2D video, 3D video including stereoscopic video).

[0164] Входные интерфейсные устройства могут быть представлены одним или несколькими устройствами (по одному из изображенных): клавиатурой (2101), мышью (2102), сенсорной панелью (2103), сенсорным экраном (2110), информационной перчаткой (не показана), джойстиком (2105), микрофоном (2106), сканером (2107), камерой (2108).[0164] Input interface devices can be represented by one or more devices (one of each shown): keyboard (2101), mouse (2102), touch pad (2103), touch screen (2110), information glove (not shown), joystick (2105), microphone (2106), scanner (2107), camera (2108).

[0165] Компьютерная система (2100) также может включать в себя некоторые устройства вывода интерфейса с человеком. Такие устройства вывода могут стимулировать органы чувств одного или более пользователей посредством, например, тактильного вывода, звука, света и запаха/вкуса. Такие устройства вывода могут включать в себя устройства тактильного вывода (например, тактильной обратной связи посредством сенсорного экрана (2110), информационной перчатки (не показана) или джойстика (2105), но также могут быть устройствами тактильной обратной связи, которые не служат устройствами ввода), устройства вывода аудио (например: громкоговорители (2109), наушники (не показаны)), устройства визуального вывода (например, экраны (2110), в том числе CRT-экраны, LCD-экраны, плазменные экраны, OLED-экраны, каждый с возможностями сенсорного экранного ввода или без них, каждый с возможностями тактильной обратной связи или без них, некоторые из которых способны к двухмерному визуальному выводу или более чем трехмерному выводу посредством, например, стереографического вывода; очков виртуальной реальности (не показаны), голографических дисплеев, дымовых баков (не показаны) и принтеров (не показаны).[0165] The computer system (2100) may also include some human interface output devices. Such output devices may stimulate the senses of one or more users through, for example, tactile output, sound, light, and smell/taste. Such output devices may include tactile output devices (e.g., haptic feedback via touch screen (2110), data glove (not shown), or joystick (2105), but may also be tactile feedback devices that do not serve as input devices) , audio output devices (for example: speakers (2109), headphones (not shown)), visual output devices (for example, screens (2110), including CRT screens, LCD screens, plasma screens, OLED screens, each with touchscreen input capabilities, each with or without tactile feedback capabilities, some of which are capable of 2D visual output or more than 3D output through, for example, stereographic output; virtual reality glasses (not shown), holographic displays, smoke tanks (not shown) and printers (not shown).

[0166] Компьютерная система (2100) также может включать в себя доступные человеку запоминающие устройства и связанные с ними носители, например, оптические носители, включающие в себя CD/DVD ROM/RW (2120) с носителями CD/DVD (2121) и т.п., карты флэш-памяти (2122), сменный жесткий диск или твердотельный диск (2123), традиционные магнитные носители, например, ленту и флоппи-диск (не показан), специализированные устройства на основе ROM/ASIC/PLD, например, защитные аппаратные ключи (не показаны) и т.п.[0166] The computer system (2100) may also include human accessible storage devices and associated media, such as optical media including CD/DVD ROM/RW (2120) with CD/DVD media (2121), etc. .p., flash memory cards (2122), removable hard drive or solid state drive (2123), conventional magnetic media such as tape and floppy disk (not shown), dedicated ROM/ASIC/PLD based devices such as security hardware keys (not shown) and the like.

[0167] Специалисты в данной области техники также должны понимать, что термин "компьютерно-считываемые носители", используемый в связи с раскрытым здесь изобретением, не охватывает среды передачи, несущие волны или другие кратковременные сигналы.[0167] Those skilled in the art should also understand that the term "computer-readable media" as used in connection with the invention disclosed herein does not encompass transmission media, carrier waves, or other short-term signals.

[0168] Компьютерная система (2100) также может включать в себя интерфейс к одной или более сетям связи. Сети могут быть, например, беспроводными, проводными, оптическими. Сети могут быть, дополнительно, локальными, глобальными, городскими, транспортными и промышленными, реального времени, допускающими задержку и т.д. Примеры сетей включают в себя локальные сети, например, Ethernet, беспроводные LAN, сотовые сети, в том числе GSM, 3G, 4G, 5G, LTE и т.п., глобальные цифровые сети проводного или беспроводного телевидения, в том числе кабельное телевидение, спутниковое телевидение и наземное телевещание, транспортные и промышленные включают в себя CANBus и т.д. Некоторые сети обычно требуют внешних адаптеров сетевого интерфейса, которые подключены к некоторым портам данных общего назначения или периферийным шинам (2149) (например, USB-порты компьютерной системы (2100)); другие обычно встраиваются в ядро компьютерной системы (2100) путем подключения к системной шине, как описано ниже (например, интерфейс Ethernet в компьютерную систему PC или интерфейс сотовой сети в компьютерную систему смартфона). Используя любую из этих сетей, компьютерная система (2100) может осуществлять связь с другими объектами. Такая связь может быть однонаправленной с возможностью только приема (например, телевещания), однонаправленной с возможностью только передачи (например, CANbus к некоторым устройствам CANbus) или двунаправленной, например, к другим компьютерным системам с использованием локальной или глобальной цифровой сети. Некоторые протоколы и стеки протоколов могут использоваться в каждой из этих сетей и вышеописанных сетевых интерфейсах.[0168] The computer system (2100) may also include an interface to one or more communication networks. Networks can be, for example, wireless, wired, optical. Networks may additionally be local, wide area, metropolitan, transport and industrial, real-time, latency, etc. Examples of networks include local area networks such as Ethernet, wireless LANs, cellular networks including GSM, 3G, 4G, 5G, LTE, etc., digital wide area networks for wired or wireless television, including cable television, satellite TV and terrestrial TV, transport and industrial include CANBus, etc. Some networks typically require external network interface adapters that are connected to some general purpose data ports or peripheral buses (2149) (for example, computer system USB ports (2100)); others are typically built into the core of the computer system (2100) by connecting to a system bus as described below (eg, an Ethernet interface to a PC computer system or a cellular network interface to a smartphone computer system). Using any of these networks, the computer system (2100) can communicate with other entities. Such communication may be unidirectional with receive-only capability (eg broadcast), unidirectional with transmit-only capability (eg CANbus to some CANbus devices), or bidirectional, eg to other computer systems using a local area network or a wide area digital network. Several protocols and protocol stacks may be used on each of these networks and the network interfaces described above.

[0169] Вышеупомянутые устройства человеческого интерфейса, доступные человеку запоминающие устройства и сетевые интерфейсы могут подключаться к ядру (2140) компьютерной системы (2100).[0169] The aforementioned human interface devices, human accessible storage devices, and network interfaces can be connected to the core (2140) of the computer system (2100).

[0170] Ядро (2140) может включать в себя один или более центральных процессоров (CPU) (2141), графические процессоры (GPU) (2142), специализированные программируемые модули обработки в форме вентильных матриц, программируемых пользователем (FPGA, Field Programmable Gate Areas) (1543), аппаратные ускорители (2144) для некоторых задач и т.д. Эти устройства, совместно с постоянной памятью (ROM) (2145), оперативной памятью (2146), внутренним хранилищем данных большой емкости, например, внутренними жесткими дисками, недоступными пользователю, SSD и т.п.(2147), могут соединяться посредством системной шины (2148). В некоторых компьютерных системах системная шина (2148) может быть доступна в форме одного или более физических разъемов для обеспечения расширений за счет дополнительных CPU, GPU и т.п. Периферийные устройства могут подключаться либо напрямую к системной шине ядра (2148), либо через периферийную шину (1549). Архитектуры периферийной шины включают в себя PCI, USB и т.п.[0170] The core (2140) may include one or more central processing units (CPUs) (2141), graphics processing units (GPUs) (2142), specialized programmable processing modules in the form of Field Programmable Gate Areas (FPGAs). ) (1543), hardware accelerators (2144) for some tasks, etc. These devices, together with read-only memory (ROM) (2145), random access memory (2146), high-capacity internal storage such as user-inaccessible internal hard drives, SSDs, etc. (2147), can be connected via a system bus (2148). In some computer systems, the system bus (2148) may be available in the form of one or more physical connectors to allow for expansions with additional CPUs, GPUs, and the like. Peripherals can be connected either directly to the kernel system bus (2148) or via a peripheral bus (1549). Peripheral bus architectures include PCI, USB, and the like.

[0171] CPU (2141), GPU (2142), FPGA (2143) и ускорители (2144) могут выполнять некоторые инструкции, которые совместно могут составлять вышеупомянутый компьютерный код. Этот компьютерный код может храниться в ROM (2145) или RAM (2146). Переходные данные также могут храниться в RAM (2146), тогда как постоянные данные могут храниться, например, во внутреннем хранилище (2147) данных большой емкости. Быстрое сохранение и извлечение из любого запоминающего устройства может обеспечиваться за счет использования кэш-памяти, которая может быть тесно связана с один или более CPU (1541), GPU (1542), хранилищем данных большой емкости (2147), ROM (2145), RAM (2146) и т.п.[0171] CPUs (2141), GPUs (2142), FPGAs (2143), and accelerators (2144) may execute some instructions that together may constitute the aforementioned computer code. This computer code may be stored in ROM (2145) or RAM (2146). Transient data may also be stored in RAM (2146), while persistent data may be stored, for example, in an internal mass storage (2147). Fast storage and retrieval from any storage device can be achieved through the use of cache memory, which can be closely associated with one or more CPU (1541), GPU (1542), mass storage (2147), ROM (2145), RAM (2146) etc.

[0172] На компьютерно-считываемых носителях может храниться компьютерный код для осуществления различных компьютерно-реализуемых операций. Носители и компьютерный код могут быть специально созданы в целях настоящего изобретения или могут относиться к хорошо известным и доступным специалистам в области компьютерного программного обеспечения.[0172] Computer-readable media may store computer code for performing various computer-implemented operations. The media and computer code may be specially created for the purposes of the present invention or may be well known and available to those skilled in the art of computer software.

[0173] В порядке примера, но не ограничения, компьютерная система, имеющая архитектуру (2100), и, в частности, ядро (2140) может обеспечивать функциональные возможности благодаря выполнению процессором(ами) (включающим(и) в себя CPU, GPU, FPGA, ускорители и т.п.) программного обеспечения, воплощенного в одном или более материальных компьютерно-считываемых носителей. Такие компьютерно-считываемые носители могут быть носителями, связанными с доступным пользователю хранилищем данных большой емкости, представленным выше, а также некоторым хранилищем ядра (2140), носящим долговременный характер, например, внутренним хранилищем (2147) данных большой емкости или ROM (2145). Программное обеспечение, реализующее различные варианты осуществления настоящего изобретения, может храниться в таких устройствах и выполняться ядром (2140). Компьютерно-считываемый носитель может включать в себя одно или более запоминающих устройств или микросхем, в соответствии с конкретными нуждами. Программное обеспечение может предписывать ядру (2140) и, в частности, его процессорам (включая CPU, GPU, FPGA и т.п.) выполнять конкретные процессы или конкретные части описанных здесь конкретных процессов, включая задание структур данных, хранящихся в RAM (2146), и модификацию таких структур данных согласно процессам, заданным программным обеспечением. Дополнительно или альтернативно компьютерная система может обеспечивать функциональные возможности благодаря логике, зашитой или иным образом воплощенной в схеме (например, ускоритель (2144)), который может действовать вместо или совместно с программным обеспечением для выполнения конкретных процессов или конкретных частей описанных здесь конкретных процессов. Ссылка на программное обеспечение может охватывать логику, и наоборот, когда это уместно. Ссылка на компьютерно-считываемые носители может охватывать схему (например, интегральную схему (IC, integrated circuit)), где хранится программное обеспечение для выполнения, схему, воплощающую логику для выполнения, или обе из них, когда это уместно. Настоящее изобретение охватывает любую подходящую комбинацию оборудования и программного обеспечения.[0173] By way of example, and not limitation, a computer system having an architecture (2100), and in particular a core (2140), can provide functionality through execution by processor(s) (including(and) CPU, GPU, FPGAs, accelerators, etc.) software embodied in one or more tangible computer-readable media. Such computer-readable media can be media associated with the user-accessible bulk data storage described above, as well as some long-term core storage (2140), such as internal bulk data storage (2147) or ROM (2145). Software implementing various embodiments of the present invention may be stored on such devices and executed by the core (2140). The computer-readable medium may include one or more memory devices or chips, in accordance with specific needs. The software may cause the core (2140) and in particular its processors (including CPUs, GPUs, FPGAs, etc.) to execute specific processes or specific parts of the specific processes described herein, including setting data structures stored in RAM (2146) , and modifying such data structures according to processes defined by the software. Additionally or alternatively, the computer system may provide functionality through logic hardwired or otherwise embodied in circuitry (e.g., an accelerator (2144)) that may operate in place of or in conjunction with software to perform specific processes or specific portions of the specific processes described herein. A reference to software may cover logic, and vice versa when appropriate. Reference to computer-readable media may encompass a circuit (eg, an integrated circuit (IC)) where software is stored for execution, a circuit embodying logic for execution, or both, as appropriate. The present invention encompasses any suitable combination of hardware and software.

Приложение А: СокращенияAppendix A: Abbreviations

JEM: модель совместного исследованияJEM: collaborative research model

VVC: универсальное видеокодированиеVVC: Universal Video Coding

BMS: набор эталоновBMS: a set of standards

MV: вектор движенияMV: motion vector

HEVC: высокопроизводительное видеокодированиеHEVC: High Performance Video Coding

SEI: информация дополнительного улучшенияSEI: Additional Improvement Information

VUI: информация пригодности видеоVUI: video suitability information

GOP: группа изображенийGOP: group of images

TU: единица преобразованияTU: conversion unit

PU: единица предсказанияPU: prediction unit

CTU: единица дерева кодированияCTU: coding tree unit

СТВ: блок дерева кодированияCTB: coding tree block

РВ: блок предсказанияRW: prediction block

HRD: гипотетический эталонный декодерHRD: Hypothetical Reference Decoder

SNR: отношение сигнал/шумSNR: signal to noise ratio

CPU: центральный процессорCPU: central processing unit

GPU: графический процессорGPU: GPU

CRT: кинескопCRT: kinescope

LCD: жидкокристаллический дисплейLCD: liquid crystal display

OLED: органический светодиодOLED: organic light emitting diode

CD: компакт-дискCD: CD

DVD: цифровой видеодискDVD: Digital Video Disc

ROM: постоянная памятьROM: Read Only Memory

RAM: оперативная памятьRAM: random access memory

ASIC: специализированная интегральная схемаASIC: Application Specific Integrated Circuit

PLD: программируемое логическое устройствоPLD: Programmable Logic Device

LAN: локальная сетьLAN: local area network

GSM: глобальная система мобильной связиGSM: Global System for Mobile Communications

LTE: проект долгосрочного развития систем связиLTE: a project for the long-term development of communication systems

CANBus: шина контроллерной сетиCANBus: controller network bus

USB: универсальная последовательная шинаUSB: Universal Serial Bus

PCI: межсоединение периферийных компонентовPCI: Peripheral Component Interconnect

FPGA: вентильные матрицы, программируемые пользователемFPGA: Field Programmable Gate Arrays

SSD: твердотельный приводSSD: solid state drive

IC: интегральная схемаIC: integrated circuit

CU: единица кодирования.CU: coding unit.

[0174] Хотя здесь описано несколько иллюстративных вариантов осуществления, возможны изменения, перестановки и различные эквиваленты для замены, которые укладываются в объем изобретения. Таким образом, специалисты в данной области техники могут предложить многочисленные системы и способы, которые, хотя в явном виде здесь не показаны и не описаны, воплощают принципы изобретения и, таким образом, соответствуют его сущности и объему.[0174] Although several illustrative embodiments are described here, changes, permutations, and various replacement equivalents are possible that fall within the scope of the invention. Thus, those skilled in the art can provide numerous systems and methods that, although not explicitly shown or described herein, embody the principles of the invention and thus fall within its spirit and scope.

[0175] (1) Способ видеодекодирования, выполняемый видеодекодером, заключается в получении битового потока кодированного видео, включая текущее изображение; в выполнении обратного квантования на текущем блоке текущего изображения; после обратного квантования в выполнении обратного преобразования на текущем блоке; в выполнении предсказания на текущем блоке после обратного преобразования; после предсказания на текущем блоке в определении выполнения предварительно заданного условия; и в выполнении обратного цветового преобразования на текущем блоке после определения выполнения предварительно заданного условия.[0175] (1) A video decoding method performed by a video decoder is to obtain an encoded video bitstream including a current picture; in performing inverse quantization on the current block of the current image; after inverse quantization in performing an inverse transform on the current block; in performing the prediction on the current block after the inverse transformation; after prediction on the current block in determining whether a predetermined condition is met; and in performing an inverse color transformation on the current block after determining whether the predetermined condition is met.

[0176] (2) Способ в соответствии с (1), в котором обратное цветовое преобразование является обратным адаптивным цветовым преобразованием (ACT), а выполнение обратного цветового преобразования преобразует восстановленный текущий блок из цветового-пространственного преобразования в формат RGB.[0176] (2) The method according to (1), wherein the inverse color transform is an inverse adaptive color transform (ACT), and performing the inverse color transform converts the reconstructed current block from color-spatial transform to RGB format.

[0177] (3) Способ в соответствии с (1) или (2), в котором выполнение обратного цветового преобразования включает вычитание постоянной из одного или более цветовых компонентов обратного цветового преобразования.[0177] (3) The method according to (1) or (2), wherein performing an inverse color transform includes subtracting a constant from one or more inverse color transform color components.

[0178] (4) Способ в соответствии с (3), в котором постоянная получается операцией сдвига влево для битовой глубины входного отсчета минус единица.[0178] (4) The method according to (3), in which the constant is obtained by a left shift operation for the input sample bit depth minus one.

[0179] (5) Способ в соответствии с одним из (1)-(4), в котором предварительно заданное условие выполняется в ответ на определение сигнализации цветового преобразования для текущего блока.[0179] (5) The method according to one of (1) to (4), wherein the predetermined condition is executed in response to determining the color conversion signaling for the current block.

[0180] (6) Способ в соответствии с (5), в котором цветовое преобразование сигнализируется для каждой единицы дерева кодирования (CTU) с самой большой единицей кодирования.[0180] (6) The method according to (5), in which a color transform is signaled for each coding tree unit (CTU) with the largest coding unit.

[0181] (7) Способ в соответствии с одним из признаков (1)-(6), в котором предварительно заданное условие выполняется в ответ на определение того, что различные цветовые компоненты обратного цветового преобразования кодированы с помощью одного и того же дерева деления единиц преобразования.[0181] (7) The method according to one of (1) to (6), wherein the predetermined condition is met in response to determining that different inverse color transform color components are encoded with the same unit division tree transformations.

[0182] (8) Способ в соответствии с (7), в котором обратное цветовое преобразование применяется только на интер-слайсе в ответ на определение применения дуального дерева на интра-слайсе.[0182] (8) The method according to (7), wherein the inverse color transform is applied only on the inter-slice in response to determining the application of the dual tree on the intra-slice.

[0183] (9) Способ в соответствии с одним из признаков (1)-(8), в котором в ответ на определение выполнения предварительно заданного условия не применяется кросс-компонентный линейный режим (CCLM) для блоков цветности текущего блока.[0183] (9) The method according to one of (1) to (8), wherein, in response to determining whether a predetermined condition is met, cross-component linear mode (CCLM) is not applied to chrominance blocks of the current block.

[0184] (10) Способ видеодекодирования в соответствии с одним из признаков (1)-(9), в котором процесс предсказания представляет собой внешнее или внутреннее предсказание.[0184] (10) The video decoding method according to one of the features (1) to (9), wherein the prediction process is inter prediction or intra prediction.

[0185] (11) Видеодекодер для декодирования видео, включающий схему обработки, настроенную на получение битового потока кодированного видео, включающего текущее изображение, выполнение обратного квантования на текущем блоке текущего изображения, выполнение обратного преобразования после выполнения обратного квантования на текущем блоке, выполнение процесса предсказания на текущем блоке после выполнения обратного преобразования, определение выполнения предварительно заданного условия после выполнения предсказания на текущем блоке и выполнение обратного цветового преобразования на текущем блоке в ответ на установление выполнения предварительно заданного условия.[0185] (11) A video decoder for decoding video, including a processing circuit configured to receive an encoded video bitstream including a current picture, perform inverse quantization on the current block of the current picture, perform inverse transformation after performing inverse quantization on the current block, perform a prediction process on the current block after performing the inverse transformation, determining whether the predetermined condition is satisfied after performing the prediction on the current block, and performing the inverse color transformation on the current block in response to determining whether the predetermined condition is satisfied.

[0186] (12) Видеодекодер в соответствии с (11), в котором обратное цветовое преобразование является обратным адаптивным цветовым преобразованием (ACT), а выполнение обратного цветового преобразования преобразует восстановленный текущий блок из цветового-пространственного преобразования в формат RGB.[0186] (12) The video decoder according to (11), wherein the inverse color transform is an inverse adaptive color transform (ACT), and performing the inverse color transform converts the reconstructed current block from color-spatial transform to RGB format.

[0187] (13) Видеодекодер в соответствии с (11) или (12), в котором выполнение обратного цветового преобразования включает схему обработки, настроенную на вычитание постоянной из одного или более цветовых компонентов обратного цветового преобразования.[0187] (13) The video decoder according to (11) or (12), wherein performing the inverse color transform includes a processing circuit configured to subtract a constant from one or more color inverse transform components.

[0188] (14) Видеодекодер в соответствии с (13), в котором постоянная получается операцией сдвига влево на битовую глубину входного отсчета минус единица.[0188] (14) A video decoder according to (13), in which a constant is obtained by a left shift operation by the input sample bit depth minus one.

[0189] (15) Видеодекодер в соответствии с одним из признаков (11)-(14), в котором предварительно заданное условие выполняется в ответ на определение сигнализации о цветовом преобразовании для текущего блока.[0189] (15) The video decoder according to one of the features (11) to (14), in which the predetermined condition is met in response to determining the color conversion signaling for the current block.

[0190] (16) Видеодекодер в соответствии с (15), в котором цветовое преобразование сигнализируется для каждой единицы дерева кодирования (CTU) с самой большой единицей кодирования (CU).[0190] (16) A video decoder according to (15) in which a color transform is signaled for each coding tree unit (CTU) with the largest coding unit (CU).

[0191] (17) Видеодекодер в соответствии с одним из признаков (11)-(16), в котором предварительно заданное условие выполняется в ответ на определение кодировки различных цветовых компонентов обратного цветового преобразования с помощью одного и того же дерева деления единиц преобразования.[0191] (17) A video decoder according to one of the features (11) to (16), wherein a predetermined condition is met in response to determining the encoding of different inverse transform color components with the same transform unit division tree.

[0192] (18) Видеодекодер в соответствии с (17), в котором обратное цветовое преобразование применяется только к интра-слайсу в ответ на определение применения дуального дерева к интра-слайсу.[0192] (18) The video decoder according to (17), in which an inverse color transform is applied only to the intra-slice in response to determining whether the dual tree is applied to the intra-slice.

[0193] (19) Видеодекодер особенности (11), в котором в ответ на определение выполнения предварительно заданного условия не применяется кросс-компонентный линейный режим (CCLM) для блоков цветности текущего блока.[0193] (19) The feature video decoder (11) in which, in response to determining whether a predetermined condition is met, cross-component linear mode (CCLM) is not applied to the chroma blocks of the current block.

[0194] (20) Машиночитаемый носитель информации с инструкциями, при выполнении которых процессор видеодекодера выполняет следующее: получение битового потока кодированного видео, включая текущее изображение, выполнение обратного квантования на текущем блоке текущего изображения, выполнение обратного преобразования после выполнения обратного квантования на текущем блоке, выполнение процесса предсказания на текущем блоке после выполнения обратного преобразования, определение выполнения предварительно заданного условия после выполнения предсказания на текущем блоке и выполнение обратного цветового преобразования на текущем блоке в ответ на установление выполнения предварительно заданного условия.[0194] (20) A computer-readable storage medium with instructions whereby the video decoder processor performs the following: receiving an encoded video bitstream including the current picture, performing inverse quantization on the current block of the current picture, performing inverse transformation after performing inverse quantization on the current block, performing a prediction process on the current block after performing the inverse transformation, determining whether the predetermined condition is satisfied after performing the prediction on the current block, and performing an inverse color transformation on the current block in response to determining whether the predetermined condition is satisfied.

Claims (42)

1. Способ видеодекодирования, в котором: 1. A video decoding method, in which: принимают битовый поток кодированного видео, включающий текущее изображение; receiving an encoded video bitstream including the current picture; выполняют обратное квантование для текущего блока текущего изображения; и perform inverse quantization for the current block of the current image; and выполняют обратное цветовое преобразование для текущего блока после обратного квантования; perform an inverse color transformation for the current block after inverse quantization; при этом обратное цветовое преобразование для текущего блока выполняют в ответ на определение того, что различные цветовые компоненты обратного цветового преобразования кодированы с помощью одного и того же дерева деления единиц кодирования, и обратное цветовое преобразование применяют для блоков с внутренним кодированием. wherein the inverse color transform for the current block is performed in response to determining that the different color components of the inverse color transform are encoded with the same division tree of coding units, and the inverse color transform is applied to intra-coded blocks. 2. Способ по п. 1, в котором обратное цветовое преобразование является обратным адаптивным цветовым преобразованием (ACT), и выполнение обратного цветового преобразования преобразует восстановленный текущий блок из преобразования цветового пространства в формат RGB. 2. The method of claim 1, wherein the inverse color transform is an inverse adaptive color transform (ACT) and performing the inverse color transform converts the reconstructed current block from a color space transform to an RGB format. 3. Способ по п. 1, в котором выполнение обратного цветового преобразования включает вычитание постоянной величины из одного или более цветовых компонентов обратного цветового преобразования. 3. The method of claim 1, wherein performing the inverse color transform comprises subtracting a constant value from one or more color components of the inverse color transform. 4. Способ по п. 3, в котором упомянутую постоянную величину получают выполнением операции сдвига влево для битовой глубины входного отсчета минус единица. 4. The method of claim 3, wherein said constant value is obtained by performing a left shift operation on the bit depth of the input sample minus one. 5. Способ по п. 1, в котором перед выполнением обратного цветового преобразования для текущего блока способ также включает: 5. The method of claim. 1, wherein before performing the inverse color transformation for the current block, the method also includes: определение, выполнено ли предварительно заданное условие; determining whether a predetermined condition is met; при этом предварительно заданное условие выполнено, если определено, что сигнализировано о цветовом преобразовании для текущего блока.wherein the predetermined condition is met if it is determined that a color conversion is signaled for the current block. 6. Способ по п. 5, в котором о цветовом преобразовании сигнализируют для каждой единицы дерева кодирования (CTU), которая имеет самую большую единицу кодирования (CU). 6. The method of claim 5, wherein the color transform is signaled for each coding tree unit (CTU) that has the largest coding unit (CU). 7. Способ по п. 5, в котором при применении цветового преобразования дуальное дерево (DualTree) не применяют. 7. The method according to claim 5, in which the dual tree (DualTree) is not used when applying the color transformation. 8. Способ по п. 1, в котором перед выполнением обратного цветового преобразования для текущего блока способ также включает: 8. The method of claim. 1, in which before performing the inverse color transformation for the current block, the method also includes: определение, выполнено ли предварительно заданное условие; determining whether a predetermined condition is met; при этом предварительно заданное условие выполнено, если определено, что различные цветовые компоненты обратного цветового преобразования кодированы с помощью одного и того же дерева деления единиц преобразования. wherein the predetermined condition is met if it is determined that different inverse color transform color components are encoded with the same transform unit division tree. 9. Способ по п. 8, в котором, если определено, что дуальное дерево (DualTree) применяют к интра-слайсу, то обратное цветовое преобразование применяют только к интер-слайсу. 9. The method of claim 8, wherein if it is determined that the DualTree is applied to the intra-slice, then the inverse color transform is applied to the inter-slice only. 10. Способ по п. 1, включающий: 10. The method according to p. 1, including: определение, выполнено ли предварительно заданное условие; determining whether a predetermined condition is met; при этом не применяют кросс-компонентный линейный режим (CCLM) к блокам цветности текущего блока в ответ на определение выполнения предварительно заданного условия. while not applying the cross-component linear mode (CCLM) to the chrominance blocks of the current block in response to determining whether a predetermined condition is met. 11. Видеодекодер для видеодекодирования, содержащий: 11. Video decoder for video decoding, comprising: схему обработки, выполненную с возможностью: a processing scheme configured to: приема битового потока кодированного видео, включающего текущее изображение, receiving an encoded video bitstream including the current picture, выполнение обратного квантования для текущего блока текущего изображения; и performing inverse quantization on the current block of the current picture; and выполнение обратного цветового преобразования для текущего блока после выполнения обратного квантования, при этом обратное цветовое преобразование для текущего блока выполняется в ответ на определение того, что различные цветовые компоненты обратного цветового преобразования кодированы с помощью одного и того же дерева деления единиц кодирования, и обратное цветовое преобразование применяется для блоков с внутренним кодированием. performing an inverse color transform on the current block after performing inverse quantization, wherein the inverse color transform is performed on the current block in response to determining that different inverse color transform color components are encoded with the same coding unit division tree, and inverse color transform used for blocks with intra coding. 12. Видеодекодер по п. 11, в котором обратное цветовое преобразование является обратным адаптивным цветовым преобразованием (ACT), и выполнение обратного цветового преобразования преобразует восстановленный текущий блок из преобразования цветового пространства в формат RGB. 12. The video decoder of claim 11, wherein the inverse color transform is an inverse adaptive color transform (ACT), and performing the inverse color transform converts the reconstructed current block from a color space transform to an RGB format. 13. Видеодекодер по п. 11, который для выполнения обратного цветового преобразования включает схему обработки, сконфигурированную для вычитания постоянной величины из одного или более цветовых компонентов обратного цветового преобразования. 13. The video decoder of claim 11, which, in order to perform a color inverse transform, includes a processing circuit configured to subtract a constant value from one or more color inverse transform color components. 14. Видеодекодер по п. 13, в котором постоянная величина получена операцией сдвига влево для битовой глубины входного отсчета минус единица. 14. The video decoder of claim 13, wherein the constant value is obtained by a shift left operation for the bit depth of the input sample minus one. 15. Видеодекодер по п. 11, в котором схема обработки также сконфигурирована для определения, выполнено ли предварительно заданное условие, перед выполнением обратного цветового преобразования для текущего блока, 15. The video decoder of claim. 11, wherein the processing circuit is also configured to determine whether a predetermined condition is met before performing an inverse color transformation for the current block, при этом предварительно заданное условие выполнено, если определено, что о цветовом преобразовании сигнализировано для текущего блока. wherein the predetermined condition is met if it is determined that a color conversion is signaled for the current block. 16. Видеодекодер по п. 15, в котором о цветовом преобразовании сигнализируется для каждой единицы дерева кодирования (CTU), которая имеет самую большую единицу кодирования (CU). 16. The video decoder of claim 15, wherein the color transform is signaled for each coding tree unit (CTU) that has the largest coding unit (CU). 17. Видеодекодер по п. 15, в котором при применении цветового преобразования дуальное дерево (DualTree) не применяется.17. The video decoder of claim 15, wherein the DualTree is not applied when applying the color transform. 18. Видеодекодер по п. 11, в котором схема обработки также сконфигурирована для определения, выполнено ли предварительно заданное условие, перед выполнением обратного цветового преобразования для текущего блока, 18. The video decoder of claim 11, wherein the processing circuitry is also configured to determine whether a predetermined condition is met before performing an inverse color transformation for the current block, при этом предварительно заданное условие выполнено, если определено, что различные цветовые компоненты обратного цветового преобразования кодированы с помощью одного и того же дерева деления единиц преобразования.wherein the predetermined condition is met if it is determined that different inverse color transform color components are encoded with the same transform unit division tree. 19. Видеодекодер по п. 18, в котором обратное цветовое преобразование применяется только к интер-слайсу в ответ на определение применения дуального дерева (DualTree) к интра-слайсу. 19. The video decoder of claim 18, wherein the inverse color transform is applied only to the inter-slice in response to determining whether a DualTree is applied to the intra-slice. 20. Видеодекодер по п. 11, в котором схема обработки также сконфигурирована для определения, выполнено ли предварительно заданное условие; 20. Video decoder according to claim 11, in which the processing circuit is also configured to determine whether a predetermined condition is met; при этом в ответ на определение выполнения предварительно заданного условия, кросс-компонентный линейный режим (CCLM) не применяется к блокам цветности текущего блока. wherein, in response to determining whether the predetermined condition is met, the cross-component linear mode (CCLM) is not applied to the chrominance blocks of the current block. 21. Машиночитаемый носитель информации с инструкциями, при выполнении которых процессором видеодекодера видеодекодер выполняет способ, содержащий: 21. A computer-readable storage medium with instructions, when executed by the video decoder processor, the video decoder performs a method, comprising: прием битового потока кодированного видео, включающего текущее изображение; receiving an encoded video bitstream including the current picture; выполнение обратного квантования для текущего блока текущего изображения; и performing inverse quantization on the current block of the current picture; and выполнение обратного цветового преобразования для текущего блока после выполнения обратного квантования; performing an inverse color transform on the current block after performing the inverse quantization; при этом обратное цветовое преобразование для текущего блока выполняется в ответ на определение того, что различные цветовые компоненты обратного цветового преобразования кодированы с помощью одного и того же дерева деления единиц кодирования, и обратное цветовое преобразование применяется для блоков с внутренним кодированием.wherein the inverse color transform for the current block is performed in response to determining that the different color components of the inverse color transform are encoded with the same coding unit division tree, and the inverse color transform is applied to the intra-coded blocks.
RU2021128205A 2019-03-12 2020-03-12 Method and apparatus for colour conversion in versatile video coding (vvc) RU2787810C1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US62/817,500 2019-03-12
US16/817,028 2020-03-12

Publications (1)

Publication Number Publication Date
RU2787810C1 true RU2787810C1 (en) 2023-01-12

Family

ID=

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080123736A1 (en) * 2005-09-20 2008-05-29 Mitsubishi Electric Corporation Image encoding method and image decoding method, image encoder and image decoder, and image encoded bit stream and recording medium
US20150264405A1 (en) * 2014-03-14 2015-09-17 Qualcomm Incorporated Block adaptive color-space conversion coding
US20160100167A1 (en) * 2014-10-07 2016-04-07 Qualcomm Incorporated Qp derivation and offset for adaptive color transform in video coding
US20180063527A1 (en) * 2016-08-31 2018-03-01 Qualcomm Incorporated Cross-component filter
RU2662409C1 (en) * 2011-07-18 2018-07-25 ЭйчЭфАй Инновейшн Инк. Method and device for condensing the coding unit in high-efficient video coding

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080123736A1 (en) * 2005-09-20 2008-05-29 Mitsubishi Electric Corporation Image encoding method and image decoding method, image encoder and image decoder, and image encoded bit stream and recording medium
RU2662409C1 (en) * 2011-07-18 2018-07-25 ЭйчЭфАй Инновейшн Инк. Method and device for condensing the coding unit in high-efficient video coding
US20150264405A1 (en) * 2014-03-14 2015-09-17 Qualcomm Incorporated Block adaptive color-space conversion coding
US20160100167A1 (en) * 2014-10-07 2016-04-07 Qualcomm Incorporated Qp derivation and offset for adaptive color transform in video coding
US20180063527A1 (en) * 2016-08-31 2018-03-01 Qualcomm Incorporated Cross-component filter

Similar Documents

Publication Publication Date Title
JP7443455B2 (en) Method, apparatus and computer program for video decoding
KR102647830B1 (en) Method and apparatus for video coding
KR102637562B1 (en) Method and apparatus for intra prediction for non-square blocks in video compression
JP2024012476A (en) Method, device, medium, and program for video decoding
EP3831072A1 (en) Constraints on coding unit partition
JP7343669B2 (en) Method and apparatus for color conversion in VVC
US11683526B2 (en) Interaction between intra prediction mode and block differential pulse-code modulation mode
CN113366847B (en) Method, apparatus and readable medium for video encoding and decoding
KR20220085836A (en) Video coding method and device
KR20220100726A (en) Method and apparatus for video coding
JP2023546962A (en) Encoding end-of-block flags between components
JP2023522354A (en) Decoupling transformation partitioning
JP2023524406A (en) A harmonious design between multi-baseline intra-prediction and transform splitting
JP2023510690A (en) Method and apparatus for video coding
RU2787810C1 (en) Method and apparatus for colour conversion in versatile video coding (vvc)
RU2779825C1 (en) Method and device for interaction between the internal prediction mode and the block differential pulse-code modulation mode
RU2780422C1 (en) Method and apparatus for video encoding
RU2779901C1 (en) Method and device for improved implicit conversion selection
RU2777394C1 (en) Method and device for video encoding
RU2784813C1 (en) Method and apparatus for video encoding
RU2784906C1 (en) Method and apparatus for cross-component filtration
RU2780794C1 (en) Simplified method for signalling for the mode of affine linear weighted intra prediction
JP7443527B2 (en) Methods, devices and programs for video coding
RU2777188C1 (en) Method and device for video encoding
KR20230058166A (en) Method and Apparatus for Improved Intra Prediction