RU2777188C1 - Method and device for video encoding - Google Patents

Method and device for video encoding Download PDF

Info

Publication number
RU2777188C1
RU2777188C1 RU2021127912A RU2021127912A RU2777188C1 RU 2777188 C1 RU2777188 C1 RU 2777188C1 RU 2021127912 A RU2021127912 A RU 2021127912A RU 2021127912 A RU2021127912 A RU 2021127912A RU 2777188 C1 RU2777188 C1 RU 2777188C1
Authority
RU
Russia
Prior art keywords
block
video
transform
threshold
signaled
Prior art date
Application number
RU2021127912A
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 RU2777188C1 publication Critical patent/RU2777188C1/en

Links

Images

Abstract

FIELD: video technology.
SUBSTANCE: invention relates to the field of video encoding/decoding. A video encoding/decoding device is proposed, which includes a processing scheme that decodes the encoded information of the encoding unit (CU) from the bit stream of the encoded video. The encoded information indicates the last position of the non-zero conversion coefficients of the first coding block (CB) from the CU. The processing scheme determines whether the index of the secondary transformation in the encoded information is signaled, based on the last position, and whether to carry out the secondary transformation on the second CB, based on whether the index of the secondary transformation in the encoded information is signaled. When it is determined that a secondary transformation is to be carried out, the processing scheme performs a secondary transformation on the second CB and reconstructs the second CB. In response to the determination that the secondary transformation is not subject to implementation, the processing scheme reconstructs the second CB without performing a secondary transformation on the second CB.
EFFECT: an increase in encoding efficiency through internal prediction and, consequently, the entropy encoding technology used to translate code words into a bitstream.
8 cl, 39 dwg, 3 tbl

Description

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

[0001] Настоящее изобретение испрашивает приоритет патентной заявки США №16/838,755, "Method and Apparatus for Video Coding", поданной 2 апреля 2020 г., которая испрашивает приоритет предварительной заявки США №62/829,435, "Modifications on the Secondary Transform", поданной 4 апреля 2019. Содержание предыдущих заявок, таким образом, включено посредством ссылки в полном объеме.[0001] The present invention claims priority of U.S. Patent Application No. 16/838,755, "Method and Apparatus for Video Coding", filed April 2, 2020, which claims priority of U.S. Provisional Application No. 62/829,435, "Modifications on the Secondary Transform", filed April 4, 2019. The contents of 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 prior art is provided herein for the purpose of presenting the overall context of 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 битами на отсчет (разрешение отсчетов яркости 1920×1080 при частоте кадров 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×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. The achievable compression ratio may reflect that 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 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 techniques include techniques that attempt, for example, from ambient sample data and/or metadata obtained during encoding/decoding of spatially adjacent and preceding data blocks in decoding order. 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 a 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 adjacent 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 top 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) 4×4 отсчетов (указанный жирной пунктирной линией). Квадратный блок (104) включает в себя 16 отсчетов, каждая из которых обозначена буквой "S", позицией по оси Y (например, индексом строки) и позицией по оси X (например, индексом столбца). Например, отсчет S21 является вторым отсчетом по оси Y (сверху) и первым (слева) отсчетом по оси X. Аналогично, отсчет S44 является четвертым отсчетом в блоке (104) по обеим осям Y и X. Поскольку блок имеет размер 4×4 отсчета, S44 располагается внизу справа. Дополнительно показаны опорные отсчеты, которые следуют аналогичной схеме нумерации. Опорный отсчет обозначается буквой R, своей Y-позицией (например, индексом строки) и Х-позицией (индексом столбца) относительно блока (104). В обоих Н.264 и Н.265 предсказанные отсчеты соседствуют с блоком, подлежащим реконструкции; поэтому нет необходимости использовать отрицательные значения.[0012] In the upper left corner of FIG. 1A depicts a square block (104) of 4×4 samples (indicated by the heavy dotted line). The square block (104) includes 16 samples, each labeled with an "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 4×4 samples , S44 is 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 which, for this block, indicates the prediction direction indicated by arrow (102) - that is, the samples are predicted from the predicted sample(s) located at the top right, at an angle of 45 degrees 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 a plurality of reference samples may be combined, such as by interpolation, to calculate a 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, at the time of writing this description, can support up to 65 destinations. 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В показана диаграмма (180), где изображено 65 направлений внутреннего предсказания согласно JEM для иллюстрации увеличения количества направлений предсказания с течением времени.[0016] FIG. 1B is a diagram (180) showing 65 intra prediction directions according to JEM to illustrate an increase in the number of prediction directions over time.

[0017] Картирование битов направлений внутреннего предсказания в битовом потоке кодированного видео, которые представляют направление, может отличаться от одной технологии видеокодирования к другой технологии видеокодирования; и может охватывать, например, от простого прямого отображения направления предсказания до режима внутреннего предсказания, кодовых слов, сложных адаптивных схем, задействующих наиболее вероятные режимы, и аналогичных методов. Однако во всех случаях могут существовать некоторые направления, возникновение которых в видеоконтенте статистически менее вероятно, чем для некоторых других направлений. Поскольку целью сжатия видео является снижение избыточности, эти менее вероятные направления, в хорошо работающей технологии видеокодирования, будут представляться большим количеством битов, чем более вероятные направления.[0017] 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 directions that are statistically less likely to occur in video content than for some other directions. 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.

[0018] Видеокодирование и декодирование могут осуществляться с использованием предсказание между изображениями с компенсацией движения. Компенсация движения может представлять собой метод сжатия с потерями и может относятся к методам, где блок данных отсчетов из ранее реконструированного изображения или его части (опорного изображения), подвергнутый пространственному сдвигу в направлении, указанном вектором движения (далее MV, motion vector), используется для предсказания вновь реконструированного изображения или части изображения. В ряде случаев опорное изображение может быть идентично реконструируемому в данный момент изображению. MV могут иметь два измерения X и Y или три измерения, причем третье указывает используемое опорное изображение (последнее, косвенно, может быть временным измерением).[0018] Video encoding and decoding may be performed using inter-picture prediction with motion compensation. Motion compensation may be a lossy compression technique and may refer to techniques where a block of sample data from a previously reconstructed image or part of it (reference image) subjected to a spatial shift in the direction indicated by a motion vector (hereinafter MV, motion vector) is used to predicting a newly reconstructed image or part of an image. In some cases, the reference image may be identical to the image currently being reconstructed. MVs may have two X and Y dimensions, or three dimensions, with the third indicating the reference picture used (the latter, indirectly, may be a temporal dimension).

[0019] В некоторых методах сжатия видео, MV, применимый к определенной области данных отсчетов, можно предсказывать из других MV, например, связанных с другой областью данных отсчетов, пространственно соседствующих с реконструируемой областью, и предшествующих этому MV в порядке декодирования. Это позволяет существенно сократить объем данных, необходимый для кодирования MV, тем самым устраняя избыточность и повышая степень сжатия. Предсказание MV может работать эффективно, например, благодаря тому, что при кодировании входного видеосигнала, полученного от камеры (известного как естественное видео) существует статистическая вероятность того, что области, более обширные, чем область, к которой применим один-единственный MV, движутся в аналогичном направлении, и поэтому в ряде случаев могут предсказываться с использованием аналогичного вектора движения, полученного из MV соседней области. В результате MV, найденный для данной области, оказывается аналогичным или идентичным MV, предсказанному из окружающих MV, и который, в свою очередь, может быть представлен, после энтропийного кодирования, меньшим количеством битов, чем использовалось бы при кодировании MV напрямую. В ряде случаев, предсказание MV может служить примером сжатия без потерь сигнала (а именно, MV), полученного из исходного сигнала (а именно: потока отсчетов). В других случаях предсказание MV само может быть с потерями, например, ввиду ошибок округления при вычислении предсказателя из нескольких окружающих MV.[0019] In some video compression techniques, the MV applicable to a certain region of sample data can be predicted from other MVs, such as those associated with another region of sample data, spatially adjacent to the reconstructed region and preceding that MV in decoding order. This can significantly reduce the amount of data required for MV encoding, thereby eliminating redundancy and increasing the compression ratio. MV prediction can work efficiently, for example, because when encoding the input video signal received from the camera (known as natural video), there is a statistical probability that areas larger than the area to which a single MV is applied move in similar direction, and therefore in some cases can be predicted using a similar motion vector obtained from the MV of the neighboring area. As a result, the MV found for a given region is similar or identical to the MV predicted from the surrounding MVs, which in turn can be represented, after entropy encoding, in fewer bits than would be used when encoding the MV directly. In some cases, MV prediction can serve as an example of lossless compression of a signal (namely, MV) obtained from the original signal (namely, a stream of samples). In other cases, the MV prediction itself may be lossy, for example, due to rounding errors when computing a predictor from multiple surrounding MVs.

[0020] Различные механизмы предсказания MV описаны в H.265/HEVC (ITU-T Rec. Н.265, "High Efficiency Video Coding", декабрь 2016). Из множества механизмов предсказания MV, предлагаемых в Н.265, здесь описан метод далее именуемый "пространственным объединением ".[0020] Various MV prediction mechanisms are described in H.265/HEVC (ITU-T Rec. H.265, "High Efficiency Video Coding", December 2016). Of the many MV prediction mechanisms offered in H.265, a technique hereinafter referred to as "spatial pooling" is described.

[0021] Согласно фиг. 2, текущий блок (201) содержит отсчеты, найденные кодером в процессе поиска движения, для предсказания из предыдущего блока того же размера, который был пространственно сдвинут.Вместо того, чтобы кодировать этот MV напрямую, MV можно получить из метаданных, связанных с одним или более опорными изображениями, например, из самого последнего (в порядке декодирования) опорного изображения, с использованием MV, связанного с любым из пяти окружающих отсчетов, обозначенных А0, А1, и В0, B1, В2 (202-206, соответственно). В Н.265 предсказание MV может использовать предсказатели из того же опорного изображения, которое использует соседний блок.[0021] Referring to FIG. 2, the current block (201) contains samples found by the encoder during the motion search process to predict from a previous block of the same size that was spatially shifted. Instead of encoding this MV directly, the MV can be obtained from the metadata associated with one or more reference pictures, e.g., from the most recent (in decoding order) reference picture, using the MV associated with any of the five surrounding samples, labeled A0, A1, and B0, B1, B2 (202-206, respectively). In H.265, MV prediction may use predictors from the same reference picture as the neighboring block uses.

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

[0022] Аспекты изобретения предусматривают способы и устройства для кодирования/декодирования видеосигнала. В некоторых примерах устройство для видеодекодирования включает в себя схему обработки. Схема обработки может декодировать кодированную информацию единицы кодирования (CU, coding unit) из битового потока кодированного видео. Кодированная информация может указывать последнюю позицию ненулевых коэффициентов преобразования первого блока кодирования (СВ, coding block) в CU. Схема обработки может определять, сигнализируется ли индекс вторичного преобразования в кодированной информации, на основании последней позиции. Схема обработки может определять, осуществлять ли вторичное преобразование на втором СВ на основании того, определено ли, что индекс вторичного преобразования подлежит сигнализации в кодированной информации. В ответ на определение, что вторичное преобразование подлежит осуществлению, схема обработки может осуществлять вторичное преобразование на втором СВ и реконструкцию второго СВ. В ответ на определение, что вторичное преобразование не подлежит осуществлению, схема обработки может реконструировать второй СВ без осуществления вторичного преобразования на втором СВ.[0022] Aspects of the invention provide methods and apparatus for encoding/decoding a video signal. In some examples, the video decoding apparatus includes a processing circuit. The processing circuit may decode the encoded coding unit (CU) information from the encoded video bitstream. The encoded information may indicate the last position of the non-zero transform coefficients of the first coding block (CB) in the CU. The processing circuit may determine whether a secondary transform index is signaled in the encoded information based on the last position. The processing circuit may determine whether to perform the secondary transform on the second CB based on whether it is determined that the secondary transform index is to be signaled in the encoded information. In response to the determination that a secondary transformation is to be performed, the processing circuit may perform a secondary transformation on the second CB and a reconstruction of the second CB. In response to the determination that the secondary transformation is not to be performed, the processing circuit may reconstruct the second CB without performing the secondary transformation on the second CB.

[0023] Согласно варианту осуществления, схема обработки может определять, меньше ли горизонтальная компонента последней позиции первого порога, и меньше ли вертикальная компонента последней позиции второго порога. В ответ на определение, что горизонтальная компонента меньше первого порога и определение, что вертикальная компонента меньше второго порога, схема обработки может определять, что индекс вторичного преобразования не сигнализируется в кодированной информации.[0023] According to an embodiment, the processing circuit may determine whether the horizontal component of the last position is less than the first threshold, and whether the vertical component of the last position is less than the second threshold. In response to determining that the horizontal component is less than the first threshold and determining that the vertical component is less than the second threshold, the processing circuit may determine that the secondary transform index is not signaled in the encoded information.

[0024] Согласно варианту осуществления, схема обработки может определять, меньше ли порога сумма горизонтальной компоненты и вертикальной компоненты последней позиции. В ответ на определение, что сумма меньше порога, схема обработки может определять, что индекс вторичного преобразования не сигнализируется в кодированной информации.[0024] According to an embodiment, the processing circuit may determine whether the sum of the horizontal component and the vertical component of the last position is less than a threshold. In response to determining that the sum is less than a threshold, the processing circuit may determine that the secondary transform index is not signaled in the encoded information.

[0025] Согласно варианту осуществления, схема обработки может определять, меньше ли порога минимум одна из (i) горизонтальной компоненты и (ii) вертикальной компоненты последней позиции. В ответ на определение, что минимум одна из них меньше порога, схема обработки может определять, что индекс вторичного преобразования не сигнализируется в кодированной информации.[0025] According to an embodiment, the processing circuit may determine whether at least one of (i) the horizontal component and (ii) the vertical component of the last position is less than a threshold. In response to determining that at least one of them is less than a threshold, the processing circuit may determine that the secondary transform index is not signaled in the encoded information.

[0026] Согласно варианту осуществления, схема обработки может определять, меньше ли порога максимум одна из (i) горизонтальной компоненты и (ii) вертикальной компоненты последней позиции. В ответ на определение, что максимум одна из них меньше порога, схема обработки может определять, что индекс вторичного преобразования не сигнализируется в кодированной информации.[0026] According to an embodiment, the processing circuit may determine whether at most one of (i) the horizontal component and (ii) the vertical component of the last position is less than a threshold. In response to determining that at most one of them is less than a threshold, the processing circuit may determine that the secondary transform index is not signaled in the encoded information.

[0027] Согласно варианту осуществления, первый СВ является блоком яркости, последняя позиция является последней позицией яркости для блока яркости. Схема обработки может определять, сигнализируется ли индекс вторичного преобразования, на основании последней позиции яркости.[0027] According to an embodiment, the first CB is a luminance block, the last position is the last luminance position for the luminance block. The processing circuit may determine whether the secondary transform index is signaled based on the last luma position.

[0028] Согласно варианту осуществления, первый СВ является блоком яркости. Последняя позиция является последней позицией яркости для блока яркости. CU дополнительно включает в себя блок цветности. Информация кодирования дополнительно указывает последнюю позицию цветности ненулевых коэффициентов преобразования для блока цветности. Схема обработки может определять, сигнализируется ли индекс вторичного преобразования, на основании последней позиции яркости и последней позиции цветности.[0028] According to an embodiment, the first CB is a luminance block. The last position is the last brightness position for the brightness block. The CU further includes a chrominance block. The encoding information further indicates the last chroma position of the non-zero transform coefficients for the chrominance block. The processing circuit may determine whether the secondary transform index is signaled based on the last luminance position and the last chrominance position.

[0029] В некоторых примерах, устройство для видеодекодирования включает в себя схему обработки. Схема обработки может декодировать информацию кодирования единицы кодирования (CU) из битового потока кодированного видео. Информация кодирования может указывать размер CU. Схема обработки может определять, разрешено ли вторичное преобразование, на основании размера CU и порога размера CU, причем когда размер CU меньше или равен порогу размера CU, определяется, что вторичное преобразование разрешено, и когда размер CU больше порога размера CU, определяется, что вторичное преобразование не разрешено.[0029] In some examples, the video decoding device includes a processing circuit. The processing circuit may decode the coding unit (CU) encoding information from the encoded video bitstream. The encoding information may indicate the size of the CU. The processing circuit may determine whether the secondary transformation is allowed based on the CU size and the CU size threshold, wherein when the CU size is less than or equal to the CU size threshold, it is determined that the secondary transformation is allowed, and when the CU size is larger than the CU size threshold, it is determined that the secondary conversion is not allowed.

[0030] Согласно варианту осуществления, порог размера CU является максимальным размером единицы преобразования в CU.[0030] According to an embodiment, the CU size threshold is the maximum size of a transform unit in the CU.

[0031] Согласно варианту осуществления, когда размер CU меньше или равен порогу размера CU, схема обработки может определять количество ненулевых коэффициентов преобразования для по меньшей мере одного СВ в CU, причем размер каждого из по меньшей мере одного СВ больше или равен первому порогу. Когда количество ненулевых коэффициентов преобразования меньше второго порога, схема обработки может определять, что индекс вторичного преобразования не сигнализируется в кодированной информации. В примере, информация кодирования указывает, что формат цвета для CU представляет собой YUV 4:2:0. CU включает в себя блок яркости и два блока цветности. Схема обработки может определять, равно ли первое измерение блока яркости 4, и второе измерение блока яркости равно ли N, где N больше или равно 4. В ответ на определение, что первое и второе измерения равны 4 и N, соответственно, схема обработки может определять количество ненулевых коэффициентов преобразования только из блока яркости, где по меньшей мере один СВ является блоком яркости.[0031] According to an embodiment, when the CU size is less than or equal to the CU size threshold, the processing circuitry may determine the number of non-zero transform coefficients for at least one CB in the CU, wherein the size of each of the at least one CB is greater than or equal to the first threshold. When the number of non-zero transform coefficients is less than the second threshold, the processing circuit may determine that the secondary transform index is not signaled in the encoded information. In the example, the encoding information indicates that the color format for the CU is YUV 4:2:0. The CU includes a luminance block and two chrominance blocks. The processing circuit may determine whether the first luminance block dimension is equal to 4 and the second luminance block dimension is equal to N, where N is greater than or equal to 4. In response to determining that the first and second dimensions are 4 and N, respectively, the processing circuit may determine the number of non-zero transform coefficients only from the luminance block, where at least one CB is a luminance block.

[0032] Согласно варианту осуществления, информация кодирования указывает, что формат цвета для CU представляет собой YUV 4:2:2. CU включает в себя блок яркости и два блока цветности. Схема обработки может определять, равен ли размер блока яркости 4×N, где N больше или равно 4. В ответ на определение, что размер блока яркости равен 4×N, где N и 4 - высота и ширина блока яркости, соответственно, схема обработки может определять количество ненулевых коэффициентов преобразования только из блока яркости. По меньшей мере один СВ является блоком яркости.[0032] According to an embodiment, the encoding information indicates that the color format for the CU is YUV 4:2:2. The CU includes a luminance block and two chrominance blocks. The processing circuit may determine whether the luminance block size is 4×N, where N is greater than or equal to 4. In response to determining that the luminance block size is 4×N, where N and 4 are the height and width of the luminance block, respectively, the processing circuit can only determine the number of non-zero transform coefficients from the luma block. At least one CB is a luminance block.

[0033] Аспекты изобретения также предусматривают компьютерно-считываемый носитель, где хранятся инструкции, которые, при выполнении компьютером для видеодекодирования, предписывают компьютеру осуществлять любой из способов видеодекодирования.[0033] Aspects of the invention also provide a computer-readable medium that stores instructions that, when executed by a video decoding computer, cause the computer to perform any of the video decoding methods.

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

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

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

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

[0037] фиг. 2 - схема текущего блока и окружающих его кандидатов на пространственное объединение в одном примере;[0037] FIG. 2 is a diagram of the current block and its surrounding space merge candidates in one example;

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

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

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

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

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

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

[0044] фиг. 9 - пример синтаксиса единицы преобразования в соответствии с вариантом осуществления;[0044] FIG. 9 is an example of a transformation unit syntax according to an embodiment;

[0045] фиг. 10А-10С - пример синтаксиса кодирования остатка в соответствии с вариантом осуществления;[0045] FIG. 10A-10C show an example of a residual encoding syntax according to an embodiment;

[0046] фиг. 11А-11В - примеры первичных преобразований в соответствии с вариантом осуществления;[0046] FIG. 11A-11B show examples of primary conversions according to an embodiment;

[0047] фиг. 12А-12Е - пример процесса преобразования в соответствии с вариантом осуществления;[0047] FIG. 12A-12E show an example of a conversion process according to an embodiment;

[0048] фиг. 13 - иллюстративный процесс (1300) кодирования преобразования;[0048] FIG. 13 is an exemplary transformation encoding process (1300);

[0049] фиг. 14 - иллюстративный процесс (1400) кодирования преобразования;[0049] FIG. 14 is an exemplary transformation encoding process (1400);

[0050] фиг. 15А - иллюстративный процесс (1501) сокращенного прямого преобразования и иллюстративный процесс (1502) сокращенного обратного преобразования;[0050] FIG. 15A shows an exemplary reduced forward transform process (1501) and an exemplary reduced inverse transform process (1502);

[0051] фиг. 15В-15С - примеры сокращенных вторичных преобразований в соответствии с некоторыми вариантами осуществления;[0051] FIG. 15B-15C are examples of reduced secondary transforms in accordance with some embodiments;

[0052] фиг. 15D - иллюстративная таблица (1550) выбора набора преобразований;[0052] FIG. 15D is an exemplary transform set selection table (1550);

[0053] фиг. 16А - иллюстративные направления внутреннего предсказания и режимы внутреннего предсказания в соответствии с вариантом осуществления;[0053] FIG. 16A illustrates exemplary intra prediction directions and intra prediction modes according to an embodiment;

[0054] фиг. 16В - иллюстративные направления внутреннего предсказания и соответствующие режимы внутреннего предсказания в соответствии с вариантом осуществления;[0054] FIG. 16B illustrates exemplary intra prediction directions and corresponding intra prediction modes in accordance with an embodiment;

[0055] фиг. 17 - пример 4 опорных линий для блока (1710) кодирования в соответствии с вариантом осуществления;[0055] FIG. 17 is an example of 4 reference lines for a coding block (1710) in accordance with an embodiment;

[0056] фиг. 18 таблица, которая связывает количество частей, на которые разбивается блок, с его размером в соответствии с вариантом осуществления;[0056] FIG. 18 is a table that relates the number of parts into which a block is divided to its size, according to an embodiment;

[0057] фиг. 19 - пример разбиения блока, имеющего размер 4×8 или 8×4;[0057] FIG. 19 is an example of splitting a block having a size of 4x8 or 8x4;

[0058] фиг. 20 - другой пример разбиения блока, имеющего размер больший, чем 4×8 и 8×4;[0058] FIG. 20 is another example of splitting a block having a size larger than 4×8 and 8×4;

[0059] фиг. 21A-21D - примеры разных YUV-форматов;[0059] FIG. 21A-21D are examples of various YUV formats;

[0060] фиг. 22 - блок-схема операций процесса (2200) в соответствии с вариантом осуществления;[0060] FIG. 22 is a block diagram of the operations of a process (2200) in accordance with an embodiment;

[0061] фиг. 23 - блок-схема операций процесса (2300) в соответствии с вариантом осуществления;[0061] FIG. 23 is a flowchart of the operations of a process (2300) in accordance with an embodiment;

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

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

[0063] На фиг. 3 показана упрощенная блок-схема системы (300) связи согласно варианту осуществления настоящего изобретения. Система (300) связи включает в себя множество оконечных устройств, которые могут осуществлять связь друг с другом, например, через сеть (350). Например, система (300) связи включает в себя первую пару оконечных устройств (310) и (320), соединенных между собой через сеть (350). В примере, приведенном на фиг. 3, первая пара оконечных устройств (310) и (320) осуществляет однонаправленную передачу данных. Например, оконечное устройство (310) может кодировать видеоданные (например, поток видеоизображений, захваченных оконечным устройством (310)), для передачи в другое оконечное устройство (320) через сеть (350). Кодированные видеоданные могут передаваться в форме одного или более битовых потоков кодированного видео. Оконечное устройство (320) может принимать кодированные видеоданные из сети (350), декодировать кодированные видеоданные для восстановления видеоизображений и отображения видеоизображений согласно восстановленным видеоданным. Однонаправленная передача данных может быть свойственна приложениям служб массовой информации и т.п.[0063] FIG. 3 shows a simplified block diagram of a communication system (300) according to an embodiment of the present invention. The communication system (300) includes a plurality of terminal devices that can communicate with each other, for example, via a network (350). For example, the communication system (300) includes a first pair of terminals (310) and (320) interconnected via a network (350). In the example shown in FIG. 3, the first pair of terminals (310) and (320) performs a unidirectional data transfer. For example, a terminal device (310) may encode video data (eg, a video stream captured by a terminal device (310)) for transmission to another terminal device (320) via a network (350). The encoded video data may be transmitted in the form of one or more encoded video bitstreams. The terminal device (320) may receive the encoded video data from the network (350), 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.

[0064] В другом примере, система (300) связи включает в себя вторую пару оконечных устройств (330) и (340) которые осуществляют двунаправленную передачу кодированных видеоданных, которые могут возникать, например, в ходе видеоконференцсвязи. Для двунаправленной передачи данных, в порядке примера, каждое оконечное устройство из оконечных устройств (330) и (340) может кодировать видеоданные (например, поток видеоизображений, захваченных оконечным устройством) для передачи в другое оконечное устройство из оконечных устройств (330) и (340) через сеть (350). Каждое оконечное устройство из оконечных устройств (330) и (340) также может принимать кодированные видеоданные, передаваемые другим оконечным устройством из оконечных устройств (330) и (340), и может декодировать кодированные видеоданные для восстановления видеоизображений и отображать видеоизображения на доступном устройстве отображения согласно восстановленным видеоданным.[0064] In another example, the communication system (300) includes a second pair of terminals (330) and (340) 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 (330) and (340) may encode video data (eg, a video stream captured by the terminal) for transmission to the other terminal of terminals (330) and (340). ) via the network (350). Each terminal of terminals (330) and (340) may also receive encoded video data transmitted by another terminal from terminals (330) and (340) 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.

[0065] В примере, приведенном на фиг. 3, оконечные устройства (310), (320), (330) и (340) могут быть проиллюстрированы как серверы, персональные компьютеры и смартфоны, но это не ограничивает принципы настоящего изобретения. Варианты осуществления настоящего изобретения находят применение для портативных компьютеров, планшетных компьютеров, медиаплееров и/или специального оборудования для видеоконференцсвязи. Сеть (350) представляет любое количество сетей, которые переносят кодированные видеоданные между оконечными устройствами (310), (320), (330) и (340), включая, например, проводные и/или беспроводные сети связи. Сеть (350) связи позволяет обмениваться данными в режиме канальной коммутации и/или пакетной коммутации. Иллюстративные сети включают в себя телекоммуникационные сети, локальные сети, глобальные сети и/или интернет. В целях настоящего рассмотрения, архитектура и топология сети (350) могут не иметь отношения к настоящему изобретению, если конкретно не указаны ниже.[0065] In the example shown in FIG. 3, terminal devices (310), (320), (330), and (340) 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 (350) represents any number of networks that carry encoded video data between terminals (310), (320), (330) and (340), including, for example, wired and/or wireless communication networks. The communication network (350) 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 (350) may not be relevant to the present invention unless specifically noted below.

[0066] На фиг. 4 показано, в порядке примера применения раскрытого изобретения, размещение видеокодера и видеодекодера в окружении потоковой передачи. Раскрытое изобретение может быть в равной степени применимо к другим применениям обработки видео, включая, например, видеоконференцсвязь, цифровое телевидение, хранение сжатого видео на цифровых носителях, в том числе CD, DVD, карте памяти и т.п., и т.д.[0066] FIG. 4 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, video conferencing, digital television, storage of compressed video on digital media, including CD, DVD, memory card, etc., etc.

[0067] Система потоковой передачи может включать в себя подсистему (413) захвата, которая может включать в себя источник (401) видеосигнала, например, цифровую камеру, создающую, например, поток (402) видеоизображений, не подвергнутых сжатию. Например, поток (402) видеоизображений включает в себя отсчеты, взятые цифровой камерой. Поток (402) видеоизображений, изображенный жирной линией, чтобы подчеркнуть большой объем данных по сравнению с кодированными видеоданными (404) (или битовыми потоками кодированного видео), может обрабатываться электронным устройством (420), которое включает в себя видеокодер (403), подключенный к источнику (401) видеосигнала. Видеокодер (403) может включать в себя оборудование, программное обеспечение или их комбинацию для обеспечения или реализации аспектов раскрытого изобретения, как более подробно описано ниже. Кодированные видеоданные (404) (или битовый поток (404) кодированного видео), изображенные тонкой линией, чтобы подчеркнуть меньший объем данных по сравнению с потоком (402) видеоизображений, могут храниться на потоковом сервере (405) для использования в будущем. Одна или более клиентских подсистем потоковой передачи, например, клиентские подсистемы (406) и (408) на фиг. 4, могут осуществлять доступ к потоковому серверу (405) для извлечения копий (407) и (409) кодированных видеоданных (404). Клиентская подсистема (406) может включать в себя видеодекодер (410), например, в электронном устройстве (430). Видеодекодер (410) декодирует входящую копию (407) кодированных видеоданных и создает исходящий поток (411) видеоизображений, который может визуализироваться на дисплее (412) (например, отображающем экране) или другом устройстве визуализации (не показано). В некоторых системах потоковой передачи, кодированные видеоданные (404), (407) и (409) (например, битовые потоки видео) могут кодироваться согласно тем или иным стандартам кодирования/сжатия видео. Примеры этих стандартов включают в себя ITU-Т Recommendation Н.265. Например, разрабатывается стандарт видеокодирования под официальным названием "универсальное видеокодирование" (VVC, универсальное видеокодирование). Раскрытое изобретение может использоваться в контексте VVC.[0067] The streaming system may include a capture subsystem (413), which may include a video source (401), such as a digital camera, producing, for example, an uncompressed video stream (402). For example, the video stream (402) includes samples taken by a digital camera. The video stream (402), shown in bold to highlight the large amount of data compared to the encoded video data (404) (or encoded video bitstreams), may be processed by an electronic device (420) that includes a video encoder (403) connected to source (401) of the video signal. The video encoder (403) 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 (404) (or encoded video bitstream (404)), depicted with a thin line to emphasize the smaller amount of data compared to the video stream (402), may be stored on the streaming server (405) for future use. One or more streaming client subsystems, such as client subsystems (406) and (408) in FIG. 4 may access the streaming server (405) to retrieve copies (407) and (409) of the encoded video data (404). The client subsystem (406) may include a video decoder (410), such as in an electronic device (430). The video decoder (410) decodes the incoming copy (407) of the encoded video data and creates an outgoing video stream (411) 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 (404), (407), and (409) (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, officially called Universal Video Coding (VVC, Universal Video Coding). The disclosed invention may be used in the context of VVC.

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

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

[0070] Приемник (531) может принимать одну или более кодированных видеопоследовательностей для декодирования видеодекодером (510); в том же или другом варианте осуществления, по одной кодированной видеопоследовательности за раз, где декодирование каждой кодированной видеопоследовательности не зависит от других кодированных видеопоследовательностей. Кодированная видеопоследовательность может приниматься из канала (501), который может быть аппаратной/программной линией связи с запоминающим устройством, где хранятся кодированные видеоданные. Приемник (531) может принимать кодированные видеоданные с другими данными, например, кодированными аудиоданными и/или вспомогательными потоками данных, которые могут ретранслироваться на соответствующие использующие и объекты (не показаны). Приемник (531) может отделять кодированную видеопоследовательность от других данных. Для борьбы с джиттером сети, буферная память (515) может быть подключена между приемником (531) и энтропийным декодером / анализатором (520) (далее "анализатором (520)"). В некоторых вариантах применения буферная память (515) входит в состав видеодекодера (510). В других она может не входить в состав видеодекодера (510) (не показан). В прочих вариантах может существовать буферная память (не показана) вне видеодекодера (510), например, для борьбы с джиттером сети, помимо другой буферной памяти (515) в составе видеодекодера (510), например, для управления хронированием проигрывания. Когда приемник (531) принимает данные от устройства хранения/ретрансляции с достаточной полосой и управляемостью или из изосинхронной сети, буферная память (515) может быть не нужна или может быть мала. Для использования в пакетных сетях наилучшей попытки, например, Интернете, буферная память (515) может требоваться, может быть сравнительно большой и может иметь преимущественно адаптивный размер, и по меньшей мере частично может быть реализована в операционной системе или аналогичных элементах (не показаны) вне видеодекодера (510).[0070] The receiver (531) may receive one or more encoded video sequences for decoding by the video decoder (510); 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 (501), which may be a hardware/software link to a storage device where the encoded video data is stored. The receiver (531) may receive encoded video data with other data, such as encoded audio data and/or auxiliary data streams, which may be relayed to appropriate users and entities (not shown). The receiver (531) may separate the encoded video sequence from other data. To combat network jitter, a buffer memory (515) may be connected between the receiver (531) and the entropy decoder/analyzer (520) (hereinafter "analyzer (520)"). In some applications, the buffer memory (515) is included in the video decoder (510). In others, it may not be part of the video decoder (510) (not shown). In other embodiments, there may be a buffer memory (not shown) outside the video decoder (510), for example, to combat network jitter, in addition to another buffer memory (515) within the video decoder (510), for example, to control playback timing. When the receiver (531) receives data from a storage/relay device with sufficient bandwidth and controllability, or from an isosynchronous network, buffer memory (515) may not be needed or may be small. For use in best attempt packet networks, such as the Internet, buffer memory (515) 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 (510).

[0071] Видеодекодер (510) может включать в себя анализатор (520) для реконструкции символов (521) из кодированной видеопоследовательности. Категории этих символов включают в себя информацию, используемую для управления работой видеодекодера (510), и возможно информацию для управления устройством визуализации, например, устройством (512) визуализации (например, отображающим экраном), которое не является неотъемлемой частью электронного устройства (530), но может быть подключено к электронному устройству (530), как показано на фиг.5. Информация управления для устройств(а) визуализации может представлять собой сообщения информации дополнительного улучшения (SEI, Supplemental Enhancement Information) или фрагменты набора параметров информации пригодности видео (VUI, Video Usability Information) (не показаны). Анализатор (520) может анализировать / энтропийно декодировать принятую кодированную видеопоследовательность. Кодирование кодированной видеопоследовательности может осуществляться в соответствии с технологией или стандартом видеокодирования и может следовать различным принципам, в том числе кодированию с переменной длиной серии, кодированию по Хаффману, арифметическому кодированию с контекстной чувствительностью или без нее и т.д. Анализатор (520) может извлекать из кодированной видеопоследовательности набор параметров подгруппы для по меньшей мере одной из подгрупп пикселей в видеодекодере на основании по меньшей мере одного параметра, соответствующего группе. Подгруппы могут включать в себя группы изображений (GOP, Groups of Pictures), изображения, тайлы, слайсы, макроблоки, единицы кодирования (CU, Coding Units), блоки, единицы преобразования (TU, Transform Units), единицы предсказания (PU, Prediction Units) и т.д. Анализатор (520) также может извлекать из кодированной видеопоследовательности информацию, например, коэффициенты преобразования, значения параметров квантователя, векторы движения и т.д.[0071] The video decoder (510) may include an analyzer (520) for reconstructing the symbols (521) from the encoded video sequence. The categories of these symbols include information used to control the operation of the video decoder (510), and possibly information to control a visualization device, such as a visualization device (512) (for example, a display screen) that is not an integral part of the electronic device (530), but may be connected to an electronic device (530) as shown in FIG. 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 (520) may analyze/entropy decode the received encoded video sequence. Encoding of the encoded video sequence may be in accordance with 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 (520) 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 (520) can also extract information from the encoded video sequence, such as transform coefficients, quantizer parameter values, motion vectors, and so on.

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

[0073] Для реконструкции символов (521) могут использоваться несколько разных модулей в зависимости от типа кодированного видеоизображения или его частей (например: интер- и интра-изображения, интер- и интра-блока) и других факторов. Какие модули используются, и как, может определяться информацией управления подгруппами, выделенной из кодированной видеопоследовательности анализатором (520). Поток такой информации управления подгруппами между анализатором (520) и множественными модулями для простоты в дальнейшем не показан.[0073] Several different modules may be used for symbol reconstruction (521) 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 (520). The flow of such subgroup management information between the analyzer (520) and multiple modules is not shown hereinafter for simplicity.

[0074] Помимо ранее упомянутых функциональных блоков, видеодекодер (510) может принципиально делиться на несколько функциональных модулей, как описано ниже. В практической реализации, работающей в условиях коммерческих ограничений, многие из этих модулей тесно взаимодействуют друг с другом и могут, по меньшей мере частично, встраиваться один в другой. Однако в целях описания раскрытого изобретения уместно принципиальное деление на нижеперечисленные функциональные модули.[0074] In addition to the previously mentioned functional blocks, the video decoder (510) 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 division into the following functional modules is appropriate.

[0075] Первым модулем является модуль (551) масштабирования / обратного преобразования. Модуль (551) масштабирования / обратного преобразования принимает квантованный коэффициент преобразования, а также информацию управления, включающую в себя используемое преобразование, размер блока, коэффициент квантования, матрицы масштабирования квантования и т.д. в качестве символа(ов) (521) от анализатора (520). Модуль (551) масштабирования / обратного преобразования может выводить блоки, содержащие значения отсчетов, которые можно вводить в агрегатор (555).[0075] The first module is the scaling/inverse transform module (551). The scaling/inverse transform module (551) 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) (521) from the analyzer (520). The scaling/inverse transform module (551) can output blocks containing sample values that can be input to the aggregator (555).

[0076] В ряде случаев, выходные отсчеты блока (551) масштабирования / обратного преобразования могут относиться к внутренне-кодированному блоку; то есть блоку, который не использует предсказанную информацию из ранее реконструированных изображений, но может использовать предсказанную информацию из ранее реконструированных частей текущего изображения. Такая предсказанная информация может обеспечиваться модулем (552) предсказания внутри изображения. В ряде случаев модуль (552) предсказания внутри изображения генерирует блок такого же размера и формы, как блок, подлежащий реконструкции, с использованием информации ранее реконструированного окружения, извлеченной из буфера (558) текущего изображения. Буфер (558) текущего изображения буферизует, например, частично реконструированное текущее изображение и/или полностью реконструированное текущее изображение. Агрегатор (555) в ряде случаев добавляет, для каждого отсчета, информацию предсказания, сгенерированную модулем (552) внутреннего предсказания, в информацию выходных отсчетов, обеспеченную модулем (551) масштабирования / обратного преобразования.[0076] In some cases, the output samples of the block (551) scaling / inverse transformation may refer to an intra-coded block; that is, 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 (552). In some cases, the intra-image prediction module (552) 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 (558). The current picture buffer (558) buffers, for example, a partially reconstructed current picture and/or a fully reconstructed current picture. The aggregator (555) in some cases adds, for each sample, the prediction information generated by the intra prediction module (552) to the output sample information provided by the scaling/inverse transform module (551).

[0077] В других случаях выходные отсчеты модуля (551) масштабирования / обратного преобразования могут относиться к внутренне кодированному блоку, возможно, с компенсацией движения. В таком случае, модуль (553) предсказания с компенсацией движения может осуществлять доступ к памяти (557) опорных изображений для извлечения отсчетов, используемых для предсказания. После применения компенсации движения к извлеченным отсчетам в соответствии с символами (521), относящимися к блоку, эти отсчеты могут добавляться агрегатором (555) к выходному сигналу модуля (551) масштабирования / обратного преобразования (в этом случае именуемому остаточными отсчетами или остаточным сигналом) для генерации информации выходных отсчетов. Адреса в памяти (557) опорных изображений, откуда модуль (553) предсказания с компенсацией движения извлекает предсказанные отсчеты, могут регулироваться векторами движения, доступными модулю (553) предсказания с компенсацией движения, в форме символов (521), которые могут иметь, например, компоненты X, Y и опорного изображения. Компенсация движения также может включать в себя интерполяцию значений отсчетов, извлеченных из памяти (557) опорных изображений, когда используются точные векторы движения под-отсчетов, механизмы предсказания векторов движения и т.д.[0077] In other cases, the output samples of the scaling/inverse transform module (551) may refer to an intra-coded block, possibly with motion compensation. In such a case, the motion compensation prediction module (553) may access the reference picture memory (557) to retrieve samples used for prediction. After applying motion compensation to the extracted samples according to the symbols (521) associated with the block, these samples can be added by the aggregator (555) to the output signal of the scaling / inverse transform module (551) (in this case referred to as residual samples or residual signal) for generation of output sample information. The addresses in the reference picture memory (557) from where the motion compensation prediction module (553) retrieves the predicted samples may be governed by the motion vectors available to the motion compensation prediction module (553) in the form of symbols (521), 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 (557) when accurate sub-sample motion vectors, motion vector prediction mechanisms, etc. are used.

[0078] К выходным отсчетам агрегатора (555) можно применять различные методы контурной фильтрации в модуле (556) контурного фильтра. Технологии сжатия видео могут включать в себя технологии деблокирующего фильтра под управлением параметров, включенных в кодированную видеопоследовательность (также именуемую битовым потоком кодированного видео) и становиться доступными модулю (556) контурного фильтра в качестве символов (521) от анализатора (520), но также могут реагировать на метаинформацию, полученную в ходе декодирования предыдущих (в порядке декодирования) частей кодированного изображения или кодированной видеопоследовательности, а также реагировать на ранее реконструированные и подвергнутые контурной фильтрации значения отсчетов.[0078] Various loop filtering techniques can be applied to the aggregator (555) output samples in the loop filter module (556). The video compression technologies may include deblocking filter technologies driven by parameters included in the coded video sequence (also referred to as the coded video bitstream) and made available to the loop filter module (556) as symbols (521) from the analyzer (520), but may also respond to metainformation obtained during 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 contour filtered sample values.

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

[0080] Некоторые кодированные изображения, будучи полностью реконструированы, могут использоваться в качестве опорных изображений для будущего предсказания. Например, когда кодированное изображение, соответствующее текущему изображению, полностью реконструировано, и кодированное изображение идентифицировано как опорное изображение (например, анализатором (520)), буфер (558) текущего изображения может становиться частью памяти (557) опорных изображений, и свежий буфер текущего изображения может повторно выделяться до начала реконструкции следующего кодированного изображения.[0080] 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 (e.g., by the analyzer (520)), the current picture buffer (558) may become part of the reference picture memory (557), and a fresh current picture buffer may be re-allocated before the reconstruction of the next encoded picture starts.

[0081] Видеодекодер (510) может осуществлять операции декодирования согласно заранее заданной технологии сжатия видео, например, по стандарту ITU-T Rec. Н.265. Кодированная видеопоследовательность может согласовываться с синтаксисом, заданным используемой/ым технологией или стандартом сжатия видео, в том смысле, что кодированная видеопоследовательность может придерживаться как синтаксиса технологии или стандарта сжатия видео, так и профилей, задокументированных в технологии или стандарте сжатия видео. В частности, профиль может выбирать некоторые инструменты как инструменты, доступные для использования только под этим профилем, из всех инструментов, доступных в технологии или стандарте сжатия видео. Также для согласованности может быть необходимо, чтобы сложность кодированной видеопоследовательности оставалась в границах, заданных уровнем технологии или стандарта сжатия видео. В ряде случаев, уровни ограничивают максимальный размер изображения, максимальную частоту кадров, максимальную частоту отсчетов для реконструкции (измеряемую, например, в мегаотсчетах в секунду), максимальный размер опорного изображения и т.д. Пределы, установленные уровнями, в ряде случаев могут дополнительно ограничиваться спецификациями гипотетического эталонного декодера (HRD, Hypothetical Reference Decoder) и метаданными для управления буфером HRD, сигнализируемого в кодированной видеопоследовательности.[0081] The video decoder (510) 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 specified 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, Hypothetical Reference Decoder) and metadata for managing the HRD buffer signaled in the encoded video sequence.

[0082] Согласно варианту осуществления, приемник (531) может принимать дополнительные (избыточные) данные с кодированным видео. Дополнительные данные могут быть включены как часть кодированной(ых) видеопоследовательности(ей). Дополнительные данные могут использоваться видеодекодером (510) для правильного декодирования данных и/или более точной реконструкции исходных видеоданных. Дополнительные данные могут представлять собой, например, слои улучшения во времени, пространстве или отношения сигнал/шум (SNR, отношение сигнал-шум), избыточные слайсы, избыточные изображения, коды прямой коррекции ошибок и т.д.[0082] According to an embodiment, the receiver (531) 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 (510) 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.

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

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

[0085] Источник (601) видеосигнала может обеспечивать исходную видеопоследовательность, подлежащую кодированию видеокодером (603) в форме потока отсчетов цифрового видео любой подходящей битовой глубины (например: 8 бит, 10 бит, 12 бит, …), любого цветового пространства (например, ВТ.601 Y CrCB, RGB, …), и любой подходящей структуры дискретизации (например, Y CrCb 4:2:0, Y CrCb 4:4:4). В системе службы массовой информации источником (601) видеосигнала может быть запоминающее устройство, где хранится ранее подготовленное видео. В система видеоконференцсвязи источником (601) видеосигнала может быть камера, которая захватывает информацию локального изображения как видеопоследовательность. Видеоданные могут обеспечиваться как множество отдельных изображений, которые создают ощущение движения при наблюдении в последовательности. Сами изображения могут быть организованы как пространственный массив пикселей, где каждый пиксель может содержать один или более отсчетов в зависимости от используемых структуры дискретизации, цветового пространства и т.д. Специалисту в данной области техники нетрудно понять соотношение между пикселями и отсчетами. Нижеследующее описание посвящено отсчетам.[0085] The video source (601) may provide the source video sequence to be encoded by the video encoder (603) 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 (601) may be a storage device where previously prepared video is stored. In a videoconferencing system, the video source (601) 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.

[0086] Согласно варианту осуществления, видеокодер (603) может кодировать и сжимать изображения исходной видеопоследовательности в кодированную видеопоследовательность (643) в реальном времени или с учетом любых других временных ограничений, налагаемых применением. Установление надлежащей скорости кодирования является одной из функций контроллера (650). В некоторых вариантах осуществления контроллер (650) управляет другими функциональными модулями, как описано ниже, и функционально подключен к другим функциональным модулям. Подключение для простоты не показано. Параметры, установленные контроллером (650), могут включать в себя параметры, связанные с регулировкой скорости передачи (пропуск изображения, квантователь, значение лямбда, применяемое при оптимизации скорости-искажения, …), размер изображения, схему групп изображений (GOP), максимальную зону поиска вектора движения и т.д. Контроллер (650) может быть выполнен с возможностью иметь другие подходящие функции, относящиеся к видеокодеру (603), оптимизированному для той или иной конструкции системы.[0086] According to an embodiment, the video encoder (603) may encode and compress images of the original video sequence into the encoded video sequence (643) 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 (650). In some embodiments, the controller (650) 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 (650) may include parameters related to bit rate adjustment (picture skip, quantizer, lambda value applied in rate-distortion optimization, ...), picture size, group of pictures (GOP) scheme, maximum area motion vector search, etc. The controller (650) may be configured to have other suitable functions related to the video encoder (603) optimized for a given system design.

[0087] В некоторых вариантах осуществления видеокодер (603) выполнен с возможностью работать в петле кодирования. В качестве очень упрощенного описания, в порядке примера, петля кодирования может включать в себя исходный кодер (630) (например, отвечающий за создание символов, например, потока символов, на основе входного изображения, подлежащего кодированию, и опорного(ых) изображения(ий)) и (локальный) декодер (633), встроенный в видеокодер (603). Декодер (633) реконструирует символы для создания данных отсчетов, аналогично тому, как это делал бы (удаленный) декодер (поскольку любое сжатие между символами и битовым потоком кодированного видео происходит без потерь в технологиях сжатия видео, рассматриваемых в раскрытом изобретении). Реконструированный поток отсчетов (данные отсчетов) поступают в память (634) опорных изображений. Поскольку декодирование потока символов приводит к результатам, с точностью до бита, не зависящим от положения декодера (локального или удаленного), содержимое памяти (634) опорных изображений также будет одинаковым с точностью до бита для локального кодера и удаленного кодера. Другими словами, предсказанная часть кодера "видит" в качестве отсчетов опорного изображения точно такие же значения отсчетов, как "видел" бы декодер при использовании предсказания в ходе декодирования. Этот фундаментальный принцип синхронизма опорного изображения (и, в итоге, дрейф, если синхронизм не удается поддерживать, например, вследствие канальных ошибок) используется также в некоторых связанных областях техники.[0087] In some embodiments, video encoder (603) 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 (630) (e.g., responsible for creating symbols, e.g., a stream of symbols, based on the input image to be encoded and the reference image(s) )) and a (local) decoder (633) built into the video encoder (603). The decoder (633) reconstructs the symbols to create sample data, in a similar way 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) is entered into the reference picture memory (634). Since the decoding of the symbol stream produces bit-accurate results independent of the position of the decoder (local or remote), the contents of the reference picture memory (634) will also be the same bit-accuracy for the local encoder and the 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 due to, for example, channel errors) is also used in some related fields of technology.

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

[0089] При этом можно сделать вывод, что любая технология декодирования, присутствующая в декодере, за исключением анализа/энтропийного декодирования, также обязательно должна присутствовать, по существу в идентичной функциональной форме, в соответствующем кодере. По этой причине раскрытое изобретение сконцентрировано на работе декодера. Описание технологий кодирования может быть сокращено, поскольку они являются обратными подробно описанным технологиям декодированная. Только в некоторых областях требуется более детальное описание, которое приведено ниже.[0089] In doing so, it can be concluded that any decoding technology present in a decoder, with the exception of analysis/entropy decoding, must also necessarily be present, in essentially 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.

[0090] Согласно некоторым примерам, в ходе работы исходный кодер (630) может осуществлять кодирование с предсказанием и компенсацией движения, при котором входное изображение кодируется с предсказанием на основании одного или более ранее кодированных изображений из видеопоследовательности, указанных как "опорные изображения". Таким образом, машина (632) кодирования кодирует различия между пиксельными блоками входного изображения и пиксельными блоками опорного изображения(й), которое(ые) может(ут) выбираться в качестве предсказанной(ых) ссылки(ок) на входное изображение.[0090] According to some examples, in operation, source encoder (630) 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 (632) 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.

[0091] Локальный видеодекодер (633) может декодировать кодированные видеоданные изображений, которые могут быть указаны как опорные изображения, на основе символов, созданных исходным кодером (630). Операции машины (632) кодирования могут быть преимущественно процессами с потерями. Когда кодированные видеоданные могут декодироваться в видеодекодере (не показан на фиг. 6), реконструированная видеопоследовательность обычно может представлять собой копию исходной видеопоследовательности с некоторыми ошибками. Локальный видеодекодер (633) дублирует процессы декодирования, которые могут осуществляться видеодекодером на опорных изображениях, и может предписывать сохранение реконструированных опорных изображений в кэш-памяти (634) опорных изображений. Таким образом, видеокодер (603) может локально сохранять копии реконструированных опорных изображений, имеющие такое же содержимое, как реконструированные опорные изображения, которые будут получены видеодекодером на стороне приемника (в отсутствие ошибок передачи).[0091] The local video decoder (633) may decode the encoded video data of pictures that can be specified as reference pictures based on the symbols generated by the source encoder (630). The operations of the encoding engine (632) may be predominantly lossy processes. When the encoded video data can be decoded in a video decoder (not shown in FIG. 6), the reconstructed video sequence can typically be a copy of the original video sequence with some errors. The local video decoder (633) 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 (634). Thus, the video encoder (603) 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).

[0092] Предсказатель (635) может осуществлять поиски предсказания для машины (632) кодирования. Таким образом, для нового изображения, подлежащего кодированию, предсказатель (635) может искать в памяти (634) опорных изображений данные отсчетов (в качестве кандидатов на роль опорных пиксельных блоков) или те или иные метаданные, например, векторы движения опорного изображения, формы блоков и т.д., которые могут служить надлежащей ссылкой для предсказания новых изображений. Предсказатель (635) может работать на основе "блоки отсчетов х пиксельные блоки" для нахождения надлежащих ссылок для предсказания. В ряде случаев, согласно результатам поиска, полученным предсказателем (635), входное изображение может иметь ссылки для предсказания, извлеченные из множества опорных изображений, хранящихся в памяти (634) опорных изображений.[0092] The predictor (635) may perform prediction searches for the encoding engine (632). Thus, for a new picture to be encoded, the predictor (635) can search the reference picture memory (634) 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 (635) may operate on a sample block x pixel block basis to find the proper prediction references. In some cases, according to the search results obtained by the predictor (635), the input picture may have prediction references extracted from the plurality of reference pictures stored in the reference picture memory (634).

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

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

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

[0096] Контроллер (650) может управлять работа видеокодера (603). В ходе кодирования контроллер (650) может назначать каждому кодированному изображению тот или иной тип кодированного изображения, который может определять методы кодирования, применимые к соответствующему изображению. Например, изображениям часто могут назначаться следующие типы изображения:[0096] The controller (650) may control the operation of the video encoder (603). During encoding, the controller (650) may assign to each encoded picture one or another 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:

[0097] Интра-изображение (I-изображение), которое можно кодировать и декодировать без использования какого-либо другого изображения в последовательности в качестве источника предсказания. Некоторые видеокодеки допускают разные типы интра-изображений, включая, например, изображения в формате независимого обновления декодера ("IDR", Independent Decoder Refresh). Специалисту в данной области техники известны разновидности I-изображений и их соответствующие варианты применения и особенности.[0097] 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). The person skilled in the art will be aware of the varieties of I-images and their respective applications and features.

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

[0099] Двунаправленно-предсказанное изображение (В-изображение), которое можно кодировать и декодировать с использованием внутреннего предсказания или внешнего предсказания с использованием не более двух векторов движения и опорных индексов для предсказания значений отсчетов каждого блока. Аналогично, мультипредсказанные изображения могут использовать более двух опорных изображений и связанные метаданные для реконструкции единого блока.[0099] A bi-directionally predicted picture (B-picture) that can be encoded and decoded using intra prediction or inter prediction using 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.

[0100] Исходные изображения обычно допускают пространственное разделение на множество блоков отсчетов (например, блоки 4×4, 8×8, 4×8 или 16×16 отсчетов каждый) и кодирование на поблочной основе (блок за блоком). Блоки могут кодироваться предиктивно со ссылкой на другие (ранее кодированные) блоки, определенные назначением кодирования, применяемым к соответствующим изображениям этих блоков. Например, блоки I-изображений могут кодироваться без предсказания или с предсказанием со ссылкой на ранее кодированные блоки того же изображения (пространственным предсказанием или внутренним предсказанием). Пиксельные блоки Р-изображений могут кодироваться с предсказанием, посредством пространственного предсказания или временного предсказания со ссылкой на одно ранее кодированное опорное изображение. Блоки В-изображений могут кодироваться с предсказанием, посредством пространственного предсказания или временного предсказания со ссылкой на одно или два ранее кодированных опорных изображения.[0100] 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.

[0101] Видеокодер (603) может осуществлять операции кодирования согласно заранее заданной технологии или стандарту видеокодирования, например, ITU-T Rec. Н.265. В своей работе видеокодер (603) может осуществлять различные операции сжатия, в том числе операции предиктивного кодирования, которые используют временные и пространственные избыточности во входной видеопоследовательности. Поэтому кодированные видеоданные могут согласовываться с синтаксисом, заданным используемой технологией или стандартом видеокодирования.[0101] The video encoder (603) 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 (603) may perform various compression operations, including predictive encoding 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.

[0102] Согласно варианту осуществления, передатчик (640) может передавать дополнительные данные с кодированным видео. Исходный кодер (630) может включать такие данные как часть кодированной видеопоследовательности. Дополнительные данные могут содержать временные/пространственные/SNR слои улучшения, другие формы избыточных данных, например, избыточные изображения и слайсы, сообщения SEI, фрагменты набора параметров VUI и т.д.[0102] According to an embodiment, the transmitter (640) may transmit additional data with encoded video. The source encoder (630) 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.

[0103] Видео может захватываться как множество исходных изображений (видеоизображений) во временной последовательности. Предсказание внутри изображения (часто сокращенно именуемое внутренним предсказанием) использует пространственную корреляцию в данном изображении, а предсказание между изображениями использует (временную или иную) корреляцию между изображениями. Например, конкретное изображение, подлежащее кодированию/декодированию, которое именуется текущим изображением, разбивается на блоки. Когда блок в текущем изображении аналогичен опорному блоку в ранее кодированном и все еще буферизованном опорном изображении в видео, блок в текущем изображении может кодироваться вектором, который именуется вектором движения. Вектор движения указывает на опорный блок в опорном изображении и может иметь третье измерение, идентифицирующее опорное изображение, в случае использования множественных опорных изображений.[0103] 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 if multiple reference pictures are used.

[0104] В некоторых вариантах осуществления, метод двойного предсказания может использоваться в предсказании между изображениями. Согласно методу двойного предсказания, используются два опорных изображения, например, первое опорное изображение и второе опорное изображение, которые оба предшествуют в порядке декодирования текущему изображению в видео (но могут быть в прошлом и будущем, соответственно, в порядке отображения). Блок в текущем изображении может кодироваться первым вектором движения, который указывает на первый опорный блок в первом опорном изображении, и вторым вектором движения, который указывает на второй опорный блок во втором опорном изображении. Блок может предсказываться комбинацией первого опорного блока и второго опорного блока.[0104] 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 reference block and the second reference block.

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

[0106] Согласно некоторым вариантам осуществления изобретения, предсказания, например, предсказания между изображениями и предсказания внутри изображения, осуществляются поблочно. Например, согласно стандарту HEVC, изображение в последовательности видеоизображений разбивается на единицы дерева кодирования (CTU, coding tree units) для сжатия, CTU в изображении имеют одинаковый размер, например, 64×64 пикселя, 32×32 пикселя или 16×16 пикселей. В общем случае CTU включает в себя три блока дерева кодирования (СТВ, coding tree blocks), а именно, один СТВ яркости и два СТВ цветности. Каждый CTU может рекурсивно делиться квадрадеревом на одну или несколько единиц кодирования (CU). Например, CTU размером 64×64 пикселя может делиться на одну CU размером 64×64 пикселя или 4 CU размером 32×32 пикселя или 16 CU размером 16×16 пикселей. Например, каждая CU анализируется для определения типа предсказания для CU, например, типа внешнего предсказания или типа внутреннего предсказания. CU делится на одну или более единиц предсказания (PU) в зависимости от временной и/или пространственной предсказуемости. В целом, каждая PU включает в себя блок (РВ) предсказания яркости и два РВ цветности. Согласно варианту осуществления, операция предсказания при кодировании (кодировании/декодировании) осуществляется в единице блока предсказания. Используя блок предсказания яркости в качестве примера блока предсказания, блок предсказания включает в себя матрицу значений (например, значений яркости) для пикселей, например, 8×8 пикселей, 16×16 пикселей, 8×16 пикселей, 16×8 пикселей и т.п.[0106] 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, for example, 64×64 pixels, 32×32 pixels, or 16×16 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 temporal and/or spatial predictability. In general, each PU includes a Luma Prediction Unit (PB) and two Chroma PBs. According to an embodiment, the encoding (encoding/decoding) prediction operation is performed in a prediction block unit. 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, etc. P.

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

[0108] В примере HEVC видеокодер (703) принимает матрицу значений отсчетов для блока обработки, например, блока предсказания 8×8 отсчетов и т.п. Видеокодер (703) определяет, наилучшим ли образом кодируется блок обработки в интра-режиме, интеррежиме или режиме двойного предсказания с использованием, например, оптимизации скорость-искажения. Когда блок обработки подлежит кодированию в интра-режиме, видеокодер (703) может использовать метод внутреннего предсказания для кодирования блока обработки в кодированное изображение; и когда блок обработки подлежит кодированию в интер-режиме или режиме двойного предсказания, видеокодер (703) может использовать метод внешнего предсказания или двойного предсказания, соответственно, для кодирования блока обработки в кодированное изображение. В некоторых технологиях видеокодирования, режим объединения может быть подрежимом предсказания между изображениями, где вектор движения выводится из одного или более предсказателей вектора движения без привлечения кодированного компонента вектора движения вне предсказателей. В некоторых других технологиях видеокодирования может присутствовать компонент вектора движения, применимый к данному блоку. В порядке примера, видеокодер (703) включает в себя другие компоненты, например, модуль определения режима (не показан) для определения режима блоков обработки.[0108] In the HEVC example, video encoder (703) receives a matrix of sample values for a processing block, such as an 8x8 sample prediction block, or the like. The video encoder (703) 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 (703) may use an intra prediction technique to encode the processing block into an encoded picture; and when the processing block is to be encoded in inter mode or double prediction mode, the video encoder (703) may use an inter prediction or double prediction technique, respectively, to encode the processing block into an encoded picture. In some video coding technologies, the combining mode may be a sub-mode of inter-picture prediction where the 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 (703) includes other components, such as a mode determination module (not shown) for determining the mode of the processing units.

[0109] В примере, приведенном на фиг. 7, видеокодер (703) включает в себя интер-кодер (730), интра-кодер (722), вычислитель (723) остатка, переключатель (726), кодер (724) остатка, общий контроллер (721) и энтропийный кодер (725), соединенные друг с другом как показано на фиг. 7.[0109] In the example shown in FIG. 7, the video encoder (703) includes an inter encoder (730), an intra encoder (722), a residual calculator (723), a switch (726), a residual encoder (724), a common controller (721), and an entropy encoder (725). ) connected to each other as shown in Fig. 7.

[0110] Интер-кодер (730) выполнен с возможностью приема отсчетов текущего блока (например, блока обработки), сравнения блока с одним или более опорными блоками в опорных изображениях (например, блоками в предыдущих изображениях и более поздних изображениях), генерации информации внешнего предсказания (например, описания избыточной информации согласно методу внутреннего кодирования, векторов движения, информации режима объединения), и вычисления результатов внешнего предсказания (например, блока предсказания) на основании информации внешнего предсказания с использованием любого подходящего метода. В некоторых примерах опорными изображениями являются декодированные опорные изображения, которые декодируются на основе информации кодированного видео.[0110] The inter-encoder (730) 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 external 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.

[0111] Интра-кодер (722) выполнен с возможностью приема отсчетов текущего блока (например, блока обработки), в ряде случаев сравнения блока с блоками, ранее кодированными в том же изображении, генерирования квантованных коэффициентов после преобразования, и в ряде случаев также информации внутреннего предсказания (например, информации направления внутреннего предсказания согласно одному или более методам внутреннего кодирования). В порядке примера, интра-кодер (722) также вычисляет результаты внутреннего предсказания (например, блок предсказания) на основании информации внутреннего предсказания и опорных блоков в том же изображении.[0111] The intra-encoder (722) 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 722 also calculates intra prediction results (eg, prediction block) based on intra prediction information and reference blocks in the same picture.

[0112] Общий контроллер (721) выполнен с возможностью определения общих данных управления и управления другими компонентами видеокодера (703) на основе общих данных управления. Например, общий контроллер (721) определяет режим блока и выдает сигнал управления на переключатель (726) на основе режима. Например, когда режим является интра-режимом, общий контроллер (721) управляет переключателем (726) для выбора результата интра-режима для использования вычислителем (723) остатка, и управляет энтропийным кодером (725) для выбора информации внутреннего предсказания и включения информации внутреннего предсказания в битовый поток; и когда режим является интер-режимом, общий контроллер (721) управляет переключателем (726) для выбора результата внешнего предсказания для использования вычислителем (723) остатка, и управляет энтропийным кодером (725) для выбора информации внешнего предсказания и включения информации внешнего предсказания в битовый поток.[0112] The common controller (721) 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 (721) determines the mode of the block and outputs a control signal to the switch (726) based on the mode. For example, when the mode is the intra mode, the common controller (721) controls the switch (726) to select the result of the intra mode for use by the residual calculator (723), and controls the entropy encoder (725) to select the intra prediction information and turn on the intra prediction information into the bit stream; and when the mode is inter mode, the common controller (721) controls the switch (726) to select the inter prediction result to be used by the residual calculator (723), and controls the entropy encoder (725) to select the inter prediction information and include the inter prediction information in the bit flow.

[0113] Вычислитель (723) остатка выполнен с возможностью вычисления разности (данных остатка) между принятым блоком и результатами предсказания, выбранными из интра-кодера (722) или интер-кодера (730). Кодер (724) остатка выполнен с возможностью действовать на основе данных остатка для кодирования данных остатка для генерации коэффициентов преобразования. Например, кодер (724) остатка выполнен с возможностью преобразования данных остатка из пространственной области в частотную область и генерирования коэффициентов преобразования. Затем коэффициенты преобразования подвергаются обработке квантования для получения квантованных коэффициентов преобразования. В различных вариантах осуществления видеокодер (703) также включает в себя декодер (728) остатка. Декодер (728) остатка выполнен с возможностью осуществления обратного преобразования и генерирования декодированных данных остатка. Декодированные данные остатка могут надлежащим образом использоваться интра-кодером (722) и интер-кодером (730). Например, интеркодер (730) может генерировать декодированные блоки на основе декодированных данных остатка и информации внешнего предсказания, и интра-кодер (722) может генерировать декодированные блоки на основе декодированных данных остатка и информации внутреннего предсказания. Декодированные блоки надлежащим образом обрабатываются для генерации декодированных изображений, и декодированные изображения могут буферизоваться в схеме памяти (не показана) и в некоторых примерах использоваться в качестве опорных изображений.[0113] The residual calculator (723) is configured to calculate the difference (residual data) between the received block and the prediction results selected from the intra-coder (722) or inter-coder (730). The residual encoder (724) is configured to operate on the residual data to encode the residual data to generate transform coefficients. For example, the residual encoder (724) 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 (703) also includes a residual decoder (728). The residual decoder (728) is configured to perform inverse transformation and generate decoded residual data. The decoded residual data may be appropriately used by the intra-coder (722) and the inter-coder (730). For example, the intercoder (730) may generate decoded blocks based on the decoded residual data and inter prediction information, and the intra encoder (722) 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.

[0114] Энтропийный кодер (725) выполнен с возможностью форматирования битового потока так, чтобы он включал в себя кодированный блок. Энтропийный кодер (725) выполнен с возможностью включать различную информацию согласно подходящему стандарту, например, стандарту HEVC. Например, энтропийный кодер (725) выполнен с возможностью включать общие данные управления, выбранную информацию предсказания (например, информацию внутреннего предсказания или информацию внешнего предсказания), информацию остатка и другую подходящую информацию в битовый поток. Заметим, что, согласно раскрытому изобретению, при кодировании блока в подрежиме объединения любого из интер-режима и режима двойного предсказания, информация остатка отсутствует.[0114] The entropy encoder (725) is configured to format the bit stream so that it includes a coded block. The entropy encoder (725) is configured to include various information according to an appropriate standard, such as the HEVC standard. For example, the entropy encoder (725) 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 sub-mode of any of the inter-mode and the dual-prediction mode, there is no residual information.

[0115] На фиг. 8 показана схема видеодекодера (810) согласно другому варианту осуществления изобретения. Видеодекодер (810) выполнен с возможностью приема кодированных изображений, составляющих часть кодированной[0115] In FIG. 8 shows a diagram of a video decoder (810) according to another embodiment of the invention. The video decoder (810) is configured to receive encoded pictures constituting part of the encoded

видеопоследовательности, и декодирования кодированных изображений для генерации реконструированных изображений. Например, видеодекодер (810) используется вместо видеодекодера (410) в примере, приведенном на фиг. 4.video sequence, and decoding the encoded pictures to generate reconstructed pictures. For example, video decoder (810) is used instead of video decoder (410) in the example shown in FIG. four.

[0116] В примере, приведенном на фиг. 8, видеодекодер (810) включает в себя энтропийный декодер (871), интер-декодер (880), декодер (873) остатка, модуль (874) реконструкции и интра-декодер (872), соединенные друг с другом как показано на фиг. 8.[0116] In the example shown in FIG. 8, the video decoder (810) includes an entropy decoder (871), an inter decoder (880), a residual decoder (873), a reconstruction unit (874), and an intra decoder (872) connected to each other as shown in FIG. eight.

[0117] Энтропийный декодер (871) может быть выполнен с возможностью реконструкции, из кодированного изображения, некоторых символов, которые представляют синтаксические элементы, образующие кодированное изображение. Такие символы могут включать в себя, например, режим кодирования блока (например, интра-режим, интер-режим, режим двойного предсказания, причем последние два в подрежиме объединения или другом подрежиме), информацию предсказания (например, информацию внутреннего предсказания или информацию внешнего предсказания), которая может идентифицировать определенный отсчет или метаданные, используемые для предсказания интра-декодером (872) или интер-декодером (880), соответственно, информацию остатка в форме, например, квантованных коэффициентов преобразования и т.п. Например, когда режим предсказания является режимом внутреннего или двойного предсказания, информация внешнего предсказания поступает на интер-декодер (880); а когда тип предсказания является типом внутреннего предсказания, информация внутреннего предсказания поступает на интра-декодер (872). Информация остатка может подвергаться обратному квантованию и поступать на декодер (873) остатка.[0117] The entropy decoder (871) 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 (872) or inter-decoder (880), 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 (880); and when the prediction type is an intra prediction type, the intra prediction information is input to the intra decoder (872). The residual information may be inverse quantized and fed to the residual decoder (873).

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

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

[0120] Декодер (873) остатка выполнен с возможностью осуществления обратного квантования для извлечения деквантованных коэффициентов преобразования и обработки деквантованных коэффициентов преобразования для преобразования остатка из частотной области в пространственную область. Декодер (873) остатка также может требовать некоторой информации управления (включать параметр квантователя (QP, Quantizer Parameter)), и эта информация может обеспечиваться энтропийным декодером (871) (путь данных не показан, поскольку это может быть только информация управления малого объема).[0120] The residual decoder (873) 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 (873) may also require some control information (include a quantizer parameter (QP, Quantizer Parameter)), and this information may be provided by the entropy decoder (871) (the data path is not shown since this may only be small volume control information).

[0121] Модуль (874) реконструкции выполнен с возможностью объединения, в пространственной области, остатка на выходе декодера (873) остатка и результатов предсказания (на выходе модулей внешнего или внутреннего предсказания, в зависимости от ситуации) для формирования реконструированного блока, который может входить в состав реконструированного изображения, которое, в свою очередь, может входить в состав реконструированного видео. Заметим, что другие подходящие операции, например, операция деблокирования и т.п., может осуществляться для повышения визуального качества.[0121] The reconstruction module (874) is configured to combine, in the spatial domain, the residual at the output of the residual decoder (873) and prediction results (at the output of the inter- or intra-prediction modules, as appropriate) to form a reconstructed block that may be included into the 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.

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

[0123] Аспекты изобретения связаны с модификациями вторичного преобразования, например, реализациями обратного вторичного преобразования.[0123] Aspects of the invention relate to modifications of the secondary transform, for example, implementations of the inverse secondary transform.

[0124] В некоторых вариантах осуществления, например, в HEVC, первичное преобразование может включать в себя 4-точечное, 8-точечное, 16-точечное и 32-точечное дискретное косинусное преобразование (DCT, discrete cosine transform) типа 2 (DCT-2), и матрицы ядра преобразования могут быть представлены с использованием 8-битовых целых чисел (т.е. 8-битового ядра преобразования). Матрицы ядра преобразования меньшего DCT-2 являются частью матриц ядра преобразования большего DCT-2, как показано в приложении I.[0124] In some embodiments, for example, in HEVC, the primary transform may include 4-point, 8-point, 16-point, and 32-point discrete cosine transform (DCT, discrete cosine transform) type 2 (DCT-2 ), and transformation kernel matrices can be represented using 8-bit integers (i.e., an 8-bit transformation kernel). The transformation kernel matrices of the smaller DCT-2 are part of the transformation kernel matrices of the larger DCT-2, as shown in Annex I.

[0125] Матрицы ядра DCT-2 демонстрирует характеристики симметрии/антисимметрии. Поэтому может поддерживаться реализация "частичной бабочки" для уменьшения количества счетчиков операций (например, операций умножения, операций сложения, операций вычитания, сдвигов и т.п.), и идентичные результаты умножения матриц можно получать с использованием частичной бабочки.[0125] DCT-2 core matrices exhibit symmetry/antisymmetry characteristics. Therefore, a "partial butterfly" implementation can be supported to reduce the number of operation counters (eg, multiplications, additions, subtractions, shifts, etc.), and identical matrix multiplication results can be obtained using a partial butterfly.

[0126] В некоторых вариантах осуществления, например, в VVC, помимо вышеописанных 4-точечного, 8-точечного, 16-точечного и 32-точечного преобразований DCT-2, могут быть включены дополнительные 2-точечное и 64-точечное DCT-2. Пример ядра 64-точечного DCT-2, например, используемого в VVC, показан в приложении II как матрица 64×64.[0126] In some embodiments, for example, in VVC, in addition to the 4-point, 8-point, 16-point, and 32-point DCT-2 transformations described above, additional 2-point and 64-point DCT-2 transformations may be included. An example of a 64-point DCT-2 core, such as that used in VVC, is shown in Appendix II as a 64×64 matrix.

[0127] Помимо DCT-2 и 4×4 DST-7, например, используемых в HEVC, схема адаптивного множественного преобразования (АМТ, Adaptive Multiple Transform) (также известного как расширенное множественное преобразование (ЕМТ, Enhanced Multiple Transform) или выбор множественных преобразований (MTS, Multiple Transform Selection)), может использоваться, например, в VVC, для кодирования остатка как для интер-, так и для интра-кодированных блоков. Схема АМТ может использовать множественные выбранные преобразования из семейств DCT/DST, отличный от текущих преобразований в HEVC. Впервые вводятся матрицы преобразования DST-7 и DCT-8. В таблице 1 показаны примеры базисных функций выбранного DST/DCT для N-точечного ввода.[0127] In addition to DCT-2 and 4x4 DST-7, such as those used in HEVC, the Adaptive Multiple Transform (AMT) scheme (also known as EMT, Enhanced Multiple Transform) or multiple transform selection (MTS, Multiple Transform Selection)) can be used, for example, in VVC to encode the remainder for both inter- and intra-coded blocks. The AMT scheme may use multiple selected transforms from the DCT/DST families, different from the current HEVC transforms. DST-7 and DCT-8 transformation matrices are introduced for the first time. Table 1 shows examples of basis functions of the selected DST/DCT for N-point input.

Figure 00000001
Figure 00000001

[0128] Матрицы первичного преобразования, используемые, например, в VVC, могут использоваться с 8-битовым представлением. АМТ применяет матрицы преобразования к CU, ширина и высота которых меньше или равна 32. Применяется ли АМТ, может указывать флаг (например, mts_flag). Когда mts_flag равен 0, в некоторых примерах для кодирования остаточных данных применяется только DCT-2. Когда mts_flag равен 1, индекс (например, mts_idx) может дополнительно сигнализироваться с использованием 2 бинов для идентификации горизонтального и вертикального преобразования, подлежащих использованию согласно таблице 2, где значение типа, равное 1, означает использование DST-7, и значение типа, равное 2, означает использование DCT-8. В таблице 2, значение trTypeHor и trTypeVer зависит от mts_idx[x][y][cIdx].[0128] Primary transformation matrices used in VVC, for example, can be used with an 8-bit representation. AMT applies transformation matrices to CUs whose width and height are less than or equal to 32. Whether AMT is applied may indicate a flag (eg, mts_flag). When mts_flag is 0, in some examples only DCT-2 is used to encode the residual data. When mts_flag is 1, an index (eg, mts_idx) may be further signaled using 2 bins to identify the horizontal and vertical transformation to be used according to Table 2, where a type value of 1 means DST-7 is used, and a type value of 2 , means using DCT-8. In Table 2, the value of trTypeHor and trTypeVer depends on mts_idx[x][y][cIdx].

Figure 00000002
Figure 00000002

[0129] В некоторых вариантах осуществления, неявный MTS может применяться, когда вышеупомянутый MTS на основе сигнализации (т.е. явный MTS) не используется. С неявным MTS выбор преобразования производится согласно ширине и высоте блока вместо сигнализации. Например, с неявным MTS, DST-7 выбирается для более короткой стороны (т.е. минимум одного из М и N) блока MxN, и DCT-2 выбирается для более длинной стороны (т.е. максимум одного из М и N) блока.[0129] In some embodiments, implicit MTS may be applied when the aforementioned signaling-based MTS (ie, explicit MTS) is not used. With implicit MTS, transform selection is made according to block width and height instead of signaling. For example, with implicit MTS, DST-7 is chosen for the shorter side (i.e., at least one of M and N) of the MxN block, and DCT-2 is chosen for the longer side (i.e., at most one of M and N) block.

[0130] Иллюстративные ядра преобразования, каждое из которых является матрицей, образованной векторами базиса, для DST-7 и DCT-8 проиллюстрированы в приложении III.[0130] Exemplary transformation kernels, each of which is a matrix formed by basis vectors, for DST-7 and DCT-8 are illustrated in Appendix III.

[0131] В некоторых примерах, например, в VVC, когда и высота, и ширина блока кодирования меньше или равна 64, размер ТВ совпадает с размером блока кодирования. Если высота или ширина блока кодирования больше 64, при осуществлении преобразования (например, обратного преобразования, обратного первичного преобразования и т.п.) или внутреннего предсказания, блок кодирования дополнительно делится на множественные подблоки, где ширина и высота каждого подблока меньше или равен 64. На каждом подблоке может осуществляться одно преобразование.[0131] In some examples, for example, in VVC, when both the height and the width of the coding block are less than or equal to 64, the size of the TV is the same as the size of the coding block. If the height or width of a coding block is greater than 64, when performing a transformation (e.g., inverse transform, inverse primary transform, etc.) or intra prediction, the coding block is further divided into multiple subblocks, where the width and height of each subblock is less than or equal to 64. One transformation can be performed on each subblock.

[0132] Соответствующие синтаксис и семантика MTS в некоторых примерах в VVC могут быть описаны ниже (выделены серым цветом) на фиг. 9 и 10А-10С. На фиг. 9 показан пример синтаксиса единицы преобразования. На фиг. 10А-10С показан пример синтаксиса кодирования остатка.[0132] The corresponding MTS syntax and semantics in some examples in VVC can be described below (greyed out) in FIG. 9 and 10A-10C. In FIG. 9 shows an example of the conversion unit syntax. In FIG. 10A-10C show an example of a residual encoding syntax.

[0133] Ниже приведен пример семантики единицы преобразования. cu_mts_flag[х0][у0], равный 1, указывает, что выбор множественных преобразований применяется к остаточным отсчетам соответствующего блока преобразования яркости, cu_mts_flag[х0][у0] равный 0, указывает, что выбор множественных преобразований не применяется к остаточным отсчетам соответствующего блока преобразования яркости. Индексы х0, у0 матрицы указывают положение (х0, у0) верхнего левого отсчета яркости рассматриваемого блока преобразования относительно верхнего левого отсчета яркости изображения. Когда cu_mts_flag[х0][у0] отсутствует, он предполагается равным 0.[0133] The following is an example of the semantics of a transformation unit. cu_mts_flag[x0][y0] equal to 1 indicates that the selection of multiple transforms is applied to the residual samples of the corresponding luma transform block, cu_mts_flag[x0][y0] equal to 0 indicates that the selection of multiple transforms is not applied to the residual samples of the corresponding transform block brightness. Indexes x0, y0 of the matrix indicate the position (x0, y0) of the upper left brightness value of the considered transformation block relative to the upper left value of the image brightness. When cu_mts_flag[x0][y0] is absent, it is assumed to be 0.

[0134] Ниже приведен пример семантики кодирования остатка, mts_idx[х0][у0] указывает, какие ядра преобразования применяются к остаточным отсчетам яркости в горизонтальном и вертикальном направлении текущего блока преобразования. Индексы х0, у0 матрицы указывают положение (х0, у0) верхнего левого отсчета яркости рассматриваемого блока преобразования относительно верхнего левого отсчета яркости изображения. Когда mts_idx[х0][у0] отсутствует, он предполагается равным -1.[0134] The following is an example of residual encoding semantics, mts_idx[x0][y0] indicates which transform kernels are applied to the residual luminance samples in the horizontal and vertical direction of the current transform block. Indices x0, y0 of the matrix indicate the position (x0, y0) of the upper left brightness value of the considered transformation block relative to the upper left value of the image brightness. When mts_idx[x0][y0] is absent, it is assumed to be -1.

[0135] На фиг. 11А показано иллюстративное прямое преобразование (также именуемое прямым первичным преобразованием), осуществляемое кодером. Прямое преобразование может включать в себя прямое горизонтальное преобразование и прямое вертикальное преобразование. Прямое горизонтальное преобразование применяется сначала к остаточному блоку (1110), имеющему остаточные данные, для получения промежуточного блока. Затем прямое вертикальное преобразование применяется к промежуточному блоку для получения блока (1112) коэффициентов, имеющего коэффициенты преобразования.[0135] In FIG. 11A shows an exemplary direct transform (also referred to as direct primary transform) performed by an encoder. Direct transformation may include direct horizontal transformation and direct vertical transformation. A forward horizontal transform is first applied to a residual block (1110) having residual data to obtain an intermediate block. Then, a direct vertical transform is applied to the intermediate block to obtain a coefficient block (1112) having the transform coefficients.

[0136] На фиг. 11В показано иллюстративное обратное преобразование (также именуемое обратным первичным преобразованием или обратным преобразованием), осуществляемым декодером. Вообще говоря, обратное преобразование совпадает с прямым преобразованием. Обратное первичное преобразование может включать в себя обратное первичное горизонтальное преобразование (также именуемое обратным горизонтальным преобразованием) и обратное первичное вертикальное преобразование (также именуемое обратным вертикальным преобразованием). Для согласования прямого преобразования, порядок применения обратных горизонтального и вертикального преобразований переключается в обратном преобразовании. Соответственно, обратное вертикальное преобразование применяется сначала к блоку (1122) коэффициентов для получения промежуточного блока. Затем обратное горизонтальное преобразование применяется к промежуточному блоку для получения остаточного блока (1120).[0136] FIG. 11B shows an exemplary inverse transform (also referred to as inverse primary transform or inverse transform) performed by a decoder. Generally speaking, the inverse transformation is the same as the direct transformation. The reverse prime may include a reverse primary horizontal transform (also referred to as reverse horizontal) and a reverse primary vertical transform (also referred to as reverse vertical). To match the forward transform, the order of applying the inverse horizontal and vertical transforms is switched in the reverse transform. Accordingly, an inverse vertical transform is first applied to the coefficient block (1122) to obtain an intermediate block. The inverse horizontal transform is then applied to the intermediate block to obtain a residual block (1120).

[0137] Под первичным преобразованием можно понимать прямое первичное преобразование или обратное первичное преобразование. Под горизонтальным преобразованием можно понимать обратное горизонтальное преобразование или прямое горизонтальное преобразование. Аналогично, под вертикальным преобразованием можно понимать обратное вертикальное преобразование или прямое вертикальное преобразование.[0137] Under the primary transformation can be understood as a direct primary transformation or reverse primary transformation. A horizontal transformation can be understood as a reverse horizontal transformation or a forward horizontal transformation. Likewise, a vertical transformation can be understood as an inverse vertical transformation or a forward vertical transformation.

[0138] В примере, например, в VVC, в декодере, сначала осуществляется обратное вертикальное первичное преобразование, затем, после применения обратного вертикального преобразования, осуществляется обратное горизонтальное первичное преобразование, как указано на фиг. 12А-12Е в текстах, выделенных серым цветом. На фиг. 12А-12Е показан пример процесса преобразования, например, для масштабированных коэффициентов преобразования. Тексты, выделенные серым цветом, показаны на фиг. 12Е.[0138] In an example, for example, in VVC, at the decoder, first a reverse vertical primary transform is performed, then, after applying the reverse vertical transform, a reverse horizontal primary transform is performed, as shown in FIG. 12A-12E in gray texts. In FIG. 12A-12E show an example transform process, for example, for scaled transform coefficients. The texts highlighted in gray are shown in Fig. 12E.

[0139] Согласно варианту осуществления, режимозависимое несепарабельное вторичное преобразование (NSST, non-separable secondary transform) может использоваться между ядром прямого преобразования и квантованием на стороне кодера и между деквантованием и ядром обратного преобразование на стороне декодера. Например, для поддержания низкой сложности, NSST применяется к низкочастотным коэффициентам после первичного преобразование (или преобразования ядра). Когда и ширина (W), и высота (Н) блока коэффициентов преобразования больше или равны 8, NSST 8×8 применяется к верхней левой области 8x8 блока коэффициентов преобразования. В противном случае, когда ширина W или высота Н блока коэффициентов преобразования равна 4, применяется NSST 4×4, и NSST 4×4 осуществляется на верхней левой min(8,W)×min(8,H) области блока коэффициентов преобразования. Вышеупомянутый способ выбора преобразования применяется для обеих компонент яркости и цветности.[0139] According to an embodiment, a mode-dependent non-separable secondary transform (NSST) can be used between the forward transform kernel and quantization on the encoder side, and between the dequantization and the inverse transform kernel on the decoder side. For example, to keep complexity low, NSST is applied to the low frequency coefficients after the primary transform (or kernel transform). When both the width (W) and the height (H) of the transform coefficient block are greater than or equal to 8, NSST 8x8 is applied to the top left 8x8 region of the transform coefficient block. Otherwise, when the transform coefficient block width W or height H is 4, NSST 4×4 is applied, and NSST 4×4 is performed on the upper left min(8,W)×min(8,H) region of the transform coefficient block. The above transformation selection method applies to both the luma and chrominance components.

[0140] Реализация умножения матриц NSST описана ниже на примере входного блока 4×4. Входной блок X 4×4 записан в ур. (1) as[0140] An implementation of NSST matrix multiplication is described below using a 4×4 input block as an example. The input block X 4×4 is written in eq. (1) as

Figure 00000003
Figure 00000003

[0141] Входной блок X может быть представлен в виде вектора

Figure 00000004
в ур. (2), где[0141] The input block X can be represented as a vector
Figure 00000004
in ur. (2), where

Figure 00000005
Figure 00000005

Несепарабельное преобразование вычисляется как

Figure 00000006
где
Figure 00000007
указывает вектор коэффициентов преобразования, и Т - матрица преобразования 16×16. Затем вектор
Figure 00000008
16×1 коэффициентов преобразования реорганизуется как блок 4×4 согласно порядку сканирования (например, горизонтальному порядку сканирования, вертикальному порядку сканирования или диагональному порядку сканирования) входного блока X. Коэффициенты с меньшими индексами могут располагаться в блоке 4×4 коэффициентов с меньшими индексами сканирования. В некоторых вариантах осуществления, для уменьшения сложности NSST вместо вышеописанного умножения матриц может использоваться преобразование гиперкуба Гивенса (HyGT) с реализацией бабочки.The non-separable transformation is computed as
Figure 00000006
where
Figure 00000007
indicates a vector of transform coefficients, and T is a 16×16 transform matrix. Then the vector
Figure 00000008
The 16×1 transform coefficients are reorganized as a 4×4 block according to the scan order (e.g., horizontal scan order, vertical scan order, or diagonal scan order) of the input block X. Coefficients with lower indices may be placed in a 4×4 block of coefficients with lower scan indices. In some embodiments, instead of the above described matrix multiplication, the Givens Hypercube Transform (HyGT) with butterfly implementation can be used to reduce the complexity of the NSST.

[0142] В примере, несепарабельные вторичные преобразования 35×3 доступны для обоих размеров блока 4×4 и 8×8, где 35 - количество наборов преобразования, связанных с режимами внутреннего предсказания, и 3 - количество кандидатов NSST для каждого режима внутреннего предсказания. В таблице 3 показано иллюстративное отображение из режима внутреннего предсказания в соответствующий набор преобразований. Набор преобразований, применяемых к коэффициентам преобразования яркость/цветность, задается соответствующим режимом внутреннего предсказания яркости/цветности, согласно таблице 3, где показано отображение из режима внутреннего предсказания в индекс набора преобразований. Для режима внутреннего предсказания, большего 34, который соответствует диагональному направлению предсказания, блок коэффициентов преобразования транспонируется до/после NSST на кодере/декодере, соответственно.[0142] In the example, 35x3 non-separable secondary transforms are available for both 4x4 and 8x8 block sizes, where 35 is the number of transform sets associated with intra prediction modes and 3 is the number of NSST candidates for each intra prediction mode. Table 3 shows an exemplary mapping from the intra prediction mode to the corresponding transform set. The set of transforms applied to the luminance/chrominance transform coefficients is specified by the corresponding luma/chrominance intra prediction mode according to Table 3, which shows the mapping from the intra prediction mode to the transform set index. For an intra prediction mode greater than 34, which corresponds to a diagonal prediction direction, the block of transform coefficients is transposed before/after the NSST at the encoder/decoder, respectively.

[0143] Для каждого набора преобразований, выбранный кандидат NSST может дополнительно указываться путем явной сигнализации индекс NSST на уровне CU. Индекс NSST на уровне CU сигнализируется в битовом потоке для каждого интракодированного CU после того, как коэффициенты преобразования и усеченная унарная бинаризация используется для индекса NSST на уровне CU. Например, усеченное значение равно 2 для плоского или DC режима, и 3 для углового режима внутреннего предсказания. В примере, индекс NSST на уровне CU сигнализируется только при наличии более одного ненулевого коэффициента в CU. Значение по умолчанию равно нулю и не сигнализируется, указывая, что NSST не применяется к CU. Каждое из значений 1-3 указывает, какой кандидат NSST подлежит применению из набора преобразований.[0143] For each transform set, the selected NSST candidate may be further indicated by explicitly signaling the NSST index at the CU level. The NSST index at the CU level is signaled in the bitstream for each intra-coded CU after the transform coefficients and truncated unary binarization are used for the NSST index at the CU level. For example, the truncated value is 2 for the flat or DC mode, and 3 for the angular intra prediction mode. In the example, the NSST index at the CU level is only signaled if there is more than one non-zero coefficient in the CU. The default value is zero and is not signaled, indicating that NSST is not applied to the CU. Each of the values 1-3 indicates which NSST candidate is to be applied from the transform set.

Figure 00000009
Figure 00000009

[0144] В некоторых вариантах осуществления, NSST не применяется для блока, кодированного в режиме пропуска преобразования (transform skip mode). Когда индекс NSST на уровне CU сигнализируется для CU и не равен нулю, NSST не используется для блока, который кодируется в режиме пропуска преобразования в CU. Когда CU с блоками всех компонентов кодируются в режиме пропуска преобразования, или количество ненулевых коэффициентов СВ в режиме без пропуска преобразования меньше 2, индекс NSST на уровне CU не сигнализируется для CU.[0144] In some embodiments, NSST is not applied to a block encoded in transform skip mode. When the NSST index at the CU level is signaled to the CU and is non-zero, the NSST is not used for the block that is encoded in the CU's transform skip mode. When CUs with blocks of all components are encoded in the transform skip mode, or the number of non-zero CB coefficients in the non-skipping transform mode is less than 2, the NSST index at the CU level is not signaled to the CU.

[0145] В некоторых вариантах осуществления, используется разновидность NSST, например, преобразование сокращенного размера (RST, reduced size transform). RST использует схему обнуления преобразования. В примере, в RST, является ли режим внутреннего предсказания плоским или DC, проверяется для энтропийного кодирования индекса преобразования NSST.[0145] In some embodiments, a variation of NSST is used, such as a reduced size transform (RST). RST uses a nulling conversion scheme. In the example, in RST, whether the intra prediction mode is flat or DC is checked for entropy encoding of the NSST transform index.

[0146] В примере применяются 4 набора преобразования, и каждый набор преобразований включает в себя три ядра преобразования RST. Ядра преобразования RST могут иметь размер 16×48 (или 16×64) (применяемый для блока коэффициентов преобразования, высота и ширина которого больше или равны 8) или 16×16 (применяемый для блока коэффициентов преобразования, высота или ширина которого равна 4). Для удобства обозначения преобразование 16×48 (или 16×64) обозначается RST8×8 и преобразование 16×16 обозначается RST4×4.[0146] In the example, 4 transform sets are applied, and each transform set includes three RST transform kernels. The RST transform kernels may have a size of 16x48 (or 16x64) (used for a transform coefficient block whose height and width is greater than or equal to 8) or 16x16 (used for a transform coefficient block whose height or width is 4). For convenience of notation, the 16x48 (or 16x64) transform is referred to as RST8x8 and the 16x16 transform is referred to as RST4x4.

[0147] На фиг. 13 и фиг. 14 показаны примеры двух процессов (1300) и (1400) кодирования преобразования с использованием преобразования 16×64 (или преобразования 64×16 в зависимости от того, является ли преобразование прямым или обратным вторичным преобразованием) и преобразования 16×48 (или преобразования 48×16 в зависимости от того, является ли преобразование прямым или обратным вторичным преобразованием), соответственно. Согласно фиг. 13, в процессе (1300), на стороне кодера, прямое первичное преобразование (1310) сначала может осуществляться над остаточным блоком для получения блока (1313) коэффициентов. Затем прямое вторичное преобразование (1312) можно применять к блоку (1313) коэффициентов. В прямом вторичном преобразовании (1312), 64 коэффициента подблоков A-D 4×4 в верхнем левом углу блока (1313) коэффициентов могут быть представлены вектором длиной 64, и вектор длиной 64 может перемножаться с матрицей преобразования 64×16 (т.е. шириной 64 и высотой 16) согласно ур.(2), что дает вектор длиной 16. Элементы вектора длиной 16 переносятся обратно в верхний левый подблок А 4×4 блока (1313) коэффициентов. Коэффициенты в подблоках B-D могут быть нулевыми. Коэффициенты, полученные после прямого вторичного преобразования (1312), затем квантуются на этапе (1314) и энтропийно кодируются для генерации кодированных битов в битовом потоке (1316).[0147] In FIG. 13 and FIG. 14 shows examples of two transform encoding processes (1300) and (1400) using a 16×64 transform (or a 64×16 transform depending on whether the transform is a forward or inverse secondary transform) and a 16×48 transform (or a 48× transform). 16 depending on whether the transformation is forward or inverse secondary transformation), respectively. According to FIG. 13, in a process (1300), on the encoder side, a direct primary transform (1310) may first be performed on the residual block to obtain a block (1313) of coefficients. The direct secondary transform (1312) can then be applied to the coefficient block (1313). In the forward secondary transform (1312), the 64 coefficients of the 4×4 A-D subblocks in the upper left corner of the coefficient block (1313) may be represented by a vector of length 64, and the vector of length 64 may be multiplied with a 64×16 transformation matrix (i.e., a width of 64 and height 16) according to Eq.(2), which gives a vector of length 16. The elements of the vector of length 16 are transferred back to the upper left subblock A of the 4×4 block (1313) of coefficients. The coefficients in sub-blocks B-D may be zero. The coefficients obtained after the direct secondary transform (1312) are then quantized in step (1314) and entropy encoded to generate coded bits in the bitstream (1316).

[0148] Кодированные биты могут приниматься на стороне декодера и энтропийно декодируются, после чего деквантуются (1324) для генерации блока (1323) коэффициентов. Обратное вторичное преобразование (1322), например, обратное RST8x8, может осуществляться для получения 64 коэффициентов, например, из 16 коэффициентов на верхнем левом подблоке Е 4×4. 64 коэффициента могут переноситься обратно в подблоки Е-Н 4×4. Дополнительно, коэффициенты в блоке (1323) коэффициентов после обратного вторичного преобразования (1322) могут обрабатываться с помощью обратного первичного преобразования (1320) для получения восстановленного остаточного блока.[0148] The encoded bits may be received at the decoder side and entropy decoded and then dequantized (1324) to generate a coefficient block (1323). An inverse secondary transform (1322), eg, inverse RST8x8, may be performed to obtain 64 coefficients, eg, from 16 coefficients on the top left 4×4 subblock E. The 64 coefficients can be carried back to the 4x4 E-H subblocks. Additionally, the coefficients in the block (1323) of coefficients after the inverse secondary transform (1322) may be processed with the inverse primary transform (1320) to obtain a reconstructed residual block.

[0149] Процесс (1400), представленный на фиг. 14, аналогичен процессу (1300) за исключением того, что в ходе прямого вторичного преобразования (1412) обрабатывается меньше (т.е. 48) коэффициентов. В частности, 48 коэффициентов в подблоках А-С обрабатываются с меньшей матрицей преобразования размера 48×16. С использованием меньшей матрицы преобразования 48×16 можно уменьшать размер памяти для хранения матрицы преобразования и объем вычислений (например, операций умножения, операций сложения, операций вычитания и т.п) и, таким образом, можете снижать вычислительную сложность.[0149] The process (1400) shown in FIG. 14 is similar to process (1300) except that fewer (ie, 48) coefficients are processed during the direct secondary transform (1412). In particular, the 48 coefficients in subblocks A-C are processed with a smaller 48x16 transform matrix. By using a smaller 48×16 transformation matrix, the size of the memory for storing the transformation matrix and the amount of calculations (eg, multiplication operations, addition operations, subtraction operations, etc.) can be reduced, and thus the computational complexity can be reduced.

[0150] Сокращенное преобразование (RT, Reduced Transform) (также именуемое RST) может отображать N-мерный вектор в R-мерный вектор в другом пространстве, где R/N (R<N) - коэффициент сокращения.[0150] Reduced Transform (RT, also referred to as RST) can map an N-dimensional vector to an R-dimensional vector in another space, where R/N (R<N) is a reduction factor.

[0151] Матрица RST (или RT) представляет собой следующую матрицу R×N:[0151] The RST (or RT) matrix is the following R×N matrix:

Figure 00000010
Figure 00000010

где R строк преобразования представляют собой R баз N-мерного пространства. Матрица обратного преобразования для RT получается транспонированием матрицы прямого преобразования.where the R strings of the transformation are the R bases of an N-dimensional space. The inverse transformation matrix for RT is obtained by transposing the forward transformation matrix.

[0152] На фиг. 15А показаны процесс (1501) сокращенного прямого преобразования и процесс (1502) сокращенного обратного преобразования. Т выражает матрицу преобразования RST размером R×N, и TT выражает матрицу, полученную транспонированием Т, и TT имеет размер N×R.[0152] In FIG. 15A shows a reduced forward transform process (1501) and a reduced inverse transform process (1502). T expresses the transformation matrix RST of size R×N, and T T expresses the matrix obtained by transposing T, and T T has size N×R.

[0153] В RST8×8 можно реализовать коэффициент сокращения 4 (1/4 размера). Например, вместо 64×64, который является размером традиционной матрицы несепарабельного преобразования 8×8, может использоваться прямая матрица 16×64. Матрица 64×16 обратного RST может использоваться на стороне декодера для генерации коэффициентов ядра (первичного) преобразования в верхней левой области 8×8. Прямое RST8×8 использует матрицы 16×64 (или 8×64 для блока 8×8), благодаря чему прямое RST8×8 создает ненулевые коэффициенты только в верхней левой области 4×4 в данной верхней левой области 8×8. Другими словами, когда применяется RST, область в верхней левой области 8×8, которая выходит за пределы верхней левой области 4×4, имеет только нулевые коэффициенты. Для RST4×4, 16×16 (или 8×16 для блока 4×4) может применяться прямое умножение матриц.[0153] In RST8×8, a reduction factor of 4 (1/4 size) can be realized. For example, instead of 64x64, which is the size of a conventional 8x8 non-separable transform matrix, a 16x64 direct matrix can be used. The 64×16 inverse RST matrix may be used at the decoder side to generate the kernel (primary) transform coefficients in the upper left 8×8 region. Direct RST8x8 uses 16x64 matrices (or 8x64 for an 8x8 block), whereby direct RST8x8 produces non-zero coefficients only in the top left 4x4 region in a given top left 8x8 region. In other words, when RST is applied, the area in the top left 8x8 area that extends beyond the top left 4x4 area has only zero coefficients. For RST4x4, 16x16 (or 8x16 for a 4x4 block) direct matrix multiplication can be applied.

[0154] Кроме того, для RST8×8, для дополнительного уменьшения размера матрицы преобразования, вместо использования всех верхних левых 8×8 коэффициентов (64 коэффициентов в заштрихованных подблоках на фиг. 15В) остаточного блока (1510) в качестве ввода для вычисления вторичного преобразования, три верхних левых коэффициентов подблока 4×4 (48 коэффициентов в заштрихованных подблоках на фиг. 15С) остаточного блока (1510) используются в качестве ввода для вычисления вторичного преобразования. Соответственно, матрица 16×64 преобразования используется на фиг. 15В, и матрица 16×48 преобразования используется на фиг. 15С.[0154] In addition, for RST8×8, to further reduce the size of the transformation matrix, instead of using all the top left 8×8 coefficients (64 coefficients in shaded subblocks in Fig. 15B) of the residual block (1510) as input to calculate the secondary transformation , the top left three coefficients of the 4×4 subblock (48 coefficients in shaded subblocks in FIG. 15C) of the residual block (1510) are used as input to calculate the secondary transform. Accordingly, a 16×64 transformation matrix is used in FIG. 15B and a 16x48 transformation matrix is used in FIG. 15C.

[0155] В примере, обратное RST применяется при выполнении следующих двух условий: (i) размер блока (например, ширина W и/или высота Н блока) больше или равен порогу (например, W>=4 и Н>=4), и (ii) флаг режима пропуска преобразования равен нулю. Например, если ширина (W) и высота (Н) блока коэффициентов преобразования больше 4, то RST8×8 применяется к верхней левой области 8×8 блока коэффициентов преобразования. В противном случае, RST4×4 применяется к верхней левой области min(8, W) × min(8, Н) блока коэффициентов преобразования.[0155] In an example, the reverse RST is applied when the following two conditions are met: (i) the block size (eg, block width W and/or block height H) is greater than or equal to a threshold (eg, W>=4 and H>=4), and (ii) the Transform Skip Mode Flag is zero. For example, if the width (W) and height (H) of the transform coefficient block is greater than 4, then RST8×8 is applied to the top left 8×8 region of the transform coefficient block. Otherwise, RST4×4 is applied to the upper left region min(8, W)×min(8, H) of the transform coefficient block.

[0156] В примере, когда индекс RST равен 0, RST не применяется. В противном случае RST применяется, и ядро выбирается с индексом RST. В примере, RST применяется для интра-CU (например, CU, кодированного с внутренним предсказанием или в интра-режиме) как в интра-, так и интер-слайсах, и для составляющих как яркости, так и цветности. Если разрешено дуальное дерево, индексы RST для яркости и цветности сигнализируются по отдельности. Для интер-слайса (дуальное дерево запрещено), единственный индекс RST сигнализируется и используется как для яркости, так и для цветности. При выборе режима ISP, RST запрещено, и индекс RST не сигнализируется.[0156] In an example, when the RST index is 0, RST is not applied. Otherwise, the RST is applied and the kernel is selected with the RST index. In the example, RST is applied to intra-CU (eg, intra-prediction or intra-mode encoded CU) in both intra- and inter-slices, and for both luminance and chrominance components. If dual tree is enabled, the RST indices for luma and chrominance are signaled separately. For inter-slice (dual tree forbidden), a single RST index is signaled and used for both luma and chrominance. When ISP mode is selected, RST is disabled and the RST index is not signaled.

[0157] В примере, матрица RST может выбираться из четырех наборов преобразования, каждый из которых состоит из двух преобразований. Какой набор преобразований применять, может определяться на основании режима внутреннего предсказания следующим образом. Когда указан один из трех режимов кросс-компонентной линейной модели (CCLM, cross component linear model), можно выбрать набор преобразований 0. В противном случае, выбор набора преобразований может осуществляться согласно таблице (1550), показанной на фиг. 15D. Индекс (например, IntraPredMode) для осуществления доступа к таблице (1550) может принимать значения в диапазоне [-14, 80] и является преобразованным индексом режима, используемым, например, для широкоугольного внутреннего предсказания. Пример режимов внутреннего предсказания показан на фиг. 16В. В примере, индекс для осуществления доступа к таблице (1550) может принимать значения в диапазоне [-14, 83] или любом подходящем диапазоне.[0157] In an example, the RST matrix may be selected from four transform sets, each consisting of two transforms. Which set of transforms to apply may be determined based on the intra prediction mode as follows. When one of the three cross component linear model (CCLM) modes is specified, transform set 0 may be selected. Otherwise, the transform set may be selected according to the table (1550) shown in FIG. 15D. The index (eg, IntraPredMode) for accessing the table (1550) may take values in the range [-14, 80] and is a converted mode index used, for example, for wide-angle intra prediction. An example of intra prediction modes is shown in FIG. 16V. In the example, the index to access the table (1550) may take values in the range [-14, 83] or any suitable range.

[0158] На фиг. 16А показаны иллюстративные направления внутреннего предсказания и режимы внутреннего предсказания, используемые в HEVC. В HEVC существует всего 35 режимов внутреннего предсказания (режимы 0 ~ 34). Режим 0 и режим 1 являются ненаправленными режимами, из которых режим 0 - плоский режим (обозначенный как Intra_Planar на фиг. 16А), и режим 1 - DC режим (обозначенный как Intra_DC на фиг. 16А). Режимы 2-34 являются направленными режимами, из которых режим 10 - горизонтальный режим, режим 26 - вертикальный режим, и режим 2, режим 18 и режим 34 - диагональные режимы. В некоторых примерах, режимы внутреннего предсказания сигнализируются тремя наиболее вероятным режимами (МРМ, most probable modes) и 32 оставшимися режимами.[0158] FIG. 16A shows exemplary intra prediction directions and intra prediction modes used in HEVC. In HEVC, there are a total of 35 intra prediction modes (modes 0 ~ 34). Mode 0 and mode 1 are non-directional modes, of which mode 0 is a flat mode (labeled Intra_Planar in FIG. 16A) and mode 1 is a DC mode (labeled Intra_DC in FIG. 16A). Modes 2-34 are directional modes, of which mode 10 is horizontal mode, mode 26 is vertical mode, and mode 2, mode 18 and mode 34 are diagonal modes. In some examples, the intra prediction modes are signaled by the three most probable modes (MPM) and the 32 remaining modes.

[0159] На фиг. 16В показаны иллюстративные направления внутреннего предсказания и режимы внутреннего предсказания в некоторых примерах (например, VVC). Существует всего 95 режимов внутреннего предсказания (режимы -14 ~ 80), из которых режим 18 - горизонтальный режим, режим 50 - вертикальный режим, и режим 2, режим 34 и режим 66 - диагональные режимы. Режимы -1 ~ -14 и режимы 67 ~ 80 называются режимами широкоугольного внутреннего предсказания (WAIP, wide-angle intra prediction).[0159] FIG. 16B shows exemplary intra prediction directions and intra prediction modes in some examples (eg, VVC). There are a total of 95 intra prediction modes (modes -14 ~ 80), of which mode 18 is horizontal mode, mode 50 is vertical mode, and mode 2, mode 34 and mode 66 are diagonal modes. Modes -1 ~ -14 and modes 67 ~ 80 are called wide-angle intra prediction (WAIP) modes.

[0160] Мультилинейное внутреннее предсказание может использовать больше опорных линий для внутреннего предсказания. Опорная линия может включать в себя множественные отсчеты в изображении. В примере, опорная линия включает в себя отсчеты в строке и отсчеты в столбце. В примере, кодер может определять и сигнализировать опорную линию, используемую для генерации интра-предсказателя. Индекс (также именуемый индексом опорной линии), указывающий опорную линию, может сигнализироваться до сигнализации режима(ов) внутреннего предсказания. В примере, МРМ разрешены только тогда, когда сигнализируется ненулевой индекс опорной линии. На фиг. 17 показан пример 4 опорных линий для блока (1710) кодирования. В примере, показанном на фиг. 17, опорная линия может включать в себя шесть сегментов, т.е. сегменты А - F. Опорная линия 3 может включать в себя верхний левый опорный отсчет. Сегменты А и F могут быть заполнены ближайшими отсчетами из сегментов В и Е, соответственно. В некоторых примерах, например, в HEVC, для внутреннего предсказания используется единственная опорная линия (например, опорная линия 0, которая соседствует с блоком (1710) кодирования). В некоторых примерах, например, в VVC, для внутреннего предсказания используются множественные опорные линии (например, опорные линии 0, 1 и 3).[0160] Multi-linear intra prediction may use more reference lines for intra prediction. The reference line may include multiple samples in an image. In the example, the reference line includes the row samples and the column samples. In an example, the encoder may determine and signal the reference line used to generate the intra-predictor. An index (also referred to as a reference line index) indicating a reference line may be signaled prior to signaling the intra prediction mode(s). In the example, MPMs are only enabled when a non-zero baseline index is signaled. In FIG. 17 shows an example of 4 reference lines for a coding block (1710). In the example shown in FIG. 17, the reference line may include six segments, i. e. segments A - F. Reference line 3 may include an upper left reference point. Segments A and F can be filled with the nearest samples from segments B and E, respectively. In some examples, such as HEVC, a single reference line is used for intra prediction (eg, reference line 0, which is adjacent to the coding block (1710). In some examples, such as VVC, multiple reference lines (eg, reference lines 0, 1, and 3) are used for intra prediction.

[0161] Может использоваться режим кодирования с интра-разбиением (ISP, Intra sub-partition). В режиме кодирования с ISP, внутренне предсказанный блок яркости может делиться вертикально или горизонтально на 2 или 4 части в зависимости от размера блока.[0161] Intra sub-partition (ISP) coding mode may be used. In the ISP coding mode, the intra-predicted luminance block may be divided vertically or horizontally into 2 or 4 parts depending on the block size.

[0162] На фиг. 18 показана таблица 4, которая связывает количество частей, на которые разбивается блок, с его размером. Например, когда размер блока составляет 4×4, разбиение блока в режиме кодирования с ISP не осуществляется. Когда размер блока составляет 4×8 или 8×4, блок разбивается на две части в режиме кодирования с ISP. Для всех остальных размеров блока, превышающих 4×8 или 8×4, блок разбивается на четыре части. На фиг. 19 показан пример разбиения блока, имеющего размер 4×8 или 8×4. На фиг. 20 показан другой пример разбиения блока, имеющего размер отличный от 4×8, 8×4 и 4×4, например, размер блока более 4×8 и 8×4. В примере, все части удовлетворяют условию наличия по меньшей мере 16 отсчетов. Для компонента цветности ISP не применяется.[0162] In FIG. 18 shows table 4 which relates the number of parts into which a block is divided to its size. For example, when the block size is 4×4, block splitting in the ISP coding mode is not performed. When the block size is 4x8 or 8x4, the block is split into two parts in the ISP coding mode. For all other block sizes greater than 4x8 or 8x4, the block is split into four parts. In FIG. 19 shows an example of splitting a block having a size of 4x8 or 8x4. In FIG. 20 shows another example of splitting a block having a size other than 4x8, 8x4, and 4x4, such as a block size greater than 4x8 and 8x4. In the example, all parts satisfy the condition of having at least 16 samples. For the chrominance component, ISP does not apply.

[0163] В некоторых примерах, для каждой из частей, декодер может энтропийно декодировать коэффициенты, отправляемые с кодера на декодер, затем декодер выполняет обратное квантование и обратное преобразование коэффициентов для генерации остатков (или остаточных данных) для части. Дополнительно, когда часть внутреннее предсказывается декодером, декодер может суммировать остатки с результатами внутреннего предсказания для получения реконструированных отсчетов части. Поэтому реконструированные отсчеты каждой части могут быть доступны для генерации предсказания следующей(их) части(ей), подлежащей(их) реконструкции. Вышеописанный процесс может повторяться для следующей(их) части(ей) и т.д. Все части совместно используют один и тот же режим внутреннего предсказания, в одном примере. В некоторых примерах, в ISP, каждую часть можно рассматривать как TU, поскольку преобразование и реконструкция осуществляются по отдельности для каждой части.[0163] In some examples, for each of the parts, the decoder may entropy decode the coefficients sent from the encoder to the decoder, then the decoder performs inverse quantization and inverse transformation of the coefficients to generate residuals (or residual data) for the part. Additionally, when the part is intra-predicted by the decoder, the decoder may add the residuals to the results of the intra prediction to obtain reconstructed samples of the part. Therefore, the reconstructed samples of each part may be available to generate a prediction of the next part(s) to be reconstructed. The above process may be repeated for the next part(s), and so on. All parts share the same intra prediction mode, in one example. In some examples, in the ISP, each part can be considered as a TU, since the transformation and reconstruction are performed separately for each part.

[0164] В некоторых примерах алгоритм ISP тестируется только с режимами внутреннего предсказания, которые являются частью списка МРМ. По этой причине, когда блок использует ISP, предполагается, что флаг МРМ равен единице. Помимо этого, когда ISP используется для определенного блока, список МРМ может модифицироваться для исключения режима DC и для отдания приоритета режимам горизонтального внутреннего предсказания для горизонтального разбиения (или горизонтального разделения) ISP и режимам вертикального внутреннего предсказания для вертикального разбиения (или вертикального разделения) в некоторых примерах.[0164] In some examples, the ISP algorithm is only tested with intra prediction modes that are part of the MPM list. For this reason, when a block uses an ISP, the MPM flag is assumed to be one. In addition, when an ISP is used for a certain block, the MPM list may be modified to exclude the DC mode and to give priority to horizontal intra prediction modes for horizontal partitioning (or horizontal partitioning) ISP and vertical intra prediction modes for vertical partitioning (or vertical partitioning) in some examples.

[0165] На фиг. 21A-21D показаны примеры разных YUV-форматов или форматов цветности. Каждый формат цветности может задавать разные сетки понижающей дискретизации для разных цветовых компонентов.[0165] In FIG. 21A-21D show examples of different YUV formats or chrominance formats. Each color format can specify different downsampling grids for different color components.

[0166] Под вторичным преобразованием можно понимать NSST, RST (или RT) и т.п. Под индексом вторичного преобразования можно понимать индекс NSST, индекс RST и т.п. В примере, индекс вторичного преобразования указывает вторичное преобразование (также именуемое кандидатом вторичного преобразования). Индекс вторичного преобразования может сигнализироваться на уровне CU. Например, индекс NSST или индекс RST сигнализируется на уровне CU для CU. Следует ли сигнализировать индекс вторичного преобразования, может зависеть от количества ненулевых коэффициентов CU. Таким образом, декодер может циклически перебирать все TU, включенные в CU, для определения количества ненулевых коэффициентов CU. В некоторых вариантах осуществления, процесс сравнительно сложен.[0166] Secondary transformation can be understood as NSST, RST (or RT), and the like. The secondary transformation index can be understood as an NSST index, an RST index, and the like. In the example, the secondary transform index indicates the secondary transform (also referred to as the secondary transform candidate). The secondary conversion index may be signaled at the CU level. For example, an NSST index or an RST index is signaled at the CU level for the CU. Whether the secondary transform index should be signaled may depend on the number of non-zero CU coefficients. Thus, the decoder may cycle through all the TUs included in the CU to determine the number of non-zero CU coefficients. In some embodiments, the process is relatively complex.

[0167] В определенных конструкциях вторичного преобразования (например, RST), когда единственное расщепляющееся дерево используется среди разных цветовых компонент в CU, включающих в себя, например, компоненту яркости и две компоненты цветности, можно сосчитать количество ненулевых коэффициентов в CU для определения, сигнализируется ли индекс вторичного преобразования. Однако, для блока яркости 4×N или N×4, соответствующий блок цветности имеет размер 2×N/2 или N/2×2 в формате YUV4:2:0. Таким образом, вторичное преобразование, например, RST не применяется для блока цветности, и количество ненулевых коэффициентов блока цветности не нужно подсчитывать.[0167] In certain secondary transform constructs (e.g., RST), when a single split tree is used among different color components in a CU, including, for example, a luma component and two chroma components, the number of non-zero coefficients in the CU can be counted to determine whether whether the index of the secondary conversion. However, for a 4xN or Nx4 luma block, the corresponding chrominance block has a size of 2xN/2 or N/2x2 in YUV4:2:0 format. Thus, a secondary transform such as RST is not applied to the chroma block, and the number of non-zero chroma block coefficients need not be counted.

[0168] В некоторых примерах, второе преобразование, например NSST или RST, не разрешено для ISP. Это может ограничивать полное преимущество вторичных преобразований в отношении эффективности кодирования.[0168] In some examples, the second transformation, such as NSST or RST, is not allowed for the ISP. This may limit the full benefit of the secondary transforms in terms of coding efficiency.

[0169] Описанные здесь варианты осуществления могут использоваться по отдельности или объединенными в любом порядке. Дополнительно, варианты осуществления могут быть реализованы схемой обработки (например, одним или более процессорами или одной или более интегральными схемами) в кодере, декодере и т.п.В одном примере, один или более процессоров могут выполнять программу, которая хранится на компьютерно-считываемом носитель. В некоторых примерах, блок может быть блоком предсказания, блоком кодирования, CU и т.п.[0169] The embodiments described herein may be used individually or combined in any order. Additionally, embodiments may be implemented by processing circuitry (e.g., one or more processors or one or more integrated circuits) in an encoder, decoder, or the like. In one example, one or more processors may execute a program that is stored on a computer-readable carrier. In some examples, the block may be a prediction block, a coding block, a CU, or the like.

[0170] В описании изобретения, варианты осуществления для DST-7 кандидата MTS можно применять к DST-4, и варианты осуществления для DCT-8 кандидата MTS можно применять к DCT-4. Дополнительно, в некоторых вариантах осуществления, ссылки на NSST также могут применяться к RST, которая является примером альтернативной конструкции несепарабельного вторичного преобразования.[0170] In the specification, embodiments for MTS candidate DST-7 may apply to DST-4, and embodiments for MTS candidate DCT-8 may apply to DCT-4. Additionally, in some embodiments, references to NSST may also apply to RST, which is an example of an alternative non-separable secondary transform design.

[0171] Элемент высокоуровневого синтаксиса (HLS, high-level syntax) может относиться к набору параметров видео (VPS, Video Parameter Set), набору параметров последовательности (SPS, Sequence Parameter Set), набору параметров изображения (PPS, Picture Parameter Set), заголовку слайса, заголовку таила, заголовку группы тайлов и т.п. Заголовок CTU может относиться к синтаксическому(им) элементу(ам), сигнализируемому(ым) для CTU, например, в качестве информации заголовка. В примере, размер CTU является максимальным размером CU. Размер TU может относиться к максимальной ширине и/или высоте TU или области TU.[0171] The high-level syntax element (HLS, high-level syntax) may refer to a video parameter set (VPS, Video Parameter Set), a sequence parameter set (SPS, Sequence Parameter Set), a picture parameter set (PPS, Picture Parameter Set), slice header, tile header, tile group header, etc. The CTU header may refer to the syntax element(s) signaled to the CTU, for example, as header information. In the example, the CTU size is the maximum CU size. The size of a TU may refer to the maximum width and/or height of a TU or TU area.

[0172] В целом, когда размер компоненты яркости (представленный отсчетами яркости) определенной единицы (например, TU, CU), известен, можно получить соответствующий размер компоненты цветности, который задается количеством отсчетов цветности. В примере используется YUV формат 4:2:0, и CU имеет размер CU 64×64 отсчетов яркости (или 64×64-L). Соответственно, CU имеет размер CU 32×32 отсчета цветности (или 32×32-С). Размер CU может именоваться 64×64-L, 32×32-С или 64×64-L/32×32-C. CU может включать в себя блок яркости и два блока цветности, где блок яркости имеет 64×64 отсчета яркости, и каждый из двух блоков цветности имеет 32×32 отсчета цветности. Описание можно адаптировать для TU. Для краткости, такое описание опущено.[0172] In general, when the luma component size (represented by luma samples) of a certain unit (eg, TU, CU) is known, a corresponding chrominance component size can be obtained, which is given by the number of chrominance samples. The example uses YUV format 4:2:0 and the CU has a CU size of 64x64 luminance samples (or 64x64-L). Accordingly, the CU has a CU size of 32x32 chroma samples (or 32x32-C). The CU size may be referred to as 64x64-L, 32x32-C, or 64x64-L/32x32-C. The CU may include a luminance block and two chrominance blocks, where the luma block has 64x64 luminance samples and each of the two chrominance blocks has 32x32 chroma samples. Description can be adapted for TU. For brevity, such description is omitted.

[0173] Размер TU может быть представлен с использованием отсчетов яркости в TU. Например, максимальный размер TU, составляющий М отсчетов, означает максимальный размер TU, составляющий М отсчетов яркости. Аналогично, размер CU может быть представлен с использованием отсчетов яркости в CU. Размер TU и размер CU можно представить с использованием отсчетов цветности или комбинации отсчетов яркости и цветности в других вариантах осуществления.[0173] The size of a TU may be represented using the luminance samples in the TU. For example, a maximum TU size of M samples means a maximum TU size of M luma samples. Likewise, the size of a CU can be represented using the luminance samples in the CU. The TU size and CU size may be represented using chrominance samples or a combination of luma and chrominance samples in other embodiments.

[0174] Размер может относиться к ширине, высоте, и/или площади. Например, максимальный размер TU может относиться к ширине, высоте и/или площади максимальной TU. В целом, TU, CU и т.п. может иметь любую подходящую форму, включая прямоугольную форму, квадратную форму, L-образную форму или любую подходящую форму. В случае неправильной формы блока, например, L-образной формы, размер блока может указывать площадь блока.[0174] Size may refer to width, height, and/or area. For example, the maximum TU size may refer to the width, height, and/or area of the maximum TU. In general, TU, CU, etc. may be any suitable shape, including rectangular, square, L-shaped, or any suitable shape. In the case of an irregularly shaped block, such as an L-shape, the block size may indicate the area of the block.

[0175] В некоторых вариантах осуществления, максимальный размер TU (также именуемый максимальным размером TU) может сигнализироваться в битовом потоке кодированного видео, например в HLS (например, SPS и PPS). Максимальный размер TU может выражаться в отсчетах яркости или отсчетах цветности.[0175] In some embodiments, a maximum TU size (also referred to as a maximum TU size) may be signaled in an encoded video bitstream, such as in HLS (eg, SPS and PPS). The maximum TU size may be expressed in terms of luma samples or chrominance samples.

[0176] В некоторых вариантах осуществления, максимальный размер TU может храниться в кодере и/или декодере, таким образом, максимальный размер TU не сигнализируется. В одном примере, максимальный размер TU может храниться в определениях профиля и/или уровня. Максимальный размер TU может храниться в виде числа отсчетов яркости или цветности.[0176] In some embodiments, the maximum TU size may be stored in the encoder and/or decoder, so the maximum TU size is not signaled. In one example, the maximum TU size may be stored in profile and/or layer definitions. The maximum TU size may be stored as a number of luminance or chrominance samples.

[0177] Согласно аспектам изобретения, разрешено ли вторичное преобразование для CU, можно определять на основании размера CU. В примере, разрешено ли вторичное преобразование для CU, можно определять на основании размера CU и порога размера CU. Когда размер CU меньше или равен порогу размера CU, определяется, что вторичное преобразование разрешено, и когда размер CU больше порога размера CU, определяется, что вторичное преобразование не разрешено. В примере, когда определяется, что вторичное преобразование не разрешено, индекс вторичного преобразования не сигнализируется. Таким образом, когда декодер определяет, что вторичное преобразование не разрешено, декодер также может определить, что индекс вторичного преобразования не сигнализируется. В примере, размер CU может относиться к ширине и/или высоте CU, например, может составлять 64 отсчета. В примере, размер CU может относиться к площади CU, например, 64×64 отсчета.[0177] According to aspects of the invention, whether a secondary transform is allowed for a CU may be determined based on the size of the CU. In an example, whether a secondary transform is allowed for a CU may be determined based on the CU size and the CU size threshold. When the CU size is less than or equal to the CU size threshold, it is determined that the secondary transformation is allowed, and when the CU size is greater than the CU size threshold, it is determined that the secondary transformation is not allowed. In the example, when it is determined that the secondary transform is not allowed, the secondary transform index is not signaled. Thus, when the decoder determines that the secondary transform is not allowed, the decoder may also determine that the secondary transform index is not signaled. In an example, the CU size may refer to the width and/or height of the CU, for example, may be 64 counts. In an example, the CU size may refer to the area of the CU, eg 64×64 counts.

[0178] В примере, порог размера CU (например, порог ширины CU, порог высоты CU или порог площади CU) ограничивается максимальным размером TU в CU. Максимальный размер TU может сигнализироваться в HLS. Максимальный размер TU также может быть заранее задан и храниться в декодере.[0178] In an example, a CU size threshold (eg, CU width threshold, CU height threshold, or CU area threshold) is constrained by the maximum TU size in the CU. The maximum TU size may be signaled in the HLS. The maximum TU size may also be predetermined and stored in the decoder.

[0179] Как описано выше, в некоторых примерах, декодер может циклически перебирать TU в CU для определения количества ненулевых коэффициентов CU и затем определять, сигнализируется ли индекс вторичного преобразования. Согласно аспектам изобретения, вместо подсчета количества ненулевых коэффициентов CU, можно определять, сигнализируется ли индекс вторичного преобразования, на основании последней позиции ненулевых коэффициентов преобразования (или позиции последних ненулевых коэффициентов) первого СВ в CU. Первым СВ может быть любой подходящий блок, например, блок яркости, блок цветности и т.п., находящийся в CU. Индекс вторичного преобразования может указывать выбранное вторичное преобразование для второго СВ в CU.[0179] As described above, in some examples, the decoder may cycle through the TUs in the CU to determine the number of non-zero CU coefficients and then determine whether the secondary transform index is signaled. According to aspects of the invention, instead of counting the number of non-zero CU coefficients, it is possible to determine whether a secondary transform index is signaled based on the last position of the non-zero transform coefficients (or the position of the last non-zero coefficients) of the first CB in the CU. The first CB may be any suitable block, such as a luma block, a chrominance block, or the like, residing in the CU. The secondary transform index may indicate the selected secondary transform for the second CB in the CU.

[0180] Согласно аспектам изобретения, можно определять, осуществлять ли вторичное преобразование на втором СВ в CU, на основании определения того, что сигнализирован индекс вторичного преобразования. Далее, когда определено, что вторичное преобразование подлежит осуществлению, отсчет во втором СВ может реконструироваться после осуществления на втором СВ вторичного преобразования, указанного индексом вторичного преобразования. Альтернативно, когда определено, что вторичное преобразование не подлежит осуществлению, отсчет во втором СВ может реконструироваться без осуществления вторичного преобразования на втором СВ. Вторым СВ может быть любой подходящий блок, например, блок яркости, блок цветности и т.п., находящийся в CU. В примере, первый СВ идентичен второму СВ. В другом примере, первый СВ отличается от второго СВ.[0180] According to aspects of the invention, it is possible to determine whether to perform a secondary transform on the second CB in the CU based on a determination that a secondary transform index is signaled. Further, when it is determined that the secondary conversion is to be performed, the second CB may be reconstructed after the secondary conversion indicated by the secondary conversion index is performed on the second CB. Alternatively, when it is determined that the secondary conversion is not to be performed, the sample at the second CB may be reconstructed without performing the secondary conversion at the second CB. The second CB may be any suitable block, such as a luminance block, a chrominance block, or the like, residing in the CU. In the example, the first CB is identical to the second CB. In another example, the first CB is different from the second CB.

[0181] В примере, CU включает в себя блок яркости. Первым СВ является блоком яркости. Последняя позиция является позицией последнего ненулевого коэффициента яркости для блока яркости. Соответственно, определение, сигнализируется ли индекс вторичного преобразования, производится на основании последней позиции яркости. Второй СВ также является блоком яркости или первым СВ.[0181] In an example, the CU includes a luma unit. The first CB is the luminance block. The last position is the position of the last non-zero luminance factor for the luminance block. Accordingly, it is determined whether the secondary transform index is signaled based on the last luma position. The second CB is also a luminance block or the first CB.

[0182] В некоторых вариантах осуществления, дополнительная информация может быть включена для определения, сигнализируется ли индекс вторичного преобразования, как описано ниже.[0182] In some embodiments, additional information may be included to determine if a secondary transform index is being signaled, as described below.

[0183] В примере, CU включает в себя блок яркости и блок цветности. Первый СВ является блоком яркости. Последняя позиция является позицией последнего ненулевого коэффициента яркости для блока яркости. Дополнительная информация может включать в себя позицию последнего ненулевого коэффициента цветности для блока цветности. Соответственно, определение, сигнализируется ли индекс вторичного преобразования, производится на основании позиции последнего ненулевого коэффициента яркости и позиции последнего ненулевого коэффициента цветности для блока цветности. Второй СВ может быть одним из блока яркости и блока цветности.[0183] In an example, the CU includes a luminance block and a chrominance block. The first CB is the luminance block. The last position is the position of the last non-zero luminance factor for the luminance block. The side information may include the position of the last non-zero chrominance factor for the chrominance block. Accordingly, the determination whether the secondary transform index is signaled is made based on the position of the last non-zero luminance coefficient and the position of the last non-zero chrominance coefficient for the chrominance block. The second CB may be one of a luminance block and a chrominance block.

[0184] В примере, CU включает в себя блок яркости и два блока цветности (например, блок цветности I и блок цветности II). Первый СВ является блоком яркости. Последняя позиция является позицией последнего ненулевого коэффициента яркости для блока яркости. Дополнительная информация может включать в себя позицию I последнего ненулевого коэффициента цветности для блока цветности I и позицию II последнего ненулевого коэффициента цветности для блока цветности П. Соответственно, сигнализируется ли индекс вторичного преобразования, может определяться на основании позиции последнего ненулевого коэффициента яркости, позиции I последнего ненулевого коэффициента цветности ненулевых коэффициентов преобразования для блока цветности I и позиции II последнего ненулевого коэффициента цветности ненулевых коэффициентов преобразования для блока цветности II. Второй СВ может быть одним из блока яркости, блока цветности I и блока цветности II.[0184] In an example, the CU includes a luminance block and two chrominance blocks (eg, a chroma I block and a chroma II block). The first CB is the luminance block. The last position is the position of the last non-zero luma factor for the luma block. The side information may include position I of the last non-zero chrominance factor for chrominance block I and position II of the last non-zero chrominance factor for chrominance block P. Accordingly, whether a secondary transform index is signaled may be determined based on the position of the last non-zero luminance factor, the position I of the last non-zero the chrominance coefficient of non-zero transform coefficients for chrominance block I and position II of the last non-zero chrominance coefficient of non-zero transform coefficients for chrominance block II. The second CB may be one of a luminance block, a chrominance block I, and a chrominance block II.

[0185] Как описано выше, определять, сигнализируется ли индекс вторичного преобразования, можно на основании позиции последнего ненулевого коэффициента первого СВ из CU. Позиция последнего ненулевого коэффициента может включать в себя горизонтальную компоненту (например, last_pos_x) и вертикальную компоненту (например, last_pos у), и, таким образом определять, сигнализируется ли индекс вторичного преобразования, можно на основании горизонтальной компоненты и/или вертикальной компоненты. Горизонтальная компонента и вертикальная компонента может быть целым числом, равным 0 или превышающим 0. Вертикальная компонента может быть целым числом, равным 0 или превышающим 0.[0185] As described above, it is possible to determine whether a secondary transform index is signaled based on the position of the last non-zero coefficient of the first CB from the CU. The position of the last non-zero coefficient may include a horizontal component (eg, last_pos_x) and a vertical component (eg, last_pos y), and thus it can be determined whether a secondary transform index is signaled based on the horizontal component and/or the vertical component. The horizontal component and the vertical component can be an integer equal to or greater than 0. The vertical component can be an integer equal to or greater than 0.

[0186] Согласно варианту осуществления, горизонтальную компоненту можно сравнивать с первым порогом и/или вертикальную компоненту можно сравнивать со вторым порогом. Первый порог может быть идентичен второму порогу. Альтернативно, первый порог может отличаться от второго порога. Первый порог и/или второй порог может быть положительным целым числом, например, 1, 2, 3 и т.п.[0186] According to an embodiment, the horizontal component can be compared to a first threshold and/or the vertical component can be compared to a second threshold. The first threshold may be identical to the second threshold. Alternatively, the first threshold may be different from the second threshold. The first threshold and/or the second threshold may be a positive integer such as 1, 2, 3, and the like.

[0187] В примере, может определяться, меньше ли горизонтальная компонента первого порога, и меньше ли вертикальная компонента второго порога. Когда определено, что горизонтальная компонента меньше первого порога, и вертикальная компонента меньше второго порога, может определяться, что индекс вторичного преобразования не сигнализируется.[0187] In an example, it may be determined whether the horizontal component is less than the first threshold, and whether the vertical component is less than the second threshold. When it is determined that the horizontal component is less than the first threshold and the vertical component is less than the second threshold, it may be determined that the secondary transform index is not signalled.

[0188] В примере может определяться, больше или равна ли горизонтальная компонента первому порогу. Дополнительно может определяться, больше или равна ли вертикальная компонента второму порогу. Когда определено, что горизонтальная компонента больше или равна первому порогу, и вертикальная компонента больше или равна второму порогу, может определяться, что индекс вторичного преобразования сигнализируется.[0188] In the example, it may be determined whether the horizontal component is greater than or equal to the first threshold. Additionally, it may be determined whether the vertical component is greater than or equal to the second threshold. When it is determined that the horizontal component is greater than or equal to the first threshold and the vertical component is greater than or equal to the second threshold, it may be determined that the secondary transform index is signaled.

[0189] Согласно варианту осуществления, можно определять, меньше ли сумма горизонтальной компоненты и вертикальной компоненты последней позиции третьего порога. Когда определено, что сумма меньше третьего порога, может определяться, что индекс вторичного преобразования не сигнализируется. Третий порог может быть положительным целым числом, например, 1, 2, 3 и т.п. Когда определено, что сумма больше или равна третьему порогу, может определяться, что индекс вторичного преобразования сигнализируется.[0189] According to an embodiment, it can be determined whether the sum of the horizontal component and the vertical component of the last position of the third threshold is smaller. When it is determined that the sum is less than the third threshold, it may be determined that the secondary transform index is not signaled. The third threshold may be a positive integer such as 1, 2, 3, or the like. When it is determined that the sum is greater than or equal to the third threshold, it may be determined that the secondary transform index is signaled.

[0190] Согласно варианту осуществления, можно определять, меньше ли четвертого порога как минимум одна из горизонтальной компоненты и вертикальной компоненты. Когда определено, что как минимум одна из горизонтальной компоненты и вертикальной компоненты меньше четвертого порога, определяется, что индекс вторичного преобразования не сигнализируется. Четвертый порог может быть положительным целым числом, например, 1, 2, 3 и т.п.[0190] According to an embodiment, it can be determined whether at least one of the horizontal component and the vertical component is less than the fourth threshold. When it is determined that at least one of the horizontal component and the vertical component is less than the fourth threshold, it is determined that the secondary transform index is not signaled. The fourth threshold may be a positive integer such as 1, 2, 3, or the like.

[0191] Согласно варианту осуществления, можно определять, меньше ли максимум одна из горизонтальной компоненты и вертикальной компоненты пятого порога. Когда определено, что максимум одна меньше пятого порога, определяется, что индекс вторичного преобразования не сигнализируется. Пятый порог может быть положительным целым числом, например, 1, 2, 3 и т.п. Четвертый порог может быть идентичен пятому порогу. Альтернативно, четвертый порог может отличаться от пятого порога.[0191] According to an embodiment, it can be determined whether at most one of the horizontal component and the vertical component is less than the fifth threshold. When it is determined that at most one is less than the fifth threshold, it is determined that the secondary transform index is not signaled. The fifth threshold may be a positive integer such as 1, 2, 3, or the like. The fourth threshold may be identical to the fifth threshold. Alternatively, the fourth threshold may be different from the fifth threshold.

[0192] Согласно варианту осуществления, первый СВ является блоком яркости в CU. Дополнительно, CU включает в себя блок цветности. Однако, сигнализируется ли индекс вторичного преобразования, определяется на основании только позиции последнего ненулевого коэффициента яркости блока яркости CU. Поэтому позиция последнего ненулевого коэффициента цветности для блока цветности не рассматривается при определении, сигнализируется ли индекс вторичного преобразования.[0192] According to an embodiment, the first CB is a luminance block in a CU. Additionally, the CU includes a chrominance block. However, whether the secondary transform index is signaled is determined based only on the position of the last non-zero luminance coefficient of the CU luminance block. Therefore, the position of the last non-zero chrominance factor for a chrominance block is not considered when determining whether a secondary transform index is signaled.

[0193] Согласно варианту осуществления, CU включает в себя блок яркости и блок цветности, как описано выше. Определение, сигнализируется ли индекс вторичного преобразования, производится на основании позиции последнего ненулевого коэффициента яркости для блока яркости и позиции последнего ненулевого коэффициента цветности для блока цветности. Аналогично, позиция последнего ненулевого коэффициента яркости может включать в себя горизонтальную компоненту яркости и вертикальную компоненту яркости, и позиция последнего ненулевого коэффициента цветности может включать в себя горизонтальную компоненту цветности и вертикальную компоненту цветности. Таким образом, можно определять, сигнализируется ли индекс вторичного преобразования, на основании горизонтальной компоненты яркости, вертикальной компоненты яркости, горизонтальной компоненты цветности и/или вертикальной компоненты цветности.[0193] According to an embodiment, the CU includes a luminance block and a chrominance block as described above. Whether a secondary transform index is signaled is determined based on the position of the last non-zero luminance factor for the luminance block and the position of the last non-zero chrominance factor for the chrominance block. Similarly, the position of the last non-zero luminance factor may include a horizontal luminance component and a vertical luminance component, and the position of the last non-zero chrominance factor may include a horizontal chroma component and a vertical chroma component. Thus, it can be determined whether the secondary transform index is signaled based on the horizontal luma component, the vertical luma component, the horizontal chrominance component, and/or the vertical chrominance component.

[0194] Согласно варианту осуществления, одну или более из соответствующих горизонтальной компоненты и вертикальной компоненты каждой из позиций последних ненулевых коэффициентов яркости и цветности можно сравнивать с соответствующим порогом, например, 1, 2, 3 и т.п. В примере может определяться, меньше ли соответствующего порога одна или более из соответствующих горизонтальной компоненты и вертикальной компоненты каждой из позиций последних ненулевых коэффициентов яркости и цветности. Когда одна или более из соответствующих горизонтальной компоненты и вертикальной компоненты каждой из позиций последних ненулевых коэффициентов яркости и цветности меньше соответствующего порога, может определяться, что индекс вторичного преобразования не сигнализируется.[0194] According to an embodiment, one or more of the respective horizontal component and vertical component of each of the positions of the last non-zero luminance and chrominance coefficients can be compared with an appropriate threshold, such as 1, 2, 3, or the like. The example may determine if one or more of the respective horizontal component and vertical component of each of the positions of the last non-zero luminance and chrominance coefficients is less than a corresponding threshold. When one or more of the respective horizontal component and the vertical component of each of the positions of the last non-zero luminance and chroma coefficients is less than the corresponding threshold, it may be determined that the secondary transform index is not signaled.

[0195] Согласно варианту осуществления, горизонтальная сумма получается суммированием горизонтальной компоненты яркости и горизонтальной компоненты цветности, и вертикальная сумма получается суммированием вертикальной компоненты яркости и вертикальной компоненты цветности. Может определять меньше ли соответствующего порога каждая из горизонтальной суммы и вертикальной суммы. Когда каждая из горизонтальной суммы и вертикальной суммы меньше соответствующего порога, может определяться, что индекс вторичного преобразования не сигнализируется.[0195] According to an embodiment, the horizontal sum is obtained by summing the horizontal luma component and the horizontal chrominance component, and the vertical sum is obtained by summing the vertical luminance component and the vertical chrominance component. Can determine whether each of the horizontal sum and vertical sum is less than the corresponding threshold. When each of the horizontal sum and the vertical sum is less than the corresponding threshold, it may be determined that the secondary transform index is not signaled.

[0196] В примере, определяется первая сумма горизонтальной компоненты яркости и вертикальной компоненты яркости, и определяется вторая сумма горизонтальной компоненты цветности и вертикальной компоненты цветности. Может определяться, меньше ли соответствующего порога каждая из первой суммы и второй суммы. Когда определено, что каждая из первой суммы и второй суммы меньше соответствующего порога, может определяться, что индекс вторичного преобразования не сигнализируется.[0196] In the example, the first sum of the horizontal luminance component and the vertical luminance component is determined, and the second sum of the horizontal chrominance component and the vertical chrominance component is determined. It may be determined whether each of the first sum and the second sum is less than a corresponding threshold. When it is determined that each of the first sum and the second sum is less than the corresponding threshold, it may be determined that the secondary transform index is not signaled.

[0197] Согласно варианту осуществления, полная сумма получается суммированием первой суммы и второй суммы, когда определено, что полная сумма меньше порога, может определяться, что индекс вторичного преобразования не сигнализируется.[0197] According to an embodiment, the total sum is obtained by summing the first sum and the second sum, when it is determined that the total sum is less than a threshold, it may be determined that the secondary transform index is not signaled.

[0198] Согласно варианту осуществления, определяется первый минимум горизонтальной компоненты яркости и вертикальной компоненты яркости, и определяется второй минимум горизонтальной компоненты цветности и вертикальной компоненты цветности. Можно определять меньше ли каждый из первого минимума и второго минимума соответствующего порога. Когда определено, что каждый из первого минимума и второго минимума меньше соответствующего порога, может определяться, что индекс вторичного преобразования не сигнализируется. Вышеприведенное описание можно адаптировать для использования первого максимума горизонтальной компоненты яркости и вертикальной компоненты яркости и второго максимума горизонтальной компоненты цветности и вертикальной компоненты цветности для определения, сигнализируется ли индекс вторичного преобразования.[0198] According to an embodiment, a first minimum of the horizontal luminance component and a vertical luminance component is determined, and a second minimum of the horizontal chrominance component and the vertical chrominance component is determined. It is possible to determine whether each of the first minimum and second minimum is less than the corresponding threshold. When it is determined that each of the first minimum and second minimum is less than the corresponding threshold, it may be determined that the secondary transform index is not signaled. The above description can be adapted to use the first maximum of the horizontal luminance component and the vertical luminance component and the second maximum of the horizontal chrominance component and the vertical chrominance component to determine whether a secondary transform index is signaled.

[0199] Аналогично, для определения, сигнализируется ли индекс вторичного преобразования, может использоваться минимум горизонтальной суммы и вертикальной суммы. Для определения, сигнализируется ли индекс вторичного преобразования, может использоваться максимум горизонтальной суммы и вертикальной суммы.[0199] Likewise, the minimum of the horizontal sum and the vertical sum can be used to determine whether a secondary transform index is being signaled. The maximum of the horizontal sum and the vertical sum can be used to determine whether a secondary transform index is being signaled.

[0200] Согласно аспектам изобретения, при определении количества ненулевых коэффициентов преобразования для CU, ненулевые коэффициенты преобразования в СВ из CU можно подсчитать, когда размер СВ (также именуемый размером СВ) больше или равен порогу размера, например 4. В примере, когда размер СВ меньше порога размера, ненулевые коэффициенты преобразования в СВ не подсчитываются, т.е. не включают в количество ненулевых коэффициентов преобразования для CU. Порог размера может заранее задаваться и храниться в декодере. Порог размера может сигнализироваться явно, например, из кодера в декодер. Дополнительно, когда количество ненулевых коэффициентов преобразования в CU меньше порогового количества, можно определять, что индекс вторичного преобразования не сигнализируется.[0200] According to aspects of the invention, when determining the number of non-zero transform coefficients for a CU, non-zero transform coefficients in the CB from the CU can be counted when the size of the CB (also referred to as the size of the CB) is greater than or equal to a size threshold, such as 4. In an example, when the size of the CB less than the size threshold, non-zero conversion coefficients in the CB are not calculated, i.e. are not included in the number of non-zero transform coefficients for the CU. The size threshold may be predetermined and stored in the decoder. The size threshold may be signaled explicitly, for example, from an encoder to a decoder. Further, when the number of non-zero transform coefficients in the CU is less than a threshold number, it can be determined that the secondary transform index is not signaled.

[0201] В примере, формат цвета для CU представляет собой YUV 4:2:0. CU включает в себя блок яркости и два блока цветности, которые совмещены с блоком яркости. Порог размера равен 4. Когда блок яркости имеет размер 4×N или N×4, где N может означать ширину или высоту блока яркости и может быть больше или равно 4, два блока цветности имеют размер 2×N/2 или N/2×2. В примере, N - положительное четное число. Количество ненулевых коэффициентов преобразования для CU определяется только из блока яркости без учета двух блоков цветности. Ширина или высота каждого из двух блоков цветности меньше порога размера. В другом примере, порог размера равен 4×4, и размер СВ 2×N/2 или N/2×2 также меньше порога размера, где N могут быть положительным четным числом. Вторичное преобразование не осуществляется на двух блоках цветности.[0201] In the example, the color format for the CU is YUV 4:2:0. The CU includes a luminance block and two chrominance blocks that are aligned with the luminance block. The size threshold is 4. When a luminance block has a size of 4×N or N×4, where N may mean the width or height of the luma block and may be greater than or equal to 4, the two chrominance blocks have a size of 2×N/2 or N/2× 2. In the example, N is a positive even number. The number of non-zero transform coefficients for the CU is determined from the luminance block only, without considering the two chrominance blocks. The width or height of each of the two chroma blocks is less than the size threshold. In another example, the size threshold is 4x4 and the size of the CB 2xN/2 or N/2x2 is also less than the size threshold, where N can be a positive even number. Secondary conversion is not performed on two chrominance blocks.

[0202] В примере, формат цвета для CU представляет собой YUV 4:2:2. CU включает в себя блок яркости и два блока цветности, которые совмещены с блоком яркости. Порог размера равен 4. Когда блок яркости имеет размер 4×N, где N больше или равно 4, два блока цветности имеют размер 2×N. Количество ненулевых коэффициентов преобразования для CU определяется только из блока яркости без учета двух блоков цветности. Ширина (например, 2) каждого из двух блоков цветности меньше порога размера. Вторичное преобразование не осуществляется на двух блоках цветности.[0202] In the example, the color format for the CU is YUV 4:2:2. The CU includes a luminance block and two chrominance blocks that are aligned with the luminance block. The size threshold is 4. When the luminance block has a size of 4×N, where N is greater than or equal to 4, the two chrominance blocks have a size of 2×N. The number of non-zero transform coefficients for the CU is determined from the luminance block only, without considering the two chrominance blocks. The width (eg, 2) of each of the two chrominance blocks is less than a size threshold. Secondary conversion is not performed on two chrominance blocks.

[0203] Вторичное преобразование может осуществляться на первом блоке коэффициентов (например, ТВ) для получения первого подблока 4×2 (или 2×4), который включает в себя по меньшей мере один ненулевой коэффициент. Например, RST применяется на первом ТВ 4×4 (например, первом блоке коэффициентов) для получения второго ТВ, который включает в себя первый подблок и второй подблок. Первый подблок 4×2 (или 2×4) включает в себя по меньшей мере один ненулевой коэффициент. Коэффициенты во втором подблоке 4×2 (или 2×4) заданы равными 0. Таким образом, сканирование подблока 4×2 (или 2×4) для первого подблока (т.е. порядок сканирования коэффициентов 4×2 (или 2×4)) применяется для энтропийного кодирования второго ТВ. В примере, порядок сканирования коэффициентов 4×2 (или 2×4) идентичен порядку сканирования, который применяется для энтропийного кодирования блока цветности 4×2 (или 2×4).[0203] A secondary transform may be performed on a first block of coefficients (eg, TV) to obtain a first 4x2 (or 2x4) subblock that includes at least one non-zero coefficient. For example, RST is applied on a first 4×4 TV (eg, the first block of coefficients) to obtain a second TV that includes a first subblock and a second subblock. The first 4x2 (or 2x4) subblock includes at least one non-zero coefficient. The coefficients in the second 4x2 (or 2x4) subblock are set to 0. Thus, the 4x2 (or 2x4) subblock scan for the first subblock (i.e., the scan order of the 4x2 (or 2x4) coefficients )) is used for entropy coding of the second TV. In the example, the scan order of the 4x2 (or 2x4) coefficients is identical to the scan order that is used for entropy coding of a 4x2 (or 2x4) chrominance block.

[0204] Аналогично, вторичное преобразование может осуществляться на первом блоке коэффициентов (например, ТВ) для получения первого подблока 8×4 (или 4×8), который включает в себя по меньшей мере один ненулевой коэффициент, например, когда первый блок коэффициентов больше 8×4 (или 4×8). Например, RST применяется на первом ТВ 8×8 (например, первом блоке коэффициентов) для получения второго ТВ, который включает в себя первый подблок и второй подблок. Первый подблок 8×4 (или 4×8) включает в себя по меньшей мере один ненулевой коэффициент. Коэффициенты во втором подблоке 8×4 (или 4×8) заданы равными 0. Таким образом, сканирование блока 8×4 (или 4×8) для первого подблока (т.е. порядок сканирования коэффициентов 8×4 (или 4×8)) применяется для энтропийного кодирования второго ТВ. В примере, порядок сканирования коэффициентов 8×4 (или 4×8) идентичен порядку сканирования, который применяется для энтропийного кодирования блока цветности 8×4 (или 4×8).[0204] Similarly, a secondary transform may be performed on a first coefficient block (e.g., TV) to obtain a first 8x4 (or 4x8) subblock that includes at least one non-zero coefficient, for example, when the first coefficient block is greater than 8x4 (or 4x8). For example, RST is applied on the first 8x8 TV (eg, the first block of coefficients) to obtain a second TV that includes the first subblock and the second subblock. The first 8x4 (or 4x8) subblock includes at least one non-zero coefficient. The coefficients in the second 8x4 (or 4x8) subblock are set to 0. Thus, the 8x4 (or 4x8) block scan for the first subblock (i.e., the scan order of the 8x4 (or 4x8) coefficients )) is used for entropy coding of the second TV. In the example, the scan order of the 8x4 (or 4x8) coefficients is identical to the scan order that is used for entropy coding of the 8x4 (or 4x8) chrominance block.

[0205] На фиг. 22 показана блок-схема операций процесса (2200) согласно варианту осуществления изобретения. Процесс (2200) может использоваться в реконструкции блока, кодированного в интра-режиме, для генерации блока предсказания для реконструируемого блока. В некоторых примерах, процесс (2200) может использоваться в реконструкции блока, кодированного в интер-режиме. В различных вариантах осуществления, процесс (2200) выполняется схемой обработки, например, схемой обработки в оконечных устройствах (310), (320), (330) и (340), схемой обработки, которая осуществляет функции видеокодера (403), схемой обработки, которая осуществляет функции видеодекодера (410), схемой обработки, которая осуществляет функции видеодекодера (510), схемой обработки, которая осуществляет функции видеокодера (603), и т.п. В некоторых вариантах осуществления, процесс (2200) реализован в программных инструкциях, таким образом, когда схема обработки выполняет программные инструкции, схема обработки осуществляет процесс (2200). Процесс начинается на этапе (S2201) и переходит к этапу (S2210).[0205] In FIG. 22 shows a flowchart of the operations of a process (2200) according to an embodiment of the invention. Process (2200) may be used in reconstructing an intra-coded block to generate a prediction block for the reconstructed block. In some examples, process (2200) may be used in reconstructing an inter-coded block. In various embodiments, process (2200) is performed by a processing circuit, e.g. that performs the functions of a video decoder (410), a processing circuit that performs the functions of a video decoder (510), a processing circuit that performs the functions of a video encoder (603), and the like. In some embodiments, the process (2200) is implemented in program instructions, such that when the processing circuitry executes the program instructions, the processing circuitry executes the process (2200). The process starts at step (S2201) and proceeds to step (S2210).

[0206] На этапе (S2210), кодированная информация CU может декодироваться из битового потока кодированного видео. Кодированная информация может указывать последнюю позицию ненулевых коэффициентов преобразования (или позицию последнего ненулевого коэффициента) первого СВ из CU. В примере, CU может включать в себя блок яркости и блок цветности. Первый СВ может быть блоком яркости или блоком цветности.[0206] In step (S2210), the encoded CU information may be decoded from the encoded video bitstream. The encoded information may indicate the last position of the non-zero transform coefficients (or the position of the last non-zero coefficient) of the first CB from the CU. In an example, the CU may include a luminance block and a chrominance block. The first CB may be a luminance block or a chrominance block.

[0207] На этапе (S2220), может определяться, сигнализируется ли индекс вторичного преобразования в кодированной информации, на основании позиции последнего ненулевого коэффициента, как описано выше. Индекс вторичного преобразования может указывать вторичное преобразование, подлежащее осуществлению на втором СВ в CU. Второй СВ может быть блоком яркости или блоком цветности.[0207] In step (S2220), it may be determined whether a secondary transform index is signaled in the encoded information based on the position of the last non-zero coefficient as described above. The secondary conversion index may indicate a secondary conversion to be performed on the second CB in the CU. The second CB may be a luminance block or a chrominance block.

[0208] В примере, позиция последнего ненулевого коэффициента может включать в себя горизонтальную компоненту и вертикальную компоненту, и сигнализируется ли индекс вторичного преобразования в кодированной информации, может определяться на основании горизонтальной компоненты и/или вертикальной компоненту. Как описано выше, дополнительная информация может использоваться для определения, сигнализируется ли индекс вторичного преобразования, и этап (S2220) может быть надлежащим образом адаптирован для включения дополнительной информации. В примере, когда определено, что индекс вторичного преобразования сигнализируется, процесс (2200) переходит к этапу (S2230). В противном случае, процесс (2200) переходит к этапу (S2250)[0208] In an example, the position of the last non-zero coefficient may include a horizontal component and a vertical component, and whether a secondary transform index in the encoded information is signaled may be determined based on the horizontal component and/or the vertical component. As described above, the side information can be used to determine whether the secondary transform index is signaled, and step (S2220) can be appropriately adapted to include the side information. In the example, when it is determined that the secondary transform index is signaled, the process (2200) proceeds to step (S2230). Otherwise, the process (2200) proceeds to step (S2250)

[0209] На этапе (S2230), осуществлять ли вторичное преобразование на втором СВ, может определяться на основании того, определено ли, что индекс вторичного преобразования сигнализируется в кодированной информации. В некоторых примерах, когда определено, что индекс вторичного преобразования сигнализируется, вторичное преобразование определяется подлежащим осуществлению. Когда определено, что вторичное преобразование подлежит осуществлению, процесс (2200) переходит к этапу (S2240). В противном случае, процесс (2200) переходит к этапу (S2250).[0209] In step (S2230), whether to perform secondary transform on the second CB may be determined based on whether it is determined that the secondary transform index is signaled in the encoded information. In some examples, when it is determined that a secondary transform index is signaled, the secondary transform is determined to be performed. When it is determined that the secondary conversion is to be performed, the process (2200) proceeds to step (S2240). Otherwise, the process (2200) proceeds to step (S2250).

[0210] На этапе (S2240), вторичное преобразование, указанное индексом вторичного преобразования, осуществляется на втором СВ. Вторичное преобразование может быть NSST. Вторичное преобразование может быть RST, включающее в себя способ обнуления. Например, когда второй СВ равен 8×8, RST применяется на втором СВ для получения преобразованного блока, который включает в себя первый подблок 8×4 и второй подблок 8×4. Первый подблок включает в себя по меньшей мере один ненулевой коэффициент. Коэффициенты во втором подблоке не вычисляются и задаются равными 0.[0210] In step (S2240), the secondary conversion indicated by the secondary conversion index is performed on the second CB. The secondary transform may be NSST. The secondary transformation may be an RST including a zeroing method. For example, when the second CB is 8x8, RST is applied on the second CB to obtain a transformed block that includes a first 8x4 subblock and a second 8x4 subblock. The first subblock includes at least one non-zero coefficient. The coefficients in the second subblock are not calculated and are set to 0.

[0211] На этапе (S2250), отсчет во втором СВ может реконструироваться. Затем процесс (2200) переходит к этапу (S2299) и заканчивается.[0211] In step (S2250), the count in the second CB may be reconstructed. Then, the process (2200) proceeds to step (S2299) and ends.

[0212] Процесс (2200) может быть надлежащим образом адаптирован, как описано выше. Например, один или более этапов можно модифицировать, исключать или объединять. В примере, этапы (S2220) и (S2230) объединены. Также можно добавлять дополнительный(е) этап(ы). Порядок, в котором выполняется процесс (2200), также можно модифицировать.[0212] Process (2200) may be appropriately adapted as described above. For example, one or more of the steps may be modified, omitted, or combined. In the example, steps (S2220) and (S2230) are combined. Additional step(s) may also be added. The order in which the process (2200) is executed can also be modified.

[0213] На фиг. 23 показана блок-схема операций процесса (2300) согласно варианту осуществления изобретения. Процесс (2300) может использоваться в реконструкции блока, кодированного в интра-режиме, для генерации блока предсказания для реконструируемого блока. В некоторых примерах, процесс (2300) может использоваться в реконструкции блока, кодированного в интер-режиме. В различных вариантах осуществления, процесс (2300) выполняется схемой обработки, например, схемой обработки в оконечных устройствах (310), (320), (330) и (340), схемой обработки, которая осуществляет функции видеокодера (403), схемой обработки, которая осуществляет функции видеодекодера (410), схемой обработки, которая осуществляет функции видеодекодера (510), схемой обработки, которая осуществляет функции видеокодера (603), и т.п. В некоторых вариантах осуществления, процесс (2300) реализован в программных инструкциях, таким образом, когда схема обработки выполняет программные инструкции, схема обработки осуществляет процесс (2300). Процесс начинается на этапе (S2301) и переходит к этапу (S2310).[0213] FIG. 23 shows a flowchart of the operations of a process (2300) according to an embodiment of the invention. Process (2300) may be used in reconstructing an intra-coded block to generate a prediction block for the reconstructed block. In some examples, process (2300) may be used in reconstructing an inter-coded block. In various embodiments, process (2300) is performed by a processing circuit, e.g. that performs the functions of a video decoder (410), a processing circuit that performs the functions of a video decoder (510), a processing circuit that performs the functions of a video encoder (603), and the like. In some embodiments, the process (2300) is implemented in program instructions, such that when the processing circuit executes the program instructions, the processing circuit executes the process (2300). The process starts at step (S2301) and proceeds to step (S2310).

[0214] На этапе (S2310), информация кодирования CU может декодироваться из битового потока кодированного видео, где информация кодирования указывает размер CU.[0214] In step (S2310), the encoding information of the CU may be decoded from the encoded video bitstream, where the encoding information indicates the size of the CU.

[0215] На этапе (S2320), разрешено ли вторичное преобразование, может определяться на основании размера CU и порога размера CU. Когда размер CU меньше или равен порогу размера CU, определяется, что вторичное преобразование разрешено. Процесс (2300) переходит к этапу (S2330). Когда размер CU больше порога размера CU, определяется, что вторичное преобразование не разрешено, и процесс (2300) переходит к этапу (S2350).[0215] In step (S2320), whether the secondary transform is allowed may be determined based on the CU size and the CU size threshold. When the CU size is less than or equal to the CU size threshold, it is determined that the secondary transformation is enabled. The process (2300) proceeds to step (S2330). When the CU size is larger than the CU size threshold, it is determined that the secondary transformation is not allowed, and the process (2300) proceeds to step (S2350).

[0216] На этапе (S2330) может определяться, осуществлять ли вторичное преобразование на СВ в CU, например, на основании того, сигнализируется ли индекс вторичного преобразования, как описано выше. Когда определено, что вторичное преобразование подлежит осуществлению, процесс (2300) переходит к этапу (S2340). В противном случае, процесс (2300) переходит к этапу (S2350).[0216] In step (S2330), it may be determined whether to perform secondary mapping on the CB in the CU, for example, based on whether the secondary mapping index is signaled as described above. When it is determined that the secondary conversion is to be performed, the process (2300) proceeds to step (S2340). Otherwise, the process (2300) proceeds to step (S2350).

[0217] На этапе (S2340), вторичное преобразование, указанное индексом вторичного преобразования, осуществляется на СВ, аналогично этапу (S2240).[0217] In step (S2340), the secondary transformation indicated by the secondary transformation index is performed on the CB, similarly to step (S2240).

[0218] На этапе (S2350), отсчет в СВ может реконструироваться. Затем процесс (2300) переходит к этапу (S2399) и заканчивается.[0218] In step (S2350), the CB count may be reconstructed. Then, the process (2300) proceeds to step (S2399) and ends.

[0219] Процесс (2300) может быть надлежащим образом адаптирован. Например, один или более этапов может модифицироваться. Также можно добавлять дополнительный(е) этап(ы).[0219] Process (2300) can be appropriately adapted. For example, one or more steps may be modified. Additional step(s) may also be added.

[0220] Процесс (2200) и процесс (2300) могут надлежащим образом объединяться. Например, сначала могут осуществляться (S2310) и (S2320), а затем (S2210)-(S2250).[0220] Process (2200) and process (2300) can be combined as appropriate. For example, (S2310) and (S2320) may be performed first, and then (S2210) to (S2250).

[0221] Вышеописанные методы могут быть реализованы в виде компьютерного программного обеспечения, использующего компьютерно-считываемые инструкции и физически хранящегося на одном или более компьютерно-считываемых носителях. Например, на фиг. 24 показана компьютерная система (2400), пригодная для реализации некоторых вариантов осуществления раскрытого изобретения.[0221] 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. 24 shows a computer system (2400) suitable for implementing some embodiments of the disclosed invention.

[0222] Компьютерное программное обеспечение может кодироваться с использованием любого подходящего машинного кода или компьютерного языка, который может подвергаться ассемблированию, компиляции, редактированию связей или аналогичной обработке для создания кода, содержащего инструкции, которые могут выполняться напрямую, или посредством интерпретации, выполнения микрокода и т.п., одним или более компьютерными центральными процессорами (CPU, central processing units), графическими процессорами (GPU, Graphics Processing Units) и т.п.[0222] 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 (CPUs, central processing units), graphic processors (GPUs, Graphics Processing Units), etc.

[0223] Инструкции могут выполняться на компьютерах различных типов или их компонентах, включая, например, персональные компьютеры, планшетные компьютеры, серверы, смартфоны, игровые устройства, устройства интернета вещей и т.п.[0223] 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.

[0224] Компоненты компьютерной системы (2400), показанные на фиг. 24, носят иллюстративный характер и не призваны налагать какое-либо ограничение на объем применения или функциональные возможности компьютерного программного обеспечения, реализующего варианты осуществления настоящего изобретения. Конфигурацию компонентов также не следует интерпретировать как имеющую какую-либо зависимость или требование в связи с любым одним или комбинацией компонентов, показанных в иллюстративном варианте осуществления компьютерной системы (2400).[0224] The computer system components (2400) shown in FIG. 24 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 (2400).

[0225] Компьютерная система (2400) может включать в себя некоторые устройства ввода интерфейса с человеком. Такое устройство ввода может отвечать за ввод одним или более пользователями посредством, например, тактильного ввода (например, нажатий на клавиши, махов, движений информационной перчатки), аудио-ввода (например, голосового, хлопков), визуального ввода (например, жестов), обонятельного ввода (не показан). Устройства интерфейса также могут использоваться для захвата некоторых информационных носителей, не обязательно напрямую связанных с осознанным вводом человеком, например звука (например, речи, музыки, внешнего звука), изображений (например, отсканированных изображений, фотографических изображений, полученных от камеры неподвижных изображений), видео (например, двухмерного видео, трехмерного видео, включающего в себя стереоскопическое видео).[0225] The computer system (2400) 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, such as 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).

[0226] Устройства ввода интерфейса с человеком могут включать в себя один или более из (по одному из изображенных): клавиатуры (2401), мыши (2402), сенсорной панели (2403), сенсорного экрана (2410), информационной перчатки (не показана), джойстика (2405), микрофона (2406), сканера (2407), камеры (2408).[0226] The human interface input devices may include one or more of (one each depicted): a keyboard (2401), a mouse (2402), a touch pad (2403), a touch screen (2410), an information glove (not shown). ), joystick (2405), microphone (2406), scanner (2407), camera (2408).

[0227] Компьютерная система (2400) также может включать в себя некоторые устройства вывода интерфейса с человеком. Такие устройства вывода могут стимулировать органы чувств одного или более пользователей посредством, например, тактильного вывода, звука, света и запаха/вкуса. Такие устройства вывода могут включать в себя устройства тактильного вывода (например, тактильной обратной связи посредством сенсорного экрана (2410), информационной перчатки (не показана) или джойстика (2405), но также могут быть устройствами тактильной обратной связи, которые не служат устройствами ввода), устройства вывода аудио (например: громкоговорители (2409), наушники (не показаны)), устройства визуального вывода (например, экраны (2410), в том числе CRT-экраны, LCD-экраны, плазменные экраны, OLED-экраны, каждый с возможностями сенсорного экранного ввода или без них, каждый с возможностями тактильной обратной связи или без них, некоторые из которых способны к двухмерному визуальному выводу или более чем трехмерному выводу посредством, например, стереографического вывода; очков виртуальной реальности (не показаны), голографических дисплеев и дымовых баков (не показаны)) и принтеров (не показаны).[0227] The computer system (2400) 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 (2410), data glove (not shown), or joystick (2405), but may also be tactile feedback devices that do not serve as input devices) , audio output devices (for example: speakers (2409), headphones (not shown)), visual output devices (for example, screens (2410), 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 goggles (not shown), holographic displays, and smoke tanks (not shown)) and printers (not shown).

[0228] Компьютерная система (2400) также может включать в себя доступные человеку запоминающие устройства и связанные с ними носители, например, оптические носители, включающие в себя CD/DVD ROM/RW (2420) с носителями (2421) CD/DVD и т.п., карты (2422) флэш-памяти, сменный жесткий диск или твердотельный диск (243), традиционные магнитные носители, например, ленту и флоппи-диск (не показан), специализированные устройства на основе ROM/ASIC/PLD, например, защитные аппаратные ключи (не показаны) и т.п.[0228] The computer system (2400) may also include human accessible storage devices and associated media, such as optical media including CD/DVD ROM/RW (2420) with CD/DVD media (2421), etc. .p., flash memory cards (2422), removable hard drive or solid state drive (243), 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.

[0229] Специалисты в данной области техники также должны понимать, что термин "компьютерно-считываемые носители", используемый в связи с раскрытым здесь изобретением, не охватывает среды передачи, несущие волны или другие кратковременные сигналы.[0229] 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.

[0230] Компьютерная система (2400) также может включать в себя интерфейс к одной или более сетям связи. Сети могут быть, например, беспроводными, проводными, оптическими. Сети могут быть, дополнительно, локальными, глобальными, городскими, транспортными и промышленными, реального времени, допускающими задержку и т.д. Примеры сетей включают в себя локальные сети, например, Ethernet, беспроводные LAN, сотовые сети, в том числе GSM, 3G, 4G, 5G, LTE и т.п., глобальные цифровые сети проводного или беспроводного телевидения, в том числе кабельное телевидение, спутниковое телевидение и наземное телевещание, транспортные и промышленные включают в себя CANBus и т.д. Некоторые сети обычно требуют внешних адаптеров сетевого интерфейса, которые подключены к некоторым портам данных общего назначения или периферийным шинам (2449) (например, USB-порты компьютерной системы (2400)); другие обычно встраиваются в ядро компьютерной системы (2400) путем подключения к системной шине, как описано ниже (например, интерфейс Ethernet в компьютерную систему PC или интерфейс сотовой сети в компьютерную систему смартфона). Используя любую из этих сетей, компьютерная система (2400) может осуществлять связь с другими объектами. Такая связь может быть однонаправленной с возможностью только приема (например, телевещания), однонаправленной с возможностью только передачи (например, CANbus к некоторым устройствам CANbus) или двунаправленной, например, к другим компьютерным системам с использованием локальной или глобальной цифровой сети. Некоторые протоколы и стеки протоколов могут использоваться в каждой из этих сетей и вышеописанных сетевых интерфейсов.[0230] The computer system (2400) 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 tolerant, and so on. 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 (2449) (for example, computer system USB ports (2400)); others are typically built into the core of the computer system (2400) 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 (2400) 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.

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

[0232] Ядро (2440) может включать в себя один или более центральных процессоров (CPU) (2441), графические процессоры (GPU) (2442), специализированные программируемые модули обработки в форме вентильных матриц, программируемых пользователем (FPGA, Field Programmable Gate Arrays) (2443), аппаратные ускорители (2444) для некоторых задач и т.д. Эти устройства, совместно с постоянной памятью (ROM) (2445), оперативной памятью (2446), внутренним хранилищем данных большой емкости, например, внутренними жесткими дисками (2447), недоступными пользователю, SSD и т.п., могут соединяться посредством системной шины (2448). В некоторых компьютерных системах системная шина (2448) может быть доступна в форме одного или более физических разъемов для обеспечения расширений за счет дополнительных CPU, GPU и т.п. Периферийные устройства могут подключаться либо напрямую к системной шине (2448) ядра, либо через периферийную шину (2449). Архитектуры периферийной шины включают в себя PCI, USB и т.п.[0232] The core (2440) may include one or more central processing units (CPUs) (2441), graphics processing units (GPUs) (2442), specialized programmable processing modules in the form of Field Programmable Gate Arrays (FPGAs). ) (2443), hardware accelerators (2444) for some tasks, etc. These devices, together with read-only memory (ROM) (2445), random access memory (2446), high-capacity internal storage such as internal hard drives (2447) not accessible to the user, SSD, etc., can be connected via the system bus (2448). In some computer systems, the system bus (2448) 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 system bus (2448) of the kernel, or via a peripheral bus (2449). Peripheral bus architectures include PCI, USB, and the like.

[0233] CPU (2441), GPU (2442), FPGA (2443) и ускорители (2444) могут выполнять некоторые инструкции, которые совместно могут составлять вышеупомянутый компьютерный код. Этот компьютерный код может храниться в ROM[0233] CPUs (2441), GPUs (2442), FPGAs (2443), and accelerators (2444) may execute some instructions that together may constitute the aforementioned computer code. This computer code can be stored in ROM

(2445) или RAM (2446). Переходные данные также могут храниться в RAM (2446), тогда как постоянные данные могут храниться, например, во внутреннем хранилище (2447) данных большой емкости. Быстрое сохранение и извлечение из любого запоминающего устройства может обеспечиваться за счет использования кэш-памяти, которая может быть тесно связана с один или более CPU (2441), GPU (2442), хранилищем (2447) данных большой емкости, ROM (2445), RAM (2446) и т.п.(2445) or RAM (2446). Transient data may also be stored in RAM (2446), while persistent data may be stored, for example, in an internal mass storage (2447). 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 (2441), GPU (2442), mass storage (2447), ROM (2445), RAM (2446) etc.

[0234] На компьютерно-считываемых носителях может храниться компьютерный код для осуществления различных компьютерно-реализуемых операций. Носители и компьютерный код могут быть специально созданы в целях настоящего изобретения или могут относиться к хорошо известным и доступным специалистам в области компьютерного программного обеспечения.[0234] 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.

[0235] В порядке примера, но не ограничения, компьютерная система, имеющая архитектуру (2400), и, в частности, ядро (2440) может обеспечивать функциональные возможности благодаря выполнению процессором(ами) (включающим(и) в себя CPU, GPU, FPGA, ускорители и т.п.) программного обеспечения, воплощенного в одном или более материальных компьютерно-считываемых носителей. Такие компьютерно-считываемые носители могут быть носителями, связанными с доступным пользователю хранилищем данных большой емкости, представленным выше, а также некоторым хранилищем ядра (2440), носящим долговременный характер, например, внутренним хранилищем (2447) данных большой емкости или ROM (2445). Программное обеспечение, реализующее различные варианты осуществления настоящего изобретения, может храниться в таких устройствах и выполняться ядром (2440). Компьютерно-считываемый носитель может включать в себя одно или более запоминающих устройств или микросхем, в соответствии с конкретными нуждами. Программное обеспечение может предписывать ядру (2440) и, в частности, его процессорам (включая CPU, GPU, FPGA и т.п.) выполнять конкретные процессы или конкретные части описанных здесь конкретных процессов, включая задание структур данных, хранящихся в RAM (2446), и модификацию таких структур данных согласно процессам, заданным программным обеспечением. Дополнительно или альтернативно, компьютерная система может обеспечивать функциональные возможности благодаря логике, зашитой или иным образом воплощенной в схеме (например, ускоритель (2444)), который может действовать вместо или совместно с программным обеспечением для выполнения конкретных процессов или конкретных частей описанных здесь конкретных процессов. Ссылка на программное обеспечение может охватывать логику, и наоборот, когда это уместно. Ссылка на компьютерно-считываемые носители может охватывать схему (например, интегральную схему (IC, integrated circuit)), где хранится программное обеспечение для выполнения, схему, воплощающую логику для выполнения, или обе из них, когда это уместно. Настоящее изобретение охватывает любую подходящую комбинацию оборудования и программного обеспечения.[0235] By way of example, and not limitation, a computer system having an architecture (2400), and in particular a core (2440), 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 may be media associated with the user-accessible mass storage described above, as well as some persistent storage in the core (2440), such as internal mass storage (2447) or ROM (2445). Software implementing various embodiments of the present invention may be stored on such devices and executed by the core (2440). The computer-readable medium may include one or more memory devices or microcircuits, in accordance with particular needs. The software may direct the core (2440) and, in particular, its processors (including CPUs, GPUs, FPGAs, etc.) to execute specific processes or specific parts of the specific processes described here, including setting data structures stored in RAM (2446) , 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 (2444)) 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 Array

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

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

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

[0236] Хотя здесь описано несколько иллюстративных вариантов осуществления, возможны изменения, перестановки и различные эквиваленты для замены в объеме изобретения. Таким образом, специалисты в данной области техники могут предложить многочисленные системы и способы, которые, хотя в явном виде здесь не показаны и не описаны, воплощают принципы изобретения и, таким образом, соответствуют его сущности и объему.[0236] Although several illustrative embodiments are described here, changes, permutations, and various equivalents for substitution are possible 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.

Приложение IAnnex I

Преобразование 4×44x4 transformation

Figure 00000011
Figure 00000011

Преобразование 8×88×8 transformation

Figure 00000012
Figure 00000012

Преобразование 16×1616×16 conversion

Figure 00000013
Figure 00000013

Преобразование 32×32Transformation 32×32

Figure 00000014
Figure 00000014

Приложение IIAppendix II

Ядро 64-точечного DCT-2Core 64-point DCT-2

Figure 00000015
Figure 00000015

Figure 00000016
Figure 00000016

Figure 00000017
Figure 00000017

Figure 00000018
Figure 00000018

Figure 00000019
Figure 00000019

Figure 00000020
Figure 00000020

Figure 00000021
Figure 00000021

гдеwhere

Figure 00000022
Figure 00000022

Приложение IIIAppendix III

4-точечное DST-74-point DST-7

Figure 00000023
Figure 00000023

где {а, b, с, d}={29, 55, 74, 84}where {a, b, c, d}={29, 55, 74, 84}

8-точечное DST-7:8-point DST-7:

Figure 00000024
Figure 00000024

Figure 00000025
Figure 00000025

где {a, b, с, d, е, f, g, h}={17, 32, 46, 60, 71, 78, 85, 86}where {a, b, c, d, e, f, g, h}={17, 32, 46, 60, 71, 78, 85, 86}

16-точечное DST-716-point DST-7

Figure 00000026
Figure 00000026

где {a, b, с, d, e, f, g, h, i, j, k, l, m, n, o, p}={9, 17, 25, 33, 41, 49, 56, 62, 66, 72, 77, 81, 83, 87, 89, 90}where {a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p}={9, 17, 25, 33, 41, 49, 56, 62, 66, 72, 77, 81, 83, 87, 89, 90}

32-точечное DST-732-point DST-7

Figure 00000027
Figure 00000027

Figure 00000028
Figure 00000028

Figure 00000029
Figure 00000029

где {a, b, с, d, е, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, А, В, C, D, E, F}={4, 9, 13, 17, 21, 26, 30, 34, 38, 42, 45, 50, 53, 56, 60, 63, 66, 68, 72, 74, 77, 78, 80, 82, 84, 85, 86, 88, 88, 89, 90, 90}where {a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F}={4, 9, 13, 17, 21, 26, 30, 34, 38, 42, 45, 50, 53, 56, 60, 63, 66, 68, 72, 74, 77, 78, 80, 82, 84, 85, 86, 88, 88, 89, 90, 90}

4-точечное DCT-84-point DCT-8

Figure 00000030
Figure 00000030

где {a, b, c, d}={84, 74, 55, 29}where {a, b, c, d}={84, 74, 55, 29}

8-точечное DCT-8:8-point DCT-8:

Figure 00000031
Figure 00000031

где {a, b, с, d, е, f, g, h}={86, 85, 78, 71, 60, 46, 32, 17}where {a, b, c, d, e, f, g, h}={86, 85, 78, 71, 60, 46, 32, 17}

16-точечное DCT-816-point DCT-8

Figure 00000032
Figure 00000032

где {a, b, с, d, e, f, g, h, i, j, k, l, m, n, o, p}={90, 89, 87, 83, 81, 77, 72, 66, 62, 56, 49, 41, 33, 25, 17, 9}where {a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p}={90, 89, 87, 83, 81, 77, 72, 66, 62, 56, 49, 41, 33, 25, 17, 9}

32-точечное DCT-832-point DCT-8

Figure 00000033
Figure 00000033

Figure 00000034
Figure 00000034

Figure 00000035
Figure 00000035

где {a, b, с, d, е, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, А, В, C, D, E, F}={90, 90, 89, 88, 88, 86, 85, 84, 82, 80, 78, 77, 74, 72, 68, 66, 63, 60, 56, 53, 50, 45, 42, 38, 34, 30, 26, 21, 17, 13, 9, 4}where {a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F}={90, 90, 89, 88, 88, 86, 85, 84, 82, 80, 78, 77, 74, 72, 68, 66, 63, 60, 56, 53, 50, 45, 42, 38, 34, 30, 26, 21, 17, 13, 9, 4}

Claims (32)

1. Способ видеодекодирования в декодере, в котором: 1. A video decoding method in a decoder, in which: декодируют кодированную информацию единицы кодирования (CU) из битового потока кодированного видео, причем кодированная информация указывает последнюю позицию ненулевых коэффициентов преобразования первого блока кодирования (CB) в CU; decoding encoded coding unit (CU) information from the encoded video bitstream, the encoded information indicating the last position of non-zero transform coefficients of the first coding block (CB) in the CU; определяют, сигнализируется ли индекс вторичного преобразования в кодированной информации, на основании того, указывает ли последняя позиция ненулевых коэффициентов преобразования, что первый CB в CU имеет только нулевые коэффициенты или только один ненулевой коэффициент в этой последней позиции коэффициентов, при этом определяют, что индекс вторичного преобразования не сигнализируется в кодированной информации, если последняя позиция ненулевых коэффициентов преобразования указывает, что первый CB в CU имеет только нулевые коэффициенты или только один ненулевой коэффициент в последней позиции коэффициентов; determining whether a secondary transform index is signaled in the encoded information based on whether the last non-zero transform coefficient position indicates that the first CB in the CU has only zero coefficients or only one non-zero coefficient in this last coefficient position, determining that the secondary transform index no transform is signaled in the coded information if the last non-zero transform coefficient position indicates that the first CB in the CU has only zero coefficients or only one non-zero coefficient in the last coefficient position; определяют, осуществлять ли упомянутое вторичное преобразование на втором CB в CU, на основании того, сигнализируется ли индекс вторичного преобразования в кодированной информации; determining whether to perform said secondary transform on the second CB in the CU based on whether the secondary transform index is signaled in the encoded information; в ответ на определение того, что вторичное преобразование подлежит осуществлению, осуществляют вторичное преобразование на втором CB и реконструируют второй CB; и in response to determining that the secondary transformation is to be performed, performing a secondary transformation on the second CB and reconstructing the second CB; and в ответ на определение того, что вторичное преобразование не подлежит осуществлению, реконструируют второй CB без осуществления вторичного преобразования на втором CB. in response to determining that the secondary transformation is not to be performed, the second CB is reconstructed without performing the secondary transformation on the second CB. 2. Способ по п. 1, в котором упомянутая последняя позиция включает горизонтальную компоненту и вертикальную компоненту, и обе эти компоненты имеют нулевое значение. 2. The method of claim 1, wherein said last position includes a horizontal component and a vertical component, both of which have a value of zero. 3. Способ по п. 2, в котором на этапе определения, сигнализируется ли индекс вторичного преобразования, выполняют одно из следующего:3. The method of claim 2, wherein, at the step of determining whether the secondary transform index is being signaled, one of the following is performed: (а) определяют, меньше ли первого порога горизонтальная компонента упомянутой последней позиции и меньше ли второго порога вертикальная компонента упомянутой последней позиции; и (a) determining whether the horizontal component of said last position is less than a first threshold and whether the vertical component of said last position is less than a second threshold; and в ответ на определение того, что горизонтальная компонента меньше первого порога, и определение того, что вертикальная компонента меньше второго порога, определяют, что индекс вторичного преобразования не сигнализируется в кодированной информации; in response to determining that the horizontal component is less than the first threshold and determining that the vertical component is less than the second threshold, determining that the secondary transform index is not signaled in the encoded information; (б) определяют, меньше ли порога сумма горизонтальной компоненты и вертикальной компоненты последней позиции; и (b) determining if the sum of the horizontal component and the vertical component of the last position is less than a threshold; and в ответ на определение того, что сумма меньше порога, определяют, что индекс вторичного преобразования не сигнализируется в кодированной информации; in response to determining that the sum is less than a threshold, determining that the secondary transform index is not signaled in the encoded information; (в) определяют, меньше ли порога как минимум одна из (i) горизонтальной компоненты и (ii) вертикальной компоненты последней позиции; и (c) determining if at least one of (i) the horizontal component and (ii) the vertical component of the last position is less than a threshold; and в ответ на определение того, что как минимум одна из них меньше порога, определяют, что индекс вторичного преобразования не сигнализируется в кодированной информации; in response to determining that at least one of them is less than a threshold, determining that the secondary transform index is not signaled in the encoded information; (г) определяют, меньше ли порога максимум одна из (i) горизонтальной компоненты и (ii) вертикальной компоненты последней позиции; и (d) determining if at most one of (i) the horizontal component and (ii) the vertical component of the last position is less than a threshold; and в ответ на определение того, что максимум одна из них меньше порога, определяют, что индекс вторичного преобразования не сигнализируется в кодированной информации. in response to determining that at most one of them is less than a threshold, it is determined that the secondary transform index is not signaled in the encoded information. 4. Способ по любому из пп. 1-3, в котором 4. The method according to any one of paragraphs. 1-3, in which первый CB является блоком яркости; the first CB is the luma block; последняя позиция является последней позицией яркости для блока яркости; и the last position is the last brightness position for the brightness block; and на этапе определения, сигнализируется ли индекс второго преобразования, определяют, сигнализируется ли индекс вторичного преобразования, на основании последней позиции яркости. in the step of determining whether the second transform index is signalled, determining whether the secondary transform index is signaled based on the last luminance position. 5. Способ по любому из пп. 1, 2, в котором 5. The method according to any one of paragraphs. 1, 2, in which первый CB является блоком яркости; the first CB is the luma block; последняя позиция является последней позицией яркости для блока яркости;the last position is the last brightness position for the brightness block; CU также включает в себя блок цветности; The CU also includes a chrominance block; кодированная информация также указывает последнюю позицию цветности ненулевых коэффициентов преобразования для блока цветности; и the encoded information also indicates the last chrominance position of the non-zero transform coefficients for the chrominance block; and на этапе определения, сигнализируется ли индекс вторичного преобразования, определяют, сигнализируется ли индекс вторичного преобразования, на основании последней позиции яркости и последней позиции цветности. in the step of determining whether the secondary transform index is signaled, determining whether the secondary transform index is signaled based on the last luminance position and the last chrominance position. 6. Способ по любому из пп. 1-5, в котором: 6. The method according to any one of paragraphs. 1-5, in which: декодируют кодированную информацию CU из битового потока кодированного видео, причем кодированная информация указывает размер CU; и decoding the encoded CU information from the encoded video bitstream, the encoded information indicating the size of the CU; and определяют, разрешено ли упомянутое вторичное преобразование, на основании размера CU и порога размера CU, причем determining whether said secondary transformation is allowed based on the CU size and the CU size threshold, wherein когда размер CU меньше или равен порогу размера CU, определяют, что вторичное преобразование разрешено, а когда размер CU больше порога размера CU, определяют, что вторичное преобразование не разрешено. when the CU size is less than or equal to the CU size threshold, it is determined that the secondary transformation is allowed, and when the CU size is greater than the CU size threshold, it is determined that the secondary transformation is not allowed. 7. Способ по п. 6, в котором порог размера CU является максимальным размером единицы преобразования в CU. 7. The method of claim 6, wherein the CU size threshold is a maximum transform unit size in the CU. 8. Устройство для видеодекодирования, содержащее схему обработки, выполненную с возможностью выполнять способ по любому из пп. 1-7.8. Device for video decoding, containing a processing circuit configured to perform the method according to any one of paragraphs. 1-7.
RU2021127912A 2019-04-04 2020-04-03 Method and device for video encoding RU2777188C1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US62/829,435 2019-04-04
US16/838,755 2020-04-02

Publications (1)

Publication Number Publication Date
RU2777188C1 true RU2777188C1 (en) 2022-08-02

Family

ID=

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2546590C2 (en) * 2011-01-24 2015-04-10 Квэлкомм Инкорпорейтед Alarm of quantisation parameter changes for coded units under highly efficient video coding (hevc)
WO2017191782A1 (en) * 2016-05-04 2017-11-09 Sharp Kabushiki Kaisha Systems and methods for coding transform data
WO2018128323A1 (en) * 2017-01-03 2018-07-12 엘지전자(주) Method and device for encoding/decoding video signal using secondary transform
WO2018188648A1 (en) * 2017-04-14 2018-10-18 Mediatek Inc. Secondary transform kernel size selection

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2546590C2 (en) * 2011-01-24 2015-04-10 Квэлкомм Инкорпорейтед Alarm of quantisation parameter changes for coded units under highly efficient video coding (hevc)
WO2017191782A1 (en) * 2016-05-04 2017-11-09 Sharp Kabushiki Kaisha Systems and methods for coding transform data
WO2018128323A1 (en) * 2017-01-03 2018-07-12 엘지전자(주) Method and device for encoding/decoding video signal using secondary transform
WO2018188648A1 (en) * 2017-04-14 2018-10-18 Mediatek Inc. Secondary transform kernel size selection

Similar Documents

Publication Publication Date Title
JP2024012476A (en) Method, device, medium, and program for video decoding
KR20200128138A (en) Method and apparatus for video coding
CN113557732B (en) Method and apparatus for video encoding and decoding
US11750831B2 (en) Method and apparatus for video coding
CN112840657B (en) Method, apparatus, device and readable medium for video decoding
EP4042701A1 (en) Method and apparatus for video coding
KR20220100726A (en) Method and apparatus for video coding
CN113557727A (en) Method and apparatus for improved return-to-zero transformation
CN115769575A (en) Method and apparatus for video encoding
RU2777188C1 (en) Method and device for video encoding
CN115104308A (en) Video coding and decoding method and device
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
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
RU2784906C1 (en) Method and apparatus for cross-component filtration
RU2788835C1 (en) Method and apparatus for encoding video data
RU2777377C1 (en) Unified block vector prediction to compensate for blocks inside the image
RU2784813C1 (en) Method and apparatus for video encoding
RU2777278C1 (en) Video encoding method and apparatus
KR20230147202A (en) Cross-component plane prediction in image and video compression
JP2024074928A (en) METHOD AND APPARATUS FOR VIDEO CODING - Patent application
JP2023525668A (en) Adaptive scanning with multiple transform selection