RU2809619C1 - Method, equipment and device for encoding and decoding - Google Patents

Method, equipment and device for encoding and decoding Download PDF

Info

Publication number
RU2809619C1
RU2809619C1 RU2022133310A RU2022133310A RU2809619C1 RU 2809619 C1 RU2809619 C1 RU 2809619C1 RU 2022133310 A RU2022133310 A RU 2022133310A RU 2022133310 A RU2022133310 A RU 2022133310A RU 2809619 C1 RU2809619 C1 RU 2809619C1
Authority
RU
Russia
Prior art keywords
current block
weight
value
information
weighted prediction
Prior art date
Application number
RU2022133310A
Other languages
Russian (ru)
Inventor
Ючэн СУНЬ
Original Assignee
Ханчжоу Хиквижн Диджитал Текнолоджи Ко., Лтд.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ханчжоу Хиквижн Диджитал Текнолоджи Ко., Лтд. filed Critical Ханчжоу Хиквижн Диджитал Текнолоджи Ко., Лтд.
Application granted granted Critical
Publication of RU2809619C1 publication Critical patent/RU2809619C1/en

Links

Images

Abstract

FIELD: video encoding and decoding.
SUBSTANCE: result is achieved by configuring weight values, in which a suitable target weight value is configured for each pixel position of the current block, so that the prediction values of the current block are closer to the source pixels, which improves the prediction accuracy, prediction efficiency, and video encoding and decoding efficiency.
EFFECT: increase of efficiency of video encoding/decoding.
21 cl, 23 dwg, 6 tbl

Description

ОБЛАСТЬ ТЕХНИКИTECHNICAL FIELD

[01] Настоящее изобретение относится к технологиям кодирования и декодирования, в частности, к способам и оборудованию для кодирования и декодирования, устройствам на стороне кодера и устройствам на стороне декодера.[01] The present invention relates to encoding and decoding technologies, in particular to encoding and decoding methods and equipment, encoder-side devices and decoder-side devices.

ПРЕДПОСЫЛКИ СОЗДАНИЯ ИЗОБРЕТЕНИЯPREREQUISITES FOR CREATION OF THE INVENTION

[02] Для уменьшения занимаемого объема, видео или изображения передают после кодирования. Полный процесс кодирования видео может включать такие процессы, как предсказание, преобразование, квантование, энтропийное кодирование, фильтрация и т.д. Предсказание может включать внутреннее предсказание и внешнее предсказание. Внешнее предсказание относится к операции использования временной корреляции видео для предсказания текущих пикселей с использованием пикселей соседнего кодированного изображения для достижения эффективного уменьшения временной избыточности видео. Внутреннее предсказание относится к операции использования пространственной корреляции видео для предсказания текущих пикселей с использованием пикселей одного или более кодированных блоков текущего изображения для достижения эффективного уменьшения пространственной избыточности видео.[02] To reduce storage space, video or images are transmitted after encoding. The complete video encoding process may include processes such as prediction, transformation, quantization, entropy encoding, filtering, etc. Prediction may include internal prediction and external prediction. Inter-prediction refers to the operation of using video temporal correlation to predict current pixels using the pixels of a neighboring encoded image to achieve efficient reduction of video temporal redundancy. Intra prediction refers to the operation of using video spatial correlation to predict current pixels using pixels of one or more coded blocks of the current image to achieve efficient reduction of video spatial redundancy.

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

[03] Ввиду вышеизложенного настоящая заявка раскрывает способы и оборудование для кодирования и декодирования, устройства на стороне кодера и устройства на стороне декодера, которые позволяют повысить точность предсказания.[03] In view of the above, the present application discloses encoding and decoding methods and equipment, encoder-side devices and decoder-side devices that can improve prediction accuracy.

[04] Настоящая заявка раскрывает способ кодирования и декодирования, включающий: когда определено, что следует разрешить взвешенное предсказание для текущего блока, получение угла взвешенного предсказания и параметров весовой конфигурации текущего блока, при этом параметры весовой конфигурации включают коэффициент преобразования весов и начальную позицию преобразования весов; конфигурирование опорных весовых значений для окружающих позиций за пределами текущего блока в соответствии с параметрами весовой конфигурации; для каждой позиции пикселя текущего блока, определение окружающей соответствующей позиции, указанной позицией пикселя, из окружающих позиций за пределами текущего блока на основе угла взвешенного предсказания; определение целевого весового значения позиции пикселя на основе опорного весового значения, связанного с окружающей соответствующей позицией, определение ассоциированного весового значения позиции пикселя на основе целевого весового значения позиции пикселя; определение первого значения предсказания позиции пикселя на основе первого режима предсказания текущего блока, определение второго значения предсказания позиции пикселя на основе второго режима предсказания текущего блока; определение значения взвешенного предсказания позиции пикселя на основе первого значения предсказания, целевого весового значения, второго значения предсказания и ассоциированного весового значения; определение значения взвешенного предсказания текущего блока на основе значений взвешенного предсказания всех позиций пикселей в текущем блоке.[04] The present application discloses an encoding and decoding method including: when it is determined that weighted prediction should be enabled for a current block, obtaining a weighted prediction angle and weight configuration parameters of the current block, wherein the weight configuration parameters include a weight conversion factor and a weight conversion starting position ; configuring reference weight values for surrounding positions outside the current block in accordance with the parameters of the weight configuration; for each pixel position of the current block, determining a surrounding corresponding position indicated by the pixel position from surrounding positions outside the current block based on the weighted prediction angle; determining a target pixel position weight value based on a reference weight value associated with a surrounding corresponding position, determining an associated pixel position weight value based on the target pixel position weight value; determining a first pixel position prediction value based on a first prediction mode of the current block, determining a second pixel position prediction value based on a second prediction mode of the current block; determining a weighted pixel position prediction value based on the first prediction value, the target weight value, the second prediction value, and the associated weight value; determining a weighted prediction value of the current block based on the weighted prediction values of all pixel positions in the current block.

[05] Настоящая заявка раскрывает оборудование для кодирования и декодирования, содержащее: модуль получения, выполненный с возможностью получения угла взвешенного предсказания и параметров весовой конфигурации текущего блока, когда определено, что следует разрешить взвешенное предсказание для текущего блока; при этом параметры весовой конфигурации включают коэффициент преобразования весов и начальную позицию преобразования весов; модуль конфигурирования, выполненный с возможностью конфигурирования опорных весовых значений для окружающих позиций за пределами текущего блока в соответствии с параметрами весовой конфигурации; модуль определения, выполненный с возможностью определения, для каждой позиции пикселя текущего блока, окружающей соответствующей позиции, указанной позицией пикселя, из окружающих позиций за пределами текущего блока на основе угла взвешенного предсказания; определения целевого весового значения позиции пикселя на основе опорного весового значения, связанного с окружающей соответствующей позицией, определения ассоциированного весового значения позиции пикселя на основе целевого весового значения позиции пикселя; определения первого значения предсказания позиции пикселя на основе первого режима предсказания текущего блока, определения второго значения предсказания позиции пикселя на основе второго режима предсказания текущего блока; определения значения взвешенного предсказания позиции пикселя на основе первого значения предсказания, целевого весового значения, второго значения предсказания и ассоциированного весового значения; определения значения взвешенного предсказания текущего блока на основе значений взвешенного предсказания всех позиций пикселей в текущем блоке.[05] The present application discloses encoding and decoding equipment comprising: an acquisition module configured to obtain a weighted prediction angle and weight configuration parameters of a current block when it is determined that weighted prediction should be enabled for the current block; wherein the parameters of the weight configuration include the weight conversion factor and the initial position of the weight conversion; a configuration module configured to configure reference weight values for surrounding positions outside the current block in accordance with the parameters of the weight configuration; a determination module configured to determine, for each pixel position of the current block, surrounding a corresponding position indicated by the pixel position, from surrounding positions outside the current block based on the weighted prediction angle; determining a target pixel position weight value based on a reference weight value associated with a surrounding corresponding position, determining an associated pixel position weight value based on the target pixel position weight value; determining a first pixel position prediction value based on a first prediction mode of the current block, determining a second pixel position prediction value based on a second prediction mode of the current block; determining a weighted pixel position prediction value based on the first prediction value, the target weight value, the second prediction value, and the associated weight value; determining a weighted prediction value of the current block based on the weighted prediction values of all pixel positions in the current block.

[06] Настоящая заявка раскрывает устройство на стороне декодера, содержащее: процессор и машиночитаемый носитель данных, на котором хранятся машиночитаемые инструкции, исполняемые процессором, и процессор сконфигурирован для исполнения машиночитаемых инструкций для выполнения следующего: когда определено, что следует разрешить взвешенное предсказание для текущего блока, получение угла взвешенного предсказания и параметров весовой конфигурации текущего блока; при этом параметры весовой конфигурации включают коэффициент преобразования весов и начальную позицию преобразования весов; конфигурирование опорных весовых значений для окружающих позиций за пределами текущего блока в соответствии с параметрами весовой конфигурации; для каждой позиции пикселя текущего блока, определение окружающей соответствующей позиции, указанной позицией пикселя, из окружающих позиций за пределами текущего блока на основе угла взвешенного предсказания; определение целевого весового значения позиции пикселя на основе опорного весового значения, связанного с окружающей соответствующей позицией, определение ассоциированного весового значения позиции пикселя на основе целевого весового значения позиции пикселя; определение первого значения предсказания позиции пикселя на основе первого режима предсказания текущего блока, определение второго значения предсказания позиции пикселя на основе второго режима предсказания текущего блока; определение значения взвешенного предсказания позиции пикселя на основе первого значения предсказания, целевого весового значения, второго значения предсказания и ассоциированного весового значения; определение значения взвешенного предсказания текущего блока на основе значений взвешенного предсказания всех позиций пикселей в текущем блоке.[06] This application discloses a decoder-side apparatus comprising: a processor and a computer-readable storage medium on which computer-readable instructions executable by the processor are stored, and the processor is configured to execute the computer-readable instructions to do the following: when it is determined that weighted prediction should be enabled for a current block , obtaining the weighted prediction angle and weight configuration parameters of the current block; wherein the parameters of the weight configuration include the weight conversion factor and the initial position of the weight conversion; configuring reference weight values for surrounding positions outside the current block in accordance with the parameters of the weight configuration; for each pixel position of the current block, determining a surrounding corresponding position indicated by the pixel position from surrounding positions outside the current block based on the weighted prediction angle; determining a target pixel position weight value based on a reference weight value associated with a surrounding corresponding position, determining an associated pixel position weight value based on the target pixel position weight value; determining a first pixel position prediction value based on a first prediction mode of the current block, determining a second pixel position prediction value based on a second prediction mode of the current block; determining a weighted pixel position prediction value based on the first prediction value, the target weight value, the second prediction value, and the associated weight value; determining a weighted prediction value of the current block based on the weighted prediction values of all pixel positions in the current block.

[07] Настоящая заявка раскрывает устройство на стороне кодера, содержащее: процессор и машиночитаемый носитель данных, на котором хранятся машиночитаемые инструкции, исполняемые процессором, и процессор сконфигурирован для исполнения машиночитаемых инструкций для выполнения следующего: когда определено, что следует разрешить взвешенное предсказание для текущего блока, получение угла взвешенного предсказания и параметров весовой конфигурации текущего блока; при этом параметры весовой конфигурации включают коэффициент преобразования весов и начальную позицию преобразования весов; конфигурирование опорных весовых значений для окружающих позиций за пределами текущего блока в соответствии с параметрами весовой конфигурации; для каждой позиции пикселя текущего блока, определение окружающей соответствующей позиции, указанной позицией пикселя, из окружающих позиций за пределами текущего блока на основе угла взвешенного предсказания; определение целевого весового значения позиции пикселя на основе опорного весового значения, связанного с окружающей соответствующей позицией, определение ассоциированного весового значения позиции пикселя на основе целевого весового значения позиции пикселя; определение первого значения предсказания позиции пикселя на основе первого режима предсказания текущего блока, определение второго значения предсказания позиции пикселя на основе второго режима предсказания текущего блока; определение значения взвешенного предсказания позиции пикселя на основе первого значения предсказания, целевого весового значения, второго значения предсказания и ассоциированного весового значения; определение значения взвешенного предсказания текущего блока на основе значений взвешенного предсказания всех позиций пикселей в текущем блоке.[07] This application discloses an encoder-side apparatus comprising: a processor and a computer-readable storage medium on which computer-readable instructions executable by the processor are stored, and the processor is configured to execute the computer-readable instructions to do the following: when it is determined that weighted prediction should be enabled for a current block , obtaining the weighted prediction angle and weight configuration parameters of the current block; wherein the parameters of the weight configuration include the weight conversion factor and the initial position of the weight conversion; configuring reference weight values for surrounding positions outside the current block in accordance with the parameters of the weight configuration; for each pixel position of the current block, determining a surrounding corresponding position indicated by the pixel position from surrounding positions outside the current block based on the weighted prediction angle; determining a target pixel position weight value based on a reference weight value associated with a surrounding corresponding position, determining an associated pixel position weight value based on the target pixel position weight value; determining a first pixel position prediction value based on a first prediction mode of the current block, determining a second pixel position prediction value based on a second prediction mode of the current block; determining a weighted pixel position prediction value based on the first prediction value, the target weight value, the second prediction value, and the associated weight value; determining a weighted prediction value of the current block based on the weighted prediction values of all pixel positions in the current block.

[08] Как описано в приведенных выше технических решениях, в вариантах осуществления настоящего изобретения предоставляется эффективный способ конфигурирования весовых значений, в котором подходящее целевое весовое значение конфигурируется для каждой позиции пикселя текущего блока, так что значения предсказания текущего блока более приближены к исходным пикселям, что повышает точность предсказания, эффективность предсказания и эффективность кодирования.[08] As described in the above technical solutions, embodiments of the present invention provide an efficient method for configuring weight values, in which a suitable target weight value is configured for each pixel position of the current block, so that the prediction values of the current block are more similar to the source pixels, which improves prediction accuracy, prediction efficiency and coding efficiency.

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

[09] Фиг. 1 представляет собой схему структуры системы кодирования видео.[09] FIG. 1 is a diagram of the structure of a video encoding system.

[10] Фиг. 2А-2С представляют собой схематические диаграммы взвешенного предсказания.[10] FIG. 2A-2C are schematic diagrams of weighted prediction.

[11] Фиг. 3 представляет собой блок-схему, иллюстрирующую способ кодирования и декодирования согласно варианту осуществления настоящего изобретения.[11] FIG. 3 is a flowchart illustrating an encoding and decoding method according to an embodiment of the present invention.

[12] Фиг. 4А представляет собой блок-схему, иллюстрирующую способ кодирования согласно варианту осуществления настоящего изобретения.[12] FIG. 4A is a flowchart illustrating an encoding method according to an embodiment of the present invention.

[13] Фиг. 4В-4Е представляют собой схематические диаграммы, иллюстрирующие окружающие позиции за пределами текущего блока.[13] FIG. 4B-4E are schematic diagrams illustrating surrounding positions outside the current block.

[14] Фиг. 4F представляет собой блок-схему, иллюстрирующую способ декодирования согласно варианту осуществления настоящего изобретения.[14] FIG. 4F is a flowchart illustrating a decoding method according to an embodiment of the present invention.

[15] Фиг. 5 представляет собой схематическую диаграмму, иллюстрирующую угол взвешенного предсказания согласно варианту осуществления настоящего изобретения.[15] FIG. 5 is a schematic diagram illustrating a weighted prediction angle according to an embodiment of the present invention.

[16] Фиг. 6 представляет собой схематическую диаграмму опорных весовых значений для четырех коэффициентов преобразования весов согласно варианту осуществления настоящего изобретения.[16] FIG. 6 is a schematic diagram of weight reference values for four weight conversion coefficients according to an embodiment of the present invention.

[17] Фиг. 7А представляет собой блок-схему получения весового массива согласно варианту осуществления настоящего изобретения.[17] FIG. 7A is a flowchart of obtaining a weight array according to an embodiment of the present invention.

[18] Фиг. 7B-7D представляют собой схематические диаграммы угла и областей взвешенного предсказания согласно варианту осуществления настоящего изобретения.[18] FIG. 7B to 7D are schematic diagrams of angle and weighted prediction regions according to an embodiment of the present invention.

[19] Фиг. 8А и фиг. 8В представляют собой схематические диаграммы последовательности SCC и натуральной последовательности.[19] FIG. 8A and FIG. 8B are schematic diagrams of the SCC sequence and the natural sequence.

[20] Фиг. 9 представляет собой схематическую диаграмму, иллюстрирующую соседние блоки текущего блока в соответствии с вариантом осуществления настоящего изобретения.[20] FIG. 9 is a schematic diagram illustrating adjacent blocks of a current block in accordance with an embodiment of the present invention.

[21] Фиг. 10А представляет собой структурную схему, иллюстрирующую оборудование для кодирования и декодирования согласно варианту осуществления настоящего изобретения.[21] FIG. 10A is a block diagram illustrating encoding and decoding equipment according to an embodiment of the present invention.

[22] Фиг. 10В представляет собой схему аппаратной структуры устройства на стороне декодера согласно варианту осуществления настоящего изобретения.[22] FIG. 10B is a diagram of a hardware structure of a decoder-side device according to an embodiment of the present invention.

[23] Фиг. 10С представляет собой схему аппаратной структуры устройства на стороне кодера согласно варианту осуществления настоящего изобретения.[23] FIG. 10C is a diagram of a hardware structure of an encoder-side device according to an embodiment of the present invention.

ПОДРОБНОЕ ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯDETAILED DESCRIPTION OF OPTIONS FOR IMPLEMENTING THE INVENTION

[24] Используемые здесь термины предназначены только для описания конкретного варианта осуществления изобретения, а не для ограничения настоящего изобретения. Формы единственного числа, используемые в настоящем описании и прилагаемой формуле изобретения, также предназначены для включения форм множественного числа, если из контекста явно не следует иное. Также следует понимать, что сочетание «и/или», используемое в данном документе, относится к любой или всем возможным комбинациям, которые включают один или более связанных перечисленных элементов. Следует отметить, что, хотя термины «первый», «второй», «третий» и т.п. могут использоваться в настоящем изобретении для описания различной информации, такая информация не должна ограничиваться этими терминами. Эти термины используются только для того, чтобы отличить одну категорию информации от другой. Например, в пределах сущности настоящего изобретения, первая информация может упоминаться как вторая информация; и, аналогично, вторая информация также может упоминаться как первая информация, в зависимости от контекста. Кроме того, слово «если», используемое здесь, может означать «когда», или «после», или «в ответ на определение».[24] The terms used herein are intended only to describe a particular embodiment of the invention and not to limit the present invention. The singular forms used in this specification and the accompanying claims are also intended to include the plural forms unless the context clearly indicates otherwise. It should also be understood that the combination “and/or” as used herein refers to any or all possible combinations that include one or more related listed elements. It should be noted that although the terms “first”, “second”, “third”, etc. may be used in the present invention to describe various information, such information should not be limited to these terms. These terms are used only to distinguish one category of information from another. For example, within the spirit of the present invention, the first information may be referred to as the second information; and, similarly, the second information may also be referred to as the first information, depending on the context. Additionally, the word "if" used here can mean "when" or "after" or "in response to a determination."

[25] Настоящее изобретение предлагает способы, оборудование и устройства для кодирования и декодирования, для которых могут использоваться следующие понятия: внутреннее предсказание, внешнее предсказание, предсказание внутриблочного копирования (IBC, Intra Block Сору) и т.д.[25] The present invention provides methods, equipment and devices for encoding and decoding, for which the following concepts can be used: intra prediction, inter prediction, intra block copy prediction (IBC, Intra Block Copy), etc.

[26] Внутреннее предсказание предсказывает пиксель текущего блока с использованием пикселей одного или более кодированных блоков текущего изображения на основе пространственной корреляции видео, чтобы устранить пространственную избыточность видео. Внутреннее предсказание определяет несколько режимов предсказания, каждый из которых соответствует одному направлению текстуры (за исключением режима постоянной составляющей (DC, Direct Current)). Например, если текстура изображения соответствует горизонтальному направлению, использование режима горизонтального предсказания может лучше предсказывать информацию изображения.[26] Intra prediction predicts a pixel of the current block using pixels of one or more encoded blocks of the current image based on the spatial correlation of the video to eliminate the spatial redundancy of the video. Internal prediction defines several prediction modes, each of which corresponds to one texture direction (with the exception of DC (Direct Current) mode). For example, if the image texture follows the horizontal direction, using the horizontal prediction mode can better predict image information.

[27] Внешнее предсказание использует пиксели соседних кодированных изображений для предсказания пикселей текущего изображения на основе временной корреляции видео из-за сильной временной корреляции, включенной в видеопоследовательность, чтобы эффективно уменьшить временную избыточность видео.[27] Inter-prediction uses the pixels of neighboring encoded images to predict the pixels of the current image based on the temporal correlation of the video due to the strong temporal correlation included in the video sequence to effectively reduce the temporal redundancy of the video.

[28] Внутриблочное копирование позволяет ссылаться на один и тот же слайс, если опорные данные текущего блока исходят из того же слайса. В технологии внутриблочного копирования значение предсказания текущего блока может быть получено с использованием вектора блока текущего блока. Например, на основе характеристики, состоящей в том, что имеется большое количество повторяющихся текстур в одном и том же слайсе в экранном контенте, когда значение предсказания текущего блока получают с использованием вектора блока, может быть повышена эффективность сжатия последовательности экранного контента.[28] Intra-block copying allows the same slice to be referenced if the current block's reference data comes from the same slice. In intra-block copy technology, the prediction value of the current block can be obtained using the block vector of the current block. For example, based on the characteristic that there are a large number of repeating textures in the same slice in the screen content, when the prediction value of the current block is obtained using a block vector, the compression efficiency of the screen content sequence can be improved.

[29] Пиксель предсказания относится к значению пикселя, полученному из кодированного/декодированного пикселя, и получают остаток на основе разности между исходным пикселем и пикселем предсказания, а затем выполняют преобразование, квантование, а также кодирование коэффициентов остатков. Пиксель внешнего предсказания для текущего блока относится к значению пикселя, полученному из опорного изображения, и, поскольку позиции пикселей являются дискретными, для получения окончательного пикселя предсказания требуется операция интерполяции. Чем ближе пиксель предсказания к исходному пикселю, тем меньше энергия остатка, полученная при выполнении вычитания для обоих пикселей, и тем выше эффективность сжатия кодирования.[29] A prediction pixel refers to a pixel value obtained from an encoded/decoded pixel, and a residual is obtained based on the difference between the original pixel and the prediction pixel, and then transform, quantization, and coding of the residual coefficients are performed. The inter-prediction pixel for the current block refers to the pixel value obtained from the reference image, and since the pixel positions are discrete, an interpolation operation is required to obtain the final prediction pixel. The closer the prediction pixel is to the original pixel, the smaller the residual energy obtained by performing subtraction on both pixels, and the higher the coding compression efficiency.

[30] Вектор движения (MB, Motion Vector). При внешнем предсказании вектор движения используется для представления относительного смещения между текущим блоком текущего слайса и опорным блоком опорного слайса. Каждый из разделенных блоков имеет соответствующий вектор движения, который должен быть передан на сторону декодера. Если вектор движения каждого блока кодируется и передается независимо, особенно при наличии большого количества блоков меньшего размера, необходимо использовать больше битов. Чтобы уменьшить количество битов, используемых для кодирования вектора движения, может использоваться пространственная корреляция между соседними блоками для предсказания вектора движения текущего блока на основе вектора(ов) движения соседнего(их) кодированного(ых) блока(ов), а затем кодируется разность предсказания. Таким образом, количество битов, представляющих векторы движения, может быть эффективно уменьшено. В процессе кодирования вектора движения текущего блока сначала используются один или более векторов движения одного или более соседних кодируемых блоков для предсказания вектора движения текущего блока, а затем кодируется разность векторов движения (MVD, Motion Vector Difference) между значением предсказания вектора движения (MVP, Motion Vector Prediction) и реальным значением оценки вектора движения.[30] Motion Vector (MB, Motion Vector). In external prediction, a motion vector is used to represent the relative displacement between the current block of the current slice and the reference block of the reference slice. Each of the divided blocks has a corresponding motion vector that must be transmitted to the decoder side. If the motion vector of each block is encoded and transmitted independently, especially if there are many smaller blocks, more bits must be used. To reduce the number of bits used to encode the motion vector, spatial correlation between adjacent blocks can be used to predict the motion vector of the current block based on the motion vector(s) of the adjacent encoded block(s), and then the prediction difference is encoded. In this way, the number of bits representing motion vectors can be effectively reduced. In the process of encoding the motion vector of the current block, first, one or more motion vectors of one or more adjacent blocks to be encoded are used to predict the motion vector of the current block, and then the motion vector difference (MVD) between the motion vector prediction value (MVP) is encoded. Prediction) and the real value of the motion vector estimate.

[31] Информация о движении. Поскольку вектор движения представляет собой смещение позиции от текущего блока к опорному блоку, для точного получения информации об указанном блоке в дополнение к вектору движения также необходима индексная информация об опорном изображении, чтобы указать, какое опорное изображение используется для текущего блока. В технологии кодирования видео для текущего слайса может быть установлен список опорных изображений, и индексная информация об опорном изображении указывает, какое опорное изображение, указанное в списке опорных изображений, используется для текущего блока. Кроме того, многие технологии кодирования также поддерживают несколько списков опорных изображений, так что индекс может также использоваться для указания того, какой список опорных изображений используется, и этот индекс может упоминаться как опорное направление. Подводя итог, можно сказать, что в технологии кодирования видеоинформация, относящаяся к движению, такая как вектор движения, индексная информация опорного изображения и опорное направление, может совместно называться информацией о движении.[31] Traffic information. Since the motion vector represents the position offset from the current block to the reference block, to accurately obtain information about the specified block, in addition to the motion vector, reference image index information is also needed to indicate which reference image is used for the current block. In a video encoding technology, a reference picture list may be set for the current slice, and the reference picture index information indicates which reference picture specified in the reference picture list is used for the current block. In addition, many encoding technologies also support multiple reference picture lists, so that an index may also be used to indicate which reference picture list is used, and this index may be referred to as a reference direction. To summarize, in video encoding technology, motion-related information such as motion vector, reference image index information, and reference direction may be collectively referred to as motion information.

[32] Вектор блока (BV, Block vector) применяется в технологии внутриблочного копирования, которая использует вектор блока для компенсации движения, например, значение предсказания текущего блока получают с использованием вектора блока. Вектор блока представляет собой относительное смещение между текущим блоком и наилучшим соответствующим блоком из кодированных блоков текущего слайса и отличается от вектора движения. На основе характеристики наличия большого количества повторяющихся текстур в одном и том же слайсе, когда значение предсказания текущего блока получают с использованием вектора блока, может быть повышена эффективность сжатия.[32] Block vector (BV) is used in intra-block copy technology, which uses the block vector to compensate for motion, for example, the prediction value of the current block is obtained using the block vector. The block vector represents the relative displacement between the current block and the best matching block of the coded blocks of the current slice and is different from the motion vector. Based on the characteristic of having a large number of repeated textures in the same slice, when the prediction value of the current block is obtained using the block vector, the compression efficiency can be improved.

[33] Режим внутреннего предсказания. При внутреннем предсказании режим внутреннего предсказания используется для выполнения компенсации движения, например, значение предсказания текущего блока получают с использованием режима внутреннего предсказания. Например, режим внутреннего предсказания может включать, не ограничиваясь этим, планарный режим, режим постоянной составляющей и множество угловых режимов. Планарный режим применим к области, в которой значения пикселей изменяются медленно, и использует два линейных фильтра в горизонтальном и вертикальном направлениях, чтобы получить среднее значение пикселей в двух направлениях в качестве значения предсказания пикселей текущего блока. Режим постоянной составляющей применим к большой плоской поверхности и принимает среднее значение окружающих пикселей текущего блока в качестве значения предсказания текущего блока. Угловые режимы включают 33 угловых режима или 65 угловых режимов.[33] Intra prediction mode. In intra prediction, the intra prediction mode is used to perform motion compensation, for example, the prediction value of the current block is obtained using the intra prediction mode. For example, an intra prediction mode may include, but is not limited to, a planar mode, a DC mode, and a plurality of angular modes. Planar mode is applied to the region in which the pixel values change slowly, and uses two linear filters in the horizontal and vertical directions to obtain the average of the pixels in the two directions as the pixel prediction value of the current block. DC mode applies to a large flat surface and takes the average value of the current block's surrounding pixels as the current block's prediction value. Angle modes include 33 angle modes or 65 angle modes.

[34] Режим палитры. В режиме палитры значения пикселей текущего блока представлены небольшим набором значений пикселей, то есть палитрой. Когда значение пикселя позиции пикселя в текущем блоке близко к цвету в палитре, позиция пикселя кодируется значением индекса соответствующего цвета в палитре. Когда значение пикселя позиции пикселя в текущем блоке не похоже на все цвета в палитре, позиция пикселя должна кодироваться с помощью «сбежавшего» пикселя (escape pixel), и «сбежавший» пиксель непосредственно квантуется, а затем кодируется в битовый поток. На стороне декодера сначала получают одну палитру, например, палитру, хранящую {цвет А, цвет В, цвет С}, и затем определяют, кодирована ли каждая позиция пикселя как «сбежавший» пиксель. Если позиция пикселя не является «сбежавшим» пикселем, индекс позиции пикселя получают из битового потока, а затем из палитры получают цвет на основе индекса позиции пикселя и назначают его позиции пикселя; в противном случае анализируют «сбежавший» пиксель.[34] Palette mode. In palette mode, the pixel values of the current block are represented by a small set of pixel values, that is, a palette. When the pixel value of a pixel position in the current block is close to a color in the palette, the pixel position is encoded by the index value of the corresponding color in the palette. When the pixel value of a pixel position in the current block is not similar to all the colors in the palette, the pixel position must be encoded using an escape pixel, and the escape pixel is directly quantized and then encoded into a bitstream. At the decoder side, one palette is first obtained, for example, a palette storing {color A, color B, color C}, and then determines whether each pixel position is encoded as an escaped pixel. If the pixel position is not a runaway pixel, the pixel position index is obtained from the bitstream, and then the color based on the pixel position index is obtained from the palette and assigned to the pixel position; otherwise, the “escaped” pixel is analyzed.

[35] Оптимизация «скорость-искажение» (RDO, Rate-Distortion Optimization). Есть два показателя для оценки эффективности кодирования: битовая скорость и отношение пикового сигнала к шуму (PSNR, Peak Signal to Noise Ratio). Чем меньше битовый поток, тем выше степень сжатия; и чем выше PSNR, тем лучше качество реконструированного изображения. При выборе режима способ принятия решения фактически представляет собой всестороннюю оценку для обоих режимов. Например, стоимость, соответствующая режиму, может быть рассчитана по следующей формуле: где D представляет искажение, обычно измеряемое суммой квадратов ошибок (SSE, Sum of Squared Errors), a SSE относится к средней сумме квадратов разностей между реконструированным блоком изображения и исходным изображением; X представляет множитель Лагранжа; и R представляет фактическое количество битов, необходимых для кодирования блока изображения в этом режиме, включая общее количество битов, необходимое для информации о режиме кодирования, информации о движении, остатках и т.п. При выборе режима, если RDO используется для принятия сравнительного решения о режимах кодирования, обычно может быть гарантирована наилучшая эффективность кодирования.[35] Rate-Distortion Optimization (RDO). There are two metrics to evaluate encoding efficiency: bit rate and Peak Signal to Noise Ratio (PSNR). The smaller the bit stream, the higher the compression ratio; and the higher the PSNR, the better the quality of the reconstructed image. When choosing a mode, the decision method is actually a comprehensive assessment for both modes. For example, the cost corresponding to the mode can be calculated using the following formula: where D represents the distortion, usually measured by the sum of squared errors (SSE, Sum of Squared Errors), and SSE refers to the average sum of squared differences between the reconstructed image block and the original image; X represents the Lagrange multiplier; and R represents the actual number of bits required to encode an image block in this mode, including the total number of bits required for encoding mode information, motion information, residuals, and the like. In mode selection, if RDO is used to make a comparative decision about encoding modes, the best encoding efficiency can usually be guaranteed.

[36] Структура системы кодирования видео. Структура системы кодирования видео, показанная на Фиг. 1, может использоваться для выполнения процесса на стороне кодера в вариантах осуществления настоящего изобретения, а структура системы декодирования видео аналогична Фиг. 1 и здесь повторяться не будет. Структура системы декодирования видео может использоваться для выполнения процесса на стороне декодера в вариантах осуществления настоящего изобретения. Например, структура системы кодирования видео и структура системы декодирования видео могут включать, не ограничиваясь этим, модуль внутреннего предсказания или модуль внешнего предсказания, модуль оценки/компенсации движения, буфер опорных изображений, модуль внутриконтурной фильтрации, модуль реконструкции, модуль преобразования, модуль квантования, модуль обратного преобразования, модуль деквантования, энтропийный кодер и т.п. Кодер может выполнять процесс на стороне кодера посредством взаимодействия этих модулей, а декодер может выполнять процесс на стороне декодера посредством взаимодействия этих модулей.[36] Video coding system structure. The structure of the video encoding system shown in FIG. 1 can be used to perform an encoder-side process in embodiments of the present invention, and the structure of the video decoding system is similar to FIG. 1 will not be repeated here either. The structure of a video decoding system may be used to perform a decoder-side process in embodiments of the present invention. For example, the video encoding system structure and the video decoding system structure may include, but are not limited to, an intra prediction module or an inter prediction module, a motion estimation/compensation module, a reference picture buffer, an in-loop filtering module, a reconstruction module, a transform module, a quantization module, a inverse conversion, dequantization module, entropy encoder, etc. An encoder can execute an encoder-side process through the interaction of these modules, and a decoder can execute a decoder-side process through the interaction of these modules.

[37] Например, текущий блок может быть прямоугольным, в то время как граница объекта обычно не является прямоугольной в практических ситуациях. Поэтому для границы объекта обычно используются две различные сущности (например, объект, представленный на переднем плане и на заднем плане, и т.д.). Когда движения двух объектов несовместимы, эти два объекта не могут быть хорошо разделены на основе прямоугольного разделения. Следовательно, текущий блок может быть разделен на два непрямоугольных подблока, и для двух непрямоугольных подблоков выполняется взвешенное предсказание. Например, взвешенное предсказание предназначено для выполнения взвешенной операции на основе нескольких значений предсказания для получения одного или более окончательных значений предсказания. Взвешенное предсказание может включать: комбинированное внешнее/внутреннее предсказание, комбинированное внешнее/внутреннее предсказание, комбинированное внутреннее/внутреннее предсказание и т.д. Для весового(ых) значения(й) взвешенного предсказания одно и то же весовое значение или различные весовые значения могут быть установлены для всех позиций пикселей текущего блока.[37] For example, the current block may be rectangular, while the boundary of an object is usually not rectangular in practical situations. Therefore, the boundary of an object usually uses two different entities (for example, an object represented in the foreground and in the background, etc.). When the motions of two objects are inconsistent, the two objects cannot be separated well based on rectangular separation. Therefore, the current block can be divided into two non-rectangular sub-blocks, and a weighted prediction is performed on the two non-rectangular sub-blocks. For example, weighted prediction is designed to perform a weighted operation based on multiple prediction values to obtain one or more final prediction values. The weighted prediction may include: combined inter/intra prediction, combined inter/intra prediction, combined intra/intra prediction, etc. For weighted prediction weight(s), the same weight value or different weight values may be set for all pixel positions of the current block.

[38] Фиг. 2А представляет собой схематическую диаграмму, иллюстрирующую режим треугольного разделения (ТРМ, Triangular Partition Mode) внешнего взвешенного предсказания.[38] FIG. 2A is a schematic diagram illustrating the Triangular Partition Mode (TPM) of external weighted prediction.

[39] Блок предсказания ТРМ получают путем объединения блока 1 внешнего предсказания (например, значение 1 внешнего предсказания для нескольких позиций пикселей получают с использованием режима 1 внешнего предсказания) и блока 2 внешнего предсказания (например, значение 2 внешнего предсказания нескольких позиций пикселей получают с использованием режима 2 внешнего предсказания). Блок предсказания ТРМ может быть разделен на две области/части, одна из которых может быть областью 1 внешнего предсказания, и другая может быть областью 2 внешнего предсказания. Блок предсказания ТРМ может быть прямоугольным, а две области внешнего предсказания блока предсказания ТРМ могут быть непрямоугольными, и линия границы между двумя областями внешнего предсказания (как показано пунктирной линией на фиг. 2А) может быть главной диагональю или субдиагональю блока предсказания ТРМ.[39] The TPM prediction block is obtained by combining the inter prediction block 1 (for example, the inter prediction value 1 for several pixel positions is obtained using the inter prediction mode 1) and the inter prediction block 2 (for example, the inter prediction value 2 for several pixel positions is obtained using external prediction mode 2). The TPM prediction block may be divided into two areas/parts, one of which may be inter prediction area 1 and the other may be inter prediction area 2. The TPM prediction block may be rectangular, and the two inter prediction regions of the TPM prediction block may be non-rectangular, and the boundary line between the two inter prediction regions (as shown by the dashed line in FIG. 2A) may be a main diagonal or sub-diagonal of the TPM prediction block.

[40] Позиция каждого пикселя в области 1 внешнего предсказания в основном определяется на основе значения 1 внешнего предсказания блока 1 внешнего предсказания. Например, значение 1 внешнего предсказания блока 1 внешнего предсказания позиции пикселя и значение 2 внешнего предсказания блока 2 внешнего предсказания позиции пикселя взвешивают для получения комбинированного значения предсказания позиции пикселя, причем значение 1 внешнего предсказания имеет большее весовое значение, а значение 2 внешнего предсказания имеет меньшее весовое значение или даже 0. Каждая позиция пикселя области 2 внешнего предсказания в основном определяется на основе значения 2 внешнего предсказания блока 2 внешнего предсказания. Например, значение 1 внешнего предсказания блока 1 внешнего предсказания позиции пикселя и значение 2 внешнего предсказания блока 2 внешнего предсказания позиции пикселя взвешивают для получения комбинированного значения предсказания позиции пикселя, при этом значение 2 внешнего предсказания имеет большее весовое значение, а значение 1 внешнего предсказания имеет меньшее весовое значение или даже 0. Наконец, комбинированные значения предсказания позиций пикселей объединяют для формирования блока предсказания ТРМ.[40] The position of each pixel in the inter prediction region 1 is mainly determined based on the inter prediction value 1 of the inter prediction block 1. For example, the inter prediction value 1 of the pixel position inter prediction unit 1 and the inter prediction value 2 of the inter prediction unit 2 of the pixel position are weighted to obtain a combined pixel position prediction value, where the inter prediction value 1 has a larger weight and the inter prediction value 2 has a smaller weight. value or even 0. Each pixel position of the inter prediction region 2 is mainly determined based on the inter prediction value 2 of the inter prediction block 2. For example, the inter prediction value 1 of the pixel position inter prediction unit 1 and the inter prediction value 2 of the inter prediction unit 2 of the pixel position are weighted to obtain a combined pixel position prediction value, where the inter prediction value 2 has a larger weight and the inter prediction value 1 has a smaller weight. weight value or even 0. Finally, the combined pixel position prediction values are combined to form a TPM prediction block.

[41] Фиг. 2В представляет собой схематическую диаграмму, иллюстрирующую режим геометрического разделения (Geometrical, GEO) для межблочного режима. Режим GEO используется для разделения блока внешнего предсказания на два подблока с использованием одной линии разделения. В режиме GEO может быть больше направлений разделения по сравнению с режимом ТРМ. Режим GEO аналогичен режиму ТРМ в процессе взвешенного предсказания.[41] FIG. 2B is a schematic diagram illustrating the Geometrical (GEO) mode for the interblock mode. GEO mode is used to divide an inter prediction block into two sub-blocks using a single dividing line. In GEO mode there can be more separation directions compared to TPM mode. The GEO mode is similar to the TPM mode in the weighted prediction process.

[42] Блок предсказания GEO получают путем объединения блока 1 внешнего предсказания (например, значение 1 внешнего предсказания для позиций нескольких пикселей получают с использованием режима 1 внешнего предсказания) и блока 2 внешнего предсказания (например, значение 2 внешнего предсказания для позиций нескольких пикселей получают с использованием режима 2 внешнего предсказания). Блок предсказания GEO может быть разделен на две области/части, одна из которых может быть областью 1 внешнего предсказания, а другая может быть областью 2 внешнего предсказания.[42] The GEO prediction block is obtained by combining the inter prediction block 1 (for example, the inter prediction value 1 for multiple pixel positions is obtained using inter prediction mode 1) and the inter prediction block 2 (for example, the inter prediction value 2 for multiple pixel positions is obtained using using inter prediction mode 2). The GEO prediction block may be divided into two regions/parts, one of which may be inter prediction region 1 and the other may be inter prediction region 2.

[43] Позиция каждого пикселя в области 1 внешнего предсказания в основном определяется на основе значения 1 внешнего предсказания блока 1 внешнего предсказания. Например, когда значение 1 внешнего предсказания блока 1 внешнего предсказания позиции пикселя и значение 2 внешнего предсказания блока 2 внешнего предсказания позиции пикселя взвешивают, значение 1 внешнего предсказания имеет большее весовое значение, а значение 2 внешнего предсказания имеет меньшее весовое значение. Каждая позиция пикселя области 2 внешнего предсказания в основном определяется на основе значения 2 внешнего предсказания блока 2 внешнего предсказания. Например, когда значение 1 внешнего предсказания блока 1 внешнего предсказания позиции пикселя и значение 2 внешнего предсказания блока 2 внешнего предсказания позиции пикселя взвешивают, значение 2 внешнего предсказания имеет большее весовое значение, а значение 1 внешнего предсказания имеет меньшее весовое значение.[43] The position of each pixel in the inter prediction region 1 is mainly determined based on the inter prediction value 1 of the inter prediction block 1. For example, when the inter prediction value 1 of the pixel position inter prediction unit 1 and the inter prediction value 2 of the pixel position inter prediction unit 2 are weighted, the inter prediction value 1 has a larger weight value and the inter prediction value 2 has a smaller weight value. Each pixel position of the inter prediction region 2 is mainly determined based on the inter prediction value 2 of the inter prediction block 2. For example, when the inter prediction value 1 of the pixel position inter prediction unit 1 and the inter prediction value 2 of the pixel position inter prediction unit 2 are weighted, the inter prediction value 2 has a larger weight value and the inter prediction value 1 has a smaller weight value.

[44] Например, весовые значения блока предсказания GEO сконфигурированы с учетом расстояния позиции пикселя от линии разделения. Как показано на Фиг. 2С, позиция А пикселя, позиция В пикселя и позиция С пикселя расположены в нижней правой части от линии разделения, а позиция D пикселя, позиция Е пикселя и позиция F пикселя расположены в верхней левой части от линии разделения. Для позиции А пикселя, позиции В пикселя и позиции С пикселя весовые значения блока 2 внешнего предсказания ранжируют как В≥А≥С, а весовые значения блока 1 внешнего предсказания ранжируют как С≥А≥В. Для позиции D пикселя, позиции Е пикселя и позиции F пикселя весовые значения блока 1 внешнего предсказания ранжируют как D≥F≥Е, а весовые значения блока 2 внешнего предсказания ранжируют как Е≥F≥D. Описанный выше способ требует вычисления расстояния между позицией пикселя и линией разделения, а затем определения весового значения позиции пикселя.[44] For example, the weights of the GEO prediction block are configured taking into account the distance of the pixel position from the dividing line. As shown in FIG. 2C, pixel position A, pixel position B, and pixel position C are located at the lower right of the dividing line, and pixel position D, pixel position E, and pixel position F are located at the upper left of the dividing line. For pixel position A, pixel position B, and pixel position C, the weight values of the inter prediction block 2 are ranked as B≥A≥C, and the weight values of the inter prediction block 1 are ranked as C≥A≥B. For pixel position D, pixel position E, and pixel position F, the weight values of the inter prediction block 1 are ranked as D≥F≥E, and the weight values of the inter prediction block 2 are ranked as E≥F≥D. The above method requires calculating the distance between the pixel position and the dividing line, and then determining the weight value of the pixel position.

[45] В приведенных выше примерах для достижения взвешенного предсказания ожидается, что будут определены одно или более весовых значений блока предсказания, соответствующих каждой позиции пикселя текущего блока, и взвешенное предсказание выполняется на основе одного или более весовых значений, соответствующих позиции пикселя. Но установка одного или более весовых значений зависит от линии разделения, и необоснованная установка одного или более весовых значений может привести к плохому результату предсказания и низкой эффективности кодирования.[45] In the above examples, to achieve weighted prediction, it is expected that one or more weight values of a prediction block corresponding to each pixel position of the current block are determined, and weighted prediction is performed based on one or more weight values corresponding to the pixel position. But setting one or more weight values depends on the dividing line, and unreasonably setting one or more weight values may result in poor prediction result and low coding efficiency.

[46] Ввиду этого, варианты осуществления настоящего изобретения предлагают способ получения одного или более весовых значений. Таким образом, на основе опорных весовых значений окружающих позиций за пределами текущего блока определяют целевое весовое значение для каждой позиции пикселя текущего блока, таким образом, для каждой позиции пикселя может быть сконфигурировано более подходящее целевое весовое значение. В этом случае значения предсказания могут быть более приближены к исходным пикселям, что повышает точность предсказания, эффективность предсказания и эффективность кодирования.[46] In view of this, embodiments of the present invention provide a method for obtaining one or more weight values. Thus, based on the reference weight values of surrounding positions outside the current block, a target weight value for each pixel position of the current block is determined, such that a more suitable target weight value can be configured for each pixel position. In this case, the prediction values can be more close to the original pixels, which improves the prediction accuracy, prediction efficiency, and coding efficiency.

[47] Способ кодирования и декодирования согласно вариантам осуществления настоящего изобретения будет подробно описан ниже в сочетании с несколькими конкретными вариантами осуществления изобретения.[47] The encoding and decoding method according to embodiments of the present invention will be described in detail below in combination with several specific embodiments of the invention.

[48] Вариант 1 осуществления изобретения. Фиг. 3 представляет собой блок-схему, иллюстрирующую способ кодирования и декодирования. Способ может применяться на стороне декодера (который может также называться видеодекодером) или на стороне кодера (который может также называться видеокодером). Способ включает следующие этапы.[48] Embodiment 1 of the invention. Fig. 3 is a flowchart illustrating an encoding and decoding method. The method may be applied on the decoder side (which may also be called a video decoder) or on the encoder side (which may also be called a video encoder). The method includes the following steps.

[49] На этапе 301, когда определено, что следует разрешить взвешенное предсказание для текущего блока, получают угол взвешенного предсказания и параметры весовой конфигурации текущего блока, при этом параметры весовой конфигурации включают коэффициент преобразования весов и начальную позицию преобразования весов. Начальная позиция преобразования весов может определяться по меньшей мере одним из следующих параметров: угол взвешенного предсказания текущего блока, позиция взвешенного предсказания текущего блока или размер текущего блока.[49] At step 301, when it is determined that weighted prediction should be enabled for the current block, the weighted prediction angle and weight configuration parameters of the current block are obtained, wherein the weight configuration parameters include a weight conversion factor and a weight conversion starting position. The starting position of the weight transformation may be determined by at least one of the following parameters: a weighted prediction angle of the current block, a weighted prediction position of the current block, or a size of the current block.

[50] Например, когда ожидается, что будет сделано предсказание для текущего блока, сторона декодера или сторона кодера сначала определяют, разрешить ли взвешенное предсказание для текущего блока. Если определено, что следует разрешить взвешенное предсказание для текущего блока, применяют способ кодирования и декодирования вариантов осуществления настоящего изобретения, то есть выполняют этап 301 и последующие этапы. Если определено, что не следует разрешать взвешенное предсказание для текущего блока, никаких ограничений на соответствующие реализации в вариантах осуществления настоящего изобретения не делается.[50] For example, when a prediction is expected to be made for the current block, the decoder side or the encoder side first determines whether to allow a weighted prediction for the current block. If it is determined that weighted prediction should be enabled for the current block, the encoding and decoding method of embodiments of the present invention is applied, that is, step 301 and subsequent steps are performed. If it is determined that weighted prediction should not be enabled for the current block, no restrictions are made on the corresponding implementations in embodiments of the present invention.

[51] Например, когда определено, что следует разрешить взвешенное предсказание для текущего блока, могут быть получены угол взвешенного предсказания текущего блока, позиция взвешенного предсказания текущего блока и коэффициент преобразования весов текущего блока. Затем на основе по меньшей мере одного из угла взвешенного предсказания текущего блока, позиции взвешенного предсказания текущего блока или размера текущего блока можно определить начальную позицию преобразования весов текущего блока. Таким образом, можно получить угол взвешенного предсказания текущего блока, коэффициент преобразования весов текущего блока и начальную позицию преобразования весов текущего блока.[51] For example, when it is determined that weighted prediction should be enabled for the current block, the weighted prediction angle of the current block, the weighted prediction position of the current block, and the weight conversion factor of the current block can be obtained. Then, based on at least one of the weighted prediction angle of the current block, the weighted prediction position of the current block, or the size of the current block, a starting position for transforming the weights of the current block can be determined. In this way, the weighted prediction angle of the current block, the conversion coefficient of the weights of the current block, and the transformation starting position of the weights of the current block can be obtained.

[52] На этапе 302 конфигурируют опорные весовые значения для окружающих позиций за пределами текущего блока на основе параметров весовой конфигурации текущего блока.[52] At step 302, reference weights for surrounding positions outside the current block are configured based on the weight configuration parameters of the current block.

[53] Например, количество окружающих позиций за пределами текущего блока может быть определено на основе размера текущего блока и/или угла взвешенного предсказания текущего блока. Например, если определено, что количество окружающих позиций за пределами текущего блока равно М, на основе размера текущего блока и/или угла взвешенного предсказания текущего блока, конфигурируют опорные весовые значения для М окружающих позиций в соответствии с параметрами весовой конфигурации текущего блока.[53] For example, the number of surrounding positions outside the current block may be determined based on the size of the current block and/or the weighted prediction angle of the current block. For example, if the number of surrounding positions outside the current block is determined to be M, based on the size of the current block and/or the weighted prediction angle of the current block, reference weight values for the M surrounding positions are configured in accordance with the weight configuration parameters of the current block.

[54] Например, опорные весовые значения окружающих позиций за пределами текущего блока могут монотонно увеличиваться; или опорные весовые значения окружающих позиций за пределами текущего блока могут монотонно уменьшаться. Например, опорные весовые значения окружающих позиций за пределами текущего блока могут быть 0 0… 0 0 2 4 6 8 8… 8 8, или опорное весовое значение окружающих позиций за пределами текущего блока может быть 8 8… 8 8 6 4 2 0 0… 0 0.[54] For example, the reference weights of surrounding positions outside the current block may increase monotonically; or the reference weights of surrounding positions outside the current block may decrease monotonically. For example, the reference weights of surrounding positions outside the current block could be 0 0... 0 0 2 4 6 8 8... 8 8, or the reference weights of surrounding positions outside the current block could be 8 8... 8 8 6 4 2 0 0... 0 0.

[55] Например, окружающие позиции за пределами текущего блока могут включать позиции целого пикселя или позиции субпикселя, или как позиции целого пикселя, так и позиции субпикселя. Окружающие позиции за пределами текущего блока могут включать, не ограничиваясь этим, окружающие позиции в строке сверху от текущего блока, или окружающие позиции в столбце слева от текущего блока, или окружающие позиции в строке снизу от текущего блока, или окружающие позиции в столбце справа от текущего блока. Выше были приведены только примеры окружающих позиций, которые не накладывают никаких ограничений.[55] For example, surrounding positions outside the current block may include whole pixel positions or subpixel positions, or both whole pixel positions and subpixel positions. Surrounding positions outside the current block may include, but is not limited to, surrounding positions in the row above the current block, or surrounding positions in the column to the left of the current block, or surrounding positions in the row below the current block, or surrounding positions in the column to the right of the current block. block. The above were only examples of surrounding positions that do not impose any restrictions.

[56] В возможном варианте осуществления изобретения опорные весовые значения окружающих позиций за пределами текущего блока включают одно или более опорных весовых значений целевых позиций (областей), одно или более опорных весовых значений первых соседних позиций (областей) целевых позиций и одно или более опорных весовых значений вторых соседних позиций (областей) целевых позиций. То есть окружающие позиции за пределами текущего блока могут быть разделены на целевые позиции, первые соседние позиции целевых позиций и вторые соседние позиции целевых позиций.[56] In an exemplary embodiment of the invention, the reference weights of the surrounding positions outside the current block include one or more reference weights of the target positions (regions), one or more reference weights of the first adjacent positions (regions) of the target positions, and one or more reference weights values of the second neighboring positions (areas) of the target positions. That is, surrounding positions outside the current block can be divided into target positions, first adjacent positions of target positions, and second adjacent positions of target positions.

[57] Например, все опорные весовые значения первых соседних позиций являются первым опорным весовым значением, а опорные весовые значения вторых соседних позиций монотонно увеличиваются. Альтернативно, все опорные весовые значения первых соседних позиций являются первым опорным весовым значением, а опорные весовые значения вторых соседних позиций монотонно уменьшаются. Альтернативно, все опорные весовые значения первых соседних позиций являются вторым опорным весовым значением, и все опорные весовые значения вторых соседних позиций являются третьим опорным весовым значением, причем второе опорное весовое значение отличается от третьего опорного весового значения. Альтернативно, опорные весовые значения первых соседних позиций монотонно увеличиваются, и опорные весовые значения вторых соседних позиций монотонно увеличиваются. Альтернативно, опорные весовые значения первых соседних позиций монотонно уменьшаются, и опорные весовые значения вторых соседних позиций монотонно уменьшаются.[57] For example, all reference weights of the first adjacent positions are the first reference weight, and the reference weights of the second adjacent positions increase monotonically. Alternatively, all reference weight values of the first adjacent positions are the first reference weight value, and the reference weight values of the second adjacent positions decrease monotonically. Alternatively, all reference weights of the first adjacent positions are a second reference weight, and all reference weights of the second adjacent positions are a third reference weight, wherein the second reference weight is different from the third reference weight. Alternatively, the reference weight values of the first adjacent positions increase monotonically, and the reference weight values of the second adjacent positions increase monotonically. Alternatively, the reference weight values of the first adjacent positions are monotonically decreased, and the reference weight values of the second adjacent positions are monotonically decreased.

[58] Например, целевые позиции включают одно или по меньшей мере два опорных весовых значения, и, если целевые позиции включают по меньшей мере два опорных весовых значения, по меньшей мере два опорных весовых значения целевых позиций монотонно увеличиваются или уменьшаются.[58] For example, the target positions include one or at least two reference weights, and if the target positions include at least two reference weights, the at least two reference weights of the target positions increase or decrease monotonically.

[59] На этапе 303 для каждой позиции пикселя текущего блока определяют окружающую соответствующую позицию, указанную позицией пикселя, из окружающих позиций за пределами текущего блока на основе угла взвешенного предсказания текущего блока; определяют целевое весовое значение позиции пикселя на основе опорного весового значения, связанного с окружающей соответствующей позицией; и определяют ассоциированное весовое значение позиции пикселя на основе целевого весового значения позиции пикселя.[59] In step 303, for each pixel position of the current block, a surrounding corresponding position indicated by the pixel position is determined from surrounding positions outside the current block based on the weighted prediction angle of the current block; determining a target weight value of the pixel position based on a reference weight value associated with a surrounding corresponding position; and determining an associated pixel position weight value based on the target pixel position weight value.

[60] Например, угол взвешенного предсказания относится к угловому направлению, указанному позицией пикселя внутри текущего блока, например, на основе определенного угла взвешенного предсказания угловое направление, соответствующее углу взвешенного предсказания, указывает на окружающую позицию за пределами текущего блока. На основе этого, для каждой позиции пикселя текущего блока угловое направление, указанное позицией пикселя, определяют на основе угла взвешенного предсказания и затем определяют окружающую соответствующую позицию, указанную позицией пикселя, из окружающих позиций за пределами текущего блока на основе углового направления.[60] For example, the weighted prediction angle refers to the angular direction indicated by the pixel position inside the current block, for example, based on the determined weighted prediction angle, the angular direction corresponding to the weighted prediction angle points to the surrounding position outside the current block. Based on this, for each pixel position of the current block, the angular direction indicated by the pixel position is determined based on the weighted prediction angle, and then the surrounding corresponding position indicated by the pixel position is determined from the surrounding positions outside the current block based on the angular direction.

[61] Для каждой позиции пикселя текущего блока, после того как определена окружающая соответствующая позиция, указанная позицией пикселя, на основе опорного весового значения, связанного с окружающей соответствующей позицией, определяют целевое весовое значение позиции пикселя, например, опорное весовое значение, связанное с окружающей соответствующей позицией, может быть определено как целевое весовое значение пикселя. Затем ассоциированное весовое значение позиции пикселя может быть определено на основе целевого весового значения позиции пикселя. Например, для каждой позиции пикселя, сумма целевого весового значения и ассоциированного весового значения для позиции пикселя может быть фиксированным заранее заданным значением. Следовательно, ассоциированное весовое значение может быть разностью между заранее заданным значением и целевым весовым значением. Если предположить, что заранее заданное значение равно 8, а целевое весовое значение позиции пикселя равно 0, ассоциированное весовое значение позиции пикселя равно 8; если целевое весовое значение позиции пикселя равно 1, ассоциированное весовое значение позиции пикселя равно 7 и т.д., при условии, что сумма целевого весового значения и ассоциированного весового значения равна 8.[61] For each pixel position of the current block, after the surrounding corresponding position indicated by the pixel position is determined based on the reference weight value associated with the surrounding corresponding position, a target pixel position weight value is determined, for example, a reference weight value associated with the surrounding corresponding position, can be defined as the target pixel weight value. An associated pixel position weight value can then be determined based on the target pixel position weight value. For example, for each pixel position, the sum of the target weight value and the associated weight value for the pixel position may be a fixed predetermined value. Therefore, the associated weight value may be the difference between the predetermined value and the target weight value. Assuming that the preset value is 8 and the target pixel position weight value is 0, the associated pixel position weight value is 8; if the target pixel position weight value is 1, the associated pixel position weight value is 7, etc., provided that the sum of the target weight value and the associated weight value is 8.

[62] На этапе 304 для каждой позиции пикселя текущего блока определяют первое значение предсказания позиции пикселя на основе первого режима предсказания текущего блока, определяют второе значение предсказания позиции пикселя на основе второго режима предсказания текущего блока; и на основе первого значения предсказания, целевого весового значения, второго значения предсказания и ассоциированного весового значения определяют значение взвешенного предсказания позиции пикселя.[62] At step 304, for each pixel position of the current block, a first pixel position prediction value is determined based on the first prediction mode of the current block, a second pixel position prediction value is determined based on the second prediction mode of the current block; and based on the first prediction value, the target weight value, the second prediction value and the associated weight value, determining a weighted pixel position prediction value.

[63] Например, если целевое весовое значение представляет собой весовое значение, соответствующее первому режиму предсказания, а ассоциированное весовое значение представляет собой весовое значение, соответствующее второму режиму предсказания, значение взвешенного предсказания позиции пикселя может быть следующим: (первое значение предсказания позиции пикселя * целевое весовое значение позиции пикселя+второе значение предсказания позиции пикселя * ассоциированное весовое значение позиции пикселя) / фиксированное заранее заданное значение.[63] For example, if the target weight value is a weight value corresponding to the first prediction mode, and the associated weight value is a weight value corresponding to the second prediction mode, the weighted pixel position prediction value may be as follows: (first pixel position prediction value * target pixel position weight value+second pixel position prediction value * associated pixel position weight value) / fixed preset value.

[64] Кроме того, если целевое весовое значение представляет собой весовое значение, соответствующее второму режиму предсказания, а ассоциированное весовое значение представляет собой весовое значение, соответствующее первому режиму предсказания, значение взвешенного предсказания позиции пикселя может быть следующим: (второе значение предсказания позиции пикселя * целевое весовое значение позиции пикселя + первое значение предсказания позиции пикселя * ассоциированное весовое значение позиции пикселя) / фиксированное заранее заданное значение.[64] In addition, if the target weight value is a weight value corresponding to the second prediction mode, and the associated weight value is a weight value corresponding to the first prediction mode, the weighted pixel position prediction value may be as follows: (second pixel position prediction value * target pixel position weight value + first pixel position prediction value * associated pixel position weight value) / fixed preset value.

[65] На этапе 305 определяют значения взвешенного предсказания текущего блока на основе значений взвешенного предсказания всех позиций пикселей в текущем блоке.[65] At step 305, the weighted prediction values of the current block are determined based on the weighted prediction values of all pixel positions in the current block.

[66] Например, значения взвешенного предсказания всех позиций пикселей текущего блока формируют в значения взвешенного предсказания текущего блока.[66] For example, weighted prediction values of all pixel positions of the current block are formed into weighted prediction values of the current block.

[67] Как описано в технических решениях, представленных выше, в вариантах осуществления настоящего изобретения предоставляется эффективный способ конфигурирования весовых значений, в котором конфигурируют подходящее целевое весовое значение для каждой позиции пикселя текущего блока, так что значения предсказания текущего блока более приближены к исходным пикселям, что повышает точность предсказания, эффективность предсказания и эффективность кодирования.[67] As described in the technical solutions presented above, embodiments of the present invention provide an efficient method for configuring weight values, in which an appropriate target weight value is configured for each pixel position of the current block, so that the prediction values of the current block are more similar to the source pixels, which improves the prediction accuracy, prediction efficiency and coding efficiency.

[68] Вариант 2 осуществления изобретения. На основе варианта 1 осуществления изобретения в вариантах осуществления изобретения предоставляется другой способ кодирования и декодирования, как показано на Фиг. 4А, которая представляет собой схематическую диаграмму, иллюстрирующую блок-схему способа кодирования и декодирования. Способ может применяться на стороне кодера и включать следующие этапы.[68] Embodiment 2 of the invention. Based on Embodiment 1, another encoding and decoding method is provided in the embodiments of the invention, as shown in FIG. 4A, which is a schematic diagram illustrating a flowchart of an encoding and decoding method. The method can be applied on the encoder side and includes the following steps.

[69] На этапе 401, когда определено, что следует разрешить взвешенное предсказание для текущего блока, сторона кодера получает угол взвешенного предсказания текущего блока, позицию взвешенного предсказания текущего блока и коэффициент преобразования весов текущего блока. Например, сторона кодера определяет, следует ли разрешить взвешенное предсказание для текущего блока. Если сторона кодера определяет, что следует разрешить взвешенное предсказание для текущего блока, выполняют этап 401 и последующие этапы, в противном случае способ обработки не ограничивается настоящим изобретением.[69] At step 401, when it is determined that weighted prediction should be enabled for the current block, the encoder side obtains the weighted prediction angle of the current block, the weighted prediction position of the current block, and the weight conversion factor of the current block. For example, the encoder side determines whether weighted prediction should be enabled for the current block. If the encoder side determines that weighted prediction should be enabled for the current block, step 401 and subsequent steps are performed, otherwise the processing method is not limited to the present invention.

[70] В возможной реализации, если текущий блок удовлетворяет условию для разрешения взвешенного предсказания, сторона кодера может определить, что взвешенное предсказание должно быть разрешено для текущего блока. Если текущий блок не удовлетворяет условию разрешения взвешенного предсказания, может быть определено, что взвешенное предсказание не должно быть разрешено для текущего блока. Например, сторона кодера может определить, удовлетворяет ли информация о характеристиках текущего блока определенному условию. Если информация о характеристиках текущего блока удовлетворяет определенному условию, определяют, что следует разрешить взвешенное предсказание для текущего блока, а если нет, определяют, что не следует разрешать взвешенное предсказание для текущего блока. Например, информация о характеристиках включает, не ограничиваясь этим, одно или более из следующего: тип текущего слайса, в котором расположен текущий блок, информация о размере текущего блока и информация управления переключением. Информация управления переключением может включать, не ограничиваясь этим: информацию управления переключением уровня последовательности (например, набор параметров последовательности (SPS, Sequence Parameter Set) и заголовок последовательности (SH, Sequence Header)), информацию управления переключением уровня изображения (например, набор параметров изображения (PPS, Picture Parameter Set) и заголовок изображения (РН, Picture Header)), информацию управления переключением уровня слайса (например, слайса, тайла и патча) или информацию управления переключением уровня наибольшей единицы кодирования (например, наибольшей единицы кодирования (LCU, Largest Coding Unit) и единицы дерева кодирования (CTU, Coding Tree Unit)), или информации управления переключением уровня блока (например, единицы кодирования (CU), единицы предсказания (PU), единицы преобразования (TU)).[70] In an exemplary implementation, if the current block satisfies a condition for enabling weighted prediction, the encoder side may determine that weighted prediction should be enabled for the current block. If the current block does not satisfy the weighted prediction enable condition, it may be determined that weighted prediction should not be enabled for the current block. For example, the encoder side can determine whether the characteristics information of the current block satisfies a certain condition. If the characteristic information of the current block satisfies a certain condition, it is determined that weighted prediction should be enabled for the current block, and if not, it is determined that weighted prediction should not be enabled for the current block. For example, the performance information includes, but is not limited to, one or more of the following: the type of the current slice in which the current block is located, information about the size of the current block, and switch control information. The switching control information may include, but is not limited to: sequence level switching control information (eg, Sequence Parameter Set and SH, Sequence Header), picture level switching control information (eg, picture parameter set). (PPS, Picture Parameter Set) and picture header (PH, Picture Header), slice level switching control information (for example, slice, tile and patch) or largest coding unit level switching control information (for example, LCU, Largest Coding Unit) and Coding Tree Unit (CTU), or block level switching control information (eg, Coding Unit (CU), Prediction Unit (PU), Transform Unit (TU)).

[71] Например, если информация о характеристиках представляет собой тип текущего слайса, в котором расположен текущий блок, тип текущего слайса, в котором расположен текущий блок, удовлетворяющий определенному условию, включает, не ограничиваясь этим, следующее: если тип текущего слайса, в котором расположен текущий блок, является В-слайсом, определяют, что тип слайса удовлетворяет определенному условию; или, если тип текущего слайса, в котором расположен текущий блок, является I-слайсом, определяют, что тип слайса удовлетворяет определенному условию.[71] For example, if the characteristic information is the type of the current slice in which the current block is located, the type of the current slice in which the current block satisfying a certain condition is located includes, but is not limited to, the following: if the type of the current slice in which the current block is located, is a B-slice, determine that the slice type satisfies a certain condition; or, if the type of the current slice in which the current block is located is an I-slice, determine that the slice type satisfies a certain condition.

[72] Например, если информация о характеристиках представляет собой информацию о размере текущего блока, например, ширину и высоту текущего блока, информация о размере текущего блока, удовлетворяющая определенному условию, включает, не ограничиваясь этим, следующее: если ширина больше или равна первому значению ширины, а высота больше или равна второму значению высоты, определяют, что информация о размере текущего блока удовлетворяет определенному условию; или, если ширина больше или равна третьему значению ширины, высота больше или равна четвертому значению высоты, ширина меньше или равна пятому значению ширины, а высота меньше или равна шестому значению высоты, определяют, что информация о размере текущего блока удовлетворяет определенному условию; или если произведение ширины и высоты больше или равно значению произведения, определяют, что информация о размере текущего блока удовлетворяет определенному условию. Вышеупомянутые значения могут быть сконфигурированы на основе опыта, например, сконфигурированы как 8, 16, 32, 64 или 128 и т.п. Например, первое значение ширины может быть 8, второе значение высоты может быть 8, третье значение ширины может быть 8, четвертое значение высоты может быть 8, пятое значение ширины может быть 64, шестое значение высоты может быть 64, и значение произведения может быть 64. В этом случае, если ширина больше или равна 8, а высота больше или равна 8, определяют, что информация о размере текущего блока удовлетворяет определенному условию; или, если ширина больше или равна 8, высота больше или равна 8, ширина меньше или равна 64, а высота меньше или равна 64, определяют, что информация о размере текущего блока удовлетворяет определенному условию; или, если произведение ширины и высоты больше или равно 64, определяют, что информация о размере текущего блока удовлетворяет определенному условию. Приведенные выше примеры являются только иллюстративными и не ограничивают настоящее изобретение.[72] For example, if the characteristic information is information about the size of the current block, such as the width and height of the current block, information about the size of the current block that satisfies a certain condition includes, but is not limited to, the following: if the width is greater than or equal to the first value width and the height is greater than or equal to the second height value, determine that the size information of the current block satisfies a certain condition; or, if the width is greater than or equal to a third width value, the height is greater than or equal to a fourth height value, the width is less than or equal to a fifth width value, and the height is less than or equal to a sixth height value, determining that the size information of the current block satisfies a certain condition; or if the product of the width and height is greater than or equal to the product value, it is determined that the size information of the current block satisfies a certain condition. The above values can be configured based on experience, for example, configured as 8, 16, 32, 64 or 128 and the like. For example, the first width value could be 8, the second height value could be 8, the third width value could be 8, the fourth height value could be 8, the fifth width value could be 64, the sixth height value could be 64, and the product value could be 64 In this case, if the width is greater than or equal to 8 and the height is greater than or equal to 8, it is determined that the size information of the current block satisfies a certain condition; or, if the width is greater than or equal to 8, the height is greater than or equal to 8, the width is less than or equal to 64, and the height is less than or equal to 64, determining that the size information of the current block satisfies a certain condition; or, if the product of the width and height is greater than or equal to 64, determining that the size information of the current block satisfies a certain condition. The above examples are illustrative only and do not limit the present invention.

[73] Например, если информация о характеристиках представляет собой информацию о размере текущего блока, такую как ширина и высота текущего блока, информация о размере текущего блока, удовлетворяющая определенному условию, включает, не ограничиваясь этим, следующее: ширина не меньше а и не больше b, высота не меньше а и не больше b, где а может быть меньше или равно 16, и b может быть больше или равно 16. Например, а равно 8, и b равно 64 или 32.[73] For example, if the characteristic information is information about the size of the current block, such as the width and height of the current block, the size information of the current block that satisfies a certain condition includes, but is not limited to, the following: the width is not less than a and not more than b, the height is not less than a and not greater than b, where a can be less than or equal to 16, and b can be greater than or equal to 16. For example, a is 8, and b is 64 or 32.

[74] Например, если информация о характеристиках представляет собой информацию управления переключением, информация управления переключением, удовлетворяющая определенному условию, включает, не ограничиваясь этим, следующее: если информация управления переключением позволяет разрешить взвешенное предсказание для текущего блока, определяют, что информация управления переключением удовлетворяет определенному условию.[74] For example, if the performance information is switching control information, the switching control information satisfying a certain condition includes, but is not limited to, the following: if the switching control information allows weighted prediction for the current block, it is determined that the switching control information satisfies a certain condition.

[75] Например, если информация о характеристиках представляет собой тип текущего слайса, в котором расположен текущий блок, и информацию о размере текущего блока, когда тип слайса удовлетворяет определенному условию, а информация о размере удовлетворяет определенному условию, определяют, что информация о характеристиках текущего блока удовлетворяет определенному условию. Альтернативно, если информация о характеристиках представляет собой тип текущего слайса, в котором расположен текущий блок, и информацию управления переключением, когда тип слайса удовлетворяет определенному условию, и информация управления переключением удовлетворяет определенному условию, определяют, что информация о характеристиках текущего блока удовлетворяет определенному условию. Альтернативно, если информация о характеристиках представляет собой информацию о размере текущего блока и информацию управления переключением, когда информация о размере удовлетворяет определенному условию, и информация управления переключением удовлетворяет определенному условию, определяют, что информация о характеристиках текущего блока удовлетворяет определенному условию. Альтернативно, если информация о характеристиках представляет собой тип текущего слайса, в котором расположен текущий блок, информацию о размере текущего блока и информацию управления переключением, когда тип слайса, информация о размере и информация управления переключением удовлетворяют определенным условиям соответственно, определяют, что информация о характеристиках текущего блока удовлетворяет определенному условию.[75] For example, if the characteristics information is the type of the current slice in which the current block is located and the size information of the current block, when the slice type satisfies a certain condition and the size information satisfies a certain condition, it is determined that the characteristics information of the current block satisfies a certain condition. Alternatively, if the characteristic information represents the type of the current slice in which the current block is located, and the switching control information, when the slice type satisfies the certain condition and the switching control information satisfies the certain condition, it is determined that the characteristic information of the current block satisfies the certain condition. Alternatively, if the characteristics information is size information of the current block and switching control information, when the size information satisfies a certain condition and the switching control information satisfies the certain condition, it is determined that the characteristics information of the current block satisfies the certain condition. Alternatively, if the characteristic information is the type of the current slice in which the current block is located, the size information of the current block and the switching control information, when the slice type, the size information and the switching control information satisfy certain conditions, respectively, it is determined that the characteristic information current block satisfies a certain condition.

[76] В возможной реализации, когда определено, что следует разрешить взвешенное предсказание для текущего блока, сторона кодера может получить угол взвешенного предсказания текущего блока, позицию взвешенного предсказания текущего блока и коэффициент преобразования весов текущего блока.[76] In an exemplary implementation, when it is determined that weighted prediction should be enabled for the current block, the encoder side may obtain the weighted prediction angle of the current block, the weighted prediction position of the current block, and the weight conversion factor of the current block.

[77] Например, угол взвешенного предсказания относится к угловому направлению, указанному позицией пикселя внутри текущего блока. Как показано на Фиг. 4В, на основе угла взвешенного предсказания показано угловое направление, указанное позицией пикселя (например, позицией 1 пикселя, позицией 2 пикселя и позицией 3 пикселя) внутри текущего блока, при этом угловое направление указывает на окружающую позицию за пределами текущего блока. Как показано на Фиг. 4С, на основе другого угла взвешенного предсказания показано угловое направление, указанное позицией пикселя (например, позицией 2 пикселя, позицией 3 пикселя и позицией 4 пикселя) внутри текущего блока, при этом угловое направление указывает на окружающую позицию за пределами текущего блока.[77] For example, the weighted prediction angle refers to the angular direction indicated by the pixel position within the current block. As shown in FIG. 4B, based on the weighted prediction angle, the angular direction indicated by a pixel position (eg, 1 pixel position, 2 pixel position, and 3 pixel position) inside the current block is shown, with the angular direction indicating a surrounding position outside the current block. As shown in FIG. 4C, based on another weighted prediction angle, the angular direction indicated by a pixel position (eg, pixel position 2, pixel position 3, and pixel position 4) inside the current block is shown, with the angular direction indicating a surrounding position outside the current block.

[78] Например, позицию взвешенного предсказания (также называемую параметром расстояния) используют для конфигурирования опорного весового значения окружающей позиции за пределами текущего блока. Например, на основе таких параметров, как угол взвешенного предсказания текущего блока, размер текущего блока и т.д., определяют диапазон окружающих позиций за пределами текущего блока (например, количество окружающих позиций за пределами текущего блока), который показан на Фиг. 4В или 4С.[78] For example, a weighted prediction position (also called a distance parameter) is used to configure a reference weight value of a surrounding position outside the current block. For example, based on parameters such as the weighted prediction angle of the current block, the size of the current block, etc., a range of surrounding positions outside the current block (eg, the number of surrounding positions outside the current block) is determined, which is shown in FIG. 4B or 4C.

[79] Затем диапазон окружающих позиций поровну делится на N частей, где значение N может быть задано произвольно, например, может быть установлено равным 4, 6 или 8 и т.п. Возьмем, к примеру, 8. Позицию взвешенного предсказания используют для представления того, какая окружающая позиция используется в качестве начальной позиции преобразования весов текущего блока, так что опорные весовые значения окружающих позиций за пределами текущего блока конфигурируют на основе начальной позиции преобразования весов.[79] The range of surrounding positions is then equally divided into N parts, where the value of N can be set arbitrarily, for example, it can be set to 4, 6 or 8, etc. Taking 8 as an example, the weighted prediction position is used to represent which surrounding position is used as the starting position of the weight transformation of the current block, so that the reference weight values of the surrounding positions outside the current block are configured based on the starting position of the weight transformation.

[80] Как показано на Фиг. 4D, после того как все окружающие позиции разделены на восемь равных частей, можно получить семь позиций взвешенного предсказания. На основе этого, когда позиция взвешенного предсказания равна 0, это может указывать на то, что окружающая позиция а0 (то есть окружающая позиция, отмеченная пунктирной линией 0. На практике пунктирная линия 0 не существует, и пунктирная линия 0 используется только для облегчения понимания приведенных примеров. Пунктирные линии от 0 до 6 используются для равного разделения всех окружающих позиций на восемь частей) служит начальной позицией преобразования весов окружающих позиций за пределами текущего блока. По аналогии, когда позиция взвешенного предсказания равна 6, это означает, что окружающая позиция а6 используется в качестве начальной позиции преобразования весов окружающих позиций за пределами текущего блока.[80] As shown in FIG. 4D, after all surrounding positions are divided into eight equal parts, seven weighted prediction positions can be obtained. Based on this, when the weighted prediction position is 0, it may indicate that the surrounding position is a0 (that is, the surrounding position marked by the dotted line 0. In practice, the dotted line 0 does not exist, and the dotted line 0 is only used to make it easier to understand the given examples Dashed lines 0 to 6 are used to equally divide all surrounding positions into eight parts) serves as the starting position for transforming the weights of surrounding positions outside the current block. By analogy, when the weighted prediction position is 6, it means that the surrounding position a6 is used as the starting position for transforming the weights of surrounding positions outside the current block.

[81] Для различных углов взвешенного предсказания значения N могут быть различными. Например, для угла А взвешенного предсказания значение N может быть равно 6, что указывает на то, что диапазон окружающих позиций, определенный на основе угла А взвешенного предсказания, поровну разделен на шесть частей. Для угла В взвешенного предсказания значение N может быть равно 8, что указывает на то, что диапазон окружающих позиций, определенный на основе угла В взвешенного предсказания, поровну разделен на восемь частей.[81] For different weighted prediction angles, the values of N may be different. For example, for weighted prediction angle A, the value of N may be 6, indicating that the range of surrounding positions determined based on weighted prediction angle A is equally divided into six parts. For the weighted prediction angle B, the value of N may be 8, indicating that the range of surrounding positions determined based on the weighted prediction angle B is equally divided into eight parts.

[82] Для различных углов взвешенного предсказания значения N могут быть одинаковыми. В случае одного и того же значения N количества позиций взвешенного предсказания могут быть различными. Например, для угла А взвешенного предсказания значение N равно 8, что указывает на то, что диапазон окружающих позиций, определенный на основе угла А взвешенного предсказания, поровну разделен на восемь частей; и для угла В взвешенного предсказания значение N равно 8, что указывает на то, что диапазон окружающих позиций, определенный на основе угла В взвешенного предсказания, поровну разделен на восемь частей. В то же время, позиции взвешенного предсказания, соответствующие углу А взвешенного предсказания, выбраны всего из пяти позиций от a1 до а5, и позиции взвешенного предсказания, соответствующие углу В взвешенного предсказания, выбраны всего из семи позиций от b0 до b6.[82] For different weighted prediction angles, the values of N may be the same. In the case of the same value of N, the number of weighted prediction positions may be different. For example, for weighted prediction angle A, the value of N is 8, indicating that the range of surrounding positions determined based on weighted prediction angle A is equally divided into eight parts; and for the weighted prediction angle B, the value of N is 8, indicating that the range of surrounding positions determined based on the weighted prediction angle B is equally divided into eight parts. At the same time, weighted prediction positions corresponding to weighted prediction angle A are selected from a total of five positions a1 to a5, and weighted prediction positions corresponding to weighted prediction angle B are selected from a total of seven positions b0 to b6.

[83] Выше приведен пример равного разделения диапазона окружающих позиций на N частей. На практике также может быть принят способ неравного разделения, например, диапазон окружающих позиций может быть разделен на N частей, а не на N равных частей, что не ограничивается в настоящем изобретении.[83] Above is an example of equal division of a range of surrounding positions into N parts. In practice, an unequal division method may also be adopted, for example, a range of surrounding positions may be divided into N parts rather than N equal parts, which is not limited in the present invention.

[84] После того как все окружающие позиции будут поровну разделены на восемь частей, можно получить семь позиций взвешенного предсказания. На этапе 401 сторона кодера может получить одну позицию взвешенного предсказания из семи позиций взвешенного предсказания или выбрать некоторые позиции взвешенного предсказания (например, пять позиций взвешенного предсказания) из семи позиций взвешенного предсказания, а затем получить одну позицию взвешенного предсказания из пяти позиций взвешенного предсказания.[84] Once all surrounding positions are equally divided into eight parts, seven weighted prediction positions can be obtained. At step 401, the encoder side may obtain one weighted prediction position from seven weighted prediction positions, or select some weighted prediction positions (eg, five weighted prediction positions) from seven weighted prediction positions, and then obtain one weighted prediction position from five weighted prediction positions.

[85] Например, коэффициент преобразования весов представляет собой коэффициент преобразования опорных весовых значений окружающих позиций за пределами текущего блока, который используется для представления скорости изменения опорных весовых значений. Коэффициент преобразования весов может быть любым числом, отличным от 0, например, коэффициент преобразования весов может быть -4, -2, -1, 1, 2, 4, 0,5, 0,75, 1,5 и т.п. Когда абсолютное значение коэффициента преобразования весов равно 1, то есть когда коэффициент преобразования весов равен -1 или 1, он используется для указания того, что скорость изменения опорных весовых значений равна 1. В этом случае опорные весовые значения от 0 до 8 должны пройти через 0, 1, 2, 3, 4, 5, 6, 7, 8, а опорные весовые значения от 8 до 0 должны пройти через 8, 7, 6, 5, 4, 3, 2, 1, 0. Когда абсолютное значение коэффициента преобразования весов равно 2, то есть когда коэффициент преобразования весов равен -2 или 2, он используется для указания того, что скорость изменения опорных весовых значений равна 2. В этом случае опорные весовые значения от 0 до 8 должны пройти через 0, 2, 4, 6, 8, и опорные весовые значения от 8 до 0 должны пройти через 8, 6, 4, 2, 0. Когда абсолютное значение коэффициента преобразования весов равно 0,5, то есть когда коэффициент преобразования весов равен -0,5 или 0,5, он используется для указания того, что скорость изменения опорных весовых значений составляет 0,5. В этом случае опорные весовые значения от 0 до 8 должны пройти через 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, а опорные весовые значения от 8 до 0 должны пройти через 8, 8, 7, 7, 6, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1, 0, 0 Выше были приведены примеры от 0 до 8, причем 0 и 8 можно заменить любым числом.[85] For example, the weight conversion factor is the conversion factor of the reference weight values of surrounding positions outside the current block, which is used to represent the rate of change of the reference weight values. The weight conversion factor can be any number other than 0, for example, the weight conversion factor can be -4, -2, -1, 1, 2, 4, 0.5, 0.75, 1.5, etc. When the absolute value of the weight conversion factor is 1, that is, when the weight conversion factor is -1 or 1, it is used to indicate that the rate of change of the reference weight values is 1. In this case, the reference weight values 0 to 8 must pass through 0 , 1, 2, 3, 4, 5, 6, 7, 8, and the reference weight values from 8 to 0 must pass through 8, 7, 6, 5, 4, 3, 2, 1, 0. When the absolute value of the coefficient The weight conversion factor is 2, that is, when the weight conversion factor is -2 or 2, it is used to indicate that the rate of change of the reference weight values is 2. In this case, the reference weight values from 0 to 8 must go through 0, 2, 4 , 6, 8, and reference weight values from 8 to 0 must pass through 8, 6, 4, 2, 0. When the absolute value of the weight conversion factor is 0.5, that is, when the weight conversion factor is -0.5 or 0 ,5, it is used to indicate that the rate of change of the reference weights is 0.5. In this case, the reference weight values from 0 to 8 must go through 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, and reference weight values from 8 to 0 must pass through 8, 8, 7, 7, 6, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1, 0, 0 Examples from 0 to 8, and 0 and 8 can be replaced by any number.

[86] На этапе 402 сторона кодера конфигурирует опорные весовые значения для окружающих позиций за пределами текущего блока в соответствии с коэффициентом преобразования весов текущего блока и начальной позицией преобразования весов текущего блока.[86] At step 402, the encoder side configures reference weights for surrounding positions outside the current block in accordance with the current block's weight conversion factor and the current block's weight conversion starting position.

[87] Например, начальная позиция преобразования весов может быть определена по меньшей мере одним из следующих параметров: угол взвешенного предсказания текущего блока, позиция взвешенного предсказания текущего блока или размер текущего блока. Следовательно, начальная позиция преобразования весов текущего блока может быть определена на основе по меньшей мере одного из угла взвешенного предсказания текущего блока, позиции взвешенного предсказания текущего блока или размера текущего блока. Затем опорные весовые значения конфигурируют для окружающих позиций за пределами текущего блока в соответствии с коэффициентом преобразования весов текущего блока и начальной позицией преобразования весов текущего блока.[87] For example, the starting position of the weight transformation may be determined by at least one of the current block's weighted prediction angle, the current block's weighted prediction position, or the current block's size. Therefore, the starting position of the weight transformation of the current block can be determined based on at least one of the weighted prediction angle of the current block, the weighted prediction position of the current block, or the size of the current block. The reference weight values are then configured for surrounding positions outside the current block in accordance with the current block's weight conversion factor and the current block's weight conversion starting position.

[88] На этапе 403 для каждой позиции пикселя текущего блока сторона кодера определяет окружающую соответствующую позицию, указанную позицией пикселя, из окружающих позиций за пределами текущего блока на основе угла взвешенного предсказания текущего блока. Для удобства различения в этом варианте осуществления изобретения окружающая позиция за пределами текущего блока, указанная позицией пикселя, может называться окружающей соответствующей позицией для позиции пикселя.[88] At step 403, for each pixel position of the current block, the encoder side determines a surrounding corresponding position indicated by the pixel position from surrounding positions outside the current block based on the weighted prediction angle of the current block. For ease of distinction, in this embodiment of the invention, the surrounding position outside the current block indicated by the pixel position may be referred to as the surrounding corresponding position for the pixel position.

[89] Например, поскольку угол взвешенного предсказания относится к угловому направлению, указанному позицией пикселя внутри текущего блока, для каждой позиции пикселя текущего блока угловое направление, указанное позицией пикселя, определяют на основе угла взвешенного предсказания, а затем определяют окружающую соответствующую позицию, указанную позицией пикселя, из окружающих позиций за пределами текущего блока на основе углового направления.[89] For example, since the weighted prediction angle refers to the angular direction indicated by the pixel position within the current block, for each pixel position of the current block, the angular direction indicated by the pixel position is determined based on the weighted prediction angle, and then the surrounding corresponding position indicated by the position is determined pixel, from surrounding positions outside the current block based on angular direction.

[90] Окружающие позиции за пределами текущего блока могут включать окружающие позиции в строке сверху от текущего блока, например, окружающие позиции в n1-й строке сверху от текущего блока, где n1 может быть равно 1 или 2, 3 и т.д., что здесь не ограничивается; или могут включать окружающие позиции в столбце слева от текущего блока, например, окружающие позиции в n2-м столбце слева от текущего блока, где n2 может быть 1 или 2, 3 и т.д., что здесь не ограничивается; или могут включать окружающие позиции в строке снизу от текущего блока, например, окружающие позиции в n3-й строке снизу от текущего блока, где n3 может быть равно 1, 2, 3 и т.д., что здесь не ограничивается; или могут включать окружающие позиции в столбце справа от текущего блока, например, окружающие позиции в n4-м столбце справа от текущего блока, где n4 может быть 1 или 2, 3 и т.д., что здесь не ограничивается.[90] Surrounding positions outside the current block may include surrounding positions in the line above the current block, for example, surrounding positions in the n1th line above the current block, where n1 may be 1 or 2, 3, etc., what is not limited here; or may include surrounding positions in the column to the left of the current block, for example, surrounding positions in the n2th column to the left of the current block, where n2 may be 1 or 2, 3, etc., which is not limited here; or may include surrounding positions in the line below the current block, for example, surrounding positions in the n3th line below the current block, where n3 may be 1, 2, 3, etc., but is not limited to this; or may include surrounding positions in the column to the right of the current block, for example, surrounding positions in the n4th column to the right of the current block, where n4 could be 1 or 2, 3, etc., but is not limited here.

[91] Вышеприведенные примеры окружающих позиций являются иллюстративными и не ограничиваются здесь. На практике в дополнение к окружающим позициям за пределами текущего блока также могут использоваться внутренние позиции текущего блока, то есть внутренние позиции текущего блока используются для замены указанных выше окружающих позиций за пределами текущего блока, например, внутренние позиции могут включать внутренние позиции в n5-й строке внутри текущего блока, где n5 может быть 1 или 2, 3 и т.д., или внутренние позиции в n6-м столбце внутри текущего блока, где n6 может быть 1 или 2, 3 и т.д. Длина внутренних позиций может превышать диапазон текущего блока, например, позиции n7-й строки могут превышать диапазон текущего блока, то есть выходить наружу из двух сторон текущего блока. Внутренние позиции текущего блока и окружающие позиции за пределами текущего блока могут использоваться одновременно.[91] The above examples of surrounding positions are illustrative and not limited here. In practice, in addition to the surrounding positions outside the current block, the internal positions of the current block can also be used, that is, the internal positions of the current block are used to replace the above surrounding positions outside the current block, for example, the internal positions may include the internal positions in the n5th row inside the current block, where n5 could be 1 or 2, 3, etc., or internal positions in the n6th column inside the current block, where n6 could be 1 or 2, 3, etc. The length of internal positions may exceed the range of the current block, for example, the positions of the n7th row may exceed the range of the current block, that is, extend outward from two sides of the current block. Interior positions of the current block and surrounding positions outside the current block can be used simultaneously.

[92] Для использования внутренних позиций текущего блока или использования как внутренних позиций текущего блока, так и окружающих позиций за пределами текущего блока текущий блок может быть разделен на два малых блока, верхний и нижний, на основе строки, в которой расположены внутренние позиции, или разделен на два малых блока, левый и правый, в зависимости от столбца, в котором расположены внутренние позиции. В этом случае два малых блока имеют один и тот же угол взвешенного предсказания и одну и ту же позицию взвешенного предсказания.[92] To use the inner positions of the current block, or to use both the inner positions of the current block and surrounding positions outside the current block, the current block can be divided into two small blocks, top and bottom, based on the line in which the inner positions are located, or divided into two small blocks, left and right, depending on the column in which the internal positions are located. In this case, the two small blocks have the same weighted prediction angle and the same weighted prediction position.

[93] Например, окружающие позиции за пределами текущего блока могут быть расположены между позициями пикселей, например, в одной или более позициях субпикселя, и в этом случае позиция текущего блока не может быть просто описано как строка "х", а описывается как строка позиций субпикселя, расположенная между строкой "х" и строкой "у".[93] For example, surrounding positions outside the current block may be located between pixel positions, for example, at one or more subpixel positions, in which case the position of the current block cannot simply be described as a string of "x", but rather described as a string of positions subpixel located between the "x" line and the "y" line.

[94] Для удобства описания в последующих вариантах осуществления изобретения в качестве примера для описания приняты окружающие позиции в первой строке сверху от текущего блока или окружающие позиции в первом столбце слева от текущего блока, а другие окружающие позиции могут быть реализованы аналогичным образом.[94] For convenience of description, in the following embodiments, the surrounding positions in the first row from the top of the current block or the surrounding positions in the first column to the left of the current block are taken as an example for description, and other surrounding positions can be implemented in the same way.

[95] Например, для диапазона окружающих позиций за пределами текущего блока, этот диапазон может быть предварительно назначен как ряд окружающих позиций за пределами текущего блока. Альтернативно, диапазон окружающих позиций за пределами текущего блока может быть определен на основе угла взвешенного предсказания, например, окружающую позицию, указанную каждой из позиций пикселя внутри текущего блока, определяют на основе угла взвешенного предсказания, а граница окружающих позиций, указанных всеми позициями пикселей может представлять собой диапазон окружающих позиций за пределами текущего блока. Диапазон окружающих позиций здесь не ограничен.[95] For example, for a range of surrounding positions outside the current block, that range may be pre-designated as a range of surrounding positions outside the current block. Alternatively, the range of surrounding positions outside the current block may be determined based on the weighted prediction angle, for example, the surrounding position indicated by each of the pixel positions within the current block is determined based on the weighted prediction angle, and the boundary of the surrounding positions indicated by all pixel positions may represent is the range of surrounding positions outside the current block. The range of surrounding positions is not limited here.

[96] Окружающие позиции за пределами текущего блока могут включать одну или более позиций целого пикселя и/или одну или более позиций нецелого пикселя. Позиция нецелого пикселя может быть позицией субпикселя, например, позицией 1/2 субпикселя, или позицией 1/4 субпикселя, или позицией 3/4 субпикселя и т.п., что не ограничивается здесь.[96] Surrounding positions outside the current block may include one or more integer pixel positions and/or one or more non-integer pixel positions. The non-integer pixel position may be a sub-pixel position, such as a 1/2 sub-pixel position, or a 1/4 sub-pixel position, or a 3/4 sub-pixel position and the like, which is not limited here.

[97] Например, две окружающие позиции за пределами текущего блока могут соответствовать одной позиции целого пикселя; или четыре окружающие позиции за пределами текущего блока могут соответствовать одной позиции целого пикселя; или одна окружающая позиция за пределами текущего блока может соответствовать одной позиции целого пикселя; или одна окружающая позиция за пределами текущего блока может соответствовать двум позициям целого пикселя. Выше приведены лишь несколько примеров, которые не ограничивают изобретение. Связь между окружающей позицией и позицией целого пикселя может быть сконфигурирована произвольно.[97] For example, two surrounding positions outside the current block may correspond to one whole pixel position; or four surrounding positions outside the current block may correspond to one whole pixel position; or one surrounding position outside the current block may correspond to one whole pixel position; or one surrounding position outside the current block may correspond to two whole pixel positions. The above are just a few examples that do not limit the invention. The relationship between the surrounding position and the whole pixel position can be configured arbitrarily.

[98] Как показано на Фиг. 4В и 4С, одна окружающая позиция соответствует одной позиции целого пикселя, и, как показано на Фиг. 4Е две окружающие позиции соответствуют одной позиции целого пикселя. Другие примеры для краткости не будут описаны в этом варианте осуществления изобретения.[98] As shown in FIG. 4B and 4C, one surrounding position corresponds to one whole pixel position, and, as shown in FIG. 4E, two surrounding positions correspond to one whole pixel position. Other examples will not be described in this embodiment for brevity.

[99] На этапе 404 сторона кодера определяет целевое весовое значение позиции пикселя на основе опорного весового значения, связанного с окружающей соответствующей позицией.[99] At step 404, the encoder side determines the target weight value of the pixel position based on the reference weight value associated with the surrounding corresponding position.

[100] Для каждой позиции пикселя текущего блока после определения окружающей соответствующей позиции, указанной позицией пикселя, сторона кодера определяет опорное весовое значение, связанное с окружающей соответствующей позицией, и определяет целевое весовое значение позиции пикселя на основе опорного весового значения, связанного с окружающей соответствующей позицией, например, определяет опорное весовое значение, связанное с окружающей соответствующей позицией, в качестве целевого весового значения позиции пикселя.[100] For each pixel position of the current block, after determining the surrounding corresponding position indicated by the pixel position, the encoder side determines a reference weight value associated with the surrounding corresponding position, and determines a target pixel position weight value based on the reference weight value associated with the surrounding corresponding position , for example, defines a reference weight value associated with a surrounding corresponding position as a target pixel position weight value.

[101] В возможной реализации сторона кодера определяет целевое весовое значение позиции пикселя на основе опорного весового значения, связанного с окружающей соответствующей позицией, что может включать следующие несколько случаев.[101] In an exemplary implementation, the encoder side determines the target weight value of a pixel position based on a reference weight value associated with a surrounding corresponding position, which may include the following several cases.

[102] Случай 1. Если окружающая соответствующая позиция является позицией целого пикселя, и позиция целого пикселя сконфигурирована с опорным весовым значением, целевое весовое значение позиции пикселя может быть определено на основе опорного весового значения позиции целого пикселя.[102] Case 1: If the surrounding corresponding position is an integer pixel position, and the integer pixel position is configured with a reference weight value, the target pixel position weight value can be determined based on the reference weight value of the integer pixel position.

[103] Случай 2. Если окружающая соответствующая позиция является позицией целого пикселя, и позиция целого пикселя не сконфигурирована с опорным весовым значением, целевое весовое значение позиции пикселя может быть определено на основе опорного(ых) весового(ых) значения(й) соседней(их) позиции(й) позиции целого пикселя. Например, может быть выполнена операция округления в большую сторону для опорного весового значения соседней позиции, чтобы получить целевое весовое значение позиции пикселя; или выполняют операцию округления в меньшую сторону для опорного весового значения соседней позиции, чтобы получить целевое весовое значение позиции пикселя; или определяют целевое весовое значение позиции пикселя на основе интерполяции опорных весовых значений соседних позиций позиции целого пикселя. Способ определения здесь не ограничен.[103] Case 2: If the surrounding corresponding position is an integer pixel position, and the integer pixel position is not configured with a reference weight value, the target weight value of the pixel position can be determined based on the reference weight(s) value(s) of the neighbor(s). their) position(s) of the whole pixel. For example, a round-up operation may be performed on the reference weight value of an adjacent position to obtain a target pixel position weight value; or performing a round-down operation on the adjacent position reference weight value to obtain a target pixel position weight value; or determining a target pixel position weight value based on interpolation of reference weight values of neighboring positions of the integer pixel position. The method of determination is not limited here.

[104] Случай 3. Если окружающая соответствующая позиция является позицией субпикселя, а позиция субпикселя сконфигурирована с опорным весовым значением, целевое весовое значение позиции пикселя определяют на основе опорного весового значения позиции субпикселя.[104] Case 3: If the surrounding corresponding position is a subpixel position, and the subpixel position is configured with a reference weight value, the target pixel position weight value is determined based on the reference subpixel position weight value.

[105] Случай 4. Если окружающая соответствующая позиция является позицией субпикселя, и позиция субпикселя не сконфигурирована с опорным весовым значением, целевое весовое значение позиции пикселя определяют на основе одного или более опорных весовых значений одной или более соседних позиций позиции субпикселя. Например, может быть выполнена операция округления в большую сторону для опорного весового значения соседней позиции, чтобы получить целевое весовое значение позиции пикселя; или выполняют операцию округления в меньшую сторону для опорного весового значения соседней позиции, чтобы получить целевое весовое значение позиции пикселя; или определяют целевое весовое значение позиции пикселя на основе интерполяции опорных весовых значений соседних позиций позиции субпикселя. Способ определения здесь не ограничен.[105] Case 4: If the surrounding corresponding position is a subpixel position, and the subpixel position is not configured with a reference weight value, the target pixel position weight value is determined based on one or more reference weight values of one or more neighboring subpixel position positions. For example, a round-up operation may be performed on the reference weight value of an adjacent position to obtain a target pixel position weight value; or performing a round-down operation on the adjacent position reference weight value to obtain a target pixel position weight value; or determining a target pixel position weight value based on interpolation of reference weight values of adjacent subpixel position positions. The method of determination is not limited here.

[106] Случай 5, определяют целевое весовое значение позиции пикселя на основе нескольких опорных весовых значений, связанных с окружающей соответствующей позицией. Например, когда окружающая соответствующая позиция позицией целого пикселя или позицией субпикселя, могут быть получены опорные весовые значения множества соседних позиций окружающей соответствующей позиции. Если окружающая соответствующая позиция сконфигурирована с опорным весовым значением, выполняют взвешенную операцию на основе опорного весового значения окружающей соответствующей позиции и опорных весовых значений множества соседних позиций, чтобы получить целевое весовое значение позиции пикселя. Если окружающая соответствующая позиция не сконфигурирована с опорным весовым значением, взвешенную операцию выполняют на основе опорных весовых значений множества соседних позиций для получения целевого весового значения позиции пикселя.[106] Case 5, a target weight value of a pixel position is determined based on several reference weight values associated with a surrounding corresponding position. For example, when the surrounding corresponding position is a whole pixel position or a sub-pixel position, reference weight values of a plurality of neighboring positions of the surrounding corresponding position can be obtained. If the surrounding corresponding position is configured with a reference weight value, a weighted operation is performed based on the reference weight value of the surrounding corresponding position and the reference weight values of a plurality of neighboring positions to obtain a target pixel position weight value. If the surrounding corresponding position is not configured with a reference weight value, a weighted operation is performed based on the reference weight values of a plurality of neighboring positions to obtain a target weight value of the pixel position.

[107] На этапе 405 сторона кодера определяет ассоциированное весовое значение позиции пикселя на основе целевого весового значения позиции пикселя.[107] At step 405, the encoder side determines an associated pixel position weight value based on the target pixel position weight value.

[108] Например, для каждой позиции пикселя сумма целевого весового значения позиции пикселя и ассоциированного весового значения позиции пикселя может быть фиксированным заданным значением, то есть ассоциированное весовое значение может представлять собой разность заранее заданного значения и целевого весового значения. Исходя из этого, предполагается, что заранее заданное значение равно 8. Если целевое весовое значение позиции пикселя равно 2, ассоциированное весовое значение позиции пикселя равно 6.[108] For example, for each pixel position, the sum of the target pixel position weight value and the associated pixel position weight value may be a fixed predetermined value, that is, the associated weight value may be the difference of the predetermined value and the target weight value. Based on this, it is assumed that the predetermined value is 8. If the target pixel position weight value is 2, the associated pixel position weight value is 6.

[109] На этапе 406 для каждой позиции пикселя текущего блока сторона кодера определяет первое значение предсказания позиции пикселя на основе первого режима предсказания текущего блока и определяет второе значение предсказания позиции пикселя на основе второго режима предсказания текущего блока.[109] In step 406, for each pixel position of the current block, the encoder side determines a first pixel position prediction value based on a first prediction mode of the current block, and determines a second pixel position prediction value based on a second prediction mode of the current block.

[110] Например, первый режим предсказания может быть любым из режима предсказания внутриблочного копирования, режима внутреннего предсказания, режима внешнего предсказания и режима палитры; и второй режим предсказания может быть любым из режима предсказания внутриблочного копирования, режима внутреннего предсказания, режима внешнего предсказания и режима палитры. Например, первый режим предсказания может быть режимом предсказания внутриблочного копирования, и второй режим предсказания может быть режимом предсказания внутриблочного копирования; или первый режим предсказания может быть режимом предсказания внутриблочного копирования, и второй режим предсказания может быть режимом внутреннего предсказания; или первый режим предсказания может быть режимом предсказания внутриблочного копирования, и второй режим предсказания может быть режимом внешнего предсказания; или первый режим предсказания может быть режимом предсказания внутриблочного копирования, и второй режим предсказания может быть режимом палитры. Аналогично, нет ограничений на первый режим предсказания и второй режим предсказания.[110] For example, the first prediction mode may be any of an intra-block copy prediction mode, an intra prediction mode, an inter prediction mode, and a palette mode; and the second prediction mode may be any of an intra-block copy prediction mode, an intra prediction mode, an inter prediction mode, and a palette mode. For example, the first prediction mode may be an intra-block copy prediction mode, and the second prediction mode may be an intra-block copy prediction mode; or the first prediction mode may be an intra-block copy prediction mode, and the second prediction mode may be an intra-prediction mode; or the first prediction mode may be an intra-block copy prediction mode, and the second prediction mode may be an inter-prediction mode; or the first prediction mode may be an intra-block copy prediction mode, and the second prediction mode may be a palette mode. Likewise, there is no limitation on the first prediction mode and the second prediction mode.

[111] Процесс определения значений предсказания на основе первого режима предсказания и второго режима предсказания может относиться к последующим вариантам осуществления изобретения.[111] The process of determining prediction values based on the first prediction mode and the second prediction mode can be applied to subsequent embodiments of the invention.

[112] На этапе 407 сторона кодера определяет значение взвешенного предсказания позиции пикселя на основе первого значения предсказания позиции пикселя, целевого весового значения позиции пикселя, второго значения предсказания позиции пикселя и ассоциированного весового значения позиции пикселя.[112] At step 407, the encoder side determines a weighted pixel position prediction value based on the first pixel position prediction value, the target pixel position weight value, the second pixel position prediction value, and the associated pixel position weight value.

[113] Например, значение взвешенного предсказания позиции пикселя может быть следующим: (первое значение предсказания позиции пикселя * целевое весовое значение позиции пикселя + второе значение предсказания позиции пикселя * ассоциированное весовое значение позиции пикселя) / фиксированное заранее заданное значение.[113] For example, the weighted pixel position prediction value may be: (first pixel position prediction value * target pixel position weight value + second pixel position prediction value * associated pixel position weight value) / fixed predetermined value.

[114] На этапе 408 сторона кодера определяет значения взвешенного предсказания текущего блока на основе значений взвешенного предсказания всех позиций пикселей в текущем блоке.[114] At step 408, the encoder side determines the weighted prediction values of the current block based on the weighted prediction values of all pixel positions in the current block.

[115] Как описано в приведенных выше технических решениях, в вариантах осуществления настоящего изобретения предоставляется эффективный способ конфигурирования весовых значений, в котором подходящее целевое весовое значение конфигурируют для каждой позиции пикселя текущего блока, так что значения предсказания текущего блока более приближены к значениям исходных пикселей, что повышает точность предсказания, эффективность предсказания и эффективность кодирования.[115] As described in the above technical solutions, embodiments of the present invention provide an efficient method for configuring weight values, in which a suitable target weight value is configured for each pixel position of the current block, so that the prediction values of the current block are closer to the values of the source pixels, which improves the prediction accuracy, prediction efficiency and coding efficiency.

[116] Вариант 3 осуществления изобретения. На основе варианта 1 осуществления изобретения в вариантах осуществления настоящего изобретения предусмотрен другой способ кодирования и декодирования, как показано на Фиг. 4F, которая является схематической диаграммой, иллюстрирующей блок-схему способа кодирования и декодирования. Способ может применяться на стороне декодера и включать следующие этапы.[116] Embodiment 3 of the invention. Based on Embodiment 1, the embodiments of the present invention provide another encoding and decoding method, as shown in FIG. 4F, which is a schematic diagram illustrating a flowchart of an encoding and decoding method. The method may be applied on the decoder side and include the following steps.

[117] На этапе 411, когда определено, что следует разрешить взвешенное предсказание для текущего блока, сторона декодера получает угол взвешенного предсказания текущего блока, позицию взвешенного предсказания текущего блока и коэффициент преобразования весов текущего блока. Например, сторона декодера определяет, следует ли разрешить взвешенное предсказание для текущего блока. Если сторона декодера определяет, что следует разрешить взвешенное предсказание для текущего блока, выполняют этап 411 и последующие этапы, в противном случае способ обработки не ограничивается настоящим изобретением.[117] At step 411, when it is determined that weighted prediction should be enabled for the current block, the decoder side obtains the weighted prediction angle of the current block, the weighted prediction position of the current block, and the weight conversion factor of the current block. For example, the decoder side determines whether weighted prediction should be enabled for the current block. If the decoder side determines that weighted prediction should be enabled for the current block, step 411 and subsequent steps are performed, otherwise the processing method is not limited to the present invention.

[118] В возможной реализации сторона кодера определяет, удовлетворяет ли информация о характеристиках текущего блока определенному условию, и, если информация о характеристиках удовлетворяет определенному условию, сторона кодера определяет, что следует разрешить взвешенное предсказание для текущего блока. Сторона декодера также определяет, удовлетворяет ли информация о характеристиках текущего блока определенному условию, и, если информация о характеристиках удовлетворяет определенному условию, сторона декодера определяет, что следует разрешить взвешенное предсказание для текущего блока, в противном случае сторона декодера определяет, что не следует разрешать взвешенное предсказание для текущего блока. Способ, которым сторона декодера определяет, разрешить ли взвешенное предсказание для текущего блока на основе информации о характеристиках, может быть отнесен к этапу 401 и здесь повторяться не будет.[118] In an exemplary implementation, the encoder side determines whether the characteristic information of the current block satisfies a certain condition, and if the characteristic information satisfies the certain condition, the encoder side determines that a weighted prediction should be allowed for the current block. The decoder side also determines whether the performance information of the current block satisfies a certain condition, and if the performance information satisfies the certain condition, the decoder side determines that weighted prediction should be allowed for the current block, otherwise the decoder side determines that weighted prediction should not be allowed. prediction for the current block. The manner in which the decoder side determines whether to allow weighted prediction for the current block based on the performance information may be referred to at step 401 and will not be repeated here.

[119] В другой возможной реализации на стороне кодера определяют, поддерживает ли текущий блок взвешенное предсказание, на основе информации о характеристиках текущего блока. Когда текущий блок поддерживает взвешенное предсказание, также может быть принята другая стратегия, чтобы определить, разрешить ли взвешенное предсказание для текущего блока, например, используют RDO, чтобы определить, разрешить ли взвешенное предсказание для текущего блока. После определения, разрешить ли взвешенное предсказание для текущего блока, когда сторона кодера передает кодированный битовый поток текущего блока, кодированный битовый поток может включать синтаксис для определения, следует ли разрешить взвешенное предсказание для текущего блока, при этом синтаксис указывает, следует ли разрешить взвешенное предсказание для текущего блока. Сторона декодера определяет, поддерживает ли текущий блок взвешенное предсказание, на основе информации о характеристиках текущего блока. Когда определяют, что текущий блок поддерживает взвешенное предсказание, сторона декодера может декодировать синтаксис для определения, следует ли разрешить взвешенное предсказание, из кодированного битового потока и определять, разрешить ли взвешенное предсказание для текущего блока на основе упомянутого синтаксиса.[119] In another possible encoder-side implementation, it is determined whether the current block supports weighted prediction based on information about the characteristics of the current block. When the current block supports weighted prediction, another strategy may also be adopted to determine whether to enable weighted prediction for the current block, for example, using RDO to determine whether to enable weighted prediction for the current block. After determining whether to enable weighted prediction for the current block, when the encoder side transmits the encoded bitstream of the current block, the encoded bitstream may include syntax for determining whether to enable weighted prediction for the current block, wherein the syntax indicates whether to enable weighted prediction for current block. The decoder side determines whether the current block supports weighted prediction based on information about the characteristics of the current block. When it is determined that the current block supports weighted prediction, the decoder side may decode a syntax for determining whether to enable weighted prediction from the encoded bitstream and determine whether to enable weighted prediction for the current block based on the syntax.

[120] Например, когда определено, что следует разрешить взвешенное предсказание для текущего блока, сторона декодера может также получить угол взвешенного предсказания текущего блока, позицию взвешенного предсказания текущего блока и коэффициент преобразования весов текущего блока, при этом соответствующее описание угла взвешенного предсказания, позиции взвешенного предсказания и коэффициента преобразования весов может быть отнесено к этапу 401 и не будет здесь повторяться.[120] For example, when it is determined that weighted prediction should be enabled for a current block, the decoder side may also obtain a weighted prediction angle of the current block, a weighted prediction position of the current block, and a weight conversion factor of the current block, wherein a corresponding description of the weighted prediction angle, weighted position prediction and weight conversion factor may be referred to at step 401 and will not be repeated here.

[121] На этапе 412 сторона декодера конфигурирует опорные весовые значения для окружающих позиций за пределами текущего блока в соответствии с коэффициентом преобразования весов текущего блока и начальной позицией преобразования весов текущего блока.[121] At step 412, the decoder side configures reference weights for surrounding positions outside the current block in accordance with the current block's weight conversion factor and the current block's weight conversion starting position.

[122] Например, сторона декодера может определить начальную позицию преобразования весов текущего блока на основе по меньшей мере одного из угла взвешенного предсказания текущего блока, позиции взвешенного предсказания текущего блока или размера текущего блока. Затем сторона декодера конфигурирует опорные весовые значения для окружающих позиций за пределами текущего блока в соответствии с коэффициентом преобразования весов текущего блока и начальной позицией преобразования весов текущего блока.[122] For example, the decoder side may determine the starting position of the weight transformation of the current block based on at least one of the weighted prediction angle of the current block, the weighted prediction position of the current block, or the size of the current block. The decoder side then configures reference weights for surrounding positions outside the current block according to the weight conversion factor of the current block and the weight conversion start position of the current block.

[123] На этапе 413 для каждой позиции пикселя текущего блока сторона декодера определяет окружающую соответствующую позицию, указанную позицией пикселя, из окружающих позиций за пределами текущего блока на основе угла взвешенного предсказания текущего блока.[123] At step 413, for each pixel position of the current block, the decoder side determines a surrounding corresponding position indicated by the pixel position from surrounding positions outside the current block based on the weighted prediction angle of the current block.

[124] На этапе 414 сторона декодера определяет целевое весовое значение позиции пикселя на основе опорного весового значения, связанного с окружающей соответствующей позицией.[124] At step 414, the decoder side determines a target pixel position weight value based on a reference weight value associated with a surrounding corresponding position.

[125] На этапе 415 сторона декодера определяет ассоциированное весовое значение позиции пикселя на основе целевого весового значения позиции пикселя.[125] At step 415, the decoder side determines an associated pixel position weight value based on the target pixel position weight value.

[126] На этапе 416 для каждой позиции пикселя текущего блока сторона декодера определяет первое значение предсказания позиции пикселя на основе первого режима предсказания текущего блока и определяет второе значение предсказания позиции пикселя на основе второго режима предсказания текущего блока.[126] At step 416, for each pixel position of the current block, the decoder side determines a first pixel position prediction value based on the first prediction mode of the current block, and determines a second pixel position prediction value based on the second prediction mode of the current block.

[127] На этапе 417 сторона декодера определяет значение взвешенного предсказания позиции пикселя на основе первого значения предсказания позиции пикселя, целевого весового значения позиции пикселя, второго значения предсказания позиции пикселя и ассоциированного весового значения позиции пикселя.[127] At step 417, the decoder side determines a weighted pixel position prediction value based on the first pixel position prediction value, the target pixel position weight value, the second pixel position prediction value, and the associated pixel position weight value.

[128] На этапе 418 сторона декодера определяет значения взвешенного предсказания текущего блока на основе значений взвешенного предсказания всех позиций пикселей в текущем блоке.[128] At step 418, the decoder side determines the weighted prediction values of the current block based on the weighted prediction values of all pixel positions in the current block.

[129] Например, процессы реализации этапов 412-418 могут быть отнесены к этапам 402 - 408, с той разницей, что этапы 412-418 являются процессами на стороне декодера, а не процессами на стороне кодера, поэтому они не будут здесь повторяться.[129] For example, the processes implementing steps 412-418 can be referred to as steps 402-408, with the difference that steps 412-418 are decoder-side processes rather than encoder-side processes, so they will not be repeated here.

[130] Как описано в приведенных выше технических решениях, в вариантах осуществления настоящего изобретения предоставляется эффективный способ конфигурирования весовых значений, в котором подходящее целевое весовое значение конфигурируют для каждой позиции пикселя текущего блока, так что значения предсказания текущего блока более приближены к исходным пикселям, что повышает точность предсказания, эффективность предсказания и эффективность кодирования и декодирования.[130] As described in the above technical solutions, embodiments of the present invention provide an efficient method for configuring weight values, in which a suitable target weight value is configured for each pixel position of the current block, so that the prediction values of the current block are closer to the original pixels, which improves prediction accuracy, prediction efficiency, and encoding and decoding efficiency.

[131] Вариант 4 осуществления изобретения. В вариантах 1-3 осуществления изобретения ожидается, что взвешенная обработка будет выполняться на основе угла взвешенного предсказания, и способ взвешенной обработки может быть обозначен как угловой режим внешнего взвешенного предсказания (AWP, Angular Weighted Prediction). То есть, когда текущий блок поддерживает режим AWP, текущий блок предсказывают с использованием вариантов 1-3 осуществления изобретения для получения значений предсказания текущего блока.[131] Embodiment 4 of the invention. In Embodiments 1 to 3, it is expected that weighted processing will be performed based on the weighted prediction angle, and the weighted processing method may be referred to as Angular Weighted Prediction (AWP) mode. That is, when the current block supports the AWP mode, the current block is predicted using embodiments 1 to 3 of the invention to obtain prediction values of the current block.

[132] Варианты 1-3 осуществления изобретения включают угол взвешенного предсказания. Угол взвешенного предсказания может быть любым углом, например, любым углом в пределах 180 градусов или любым углом в пределах 360 градусов, таким как 10 градусов, 20 градусов, 30 градусов или т.п., что здесь не ограничено.[132] Embodiments 1 to 3 include a weighted prediction angle. The weighted prediction angle may be any angle, such as any angle within 180 degrees, or any angle within 360 degrees, such as 10 degrees, 20 degrees, 30 degrees or the like, which is not limited here.

[133] В возможной реализации угол взвешенного предсказания может быть горизонтальным углом (например, углом 2 на Фиг. 7 В); или угол взвешенного предсказания может быть вертикальным углом (например, углом 6 на Фиг. 7 В); или абсолютное значение наклона угла взвешенного предсказания (абсолютное значение наклона угла взвешенного предсказания является тангенсом угла взвешенного предсказания) может быть n-й степенью числа 2, где n - целое число, например, положительное целое число, 0 и отрицательное целое число.[133] In an exemplary implementation, the weighted prediction angle may be a horizontal angle (eg, angle 2 in FIG. 7B); or the weighted prediction angle may be a vertical angle (eg, angle 6 in FIG. 7B); or the absolute value of the weighted prediction angle slope (the absolute value of the weighted prediction angle slope is the tangent of the weighted prediction angle) may be the nth power of 2, where n is an integer, such as a positive integer, 0, and a negative integer.

[134] Например, абсолютное значение наклона угла взвешенного предсказания может быть 1 (то есть значение 0-й степени числа 2), 2 (то есть значение 1-й степени числа 2), 1/2 (то есть значение -1-й степени числа 2), 4 (то есть значение 2-й степени числа 2), 1/4 (то есть значение -2-й степени числа 2), 8 (то есть значение 3-й степени числа 2) или 1/8 (то есть значение -3-й степени числа 2) и т.п. Например, на Фиг. 5 показаны восемь углов взвешенного предсказания, при этом абсолютные значения наклонов углов взвешенного предсказания представляют собой значения n-й степени числа 2.[134] For example, the absolute value of the slope of the weighted prediction angle can be 1 (that is, the value of the 0th power of 2), 2 (that is, the value of the 1st power of 2), 1/2 (that is, the value of -1 powers of the number 2), 4 (that is, the value of the 2nd power of the number 2), 1/4 (that is, the value of the -2nd power of the number 2), 8 (that is, the value of the 3rd power of the number 2) or 1/8 (that is, the value of the -3rd power of the number 2), etc. For example, in FIG. Figure 5 shows eight weighted prediction angles, and the absolute values of the slopes of the weighted prediction angles are the values of the nth power of 2.

[135] В вариантах осуществления настоящего изобретения может выполняться операция сдвига для угла взвешенного предсказания. См. последующие варианты осуществления изобретения для примеров операции сдвига угла взвешенного предсказания. Следовательно, когда абсолютное значение наклона угла взвешенного предсказания равно n-й степени числа 2, операции деления можно избежать во время операции сдвига для угла взвешенного предсказания, что облегчает реализацию сдвига.[135] In embodiments of the present invention, a shift operation may be performed on the weighted prediction angle. See the following embodiments for examples of the weighted prediction angle shift operation. Therefore, when the absolute value of the slope of the weighted prediction angle is equal to the nth power of 2, the division operation can be avoided during the shift operation of the weighted prediction angle, which makes it easier to implement the shift.

[136] Например, количество углов взвешенного предсказания, поддерживаемых различными размерами блоков (например, размером текущего блока), может быть одинаковым или различным. Например, размер блока А поддерживает 8 углов взвешенного предсказания, размер блока В и размер блока С поддерживают 6 углов взвешенного предсказания и т.д.[136] For example, the number of weighted prediction angles supported by different block sizes (eg, the size of the current block) may be the same or different. For example, block size A supports 8 weighted prediction angles, block size B and block size C support 6 weighted prediction angles, etc.

[137] Вариант 5 осуществления изобретения. В вариантах 1-3 осуществления изобретения на стороне кодера или на стороне декодера необходимо сконфигурировать опорные весовые значения для окружающих позиций за пределами текущего блока в соответствии с коэффициентом преобразования весов текущего блока и начальной позицией преобразования весов текущего блока. В возможной реализации может использоваться следующий способ: для каждой окружающей позиции за пределами текущего блока конфигурируют опорное весовое значение окружающей позиции на основе значений координат окружающей позиции, значений координат начальной позиции преобразования весов и коэффициента преобразования весов.[137] Embodiment 5 of the invention. In Embodiments 1 to 3, it is necessary to configure reference weights for surrounding positions outside the current block on the encoder side or on the decoder side according to the weight conversion factor of the current block and the weight conversion start position of the current block. In a possible implementation, the following method could be used: for each surrounding position outside the current block, a reference weight value of the surrounding position is configured based on the coordinate values of the surrounding position, the coordinate values of the weight transformation start position, and the weight transformation factor.

[138] Например, для каждой окружающей позиции за пределами текущего блока, если окружающая позиция является окружающей позицией в одной строке сверху или в одной строке снизу от текущего блока, значение координаты окружающей позиции может быть значением абсциссы, и значение координаты начальной позиции преобразования весов может быть значением абсциссы. Альтернативно, если окружающая позиция является окружающей позицией в одном столбце слева или в одном столбце справа от текущего блока, значение координаты окружающей позиции может быть значением ординаты и значение координаты начальной позиции преобразования весов может быть значением ординаты.[138] For example, for each surrounding position outside the current block, if the surrounding position is a surrounding position one line above or one line below the current block, the coordinate value of the surrounding position may be the abscissa value, and the coordinate value of the weight transformation starting position may be the abscissa value. Alternatively, if the surrounding position is a surrounding position one column to the left or one column to the right of the current block, the coordinate value of the surrounding position may be an ordinate value and the coordinate value of the weight transformation starting position may be an ordinate value.

[139] Например, позиция пикселя в верхнем левом углу текущего блока (например, первая позиция пикселя в верхнем левом углу) может использоваться в качестве начала координат, а значение координаты окружающей позиции текущего блока (например, значение абсциссы или значение ординаты) и значение координаты начальной позиции преобразования весов (например, значение абсциссы или значение ординаты) оба являются значениями координат относительно начала координат. Другая позиция пикселя текущего блока также может быть взята в качестве начала координат, и способ реализации аналогичен способу использования позиции пикселя в верхнем левом углу в качестве начала координат.[139] For example, the pixel position in the upper left corner of the current block (for example, the first pixel position in the upper left corner) can be used as the origin, and the coordinate value of the current block's surrounding position (for example, the abscissa value or ordinate value) and the coordinate value The starting position of the weight transformation (for example, the abscissa value or the ordinate value) are both coordinate values relative to the origin. Another pixel position of the current block can also be taken as the origin, and the implementation method is similar to the method of using the pixel position in the top left corner as the origin.

[140] В возможной реализации сначала определяют разность между значением координаты окружающей позиции и значением координаты начальной позиции преобразования весов, и определяют значение произведения разности и коэффициента преобразования весов текущего блока. Если значение произведения меньше первого значения (например, минимальное значение опорного весового значения, такое как 0), опорное весовое значение, связанное с окружающей позицией, определяют как первое значение. Если значение произведения превышает второе значение (например, максимальное значение опорного весового значения, такое как 8), опорное весовое значение, связанное с окружающей позицией, определяют как второе значение. Если значение произведения не меньше первого значения и не больше второго значения, опорное весовое значение, связанное с окружающей позицией, определяют как значение произведения. В другой возможной реализации опорное весовое значение, связанное с окружающей позицией, также может быть определено непосредственно на основе отношения размера между значением координаты окружающей позиции и значением координаты начальной позиции преобразования весов. Например, если значение координаты окружающей позиции меньше, чем значение координаты начальной позиции преобразования весов, опорное весовое значение, связанное с окружающей позицией, определяют как первое значение; и, если значение координаты окружающей позиции не меньше значения координаты начальной позиции преобразования весов, опорное весовое значение, связанное с окружающей позицией, определяют как второе значение. В другом примере, если значение координаты окружающей позиции меньше, чем значение координаты начальной позиции преобразования весов, опорное весовое значение, связанное с окружающей позицией, определяют как второе значение; и, если значение координаты окружающей позиции не меньше, чем значение координаты начальной позиции преобразования весов, опорное весовое значение, связанное с окружающей позицией, определяют как первое значение.[140] In an exemplary implementation, the difference between the coordinate value of the surrounding position and the coordinate value of the starting position of the weight transformation is first determined, and the value of the product of the difference and the weight transformation coefficient of the current block is determined. If the product value is less than the first value (eg, the minimum value of the reference weight value, such as 0), the reference weight value associated with the surrounding position is determined to be the first value. If the product value exceeds the second value (eg, the maximum value of the reference weight value, such as 8), the reference weight value associated with the surrounding position is determined to be the second value. If the product value is not less than the first value and not greater than the second value, the reference weight value associated with the surrounding position is determined to be the product value. In another possible implementation, the reference weight value associated with the surrounding position may also be determined directly based on the size relationship between the coordinate value of the surrounding position and the coordinate value of the weight transformation start position. For example, if the coordinate value of the surrounding position is smaller than the coordinate value of the weight transformation starting position, the reference weight value associated with the surrounding position is determined as the first value; and, if the coordinate value of the surrounding position is not less than the coordinate value of the weight transformation starting position, the reference weight value associated with the surrounding position is determined as the second value. In another example, if the coordinate value of the surrounding position is less than the coordinate value of the weight transformation starting position, the reference weight value associated with the surrounding position is determined as the second value; and, if the coordinate value of the surrounding position is not less than the coordinate value of the weight transformation starting position, the reference weight value associated with the surrounding position is determined as the first value.

[141] Например, первое значение и второе значение могут быть сконфигурированы на основе опыта, и первое значение меньше второго значения. Первое значение и второе значение здесь не ограничиваются. В некоторых примерах первое значение может быть минимальным значением предварительно согласованных опорных весовых значений, например, 0, а второе значение может быть максимальным значением предварительно согласованных опорных весовых значений, например, 8, где 0 и 8 являются только примерами.[141] For example, the first value and the second value may be configured based on experience, and the first value is less than the second value. The first meaning and the second meaning are not limited here. In some examples, the first value may be the minimum value of the pre-negotiated reference weight values, such as 0, and the second value may be the maximum value of the pre-negotiated reference weight values, such as 8, where 0 and 8 are examples only.

[142] Например, как показано на Фиг. 4D, после того как все окружающие позиции поровну разделены на восемь частей, получают семь позиций взвешенного предсказания. Когда позиция взвешенного предсказания равна 0, она указывает окружающую позицию а0, а значение координаты начальной позиции преобразования весов является значением координаты окружающей позиции а0. Когда позиция взвешенного предсказания равна 1, она указывает окружающую позицию a1, а значение координаты начальной позиции преобразования весов является значением координаты окружающей позиции a1 и т.д. Способ определения значения координаты начальной позиции преобразования весов здесь повторяться не будет.[142] For example, as shown in FIG. 4D, after all surrounding positions are equally divided into eight parts, seven weighted prediction positions are obtained. When the weighted prediction position is 0, it indicates the surrounding position a0, and the coordinate value of the starting position of the weight transformation is the coordinate value of the surrounding position a0. When the weighted prediction position is 1, it indicates the surrounding position of a1, and the coordinate value of the starting position of the weight transformation is the coordinate value of the surrounding position of a1, etc. The method for determining the coordinate value of the initial position of the weight transformation will not be repeated here.

[143] Вариант 6 осуществления изобретения. В вариантах 1-3 осуществления изобретения на стороне кодера или на стороне декодера необходимо сконфигурировать опорные весовые значения для окружающих позиций за пределами текущего блока в соответствии с коэффициентом преобразования весов текущего блока и начальной позицией преобразования весов текущего блока. В возможной реализации может использоваться следующий способ: получают угол взвешенного предсказания текущего блока, коэффициент преобразования весов текущего блока и позицию взвешенного предсказания текущего блока, определяют начальную позицию преобразования весов текущего блока на основе позиции взвешенного предсказания текущего блока и определяют параметры весовой конфигурации на основе начальной позиции преобразования весов и коэффициента преобразования весов. Параметры весовой конфигурации включают начальную позицию преобразования весов и коэффициент преобразования весов. Затем на основе параметров весовой конфигурации определяют опорные весовые значения окружающих позиций за пределами текущего блока.[143] Embodiment 6 of the invention. In Embodiments 1 to 3, it is necessary to configure reference weights for surrounding positions outside the current block on the encoder side or on the decoder side according to the weight conversion factor of the current block and the weight conversion start position of the current block. In a possible implementation, the following method may be used: obtain the weighted prediction angle of the current block, the conversion factor of the current block's weights, and the weighted prediction position of the current block, determine the initial position of the transformation of the current block's weights based on the weighted prediction position of the current block, and determine the weight configuration parameters based on the initial position weight conversion and weight conversion factor. The weight configuration parameters include the weight transformation starting position and the weight transformation factor. Then, based on the parameters of the weight configuration, the reference weight values of the surrounding positions outside the current block are determined.

[144] Процесс конфигурирования опорных весовых значений для окружающих позиций за пределами текущего блока описан ниже в сочетании с конкретными способами реализации.[144] The process of configuring reference weights for surrounding positions outside the current block is described below in conjunction with specific implementation methods.

[145] Сначала получают действительное количество опорных весовых значений, а затем опорные весовые значения окружающих позиций за пределами текущего блока конфигурируют в соответствии с действительным количеством опорных весовых значений.[145] First, the actual number of reference weights is obtained, and then the reference weights of surrounding positions outside the current block are configured according to the actual number of reference weights.

[146] Например, количество окружающих позиций за пределами текущего блока является действительным количеством, и необходимо получить действительное количество опорных весовых значений, при этом действительное количество может быть определено на основе размера текущего блока и/или угла взвешенного предсказания текущего блока. Например, действительное количество ValidLength можно определить следующим образом: ValidLength=(N+(М>>X))<<1, где N представляет высоту текущего блока, М представляет ширину текущего блока, X представляет значение логарифма log2 абсолютного значения наклона угла взвешенного предсказания текущего блока, например 0 или 1, << означает арифметический сдвиг влево, а >> означает арифметический сдвиг вправо.[146] For example, the number of surrounding positions outside the current block is a real number, and the actual number of reference weights needs to be obtained, where the actual number can be determined based on the size of the current block and/or the weighted prediction angle of the current block. For example, the actual amount of ValidLength can be defined as follows: ValidLength=(N+(M>>X))<<1, where N represents the height of the current block, M represents the width of the current block, X represents the logarithm log2 value of the absolute value of the slope of the weighted prediction angle of the current block, such as 0 or 1, << means an arithmetic left shift, and >> means an arithmetic right shift.

[147] В настоящем изобретении а<<b можно понимать как арифметический сдвиг влево целочисленного двоично-дополнительного представления а на b двоичных цифр, и эта операция определена, когда b является положительным числом. Проще говоря, а<<b можно понимать как умножение а на 2 в степени b. В настоящем описании а>>b можно понимать как арифметический сдвиг вправо целочисленного двоично-дополнительного представления а на b двоичных цифр, и эта операция определена, когда b является положительным числом. Проще говоря, а>>b можно понимать как деление а на 2 в степени b.[147] In the present invention, a<<b can be understood as an arithmetic left shift of the integer two's complement representation of a by b binary digits, and this operation is defined when b is a positive number. Simply put, a<<b can be understood as multiplying a by 2 to the power of b. As used herein, a>>b can be understood as an arithmetic right shift of the two's complement integer representation of a by b binary digits, and this operation is defined when b is a positive number. Simply put, a>>b can be understood as dividing a by 2 to the power of b.

[148] В возможной реализации действительное количество опорных весовых значений может монотонно увеличиваться или монотонно уменьшаться. Опционально, действительное количество опорных весовых значений может сначала включать множество первых опорных весовых значений, а затем включать множество вторых опорных весовых значений, или сначала включать множество вторых опорных весовых значений, а затем включать множество первых опорных весовых значений. Описание приведено ниже в сочетании с несколькими условиями.[148] In an exemplary implementation, the actual number of reference weights may monotonically increase or monotonically decrease. Optionally, the actual number of reference weight values may first include a plurality of first reference weight values and then include a plurality of second reference weight values, or first include a plurality of second reference weight values and then include a plurality of first reference weight values. The description is given below in conjunction with several conditions.

[149] Условие 1: действительное количество опорных весовых значений может монотонно увеличиваться или монотонно уменьшаться. Например, действительное количество опорных весовых значений может быть [8 8…88765432100…0 0], то есть монотонно убывающим. В другом примере действительное количество опорных весовых значений может быть [0 0…0 0 1 2 3 4 5 6 7 8 8… 8 8], то есть монотонно возрастающим. Приведенные выше примеры являются только иллюстративными и не ограничивают настоящее изобретение.[149] Condition 1: The actual number of reference weights can monotonically increase or monotonically decrease. For example, the actual number of reference weight values can be [8 8…88765432100…0 0], that is, monotonically decreasing. In another example, the actual number of reference weight values can be [0 0…0 0 1 2 3 4 5 6 7 8 8… 8 8], that is, monotonically increasing. The above examples are illustrative only and do not limit the present invention.

[150] Например, опорные весовые значения могут быть сконфигурированы на основе параметров весовой конфигурации. Параметры весовой конфигурации могут включать коэффициент преобразования весов и начальную позицию преобразования весов. См. последующие варианты осуществления способа получения коэффициента преобразования весов. Начальная позиция преобразования весов может быть значением, установленным на основе опыта, или начальная позиция преобразования весов также может быть определена на основе позиции взвешенного предсказания или определена на основе угла взвешенного предсказания и позиции взвешенного предсказания, что не ограничивается.[150] For example, weight reference values may be configured based on weight configuration parameters. The weight configuration parameters may include the weight conversion factor and the weight conversion starting position. See the following embodiments of the method for obtaining the weight conversion factor. The weight transformation starting position may be a value set based on experience, or the weight transformation starting position may also be determined based on the weighted prediction position, or determined based on the weighted prediction angle and the weighted prediction position, which is not limited.

[151] Действительное количество опорных весовых значений может монотонно увеличиваться или уменьшаться от первого к последнему. Например, если максимальное значение опорных весовых значений равно M1, а минимальное значение опорных весовых значений равно М2, действительное количество опорных весовых значений монотонно уменьшается от максимального значения M1 до минимального значения М2 или монотонно увеличивается от минимального значения М2 до максимального значения M1. Если M1 равно 8, а М2 равно 0, множество опорных весовых значений монотонно уменьшаются от 8 до 0 или монотонно увеличиваются от 0 до 8.[151] The actual number of reference weights may monotonically increase or decrease from the first to the last. For example, if the maximum value of the reference weight values is M1 and the minimum value of the reference weight values is M2, the actual number of reference weight values decreases monotonically from the maximum value of M1 to the minimum value of M2 or increases monotonically from the minimum value of M2 to the maximum value of M1. If M1 is 8 and M2 is 0, the set of reference weights decreases monotonically from 8 to 0 or monotonically increases from 0 to 8.

[152] Например, сначала могут быть получены коэффициент преобразования весов и начальная позиция преобразования весов, а затем, на основе коэффициента преобразования весов и начальной позиции преобразования весов, может быть определено множество опорных весовых значений. Например, опорные весовые значения могут быть определены следующим образом: у(х)=Clip3 (минимум, максимум, a*(x-s)), где х представляет индекс окружающей позиции, который находится в диапазоне от 1 до значения действительного количества, например, х равно 1, что указывает первую окружающую позицию; у(х) представляет опорное весовое значение для х-й окружающей позиции, «а» представляет коэффициент преобразования весов, a s представляет начальную позицию преобразования весов. Функция Clip3 используется для ограничения опорных весовых значений между минимальным и максимальным значениями. Максимальное значение и минимальное значение можно сконфигурировать на основе опыта. Для простоты последующее описание представлено для минимального значения, равного 0, и максимального значения, равного 8, в качестве примера.[152] For example, first a weight conversion factor and a weight conversion starting position may be obtained, and then, based on the weight conversion factor and a weight conversion starting position, a plurality of reference weight values can be determined. For example, reference weights can be defined as follows: y(x)=Clip3(min, max, a*(x-s)), where x represents the index of the surrounding position, which ranges from 1 to the actual quantity value, e.g. equals 1, indicating the first surrounding position; y(x) represents the reference weight value for the x-th surrounding position, "a" represents the weight transformation factor, and s represents the start weight transformation position. The Clip3 function is used to constrain reference weights between the minimum and maximum values. The maximum value and minimum value can be configured based on experience. For simplicity, the following description is provided with a minimum value of 0 and a maximum value of 8 as an example.

[153] «а» представляет коэффициент преобразования весов, и «а» может быть ненулевым целым числом, например, «а» может быть -4, -2, -1, 1, 2, 4 и т.п. Нет ограничений на значение а. Если абсолютное значение «а» равно 1, то опорные весовые значения от 0 до 8 должны пройти через 0, 1, 2, 3, 4, 5, 6, 7, 8, или опорные весовые значения от 8 до 0 должны пройти через 8, 7, 6, 5, 4, 3, 2, 1, 0.[153] "a" represents the weight conversion factor, and "a" may be a non-zero integer, for example, "a" may be -4, -2, -1, 1, 2, 4, etc. There are no restrictions on the value of a. If the absolute value of "a" is 1, then reference weights 0 to 8 must go through 0, 1, 2, 3, 4, 5, 6, 7, 8, or reference weights 8 to 0 must go through 8 , 7, 6, 5, 4, 3, 2, 1, 0.

[154] s может представлять начальную позицию преобразования весов, которая может быть определена на основе позиции взвешенного предсказания. Например, s=f (позиция взвешенного предсказания), то есть s является функцией позиции взвешенного предсказания. Например, после определения диапазона окружающих позиций за пределами текущего блока определяют действительное количество окружающих позиций, и все окружающие позиции поровну делятся на N частей, где значение N может быть сконфигурировано произвольно, например как 4, 6, 8 и т.п. Позиция взвешенного предсказания используется для представления того, какая окружающая позиция за пределами текущего блока принимается в качестве одной из целевых окружающих позиций текущего блока, а окружающая позиция, соответствующая позиции взвешенного предсказания, является начальной позицией преобразования весов. Опционально, значение s может быть определено на основе угла взвешенного предсказания и позиции взвешенного предсказания, например, s=f (угол взвешенного предсказания, позиция взвешенного предсказания), то есть s является функцией угла взвешенного предсказания и позиции взвешенного предсказания. Например, диапазон окружающих позиций за пределами текущего блока может быть определен на основе угла взвешенного предсказания. После определения диапазона окружающих позиций за пределами текущего блока может быть определено действительное количество окружающих позиций, и все окружающие позиции поровну делятся на N частей. Позиция взвешенного предсказания используется для представления того, какая окружающая позиция за пределами текущего блока принята в качестве одной из целевых окружающих позиций текущего блока, а окружающая позиция, соответствующая позиции взвешенного предсказания, является начальной позицией преобразования весов.[154] s may represent a starting position of the weight transformation, which may be determined based on the position of the weighted prediction. For example, s=f (weighted prediction position), that is, s is a function of the weighted prediction position. For example, after determining the range of surrounding positions outside the current block, the actual number of surrounding positions is determined, and all surrounding positions are equally divided into N parts, where the value of N can be configured arbitrarily, such as 4, 6, 8, etc. The weighted prediction position is used to represent which surrounding position outside the current block is taken as one of the target surrounding positions of the current block, and the surrounding position corresponding to the weighted prediction position is the starting position of the weight transformation. Optionally, the value of s can be determined based on the weighted prediction angle and the weighted prediction position, for example, s=f (weighted prediction angle, weighted prediction position), that is, s is a function of the weighted prediction angle and the weighted prediction position. For example, the range of surrounding positions outside the current block can be determined based on the weighted prediction angle. After determining the range of surrounding positions outside the current block, the actual number of surrounding positions can be determined, and all surrounding positions are equally divided into N parts. The weighted prediction position is used to represent which surrounding position outside the current block is taken as one of the target surrounding positions of the current block, and the surrounding position corresponding to the weighted prediction position is the starting position of the weight transformation.

[155] Подводя итог, можно сказать, что в у(х)=Clip3 (минимум, максимум, a*(x-s)) коэффициент «а» преобразования весов и начальная позиция s преобразования весов являются известными значениями. Для каждой из окружающих позиций х за пределами текущего блока опорное весовое значение у(х) окружающей позиции может быть определено на основе функциональной взаимосвязи. Например, если коэффициент «а» преобразования весов равен 2, а начальная позиция s преобразования весов равна 2, функциональное соотношение может быть у(х)=Clip3 (минимум, максимум, 2*(х-2)). Для каждой окружающей позиции х за пределами текущего блока может быть получено опорное весовое значение у(х).[155] To summarize, in y(x)=Clip3 (minimum, maximum, a*(x-s)) the weight transformation coefficient a and the weight transformation starting position s are known values. For each of the surrounding positions x outside the current block, a reference weight value y(x) of the surrounding position can be determined based on the functional relationship. For example, if the weight transformation factor a is 2 and the weight transformation starting position s is 2, the functional relationship could be y(x)=Clip3 (minimum, maximum, 2*(x-2)). For each surrounding position x outside the current block, a reference weight value y(x) can be obtained.

[156] Таким образом, можно получить действительное количество опорных весовых значений текущего блока, и эти опорные весовые значения могут монотонно увеличиваться или монотонно уменьшаться. В возможном варианте осуществления изобретения опорные весовые значения окружающих позиций за пределами текущего блока включают одно или более опорных весовых значений целевых позиций, одно или более опорных весовых значений первых соседних позиций целевых позиций и одно или более опорных весовых значений вторых соседних позиций целевых позиций.[156] In this way, the actual number of reference weight values of the current block can be obtained, and these reference weight values can monotonically increase or monotonically decrease. In an exemplary embodiment of the invention, the reference weights of the surrounding positions outside the current block include one or more reference weights of the target positions, one or more reference weights of the first adjacent positions of the target positions, and one or more reference weights of the second adjacent positions of the target positions.

[157] Например, целевые позиции включают одно опорное весовое значение или по меньшей мере два опорных весовых значения. Например, опорное весовое значение определяют на основе начальной позиции преобразования весов, и позиции, соответствующие опорному весовому значению, принимают в качестве целевых позиций. В другом примере по меньшей мере два опорных весовых значения определяют на основе начальной позиции преобразования весов, и позиции, соответствующие по меньшей мере двум опорным весовым значениям, принимают в качестве целевых позиций.[157] For example, the target positions include one reference weight value or at least two reference weight values. For example, a reference weight value is determined based on the starting position of the weight transformation, and positions corresponding to the reference weight value are taken as target positions. In another example, at least two reference weight values are determined based on the starting position of the weight transformation, and positions corresponding to the at least two reference weight values are taken as target positions.

[158] Если целевые позиции включают по меньшей мере два опорных весовых значения, по меньшей мере два опорных весовых значения целевых позиций монотонно увеличиваются или монотонно уменьшаются. Монотонное увеличение может быть строго монотонным увеличением (по меньшей мере два опорных весовых значения целевых позиций строго монотонно увеличиваются); и монотонное уменьшение может быть строго монотонным уменьшением (по меньшей мере два опорных весовых значения целевых позиций строго монотонно уменьшаются). Например, опорные весовые значения целевых позиций монотонно увеличиваются от 1 до 7 или опорные весовые значения целевых позиций монотонно уменьшаются от 7 до 1.[158] If the target positions include at least two reference weights, the at least two reference weights of the target positions are monotonically increased or monotonically decreased. A monotonic increase may be a strictly monotonic increase (at least two reference weights of the target positions are strictly monotonically increased); and the monotonic decrease may be a strictly monotonic decrease (at least two reference weights of the target positions are strictly monotonically decreased). For example, the reference weight values of the target positions increase monotonically from 1 to 7, or the reference weight values of the target positions monotonically decrease from 7 to 1.

[159] Например, все опорные весовые значения первых соседних позиций могут быть первым опорным весовым значением, а опорные весовые значения вторых соседних позиций могут монотонно увеличиваться. Например, все опорные весовые значения первых соседних позиций могут быть равны 0, целевые позиции включают одно опорное весовое значение, равное 1, а опорные весовые значения вторых соседних позиций монотонно увеличиваются от 2 до 8.[159] For example, all the reference weight values of the first adjacent positions may be the first reference weight value, and the reference weight values of the second adjacent positions may increase monotonically. For example, the reference weights of the first neighboring positions may all be 0, the target positions include one reference weight value of 1, and the reference weights of the second neighboring positions increase monotonically from 2 to 8.

[160] Альтернативно, все опорные весовые значения первых соседних позиций могут быть первым опорным весовым значением, а опорные весовые значения вторых соседних позиций могут монотонно уменьшаться. Например, все опорные весовые значения первых соседних позиций могут быть равны 8, целевые позиции включают одно опорное весовое значение, равное 7, а опорные весовые значения вторых соседних позиций монотонно уменьшаются от 6 до 0.[160] Alternatively, all of the reference weight values of the first adjacent positions may be the first reference weight value, and the reference weight values of the second adjacent positions may be monotonically decreasing. For example, the first adjacent position reference weights may all be 8, the target positions include one weight reference value equal to 7, and the second adjacent position reference weights decrease monotonically from 6 to 0.

[161] Альтернативно, все опорные весовые значения первых соседних позиций являются вторым опорным весовым значением, и все опорные весовые значения вторых соседних позиций являются третьим опорным весовым значением, причем второе опорное весовое значение отличается от третьего опорного весового значения. Например, все опорные весовые значения первых соседних позиций равны 0, целевые позиции включают по меньшей мере два опорных весовых значения, которые монотонно увеличиваются от 1 до 7, а все опорные весовые значения вторых соседних позиций равны 8, при этом опорные весовые значения первых соседних позиций отличаются от опорных весовых значений вторых соседних позиций.[161] Alternatively, all reference weights of the first adjacent positions are a second reference weight, and all reference weights of the second adjacent positions are a third reference weight, wherein the second reference weight is different from the third reference weight. For example, all reference weights of the first adjacent positions are 0, the target positions include at least two reference weights that increase monotonically from 1 to 7, and all reference weights of the second adjacent positions are 8, wherein the reference weights of the first adjacent positions differ from the reference weight values of the second neighboring positions.

[162] Опционально, опорные весовые значения первых соседних позиций и опорные весовые значения вторых соседних позиций монотонно увеличиваются или монотонно уменьшаются одновременно. Например, опорные весовые значения первых соседних позиций монотонно увеличиваются, и опорные весовые значения вторых соседних позиций также монотонно увеличиваются. В другом примере опорные весовые значения первых соседних позиций монотонно уменьшаются, и опорные весовые значения вторых соседних позиций также монотонно уменьшаются. Например, опорные весовые значения первых соседних позиций монотонно увеличиваются от 0 до 3, целевые позиции включают одно опорное весовое значение, равное 4, а опорные весовые значения вторых соседних позиций монотонно увеличиваются от 5 до 8.[162] Optionally, the reference weight values of the first adjacent positions and the reference weight values of the second adjacent positions are monotonically increased or monotonically decreased simultaneously. For example, the reference weight values of the first adjacent positions increase monotonically, and the reference weight values of the second adjacent positions also increase monotonically. In another example, the reference weight values of the first adjacent positions are monotonically decreased, and the reference weight values of the second adjacent positions are also monotonically decreased. For example, the reference weights of the first adjacent positions increase monotonically from 0 to 3, the target positions include one reference weight of 4, and the reference weights of the second adjacent positions monotonically increase from 5 to 8.

[163] Условие 2: действительное количество опорных весовых значений может сначала включать множество третьих значений, а затем включать множество четвертых значений, или может сначала включать множество четвертых значений, а затем включать множество третьих значений. Например, действительное количество опорных весовых значений может быть [8 8… 8 8 0 0… 0 0] или [0 0… 0 0 8 8… 8 8]. Например, множество опорных весовых значений может быть определено на основе начальной позиции преобразования весов. Например, начальная позиция преобразования весов представляет s-e опорное весовое значение. Следовательно, все опорные весовые значения перед s-м опорным весовым значением (исключая s-e опорное весовое значение) являются третьим значением (например, 8), и все опорные весовые значения после s-го опорного весового значения (включая s-e опорное весовое значение) являются четвертым значением (например, 0). Альтернативно, все опорные весовые значения перед s-м опорным весовым значением являются четвертым значением, а все опорные весовые значения после s-го опорного весового значения являются третьим значением.[163] Condition 2: The actual number of reference weight values may first include a plurality of third values and then include a plurality of fourth values, or may first include a plurality of fourth values and then include a plurality of third values. For example, the actual number of reference weights could be [8 8... 8 8 0 0... 0 0] or [0 0... 0 0 8 8... 8 8]. For example, a plurality of reference weight values may be determined based on the starting position of the weight transformation. For example, the starting position of the weight transformation represents the s-e reference weight value. Therefore, all reference weight values before the sth reference weight value (excluding the s-e reference weight value) are the third value (e.g., 8), and all reference weight values after the sth reference weight value (including the s-e reference weight value) are the fourth value value (for example, 0). Alternatively, all reference weights before the sth reference weight are the fourth value, and all reference weights after the sth reference weight are the third value.

[164] После получения действительного количества опорных весовых значений опорные весового значения окружающих позиций за пределами текущего блока конфигурируют в соответствии с действительным количеством опорных весовых значений.[164] After obtaining the actual number of reference weight values, the reference weight values of the surrounding positions outside the current block are configured in accordance with the actual number of reference weight values.

[165] Например, количество окружающих позиций за пределами текущего блока является действительным количеством, и количество опорных весовых значений является действительным количеством, так что действительное количество опорных весовых значений может быть сконфигурировано как опорные весовые значения окружающих позиций за пределами текущего блока. Например, первое опорное весовое значение может быть сконфигурировано как опорное весовое значение первой окружающей позиции за пределами текущего блока, а второе опорное весовое значение может быть сконфигурировано как опорное весовое значение второй окружающей позиции за пределами текущего блока и т.д.[165] For example, the number of surrounding positions outside the current block is a real number, and the number of reference weights is a real number, so that the actual number of reference weights can be configured as the reference weights of surrounding positions outside the current block. For example, the first reference weight value may be configured as the reference weight value of the first surrounding position outside the current block, and the second reference weight value may be configured as the reference weight value of the second surrounding position outside the current block, etc.

[166] Таким образом, опорные весовые значения сконфигурированы для окружающих позиций за пределами текущего блока, то есть каждая окружающая позиция имеет опорное весовое значение. Следовательно, опорное весовое значение, связанное с окружающей соответствующей позицией, которое является целевым весовым значением позиции пикселя, может быть определено после определения окружающей соответствующей позиции, указанной позицией пикселя, из окружающих позиций за пределами текущего блока.[166] Thus, reference weights are configured for surrounding positions outside the current block, that is, each surrounding position has a reference weight value. Therefore, the reference weight value associated with the surrounding corresponding position, which is the target pixel position weight value, can be determined after determining the surrounding corresponding position, indicated by the pixel position, from surrounding positions outside the current block.

[167] Реализация представленного выше процесса описана ниже в сочетании с несколькими конкретными сценариями применения. Например, в следующих сценариях применения предполагается, что размер текущего блока равен М * N, где М представляет ширину текущего блока, а N представляет высоту текущего блока. X представляет собой значение логарифма log2 тангенса угла взвешенного предсказания, такое как 0 или 1. Y представляет значение индекса позиции взвешенного предсказания, а А, b, с и d представляют заранее заданные постоянные значения. ValidLength представляет действительное количество, FirstPos представляет начальную позицию преобразования весов, ReferenceWeights[i] представляет опорное весовое значение i-й окружающей позиции, функция Clip3 используется для ограничения опорного весового значения между минимальным значением 0 и максимальным значением 8, i представляет собой индекс окружающих позиций за пределами текущего блока, а «а» представляет собой абсолютное значение коэффициента преобразования весов.[167] An implementation of the above process is described below in conjunction with several specific application scenarios. For example, the following application scenarios assume that the size of the current block is M * N, where M represents the width of the current block and N represents the height of the current block. X represents the logarithm log2 of the tangent of the weighted prediction angle, such as 0 or 1. Y represents the weighted prediction position index value, and A, b, c and d represent predetermined constant values. ValidLength represents the actual quantity, FirstPos represents the starting position of the weight transformation, ReferenceWeights[i] represents the reference weight value of the i-th surrounding position, the Clip3 function is used to constrain the reference weight value between a minimum value of 0 and a maximum value of 8, i is the index of the surrounding positions for outside the current block, and "a" represents the absolute value of the weight conversion factor.

[168] Сценарий 1 применения: определяют действительное количество (также известное как действительная длина опорного веса, то есть ValidLength) на основе размера текущего блока и угла взвешенного предсказания текущего блока и получают начальную позицию FirstPos преобразования весов. Например, ValidLength можно определить по следующей формуле: FirstPos можно определить по следующей формуле: Исходя из этого, опорное весовое значение каждой окружающей позиции текущего блока выводится по следующей формуле: Диапазон значений i может быть от 0 до ValidLength-1 или от 1 до ValidLength. После получения опорного весового значения ReferenceWeights[i] окружающей позиции текущего блока целевое весовое значение позиции пикселя (х, у) текущего блока получают по следующей формуле: где << означает арифметический сдвиг влево, а >> означает арифметический сдвиг вправо.[168] Application Scenario 1: Determine the valid quantity (also known as the valid length of the reference weight, that is, ValidLength) based on the size of the current block and the weighted prediction angle of the current block, and obtain the FirstPos starting position of the weight transformation. For example, ValidLength can be determined using the following formula: FirstPos can be determined using the following formula: Based on this, the reference weight value of each surrounding position of the current block is derived using the following formula: The range of i values can be from 0 to ValidLength-1 or from 1 to ValidLength. After obtaining the reference weight value ReferenceWeights[i] of the surrounding position of the current block, the target weight value of the pixel position (x, y) of the current block is obtained using the following formula: where << means arithmetic left shift and >> means arithmetic right shift.

[169] Сценарий 2 применения: ValidLength можно определить по следующей формуле: FirstPos можно определить по следующей формуле: Исходя из этого, опорное весовое значение каждой окружающей позиции текущего блока выводится по следующей формуле: Целевое весовое значение каждой позиции пикселя (х, у) текущего блока может быть получено по следующей формуле: [169] Application Scenario 2: ValidLength can be determined using the following formula: FirstPos can be determined using the following formula: Based on this, the reference weight value of each surrounding position of the current block is derived using the following formula: The target weight value of each pixel position (x, y) of the current block can be obtained by the following formula:

[170] Сценарий 3 применения: ValidLength можно определить по следующей формуле: FirstPos можно определить по следующей формуле: Исходя из этого, опорное весовое значение каждой окружающей позиции текущего блока может быть получено по следующей формуле: Целевое весовое значение каждой позиции пикселя (х, у) текущего блока может быть получено по следующей формуле: [170] Application Scenario 3: ValidLength can be determined using the following formula: FirstPos can be determined using the following formula: Based on this, the reference weight value of each surrounding position of the current block can be obtained using the following formula: The target weight value of each pixel position (x, y) of the current block can be obtained by the following formula:

[171] Сценарий 4 применения: ValidLength можно определить по следующей формуле: FirstPos можно определить по следующей формуле: исходя из этого, опорные весовые значения каждой окружающей позиции текущего блока могут быть получены по следующей формуле: Целевое весовое значение каждой позиции пикселя (х, у) текущего блока может быть получено по следующей формуле: [171] Application Scenario 4: ValidLength can be determined using the following formula: FirstPos can be determined using the following formula: Based on this, the reference weights of each surrounding position of the current block can be obtained using the following formula: The target weight value of each pixel position (x, y) of the current block can be obtained by the following formula:

[172] Сценарий 5 применения: на Фиг. 6 показана схематическая диаграмма опорных весовых значений для четырех коэффициентов преобразования весов.[172] Application Scenario 5: In FIG. Figure 6 shows a schematic diagram of the weight reference values for the four weight conversion factors.

[173] Когда абсолютное значение коэффициента преобразования весов равно 1, то есть коэффициент преобразования весов равен 1 или -1, опорное весовое значение каждой окружающей позиции текущего блока может быть получено по следующей формуле: а приведенную выше формулу можно переписать как В этом случае можно обратиться к первому типу, показанному на Фиг. 6, значение FirstPos может быть равно 4, то есть опорные весовые значения окружающих позиций с 1-й по 4-ю равны 0, опорное весовое значение 5-й окружающей позиции равно 1, опорное весовое значение 6-й окружающей позиции равно 2 и т.д.[173] When the absolute value of the weight conversion factor is 1, that is, the weight conversion factor is 1 or -1, the reference weight value of each surrounding position of the current block can be obtained by the following formula: and the above formula can be rewritten as In this case, the first type shown in FIG. 6, the FirstPos value can be 4, that is, the reference weight values of the 1st to 4th surrounding positions are 0, the reference weight value of the 5th surrounding position is 1, the reference weight value of the 6th surrounding position is 2, etc. .d.

[174] Когда абсолютное значение коэффициента преобразования весов равно 2, то есть коэффициент преобразования весов равен 2 или -2, опорное весовое значение каждой окружающей позиции текущего блока получают по следующей формуле: а приведенную выше формулу можно переписать как В этом случае можно обратиться ко второму типу, показанному на Фиг. 6 значение FirstPos может быть равно 6, то есть опорные весовые значения окружающих позиций с 1-й по 6-ю равны 0, опорное весовое значение 7-й окружающей позиции равно 2, опорное весовое значение 8-й окружающей позиции равно 4 и т.д.[174] When the absolute value of the weight conversion factor is 2, that is, the weight conversion factor is 2 or -2, the reference weight value of each surrounding position of the current block is obtained by the following formula: and the above formula can be rewritten as In this case, the second type shown in FIG. 6, the FirstPos value can be equal to 6, that is, the reference weight values of the 1st to 6th surrounding positions are 0, the reference weight value of the 7th surrounding position is 2, the reference weight value of the 8th surrounding position is 4, etc. d.

[175] Когда абсолютное значение коэффициента преобразования весов равно 4, то есть коэффициент преобразования весов равен 4 или -4, опорное весовое значение каждой окружающей позиции текущего блока получают по следующей формуле: а приведенную выше формулу можно переписать как В этом случае можно обратиться к третьему типу, показанному на Фиг. 6, FirstPos может быть равно 7, то есть опорные весовые значения окружающих позиций с 1-й по 7-ю равны 0, опорное весовое значение 8-й окружающей позиции равно 4, опорные весовые значения окружающих позиций с 9-й по 17-ю равны 8, и т.д.[175] When the absolute value of the weight conversion factor is 4, that is, the weight conversion factor is 4 or -4, the reference weight value of each surrounding position of the current block is obtained by the following formula: and the above formula can be rewritten as In this case, the third type shown in FIG. 6, FirstPos can be equal to 7, that is, the reference weight values of the surrounding positions 1st to 7th are 0, the reference weight value of the 8th surrounding position is 4, the reference weight values of the surrounding positions 9th to 17th are equal to 8, etc.

[176] Когда абсолютное значение коэффициента преобразования весов равно 8, то есть коэффициент преобразования весов равен 8 или -8, опорное весовое значение каждой окружающей позиции текущего блока получают по следующей формуле: а приведенную выше формулу можно переписать как В этом случае можно обратиться к четвертому типу, показанному на Фиг. 6, FirstPos может быть равно 8, то есть опорные весовые значения окружающих позиций с 1-й по 8-ю равны 0, опорное весовое значение 9-й окружающей позиции равно 8, опорные весовые значения окружающих позиций с 10-й по 17-ю равны 8 и т.д.[176] When the absolute value of the weight conversion factor is 8, that is, the weight conversion factor is 8 or -8, the reference weight value of each surrounding position of the current block is obtained by the following formula: and the above formula can be rewritten as In this case, the fourth type shown in FIG. 6, FirstPos can be equal to 8, that is, the reference weight values of the surrounding positions 1st to 8th are 0, the reference weight value of the 9th surrounding position is 8, the reference weight values of the surrounding positions 10th to 17th are equal to 8, etc.

[177] Таким образом, когда абсолютное значение коэффициента преобразования весов равно 1, FirstPos равно 4; когда абсолютное значение коэффициента преобразования весов равно 2, FirstPos равно 6 (т.е. FirstPos при коэффициенте преобразования весов, равном 1, плюс 2); и когда абсолютное значение коэффициента преобразования весов равно 4, FirstPos равно 7 (т.е. FirstPos при коэффициенте преобразования весов, равном 1, плюс 3). Исходя из этого позиции с опорным весовым значением 4 могут быть выровнены.[177] Thus, when the absolute value of the weight conversion factor is 1, FirstPos is 4; when the absolute value of the weight conversion factor is 2, FirstPos is 6 (i.e., FirstPos when the weight conversion factor is 1 plus 2); and when the absolute value of the weight conversion factor is 4, FirstPos is 7 (i.e., FirstPos when the weight conversion factor is 1 plus 3). From this, positions with reference weight value 4 can be aligned.

[178] Например, для текущего блока, когда поддерживается переключение коэффициента преобразования весов и разрешено переключение коэффициента преобразования весов, для переключения может быть выбран один из 4 типов для распределений опорных весовых значений коэффициента преобразования весов, показанных на Фиг. 6, так что путем переключения коэффициента преобразования весов для изображения или для части изображения можно уменьшить проблему, состоящую в том, что быстрые изменения значений отображения изображения в некоторых сценах отображения изображения заметны. Например, ожидается, что в некоторых сценах отображения изображения проблема, связанная с заметными быстрыми изменениями значений, будет уменьшена, и переключение коэффициента преобразования весов в режиме AWP может решить эту проблему. Например, смешанный контент изображения включает часть экранных контентов, мультфильмы, изображения, содержащие мультфильмы и т.п., переключение коэффициента преобразования весов может быть применено к определенной области, содержащей экранные контенты, чтобы уменьшить проблему, заключающуюся в том, что быстрые изменения значений заметны.[178] For example, for the current block, when weight conversion factor switching is supported and weight conversion factor switching is enabled, one of 4 types for the weight conversion factor reference weight distributions shown in FIG. 6, so that by switching the weight conversion factor for an image or a portion of an image, it is possible to reduce the problem that rapid changes in image display values in some image display scenes are noticeable. For example, in some image display scenes, the problem of noticeable rapid value changes is expected to be reduced, and switching the weight conversion factor in AWP mode can solve this problem. For example, mixed image content includes a portion of screen contents, cartoons, images containing cartoons, etc., switching the weight conversion factor can be applied to a specific area containing screen contents to reduce the problem that rapid changes in values are noticeable .

[179] В приведенном выше процессе значение ValidLength связано с углом взвешенного предсказания текущего блока и размером текущего блока. Для упрощения схемы некоторые параметры могут быть фиксированными для достижения оптимизации. Например, угол взвешенного предсказания текущего блока может быть установлен равным фиксированному значению параметра, a ValidLength относится только к размеру текущего блока. Значение FirstPos связано с углом взвешенного предсказания текущего блока, размером текущего блока и позицией взвешенного предсказания текущего блока. В другом примере угол взвешенного предсказания текущего блока может быть сконфигурирован как фиксированное значение параметра, а значение FirstPos относится только к размеру текущего блока и позиции взвешенного предсказания текущего блока. Опционально, позиция взвешенного предсказания текущего блока может быть сконфигурирована как фиксированное значение параметра, а значение FirstPos относится только к размеру текущего блока и углу взвешенного предсказания текущего блока. Опционально, угол взвешенного предсказания текущего блока и позиция взвешенного предсказания текущего блока могут быть сконфигурированы как значения фиксированных параметров, которые могут быть одинаковыми или разными, а значение FirstPos относится только к размеру текущего блока.[179] In the above process, the ValidLength value is related to the weighted prediction angle of the current block and the size of the current block. To simplify the design, some parameters can be fixed to achieve optimization. For example, the weighted prediction angle of the current block can be set to a fixed parameter value, and ValidLength refers only to the size of the current block. The FirstPos value is related to the current block's weighted prediction angle, the current block's size, and the current block's weighted prediction position. In another example, the weighted prediction angle of the current block may be configured as a fixed parameter value, and the FirstPos value refers only to the size of the current block and the weighted prediction position of the current block. Optionally, the weighted prediction position of the current block can be configured as a fixed parameter value, and the FirstPos value only refers to the size of the current block and the weighted prediction angle of the current block. Optionally, the weighted prediction angle of the current block and the weighted prediction position of the current block can be configured as fixed parameter values, which can be the same or different, and the FirstPos value refers only to the size of the current block.

[180] Вариант 7 осуществления изобретения. В вариантах 1-3 осуществления изобретения на стороне кодера или на стороне декодера необходимо сконфигурировать опорные весовые значения для окружающих позиций за пределами текущего блока в соответствии с коэффициентом преобразования весов текущего блока и начальной позицией преобразования весов текущего блока. В возможной реализации М и N представляют ширину и высоту текущего блока соответственно. Как показано на Фиг. 7А, способ получения весового массива для углового режима взвешенного предсказания (AWP) может включать следующее.[180] Embodiment 7 of the invention. In Embodiments 1 to 3, it is necessary to configure reference weights for surrounding positions outside the current block on the encoder side or on the decoder side according to the weight conversion factor of the current block and the weight conversion start position of the current block. In a possible implementation, M and N represent the width and height of the current block, respectively. As shown in FIG. 7A, a method for obtaining a weight array for an angle weighted prediction (AWP) mode may include the following.

[181] На этапе a1 получают такие параметры, как stepIdx, angleIdx и subAngleIdx, на основе AwpIdx.[181] In step a1, parameters such as stepIdx, angleIdx and subAngleIdx are obtained based on AwpIdx.

[182] Например, AwpIdx представляет значение индекса угла взвешенного предсказания и позиции взвешенного предсказания. Если имеется 7 позиций взвешенного предсказания и 8 углов взвешенного предсказания, диапазон значений AwpIdx составляет от 0 до 55. Если позиции взвешенного предсказания от -3 до 3 (представляющая четвертую позицию взвешенного предсказания является центром, а четвертая позиция взвешенного предсказания равна 0), и, если индекс угла взвешенного предсказания равен 0-7, позиции взвешенного предсказания и углы взвешенного предсказания, соответствующие 56 значениям индекса AwpIdx, показаны в Таблице 1.[182] For example, AwpIdx represents a weighted prediction angle index value and a weighted prediction position. If there are 7 weighted prediction positions and 8 weighted prediction angles, the value range of AwpIdx is 0 to 55. If the weighted prediction positions are -3 to 3 (representing the fourth weighted prediction position is the center, and the fourth weighted prediction position is 0), and, If the weighted prediction angle index is 0-7, the weighted prediction positions and weighted prediction angles corresponding to the 56 AwpIdx index values are shown in Table 1.

[183] Например, stepIdx представляет позицию взвешенного предсказания (например, значение индекса позиции взвешенного предсказания), которая находится в диапазоне от -3 до 3. Например, для первой позиции взвешенного предсказания значение индекса позиции взвешенного предсказания равно -3; для второй позиции взвешенного предсказания значение индекса позиции взвешенного предсказания равно -2 и т.д.; для седьмой позиции взвешенного предсказания значение индекса позиции взвешенного предсказания равно 3.[183] For example, stepIdx represents a weighted prediction position (eg, a weighted prediction position index value) that is in the range of -3 to 3. For example, for the first weighted prediction position, the weighted prediction position index value is -3; for the second weighted prediction position, the weighted prediction position index value is -2, etc.; for the seventh weighted prediction position, the weighted prediction position index value is 3.

[184] angleIdx представляет собой значение логарифма log2 абсолютного значения наклона угла взвешенного предсказания (например, 0, или 1, или большую константу), a subAngleIdx представляет угловую область, в которой находится угол взвешенного предсказания. На Фиг. 7В показаны восемь углов взвешенного предсказания, где angleIdx угла 0 взвешенного предсказания представляет собой значение логарифма log2 абсолютного значения наклона угла 0 взвешенного предсказания, angleIdx угла 1 взвешенного предсказания представляет собой значение логарифма log2 абсолютного значения наклона угла 1 взвешенного предсказания и т.д., a angleIdx угла 7 взвешенного предсказания является значением логарифма log2 абсолютного значения наклона угла 7 взвешенного предсказания. Угол 0 взвешенного предсказания и угол 1 взвешенного предсказания расположены в угловой области 0, угол 2 взвешенного предсказания и угол 3 взвешенного предсказания расположены в угловой области 1, угол 4 взвешенного предсказания и угол 5 взвешенного предсказания расположены в угловой области 2, а угол 6 взвешенного предсказания и угол 7 взвешенного предсказания расположены в угловой области 3.[184] angleIdx represents the log2 value of the absolute value of the slope of the weighted prediction angle (eg, 0, or 1, or a greater constant), and subAngleIdx represents the angular region in which the weighted prediction angle lies. In FIG. 7B shows eight weighted prediction angles, where weighted prediction angle 0 angleIdx is the log2 value of the absolute value of weighted prediction angle 0 slope, angleIdx of weighted prediction angle 1 is the log2 value of the absolute value of weighted prediction angle 1 slope, etc., a angleIdx of the weighted prediction angle 7 is the log2 value of the absolute value of the slope of the weighted prediction angle 7. Weighted prediction corner 0 and weighted prediction corner 1 are located in corner region 0, weighted prediction corner 2 and weighted prediction corner 3 are located in corner region 1, weighted prediction corner 4 and weighted prediction corner 5 are located in corner region 2, and weighted prediction corner 6 and the weighted prediction angle 7 are located in the angle region 3.

[185] Например, stepIdx можно определить по следующей формуле: [185] For example, stepIdx can be determined using the following formula:

[186] Например, modAngNum(индекс угла) может быть сначала определен на основе следующей формулы: затем angleIdx определяют на основе modAngNum следующим образом: если значение modAngNum равно 2, angleIdx=7; если значение modAngNum равно 6, angleIdx=8; в противном случае angularIdx=modAngNum % 2.[186] For example, modAngNum(angle index) can first be determined based on the following formula: then angleIdx is determined based on modAngNum as follows: if modAngNum is 2, angleIdx=7; if modAngNum is 6, angleIdx=8; otherwise angularIdx=modAngNum % 2.

[187] Например, subAngleIdx можно определить по следующей формуле: [187] For example, subAngleIdx can be determined using the following formula:

[188] Таким образом, после определения угла взвешенного предсказания текущего блока и позиции взвешенного предсказания текущего блока сторона кодера на основе угла взвешенного предсказания и позиции взвешенного предсказания может определить значение AwpIdx, как показано в Таблице 1. Когда сторона кодера передает кодированный битовый поток стороне декодера, кодированный битовый поток может содержать значение AwpIdx. Таким образом, сторона декодера может получить значение AwpIdx, а затем получить stepIdx, angleIdx и sub AngleIdx на основе AwpIdx.[188] Thus, after determining the weighted prediction angle of the current block and the weighted prediction position of the current block, the encoder side, based on the weighted prediction angle and the weighted prediction position, can determine the value of AwpIdx, as shown in Table 1. When the encoder side transmits the encoded bit stream to the decoder side , the encoded bitstream may contain the value AwpIdx. So the decoder side can get the AwpIdx value and then get the stepIdx, angleIdx and sub AngleIdx based on the AwpIdx.

[189] Например, на основе angleIdx и sub AngleIdx один угол взвешенного предсказания может быть однозначно определен, как показано в Таблице 2. Угол взвешенного предсказания также может быть определен другим способом, например, путем изменения номера раздела и т.д.[189] For example, based on angleIdx and sub AngleIdx, one weighted prediction angle can be uniquely determined as shown in Table 2. The weighted prediction angle can also be determined in another way, such as by changing the section number, etc.

[190] На этапе а2 на основе stepIdx, angleIdx и sub AngleIdx конфигурируют опорные весовые значения для окружающих позиций за пределами текущего блока. Этап а2 включает следующие условия.[190] In step a2, based on stepIdx, angleIdx and sub AngleIdx, reference weight values for surrounding positions outside the current block are configured. Stage a2 includes the following conditions.

[191] Условие 1: если значение subAngleIdx равно 0, то есть угол взвешенного предсказания находится в угловой области 0, например, угол взвешенного предсказания равен углу 0 взвешенного предсказания или углу 1 взвешенного предсказания, начальная позиция FirstPos преобразования весов может определяться по следующей формуле: Затем можно определить опорные весовые значения окружающих позиций за пределами текущего блока по следующей формуле: Формула приведена для минимального значения опорных весовых значений, равного 0, максимального значения опорных весовых значений, равного 8, и коэффициента преобразования весов, равного 1, в качестве примера, то есть приведенная выше формула может быть эквивалентна ReferenceWeights[x]=Clip3 (минимум, максимум, a*(x-FirstPos)), где х может относиться к индексу одной из окружающих позиций за пределами текущего блока, х находится в диапазоне от 0 до ValidLength_H-1, а «а» представляет коэффициент преобразования весов.[191] Condition 1: If the value of subAngleIdx is 0, that is, the weighted prediction angle is in the angle region 0, for example, the weighted prediction angle is equal to the weighted prediction angle 0 or the weighted prediction angle 1, the starting position FirstPos of the weight transformation can be determined by the following formula: You can then determine the reference weights of the surrounding positions outside the current block using the following formula: The formula is given for the minimum value of reference weights to be 0, the maximum value of reference weights to be 8, and the weight conversion factor to be 1 as an example, that is, the above formula can be equivalent to ReferenceWeights[x]=Clip3 (minimum, maximum, a*(x-FirstPos)), where x can refer to the index of one of the surrounding positions outside the current block, x ranges from 0 to ValidLength_H-1, and "a" represents the weight conversion factor.

[192] В приведенной выше формуле ValidLength_H может представлять количество окружающих позиций за пределами текущего блока (например, действительное количество, также называемое действительной длиной). Когда значение subAngleIdx равно 0, окружающие позиции за пределами текущего блока, указанные углом взвешенного предсказания, могут быть окружающими позициями в левом столбце. Поэтому действительное количество обозначается как ValidLength H. Например, действительное количество ValidLength H может быть определено по следующей формуле: сдвиг влево на один бит обусловлен тем, что формула использует точность 1/2 пикселя. Если используется точность 1 пиксель, формула будет следующей: [192] In the above formula, ValidLength_H can represent the number of surrounding positions outside the current block (eg, valid quantity, also called valid length). When the value of subAngleIdx is 0, the surrounding positions outside the current block, indicated by the weighted prediction angle, can be the surrounding positions in the left column. Therefore, the valid quantity is denoted as ValidLength H. For example, the valid quantity ValidLength H can be determined by the following formula: The left shift is one bit because the formula uses 1/2 pixel precision. If 1 pixel precision is used, the formula will be:

Если используется точность 1/4 пикселя, формула будет следующей: Если используется точность 2 пикселя, Может использоваться другая пиксельная точность, и здесь не приводится избыточных описаний. В последующих формулах операции, включающие >>1, могут измениться для различной пиксельной точности.If 1/4 pixel precision is used, the formula would be: If 2 pixel precision is used, Other pixel precisions may be used and no redundant descriptions are given here. In subsequent formulas, the operations involving >>1 may change for different pixel precisions.

[193] В приведенной выше формуле DeltaPos_H представляет параметр изменения позиции (например, промежуточный параметр). Когда значение subAngleIdx равно 0, окружающие позиции за пределами текущего блока, указанные углом взвешенного предсказания, могут быть окружающими позициями в столбце слева от текущего блока. Поэтому параметр изменения позиции обозначается как DeltaPos_H. Например, DeltaPos_H определяется по следующей формуле: [193] In the above formula, DeltaPos_H represents the position change parameter (eg, intermediate parameter). When the value of subAngleIdx is 0, the surrounding positions outside the current block, indicated by the weighted prediction angle, can be the surrounding positions in the column to the left of the current block. Therefore, the position change parameter is designated as DeltaPos_H. For example, DeltaPos_H is determined by the following formula:

[194] Условие 2: если значение subAngleIdx равно 1, то есть угол взвешенного предсказания находится в угловой области 1, например, угол взвешенного предсказания является углом 2 взвешенного предсказания или углом 3 взвешенного предсказания, начальная позиция FirstPos преобразования весов может быть определена по следующей формуле: Затем можно определить опорные весовые значения окружающих позиций за пределами текущего блока по следующей формуле: Формула приведена для минимального опорного весового значения, равного 0, максимального значения опорных весовых значений, равного 8, и коэффициента преобразования весов, равного "а", в качестве примера, х может представлять индекс окружающих позиций за пределами текущего блока, и х находится в диапазоне от 0 до ValidLength_H-1.[194] Condition 2: If the value of subAngleIdx is 1, that is, the weighted prediction angle is in angle region 1, for example, the weighted prediction angle is weighted prediction angle 2 or weighted prediction angle 3, the starting position FirstPos of the weight transformation can be determined by the following formula : You can then determine the reference weights of the surrounding positions outside the current block using the following formula: The formula is given for a minimum reference weight value of 0, a maximum reference weight value of 8, and a weight conversion factor of "a", as an example, x may represent the index of surrounding positions outside the current block, and x is in the range from 0 to ValidLength_H-1.

[195] В приведенной выше формуле могут быть отнесены к условию 1 и здесь повторяться не будут.[195] In the above formula can be attributed to condition 1 and will not be repeated here.

[196] Условие 3: если значение subAngleIdx равно 2, то есть угол взвешенного предсказания находится в угловой области 2, например, угол взвешенного предсказания является углом 4 взвешенного предсказания или углом 5 взвешенного предсказания, начальная позиция FirstPos преобразования весов может быть определена по следующей формуле: Затем можно определить опорные весовые значения окружающих позиций за пределами текущего блока по следующей формуле: Формула приведена для минимального опорного весового значения, равного 0, максимального опорного весового значения, равного 8, и коэффициента преобразования весов, равного "а", в качестве примера, х может представлять индекс окружающих позиций за пределами текущего блока, и х находится в диапазоне от 0 до ValidLengthW -1.[196] Condition 3: If the value of subAngleIdx is 2, that is, the weighted prediction angle is in angle region 2, for example, the weighted prediction angle is weighted prediction angle 4 or weighted prediction angle 5, the starting position FirstPos of the weight transformation can be determined by the following formula : You can then determine the reference weights of the surrounding positions outside the current block using the following formula: The formula is given for a minimum reference weight value of 0, a maximum reference weight value of 8, and a weight conversion factor of "a", as an example, x may represent the index of surrounding positions outside the current block, and x ranges from 0 to ValidLengthW -1.

[197] В приведенной выше формуле ValidLength_W представляет количество окружающих позиций за пределами текущего блока (например, действительное количество, также называемое действительной длиной). Когда значение subAngleIdx равно 2, окружающие позиции за пределами текущего блока, указанные углом взвешенного предсказания, могут быть окружающими позициями в одной верхней строке. Поэтому действительное количество обозначается как ValidLength_W. Например, действительное количество ValidLength_W может быть определено по следующей формуле: [197] In the above formula, ValidLength_W represents the number of surrounding positions outside the current block (eg, valid quantity, also called valid length). When the value of subAngleIdx is 2, the surrounding positions outside the current block, indicated by the weighted prediction angle, can be the surrounding positions in the same top row. Therefore, the valid quantity is designated as ValidLength_W. For example, the actual amount of ValidLength_W can be determined by the following formula:

[198] В приведенной выше формуле DeltaPos_W представляет параметр изменения позиции (например, промежуточный параметр). Когда значение subAngleIdx равно 2, окружающие позиции за пределами текущего блока, указанные углом взвешенного предсказания, могут быть окружающими позициями в строке сверху от текущего блока. Поэтому параметр изменения позиции обозначается как DeltaPos_W. Например, DeltaPos_W определяется по следующей формуле: [198] In the above formula, DeltaPos_W represents the position change parameter (eg, intermediate parameter). When the value of subAngleIdx is 2, the surrounding positions outside the current block, indicated by the weighted prediction angle, can be the surrounding positions in the row above the current block. Therefore, the position change parameter is designated as DeltaPos_W. For example, DeltaPos_W is determined by the following formula:

[199] Условие 4: если значение subAngleIdx равно 3, то есть угол взвешенного предсказания находится в угловой области 3, например, угол взвешенного предсказания представляет собой угол 6 взвешенного предсказания или угол 7 взвешенного предсказания, начальная позиция FirstPos преобразования весов может быть определена по следующей формуле: Затем можно определить опорные весовые значения окружающих позиций за пределами текущего блока по следующей формуле: Формула приведена для минимального опорного весового значения, равного 0, максимального опорного весового значения, равного 8, и коэффициента преобразования весов, равного 1, в качестве примера, х может представлять индекс окружающих позиций за пределами текущего блока и находится в диапазоне от 0 до ValidLength_W-1.[199] Condition 4: If the value of subAngleIdx is 3, that is, the weighted prediction angle is in angle region 3, for example, the weighted prediction angle is weighted prediction angle 6 or weighted prediction angle 7, the starting position FirstPos of the weight transformation can be determined by the following formula: You can then determine the reference weights of the surrounding positions outside the current block using the following formula: The formula is given for a minimum reference weight value of 0, a maximum reference weight value of 8, and a weight conversion factor of 1, as an example, x can represent the index of surrounding positions outside the current block and ranges from 0 to ValidLength_W- 1.

[200] В приведенной выше формуле ValidLength_W и DeltaPos_W могут быть отнесены к условию 3 и здесь повторяться не будут.[200] In the above formula, ValidLength_W and DeltaPos_W can be attributed to condition 3 and will not be repeated here.

[201] Таким образом, можно определить, какое условие следует использовать, на основе subAngleIdx, например, в условиях 1 и 2 ValidLength_H и DeltaPos_H определяют на основе angleIdx и stepIdx, a FirstPos определяют на основе ValidLength_H и DeltaPos_H, и затем опорные весовые значения конфигурируют на основе FirstPos. В условиях 3 и 4 ValidLength-W и DeltaPos_W определяют на основе angleIdx и stepIdx, a FirstPos определяют на основе ValidLength_W и DeltaPos_W, и затем опорные весовые значения конфигурируют на основе FirstPos.[201] Thus, it is possible to determine which condition should be used based on subAngleIdx, for example, in conditions 1 and 2, ValidLength_H and DeltaPos_H are determined based on angleIdx and stepIdx, and FirstPos is determined based on ValidLength_H and DeltaPos_H, and then the reference weight values are configured based on FirstPos. In conditions 3 and 4, ValidLength-W and DeltaPos_W are determined based on angleIdx and stepIdx, and FirstPos are determined based on ValidLength_W and DeltaPos_W, and then the reference weights are configured based on FirstPos.

[202] Формулы вышеперечисленных условий отличаются следующим: когда в качестве начала координат используется левый верхний угол текущего блока, изменяется начальная позиция опорного весового значения ReferenceWeights[x]. Например, на Фиг. 7С показаны примеры угловой области 2 и угловой области 3. Когда используется точность 1/2 пикселя, начальная позиция опорного весового значения то есть смещение в формуле равно "- Угловая область 0 и угловая область 1 реализуются аналогичным образом, за исключением того, что смещение в формуле равно то есть высота изменяется на ширину.[202] The formulas of the above conditions differ as follows: when the upper left corner of the current block is used as the origin, the initial position of the reference weight value ReferenceWeights[x] is changed. For example, in FIG. 7C shows examples of corner region 2 and corner region 3. When 1/2 pixel precision is used, the starting position of the reference weight value that is, the offset in the formula is equal to "- Corner region 0 and corner region 1 are implemented in a similar way, except that the offset in the formula is equal to that is, the height changes by the width.

[203] На этапе а3 получают весовое значение яркости позиции пикселя на основе angleIdx и опорного весового значения ReferenceWeight[x].[203] In step a3, the brightness weight value of the pixel position is obtained based on angleIdx and the reference weight value ReferenceWeight[x].

[204] Условие 1: если значение subAngleIdx равно 0, весовое значение яркости позиции пикселя (х, у) можно определить по следующей формуле: где представляет собой окружающую позицию, указанную позицией пикселя (х, у), представляет опорное весовое значение окружающей позиции. Диапазон значений х составляет от 0 до М-1, а диапазон значений у составляет от 0 до N-1.[204] Condition 1: If the value of subAngleIdx is 0, the brightness weight value of the pixel position (x, y) can be determined by the following formula: Where represents the surrounding position indicated by the pixel position (x, y), represents the reference weight value of the surrounding position. The range of x values is from 0 to M-1, and the range of y values is from 0 to N-1.

[205] Условие 2: если значение subAngleIdx равно 1, весовое значение яркости позиции пикселя (х, у) можно определить по следующей формуле: где представляет окружающую позицию, указанную позицией пикселя (х, у), представляет опорное весовое значение окружающей позиции. Диапазон значений х составляет от 0 до М-1, а диапазон значений у составляет от 0 до N-1.[205] Condition 2: If the value of subAngleIdx is 1, the brightness weight value of the pixel position (x, y) can be determined by the following formula: Where represents the surrounding position indicated by the pixel position (x, y), represents the reference weight value of the surrounding position. The range of x values is from 0 to M-1, and the range of y values is from 0 to N-1.

[206] Условие 3: если значение subAngleIdx равно 2, весовое значение яркости позиции пикселя (х, у) можно определить по следующей формуле: где ( представляет собой окружающую позицию, указанную позицией пикселя (х, у), представляет опорное весовое значение окружающей позиции. Диапазон значений х составляет от 0 до М-1, а диапазон значений у составляет от 0 до N-1.[206] Condition 3: If the value of subAngleIdx is 2, the brightness weight value of the pixel position (x, y) can be determined by the following formula: Where ( represents the surrounding position indicated by the pixel position (x, y), represents the reference weight value of the surrounding position. The range of x values is from 0 to M-1, and the range of y values is from 0 to N-1.

[207] Условие 4: если значение subAngleIdx равно 3, весовое значение яркости позиции пикселя (х, у) можно определить по следующей формуле: где представляет окружающую позицию, указанную позицией пикселя (х, у), представляет опорное весовое значение окружающей позиции. Диапазон значений х составляет от 0 до М-1, а диапазон значений у составляет от 0 до N-1.[207] Condition 4: If the value of subAngleIdx is 3, the brightness weight value of the pixel position (x, y) can be determined by the following formula: Where represents the surrounding position indicated by the pixel position (x, y), represents the reference weight value of the surrounding position. The range of x values is from 0 to M-1, and the range of y values is from 0 to N-1.

[208] Вышеупомянутые этапы а2 и а3 могут быть объединены в один этап. Например, этап а2 (конфигурирование опорного весового значения для окружающих позиций за пределами текущего блока в соответствии с stepIdx, angleIdx и subAngleIdx) и этап а3 (получение весового значения яркости в соответствии с angleIdx и опорным весовым значением ReferenceWeight[x]) могут быть объединены следующим образом: получение весового значения яркости позиции пикселя в соответствии с stepIdx, angleIdx и subAngleIdx, т.е. определенного на основе значений координат окружающих позиций и значений координат начальной позиции преобразования весов.[208] The above steps a2 and a3 can be combined into one step. For example, step a2 (configuring a reference weight value for surrounding positions outside the current block according to stepIdx, angleIdx and subAngleIdx) and step a3 (obtaining a brightness weight value according to angleIdx and a reference weight value ReferenceWeight[x]) can be combined as follows way: getting the weight value of the brightness of the pixel position in accordance with stepIdx, angleIdx and subAngleIdx, i.e. determined based on the coordinate values of the surrounding positions and the coordinate values of the starting position of the weight transformation.

[209] Например, с условием 1, если значение subAngleIdx равно 0, то есть угол взвешенного предсказания находится в угловой области 0, например, угол взвешенного предсказания является углом 0 взвешенного предсказания или углом 1 взвешенного предсказания, начальная позиция FirstPos преобразования весов может быть определена по следующей формуле: Затем весовое значение яркости позиции пикселя (х, у) определяют по следующей формуле: где (у<<1)+((х<<1)>>angleIdx) представляет окружающую соответствующую позицию, указанную позицией пикселя (х, у). Другие условия аналогичны.[209] For example, with condition 1, if the value of subAngleIdx is 0, that is, the weighted prediction angle is in the 0 angle region, for example, the weighted prediction angle is weighted prediction angle 0 or weighted prediction angle 1, the starting position FirstPos of the weight transformation can be determined according to the following formula: Then the brightness weight value of the pixel position (x, y) is determined by the following formula: where (y<<1)+((x<<1)>>angleIdx) represents the surrounding corresponding position indicated by the pixel position (x, y). Other conditions are similar.

[210] На этапе а4 получают весовое значение цветности для позиции пикселя на основе весового значения яркости для позиции пикселя, а весовое значение яркости для позиции пикселя и весовое значение цветности для позиции пикселя могут формировать целевое весовое значение позиции пикселя.[210] In step a4, a chroma weight value for a pixel position is obtained based on a luminance weight value for a pixel position, and a luminance weight value for a pixel position and a chrominance weight value for a pixel position may form a target pixel position weight value.

[211] Например, если используется формат разрешения цветности 4:2:0, весовое значение цветности позиции пикселя (х, у) определяют по следующей формуле: В другом примере, если используется формат разрешения цветности 4:4:4, весовое значение цветности позиции пикселя (х, у) определяют по следующей формуле: Диапазон значений х составляет от 0 до М/2-1, а диапазон значений у составляет от 0 до N/2-1.[211] For example, if a 4:2:0 chroma resolution format is used, the chroma weight value of the pixel position (x, y) is determined by the following formula: In another example, if a 4:4:4 chroma resolution format is used, the pixel position (x, y) chroma weight is determined by the following formula: The range of x values is from 0 to M/2-1, and the range of y values is from 0 to N/2-1.

[212] Этап а4 может быть реализован другим способом: вместо получения весового значения цветности на основе весового значения яркости весовое значение цветности для позиции пикселя получают на основе angleIdx и опорного весового значения ReferenceWeight[x]. Например, если используется формат разрешения цветности 4:2:0, весовое значение цветности для позиции пикселя может быть получено на основе angleIdx и опорного весового значения ReferenceWeight[x].[212] Step a4 can be implemented in another way: instead of obtaining a chroma weight value based on a luma weight value, a chroma weight value for a pixel position is obtained based on angleIdx and a reference weight value ReferenceWeight[x]. For example, if a 4:2:0 chroma resolution format is used, the chroma weight value for a pixel position can be derived from angleIdx and a reference weight value ReferenceWeight[x].

[213] Например, если значение subAngleIdx равно 0, весовое значение цветности позиции пикселя (х, у) определяют по следующей формуле: [213] For example, if the value of subAngleIdx is 0, the chroma weight value of the pixel position (x, y) is determined by the following formula:

[214] Например, если значение subAngleIdx равно 1, весовое значение цветности позиции пикселя (х, у) определяют по следующей формуле: [214] For example, if the value of subAngleIdx is 1, the chromaticity weight value of the pixel position (x, y) is determined by the following formula:

[215] Например, если значение subAngleIdx равно 2, весовое значение цветности позиции пикселя (х, у) определяют по следующей формуле: [215] For example, if the value of subAngleIdx is 2, the chromaticity weight value of the pixel position (x, y) is determined by the following formula:

[216] Например, если значение subAngleIdx равно 3, весовое значение цветности позиции пикселя (х, у) определяют по следующей формуле: [216] For example, if the value of subAngleIdx is 3, the chromaticity weight value of the pixel position (x, y) is determined by the following formula:

[217] В приведенных выше формулах диапазон значений х составляет от 0 до М-1, а диапазон значений у составляет от 0 до N-1.[217] In the above formulas, the range of x is from 0 to M-1, and the range of y is from 0 to N-1.

[218] На этапах а3 и а4 формулы указанных условий отличаются следующим. На Фиг. 7D показаны примеры угловой области 2 и угловой области 3. Когда левый верхний угол текущего блока принят за начало координат, формула вычисления соответствующей позиции (х, у) в угловой области 2 может быть х-у>>angleIdx, а формула вычисления соответствующей позиции (х, у) в угловой области 3 может быть х+у>>angleIdx. Когда используется точность 1/2 пикселя, формула вычисления соответствующей позиции (х, у) в угловой области 2 может быть (х<<1) - (у<<1)>>angleIdx, и формула вычисления соответствующей позиции (х, у) в угловой области 3 может быть (х<<1)+(у<<1)>>angleIdx. Угловая область 0 и угловая область 1 могут быть реализованы аналогичным образом, за исключением того, что позиции (х, у) меняются местами.[218] At stages a3 and a4, the formulas for the specified conditions differ as follows. In FIG. 7D shows examples of corner region 2 and corner region 3. When the upper left corner of the current block is taken as the origin, the formula for calculating the corresponding position (x, y) in corner region 2 can be x-y>>angleIdx, and the calculation formula for the corresponding position ( x, y) in corner area 3 can be x+y>>angleIdx. When 1/2 pixel precision is used, the formula for calculating the corresponding position (x, y) in corner region 2 can be (x<<1) - (y<<1)>>angleIdx, and the formula for calculating the corresponding position (x, y) in corner region 3 there can be (x<<1)+(y<<1)>>angleIdx. Corner region 0 and corner region 1 can be implemented in a similar way, except that the positions (x, y) are swapped.

[219] Вариант 8 осуществления изобретения. В вариантах 1-3 осуществления изобретения сторона кодера или сторона декодера ожидает получить коэффициент преобразования весов текущего блока. Если текущий блок поддерживает режим переключения коэффициента преобразования весов, коэффициент преобразования весов текущего блока получают следующим образом: получение первой информации указания коэффициента преобразования весов для текущего блока и определение коэффициента преобразования весов текущего блока на основе первой информации указания коэффициента преобразования весов. Например, если первая информация указания коэффициента преобразования весов представляет собой первую информацию указания, коэффициент преобразования весов текущего блока является первым коэффициентом преобразования весов; а если первая информация указания коэффициента преобразования весов является второй информацией указания, коэффициент преобразования весов текущего блока является вторым коэффициентом преобразования весов. Если текущий блок не поддерживает режим переключения коэффициента преобразования весов, заранее заданный коэффициент преобразования весов определяют как коэффициент преобразования весов текущего блока. Первая информация указания коэффициента преобразования весов может быть получена из LCU, слайса, изображения, последовательности и т.п., где находится текущий блок. Например, первая информация указания коэффициента преобразования весов может быть информацией указания уровня изображения, такой как информация указания уровня PPS, информации указания уровня РН.[219] Embodiment 8 of the invention. In Embodiments 1 to 3, the encoder side or the decoder side expects to obtain the weight conversion coefficient of the current block. If the current block supports the weight conversion coefficient switching mode, the weight conversion coefficient of the current block is obtained as follows: obtaining the first weight conversion coefficient indication information for the current block, and determining the weight conversion coefficient of the current block based on the first weight conversion coefficient indication information. For example, if the first weight conversion coefficient indication information is the first indication information, the weight conversion coefficient of the current block is the first weight conversion coefficient; and if the first weight conversion factor indication information is the second indication information, the weight conversion factor of the current block is the second weight conversion factor. If the current block does not support the weight conversion coefficient switching mode, the predetermined weight conversion coefficient is determined as the weight conversion coefficient of the current block. The first weight conversion factor indication information may be obtained from the LCU, slice, image, sequence, etc., where the current block is located. For example, the first weight conversion coefficient indication information may be image level indication information, such as PPS level indication information, PH level indication information.

[220] Таким образом, если текущий блок поддерживает режим переключения коэффициента преобразования весов, коэффициент преобразования весов текущего блока может быть либо первым коэффициентом преобразования весов, либо вторым коэффициентом преобразования весов, и первый коэффициент преобразования весов отличается от второго коэффициента преобразования весов. Таким образом, коэффициент преобразования весов текущего блока является переменным, так что коэффициент преобразования весов может переключаться адаптивно вместо использования единого коэффициента преобразования весов.[220] Thus, if the current block supports a weight conversion coefficient switching mode, the weight transformation coefficient of the current block may be either a first weight transformation coefficient or a second weight transformation coefficient, and the first weight transformation coefficient is different from the second weight transformation coefficient. That is, the weight conversion factor of the current block is variable, so that the weight conversion factor can be switched adaptively instead of using a single weight conversion factor.

[221] Например, если информация управления переключением позволяет текущему блоку включить режим переключения коэффициента преобразования весов, текущий блок поддерживает режим переключения коэффициента преобразования весов, и если информация управления переключением не позволяет текущему блоку включить режим переключения коэффициента преобразования весов, текущий блок не поддерживает режим переключения коэффициента преобразования весов. Информация управления переключением может включать, не ограничиваясь этим, информацию управления переключением уровня последовательности, информацию управления переключением уровня изображения, информацию управления переключением уровня слайса, информацию управления переключением уровня тайла, информацию управления переключением уровня патча, информацию управления переключением уровня CTU, информацию управления переключением уровня LCU, информацию управления переключением уровня блока, информацию управления переключением уровня CU, информацию управления переключением уровня PU и т.д.[221] For example, if the switching control information allows the current block to enable the weight conversion factor switching mode, the current block supports the weight conversion factor switching mode, and if the switching control information does not allow the current block to enable the weight conversion factor switching mode, the current block does not support the switching mode weight conversion factor. The switching control information may include, but is not limited to, sequence level switching control information, picture level switching control information, slice level switching control information, tile level switching control information, patch level switching control information, CTU layer switching control information, layer switching control information. LCU, block level switching control information, CU level switching control information, PU level switching control information, etc.

[222] Стороне кодера может быть сообщена информация управления переключением и то, позволяет ли информация управления переключением включить текущему блоку режим переключения коэффициента преобразования весов, а затем определяет, поддерживает ли текущий блок режим переключения коэффициента преобразования весов. Сторона кодера может кодировать информацию управления переключением в битовый поток. Таким образом, сторона декодера может анализировать информацию управления переключением из битового потока, получать информацию о том, позволяет ли информация управления переключением включить текущему блоку режим переключения коэффициента преобразования весов, а затем определять, поддерживает ли текущий блок режим переключения коэффициента преобразования весов. Вместо того, чтобы кодировать информацию управления переключением в битовый поток на стороне кодера, сторона декодера может неявным образом получить информацию управления переключением, чтобы узнать, позволяет ли информация управления переключением включить текущему блоку режим переключения коэффициента преобразования весов, а затем определяет, поддерживает ли текущий блок режим переключения коэффициента преобразования весов.[222] The encoder side may be informed of the switching control information and whether the switching control information allows the current block to enable the weight conversion factor switching mode, and then determines whether the current block supports the weight conversion coefficient switching mode. The encoder side may encode the switching control information into a bit stream. That is, the decoder side can analyze the switching control information from the bit stream, obtain information about whether the switching control information allows the current block to enable the weight conversion factor switching mode, and then determine whether the current block supports the weight conversion factor switching mode. Instead of encoding the switching control information into a bit stream on the encoder side, the decoder side can implicitly obtain the switching control information to know whether the switching control information allows the current block to enable the weight conversion factor switching mode, and then determines whether the current block supports switching mode of the weight conversion coefficient.

[223] Возьмем в качестве примера информацию управления переключением уровня последовательности, информацией управления переключением уровня последовательности может быть awp_adptive_flag (бит флага адаптации углового внешнего взвешенного предсказания). Если awp_adptive_flag является первой величиной, это означает, что информация управления переключением уровня последовательности позволяет текущей последовательности включить режим переключения коэффициента преобразования весов, тем самым позволяя текущему блоку включить режим переключения коэффициента преобразования весов. Если awp_adptive_flag является второй величиной, это означает, что информация управления переключением уровня последовательности не позволяет текущей последовательности включить режим переключения коэффициента преобразования весов и, таким образом, не позволяет текущему блоку включить режим переключения коэффициента преобразования весов. Например, первая величина равна 1, а вторая величина равна 0, или первая величина равна 0, а вторая величина - величина 1. Выше приведены только примеры первой величины и второй величины, и на них нет никаких ограничений. Для других типов информации управления переключением процессы реализации аналогичны процессам реализации информации управления переключением уровня последовательности и здесь повторяться не будут.[223] Taking the sequence level switching control information as an example, the sequence level switching control information may be awp_adptive_flag (angular outer weighted prediction adaptation flag bit). If awp_adptive_flag is the first value, it means that the sequence level switching control information allows the current sequence to enable the weight conversion factor switching mode, thereby allowing the current block to enable the weight conversion factor switching mode. If awp_adptive_flag is the second value, it means that the sequence level switching control information prevents the current sequence from enabling the weight conversion factor switching mode and thus prevents the current block from enabling the weight conversion factor switching mode. For example, the first value is 1 and the second value is 0, or the first value is 0 and the second value is 1. The above are only examples of the first value and the second value, and there is no limitation on them. For other types of switching control information, the implementation processes are similar to the implementation processes of sequence level switching control information and will not be repeated here.

[224] В возможной реализации первая информация указания коэффициента преобразования весов в текущем блоке может быть идентификацией SCC (Screen Content Coding, кодирование экранного контента), соответствующей текущему блоку, первая информация указания предназначена для указания того, что текущий блок принадлежит кодированию экранного контента, а вторая информация указания предназначена для указания того, что текущий блок принадлежит кодированию неэкранного контента (non-SCC). На основе этого может быть получена идентификация SCC, соответствующая текущему блоку, и коэффициент преобразования весов текущего блока может быть определен на основе идентификации SCC. Например, если идентификация SCC предназначена для указания того, что текущий блок принадлежит SCC, коэффициент преобразования весов текущего блока является первым коэффициентом преобразования весов; и если идентификация SCC предназначена для указания того, что текущий блок принадлежит non-SCC, коэффициент преобразования весов текущего блока является вторым коэффициентом преобразования весов.[224] In an exemplary implementation, the first indication information of the weight conversion coefficient in the current block may be an SCC (Screen Content Coding) identification corresponding to the current block, the first indication information is for indicating that the current block belongs to a screen content coding, and the second indication information is for indicating that the current block belongs to non-screen content coding (non-SCC). Based on this, the SCC identification corresponding to the current block can be obtained, and the weight conversion factor of the current block can be determined based on the SCC identification. For example, if the SCC identification is to indicate that the current block belongs to the SCC, the weight conversion coefficient of the current block is the first weight conversion coefficient; and if the SCC identification is to indicate that the current block belongs to a non-SCC, the weight conversion coefficient of the current block is the second weight conversion coefficient.

[225] Например, абсолютное значение первого коэффициента преобразования весов может быть больше, чем абсолютное значение второго коэффициента преобразования весов. Например, абсолютное значение первого коэффициента преобразования весов может быть равно 4, а абсолютное значение второго коэффициента преобразования весов может быть равно 1 или 2. В другом примере абсолютное значение первого коэффициента преобразования весов может быть равно 2, а абсолютное значение второго коэффициента преобразования весов может быть равно 1. В другом примере абсолютное значение первого коэффициента преобразования весов может быть равно 8, а абсолютное значение второго коэффициента преобразования весов может быть равно 1, или 2, или 4. В другом примере, абсолютное значение первого коэффициента преобразования весов может быть равно 8 или 4, а абсолютное значение второго коэффициента преобразования весов может быть равно 1 или 2. Выше приведены только примеры, которые не накладывают никаких ограничений при условии, что абсолютное значение первого коэффициента преобразования весов больше, чем абсолютное значение второго коэффициента преобразования весов.[225] For example, the absolute value of the first weight conversion factor may be greater than the absolute value of the second weight conversion factor. For example, the absolute value of the first weights conversion factor may be 4, and the absolute value of the second weights conversion factor may be 1 or 2. In another example, the absolute value of the first weights conversion factor may be 2, and the absolute value of the second weights conversion factor may be is 1. In another example, the absolute value of the first weight conversion factor may be 8, and the absolute value of the second weight conversion factor may be 1, or 2, or 4. In another example, the absolute value of the first weight conversion factor may be 8 or 4, and the absolute value of the second weight conversion factor may be 1 or 2. The above are only examples that do not impose any restrictions, provided that the absolute value of the first weight conversion factor is greater than the absolute value of the second weight conversion factor.

[226] Например, идентификация SCC может включать, не ограничиваясь этим: идентификацию SCC уровня последовательности, идентификацию SCC уровня изображения, идентификацию SCC уровня слайса, идентификацию SCC уровня тайла, идентификацию SCC уровня патча, идентификацию SCC уровня CTU, идентификацию SCC уровня LCU, идентификацию SCC уровня блока, идентификацию SCC уровня CU, идентификацию SCC уровня PU и т.д., что не ограничивается здесь. Например, идентификация SCC уровня последовательности, соответствующая текущему блоку, может быть определена как идентификация SCC, соответствующая текущему блоку, или идентификация SCC уровня изображения, соответствующая текущему блоку, может быть определена как идентификация SCC, соответствующая текущему блоку, и т.д. при условии, что может быть получена идентификация SCC, соответствующая текущему блоку.[226] For example, SCC identification may include, but is not limited to: sequence level SCC identification, picture level SCC identification, slice level SCC identification, tile level SCC identification, patch level SCC identification, CTU level SCC identification, LCU level SCC identification, identification Block level SCC, CU level SCC identification, PU level SCC identification, etc., which are not limited here. For example, the sequence level SCC identification corresponding to the current block may be defined as the SCC identification corresponding to the current block, or the image level SCC identification corresponding to the current block may be defined as the SCC identification corresponding to the current block, etc. provided that the SCC identification corresponding to the current block can be obtained.

[227] Например, сторона кодера может определить, принадлежит ли текущий блок SCC или non-SCC. Если текущий блок принадлежит SCC, сторона кодера определяет коэффициент преобразования весов текущего блока как первый коэффициент преобразования весов. Если текущий блок принадлежит non-SCC, сторона кодера определяет коэффициент преобразования весов текущего блока как второй коэффициент преобразования весов. Опционально, для стороны кодера может быть получена идентификация SCC, соответствующая текущему блоку, и, если идентификация SCC предназначена для указания того, что текущий блок принадлежит SCC, сторона кодера определяет коэффициент преобразования весов текущего блока как первый коэффициент преобразования весов. Если идентификация SCC предназначена для указания того, что текущий блок принадлежит non-SCC, сторона кодера определяет коэффициент преобразования весов текущего блока как второй коэффициент преобразования весов.[227] For example, the encoder side can determine whether the current block belongs to SCC or non-SCC. If the current block belongs to the SCC, the encoder side determines the weight conversion coefficient of the current block as the first weight conversion coefficient. If the current block belongs to a non-SCC, the encoder side determines the weight conversion coefficient of the current block as the second weight conversion coefficient. Optionally, the SCC identification corresponding to the current block can be obtained for the encoder side, and if the SCC identification is to indicate that the current block belongs to the SCC, the encoder side determines the weight conversion coefficient of the current block as the first weight conversion coefficient. If the SCC identification is to indicate that the current block belongs to a non-SCC, the encoder side determines the weight conversion coefficient of the current block as the second weight conversion coefficient.

[228] Сторона кодера может кодировать идентификацию SCC (например, идентификацию SCC уровня последовательности, идентификацию SCC уровня изображения, идентификацию SCC уровня слайса и т.д.) в битовый поток. Таким образом, сторона декодера может анализировать идентификацию SCC из битового потока и определить идентификацию SCC как идентификацию SCC, соответствующую текущему блоку, например, идентификацию SCC уровня последовательности, соответствующую текущему блоку, можно определить как идентификацию SCC, соответствующую текущему блоку. Подводя итог, можно сказать, что стороне декодера может быть сообщена идентификация SCC, соответствующая текущему блоку. Если идентификация SCC предназначена для указания того, что текущий блок принадлежит SCC, сторона декодера определяет коэффициент преобразования весов текущего блока как первый коэффициент преобразования весов. Если идентификация SCC предназначена для указания того, что текущий блок принадлежит non-SCC, сторона декодера определяет коэффициент преобразования весов текущего блока как второй коэффициент преобразования весов. Например, если идентификация SCC представляет собой первую величину, она предназначена для указания того, что текущий блок принадлежит SCC, а если идентификация SCC представляет собой вторую величину, она предназначена для указания того, что текущий блок принадлежит non-SCC. Первая величина равна 1, а вторая величина равна 0, или первая величина равна 0, а вторая величина равна 1. Выше приведены только примеры первой величины и второй величины, и на них нет никаких ограничений.[228] The encoder side may encode the SCC identification (eg, sequence level SCC identification, picture level SCC identification, slice level SCC identification, etc.) into a bitstream. That is, the decoder side can analyze the SCC identification from the bit stream and determine the SCC identification as the SCC identification corresponding to the current block, for example, the sequence level SCC identification corresponding to the current block can be determined as the SCC identification corresponding to the current block. To summarize, the SCC identification corresponding to the current block may be reported to the decoder side. If the SCC identification is to indicate that the current block belongs to the SCC, the decoder side determines the weight conversion coefficient of the current block as the first weight conversion coefficient. If the SCC identification is to indicate that the current block belongs to a non-SCC, the decoder side determines the weight conversion coefficient of the current block as the second weight conversion coefficient. For example, if the SCC identification is a first value, it is intended to indicate that the current block belongs to an SCC, and if the SCC identification is a second value, it is intended to indicate that the current block belongs to a non-SCC. The first value is 1 and the second value is 0, or the first value is 0 and the second value is 1. The above are only examples of the first value and the second value, and there are no restrictions on them.

[229] Вместо того чтобы кодировать идентификацию SCC в битовый поток, сторона кодера может неявным образом получить идентификацию SCC, используя ту же информацию, что и сторона декодера. Таким образом, сторона декодера также может неявным образом получить идентификацию SCC и определить идентификацию SCC как идентификацию SCC, соответствующую текущему блоку. Например, если все несколько последовательных изображений используют SCC, может быть получено текущее изображение с использованием SCC, поэтому сторона декодера неявным образом выводит идентификацию SCC уровня изображения и определяет идентификацию SCC как идентификацию SCC, соответствующую текущему блоку, и идентификация SCC предназначена для указания того, что текущий блок принадлежит SCC. Например, если несколько последовательных изображений используются как non-SCC, может быть получено текущее изображение non-SCC, таким образом, сторона декодера неявно выводит идентификацию SCC уровня изображения, и идентификация SCC предназначена для указания того, что текущий блок принадлежит non-SCC. Например, если доля режима IBC среди всех выбранных режимов в текущем изображении меньше определенного процента, следующее изображение определяют как non-SCC, в противном случае следующее изображение определяют как SCC. Описанные выше способы являются только примерами неявного получения идентификации SCC, и нет никаких ограничений на неявные способы получения. Подводя итог, можно сказать, что сторона декодера может получить идентификацию SCC, соответствующую текущему блоку. Если идентификация SCC предназначена для указания того, что текущий блок принадлежит кодированию экранного контента, сторона декодера определяет коэффициент преобразования весов текущего блока как первый коэффициент преобразования весов. Если идентификация SCC предназначена для указания того, что текущий блок принадлежит кодированию неэкранного содержимого, сторона декодера определяет коэффициент преобразования весов текущего блока как второй коэффициент преобразования весов. Например, если идентификация SCC представляет собой первую величину, она предназначена для указания того, что текущий блок принадлежит SCC, а если идентификация SCC представляет собой вторую величину, она предназначена для указания того, что текущий блок принадлежит non-SCC.[229] Instead of encoding the SCC identification into a bitstream, the encoder side can implicitly obtain the SCC identification using the same information as the decoder side. Thus, the decoder side can also implicitly obtain the SCC identification and determine the SCC identification as the SCC identification corresponding to the current block. For example, if several consecutive pictures all use SCC, the current picture can be obtained using SCC, so the decoder side implicitly outputs the SCC identification of the picture layer and defines the SCC identification as the SCC identification corresponding to the current block, and the SCC identification is intended to indicate that the current block belongs to SCC. For example, if several consecutive pictures are used as non-SCC, the current non-SCC picture can be obtained, thus the decoder side implicitly outputs the SCC identification of the picture layer, and the SCC identification is intended to indicate that the current block belongs to the non-SCC. For example, if the proportion of the IBC mode among all selected modes in the current picture is less than a certain percentage, the next picture is determined to be non-SCC, otherwise the next picture is determined to be SCC. The methods described above are only examples of implicit acquisition of SCC identification, and there are no restrictions on implicit acquisition methods. To summarize, the decoder side can obtain the SCC identification corresponding to the current block. If the SCC identification is to indicate that the current block belongs to screen content encoding, the decoder side determines the weight conversion coefficient of the current block as the first weight conversion coefficient. If the SCC identification is to indicate that the current block belongs to non-screen content encoding, the decoder side determines the weight conversion coefficient of the current block as the second weight conversion coefficient. For example, if the SCC identification is a first value, it is intended to indicate that the current block belongs to an SCC, and if the SCC identification is a second value, it is intended to indicate that the current block belongs to a non-SCC.

[230] Таким образом, коэффициент преобразования весов текущего блока может быть первым коэффициентом преобразования весов или вторым коэффициентом преобразования весов. То есть коэффициент преобразования весов текущего блока может переключаться, и переключение коэффициента преобразования весов зависит от явной идентификации SCC или неявной идентификации SCC определенного уровня. Явная идентификация SCC означает, что scc_flag (идентификация SCC) кодируется в битовом потоке, так что сторона декодера анализирует идентификацию SCC из битового потока, а неявная идентификация SCC означает, что сторона декодера адаптивно получает идентификацию SCC на основе информации, доступной стороне декодера.[230] Thus, the weight conversion factor of the current block may be a first weight conversion factor or a second weight conversion factor. That is, the weight conversion factor of the current block can be switched, and the switching of the weight conversion factor depends on the explicit identification of the SCC or the implicit identification of the SCC of a certain level. Explicit SCC identification means that the scc_flag (SCC identification) is encoded in the bitstream so that the decoder side parses the SCC identification from the bitstream, and implicit SCC identification means that the decoder side adaptively obtains the SCC identification based on the information available to the decoder side.

[231] Идентификация SCC определенного уровня включает: идентификацию SCC уровня последовательности для указания текущей последовательности, которая используется в качестве идентификации SCC всех блоков, принадлежащих текущей последовательности; идентификацию SCC уровня изображения для указания текущего изображения, которая используется в качестве идентификации SCC всех блоков, принадлежащих текущему изображению; идентификацию SCC уровня слайса для указания текущего слайса, которая используется в качестве идентификации SCC всех блоков, принадлежащих текущему слайсу; идентификацию SCC уровня тайла для указания текущего тайла, которая используется в качестве идентификации SCC всех блоков, принадлежащих текущему тайлу; идентификацию SCC уровня патча для указания текущего патча, которая используется в качестве идентификации SCC всех блоков, принадлежащих текущему патчу; идентификацию SCC уровня CTU для указания текущей CTU, которая используется в качестве идентификации SCC всех блоков, принадлежащих текущей CTU; идентификацию SCC уровня LCU для указания текущей LCU, которая используется в качестве идентификации SCC всех блоков, принадлежащих текущей LCU; идентификацию SCC уровня блока для указания текущего блока, которая используется в качестве идентификации SCC всех блоков, принадлежащих текущему блоку; идентификацию SCC уровня CU для указания текущей CU, которая используется в качестве идентификации SCC, принадлежащей текущей CU; и идентификацию SCC уровня PU для указания текущей PU, которая используется в качестве идентификации SCC, принадлежащей текущей PU.[231] Specific level SCC identification includes: sequence level SCC identification to indicate the current sequence, which is used as the SCC identification of all blocks belonging to the current sequence; a picture level identification SCC for indicating the current picture, which is used as the SCC identification of all blocks belonging to the current picture; a slice level SCC identification to indicate the current slice, which is used as the SCC identification of all blocks belonging to the current slice; a tile-level SCC identification for indicating the current tile, which is used as the SCC identification of all blocks belonging to the current tile; a patch level SCC identification for indicating the current patch, which is used as the SCC identification of all blocks belonging to the current patch; a CTU level SCC identification to indicate the current CTU, which is used as the SCC identification of all blocks belonging to the current CTU; an LCU layer SCC identification to indicate the current LCU, which is used as the SCC identification of all blocks belonging to the current LCU; a block level SCC identification for indicating the current block, which is used as the SCC identification of all blocks belonging to the current block; a CU-level SCC identification to indicate the current CU, which is used as the identification of an SCC belonging to the current CU; and a PU layer SCC identification to indicate the current PU, which is used as the identification of an SCC belonging to the current PU.

[232] Например, второй коэффициент преобразования весов может использоваться как коэффициент преобразования весов по умолчанию, и нет необходимости переключать коэффициент преобразования весов, когда идентификация SCC предназначена для указания того, что текущий блок принадлежит non-SCC, т.е. коэффициент преобразования весов текущего блока определяется как второй коэффициент преобразования весов. Когда идентификация SCC предназначена для указания того, что текущий блок принадлежит SCC, ожидается, что коэффициент преобразования весов будет переключен, то есть коэффициент преобразования весов текущего блока определяют как первый коэффициент преобразования весов. Опционально, первый коэффициент преобразования весов может использоваться в качестве коэффициента преобразования весов по умолчанию, и ожидается, что коэффициент преобразования весов будет переключен, когда идентификация SCC предназначена для указания того, что текущий блок принадлежит non-SCC, то есть коэффициент преобразования весов текущего блока определяют как второй коэффициент преобразования весов. Когда идентификация SCC предназначена для указания того, что текущий блок принадлежит SCC, нет необходимости переключать коэффициент преобразования весов, то есть коэффициент преобразования весов текущего блока определяют как первый коэффициент преобразования весов.[232] For example, the second weight conversion factor can be used as the default weight conversion factor, and there is no need to switch the weight conversion factor when the SCC identification is intended to indicate that the current block belongs to a non-SCC, i.e. the current block's weight conversion factor is defined as the second weight conversion factor. When the SCC identification is to indicate that the current block belongs to the SCC, the weight conversion coefficient is expected to be switched, that is, the weight conversion coefficient of the current block is determined as the first weight conversion coefficient. Optionally, the first weight conversion factor can be used as the default weight conversion factor, and it is expected that the weight conversion factor will be switched when the SCC identification is to indicate that the current block belongs to a non-SCC, that is, the weight conversion factor of the current block is determined as the second weight conversion factor. When the SCC identification is to indicate that the current block belongs to the SCC, there is no need to switch the weight conversion factor, that is, the weight conversion factor of the current block is determined as the first weight conversion factor.

[233] Например, на Фиг. 8А показана схематическая диаграмма последовательности SCC (например, последовательности, принадлежащей SCC). На Фиг. 8В проиллюстрирована схематическая диаграмма натуральной последовательности (например, последовательности, принадлежащей non-SCC). Для последовательностей SCC изменение цвета завершается после одного пикселя, в то время как для натуральных последовательностей изменение цвета занимает переход в несколько пикселей. Подводя итог, можно видеть, что последовательности SCC обычно имеют такие характеристики, как постоянный цвет на больших участках и быстрое изменение цвета, и взвешенное предсказание для последовательностей SCC также должно адаптироваться к таким характеристикам. Следовательно, весовое значение режима AWP должно уменьшить характеристики плавного перехода, то есть коэффициент преобразования весов должен быть увеличен, чтобы адаптироваться к характеристикам последовательностей SCC. Таким образом, когда текущий блок принадлежит SCC, коэффициент преобразования весов текущего блока является первым коэффициентом преобразования весов, а когда текущий блок принадлежит non-SCC, коэффициент преобразования весов текущего блока является вторым коэффициентом преобразования весов, при этом абсолютное значение первого коэффициента преобразования весов больше, чем абсолютное значение второго коэффициента преобразования весов. Например, абсолютное значение первого коэффициента преобразования весов равно 4, а абсолютное значение второго коэффициента преобразования весов равно 1. Таким образом, увеличивается абсолютное значение коэффициента преобразования весов текущего блока, принадлежащего последовательности SCC, то есть увеличивается скорость преобразования. Например, увеличение эффективности (например, увеличение эффективности по коэффициенту BD) при фактической проверке для последовательности SCC показано в Таблице 3, где представлено увеличение эффективности при переключении коэффициента преобразования весов с 1 на 4. Как показано в Таблице 3, для компонента канала Y последовательности SCC 1 может быть получено увеличение эффективности по коэффициенту BD на -1,83% при переключении коэффициента преобразования весов с 1 на 4, что эквивалентно при тех же объективных условиях качества уменьшению скорости кодирования на 1,83% при переключении коэффициента преобразования весов. Для компонента канала U последовательности 1 SCC скорость кодирования может быть снижена на 1,19% при переключении коэффициента преобразования весов с 1 на 4, а для компонента канала V последовательности 1 SCC скорость кодирования может быть снижена на 1,05% при переключении коэффициента преобразования весов с 1 на 4. Когда коэффициент преобразования весов переключается с 1 на 4, сложность кодирования на стороне кодера остается неизменной, а сложность декодирования на стороне декодера увеличивается до 101%. Для других последовательностей SCC скорость кодирования также может быть снижена, когда коэффициент преобразования весов переключается с 1 на 4. Таким образом, увеличение эффективности может быть больше.[233] For example, in FIG. 8A is a schematic diagram of an SCC sequence (eg, a sequence belonging to the SCC). In FIG. 8B illustrates a schematic diagram of a natural sequence (eg, a sequence belonging to a non-SCC). For SCC sequences, the color change is completed after one pixel, while for natural sequences, the color change takes a transition of several pixels. To summarize, it can be seen that SCC sequences typically have characteristics such as constant color over large areas and rapid color changes, and weighted prediction for SCC sequences must also adapt to such characteristics. Therefore, the weight value of the AWP mode should reduce the smooth transition characteristics, that is, the weight conversion factor should be increased to adapt to the characteristics of SCC sequences. Thus, when the current block belongs to SCC, the current block's weight conversion factor is the first weight conversion factor, and when the current block belongs to a non-SCC, the current block's weight conversion factor is the second weight conversion factor, and the absolute value of the first weight conversion factor is greater than, than the absolute value of the second weight conversion factor. For example, the absolute value of the first weight conversion coefficient is 4, and the absolute value of the second weight conversion coefficient is 1. Thus, the absolute value of the weight conversion coefficient of the current block belonging to the SCC sequence is increased, that is, the conversion speed is increased. For example, the increase in efficiency (e.g., increase in efficiency by BD factor) in actual verification for the SCC sequence is shown in Table 3, which shows the increase in efficiency when switching the weight conversion factor from 1 to 4. As shown in Table 3, for the Y channel component of the SCC sequence 1, an efficiency increase in the BD coefficient of -1.83% can be obtained when switching the weight conversion factor from 1 to 4, which is equivalent, under the same objective quality conditions, to a 1.83% decrease in the encoding rate when switching the weight conversion factor. For the U channel component of SCC sequence 1, the encoding rate can be reduced by 1.19% when switching the weight conversion factor from 1 to 4, and for the V channel component of SCC sequence 1, the coding rate can be reduced by 1.05% when switching the weight conversion factor from 1 to 4. When the weight conversion factor is switched from 1 to 4, the encoding complexity on the encoder side remains unchanged, and the decoding complexity on the decoder side increases to 101%. For other SCC sequences, the encoding rate may also be reduced when the weight conversion factor is switched from 1 to 4. Thus, the increase in efficiency may be greater.

[234] В другой возможной реализации первая информация указания коэффициента преобразования весов в текущем блоке может быть идентификацией переключения коэффициента преобразования весов, соответствующей текущему блоку, при этом первая информация указания предназначена для указания того, что текущий блок не требует переключения коэффициента преобразования весов, а вторая информация указания предназначена для указания того, что текущий блок требует переключения коэффициента преобразования весов. На основе этого может быть получена идентификация переключения коэффициента преобразования весов, соответствующая текущему блоку, и коэффициент преобразования весов текущего блока может быть определен в соответствии с идентификацией переключения коэффициента преобразования весов. Например, если идентификация переключения коэффициента преобразования весов предназначена для указания того, что текущий блок не требует переключения коэффициента преобразования весов, коэффициент преобразования весов текущего блока может быть первым коэффициентом преобразования весов. Если идентификация переключения коэффициента преобразования весов предназначена для указания того, что текущий блок требует переключения коэффициента преобразования весов, коэффициент преобразования весов текущего блока может быть вторым коэффициентом преобразования весов. Абсолютное значение первого коэффициента преобразования весов не равно абсолютному значению второго коэффициента преобразования весов. Например, абсолютное значение первого коэффициента преобразования весов может быть больше, чем абсолютное значение второго коэффициента преобразования весов. Например, абсолютное значение первого коэффициента преобразования весов может быть равно 4, а абсолютное значение второго коэффициента преобразования весов может быть равно 1 или 2. Альтернативно, абсолютное значение первого коэффициента преобразования весов может быть равно 2, а абсолютное значение второго коэффициента преобразования весов может быть равно 1. Альтернативно, абсолютное значение первого коэффициента преобразования весов может быть равно 8, а абсолютное значение второго коэффициента преобразования весов может быть равно 1, 2 или 4. В другом примере абсолютное значение первого коэффициента преобразования весов может быть меньше, чем абсолютное значение второго коэффициента преобразования весов. Например, абсолютное значение первого коэффициента преобразования весов может быть равно 1, а абсолютное значение второго коэффициента преобразования весов может быть равно 2, 4 или 8. Альтернативно, абсолютное значение первого коэффициента преобразования весов может быть равно 2, а абсолютное значение второго коэффициента преобразования весов может быть равно 4 или 8. Альтернативно, абсолютное значение первого коэффициента преобразования весов может быть равно 4, а абсолютное значение второго коэффициента преобразования весов может быть равно 8. Выше приведены только примеры, и не накладываются ограничения при условии, что абсолютное значение первого коэффициента преобразования весов не равно абсолютному значению второго коэффициента преобразования весов.[234] In another possible implementation, the first weight conversion factor indication information in the current block may be a weight conversion factor switching identification corresponding to the current block, wherein the first indication information is for indicating that the current block does not require weight conversion factor switching, and the second indication information is intended to indicate that the current block requires switching the weight conversion factor. Based on this, the weight conversion coefficient switching identification corresponding to the current block can be obtained, and the weight conversion coefficient of the current block can be determined in accordance with the weight conversion coefficient switching identification. For example, if the weight conversion factor switching identification is to indicate that the current block does not require a weight conversion factor switching, the weight conversion factor of the current block may be the first weight conversion factor. If the weight conversion factor switching identification is to indicate that the current block requires a weight conversion factor switching, the weight conversion factor of the current block may be a second weight conversion factor. The absolute value of the first weight conversion factor is not equal to the absolute value of the second weight conversion factor. For example, the absolute value of the first weight conversion factor may be greater than the absolute value of the second weight conversion factor. For example, the absolute value of the first weights conversion factor may be 4, and the absolute value of the second weights conversion factor may be 1 or 2. Alternatively, the absolute value of the first weights conversion factor may be 2, and the absolute value of the second weights conversion factor may be 1. Alternatively, the absolute value of the first weight conversion factor may be 8, and the absolute value of the second weight conversion factor may be 1, 2, or 4. In another example, the absolute value of the first weight conversion factor may be less than the absolute value of the second conversion factor scales For example, the absolute value of the first weight conversion factor may be 1, and the absolute value of the second weight conversion factor may be 2, 4, or 8. Alternatively, the absolute value of the first weight conversion factor may be 2, and the absolute value of the second weight conversion factor may be be equal to 4 or 8. Alternatively, the absolute value of the first weight conversion factor may be equal to 4, and the absolute value of the second weight conversion factor may be equal to 8. The above are examples only and no limitation is imposed provided that the absolute value of the first weight conversion factor is not equal to the absolute value of the second weight conversion coefficient.

[235] Например, идентификация переключения коэффициента преобразования весов может включать, не ограничиваясь этим, идентификацию переключения коэффициента преобразования весов уровня последовательности, идентификацию переключения коэффициента преобразования весов уровня изображения, идентификацию переключения коэффициента преобразования весов уровня слайса, идентификацию переключения коэффициента преобразования весов уровня тайла, идентификацию переключения коэффициента преобразования весов уровня патча, идентификацию переключения коэффициента преобразования весов уровня CTU, идентификацию переключения коэффициента преобразования весов уровня LCU, идентификацию переключения коэффициента преобразования весов уровня блока, идентификацию переключения коэффициента преобразования весов уровня CU, идентификацию переключения коэффициента преобразования весов уровня PU, и т.д., что здесь не ограничено.[235] For example, identifying a weight conversion factor switching may include, but is not limited to, identifying a sequence-level weights conversion factor switching, identifying a picture-level weights conversion factor switching, identifying a slice-level weights conversion factor switching, identifying a tile-level weights conversion factor switching, identifying patch level weights conversion factor switching identification, CTU level weights conversion factor switching identification, LCU level weights conversion factor switching identification, block level weights conversion factor switching identification, CU level weights conversion factor switching identification, PU level weights conversion factor switching identification, etc. etc., which is not limited here.

[236] Например, идентификация переключения коэффициента преобразования весов уровня последовательности, соответствующая текущему блоку, может быть определена как идентификация переключения коэффициента преобразования весов, соответствующая текущему блоку, или идентификация переключения коэффициента преобразования весов уровня изображения, соответствующая текущему блоку, может быть определена как идентификация переключения коэффициента преобразования весов, соответствующая текущему блоку, и т.д., при условии, что можно получить идентификацию переключения коэффициента преобразования весов, соответствующую текущему блоку.[236] For example, the sequence-level weights conversion coefficient switching identification corresponding to the current block may be defined as the weights conversion coefficient switching identification corresponding to the current block, or the image-level weights conversion coefficient switching identification corresponding to the current block may be defined as the switching identification the weight conversion coefficient corresponding to the current block, etc., provided that the weight conversion coefficient switching identification corresponding to the current block can be obtained.

[237] Например, первый коэффициент преобразования весов может использоваться как коэффициент преобразования весов по умолчанию, и сторона кодера может быть проинформирована о том, требует ли текущий блок переключения коэффициента преобразования весов. Если текущий блок не требует переключения коэффициента преобразования весов, сторона кодера определяет коэффициент преобразования весов текущего блока в качестве первого коэффициента преобразования весов. Если текущий блок требует переключения коэффициента преобразования весов, сторона кодера определяет коэффициент преобразования весов текущего блока как второй коэффициент преобразования весов. Опционально, стороне кодера может быть сообщена идентификация переключения коэффициента преобразования весов, соответствующая текущему блоку, и, если идентификация переключения коэффициента преобразования весов предназначена для указания того, что текущий блок не требует переключения коэффициента преобразования весов, сторона кодера может определить, что коэффициент преобразования весов текущего блока является первым коэффициентом преобразования весов. Если идентификация переключения коэффициента преобразования весов предназначена для указания того, что текущий блок требует переключения коэффициента преобразования весов, сторона кодера определяет, что коэффициент преобразования весов текущего блока является вторым коэффициентом преобразования весов.[237] For example, the first weight conversion factor may be used as the default weight conversion factor, and the encoder side may be informed whether the current switch block requires a weight conversion factor. If the current block does not require switching the weight conversion factor, the encoder side determines the weight conversion factor of the current block as the first weight conversion factor. If the current block requires switching the weight conversion factor, the encoder side determines the current block's weight conversion factor as the second weight conversion factor. Optionally, the encoder side may be informed of a weight conversion factor switching identification corresponding to the current block, and if the weight conversion factor switching identification is intended to indicate that the current block does not require a weight conversion factor switching, the encoder side may determine that the weight conversion factor of the current block is the first weight conversion factor. If the weight conversion factor switching identification is to indicate that the current block requires a weight conversion factor switching, the encoder side determines that the weight conversion factor of the current block is the second weight conversion factor.

[238] Например, сторона кодера определяет значение 1 стоимости RDO, соответствующее первому коэффициенту преобразования весов, и значение 2 стоимости RDO, соответствующее второму коэффициенту преобразования весов. Если значение 1 стоимости RDO меньше значения 2 стоимости RDO, сторона кодера определяет текущий блок, не требующий переключения коэффициента преобразования весов, и если значение 2 стоимости RDO меньше значения 1 стоимости RDO, сторона кодера определяет текущий блок, требующий переключения коэффициента преобразования весов.[238] For example, the encoder side determines an RDO cost value 1 corresponding to the first weight conversion factor and an RDO cost value 2 corresponding to the second weight conversion factor. If RDO cost value 1 is less than RDO cost value 2, the encoder side determines a current block that does not require weight conversion factor switching, and if RDO cost value 2 is less than RDO cost value 1, the encoder side determines a current block that requires weight conversion factor switching.

[239] Сторона кодера может кодировать идентификацию переключения коэффициента преобразования весов (например, идентификацию переключения коэффициента преобразования весов уровня последовательности и т.д.) в битовый поток, заставляя сторону декодера анализировать идентификацию переключения коэффициента преобразования весов из битового потока и определять эту идентификацию переключения коэффициента преобразования весов как идентификацию переключения коэффициента преобразования весов, соответствующую текущему блоку. Таким образом, стороне декодера может быть сообщена идентификация переключения коэффициента преобразования весов, соответствующая текущему блоку. Если эта идентификация переключения коэффициента преобразования весов предназначена для указания того, что текущий блок не требует переключения коэффициента преобразования весов, сторона декодера определяет коэффициент преобразования весов текущего блока как первый коэффициент преобразования весов. Если идентификация переключения коэффициента преобразования весов предназначена для указания того, что текущий блок требует переключения коэффициента преобразования весов, сторона декодера определяет, что коэффициент преобразования весов текущего блока является вторым коэффициентом преобразования весов. Например, если идентификация переключения коэффициента преобразования весов является первой величиной, это указывает на то, что текущий блок не требует переключения коэффициента преобразования весов, а если идентификация переключения коэффициента преобразования весов является второй величиной, это указывает на то, что текущий блок требует переключения коэффициента преобразования весов. Первая величина равна 1, а вторая величина равна 0, или первая величина равна 0, а вторая величина равна 1. Выше приведены только примеры первой величины и второй величины, и на это нет никаких ограничений.[239] The encoder side may encode the weight conversion coefficient switching identification (eg, the sequence-level weights conversion coefficient switching identification, etc.) into the bitstream, causing the decoder side to analyze the weights conversion coefficient switching identification from the bitstream and determine this coefficient switching identification. weight conversion as the weight conversion coefficient switching identification corresponding to the current block. Thus, the weight conversion coefficient switching identification corresponding to the current block can be communicated to the decoder side. If this weight conversion coefficient switching identification is to indicate that the current block does not require weight conversion coefficient switching, the decoder side determines the weight conversion coefficient of the current block as the first weight conversion coefficient. If the weight conversion coefficient switching identification is to indicate that the current block requires a weight conversion coefficient switching, the decoder side determines that the weight conversion coefficient of the current block is the second weight conversion coefficient. For example, if the weight conversion factor switching identification is the first value, it indicates that the current block does not require a weight conversion factor switching, and if the weight conversion factor switching identification is the second value, it indicates that the current block requires a conversion factor switching scales The first value is 1 and the second value is 0, or the first value is 0 and the second value is 1. The above is only an example of the first value and the second value, and there is no limitation on it.

[240] Вместо того чтобы кодировать идентификацию переключения коэффициента преобразования весов в битовый поток на стороне кодера, сторона декодера может неявным образом получить идентификацию переключения коэффициента преобразования весов и определить эту идентификацию переключения коэффициента преобразования весов как идентификацию переключения коэффициента преобразования весов, соответствующую текущему блоку. Например, если все несколько последовательных блоков требуют переключения коэффициента преобразования весов, текущий блок также может потребовать переключения коэффициента преобразования весов. Таким образом, сторона декодера неявным образом выводит идентификацию переключения коэффициента преобразования весов и определяет идентификацию переключения коэффициента преобразования весов как идентификацию переключения коэффициента преобразования весов, соответствующую текущему блоку, и идентификация переключения коэффициента преобразования весов указывает на то, что текущий блок требует переключения коэффициента преобразования весов. Если все несколько последовательных блоков не требуют переключения коэффициента преобразования весов, текущий блок также может не требовать переключения коэффициента преобразования весов. Таким образом, сторона декодера неявным образом выводит идентификацию переключения коэффициента преобразования весов, и идентификация переключения коэффициента преобразования весов указывает на то, что текущий блок не требует переключения коэффициента преобразования весов. Описанные выше способы являются только примерами неявного получения идентификации переключения коэффициента преобразования весов, и нет никаких ограничений на способы получения. Таким образом, стороне декодера может быть сообщена идентификация переключения коэффициента преобразования весов, соответствующая текущему блоку. Если идентификация переключения коэффициента преобразования весов указывает на то, что текущий блок не требует переключения коэффициента преобразования весов, коэффициент преобразования весов текущего блока определяют как первый коэффициент преобразования весов. Если идентификация переключения коэффициента преобразования весов указывает на то, что текущий блок требует переключения коэффициента преобразования весов, коэффициент преобразования весов текущего блока определяют как второй коэффициент преобразования весов.[240] Instead of encoding the weight conversion factor switching identification into the bitstream at the encoder side, the decoder side may implicitly obtain the weight conversion factor switching identification and define this weight conversion factor switching identification as the weight conversion factor switching identification corresponding to the current block. For example, if several consecutive blocks all require a weight conversion factor switch, the current block may also require a weight conversion factor switch. That is, the decoder side implicitly outputs the weight conversion factor switching identification and determines the weight conversion factor switching identification as the weight conversion factor switching identification corresponding to the current block, and the weight conversion factor switching identification indicates that the current block requires weight conversion factor switching. If all multiple consecutive blocks do not require a weight conversion factor switch, the current block may also not require a weight conversion factor switch. Thus, the decoder side implicitly outputs the weight conversion factor switching identification, and the weight conversion factor switching identification indicates that the current block does not require weight conversion factor switching. The methods described above are only examples of implicitly obtaining the weight conversion coefficient switching identification, and there are no restrictions on the acquisition methods. Thus, the weight conversion coefficient switching identification corresponding to the current block can be communicated to the decoder side. If the weight conversion factor switching identification indicates that the current block does not require weight conversion factor switching, the weight conversion factor of the current block is determined as the first weight conversion factor. If the weight conversion factor switching identification indicates that the current block requires a weight conversion factor switching, the weight conversion factor of the current block is determined as the second weight conversion factor.

[241] Таким образом, коэффициент преобразования весов текущего блока может быть первым коэффициентом преобразования весов или вторым коэффициентом преобразования весов, то есть коэффициент преобразования весов текущего блока может переключаться, а переключение коэффициента преобразования весов зависит от идентификации переключения коэффициента преобразования весов (refine_flag) определенного уровня, refine_flag может быть явной или неявной идентификацией. Явная идентификация означает, что refine_flag кодируют в битовом потоке, заставляя сторону декодера анализировать refine_flag из битового потока, а неявная идентификация означает, что сторона кодера и сторона декодера адаптивно получают refine_flag на основе информации, которая может быть получена.[241] Thus, the weight refine factor of the current block may be the first weight refashion factor or the second weight refashion factor, that is, the weight refine factor of the current block may be switched, and the switching of the weight refashion factor depends on the switch identification of the weight refine_flag of a certain level , refine_flag can be an explicit or implicit identification. Explicit identification means that the refine_flag is encoded in the bit stream, causing the decoder side to parse the refine_flag from the bit stream, and implicit identification means that the encoder side and the decoder side adaptively obtain the refine_flag based on the information that can be obtained.

[242] Например, refine_flag определенного уровня включает: refine_flag уровня последовательности для указания текущей последовательности, который используется в качестве refine_flag для всех блоков, принадлежащих текущей последовательности; refine_flag уровня изображения для указания текущего изображения, который используется в качестве refine_flag всех блоков, принадлежащих текущему изображению; refine_flag уровня слайса для указания текущего слайса, который используется в качестве refine_flag всех блоков, принадлежащих текущему слайсу; refine_flag уровня тайла для указания текущего тайла, который используется в качестве refine_flag всех блоков, принадлежащих текущему тайлу; refine_flag уровня патча для указания текущего патча, который используется в качестве refine_flag всех блоков, принадлежащих текущему патчу; refine_flag уровня CTU для указания текущей CTU, который используется в качестве refine_flag для всех блоков, принадлежащих текущей CTU; refine_flag уровня LCU для указания текущей LCU, который используется в качестве refine_flag для всех блоков, принадлежащих текущей LCU; refine_flag уровня блока для указания текущего блока, который используется в качестве refine_flag всех блоков, принадлежащих текущему блоку; refine_flag уровня CU для указания текущей CU, который используется в качестве refine_flag, принадлежащего текущей CU; и refine_flag уровня PU для указания текущей PU, который используется в качестве refine_flag, принадлежащего текущей PU. Выше приведены лишь примеры, и здесь нет никаких ограничений.[242] For example, a specific level refine_flag includes: a sequence level refine_flag to indicate the current sequence, which is used as the refine_flag for all blocks belonging to the current sequence; image level refine_flag to indicate the current image, which is used as the refine_flag of all blocks belonging to the current image; slice-level refine_flag to indicate the current slice, which is used as the refine_flag of all blocks belonging to the current slice; tile-level refine_flag to indicate the current tile, which is used as the refine_flag of all blocks belonging to the current tile; patch level refine_flag to indicate the current patch, which is used as the refine_flag of all blocks belonging to the current patch; CTU level refine_flag to indicate the current CTU, which is used as the refine_flag for all blocks belonging to the current CTU; LCU level refine_flag to indicate the current LCU, which is used as the refine_flag for all blocks belonging to the current LCU; block-level refine_flag to indicate the current block, which is used as the refine_flag of all blocks belonging to the current block; CU level refine_flag to indicate the current CU, which is used as the refine_flag belonging to the current CU; and PU level refine_flag to indicate the current PU, which is used as the refine_flag belonging to the current PU. The above are just examples and there are no restrictions.

[243] Например, первый коэффициент преобразования весов может использоваться как коэффициент преобразования весов по умолчанию. Когда идентификация переключения коэффициента преобразования весов предназначена для указания того, что текущий блок не требует переключения коэффициента преобразования весов, переключение коэффициента преобразования весов не выполняют для текущего блока, то есть коэффициент преобразования весов текущего блока определяют как первый коэффициент преобразования весов. Когда идентификация переключения коэффициента преобразования весов предназначена для указания того, что текущий блок требует переключения коэффициента преобразования весов, коэффициент преобразования весов переключают, то есть коэффициент преобразования весов текущего блока определяют как второй коэффициент преобразования весов.[243] For example, the first weight conversion factor may be used as the default weight conversion factor. When the weight conversion coefficient switching identification is to indicate that the current block does not require weight conversion coefficient switching, weight conversion coefficient switching is not performed for the current block, that is, the weight conversion coefficient of the current block is determined as the first weight conversion coefficient. When the weight conversion coefficient switching identification is to indicate that the current block requires a weight conversion coefficient switching, the weight conversion coefficient is switched, that is, the weight conversion coefficient of the current block is determined as the second weight conversion coefficient.

[244] Вариант 9 осуществления изобретения. В вариантах 1-3 осуществления изобретения сторона кодера или сторона декодера ожидает получить угол взвешенного предсказания и позицию взвешенного предсказания текущего блока, а в варианте 8 осуществления изобретения может быть получен коэффициент преобразования весов, такой как первый коэффициент преобразования весов или второй коэффициент преобразования весов. На основе этого угол взвешенного предсказания и позицию взвешенного предсказания текущего блока получают следующими способами.[244] Embodiment 9 of the invention. In Embodiments 1 to 3, the encoder side or the decoder side expects to obtain the weighted prediction angle and the weighted prediction position of the current block, and in Embodiment 8, a weight conversion coefficient such as a first weight conversion coefficient or a second weight conversion coefficient can be obtained. Based on this, the weighted prediction angle and the weighted prediction position of the current block are obtained by the following methods.

[245] В первом способе сторона кодера и сторона декодера договариваются о том, чтобы принять один и тот же угол взвешенного предсказания в качестве угла взвешенного предсказания текущего блока, и договариваются о том, чтобы принять одну и ту же позицию взвешенного предсказания в качестве позиции взвешенного предсказания текущего блока. Например, и сторона кодера, и сторона декодера принимают угол А взвешенного предсказания в качестве угла взвешенного предсказания текущего блока и принимают позицию 4 взвешенного предсказания в качестве позиции взвешенного предсказания текущего блока.[245] In the first method, the encoder side and the decoder side agree to accept the same weighted prediction angle as the weighted prediction angle of the current block, and agree to accept the same weighted prediction position as the weighted prediction position predictions of the current block. For example, both the encoder side and the decoder side receive the weighted prediction angle A as the weighted prediction angle of the current block, and receive the weighted prediction position 4 as the weighted prediction position of the current block.

[246] Во втором способе сторона кодера строит список углов взвешенного предсказания, который может включать по меньшей мере один угол взвешенного предсказания, например, список углов взвешенного предсказания может включать угол А взвешенного предсказания и угол В взвешенного предсказания. Сторона кодера строит список позиций взвешенного предсказания, который может включать по меньшей мере одну позицию взвешенного предсказания, например, список позиций взвешенного предсказания может включать позиции взвешенного предсказания от 0 до 6. Сторона кодера последовательно проходит каждый угол взвешенного предсказания в списке углов взвешенного предсказания и последовательно проходит каждую позицию взвешенного предсказания в списке позиций взвешенного предсказания, то есть проходит комбинацию каждого угла взвешенного предсказания и каждой позиции взвешенного предсказания. Для каждой комбинации угла (углов) взвешенного предсказания и позиции (позиций) взвешенного предсказания угол взвешенного предсказания и позиция взвешенного предсказания в комбинации могут быть приняты в качестве угла взвешенного предсказания и позиции взвешенного предсказания текущего блока, полученного на этапе 401, и этапы с 402 по 408 выполняют на основе угла взвешенного предсказания, позиции взвешенного предсказания и коэффициента преобразования весов (полученных в варианте 8 осуществления изобретения) для получения значения взвешенного предсказания текущего блока.[246] In the second method, the encoder side constructs a list of weighted prediction angles, which may include at least one weighted prediction angle, for example, the list of weighted prediction angles may include weighted prediction angle A and weighted prediction angle B. The encoder side constructs a list of weighted prediction positions, which may include at least one weighted prediction position, for example, the list of weighted prediction positions may include weighted prediction positions 0 to 6. The encoder side sequentially goes through each weighted prediction angle in the list of weighted prediction angles and sequentially traverses each weighted prediction position in the list of weighted prediction positions, that is, traverses a combination of each weighted prediction angle and each weighted prediction position. For each combination of weighted prediction angle(s) and weighted prediction position(s), the weighted prediction angle and weighted prediction position in the combination may be taken as the weighted prediction angle and weighted prediction position of the current block obtained in step 401, and steps 402 through 408 is performed based on the weighted prediction angle, the weighted prediction position, and the weight conversion factor (obtained in Embodiment 8) to obtain the weighted prediction value of the current block.

[247] Например, когда сторона кодера переходит к углу А взвешенного предсказания и позиции 0 взвешенного предсказания, сторона кодера выполняет этапы 402-408 на основе угла А взвешенного предсказания и позиции 0 взвешенного предсказания, чтобы получить значение А-0 взвешенного предсказания текущего блока. Когда сторона кодера переходит к углу А взвешенного предсказания и позиции 1 взвешенного предсказания, выполняют этапы 402-408 на основе угла А взвешенного предсказания и позиции 1 взвешенного предсказания для получения значения А-1 взвешенного предсказания текущего блока. Когда сторона кодера переходит к углу В взвешенного предсказания и позиции 0 взвешенного предсказания, этапы 402-408 выполняют на основе угла В взвешенного предсказания и позиции 0 взвешенного предсказания для получения значения В-0 взвешенного предсказания текущего блока и т.д. Сторона кодера может получить соответствующее значение взвешенного предсказания на основе каждой комбинации (каждой комбинации угла взвешенного предсказания и позиции взвешенного предсказания).[247] For example, when the encoder side moves to the weighted prediction angle A and the weighted prediction position 0, the encoder side performs steps 402-408 based on the weighted prediction angle A and the weighted prediction position 0 to obtain the weighted prediction value A-0 of the current block. When the encoder side moves to the weighted prediction angle A and the weighted prediction position 1, steps 402 to 408 are performed based on the weighted prediction angle A and the weighted prediction position 1 to obtain the weighted prediction value A-1 of the current block. When the encoder side moves to the weighted prediction angle B and the weighted prediction position 0, steps 402-408 are performed based on the weighted prediction angle B and the weighted prediction position 0 to obtain the weighted prediction value B-0 of the current block, etc. The encoder side can obtain the corresponding weighted prediction value based on each combination (each combination of weighted prediction angle and weighted prediction position).

[248] После получения всех значений взвешенного предсказания на основе комбинации угла (углов) взвешенного предсказания и позиции (позиций) взвешенного предсказания сторона кодера может определить соответствующее значение стоимости RDO на основе каждого значения взвешенного предсказания любым неограниченным образом. Сторона кодера может получить значение стоимости RDO для каждой комбинации и выбрать минимальное значение стоимости RDO из всех значений стоимости RDO.[248] After obtaining all the weighted prediction values based on the combination of the weighted prediction angle(s) and the weighted prediction position(s), the encoder side may determine the corresponding RDO cost value based on each weighted prediction value in any unrestricted manner. The encoder side may obtain the RDO cost value for each combination and select the minimum RDO cost value from all the RDO cost values.

[249] Затем сторона кодера принимает угол взвешенного предсказания и позицию взвешенного предсказания в комбинации, соответствующей минимальному значению стоимости RDO, в качестве целевого угла взвешенного предсказания и целевой позиции взвешенного предсказания соответственно, и, наконец, кодирует значение индекса целевого угла взвешенного предсказания в списке углов взвешенного предсказания и значение индекса целевой позиции взвешенного предсказания в списке позиций взвешенного предсказания в битовый поток.[249] Then, the encoder side takes the weighted prediction angle and the weighted prediction position in the combination corresponding to the minimum RDO cost value as the weighted prediction target angle and the weighted prediction target position, respectively, and finally encodes the weighted prediction target angle index value in the angle list weighted prediction and an index value of the weighted prediction target position in the list of weighted prediction positions in the bitstream.

[250] Описанные выше способы являются только иллюстративными и не ограничивают изобретение при условии, что могут быть получены угол взвешенного предсказания и позиция взвешенного предсказания текущего блока. Например, один угол взвешенного предсказания может быть выбран случайным образом из списка углов взвешенного предсказания в качестве угла взвешенного предсказания текущего блока, и одна позиция взвешенного предсказания может быть выбрана случайным образом из списка позиций взвешенного предсказания в качестве позиции взвешенного предсказания текущего блока.[250] The methods described above are only illustrative and do not limit the invention, provided that the weighted prediction angle and weighted prediction position of the current block can be obtained. For example, one weighted prediction angle may be randomly selected from the list of weighted prediction angles as the weighted prediction angle of the current block, and one weighted prediction position may be randomly selected from the list of weighted prediction positions as the weighted prediction position of the current block.

[251] Сторона декодера создает список углов взвешенного предсказания, который идентичен списку углов взвешенного предсказания на стороне кодера и включает по меньшей мере один угол взвешенного предсказания, такой как угол А взвешенного предсказания и угол В взвешенного предсказания. Сторона декодера строит список позиций взвешенного предсказания, который идентичен списку позиций взвешенного предсказания на стороне кодера и включает по меньшей мере одну позицию взвешенного предсказания, такую как позиция взвешенного предсказания от 0 до 6. После получения кодированного битового потока текущего блока, сторона декодера анализирует информацию указания из кодированного битового потока, выбирает угол взвешенного предсказания из списка углов взвешенного предсказания в качестве угла взвешенного предсказания текущего блока в соответствии с информацией указания и выбирает позицию взвешенного предсказания из списка позиций взвешенного предсказания в качестве позиции взвешенного предсказания текущего блока в соответствии с информацией указания.[251] The decoder side creates a list of weighted prediction angles that is identical to the list of weighted prediction angles on the encoder side and includes at least one weighted prediction angle such as weighted prediction angle A and weighted prediction angle B. The decoder side constructs a list of weighted prediction positions that is identical to the list of weighted prediction positions at the encoder side and includes at least one weighted prediction position such as weighted prediction position 0 to 6. After receiving the encoded bit stream of the current block, the decoder side analyzes the indication information from the encoded bit stream, selects a weighted prediction angle from the list of weighted prediction angles as a weighted prediction angle of the current block according to the indication information, and selects a weighted prediction position from the list of weighted prediction positions as a weighted prediction position of the current block according to the indication information.

[252] Сценарий 1 применения: когда сторона кодера передает кодированный битовый поток на сторону декодера, кодированный битовый поток может включать информацию 1 указания, используемую для указания как угла взвешенного предсказания текущего блока (то есть целевого угла взвешенного предсказания), так и позиции взвешенного предсказания текущего блока (т.е. целевой позиции взвешенного предсказания). Например, когда информация 1 указания равна 0, информация 1 указания может указывать первый угол взвешенного предсказания в списке углов взвешенного предсказания и первую позицию взвешенного предсказания в списке позиций взвешенного предсказания, когда информация 1 указания равна 1, информация 1 указания может указывать первый угол взвешенного предсказания в списке углов взвешенного предсказания и вторую позицию взвешенного предсказания в списке позиций взвешенного предсказания и т.д., нет ограничений на значение информации 1 указания, которая используется для указания угла взвешенного предсказания и позиции взвешенного предсказания, если сторона кодера и сторона декодера согласовали это.[252] Application Scenario 1: When the encoder side transmits the encoded bitstream to the decoder side, the encoded bitstream may include indication information 1 used to indicate both the weighted prediction angle of the current block (that is, the target weighted prediction angle) and the weighted prediction position the current block (i.e., the target position of the weighted prediction). For example, when the indication information 1 is 0, the indication information 1 may indicate the first weighted prediction angle in the weighted prediction angle list and the first weighted prediction position in the weighted prediction position list; when the indication information 1 is 1, the indication information 1 may indicate the first weighted prediction angle in the weighted prediction angle list and the second weighted prediction position in the weighted prediction position list, etc., there is no limitation on the value of the indication information 1 that is used to indicate the weighted prediction angle and the weighted prediction position if the encoder side and the decoder side have agreed on it.

[253] После приема кодированного битового потока сторона декодера декодирует информацию 1 указания из кодированного битового потока. На основе информации 1 указания сторона декодера может выбрать угол взвешенного предсказания, соответствующий информации 1 указания, из списка углов взвешенного предсказания и принять угол взвешенного предсказания в качестве угла взвешенного предсказания текущего блока. На основе информации 1 указания сторона декодера может выбрать позицию взвешенного предсказания, соответствующую информации 1 указания, из списка позиций взвешенного предсказания и принять позицию взвешенного предсказания в качестве позиции взвешенного предсказания текущего блока.[253] After receiving the encoded bitstream, the decoder side decodes indication information 1 from the encoded bitstream. Based on the indication information 1, the decoder side may select the weighted prediction angle corresponding to the indication information 1 from the list of weighted prediction angles and take the weighted prediction angle as the weighted prediction angle of the current block. Based on the indication information 1, the decoder side can select the weighted prediction position corresponding to the indication information 1 from the list of weighted prediction positions and accept the weighted prediction position as the weighted prediction position of the current block.

[254] Сценарий 2 применения: когда сторона кодера передает кодированный битовый поток на сторону декодера, кодированный битовый поток может включать информацию 2 указания и информацию 3 указания. Информация 2 указания предназначена для указания целевого угла взвешенного предсказания текущего блока, например, значение 1 индекса целевого угла взвешенного предсказания в списке углов взвешенного предсказания, при этом значение 1 индекса указывает, какой угол взвешенного предсказания в списке углов взвешенного предсказания является целевым углом взвешенного предсказания. Информация 3 указания предназначена для указания целевой позиции взвешенного предсказания текущего блока, например, значения 2 индекса целевой позиции взвешенного предсказания в списке позиций взвешенного предсказания, при этом значение 2 индекса указывает, какая позиция взвешенного предсказания в списке позиций взвешенного предсказания является целевой позицией взвешенного предсказания. После приема кодированного битового потока сторона декодера анализирует информацию 2 указания и информацию 3 указания из кодированного битового потока. На основе информации 2 указания сторона декодера может выбрать угол взвешенного предсказания, соответствующий значению 1 индекса, из списка углов взвешенного предсказания и принять угол взвешенного предсказания в качестве угла взвешенного предсказания текущего блока. На основе информации 3 указания сторона декодера может выбрать позицию взвешенного предсказания, соответствующую значению 2 индекса, из списка позиций взвешенного предсказания и принять позицию взвешенного предсказания в качестве позиции взвешенного предсказания текущего блока.[254] Application Scenario 2: When the encoder side transmits a coded bit stream to the decoder side, the coded bit stream may include indication information 2 and indication information 3. The indication information 2 is for indicating the target weighted prediction angle of the current block, for example, the target weighted prediction angle index value 1 in the weighted prediction angle list, where the index value 1 indicates which weighted prediction angle in the weighted prediction angle list is the target weighted prediction angle. The indication information 3 is for indicating the weighted prediction target position of the current block, for example, an index value 2 of the weighted prediction target position in the weighted prediction position list, wherein the index value 2 indicates which weighted prediction position in the weighted prediction position list is the weighted prediction target position. After receiving the coded bit stream, the decoder side analyzes the indication information 2 and the indication information 3 from the coded bit stream. Based on the indication information 2, the decoder side can select the weighted prediction angle corresponding to the index value 1 from the list of weighted prediction angles and take the weighted prediction angle as the weighted prediction angle of the current block. Based on the indication information 3, the decoder side can select the weighted prediction position corresponding to the index value 2 from the list of weighted prediction positions and accept the weighted prediction position as the weighted prediction position of the current block.

[255] Сценарий 3 применения: сторона кодера и сторона декодера могут согласовать предпочтительную комбинацию конфигурации. Предпочтительная комбинация конфигурации может быть сконфигурирована в соответствии с практическим опытом и здесь не ограничивается. Например, можно согласовать предпочтительную комбинацию 1 конфигурации, включающую угол А взвешенного предсказания и позицию 4 взвешенного предсказания, предпочтительную комбинацию 2 конфигурации, включающую угол В взвешенного предсказания и позицию 4 взвешенного предсказания, и т.п.[255] Application Scenario 3: The encoder side and the decoder side may agree on a preferred configuration combination. The preferred configuration combination may be configured according to practical experience and is not limited here. For example, a preferred configuration combination 1 including a weighted prediction angle A and a weighted prediction position 4, a preferred configuration combination 2 including a weighted prediction angle B and a weighted prediction position 4, and the like may be agreed upon.

[256] После определения целевого угла взвешенного предсказания и целевой позиции взвешенного предсказания текущего блока сторона кодера определяет, относится ли комбинация целевого угла взвешенного предсказания и целевой позиции взвешенного предсказания к предпочтительной комбинации конфигурации. Если комбинация является предпочтительной комбинацией конфигурации, когда сторона кодера передает кодированный битовый поток на сторону декодера, кодированный битовый поток может включать информацию 4 указания и информацию 5 указания. Информация 4 указания предназначена для указания того, используется ли предпочтительная комбинация конфигурации для текущего блока. Например, когда информация 4 указания представляет собой первую величину (например, 0), информация 4 указания указывает, что для текущего блока используется предпочтительная комбинация конфигурации. Информация 5 указания указывает, какая предпочтительная комбинация конфигурации используется для текущего блока. Например, когда значение информации 5 указания равно 0, информация 5 указания может указывать, что для текущего блока используется предпочтительная комбинация 1 конфигурации, а когда значение информации 5 указания равно 1, информация 5 указания может указывать, что для текущего блока используется предпочтительная комбинация 2 конфигурации.[256] After determining the weighted prediction target angle and the weighted prediction target position of the current block, the encoder side determines whether the combination of the weighted prediction target angle and the weighted prediction target position belongs to the preferred configuration combination. If the combination is a preferred configuration combination when the encoder side transmits the encoded bitstream to the decoder side, the encoded bitstream may include indication information 4 and indication information 5. The indication information 4 is for indicating whether a preferred configuration combination is used for the current block. For example, when the indication information 4 is a first value (eg, 0), the indication information 4 indicates that the preferred configuration combination is used for the current block. The indication information 5 indicates which preferred configuration combination is used for the current block. For example, when the value of the guidance information 5 is 0, the guidance information 5 may indicate that the preferred configuration combination 1 is used for the current block, and when the value of the guidance information 5 is 1, the guidance information 5 may indicate that the preferred configuration combination 2 is used for the current block .

[257] После приема кодированного битового потока сторона декодера может анализировать информацию 4 указания и информацию 5 указания из кодированного битового потока. На основе информации 4 указания сторона декодера может определить, используется ли предпочтительная комбинация конфигурации для текущего блока. Если информация 4 указания представляет собой первую величину, сторона декодера определяет, что для текущего блока используется предпочтительная комбинация конфигурации. Когда для текущего блока используется предпочтительная комбинация конфигурации, сторона декодера может определить, какая предпочтительная комбинация конфигурации используется для текущего блока, на основе информации 5 указания. Например, когда значение информации 5 указания равно 0, сторона декодера может определить, что предпочтительная комбинация 1 конфигурации используется для текущего блока, например, угол взвешенного предсказания текущего блока представляет собой угол А взвешенного предсказания, и позиция взвешенного предсказания текущего блока представляет собой позицию 4 взвешенного предсказания. В другом примере, когда значение информации 5 указания равно 1, сторона декодера может определить, что предпочтительная комбинация 2 конфигурации используется для текущего блока, например, угол взвешенного предсказания текущего блока представляет собой угол В взвешенного предсказания, а позиция взвешенного предсказания текущего блока представляет собой позицию 4 взвешенного предсказания.[257] After receiving the coded bit stream, the decoder side can analyze the indication information 4 and the indication information 5 from the coded bit stream. Based on the indication information 4, the decoder side can determine whether a preferred configuration combination is used for the current block. If the indication information 4 is the first value, the decoder side determines that the preferred configuration combination is used for the current block. When a preferred configuration combination is used for the current block, the decoder side can determine which preferred configuration combination is used for the current block based on the indication information 5. For example, when the value of the indication information 5 is 0, the decoder side may determine that the preferred configuration combination 1 is used for the current block, for example, the weighted prediction angle of the current block is the weighted prediction angle A, and the weighted prediction position of the current block is the weighted prediction position 4 predictions. In another example, when the value of the indication information 5 is 1, the decoder side may determine that the preferred configuration combination 2 is used for the current block, for example, the weighted prediction angle of the current block is the weighted prediction angle B, and the weighted prediction position of the current block is the position 4 weighted predictions.

[258] Например, если сторона кодера и сторона декодера согласуют только одну предпочтительную комбинацию конфигурации, например, предпочтительную комбинацию конфигурации, включающую угол А взвешенного предсказания и позицию 4 взвешенного предсказания, кодированный битовый поток может включать только информацию 4 указания без информации 5 указания, при этом информация 4 указания предназначена для указания того, что для текущего блока используется предпочтительная комбинация конфигурации. После того, как сторона декодера анализирует информацию 4 указания из кодированного битового потока, если информация 4 указания является первой величиной, сторона декодера определяет, что для текущего блока используется предпочтительная комбинация конфигурации. На основе этой предпочтительной комбинации сторона декодера определяет, что угол взвешенного предсказания текущего блока является углом взвешенного А предсказания, а позиция взвешенного предсказания текущего блока является позицией 4 взвешенного предсказания.[258] For example, if the encoder side and the decoder side agree on only one preferred configuration combination, for example, a preferred configuration combination including weighted prediction angle A and weighted prediction position 4, the encoded bitstream may include only indication information 4 without indication information 5, when Here, the indication information 4 is intended to indicate that a preferred configuration combination is used for the current block. After the decoder side analyzes the indication information 4 from the encoded bitstream, if the indication information 4 is the first value, the decoder side determines that the preferred configuration combination is used for the current block. Based on this preferred combination, the decoder side determines that the weighted prediction angle of the current block is the weighted prediction angle A, and the weighted prediction position of the current block is the weighted prediction position 4.

[259] Сценарий 4 применения: сторона кодера и сторона декодера могут согласовать предпочтительную комбинацию конфигурации. После определения целевого угла взвешенного предсказания и целевой позиции взвешенного предсказания текущего блока сторона кодера может определить, относится ли комбинация целевого угла взвешенного предсказания и целевой позиции взвешенного предсказания к предпочтительной комбинации конфигурации. Если она не относится к предпочтительной комбинации конфигурации, когда сторона кодера передает кодированный битовый поток на сторону декодера, кодированный битовый поток может включать информацию 4 указания и информацию 6 указания. Информация 4 указания предназначена для указания того, что для текущего блока используется предпочтительная комбинация конфигурации. Если информация 4 указания представляет собой второе значение (например, 1), информация 4 указания может указывать, что предпочтительная комбинация конфигурации не используется для текущего блока. Информация 6 указания предназначена для указания как целевого угла взвешенного предсказания текущего блока, так и целевой позиции взвешенного предсказания текущего блока. Например, когда значение информации 6 указания равно 0, информация 6 указания используется для указания первого угла взвешенного предсказания в списке углов взвешенного предсказания и первой позиции взвешенного предсказания в списке позиций взвешенного предсказания и т.д.[259] Application Scenario 4: The encoder side and the decoder side can agree on a preferred configuration combination. After determining the weighted prediction target angle and the weighted prediction target position of the current block, the encoder side can determine whether the combination of the weighted prediction target angle and the weighted prediction target position belongs to the preferred configuration combination. If it does not belong to the preferred configuration combination, when the encoder side transmits the encoded bitstream to the decoder side, the encoded bitstream may include indication information 4 and indication information 6. The indication information 4 is for indicating that a preferred configuration combination is used for the current block. If the indication information 4 is a second value (eg, 1), the indication information 4 may indicate that the preferred configuration combination is not used for the current block. The indication information 6 is for indicating both the weighted prediction target angle of the current block and the weighted prediction target position of the current block. For example, when the value of the indication information 6 is 0, the indication information 6 is used to indicate the first weighted prediction angle in the weighted prediction angle list and the first weighted prediction position in the weighted prediction position list, etc.

[260] После приема кодированного битового потока сторона декодера может анализировать информацию 4 указания и информацию 6 указания из кодированного битового потока. На основе информации 4 указания сторона декодера может определить, используется ли предпочтительная комбинация конфигурации для текущего блока. Если информация 4 указания является вторым значением, сторона декодера определяет, что предпочтительная комбинация конфигурации не используется для текущего блока. Когда предпочтительная комбинация конфигурации не используется для текущего блока, сторона декодера может на основе информации 6 указания выбрать угол взвешенного предсказания, соответствующий информации 6 указания, из списка углов взвешенного предсказания и принять угол взвешенного предсказания как угол взвешенного предсказания текущего блока; и на основе информации 6 указания сторона декодера может выбрать позицию взвешенного предсказания, соответствующую информации 6 указания, из списка позиций взвешенного предсказания и принять позицию взвешенного предсказания в качестве позиции взвешенного предсказания текущего блока.[260] After receiving the coded bit stream, the decoder side can analyze the indication information 4 and the indication information 6 from the coded bit stream. Based on the indication information 4, the decoder side can determine whether a preferred configuration combination is used for the current block. If the indication information 4 is the second value, the decoder side determines that the preferred configuration combination is not used for the current block. When the preferred configuration combination is not used for the current block, the decoder side may, based on the indication information 6, select a weighted prediction angle corresponding to the indication information 6 from the list of weighted prediction angles, and take the weighted prediction angle as the weighted prediction angle of the current block; and based on the indication information 6, the decoder side can select the weighted prediction position corresponding to the indication information 6 from the list of weighted prediction positions and accept the weighted prediction position as the weighted prediction position of the current block.

[261] Сценарий 5 применения: сторона кодера и сторона декодера могут согласовать предпочтительную комбинацию конфигурации. После определения целевого угла взвешенного предсказания и целевой позиции взвешенного предсказания текущего блока сторона кодера может определить, относится ли комбинация целевого угла взвешенного предсказания и целевой позиции взвешенного предсказания к предпочтительной комбинации конфигурации. Если комбинация не относится к предпочтительной комбинации конфигурации, когда сторона кодера передает кодированный битовый поток на сторону декодера, кодированный битовый поток может включать информацию 4 указания, информацию 7 указания и информацию 8 указания. Например, информация 4 указания предназначена для указания того, используется ли предпочтительная комбинация конфигурации для текущего блока. Если информация 4 указания является вторым значением, информация 4 указания может указывать, что предпочтительная комбинация конфигурации не используется для текущего блока. Информация 7 указания предназначена для указания целевого угла взвешенного предсказания текущего блока, например, значение 1 индекса целевого угла взвешенного предсказания в списке углов взвешенного предсказания, при этом значение 1 индекса указывает, какой угол взвешенного предсказания в списке углов взвешенного предсказания является целевым углом взвешенного предсказания. Информация 8 указания предназначена для указания целевой позиции взвешенного предсказания текущего блока, например, значения 2 индекса целевой позиции взвешенного предсказания в списке позиций взвешенного предсказания, при этом значение 2 индекса указывает, какая позиция взвешенного предсказания в списке позиций взвешенного предсказания является целевой позицией взвешенного предсказания.[261] Application Scenario 5: The encoder side and the decoder side can agree on a preferred configuration combination. After determining the weighted prediction target angle and the weighted prediction target position of the current block, the encoder side can determine whether the combination of the weighted prediction target angle and the weighted prediction target position is a preferred configuration combination. If the combination does not belong to the preferred configuration combination, when the encoder side transmits the encoded bitstream to the decoder side, the encoded bitstream may include indication information 4, indication information 7 and indication information 8. For example, the indication information 4 is for indicating whether a preferred configuration combination is used for the current block. If the indication information 4 is the second value, the indication information 4 may indicate that the preferred configuration combination is not used for the current block. The indication information 7 is for indicating the target weighted prediction angle of the current block, for example, the target weighted prediction angle index value 1 in the weighted prediction angle list, where the index value 1 indicates which weighted prediction angle in the weighted prediction angle list is the target weighted prediction angle. The indication information 8 is for indicating the weighted prediction target position of the current block, for example, an index value 2 of the weighted prediction target position in the weighted prediction position list, wherein the index value 2 indicates which weighted prediction position in the weighted prediction position list is the weighted prediction target position.

[262] После приема кодированного битового потока сторона декодера может анализировать информацию 4 указания, информацию 7 указания и информацию 8 указания из кодированного битового потока. На основе информации 4 указания сторона декодера может определить, используется ли предпочтительная комбинация конфигурации для текущего блока. Если информация 4 указания является вторым значением, сторона декодера определяет, что предпочтительная комбинация конфигурации не используется для текущего блока. Когда предпочтительная комбинация конфигурации не используется для текущего блока, сторона декодера может, на основе информации 7 указания, выбрать угол взвешенного предсказания, соответствующий значению 1 индекса, из списка углов взвешенного предсказания, и принять угол взвешенного предсказания в качестве угла взвешенного предсказания текущего блока. На основе информации 8 указания сторона декодера может выбрать позицию взвешенного предсказания, соответствующую значению 2 индекса, из списка позиций взвешенного предсказания и принять позицию взвешенного предсказания в качестве позиции взвешенного предсказания текущего блока.[262] After receiving the encoded bitstream, the decoder side can analyze the indication information 4, indication information 7 and indication information 8 from the encoded bitstream. Based on the indication information 4, the decoder side can determine whether a preferred configuration combination is used for the current block. If the indication information 4 is the second value, the decoder side determines that the preferred configuration combination is not used for the current block. When the preferred configuration combination is not used for the current block, the decoder side may, based on the indication information 7, select the weighted prediction angle corresponding to the index value 1 from the weighted prediction angle list, and take the weighted prediction angle as the weighted prediction angle of the current block. Based on the indication information 8, the decoder side can select the weighted prediction position corresponding to the index value 2 from the list of weighted prediction positions and accept the weighted prediction position as the weighted prediction position of the current block.

[263] Вариант 10 осуществления изобретения. В вариантах 1-3 осуществления изобретения сторона кодера или сторона декодера ожидает получить коэффициент преобразования весов текущего блока. Если текущий блок поддерживает режим переключения коэффициента преобразования весов, коэффициент преобразования весов текущего блока получают следующим образом: получают вторую информацию указания коэффициента преобразования весов для текущего блока и выбирают коэффициент преобразования весов, соответствующий второй информации указания коэффициента преобразования весов из заранее заданной таблицы поиска; при этом заданная таблица поиска включает по меньшей мере два коэффициента преобразования весов. Выбранный коэффициент преобразования весов определяют как коэффициент преобразования весов текущего блока.[263] Embodiment 10 of the invention. In Embodiments 1 to 3, the encoder side or the decoder side expects to obtain the weight conversion coefficient of the current block. If the current block supports the weight conversion coefficient switching mode, the weight conversion coefficient of the current block is obtained as follows: obtain the second weight conversion coefficient indication information for the current block, and select the weight conversion coefficient corresponding to the second weight conversion coefficient indication information from a predetermined lookup table; wherein the given lookup table includes at least two weight conversion factors. The selected weight conversion factor is defined as the weight conversion factor of the current block.

[264] Поскольку заранее заданная таблица поиска включает по меньшей мере два коэффициента преобразования весов, если текущий блок поддерживает режим переключения коэффициента преобразования весов, коэффициент преобразования весов текущего блока может быть выбран из по меньшей мере двух коэффициентов преобразования весов. То есть коэффициент преобразования весов текущего блока является переменным, так что коэффициент преобразования весов может переключаться адаптивно вместо использования единого коэффициента преобразования весов.[264] Since the predetermined lookup table includes at least two weight conversion coefficients, if the current block supports a weight conversion coefficient switching mode, the weight conversion coefficient of the current block can be selected from the at least two weight conversion coefficients. That is, the weight conversion factor of the current block is variable, so that the weight conversion factor can be switched adaptively instead of using a single weight conversion factor.

[265] Например, если информация управления переключением позволяет текущему блоку включить режим переключения коэффициента преобразования весов, текущий блок поддерживает режим переключения коэффициента преобразования весов, и если информация управления переключением не позволяет текущему блоку включить режим переключения коэффициента преобразования весов, текущий блок не поддерживает режим переключения коэффициента преобразования весов. См. вариант 8 осуществления изобретения для описания того, поддерживает ли текущий блок режим переключения коэффициента преобразования весов.[265] For example, if the switching control information allows the current block to enable the weight conversion factor switching mode, the current block supports the weight conversion factor switching mode, and if the switching control information does not allow the current block to enable the weight conversion factor switching mode, the current block does not support the switching mode weight conversion factor. See Embodiment 8 for a description of whether the current block supports the weight conversion factor switching mode.

[266] В возможной реализации заранее заданная таблица поиска может включать по меньшей мере два коэффициента преобразования весов, а вторая информация указания коэффициента преобразования весов может включать информацию об индексе коэффициента преобразования весов (для указания определенного коэффициента преобразования весов среди всех коэффициентов преобразования весов в таблице поиска). На основе этого коэффициент преобразования весов, соответствующий информации об индексе коэффициента преобразования весов, может быть выбран из таблицы поиска.[266] In an exemplary implementation, the predefined lookup table may include at least two weight conversion factors, and the second weight conversion factor indication information may include weight conversion factor index information (to indicate a specific weight conversion factor among all weight conversion factors in the lookup table ). Based on this, the weight conversion coefficient corresponding to the weight conversion coefficient index information can be selected from the lookup table.

[267] На стороне кодера, если имеется только одна таблица поиска, для каждого коэффициента преобразования весов в таблице поиска, сторона кодера может определить значение стоимости RDO, соответствующее коэффициенту преобразования весов, и принять коэффициент преобразования весов, соответствующий минимальному значению стоимости RDO, в качестве целевого коэффициента преобразования весов текущего блока. Затем сторона кодера определяет информацию об индексе целевого коэффициента преобразования весов из таблицы поиска, например, информацию об индексе коэффициента преобразования весов, при этом информация об индексе коэффициента преобразования весов представляет целевой коэффициент преобразования весов в таблице поиска.[267] At the encoder side, if there is only one lookup table, for each weight conversion factor in the lookup table, the encoder side may determine the RDO cost value corresponding to the weight conversion factor, and take the weight conversion factor corresponding to the minimum RDO cost value as target weight conversion factor of the current block. Then, the encoder side determines target weight conversion factor index information from the lookup table, for example, weight conversion factor index information, wherein the weight conversion factor index information represents the target weight conversion factor in the lookup table.

[268] Для стороны декодера, если имеется только одна таблица поиска, когда сторона кодера передает кодированный битовый поток текущего блока на сторону декодера, кодированный битовый поток может нести информацию об индексе коэффициента преобразования весов, которая предназначена для указания информации об индексе целевого коэффициента преобразования весов в таблице поиска. Сторона декодера выбирает коэффициент преобразования весов, соответствующий информации об индексе коэффициента преобразования весов, из таблицы поиска, в качестве целевого коэффициента преобразования весов текущего блока.[268] For the decoder side, if there is only one lookup table, when the encoder side transmits the encoded bitstream of the current block to the decoder side, the encoded bitstream may carry weight conversion coefficient index information, which is intended to indicate index information of the target weight conversion coefficient in the lookup table. The decoder side selects the weight conversion coefficient corresponding to the weight conversion coefficient index information from the lookup table as the target weight conversion coefficient of the current block.

[269] В другой возможной реализации заранее заданная таблица поиска может включать по меньшей мере две таблицы поиска, и каждая таблица поиска может включать по меньшей мере один коэффициент преобразования весов. Вторая информация указания коэффициента преобразования весов может включать информацию об индексе таблицы поиска (для указания определенной таблицы поиска во всех таблицах поиска) и информацию об индексе коэффициента преобразования весов (для указания определенного коэффициента преобразования весов из всех коэффициентов преобразования весов в таблице поиска). На основе этого целевая таблица поиска, соответствующая информации об индексе таблицы поиска, может быть выбрана из по меньшей мере двух таблиц поиска, и коэффициент преобразования весов, соответствующий информации об индексе коэффициента преобразования весов, может быть выбран из целевой таблицы поиска.[269] In another possible implementation, a predefined lookup table may include at least two lookup tables, and each lookup table may include at least one weight conversion factor. The second weight conversion factor indication information may include lookup table index information (for specifying a specific lookup table in all lookup tables) and weight conversion factor index information (for indicating a specific weight conversion factor among all weight conversion coefficients in the lookup table). Based on this, a target lookup table corresponding to the lookup table index information can be selected from the at least two lookup tables, and a weight conversion coefficient corresponding to the weight conversion coefficient index information can be selected from the target lookup table.

[270] Например, заранее заданная таблица поиска может включать первую таблицу поиска и вторую таблицу поиска, и максимальное значение абсолютных значений коэффициентов преобразования весов, включенных во вторую таблицу поиска, больше, чем максимальное значение абсолютных значений коэффициентов преобразования весов, включенных в первую таблицу поиска. Например, абсолютные значения коэффициентов преобразования весов, включенных во вторую таблицу поиска, равны 4 и 8, а абсолютные значения коэффициентов преобразования весов, включенных в первую таблицу поиска, равны 5 и 7. Максимальное значение абсолютных значений коэффициентов преобразования весов, включенных во вторую таблицу поиска, равно 8, и максимальное значение абсолютных значений коэффициентов преобразования весов, включенных в первую таблицу поиска, равно 7. Абсолютные значения коэффициентов преобразования весов, включенных во вторую таблицу поиска, не идентичны абсолютным значениям коэффициентов преобразования весов, включенных в первую таблицу поиска. Например, абсолютные значения коэффициентов преобразования весов, включенных во вторую таблицу поиска, равны 4 и 8, а абсолютные значения коэффициентов преобразования весов, включенных в первую таблицу поиска, равны 1, 2 и 4, при этом абсолютные значения коэффициентов преобразования весов, включенных в две таблицы поиска, не идентичны. Опционально, абсолютные значения коэффициентов преобразования весов, включенных во вторую таблицу поиска, полностью отличаются от абсолютных значений коэффициентов преобразования весов, включенных в первую таблицу поиска. Например, абсолютные значения коэффициентов преобразования весов, включенных во вторую таблицу поиска, равны 4 и 8, а абсолютные значения коэффициентов преобразования весов, включенных в первую таблицу поиска, равны 1 и 2, при этом абсолютные значения коэффициентов преобразования весов, включенных в две таблицы поиска, полностью различны.[270] For example, a predetermined lookup table may include a first lookup table and a second lookup table, and the maximum value of the absolute values of the weights transformation coefficients included in the second lookup table is greater than the maximum value of the absolute values of the weights transformation coefficients included in the first lookup table . For example, the absolute values of the conversion factors of the weights included in the second lookup table are 4 and 8, and the absolute values of the conversion factors of the weights included in the first lookup table are 5 and 7. The maximum value of the absolute values of the conversion factors of the weights included in the second lookup table , is 8, and the maximum value of the absolute values of the weights conversion factors included in the first lookup table is 7. The absolute values of the weights conversion factors included in the second lookup table are not identical to the absolute values of the weights conversion factors included in the first lookup table. For example, the absolute values of the conversion factors of the weights included in the second lookup table are 4 and 8, and the absolute values of the conversion factors of the weights included in the first lookup table are 1, 2, and 4, while the absolute values of the conversion factors of the weights included in the two lookup tables are not identical. Optionally, the absolute values of the weight conversion coefficients included in the second lookup table are completely different from the absolute values of the weight conversion coefficients included in the first lookup table. For example, the absolute values of the conversion factors of the weights included in the second lookup table are 4 and 8, and the absolute values of the conversion factors of the weights included in the first lookup table are 1 and 2, while the absolute values of the conversion factors of the weights included in the two lookup tables are , are completely different.

[271] Например, вторая информация указания коэффициента преобразования весов включает информацию об индексе таблицы поиска и информацию об индексе коэффициента преобразования весов. Информация об индексе таблицы поиска может быть идентификацией SCC, соответствующей текущему блоку, и идентификация SCC предназначена для указания того, что текущий блок принадлежит кодированию экранного контента, или идентификация SCC предназначена для указания того, что текущий блок принадлежит кодированию неэкранного контента. Если идентификация SCC предназначена для указания того, что текущий блок принадлежит кодированию неэкранного контента, целевая таблица поиска, соответствующая идентификации SCC, может быть первой таблицей поиска. Если идентификация SCC предназначена для указания того, что текущий блок принадлежит кодированию экранного контента, целевой таблицей поиска, соответствующей идентификации SCC, может быть вторая таблица поиска.[271] For example, the second weight conversion factor indication information includes lookup table index information and weight conversion factor index information. The lookup table index information may be an SCC identification corresponding to the current block, and the SCC identification is for indicating that the current block belongs to a screen content encoding, or the SCC identification is for indicating that the current block belongs to a non-screen content encoding. If the SCC identification is intended to indicate that the current block belongs to a non-screen content encoding, the target lookup table corresponding to the SCC identification may be the first lookup table. If the SCC identification is intended to indicate that the current block belongs to a screen content encoding, the target lookup table corresponding to the SCC identification may be a second lookup table.

[272] Таким образом, можно получить идентификацию SCC (например, информацию об индексе таблицы поиска) и информацию об индексе коэффициента преобразования весов, соответствующую текущему блоку. Если идентификация SCC предназначена для указания того, что текущий блок принадлежит кодированию неэкранного контента, целевую таблицу поиска определяют как первую таблицу поиска, коэффициент преобразования весов, соответствующий информации об индексе коэффициента преобразования весов, выбирают из первой таблицы поиска, и выбранный коэффициент преобразования весов определяют как коэффициент преобразования весов текущего блока. Если идентификация SCC предназначена для указания того, что текущий блок принадлежит кодированию экранного контента, целевую таблицу поиска определяют как вторую таблицу поиска, и коэффициент преобразования весов, соответствующий информации об индексе коэффициента преобразования весов, выбирают из второй таблицы поиска, и выбранный коэффициент преобразования весов определяют как коэффициент преобразования весов текущего блока. Таким образом, можно получить коэффициент преобразования весов текущего блока.[272] In this way, the SCC identification (eg, lookup table index information) and weight conversion coefficient index information corresponding to the current block can be obtained. If the SCC identification is to indicate that the current block belongs to non-screen content encoding, the target lookup table is determined as the first lookup table, the weight conversion coefficient corresponding to the weight transformation coefficient index information is selected from the first lookup table, and the selected weight conversion coefficient is determined as the conversion factor for the weights of the current block. If the SCC identification is to indicate that the current block belongs to screen content encoding, the target lookup table is determined as the second lookup table, and the weight conversion coefficient corresponding to the weight conversion coefficient index information is selected from the second lookup table, and the selected weight conversion coefficient is determined as the conversion factor of the current block's weights. In this way, the conversion factor of the weights of the current block can be obtained.

[273] Процесс на стороне кодера для получения идентификации SCC может относиться к варианту 8 осуществления изобретения и здесь повторяться не будет.[273] The encoder-side process for obtaining the SCC identification may relate to Embodiment 8 and will not be repeated here.

[274] Если идентификация SCC предназначена для указания того, что текущий блок принадлежит кодированию неэкранного контента, целевой таблицей поиска может быть первая таблица поиска. Для каждого коэффициента преобразования весов в первой таблице поиска сторона кодера определяет значение стоимости RDO, соответствующее коэффициенту преобразования весов, и принимает коэффициент преобразования весов, соответствующий минимальному значению стоимости RDO, в качестве целевого коэффициента преобразования весов текущего блока. Сторона кодера определяет информацию об индексе целевого коэффициента преобразования весов из первой таблицы поиска, то есть информацию об индексе коэффициента преобразования весов. Если идентификация SCC предназначена для указания того, что текущий блок принадлежит кодированию экранного контента, целевой таблицей поиска может быть вторая таблица поиска. Для каждого коэффициента преобразования весов во второй таблице поиска сторона кодера определяет значение стоимости RDO, соответствующее коэффициенту преобразования весов, и принимает коэффициент преобразования весов, соответствующий минимальному значению стоимости RDO, в качестве целевого коэффициента преобразования весов текущего блока. Сторона кодера определяет информацию об индексе целевого коэффициента преобразования весов из второй таблицы поиска, то есть информацию об индексе коэффициента преобразования весов, и информация об индексе коэффициента преобразования весов указывает, каким является определенный коэффициент преобразования весов во второй таблице поиска.[274] If the SCC identification is intended to indicate that the current block belongs to a non-screen content encoding, the target lookup table may be the first lookup table. For each weight conversion factor in the first lookup table, the encoder side determines the RDO cost value corresponding to the weight conversion factor, and takes the weight conversion factor corresponding to the minimum RDO cost value as the target weight conversion factor of the current block. The encoder side determines the index information of the target weight conversion factor from the first lookup table, that is, the weight conversion factor index information. If the SCC identification is intended to indicate that the current block belongs to a screen content encoding, the target lookup table may be a second lookup table. For each weight conversion factor in the second lookup table, the encoder side determines the RDO cost value corresponding to the weight conversion factor, and takes the weight conversion factor corresponding to the minimum RDO cost value as the target weight conversion factor of the current block. The encoder side determines the index information of the target weight conversion coefficient from the second lookup table, that is, the weight conversion coefficient index information, and the weight conversion coefficient index information indicates what the determined weight conversion coefficient is in the second lookup table.

[275] Процесс на стороне декодера для получения идентификации SCC можно увидеть в варианте 8 осуществления изобретения, и здесь он повторяться не будет.[275] The decoder side process for obtaining the SCC identification can be seen in Embodiment 8 and will not be repeated here.

[276] Когда сторона кодера передает кодированный битовый поток текущего блока на сторону декодера, кодированный битовый поток может нести информацию об индексе коэффициента преобразования весов, которая предназначена для указания информации об индексе целевого коэффициента преобразования весов в первой таблице поиска или во второй таблице поиска. Если идентификация SCC предназначена для указания того, что текущий блок принадлежит кодированию неэкранного контента, целевой таблицей поиска может быть первая таблица поиска.[276] When the encoder side transmits the encoded bitstream of the current block to the decoder side, the encoded bitstream may carry weight conversion coefficient index information, which is for indicating index information of the target weight conversion coefficient in the first lookup table or the second lookup table. If the SCC identification is intended to indicate that the current block belongs to a non-screen content encoding, the target lookup table may be the first lookup table.

Сторона декодера выбирает коэффициент преобразования весов, соответствующий информации об индексе коэффициента преобразования весов (информация об индексе коэффициента преобразования весов указывает, каким является коэффициент преобразования весов в первой таблице поиска) из первой таблицы поиска, который принимают в качестве коэффициента преобразования весов текущего блока. Если идентификация SCC предназначена для указания того, что текущий блок принадлежит кодированию экранного контента, целевой таблицей поиска может быть вторая таблица поиска. Сторона декодера выбирает коэффициент преобразования весов, соответствующий информации об индексе коэффициента преобразования весов (информация об индексе коэффициента преобразования весов указывает, каким является коэффициент преобразования весов во второй таблице поиска) из второй таблицы поиска, который принимают в качестве коэффициента преобразования весов текущего блока.The decoder side selects a weight conversion coefficient corresponding to the weight conversion coefficient index information (the weight conversion coefficient index information indicates what the weight conversion coefficient in the first lookup table is) from the first lookup table, which is taken as the weight conversion coefficient of the current block. If the SCC identification is intended to indicate that the current block belongs to a screen content encoding, the target lookup table may be a second lookup table. The decoder side selects a weight conversion coefficient corresponding to the weight conversion coefficient index information (the weight conversion coefficient index information indicates what the weight conversion coefficient in the second lookup table is) from the second lookup table, which is taken as the weight conversion coefficient of the current block.

[277] Вариант 11 осуществления изобретения. В вариантах 1-3 осуществления сторона кодера или сторона декодера ожидает получить угол взвешенного предсказания, позицию взвешенного предсказания и коэффициент преобразования весов текущего блока, и в варианте 10 осуществления может быть получен коэффициент преобразования весов. На основе этого угол взвешенного предсказания и позицию взвешенного предсказания текущего блока получают следующими способами.[277] Embodiment 11 of the invention. In Embodiments 1 to 3, the encoder side or the decoder side expects to obtain the weighted prediction angle, the weighted prediction position, and the weight conversion coefficient of the current block, and in Embodiment 10, the weight conversion coefficient can be obtained. Based on this, the weighted prediction angle and the weighted prediction position of the current block are obtained by the following methods.

[278] В первом способе сторона кодера и сторона декодера договариваются о том, чтобы принять один и тот же угол взвешенного предсказания в качестве угла взвешенного предсказания текущего блока, и договариваются о том, чтобы принять одну и ту же позицию взвешенного предсказания в качестве позиции взвешенного предсказания текущего блока. Например, и сторона кодера, и сторона декодера принимают угол А взвешенного предсказания в качестве угла взвешенного предсказания текущего блока и принимают позицию 4 взвешенного предсказания в качестве позиции взвешенного предсказания текущего блока.[278] In the first method, the encoder side and the decoder side agree to accept the same weighted prediction angle as the weighted prediction angle of the current block, and agree to accept the same weighted prediction position as the weighted prediction position predictions of the current block. For example, both the encoder side and the decoder side receive the weighted prediction angle A as the weighted prediction angle of the current block, and receive the weighted prediction position 4 as the weighted prediction position of the current block.

[279] Во втором способе сторона кодера строит список углов взвешенного предсказания, который может включать по меньшей мере один угол взвешенного предсказания, например, список углов взвешенного предсказания может включать угол А взвешенного предсказания и угол В взвешенного предсказания. Сторона кодера строит список позиций взвешенного предсказания, который может включать по меньшей мере одну позицию взвешенного предсказания, например, список позиций взвешенного предсказания может включать позиции взвешенного предсказания от 0 до 6. Сторона кодера строит по меньшей мере две таблицы поиска, например, первую таблицу поиска и вторую таблицу поиска, при этом первая таблица поиска включает по меньшей мере один коэффициент преобразования весов, и вторая таблица поиска включает по меньшей мере один коэффициент преобразования весов. Сторона кодера определяет целевую таблицу поиска, см. вариант 10 осуществления для способа определения целевой таблицы поиска. В качестве примера целевая таблица поиска является первой таблицей поиска. Сторона кодера последовательно проходит каждый угол взвешенного предсказания в списке углов взвешенного предсказания, проходит каждую позицию взвешенного предсказания в списке позиций взвешенного предсказания и последовательно проходит каждый коэффициент преобразования весов в целевой таблице поиска. То есть проходит комбинацию каждого угла взвешенного предсказания, каждой позиции взвешенного предсказания и каждого коэффициента преобразования весов. Для каждой комбинации угла (углов) взвешенного предсказания, позиции (позиций) взвешенного предсказания и коэффициента (коэффициентов) преобразования весов угол взвешенного предсказания, позиция взвешенного предсказания и коэффициент преобразования весов в комбинации могут быть приняты в качестве угла взвешенного предсказания, позиции взвешенного предсказания и коэффициента преобразования весов текущего блока, полученных на этапе 401, и этапы с 402 по 408 выполняют на основе угла взвешенного предсказания, позиции взвешенного предсказания и коэффициента преобразования весов для получения значения взвешенного предсказания текущего блока.[279] In the second method, the encoder side constructs a list of weighted prediction angles, which may include at least one weighted prediction angle, for example, the list of weighted prediction angles may include weighted prediction angle A and weighted prediction angle B. The encoder side constructs a list of weighted prediction positions, which may include at least one weighted prediction position, for example, the list of weighted prediction positions may include weighted prediction positions 0 to 6. The encoder side constructs at least two lookup tables, for example, a first lookup table and a second lookup table, wherein the first lookup table includes at least one weight conversion factor and the second lookup table includes at least one weight conversion factor. The encoder side determines the target lookup table, see Embodiment 10 for a method for determining the target lookup table. As an example, the lookup target table is the first lookup table. The encoder side sequentially traverses each weighted prediction angle in the weighted prediction angle list, traverses each weighted prediction position in the weighted prediction position list, and sequentially traverses each weight conversion coefficient in the target lookup table. That is, a combination of each weighted prediction angle, each weighted prediction position, and each weight conversion factor is passed through. For each combination of weighted prediction angle(s), weighted prediction position(s), and weight transformation coefficient(s), the weighted prediction angle, weighted prediction position, and weight transformation coefficient in combination can be taken as the weighted prediction angle, weighted prediction position, and coefficient converting the weights of the current block obtained in step 401 and steps 402 to 408 are performed based on the weighted prediction angle, the weighted prediction position, and the weight conversion factor to obtain the weighted prediction value of the current block.

[280] Таким образом, сторона кодера может получить группу значений взвешенного предсказания, соответствующих текущему блоку, на основе каждой комбинации (комбинация включает угол взвешенного предсказания, позицию взвешенного предсказания и коэффициент преобразования весов). После получения каждой группы значений взвешенного предсказания текущего блока сторона кодера может определить соответствующее значение стоимости RDO на основе каждой группы значений взвешенного предсказания текущего блока. Способ определения стоимости RDO не ограничен. Сторона кодера может получить значение стоимости RDO для каждой комбинации и выбрать минимальное значение стоимости RDO из всех значений стоимости RDO.[280] Thus, the encoder side can obtain a group of weighted prediction values corresponding to the current block based on each combination (the combination includes a weighted prediction angle, a weighted prediction position, and a weight conversion factor). After receiving each group of weighted prediction values of the current block, the encoder side can determine the corresponding RDO cost value based on each group of weighted prediction values of the current block. The method for determining the value of RDO is not limited. The encoder side may obtain the RDO cost value for each combination and select the minimum RDO cost value from all the RDO cost values.

[281] Затем сторона кодера принимает угол взвешенного предсказания, позицию взвешенного предсказания и коэффициент преобразования весов, соответствующие минимальному значению стоимости RDO, в качестве целевого угла взвешенного предсказания, целевой позиции взвешенного предсказания и целевого коэффициента преобразования весов, соответственно, и наконец, кодирует значение индекса целевого угла взвешенного предсказания в списке углов взвешенного предсказания, значение индекса целевой позиции взвешенного предсказания в списке позиций взвешенного предсказания и значение индекса целевого коэффициента преобразования весов в целевой таблице поиска в битовый поток текущего блока.[281] Then, the encoder side takes the weighted prediction angle, weighted prediction position, and weight conversion factor corresponding to the minimum RDO cost value as the target weighted prediction angle, target weighted prediction position, and target weight conversion factor, respectively, and finally encodes the index value a weighted prediction target angle in the weighted prediction angle list, an index value of the weighted prediction target position in the weighted prediction position list, and an index value of the target weight conversion factor in the target lookup table into the bit stream of the current block.

[282] Сторона декодера строит список углов взвешенного предсказания, который идентичен списку углов взвешенного предсказания на стороне кодера, сторона декодера строит список позиций взвешенного предсказания, который идентичен списку позиций взвешенного предсказания на стороне кодера, и сторона декодера строит таблицу поиска, которая идентична таблице поиска на стороне кодера. После приема кодированного битового потока текущего блока сторона декодера декодирует информацию указания из кодированного битового потока, выбирает угол взвешенного предсказания из списка углов взвешенного предсказания в качестве угла взвешенного предсказания текущего блока в соответствии с информацией указания и выбирает позицию взвешенного предсказания из списка позиций взвешенного предсказания в качестве позиции взвешенного предсказания текущего блока в соответствии с информацией указания. См. вариант 9 осуществления для способа получения угла взвешенного предсказания и позиции взвешенного предсказания, который здесь не описывается повторно. После приема кодированного битового потока текущего блока сторона декодера может определить целевую таблицу поиска (например, первую таблицу поиска или вторую таблицу поиска) и выбрать коэффициент преобразования весов из целевой таблицы поиска в качестве коэффициента преобразования весов текущего блока на основе информации об индексе коэффициента преобразования весов, см. вариант 10 осуществления для получения коэффициента преобразования весов, который здесь не описывается повторно.[282] The decoder side builds a list of weighted prediction angles that is identical to the list of weighted prediction angles on the encoder side, the decoder side builds a list of weighted prediction positions that is identical to the list of weighted prediction positions on the encoder side, and the decoder side builds a lookup table that is identical to the lookup table on the encoder side. After receiving the encoded bitstream of the current block, the decoder side decodes the indication information from the encoded bitstream, selects a weighted prediction angle from the list of weighted prediction angles as the weighted prediction angle of the current block according to the indication information, and selects a weighted prediction position from the list of weighted prediction positions as weighted prediction positions of the current block according to the indication information. See Embodiment 9 for a method for obtaining a weighted prediction angle and a weighted prediction position, which is not described again here. After receiving the encoded bit stream of the current block, the decoder side may determine a target lookup table (for example, a first lookup table or a second lookup table) and select a weight conversion coefficient from the target lookup table as the weight conversion coefficient of the current block based on the weight conversion coefficient index information. see Embodiment 10 to obtain the weight conversion factor, which is not described again here.

[283] Вариант 12 осуществления изобретения. В вариантах 1-3 осуществления изобретения первое значение предсказания позиции пикселя определяют на основе первого режима предсказания, а второе значение предсказания позиции пикселя определяют на основе второго режима предсказания.[283] Embodiment 12 of the invention. In Embodiments 1 to 3 of the invention, the first pixel position prediction value is determined based on the first prediction mode, and the second pixel position prediction value is determined based on the second prediction mode.

[284] В этом варианте осуществления изобретения описание приведено для первого режима предсказания, являющегося режимом внешнего предсказания, и второго режима предсказания, являющегося режимом внешнего предсказания, в качестве примера.[284] In this embodiment, description is given for the first prediction mode being an inter prediction mode and the second prediction mode being an inter prediction mode as an example.

[285] Условие 1. Первый режим предсказания представляет собой режим внешнего предсказания, второй режим предсказания представляет собой режим внешнего предсказания, и получают список кандидатов для компенсации движения, при этом список кандидатов для компенсации движения включает по меньшей мере две части информации о возможном движении. Одну часть информации о возможном движении выбирают из списка кандидатов для компенсации движения в качестве первой целевой информации о движении текущего блока, а другую часть информации о возможном движении выбирают из списка кандидатов для компенсации движения в качестве второй целевой информации о движении текущего блока. Для каждой позиции пикселя текущего блока определяют первое значение предсказания позиции пикселя на основе первой целевой информации о движении и определяют второе значение предсказания позиции пикселя на основе второй целевой информации о движении.[285] Condition 1: The first prediction mode is an inter-prediction mode, the second prediction mode is an inter-prediction mode, and a motion compensation candidate list is obtained, wherein the motion compensation candidate list includes at least two pieces of possible motion information. One piece of the possible motion information is selected from the motion compensation candidate list as the first motion target information of the current block, and another piece of the possible motion information is selected from the motion compensation candidate list as the second motion target information of the current block. For each pixel position of the current block, a first pixel position prediction value is determined based on the first motion target information, and a second pixel position prediction value is determined based on the second motion target information.

[286] Например, и сторона кодера, и сторона декодера могут получать список кандидатов для компенсации движения, и список кандидатов для компенсации движения на стороне кодера может быть таким же, как список кандидатов для компенсации движения на стороне декодера, что не ограничивается здесь.[286] For example, both the encoder side and the decoder side may obtain a motion compensation candidate list, and the encoder side motion compensation candidate list may be the same as the decoder side motion compensation candidate list, which is not limited here.

[287] Например, все части информации о возможном движении в списке кандидатов для компенсации движения представляют собой информацию о движении с одной гипотезой, например, информация о возможном движении в списке кандидатов для компенсации движения представляет собой информацию об однонаправленном движении, а не информацию о двунаправленном движении. Поскольку все части информации о возможном движении представляют собой информацию о движении с одной гипотезой, список кандидатов для компенсации движения может быть списком кандидатов для компенсации однонаправленного движения.[287] For example, all pieces of possible motion information in a motion compensation candidate list are single-hypothesis motion information, e.g., possible motion information in a motion compensation candidate list is unidirectional motion information rather than bidirectional motion information. movement. Since all pieces of candidate motion information are single-hypothesis motion information, the motion compensation candidate list may be a unidirectional motion compensation candidate list.

[288] Процесс получения списка кандидатов для компенсации движения можно увидеть в последующих вариантах осуществления изобретения, и здесь он повторяться не будет.[288] The process of obtaining a candidate list for motion compensation can be seen in subsequent embodiments of the invention and will not be repeated here.

[289] Сторона кодера может выбрать, на основе RDO, одну часть информации о возможном движении из списка кандидатов для компенсации движения в качестве первой целевой информации о движении текущего блока и выбрать другую часть информации о возможном движении из списка кандидатов для компенсации движения в качестве второй целевой информации о движении текущего блока, при этом первая целевая информация о движении отличается от второй целевой информации о движении, что не ограничивается здесь.[289] The encoder side may select, based on the RDO, one piece of possible motion information from the motion compensation candidate list as the first target motion information of the current block, and select another piece of possible motion information from the motion compensation candidate list as the second target motion information of the current block, wherein the first target motion information is different from the second target motion information, which is not limited here.

[290] В возможной реализации, когда сторона кодера передает кодированный битовый поток на сторону декодера, кодированный битовый поток может переносить информацию а указания и информацию b указания. Информация а указания указывает значение 1 индекса первой целевой информации о движении текущего блока, и значение индекса 1 представляет, какая информация о возможном движении в списке кандидатов для компенсации движения является первой целевой информацией о движении. Информация b указания указывает значение 2 индекса второй целевой информации о движении текущего блока, и значение 2 индекса представляет, какая информация о возможном движении в списке кандидатов для компенсации движения является второй целевой информацией о движении. Например, значение 1 индекса и значение 2 индекса могут быть различными.[290] In a possible implementation, when the encoder side transmits the encoded bitstream to the decoder side, the encoded bitstream may carry indication information a and indication information b. The indication information a indicates an index value 1 of the first target motion information of the current block, and an index value 1 represents which possible motion information in the candidate list for motion compensation is the first target motion information. The indication information b indicates the index value 2 of the second target motion information of the current block, and the index value 2 represents which possible motion information in the candidate list for motion compensation is the second target motion information. For example, index value 1 and index value 2 may be different.

[291] После приема кодированного битового потока сторона декодера может проанализировать информацию а указания и информацию b указания из кодированного битового потока. На основе информации а указания сторона декодера выбирает информацию о возможном движении, соответствующую значению 1 индекса, из списка кандидатов для компенсации движения в качестве первой целевой информации о движении текущего блока. На основе информации b указания сторона декодера выбирает информацию о возможном движении, соответствующую значению 2 индекса, из списка кандидатов для компенсации движения в качестве второй целевой информации о движении текущего блока.[291] After receiving the encoded bitstream, the decoder side can analyze the indication information a and the indication information b from the encoded bitstream. Based on the indication information a, the decoder side selects the possible motion information corresponding to the index value 1 from the motion compensation candidate list as the first target motion information of the current block. Based on the indication information b, the decoder side selects the candidate motion information corresponding to the index value 2 from the motion compensation candidate list as the second target motion information of the current block.

[292] В другой возможной реализации, когда сторона кодера передает кодированный битовый поток на сторону декодера, кодированный битовый поток может переносить информацию а указания и информацию с указания. Информация а указания указывает значение 1 индекса первой целевой информации о движении текущего блока, и значение 1 индекса представляет, какая информация о возможном движении в списке кандидатов для компенсации движения является первой целевой информацией о движении. Информация с указания может использоваться для указания разности между значением 1 индекса и значением 2 индекса, при этом значение индекса 2 представляет, какая информация о возможном движении в списке кандидатов для компенсации движения является второй целевой информацией о движении. Например, значение 1 индекса и значение 2 индекса могут быть различными.[292] In another possible implementation, when the encoder side transmits the encoded bitstream to the decoder side, the encoded bitstream may carry indication information and indication information. The indication information a indicates the index value 1 of the first target motion information of the current block, and the index value 1 represents which possible motion information in the candidate list for motion compensation is the first target motion information. The indication information may be used to indicate the difference between index value 1 and index value 2, where index value 2 represents which possible motion information in the motion compensation candidate list is the second target motion information. For example, index value 1 and index value 2 may be different.

[293] После приема кодированного битового потока сторона декодера может проанализировать информацию а указания и информацию с указания из кодированного битового потока. На основе информации а указания сторона декодера выбирает информацию о возможном движении, соответствующую значению 1 индекса, из списка кандидатов для компенсации движения в качестве первой целевой информации о движении текущего блока. На основе информации с указания сторона декодера получает разность между значением 2 индекса и значением 1 индекса и определяет значение 2 индекса на основе упомянутой разности и значения 1 индекса, затем сторона декодера может выбрать информацию о возможном движении, соответствующую значению 2 индекса из списка кандидатов для компенсации движения, в качестве второй целевой информации о движении текущего блока.[293] After receiving the coded bit stream, the decoder side can analyze the indication information A and the indication information C from the coded bit stream. Based on the indication information a, the decoder side selects the possible motion information corresponding to the index value 1 from the motion compensation candidate list as the first target motion information of the current block. Based on the indication information, the decoder side obtains the difference between the index value 2 and the index value 1, and determines the index value 2 based on the difference and the index value 1, then the decoder side can select the possible motion information corresponding to the index value 2 from the candidate list for compensation movement, as the second target information about the movement of the current block.

[294] Процесс, в котором сторона кодера / сторона декодера определяет первое значение предсказания позиции пикселя на основе первой целевой информации о движении и определяет второе значение предсказания позиции пикселя на основе второй целевой информации о движении, может относиться к процессу внешнего предсказания и не будет здесь повторяться.[294] The process in which the encoder side/decoder side determines a first pixel position prediction value based on the first motion target information and determines a second pixel position prediction value based on the second motion target information may be referred to as an inter prediction process and will not be described here. repeat.

[295] Например, когда первое значение предсказания позиции пикселя определяют на основе первой целевой информации о движении, первое значение предсказания позиции пикселя может быть получено с использованием режима внешнего взвешенного предсказания. Например, начальное значение предсказания позиции пикселя определяют на основе первой целевой информации о движении, а затем начальное значение предсказания умножают на заданный коэффициент для получения корректирующего значения предсказания. Если корректирующее значение предсказания больше, чем максимальное значение предсказания, максимальное значение предсказания принимают в качестве первого значения предсказания текущего блока; если корректирующее значение предсказания меньше минимального значения предсказания, минимальное значение предсказания принимают в качестве первого значения предсказания текущего блока; и, если корректирующее значение предсказания не меньше минимального значения предсказания или не больше максимального значения предсказания, корректирующее значение предсказания принимают в качестве первого значения предсказания текущего блока. Описанный выше способ является только иллюстративным и не ограничивается здесь.[295] For example, when the first pixel position prediction value is determined based on the first motion target information, the first pixel position prediction value may be obtained using an external weighted prediction mode. For example, an initial pixel position prediction value is determined based on the first motion target information, and then the initial prediction value is multiplied by a predetermined factor to obtain a correction prediction value. If the correction prediction value is greater than the maximum prediction value, the maximum prediction value is taken as the first prediction value of the current block; if the correction prediction value is smaller than the minimum prediction value, the minimum prediction value is taken as the first prediction value of the current block; and, if the prediction correction value is not less than the minimum prediction value or not greater than the maximum prediction value, the prediction correction value is taken as the first prediction value of the current block. The method described above is only illustrative and is not limited here.

[296] Аналогично, когда второе значение предсказания позиции пикселя определяют на основе второй целевой информации о движении, второе значение предсказания позиции пикселя может быть получено с использованием режима внешнего взвешенного предсказания. Конкретная реализация может быть отнесена к приведенному выше примеру и не будет здесь повторяться.[296] Similarly, when the second pixel position prediction value is determined based on the second motion target information, the second pixel position prediction value can be obtained using an external weighted prediction mode. The specific implementation can be referred to as the example above and will not be repeated here.

[297] Условие 2. Первый режим предсказания представляет собой режим внешнего предсказания, и второй режим предсказания представляет собой режим внешнего предсказания. Получают первый список кандидатов для компенсации движения и второй список кандидатов для компенсации движения, при этом первый список кандидатов для компенсации движения включает по меньшей мере одну часть информации о возможном движении, и второй список кандидатов для компенсации движения включает по меньшей мере одну часть информации о возможном движении. Одну часть информации о возможном движении выбирают из первого списка кандидатов для компенсации движения в качестве первой целевой информации о движении текущего блока, и одну часть информации о возможном движении выбирают из второго списка кандидатов для компенсации движения в качестве второй целевой информации о движении текущего блока. Для каждой позиции пикселя текущего блока первое значение предсказания позиции пикселя определяют на основе первой целевой информации о движении; и второе значение предсказания позиции пикселя определяют на основе второй целевой информации о движении.[297] Condition 2: The first prediction mode is an inter prediction mode, and the second prediction mode is an inter prediction mode. A first list of candidates for motion compensation and a second list of candidates for motion compensation are obtained, wherein the first list of candidates for motion compensation includes at least one piece of information about a possible motion, and the second list of candidates for motion compensation includes at least one piece of information about a possible movement. One piece of the possible motion information is selected from the first list of candidates for motion compensation as the first target motion information of the current block, and one piece of the possible motion information is selected from the second list of candidates for motion compensation as the second target motion information of the current block. For each pixel position of the current block, a first pixel position prediction value is determined based on the first motion target information; and a second pixel position prediction value is determined based on the second target motion information.

[298] Например, сторона кодера и сторона декодера могут получать первый список кандидатов для компенсации движения и второй список кандидатов для компенсации движения, и первый список кандидатов для компенсации движения на стороне кодера может быть идентичен первому списку кандидатов для компенсации движения на стороне декодера, а второй список кандидатов для компенсации движения на стороне кодера может быть идентичен второму списку кандидатов для компенсации движения на стороне декодера.[298] For example, the encoder side and the decoder side may receive a first motion compensation candidate list and a second motion compensation candidate list, and the first motion compensation candidate list on the encoder side may be identical to the first motion compensation candidate list on the decoder side, and the second list of motion compensation candidates on the encoder side may be identical to the second list of motion compensation candidates on the decoder side.

[299] Все части информации о возможном движении в первом списке кандидатов для компенсации движения представляют собой информацию о движении с одной гипотезой, то есть информация о возможном движении в первом списке кандидатов для компенсации движения представляет собой информацию об однонаправленном движении, а не информацию о двунаправленном движении. Поскольку все части информации о возможном движении являются информацией о движении с одной гипотезой, первый список кандидатов для компенсации движения может быть списком кандидатов для компенсации однонаправленного движения.[299] All pieces of possible motion information in the first motion compensation candidate list are single-hypothesis motion information, that is, the possible motion information in the first motion compensation candidate list is unidirectional motion information rather than bidirectional motion information. movement. Since all pieces of candidate motion information are single-hypothesis motion information, the first motion compensation candidate list may be a unidirectional motion compensation candidate list.

[300] Все части информации о возможном движении во втором списке кандидатов для компенсации движения представляют собой информацию о движении с одной гипотезой, то есть информация о возможном движении во втором списке кандидатов для компенсации движения представляет собой информацию об однонаправленном движении, а не информацию о двунаправленном движении. Поскольку все части информации о возможном движении являются информацией о движении с одной гипотезой, второй список кандидатов для компенсации движения может быть списком кандидатов для компенсации однонаправленного движения.[300] All pieces of possible motion information in the second motion compensation candidate list are single-hypothesis motion information, that is, the possible motion information in the second motion compensation candidate list is unidirectional motion information rather than bidirectional motion information. movement. Since all pieces of candidate motion information are single-hypothesis motion information, the second motion compensation candidate list may be a unidirectional motion compensation candidate list.

[301] Процесс получения первого списка кандидатов для компенсации движения и второго списка кандидатов для компенсации движения можно увидеть в последующих вариантах осуществления изобретения.[301] The process of obtaining the first motion compensation candidate list and the second motion compensation candidate list can be seen in subsequent embodiments of the invention.

[302] Сторона кодера может, на основе RDO, выбрать одну часть информации о возможном движении из первого списка кандидатов для компенсации движения в качестве первой целевой информации о движении текущего блока и выбрать одну часть информации о возможном движении из второго списка кандидатов для компенсации движения в качестве второй целевой информации о движении текущего блока, при этом первая целевая информация о движении отличается от второй целевой информации о движении, что здесь не ограничено.[302] The encoder side may, based on the RDO, select one piece of possible motion information from the first candidate list for motion compensation as the first target motion information of the current block, and select one piece of possible motion information from the second candidate list for motion compensation in as the second target motion information of the current block, wherein the first target motion information is different from the second target motion information, which is not limited here.

[303] Когда сторона кодера передает кодированный битовый поток на сторону декодера, кодированный битовый поток несет информацию а указания и информацию b указания. Информация а указания указывает значение 1 индекса первой целевой информации о движении текущего блока, и значение индекса 1 представляет, какая информация о возможном движении в первом списке кандидатов для компенсации движения является первой целевой информацией о движении. Информация b указания указывает значение 2 индекса второй целевой информации о движении текущего блока, и значение 2 индекса представляет, какая информация о возможном движении во втором списке кандидатов для компенсации движения является второй целевой информацией о движении. После приема кодированного битового потока сторона декодера анализирует информацию а указания и информацию b указания из кодированного битового потока. На основе информации а указания сторона декодера выбирает информацию о возможном движении, соответствующую значению 1 индекса, из первого списка кандидатов для компенсации движения в качестве первой целевой информации о движении текущего блока. На основе информации b указания сторона декодера выбирает информацию о возможном движении, соответствующую значению 2 индекса, из второго списка кандидатов для компенсации движения в качестве второй целевой информации о движении текущего блока.[303] When the encoder side transmits the encoded bitstream to the decoder side, the encoded bitstream carries indication information a and indication information b. The indication information a indicates an index value 1 of the first target motion information of the current block, and an index value 1 represents which possible motion information in the first candidate list for motion compensation is the first target motion information. The indication information b indicates the index value 2 of the second target motion information of the current block, and the index value 2 represents which possible motion information in the second candidate list for motion compensation is the second target motion information. After receiving the coded bitstream, the decoder side analyzes the indication information a and the indication information b from the coded bitstream. Based on the indication information a, the decoder side selects the candidate motion information corresponding to the index value 1 from the first motion compensation candidate list as the first target motion information of the current block. Based on the indication information b, the decoder side selects the possible motion information corresponding to the index value 2 from the second motion compensation candidate list as the second target motion information of the current block.

[304] В описанных выше условиях информация указания информации предсказания для первого режима предсказания и информация указания информации предсказания для второго режима предсказания могут быть взаимозаменяемыми при условии, что сторона кодера и сторона декодера согласованы. Обмен информацией указания не влияет на процесс синтаксического анализа, то есть зависимость от синтаксического анализа отсутствует. В случае использования одного и того же списка кандидатов режима предсказания, информация указания информации предсказания для первого режима предсказания не может быть равна информации указания информации предсказания для второго режима предсказания. Предполагается, что кодируются два индекса, при этом значение а индекса равно 1, а значение b индекса равно 3, когда значение а индекса кодируется первым, значение b индекса может кодироваться как 2 (т.е. 3-1); и когда значение b индекса кодируется первым, значение b индекса должно кодироваться как 3. Одним словом, информация указания кодирования сначала с меньшим значением индекса может уменьшить служебные данные кодирования для кодирования большего значения индекса. Согласно способу построения списка кандидатов режима предсказания, первый режим предсказания, вероятнее всего, поступает с левой стороны, и на основе этого предшествующего опыта может быть выполнена корректировка на стороне кодера и стороне декодера, при этом может сначала кодироваться информация указания информации предсказания в области, смежной с левой стороной.[304] Under the conditions described above, the prediction information indicating information for the first prediction mode and the prediction information indicating information for the second prediction mode can be interchangeable provided that the encoder side and the decoder side are matched. The exchange of hint information does not affect the parsing process, that is, there is no dependency on parsing. In the case of using the same prediction mode candidate list, the prediction information indicating information for the first prediction mode cannot be equal to the prediction information indicating information for the second prediction mode. It is assumed that two indices are encoded, with the a index value being 1 and the b index value being 3, when the a index value is encoded first, the b index value can be encoded as 2 (ie 3-1); and when the index value b is encoded first, the index value b must be encoded as 3. In a word, the encoding indication information with a smaller index value first can reduce the encoding overhead for encoding a larger index value. According to the prediction mode candidate list construction method, the first prediction mode most likely comes from the left side, and based on this previous experience, adjustment can be made on the encoder side and the decoder side, and the prediction information indicating information in the area adjacent to the with the left side.

[305] Следующее описание комбинируется с условием 1, а другие условия аналогичны Условию 1. В Условии 1 список кандидатов режима предсказания может быть списком кандидатов для компенсации движения, информация предсказания первого режима предсказания может быть первой целевой информацией о движении, и информация предсказания второго режима предсказания может быть второй целевой информацией о движении. В кодированном битовом потоке сначала кодируется информация указания первой целевой информации о движении, такая как значение а индекса, а затем кодируется информация указания второй целевой информации о движении, такая как значение b индекса. Опционально, сначала кодируется информация указания второй целевой информации о движении, такая как значение b индекса, и затем кодируется информация указания первой целевой информации о движении, такая как значение а индекса. Например, если значение а индекса равно 1, а значение b индекса равно 3, значение а индекса кодируется перед значением b индекса. В другом примере, если значение b индекса равно 1, а значение а индекса равно 3, значение b индекса кодируется перед значением а индекса.[305] The following description is combined with Condition 1, and other conditions are the same as Condition 1. In Condition 1, the prediction mode candidate list may be a motion compensation candidate list, the prediction information of the first prediction mode may be the first motion target information, and the prediction information of the second mode predictions may be the second target motion information. In the encoded bit stream, the first target motion information indication information such as index value a is encoded first, and then the second target motion information indication information such as index value b is encoded. Optionally, the second target motion information indicating information, such as the index value b, is first encoded, and then the first motion target information indicating information, such as the index value a, is encoded. For example, if the index value a is 1 and the index b value is 3, the index value a is encoded before the index value b. In another example, if the index value b is 1 and the index value a is 3, the index value b is encoded before the index value a.

[306] Вариант 13 осуществления изобретения. В вариантах 1-3 осуществления изобретения первое значение предсказания позиции пикселя определяют на основе первого режима предсказания, а второе значение предсказания позиции пикселя определяют на основе второго режима предсказания. Например, первый режим предсказания может быть любым из режима предсказания внутриблочного копирования, режима внутреннего предсказания, режима внешнего предсказания и режима палитры; и второй режим предсказания может быть любым из режима предсказания внутриблочного копирования, режима внутреннего предсказания, режима внешнего предсказания и режима палитры.[306] Embodiment 13 of the invention. In Embodiments 1 to 3 of the invention, the first pixel position prediction value is determined based on the first prediction mode, and the second pixel position prediction value is determined based on the second prediction mode. For example, the first prediction mode may be any of an intra-block copy prediction mode, an intra prediction mode, an inter prediction mode, and a palette mode; and the second prediction mode may be any of an intra-block copy prediction mode, an intra prediction mode, an inter prediction mode, and a palette mode.

[307] В этом варианте осуществления изобретения описание приведено для первого режима предсказания, являющегося режимом внешнего предсказания, и второго режима предсказания, являющегося режимом внешнего предсказания, в качестве примера. Поскольку первый режим предсказания является режимом внешнего предсказания, определение первого значения предсказания позиции пикселя на основе первого режима предсказания текущего блока может включать: получение списка кандидатов для компенсации движения, включающего по меньшей мере одну часть информации о возможном движении; выбор одной части информации о возможном движении из списка кандидатов для компенсации движения в качестве исходной информации о движении текущего блока; определение целевой информации о движении текущего блока на основе исходной информации о движении; и определение первого значения предсказания позиции пикселя на основе целевой информации о движении.[307] In this embodiment, description is given for the first prediction mode being an inter prediction mode and the second prediction mode being an inter prediction mode as an example. Since the first prediction mode is an inter-prediction mode, determining a first pixel position prediction value based on the first prediction mode of the current block may include: obtaining a motion compensation candidate list including at least one piece of possible motion information; selecting one piece of possible motion information from the list of candidates for motion compensation as the initial motion information of the current block; determining target motion information of the current block based on the original motion information; and determining a first pixel position prediction value based on the target motion information.

[308] Условие 1. Первый режим предсказания представляет собой режим внешнего предсказания, второй режим предсказания представляет собой режим внешнего предсказания, и получают список кандидатов для компенсации движения, при этом список кандидатов для компенсации движения может включать по меньшей мере две части информации о возможном движении. Одну часть информации о возможном движении выбирают из списка кандидатов для компенсации движения в качестве первой исходной информации о движении текущего блока, а другую часть информации о возможном движении выбирают из списка кандидатов для компенсации движения в качестве второй исходной информации о движении текущего блока. Первая исходная информация о движении отличается от второй исходной информации о движении. Затем на основе первой исходной информации о движении определяют первую целевую информацию о движении текущего блока, и на основе второй исходной информации о движении определяют вторую целевую информацию о движении текущего блока. Для каждой позиции пикселя текущего блока первое значение предсказания позиции пикселя определяют на основе первой целевой информации о движении, а второе значение предсказания позиции пикселя определяют на основе второй целевой информации о движении.[308] Condition 1: The first prediction mode is an inter-prediction mode, the second prediction mode is an inter-prediction mode, and a motion compensation candidate list is obtained, wherein the motion compensation candidate list may include at least two pieces of possible motion information . One piece of the possible motion information is selected from the motion compensation candidate list as the first motion source information of the current block, and the other piece of the possible motion information is selected from the motion compensation candidate list as the second motion source information of the current block. The first motion source information is different from the second motion source information. Then, based on the first source motion information, first target motion information of the current block is determined, and based on the second source motion information, second target motion information of the current block is determined. For each pixel position of the current block, a first pixel position prediction value is determined based on the first motion target information, and a second pixel position prediction value is determined based on the second motion target information.

[309] Процесс получения списка кандидатов для компенсации движения можно увидеть в последующих вариантах осуществления изобретения, и здесь он повторяться не будет. Процесс определения первого значения предсказания на основе первой целевой информации о движении и определения второго значения предсказания на основе второй целевой информации о движении можно увидеть в варианте 12 осуществления изобретения, и здесь он повторяться не будет. В отличие от варианта 12 осуществления изобретения, в варианте 13 осуществления изобретения информация о возможном движении, выбранная из списка кандидатов для компенсации движения, используется в качестве исходной информации о движении, а не в качестве целевой информации о движении. После получения исходной информации о движении целевая информация о движении может быть получена на основе исходной информации о движении, см. последующие варианты осуществления изобретения для конкретного процесса получения.[309] The process of obtaining a candidate list for motion compensation can be seen in subsequent embodiments of the invention and will not be repeated here. The process of determining the first prediction value based on the first motion target information and determining the second prediction value based on the second motion target information can be seen in Embodiment 12 of the invention and will not be repeated here. Unlike Embodiment 12, in Embodiment 13, possible motion information selected from the candidate list for motion compensation is used as source motion information rather than as target motion information. After obtaining the source motion information, the target motion information can be obtained based on the source motion information, see the following embodiments for a specific acquisition process.

[310] Условие 2. Первый режим предсказания представляет собой режим внешнего предсказания, второй режим предсказания представляет собой режим внешнего предсказания, получают первый список кандидатов для компенсации движения и второй список кандидатов для компенсации движения, при этом первый список кандидатов для компенсации движения включает по меньшей мере одну часть информации о возможном движении, и второй список кандидатов для компенсации движения включает по меньшей мере одну часть информации о возможном движении. Одну часть информации о возможном движении выбирают из первого списка кандидатов для компенсации движения в качестве первой исходной информации о движении текущего блока, и на основе первой исходной информации о движении определяют первую целевую информацию о движении текущего блока. Одну часть информации о возможном движении выбирают из второго списка кандидатов для компенсации движения в качестве второй исходной информации о движении текущего блока, и на основе второй исходной информации о движении определяют вторую целевую информацию о движении текущего блока. Для каждой позиции пикселя текущего блока первое значение предсказания позиции пикселя определяют на основе первой целевой информации о движении; и второе значение предсказания позиции пикселя определяют на основе второй целевой информации о движении. В отличие от варианта 12 осуществления изобретения, в варианте 13 осуществления изобретения информацию о возможном движении, выбранную из списка кандидатов для компенсации движения, используют в качестве исходной информации о движении, а не в качестве целевой информации о движении. После получения исходной информации о движении целевая информация о движении также может быть получена на основе исходной информации о движении, см. последующие варианты осуществления для конкретного процесса получения.[310] Condition 2: The first prediction mode is an inter prediction mode, the second prediction mode is an inter prediction mode, a first motion compensation candidate list and a second motion compensation candidate list are obtained, wherein the first motion compensation candidate list includes at least at least one piece of possible motion information, and the second motion compensation candidate list includes at least one piece of possible motion information. One piece of possible motion information is selected from the first motion compensation candidate list as the first motion source information of the current block, and based on the first motion source information, the first target motion information of the current block is determined. One piece of possible motion information is selected from the second motion compensation candidate list as the second source motion information of the current block, and based on the second source motion information, the second target motion information of the current block is determined. For each pixel position of the current block, a first pixel position prediction value is determined based on the first motion target information; and a second pixel position prediction value is determined based on the second target motion information. Unlike Embodiment 12, in Embodiment 13, possible motion information selected from the candidate list for motion compensation is used as source motion information rather than as target motion information. After obtaining the source motion information, the target motion information can also be obtained based on the source motion information, see the following embodiments for a specific acquisition process.

[311] Таким образом, для описанных выше условий, когда режим предсказания является режимом внешнего предсказания, может быть получен список кандидатов для компенсации движения, при этом список кандидатов для компенсации движения включает по меньшей мере одну часть информации о возможном движении. Затем информацию о возможном движении выбирают из списка кандидатов для компенсации движения в качестве исходной информации о движении текущего блока. Первую целевую информацию о движении определяют на основе первой исходной информации о движении, а вторую целевую информацию о движении определяют на основе второй исходной информации о движении. Затем значение предсказания позиции пикселя определяют на основе целевой информации о движении.[311] Thus, for the conditions described above, when the prediction mode is an inter prediction mode, a motion compensation candidate list can be obtained, wherein the motion compensation candidate list includes at least one piece of possible motion information. Then, the possible motion information is selected from the motion compensation candidate list as the input motion information of the current block. The first target motion information is determined based on the first source motion information, and the second target motion information is determined based on the second source motion information. Then, the pixel position prediction value is determined based on the target motion information.

[312] Для определения целевой информации о движении на основе исходной информации о движении варианты осуществления изобретения предоставляют схемы наложения информации об однонаправленном движении на разность векторов движения (что называется уточнением вектора движения (Motion Vector Refinement)). Например, исходная информация о движении включает исходный вектор движения, а целевая информация о движении включает целевой вектор движения. Для определения целевого вектора движения текущего блока на основе исходного вектора движения может быть получена разность векторов движения (MVD, motion vector difference), соответствующая исходному вектору движения, и целевой вектор движения определяют на основе разности векторов движения и исходного вектора движения. То есть сумму разности векторов движения и исходного вектора движения принимают в качестве целевого вектора движения.[312] To determine target motion information based on source motion information, embodiments of the invention provide schemes for overlaying unidirectional motion information onto a motion vector difference (called Motion Vector Refinement). For example, the source motion information includes a source motion vector, and the target motion information includes a target motion vector. To determine the target motion vector of the current block based on the source motion vector, a motion vector difference (MVD) corresponding to the source motion vector can be obtained, and the target motion vector is determined based on the difference of the motion vectors and the source motion vector. That is, the sum of the difference between the motion vectors and the original motion vector is taken as the target motion vector.

[313] Вариант 14 осуществления изобретения. На основе варианта 13 осуществления изобретения согласовываются информация о направлении и информация об амплитуде разности векторов движения. Если информация о направлении указывает направление вправо, а информация об амплитуде указывает, что амплитуда равна Ar, разность векторов движения равна (Ar, 0). Если информация о направлении указывает направление вниз, а информация об амплитуде указывает, что амплитуда равна Ad, разность векторов движения равна (0, -Ad). Если информация о направлении указывает направление влево, а информация об амплитуде указывает, что амплитуда равна А1, разность векторов движения равна (-А1, 0). Если информация о направлении указывает направление вверх, а информация об амплитуде указывает, что амплитуда равна Au, разность векторов движения равна (0, Au). Если информация о направлении указывает направление вправо-вверх, а информация об амплитуде указывает, что амплитуда равна Aru, разность векторов движения равна (Aru, Aru). Если информация о направлении указывает направление влево-вверх, а информация об амплитуде указывает, что амплитуда равна Alu, разность векторов движения равна (-Alu, Alu). Если информация о направлении указывает направление влево-вниз, а информация об амплитуде указывает, что амплитуда равна Ald, разность векторов движения равна (-Ald, -Ald). Если информация о направлении указывает направление вправо-вниз, а информация об амплитуде указывает, что амплитуда равна Ard, разность векторов движения равна (Ard, -Ard).[313] Embodiment 14 of the invention. Based on Embodiment 13 of the invention, the direction information and the amplitude information of the motion vector difference are matched. If the direction information indicates the direction to the right and the amplitude information indicates that the amplitude is Ar, the motion vector difference is (Ar, 0). If the direction information indicates the downward direction and the amplitude information indicates that the amplitude is equal to Ad, the difference of motion vectors is equal to (0, -Ad). If the direction information indicates the left direction and the amplitude information indicates that the amplitude is A1, the motion vector difference is (-A1, 0). If the direction information indicates the upward direction and the amplitude information indicates that the amplitude is Au, the motion vector difference is (0, Au). If the direction information indicates the right-up direction and the amplitude information indicates that the amplitude is Aru, the difference of motion vectors is (Aru, Aru). If the direction information indicates a left-up direction and the amplitude information indicates that the amplitude is Alu, the motion vector difference is (-Alu, Alu). If the direction information indicates the left-down direction and the amplitude information indicates that the amplitude is Ald, the motion vector difference is (-Ald, -Ald). If the direction information indicates the right-down direction and the amplitude information indicates that the amplitude is Ard, the motion vector difference is (Ard, -Ard).

[314] Отметим, что вышеуказанные амплитуды Ar, Ad, Al, Au, Aru, Alu, Ald и Ard соответственно указывают на один набор значений, а значения в наборах амплитуд различных направлений могут быть полностью одинаковыми, или частично одинаковыми, или полностью различными.[314] Note that the above amplitudes Ar, Ad, Al, Au, Aru, Alu, Ald and Ard respectively indicate one set of values, and the values in sets of amplitudes of different directions may be completely the same, or partially the same, or completely different.

[315] Например, разность векторов движения может поддерживать всю или часть вышеуказанной информации о направлении, диапазон значений амплитуды А, поддерживаемый разностью векторов движения, может быть сконфигурирован на основе опыта, а амплитуда может включать по меньшей мере одно значение, которое здесь не ограничивается.[315] For example, the motion vector difference may support all or part of the above direction information, the range of values of the amplitude A supported by the motion vector difference may be configured based on experience, and the amplitude may include at least one value, which is not limited here.

[316] Например, разность векторов движения поддерживает четыре направления, такие как вверх, вниз, влево и вправо и т.д., а разность векторов движения поддерживает следующие пять конфигураций длины шага: ¼-пикселя, ½-пикселя, 1-пиксель, 2-пикселя и 4-пикселя, то есть значение амплитуды может быть 1, 2, 4, 8 и 16. Таким образом, при направлении вверх разность векторов движения может быть (0, 1), (О, 2), (0, 4), (0, 8) и (0, 16). При направлении вниз разность векторов движения может быть (0, -1), (0, -2), (0, -4), (0, -8) и (0, -16). При направлении влево разность векторов движения может быть (-1,0), (-2, 0), (-4, 0), (-8, 0) и (-16, 0). При направлении вправо разность векторов движения может быть (1, 0), (2, 0), (4, 0), (8, 0) и (16, 0).[316] For example, motion vector difference supports four directions such as up, down, left and right, etc., and motion vector difference supports the following five step length configurations: ¼-pixel, ½-pixel, 1-pixel, 2-pixel and 4-pixel, that is, the amplitude value can be 1, 2, 4, 8 and 16. Thus, in the upward direction, the difference in motion vectors can be (0, 1), (O, 2), (0, 4), (0, 8) and (0, 16). In the downward direction, the difference in motion vectors can be (0, -1), (0, -2), (0, -4), (0, -8) and (0, -16). When directed to the left, the difference in motion vectors can be (-1.0), (-2, 0), (-4, 0), (-8, 0) and (-16, 0). When directed to the right, the difference in motion vectors can be (1, 0), (2, 0), (4, 0), (8, 0) and (16, 0).

[317] В другом примере разность векторов движения поддерживает четыре направления, такие как вверх, вниз, влево и вправо и т.д., а разность векторов движения поддерживает следующие шесть конфигураций длины шага: ¼-пикселя, ½-пикселя, 1-пиксель, 2-пикселя, 3-пикселя и 4-пикселя, то есть значение амплитуды может быть равно 1, 2, 4, 8 и 16. Таким образом, при направлении вверх разность векторов движения может быть (0, 1), (0, 2), (0, 4), (0, 8), (0, 12) и (0, 16). Разности векторов движения других направлений могут быть реализованы таким же образом, как и в направлении «вверх», и здесь не повторяются.[317] In another example, the motion vector difference supports four directions such as up, down, left and right, etc., and the motion vector difference supports the following six step length configurations: ¼-pixel, ½-pixel, 1-pixel , 2-pixel, 3-pixel and 4-pixel, that is, the amplitude value can be 1, 2, 4, 8 and 16. Thus, in the upward direction, the difference in motion vectors can be (0, 1), (0, 2), (0, 4), (0, 8), (0, 12) and (0, 16). Differences in motion vectors in other directions can be realized in the same way as in the “up” direction, and are not repeated here.

[318] В другом примере разность векторов движения поддерживает восемь направлений, таких как вверх, вниз, влево, вправо, влево-вверх, влево-вниз, вправо-вверх и вправо-вниз и т.д., а разность векторов движения поддерживает следующие три конфигурации длины шага: ¼-пикселя, ½-пикселя и 1-пиксель, то есть значение амплитуды А может быть равно 1, 2 и 4. Таким образом, при направлении влево-вверх разность векторов движения может быть (-1, 1), (-2, 2) и (-4, 4). Когда направление вправо-вверх, разность векторов движения может быть (1, 1), (2, 2) и (4, 4). Разности векторов движения других направлений могут быть реализованы таким же образом, как и в направлениях «влево-вверх и вправо-вверх», а значения разностей векторов движения могут быть указаны в описанном выше соглашении и не будут здесь повторяться.[318] In another example, the motion vector difference supports eight directions such as up, down, left, right, left-up, left-down, right-up and right-down, etc., and the motion vector difference supports the following three step length configurations: ¼-pixel, ½-pixel and 1-pixel, that is, the value of amplitude A can be equal to 1, 2 and 4. Thus, in the left-up direction, the difference in motion vectors can be (-1, 1) , (-2, 2) and (-4, 4). When the direction is right-up, the difference of motion vectors can be (1, 1), (2, 2) and (4, 4). The motion vector differences of other directions can be implemented in the same way as in the left-up and right-up directions, and the meanings of the motion vector differences can be specified in the above-described convention and will not be repeated here.

[319] В другом примере разность векторов движения поддерживает четыре направления, такие как вверх, вниз, влево и вправо и т.д., а разность векторов движения поддерживает следующие четыре конфигурации длины шага: ¼-пикселя, ½-пикселя, 1-пиксель и 2-пикселя, что то есть значение амплитуды может быть равно 1, 2, 4 и 8.[319] In another example, the motion vector difference supports four directions such as up, down, left and right, etc., and the motion vector difference supports the following four step length configurations: ¼-pixel, ½-pixel, 1-pixel and 2-pixel, that is, the amplitude value can be 1, 2, 4 and 8.

[320] Приведенные выше примеры являются только иллюстративными, и здесь не делается никаких ограничений. Например, направление, поддерживаемое разностью векторов движения, может быть выбрано произвольно, например, может быть выбрано 6 направлений, таких как вверх, вниз, влево, вправо, влево-вверх и влево-вниз и т.п., или два направления, например вверх и вниз, и т.п. В качестве другого примера, конфигурация длины шага, поддерживаемая разностью векторов движения, может быть изменяемой и может гибко конфигурироваться. В другом примере конфигурация длины шага может быть адаптивно сконфигурирована на основе параметров кодирования, таких как QP (параметр квантования) и т.п. Например, 1-пиксель, 2-пикселя, 4-пикселя и 8-пикселей могут быть приняты для большего QP, а ¼-пикселя, ½-пикселя, 1-пиксель и 2-пикселя могут быть приняты для меньшего QP. В другом примере подходящая конфигурация длины шага может быть сконфигурирована на уровне последовательности, уровне изображения, уровне кадра, уровне слайса, уровне тайла, уровне патча, уровне CTU и т.п., и сторона декодера выполняет операцию декодирования в соответствии с конфигурациями длины шага, проанализированными на уровне последовательности, уровне изображения, уровне кадра, уровне слайса, уровне тайла, уровне патча, уровне CTU и т.п.[320] The above examples are illustrative only and no limitation is intended herein. For example, the direction supported by the motion vector difference can be selected arbitrarily, for example, 6 directions such as up, down, left, right, left-up and left-down etc. can be selected, or two directions, for example up and down, etc. As another example, the step length configuration supported by the motion vector difference may be changeable and flexibly configured. In another example, the step length configuration may be adaptively configured based on encoding parameters such as QP (quantization parameter) and the like. For example, 1-pixel, 2-pixel, 4-pixel and 8-pixel can be adopted for a larger QP, and ¼-pixel, ½-pixel, 1-pixel and 2-pixel can be adopted for a smaller QP. In another example, a suitable step length configuration may be configured at the sequence level, picture level, frame level, slice level, tile level, patch level, CTU level, etc., and the decoder side performs a decoding operation in accordance with the step length configurations. analyzed at sequence level, image level, frame level, slice level, tile level, patch level, CTU level, etc.

[321] Для простоты описания в последующих вариантах осуществления изобретения разность векторов движения поддерживает направления, такие как вверх и вниз и т.п., и поддерживает конфигурации длины шага, такие как 1-пиксель и 2-пикселя, в случае точности ¼-пикселя разность векторов движения может быть (0, 4), (0, 8), (0, -4), (0, -8), то есть (0, 1 << 2), (0, 1 << 3), (0, -1 << 2) и (0, -1 << 3).[321] For ease of description, in subsequent embodiments of the invention, the motion vector difference supports directions such as up and down and the like, and supports step length configurations such as 1-pixel and 2-pixel in the case of ¼-pixel precision the difference of motion vectors can be (0, 4), (0, 8), (0, -4), (0, -8), that is (0, 1 << 2), (0, 1 << 3) , (0, -1 << 2) and (0, -1 << 3).

[322] После получения списка кандидатов для компенсации движения сторона кодера может последовательно проходить каждый возможный вектор движения в списке кандидатов для компенсации движения. При прохождении возможного вектора 1 движения сумма возможного вектора 1 движения и разности векторов движения (0, 4) берется в качестве возможного вектора 1-1 движения, и определяют значение 1-1 стоимости RDO, соответствующее возможному вектору 1-1 движения. Описанный выше процесс определения здесь не ограничивается. Сумма возможного вектора 1 движения и разности векторов движения (0, 8) берется в качестве возможного вектора 1-2 движения, и определяют значение 1-2 стоимости RDO, соответствующее возможному вектору 1-2 движения. Сумма возможного вектора 1 движения и разности векторов движения (0, -4) берется в качестве возможного вектора 1-3 движения, и определяют значение 1-3 стоимости RDO, соответствующее возможному вектору 1-3 движения. Сумма возможного вектора движения 1 и разности векторов движения (0, -8) берется в качестве возможного вектора 1-4 движения, и определяют значение 1-4 стоимости RDO, соответствующее возможному вектору 1-4 движения.[322] After receiving the motion compensation candidate list, the encoder side may sequentially go through each possible motion vector in the motion compensation candidate list. When passing the possible motion vector 1, the sum of the possible motion vector 1 and the difference of the motion vectors (0, 4) is taken as the possible motion vector 1-1, and the RDO cost value 1-1 corresponding to the possible motion vector 1-1 is determined. The determination process described above is not limited here. The sum of the possible motion vector 1 and the difference of the motion vectors (0, 8) is taken as the possible motion vector 1-2, and the RDO cost value 1-2 corresponding to the possible motion vector 1-2 is determined. The sum of the possible motion vector 1 and the difference of the motion vectors (0, -4) is taken as the possible motion vector 1-3, and the RDO cost value 1-3 corresponding to the possible motion vector 1-3 is determined. The sum of the possible motion vector 1 and the difference of the motion vectors (0, -8) is taken as the possible motion vector 1-4, and the RDO cost value 1-4 corresponding to the possible motion vector 1-4 is determined.

[323] Аналогично, для каждого из пройденных возможных векторов движения значение стоимости RDO может быть получено путем описанной выше обработки. После завершения прохождения всех возможных векторов движения из всех значений стоимости RDO выбирают минимальное значение стоимости RDO. Если значение 1-1 стоимости RDO является минимальным, сторона кодера может кодировать следующее содержимое в кодированном битовом потоке: значение индекса возможного вектора 1 движения в списке кандидатов для компенсации движения, информацию о направлении и информацию об амплитуде разности векторов движения (0, 4), при этом информация о направлении используется для указания направления разности векторов движения (0, 4) вверх, а информация об амплитуде используется для указания амплитуды разности векторов движения (0, 4) и равна 4. Например, информация указания информации о направлении может быть равна 0, что указывает первое направление в списке направлений (вверх и вниз), и информация указания информации об амплитуде может быть равна 4, что указывает первую конфигурацию длины шага в списке конфигурации длины шага (1-пиксель, 2-пикселя). Описанный выше процесс является упрощенным примером, который здесь не ограничивается при условии, что могут быть указаны информация о направлении и информация об амплитуде.[323] Likewise, for each of the possible motion vectors traversed, the RDO cost value can be obtained by the processing described above. After completing the passage of all possible motion vectors, the minimum RDO cost value is selected from all RDO cost values. If the RDO cost value 1-1 is the minimum, the encoder side can encode the following contents in the encoded bitstream: the index value of candidate motion vector 1 in the motion compensation candidate list, direction information, and motion vector difference amplitude information (0, 4), wherein the direction information is used to indicate the upward direction of the motion vector difference (0, 4), and the amplitude information is used to indicate the amplitude of the motion vector difference (0, 4) and is equal to 4. For example, the direction information indication information may be 0 , which indicates the first direction in the direction list (up and down), and the amplitude information indicating information may be 4, which indicates the first step length configuration in the step length configuration list (1-pixel, 2-pixel). The process described above is a simplified example, which is not limited here as long as direction information and amplitude information can be specified.

[324] Например, когда разность векторов движения поддерживает четыре направления, такие как вверх, вниз, влево и вправо и т.п., а разность векторов движения поддерживает пять конфигураций длины шага, таких как ¼-пикселя, ½-пикселя, 1-пиксель, 2-пикселя и 4-пикселя и т.п., информация о направлении разности векторов движения может кодироваться с использованием 2-бинового кода фиксированной длины (всего четыре значения), при этом четыре значения 2-бинового кода фиксированной длины соответственно представляют четыре направления, такие как вверх, вниз, влево и вправо и т.п. Информация об амплитуде разности векторов движения может кодироваться с использованием усеченного унарного кода, то есть пять конфигураций длины шага указаны усеченным унарным кодом.[324] For example, when the motion vector difference supports four directions such as up, down, left and right, etc., and the motion vector difference supports five step length configurations such as ¼-pixel, ½-pixel, 1- pixel, 2-pixel and 4-pixel, etc., the motion vector difference direction information can be encoded using a 2-bin fixed-length code (a total of four values), wherein the four values of the 2-bin fixed-length code respectively represent four directions such as up, down, left and right, etc. The motion vector difference amplitude information may be encoded using a truncated unary code, that is, five step length configurations are indicated by a truncated unary code.

[325] Другой пример, когда разность векторов движения поддерживает четыре направления, такие как вверх, вниз, влево и вправо и т.п., а разность векторов движения поддерживает шесть конфигураций длины шага, таких как ¼-пикселя, ½-пикселя, 1-пиксель, 2-пикселя, 3-пикселя и 4-пикселя и т.п., информация о направлении разности векторов движения может кодироваться с использованием 2-бинового кода фиксированной длины (всего четыре значения), а информация об амплитуде разности векторов движения может кодироваться с использованием усеченного унарного кода.[325] Another example is where the motion vector difference supports four directions, such as up, down, left and right, etc., and the motion vector difference supports six step length configurations, such as ¼-pixel, ½-pixel, 1 -pixel, 2-pixel, 3-pixel and 4-pixel etc., information about the direction of the motion vector difference can be encoded using a 2-bin fixed-length code (four values in total), and information about the amplitude of the motion vector difference can be encoded using truncated unary code.

[326] Другой пример, когда разность векторов движения поддерживает восемь направлений, таких как вверх, вниз, влево, вправо, влево-вверх, влево-вниз, вправо-вверх и вправо-вниз и т.п., а разность векторов движения поддерживает три конфигурации длины шага, такие как ¼-пикселя, ½-пикселя и 1-пиксель и т.п., информация о направлении разности векторов движения может кодироваться с использованием 3-бинового кода фиксированной длины (всего восемь значений), а информация об амплитуде разности векторов движения может кодироваться с использованием усеченного унарного кода.[326] Another example is when the motion vector difference supports eight directions such as up, down, left, right, left-up, left-down, right-up and right-down, etc., and the motion vector difference supports three step length configurations such as ¼-pixel, ½-pixel and 1-pixel, etc., motion vector difference direction information can be encoded using a 3-bin fixed-length code (eight values in total), and amplitude information motion vector differences may be encoded using a truncated unary code.

[327] В другом примере, когда разность векторов движения поддерживает четыре направления, такие как вверх, вниз, влево, вправо и т.п., а разность векторов движения поддерживает четыре конфигурации длины шага, такие как ¼-пикселя, ½-пикселя, 1-пиксель и 2-пикселя и т.п., таким образом информация о направлении разности векторов движения может кодироваться с использованием усеченного унарного кода, а информация об амплитуде разности векторов движения может кодироваться с использованием 2-бинового кода фиксированной длины (всего четыре значения).[327] In another example, when the motion vector difference supports four directions such as up, down, left, right, etc., and the motion vector difference supports four step length configurations such as ¼-pixel, ½-pixel, 1-pixel and 2-pixel, etc., thus the motion vector difference direction information can be encoded using a truncated unary code, and the motion vector difference amplitude information can be encoded using a 2-bin fixed-length code (four values in total) ).

[328] Описанные выше способы кодирования являются только примерами и не ограничиваются здесь.[328] The encoding methods described above are examples only and are not limited here.

[329] Подводя итог, можно сказать, что сторона кодера может искать оптимальный вектор движения в определенной области, а затем принимать разность между оптимальным вектором движения и возможным вектором движения в качестве разности векторов движения и кодировать информацию об амплитуде и информацию о направлении разности векторов движения и значения индекса возможного вектора движения в списке кандидатов для компенсации движения в битовый поток. Когда на стороне кодера выполняется поиск оптимального вектора движения в определенной области, ожидается, что направление и амплитуда разности векторов движения будут согласованы, то есть поиск оптимального вектора движения осуществляется в ограниченных диапазонах разности векторов движения, например (Ar, 0), (0, -Ad), (-А1, 0), (0, Au), (Aru, Aru), (-Aru, Alu), (-Ald, -Ald) и (Ard, -Ard) и т.п., а не в любом диапазоне разности векторов движения.[329] To summarize, the encoder side can search for the optimal motion vector in a certain area, and then take the difference between the optimal motion vector and the possible motion vector as the motion vector difference, and encode the amplitude information and the direction information of the motion vector difference and an index value of a candidate motion vector in the list of candidates for motion compensation into the bitstream. When the encoder side searches for the optimal motion vector in a certain area, it is expected that the direction and amplitude of the motion vector difference will be consistent, that is, the search for the optimal motion vector is carried out in limited ranges of the motion vector difference, for example (Ar, 0), (0, - Ad), (-A1, 0), (0, Au), (Aru, Aru), (-Aru, Alu), (-Ald, -Ald) and (Ard, -Ard), etc., and not in any range of motion vector differences.

[330] После получения кодированного битового потока текущего блока сторона декодера может проанализировать значение индекса возможного вектора движения в списке кандидатов для компенсации движения из кодированного битового потока и выбрать возможный вектор движения, соответствующий значению индекса в списке кандидатов для компенсации движения и принять возможный вектор движения в качестве исходного вектора движения текущего блока. Сторона декодера также может анализировать информацию о направлении и информацию об амплитуде разности векторов движения из кодированного битового потока и определять разность векторов движения на основе информации о направлении и информации об амплитуде.[330] After receiving the encoded bitstream of the current block, the decoder side may analyze the index value of a candidate motion vector in the motion compensation candidate list from the encoded bitstream and select a candidate motion vector corresponding to the index value in the candidate list for motion compensation and receive the candidate motion vector in as the initial motion vector of the current block. The decoder side can also analyze the direction information and the motion vector difference amplitude information from the encoded bit stream, and determine the motion vector difference based on the direction information and the amplitude information.

[331] Затем сторона декодера может определить целевой вектор движения текущего блока на основе разности векторов движения и исходного вектора движения, например, сумма разности векторов движения и исходного вектора движения может быть принята в качестве целевого вектора движения текущего блока.[331] Then, the decoder side can determine the target motion vector of the current block based on the difference of the motion vectors and the source motion vector, for example, the sum of the difference of the motion vectors and the source motion vector can be taken as the target motion vector of the current block.

[332] В описанных выше вариантах осуществления изобретения, при определении разности векторов движения на основе информации о направлении и информации об амплитуде, если информация о направлении указывает направление вправо, а информация об амплитуде указывает, что амплитуда равна Ar, разность векторов движения равна (Ar, 0). Если информация о направлении указывает направление вниз, а информация об амплитуде указывает, что амплитуда равна Ad, разность векторов движения равна (0, -Ad). Если информация о направлении указывает направление влево, а информация об амплитуде указывает, что амплитуда равна А1, разность векторов движения равна (-А1, 0). Если информация о направлении указывает направление вверх, а информация об амплитуде указывает, что амплитуда равна Au, разность векторов движения равна (0, Au). Если информация о направлении указывает направление вправо-вверх, а информация об амплитуде указывает, что амплитуда равна Aru, разность векторов движения равна (Aru, Aru). Если информация о направлении указывает направление влево-вверх, а информация об амплитуде указывает, что амплитуда равна Alu, разность векторов движения равна (-Alu, Alu). Если информация о направлении указывает направление влево-вниз, а информация об амплитуде указывает, что амплитуда равна Ald, разность векторов движения равна (-Ald, -Ald). Если информация о направлении указывает направление вправо-вниз, а информация об амплитуде указывает, что амплитуда равна Ard, разность векторов движения равна (Ard, -Ard).[332] In the above-described embodiments of the invention, when determining the motion vector difference based on the direction information and the amplitude information, if the direction information indicates the direction to the right and the amplitude information indicates that the amplitude is Ar, the motion vector difference is (Ar , 0). If the direction information indicates the downward direction and the amplitude information indicates that the amplitude is equal to Ad, the difference of motion vectors is equal to (0, -Ad). If the direction information indicates the left direction and the amplitude information indicates that the amplitude is A1, the motion vector difference is (-A1, 0). If the direction information indicates the upward direction and the amplitude information indicates that the amplitude is Au, the motion vector difference is (0, Au). If the direction information indicates the right-up direction and the amplitude information indicates that the amplitude is Aru, the difference of motion vectors is (Aru, Aru). If the direction information indicates a left-up direction and the amplitude information indicates that the amplitude is Alu, the motion vector difference is (-Alu, Alu). If the direction information indicates the left-down direction and the amplitude information indicates that the amplitude is Ald, the motion vector difference is (-Ald, -Ald). If the direction information indicates the right-down direction and the amplitude information indicates that the amplitude is Ard, the motion vector difference is (Ard, -Ard).

[333] В вышеприведенном варианте осуществления изобретения при кодировании информации о направлении разности векторов движения сторона кодера может использовать код фиксированной длины или усеченный унарный код и т.п. Следовательно, на стороне декодера может использоваться код фиксированной длины или усеченный унарный код и т.п. для декодирования информации о направлении разности векторов движения, чтобы получить информацию о направлении разности векторов движения, например вверх, вниз, влево, вправо, влево-вверх, влево-вниз, вправо-вверх, вправо-вниз и т.д.[333] In the above embodiment, when encoding the motion vector difference direction information, the encoder side may use a fixed length code or a truncated unary code or the like. Therefore, a fixed-length code or a truncated unary code, etc. may be used on the decoder side. for decoding information about the direction of the motion vector difference to obtain information about the direction of the motion vector difference, such as up, down, left, right, left-up, left-down, right-up, right-down, etc.

[334] В вышеприведенном варианте осуществления изобретения при кодировании информации об амплитуде разности векторов движения сторона кодера может использовать код фиксированной длины или усеченный унарный код и т.п. Следовательно, сторона декодера может использовать код фиксированной длины или усеченный унарный код и т.п. для декодирования информации об амплитуде разности векторов движения, чтобы получить информацию об амплитуде разности векторов движения, такую как конфигурации длины шага: ¼-пикселя, ½-пикселя, 1-пиксель, 2-пикселя и т.п., а затем определить значение амплитуды разности векторов движения на основе конфигурации длины шага, например, ¼-пикселя, ½-пикселя, 1-пиксель и 2-пикселя.[334] In the above embodiment, when encoding the motion vector difference amplitude information, the encoder side may use a fixed length code or a truncated unary code or the like. Therefore, the decoder side may use a fixed-length code or a truncated unary code, etc. for decoding motion vector difference amplitude information to obtain motion vector difference amplitude information such as step length configurations: ¼-pixel, ½-pixel, 1-pixel, 2-pixel, etc., and then determine the amplitude value motion vector differences based on step length configurations, such as ¼-pixel, ½-pixel, 1-pixel, and 2-pixel.

[335] Подводя итог, можно сказать, что сторона декодера может проанализировать информацию о направлении и информацию об амплитуде разности векторов движения из кодированного битового потока, а затем определить разность векторов движения на основе информации о направлении и информации об амплитуде.[335] To summarize, the decoder side can analyze the direction information and the motion vector difference amplitude information from the encoded bit stream, and then determine the motion vector difference based on the direction information and the amplitude information.

[336] В возможной реализации сторона кодера может также кодировать информацию флага в кодированном битовом потоке, при этом информация флага указывает на наложение разности векторов движения на исходный вектор движения или отсутствие наложения разности векторов движения на исходный вектор движения. Информация флага может быть флагом подрежима расширенного углового режима взвешенного предсказания. Кроме того, расширенный угловой режим взвешенного предсказания также может называться режимом AWP с уточнением вектора движения (AWP-MVR, AWP with Motion Vector Refinement). После приема кодированного битового потока текущего блока сторона декодера сначала анализирует информацию флага из кодированного битового потока текущего блока. Если информация флага указывает на наложение разности векторов движения на исходный вектор движения, сторона декодера анализирует информацию о направлении и информацию об амплитуде разности векторов движения из кодированного битового потока текущего блока и определяет разность векторов движения на основе информации о направлении и информации об амплитуде и определяет целевой вектор движения текущего блока на основе исходного вектора движения и разности векторов движения. Если информация флага указывает на отсутствие наложения разности векторов движения на исходный вектор движения, сторона декодера не анализирует информацию о направлении или информацию об амплитуде разности векторов движения, а напрямую принимает исходный вектор движения в качестве целевого вектора движения текущего блока.[336] In an exemplary implementation, the encoder side may also encode flag information in the encoded bit stream, wherein the flag information indicates whether the motion vector difference is superimposed on the original motion vector or whether the motion vector difference is not superimposed on the original motion vector. The flag information may be a submode flag of the extended angle weighted prediction mode. In addition, the advanced angle weighted prediction mode may also be referred to as AWP with Motion Vector Refinement (AWP-MVR). After receiving the encoded bitstream of the current block, the decoder side first parses the flag information from the encoded bitstream of the current block. If the flag information indicates an overlap of the motion vector difference with the original motion vector, the decoder side analyzes the direction information and the amplitude information of the motion vector difference from the encoded bitstream of the current block, and determines the motion vector difference based on the direction information and the amplitude information, and determines the target the motion vector of the current block based on the original motion vector and the difference of the motion vectors. If the flag information indicates that there is no overlap of the motion vector difference with the source motion vector, the decoder side does not analyze the direction information or the amplitude information of the motion vector difference, but directly takes the source motion vector as the target motion vector of the current block.

[337] Например, когда флаг подрежима расширенного углового режима взвешенного предсказания представляет собой первое значение подрежима, это указывает на наложение разности векторов движения на исходный вектор движения; когда флаг подрежима режима EAWP является вторым значением подрежима, это указывает на отсутствие наложения разности векторов движения на исходный вектор движения. Первое значение подрежима и второе значение подрежима могут быть сконфигурированы на основе опыта, например, первое значение подрежима может быть 1, а второе значение подрежима может быть 0, или, например, первое значение подрежима может быть равно 0, а второе значение подрежима может быть равно 1. Выше приведены только два примера, и здесь не делается никаких ограничений.[337] For example, when the weighted prediction extended angle mode submode flag is the first value of the submode, it indicates superposition of the motion vector difference on the original motion vector; when the EAWP mode submode flag is the second submode value, it indicates that the motion vector difference is not superimposed on the original motion vector. The first submode value and the second submode value may be configured based on experience, for example, the first submode value may be 1 and the second submode value may be 0, or, for example, the first submode value may be 0 and the second submode value may be 1. The above are just two examples and no limitations are made here.

[338] В возможной реализации для условий 1 или 2 варианта 13 осуществления изобретения первая исходная информация о движении включает первый исходный вектор движения, первая целевая информация о движении включает первый целевой вектор движения, вторая исходная информация о движении включает второй исходный вектор движения, и вторая целевая информация о движении включает второй целевой вектор движения. На основе вышеизложенного может быть получена первая разность векторов движения, соответствующая первому исходному вектору движения, и первый целевой вектор движения определяется на основе первой разности векторов движения и первого исходного вектора движения, то есть сумма первой разности векторов движения и первого исходного вектора движения принимается в качестве первого целевого вектора движения. Может быть получена вторая разность векторов движения, соответствующая второму исходному вектору движения, и второй целевой вектор движения определяется на основе второй разности векторов движения и второго исходного вектора движения, то есть сумма второй разности векторов движения и второго исходного вектора движения принимается в качестве второго целевого вектора движения.[338] In a possible implementation for conditions 1 or 2 of embodiment 13 of the invention, the first source motion information includes a first source motion vector, the first target motion information includes a first target motion vector, the second source motion information includes a second source motion vector, and the second the target motion information includes a second target motion vector. Based on the above, the first motion vector difference corresponding to the first source motion vector can be obtained, and the first target motion vector is determined based on the first motion vector difference and the first source motion vector, that is, the sum of the first motion vector difference and the first source motion vector is taken as the first target motion vector. A second motion vector difference corresponding to the second source motion vector can be obtained, and a second target motion vector is determined based on the second motion vector difference and the second source motion vector, that is, the sum of the second motion vector difference and the second source motion vector is taken as the second target vector. movements.

[339] Сторона кодера может использовать RDO для определения первой разности векторов движения, соответствующей первому исходному вектору движения, и определения второй разности векторов движения, соответствующей второму исходному вектору движения, что здесь не ограничено.[339] The encoder side may use RDO to determine a first motion vector difference corresponding to the first source motion vector and determine a second motion vector difference corresponding to the second source motion vector, which is not limited here.

[340] Когда сторона кодера передает кодированный битовый поток текущего блока на сторону декодера, кодированный битовый поток может переносить информацию о направлении и информацию об амплитуде первой разности векторов движения, а также информацию о направлении и информацию об амплитуде второй разности векторов движения.[340] When the encoder side transmits the encoded bitstream of the current block to the decoder side, the encoded bitstream may carry direction information and amplitude information of the first motion vector difference, as well as direction information and amplitude information of the second motion vector difference.

[341] Сторона декодера после приема кодированного битового потока текущего блока может анализировать информацию о направлении и информацию об амплитуде первой разности векторов движения из кодированного битового потока и определять первую разность векторов движения на основе информации о направлении и информации об амплитуде первой разности векторов движения и может анализировать информацию о направлении и информацию об амплитуде второй разности векторов движения из кодированного битового потока и определять вторую разность векторов движения на основе информации о направлении и информации об амплитуде второй разности векторов движения. Затем сторона декодера может определить первый целевой вектор движения текущего блока на основе первой разности векторов движения и первого исходного вектора движения и определить второй целевой вектор движения текущего блока на основе второй разности векторов движения и второго исходного вектора движения.[341] The decoder side, after receiving the encoded bitstream of the current block, can analyze the direction information and the amplitude information of the first motion vector difference from the encoded bitstream, and determine the first motion vector difference based on the direction information and the amplitude information of the first motion vector difference, and can analyze the direction information and the amplitude information of the second motion vector difference from the encoded bit stream, and determine the second motion vector difference based on the direction information and the amplitude information of the second motion vector difference. Then, the decoder side may determine a first target motion vector of the current block based on the first difference of the motion vectors and the first source motion vector, and determine a second target motion vector of the current block based on the second difference of the motion vectors and the second source motion vector.

[342] В возможной реализации сторона кодера может также кодировать первый флаг подрежима и второй флаг подрежима расширенного углового режима взвешенного предсказания в кодированном битовом потоке, при этом первый флаг подрежима указывает на наложение разности векторов движения на первый исходный вектор движения или отсутствие наложения разности векторов движения на первый исходный вектор движения, а второй флаг подрежима указывает на наложение разности векторов движения на второй исходный вектор движения или отсутствие наложения разности векторов движения на второй исходный вектор движения.[342] In an exemplary implementation, the encoder side may also encode a first submode flag and a second extended angle weighted prediction mode submode flag in the encoded bitstream, wherein the first submode flag indicates whether the motion vector difference is superimposed on the first original motion vector or whether the motion vector difference is not superimposed. on the first original motion vector, and the second sub-mode flag indicates that the motion vector difference is superimposed on the second original motion vector or that the motion vector difference is not superimposed on the second original motion vector.

[343] В возможной реализации упомянутый выше первый флаг подрежима также может быть первым битом флага в кодированном битовом потоке, а упомянутый выше второй флаг подрежима также может быть вторым битом флага в кодированном битовом потоке.[343] In an exemplary implementation, the above-mentioned first submode flag may also be the first flag bit in the encoded bitstream, and the above-mentioned second submode flag may also be the second flag bit in the encoded bitstream.

[344] Сторона декодера после приема кодированного битового потока текущего блока может сначала анализировать первый флаг подрежима и второй флаг подрежима расширенного углового режима взвешенного предсказания из кодированного битового потока текущего блока. Если первый флаг подрежима указывает на наложение разности векторов движения на первый исходный вектор движения, сторона декодера анализирует информацию о направлении и информацию об амплитуде первой разности векторов движения из кодированного битового потока и определяет первую разность векторов движения на основе информации о направлении и информации об амплитуде первой разности векторов движения, а затем определяет первый целевой вектор движения текущего блока на основе первого исходного вектора движения и первой разности векторов движения. Если первый флаг подрежима указывает на отсутствие наложения разности векторов движения на первый исходный вектор движения, сторона декодера не анализирует информацию о направлении или информацию об амплитуде первой разности векторов движения, а напрямую берет первый исходный вектор движения в качестве первого целевого вектора движения текущего блока. Если второй флаг подрежима указывает на наложение разности векторов движения на второй исходный вектор движения, сторона декодера анализирует информацию о направлении и информацию об амплитуде второй разности векторов движения из кодированного битового потока и определяет вторую разность векторов движения на основе информации о направлении и информации об амплитуде второй разности векторов движения, а затем определяет второй целевой вектор движения текущего блока на основе второго исходного вектора движения и второй разности векторов движения. Если второй флаг подрежима указывает на отсутствие наложения разности векторов движения на второй исходный вектор движения, сторона декодера не анализирует информацию о направлении или информацию об амплитуде второй разности векторов движения, а напрямую берет второй исходный вектор движения в качестве второго целевого вектора движения текущего блока.[344] The decoder side, after receiving the coded bitstream of the current block, may first analyze the first submode flag and the second extended angle weighted prediction mode submode flag from the coded bitstream of the current block. If the first sub-mode flag indicates superposition of a motion vector difference on the first original motion vector, the decoder side analyzes the direction information and the amplitude information of the first motion vector difference from the encoded bit stream, and determines the first motion vector difference based on the direction information and the amplitude information of the first a motion vector difference, and then determines a first target motion vector of the current block based on the first source motion vector and the first motion vector difference. If the first submode flag indicates that the motion vector difference is not superimposed on the first source motion vector, the decoder side does not analyze the direction information or the amplitude information of the first motion vector difference, but directly takes the first source motion vector as the first target motion vector of the current block. If the second sub-mode flag indicates superposition of the motion vector difference on the second original motion vector, the decoder side analyzes the direction information and the amplitude information of the second motion vector difference from the encoded bit stream, and determines the second motion vector difference based on the direction information and the amplitude information of the second a motion vector difference, and then determines a second target motion vector of the current block based on the second source motion vector and the second motion vector difference. If the second sub-mode flag indicates that there is no overlap of the motion vector difference with the second source motion vector, the decoder side does not analyze the direction information or the amplitude information of the second motion vector difference, but directly takes the second source motion vector as the second target motion vector of the current block.

[345] Вариант 15 осуществления изобретения. На основе вариантов 13 и 14 осуществления изобретения для условия двух разностей векторов движения соответствующий синтаксис для наложения разности векторов движения на информацию об однонаправленном движении описан ниже в сочетании с несколькими конкретными сценариями применения.[345] Embodiment 15 of the invention. Based on embodiments 13 and 14 of the invention for the condition of two motion vector differences, the corresponding syntax for superimposing the motion vector difference on unidirectional motion information is described below in combination with several specific application scenarios.

[346] Сценарий 1 применения: в Таблице 4 показан пример соответствующего синтаксиса, где SkipFlag указывает, находится ли текущий блок в режиме пропуска, DirectFlag указывает, находится ли текущий блок в прямом режиме, a AwpFlag указывает, находится ли текущий блок в режиме AWP.[346] Application Scenario 1: Table 4 shows an example of the corresponding syntax, where SkipFlag indicates whether the current block is in skip mode, DirectFlag indicates whether the current block is in direct mode, and AwpFlag indicates whether the current block is in AWP mode.

[347] awp_idx (индекс углового режима взвешенного предсказания) представляет собой значение индекса углового режима взвешенного предсказания в режиме пропуска или в прямом режиме, и значение AwpIdx может быть равно значению awp_idx. Если в битовом потоке нет awp_idx, значение AwpIdx равно 0.[347] awp_idx (weighted prediction angular mode index) is the weighted prediction angular mode index value in skip mode or forward mode, and the value of AwpIdx may be equal to the value of awp_idx. If there is no awp_idx in the bitstream, the value of AwpIdx is 0.

[348] awp_cand_idx0 (первый индекс информации о движении углового режима взвешенного предсказания) представляет собой первое значение индекса информации о движении углового режима взвешенного предсказания в режиме пропуска или в прямом режиме. Значение AwpCandIdx0 равно значению awp_cand_idx0. Если в битовом потоке нет awp_cand_idx0, значение AwpCandIdx0 равно 0.[348] awp_cand_idx0 (first weighted prediction angular mode motion information index) is the first value of the weighted prediction angular mode motion information index in the skip mode or direct mode. The value of AwpCandIdx0 is equal to the value of awp_cand_idx0. If there is no awp_cand_idx0 in the bitstream, the value of AwpCandIdx0 is 0.

[349] awp_cand_idx1 (второй индекс информации о движении для углового режима взвешенного предсказания) представляет собой второе значение индекса информации о движении для углового режима взвешенного предсказания в режиме пропуска или в прямом режиме. Значение AwpCandIdx1 равно значению awp_cand_idx1. Если в битовом потоке нет awp_cand_idx1, значение AwpCandIdx1 равно 0.[349] awp_cand_idx1 (second motion information index for angular weighted prediction mode) is the second motion information index value for angular weighted prediction mode in skip mode or forward mode. The value of AwpCandIdx1 is equal to the value of awp_cand_idx1. If there is no awp_cand_idx1 in the bitstream, the value of AwpCandIdx1 is 0.

[350] awp_mvd_flag (флаг расширенного углового режима взвешенного предсказания) является бинарной переменной. Когда awp_mvd_flag является первой величиной (например, 1), это указывает на то, что текущий блок находится в расширенном угловом режиме взвешенного предсказания; когда awp_mvd_flag является вторым значением (например, 0), это указывает на то, что текущий блок находится в нерасширенном угловом режиме взвешенного предсказания. Например, значение AwpMvdFlag может быть равно значению awp_mvd_flag. Если в битовом потоке нет awp_mvd_flag, значение AwpMvdFlag равно 0.[350] awp_mvd_flag (extended angle weighted prediction mode flag) is a binary variable. When awp_mvd_flag is the first value (eg, 1), it indicates that the current block is in extended angle weighted prediction mode; when awp_mvd_flag is the second value (eg 0), it indicates that the current block is in non-extended angle weighted prediction mode. For example, the value of AwpMvdFlag can be equal to the value of awp_mvd_flag. If there is no awp_mvd_flag in the bitstream, the value of AwpMvdFlag is 0.

[351] awp_mvd_sub_flag0 (первый флаг подрежима расширенного углового режима взвешенного предсказания) является бинарной переменной. Когда awp_mvd_sub_flag0 является первой величиной, это указывает на то, что первая информация о движении углового режима взвешенного предсказания должна быть наложена на разность информации о движении; когда awp_mvd_sub_flag0 является вторым значением, это указывает на то, что первая информация о движении углового режима взвешенного предсказания не должна накладываться на разность информации о движении. Например, значение AwpMvdSubFlag0 может быть равно значению awp_mvd_sub_flag0. Если в битовом потоке нет awp_mvd_sub_flag0, значение AwpMvdSubFlag0 равно 0.[351] awp_mvd_sub_flag0 (first flag of the extended angle weighted prediction mode submode) is a binary variable. When awp_mvd_sub_flag0 is the first value, it indicates that the first weighted prediction angular mode motion information should be superimposed on the motion information difference; when awp_mvd_sub_flag0 is the second value, it indicates that the first weighted prediction angular mode motion information should not overlap with the motion information difference. For example, the value of AwpMvdSubFlag0 may be equal to the value of awp_mvd_sub_flag0. If there is no awp_mvd_sub_flag0 in the bitstream, the value of AwpMvdSubFlag0 is 0.

[352] awp_mvd_sub_flag1 (второй флаг подрежима расширенного углового режима взвешенного предсказания) является бинарной переменной. Когда awp_mvd_sub_flag1 является первой величиной, это указывает на то, что вторая информация о движении углового режима взвешенного предсказания должна быть наложена на разность информации о движении; когда awp_mvd_sub_flag1 является вторым значением, это указывает на то, что вторая информация о движении углового режима взвешенного предсказания не должна накладываться на разность информации о движении. Например, значение AwpMvdSubFlag1 может быть равно значению awp_mvd_sub_flag1. Если в битовом потоке нет awp_mvd_sub_flag1, может быть следующий случай: если значение AwpMvdFlag равно 1, значение AwpMvdSubFlag1 равно 1, в противном случае значение AwpMvdSubFlag1 может быть 0.[352] awp_mvd_sub_flag1 (second advanced angle weighted prediction mode submode flag) is a binary variable. When awp_mvd_sub_flag1 is the first value, it indicates that the second motion information of the weighted prediction angular mode should be superimposed on the motion information difference; when awp_mvd_sub_flag1 is the second value, it indicates that the second motion information of the weighted prediction angular mode should not overlap the motion information difference. For example, the value of AwpMvdSubFlag1 may be equal to the value of awp_mvd_sub_flag1. If there is no awp_mvd_sub_flag1 in the bitstream, the following case may be: if the value of AwpMvdFlag is 1, the value of AwpMvdSubFlag1 is 1, otherwise the value of AwpMvdSubFlag1 may be 0.

[353] awp_mvd_dir0 (значение индекса направления разности векторов движения для первой информации о движении) представляет собой значение индекса направления для разности векторов движения для первой информации о движении в угловом режиме взвешенного предсказания. Например, значение AwpMvdDir0 может быть равно значению awp_mvd_dir0. Если в битовом потоке нет awp_mvd_dir0, значение AwpMvdDir может быть равно 0.[353] awp_mvd_dir0 (motion vector difference direction index value for first motion information) is a motion vector difference direction index value for first motion information in the angular weighted prediction mode. For example, the value of AwpMvdDir0 may be equal to the value of awp_mvd_dir0. If there is no awp_mvd_dir0 in the bitstream, the value of AwpMvdDir may be 0.

[354] awp_mvd_step0 (значение индекса длины шага разности векторов движения первой информации о движении) представляет собой значение индекса длины шага разности векторов движения первой информации о движении в угловом режиме взвешенного предсказания. Например, значение AwpMvdStep0 может быть равно значению awp_mvd_step0. Если в битовом потоке нет awp_mvd_step0, значение AwpMvdStep0 может быть равно 0.[354] awp_mvd_step0 (motion vector difference step length index value of the first motion information) is a motion vector difference step length index value of the first motion information in the angular weighted prediction mode. For example, the value of AwpMvdStep0 may be equal to the value of awp_mvd_step0. If there is no awp_mvd_step0 in the bitstream, the value of AwpMvdStep0 may be 0.

[355] awp_mvd_dir1 (значение индекса направления разности векторов движения второй информации о движении) представляет собой значение индекса направления разности векторов движения второй информации о движении в угловом режиме взвешенного предсказания. Например, значение AwpMvdDirl может быть равно значению awp_mvd_dir1. Если в битовом потоке нет awp_mvd_dir1, значение AwpMvdDirl может быть равно 0.[355] awp_mvd_dir1 (second motion information motion vector difference direction index value) is a motion vector difference direction index value of the second motion information in the angular weighted prediction mode. For example, the value of AwpMvdDirl could be equal to the value of awp_mvd_dir1. If there is no awp_mvd_dir1 in the bitstream, the value of AwpMvdDirl may be 0.

[356] awp_mvd_step1 (значение индекса длины шага разности векторов движения второй информации о движении) представляет собой значение индекса длины шага разности векторов движения второй информации о движении в угловом режиме взвешенного предсказания. Например, значение AwpMvdStep1 может быть равно значению awp_mvd_step1. Если в битовом потоке нет awp_mvd_step1, значение AwpMvdStep1 может быть равно 0.[356] awp_mvd_step1 (motion vector difference step length index value of the second motion information) is a motion vector difference step length index value of the second motion information in the angular weighted prediction mode. For example, the value of AwpMvdStep1 may be equal to the value of awp_mvd_step1. If there is no awp_mvd_step1 in the bitstream, the value of AwpMvdStep1 may be 0.

[357] Сценарий 2 применения: Таблица 5 показывает пример соответствующего синтаксиса, где SkipFlag указывает, находится ли текущий блок в режиме пропуска, DirectFlag указывает, находится ли текущий блок в прямом режиме, a AwpFlag указывает, находится ли текущий блок в режиме AWP.[357] Application Scenario 2: Table 5 shows an example of the corresponding syntax, where SkipFlag indicates whether the current block is in skip mode, DirectFlag indicates whether the current block is in direct mode, and AwpFlag indicates whether the current block is in AWP mode.

[358] Для awp_idx, awp_cand_idx0 и awp_cand_idx1 может быть сделана ссылка на сценарий 1 применения, и здесь не приводится избыточных описаний.[358] For awp_idx, awp_cand_idx0 and awp_cand_idx1, reference may be made to Application Scenario 1 and no redundant descriptions are given here.

[359] awp_mvd_sub_flag0 (первый флаг подрежима расширенного углового режима взвешенного предсказания) является бинарной переменной. Когда awp_mvd_sub_flag0 является первой величиной, это указывает на то, что первая информация о движении углового режима взвешенного предсказания должна быть наложена на разность информации о движении; когда awp_mvd_sub_flag0 является вторым значением, это указывает на то, что первая информация о движении углового режима взвешенного предсказания не должна накладываться на разность информации о движении. Например, значение AwpMvdSubFlag0 может быть равно значению awp_mvd_sub_flag0. Если в битовом потоке нет awp_mvd_sub_flag0, значение AwpMvdSubFlag0 равно 0.[359] awp_mvd_sub_flag0 (first flag of the extended angle weighted prediction mode submode) is a binary variable. When awp_mvd_sub_flag0 is the first value, it indicates that the first weighted prediction angular mode motion information should be superimposed on the motion information difference; when awp_mvd_sub_flag0 is the second value, it indicates that the first weighted prediction angular mode motion information should not overlap the motion information difference. For example, the value of AwpMvdSubFlag0 may be equal to the value of awp_mvd_sub_flag0. If there is no awp_mvd_sub_flag0 in the bitstream, the value of AwpMvdSubFlag0 is 0.

[360] awp_mvd_sub_flag1 (второй флаг подрежима расширенного углового режима взвешенного предсказания) является бинарной переменной. Когда awp_mvd_sub_flag1 является первой величиной, это указывает на то, что вторая информация о движении углового режима взвешенного предсказания должна быть наложена на разность информации о движении; когда awp_mvd_sub_flag1 является вторым значением, это указывает на то, что вторая информация о движении углового режима взвешенного предсказания не должна накладываться на разность информации о движении. Например, значение AwpMvdSubFlag1 может быть равно значению awp_mvd_sub_flag1. Если в битовом потоке нет awp_mvd_sub_flag1, значение AwpMvdSubFlag1 может быть равно 0.[360] awp_mvd_sub_flag1 (second advanced angle weighted prediction mode submode flag) is a binary variable. When awp_mvd_sub_flag1 is the first value, it indicates that the second motion information of the weighted prediction angular mode should be superimposed on the motion information difference; when awp_mvd_sub_flag1 is the second value, it indicates that the second motion information of the weighted prediction angular mode should not overlap the motion information difference. For example, the value of AwpMvdSubFlag1 may be equal to the value of awp_mvd_sub_flag1. If there is no awp_mvd_sub_flag1 in the bitstream, the value of AwpMvdSubFlag1 may be 0.

[361] Для awp_mvd_dir0, awp_mvd_step0, awp_mvd_dir1 и awp_mvd_step1 можно сделать ссылку на сценарий 1 применения.[361] Awp_mvd_dir0, awp_mvd_step0, awp_mvd_dir1 and awp_mvd_step1 can be referenced to Application Scenario 1.

[362] Например, сценарий 1 применения и сценарий 2 применения отличаются в следующем: в сценарии 1 применения присутствует синтаксис awp_mvd_flag, но в сценарии 2 применения синтаксис awp_mvd_flag отсутствует. В сценарии 1 применения расширенный угловой режим взвешенного предсказания управляется посредством awp_mvd_flag, то есть расширенный угловой режим взвешенного предсказания управляется главным переключателем.[362] For example, Application Scenario 1 and Application Scenario 2 differ in the following ways: Application Scenario 1 has the awp_mvd_flag syntax, but Application Scenario 2 does not have the awp_mvd_flag syntax. In application scenario 1, the extended angle weighted prediction mode is controlled by awp_mvd_flag, that is, the extended angle weighted prediction mode is controlled by the main switch.

[363] Сценарий 3 применения: приведенные выше сценарий 1 применения и сценарий 2 применения можно расширить для полной интеграции режимов AWP и AWP-MVR, то есть добавить 0 диапазонов к диапазону, таким образом, нет необходимости кодировать бит флага для указания того, следует ли включить или нет. Например, разность векторов движения поддерживает четыре направления, такие как вверх, вниз, влево и вправо и т.п., а разность векторов движения поддерживает следующие 6 конфигураций длины шага: 0-пикселей, 1/4-пикселя, 1/2-пикселя, 1-пиксель, 2-пикселя и 4-пикселя, то есть добавляется конфигурация шага 0-пикселей. На основе этого Таблица 4 или Таблица 5 может быть обновлена до Таблицы 6. Значения соответствующего синтаксиса в Таблице 6 можно найти в Таблице 4, и здесь они не будут повторяться.[363] Application Scenario 3: The above Application Scenario 1 and Application Scenario 2 can be extended to fully integrate AWP and AWP-MVR modes, that is, add 0 ranges to the range, thus there is no need to encode a flag bit to indicate whether enable or not. For example, motion vector difference supports four directions such as up, down, left and right, etc., and motion vector difference supports the following 6 step length configurations: 0-pixel, 1/4-pixel, 1/2-pixel , 1-pixel, 2-pixel and 4-pixel, that is, a 0-pixel pitch configuration is added. Based on this, Table 4 or Table 5 can be updated to Table 6. The meanings of the corresponding syntax in Table 6 can be found in Table 4 and will not be repeated here.

[364] Например, в приведенных выше вариантах осуществления изобретения целевая информация о движении может быть получена на основе исходной информации о движении. После того как целевая информация о движении получена, целевая информация о движении текущего блока может быть сохранена способом, который здесь не ограничивается.[364] For example, in the above embodiments, target motion information can be obtained based on source motion information. After the target motion information is acquired, the target motion information of the current block may be stored in a manner that is not limited here.

[365] Вариант 16 осуществления изобретения: в вариантах 12 и 13 осуществления изобретения ожидается получение списка кандидатов для компенсации движения, и в процессе получения списка кандидатов для компенсации движения может быть получена по меньшей мере одна часть доступной информации о движении, которая должна быть добавлена в список кандидатов для компенсации движения; на основе упомянутой по меньшей мере одной части доступной информации о движении получают список кандидатов для компенсации движения. Например, для доступной информации о движении, которая в настоящее время должна быть добавлена в список кандидатов для компенсации движения, если доступная информация о движении является информацией об однонаправленном движении, и информация об однонаправленном движении не дублируется информацией о возможном движении, уже существующей в списке кандидатов для компенсации движения, информацию об однонаправленном движении добавляют в список кандидатов для компенсации движения. Если доступная информация о движении представляет собой информацию о двунаправленном движении, и первая информация об однонаправленном движении в информации о двунаправленном движении не дублируется информацией о возможном движении, уже существующей в списке кандидатов для компенсации движения, первую информацию об однонаправленном движении добавляют в список кандидатов для компенсации движения. Если доступная информация о движении является информацией о двунаправленном движении, первая информация об однонаправленном движении в информации о двунаправленном движении дублируется информацией о возможном движении, уже существующей в списке кандидатов для компенсации движения, а вторая информация об однонаправленном движении в информации о двунаправленном движении не дублируется информацией о возможном движении, уже существующей в списке кандидатов для компенсации движения, то вторую информацию об однонаправленном движении добавляют в список кандидатов для компенсации движения.[365] Embodiment 16: In Embodiments 12 and 13, a motion compensation candidate list is expected to be obtained, and in the process of obtaining the motion compensation candidate list, at least one piece of available motion information to be added to list of candidates for motion compensation; based on said at least one piece of available motion information, a list of candidates for motion compensation is obtained. For example, for available motion information that currently needs to be added to the motion compensation candidate list, if the available motion information is unidirectional motion information and the unidirectional motion information is not duplicated by possible motion information already existing in the candidate list for motion compensation, unidirectional motion information is added to the candidate list for motion compensation. If the available motion information is bidirectional motion information, and the first unidirectional motion information in the bidirectional motion information is not duplicated by the possible motion information already existing in the motion compensation candidate list, the first unidirectional motion information is added to the compensation candidate list. movements. If the available traffic information is bidirectional traffic information, the first unidirectional traffic information in the bidirectional traffic information is duplicated by the possible traffic information already existing in the motion compensation candidate list, and the second unidirectional traffic information in the bidirectional traffic information is not duplicated by the information about a possible motion already existing in the motion compensation candidate list, then the second unidirectional motion information is added to the motion compensation candidate list.

[366] Например, первая информация об однонаправленном движении представляет собой информацию об однонаправленном движении, указывающую на опорное изображение в первом списке опорных изображений, а вторая информация об однонаправленном движении представляет собой информацию об однонаправленном движении, указывающую на опорное изображение во втором списке опорных изображений.[366] For example, the first unidirectional motion information is unidirectional motion information indicating a reference picture in the first reference picture list, and the second unidirectional motion information is unidirectional motion information indicating a reference picture in the second reference picture list.

[367] В возможной реализации, если общее количество информации о возможном движении, уже существующей в списке кандидатов для компенсации движения (например, общее количество информации о возможном движении, уже существующей для текущего блока), является четным числом, то первый список опорных изображений представляет собой список List0 опорных изображений, а второй список опорных изображений представляет собой список List1 опорных изображений; если общее количество информации о возможном движении, уже существующей в списке кандидатов для компенсации движения, является нечетным числом, первый список опорных изображений является списком List0 опорных изображений, а второй список опорных изображений является списком List1 опорных изображений. Альтернативно, если общее количество информации о возможном движении, уже существующей в списке кандидатов для компенсации движения, является нечетным числом, первый список опорных изображений представляет собой список List0 опорных изображений, а второй список опорных изображений представляет собой список List1 опорных изображений; если общее количество информации о возможном движении, уже существующей в списке кандидатов для компенсации движения, является четным числом, первый список опорных изображений является списком List0 опорных изображений, а второй список опорных изображений является списком List1 опорных изображений.[367] In an exemplary implementation, if the total amount of possible motion information already existing in the motion compensation candidate list (eg, the total amount of possible motion information already existing for the current block) is an even number, then the first reference picture list represents is a reference picture list List0, and the second reference picture list is a reference picture list List1; if the total amount of possible motion information already existing in the motion compensation candidate list is an odd number, the first reference picture list is reference picture list ListO and the second reference picture list is reference picture list List1. Alternatively, if the total amount of possible motion information already existing in the motion compensation candidate list is an odd number, the first reference picture list is a reference picture list ListO and the second reference picture list is a reference picture list List1; if the total amount of possible motion information already existing in the motion compensation candidate list is an even number, the first reference picture list is reference picture list ListO and the second reference picture list is reference picture list List1.

[368] В другой возможной реализации первый список опорных изображений представляет собой список List0 опорных изображений, а второй список опорных изображений представляет собой список List1 опорных изображений; или первый список опорных изображений представляет собой список List1 опорных изображений, а второй список опорных изображений представляет собой список List0 опорных изображений.[368] In another possible implementation, the first reference picture list is a reference picture list List0, and the second reference picture list is a reference picture list List1; or the first reference picture list is a reference picture list List1, and the second reference picture list is a reference picture list ListO.

[369] В приведенных выше вариантах осуществления изобретения по меньшей мере одна часть доступной информации о движении, которая должна быть добавлена в список кандидатов для компенсации движения, может включать, не ограничиваясь этим, по меньшей мере одну из следующей информации о движении: пространственная информация о движении; временная информация о движении; информация о движении HMVP (предсказание вектора движения на основе предыстории); или заранее заданная информация о движении.[369] In the above embodiments, at least one piece of available motion information to be added to the candidate list for motion compensation may include, but is not limited to, at least one of the following motion information: spatial motion information movement; temporary traffic information; HMVP motion information (history-based motion vector prediction); or preset motion information.

[370] Например, упомянутый выше список кандидатов для компенсации движения может быть списком кандидатов для компенсации однонаправленного движения, как показано на Фиг. 9, которая представляет собой схематическую диаграмму текущего блока и соседних блоков. Для процесса получения списка кандидатов для компенсации движения на основе порядка F, G, С, А, В, D пространственную информацию об однонаправленном движении добавляют в список кандидатов для компенсации движения и выполняют проверку на дублирование, и временную информацию об однонаправленном движении добавляют в список кандидатов для компенсации движения и выполняют проверку на дублирование, и, наконец, если список кандидатов для компенсации движения не является полным, повторно выполняют операцию заполнения. Порядок F, G, С, А, В, D является только примером, и можно использовать другие порядки, которые не ограничены.[370] For example, the motion compensation candidate list mentioned above may be a unidirectional motion compensation candidate list as shown in FIG. 9, which is a schematic diagram of the current block and neighboring blocks. For the process of obtaining a motion compensation candidate list based on the order of F, G, C, A, B, D, spatial unidirectional motion information is added to the motion compensation candidate list and a duplication check is performed, and temporal unidirectional motion information is added to the candidate list. to compensate for motion and perform a duplication check, and finally, if the candidate list for motion compensation is not complete, perform the padding operation again. The order F, G, C, A, B, D is just an example, and other orders may be used and are not limited.

[371] Выполнение проверки на дублирование заключается в сравнении информации о движении, которая должна быть добавлена в список кандидатов для компенсации движения, с каждой из существующей информации о возможном движении в списке кандидатов для компенсации движения, если она не дублируется в сравнении со всей существующей информацией о возможном движении в списке кандидатов для компенсации движения, считается, что список кандидатов без дублирования; если она дублируется в сравнении с какой-либо существующей информацией о возможном движении в списке кандидатов для компенсации движения, он считается дублированным.[371] Performing a duplication test consists of comparing the motion information to be added to the motion compensation candidate list with each of the existing possible motion information in the motion compensation candidate list, unless it is duplicated against all existing information. about a possible movement in the list of candidates to compensate for the movement, it is considered that the list of candidates is without duplication; if it is duplicated in comparison to any existing motion candidate information in the motion compensation candidate list, it is considered duplicated.

[372] Процесс получения списка кандидатов для компенсации движения описан ниже посредством нескольких конкретных сценариев применения.[372] The process of obtaining a candidate list for motion compensation is described below through several specific application scenarios.

[373] Сценарий 1 применения: пространственную информацию о движении и временную информацию о движении совместно добавляют в список кандидатов для компенсации движения.[373] Application Scenario 1: Spatial motion information and temporal motion information are jointly added to a candidate list for motion compensation.

[374] На первом этапе, как показано на Фиг. 9, F, G, С, А, В и D являются соседними блоками предсказания текущего блока Е, и определяют доступность F, G, С, А, В и D. Например, если присутствует F и принят режим внешнего предсказания, информация F о движении может быть определена как доступная информация о движении; в противном случае определяют, что информация F о движении недоступна. Если присутствует G и принят режим внешнего предсказания, информация G о движении может быть определена как доступная информация о движении; в противном случае определяют, что информация G о движении недоступна. Если присутствует С и принят режим внешнего предсказания, информация С о движении может быть определена как доступная информация о движении; в противном случае определяют, что информация С о движении недоступна. Если присутствует А и принят режим внешнего предсказания, информация А о движении может быть определена как доступная информация о движении; в противном случае определяют, что информация А о движении недоступна. Если присутствует В и принят режим внешнего предсказания, информация В о движении может быть определена как доступная информация о движении; в противном случае определяют, что информация о движении В недоступна. Если присутствует D и принят режим внешнего предсказания, информация D о движении может быть определена как доступная информация о движении; в противном случае определяют, что информация D о движении недоступна.[374] In the first step, as shown in FIG. 9, F, G, C, A, B, and D are neighboring prediction blocks of the current block E, and determine the availability of F, G, C, A, B, and D. For example, if F is present and the inter prediction mode is adopted, the information F about motion can be defined as available motion information; otherwise, it is determined that the motion information F is not available. If G is present and the inter-prediction mode is adopted, the motion information G can be determined to be the available motion information; otherwise, it is determined that the motion information G is not available. If C is present and the inter-prediction mode is adopted, the motion information C can be determined to be the available motion information; otherwise, it is determined that motion information C is not available. If A is present and the inter-prediction mode is adopted, the motion information A can be determined to be the available motion information; otherwise, it is determined that the motion information A is not available. If B is present and the inter-prediction mode is adopted, motion information B can be determined to be available motion information; otherwise, it is determined that motion information B is not available. If D is present and the inter-prediction mode is adopted, motion information D can be determined to be available motion information; otherwise, it is determined that motion information D is not available.

[375] На втором этапе доступную информацию о движении добавляют в список кандидатов для компенсации движения AwpUniArray на основе порядка доступной информации о движении F, G, С, А, В и D (этот порядок является переменным и включает только доступную информацию о движении) и порядка временной информации о движении (включая доступную информацию о движении) до тех пор, пока длина AwpUniArray не станет равной X или пока не завершится обход.[375] In the second step, the available motion information is added to the motion compensation candidate list AwpUniArray based on the order of the available motion information F, G, C, A, B, and D (this order is variable and includes only the available motion information) and order of temporary motion information (including available motion information) until the length of AwpUniArray equals X or until the traversal completes.

[376] Условие 1, для добавления доступной информации о движении в список кандидатов для компенсации движения, если доступная информация о движении является информацией о двунаправленном движении (например, включая информацию об однонаправленном движении, указывающую на список List0 опорных изображений, и информацию об однонаправленном движении, указывающую на список List1 опорных изображений), на основе четности общего количества существующей информации о возможном движении в списке кандидатов для компенсации движения (то есть текущей длины списка AwpUniArray кандидатов для компенсации движения) определяют, как добавить доступную информацию о движении в список AwpUniArray кандидатов для компенсации движения. Для простоты доступная информация о движении может называться первой доступной информацией о движении.[376] Condition 1, for adding available motion information to the motion compensation candidate list if the available motion information is bidirectional motion information (for example, including unidirectional motion information pointing to reference picture list List0 and unidirectional motion information , pointing to the reference picture list List1), based on the parity of the total amount of existing possible motion information in the motion compensation candidate list (i.e., the current length of the motion compensation candidate list AwpUniArray), determine how to add the available motion information to the candidate list AwpUniArray for motion compensation motion compensation. For simplicity, the available motion information may be referred to as the first available motion information.

[377] Способ 1. Если общее количество существующей информации о возможном движении в списке AwpUniArray кандидатов для компенсации движения является четным числом, выполняют проверку на дублирование между информацией об однонаправленном движении, указывающей на список List0 опорных изображений в первой доступной информации о движении, и информацией об однонаправленном движении в списке AwpUniArray кандидатов для компенсации движения. При отсутствии дублирования, информацию об однонаправленном движении, указывающую на список List0 опорных изображений, добавляют в список AwpUniArray кандидатов для компенсации движения. В случае дублирования выполняют проверку на дублирование между информацией об однонаправленном движении, указывающей на список List1 опорных изображений в первой доступной информации о движении, и информацией об однонаправленном движении в списке AwpUniArray кандидатов для компенсации движения. При отсутствии дублирования, информацию об однонаправленном движении, указывающую на список List1 опорных изображений, добавляют в список AwpUniArray кандидатов для компенсации движения.[377] Method 1. If the total amount of existing possible motion information in the motion compensation candidate list AwpUniArray is an even number, perform a duplication check between the unidirectional motion information pointing to the reference picture list List0 in the first available motion information and the information about unidirectional motion in the AwpUniArray list of candidates for motion compensation. In the absence of duplication, unidirectional motion information pointing to List0 of reference pictures is added to the motion compensation candidate list AwpUniArray. In the case of duplication, a duplication check is performed between the unidirectional motion information pointing to the reference picture list List1 in the first available motion information and the unidirectional motion information in the motion compensation candidate list AwpUniArray. In the absence of duplication, unidirectional motion information pointing to reference picture list List1 is added to the motion compensation candidate list AwpUniArray.

[378] Альтернативно, если общее количество существующей информации о возможном движении в списке AwpUniArray кандидатов для компенсации движения является нечетным числом, выполняют проверку на дублирование между информацией об однонаправленном движении, указывающей на список List1 опорных изображений в первой доступной информации о движении, и информацией об однонаправленном движении в списке AwpUniArray кандидатов для компенсации движения. При отсутствии дублирования, информацию об однонаправленном движении, указывающую на список List1 опорных изображений, добавляют в список AwpUniArray кандидатов для компенсации движения. В случае дублирования выполняют проверку на дублирование между информацией об однонаправленном движении, указывающей на список List0 опорных изображений в первой доступной информации о движении, и информацией об однонаправленном движении в списке AwpUniArray кандидатов для компенсации движения. При отсутствии дублирования, информацию об однонаправленном движении, указывающую на список List0 опорных изображений добавляют в список AwpUniArray кандидатов для компенсации движения.[378] Alternatively, if the total amount of existing possible motion information in the motion compensation candidate list AwpUniArray is an odd number, a duplication check is performed between the unidirectional motion information pointing to the reference picture list List1 in the first available motion information and the unidirectional motion in the AwpUniArray list of candidates for motion compensation. In the absence of duplication, unidirectional motion information pointing to reference picture list List1 is added to the motion compensation candidate list AwpUniArray. In the case of duplication, a duplication check is performed between the unidirectional motion information pointing to the reference picture list List0 in the first available motion information and the unidirectional motion information in the motion compensation candidate list AwpUniArray. In the absence of duplication, unidirectional motion information pointing to List0 of reference images is added to the AwpUniArray candidate list for motion compensation.

[379] Способ 2. Если общее количество существующей информации о возможном движении в списке AwpUniArray кандидатов для компенсации движения является нечетным числом, выполняют проверку на дублирование между информацией об однонаправленном движении, указывающей на список List0 опорных изображений в первой доступной информации о движении, и однонаправленной информацией о движении в списке AwpUniArray кандидатов для компенсации движения. При отсутствии дублирования, информацию об однонаправленном движении, указывающую на список List0 опорных изображений, добавляют в список AwpUniArray кандидатов для компенсации движения. В случае дублирования выполняют проверку на дублирование между информацией об однонаправленном движении, указывающей на список List1 опорных изображений в первой доступной информации о движении, и информацией об однонаправленном движении в списке AwpUniArray кандидатов для компенсации движения. При отсутствии дублирования, информацию об однонаправленном движении, указывающую на список List1 опорных изображений, добавляют в список AwpUniArray кандидатов для компенсации движения.[379] Method 2 If the total amount of existing possible motion information in the motion compensation candidate list AwpUniArray is an odd number, perform a duplication check between the unidirectional motion information pointing to the reference picture list List0 in the first available motion information and the unidirectional information about motion in the AwpUniArray list of candidates for motion compensation. In the absence of duplication, unidirectional motion information pointing to List0 of reference pictures is added to the motion compensation candidate list AwpUniArray. In the case of duplication, a duplication check is performed between the unidirectional motion information pointing to the reference picture list List1 in the first available motion information and the unidirectional motion information in the motion compensation candidate list AwpUniArray. In the absence of duplication, unidirectional motion information pointing to reference picture list List1 is added to the motion compensation candidate list AwpUniArray.

[380] Альтернативно, если общее количество существующей информации о возможном движении в списке AwpUniArray кандидатов для компенсации движения является четным числом, выполняют проверку на дублирование между информацией об однонаправленном движении, указывающей на список List1 опорных изображений в первой доступной информации о движении, и информацией об однонаправленном движении в списке AwpUniArray кандидатов для компенсации движения. При отсутствии дублирования, информацию об однонаправленном движении, указывающую на список List1 опорных изображений, добавляют в список AwpUniArray кандидатов для компенсации движения. В случае дублирования выполняют проверку на дублирование между информацией об однонаправленном движении, указывающей на список List0 опорных изображений в первой доступной информации о движении, и информацией об однонаправленном движении в списке AwpUniArray кандидатов для компенсации движения. При отсутствии дублирования, информацию об однонаправленном движении, указывающую на список List0 опорных изображений, добавляют в список AwpUniArray кандидатов для компенсации движения.[380] Alternatively, if the total amount of existing possible motion information in the motion compensation candidate list AwpUniArray is an even number, a duplication check is performed between the unidirectional motion information pointing to the reference picture list List1 in the first available motion information and the unidirectional motion in the AwpUniArray list of candidates for motion compensation. In the absence of duplication, unidirectional motion information pointing to reference picture list List1 is added to the motion compensation candidate list AwpUniArray. In the case of duplication, a duplication check is performed between the unidirectional motion information pointing to the reference picture list List0 in the first available motion information and the unidirectional motion information in the motion compensation candidate list AwpUniArray. In the absence of duplication, unidirectional motion information pointing to List0 of reference pictures is added to the motion compensation candidate list AwpUniArray.

[381] Условие 2. Для добавления доступной информации о движении в список кандидатов для компенсации движения, если доступная информация о движении является информацией об однонаправленном движении, выполняют проверку на дублирование между информацией об однонаправленном движении и информацией об однонаправленном движении в списке AwpUniArray кандидатов для компенсации движения. При отсутствии дублирования, информацию об однонаправленном движении добавляют в список AwpUniArray кандидатов для компенсации движения.[381] Condition 2: To add available motion information to the motion compensation candidate list, if the available motion information is unidirectional motion information, perform a duplication check between the unidirectional motion information and the unidirectional motion information in the compensation candidate list AwpUniArray movements. If there is no duplication, unidirectional motion information is added to the AwpUniArray list of candidates for motion compensation.

[382] На третьем этапе, если длина списка AwpUniArray кандидатов для компенсации движения меньше X, повторяют заполнение последней части информации об однонаправленном движении в списке AwpUniArray кандидатов для компенсации движения до тех пор, пока длина списка не станет X.[382] In the third step, if the length of the motion compensation candidate list AwpUniArray is less than X, repeat filling the last piece of unidirectional motion information in the motion compensation candidate list AwpUniArray until the length of the list becomes X.

[383] Например, в сценарии 1 применения временная информация о движении может быть информацией об однонаправленном движении или информацией о двунаправленном движении. Например, в Р-слайсе временная информация о движении представляет собой информацию об однонаправленном движении, а в В-слайсе временная информация о движении представляет собой информацию о двунаправленном движении.[383] For example, in application scenario 1, the temporary motion information may be unidirectional motion information or bidirectional motion information. For example, in a P-slice, the temporal motion information is unidirectional motion information, and in a B-slice, the temporal motion information is bidirectional motion information.

[384] Сценарий 2 применения: после добавления пространственной информации о движении в список кандидатов для компенсации движения позиции Y зарезервированы для временной информации о движении, а временная информация о движении представляет собой информацию о двунаправленном движении, то есть список кандидатов для компенсации движения включает временную информацию о движении Y.[384] Application scenario 2: After adding spatial motion information to the motion compensation candidate list, the Y positions are reserved for temporal motion information, and the temporal motion information is bidirectional motion information, that is, the motion compensation candidate list includes temporal information about the movement of Y.

[385] На первом этапе определяют «доступность» информации о движении F, G, С, А, В и D, что может относиться к сценарию 1 применения.[385] The first step is to determine the "availability" of motion information F, G, C, A, B and D, which may relate to Application Scenario 1.

[386] На втором этапе доступную информацию о движении (каждую доступную пространственную информацию о движении) добавляют в список AwpUniArray кандидатов для компенсации движения на основе порядка доступной информации о движении F, G, С, А, В и D (этот порядок является переменным и включает только доступную информацию о движении) до тех пор, пока длина списка AwpUniArray кандидатов для компенсации движения не будет равна X-Y, или пока не завершится обход доступной информации о движении.[386] In the second step, the available motion information (each available spatial motion information) is added to the AwpUniArray candidate list for motion compensation based on the order of the available motion information F, G, C, A, B, and D (this order is variable and includes only available motion information) until the length of the AwpUniArray candidate list for motion compensation is X-Y, or until the available motion information has been traversed.

[387] Второй этап сценария 2 применения можно увидеть на втором этапе сценария 1 применения, и здесь он повторяться не будет.[387] The second stage of Application Scenario 2 can be seen in the second stage of Application Scenario 1 and will not be repeated here.

[388] Третий этап, для временной информации о движении, которая в настоящее время должна быть добавлена в список кандидатов для компенсации движения (например, временной информации о двунаправленном движении и доступной информации о движении), временную информацию о движении добавляют в список AwpUniArray кандидатов для компенсации движения в соответствии с четностью общего количества информации о возможном движении, уже существующей в списке кандидатов для компенсации движения (то есть текущей длины списка кандидатов для компенсации движения).[388] Third step, for temporary motion information that currently needs to be added to the candidate list for motion compensation (for example, temporary bidirectional motion information and available motion information), the temporary motion information is added to the AwpUniArray candidate list for motion compensation according to the parity of the total amount of possible motion information already existing in the motion compensation candidate list (ie, the current length of the motion compensation candidate list).

[389] Способ 1. Если общее количество существующей информации о возможном движении в списке AwpUniArray кандидатов для компенсации движения является четным числом, выполняют проверку на дублирование между информацией об однонаправленном движении, указывающей на список List0 опорных изображений во временной информации о движении, и информацией об однонаправленном движении в списке AwpUniArray кандидатов для компенсации движения. При отсутствии дублирования, информацию об однонаправленном движении, указывающую на список List0 опорных изображений, добавляют в список AwpUniArray кандидатов для компенсации движения. В случае дублирования выполняют проверку на дублирование между информацией об однонаправленном движении, указывающей на список List1 опорных изображений во временной информации о движении, и информацией об однонаправленном движении в списке AwpUniArray кандидатов для компенсации движения. При отсутствии дублирования, информацию об однонаправленном движении, указывающую на список List1 опорных изображений, добавляют в список AwpUniArray кандидатов для компенсации движения.[389] Method 1. If the total number of existing possible motion information in the motion compensation candidate list AwpUniArray is an even number, perform a duplication check between the unidirectional motion information pointing to the reference picture list List0 in the temporary motion information and the unidirectional motion in the AwpUniArray list of candidates for motion compensation. In the absence of duplication, unidirectional motion information pointing to List0 of reference pictures is added to the motion compensation candidate list AwpUniArray. In the case of duplication, a duplication check is performed between the unidirectional motion information pointing to the reference picture list List1 in the temporary motion information and the unidirectional motion information in the motion compensation candidate list AwpUniArray. In the absence of duplication, unidirectional motion information pointing to reference picture list List1 is added to the motion compensation candidate list AwpUniArray.

[390] Альтернативно, если общее количество существующей информации о возможном движении в списке AwpUniArray кандидатов для компенсации движения является нечетным числом, выполняют проверку на дублирование между информацией об однонаправленном движении, указывающей на список List1 опорных изображений во временной информации о движении, и информацией об однонаправленном движении в списке AwpUniArray кандидатов для компенсации движения. При отсутствии дублирования, информацию об однонаправленном движении, указывающую на список List1 опорных изображений, добавляют в список AwpUniArray кандидатов для компенсации движения. В случае дублирования выполняют проверку на дублирование между информацией об однонаправленном движении, указывающей на список List0 опорных изображений во временной информации о движении, и информацией об однонаправленном движении в списке AwpUniArray кандидатов для компенсации движения. При отсутствии дублирования, информацию об однонаправленном движении, указывающую на список List0 опорных изображений, добавляют в список AwpUniArray кандидатов для компенсации движения.[390] Alternatively, if the total amount of existing possible motion information in the motion compensation candidate list AwpUniArray is an odd number, a duplication check is performed between the unidirectional motion information pointing to the reference picture list List1 in the temporary motion information and the unidirectional motion information motion in the list of AwpUniArray candidates for motion compensation. In the absence of duplication, unidirectional motion information pointing to reference picture list List1 is added to the motion compensation candidate list AwpUniArray. In the case of duplication, a duplication check is performed between the unidirectional motion information pointing to the reference picture list List0 in the temporary motion information and the unidirectional motion information in the motion compensation candidate list AwpUniArray. In the absence of duplication, unidirectional motion information pointing to List0 of reference pictures is added to the motion compensation candidate list AwpUniArray.

[391] Способ 2. Если общее количество существующей информации о возможном движении в списке AwpUniArray кандидатов для компенсации движения является нечетным числом, выполняют проверку на дублирование между информацией об однонаправленном движении, указывающей на список List0 опорных изображений во временной информации о движении, и информацией об однонаправленном движении в списке AwpUniArray кандидатов для компенсации движения. При отсутствии дублирования, информацию об однонаправленном движении, указывающую на список List0 опорных изображений, добавляют в список AwpUniArray кандидатов для компенсации движения. В случае дублирования выполняют проверку на дублирование между информацией об однонаправленном движении, указывающей на список List1 опорных изображений во временной информации о движении, и информацией об однонаправленном движении в списке AwpUniArray кандидатов для компенсации движения. При отсутствии дублирования, информацию об однонаправленном движении, указывающую на список List1 опорных изображений, добавляют в список AwpUniArray кандидатов для компенсации движения.[391] Method 2 If the total amount of existing possible motion information in the motion compensation candidate list AwpUniArray is an odd number, perform a duplication check between the unidirectional motion information pointing to the reference picture list List0 in the temporary motion information and the unidirectional motion in the AwpUniArray list of candidates for motion compensation. In the absence of duplication, unidirectional motion information pointing to List0 of reference pictures is added to the motion compensation candidate list AwpUniArray. In the case of duplication, a duplication check is performed between the unidirectional motion information pointing to the reference picture list List1 in the temporary motion information and the unidirectional motion information in the motion compensation candidate list AwpUniArray. In the absence of duplication, unidirectional motion information pointing to reference picture list List1 is added to the motion compensation candidate list AwpUniArray.

[392] Альтернативно, если общее количество существующей информации о возможном движении в списке AwpUniArray кандидатов для компенсации движения является четным числом, выполняют проверку на дублирование между информацией об однонаправленном движении, указывающей на список List1 опорных изображений во временной информации о движении, и информацией об однонаправленном движении в списке AwpUniArray кандидатов для компенсации движения. При отсутствии дублирования, информацию об однонаправленном движении, указывающую на список List1 опорных изображений, добавляют в список AwpUniArray кандидатов для компенсации движения. В случае дублирования выполняют проверку на дублирование между информацией об однонаправленном движении, указывающей на список List0 опорных изображений во временной информации о движении, и информацией об однонаправленном движении в списке AwpUniArray кандидатов для компенсации движения. При отсутствии дублирования, информацию об однонаправленном движении, указывающую на список List0 опорных изображений, добавляют в список AwpUniArray кандидатов для компенсации движения.[392] Alternatively, if the total amount of existing possible motion information in the motion compensation candidate list AwpUniArray is an even number, a duplication check is performed between the unidirectional motion information pointing to the reference picture list List1 in the temporary motion information and the unidirectional motion information motion in the list of AwpUniArray candidates for motion compensation. In the absence of duplication, unidirectional motion information pointing to reference picture list List1 is added to the motion compensation candidate list AwpUniArray. In the case of duplication, a duplication check is performed between the unidirectional motion information pointing to the reference picture list List0 in the temporary motion information and the unidirectional motion information in the motion compensation candidate list AwpUniArray. In the absence of duplication, unidirectional motion information pointing to List0 of reference pictures is added to the motion compensation candidate list AwpUniArray.

[393] На четвертом этапе, если длина списка AwpUniArray кандидатов для компенсации движения меньше X, повторяют заполнение последней части информации об однонаправленном движении в списке AwpUniArray кандидатов для компенсации движения до тех пор, пока длина списка не станет X.[393] In the fourth step, if the length of the motion compensation candidate list AwpUniArray is less than X, repeat filling the last piece of unidirectional motion information in the motion compensation candidate list AwpUniArray until the length of the list becomes X.

[394] Сценарий 3 применения: после добавления пространственной информации о движении в список кандидатов для компенсации движения позиции Y зарезервированы для временной информации о движении, а временная информация о движении представляет собой информацию об однонаправленном движении, то есть список кандидатов для компенсации движения включает временную информацию о движении Y.[394] Application scenario 3: After adding spatial motion information to the motion compensation candidate list, the Y positions are reserved for temporal motion information, and the temporal motion information is unidirectional motion information, that is, the motion compensation candidate list includes temporal information about the movement of Y.

[395] На первом этапе определяют «доступность» информации о движении F, G, С, А, В и D, что может относиться к сценарию 1 применения.[395] The first step is to determine the "availability" of motion information F, G, C, A, B and D, which may relate to Application Scenario 1.

[396] На втором этапе доступную информацию о движении (каждую доступную пространственную информацию о движении) добавляют в список AwpUniArray кандидатов для компенсации движения на основе порядка доступной информации о движении F, G, С, А, В и D (этот порядок является переменным и включает только доступную информацию о движении) до тех пор, пока длина списка AwpUniArray кандидатов для компенсации движения не будет равна X-Y, или пока не завершится обход доступной информации о движении.[396] In the second step, the available motion information (each available spatial motion information) is added to the AwpUniArray candidate list for motion compensation based on the order of the available motion information F, G, C, A, B, and D (this order is variable and includes only available motion information) until the length of the AwpUniArray candidate list for motion compensation is X-Y, or until the available motion information has been traversed.

[397] Второй этап сценария 3 применения можно увидеть на втором этапе сценария 1 применения, и здесь он повторяться не будет.[397] The second stage of Application Scenario 3 can be seen in the second stage of Application Scenario 1 and will not be repeated here.

[398] На третьем этапе, для временной информации о движении, которая в настоящее время должна быть добавлена в список кандидатов для компенсации движения (например, временной информации об однонаправленном движении и доступной информации о движении), выполняют проверку на дублирование между временной информацией о движении и информацией об однонаправленном движении в списке AwpUniArray кандидатов для компенсации движения. При отсутствии дублирования, временную информацию о движении добавляют в список AwpUniArray кандидатов для компенсации движения.[398] In the third step, for the temporary motion information that currently needs to be added to the candidate list for motion compensation (for example, the temporary unidirectional motion information and the available motion information), a duplication check is performed between the temporal motion information and information about unidirectional motion in the list of AwpUniArray candidates for motion compensation. If there is no duplication, temporary motion information is added to the AwpUniArray list of candidates for motion compensation.

[399] На четвертом этапе, если длина списка AwpUniArray кандидатов для компенсации движения меньше X, повторяют заполнение последней части информации об однонаправленном движении в списке AwpUniArray кандидатов для компенсации движения до тех пор, пока длина списка не станет X.[399] In the fourth step, if the length of the motion compensation candidate list AwpUniArray is less than X, repeat filling the last piece of unidirectional motion information in the motion compensation candidate list AwpUniArray until the length of the list becomes X.

[400] Сценарий 4 применения: пространственную информацию о движении и временную информацию о движении совместно добавляют в список кандидатов для компенсации движения.[400] Application Scenario 4: Spatial motion information and temporal motion information are jointly added to a candidate list for motion compensation.

[401] На первом этапе определяют «доступность» информации о движении F, G, С, А, В и D, что может относиться к сценарию 1 применения.[401] The first step is to determine the "availability" of motion information F, G, C, A, B and D, which may relate to Application Scenario 1.

[402] На втором этапе доступную информацию о движении добавляют в список AwpUniArray кандидатов для компенсации движения на основе порядка доступной информации о движении F, G, С, А, В и D (этот порядок является переменным и включает только доступную информацию о движении) и порядка временной информации о движении (включая доступную информацию о движении), пока длина AwpUniArray не станет равной X или пока обход не завершится:[402] In the second step, the available motion information is added to the motion compensation candidate list AwpUniArray based on the order of the available motion information F, G, C, A, B, and D (this order is variable and includes only the available motion information) and order of temporary motion information (including available motion information) until the length of AwpUniArray becomes X or until the traversal completes:

[403] Условие 1, для доступной информации о движении, которая в настоящее время должна быть добавлена в список кандидатов для компенсации движения, если доступная информация о движении является информацией о двунаправленном движении (например, включая информацию об однонаправленном движении, указывающую на список List0 опорных изображений, и информацию об однонаправленном движении, указывающую на список List1 опорных изображений), доступную информацию о движении добавляют в список AwpUniArray кандидатов для компенсации движения. Для простоты доступная информация о движении может называться второй доступной информацией о движении.[403] Condition 1, for available motion information that is currently to be added to the candidate list for motion compensation, if the available motion information is bidirectional motion information (for example, including unidirectional motion information pointing to List0 references images, and unidirectional motion information pointing to reference image list List1), the available motion information is added to the motion compensation candidate list AwpUniArray. For simplicity, the available motion information may be referred to as the second available motion information.

[404] В способе 1 выполняют проверку на дублирование между информацией об однонаправленном движении, указывающей на список List0 опорных изображений во второй доступной информации о движении, и информацией об однонаправленном движении в списке AwpUniArray кандидатов для компенсации движения. При отсутствии дублирования, информацию об однонаправленном движении, указывающую на список List0 опорных изображений, добавляют в список AwpUniArray кандидатов для компенсации движения. В случае дублирования выполняют проверку на дублирование между информацией об однонаправленном движении, указывающей на список List1 опорных изображений во второй доступной информации о движении, и информацией об однонаправленном движении в списке AwpUniArray кандидатов для компенсации движения. При отсутствии дублирования, информацию об однонаправленном движении, указывающую на список List1 опорных изображений, добавляют в список AwpUniArray кандидатов для компенсации движения.[404] In Method 1, a duplication check is performed between the unidirectional motion information pointing to the reference picture list List0 in the second available motion information and the unidirectional motion information in the motion compensation candidate list AwpUniArray. In the absence of duplication, unidirectional motion information pointing to List0 of reference pictures is added to the motion compensation candidate list AwpUniArray. In the case of duplication, a duplication check is performed between the unidirectional motion information pointing to the reference picture list List1 in the second available motion information and the unidirectional motion information in the motion compensation candidate list AwpUniArray. In the absence of duplication, unidirectional motion information pointing to reference picture list List1 is added to the motion compensation candidate list AwpUniArray.

[405] Способ 2, выполняют проверку на дублирование между информацией об однонаправленном движении, указывающей на список List1 опорных изображений во второй доступной информации о движении, и информацией об однонаправленном движении в списке AwpUniArray кандидатов для компенсации движения. При отсутствии дублирования, информацию об однонаправленном движении, указывающую на список List1 опорных изображений, добавляют в список AwpUniArray кандидатов для компенсации движения. В случае дублирования выполняют проверку на дублирование между информацией об однонаправленном движении, указывающей на список List0 опорных изображений во второй доступной информации о движении, и информацией об однонаправленном движении в списке AwpUniArray кандидатов для компенсации движения. При отсутствии дублирования, информацию об однонаправленном движении, указывающую на список List0 опорных изображений, добавляют в список AwpUniArray кандидатов для компенсации движения.[405] Method 2, a duplication check is performed between the unidirectional motion information pointing to the reference picture list List1 in the second available motion information and the unidirectional motion information in the motion compensation candidate list AwpUniArray. In the absence of duplication, unidirectional motion information pointing to reference picture list List1 is added to the motion compensation candidate list AwpUniArray. In the case of duplication, a duplication check is performed between the unidirectional motion information pointing to the reference picture list List0 in the second available motion information and the unidirectional motion information in the motion compensation candidate list AwpUniArray. In the absence of duplication, unidirectional motion information pointing to List0 of reference pictures is added to the motion compensation candidate list AwpUniArray.

[406] Условие 2. Для добавления доступной информации о движении в список кандидатов для компенсации движения, если доступная информация о движении является информацией об однонаправленном движении, выполняют проверку на дублирование между информацией об однонаправленном движении и информацией об однонаправленном движении в списке AwpUniArray кандидатов для компенсации движения. При отсутствии дублирования, информацию об однонаправленном движении добавляют в список AwpUniArray кандидатов для компенсации движения.[406] Condition 2: To add available motion information to the motion compensation candidate list, if the available motion information is unidirectional motion information, perform a duplication check between the unidirectional motion information and the unidirectional motion information in the compensation candidate list AwpUniArray movements. If there is no duplication, unidirectional motion information is added to the AwpUniArray list of candidates for motion compensation.

[407] На третьем этапе, если длина списка AwpUniArray кандидатов для компенсации движения меньше X, повторяют заполнение последней части информации об однонаправленном движении в списке AwpUniArray кандидатов для компенсации движения до тех пор, пока длина списка не станет X.[407] In the third step, if the length of the motion compensation candidate list AwpUniArray is less than X, repeat filling the last piece of unidirectional motion information in the motion compensation candidate list AwpUniArray until the length of the list becomes X.

[408] Например, в сценарии 4 применения временная информация о движении может быть информацией об однонаправленном движении или информацией о двунаправленном движении. Например, в Р-слайсе временная информация о движении представляет собой информацию об однонаправленном движении, а в В-слайсе временная информация о движении представляет собой информацию о двунаправленном движении.[408] For example, in application scenario 4, the temporary motion information may be unidirectional motion information or bidirectional motion information. For example, in a P-slice, the temporal motion information is unidirectional motion information, and in a B-slice, the temporal motion information is bidirectional motion information.

[409] Сценарий 5 применения: после добавления пространственной информации о движении в список кандидатов для компенсации движения позиции Y зарезервированы для временной информации о движении, а временная информация о движении представляет собой информацию о двунаправленном движении, то есть список кандидатов для компенсации движения включает временную информацию о движении Y.[409] Application scenario 5: After adding spatial motion information to the motion compensation candidate list, the Y positions are reserved for temporal motion information, and the temporal motion information is bidirectional motion information, that is, the motion compensation candidate list includes temporal information about the movement of Y.

[410] На первом этапе определяют «доступность» информации о движении F, G, С, А, В и D, что может относиться к сценарию 1 применения.[410] The first step is to determine the "availability" of motion information F, G, C, A, B and D, which may relate to Application Scenario 1.

[411] На втором этапе доступную информацию о движении (например, каждую доступную пространственную информацию о движении) добавляют в список AwpUniArray кандидатов для компенсации движения на основе порядка доступной информации о движении F, G, С, А, В и D (этот порядок является переменным и включает только доступную информацию о движении) до тех пор, пока длина списка AwpUniArray кандидатов для компенсации движения не будет равна X-Y, или пока не завершится обход доступной информации о движении.[411] In the second step, the available motion information (eg, each available spatial motion information) is added to the AwpUniArray candidate list for motion compensation based on the order of the available motion information F, G, C, A, B, and D (this order is variables and includes only available motion information) until the length of the AwpUniArray candidate list for motion compensation is equal to X-Y, or until the available motion information has been traversed.

[412] Второй этап сценария 5 применения можно увидеть на втором этапе сценария 1 применения, и здесь он повторяться не будет.[412] The second stage of Application Scenario 5 can be seen in the second stage of Application Scenario 1 and will not be repeated here.

[413] На третьем этапе для временной информации о движении, которая в настоящее время должна быть добавлена в список кандидатов для компенсации движения (например, временной информации о двунаправленном движении и доступной информации о движении), временную информацию о движении добавляют в список AwpUniArray кандидатов для компенсации движения.[413] In the third step, for temporary motion information that currently needs to be added to the candidate list for motion compensation (for example, temporary bidirectional motion information and available motion information), the temporary motion information is added to the candidate list AwpUniArray for motion compensation.

[414] Способ 1, выполняют проверку на дублирование между информацией об однонаправленном движении, указывающей на список List0 опорных изображений во временной информации о движении, и информацией об однонаправленном движении в списке AwpUniArray кандидатов для компенсации движения. При отсутствии дублирования, информацию об однонаправленном движении, указывающую на список List0 опорных изображений, добавляют в список AwpUniArray кандидатов для компенсации движения. В случае дублирования выполняют проверку на дублирование между информацией об однонаправленном движении, указывающей на список List1 опорных изображений во временной информации о движении, и информацией об однонаправленном движении в списке AwpUniArray кандидатов для компенсации движения. При отсутствии дублирования, информацию об однонаправленном движении, указывающую на список List1 опорных изображений, добавляют в список AwpUniArray кандидатов для компенсации движения.[414] Method 1, a duplication check is performed between the unidirectional motion information pointing to the reference picture list List0 in the temporary motion information and the unidirectional motion information in the motion compensation candidate list AwpUniArray. In the absence of duplication, unidirectional motion information pointing to List0 of reference pictures is added to the motion compensation candidate list AwpUniArray. In the case of duplication, a duplication check is performed between the unidirectional motion information pointing to the reference picture list List1 in the temporary motion information and the unidirectional motion information in the motion compensation candidate list AwpUniArray. In the absence of duplication, unidirectional motion information pointing to reference picture list List1 is added to the motion compensation candidate list AwpUniArray.

[415] Способ 2, выполняют проверку на дублирование между информацией об однонаправленном движении, указывающей на список List1 опорных изображений во временной информации о движении, и информацией об однонаправленном движении в списке AwpUniArray кандидатов для компенсации движения. При отсутствии дублирования, информацию об однонаправленном движении, указывающую на список List1 опорных изображений, добавляют в список AwpUniArray кандидатов для компенсации движения. В случае дублирования выполняют проверку на дублирование между информацией об однонаправленном движении, указывающей на список List0 опорных изображений во временной информации о движении, и информацией об однонаправленном движении в списке AwpUniArray кандидатов для компенсации движения. При отсутствии дублирования, информацию об однонаправленном движении, указывающую на список List0 опорных изображений, добавляют в список AwpUniArray кандидатов для компенсации движения.[415] Method 2, a duplication check is performed between the unidirectional motion information pointing to the reference picture list List1 in the temporary motion information and the unidirectional motion information in the motion compensation candidate list AwpUniArray. In the absence of duplication, unidirectional motion information pointing to reference picture list List1 is added to the motion compensation candidate list AwpUniArray. In the case of duplication, a duplication check is performed between the unidirectional motion information pointing to the reference picture list List0 in the temporary motion information and the unidirectional motion information in the motion compensation candidate list AwpUniArray. In the absence of duplication, unidirectional motion information pointing to List0 of reference pictures is added to the motion compensation candidate list AwpUniArray.

[416] На четвертом этапе, если длина списка AwpUniArray кандидатов для компенсации движения меньше X, повторяют заполнение последней части информации об однонаправленном движении в списке AwpUniArray кандидатов для компенсации движения до тех пор, пока длина списка не станет X.[416] In the fourth step, if the length of the motion compensation candidate list AwpUniArray is less than X, repeat filling the last piece of unidirectional motion information in the motion compensation candidate list AwpUniArray until the length of the list becomes X.

[417] После добавления пространственной информации о движении в список кандидатов для компенсации движения позиции Y резервируют для временной информации о движении, а временная информация о движении представляет собой информацию об однонаправленном движении, то есть список кандидатов для компенсации движения включает временную информацию о движении Y.[417] After adding spatial motion information to the motion compensation candidate list, the Y positions are reserved for temporal motion information, and the temporal motion information is unidirectional motion information, that is, the motion compensation candidate list includes temporal Y motion information.

[418] На первом этапе определяют «доступность» информации о движении F, G, С, А, В и D, что может относиться к сценарию 1 применения.[418] The first step is to determine the "availability" of motion information F, G, C, A, B and D, which may relate to Application Scenario 1.

[419] Второй этап можно увидеть на втором этапе сценария 4 применения, и здесь он повторяться не будет.[419] The second step can be seen in the second step of Application Scenario 4 and will not be repeated here.

[420] На третьем этапе, для временной информации о движении, которая в настоящее время должна быть добавлена в список кандидатов для компенсации движения (например, временной информации об однонаправленном движении и доступной информации о движении), выполняют проверку на дублирование между временной информацией о движении и информацией об однонаправленном движении в списке AwpUniArray кандидатов компенсации движения. При отсутствии дублирования, временную информацию о движении добавляют в список AwpUniArray кандидатов для компенсации движения.[420] In the third step, for the temporary motion information that currently needs to be added to the candidate list for motion compensation (for example, the temporary unidirectional motion information and the available motion information), a duplication check is performed between the temporal motion information and unidirectional motion information in the AwpUniArray list of motion compensation candidates. If there is no duplication, temporary motion information is added to the AwpUniArray list of candidates for motion compensation.

[421] На четвертом этапе, если длина списка AwpUniArray кандидатов для компенсации движения меньше X, повторяют заполнение последней части информации об однонаправленном движении в списке AwpUniArray кандидатов для компенсации движения до тех пор, пока длина списка не станет X.[421] In the fourth step, if the length of the motion compensation candidate list AwpUniArray is less than X, repeat filling the last piece of unidirectional motion information in the motion compensation candidate list AwpUniArray until the length of the list becomes X.

[422] В приведенных выше сценариях применения X может быть любым положительным целым числом, например, X может быть 4 или 5 и т.п.[422] In the above application scenarios, X can be any positive integer, for example, X can be 4 or 5, etc.

[423] В приведенных выше сценариях применения, если длина списка AwpUniArray кандидатов для компенсации движения меньше X, повторяют заполнение последней части информации об однонаправленном движении в списке AwpUniArray кандидатов для компенсации движения до тех пор, пока длина списка не станет равной X. На практике до повторного выполнения операции заполнения последней части информации об однонаправленном движении действительная информация о движении может быть увеличена за счет получения информации о движении. Например, с любой одной частью действительной информации о движении (х, у, ref_idx, ListX) в списке кандидатов для компенсации движения в качестве основы ref_idx и ListX представляют индекс опорного изображения и список опорных изображений соответственно, которые совместно называются информацией об опорных изображениях, и по меньшей мере одна часть информации о движении может быть добавлена следующим образом: (х+а, y+b, ref_idx, ListX), где а и b могут быть любыми целыми числами; (k1 * х, k1 * у, ref_idx_newl, ListX), где k1 - любое положительное целое число, отличное от нуля, то есть для вектора движения выполняют операцию масштабирования; (k2 * х, k2 * у, ref_idx_new2, ListY), где k2 - любое положительное целое число, отличное от нуля, то есть для вектора движения выполняют операцию масштабирования. Кроме того, может также выполняться добавление нулевых векторов движения, то есть информация о движении может быть (0, 0, ref_idx3, ListZ). Для приведенной выше информации о движении, когда информацию о движении добавляют в список кандидатов для компенсации движения, проверка на дублирование может выполняться или не выполняться. Если длина списка AwpUniArray кандидатов для компенсации движения все еще меньше X, может быть повторно выполнена операция заполнения, как указано выше.[423] In the above application scenarios, if the length of the motion compensation candidate list AwpUniArray is less than X, repeat filling the last piece of unidirectional motion information in the motion compensation candidate list AwpUniArray until the list length becomes X. In practice, up to repeating the operation of filling the last part of the unidirectional motion information, the actual motion information can be increased by obtaining the motion information. For example, with any one piece of actual motion information (x, y, ref_idx, ListX) in the motion compensation candidate list as a basis, ref_idx and ListX represent the reference picture index and the reference picture list, respectively, which are collectively called reference picture information, and at least one piece of motion information may be added as follows: (x+a, y+b, ref_idx, ListX), where a and b can be any integers; (k1 * x, k1 * y, ref_idx_newl, ListX), where k1 is any positive integer non-zero, that is, a scaling operation is performed for the motion vector; (k2 * x, k2 * y, ref_idx_new2, ListY), where k2 is any positive integer non-zero, that is, a scaling operation is performed on the motion vector. In addition, addition of zero motion vectors may also be performed, that is, the motion information may be (0, 0, ref_idx3, ListZ). For the above motion information, when the motion information is added to the candidate list for motion compensation, the duplication check may or may not be performed. If the length of the motion compensation candidate list AwpUniArray is still less than X, the padding operation can be re-performed as above.

[424] В приведенных выше сценариях применения, в дополнение к пространственной информации о движении и временной информации о движении, информация о движении HMVP также может быть добавлена в список AwpUniArray кандидатов для компенсации движения, и процесс добавления информации о движении HMVP не ограничен.[424] In the above application scenarios, in addition to spatial motion information and temporal motion information, HMVP motion information can also be added to the AwpUniArray candidate list for motion compensation, and the process of adding HMVP motion information is not limited.

[425] В приведенных выше сценариях применения может быть построен список AwpUniArray кандидатов для компенсации движения, а информация о движении в AwpUniArray может называться информацией о возможном движении, а затем информация о возможном движении может быть выбрана из AwpUniArray в качестве целевой информации о движении текущего блока, и затем может быть определено значение предсказания позиции пикселя на основе целевой информации о движении.[425] In the above application scenarios, a list of AwpUniArray candidates for motion compensation can be constructed, and the motion information in AwpUniArray can be called candidate motion information, and then the candidate motion information can be selected from AwpUniArray as the target motion information of the current block , and then a pixel position prediction value based on the target motion information can be determined.

[426] В возможной реализации две части информации о возможном движении выбирают из AwpUniArray в качестве первой целевой информации о движении и второй целевой информации о движении текущего блока. На основе этого сторона декодера может проанализировать AwpCandIdx0 и AwpCandIdx1 из кодированного битового потока и назначить (AwpCandIdx0+1)-го информацию о движении в AwpUniArray как mvAwp0L0, mvAwp0L1, RefIdxAwp0L0 и RefIdxAwp0L1, а также назначить (AwpCandIdx1+1)-го информацию о движении в AwpUniArray как mvAwp1L0, mvAwp1L1, RefIdxAwp1L0 и RefIdxAwp1L1. (AwpCandIdx0+1)-я информация о движении в AwpUniArray также может быть назначена как mvAwp1L0, mvAwp1L1, RefIdxAwp1L0 и RefIdxAwp1L1, a (AwpCandIdx1+1)-я информация о движении в AwpUniArray может быть назначена как mvAwp0L0, mvAwpOLxLd0 и RefIdxAwp0, что здесь не ограничено.[426] In an exemplary implementation, two pieces of possible motion information are selected from AwpUniArray as the first target motion information and the second target motion information of the current block. Based on this, the decoder side can analyze AwpCandIdx0 and AwpCandIdx1 from the encoded bitstream and assign (AwpCandIdx0+1)-th motion information in AwpUniArray as mvAwp0L0, mvAwp0L1, RefIdxAwp0L0 and RefIdxAwp0L1, and also assign (AwpCandIdx1+1)-th traffic information in AwpUniArray as mvAwp1L0, mvAwp1L1, RefIdxAwp1L0 and RefIdxAwp1L1. The (AwpCandIdx0+1)th motion information in AwpUniArray can also be assigned as mvAwp1L0, mvAwp1L1, RefIdxAwp1L0 and RefIdxAwp1L1, and the (AwpCandIdx1+1)th motion information in AwpUniArray can be assigned as mvAwp0L0, mvAwpOLxLd 0 and RefIdxAwp0, which is here not limited.

[427] Например, AwpCandIdx0 представляет значение индекса первой целевой информации о движении. Следовательно, (AwpCandIdx0+1)-я информация о движении в AwpUniArray может быть назначена первой целевой информации о движении. Например, если значение AwpCandIdx0 равно 0, первую информацию о движении в AwpUniArray назначают первой целевой информации о движении; если значение AwpCandIdx0 равно 1, вторую информацию о движении в AwpUniArray назначают первой целевой информации о движении и т.д.[427] For example, AwpCandIdx0 represents the index value of the first target motion information. Therefore, the (AwpCandIdx0+1)th motion information in AwpUniArray can be assigned to the first target motion information. For example, if the value of AwpCandIdx0 is 0, the first motion information in AwpUniArray is assigned to the first target motion information; if the value of AwpCandIdx0 is 1, the second motion information in AwpUniArray is assigned to the first target motion information, etc.

[428] mvAwp0L0, mvAwp0L1, RefIdxAwp0L0 и RefIdxAwp0L1 объединяют в качестве первой целевой информации о движении, то есть первая целевая информация о движении включает информацию об однонаправленном движении, указывающую на List0, и информацию об однонаправленном движении, указывающую на List1.[428] mvAwp0L0, mvAwp0L1, RefIdxAwp0L0 and RefIdxAwp0L1 are combined as the first target motion information, that is, the first target motion information includes unidirectional motion information pointing to List0 and unidirectional motion information pointing to List1.

[429] Если (AwpCandIdx0+1)-я информация о движении в AwpUniArray является информацией об однонаправленном движении, указывающей на List0, первая целевая информация о движении включает информацию об однонаправленном движении, указывающую на List0, а информация об однонаправленном движении, указывающая на List1, является нулевой.[429] If the (AwpCandIdx0+1)th motion information in AwpUniArray is unidirectional motion information pointing to List0, the first target motion information includes unidirectional motion information pointing to List0 and unidirectional motion information pointing to List1 , is null.

[430] Если (AwpCandIdx0+1)-я информация о движении в AwpUniArray является информацией об однонаправленном движении, указывающей на List1, первая целевая информация о движении включает информацию об однонаправленном движении, указывающую на List1, а информация об однонаправленном движении, указывающая на List0, является нулевой.[430] If the (AwpCandIdx0+1)th motion information in AwpUniArray is unidirectional motion information pointing to List1, the first target motion information includes unidirectional motion information pointing to List1 and unidirectional motion information pointing to List0 , is null.

[431] Например, mvAwp0L0 и RefIdxAwp0L0 представляют информацию об однонаправленном движении, указывающую на List0 в первой целевой информации о движении, a mvAwp0L1 и RefIdxAwp0L1 представляют информацию об однонаправленном движении, указывающую на List1, в первой целевой информации о движении.[431] For example, mvAwp0L0 and RefIdxAwp0L0 represent unidirectional motion information pointing to List0 in the first target motion information, and mvAwp0L1 and RefIdxAwp0L1 represent unidirectional motion information pointing to List1 in the first target motion information.

[432] Если RefIdxAwp0L0 действителен, это указывает на то, что информация об однонаправленном движении, указывающая на List0, действительна. Таким образом, режим предсказания первой целевой информации о движении представляет собой PREDList0, то есть может быть принято значение предсказания позиции пикселя информации об однонаправленном движении, указывающей на List0.[432] If RefIdxAwp0L0 is valid, this indicates that the unidirectional information pointing to List0 is valid. That is, the prediction mode of the first target motion information is PREDList0, that is, the pixel position prediction value of the unidirectional motion information pointing to List0 can be received.

[433] Если RefIdxAwp0L1 действителен, это указывает на то, что информация об однонаправленном движении, указывающая на List1, действительна. Таким образом, режим предсказания первой целевой информации о движении представляет собой PRED List1, то есть может быть принято значение предсказания позиции пикселя информации об однонаправленном движении, указывающей на List1.[433] If RefIdxAwp0L1 is valid, this indicates that the one-way information pointing to List1 is valid. That is, the prediction mode of the first target motion information is PRED List1, that is, a pixel position prediction value of the unidirectional motion information pointing to List1 can be received.

[434] Например, AwpCandIdx1 представляет значение индекса второй целевой информации о движении. Следовательно, (AwpCandIdx1+1)-я информация о движении в AwpUniArray может быть назначена второй целевой информации о движении. Например, если значение AwpCandIdx1 равно 0, первую информацию о движении в AwpUniArray назначают второй целевой информации о движении; если значение AwpCandIdx1 равно 1, вторую информацию о движении в AwpUniArray назначают второй целевой информации о движении и т.д.[434] For example, AwpCandIdx1 represents an index value of the second target motion information. Therefore, the (AwpCandIdx1+1)th motion information in AwpUniArray can be assigned to the second target motion information. For example, if the value of AwpCandIdx1 is 0, the first motion information in AwpUniArray is assigned to the second target motion information; if the value of AwpCandIdx1 is 1, the second motion information in AwpUniArray is assigned to the second target motion information, etc.

[435] mvAwp1L0, mvAwp1L1, RefIdxAwp1L0 и RefIdxAwp1L1 объединяют в качестве второй целевой информации о движении, то есть вторая целевая информация о движении включает информацию об однонаправленном движении, указывающую на List0, и информацию об однонаправленном движении, указывающую на List1.[435] mvAwp1L0, mvAwp1L1, RefIdxAwp1L0 and RefIdxAwp1L1 are combined as second target motion information, that is, the second target motion information includes unidirectional motion information pointing to List0 and unidirectional motion information pointing to List1.

[436] Если (AwpCandIdx1+1)-я информация о движении в AwpUniArray является информацией об однонаправленном движении, указывающей на List0, то вторая целевая информация о движении включает информацию об однонаправленном движении, указывающую на List0, а информация об однонаправленном движении, указывающая на List1, является нулевой.[436] If the (AwpCandIdx1+1)th motion information in AwpUniArray is unidirectional motion information pointing to List0, then the second target motion information includes unidirectional motion information pointing to List0 and unidirectional motion information pointing to List1 is null.

[437] Если (AwpCandIdx1+1)-я информация о движении в AwpUniArray является информацией об однонаправленном движении, указывающей на List1, то вторая целевая информация о движении включает информацию об однонаправленном движении, указывающую на List1, а информация об однонаправленном движении, указывающая на List0, является нулевой.[437] If the (AwpCandIdx1+1)th motion information in AwpUniArray is unidirectional motion information pointing to List1, then the second target motion information includes unidirectional motion information pointing to List1 and unidirectional motion information pointing to List0 is null.

[438] Например, mvAwp1L0 и RefIdxAwp1L0 представляют информацию об однонаправленном движении, указывающую на List0, во второй целевой информации о движении, a mvAwp1L1 и RefIdxAwp1L1 представляют информацию об однонаправленном движении, указывающую на List1, во второй целевой информации о движении.[438] For example, mvAwp1L0 and RefIdxAwp1L0 represent unidirectional motion information pointing to List0 in the second target motion information, and mvAwp1L1 and RefIdxAwp1L1 represent unidirectional motion information pointing to List1 in the second target motion information.

[439] Если RefIdxAwp1L0 действителен, это указывает на то, что информация об однонаправленном движении, указывающая на List0, действительна. Таким образом, режим предсказания второй целевой информации о движении представляет собой PRED List0, то есть может быть принято значение предсказания позиции пикселя информации об однонаправленном движении, указывающей на List0.[439] If RefIdxAwp1L0 is valid, this indicates that the one-way information pointing to List0 is valid. That is, the prediction mode of the second target motion information is PRED List0, that is, a pixel position prediction value of the unidirectional motion information pointing to List0 can be received.

[440] Если RefIdxAwp1L1 действителен, это указывает на то, что информация об однонаправленном движении, указывающая на List1, действительна. Таким образом, режим предсказания второй целевой информации о движении представляет собой PRED_List1, то есть может быть принято значение предсказания позиции пикселя информации об однонаправленном движении, указывающей на List1.[440] If RefIdxAwp1L1 is valid, this indicates that the one-way information pointing to List1 is valid. That is, the prediction mode of the second target motion information is PRED_List1, that is, a pixel position prediction value of the unidirectional motion information pointing to List1 can be received.

[441] В другой возможной реализации одна часть информации о возможном движении может быть выбрана из AwpUniArray в качестве целевой информации о движении текущего блока. Сторона декодера может проанализировать AwpCandIdx из кодированного битового потока и назначить (AwpCandIdx+1)-ю информацию о движении в AwpUniArray как mvAwpL0, mvAwpL1, RefIdxAwpL0 и RefIdxAwpL1. AwpCandIdx представляет значение индекса целевой информации о движении, mvAwpL0, mvAwpL1, RefIdxAwpL0 и RefIdxAwpL1 совместно в качестве целевой информации о движении. mvAwpL0 и RefIdxAwpL0 представляют информацию об однонаправленном движении, указывающую на List0, в целевой информации о движении, a mvAwpL1 и RefIdxAwpL1 представляют информацию об однонаправленном движении, указывающую на List1, в целевой информации о движении.[441] In another possible implementation, one piece of possible motion information may be selected from AwpUniArray as the target motion information of the current block. The decoder side can parse the AwpCandIdx from the encoded bitstream and assign the (AwpCandIdx+1)th motion information to the AwpUniArray as mvAwpL0, mvAwpL1, RefIdxAwpL0 and RefIdxAwpL1. AwpCandIdx represents the index value of the motion target information, mvAwpL0, mvAwpL1, RefIdxAwpL0 and RefIdxAwpL1 together as the motion target information. mvAwpL0 and RefIdxAwpL0 represent unidirectional motion information pointing to List0 in the target motion information, and mvAwpL1 and RefIdxAwpL1 represent unidirectional motion information pointing to List1 in the target motion information.

[442] Например, варианты 1-16 осуществления изобретения могут быть реализованы по отдельности или в сочетании. Например, вариант 1 осуществления изобретения может быть реализован в сочетании с вариантом 2 осуществления изобретения; Вариант 1 осуществления изобретения может быть реализован в сочетании с Вариантом 3 осуществления изобретения; Вариант 1 осуществления изобретения, вариант 2 осуществления изобретения и вариант 3 осуществления изобретения могут быть реализованы в сочетании; Вариант 4 осуществления изобретения может быть реализован в сочетании с одним или более вариантами 1-3 осуществления изобретения; Вариант 5 осуществления изобретения может быть реализован в сочетании с одним или более вариантами 1-3 осуществления изобретения; Вариант 6 осуществления изобретения может быть реализован в сочетании с одним или более вариантами 1-3 осуществления изобретения; Вариант 7 осуществления изобретения может быть реализован в сочетании с одним или более вариантами 1-3 осуществления изобретения; Вариант 8 осуществления изобретения может быть реализован в сочетании с одним или более вариантами 1-3 осуществления изобретения; Вариант 9 осуществления изобретения может быть реализован в сочетании с одним или более вариантами 1-3 осуществления изобретения; Вариант 10 осуществления изобретения может быть реализован в сочетании с одним или более вариантами 1-3 осуществления изобретения; Вариант 11 осуществления изобретения может быть реализован в сочетании с одним или более вариантами 1-3 осуществления изобретения; Вариант 12 осуществления изобретения может быть реализован в сочетании с одним или более вариантами 1-3 осуществления изобретения; Вариант 13 осуществления изобретения может быть реализован в сочетании с одним или более вариантами 1-3 осуществления изобретения; Вариант 14 осуществления изобретения может быть реализован в сочетании с одним или более вариантами 1-3 осуществления изобретения; Вариант 15 осуществления изобретения может быть реализован в сочетании с одним или более вариантами 1-3 осуществления изобретения; Вариант 16 осуществления изобретения может быть реализован в сочетании с одним или более вариантами 1-3 осуществления изобретения; выше приведены лишь примеры, и нет никаких ограничений на то, как варианты осуществления изобретения могут сочетаться друг с другом.[442] For example, embodiments 1-16 of the invention may be implemented individually or in combination. For example, embodiment 1 of the invention may be implemented in combination with embodiment 2 of the invention; Embodiment 1 of the invention may be implemented in combination with Embodiment 3 of the invention; Embodiment 1, Embodiment 2 and Embodiment 3 may be implemented in combination; Embodiment 4 may be implemented in combination with one or more embodiments 1 to 3; Embodiment 5 of the invention may be implemented in combination with one or more embodiments 1-3 of the invention; Embodiment 6 may be implemented in combination with one or more embodiments 1 to 3; Embodiment 7 may be implemented in combination with one or more embodiments 1 to 3; Embodiment 8 may be implemented in combination with one or more embodiments 1 to 3; Embodiment 9 may be implemented in combination with one or more embodiments 1 to 3; Embodiment 10 of the invention may be implemented in combination with one or more embodiments 1-3 of the invention; Embodiment 11 of the invention may be implemented in combination with one or more embodiments 1-3 of the invention; Embodiment 12 of the invention may be implemented in combination with one or more embodiments 1-3 of the invention; Embodiment 13 may be implemented in combination with one or more embodiments 1 to 3; Embodiment 14 may be implemented in combination with one or more embodiments 1-3; Embodiment 15 of the invention may be implemented in combination with one or more embodiments 1-3 of the invention; Embodiment 16 may be implemented in combination with one or more embodiments 1-3; The above are examples only, and there are no restrictions on how embodiments of the invention may be combined with each other.

[443] Следует отметить, что в приведенных выше вариантах осуществления изобретения способ, используемый стороной кодера, и способ, используемый стороной декодера, могут ссылаться друг на друга.[443] It should be noted that in the above embodiments of the invention, the method used by the encoder side and the method used by the decoder side may refer to each other.

[444] Вариант 17 осуществления изобретения. На основе той же идеи применения, что и в описанном выше способе, варианты осуществления настоящего изобретения также обеспечивают оборудование для кодирования и декодирования, применяемое на стороне кодера или на стороне декодера, см. Фиг. 10А, где показана структурная схема оборудования, содержащего модуль 111 получения, модуль 112 конфигурирования и модуль 113 определения.[444] Embodiment 17 of the invention. Based on the same application idea as the method described above, embodiments of the present invention also provide encoding and decoding equipment applied on the encoder side or on the decoder side, see FIG. 10A, which shows a block diagram of equipment including an acquisition module 111, a configuration module 112, and a determination module 113.

[445] Модуль 111 получения предназначен для получения угла взвешенного предсказания и параметров весовой конфигурации текущего блока, когда определено, что следует разрешить взвешенное предсказание для текущего блока, при этом параметры весовой конфигурации включают коэффициент преобразования весов и начальную позицию преобразования весов.[445] The acquisition unit 111 is configured to obtain the weighted prediction angle and weight configuration parameters of the current block when it is determined that weighted prediction should be enabled for the current block, the weight configuration parameters including a weight conversion factor and a weight conversion starting position.

[446] Модуль 112 конфигурирования предназначен для конфигурирования опорных весовых значений для окружающих позиций за пределами текущего блока на основе параметров весовой конфигурации текущего блока.[446] Configuration module 112 is configured to configure reference weight values for surrounding positions outside the current block based on the current block's weight configuration parameters.

[447] Модуль 113 определения предназначен для определения, для каждой позиции пикселя текущего блока, окружающей соответствующей позиции, указанной позицией пикселя, из окружающих позиций за пределами текущего блока, на основе угла взвешенного предсказания; определения целевого весового значения позиции пикселя на основе опорного весового значения, связанного с окружающей соответствующей позицией, определения ассоциированного весового значения позиции пикселя на основе целевого весового значения позиции пикселя; определения первого значения предсказания позиции пикселя на основе первого режима предсказания текущего блока, определения второго значения предсказания позиции пикселя на основе второго режима предсказания текущего блока; определения значения взвешенного предсказания позиции пикселя на основе первого значения предсказания, целевого весового значения, второго значения предсказания и ассоциированного весового значения; определения значения взвешенного предсказания текущего блока на основе значений взвешенного предсказания всех позиций пикселей в текущем блоке.[447] The determining unit 113 is configured to determine, for each pixel position of the current block, a surrounding corresponding position indicated by the pixel position from surrounding positions outside the current block, based on the weighted prediction angle; determining a target pixel position weight value based on a reference weight value associated with a surrounding corresponding position, determining an associated pixel position weight value based on the target pixel position weight value; determining a first pixel position prediction value based on a first prediction mode of the current block, determining a second pixel position prediction value based on a second prediction mode of the current block; determining a weighted pixel position prediction value based on the first prediction value, the target weight value, the second prediction value, and the associated weight value; determining a weighted prediction value of the current block based on the weighted prediction values of all pixel positions in the current block.

[448] Если текущий блок поддерживает режим переключения коэффициента преобразования весов, модуль 111 получения получает коэффициент преобразования весов текущего блока путем выполнения следующего: получение первой информации указания коэффициента преобразования весов для текущего блока; определение коэффициента преобразования весов текущего блока на основе первой информации указания коэффициента преобразования весов. Если первая информация указания коэффициента преобразования весов является первой информацией указания, коэффициент преобразования весов текущего блока является первым коэффициентом преобразования весов, и если первая информация указания коэффициента преобразования весов является второй информацией указания, коэффициент преобразования весов текущего блока является вторым коэффициентом преобразования весов.[448] If the current block supports the weight conversion coefficient switching mode, the acquiring unit 111 obtains the weight conversion coefficient of the current block by doing the following: obtaining first weight conversion coefficient indication information for the current block; determining the weight conversion coefficient of the current block based on the first weight conversion coefficient indication information. If the first weight conversion factor indication information is the first indication information, the weight conversion factor of the current block is the first weight conversion factor, and if the first weight conversion factor indication information is the second indication information, the current block's weight conversion factor is the second weight conversion factor.

[449] Первая информация указания коэффициента преобразования весов является информацией указания уровня изображения, первая информация указания коэффициента преобразования весов в текущем блоке представляет идентификацию переключения коэффициента преобразования весов, соответствующую текущему блоку, первая информация указания предназначена для указания того, что текущий блок не требует переключения коэффициента преобразования весов, а вторая информация указания предназначена для указания того, что текущий блок требует переключения коэффициента преобразования весов. Абсолютное значение первого коэффициента преобразования весов не равно абсолютному значению второго коэффициента преобразования весов.[449] The first weight conversion coefficient indication information is image level indication information, the first weight conversion coefficient indication information in the current block represents the weight conversion coefficient switching identification corresponding to the current block, the first indication information is for indicating that the current block does not require coefficient switching weight conversion, and the second indication information is for indicating that the current block requires switching the weight conversion factor. The absolute value of the first weight conversion factor is not equal to the absolute value of the second weight conversion factor.

[450] Если текущий блок поддерживает режим переключения коэффициента преобразования весов, модуль 111 получения получает коэффициент преобразования весов текущего блока путем выполнения следующего: получение второй информации указания коэффициента преобразования весов для текущего блока; выбор коэффициента преобразования весов, соответствующего второй информации указания коэффициента преобразования весов, из заранее заданной таблицы поиска; при этом заданная таблица поиска включает по меньшей мере два коэффициента преобразования весов; и определение выбранного коэффициента преобразования весов в качестве коэффициента преобразования весов текущего блока.[450] If the current block supports the weight conversion coefficient switching mode, the acquiring unit 111 obtains the weight conversion coefficient of the current block by doing the following: obtaining second weight conversion coefficient indication information for the current block; selecting a weight conversion coefficient corresponding to the second weight conversion coefficient indication information from a predetermined lookup table; wherein the specified lookup table includes at least two weight conversion factors; and determining the selected weight conversion factor as the weight conversion factor of the current block.

[451] Например, при конфигурировании опорных весовых значений для окружающих позиций за пределами текущего блока в соответствии с параметрами весовой конфигурации модуль 112 конфигурирования, в частности, используется для выполнения следующего: для каждой окружающей позиции за пределами текущего блока, конфигурирование опорного весового значения окружающей позиции в соответствии со значением координаты окружающей позиции, значением координаты начальной позиции преобразования весов и коэффициентом преобразования весов.[451] For example, when configuring reference weight values for surrounding positions outside the current block in accordance with the weight configuration parameters, the configuration module 112 is specifically used to do the following: for each surrounding position outside the current block, configuring the reference weight value of the surrounding position according to the coordinate value of the surrounding position, the coordinate value of the starting position of the weight transformation, and the weight transformation coefficient.

[452] Например, начальная позиция преобразования весов определяется по меньшей мере одним из следующих параметров: угол взвешенного предсказания, позиция взвешенного предсказания текущего блока или размер текущего блока. Количество окружающих позиций за пределами текущего блока определяется на основе размера текущего блока и/или угла взвешенного предсказания текущего блока. Опорные весовые значения окружающих позиций за пределами текущего блока монотонно увеличиваются. Окружающие позиции за пределами текущего блока включают одну или более позиций целого пикселя и/или одну или более позиций субпикселя. Окружающие позиции за пределами текущего блока включают окружающие позиции в одной строке сверху от текущего блока и/или окружающие позиции в одном столбце слева от текущего блока.[452] For example, the starting position of the weight transformation is determined by at least one of the weighted prediction angle, the weighted prediction position of the current block, or the size of the current block. The number of surrounding positions outside the current block is determined based on the size of the current block and/or the weighted prediction angle of the current block. The reference weights of surrounding positions outside the current block increase monotonically. Surrounding positions outside the current block include one or more whole pixel positions and/or one or more subpixel positions. Surrounding positions outside the current block include surrounding positions one row above the current block and/or surrounding positions one column to the left of the current block.

[453] Опорные весовые значения окружающих позиций за пределами текущего блока включают одно или более опорных весовых значений целевых позиций, одно или более опорных весовых значений первых соседних позиций целевых позиций и одно или более опорных весовых значений вторых соседних позиций целевых позиций. Все опорные весовые значения первых соседних позиций являются вторым опорным весовым значением, а все опорные весовые значения вторых соседних позиций являются третьим опорным весовым значением, при этом второе опорное весовое значение отличается от третьего опорного весового значения. Целевые позиции включают одно опорное весовое значение или по меньшей мере два опорных весовых значения, если целевые позиции включают по меньшей мере два значения опорного веса, по меньшей мере два опорных весовых значения целевых позиций монотонно увеличиваются.[453] The reference weights of the surrounding positions outside the current block include one or more reference weights of the target positions, one or more reference weights of the first adjacent positions of the target positions, and one or more reference weights of the second neighboring positions of the target positions. All reference weights of the first adjacent positions are a second reference weight, and all reference weights of the second adjacent positions are a third reference weight, wherein the second reference weight is different from the third reference weight. The target positions include one reference weight value or at least two reference weight values, if the target positions include at least two reference weight values, the at least two reference weight values of the target positions increase monotonically.

[454] Угол взвешенного предсказания представляет собой горизонтальный угол; или угол взвешенного предсказания представляет собой вертикальный угол; или абсолютное значение наклона угла взвешенного предсказания представляет собой n-ю степень числа 2, где п представляет собой целое число.[454] The weighted prediction angle is a horizontal angle; or the weighted prediction angle is a vertical angle; or the absolute value of the slope of the weighted prediction angle is the nth power of 2, where n is an integer.

[455] Например, модуль 113 определения также предназначен для выполнения следующего: если окружающая соответствующая позиция является позицией целого пикселя, и позиция целого пикселя сконфигурирована с опорным весовым значением, определение целевого весового значения позиции пикселя на основе опорного весового значения позиции целого пикселя; или, если окружающая соответствующая позиция является позицией субпикселя, и позиция субпикселя сконфигурирована с опорным весовым значением, определение целевого весового значения позиции пикселя на основе опорного весового значения позиции субпикселя.[455] For example, the determination unit 113 is also configured to do the following: if the surrounding corresponding position is an integer pixel position, and the integer pixel position is configured with a reference weight value, determining a target pixel position weight value based on the reference integer pixel position weight value; or, if the surrounding corresponding position is a subpixel position, and the subpixel position is configured with a reference weight value, determining a target pixel position weight value based on the reference subpixel position weight value.

[456] Если первый режим предсказания представляет собой режим внешнего предсказания, модуль 113 определения также предназначен для получения списка кандидатов для компенсации движения, включающего по меньшей мере одну часть информации о возможном движении; выбор одной части информации о возможном движении из списка кандидатов для компенсации движения в качестве исходной информации о движении текущего блока; определение целевой информации о движении текущего блока на основе исходной информации о движении; и определение первого значения предсказания позиции пикселя на основе целевой информации о движении.[456] If the first prediction mode is an inter prediction mode, the determining unit 113 is also configured to obtain a motion compensation candidate list including at least one piece of possible motion information; selecting one piece of possible motion information from the candidate list for motion compensation as the initial motion information of the current block; determining target motion information of the current block based on the original motion information; and determining a first pixel position prediction value based on the target motion information.

[457] Исходная информация о движении включает исходный вектор движения, целевая информация о движении включает целевой вектор движения, а модуль 113 определения также предназначен для получения разности векторов движения, соответствующей исходному вектору движения; и определения целевого вектора движения на основе разности векторов движения и исходного вектора движения.[457] The source motion information includes a source motion vector, the target motion information includes a target motion vector, and the determining unit 113 is also configured to obtain a motion vector difference corresponding to the source motion vector; and determining a target motion vector based on the difference of the motion vectors and the source motion vector.

[458] На стороне декодера модуль 113 определения также предназначен для анализа информации о направлении и информации об амплитуде разности векторов движения из кодированного битового потока текущего блока; определения разности векторов движения на основе информации о направлении и информации об амплитуде разности векторов движения.[458] On the decoder side, the determining unit 113 is also designed to analyze direction information and motion vector difference amplitude information from the encoded bitstream of the current block; determining the motion vector difference based on the direction information and the amplitude information of the motion vector difference.

[459] Если информация о направлении указывает направление вправо, а информация об амплитуде указывает, что амплитуда равна Ar, разность векторов движения равна (Ar, 0). Если информация о направлении указывает направление вниз, а информация об амплитуде указывает, что амплитуда равна Ad, разность векторов движения равна (0, -Ad). Если информация о направлении указывает направление влево, а информация об амплитуде указывает, что амплитуда равна А1, разность векторов движения равна (-А1, 0). Если информация о направлении указывает направление вверх, а информация об амплитуде указывает, что амплитуда равна Au, разность векторов движения равна (0, Au).[459] If the direction information indicates the direction to the right and the amplitude information indicates that the amplitude is Ar, the motion vector difference is (Ar, 0). If the direction information indicates the downward direction and the amplitude information indicates that the amplitude is equal to Ad, the difference of motion vectors is equal to (0, -Ad). If the direction information indicates the left direction and the amplitude information indicates that the amplitude is A1, the motion vector difference is (-A1, 0). If the direction information indicates the upward direction and the amplitude information indicates that the amplitude is Au, the motion vector difference is (0, Au).

[460] На стороне декодера модуль 113 определения также предназначен для анализа информации флага из кодированного битового потока текущего блока; если информация флага указывает на наложение разности векторов движения на исходный вектор движения, анализа информации о направлении и информации об амплитуде разности векторов движения из кодированного битового потока текущего блока.[460] On the decoder side, the determining unit 113 is also configured to analyze flag information from the encoded bitstream of the current block; if the flag information indicates superposition of the motion vector difference on the original motion vector, analyzing the direction information and amplitude information of the motion vector difference from the encoded bit stream of the current block.

[461] Модуль 113 определения также предназначен для получения по меньшей мере одной части доступной информации о движении для добавления в список кандидатов для компенсации движения и построения списка кандидатов для компенсации движения на основе упомянутой по меньшей мере одной части доступной информации о движении.[461] Determination unit 113 is also configured to obtain at least one piece of available motion information to add to the motion compensation candidate list, and construct a list of motion compensation candidates based on the at least one piece of available motion information.

[462] По меньшей мере одна часть доступной информации о движении включает по меньшей мере одну из следующей информации о движении: пространственная информация о движении; временная информация о движении; или заранее заданная информация о движении.[462] At least one piece of available motion information includes at least one of the following motion information: spatial motion information; temporary traffic information; or preset motion information.

[463] Что касается варианта осуществления устройства, поскольку он в основном соответствует варианту осуществления способа, соответствующая часть может относиться к описанию варианта осуществления способа. Варианты осуществления устройства, описанные выше, являются просто иллюстративными, при этом блоки, описанные как отдельные компоненты, могут быть или не быть физически отдельными, а компоненты, показанные как блоки, могут быть или не быть физическими блоками, то есть могут быть расположены в одном месте или распределены по множеству устройств в сети. Некоторые или все модули могут быть выбраны в соответствии с практическими потребностями для достижения цели решений настоящего варианта осуществления изобретения. Специалисты в данной области техники могут понять и реализовать решения без выполнения творческой работы.[463] As for the apparatus embodiment, since it basically corresponds to the method embodiment, a relevant part may refer to the description of the method embodiment. The device embodiments described above are merely illustrative, where blocks described as separate components may or may not be physically separate, and components shown as blocks may or may not be physical blocks, i.e., may be located in the same location or distributed across multiple devices on a network. Some or all of the modules may be selected according to practical needs to achieve the purpose of the solutions of the present embodiment. Those skilled in the art can understand and implement solutions without performing creative work.

[464] На основе той же идеи применения, что и в вышеупомянутых способах, варианты осуществления настоящего изобретения обеспечивают устройство на стороне декодера (также называемое видеодекодером). Что касается аппаратных средств, архитектура аппаратных средств показана на Фиг. 10В. Устройство на стороне декодера содержит один или более процессоров 121 и машиночитаемый носитель 122 данных, при этом машиночитаемый носитель 122 данных хранит машиночитаемые инструкции, исполняемые процессором 121. Процессор 121 сконфигурирован для исполнения машиночитаемых инструкций для выполнения способов, описанных выше. Например, процессор 121 сконфигурирован для исполнения машиночитаемых инструкций для выполнения следующего: когда определено, что следует разрешить взвешенное предсказание для текущего блока, получение угла взвешенного предсказания и параметров весовой конфигурации текущего блока; при этом параметры весовой конфигурации включают коэффициент преобразования весов и начальную позицию преобразования весов; конфигурирование опорных весовых значений для окружающих позиций за пределами текущего блока в соответствии с параметрами весовой конфигурации; для каждой позиции пикселя текущего блока, определение окружающей соответствующей позиции, указанной позицией пикселя, из окружающих позиций за пределами текущего блока на основе угла взвешенного предсказания; определение целевого весового значения позиции пикселя на основе опорного весового значения, связанного с окружающей соответствующей позицией, определение ассоциированного весового значения позиции пикселя на основе целевого весового значения позиции пикселя; определение первого значения предсказания позиции пикселя на основе первого режима предсказания текущего блока, определение второго значения предсказания позиции пикселя на основе второго режима предсказания текущего блока; определение значения взвешенного предсказания позиции пикселя на основе первого значения предсказания, целевого весового значения, второго значения предсказания и ассоциированного весового значения; определение значения взвешенного предсказания текущего блока на основе значений взвешенного предсказания всех позиций пикселей в текущем блоке.[464] Based on the same application idea as in the above methods, embodiments of the present invention provide a decoder-side device (also called a video decoder). In terms of hardware, the hardware architecture is shown in FIG. 10V. The decoder-side apparatus includes one or more processors 121 and a computer-readable medium 122, wherein the computer-readable medium 122 stores computer-readable instructions executable by the processor 121. The processor 121 is configured to execute the computer-readable instructions to perform the methods described above. For example, processor 121 is configured to execute machine-readable instructions to do the following: when it is determined that weighted prediction should be enabled for the current block, obtaining the weighted prediction angle and weight configuration parameters of the current block; wherein the parameters of the weight configuration include the weight conversion factor and the initial position of the weight conversion; configuring reference weight values for surrounding positions outside the current block in accordance with the parameters of the weight configuration; for each pixel position of the current block, determining a surrounding corresponding position indicated by the pixel position from surrounding positions outside the current block based on the weighted prediction angle; determining a target pixel position weight value based on a reference weight value associated with a surrounding corresponding position, determining an associated pixel position weight value based on the target pixel position weight value; determining a first pixel position prediction value based on a first prediction mode of the current block, determining a second pixel position prediction value based on a second prediction mode of the current block; determining a weighted pixel position prediction value based on the first prediction value, the target weight value, the second prediction value, and the associated weight value; determining a weighted prediction value of the current block based on the weighted prediction values of all pixel positions in the current block.

[465] На основе той же идеи применения, что и в вышеупомянутых способах, варианты осуществления настоящего изобретения обеспечивают устройство на стороне кодера (также называемое видеокодером). Что касается аппаратных средств, архитектура аппаратных средств показана на Фиг. 10С. Устройство на стороне декодера содержит один или более процессоров 131 и машиночитаемый носитель 132 данных, при этом машиночитаемый носитель 132 данных хранит машиночитаемые инструкции, исполняемые процессором 131. Процессор 131 сконфигурирован для исполнения машиночитаемых инструкций для выполнения способов, описанных выше. Например, процессор 131 сконфигурирован для исполнения машиночитаемых инструкций для выполнения следующего: когда определено, что следует разрешить взвешенное предсказание для текущего блока, получение угла взвешенного предсказания и параметров весовой конфигурации текущего блока; при этом параметры весовой конфигурации включают коэффициент преобразования весов и начальную позицию преобразования весов; конфигурирование опорных весовых значений для окружающих позиций за пределами текущего блока в соответствии с параметрами весовой конфигурации; для каждой позиции пикселя текущего блока, определение окружающей соответствующей позиции, указанной позицией пикселя, из окружающих позиций за пределами текущего блока на основе угла взвешенного предсказания; определение целевого весового значения позиции пикселя на основе опорного весового значения, связанного с окружающей соответствующей позицией, определение ассоциированного весового значения позиции пикселя на основе целевого весового значения позиции пикселя; определение первого значения предсказания позиции пикселя на основе первого режима предсказания текущего блока, определение второго значения предсказания позиции пикселя на основе второго режима предсказания текущего блока; определение значения взвешенного предсказания позиции пикселя на основе первого значения предсказания, целевого весового значения, второго значения предсказания и ассоциированного весового значения; определение значения взвешенного предсказания текущего блока на основе значений взвешенного предсказания всех позиций пикселей в текущем блоке.[465] Based on the same application idea as the above methods, embodiments of the present invention provide an encoder-side device (also called a video encoder). In terms of hardware, the hardware architecture is shown in FIG. 10C. The decoder-side apparatus includes one or more processors 131 and a computer-readable medium 132, wherein the computer-readable medium 132 stores computer-readable instructions executable by the processor 131. The processor 131 is configured to execute the computer-readable instructions to perform the methods described above. For example, processor 131 is configured to execute machine-readable instructions to do the following: when it is determined that weighted prediction should be enabled for the current block, obtaining the weighted prediction angle and weight configuration parameters of the current block; wherein the parameters of the weight configuration include the weight conversion factor and the initial position of the weight conversion; configuring reference weight values for surrounding positions outside the current block in accordance with the parameters of the weight configuration; for each pixel position of the current block, determining a surrounding corresponding position indicated by the pixel position from surrounding positions outside the current block based on the weighted prediction angle; determining a target pixel position weight value based on a reference weight value associated with a surrounding corresponding position, determining an associated pixel position weight value based on the target pixel position weight value; determining a first pixel position prediction value based on a first prediction mode of the current block, determining a second pixel position prediction value based on a second prediction mode of the current block; determining a weighted pixel position prediction value based on the first prediction value, the target weight value, the second prediction value, and the associated weight value; determining a weighted prediction value of the current block based on the weighted prediction values of all pixel positions in the current block.

[466] На основе той же самой идеи применения, что и в вышеописанных способах, варианты осуществления настоящего изобретения также предлагают устройство камеры, которое может содержать оборудование для кодирования и декодирования в любом из вышеупомянутых вариантов осуществления изобретения. Устройство камеры может использовать описанные выше процессы.[466] Based on the same application idea as in the above-described methods, embodiments of the present invention also provide a camera device that may include encoding and decoding equipment in any of the above-mentioned embodiments. The camera device can use the processes described above.

[467] На основе той же идеи применения, что и в вышеописанных способах, варианты осуществления настоящего изобретения предлагают машиночитаемый носитель данных, хранящий несколько компьютерных инструкций, которые исполняются процессором для выполнения способов, раскрытых в приведенных выше вариантах осуществления настоящего изобретения, например, способов кодирования и декодирования в описанных выше вариантах осуществления изобретения.[467] Based on the same application idea as the above-described methods, embodiments of the present invention provide a computer-readable storage medium storing multiple computer instructions that are executed by a processor to perform the methods disclosed in the above embodiments of the present invention, such as encoding methods and decoding in the embodiments described above.

[468] Системы, устройства, модули или блоки, описанные в приведенных выше вариантах осуществления изобретения, могут быть реализованы в виде компьютерных микросхем или объектов или в виде продуктов с определенными функциями. Типичным устройством реализации является компьютер, и компьютер, в конкретной форме, может быть персональным компьютером, портативным компьютером, сотовым телефоном, телефоном с камерой, смартфоном, персональным цифровым помощником, медиаплеером, навигационным оборудованием, приемопередатчиком электронной почты, игровой приставкой, планшетным компьютером, носимым оборудованием или комбинацией любых из этих устройств. Для удобства вышеупомянутые устройства при описании разделены на различные блоки по функциям. При реализации настоящего изобретения функции различных блоков могут быть реализованы в программном и/или аппаратном обеспечении.[468] The systems, devices, modules or blocks described in the above embodiments of the invention may be implemented as computer chips or objects or as products with certain functions. A typical implementation device is a computer, and a computer, in a specific form, may be a personal computer, laptop computer, cell phone, camera phone, smartphone, personal digital assistant, media player, navigation equipment, email transceiver, game console, tablet computer, wearable equipment or a combination of any of these devices. For convenience, the above-mentioned devices are described in different blocks according to their functions. In implementing the present invention, the functions of the various blocks may be implemented in software and/or hardware.

[469] Специалистам в данной области техники должно быть понятно, что варианты осуществления настоящего изобретения могут быть предоставлены в виде способов, систем или компьютерных программных продуктов. Следовательно, настоящее изобретение может принимать форму чисто аппаратного варианта осуществления, чисто программного варианта осуществления или варианта осуществления, сочетающего как программное обеспечение, так и аппаратное обеспечение. Кроме того, варианты осуществления настоящего изобретения могут принимать форму компьютерного программного продукта, реализованного на одном или нескольких доступных для компьютера носителях данных (включая, не ограничиваясь, дисковые запоминающие устройства, CD-ROM, оптические запоминающие устройства и т.д.), которые содержат доступные для компьютера программные коды.[469] Those skilled in the art will appreciate that embodiments of the present invention may be provided in the form of methods, systems, or computer program products. Therefore, the present invention may take the form of a pure hardware embodiment, a pure software embodiment, or an embodiment combining both software and hardware. In addition, embodiments of the present invention may take the form of a computer program product embodied on one or more computer-accessible storage media (including, but not limited to, disk storage devices, CD-ROMs, optical storage devices, etc.) that comprise computer-accessible program codes.

[470] Приведенное выше описание представляет лишь некоторые примеры настоящего изобретения и не ограничивает изобретение. Специалистам в данной области техники понятно, что настоящее изобретение может иметь различные изменения и модификации. Любые модификации, эквивалентные замены, усовершенствования и т.п. настоящего изобретения находятся в пределах сущности формулы изобретения.[470] The above description represents only some examples of the present invention and does not limit the invention. Those skilled in the art will understand that the present invention is subject to various changes and modifications. Any modifications, equivalent replacements, improvements, etc. of the present invention are within the scope of the claims.

Claims (78)

1. Способ декодирования видео, включающий:1. A video decoding method, including: когда определено, что следует разрешить взвешенное предсказание для текущего блока, получение угла взвешенного предсказания текущего блока и параметров весовой конфигурации текущего блока, при этом параметры весовой конфигурации включают коэффициент преобразования весов и начальную позицию преобразования весов;when it is determined that weighted prediction should be enabled for the current block, obtaining a weighted prediction angle of the current block and weight configuration parameters of the current block, wherein the weight configuration parameters include a weight conversion factor and a weight conversion starting position; конфигурирование одного или более опорных весовых значений для окружающих позиций за пределами текущего блока на основе параметров весовой конфигурации;configuring one or more reference weight values for surrounding positions outside the current block based on the weight configuration parameters; для каждой позиции пикселя текущего блока,for each pixel position of the current block, определение окружающей соответствующей позиции, указанной позицией пикселя, из окружающих позиций за пределами текущего блока на основе угла взвешенного предсказания;determining a surrounding corresponding position, indicated by the pixel position, from surrounding positions outside the current block based on the weighted prediction angle; определение целевого весового значения позиции пикселя на основе опорного весового значения, связанного с окружающей соответствующей позицией;determining a target weight value of the pixel position based on a reference weight value associated with a surrounding corresponding position; определение ассоциированного весового значения позиции пикселя на основе целевого весового значения позиции пикселя;determining an associated pixel position weight value based on the target pixel position weight value; определение первого значения предсказания позиции пикселя на основе первого режима предсказания текущего блока;determining a first pixel position prediction value based on a first prediction mode of the current block; определение второго значения предсказания позиции пикселя на основе второго режима предсказания текущего блока; иdetermining a second pixel position prediction value based on a second prediction mode of the current block; And определение значения взвешенного предсказания позиции пикселя на основе первого значения предсказания, целевого весового значения, второго значения предсказания и ассоциированного весового значения; иdetermining a weighted pixel position prediction value based on the first prediction value, the target weight value, the second prediction value, and the associated weight value; And определение значений взвешенного предсказания текущего блока на основе значений взвешенного предсказания всех позиций пикселей в текущем блоке.determining the weighted prediction values of the current block based on the weighted prediction values of all pixel positions in the current block. 2. Способ по п.1, в котором в ответ на определение того, что текущий блок поддерживает режим переключения коэффициента преобразования весов, получение коэффициента преобразования весов текущего блока включает:2. The method of claim 1, wherein, in response to determining that the current block supports a weight conversion factor switching mode, obtaining the current block's weight conversion factor includes: получение первой информации указания коэффициента преобразования весов для текущего блока; иobtaining first information indicating the weight conversion coefficient for the current block; And определение коэффициента преобразования весов текущего блока на основе первой информации указания коэффициента преобразования весов, при этом в ответ на определение того, что первая информация указания коэффициента преобразования весов является первой информацией указания, коэффициент преобразования весов текущего блока является первым коэффициентом преобразования весов, и в ответ на определение того, что первая информация указания коэффициента преобразования весов является второй информацией указания, коэффициент преобразования весов текущего блока является вторым коэффициентом преобразования весов.determining the weight conversion coefficient of the current block based on the first weight conversion coefficient indication information, wherein in response to determining that the first weight conversion coefficient indication information is the first indication information, the weight conversion coefficient of the current block is the first weight conversion coefficient, and in response to determining that the first weight conversion factor indication information is the second indication information, the weight conversion factor of the current block is the second weight conversion factor. 3. Способ по п.2, в котором первая информация указания коэффициента преобразования весов содержит информацию указания уровня изображения, первая информация указания коэффициента преобразования весов для текущего блока представляет идентификацию переключения коэффициента преобразования весов, соответствующую текущему блоку, первая информация указания предназначена для указания того, что текущий блок не требует переключения коэффициента преобразования весов, а вторая информация указания предназначена для указания того, что текущий блок требует переключения коэффициента преобразования весов.3. The method according to claim 2, wherein the first weight conversion coefficient indication information contains image level indication information, the first weight conversion coefficient indication information for the current block represents a weight conversion coefficient switching identification corresponding to the current block, the first indication information is for indicating whether that the current block does not require switching of the weight conversion factor, and the second indication information is for indicating that the current block requires switching of the weight conversion factor. 4. Способ по п.1, в котором в ответ на определение того, что текущий блок поддерживает режим переключения коэффициента преобразования весов, получение коэффициента преобразования весов текущего блока включает:4. The method of claim 1, wherein, in response to determining that the current block supports a weight conversion factor switching mode, obtaining the current block's weight conversion factor includes: получение второй информации указания коэффициента преобразования весов для текущего блока;obtaining second information indicating a weight conversion factor for the current block; выбор коэффициента преобразования весов, соответствующего второй информации указания коэффициента преобразования весов, из заранее заданной таблицы поиска, при этом заранее заданная таблица поиска содержит по меньшей мере два коэффициента преобразования весов; иselecting a weight conversion coefficient corresponding to the second weight conversion coefficient indication information from a predetermined lookup table, wherein the predetermined lookup table contains at least two weights conversion coefficients; And определение выбранного коэффициента преобразования весов в качестве коэффициента преобразования весов текущего блока.defining the selected weight conversion factor as the current block's weight conversion factor. 5. Способ по п.1, в котором конфигурирование одного или более опорных весовых значений для окружающих позиций за пределами текущего блока на основе параметров весовой конфигурации включает:5. The method of claim 1, wherein configuring one or more reference weight values for surrounding positions outside the current block based on the weight configuration parameters includes: для каждой из окружающих позиций за пределами текущего блока, конфигурирование опорного весового значения окружающей позиции на основе значения координаты окружающей позиции, значения координаты начальной позиции преобразования весов и коэффициента преобразования весов.for each of the surrounding positions outside the current block, configuring a reference weight value of the surrounding position based on the coordinate value of the surrounding position, the coordinate value of the weight conversion starting position, and the weight conversion factor. 6. Способ по п.1, в котором начальная позиция преобразования весов определяется по меньшей мере одним из следующих параметров:6. The method according to claim 1, wherein the initial position of the weight transformation is determined by at least one of the following parameters: угол взвешенного предсказания, weighted prediction angle, позиция взвешенного предсказания текущего блока или weighted prediction position of the current block or размер текущего блока.current block size. 7. Способ по п.1, в котором количество окружающих позиций за пределами текущего блока определяют на основе размера текущего блока и/или угла взвешенного предсказания текущего блока;7. The method of claim 1, wherein the number of surrounding positions outside the current block is determined based on the size of the current block and/or the weighted prediction angle of the current block; опорные весовые значения окружающих позиций за пределами текущего блока монотонно увеличиваются;the reference weights of surrounding positions outside the current block increase monotonically; окружающие позиции за пределами текущего блока включают одну или более позиций целого пикселя и/или одну или более позиций субпикселя; иsurrounding positions outside the current block include one or more whole pixel positions and/or one or more subpixel positions; And окружающие позиции за пределами текущего блока включают окружающие позиции, соседние с верхней стороной текущего блока, и/или окружающие позиции, соседние с левой стороной текущего блока.surrounding positions outside the current block include surrounding positions adjacent to the top side of the current block and/or surrounding positions adjacent to the left side of the current block. 8. Способ по п.1, в котором одно или более опорных весовых значений окружающих позиций за пределами текущего блока включают одно или более опорных весовых значений целевых позиций, одно или более опорных весовых значений первых соседних позиций целевых позиций и одно или более опорных весовых значений вторых соседних позиций целевых позиций, 8. The method of claim 1, wherein the one or more reference weights of surrounding positions outside the current block includes one or more reference weights of the target positions, one or more reference weights of the first adjacent positions of the target positions, and one or more reference weights of the target positions second adjacent positions of target positions, при этом все одно или более опорных весовых значений первых соседних позиций являются вторым опорным весовым значением, и все одно или более опорных весовых значений вторых соседних позиций являются третьим опорным весовым значением, причем второе опорное весовое значение отличается от третьего опорного весового значения.wherein all one or more reference weight values of the first adjacent positions are a second reference weight value, and all one or more reference weight values of the second adjacent positions are a third reference weight value, wherein the second reference weight value is different from the third reference weight value. 9. Способ по п.8, в котором целевые позиции включают одно опорное весовое значение или по меньшей мере два опорных весовых значения, в ответ на определение того, что целевые позиции включают по меньшей мере два опорных весовых значения, по меньшей мере два опорных весовых значения целевых позиций монотонно увеличиваются.9. The method of claim 8, wherein the target positions include one reference weight value, or at least two reference weight values, in response to determining that the target positions include at least two reference weight values, at least two reference weight values the values of target positions increase monotonically. 10. Способ по п.1, в котором 10. The method according to claim 1, in which угол взвешенного предсказания представляет собой горизонтальный угол; илиThe weighted prediction angle is a horizontal angle; or угол взвешенного предсказания представляет собой вертикальный угол; илиThe weighted prediction angle is a vertical angle; or абсолютное значение наклона угла взвешенного предсказания равно n-й степениthe absolute value of the slope of the weighted prediction angle is equal to the nth power числа 2, где n является целым числом.number 2, where n is an integer. 11. Способ по п.1, в котором определение целевого весового значения позиции пикселя на основе опорного весового значения, связанного с окружающей соответствующей позицией, включает:11. The method of claim 1, wherein determining a target weight value of a pixel position based on a reference weight value associated with a surrounding corresponding position includes: в ответ на определение того, что окружающая соответствующая позиция является позицией целого пикселя, а позиция целого пикселя сконфигурирована с опорным весовым значением, определение целевого весового значения позиции пикселя на основе опорного весового значения позиции целого пикселя; иin response to determining that the surrounding corresponding position is a whole pixel position and the whole pixel position is configured with a reference weight value, determining a target pixel position weight value based on the reference whole pixel position weight value; And в ответ на определение того, что окружающая соответствующая позиция является позицией субпикселя, а позиция субпикселя сконфигурирована с опорным весовым значением, определение целевого весового значения позиции пикселя на основе опорного весового значения позиции субпикселя.in response to determining that the surrounding corresponding position is a subpixel position, and the subpixel position is configured with a reference weight value, determining a target pixel position weight value based on the reference subpixel position weight value. 12. Способ по п.1, в котором в ответ на определение того, что первый режим предсказания является режимом внешнего предсказания, определение первого значения предсказания позиции пикселя на основе первого режима предсказания текущего блока включает:12. The method of claim 1, wherein, in response to determining that the first prediction mode is an inter prediction mode, determining a first pixel position prediction value based on the first prediction mode of the current block includes: получение списка кандидатов для компенсации движения, при этом список кандидатов для компенсации движения содержит по меньшей мере одну часть информации о возможном движении;obtaining a list of candidates for motion compensation, wherein the list of candidates for motion compensation contains at least one piece of information about a possible motion; выбор одной части информации о возможном движении из списка кандидатов для компенсации движения в качестве исходной информации о движении текущего блока;selecting one piece of possible motion information from the candidate list for motion compensation as the initial motion information of the current block; определение целевой информации о движении для текущего блока на основе исходной информации о движении; иdetermining target motion information for the current block based on the source motion information; And определение первого значения предсказания позиции пикселя на основе целевой информации о движении.determining a first pixel position prediction value based on the target motion information. 13. Способ по п.12, в котором исходная информация о движении содержит исходный вектор движения, целевая информация о движении содержит целевой вектор движения, определение целевой информации о движении текущего блока на основе исходной информации о движении включает:13. The method according to claim 12, wherein the source motion information contains a source motion vector, the target motion information contains a target motion vector, determining the target motion information of the current block based on the source motion information includes: получение разности векторов движения, соответствующей исходному вектору движения; иobtaining a motion vector difference corresponding to the original motion vector; And определение целевого вектора движения на основе разности векторов движения и исходного вектора движения.determining the target motion vector based on the difference between the motion vectors and the original motion vector. 14. Способ по п.13, в котором получение разности векторов движения, соответствующей исходному вектору движения, включает:14. The method according to claim 13, wherein obtaining a motion vector difference corresponding to the original motion vector includes: анализ информации о направлении разности векторов движения и информации об амплитуде разности векторов движения из кодированного битового потока текущего блока; иanalyzing information about the direction of the motion vector difference and information about the amplitude of the motion vector difference from the encoded bit stream of the current block; And определение разности векторов движения на основе информации о направлении разности векторов движения и информации об амплитуде разности векторов движения.determining the motion vector difference based on information about the direction of the motion vector difference and information about the amplitude of the motion vector difference. 15. Способ по п.14, в котором15. The method according to claim 14, in which в ответ на определение того, что информация о направлении указывает направление вправо, а информация об амплитуде указывает, что амплитуда равна Ar, разность векторов движения равна (Ar, 0);in response to determining that the direction information indicates a rightward direction and the amplitude information indicates that the amplitude is Ar, the motion vector difference is (Ar, 0); в ответ на определение того, что информация о направлении указывает направление вниз, а информация об амплитуде указывает, что амплитуда равна Ad, разность векторов движения равна (0, -Ad);in response to determining that the direction information indicates a downward direction and the amplitude information indicates that the amplitude is Ad, the motion vector difference is (0, -Ad); в ответ на определение того, что информация о направлении указывает направление влево, а информация об амплитуде указывает, что амплитуда равна А1, разность векторов движения равна (-А1, 0); иin response to determining that the direction information indicates a left direction and the amplitude information indicates that the amplitude is A1, the motion vector difference is (-A1, 0); And в ответ на определение того, что информация о направлении указывает направление вверх, а информация об амплитуде указывает, что амплитуда равна Au, разность векторов движения равна (0, Au).in response to determining that the direction information indicates an upward direction and the amplitude information indicates that the amplitude is Au, the motion vector difference is (0, Au). 16. Способ по п.14, в котором анализ информации о направлении разности векторов движения и информации об амплитуде разности векторов движения из кодированного битового потока текущего блока включает:16. The method according to claim 14, wherein analyzing information about the direction of the motion vector difference and information about the amplitude of the motion vector difference from the encoded bitstream of the current block includes: анализ информации флага из кодированного битового потока текущего блока иparsing flag information from the encoded bitstream of the current block, and в ответ на определение того, что информация флага указывает на наложение разности векторов движения на исходный вектор движения, анализ информации о направлении разности векторов движения и информации об амплитуде разности векторов движения из кодированного битового потока текущего блока.in response to determining that the flag information indicates superposition of the motion vector difference on the original motion vector, analyzing information about the direction of the motion vector difference and information about the amplitude of the motion vector difference from the encoded bit stream of the current block. 17. Способ по п.12, в котором построение списка кандидатов для компенсации движения включает:17. The method according to claim 12, in which building a list of candidates for motion compensation includes: получение по меньшей мере одной части доступной информации о движении для добавления в список кандидатов для компенсации движения; иobtaining at least one piece of available motion information for adding to a candidate list for motion compensation; And построение списка кандидатов для компенсации движения на основе упомянутой по меньшей мере одной части доступной информации о движении.constructing a list of candidates for motion compensation based on said at least one piece of available motion information. 18. Способ по п.17, в котором упомянутая по меньшей мере одна часть доступной информации о движении включает по меньшей мере одну из следующей информации о движении:18. The method of claim 17, wherein said at least one piece of available traffic information includes at least one of the following traffic information: пространственная информация о движении;spatial information about movement; временная информация о движении; илиtemporary traffic information; or заранее заданная информация о движении.preset motion information. 19. Способ кодирования видео, включающий:19. A video encoding method, including: когда определено, что следует разрешить взвешенное предсказание для текущего блока, получение угла взвешенного предсказания текущего блока и параметров весовой конфигурации текущего блока, при этом параметры весовой конфигурации включают коэффициент преобразования весов и начальную позицию преобразования весов;when it is determined that weighted prediction should be enabled for the current block, obtaining a weighted prediction angle of the current block and weight configuration parameters of the current block, wherein the weight configuration parameters include a weight conversion factor and a weight conversion starting position; конфигурирование одного или более опорных весовых значений для окружающих позиций за пределами текущего блока на основе параметров весовой конфигурации;configuring one or more reference weight values for surrounding positions outside the current block based on the weight configuration parameters; для каждой позиции пикселя текущего блока, определение окружающей соответствующей позиции, указанной позицией пикселя, из окружающих позиций за пределами текущего блока на основе угла взвешенного предсказания;for each pixel position of the current block, determining a surrounding corresponding position indicated by the pixel position from surrounding positions outside the current block based on the weighted prediction angle; определение целевого весового значения позиции пикселя на основе опорного весового значения, связанного с окружающей соответствующей позицией;determining a target weight value of the pixel position based on a reference weight value associated with a surrounding corresponding position; определение ассоциированного весового значения позиции пикселя на основе целевого весового значения позиции пикселя;determining an associated pixel position weight value based on the target pixel position weight value; определение первого значения предсказания позиции пикселя на основе первого режима предсказания текущего блока;determining a first pixel position prediction value based on a first prediction mode of the current block; определение второго значения предсказания позиции пикселя на основе второго режима предсказания текущего блока; иdetermining a second pixel position prediction value based on a second prediction mode of the current block; And определение значения взвешенного предсказания позиции пикселя на основе первого значения предсказания, целевого весового значения, второго значения предсказания и ассоциированного весового значения; иdetermining a weighted pixel position prediction value based on the first prediction value, the target weight value, the second prediction value, and the associated weight value; And определение значений взвешенного предсказания текущего блока на основе значений взвешенного предсказания всех позиций пикселей в текущем блоке.determining the weighted prediction values of the current block based on the weighted prediction values of all pixel positions in the current block. 20. Видеодекодер, содержащий: процессор и машиночитаемый носитель данных, при этом машиночитаемый носитель данных хранит машиночитаемые инструкции, исполняемые процессором, и процессор сконфигурирован для исполнения машиночитаемых инструкций для выполнения способа по любому из пп.1-18.20. A video decoder comprising: a processor and a computer-readable storage medium, wherein the computer-readable storage medium stores computer-readable instructions executable by the processor, and the processor is configured to execute the computer-readable instructions for performing the method of any one of claims 1 to 18. 21. Видеокодер, содержащий: процессор и машиночитаемый носитель данных, при этом машиночитаемый носитель данных хранит машиночитаемые инструкции, исполняемые процессором, и процессор сконфигурирован для исполнения машиночитаемых инструкций для выполнения способа по п.19.21. A video encoder comprising: a processor and a computer-readable storage medium, wherein the computer-readable storage medium stores computer-readable instructions executable by the processor, and the processor is configured to execute the computer-readable instructions to perform the method of claim 19.
RU2022133310A 2020-06-01 2021-05-31 Method, equipment and device for encoding and decoding RU2809619C1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010486400.3 2020-06-01

Related Child Applications (1)

Application Number Title Priority Date Filing Date
RU2023132466A Division RU2023132466A (en) 2020-06-01 2021-05-31 Method, equipment and device for encoding and decoding

Publications (1)

Publication Number Publication Date
RU2809619C1 true RU2809619C1 (en) 2023-12-13

Family

ID=

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2553085C2 (en) * 2011-03-09 2015-06-10 Ниппон Телеграф Энд Телефон Корпорейшн Video encoding/decoding methods, video encoding/decoding devices and programmes therefor
US20180288425A1 (en) * 2017-04-04 2018-10-04 Arris Enterprises Llc Memory Reduction Implementation for Weighted Angular Prediction
WO2019091292A1 (en) * 2017-11-13 2019-05-16 Mediatek Singapore Pte. Ltd. Method and apparatus for intra prediction fusion in image and video coding
CN110121073A (en) * 2018-02-06 2019-08-13 浙江大学 A kind of bidirectional interframe predictive method and device
US20200036970A1 (en) * 2017-05-31 2020-01-30 Lg Electronics Inc. Method and device for performing image decoding on basis of intra prediction in image coding system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2553085C2 (en) * 2011-03-09 2015-06-10 Ниппон Телеграф Энд Телефон Корпорейшн Video encoding/decoding methods, video encoding/decoding devices and programmes therefor
US20180288425A1 (en) * 2017-04-04 2018-10-04 Arris Enterprises Llc Memory Reduction Implementation for Weighted Angular Prediction
US20200036970A1 (en) * 2017-05-31 2020-01-30 Lg Electronics Inc. Method and device for performing image decoding on basis of intra prediction in image coding system
WO2019091292A1 (en) * 2017-11-13 2019-05-16 Mediatek Singapore Pte. Ltd. Method and apparatus for intra prediction fusion in image and video coding
CN110121073A (en) * 2018-02-06 2019-08-13 浙江大学 A kind of bidirectional interframe predictive method and device

Similar Documents

Publication Publication Date Title
JP6553221B2 (en) Video encoding method and video encoding apparatus
US20220385919A1 (en) Intra-frame prediction method and device
RU2696301C2 (en) Video signal decoding method
KR20200036835A (en) Methods of coding block information using quadtree and appararuses for using the same
CN113287311B (en) Indication of two-step cross-component prediction mode
CN112369022A (en) Image encoding/decoding method and apparatus, and recording medium storing bit stream
CN112369021A (en) Image encoding/decoding method and apparatus for throughput enhancement and recording medium storing bitstream
CN113507603B (en) Image signal encoding/decoding method and apparatus therefor
JP7447097B2 (en) Image encoding/decoding method and device
JP7375224B2 (en) Encoding/decoding methods, apparatus and devices thereof
CN113950839A (en) Gradient-based prediction refinement for video coding
CN113709488B (en) Encoding and decoding method, device and equipment
KR20190115426A (en) Method and apparatus for encoding/decoding an image
AU2021286043B2 (en) Encoding and decoding method and apparatus, and device therefor
US10205952B2 (en) Method and apparatus for inter color component prediction
RU2809619C1 (en) Method, equipment and device for encoding and decoding
RU2808807C1 (en) Method, equipment and device for encoding and decoding
RU2809701C1 (en) Method, equipment and device for encoding and decoding
KR20240065097A (en) Video signal processing method using OBMC and device therefor
CN116684578A (en) Affine model optimization based on control point motion vectors
CN116684627A (en) VVC intra-frame cross-component chroma prediction based on asymmetric convolution