RU2821306C2 - Encoding and decoding method, communication device and system - Google Patents

Encoding and decoding method, communication device and system Download PDF

Info

Publication number
RU2821306C2
RU2821306C2 RU2021112191A RU2021112191A RU2821306C2 RU 2821306 C2 RU2821306 C2 RU 2821306C2 RU 2021112191 A RU2021112191 A RU 2021112191A RU 2021112191 A RU2021112191 A RU 2021112191A RU 2821306 C2 RU2821306 C2 RU 2821306C2
Authority
RU
Russia
Prior art keywords
mip
prediction
value
block
samples
Prior art date
Application number
RU2021112191A
Other languages
Russian (ru)
Other versions
RU2021112191A (en
Inventor
Цзюньянь ХО
Original Assignee
Гуандун Оппо Мобайл Телекоммьюникейшнс Корп., Лтд.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Гуандун Оппо Мобайл Телекоммьюникейшнс Корп., Лтд. filed Critical Гуандун Оппо Мобайл Телекоммьюникейшнс Корп., Лтд.
Publication of RU2021112191A publication Critical patent/RU2021112191A/en
Application granted granted Critical
Publication of RU2821306C2 publication Critical patent/RU2821306C2/en

Links

Abstract

FIELD: physics.
SUBSTANCE: invention relates to video encoding means. Prediction parameters of the current block in the bit stream are determined. Input discrete value of internal prediction is determined based on a matrix (MIP) of the current block based on neighbouring discrete values of the current block and prediction parameters. Number shift parameter (sW) is set as the first fixed value, wherein the first fixed value is set regardless of the prediction parameters. Offset shift parameter (fO) is set as the second fixed value, wherein the second fixed value is set irrespective of the prediction parameters. Discrete value of the MIP prediction of the current block is determined based on the weight matrix MIP, the input discrete value MIP, an offset shift parameter (fO) and a number shift parameter (sW). Performing a process of upsampling to a discrete MIP prediction value of the current block to generate internal predicted discrete values of the current block.
EFFECT: high efficiency of video encoding.
15 cl, 14 dwg, 4 tbl

Description

ПЕРЕКРЕСТНАЯ ССЫЛКА НА РОДСТВЕННУЮ ЗАЯВКУCROSS REFERENCE TO RELATED APPLICATION

Настоящая заявка испрашивает преимущество и приоритет по предварительной заявке на патент США № 62/911,166, поданной 4 октября 2019 г., которая полностью включена в настоящий документ посредством ссылки.This application claims benefit and priority to U.S. Provisional Patent Application No. 62/911,166, filed October 4, 2019, which is incorporated herein by reference in its entirety.

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

Настоящее изобретение относится к области телекоммуникационных технологий и, в частности, к способу кодирования и декодирования изображений, таких как кадры или видео.The present invention relates to the field of telecommunications technology and, in particular, to a method for encoding and decoding images such as frames or videos.

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

Универсальное кодирование видео (VVC) - это следующее поколение стандарта сжатия видео, используемого для замены текущего стандарта, такого как стандарт высокоэффективного кодирования видеоизображений (H.265/HEVC). Стандарт кодирования VVC предоставляет более высокое качество кодирования по сравнению с текущим стандартом. Для достижения этой цели рассматриваются различные режимы внутреннего предсказания и предсказания, осуществляемого между изображениями. При использовании этих режимов предсказания видео может быть сжато таким образом, что данные, подлежащие передаче в битовом потоке (в двоичной форме), могут быть уменьшены. Внутреннее предсказание на основе матрицы (MIP) является одним из таких режимов. MIP представляет собой режим внутреннего предсказания. При реализации в режиме MIP кодер или декодер могут вывести блок внутреннего предсказания на основе текущего блока кодирования (например, группы битов или цифр, которые передаются как единица и которые могут кодироваться и/или декодироваться вместе). Однако получение таких блоков предсказания может потребовать значительного количества вычислительных ресурсов и дополнительных пространств для хранения. Следовательно, улучшенный способ решения этой проблемы является преимущественным и желательным.Versatile Video Coding (VVC) is the next generation of video compression standard used to replace current standards such as High Efficiency Video Coding (H.265/HEVC). The VVC encoding standard provides higher encoding quality than the current standard. To achieve this goal, various intra and inter-image prediction modes are considered. By using these prediction modes, video can be compressed such that the data to be transmitted in the bitstream (in binary form) can be reduced. Matrix-based intra prediction (MIP) is one such mode. MIP is an intra prediction mode. When implemented in MIP mode, the encoder or decoder may derive an intra prediction block based on the current coding block (eg, a group of bits or digits that are transmitted as a unit and that can be encoded and/or decoded together). However, obtaining such prediction blocks may require a significant amount of computational resources and additional storage space. Therefore, an improved method for solving this problem is advantageous and desirable.

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

При реализации в режиме MIP определяются, а затем применяются различные параметры предсказания. Традиционно некоторые из этих параметров предсказания могут быть определены по справочным таблицам. Эти справочные таблицы должны храниться в компоненте (например, в памяти, кэше и т. д.) кодера и/или декодера и, следовательно, требуют пространств для хранения. Кроме того, доступ к этим справочным таблицам требует вычислительного времени и ресурсов. Следовательно, является преимущественным получение улучшенного способа, устройства и системы для решения вышеуказанной проблемы.When implemented in MIP mode, various prediction parameters are determined and then applied. Traditionally, some of these prediction parameters can be determined from lookup tables. These lookup tables must be stored in a component (e.g., memory, cache, etc.) of the encoder and/or decoder and therefore require storage spaces. Additionally, accessing these lookup tables requires computational time and resources. Therefore, it is advantageous to provide an improved method, apparatus and system for solving the above problem.

Настоящее изобретение предоставляет способ предсказания, кодирования и/или декодирования изображения на основе процесса MIP. Процесс MIP может генерировать блок предсказания текущего блока, и размер блока предсказания меньше размера текущего блока. Например, текущий блок «8x8» может иметь блок предсказания «4x4». Блок предсказания MIP, размер которого меньше размера текущего блока, получен за счет выполнения матричного вычисления, которое требует меньше вычислительных ресурсов, чем выполнение матричного вычисления с большим блоком. После матричного вычисления процесс повышающей дискретизации применяют к блоку предсказания MIP для получения блока внутреннего предсказания, который имеет тот же размер, что и текущий блок. Например, блок внутреннего предсказания «8x8» может быть получен из блока предсказания MIP «4x4» посредством вызова процесса повышающей дискретизации интерполяции и/или экстраполяции.The present invention provides a method for predicting, encoding and/or decoding an image based on a MIP process. The MIP process may generate a prediction block of the current block, and the size of the prediction block is smaller than the size of the current block. For example, the current block "8x8" may have a prediction block "4x4". A MIP prediction block whose size is smaller than the current block size is obtained by performing a matrix calculation, which requires less computational resources than performing a matrix calculation with a larger block. After the matrix calculation, an upsampling process is applied to the MIP prediction block to obtain an intra prediction block that has the same size as the current block. For example, an 8x8 intra prediction block may be obtained from a 4x4 MIP prediction block by invoking an interpolation and/or extrapolation upsampling process.

Более конкретно, настоящий способ включает, например, (i) определение параметров предсказания текущего блока в битовом потоке; (ii) определение входного дискретного значения MIP (например, «p[x]» в уравнениях (P-1), (P-2) и (P-3) , рассмотренных подробно ниже) текущего блока на основе соседних дискретных значений текущего блока и параметров предсказания; (iii) установку параметра сдвига номера (например, «sW» в уравнении (B), рассмотренном подробно ниже) в качестве первого фиксированного значения; (iv) установку параметра сдвига смещения (например, «fO» в уравнении (B), рассмотренном подробно ниже) в качестве второго фиксированного значения; (v) определение весовой матрицы MIP текущего блока на основе параметров предсказания; (vi) определение дискретного значения предсказания MIP (например, «predMip[x][y]» в уравнении (C), рассмотренном подробно ниже) текущего блока на основе весовой матрицы MIP, входного дискретного значения MIP, параметра сдвига смещения (fO) и параметра сдвига номера (sW); и (vii) выполнение процесса повышающей дискретизации до дискретного значения предсказания MIP таким образом, чтобы генерировать внутренние предсказанные дискретные значения (например, «predSamples[x][y]» в уравнении (G), рассмотренном подробно ниже) текущего блока.More specifically, the present method includes, for example, (i) determining prediction parameters of a current block in a bit stream; (ii) determining the input MIP sample value (e.g., "p[x]" in Equations (P-1) , (P-2) , and (P-3) , discussed in detail below) of the current block based on the adjacent samples of the current block and prediction parameters; (iii) setting a number shift parameter (eg, "sW" in equation (B) , discussed in detail below) as a first fixed value; (iv) setting the bias offset parameter (eg, "fO" in equation (B) , discussed in detail below) as a second fixed value; (v) determining a MIP weight matrix of the current block based on the prediction parameters; (vi) determining a MIP prediction sample (eg, "predMip[x][y]" in Equation (C) , discussed in detail below) of the current block based on the MIP weight matrix, the input MIP sample, the bias offset parameter (fO), and number shift parameter (sW); and (vii) performing an upsampling process to the MIP prediction sample value so as to generate internal predicted samples (eg, "predSamples[x][y]" in equation (G) , discussed in detail below) of the current block.

Не желая ограничиваться теорией, установка одного или обоих из параметра сдвига номера и параметра сдвига смещения в качестве фиксированных значений эффективно улучшает общую эффективность кодирования/декодирования, при этом не оказывает значительного влияния на точность процессов кодирования/декодирования. Посредством такой компоновки настоящие способы предоставляют решение, позволяющее значительно сократить время вычислений и уменьшить требуемое пространство для хранения при реализации процессов MIP.Without wishing to be limited by theory, setting one or both of the number shift parameter and the offset shift parameter as fixed values effectively improves the overall encoding/decoding efficiency without significantly affecting the accuracy of the encoding/decoding processes. Through this arrangement, the present methods provide a solution to significantly reduce computation time and reduce the required storage space when implementing MIP processes.

Другой аспект настоящего изобретения включает систему кодирования/декодирования кадров и видео. Система может содержать вспомогательную систему кодирования (или кодер) и вспомогательную систему декодирования (или декодер). Вспомогательная система кодирования содержит узел разделения, первый узел предсказания и узел энтропийного кодирования. Узел разделения выполнен с возможностью приема входного видео и разделения входного видео на один или более узлов кодирования (CU). Первый узел внутреннего предсказания выполнен с возможностью генерирования блока предсказания, соответствующего каждому CU на основе параметров предсказания, полученных от кодирования входного видео. Узел энтропийного кодирования выполнен с возможностью трансформации параметров для получения из блока предсказания в битовый поток. Вспомогательная система декодирования содержит узел анализа и второй узел внутреннего предсказания. Узел анализа выполнен с возможностью анализа того, как битовый поток получает числовые значения (например, значения, связанные с одним или более CU). Второй узел внутреннего предсказания выполнен с возможностью преобразования числовых значений в выходное видео на основе параметров предсказания.Another aspect of the present invention includes a frame and video encoding/decoding system. The system may include a secondary encoding system (or encoder) and a secondary decoding system (or decoder). The auxiliary coding system contains a division node, a first prediction node and an entropy coding node. The splitting unit is configured to receive input video and split the input video into one or more encoding units (CUs). The first intra prediction node is configured to generate a prediction block corresponding to each CU based on the prediction parameters obtained from encoding the input video. The entropy encoding unit is configured to transform the parameters to be obtained from the prediction block into a bit stream. The auxiliary decoding system contains an analysis unit and a second intra prediction unit. The analysis unit is configured to analyze how the bitstream obtains numeric values (eg, values associated with one or more CUs). The second intra prediction node is configured to convert the numeric values into an output video based on the prediction parameters.

КРАТКОЕ ОПИСАНИЕ ГРАФИЧЕСКИХ МАТЕРИАЛОВBRIEF DESCRIPTION OF GRAPHIC MATERIALS

С целью сделать техническое решение, описанное в вариантах осуществления настоящего изобретения, более понятным, будут кратко описаны графические материалы, используемые для описания вариантов осуществления. Очевидно, что графические материалы, описанные ниже, предназначены только для иллюстрации, но не для ограничения. Следует понимать, что специалист в данной области техники может получить другие графические материалы на основе этих графических материалов, не выполняя никакой изобретательской работы.In order to make the technical solution described in the embodiments of the present invention more understandable, the drawings used to describe the embodiments will be briefly described. Obviously, the graphics described below are intended to be illustrative only and not limiting. It should be understood that one skilled in the art can obtain other graphics based on these graphics without performing any inventive work.

На фиг. 1A представлено схематическое изображение системы согласно варианту осуществления настоящего изобретения.In fig. 1A is a schematic diagram of a system according to an embodiment of the present invention.

На фиг. 1B представлено схематическое изображение, иллюстрирующее процесс MIP согласно вариантам осуществления настоящего изобретения.In fig. 1B is a schematic diagram illustrating a MIP process according to embodiments of the present invention.

На фиг. 2 представлено схематическое изображение системы кодирования согласно варианту осуществления настоящего изобретения.In fig. 2 is a schematic diagram of an encoding system according to an embodiment of the present invention.

На фиг. 3 представлено схематическое изображение, иллюстрирующее получение блока внутреннего предсказания с использованием режима MIP согласно вариантам осуществления настоящего изобретения.In fig. 3 is a schematic diagram illustrating acquisition of an intra prediction block using the MIP mode according to embodiments of the present invention.

На фиг. 4 представлено схематическое изображение системы декодирования согласно варианту осуществления настоящего изобретения.In fig. 4 is a schematic diagram of a decoding system according to an embodiment of the present invention.

На фиг. 5 представлена блок-схема, иллюстрирующая способ варианта осуществления настоящего изобретения.In fig. 5 is a flowchart illustrating a method of an embodiment of the present invention.

На фиг. 6 представлена блок-схема, иллюстрирующая способ варианта осуществления настоящего изобретения.In fig. 6 is a flowchart illustrating a method of an embodiment of the present invention.

На фиг. 7 представлено схематическое изображение устройства (например, кодера) согласно варианту осуществления настоящего изобретения.In fig. 7 is a schematic diagram of a device (eg, an encoder) according to an embodiment of the present invention.

На фиг. 8 представлено схематическое изображение устройства (например, кодера) согласно варианту осуществления настоящего изобретения.In fig. 8 is a schematic diagram of a device (eg, an encoder) according to an embodiment of the present invention.

На фиг. 9 представлено схематическое изображение устройства (например, декодера) согласно варианту осуществления настоящего изобретения.In fig. 9 is a schematic diagram of a device (eg, a decoder) according to an embodiment of the present invention.

На фиг. 10 представлено схематическое изображение устройства (например, декодера) согласно варианту осуществления настоящего изобретения.In fig. 10 is a schematic diagram of a device (eg, a decoder) according to an embodiment of the present invention.

На фиг. 11 представлено схематическое изображение устройства (например, кодера) согласно варианту осуществления настоящего изобретения.In fig. 11 is a schematic diagram of a device (eg, an encoder) according to an embodiment of the present invention.

На фиг. 12 представлено схематическое изображение устройства (например, декодера) согласно варианту осуществления настоящего изобретения.In fig. 12 is a schematic diagram of a device (eg, a decoder) according to an embodiment of the present invention.

На фиг. 13 представлено схематическое изображение системы связи согласно варианту осуществления настоящего изобретения.In fig. 13 is a schematic diagram of a communication system according to an embodiment of the present invention.

ПОДРОБНОЕ ОПИСАНИЕDETAILED DESCRIPTION

Чтобы облегчить понимание настоящего изобретения, настоящее изобретение будет описано более полно ниже со ссылкой на прилагаемые графические материалы.To facilitate understanding of the present invention, the present invention will be described more fully below with reference to the accompanying drawings.

На фиг. 1A представлено схематическое изображение системы 100 согласно варианту осуществления настоящего изобретения. Система 100 может кодировать, передавать и декодировать кадр. Система 100 также может быть применена для кодирования, передачи и декодирования видео, состоящего из последовательности кадров. Более конкретно, система 100 может принимать входные кадры, обрабатывать входные кадры и генерировать выходные кадры. Система 100 содержит устройство 100a кодирования и устройство 100b декодирования. Устройство 100a кодирования содержит узел 101 разделения, первый узел 103 внутреннего предсказания и узел 105 энтропийного кодирования. Устройство 100b декодирования содержит узел 107 анализа и второй узел 109 внутреннего предсказания.In fig. 1A is a schematic diagram of a system 100 according to an embodiment of the present invention. System 100 may encode, transmit, and decode a frame. The system 100 may also be used to encode, transmit, and decode video consisting of a sequence of frames. More specifically, system 100 may receive input frames, process input frames, and generate output frames. System 100 includes an encoding device 100a and a decoding device 100b. The encoding device 100a includes a division unit 101, a first intra prediction unit 103, and an entropy encoding unit 105. The decoding device 100b includes an analysis section 107 and a second intra prediction section 109.

Узел 101 разделения выполнен с возможностью приема входного видео 10 и последующего разделения входного видео 10 на один или более узлов кодового дерева (CTU) или узлов 12 кодирования (CU). CU 12 передаются на первый узел 103 внутреннего предсказания. Первый узел 103 внутреннего предсказания выполнен с возможностью получения блока предсказания для каждого из CU 12 путем выполнения процесса MIP. В некоторых вариантах осуществления на основе размеров CU 12 процесс MIP имеет различные подходы в обработке CU 12 различных размеров. Например, для каждого типа CU 12 имеется специальный идентификатор размера MIP (например, 0, 1, 2 и т. д.).The splitting unit 101 is configured to receive input video 10 and then split the input video 10 into one or more code tree units (CTUs) or coding units 12 (CUs). The CUs 12 are transmitted to the first intra prediction node 103. The first intra prediction unit 103 is configured to obtain a prediction block for each of the CUs 12 by executing a MIP process. In some embodiments, based on the sizes of the CU 12, the MIP process has different approaches in processing CU 12 of different sizes. For example, for each CU 12 type there is a special MIP size identifier (for example, 0, 1, 2, etc.).

Первый узел 103 внутреннего предсказания сначала определяет параметры предсказания (например, ширину, высоту, размер и т. д.) CU 12. Соответственно, первый узел 103 внутреннего предсказания может определить идентификатор размера MIP CU 12. Первый узел 103 внутреннего предсказания дополнительно получает группу опорных дискретных значений для CU 12 (например, используя соседние дискретные значения CU 12, такие как соседние сверху или слева дискретные значения, рассмотренные подробно со ссылкой на фиг. 3). Первый узел 103 внутреннего предсказания затем получает предсказание MIP CU 12 на основе группы опорных дискретных значений и соответствующей весовой матрицы MIP. Первый узел 103 внутреннего предсказания может использовать предсказание MIP в качестве внутреннего предсказания 14 CU 12. Внутреннее предсказание 14 и параметры предсказания для получения внутреннего предсказания 14 затем передаются на узел 105 энтропийного кодирования для дальнейшей обработки.The first intra prediction node 103 first determines the prediction parameters (eg, width, height, size, etc.) of the CU 12. Accordingly, the first intra prediction node 103 can determine the MIP size identifier of the CU 12. The first intra prediction node 103 further obtains a group of reference samples for CU 12 (eg, using adjacent samples of CU 12, such as the top or left adjacent samples discussed in detail with reference to FIG. 3). The first intra prediction node 103 then obtains a prediction of the MIP of the CU 12 based on the group of reference samples and the corresponding MIP weight matrix. The first intra prediction node 103 may use the MIP prediction as the intra prediction 14 of the CU 12. The intra prediction 14 and the prediction parameters to obtain the intra prediction 14 are then transmitted to the entropy encoding node 105 for further processing.

Узел 105 энтропийного кодирования выполнен с возможностью трансформации параметров предсказания для получения внутреннего предсказания 14 в двоичной форме. Соответственно, узел 105 энтропийного кодирования генерирует битовый поток 16 на основе внутреннего предсказания 14. В некоторых вариантах осуществления битовый поток 16 может быть передан посредством сети связи или сохранен на диске или сервере.Entropy encoding unit 105 is configured to transform prediction parameters to obtain intra prediction 14 in binary form. Accordingly, entropy encoding unit 105 generates bit stream 16 based on intra prediction 14. In some embodiments, bit stream 16 may be transmitted over a communications network or stored on a disk or server.

Устройство 100b декодирования принимает битовый поток 16 в качестве входного битового потока 17. Узел 107 анализа анализирует входной битовый поток 17 (в двоичной форме) и преобразует его в числовые значения 18. Числовые значения 18 указывают на характеристики (например, цвет, яркость, глубина и т. д.) входного видео 10. Числовые значения 18 передаются на второй узел 109 внутреннего предсказания. Второй узел 109 внутреннего предсказания может затем преобразовать эти числовые значения 18 в выходное видео 19 (например, на основе процессов, аналогичных тем, которые выполняются первым узлом 103 внутреннего предсказания; соответствующие варианты осуществления рассмотрены подробно ниже со ссылкой на фиг. 4). Выходное видео 19 может затем сохраняться, передаваться и/или визуализироваться внешним устройством (например, устройством для хранения, передатчиком и т. д.). Сохраненное видео может дополнительно отображаться на дисплее.Decoding device 100b receives bit stream 16 as input bit stream 17. Analysis unit 107 analyzes input bit stream 17 (in binary form) and converts it into numeric values 18. Numerical values 18 indicate characteristics (eg, color, brightness, depth, and etc.) of the input video 10. The numerical values 18 are transmitted to the second intra prediction node 109. The second intra prediction node 109 may then convert these numeric values 18 into output video 19 (eg, based on processes similar to those performed by the first intra prediction node 103; corresponding embodiments are discussed in detail below with reference to FIG. 4). The output video 19 can then be stored, transmitted and/or rendered by an external device (eg, storage device, transmitter, etc.). The saved video can additionally be displayed on the display.

На фиг. 1B представлено схематическое изображение, иллюстрирующее процесс S100 MIP согласно вариантам осуществления настоящего изобретения. Процесс MIP включает четыре основных этапа S101, S102, S103 и S104. На этапе S101 должны быть определены параметры предсказания для процесса S100 MIP. Параметры предсказания включают тип или размер (например, указанный идентификатором размера MIP, таким как «mipSizeId») текущего блока, число опорных дискретных значений в каждой границе (например, «boundySize»), число вводных дискретных значений MIP (например, «inSize») и размер блока предсказания MIP (например, «predSize×predSize»), генерируемый матричным умножением. На основе размера текущего блока, идентификатор размера MIP может быть «0» «1» или «2», который записан в параметре «mipSizeId». Разные блоки могут иметь различные параметры предсказания.In fig. 1B is a schematic diagram illustrating a MIP process S100 according to embodiments of the present invention. The MIP process includes four main steps S101, S102, S103 and S104. In step S101, prediction parameters for the MIP process S100 must be determined. Prediction parameters include the type or size (e.g., indicated by the MIP size identifier such as "mipSizeId") of the current block, the number of reference samples in each boundary (e.g., "boundySize"), the number of input MIP samples (e.g., "inSize") and a MIP prediction block size (eg, "predSize×predSize") generated by matrix multiplication. Based on the size of the current block, the MIP size ID can be "0", "1" or "2", which is written in the "mipSizeId" parameter. Different blocks may have different prediction parameters.

На этапе S102 процесс MIP получает опорные пиксели. Опорные пиксели могут быть из соседних сверху блоков и/или соседних слева блоков. Пиксели из соседних сверху блоков сохраняются как параметр «refT», и пиксели из соседних слева блоков сохраняются как параметр «refL».In step S102, the MIP process obtains reference pixels. The reference pixels can be from blocks adjacent to the top and/or blocks adjacent to the left. Pixels from top adjacent blocks are stored as the "refT" parameter, and pixels from left adjacent blocks are stored as "refL" parameter.

На этапе S103 определяются входные дискретные значения для процесса MIP. Входные дискретные значения могут быть определены с помощью трех подэтапов S1031, S1032 и S1033. На подэтапе S1031 на основе опорных пикселей (например, из этапа S102), выполняется процесс понижающей дискретизации для генерирования опорных дискретных значений. На подэтапе S1031 определяются опорные зоны дискретизации (или буферные зоны дискретизации). В некоторых вариантах осуществления процесс транспонирования матрицы может быть применен на подэтапе S1032. На подэтапе S1033 вычисление матричного умножения выполняется на основе входных дискретных значений.In step S103, input samples for the MIP process are determined. Input discrete values can be determined using three sub-steps S1031, S1032 and S1033. In sub-step S1031, based on the reference pixels (eg, from step S102), a downsampling process is performed to generate reference samples. In sub-step S1031, sampling reference zones (or sampling buffer zones) are determined. In some embodiments, a matrix transposition process may be applied in sub-step S1032. In sub-step S1033, matrix multiplication calculation is performed based on the input samples.

На этапе S104 генерируются дискретные значения внутреннего предсказания MIP. Этап S104 включает четыре подэтапа: S1041, S1042, S1043 и S1044. На подэтапе S1041 блок предсказания MIP генерируется на основе весовой матрицы MIP, параметра сдвига смещения (например, «fO») и параметра сдвига номера (например, «sW»). В настоящем изобретении параметр сдвига смещения и параметр сдвига номера установлены как фиксированные значения. На подэтапе S1042 процесс интерполяции выполняется до блока предсказания MIP. На подэтапе S1043 транспонируется блок предсказания MIP. На подэтапе S1044 генерируются дискретные значения внутреннего предсказания MIP. В некоторых вариантах осуществления дискретные значения внутреннего предсказания MIP могут быть сгенерированы с учетом дискретных значений предсказания из соседних сверху пикселей. В других вариантах осуществления дискретные значения внутреннего предсказания MIP могут быть сгенерированы без учета дискретных значений предсказания из соседних сверху пикселей (например, только с учетом дискретных значений предсказания из соседних слева пикселей). Подробности процесса MIP описаны ниже со ссылкой на фиг. 3 и соответствующие уравнения.In step S104, MIP intra prediction discrete values are generated. Step S104 includes four sub-steps: S1041, S1042, S1043 and S1044. In sub-step S1041, a MIP prediction block is generated based on the MIP weight matrix, the offset offset parameter (eg, "fO"), and the number offset parameter (eg, "sW"). In the present invention, the offset shift parameter and the number shift parameter are set to fixed values. In sub-step S1042, the interpolation process is performed before the MIP prediction block. In sub-step S1043, the MIP prediction block is transposed. In sub-step S1044, discrete MIP intra prediction values are generated. In some embodiments, the intra MIP prediction samples may be generated by taking into account the prediction samples from the top adjacent pixels. In other embodiments, the intra MIP prediction samples may be generated without considering the prediction samples from the top adjacent pixels (eg, only considering the prediction samples from the left adjacent pixels). Details of the MIP process are described below with reference to FIG. 3 and corresponding equations.

На фиг. 2 представлено схематическое изображение системы 200 кодирования согласно варианту осуществления настоящего изобретения. Система 200 кодирования выполнена с возможностью кодирования, сжатия и/или обработки входного кадра 20 и генерирования выходного битового потока 21 в двоичной форме. Система 200 кодирования включает узел 201 разделения, выполненный с возможностью разделения входного кадра 20 на один или более узлов 22 кодового дерева (CTU). В некоторых вариантах осуществления узел 201 разделения может разделять кадр на срезы, плитки и/или пакеты. Каждый из пакетов может содержать один или более цельных и/или частичных CTU 22. В некоторых вариантах осуществления узел 201 разделения может также образовывать один или более фрагментов кадров, каждый из которых может содержать один или более срезов, плиток или пакетов. Узел 201 разделения передает CTU 22 в узел 202 предсказания для дальнейшей обработки.In fig. 2 is a schematic diagram of an encoding system 200 according to an embodiment of the present invention. The encoding system 200 is configured to encode, compress and/or process the input frame 20 and generate an output bitstream 21 in binary form. The encoding system 200 includes a splitter 201 configured to split the input frame 20 into one or more code tree nodes (CTUs) 22. In some embodiments, the splitter 201 may split a frame into slices, tiles, and/or packets. Each of the packets may contain one or more whole and/or partial CTUs 22. In some embodiments, the splitter 201 may also form one or more frame fragments, each of which may contain one or more slices, tiles, or packets. The division node 201 transmits the CTU 22 to the prediction node 202 for further processing.

Узел 202 предсказания выполнен с возможностью генерирования блока 23 предсказания для каждого из CTU 22. Блок 23 предсказания может быть сгенерирован на основе одного или более способов предсказания, осуществляемого между изображениями, или внутреннего предсказания посредством использования различных схем интерполяции и/или экстраполяции. Как показано на фиг. 2, узел 202 предсказания может дополнительно содержать узел 203 блока разделения, узел 204 ME (анализ движения), узел 205 MC (компенсация движения) и узел 206 внутреннего предсказания. Узел 203 блока разделения выполнен с возможностью разделения CTU 22 на меньшие узлы кодирования (CU) или блоки кодирования (CB). В некоторых вариантах осуществления CU может быть сгенерирован из CTU 22 с помощью различных способов, таких как разделение квадродерева, двоичное разделение и троичное разделение. Узел 204 ME выполнен с возможностью оценки изменения, возникающего в результате движения объекта, показанного во входном кадре 20, или движения устройства захвата кадра, которое генерирует входной кадр 20. Узел 205 MC выполнен с возможностью регулировки и компенсации изменения, вызванного вышеупомянутым движением. И узел 204 ME, и узел 205 MC выполнены с возможностью получения блока предсказания, осуществляемого между изображениями (например, в различные моменты времени), CU. В некоторых вариантах осуществления узел 204 ME и узел 205 MC могут использовать способ анализа движения с оптимизированным уровнем искажения для получения блока предсказания, осуществляемого между изображениями.The prediction unit 202 is configured to generate a prediction unit 23 for each of the CTUs 22. The prediction unit 23 may be generated based on one or more inter-picture prediction or intra-prediction methods by using various interpolation and/or extrapolation schemes. As shown in FIG. 2, the prediction node 202 may further include a partitioning block node 203, an ME (motion analysis) node 204, an MC (motion compensation) node 205, and an intra prediction node 206. The partitioning unit 203 is configured to divide the CTU 22 into smaller coding units (CUs) or coding blocks (CBs). In some embodiments, the CU may be generated from CTU 22 using various methods, such as quad-tree partitioning, binary partitioning, and ternary partitioning. The ME node 204 is configured to estimate a change resulting from the movement of an object shown in the input frame 20 or the movement of a frame grabber that generates the input frame 20. The MC node 205 is configured to adjust and compensate for the change caused by the above motion. Both the ME node 204 and the MC node 205 are configured to obtain a prediction block performed between images (eg, at different times) CU. In some embodiments, ME node 204 and MC node 205 may use a distortion-optimized motion analysis method to obtain an inter-image prediction block.

Узел 206 внутреннего предсказания выполнен с возможностью получения блока внутреннего (например, в один и тот же момент времени) предсказания CU (или части CU) с использованием различных режимов внутреннего предсказания, включая режимы MIP. Детали получения блока внутреннего предсказания с использованием режима MIP (именуемого здесь и далее «процесс MIP») рассмотрены со ссылкой на фиг. 1B и фиг. 3. Во-первых, во время осуществления процесса MIP узел 206 внутреннего предсказания получает одно или более опорных дискретных значений из соседних дискретных значений CU, путем, например, непосредственного использования соседних дискретных значений в качестве опорных дискретных значений, понижающей дискретизации соседних дискретных значений или непосредственного извлечения из соседних дискретных значений (например, этап 301 по фиг. 3).The intra prediction unit 206 is configured to obtain an intra (eg, at the same time) prediction block of a CU (or part of a CU) using various intra prediction modes, including MIP modes. Details of obtaining an intra prediction block using the MIP mode (hereinafter referred to as the “MIP process”) are discussed with reference to FIG. 1B and FIG. 3. First, during the MIP process, intra prediction node 206 obtains one or more reference samples from neighboring CU samples, by, for example, directly using neighboring samples as reference samples, downsampling neighboring samples, or directly extracting from adjacent samples (eg, step 301 of FIG. 3).

Во-вторых, узел 206 внутреннего предсказания получает предсказанные дискретные значения во множестве положений дискретного значения в CU, используя опорные дискретные значения, матрицу MIP и параметр сдвига. Позиции дискретного значения могут быть заданы позициями дискретного значения в CU. Например, позиции дискретного значения могут представлять собой позиции с нечетными значениями горизонтальных и вертикальных координат в пределах CU (например, x = 1, 3, 5 и т. д.; y = 1, 3, 5 и т. д.). Параметр сдвига включает параметр сдвига смещения и параметр сдвига номера, которые могут быть использованы в операциях сдвига при генерировании предсказанных дискретных значений. При такой компоновке узел 206 внутреннего предсказания может генерировать предсказанные дискретные значения в CU (т. e. «предсказание MIP» или «блок предсказания MIP» относится к группе таких предсказанных дискретных значений) (например, этап 302 по фиг. 3). В некоторых вариантах осуществления позиции дискретного значения могут представлять собой позиции с четными значениями горизонтальных и вертикальных координат в пределах CU.Second, intra prediction unit 206 obtains predicted samples at a plurality of sample positions in the CU using reference samples, a MIP matrix, and a shift parameter. Digital value positions can be specified by digital value positions in the CU. For example, discrete value positions may represent positions with odd horizontal and vertical coordinate values within the CU (eg, x = 1, 3, 5, etc.; y = 1, 3, 5, etc.). The shift parameter includes an offset shift parameter and a number shift parameter, which can be used in shift operations in generating predicted discrete values. With such an arrangement, the intra prediction unit 206 may generate predicted samples in the CU (ie, “MIP prediction” or “MIP prediction block” refers to a group of such predicted samples) (eg, step 302 of FIG. 3). In some embodiments, discrete value positions may be positions with even horizontal and vertical coordinate values within the CU.

В-третьих, узел 206 внутреннего предсказания может получать предсказанные дискретные значения в оставшихся позициях (например, тех, которые не являются позициями дискретного значения) CU (например, этап 303 по фиг. 3). В некоторых вариантах осуществления узел 206 внутреннего предсказания может использовать интерполяционный фильтр для получения предсказанного дискретного значения в оставшихся позициях. По предыдущим процессам узел 206 внутреннего предсказания может генерировать блок 23 предсказания для CU в CTU 22.Third, intra prediction node 206 may obtain predicted samples at remaining positions (eg, those that are not sample positions) of the CU (eg, step 303 of FIG. 3). In some embodiments, intra prediction node 206 may use an interpolation filter to obtain a predicted sample value at the remaining positions. According to the previous processes, the intra prediction unit 206 may generate a prediction unit 23 for the CU in the CTU 22.

Со ссылкой на фиг. 2 узел 202 предсказания выводит блок 23 предсказания в сумматор 207. Сумматор 207 вычисляет разницу (например, остаток R) между выходом (например, CU в CTU 22) узла 201 разделения и выходом (т. e. блоком 23 предсказания CU) блока 202 предсказания. Узел 208 трансформации считывает остаток R и выполняет одну или более трансформационных операций на блоке 23 предсказания для получения коэффициентов 24 для дальнейшего использования. Узел 209 квантования может квантовать коэффициенты 24 и выводить квантованные коэффициенты 25 (например, уровни) в узел 210 обратного квантования. Узел 210 обратного квантования выполняет операции масштабирования на квантованных коэффициентах 25 для вывода восстановленных коэффициентов 26 в узел 211 обратной трансформации. Узел 211 обратной трансформации выполняет одну или более обратных трансформаций, соответствующих трансформациям в узле 208 трансформации и выводит восстановленный остаток 27.With reference to FIG. 2, prediction node 202 outputs prediction unit 23 to adder 207. Adder 207 calculates the difference (eg, remainder R) between the output (eg, CU in CTU 22) of splitting node 201 and the output (ie, CU prediction unit 23) of prediction unit 202. . Transformation unit 208 reads the remainder R and performs one or more transformation operations on predictor 23 to obtain coefficients 24 for further use. The quantization unit 209 may quantize the coefficients 24 and output the quantized coefficients 25 (eg, levels) to the inverse quantization unit 210. The inverse quantization unit 210 performs scaling operations on the quantized coefficients 25 to output the reconstructed coefficients 26 to the inverse transform unit 211 . The inverse transformation node 211 performs one or more inverse transformations corresponding to the transformations in the transformation node 208 and outputs the reconstructed remainder 27.

Сумматор 212 затем вычисляет восстановленный CU путем суммирования восстановленного остатка 27 и блока 23 предсказания CU из узла 202 предсказания. Сумматор 212 также пересылает свой выход 28 в узел 202 предсказания для использования в качестве ссылки внутреннего предсказания. После восстановления всех CU в CTU 22, узел 213 фильтрации может выполнять фильтрацию в контуре на восстановленном кадре 29. Узел 213 фильтрации содержит один или более фильтров, например, деблокирующий фильтр, адаптивный фильтр смещения дискретного значения (SAO), адаптивный контурный фильтр (ALF), фильтр отображения яркости с масштабированием цветности (LMCS), фильтр на основе нейронной сети и другие подходящие фильтры для подавления искажений кодирования или повышения качества кодирования кадра.The adder 212 then calculates the reconstructed CU by summing the reconstructed remainder 27 and the CU prediction block 23 from the prediction node 202 . The adder 212 also forwards its output 28 to prediction node 202 for use as an intra prediction reference. After recovering all CUs in CTU 22, filtering node 213 can perform loop filtering on the reconstructed frame 29. Filtering node 213 includes one or more filters, for example, a deblocking filter, an adaptive sample offset filter (SAO), an adaptive loop filter (ALF) , luma display chroma scaling (LMCS) filter, neural network filter, and other suitable filters for suppressing encoding artifacts or improving encoding quality of a frame.

Узел 213 фильтрации может затем отправлять декодированный кадр 30 (или фрагмент кадра) в буфер декодированного кадра (DPB) 214. DPB 214 выводит декодированный кадр 31 на основе управляющей информации. Кадр 31, хранящийся в DPB 214, может быт также использован в качестве опорного изображения для выполнения предсказания, осуществляемого между изображениями, или внутреннего предсказания узлом 202 предсказания.Filtering unit 213 may then send the decoded frame 30 (or frame fragment) to the decoded frame buffer (DPB) 214. DPB 214 outputs the decoded frame 31 based on the control information. The frame 31 stored in the DPB 214 may also be used as a reference picture to perform inter-picture prediction or intra prediction by the prediction node 202.

Узел 215 энтропийного кодирования выполнен с возможностью преобразования кадров 31, параметров из узлов в системе 200 кодирования и вспомогательной информации (например, информации для контроля или осуществления связи с системой 200) в двоичную форму. Узел 215 энтропийного кодирования может генерировать выходной битовый поток 21 соответственно.Entropy encoding node 215 is configured to convert frames 31, parameters from nodes in encoding system 200, and auxiliary information (eg, information for monitoring or communicating with system 200) into binary form. The entropy encoding unit 215 may generate an output bitstream 21 accordingly.

В некоторых вариантах осуществления система 200 кодирования может быть вычислительным устройством с процессором и носителем данных с одной или более программами кодирования. Когда процессор считывает и выполняет программы кодирования, система 200 кодирования может принимать входной кадр 20 и, соответственно, генерировать выходной битовый поток 21. В некоторых вариантах осуществления система 200 кодирования может быть вычислительным устройством с одним или более чипов. Узлы или элементы системы 200 кодирования могут быть внедрены в качестве интегральных схем на чипы.In some embodiments, the encoding system 200 may be a computing device with a processor and a storage medium with one or more encoding programs. As the processor reads and executes encoding programs, encoding system 200 may receive an input frame 20 and accordingly generate an output bitstream 21. In some embodiments, encoding system 200 may be a computing device with one or more chips. The nodes or elements of the encoding system 200 may be implemented as integrated circuits on chips.

На фиг. 3 представлено схематическое изображение, иллюстрирующее процесс MIP согласно вариантам осуществления настоящего изобретения. Процесс MIP может быть внедрен узлом внутреннего предсказания (например, узлом 206 внутреннего предсказания). Как показано на фиг. 3, узел внутреннего предсказания может содержать модуль 301 предсказания и модуль 302 фильтрации. Как также показано на фиг. 3, процесс MIP включает три этапа 301, 302 и 303. Процесс MIP может генерировать предсказанный блок на основе текущего блока или блока 300 кодирования (такого как CU или разделения CU).In fig. 3 is a schematic diagram illustrating a MIP process according to embodiments of the present invention. The MIP process may be implemented by an intra prediction node (eg, intra prediction node 206). As shown in FIG. 3, the intra prediction unit may include a prediction module 301 and a filtering module 302. As also shown in FIG. 3, the MIP process includes three steps 301, 302 and 303. The MIP process may generate a predicted block based on the current block or encoding block 300 (such as a CU or a CU split).

Этап 301Stage 301

На этапе 301 узел внутреннего предсказания может использовать соседние дискретные значения 31, 33 блока 300 кодирования для генерирования опорных дискретных значений 32, 34. В иллюстрируемом варианте осуществления соседние дискретные значения 31 являются соседними сверху дискретными значениями и соседние дискретные значения 33 являются соседними слева дискретными значениями. Узел внутреннего предсказания 206 может вычислять среднее значение из каждых двух соседних дискретных значений 31, 33 и устанавливать среднее значение в качестве значения опорных дискретных значений 32, 34, соответственно. В некоторых вариантах осуществления узел 206 внутреннего предсказания может выбирать значение одного из каждых двух соседних дискретных значений 31 или 33 в качестве значения опорного дискретного значения 32 или 32. В иллюстрируемом варианте осуществления узел 206 внутреннего предсказания получает 4 опорных дискретных значения 32 из 8 соседних сверху дискретных значений 31 блока 300 кодирования, и других 4 опорных дискретных значения 34 из 8 соседних слева дискретных значений 33 блока 300 кодирования.At step 301, the intra prediction node may use adjacent samples 31, 33 of encoding block 300 to generate reference samples 32, 34. In the illustrated embodiment, adjacent samples 31 are top adjacent samples and adjacent samples 33 are left adjacent samples. The intra prediction unit 206 may calculate the average value from each two adjacent samples 31, 33 and set the average value as the value of the reference samples 32, 34, respectively. In some embodiments, the intra prediction node 206 may select the value of one of every two adjacent samples 31 or 33 as the value of the reference sample 32 or 32. In the illustrated embodiment, the intra prediction node 206 receives 4 reference samples 32 from the 8 adjacent samples values 31 of the coding block 300, and the other 4 reference samples 34 of the 8 adjacent left samples 33 of the coding block 300.

На этапе 301 узел внутреннего предсказания определяет ширину и высоту блока 300 кодирования и обозначает их как переменные «cbWidth» и «cbHeight» соответственно. В некоторых вариантах осуществления узел внутреннего предсказания 206 может принимать процесс принятия решения о режиме с оптимизированным уровнем искажения для определения режима внутреннего предсказания (например, при использовании режима MIP). В таких вариантах осуществления блок 300 кодирования может быть разделен на один или более блоков трансформации, ширина и высота которых указаны как переменные «nTbW» и «nTbH» соответственно. Когда режим MIP используется в качестве режима внутреннего предсказания, узел внутреннего предсказания определяет идентификатор размера MIP (обозначенный как переменная «mipSizeId») на основе следующих условий A-C.At step 301, the intra prediction node determines the width and height of the encoding block 300 and denotes them as the variables “cbWidth” and “cbHeight”, respectively. In some embodiments, intra prediction node 206 may adopt a distortion optimized mode decision process to determine the intra prediction mode (eg, when using the MIP mode). In such embodiments, encoding block 300 may be divided into one or more transformation blocks, the width and height of which are specified as the variables "nTbW" and "nTbH", respectively. When the MIP mode is used as the intra prediction mode, the intra prediction node determines the MIP size identifier (denoted as the variable "mipSizeId") based on the following conditions A-C.

[УСЛОВИЕ A] Если как «nTbW», так и «nTbH» составляют 4, «mipSizeId» устанавливают как 0. [CONDITION A] If both "nTbW" and "nTbH" are 4, "mipSizeId" is set to 0.

[УСЛОВИЕ B] В противном случае, если либо «cbWidth», либо «cbHeight» составляет 4, «mipSizeId» устанавливают как 1. [CONDITION B] Otherwise, if either "cbWidth" or "cbHeight" is 4, "mipSizeId" is set to 1.

[УСЛОВИЕ C] В противном случае, «mipSizeId» устанавливают как 2. [CONDITION C] Otherwise, "mipSizeId" is set to 2.

В качестве примера, если размер блока 300 кодирования составляет «8x8» (т.e. как «cbWidth», так и «cbHeight» составляют 8), тогда «mipSizeId» устанавливают как 2. В качестве другого примера, если размер трансформируемого блока 300 кодирования составляет «4x4» (т. e. как «nTbW», так и «nTbH» составляют 4), тогда «mipSizeId» устанавливают как 0. В еще одном примере, если размер блока 300 кодирования составляет «4x8», тогда «mipSizeId» устанавливают как 1.As an example, if the size of the encoding block 300 is "8x8" (i.e., both "cbWidth" and "cbHeight" are 8), then the "mipSizeId" is set to 2. As another example, if the size of the transform block is 300 encoding is "4x4" (i.e., both "nTbW" and "nTbH" are 4), then "mipSizeId" is set to 0. In yet another example, if the size of encoding block 300 is "4x8", then "mipSizeId" " is set to 1.

В иллюстрируемых вариантах осуществления представлены три типа «mipSizeId», которые составляют «0», «1» и «2». Каждый тип идентификаторов размеров MIP (т. e. переменная «mipSizeId») соответствует определенному способу выполнения процесса MIP (например, использованию различных матриц MIP). В других вариантах осуществления может быть более трех типов идентификаторов размера MIP.In the illustrated embodiments, three types of "mipSizeId" are presented, which are "0", "1" and "2". Each type of MIP size identifier (i.e., "mipSizeId" variable) corresponds to a specific way of performing the MIP process (i.e., using different MIP matrices). In other embodiments, there may be more than three types of MIP size identifiers.

На основе идентификатора размера MIP узел внутреннего предсказания может определять переменные («Size» и «predSize» на основе следующих условий D-F.Based on the MIP size ID, the intra prediction node can determine variables (“Size” and “predSize” based on the following conditions D-F.

[УСЛОВИЕ D] Если «mipSizeId» составляет 0, «boundarySize» устанавливают как 2 и «predSize» как 4. [CONDITION D] If "mipSizeId" is 0, "boundarySize" is set to 2 and "predSize" to 4.

[УСЛОВИЕ E] Если «mipSizeId» составляет 1, «boundarySize» устанавливают как 4 и «predSize» как 4. [CONDITION E] If "mipSizeId" is 1, "boundarySize" is set to 4 and "predSize" to 4.

[УСЛОВИЕ F] Если «mipSizeId» составляет 2, «boundarySize» устанавливают как 4 и «predSize» как 8. [CONDITION F] If "mipSizeId" is 2, "boundarySize" is set to 4 and "predSize" to 8.

В иллюстрируемых вариантах осуществления «boundarySize» представляет число опорных дискретных значений 32, 34, полученных из каждого из соседних сверху дискретных значений 31 и соседних слева дискретных значений 33 блока 300 кодирования. Переменная «predSize» должна быть использована при последующих вычислениях (т. e. уравнении (C) ниже).In the illustrated embodiments, “boundarySize” represents the number of reference samples 32, 34 obtained from each of the top adjacent samples 31 and left adjacent samples 33 of encoding block 300. The variable "predSize" must be used in subsequent calculations (ie equation (C) below).

В некоторых вариантах осуществления узел внутреннего предсказания может получать переменную «isTransposed» для указания порядка опорных дискретных значений 32, 34, сохраненных во временном массиве. Например, «isTransposed» равен «0» указывает на то, что узел внутреннего предсказания представляет опорные дискретные значения 32, полученные из соседних сверху дискретных значений 31 блока 300 кодирования, до получения опорных дискретных значений 34 из соседних слева дискретных значений 33. Альтернативно, «isTransposed» равен «1» указывает на то, что узел внутреннего предсказания представляет опорные дискретные значения 34, полученные из соседних слева дискретных значений 33 блока 300 кодирования, до получения опорных дискретных значений 32 из соседних сверху дискретных значений 31. При внедрении системы 200 кодирования значение «isTransposed» отправляется на узел энтропийного кодирования (например, узел 215 энтропийного кодирования) в качестве одного из параметров процесса MIP, который закодирован и записан в битовый поток (например, выходной битовый поток 21). Соответственно, при внедрении системы 400 декодирования на фиг. 4, описанной в этом изобретении, значение «isTransposed» может быть принято из узла анализа (например, узла 401 анализа) путем анализа битового потока (который может быть выходным битовым потоком 21).In some embodiments, the intra prediction node may receive an "isTransposed" variable to indicate the order of the reference samples 32, 34 stored in the temporary array. For example, "isTransposed" is equal to "0" indicates that the intra prediction node represents the reference samples 32 obtained from the top adjacent samples 31 of the encoding block 300, before obtaining the reference samples 34 from the left adjacent samples 33. Alternatively, " isTransposed" is equal to "1" indicates that the intra prediction node represents the reference samples 34 obtained from the left adjacent samples 33 of the encoding block 300, before obtaining the reference samples 32 from the top adjacent samples 31. When implementing the encoding system 200, the value "isTransposed" is sent to the entropy encoding node (eg, entropy encoding node 215) as one of the parameters of the MIP process, which is encoded and written to a bitstream (eg, output bitstream 21). Accordingly, when implementing the decoding system 400 in FIG. 4 described in this invention, the value "isTransposed" can be received from the parsing node (eg, parsing node 401) by parsing the bitstream (which may be the output bitstream 21).

Узел внутреннего предсказания может дополнительно определять переменную «inSize» для указания номера опорных дискретных значений 32, 34, используемых при получении предсказания MIP. Значение «inSize» определяется по следующему уравнению (A) . В этом изобретении значения и операции всех операторов в уравнениях такие же, как и у соответствующих операторов, определенных в стандарте ITU-T H.265.The intra prediction node may further define a variable "inSize" to indicate the number of reference samples 32, 34 used in obtaining the MIP prediction. The value of "inSize" is determined by the following equation (A) . In this invention, the meanings and operations of all operators in the equations are the same as the corresponding operators defined in the ITU-T H.265 standard.

inSize = ( 2 * boundarySize) - (mipSizeId = = 2) ? 1:0; (A) inSize = ( 2 * boundarySize) - (mipSizeId == 2) ? 1:0; (A)

Например, «= =» это реляционный оператор «равный». Например, если «mipSizeId» составляет 2, то «inSize» составляет 7 (вычисленное по (2*4)-1). Если «mipSizeId» составляет 1, то «inSize» составляет 8 (вычисленное по (2*4)-0). В некоторых вариантах осуществления параметр «inSize» можно найти в таблице идентификации размера ниже.For example, "==" is the relational "equal" operator. For example, if "mipSizeId" is 2, then "inSize" is 7 (calculated by (2*4)-1). If "mipSizeId" is 1, then "inSize" is 8 (calculated by (2*4)-0). In some embodiments, the "inSize" parameter can be found in the size identification table below.

Таблица идентификации размераSize Identification Chart

Узел внутреннего предсказания может вызывать следующий процесс для получения группы опорных дискретных значений 32, 34, которые хранятся в массиве p[x] («x» составляет от «0» до «inSize-1»). Узел внутреннего предсказания может получить дискретные значения «nTbW» из соседних сверху дискретных значений 31 блока 300 кодирования (и сохранить их в массиве «refT») и дискретные значения «nTbH» из соседних слева дискретных значений 33 (и сохранить их в массиве «refL») блока 300 кодирования.The intra prediction node may call the following process to obtain a group of reference samples 32, 34, which are stored in the array p[x] (“x” is from “0” to “inSize-1”). The intra prediction node may obtain samples "nTbW" from the top adjacent samples 31 of the encoding block 300 (and store them in the array "refT") and samples "nTbH" from the left adjacent samples 33 (and store them in the array "refL" ) coding block 300.

Узел внутреннего предсказания может инициировать процесс понижающей дискретизации на «refT» для получения дискретных значений «boundarySize» и сохранения дискретных значений «boundarySize » в «refT». Аналогично, узел 206 внутреннего предсказания может инициировать процесс понижающей дискретизации на «refL» для получения дискретных значений «boundarySize» и сохранения дискретных значений «boundarySize» в «refL».The intra prediction node may initiate a downsampling process on "refT" to obtain the sampled "boundarySize" values and store the sampled "boundarySize" values in "refT". Likewise, intra prediction node 206 may initiate a downsampling process on "refL" to obtain sampled "boundarySize" values and store the sampled "boundarySize" values in "refL".

В некоторых вариантах осуществления узел внутреннего предсказания может объединять массивы «refT» и «refL» в один массив «pTemp» на основе порядка, указанного с помощью переменной «isTransposed». Узел внутреннего предсказания может получать «isTransposed» для указания порядка опорных дискретных значений, сохраненных во временном массиве «pTemp». Например, «isTransposed» равен «0» (или НЕВЕРНО) указывает на то, что узел внутреннего предсказания представляет опорные дискретные значения 32, полученные из соседних сверху дискретных значений 31 блока 300 кодирования, до получения опорных дискретных значений 34 из соседних слева дискретных значений 33. В других случаях «isTransposed» равен «1» (или ВЕРНО) указывает на то, что узел внутреннего предсказания представляет опорные дискретные значения 34, полученные из соседних слева дискретных значений 33 блока 300 кодирования, до получения опорных дискретных значений 32 из соседних сверху дискретных значений 31. В некоторых вариантах осуществления при внедрении системы 200 кодирования узел внутреннего предсказания может определять значение «isTransposed» путем использования способа оптимизации уровня искажения. В некоторых вариантах осуществления при внедрении системы 200 кодирования узел внутреннего предсказания может определять значение «isTransposed» на основе сравнений и/или корреляций между соседними дискретными значениями 32, 34 и блоком 300 кодирования. При внедрении системы 200 кодирования значение «isTransposed» может быть направлено на узел энтропийного кодирования (например, узел 215 энтропийного кодирования) в качестве одного из параметров процесса MIP, который должен быть записан в битовый поток (например, выходной битовый поток 21). Соответственно, при внедрении системы 400 декодирования на фиг. 4, описанной в этом изобретении, значение «isTransposed» может быть принято из узла анализа (например, узла 401 анализа) путем анализа битового потока (который может быть выходным битовым потоком 21).In some embodiments, the intra prediction node may combine the "refT" and "refL" arrays into a single "pTemp" array based on the order specified by the "isTransposed" variable. The intra prediction node may receive "isTransposed" to indicate the order of the reference samples stored in the temporary array "pTemp". For example, "isTransposed" is "0" (or FALSE) indicates that the intra prediction node represents reference samples 32 derived from top adjacent samples 31 of encoding block 300 before obtaining reference samples 34 from left adjacent samples 33 In other cases, "isTransposed" is equal to "1" (or TRUE) indicates that the intra prediction node represents the reference samples 34 obtained from the left adjacent samples 33 of the encoding block 300, before obtaining the reference samples 32 from the top adjacent samples. values 31. In some embodiments, when implementing encoding system 200, the intra prediction node may determine the value of "isTransposed" by using a distortion level optimization method. In some embodiments, when implementing encoding system 200, the intra prediction node may determine the value of "isTransposed" based on comparisons and/or correlations between adjacent samples 32, 34 and encoding block 300. When implementing encoding system 200, the value of “isTransposed” may be directed to an entropy encoding node (eg, entropy encoding node 215) as one of the MIP process parameters to be written to a bitstream (eg, output bitstream 21). Accordingly, when implementing the decoding system 400 in FIG. 4 described in this invention, the value "isTransposed" can be received from the parsing node (eg, parsing node 401) by parsing the bitstream (which may be the output bitstream 21).

В некоторых вариантах осуществления параметр «mipSizeId» может быть использован для определения того, что выбранный параметр размера текущего блока находится в предопределенном диапазоне. Более конкретно, «mipSizeId» равный «0» или «1» означает, что выбранный параметр размера находится в предопределенном диапазоне. Если «mipSizeId» равен «2», это означает, что выбранный параметр размера находится в предопределенном диапазоне. Другими словами, входное дискретное значение MIP может быть определено на основе буферной зоны (например, «pTemp»), идентификатора размера MIP (например, «mipSizeId»), битовой глубины соседних дискретных значений (например, «BitDepth»), как рассмотрено детально ниже.In some embodiments, the "mipSizeId" parameter may be used to determine that the selected current block size parameter is within a predefined range. More specifically, a "mipSizeId" equal to "0" or "1" means that the selected size parameter is within a predefined range. If "mipSizeId" is "2", it means that the selected size parameter is within the predefined range. In other words, the input MIP sample can be determined based on the buffer zone (eg, "pTemp"), the MIP size identifier (eg, "mipSizeId"), the bit depth of adjacent samples (eg, "BitDepth"), as discussed in detail below .

Узел внутреннего предсказания может определять массив «p[x]» (x от «0» до «inSize-1») на основе следующих условий G и H.The intra prediction node can determine the array "p[x]" (x from "0" to "inSize-1") based on the following conditions G and H.

[УСЛОВИЕ G] Если «mipSizeId» составляет 2, p[x] = pTemp[x+1] - pTemp[0]. [CONDITION G] If "mipSizeId" is 2, p[x] = pTemp[x+1] - pTemp[0].

[УСЛОВИЕ H] В противном случае (например, «mipSizeId» составляет менее 2), p[0]=pTemp[0]-(1<<( BitDepth-1)) и p[x]=pTemp[x]-pTemp[0] (для x от 1 до «inSize-1»). [CONDITION H] Otherwise (e.g. "mipSizeId" is less than 2), p[0]=pTemp[0]-(1<<( BitDepth-1)) and p[x]=pTemp[x]-pTemp [0] (for x from 1 to "inSize-1").

При вышеуказанном условии H «BitDepth» является битовой глубиной цветового компонента дискретного значения (например, Y компонента) в блоке 300 кодирования. Символ «<<» - это символ битового сдвига, используемый в стандарте ITU-T H.265.Under the above condition, H “BitDepth” is the bit depth of the color component of the sampled value (eg, the Y component) in the encoding block 300 . The "<<" character is a bit shift character used in the ITU-T H.265 standard.

Альтернативно, узел внутреннего предсказания может получать массив p[x] (для x от 0 до «inSize-1») на основе следующих условий I и J.Alternatively, the intra prediction node can obtain the array p[x] (for x from 0 to "inSize-1") based on the following conditions I and J.

[УСЛОВИЕ I] Если «mipSizeId» составляет 2, p[x]=pTemp[x+1]-pTemp[0]. [CONDITION I] If "mipSizeId" is 2, p[x]=pTemp[x+1]-pTemp[0].

[УСЛОВИЕ J] В противном случае (например, «mipSizeId» составляет менее 2), p[0]=(1<<(BitDepth-1))-pTemp[0] и p[x]=pTemp[x]-pTemp[0] (для x от 1 до «inSize-1»). [CONDITION J] Otherwise (e.g. "mipSizeId" is less than 2), p[0]=(1<<(BitDepth-1))-pTemp[0] and p[x]=pTemp[x]-pTemp [0] (for x from 1 to "inSize-1").

В некоторых вариантах осуществления узел внутреннего предсказания может определять значения массива p[x], используя унифицированный способ вычисления, без учета значения «mipSizeId». Например, узел внутреннего предсказания может добавить «(1<<(BitDepth-1))» в качестве дополнительного элемента в «pTemp» и вычислять p[x] как «pTemp[x]-pTemp[0]».In some embodiments, the intra prediction node may determine array values p[x] using a uniform calculation method without regard to the "mipSizeId" value. For example, an intra prediction node may add "(1<<(BitDepth-1))" as an additional element to "pTemp" and calculate p[x] as "pTemp[x]-pTemp[0]".

В некоторых вариантах осуществления параметр «1<<(BitDepth-1)» может быть константой. В некоторых вариантах осуществления параметр «1<<(BitDepth-1)» может быть показан как «2^(BitDepth-1)». Соответственно, параметры «p[0] и «p[x]» могут быть вычислены на основе уравнений P-1 , P-2 и P-3 ниже.In some embodiments, the parameter "1<<(BitDepth-1)" may be a constant. In some embodiments, the parameter "1<<(BitDepth-1)" may be shown as "2^(BitDepth-1)". Accordingly, the parameters “p[0] and “p[x]” can be calculated based on equations P-1 , P-2 and P-3 below.

(P-1) (P-1)

(P-2) (P-2)

(P-3) (P-3)

Уравнения P-1 и P-2 применяют случаи, когда «mipSizeId» равен «0» или «1», что означает, что выбранный параметр размера находится в предопределенном диапазоне. После определения, что выбранный параметр размера текущего блока находится в предопределенном диапазоне, может быть определен «1<<(BitDepth-1)». Затем может быть определена разница между «1<<(BitDepth-1)» и «pTemp[0]». Разницу затем устанавливают как p[0]. Затем p[x] может быть вычислено на основе уравнений P-1 и P-2 выше.Equations P-1 and P-2 apply when "mipSizeId" is "0" or "1", which means the selected size parameter is within a predefined range. After determining that the selected current block size parameter is within a predefined range, "1<<(BitDepth-1)" may be specified. The difference between "1<<(BitDepth-1)" and "pTemp[0]" can then be determined. The difference is then set to p[0]. Then p[x] can be calculated based on equations P-1 and P-2 above.

Уравнение P-3 применяет случаи, когда «mipSizeId» равен «2», что означает, что выбранный параметр размера не находится в предопределенном диапазоне. Предположим, что текущий блок представляет собой блок 4x4, что означает, что в буферной зоне «pTemp» находятся четыре значения. Этими четырьмя значениями являются pTemp[0], pTemp[1], pTemp[2] и pTemp[3]. На основе уравнения P-3 выше и этих четырех значений может быть определен массив «p[x]». Значения в массиве «p[x]» могут быть названы вводными дискретными значениями MIP.Equation P-3 applies to cases where "mipSizeId" is "2", which means the selected size parameter is not within the predefined range. Let's assume that the current block is a 4x4 block, which means there are four values in the "pTemp" buffer zone. These four values are pTemp[0], pTemp[1], pTemp[2], and pTemp[3]. Based on Equation P-3 above and these four values, the array "p[x]" can be defined. The values in the "p[x]" array can be called the MIP input samples.

Этап 302Stage 302

На этапе 302 узел внутреннего предсказания (или модуль 301 предсказания) получает предсказание MIP блока 300 кодирования путем использования группы опорных дискретных значений 32, 34 и матрицы MIP. Матрица MIP выбирается из группы предварительно определенных матриц MIP на основе соответствующего идентификатора режима MIP (т. e. переменной «mipModeId») и идентификатора размера MIP (т. e. переменной «mipSizeId»).At step 302, the intra prediction node (or prediction module 301) obtains the MIP prediction of the encoding block 300 by using the group of reference samples 32, 34 and the MIP matrix. A MIP matrix is selected from a group of predefined MIP matrices based on the corresponding MIP mode identifier (i.e., the "mipModeId" variable) and the MIP size identifier (i.e., the "mipSizeId" variable).

Предсказание MIP, полученное узлом внутреннего предсказания, включает частичные предсказанные дискретные значения 35 из всех или частичных положений дискретных значений в блок 300 кодирования. Предсказание MIP обозначено как «predMip[x][y]».The MIP prediction obtained by the intra prediction node includes partial predicted samples 35 from all or partial sample positions into encoding block 300. The MIP prediction is denoted as “predMip[x][y]”.

В иллюстрируемом варианте осуществления на фиг. 3 частичные предсказанные дискретные значения 35 представляют собой дискретные значения, обозначенные серыми клеточками в текущем блоке 300. Опорные дискретные значения 32, 34 в массиве p[x], полученные на этапе 301, используются как вход в модуль 301 предсказания. Модуль 301 предсказания вычисляет частичные предсказанные дискретные значения 35 путем использования матрицы MIP и параметра сдвига. Параметр сдвига включает параметр сдвига смещения («fO») и параметр сдвига номера («sW»). В некоторых вариантах осуществления модуль 301 предсказания получает частичное предсказанное дискретное значение 35 со своими координатами (x, y) на основе следующих уравнений (B) и (C) :In the illustrated embodiment in FIG. 3, the partial predicted samples 35 are the samples indicated by the gray cells in the current block 300. The reference samples 32, 34 in the p[x] array obtained in step 301 are used as input to the prediction module 301. The prediction module 301 calculates the partial predicted samples 35 by using the MIP matrix and the shift parameter. The offset parameter includes an offset offset parameter (“fO”) and a number shift parameter (“sW”). In some embodiments, prediction module 301 obtains a partial predicted sample value 35 at its (x, y) coordinates based on the following equations (B) and (C) :

oW=(1<<(sW-1))-fO*() (B) oW=(1<<(sW-1))-fO*( ) (B)

predMip[x][y]=((()+oW)>>sW)+pTemp[0] (для x от 0 до «predSize-1», для y от 0 до «predSize-1») (C) predMip[x][y]=((( )+oW)>>sW)+pTemp[0] (for x from 0 to “predSize-1”, for y from 0 to “predSize-1”) (C)

В уравнении (B) выше, параметр «fO» представляет собой параметр сдвига смещения, который используется для определения параметра «oW» или значения смещения. Параметр «sW» представляет собой параметр сдвига номера. «p[i]» - опорное дискретное значение. Символ «>>» представляет собой двоичный оператор сдвига вправо, как определено в стандарте H.265.In equation (B) above, the parameter "fO" is the offset offset parameter, which is used to determine the parameter "oW" or the offset value. The "sW" parameter is the number shift parameter. “p[i]” - reference discrete value. The ">>" symbol represents the binary right shift operator as defined in the H.265 standard.

В уравнении (C) выше, «mWeight[i][j]» представляет собой весовую матрицу MIP, в которой элементы матрицы представляют собой фиксированные константы как для кодирования, так и декодирования. Альтернативно, в некоторых вариантах осуществления внедрение системы 200 кодирования использует адаптивную матрицу MIP. Например, весовая матрица MIP может быть обновлена с помощью различных обучающих способов, использующих один или более кодированных кадров в качестве входа, или использующих кадры, предоставленные системе 200 кодирования внешними средствами. Узел внутреннего предсказания может направлять «mWeight[i][j]» на узел энтропийного кодирования (например, узел 215 энтропийного кодирования), когда определен режим MIP. Узел энтропийного кодирования может затем записать «mWeight[i][j]» в битовый поток, например в один или более узлов специальных данных в битовом потоке, содержащем данные MIP. Соответственно, в некоторых вариантах осуществления внедрение системы 400 декодирования с адаптивной матрицей MIP может обновить матрицу MIP, используя, например, обучающий способ со входом из одного или более кодированных кадров или блоков или кадров из другого битового потока, предоставленных внешними средствами, или полученных из узла 401 анализа путем анализа узлов специальных данных во входном битовом потоке, содержащем данные матрицы MIP.In equation (C) above, “mWeight[i][j]” represents the MIP weight matrix, in which the matrix elements are fixed constants for both encoding and decoding. Alternatively, in some embodiments, the implementation of the encoding system 200 uses an adaptive MIP matrix. For example, the MIP weight matrix may be updated using various training methods using one or more encoded frames as input, or using frames provided to the encoding system 200 by external means. The intra prediction node may forward "mWeight[i][j]" to the entropy encoding node (eg, entropy encoding node 215) when the MIP mode is determined. The entropy encoding node may then write "mWeight[i][j]" to a bitstream, such as one or more special data nodes in the bitstream containing the MIP data. Accordingly, in some embodiments, implementation of an adaptive MIP matrix decoding system 400 may update the MIP matrix using, for example, a training method with input from one or more encoded frames or blocks or frames from another bitstream provided externally or received from a node 401 analysis by analyzing the special data nodes in the input bitstream containing the MIP matrix data.

Узел 301 предсказания может определять значения «sW» и «fO» на основе размера текущего блока 300 и режима MIP, используемого для текущего блока 300. В некоторых вариантах осуществления узел 301 предсказания может получать значения «sW» и «fO» с помощью использования справочной таблицы. Например, представленная ниже таблица 1 может быть использована для определения «sW».Prediction node 301 may determine the values of "sW" and "fO" based on the size of the current block 300 and the MIP mode used for the current block 300. In some embodiments, prediction node 301 may obtain the values of "sW" and "fO" by using the reference tables. For example, Table 1 below can be used to define "sW".

Таблица 1Table 1

В некоторых вариантах осуществления параметр сдвига номера «sW» может быть установлен в качестве первого фиксированного значения, например как 5 или 6. В таких вариантах осуществления нет необходимости использовать таблицу 1 выше для поиска значения параметра сдвига номера «sW». Например, когда «mipSizeId» равен «0» или «2», параметр сдвига номера «sW» может быть установлен как «5». В качестве другого примера, когда «mipSizeId» равен «2», параметр сдвига номера «sW» может быть установлен как «5». Таблица 2 ниже показывает различные установки параметра сдвига номера «sW». В некоторых вариантах осуществления параметр сдвига номера «sW» может быть установлен модулем 301 предсказания.In some embodiments, the number shift parameter "sW" may be set as a first fixed value, such as 5 or 6. In such embodiments, it is not necessary to use Table 1 above to find the value of the number shift parameter "sW". For example, when "mipSizeId" is "0" or "2", the number shift parameter "sW" can be set to "5". As another example, when "mipSizeId" is "2", the number shift parameter "sW" can be set to "5". Table 2 below shows the various settings for the number shift parameter “sW”. In some embodiments, the number shift parameter "sW" may be set by prediction module 301.

Таблица 2table 2

В некоторых вариантах осуществления модуль предсказания может быть установлен «sW» в качестве константы. Например, модуль предсказания может установить «sW» как «5» для блоков различных размеров с различными режимами MIP. В качестве другого примера модуль 301 предсказания может установить «sW» как «6» для блоков различных размеров с различными режимами MIP. В качестве еще одного примера модуль предсказания может установить «sW» как «7» для блоков различных размеров с различными режимами MIP.In some embodiments, the prediction module may be set to "sW" as a constant. For example, the prediction engine may set "sW" to "5" for different block sizes with different MIP modes. As another example, prediction module 301 may set "sW" to "6" for different block sizes with different MIP modes. As another example, the prediction module may set "sW" to "7" for different block sizes with different MIP modes.

В некоторых вариантах осуществления узел 301 предсказания может использовать таблицу 3 ниже для определения параметра сдвига смещения «fO».In some embodiments, prediction node 301 may use Table 3 below to determine the offset offset parameter "fO".

Таблица 3Table 3

В некоторых вариантах осуществления параметр сдвига смещения «fO» может быть установлен в качестве второго фиксированного значения, например как 23, 32, 46, 56 или 66. Второе фиксированное значение имеет предпочтительный диапазон 1-100. В таких вариантах осуществления нет необходимости использовать таблицу 3 выше для поиска значения параметра сдвига смещения «fO». В некоторых вариантах осуществления параметр сдвига смещения «fO» может быть установлен на основе параметра «mipSizeId». Например, когда «mipSizeId» равен «0», параметр сдвига смещения «fO» может быть установлен как «34». В качестве другого примера, когда «mipSizeId» равен «1», параметр сдвига смещения «fO» может быть установлен как «23». В качестве еще одного примера, когда «mipSizeId» равен «1», параметр сдвига смещения «fO» может быть установлен как «46». Таблица 4 ниже показывает различные установки параметра сдвига смещения «fO». В некоторых вариантах осуществления параметр сдвига смещения «fO» может быть установлен модулем 301 предсказания.In some embodiments, the offset offset parameter "fO" may be set to a second fixed value, such as 23, 32, 46, 56, or 66. The second fixed value has a preferred range of 1-100. In such embodiments, there is no need to use Table 3 above to find the value of the offset offset parameter "fO". In some embodiments, the offset offset parameter "fO" may be set based on the "mipSizeId" parameter. For example, when "mipSizeId" is "0", the offset offset parameter "fO" can be set to "34". As another example, when "mipSizeId" is "1", the offset offset parameter "fO" can be set to "23". As another example, when "mipSizeId" is "1", the offset offset parameter "fO" can be set to "46". Table 4 below shows the various settings for the offset offset parameter "fO". In some embodiments, the offset offset parameter "fO" may be set by prediction module 301.

Таблица 4Table 4

Со ссылкой на уравнение (B) выше, когда параметр сдвига номера «sW» и параметр сдвига смещения «fO» установлены как фиксированные значения, параметр «oW» может также быть константой, что повышает общую скорость вычислений процесса MIP.With reference to equation (B) above, when the number shift parameter "sW" and the offset shift parameter "fO" are set as fixed values, the parameter "oW" can also be a constant, which improves the overall computation speed of the MIP process.

В некоторых вариантах осуществления узел внутреннего предсказания может выполнять операцию «отсечения» на значении дискретных значений предсказания MIP, сохраненных в массиве «predMip». Когда «isTransposed» равен «1» (или ВЕРНО), «predSize x preSize» массив «predMip[x][y] (для x от 0 до «predSize-1; для y от 0 до «predSize-1») транспонируется в качестве «predTemp[y][x] = predMip[x][y]» и затем «predMip = predTemp».In some embodiments, the intra prediction node may perform a "pruning" operation on the value of the sample MIP prediction values stored in the "predMip" array. When "isTransposed" is "1" (or TRUE), the "predSize x preSize" array "predMip[x][y] (for x is 0 to "predSize-1; for y is 0 to "predSize-1") is transposed as "predTemp[y][x] = predMip[x][y]" and then "predMip = predTemp".

Более конкретно, когда размер блока 303 кодирования составляет «8x8» (т. e. как «cbWidth», так и «cbHeight» составляют 8), узел внутреннего предсказания может получать массив «predMip» размером «8x8».More specifically, when the size of the encoding block 303 is "8x8" (i.e., both "cbWidth" and "cbHeight" are 8), the intra prediction node can obtain an "8x8" array "predMip".

Этап 303Stage 303

На этапе 303 на фиг. 3 узел внутреннего предсказания получает предсказанные дискретные значения 37 из остальных дискретных значений, кроме частичных дискретных значений 35 в блоке 300 кодирования. Как показано на фиг. 3 узел внутреннего предсказания может использовать модуль 302 фильтрации для получения предсказанных дискретных значений 37 из остальных дискретных значений, кроме частичных дискретных значений 35 в блоке 300 кодирования. Вход в модуль 302 фильтрации может представлять собой частичные дискретные значения 35 на этапе 302. Модуль 302 фильтрации может использовать один или более интерполяционных фильтров для получения предсказанных дискретных значений 37 из остальных дискретных значений, кроме частичных дискретных значений 35 в блоке 300 кодирования. Узел внутреннего предсказания (или модуль 302 фильтрации) может генерировать предсказание (которое включает множество предсказанных дискретных значений 37) блока 300 кодирования и сохранять предсказание 37 в массиве «predSamples[x][y]» (для x от 0 до «nTbW-1», для y от 0 до «nTbH-1») согласно следующим условиям K и L.At step 303 in FIG. 3, the intra prediction node obtains the predicted samples 37 from the remaining samples except the partial samples 35 in the encoding block 300. As shown in FIG. 3, the intra prediction node may use the filtering module 302 to obtain predicted samples 37 from the remaining samples other than the partial samples 35 in the encoding block 300. The input to filtering module 302 may be partial samples 35 at step 302. Filtering module 302 may use one or more interpolation filters to obtain predicted samples 37 from the remaining samples other than partial samples 35 in encoding block 300. The intra prediction unit (or filtering module 302) may generate a prediction (which includes a plurality of predicted samples 37) of the encoding block 300 and store the prediction 37 in an array "predSamples[x][y]" (for x from 0 to "nTbW-1" , for y from 0 to "nTbH-1") according to the following conditions K and L.

[УСЛОВИЕ K] Если узел внутреннего предсказания определяет, что «nTbW» больше, чем «predSize», или что «nTbH» больше, чем «predSize», узел внутреннего предсказания инициирует процесс повышающей дискретизации для получения «predSamples» на основе «predMip». [CONDITION K] If the intra prediction node determines that "nTbW" is greater than "predSize" or that "nTbH" is greater than "predSize", the intra prediction node initiates an upsampling process to obtain "predSamples" based on "predMip" .

[УСЛОВИЕ L] В противном случае, узел внутреннего предсказания устанавливает предсказание блока 300 кодирования в качестве предсказания MIP блока кодирования. [CONDITION L] Otherwise, the intra prediction unit sets the prediction of the encoding block 300 as the MIP prediction of the encoding block.

Другими словами, узел внутреннего предсказания может установить «predSamples[x][y] (для x от 0 до «nTbW-1», для y от 0 до «nTbH-1») равным «predMip[x][y]». Например, узел внутреннего предсказания может установить «predSamples» для блока кодирования с его размерами, равными «8x8» (т.e. как «cbWidth», так и «cbHeight» составляют 8), как их «predMip[x][y]».In other words, the intra prediction node can set "predSamples[x][y] (for x from 0 to "nTbW-1", for y from 0 to "nTbH-1") equal to "predMip[x][y]". For example, an intra prediction node might set "predSamples" for an encoding block with its dimensions equal to "8x8" (i.e. both "cbWidth" and "cbHeight" are 8) as their "predMip[x][y] "

На этапах 301-303 узел внутреннего предсказания может генерировать предсказание текущего блока 300. Сгенерированное предсказание может быть использовано для дальнейшей обработки (например, блок 23 предсказания, рассмотренный выше со ссылкой на фиг. 2).At steps 301-303, the intra prediction unit may generate a prediction of the current block 300. The generated prediction may be used for further processing (eg, prediction block 23 discussed above with reference to FIG. 2).

На фиг. 4 представлена структурная схема системы 400 декодирования согласно варианту осуществления настоящего изобретения. Система 400 декодирования выполнена с возможностью приема, обработки и преобразования входного битового потока 40 в выходное видео 41. Входной битовый поток 40 может быть битовым потоком, представляющим сжатый/кодированный кадр/видео. В некоторых вариантах осуществления входной битовый поток 40 может быть из выходного битового потока (например, выходного битового потока 21), генерируемого системой кодирования (такой как система 200 кодирования).In fig. 4 is a block diagram of a decoding system 400 according to an embodiment of the present invention. The decoding system 400 is configured to receive, process, and convert an input bitstream 40 into an output video 41. The input bitstream 40 may be a bitstream representing a compressed/encoded frame/video. In some embodiments, input bitstream 40 may be from an output bitstream (eg, output bitstream 21) generated by an encoding system (such as encoding system 200).

Система 400 декодирования включает узел 401 анализа, выполненный с возможностью анализа входного битового потока 40 для получения из него значений элементов синтаксиса. Узел 401 анализа также преобразует двоичные представления элементов синтаксиса в числовые значения (т. е. блок 42 декодирования) и направляет числовые значения в узел 402 предсказания (например, для декодирования). В некоторых вариантах осуществления узел 401 анализа может также направлять одну или более переменных и/или параметров для декодирования числовых значений в узел 402 предсказания.The decoding system 400 includes an analysis unit 401 configured to analyze the input bit stream 40 to obtain syntax element values therefrom. Parsing unit 401 also converts binary representations of syntax elements into numeric values (ie, decoding unit 42) and forwards the numeric values to prediction unit 402 (eg, for decoding). In some embodiments, analysis node 401 may also forward one or more variables and/or parameters for decoding numeric values to prediction node 402.

Узел 402 предсказания выполнен с возможностью определения блока 43 предсказания блока 42 декодирования (например, CU или разделения CU, такого как блок трансформации). Если указано, что режим интеркодирования был использован для декодирования блока 42 декодирования, узел 403 MC (компенсация изменений) узла 402 предсказания может принимать соответствующие параметры из узла 401 анализа и, соответственно, декодировать в режиме интеркодирования. Если указано, что режим внутреннего предсказания (например, режим MIP) используется для блока 42 декодирования, узел 404 внутреннего предсказания узла 402 предсказания принимает соответствующие параметры от узла 401 анализа и, соответственно, декодирует в режиме внутреннего кодирования. В некоторых вариантах осуществления режим внутреннего предсказания (например, режим MIP) может быть идентифицирован по специальному флагу (например, флагу MIP), встроенному во входной битовый поток 40.The prediction unit 402 is configured to determine a prediction unit 43 of a decoding unit 42 (eg, a CU or a CU partition such as a transformation unit). If it is indicated that the intercoding mode has been used to decode the decoding block 42, the MC (change compensation) section 403 of the prediction section 402 may receive corresponding parameters from the analysis section 401 and decode in the intercoding mode accordingly. If it is indicated that an intra prediction mode (eg, MIP mode) is used for the decoding unit 42, the intra prediction unit 404 of the prediction unit 402 receives the corresponding parameters from the analysis unit 401 and accordingly decodes in the intra encoding mode. In some embodiments, an intra prediction mode (e.g., a MIP mode) may be identified by a special flag (e.g., a MIP flag) embedded in the input bit stream 40.

Например, когда идентифицирован режим MIP, узел 404 внутреннего предсказания может определить блок 43 предсказания (который включает множество предсказанных дискретных значений) на основе следующих способов (аналогичных тем, которые описаны для этапов 301-303 на фиг. 3).For example, when a MIP mode is identified, intra prediction unit 404 may determine prediction block 43 (which includes a plurality of predicted samples) based on the following methods (similar to those described for steps 301-303 in FIG. 3).

Сначала узел 404 внутреннего предсказания получает одно или более опорных дискретных значений из соседних дискретных значений блока 42 декодирования (аналогично этапу 301 на фиг. 3). Например, узел 404 внутреннего предсказания может генерировать опорные дискретные значения с помощью понижающей дискретизации соседних дискретных значений, или непосредственно путем извлечения части из соседних дискретных значений.First, intra prediction unit 404 obtains one or more reference samples from adjacent samples of decoding unit 42 (similar to step 301 in FIG. 3). For example, intra prediction node 404 may generate reference samples by downsampling neighboring samples, or directly by extracting a portion from neighboring samples.

Узел 404 внутреннего предсказания может затем получать частичные предсказанные дискретные значения в блоке 42 декодирования, используя опорные дискретные значения, матрицу MIP и параметр сдвига (аналогично этапу 302 на фиг. 3). В некоторых вариантах осуществления положения частичных предсказанных дискретных значений может быть задано в блоке 42 декодирования. Например, позиции частичных предсказанных дискретных значений могут представлять собой позиции с нечетными значениями горизонтальных и вертикальных координат в пределах блока кодирования. Параметр сдвига может включать параметр сдвига смещения и параметр сдвига номера, которые могут быть использованы в операциях сдвига при генерировании частичных предсказанных дискретных значений.The intra prediction unit 404 may then obtain the partial predicted samples in the decoding block 42 using the reference samples, the MIP matrix, and the offset parameter (similar to step 302 in FIG. 3). In some embodiments, the positions of the partial predicted samples may be specified in decoding block 42. For example, positions of partial predicted samples may be positions with odd horizontal and vertical coordinate values within a coding block. The shift parameter may include an offset shift parameter and a number shift parameter, which can be used in shift operations when generating partial predicted samples.

Наконец, если получены частичные предсказанные дискретные значения блока 42 декодирования, узел 404 внутреннего предсказания получает предсказанные дискретные значения оставшихся дискретных значений, кроме частичных предсказанных дискретных значений в блоке 42 декодирования (аналогично этапу 303 на фиг. 3). Например, узел 404 внутреннего предсказания может использовать интерполяционный фильтр для получения предсказанных дискретных значений, путем использования частичных предсказанных дискретных значений и соседних дискретных значений в качестве входов интерполяционного фильтра.Finally, if the partial predicted samples of the decoding block 42 are received, the intra prediction unit 404 obtains the predicted samples of the remaining samples other than the partial predicted samples in the decoding block 42 (same as step 303 in FIG. 3). For example, intra prediction node 404 may use an interpolation filter to obtain predicted samples by using partial predicted samples and neighboring samples as inputs to the interpolation filter.

Система 400 декодирования содержит узел 405 масштабирования с функциями, схожими с функциями узла 210 обратного квантования системы 200 кодирования. Узел 405 масштабирования выполняет операции масштабирования на квантованных коэффициентах 44 (например, уровнях) от узла 401 анализа таким образом, чтобы генерировать восстановленные коэффициенты 45.The decoding system 400 includes a scaling node 405 with functions similar to the functions of the inverse quantization node 210 of the encoding system 200. Scaling node 405 performs scaling operations on the quantized coefficients 44 (e.g., levels) from analysis node 401 so as to generate reconstructed coefficients 45.

Узел 406 трансформации имеет функции, схожие с функциями узла 211 обратной трансформации в системе 200 кодирования. Узел 406 трансформации выполняет одну или более трансформационных операций (например, обратные операции одной или более трансформационных операций с помощью узла 211 обратной трансформации) для получения восстановленного остатка 46.The transformation node 406 has functions similar to the functions of the inverse transformation node 211 in the encoding system 200. Transformation node 406 performs one or more transformation operations (e.g., inverse operations of one or more transformation operations by inverse transformation node 211) to obtain the reconstructed remainder 46.

Сумматор 407 складывает блок 43 предсказания из узла 402 предсказания и восстановленный остаток 46 из узла 406 трансформации для получения восстановленного блока 47 блока 42 декодирования. Восстановленный блок 47 также отправляется на узел 402 предсказания для использования в качестве эталона (например, для других блоков, кодируемых в режиме внутреннего предсказания).The adder 407 adds the prediction block 43 from the prediction node 402 and the reconstructed remainder 46 from the transformation node 406 to obtain the reconstructed block 47 of the decoding block 42. The reconstructed block 47 is also sent to prediction node 402 for use as a reference (eg, for other blocks encoded in intra prediction mode).

После восстановления всего блока 42 декодирования в кадре или фрагменте кадра (т. e. образования восстановленного блока 48), узел 408 фильтрации может выполнять фильтрацию в контуре на восстановленном блоке 49. Узел 408 фильтрации содержит один или более фильтров, таких как деблокирующий фильтр, адаптивный фильтр смещения дискретного значения (SAO), адаптивный контурный фильтр (ALF), фильтр отображения яркости с масштабированием цветности (LMCS), фильтр на основе нейронной сети и т. д. В некоторых вариантах осуществления узел 408 фильтрации может выполнять фильтрацию в контуре только на одном или более целевых пикселях в восстановленном блоке 48.After reconstructing the entire decoding block 42 in a frame or frame fragment (i.e., creating a reconstructed block 48), filtering unit 408 may perform in-loop filtering on reconstructed block 49. Filtering unit 408 includes one or more filters, such as a deblocking filter, an adaptive sample offset filter (SAO), adaptive loop filter (ALF), luma display with chroma scaling (LMCS) filter, neural network based filter, etc. In some embodiments, filtering node 408 may perform loop filtering on only one or more target pixels in the reconstructed block 48.

Узел 408 фильтрации затем отправляет декодированный кадр 49 (или кадр) или фрагмент кадра в DPB (буфер декодированного кадра) 409. DPB 409 выводит декодированные кадры в качестве выходного видео 41 на основе тайминга и управляющей информации. Декодированные кадры 49, хранящиеся в DPB 409, также могут быть использованы в качестве опорного изображения узлом 402 предсказания при выполнении предсказания, осуществляемого между изображениями, или внутреннего предсказания.Filtering unit 408 then sends the decoded frame 49 (or frame) or frame fragment to DPB (decoded frame buffer) 409. DPB 409 outputs the decoded frames as output video 41 based on timing and control information. The decoded frames 49 stored in the DPB 409 can also be used as a reference picture by the prediction unit 402 when performing inter-picture prediction or intra prediction.

В некоторых вариантах осуществления система 400 декодирования может быть вычислительным устройством с процессором и носителем данных, записывающими одну или более программ декодирования. Когда процессор считывает и выполняет программы декодирования, система 400 декодирования может принимать входной видеобитовый поток и генерировать соответствующее декодированное видео.In some embodiments, decoding system 400 may be a computing device with a processor and storage medium recording one or more decoding programs. As the processor reads and executes decoding programs, decoding system 400 may receive an input video bitstream and generate a corresponding decoded video.

В некоторых вариантах осуществления система 400 декодирования может быть вычислительным устройством с одним или более чипов. Узлы или элементы системы 400 декодирования могут быть внедрены в качестве интегральных схем на чипы.In some embodiments, the decoding system 400 may be a computing device with one or more chips. The nodes or elements of the decoding system 400 may be implemented as integrated circuits on chips.

На фиг. 5 представлена блок-схема, иллюстрирующая способ 500 в соответствии с вариантом осуществления настоящего изобретения. В блоке 501 способ 500 запускается путем определения параметров предсказания текущего блока. В некоторых вариантах осуществления параметры предсказания включают параметры для предсказания (например, «predModeIntra», как определено в стандарте H.265) и идентификаторы размеров (например, «mipSizeId»). В блоке 502, когда параметры предсказания указывают, что применим режим MIP, способ 500 продолжает определять входное дискретное значение MIP (например, значения в массиве «p[x]») на основе соседних дискретных значений. В некоторых вариантах осуществления соседние дискретные значения могут включать соседние сверху дискретные значения и/или соседние слева дискретные значения.In fig. 5 is a flow diagram illustrating a method 500 in accordance with an embodiment of the present invention. At block 501, method 500 is started by determining prediction parameters of the current block. In some embodiments, the prediction parameters include parameters to predict (eg, "predModeIntra" as defined in the H.265 standard) and size identifiers (eg, "mipSizeId"). At block 502, when the prediction parameters indicate that MIP mode is applicable, method 500 proceeds to determine the input MIP sample value (eg, the values in the "p[x]" array) based on neighboring samples. In some embodiments, adjacent samples may include top adjacent samples and/or left adjacent samples.

В блоке 503 способ 500 продолжает определять продукт параметра сдвига смещения (fO) и сумму входных дискретизаций MIP. Как показано в уравнении (B) выше, сумма входных дискретизаций MIP может быть «» и, таким образом, продукт может быть «fO*(».At block 503, method 500 continues to determine the product of the offset offset parameter (fO) and the sum of the input MIP samples. As shown in equation (B) above, the sum of the input MIP samples can be " " and thus the product can be "fO*( "

В блоке 504 способ 500 продолжается для определения первой константы на основе параметра сдвига номера (sW). Как показано в уравнении (B) выше, первая константа может быть «1<<(sW-1)».At block 504, method 500 continues to determine a first constant based on the number shift parameter (sW). As shown in equation (B) above, the first constant can be "1<<(sW-1)".

В блоке 505 способ 500 продолжает определять значение смещения (oW) путем умножения первой константы и продукта. Как показано в уравнении (B) выше, первое значение смещения (oW) может быть «(1<<(sW-1))-fO*()».At block 505, method 500 continues to determine an offset value (oW) by multiplying the first constant and the product. As shown in equation (B) above, the first offset value (oW) can be "(1<<(sW-1))-fO*( )".

В блоке 506 способ 500 определяет весовую матрицу MIP на основе параметров предсказания. В уравнении (B) выше весовая матрица MIP является матрицей «mWeight». В некоторых вариантах осуществления весовая матрица MIP может быть сгенерирована на основе различных способов, таких как процессы обучения с использованием машинного обучения (ML) или искусственного интеллекта (AI).At block 506, method 500 determines a MIP weight matrix based on the prediction parameters. In equation (B) above, the MIP weight matrix is the "mWeight" matrix. In some embodiments, the MIP weight matrix may be generated based on various methods, such as learning processes using machine learning (ML) or artificial intelligence (AI).

В блоке 507 способ 500 продолжает определять предсказание MIP на основе весовой матрицы MIP, параметра сдвига номера (sW) и значения смещения (oW). Предсказание MIP может представлять собой матрицу «predMip[x][y]», как указано в уравнении (C) выше. В некоторых вариантах осуществления предсказание MIP может быть определено, как описано в уравнении (C) выше. В некоторых вариантах осуществления матрица предсказания MIP может быть определена на основе уравнения (D) ниже.At block 507, method 500 continues to determine a MIP prediction based on the MIP weight matrix, the number offset parameter (sW), and the offset value (oW). The MIP prediction may be a matrix “predMip[x][y]” as stated in equation (C) above. In some embodiments, the MIP prediction may be determined as described in equation (C) above. In some embodiments, the MIP prediction matrix may be determined based on equation (D) below.

(D) (D)

В уравнении (D) выше «[x][y]» представляют собой координаты местоположения пикселей. «x» - для горизонтального и «y» - для вертикального направления матрицы предсказания MIP. Параметры «incH» «predC» и «incW» являются параметрами для получения значения матрицы из весовой матрицы MIP. Другие параметры в уравнении (D) были рассмотрены выше со ссылкой на уравнение (C) .In equation (D) above, "[x][y]" represents the location coordinates of the pixels. “x” is for horizontal and “y” is for vertical direction of the MIP prediction matrix. The parameters "incH""predC" and "incW" are parameters to obtain the matrix value from the MIP weight matrix. The other parameters in equation (D) were discussed above with reference to equation (C) .

В некоторых вариантах осуществления параметр сдвига смещения (fO) может быть установлен как «32» и параметр сдвига номера (sW) может быть установлен как 6. В таких вариантах осуществления матрица предсказания MIP может быть определена на основе уравнений (E) и (F) ниже.In some embodiments, the offset offset parameter (fO) may be set to "32" and the number offset parameter (sW) may be set to 6. In such embodiments, the MIP prediction matrix may be determined based on equations (E) and (F) below.

(E) (E)

(F) (F)

В блоке 508 способ 500 генерирует внутреннее предсказание текущего блока с помощью процесса фильтрации на основе матрицы предсказания MIP. Если размер матрицы предсказания MIP такой же, как и размер текущего блока, тогда способ 500 может установить значения в матрице предсказания MIP текущему блоку, как их внутреннее дискретные значения предсказания MIP (например, «preSamples[x][y]»), как показано в уравнении (G) ниже. Если нет, то способ 500 может выполнить процесс фильтрации для регулировки матрицы предсказания MIP. В некоторых вариантах осуществления процесс фильтрации может представлять собой процесс повышающей дискретизации или процесс фильтрации нижних частот. Варианты осуществления процесса повышающей дискретизации подробно рассмотрены выше со ссылкой на фиг. 3 (например, этап 303 ).At block 508, method 500 generates an intra prediction of the current block using a filtering process based on the MIP prediction matrix. If the size of the MIP prediction matrix is the same as the size of the current block, then method 500 may set the values in the MIP prediction matrix to the current block as their internal MIP prediction samples (eg, "preSamples[x][y]"), as shown in equation (G) below. If not, then method 500 may perform a filtering process to adjust the MIP prediction matrix. In some embodiments, the filtering process may be an upsampling process or a low-pass filtering process. Embodiments of the upsampling process are discussed in detail above with reference to FIG. 3 (eg, step 303 ).

(G) (G)

На фиг. 6 представлена блок-схема, иллюстрирующая способ 600 в соответствии с вариантом осуществления настоящего изобретения. В блоке 601 способ 600 запускается путем определения параметров предсказания текущего блока в битовом потоке. В некоторых вариантах осуществления параметры предсказания могут включать «predModeIntra» и «mipSizeId», как определено в стандарте H.265.In fig. 6 is a flow diagram illustrating a method 600 in accordance with an embodiment of the present invention. At block 601, method 600 is started by determining prediction parameters of the current block in the bitstream. In some embodiments, the prediction parameters may include "predModeIntra" and "mipSizeId" as defined in the H.265 standard.

В блоке 602 способ 600 продолжается путем определения входного дискретного значения внутреннего предсказания на основе матрицы (MIP) текущего блока на основе соседних дискретных значений текущего блока и параметров предсказания. В некоторых вариантах осуществления входное дискретное значение MIP может представлять собой значения в массиве «p[x]». В некоторых вариантах осуществления соседние дискретные значения включают соседнее слева дискретное значение и/или соседнее сверху дискретное значение.At block 602, method 600 continues by determining an input matrix-based intra prediction (MIP) sample of the current block based on the current block's neighboring samples and prediction parameters. In some embodiments, the input sample MIP value may be values in the "p[x]" array. In some embodiments, adjacent samples include a left adjacent sample and/or a top adjacent sample.

Варианты осуществления определения входного дискретного значения MIP рассмотрены выше со ссылкой на фиг. 3 (например, этап 301 ). Например, способ 600 может включать выполнение процесса понижающей дискретизации до соседних дискретных значений для генерирования временного опорного массива (pTemp[x]) на основе идентификатора размера.Embodiments for determining the input discrete MIP value are discussed above with reference to FIG. 3 (eg, step 301 ). For example, method 600 may include performing a downsampling process to adjacent samples to generate a temporary reference array (pTemp[x]) based on the size identifier.

В блоке 603 способ 600 продолжается путем установки параметра сдвига номера (sW) в качестве первого фиксированного значения. В некоторых вариантах осуществления первое фиксированное значение может составлять 5 или 6. В блоке 604 способ 600 продолжается путем установки параметра сдвига смещения (fO) в качестве второго фиксированного значения. В некоторых вариантах осуществления второе фиксированное значение может составлять 23, 34 или 46.At block 603, method 600 continues by setting the number shift parameter (sW) as a first fixed value. In some embodiments, the first fixed value may be 5 or 6. At block 604, method 600 continues by setting the offset offset parameter (fO) as a second fixed value. In some embodiments, the second fixed value may be 23, 34, or 46.

Когда первое и второе фиксированные значения установлены, может быть определена первая константа «1<<(sW-1)». Значение смещения (oW) также может быть вычислено (например, уравнение (B) ).When the first and second fixed values are set, the first constant "1<<(sW-1)" can be defined. The offset value (oW) can also be calculated (e.g. equation (B) ).

В блоке 605 способ 600 продолжается путем определения весовой матрицы MIP текущего блока на основе параметров предсказания. Варианты осуществления весовой матрицы MIP рассмотрены выше со ссылкой на фиг. 3 (например, этап 302 ).At block 605, method 600 continues by determining the MIP weight matrix of the current block based on the prediction parameters. Embodiments of the MIP weight matrix are discussed above with reference to FIG. 3 (eg, step 302 ).

В блоке 606 способ 600 продолжается путем определения дискретного значения предсказания MIP (например, значения в массиве «predMip[x][y]») текущего блока на основе весовой матрицы MIP, входного дискретного значения MIP, параметра сдвига смещения (fO) и параметра сдвига номера (sW). Варианты осуществления дискретного значения предсказания MIP рассмотрены выше детально со ссылкой на уравнения (C) , (D) , (E) и (F) .At block 606, method 600 continues by determining a MIP prediction sample value (eg, a value in the "predMip[x][y]" array) of the current block based on the MIP weight matrix, the input MIP sample value, the offset parameter (fO), and the shift parameter numbers (sW). Embodiments of the discrete MIP prediction value are discussed above in detail with reference to equations (C) , (D) , (E) , and (F) .

В блоке 607способ 600 продолжается за счет выполнения процесса повышающей дискретизации до дискретного значения предсказания MIP текущего блока таким образом, чтобы генерировать внутренние предсказанные дискретные значения (например, «predSamples[x][y]») текущего блока. В некоторых вариантах осуществления дискретное значение предсказания MIP текущего блока может включать дискретные значения предсказания для по меньшей мере части точек дискретизации текущего блока. Варианты осуществления дискретного значения предсказания MIP и весовой матрицы MIP рассмотрены выше детально со ссылкой на уравнение (G) и фиг. 3 (например, этап 303 ).At block 607, method 600 continues by performing an upsampling process to the current block's MIP prediction sample value so as to generate internal predicted samples (eg, "predSamples[x][y]") of the current block. In some embodiments, the current block's MIP prediction sample may include prediction samples for at least a portion of the current block's sample points. Embodiments of the discrete MIP prediction value and the MIP weight matrix are discussed above in detail with reference to equation (G) and FIG. 3 (eg, step 303 ).

На фиг. 7 представлено схематическое изображение кодера 700 согласно варианту осуществления настоящего изобретения. Как показано, кодер 700 содержит первый узел 701 определения, первый вычислительный узел 702 и первый узел 703 предсказания. Первый узел 701 определения выполнен с возможностью конфигурирования параметров предсказания текущего блока и определения входного дискретного значения MIP (например, значения в массиве «p[x]»). В некоторых вариантах осуществления входное дискретное значение MIP может быть определено на основе соседних дискретных значений. Параметры предсказания включают параметр, указывающий используемую модель предсказания (например, модель MIP), и соответствующие параметры (например, идентификатор размера). Первый узел 701 определения может также определять весовую матрицу MIP. Первый вычислительный узел 702 выполнен с возможностью вычисления значения смещения (например, «oW», рассмотренный выше) на основе параметра сдвига номера (например, «sW») и параметра сдвига смещения (например, «fO»). Первый узел 703 предсказания предназначен для генерирования предсказания MIP текущего блока на основе весовой матрицы MIP, значения смещения, параметра сдвига номера и параметра сдвига смещения.In fig. 7 is a schematic diagram of an encoder 700 according to an embodiment of the present invention. As shown, the encoder 700 includes a first determination node 701, a first computation node 702, and a first prediction node 703. The first determining node 701 is configured to configure prediction parameters of the current block and determine an input discrete MIP value (eg, a value in the "p[x]" array). In some embodiments, an input MIP sample may be determined based on neighboring samples. The prediction parameters include a parameter indicating the prediction model to be used (eg, MIP model) and corresponding parameters (eg, size identifier). The first determination node 701 may also determine the MIP weight matrix. The first computing node 702 is configured to calculate an offset value (eg, "oW" discussed above) based on a number offset parameter (eg, "sW") and an offset offset parameter (eg, "fO"). The first prediction node 703 is configured to generate a MIP prediction of the current block based on the MIP weight matrix, the offset value, the number offset parameter, and the offset offset parameter.

В некоторых вариантах осуществления кодер 700 включает первый узел 704 запроса, выполненный с возможностью определения модели MIP текущего блока. В таких вариантах осуществления первый узел 701 определения определяет индекс модели MIP текущего блока. Первый узел 704 запроса может затем получать соответствующие параметры (например, sW, fO, идентификатор размера MIP и т. д.) на основе индекса модели MIP.In some embodiments, encoder 700 includes a first query node 704 configured to determine the MIP model of the current block. In such embodiments, the first determination node 701 determines the MIP model index of the current block. The first request node 704 may then obtain the corresponding parameters (eg, sW, fO, MIP size identifier, etc.) based on the MIP model index.

В настоящем раскрытии термин «узел» может представлять собой процессор, контур, программное обеспечение, модуль или их сочетание. В некоторых вариантах осуществления «узел» может представлять собой интегральный компонент, такой как SoC (система на чипе). В некоторых вариантах осуществления «узел» может включать набор команд, хранящихся в носителе данных, таких как диск, жесткий диск, запоминающее устройство и т. д.As used herein, the term “node” may be a processor, a circuit, software, a module, or a combination thereof. In some embodiments, a "node" may be an integrated component such as an SoC (system on a chip). In some embodiments, a "node" may include a set of instructions stored in a storage medium such as a disk, hard drive, storage device, etc.

На фиг. 8 представлено схематическое изображение кодера 800 согласно варианту осуществления настоящего изобретения. Кодер 800 может содержать первый интерфейс связи 801, первое устройство 802 хранения и первый процессор 803, соединенный с помощью первой системной шины 804. Первая системная шина 804 может содержать линии питания, линии управления и/или сигнальные линии. Первый интерфейс связи 801 выполнен с возможностью обеспечения связи с другими внешними устройствами путем передачи и приема сигналов. Первое устройство 802 хранения выполнено с возможностью хранения данных, информации и/или команд (таких как этапы, описанные на фиг. 5 и 6), которые могут быть выполнены первым процессором 803.In fig. 8 is a schematic diagram of an encoder 800 according to an embodiment of the present invention. Encoder 800 may include a first communication interface 801, a first storage device 802, and a first processor 803 coupled via a first system bus 804. The first system bus 804 may include power lines, control lines, and/or signal lines. The first communication interface 801 is configured to communicate with other external devices by transmitting and receiving signals. The first storage device 802 is configured to store data, information and/or instructions (such as the steps described in FIGS. 5 and 6) that can be executed by the first processor 803.

Первый процессор 803 может представлять собой чип, интегральную схему или другие устройства, которые могут обрабатывать сигналы. Первый процессор 803 может представлять собой процессор общего назначения, процессор цифровой обработки сигналов (DSP), интегральную схему специального применения (ASIC), программируемую логическую матрицу (FPGA), программируемое логическое устройство (PLD) или другие подходящие логические компоненты.The first processor 803 may be a chip, integrated circuit, or other devices that can process signals. The first processor 803 may be a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a programmable logic device (PLD), or other suitable logic components.

На фиг. 9 представлено схематическое изображение декодера 900 согласно варианту осуществления настоящего изобретения. Как показано, декодер 900 содержит аналитический узел 901, второй вычислительный узел 902, второй узел 903 предсказания, второй узел 904 предсказания и второй узел 905 запроса. Аналитический узел 901 выполнен с возможностью анализа битового потока таким образом, чтобы получить параметры предсказания текущего блока. Второй узел 902 определения предназначен для конфигурирования подходящих параметров предсказания текущего блока и для определения входного дискретного значения MIP (например, значения в массиве «p[x]»). В некоторых вариантах осуществления входное дискретное значение MIP может быть определено на основе соседних дискретных значений. Параметры предсказания включают параметр, указывающий используемую модель предсказания (например, модель MIP), и соответствующие параметры (например, идентификатор размера). Второй узел 903 определения может также определять весовую матрицу MIP. Второй вычислительный узел 904 выполнен с возможностью вычисления значения смещения (например, «oW») на основе параметра сдвига номера (например, «sW») и параметра сдвига смещения (например, «fO»). Второй узел 904 предсказания предназначен для генерирования предсказания MIP текущего блока на основе весовой матрицы MIP, значения смещения, параметра сдвига номера и параметра сдвига смещения.In fig. 9 is a schematic diagram of a decoder 900 according to an embodiment of the present invention. As shown, decoder 900 includes an analysis node 901, a second computation node 902, a second prediction node 903, a second prediction node 904, and a second query node 905. The analysis node 901 is configured to analyze the bit stream so as to obtain prediction parameters of the current block. The second determination node 902 is for configuring suitable prediction parameters of the current block and for determining the input sample MIP value (eg, the value in the "p[x]" array). In some embodiments, an input MIP sample may be determined based on neighboring samples. The prediction parameters include a parameter indicating the prediction model to be used (eg, MIP model) and corresponding parameters (eg, size identifier). The second determination node 903 may also determine the MIP weight matrix. The second computing node 904 is configured to calculate an offset value (eg, "oW") based on a number offset parameter (eg, "sW") and an offset offset parameter (eg, "fO"). The second prediction node 904 is configured to generate a MIP prediction of the current block based on the MIP weight matrix, the offset value, the number offset parameter, and the offset offset parameter.

В некоторых вариантах осуществления второй узел 905 запроса выполнен с возможностью определения модели MIP текущего блока. В таких вариантах осуществления второй узел 902 определения определяет индекс модели MIP текущего блока. Второй узел 904 запроса может затем получать соответствующие параметры (например, sW, fO, идентификатор размера MIP и т. д.) на основе индекса модели MIP.In some embodiments, the second query node 905 is configured to determine the MIP model of the current block. In such embodiments, the second determination node 902 determines the MIP model index of the current block. The second request node 904 may then obtain the corresponding parameters (eg, sW, fO, MIP size identifier, etc.) based on the MIP model index.

На фиг. 10 представлено схематическое изображение декодера 1000 согласно варианту осуществления настоящего изобретения. Декодер 1000 может включать второй интерфейс 1001 связи, второе устройство 1002 хранения и второй процессор 1003, соединенный с помощью второй системной шины 1004. Вторая системная шина 1004 может содержать линии питания, линии управления и/или сигнальные линии. Второй интерфейс связи 1001 выполнен с возможностью обеспечения связи с другими внешними устройствами путем передачи и приема сигналов. Второе устройство 1002 хранения выполнено с возможностью хранения данных, информации и/или команд (таких как этапы, описанные на фиг. 5 и 6), которые могут быть выполнены вторым процессором 1003.In fig. 10 is a schematic diagram of a decoder 1000 according to an embodiment of the present invention. The decoder 1000 may include a second communication interface 1001, a second storage device 1002, and a second processor 1003 coupled via a second system bus 1004. The second system bus 1004 may include power lines, control lines, and/or signal lines. The second communication interface 1001 is configured to provide communication with other external devices by transmitting and receiving signals. The second storage device 1002 is configured to store data, information and/or instructions (such as the steps described in FIGS. 5 and 6) that can be executed by the second processor 1003.

Второй процессор 1003 может представлять собой чип, интегральную схему или другие устройства, которые могут обрабатывать сигналы. Второй процессор 1003 может представлять собой процессор общего назначения, процессор цифровой обработки сигналов (DSP), интегральную схему специального применения (ASIC), программируемую логическую матрицу (FPGA), программируемое логическое устройство (PLD) или другие подходящие логические компоненты.The second processor 1003 may be a chip, integrated circuit, or other devices that can process signals. The second processor 1003 may be a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a programmable logic device (PLD), or other suitable logic components.

На фиг. 11 представлено схематическое изображение устройства 1100 согласно варианту осуществления настоящего изобретения. Устройство 1100 может быть «отправляющим» устройством. Более конкретно, устройство 1100 выполнено с возможностью получения, кодирования и хранения/отправки одного или более кадров. Устройство 1100 содержит узел 1001 получения, кодер 1102 и узел 1103 хранения/отправки.In fig. 11 is a schematic diagram of a device 1100 according to an embodiment of the present invention. Device 1100 may be a "sending" device. More specifically, device 1100 is configured to receive, encode, and store/send one or more frames. The device 1100 includes a receiving node 1001, an encoder 1102, and a storage/sending node 1103.

Узел 1101 получения выполнен с возможностью получения или приема кадра и направления кадра на кодер 1102. Узел 1101 получения может также быть выполнен с возможностью получения или приема видео, состоящего из последовательности кадров, и направления видео на кодер 1102. В некоторых вариантах осуществления узел 1101 получения может представлять собой устройство, содержащее одну или более камер (например, фотокамеры, камеры глубины и т. д.). В некоторых вариантах осуществления узел 1101 получения может быть устройством, которое может частично или полностью декодировать видеобитовый поток для генерирования кадра или видео. Узел 1101 получения может также содержать один или более элементов для захватывания аудиосигнала.Receiving node 1101 is configured to receive or receive a frame and forward the frame to encoder 1102. Receiving node 1101 may also be configured to receive or receive video consisting of a sequence of frames and forwarding the video to encoder 1102. In some embodiments, receiving node 1101 may be a device containing one or more cameras (eg, still cameras, depth cameras, etc.). In some embodiments, receiving node 1101 may be a device that can partially or fully decode a video bitstream to generate a frame or video. The receiving unit 1101 may also include one or more elements for capturing an audio signal.

Кодер 1102 выполнен с возможностью кодирования кадра из узла 1101 получения и генерирует видеобитовый поток. Кодер 1102 может также быть выполнен с возможностью кодирования видео из узла 1101 получения и генерирует битовый поток. В некоторых вариантах осуществления кодер 1102 может быть внедрен в качестве системы 200 кодирования, описанной на фиг. 2. В некоторых вариантах осуществления кодер 1102 может содержать один или более аудиокодеров для кодирования аудиосигналов для генерирования аудиобитового потока.The encoder 1102 is configured to encode a frame from the receiving node 1101 and generates a video bit stream. Encoder 1102 may also be configured to encode video from receiving node 1101 and generate a bit stream. In some embodiments, encoder 1102 may be implemented as the encoding system 200 described in FIG. 2. In some embodiments, encoder 1102 may include one or more audio encoders for encoding audio signals to generate an audio bitstream.

Узел 1103 хранения/отправки выполнен с возможностью приема одного или обоих из видео- и аудиобитовых потоков из кодера 1102. Узел 1103 хранения/отправки может формировать видеобитовый поток вместе с аудиобитовым потоком для создания мультимедийного файла (например, мультимедийного файла на основе ISO) или транспортный поток. В некоторых вариантах осуществления узел 1103 хранения/отправки может писать и хранить мультимедийный файл или транспортный поток в узле хранения, таком как жесткий диск, диск, DVD, облако для хранения, портативное запоминающее устройство и т. д. В некоторых вариантах осуществления узел 1103 хранения/отправки может отправлять видео/аудиобитовые потоки на внешнее устройство через транспортную сеть, такую как Internet, проводные сети, сеть сотовой связи, беспроводную сеть передачи данных и т. д.The storage/sending node 1103 is configured to receive one or both of the video and audio bitstreams from the encoder 1102. The storage/sending node 1103 may generate the video bitstream along with the audio bitstream to create a media file (eg, an ISO-based media file) or transport flow. In some embodiments, the storage/sending node 1103 may write and store the media file or transport stream in a storage node such as a hard drive, disc, DVD, cloud storage, portable storage device, etc. In some embodiments, the storage node 1103 /send can send video/audio bit streams to an external device through a transport network such as the Internet, wired networks, cellular network, wireless data network, etc.

На фиг. 12 представлено схематическое изображение устройства 1200 согласно варианту осуществления настоящего изобретения. Устройство 1200 может быть устройством «назначения». Более конкретно, устройство 1200 выполнено с возможностью приема, декодирования и визуализации кадра или видео. Устройство 1200 включает приемный узел 1201, декодер 1202, и узел 1203 визуализации.In fig. 12 is a schematic diagram of a device 1200 according to an embodiment of the present invention. Device 1200 may be a “destination” device. More specifically, device 1200 is configured to receive, decode, and render frame or video. The device 1200 includes a receiving node 1201, a decoder 1202, and a rendering node 1203.

Приемный узел 1201 выполнен с возможностью приема мультимедийного файла или транспортного потока, например из сети или устройства для хранения. Мультимедийный файл или транспортный поток включает видеобитовый поток и/или аудиобитовый поток. Приемный узел 1201 может отделять видеобитовый поток и аудиобитовый поток. В некоторых вариантах осуществления приемный узел 1201 может генерировать новый видео/аудиобитовый поток путем извлечения видео/аудиобитового потока.The receiving node 1201 is configured to receive a media file or transport stream, such as from a network or storage device. The media file or transport stream includes a video bitstream and/or an audio bitstream. The receiving node 1201 may separate the video bit stream and the audio bit stream. In some embodiments, receiving node 1201 may generate a new video/audio bitstream by extracting the video/audio bitstream.

Декодер 1202 содержит один или более видеодекодеров, таких как система 400 декодирования, рассмотренная выше. Декодер 1202 может также содержать один или более аудиодекодеров. Декодер 1202 декодирует видеобитовый поток и/или аудиобитовый поток из приемного узла 1201 для получения декодированного видеофайла и/или одного или более декодированных аудиофайлов (соответствующих одному или нескольким каналам).Decoder 1202 includes one or more video decoders, such as the decoding system 400 discussed above. Decoder 1202 may also include one or more audio decoders. A decoder 1202 decodes the video bitstream and/or the audio bitstream from the receiving node 1201 to obtain a decoded video file and/or one or more decoded audio files (corresponding to one or more channels).

Узел 1203 визуализации принимает декодированные видео/аудиофайлы и обрабатывает видео/аудиофайлы для получения подходящего видео/аудиосигнала для отображения/воспроизведения. Эти операции регулировки/восстановления могут включать в себя одно или более из следующего: шумоподавление, синтез, преобразование цветового пространства, повышающая дискретизация, понижающая дискретизация и т. д. Узел 1203 визуализации может улучшать качество декодированных видео/аудиофайлов.The rendering unit 1203 receives the decoded video/audio files and processes the video/audio files to obtain a suitable video/audio signal for display/playback. These adjustment/reconstruction operations may include one or more of the following: denoising, synthesis, color space conversion, upsampling, downsampling, etc. Rendering unit 1203 may improve the quality of decoded video/audio files.

На фиг. 13 представлено схематическое изображение системы связи 1300 согласно варианту осуществления настоящего изобретения. Система 1300 связи содержит исходное устройство 1301, носитель данных или транспортную сеть 1302 и устройство 1303 назначения. В некоторых вариантах осуществления исходное устройство 1301 может представлять собой устройство 1100, описанное выше со ссылкой на фиг. 11. Исходное устройство 1301 отправляет мультимедийные файлы в носитель данных или транспортную сеть 1302 для их хранения или транспортировки. Устройство 1303 назначения может представлять собой устройство 1200, описанное выше со ссылкой на фиг. 12. Система 1300 связи выполнена с возможностью кодирования мультимедийного файла, транспортировки или хранения кодированного мультимедийного файла, и последующего декодирования кодированного мультимедийного файла. В некоторых вариантах осуществления исходное устройство 1301 может быть первым смартфоном, носитель 1302 данных может быть облаком для хранения, и устройство назначения может быть вторым смартфоном.In fig. 13 is a schematic diagram of a communication system 1300 according to an embodiment of the present invention. The communication system 1300 includes a source device 1301, a storage medium or transport network 1302, and a destination device 1303. In some embodiments, the source device 1301 may be the device 1100 described above with reference to FIG. 11. The source device 1301 sends the media files to the storage medium or transport network 1302 for storage or transport. The destination device 1303 may be the device 1200 described above with reference to FIG. 12. The communication system 1300 is configured to encode a media file, transport or store the encoded media file, and then decode the encoded media file. In some embodiments, the source device 1301 may be a first smartphone, the storage medium 1302 may be a cloud storage device, and the destination device may be a second smartphone.

Вышеописанные варианты осуществления являются просто иллюстрацией нескольких вариантов осуществления настоящего изобретения, и их описание является конкретным и подробным. Вышеупомянутые варианты осуществления не могут быть истолкованы как ограничивающие настоящее изобретение. Следует отметить, что ряд изменений и модификаций могут быть выполнены специалистами в данной области без отступления от сущности и объема изобретения. Следовательно, объем настоящей заявки должен быть ограничен формулой изобретения.The above-described embodiments are merely illustrative of several embodiments of the present invention, and the description thereof is specific and detailed. The above embodiments should not be construed as limiting the present invention. It should be noted that a number of changes and modifications may be made by those skilled in the art without departing from the spirit and scope of the invention. Therefore, the scope of the present application should be limited by the claims.

Claims (48)

1. Способ предсказания изображения, включающий:1. An image prediction method, including: определение параметров предсказания текущего блока в битовом потоке;determining the prediction parameters of the current block in the bit stream; определение входного дискретного значения внутреннего предсказания на основе матрицы (MIP) текущего блока на основе соседних дискретных значений текущего блока и параметров предсказания,determining an input matrix-based intra prediction (MIP) sample of the current block based on the neighboring samples of the current block and the prediction parameters, установку параметра сдвига номера (sW) в качестве первого фиксированного значения, при этом первое фиксированное значение устанавливают независимо от параметров предсказания;setting the number shift parameter (sW) as a first fixed value, wherein the first fixed value is set regardless of the prediction parameters; установку параметра сдвига смещения (fO) в качестве второго фиксированного значения, при этом второе фиксированное значение устанавливают независимо от параметров предсказания;setting the bias offset parameter (fO) as a second fixed value, wherein the second fixed value is set independently of the prediction parameters; определение дискретного значения предсказания MIP (predMip[x][y]) текущего блока на основе весовой матрицы MIP, входного дискретного значения MIP, параметра сдвига смещения (fO) и параметра сдвига номера (sW); иdetermining a MIP prediction sample value (predMip[x][y]) of the current block based on the MIP weight matrix, the input MIP sample value, an offset parameter (fO), and a number shift parameter (sW); And выполнение процесса повышающей дискретизации до дискретного значения предсказания MIP текущего блока таким образом, чтобы генерировать внутренние предсказанные дискретные значения (predSamples[x][y]) текущего блока.performing an upsampling process to the MIP prediction sample value of the current block so as to generate internal predicted samples (predSamples[x][y]) of the current block. 2. Способ по п. 1, отличающийся тем, что первое фиксированное значение составляет 6.2. The method according to claim 1, characterized in that the first fixed value is 6. 3. Способ по п. 1, отличающийся тем, что второе фиксированное значение составляет 23, 32, 34 или 46.3. The method according to claim 1, characterized in that the second fixed value is 23, 32, 34 or 46. 4. Способ по п. 1, отличающийся тем, что дискретное значение предсказания MIP текущего блока включает значения предсказания для части дискретных значений текущего блока.4. The method of claim 1, wherein the MIP prediction sample of the current block includes prediction values for a portion of the current block's samples. 5. Способ по п. 1, отличающийся тем, что соседние дискретные значения включают по меньшей мере одно из соседнего слева дискретного значения или соседнего сверху дискретного значения.5. The method of claim 1, wherein the adjacent discrete values include at least one of a left-adjacent discrete value or a top-adjacent discrete value. 6. Способ по п. 1, отличающийся тем, что дополнительно включает6. The method according to claim 1, characterized in that it additionally includes определение первого константного значения на основе параметра сдвига номера (sW), причем первое константное значение составляет «1<<(sW-1)».determining a first constant value based on the number shift parameter (sW), the first constant value being “1<<(sW-1)”. 7. Способ по п. 1, отличающийся тем, что дополнительно включает7. The method according to claim 1, characterized in that it additionally includes определение значения смещения (oW) на основе входного дискретного значения MIP, параметра сдвига номера (sW) и параметра сдвига смещения (fO).Determining the offset value (oW) based on the input discrete MIP value, the number offset parameter (sW) and the offset offset parameter (fO). 8. Способ по п. 1, отличающийся тем, что параметры предсказания включают идентификатор размера (mipSizeId) текущего блока.8. The method according to claim 1, characterized in that the prediction parameters include the size identifier (mipSizeId) of the current block. 9. Способ по п. 8, отличающийся тем, что дополнительно включает9. The method according to claim 8, characterized in that it additionally includes выполнение процесса понижающей дискретизации до соседних дискретных значений для генерирования временного опорного массива (pTemp[х]) на основе идентификатора размера.performing a downsampling process to adjacent samples to generate a temporary reference array (pTemp[x]) based on the size identifier. 10. Способ по п. 9, отличающийся тем, что дополнительно включает10. The method according to claim 9, characterized in that it additionally includes определение второго константного значения на основе битовой глубины (BitDepth) соседних дискретных значений в случае, если идентификатор размера находится в предопределенном диапазоне.Determining a second constant value based on the bit depth (BitDepth) of adjacent discrete values in case the size identifier is in a predefined range. 11. Способ по п. 10, отличающийся тем, что дополнительно включает11. The method according to claim 10, characterized in that it additionally includes генерирование входного дискретного значения MIP (р[х]) на основе второго константного значения и временного массива (pTemp[х]), причем значение второго константного значения составляет «1<< (BitDepth-1)».generating an input discrete MIP value (p[x]) based on a second constant value and a temporary array (pTemp[x]), where the value of the second constant value is "1<< (BitDepth-1)". 12. Устройство декодирования для декодирования кадра, содержащее:12. A decoding device for decoding a frame, comprising: узел анализа, выполненный с возможностью анализа битового потока для определения режима предсказания блока кодирования; иan analysis unit configured to analyze the bit stream to determine the prediction mode of the encoding block; And узел внутреннего предсказания, выполненный с возможностью определения входного дискретного значения внутреннего предсказания на основе матрицы (MIP) блока кодирования на основе соседних дискретных значений блока кодирования и параметров предсказания блока кодирования;an intra prediction unit configured to determine an input matrix intra prediction (MIP) sample value of the encoding block based on adjacent encoding block samples and prediction parameters of the encoding block; установки параметра сдвига номера (sW) в качестве первого фиксированного значения, при этом первое фиксированное значение устанавливают независимо от параметров предсказания;setting the number shift parameter (sW) as a first fixed value, wherein the first fixed value is set regardless of the prediction parameters; установки параметра сдвига смещения (fO) в качестве второго фиксированного значения, при этом второе фиксированное значение устанавливают независимо от параметров предсказания;setting the bias offset parameter (fO) as a second fixed value, wherein the second fixed value is set independently of the prediction parameters; определения весовой матрицы MIP блока кодирования на основе параметров предсказания;determining a weight matrix MIP of the encoding block based on the prediction parameters; определения дискретного значения предсказания MIP блока кодирования на основе весовой матрицы MIP, входного дискретного значения MIP, параметра сдвига смещения (fO) и параметра сдвига номера (sW); иdetermining a coding block MIP prediction sample based on the MIP weight matrix, the input MIP sample, an offset parameter (fO), and a number shift parameter (sW); And выполнения процесса повышающей дискретизации до дискретного значения предсказания MIP таким образом, чтобы генерировать внутренние предсказанные дискретные значения блока кодирования.performing an upsampling process to the MIP prediction sample value so as to generate internal predicted encoding block samples. 13. Устройство по п. 12, отличающееся тем, что первое фиксированное значение составляет 6, а второе фиксированное значение составляет 23, 32, 34 или 46.13. The device according to claim 12, characterized in that the first fixed value is 6, and the second fixed value is 23, 32, 34 or 46. 14. Способ кодирования кадра, включающий:14. Frame encoding method, including: прием входного кадра и разделения входного кадра на один или более блоков кодирования;receiving an input frame and dividing the input frame into one or more encoding blocks; определение входного дискретного значения внутреннего предсказания на основе матрицы (MIP) блока кодирования на основе соседних дискретных значений блока кодирования и параметров предсказания блока кодирования;determining an input matrix intra prediction (MIP) sample of the encoding block based on neighboring samples of the encoding block and prediction parameters of the encoding block; установку параметра сдвига номера (sW) в качестве первого фиксированного значения, при этом первое фиксированное значение устанавливают независимо от параметров предсказания;setting the number shift parameter (sW) as a first fixed value, wherein the first fixed value is set regardless of the prediction parameters; установку параметра сдвига смещения (fO) в качестве второго фиксированного значения, при этом второе фиксированное значение устанавливают независимо от параметров предсказания;setting the bias offset parameter (fO) as a second fixed value, wherein the second fixed value is set independently of the prediction parameters; определение весовой матрицы MIP блока кодирования на основе параметров предсказания;determining a coding block MIP weight matrix based on the prediction parameters; определение дискретного значения предсказания MIP блока кодирования на основе весовой матрицы MIP, входного дискретного значения MIP, параметра сдвига смещения (fO) и параметра сдвига номера (sW); иdetermining a coding block MIP prediction sample based on the MIP weight matrix, the input MIP sample, an offset parameter (fO), and a number shift parameter (sW); And выполнение процесса повышающей дискретизации до дискретного значения предсказания MIP таким образом, чтобы генерировать внутренние предсказанные дискретные значения блока кодирования.performing an upsampling process to the MIP prediction sample value so as to generate internal predicted encoding block samples. 15. Устройство кодирования для кодирования кадра, содержащее:15. An encoding device for encoding a frame, comprising: узел разделения, выполненный с возможностью приема входного кадра и разделения входного кадра на один или более блоков кодирования; иa division unit configured to receive an input frame and divide the input frame into one or more encoding blocks; And узел предсказания, выполненный с возможностьюprediction unit configured to определения входного дискретного значения внутреннего предсказания на основе матрицы (MIP) блока кодирования на основе соседних дискретных значений блока кодирования и параметров предсказания блока кодирования;determining an input matrix intra prediction (MIP) sample of the encoding block based on neighboring samples of the encoding block and prediction parameters of the encoding block; установки параметра сдвига номера (sW) в качестве первого фиксированного значения, при этом первое фиксированное значение устанавливают независимо от параметров предсказания;setting the number shift parameter (sW) as a first fixed value, wherein the first fixed value is set regardless of the prediction parameters; установки параметра сдвига смещения (fO) в качестве второго фиксированного значения, при этом второе фиксированное значение устанавливают независимо от параметров предсказания;setting the bias offset parameter (fO) as a second fixed value, wherein the second fixed value is set independently of the prediction parameters; определения весовой матрицы MIP блока кодирования на основе параметров предсказания;determining a weight matrix MIP of the encoding block based on the prediction parameters; определения дискретного значения предсказания MIP блока кодирования на основе весовой матрицы MIP, входного дискретного значения MIP, параметра сдвига смещения (fO) и параметра сдвига номера (sW); иdetermining a coding block MIP prediction sample based on the MIP weight matrix, the input MIP sample, an offset parameter (fO), and a number shift parameter (sW); And выполнения процесса повышающей дискретизации до дискретного значения предсказания MIP таким образом, чтобы генерировать внутренние предсказанные дискретные значения блока кодирования.performing an upsampling process to the MIP prediction sample value so as to generate internal predicted encoding block samples.
RU2021112191A 2019-10-04 2020-09-25 Encoding and decoding method, communication device and system RU2821306C2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US62/911,166 2019-10-04

Related Child Applications (1)

Application Number Title Priority Date Filing Date
RU2024115784A Division RU2024115784A (en) 2019-10-04 2020-09-25 ENCODING AND DECODING METHOD, DEVICE AND COMMUNICATION SYSTEM

Publications (2)

Publication Number Publication Date
RU2021112191A RU2021112191A (en) 2022-10-28
RU2821306C2 true RU2821306C2 (en) 2024-06-20

Family

ID=

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100098173A1 (en) * 2007-09-12 2010-04-22 Yuya Horiuchi Image processing device and image processing method
US20130251036A1 (en) * 2010-12-13 2013-09-26 Electronics And Telecommunications Research Institute Intra prediction method and apparatus
US20140241427A1 (en) * 2011-11-08 2014-08-28 Huawei Technologies Co., Ltd. Method and apparatus for coding matrix and method and apparatus for decoding matrix
RU2627101C2 (en) * 2010-04-09 2017-08-03 Мицубиси Электрик Корпорейшн Moving image coding and decoding devices
US20180343455A1 (en) * 2015-11-12 2018-11-29 Lg Electronics Inc. Method and apparatus for coefficient induced intra prediction in image coding system
US20190037213A1 (en) * 2016-01-12 2019-01-31 Telefonaktiebolaget Lm Ericsson (Publ) Video coding using hybrid intra prediction
US20190166375A1 (en) * 2016-08-01 2019-05-30 Electronics And Telecommunications Research Institute Image encoding/decoding method and apparatus, and recording medium storing bitstream

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100098173A1 (en) * 2007-09-12 2010-04-22 Yuya Horiuchi Image processing device and image processing method
RU2627101C2 (en) * 2010-04-09 2017-08-03 Мицубиси Электрик Корпорейшн Moving image coding and decoding devices
US20130251036A1 (en) * 2010-12-13 2013-09-26 Electronics And Telecommunications Research Institute Intra prediction method and apparatus
US20140241427A1 (en) * 2011-11-08 2014-08-28 Huawei Technologies Co., Ltd. Method and apparatus for coding matrix and method and apparatus for decoding matrix
US20180343455A1 (en) * 2015-11-12 2018-11-29 Lg Electronics Inc. Method and apparatus for coefficient induced intra prediction in image coding system
US20190037213A1 (en) * 2016-01-12 2019-01-31 Telefonaktiebolaget Lm Ericsson (Publ) Video coding using hybrid intra prediction
US20190166375A1 (en) * 2016-08-01 2019-05-30 Electronics And Telecommunications Research Institute Image encoding/decoding method and apparatus, and recording medium storing bitstream

Similar Documents

Publication Publication Date Title
US11528506B2 (en) Intra-prediction using a cross-component linear model in video coding
US12003704B2 (en) Methods for encoding and decoding pictures and associated apparatus
CN112425173A (en) Video encoder, video decoder and corresponding encoding and decoding methods
JP7343668B2 (en) Method and apparatus for color conversion in VVC
JP2020501434A (en) Indication of the use of bilateral filters in video coding
JP2021523590A (en) Luma and Chroma Block Partitioning
JP7423647B2 (en) Video coding in triangular predictive unit mode using different chroma formats
JP2023542840A (en) Filtering process for video coding
WO2019201232A1 (en) Intra-prediction using cross-component linear model
KR20170126889A (en) Low complexity sample adaptive offset (sao) coding
US11785221B2 (en) Encoding and decoding method, apparatus and communication system
KR20220064969A (en) Bit Shifting for Cross-Component Adaptive Loop Filtering for Video Coding
JP2024501331A (en) Multiple neural network models for filtering during video coding
JP2022535618A (en) Method and apparatus for video encoding in 4:4:4 chroma format
RU2821306C2 (en) Encoding and decoding method, communication device and system
JP7509927B2 (en) Method and apparatus for video coding in 4:4:4 color format - Patents.com
US20240129461A1 (en) Systems and methods for cross-component sample offset filter information signaling
KR20230079049A (en) Fixed Bit Depth Processing for Cross-Component Linear Model (CCLM) Mode in Video Coding
WO2024118114A1 (en) Systems and methods for signaling of downsampling filters for chroma from luma intra prediction mode