RU2809504C1 - Method for obtaining required sub-block prediction value, decoding device, video data decoding device, electronic device and long-term information carrier - Google Patents

Method for obtaining required sub-block prediction value, decoding device, video data decoding device, electronic device and long-term information carrier Download PDF

Info

Publication number
RU2809504C1
RU2809504C1 RU2023110956A RU2023110956A RU2809504C1 RU 2809504 C1 RU2809504 C1 RU 2809504C1 RU 2023110956 A RU2023110956 A RU 2023110956A RU 2023110956 A RU2023110956 A RU 2023110956A RU 2809504 C1 RU2809504 C1 RU 2809504C1
Authority
RU
Russia
Prior art keywords
prediction
block
value
current block
sub
Prior art date
Application number
RU2023110956A
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 RU2809504C1 publication Critical patent/RU2809504C1/en

Links

Abstract

FIELD: video image encoding and decoding.
SUBSTANCE: invention is aimed at increasing video encoding efficiency. It is achieved by determining the use of the bidirectional visually smooth movement mode for the current block, performing movement compensation based on the bidirectional visually smooth movement mode in relation to the current block. The current block contains one or more sub-blocks, performing motion compensation based on the bi-directional visually smooth movement mode with respect to the current block contains, for each sub-block of one or more sub-blocks included in the current block, determining the desired prediction value of the sub-block. Next, the prediction value of the current block is determined based on the desired prediction values of all sub-blocks included in the current block. Moreover, in addition, for each sub-block of one or more sub-blocks included in the current block, it is determined whether the current sub-block satisfies a specific condition, and, if the current sub-block satisfies the specific condition, the process of performing prediction compensation for the sub-block based on bidirectional visual smooth movement is exited. The process of performing prediction compensation for a sub-block based on bidirectional visually smooth movement comprises, for said sub-block, determining a first prediction initial value and a second prediction initial value of the sub-block; determining the desired prediction value of each block 4×4 in a sub-block based on the first prediction original value and the second sub-block prediction original value, determining the sub-block prediction search value based on the prediction search value of each block 4×4 in a sub-block.
EFFECT: increasing video encoding efficiency.
8 cl, 8 dwg

Description

Настоящая заявка выделена из заявки №2021137358 на выдачу патента РФ на изобретение, поданной 17.06.2020 г. и испрашивает приоритет согласно заявке на патент Китая №201910544562.5, поданной 21.06.2019 г.This application is separated from application No. 2021137358 for a Russian patent for an invention, filed on June 17, 2020, and claims priority according to Chinese patent application No. 201910544562.5, filed on June 21, 2019.

Область техники, к которой относится изобретениеField of technology to which the invention relates

Настоящее изобретение относится к области кодирования и декодирования, конкретнее, к способу, аппарату и устройству кодирования и декодирования.The present invention relates to the field of encoding and decoding, and more particularly to an encoding and decoding method, apparatus and apparatus.

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

Для экономии ресурсов видеоизображения передают кодированными. В целом способ кодирования видеоинформации может содержать такие операции, как, например предсказание, преобразование, квантование, энтропийное кодирование, фильтрация. При этом кодирование с предсказанием может содержать внутрикадровое кодирование и межкадровое кодирование. В случае внутрикадрового кодирования для эффективного устранения избыточности видеоданных во временной области пользуются тем, что видеоданные во временной области коррелированы, и для предсказания пикселов текущего изображения используют пикселы соседнего кодированного изображения.To save resources, video images are transmitted encoded. In general, a method for encoding video information may contain operations such as, for example, prediction, transformation, quantization, entropy coding, and filtering. In this case, predictive coding may comprise intra-frame coding and inter-frame coding. In the case of intra-frame coding, to effectively eliminate redundancy of time-domain video data, the fact that time-domain video data is correlated is used, and pixels of an adjacent encoded image are used to predict the pixels of the current image.

В операции межкадрового кодирования для представления относительного смещения между текущим блоком видеоизображения текущего сегмента и опорным блоком видеоизображения опорного кадра может использоваться вектор перемещения (англ. Motion Vector, MV). Например, если видеоизображение А текущего сегмента и видеоизображение В опорного кадра сильно коррелированы во временной области, то при необходимости передачи блока А1 изображения (текущего блока) видеоизображения А можно в видеоизображении В выполнять поиск движения с целью отыскания блока В1 изображения (т.е., опорного блока), который наилучшим образом соответствует блоку изображения А1, и определять относительное смещение между блоком А1 изображения и блоком В1 изображения; это относительное смещение представляет собой вектор перемещения блока А1 изображения.In an interframe encoding operation, a Motion Vector (MV) may be used to represent the relative displacement between the current video block of the current segment and the reference video block of the reference frame. For example, if video image A of the current segment and video image B of the reference frame are highly correlated in the time domain, then if it is necessary to transmit image block A1 (current block) of video image A, a motion search can be performed in video image B to find image block B1 (i.e., a reference block) that best matches the image block A1, and determine a relative offset between the image block A1 and the image block B1; this relative displacement represents the displacement vector of the image block A1.

Кодирующая сторона вместо блока А1 изображения может передавать декодирующей стороне вектор перемещения. На основании вектора перемещения и блока В1 изображения декодирующая сторона может получать блок А1 изображения. Очевидно, что вышеописанный подход дает возможность сократить объем передаваемой информации, поскольку количество битов, занимаемое вектором перемещения, значительно меньше количества битов, занимаемых блоком А1 изображения.The encoding side may transmit a movement vector instead of the image block A1 to the decoding side. Based on the movement vector and the image block B1, the decoding side can obtain the image block A1. Obviously, the approach described above makes it possible to reduce the amount of transmitted information, since the number of bits occupied by the displacement vector is significantly less than the number of bits occupied by the image block A1.

В традиционно используемом способе, когда текущий блок является однонаправленным блоком, после получения информации о перемещении текущего блока можно выполнять кодирование и декодирование на основании этой информации о перемещении, повышая тем самым производительность кодирования. Если же текущий блок является двунаправленным блоком, то после получения информации о двунаправленном перемещении текущего блока предсказанные изображения по двум различным направлениям можно получать на основании этой информации о двунаправленном перемещении. Обычно между предсказанными изображениями по двум различным направлениям имеет место зеркально-симметричная взаимосвязь. В применяемой сейчас системе кодирования эта особенность, позволяющая дополнительно устранять избыточность, используется не в полной мере. Иными словами, сейчас использованию двунаправленных блоков присущи недостатки, например, невысокая производительность кодирования.In the traditionally used method, when the current block is a unidirectional block, after obtaining movement information of the current block, encoding and decoding can be performed based on this movement information, thereby improving encoding performance. If the current block is a bidirectional block, then after obtaining bidirectional movement information of the current block, predicted images in two different directions can be obtained based on this bidirectional movement information. Typically, there is a mirror-symmetric relationship between predicted images in two different directions. In the currently used coding system, this feature, which makes it possible to further eliminate redundancy, is not fully used. In other words, there are currently disadvantages to using bidirectional blocks, such as low coding performance.

Раскрытие сущности изобретенияDisclosure of the invention

Настоящее изобретение предусматривает способ, аппарат и устройство кодирования и декодирования, с использованием которых производительность кодирования может быть повышена.The present invention provides an encoding and decoding method, apparatus and apparatus by which encoding performance can be improved.

Настоящее изобретение предусматривает способ кодирования и декодирования. Указанный способ содержит выполнение для получения искомого значения предсказания текущего блока или субблока указанного текущего блока, если характеристическая информация указанного текущего блока удовлетворяет конкретному условию, следующих этапов:The present invention provides an encoding and decoding method. Said method comprises performing the following steps to obtain a desired prediction value of a current block or a sub-block of said current block if the characteristic information of said current block satisfies a specific condition:

определение первого исходного значения предсказания на основании первой информации об однонаправленном перемещении текущего блока, определение второго исходного значения предсказания на основании второй информации об однонаправленном перемещении текущего блока; и определение горизонтальной скорости на основании указанных первого исходного значения предсказания и второго исходного значения предсказания; определение вертикальной скорости на основании указанных первого исходного значения предсказания и второго исходного значения предсказания;determining a first initial prediction value based on the first unidirectional movement information of the current block, determining a second initial prediction value based on the second unidirectional movement information of the current block; and determining the horizontal speed based on the first prediction original value and the second prediction original value; determining a vertical speed based on said first initial prediction value and second initial prediction value;

получение значения компенсации предсказания на основании указанных горизонтальной скорости и вертикальной скорости;obtaining a prediction compensation value based on the specified horizontal speed and vertical speed;

получение искомого значения предсказания на основании указанных первого исходного значения предсказания, второго исходного значения предсказания и значения компенсации предсказания.obtaining a desired prediction value based on said first prediction original value, second prediction original value, and prediction compensation value.

В одном из вариантов осуществления указанная характеристическая информация содержит одно или более из атрибута информации о перемещении, атрибута режима предсказания, информации о размере и информации управления переключением на уровне последовательности.In one embodiment, said characteristic information comprises one or more of a movement information attribute, a prediction mode attribute, size information, and sequence-level switching control information.

В одном из вариантов осуществления, если указанная характеристическая информация содержит атрибут информации о перемещении, то определяют, что указанный атрибут информации о перемещении удовлетворяет указанному конкретному условию, если он удовлетворяет по меньшей мере одному из следующих условий:In one embodiment, if the specified characteristic information contains a movement information attribute, then it is determined that the specified movement information attribute satisfies the specified specific condition if it satisfies at least one of the following conditions:

для текущего блока используется двунаправленное предсказание, и два опорных кадра, соответствующих текущему блоку, получены с разных направлений;bidirectional prediction is used for the current block, and two reference frames corresponding to the current block are received from different directions;

текущий блок содержит множество субблоков, и у всех субблоков этого множества информация о перемещении одинаковая;the current block contains many subblocks, and all subblocks of this set have the same movement information;

для текущего блока используется двунаправленное предсказание, и два опорных кадра, соответствующих текущему блоку, имеют одинаковый вес;the current block uses bidirectional prediction, and the two reference frames corresponding to the current block have the same weight;

для текущего блока используется двунаправленное предсказание, и два опорных кадра, соответствующих текущему блоку, находятся на одинаковом расстоянии от текущего сегмента;the current block uses bidirectional prediction, and two reference frames corresponding to the current block are at the same distance from the current segment;

для текущего блока используется двунаправленное предсказание, и разность между значениями предсказания указанных двух опорных кадров, соответствующих текущему блоку, меньше заранее заданного порогового значения.bidirectional prediction is used for the current block, and the difference between the prediction values of the two reference frames corresponding to the current block is less than a predetermined threshold value.

В одном из вариантов осуществления способ дополнительно содержит:In one embodiment, the method further comprises:

получение первого блока предсказания по первому опорному кадру на основании первой информации об однонаправленном перемещении текущего блока, и получение второго блока предсказания по второму опорному кадру на основании второй информации об однонаправленном перемещении текущего блока;obtaining a first prediction block from the first reference frame based on the first unidirectional movement information of the current block, and obtaining a second prediction block from the second reference frame based on the second unidirectional movement information of the current block;

получение разности между значениями предсказания первого опорного кадра и второго опорного кадра на основании суммы абсолютных значений разностей (SAD) огрубленного значения предсказания первого блока предсказания и огрубленного значения предсказания второго блока предсказания.obtaining a difference between the prediction values of the first reference frame and the second reference frame based on the sum of absolute differences (SAD) of the coarse prediction value of the first prediction block and the coarse prediction value of the second prediction block.

В одном из вариантов осуществления, если указанная характеристическая информация содержит атрибут режима предсказания, указывающий, что режим слияния на основании комбинированного межкадрового и внутрикадрового предсказания не используется и/или режим симметричной разности векторов перемещения не используется, то определяют, что указанный атрибут режима предсказания удовлетворяет указанному конкретному условию.In one embodiment, if the specified characteristic information contains a prediction mode attribute indicating that a fusion mode based on combined inter-frame and intra-frame prediction is not used and/or a symmetric motion vector difference mode is not used, then it is determined that the specified prediction mode attribute satisfies the specified specific condition.

В одном из вариантов осуществления, если указанная характеристическая информация содержит информацию управления переключением на уровне последовательности, указывающую, что для текущего блока разрешено использовать способ двунаправленного визуально плавного перемещения, то определяют, что указанная информация управления переключением на уровне последовательности удовлетворяет указанному конкретному условию.In one embodiment, if the specified characteristic information contains sequence-level switching control information indicating that the current block is allowed to use a bidirectional visual smooth movement method, then it is determined that the specified sequence-level switching control information satisfies the specified specific condition.

В одном из вариантов осуществления, если указанная характеристическая информация содержит информацию о размере, содержащую значение ширины и значение высоты, то определяют, что указанная информация о размере удовлетворяет указанному конкретному условию, если указанная информация о размере удовлетворяет по меньшей мере одному из следующих условий:In one embodiment, if the specified characteristic information contains size information containing a width value and a height value, then it is determined that the specified size information satisfies the specified specific condition if the specified size information satisfies at least one of the following conditions:

значение ширины текущего блока больше или равно первому пороговому значению и меньше или равно второму пороговому значению;the width value of the current block is greater than or equal to the first threshold value and less than or equal to the second threshold value;

значение высоты текущего блока больше или равно третьему пороговому значению и меньше или равно четвертому пороговому значению;the height value of the current block is greater than or equal to the third threshold value and less than or equal to the fourth threshold value;

значение площади текущего блока больше или равно пятому пороговому значению и меньше или равно шестому пороговому значению.the area value of the current block is greater than or equal to the fifth threshold value and less than or equal to the sixth threshold value.

В одном из вариантов осуществления определение первого исходного значения предсказания на основании первой информации об однонаправленном перемещении текущего блока, и определение второго исходного значения предсказания на основании второй информации об однонаправленном перемещении текущего блока содержит:In one embodiment, determining the first initial prediction value based on the first unidirectional movement information of the current block, and determining the second initial prediction value based on the second unidirectional movement information of the current block comprises:

определение первого опорного блока по первому опорному кадру на основании первой информации об однонаправленном перемещении текущего блока, иdetermining a first reference block from the first reference frame based on the first unidirectional movement information of the current block, and

определение первого исходного значения предсказания первого опорного блока;determining a first initial prediction value of the first reference block;

причем первое исходное значение предсказания центральной области первого опорного блока получают путем интерполирования значение пиксела в первом опорном кадре, а первое исходное значение предсказания краевой области первого опорного блока получают путем копирования значение пиксела в первом опорном кадре;wherein the first initial prediction value of the center region of the first reference block is obtained by interpolating a pixel value in the first reference frame, and the first initial prediction value of the edge region of the first reference block is obtained by copying the pixel value in the first reference frame;

определение второго опорного блока по второму опорному кадру на основании второй информации об однонаправленном перемещении текущего блока, иdetermining a second reference block from the second reference frame based on the second unidirectional movement information of the current block, and

определение второго исходного значения предсказания второго опорного блока;determining a second initial prediction value of the second reference block;

причем второе исходное значение предсказания центральной области второго опорного блока получают путем интерполирования значение пиксела во втором опорном кадре, а второе исходное значение предсказания краевой области второго опорного блока получают путем копирования значения пиксела во втором опорном кадре.wherein the second initial prediction value of the center region of the second reference block is obtained by interpolating the pixel value in the second reference frame, and the second initial prediction value of the edge region of the second reference block is obtained by copying the pixel value in the second reference frame.

В одном из вариантов осуществления определение горизонтальной скорости на основании первого исходного значения предсказания и второго исходного значения предсказания содержит:In one embodiment, determining the horizontal velocity based on the first prediction initial value and the second prediction initial value comprises:

если первое заранее заданное условие выполнено, определение коэффициента S2 взаимной корреляции между суммой горизонтального градиента и суммой вертикального градиента, коэффициента S6 взаимной корреляции между разностью значений предсказания во временной области и суммой вертикального градиента на основании первого исходного значения предсказания и второго исходного значения предсказания;if the first predetermined condition is satisfied, determining a cross-correlation coefficient S2 between the horizontal gradient sum and the vertical gradient sum, a cross-correlation coefficient S6 between the difference of the time domain prediction values and the vertical gradient sum based on the first prediction original value and the second prediction original value;

определение горизонтальной скорости на основании коэффициента S2 взаимной корреляции, порогового значения скорости, коэффициента S6 взаимной корреляции, первого коэффициента увеличения и второго коэффициента увеличения;determining the horizontal speed based on the cross-correlation coefficient S2, the speed threshold value, the cross-correlation coefficient S6, the first magnification factor and the second magnification factor;

причем первое заранее заданное условие определяют на основании коэффициента S2 взаимной корреляции и коэффициента S5 автокорреляции суммы вертикального градиента.wherein the first predetermined condition is determined based on the cross-correlation coefficient S2 and the vertical gradient sum autocorrelation coefficient S5.

В одном из вариантов осуществления определение горизонтальной скорости на основании первого исходного значения предсказания и второго исходного значения предсказания содержит:In one embodiment, determining the horizontal velocity based on the first prediction initial value and the second prediction initial value comprises:

если второе заранее заданное условие выполнено, определение коэффициента S1 автокорреляции суммы горизонтального градиента, коэффициента S2 взаимной корреляции между суммой горизонтального градиента и суммой вертикального градиента, коэффициента S3 взаимной корреляции между разностью значений предсказания во временной области и суммой горизонтального градиента, коэффициента S5 автокорреляции суммы вертикального градиента, коэффициента S6 взаимной корреляции между разностью значений предсказания во временной области и суммой вертикального градиента на основании первого исходного значения предсказания и второго исходного значения предсказания;if the second predetermined condition is satisfied, determining the autocorrelation coefficient S1 of the horizontal gradient sum, the cross-correlation coefficient S2 between the horizontal gradient sum and the vertical gradient sum, the cross-correlation coefficient S3 between the difference of the time domain prediction values and the horizontal gradient sum, the autocorrelation coefficient S5 of the vertical gradient sum , a cross-correlation coefficient S6 between the difference of the time domain prediction values and the sum of the vertical gradient based on the first original prediction value and the second original prediction value;

определение горизонтальной скорости на основании коэффициента S1 автокорреляции, коэффициента S2 взаимной корреляции, коэффициента S3 взаимной корреляции, коэффициента S5 автокорреляции, коэффициента S6 взаимной корреляции, порогового значения скорости, первого коэффициента увеличения и второго коэффициента увеличения;determining the horizontal speed based on the autocorrelation coefficient S1, the cross-correlation coefficient S2, the cross-correlation coefficient S3, the autocorrelation coefficient S5, the cross-correlation coefficient S6, the speed threshold, the first magnification factor and the second magnification factor;

причем второе заранее заданное условие определяют на основании коэффициента S2 взаимной корреляции и коэффициента S5 автокорреляции.wherein the second predetermined condition is determined based on the cross-correlation coefficient S2 and the auto-correlation coefficient S5.

В одном из вариантов осуществления определение вертикальной скорости на основании первого исходного значения предсказания и второго исходного значения предсказания содержит:In one embodiment, the determination of the vertical speed based on the first initial prediction value and the second initial prediction value comprises:

получение, без ограничивающей обработки, неограниченной горизонтальной скорости на основании первого исходного значения предсказания и второго исходного значения предсказания, иobtaining, without limiting processing, an unlimited horizontal velocity based on the first prediction initial value and the second prediction initial value, and

определение вертикальной скорости на основании указанной неограниченной горизонтальной скорости.determining vertical speed based on a specified unlimited horizontal speed.

В одном из вариантов осуществления определение вертикальной скорости на основании первого исходного значения предсказания и второго исходного значения предсказания содержит:In one embodiment, the determination of the vertical speed based on the first initial prediction value and the second initial prediction value comprises:

если третье заранее заданное условие выполнено, определение коэффициента S5 автокорреляции суммы вертикального градиента, коэффициента S6 взаимной корреляции между разностью значений предсказания во временной области и суммой вертикального градиента на основании первого исходного значения предсказания и второго исходного значения предсказания;if the third predetermined condition is satisfied, determining the vertical gradient sum autocorrelation coefficient S5, the cross-correlation coefficient S6 between the difference of the time domain prediction values and the vertical gradient sum based on the first prediction original value and the second prediction original value;

определение вертикальной скорости на основании коэффициента S5 автокорреляции, коэффициента S6 взаимной корреляции, порогового значения скорости, первого коэффициента увеличения и второго коэффициента увеличения;determining the vertical speed based on the autocorrelation coefficient S5, the cross-correlation coefficient S6, the speed threshold value, the first magnification factor and the second magnification factor;

причем третье заранее заданное условие определяется на основании горизонтальной скорости.wherein the third predetermined condition is determined based on the horizontal speed.

В одном из вариантов осуществления значение коэффициента S2 взаимной корреляции лежит между первым пороговым значением коэффициента взаимной корреляции и вторым пороговым значением коэффициента взаимной корреляции;In one embodiment, the value of the cross-correlation coefficient S2 lies between the first threshold cross-correlation coefficient value and the second threshold value of the cross-correlation coefficient;

значение коэффициента S6 взаимной корреляции лежит между третьим пороговым значением коэффициента взаимной корреляции и четвертым пороговым значением коэффициента взаимной корреляции.the value of the cross-correlation coefficient S6 lies between the third threshold value of the cross-correlation coefficient and the fourth threshold value of the cross-correlation coefficient.

В одном из вариантов осуществления первый коэффициент увеличения равен меньшему из 5 и (BD-7) или большему из 1 и (BD-11);In one embodiment, the first magnification factor is equal to the lesser of 5 and (BD-7) or the greater of 1 and (BD-11);

второй коэффициент увеличения равен меньшему из 8 и (BD-4) или большему из 4 и (BD-8);the second magnification factor is equal to the lesser of 8 and (BD-4) or the greater of 4 and (BD-8);

пороговое значение скорости равно 2 в степени М, где М равно разности между 13 и BD или большему из 5 и (BD-7); при этом BD представляет собой битовую глубину.the speed threshold is 2 to the power of M, where M is equal to the difference between 13 and BD or the greater of 5 and (BD-7); wherein BD represents the bit depth.

В одном из вариантов осуществления получение значения компенсации предсказания на основании указанных горизонтальной скорости и вертикальной скорости содержит:In one embodiment, obtaining a prediction compensation value based on the specified horizontal speed and vertical speed comprises:

определение горизонтального градиента и вертикального градиента на основании первого исходного значения предсказания, второго исходного значения предсказания и количества битов сдвига градиента вправо, иdetermining a horizontal gradient and a vertical gradient based on the first prediction original value, the second prediction original value, and the number of gradient right shift bits, and

получение значения компенсации предсказания на основании горизонтальной скорости, вертикальной скорости, горизонтального градиента и вертикального градиента;obtaining a prediction compensation value based on the horizontal speed, vertical speed, horizontal gradient and vertical gradient;

причем количество битов сдвига градиента вправо равно большему из 2 и (14-BD) или большему из 6 и (BD-6), a BD представляет собой битовую глубину.wherein the number of gradient right shift bits is the greater of 2 and (14-BD) or the greater of 6 and (BD-6), and BD is the bit depth.

В одном из вариантов осуществления, если текущий блок разделен на по меньшей мере один субблок, то способ дополнительно содержит для каждого субблока текущего блока:In one embodiment, if the current block is divided into at least one subblock, then the method further comprises, for each subblock of the current block:

определение первого исходного значения предсказания указанного субблока на основании первой информации об однонаправленном перемещении указанного субблока;determining a first initial prediction value of said sub-block based on first unidirectional movement information of said sub-block;

определение второго исходного значения предсказания субблока на основании второй информации об однонаправленном перемещении указанного субблока;determining a second initial sub-block prediction value based on second unidirectional movement information of said sub-block;

определение горизонтальной скорости для субблока и вертикальной скорости для субблока на основании первого исходного значения предсказания субблока и второго исходного значения предсказания субблока;determining a horizontal speed for the sub-block and a vertical speed for the sub-block based on the first sub-block prediction original value and the second sub-block prediction original value;

получение значения компенсации предсказания для субблока на основании горизонтальной скорости и вертикальной скорости;obtaining a prediction compensation value for the sub-block based on the horizontal speed and the vertical speed;

получение искомого значения предсказания субблока на основании первого исходного значения предсказания субблока, второго исходного значения предсказания субблока и значения компенсации предсказания субблока.obtaining a desired subblock prediction value based on the first subblock prediction original value, the second subblock prediction original value, and the subblock prediction compensation value.

Настоящее изобретение предусматривает кодирующий и декодирующий аппарат, выполненный с возможностью получения искомого значения предсказания текущего блока или субблока указанного текущего блока, если характеристическая информация указанного текущего блока удовлетворяет конкретному условию. Указанный аппарат содержит:The present invention provides an encoding and decoding apparatus configured to obtain a desired prediction value of a current block or a sub-block of said current block if characteristic information of said current block satisfies a specific condition. The specified device contains:

первый модуль определения, выполненный с возможностью, если характеристическая информация текущего блока удовлетворяет конкретному условию, определения первого исходного значения предсказания на основании первой информации об однонаправленном перемещении текущего блока, и определения второго исходного значения предсказания на основании второй информации об однонаправленном перемещении текущего блока;a first determination unit configured to, if the characteristic information of the current block satisfies a specific condition, determine a first prediction initial value based on the first unidirectional movement information of the current block, and determine a second prediction initial value based on the second unidirectional movement information of the current block;

второй модуль определения, выполненный с возможностью определения горизонтальной скорости на основании указанных первого исходного значения предсказания и второго исходного значения предсказания и с возможностью определения вертикальной скорости на основании указанных первого исходного значения предсказания и второго исходного значения предсказания;a second determination module configured to determine a horizontal speed based on the first initial prediction value and a second initial prediction value, and capable of determining a vertical speed based on the first initial prediction value and the second initial prediction value;

первый модуль получения, выполненный с возможностью получения значения компенсации предсказания на основании указанных горизонтальной скорости и вертикальной скорости;a first acquisition module configured to obtain a prediction compensation value based on said horizontal speed and vertical speed;

второй модуль получения, выполненный с возможностью получения искомого значения предсказания на основании указанных первого исходного значения предсказания, второго исходного значения предсказания и значения компенсации предсказания.a second acquisition module configured to obtain a desired prediction value based on the first prediction original value, the second prediction original value, and the prediction compensation value.

Настоящее изобретение предусматривает кодирующее устройство, содержащее процессор и машиночитаемый носитель информации, выполненный с возможностью хранения машиноисполняемых инструкций, которые могут быть исполнены указанным процессором, причем указанный процессор выполнен с возможностью исполнения машиноисполняемых инструкций, посредством которых для получения искомого значения предсказания текущего блока или субблока указанного текущего блока, если характеристическая информация указанного текущего блока удовлетворяет конкретному условию, выполняются следующие этапы: определение первого исходного значения предсказания на основании первой информации об однонаправленном перемещении текущего блока и определение второго исходного значения предсказания на основании второй информации об однонаправленном перемещении текущего блока; определение горизонтальной скорости на основании указанных первого исходного значения предсказания и второго исходного значения предсказания; определение вертикальной скорости на основании указанных первого исходного значения предсказания и второго исходного значения предсказания; получение значения компенсации предсказания на основании указанных горизонтальной скорости и вертикальной скорости; получение искомого значения предсказания на основании указанных первого исходного значения предсказания, второго исходного значения предсказания и значения компенсации предсказания.The present invention provides an encoding device comprising a processor and a computer-readable storage medium configured to store computer-executable instructions that can be executed by said processor, wherein said processor is configured to execute computer-executable instructions by which to obtain a desired prediction value of a current block or sub-block of said current block, if the characteristic information of the specified current block satisfies a specific condition, the following steps are performed: determining a first prediction initial value based on the first unidirectional movement information of the current block, and determining a second prediction initial value based on the second unidirectional movement information of the current block; determining a horizontal speed based on said first initial prediction value and second initial prediction value; determining a vertical speed based on said first initial prediction value and second initial prediction value; obtaining a prediction compensation value based on the specified horizontal speed and vertical speed; obtaining a desired prediction value based on said first prediction original value, second prediction original value, and prediction compensation value.

Настоящее изобретение предусматривает декодирующее устройство, содержащее процессор и машиночитаемый носитель информации, выполненный с возможностью хранения машиноисполняемых инструкций, которые могут быть исполнены указанным процессором, причем указанный процессор выполнен с возможностью исполнения машиноисполняемых инструкций, посредством которых для получения искомого значения предсказания текущего блока или субблока текущего блока, если характеристическая информация указанного текущего блока удовлетворяет конкретному условию, выполняются следующие этапы: определение первого исходного значения предсказания на основании первой информации об однонаправленном перемещении текущего блока и определение второго исходного значения предсказания на основании второй информации об однонаправленном перемещении текущего блока; определение горизонтальной скорости на основании указанных первого исходного значения предсказания и второго исходного значения предсказания; определение вертикальной скорости на основании указанных первого исходного значения предсказания и второго исходного значения предсказания; получение значения компенсации предсказания на основании указанных горизонтальной скорости и вертикальной скорости; получение искомого значения предсказания на основании указанных первого исходного значения предсказания, второго исходного значения предсказания и значения компенсации предсказания.The present invention provides a decoding apparatus comprising a processor and a computer-readable storage medium configured to store computer-executable instructions that can be executed by said processor, wherein said processor is configured to execute computer-executable instructions by which to obtain a desired prediction value of a current block or sub-block of a current block , if the characteristic information of the specified current block satisfies a specific condition, the following steps are performed: determining a first prediction initial value based on the first unidirectional movement information of the current block, and determining a second prediction initial value based on the second unidirectional movement information of the current block; determining a horizontal speed based on said first initial prediction value and second initial prediction value; determining a vertical speed based on said first initial prediction value and second initial prediction value; obtaining a prediction compensation value based on the specified horizontal speed and vertical speed; obtaining a desired prediction value based on said first prediction original value, second prediction original value, and prediction compensation value.

Как можно видеть из вышеприведенных технических решений, в вариантах реализации настоящего изобретения на основании первой информации об однонаправленном перемещении текущего блока определяют первое исходное значение предсказания, на основании второй информации об однонаправленном перемещении текущего блока определяют второе исходное значение предсказания, на основании первого исходного значения предсказания и второго исходного значения предсказания определяют горизонтальную скорость и вертикальную скорость, на основании указанных горизонтальной скорости и вертикальной скорости получают значение компенсации предсказания, и на основании указанного значения компенсации предсказания получают искомое значение предсказания. Вышеописанным способом искомое значение предсказания текущего блока или субблока текущего блока можно получать на основе способа визуально плавного перемещения (англ. optical flow method), что делает более удобной аппаратную реализацию и улучшает производительность кодирования.As can be seen from the above technical solutions, in embodiments of the present invention, based on the first unidirectional movement information of the current block, a first prediction initial value is determined, based on the second unidirectional movement information of the current block, a second prediction initial value is determined, based on the first prediction initial value, and of the second initial prediction value, a horizontal speed and a vertical speed are determined, based on said horizontal speed and vertical speed, a prediction compensation value is obtained, and based on said prediction compensation value, a desired prediction value is obtained. Using the method described above, the desired prediction value of the current block or sub-block of the current block can be obtained based on the optical flow method, which makes hardware implementation more convenient and improves encoding performance.

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

Далее кратко описываются чертежи, необходимые для более ясного изложения технических решений, содержащихся в вариантах реализации настоящего изобретения или в известном уровне техники. Должно быть понятно, что представленные ниже чертежи относятся только к некоторым вариантам реализации настоящего изобретения. На основании этих чертежей специалисты без каких-либо изобретательских усилий смогут получить и другие чертежи.The following briefly describes the drawings necessary for a clearer presentation of the technical solutions contained in the embodiments of the present invention or in the prior art. It should be understood that the following drawings relate only to some embodiments of the present invention. Based on these drawings, specialists will be able to obtain other drawings without any inventive effort.

Фиг. 1А представляет схему интерполяции согласно варианту реализации настоящего изобретения.Fig. 1A is an interpolation diagram according to an embodiment of the present invention.

Фиг. 1В представляет схему системы кодирования видеоданных согласно варианту реализации настоящего изобретения.Fig. 1B is a diagram of a video encoding system according to an embodiment of the present invention.

Фиг. 2 представляет блок-схему способа кодирования и декодирования согласно варианту реализации настоящего изобретения.Fig. 2 is a flowchart of an encoding and decoding method according to an embodiment of the present invention.

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

Фиг. 4 представляет схему опорного блока, соответствующего субблоку текущего блока согласно варианту реализации настоящего изобретения.Fig. 4 is a diagram of a reference block corresponding to a subblock of a current block according to an embodiment of the present invention.

Фиг. 5 представляет структурную схему кодирующего и декодирующего устройства согласно варианту реализации настоящего изобретения.Fig. 5 is a block diagram of an encoding and decoding apparatus according to an embodiment of the present invention.

Фиг. 6 представляет структурную схему аппаратуры декодирующего устройства согласно варианту реализации настоящего изобретения.Fig. 6 is a hardware block diagram of a decoding device according to an embodiment of the present invention.

Фиг. 7 представляет структурную схему аппаратуры кодирующего устройства согласно варианту реализации настоящего изобретения.Fig. 7 is a hardware block diagram of an encoder according to an embodiment of the present invention.

Осуществление изобретенияCarrying out the invention

Термины в вариантах реализации настоящего изобретения используются только для описания конкретных вариантов варианте реализации, но не для ограничения настоящего изобретения. Формы единственного числа имен существительных, используемых в вариантах реализации и в формуле настоящего изобретения, следует понимать содержащими и формы множественного числа, если контекст явным образом не указывает другие значения. Также следует понимать, что термин «и/или» в настоящем документе следует понимать включающим любую или все возможные комбинации из одного или более элементов соответствующего перечня. Следует понимать, что в вариантах реализации настоящего изобретения для описания различной информации могут использоваться термины «первый», «второй», «третий» и т.п., но эта информация указанными терминами не ограничивается. Указанные термины используются только для того, чтобы различать информацию одного типа. Например, без выхода за пределы объема настоящего изобретения первая информация также может называться второй информацией, и, аналогично, вторая информация может называться первой информацией. Кроме того, в зависимости от контекста используемое здесь слово «если» может интерпретироваться как «в случае…», «когда…» или «в ответ на определение…».The terms in the embodiments of the present invention are used only to describe specific embodiments and not to limit the present invention. The singular forms of nouns used in the embodiments and claims of the present invention are to be understood to include plural forms unless the context clearly indicates other meanings. It should also be understood that the term “and/or” as used herein is to be understood to include any or all possible combinations of one or more elements of the relevant list. It should be understood that in embodiments of the present invention, the terms “first”, “second”, “third”, etc. may be used to describe various information, but this information is not limited to these terms. These terms are used only to distinguish information of the same type. For example, without departing from the scope of the present invention, the first information may also be referred to as second information, and likewise, the second information may be referred to as first information. Additionally, depending on the context, the word “if” used herein may be interpreted as “in the event of...”, “when...”, or “in response to the determination of...”.

В вариантах реализации настоящего изобретения предлагаются способ, аппарат и устройство кодирования и декодирования, в которых могут использоваться следующие концепции.Embodiments of the present invention provide an encoding and decoding method, apparatus, and apparatus that may use the following concepts.

Технология внутрикадрового предсказания и межкадрового предсказания. Под внутрикадровым предсказанием понимается устранение избыточности видеоданных во временной области посредством предсказания текущих пикселов на основе пикселов кодируемого блока текущего изображения, при котором используется тот факт, что видеоданные коррелированы в пространственной области. Под межкадровым предсказанием понимается эффективное устранение избыточности видеоданных во временной области посредством предсказания пикселов текущего изображения на основе пикселов соседнего кодируемого изображения, при этом используется тот факт, что из-за корреляции видеоданных во временной области видеопоследовательность также сильно коррелирована во временной области. В межкадровом предсказании, являющемся частью стандарта кодирования видеоданных, в основном используется технология компенсации движения на основе блоков. Ее принцип состоит в поиске оптимально соответствующего блока в ранее кодированном изображении для каждого пиксельного блока текущего изображения. Эта операция называется измерением перемещения (англ. Motion Estimation, ME).Intra-frame prediction and inter-frame prediction technology. Intra-frame prediction refers to eliminating redundancy in video data in the time domain by predicting the current pixels based on the pixels of the encoded block of the current image, which takes advantage of the fact that the video data is correlated in the spatial domain. Inter-frame prediction refers to the efficient elimination of redundancy in time domain video data by predicting the pixels of the current image based on the pixels of the adjacent encoded image, taking advantage of the fact that due to the correlation of the video data in the time domain, the video sequence is also highly correlated in the time domain. Inter-frame prediction, which is part of the video coding standard, mainly uses block-based motion compensation technology. Its principle is to find the optimally corresponding block in a previously encoded image for each pixel block of the current image. This operation is called motion measurement (English Motion Estimation, ME).

Вектор перемещения (англ. Motion Vector, MV). При межкадровом кодировании для представления относительного смещения между текущим кодируемым блоком и оптимально соответствующим блоком в опорном изображении может использоваться вектор перемещения. Каждый выделенный блок имеет соответствующий вектор перемещения, который должен быть передан декодирующей стороне. При независимом кодировании и передаче вектора перемещения каждого блока, особенно когда деление выполняется на блоки небольшого размера, требуется значительное количество битов. Чтобы снизить количество битов, необходимое для кодирования вектора перемещения, можно использовать пространственную корреляцию между соседними блоками изображения и предсказывать вектор перемещения текущего блока с кодированием на основании вектора перемещения соседнего кодированного блока, а затем можно кодировать разность для этого предсказания. Указанным образом можно эффективно снизить количество битов, которые требуются для представления вектора перемещения. В операции кодирования вектора перемещения текущего блока вектор перемещения текущего блока вначале предсказывают с использованием вектора перемещения соседних кодированных блоков, а затем кодируют разность (англ. Motion Vector Difference, MVD) между предсказанным вектором перемещения (Motion Vector Prediction, MVP) и фактически измеренным значением вектора перемещения, что позволяет эффективно снижать количество битов для кодирования вектора перемещения.Motion Vector (MV). In inter-frame coding, a motion vector may be used to represent the relative offset between the current block being coded and the best corresponding block in the reference picture. Each allocated block has a corresponding displacement vector that must be transmitted to the decoding side. Encoding and transmitting the motion vector of each block independently, especially when dividing into small blocks, requires a significant number of bits. To reduce the number of bits required to encode a motion vector, the spatial correlation between adjacent image blocks can be used and the motion vector of the current encoding block can be predicted based on the motion vector of the adjacent encoded block, and the difference can then be encoded for this prediction. In this manner, the number of bits that are required to represent the motion vector can be effectively reduced. In the operation of encoding the motion vector of the current block, the motion vector of the current block is first predicted using the motion vector of adjacent encoded blocks, and then the difference (Motion Vector Difference (MVD)) between the predicted motion vector (MVP) and the actual measured value of the vector is encoded. movement, which allows you to effectively reduce the number of bits for encoding the movement vector.

Информация о перемещении. Вектор перемещения представляет позиционный сдвиг между текущим блоком изображения и опорным блоком изображения, и для получения точной информации, относящийся к блоку изображения, кроме вектора перемещения также необходима информация об индексе изображения опорного кадра, указывающая, какое изображение опорного кадра используется. В технологии кодирования видеоданных для текущего сегмента изображения обычно создается список изображений опорного кадра, и информация об индексе изображения опорного кадра указывает в списке изображений опорного кадра то изображение опорного кадра, которое используется текущим блоком изображения. Во многих технологиях кодирования поддерживается множество списков опорных изображений. В связи с этим для указания используемого списка опорных изображений также может использоваться значение индекса, которое может называться опорным направлением. В технологии кодирования видеоданных информация, относящаяся к перемещению, например, вектор перемещения, индекс опорного кадра, опорное направление, может обобщенно называться информацией о перемещении.Information about movement. The move vector represents a positional shift between the current image block and the reference image block, and to obtain accurate information related to the image block, in addition to the move vector, reference frame image index information indicating which reference frame image is used is also required. In video encoding technology, a list of reference frame images is generally created for the current picture segment, and the reference frame image index information indicates in the list of reference frame pictures the reference frame image used by the current picture block. Many encoding technologies support multiple reference picture lists. In this regard, an index value, which may be called a reference direction, can also be used to indicate the reference picture list to be used. In video encoding technology, information related to movement, such as movement vector, reference frame index, reference direction, may be collectively referred to as movement information.

Интерполяция. Если текущий вектор перемещения не является вектором в пиксельной сетке с целочисленным базисом, то получить значение пиксела непосредственным копированием из соответствующего опорного кадра невозможно, и значение пиксела необходимо получать путем интерполяции. Как показано на фиг. 1А, если требуется значение Y1/2 пиксела, сдвинутого на 1/2 пиксела, то его получают путем интерполирования известных значений соседних пикселов X. Если используется интерполирующий фильтр с N отводами, то указанное значение получают путем интерполирования N соседних пикселов из пиксельной сетки с целочисленным базисом. Если количество N отводов равно 8, то где a k представляет собой коэффициент фильтра, т.е., весовой коэффициент.Interpolation. If the current displacement vector is not an integer-based pixel grid vector, then the pixel value cannot be obtained by direct copying from the corresponding reference frame, and the pixel value must be obtained by interpolation. As shown in FIG. 1A, if a Y value of 1/2 pixel shifted by 1/2 pixel is desired, then it is obtained by interpolating the known values of neighboring pixels X. If an interpolating filter with N taps is used, then the specified value is obtained by interpolating N neighboring pixels from the pixel grid with integer basis. If the number N of taps is 8, then where a k represents the filter coefficient, i.e., the weighting factor.

Компенсация движения. Операция компенсации движения представляет собой получение значений всех предсказываемых пикселов текущего блока посредством интерполяции или копирования.Motion compensation. The motion compensation operation involves obtaining the values of all predicted pixels of the current block through interpolation or copying.

Система кодирования видеоданных. На фиг. 1В показано, что на кодирующей стороне последовательность операций обработки, основанная на варианте реализации настоящего изобретения, может осуществляться с использованием системы кодирования видеоданных. Система декодирования видеоданных аналогична представленной на фиг. 1В и здесь не повторяется. На декодирующей стороне последовательность операций обработки, основанная на варианте реализации настоящего изобретения, может осуществляться с использованием системы декодирования видеоданных. Конкретнее, система кодирования видеоданных и система декодирования видеоданных содержат, например, модули для внутрикадрового предсказания, измерения перемещения/компенсации движения, буфера опорного изображения, фильтрации внутри контура, восстановления, преобразования, квантования, обратного преобразования, деквантования, энтропийного кодирования. На кодирующей стороне последовательность операций обработки может быть реализована посредством совместного действия указанных модулей. На декодирующей стороне последовательность операций обработки может быть реализована посредством совместного действия указанных модулей.Video data coding system. In fig. 1B shows that, on the encoding side, the processing flow based on an embodiment of the present invention can be carried out using a video encoding system. The video data decoding system is similar to that shown in FIG. 1B is not repeated here either. On the decoding side, a processing flow based on an embodiment of the present invention may be performed using a video decoding system. More specifically, the video encoding system and the video decoding system include, for example, modules for intra-frame prediction, motion measurement/motion compensation, reference image buffer, in-loop filtering, reconstruction, transform, quantization, inverse transform, dequantization, entropy encoding. On the encoding side, a sequence of processing operations can be implemented through the joint action of these modules. On the decoding side, a sequence of processing operations can be implemented through the joint action of these modules.

В известном способе, когда текущий блок является двунаправленным блоком (т.е., когда текущий блок представляет собой блок, в котором используется двунаправленное предсказание), между предсказанными изображениями по двум различным направлениям обычно имеет место зеркально-симметричная взаимосвязь. В используемой сейчас системе кодирования эта особенность не в полной мере используется для дополнительного устранения избыточности, результатом чего могут стать, например, такие недостатки, как низкая производительность кодирования. Исходя из вышеприведенных выводов, в варианте реализации настоящего изобретения предлагается, когда текущий блок является двунаправленным блоком, использовать способ коррекции сигнала предсказания, основанный на способе визуально плавного перемещения, при этом исходное значение предсказания может быть получено на основании исходной информации о перемещении, а значение компенсации предсказания может быть получено посредством формулы для визуально плавного перемещения. На основании значения компенсации предсказания и исходного значения предсказания получают искомое значение предсказания текущего блока. Вышеописанный способ дает возможность получать искомое значение предсказания текущего блока с использованием способа визуально плавного перемещения, что делает более удобной аппаратную реализацию и приводит к улучшению производительности кодирования, т.е., производительность кодирования и эффективность кодирования могут быть повышены.In the known method, when the current block is a bidirectional block (ie, when the current block is a block in which bidirectional prediction is used), there is generally a mirror-symmetric relationship between predicted images in two different directions. The current encoding system does not take full advantage of this feature to further eliminate redundancy, which can result in, for example, disadvantages such as poor encoding performance. Based on the above conclusions, an embodiment of the present invention proposes, when the current block is a bidirectional block, to use a prediction signal correction method based on a visually smooth movement method, wherein the original prediction value can be obtained based on the original movement information, and the compensation value predictions can be obtained through a formula for visually smooth movement. Based on the prediction compensation value and the original prediction value, the desired prediction value of the current block is obtained. The above-described method makes it possible to obtain the desired prediction value of the current block using a visually smooth movement method, which makes hardware implementation more convenient and leads to improved encoding performance, that is, encoding performance and encoding efficiency can be improved.

Далее предлагаемый настоящим изобретением способ кодирования и декодирования описывается подробно на примере нескольких конкретных вариантов варианте реализации.Next, the encoding and decoding method proposed by the present invention is described in detail using several specific embodiments as examples.

Вариант реализации 1. Фиг. 2 представляет блок-схему способа кодирования и декодирования, который может использоваться декодирующей стороной или кодирующей стороной. В этом способе текущий блок или искомое значение предсказания субблока текущего блока получают, выполняя описываемые далее этапы. Получить искомое значение предсказания текущего блока можно, выполнив приведенные далее этапы для текущего блока. Если текущий блок разделен на по меньшей мере один субблок, то получить искомое значение предсказания субблока текущего блока можно, выполнив приведенные далее этапы для каждого субблока текущего блока. Указанный способ содержит следующие этапы.Embodiment 1. FIG. 2 is a flowchart of an encoding and decoding method that may be used by a decoding side or an encoding side. In this method, the current block or the desired sub-block prediction value of the current block is obtained by performing the following steps. You can obtain the desired prediction value of the current block by performing the following steps for the current block. If the current block is divided into at least one subblock, then the desired subblock prediction value of the current block can be obtained by performing the following steps for each subblock of the current block. This method contains the following steps.

На этапе 201, если характеристическая информация текущего блока удовлетворяет конкретному условию, на основании первой информации об однонаправленном перемещении текущего блока определяют первое исходное значение предсказания и на основании второй информации об однонаправленном перемещении текущего блока определяют второе исходное значение предсказания.At step 201, if the characteristic information of the current block satisfies a specific condition, a first prediction initial value is determined based on the first unidirectional movement information of the current block, and a second prediction initial value is determined based on the second unidirectional movement information of the current block.

Текущий блок может быть, например, двунаправленным блоком, т.е., блоком, использующим двунаправленное предсказание. Иными словами, информация о перемещении для текущего блока представляет собой информацию о двунаправленном перемещении, которая может содержать информацию о перемещении по двум различным направлениям. Такая информация о перемещении по двум различным направлениям называется первой информацией об однонаправленном перемещении и второй информацией об однонаправленном перемещении. Первая информация об однонаправленном перемещении может соответствовать первому опорному кадру, находящемуся перед текущим сегментом, в котором находится текущий блок. Вторая информация об однонаправленном перемещении может соответствовать второму опорному кадру, находящемуся за текущим сегментом, в котором находится текущий блок.The current block may, for example, be a bidirectional block, ie, a block using bidirectional prediction. In other words, the movement information for the current block is bidirectional movement information, which may contain movement information in two different directions. Such information about movement in two different directions is called first unidirectional movement information and second unidirectional movement information. The first unidirectional movement information may correspond to a first reference frame located before the current segment in which the current block is located. The second unidirectional movement information may correspond to a second reference frame located behind the current segment in which the current block is located.

Например, указанная характеристическая информация может содержать, без ограничения приведенным перечнем, одно или более из атрибута информации о перемещении; атрибута режима предсказания; информации о размере; информации управления переключением на уровне последовательности. Разумеется, этими несколькими вышеприведенными примерами настоящее изобретение не ограничивается.For example, said characteristic information may comprise, without limitation, one or more of a movement information attribute; prediction mode attribute; size information; switching control information at the sequence level. Of course, the present invention is not limited to these few examples above.

Если характеристическая информация содержит атрибут информации о перемещении, то определяют, что указанный атрибут информации о перемещении удовлетворяет указанному конкретному условию, если удовлетворяет по меньшей мере одному из следующих условий: 1. для текущего блока используется двунаправленное предсказание, и два опорных кадра, соответствующих текущему блоку, получены с разных направлений; 2. текущий блок содержит множество субблоков, и у всех субблоков этого множества информация о перемещении одинаковая; 3. для текущего блока используется двунаправленное предсказание, и два опорных кадра, соответствующих текущему блоку, имеют одинаковый вес; 4. для текущего блока используется двунаправленное предсказание, и два опорных кадра, соответствующих текущему блоку, находятся на одинаковом расстоянии от текущего сегмента; 5. для текущего блока используется двунаправленное предсказание, и разность между значениями предсказания указанных двух опорных кадров, соответствующих текущему блоку, меньше заранее заданного порогового значения. Разумеется, этими несколькими вышеприведенными примерами настоящее изобретение не ограничивается.If the characteristic information contains a movement information attribute, then it is determined that the specified movement information attribute satisfies the specified specific condition if it satisfies at least one of the following conditions: 1. bidirectional prediction is used for the current block, and two reference frames corresponding to the current block , received from different directions; 2. the current block contains many subblocks, and all subblocks of this set have the same movement information; 3. The current block uses bidirectional prediction, and the two reference frames corresponding to the current block have the same weight; 4. The current block uses bidirectional prediction, and the two reference frames corresponding to the current block are at the same distance from the current segment; 5. Bidirectional prediction is used for the current block, and the difference between the prediction values of the specified two reference frames corresponding to the current block is less than a predetermined threshold value. Of course, the present invention is not limited to these few examples above.

Для случая 5 также необходимо получать разность между значениями предсказания двух опорных кадров, соответствующих текущему блоку. Для получения указанной разности может использоваться способ, в котором получают первый блок предсказания по первому опорному кадру на основании первой информации об однонаправленном перемещении текущего блока, и получают второй блок предсказания по второму опорному кадру на основании второй информации об однонаправленном перемещении текущего блока; получают разность между значениями предсказания первого опорного кадра и значением предсказания второго опорного кадра на основании суммы абсолютных значений разностей (англ. Sum of Absolute Difference, SAD) огрубленного значения предсказания первого блока предсказания и огрубленного значения предсказания второго блока предсказания; как вариант, может использоваться способ, в котором получают первый блок предсказания по первому опорному кадру на основании первой информации об однонаправленном перемещении текущего блока, и получают второй блок предсказания по второму опорному кадру на основании второй информации об однонаправленном перемещении текущего блока; получают разность между значениями предсказания первого опорного кадра и значением предсказания второго опорного кадра на основании SAD значения предсказания первого блока предсказания и значения предсказания второго блока предсказания.For case 5, it is also necessary to obtain the difference between the prediction values of two reference frames corresponding to the current block. To obtain said difference, a method may be used in which a first prediction block is obtained from a first reference frame based on the first unidirectional movement information of the current block, and a second prediction block is obtained from the second reference frame based on the second unidirectional movement information of the current block; obtaining a difference between the prediction values of the first reference frame and the prediction value of the second reference frame based on the Sum of Absolute Difference (SAD) of the coarse prediction value of the first prediction block and the coarse prediction value of the second prediction block; Alternatively, a method may be used in which a first prediction block is obtained from the first reference frame based on the first unidirectional movement information of the current block, and a second prediction block is obtained from the second reference frame based on the second unidirectional movement information of the current block; obtaining a difference between the prediction values of the first reference frame and the prediction value of the second reference frame based on the SAD of the prediction value of the first prediction block and the prediction value of the second prediction block.

Если характеристическая информация содержит атрибут режима предсказания, то определяют, что указанный атрибут режима предсказания удовлетворяет указанному конкретному условию, если он указывает на то, что режим слияния на основании комбинированного межкадрового и внутрикадрового предсказания не используется и/или на то, что режим симметричной разности векторов перемещения не используется.If the characteristic information contains a prediction mode attribute, then it is determined that the specified prediction mode attribute satisfies the specified specific condition if it indicates that the fusion mode based on combined inter-frame and intra-frame prediction is not used and/or that the symmetric vector difference mode movement is not used.

Если характеристическая информация содержит информацию управления переключением на уровне последовательности, то определяют, что указанная информация управления переключением на уровне последовательности удовлетворяет указанному конкретному условию, если она указывает на то, что для текущего блока разрешено использовать способ двунаправленного визуально плавного перемещения.If the characteristic information contains sequence-level switching control information, it is determined that the sequence-level switching control information satisfies the specified specific condition if it indicates that the current block is allowed to use the bidirectional visual smooth movement method.

Если характеристическая информация содержит информацию о размере, содержащую по меньшей мере одно из значения ширины, значения высоты и значения площади, то определяют, что указанная информация о размере удовлетворяет указанному конкретному условию, если по меньшей мере одно из значения ширины, значения высоты и значения площади в информации о размере удовлетворяет соответствующему условию на пороговое значение. Например, может определяют, что информация о размере удовлетворяет указанному конкретному условию, если указанная информация о размере удовлетворяет по меньшей мере одному из нижеперечисленных условий: значение ширины текущего блока больше или равно первому пороговому значению и меньше или равно второму пороговому значению; значение высоты текущего блока больше или равно третьему пороговому значению и меньше или равно четвертому пороговому значению; значение площади текущего блока больше или равно пятому пороговому значению и меньше или равно шестому пороговому значению. Разумеется, этими несколькими вышеприведенными примерами настоящее изобретение не ограничивается.If the characteristic information contains size information comprising at least one of a width value, a height value and an area value, then it is determined that the specified size information satisfies the specified specific condition if at least one of the width value, a height value and an area value in the size information satisfies the corresponding threshold condition. For example, it may be determined that the size information satisfies the specified specific condition if the specified size information satisfies at least one of the following conditions: the width value of the current block is greater than or equal to the first threshold value and less than or equal to the second threshold value; the height value of the current block is greater than or equal to the third threshold value and less than or equal to the fourth threshold value; the area value of the current block is greater than or equal to the fifth threshold value and less than or equal to the sixth threshold value. Of course, the present invention is not limited to these few examples above.

Например, первое пороговое значение может быть меньше второго порогового значения, а как первое пороговое значение, так и второе пороговое значение могут быть равны числу 2 в целой положительной степени. Как первое пороговое значение, так и второе пороговое значение не ограничены. Например, первое пороговое значение может быть равно 8, а второе пороговое значение может быть равно 128. Третье пороговое значение может быть меньше четвертого порогового значения, и как третье пороговое значение, так и четвертое пороговое значение могут быть равны числу 2 в целой положительной степени. Как третье пороговое значение, так и четвертое пороговое значение не ограничены. Например, третье пороговое значение может быть равно 8, а четвертое пороговое значение может быть равно 128. Пятое пороговое значение может быть меньше шестого порогового значения, и как пятое пороговое значение, так и шестое пороговое значение могут быть равны числу 2 в целой положительной степени. Как пятое пороговое значение, так и шестое пороговое значение не ограничены. Например, пятое пороговое значение может быть равно 64 (т.е. 8*8), а шестое пороговое значение может быть равно 16384 (т.е. 128*128). Разумеется, вышеприведенные пороговые значения представляют собой лишь примеры и ограничений на эти пороговые значения нет.For example, the first threshold value may be less than the second threshold value, and both the first threshold value and the second threshold value may be equal to the number 2 to the positive integer power. Both the first threshold value and the second threshold value are unlimited. For example, the first threshold value may be equal to 8, and the second threshold value may be equal to 128. The third threshold value may be less than the fourth threshold value, and both the third threshold value and the fourth threshold value may be equal to the number 2 to the positive integer power. Both the third threshold value and the fourth threshold value are unlimited. For example, the third threshold value may be equal to 8, and the fourth threshold value may be equal to 128. The fifth threshold value may be less than the sixth threshold value, and both the fifth threshold value and the sixth threshold value may be equal to the number 2 to the positive integer power. Both the fifth threshold value and the sixth threshold value are unlimited. For example, the fifth threshold value may be 64 (i.e. 8*8), and the sixth threshold value may be 16384 (i.e. 128*128). Of course, the above thresholds are examples only and there are no restrictions on these thresholds.

Характеристическая информация может содержать, например, одно или более из атрибута информации о перемещении, атрибута режима предсказания, информации о размере и информации управления переключением на уровне последовательности. Если указанная характеристическая информация содержит атрибут информации о перемещении, то признаком того, что характеристическая информация удовлетворяет конкретному условию, может быть то, что указанный атрибут информации о перемещении удовлетворяет конкретному условию. Если характеристическая информация содержит атрибут режима предсказания, то признаком того, что характеристическая информация удовлетворяет конкретному условию, может быть то, что указанный атрибут режима предсказания удовлетворяет конкретному условию. Если характеристическая информация содержит информацию о размере, то признаком того, что характеристическая информация удовлетворяет конкретному условию, может быть то, что указанная информация о размере удовлетворяет конкретному условию. Если характеристическая информация содержит информацию управления переключением на уровне последовательности, то признаком того, что характеристическая информация удовлетворяет конкретному условию, может быть то, что указанная информация управления переключением на уровне последовательности удовлетворяет конкретному условию.The characteristic information may comprise, for example, one or more of a movement information attribute, a prediction mode attribute, size information, and sequence-level switching control information. If the specified characteristic information contains a movement information attribute, then an indication that the characteristic information satisfies a specific condition may be that the specified movement information attribute satisfies the specific condition. If the characteristic information contains a prediction mode attribute, then an indication that the characteristic information satisfies a specific condition may be that the specified prediction mode attribute satisfies the specific condition. If the characteristic information contains size information, then an indication that the characteristic information satisfies a specific condition may be that the specified size information satisfies the specific condition. If the characteristic information contains sequence-level switching control information, then an indication that the characteristic information satisfies a specific condition may be that said sequence-level switching control information satisfies the specific condition.

Если характеристическая информация содержит по меньшей мере два элемента из атрибута информации о перемещении, атрибута режима предсказания, информации о размере и информации управления переключением на уровне последовательности. Например, если характеристическая информация содержит атрибут информации о перемещении и атрибут режима предсказания, то признаком того, что характеристическая информация удовлетворяет конкретному условию, может быть то, что и атрибут информации о перемещении удовлетворяет конкретному условию, и атрибут режима предсказания удовлетворяет конкретному условию. В еще одном примере, если характеристическая информация содержит атрибут информации о перемещении, информацию о размере и информацию управления переключением на уровне последовательности, то признаком того, что характеристическая информация удовлетворяет конкретному условию, может быть то, что, соответственно, атрибут информации о перемещении удовлетворяет конкретному условию, информация о размере удовлетворяет конкретному условию и информация управления переключением на уровне последовательности удовлетворяет конкретному условию. Разумеется, вышеприведенные варианты функционирования представляют собой лишь несколько примеров, которыми настоящее изобретение не ограничивается.If the characteristic information contains at least two elements of a moving information attribute, a prediction mode attribute, size information and sequence-level switching control information. For example, if the characteristic information contains a movement information attribute and a prediction mode attribute, then an indication that the characteristic information satisfies a specific condition may be that both the movement information attribute satisfies the specific condition and the prediction mode attribute satisfies the specific condition. In yet another example, if the characteristic information contains a moving information attribute, size information, and sequence-level switching control information, then an indication that the characteristic information satisfies a particular condition may be that, accordingly, the moving information attribute satisfies a particular condition, the size information satisfies the specific condition, and the sequence-level switching control information satisfies the specific condition. Of course, the above embodiments are just a few examples to which the present invention is not limited.

Определение первого исходного значения предсказания на основании первой информации об однонаправленном перемещении текущего блока и определение второго исходного значения предсказания на основании второй информации об однонаправленном перемещении текущего блока может, без ограничения, содержать, например: определение первого опорного блока по первому опорному кадру и определение первого исходного значения предсказания первого опорного блока на основании первой информации об однонаправленном перемещении текущего блока, при этом первое исходное значение предсказания центральной области первого опорного блока получают путем интерполирования значения пиксела в первом опорном кадре, а первое исходное значение предсказания краевой области первого опорного блока получают путем копирования значения пиксела в первом опорном кадре; определение второго опорного блока по второму опорному кадру на основании второй информации об однонаправленном перемещении текущего блока и определение второго исходного значения предсказания второго опорного блока, при этом второе исходное значение предсказания центральной области второго опорного блока получают путем интерполирования значения пиксела во втором опорном кадре, а второе исходное значение предсказания краевой области второго опорного блока получают путем копирования значения пиксела во втором опорном кадре.Determining a first initial prediction value based on the first unidirectional movement information of the current block and determining a second initial prediction value based on the second unidirectional movement information of the current block may, without limitation, comprise, for example: determining a first reference block from the first reference frame and determining a first initial prediction values of the first reference block based on the first unidirectional movement information of the current block, wherein the first initial prediction value of a center region of the first reference block is obtained by interpolating a pixel value in the first reference frame, and the first initial prediction value of an edge region of the first reference block is obtained by copying the value pixels in the first reference frame; determining a second reference block from the second reference frame based on the second unidirectional movement information of the current block; and determining a second initial prediction value of the second reference block, wherein the second initial prediction value of a central region of the second reference block is obtained by interpolating a pixel value in the second reference frame, and the second an initial edge region prediction value of the second reference block is obtained by copying a pixel value in the second reference frame.

Например, первый опорный блок, соответствующий текущему блоку, может определяться по первому опорному кадру на основании первой информации об однонаправленном перемещении текущего блока. Если предположить, что размер текущего блока равен М*М, а размер первого опорного блока равен N*N, то N может быть больше М, например, М может быть равно 4, а N может быть равно 6. Первый опорный блок может быть разделен на центральную область и краевую область. Центральной областью первого опорного блока называется область размером М*М с центром в центральной точке первого опорного блока; краевой областью первого опорного блока называется область в первом опорном блоке, отличная от указанной центральной области. Для центральной области первого опорного блока первое исходное значение предсказания центральной области первого опорного блока получают путем интерполирования значения пиксела в первом опорном кадре. Для краевой области первого опорного блока первое исходное значение предсказания краевой области первого опорного блока получают путем копирования значения пиксела в первом опорном кадре.For example, a first reference block corresponding to the current block may be determined from the first reference frame based on the first unidirectional movement information of the current block. If we assume that the size of the current block is M*M and the size of the first reference block is N*N, then N can be greater than M, for example, M can be 4 and N can be 6. The first reference block can be divided into a central region and an edge region. The central area of the first support block is an area of size M*M centered at the central point of the first support block; the edge region of the first support block is a region in the first support block other than the specified central region. For the central region of the first reference block, a first initial prediction value of the central region of the first reference block is obtained by interpolating a pixel value in the first reference frame. For the edge region of the first reference block, the first initial prediction value of the edge region of the first reference block is obtained by copying the pixel value in the first reference frame.

Второй опорный блок, соответствующий текущему блоку, может определяться по второму опорному кадру на основании второй информации об однонаправленном перемещении текущего блока. Если предположить, что размер текущего блока равен М*М, а размер второго опорного блока равен N*N, то N может быть больше М, например, М может быть равно 4 и N может быть равно 6. Второй опорный блок может быть разделен на центральную область и краевую область. Центральной областью второго опорного блока называется область размером М*М с центром в центральной точке второго опорного блока, а краевой областью второго опорного блока называется область во втором опорном блоке, отличная от указанной центральной области. Для центральной области второго опорного блока второе исходное значение предсказания центральной области второго опорного блока получают путем интерполирования значения пиксела во втором опорном кадре. Для краевой области второго опорного блока второе исходное значение предсказания краевой области второго опорного блока получают путем копирования значения пиксела во втором опорном кадре.A second reference block corresponding to the current block may be determined from the second reference frame based on the second unidirectional movement information of the current block. If we assume that the size of the current block is M*M and the size of the second reference block is N*N, then N can be greater than M, for example, M can be equal to 4 and N can be equal to 6. The second reference block can be divided into central region and marginal region. The central region of the second reference block is an area of size M*M centered at the central point of the second reference block, and the edge region of the second reference block is a region in the second reference block other than said central region. For the central region of the second reference block, a second initial prediction value of the central region of the second reference block is obtained by interpolating a pixel value in the second reference frame. For the edge region of the second reference block, a second initial prediction value of the edge region of the second reference block is obtained by copying the pixel value in the second reference frame.

Определение первого исходного значения предсказания на основании первой информации об однонаправленном перемещении текущего блока и определение второго исходного значения предсказания на основании второй информации об однонаправленном перемещении текущего блока может без ограничения, содержать, например: определение первого опорного блока по первому опорному кадру на основании первой информации об однонаправленном перемещении текущего блока и определение первого исходного значения предсказания первого опорного блока, при этом указанное первое исходное значение предсказания получают путем интерполирования значения пиксела в первом опорном кадре; определение второго опорного блока по второму опорному кадру на основании второй информации об однонаправленном перемещении текущего блока и определение второго исходного значения предсказания второго опорного блока. Указанное второе исходное значение предсказания получают путем интерполирования значения пиксела во втором опорном кадре. Например, первый опорный блок, соответствующий текущему блоку, может определяться по первому опорному кадру на основании первой информации об однонаправленном перемещении текущего блока. Если предположить, что размер текущего блока равен М*М, то размер первого опорного блока может быть равен М*М. Второй опорный блок, соответствующий текущему блоку, может определяться по второму опорному кадру на основании второй информации об однонаправленном перемещении текущего блока. Если предположить, что размер текущего блока равен М*М, то размер второго опорного блока может быть равен М*М.Determining the first prediction initial value based on the first unidirectional movement information of the current block and determining the second prediction initial value based on the second unidirectional movement information of the current block may, without limitation, comprise, for example: determining a first reference block from the first reference frame based on the first unidirectionally moving the current block and determining a first initial prediction value of the first reference block, wherein said first initial prediction value is obtained by interpolating a pixel value in the first reference frame; determining a second reference block from the second reference frame based on the second unidirectional movement information of the current block; and determining a second initial prediction value of the second reference block. Said second initial prediction value is obtained by interpolating the pixel value in the second reference frame. For example, a first reference block corresponding to the current block may be determined from the first reference frame based on the first unidirectional movement information of the current block. If we assume that the size of the current block is M*M, then the size of the first reference block can be M*M. A second reference block corresponding to the current block may be determined from the second reference frame based on the second unidirectional movement information of the current block. If we assume that the size of the current block is M*M, then the size of the second reference block can be M*M.

На этапе 202 на основании первого исходного значения предсказания и второго исходного значения предсказания определяют горизонтальную скорость.At step 202, based on the first initial prediction value and the second initial prediction value, the horizontal speed is determined.

Горизонтальной скоростью, например, называется скорость в горизонтальном направлении (т.е., в направлении X) субблока, соответствующего текущему блоку, в опорном кадре (т.е., субблока, находящегося в опорном кадре, соответствующего текущему блоку). Как вариант, горизонтальной скоростью называется скорость в горизонтальном направлении (т.е., в направлении X) субблока, соответствующего субблоку текущего блока, в опорном кадре (т.е., субблока, находящегося в опорном кадре, соответствующего субблоку текущего блока).Horizontal speed, for example, refers to the speed in the horizontal direction (ie, in the X direction) of the sub-block corresponding to the current block in the reference frame (ie, the sub-block located in the reference frame corresponding to the current block). Alternatively, horizontal speed refers to the speed in the horizontal direction (ie, in the X direction) of a sub-block corresponding to a sub-block of the current block in a reference frame (ie, a sub-block located in a reference frame corresponding to a sub-block of the current block).

Определение горизонтальной скорости на основании указанных первого исходного значения предсказания и второго исходного значения предсказания может, без ограничения, содержать, например, следующие варианты.Determining the horizontal speed based on the first prediction initial value and the second prediction initial value may, without limitation, comprise, for example, the following options.

Вариант 1: определение коэффициента S1 автокорреляции суммы горизонтального градиента и коэффициента S3 взаимной корреляции между разностью значений предсказания во временной области и суммой горизонтального градиента на основании первого исходного значения предсказания и второго исходного значения предсказания; и затем определение горизонтальной скорости на основании коэффициента S1 автокорреляции, порогового значения скорости, коэффициента S3 взаимной корреляции, первого коэффициента увеличения и второго коэффициента увеличения.Option 1: determining the autocorrelation coefficient S1 of the horizontal gradient sum and the cross-correlation coefficient S3 between the difference of the time domain prediction values and the horizontal gradient sum based on the first original prediction value and the second original prediction value; and then determining the horizontal speed based on the autocorrelation coefficient S1, the speed threshold value, the cross-correlation coefficient S3, the first magnification factor and the second magnification factor.

Вариант 2: если первое заранее заданное условие выполнено, определение коэффициента S2 взаимной корреляции между суммой горизонтального градиента и суммой вертикального градиента, коэффициента S6 взаимной корреляции между разностью значений предсказания во временной области и суммой вертикального градиента на основании первого исходного значения предсказания и второго исходного значения предсказания; и затем определение горизонтальной скорости на основании коэффициента S2 взаимной корреляции, порогового значения скорости, коэффициента S6 взаимной корреляции, первого коэффициента увеличения и второго коэффициента увеличения; если же первое заранее заданное условие не выполнено, определение коэффициента S1 автокорреляции суммы горизонтального градиента и коэффициента S3 взаимной корреляции между разностью значений предсказания во временной области и суммой горизонтального градиента на основании первого исходного значения предсказания и второго исходного значения предсказания; и определение горизонтальной скорости на основании коэффициента S1 автокорреляции, порогового значения скорости, коэффициента S3 взаимной корреляции, первого коэффициента увеличения и второго коэффициента увеличения.Option 2: If the first predetermined condition is satisfied, determining the cross-correlation coefficient S2 between the horizontal gradient sum and the vertical gradient sum, the cross-correlation coefficient S6 between the difference of the time domain prediction values and the vertical gradient sum based on the first prediction original value and the second prediction original value ; and then determining the horizontal speed based on the cross-correlation coefficient S2, the speed threshold value, the cross-correlation coefficient S6, the first magnification factor and the second magnification factor; if the first predetermined condition is not satisfied, determining an autocorrelation coefficient S1 of the horizontal gradient sum and a cross-correlation coefficient S3 between the difference of the time domain prediction values and the horizontal gradient sum based on the first original prediction value and the second original prediction value; and determining the horizontal speed based on the autocorrelation coefficient S1, the speed threshold value, the cross-correlation coefficient S3, the first magnification factor and the second magnification factor.

Первое заранее заданное условие может определяться, например, на основании коэффициента S2 взаимной корреляции и коэффициента S5 автокорреляции суммы вертикального градиента.The first predetermined condition may be determined, for example, based on the cross-correlation coefficient S2 and the vertical gradient sum autocorrelation coefficient S5.

Вариант 3: если второе заранее заданное условие выполнено, определение коэффициента S1 автокорреляции суммы горизонтального градиента, коэффициента S2 взаимной корреляции между суммой горизонтального градиента и суммой вертикального градиента, коэффициента S3 взаимной корреляции между разностью значений предсказания во временной области и суммой горизонтального градиента, коэффициента S5 автокорреляции суммы вертикального градиента, коэффициента S6 взаимной корреляции между разностью значений предсказания во временной области и суммой вертикального градиента на основании первого исходного значения предсказания и второго исходного значения предсказания; определение горизонтальной скорости на основании коэффициента S1 автокорреляции, коэффициента S2 взаимной корреляции, коэффициента S3 взаимной корреляции, коэффициента S5 автокорреляции, коэффициента S6 взаимной корреляции, порогового значения скорости, первого коэффициента увеличения и второго коэффициента увеличения; если же второе заранее заданное условие не выполнено, определение коэффициента S1 автокорреляции суммы горизонтального градиента и коэффициента S3 взаимной корреляции между разностью значений предсказания во временной области и суммой горизонтального градиента на основании первого исходного значения предсказания и второго исходного значения предсказания; и определение горизонтальной скорости на основании коэффициента S1 автокорреляции, порогового значения скорости, коэффициента S3 взаимной корреляции, первого коэффициента увеличения и второго коэффициента увеличения.Option 3: If the second predetermined condition is satisfied, determining the autocorrelation coefficient S1 of the horizontal gradient sum, the cross-correlation coefficient S2 between the horizontal gradient sum and the vertical gradient sum, the cross-correlation coefficient S3 between the difference of the time domain prediction values and the horizontal gradient sum, the autocorrelation coefficient S5 a vertical gradient sum, a cross-correlation coefficient S6 between the difference of the time domain prediction values and the vertical gradient sum based on the first prediction original value and the second prediction original value; determining the horizontal speed based on the autocorrelation coefficient S1, the cross-correlation coefficient S2, the cross-correlation coefficient S3, the autocorrelation coefficient S5, the cross-correlation coefficient S6, the speed threshold, the first magnification factor and the second magnification factor; if the second predetermined condition is not satisfied, determining an autocorrelation coefficient S1 of the horizontal gradient sum and a cross-correlation coefficient S3 between the difference of the time domain prediction values and the horizontal gradient sum based on the first original prediction value and the second original prediction value; and determining the horizontal speed based on the autocorrelation coefficient S1, the speed threshold value, the cross-correlation coefficient S3, the first magnification factor and the second magnification factor.

Второе заранее заданное условие может определяться, например, на основании коэффициента S2 взаимной корреляции и коэффициента S5 автокорреляции.The second predetermined condition may be determined, for example, based on the cross-correlation coefficient S2 and the autocorrelation coefficient S5.

На этапе 203 на основании первого исходного значения предсказания и второго исходного значения предсказания определяют вертикальную скорость.At step 203, based on the first initial prediction value and the second initial prediction value, the vertical speed is determined.

Вертикальной скоростью, например, называется скорость в вертикальном направлении (т.е., в направлении Y) субблока, соответствующего текущему блоку в опорном кадре (т.е., субблока, находящегося в опорном кадре, соответствующего текущему блоку). Как вариант, вертикальной скоростью называется скорость в вертикальном направлении (т.е., в направлении Y) субблока, соответствующего субблоку текущего блока, в опорном кадре (т.е., субблока, находящегося в опорном кадре, соответствующего субблоку текущего блока).Vertical speed, for example, refers to the speed in the vertical direction (ie, in the Y direction) of the sub-block corresponding to the current block in the reference frame (ie, the sub-block located in the reference frame corresponding to the current block). Alternatively, vertical speed refers to the speed in the vertical direction (ie, in the Y direction) of a sub-block corresponding to a sub-block of the current block in a reference frame (ie, a sub-block located in a reference frame corresponding to a sub-block of the current block).

Определение вертикальной скорости на основании указанных первого исходного значения предсказания и второго исходного значения предсказания может, без ограничения, содержать, например, следующие варианты.Determining the vertical speed based on the first initial prediction value and the second initial prediction value may, without limitation, comprise, for example, the following options.

Вариант 1: определение коэффициента S2 взаимной корреляции между суммой горизонтального градиента и суммой вертикального градиента, коэффициента S5 автокорреляции суммы вертикального градиента, коэффициента S6 взаимной корреляции между разностью значений предсказания во временной области и суммой вертикального градиента на основании первого исходного значения предсказания и второго исходного значения предсказания; и затем определение вертикальной скорости на основании коэффициента S2 взаимной корреляции, коэффициента S5 автокорреляции, коэффициента S6 взаимной корреляции, порогового значения скорости, горизонтальной скорости, первого коэффициента увеличения и второго коэффициента увеличения.Option 1: Determine the cross-correlation coefficient S2 between the horizontal gradient sum and the vertical gradient sum, the autocorrelation coefficient S5 of the vertical gradient sum, the cross-correlation coefficient S6 between the difference of the time domain prediction values and the vertical gradient sum based on the first original prediction value and the second original prediction value ; and then determining the vertical speed based on the cross-correlation coefficient S2, the auto-correlation coefficient S5, the cross-correlation coefficient S6, the speed threshold, the horizontal speed, the first magnification factor and the second magnification factor.

Вариант 2: получение, без ограничивающей обработки, неограниченной горизонтальной скорости на основании первого исходного значения предсказания и второго исходного значения предсказания, и определение вертикальной скорости на основании указанной неограниченной горизонтальной скорости.Option 2: obtaining, without limiting processing, an unconstrained horizontal velocity based on the first prediction initial value and a second prediction initial value, and determining a vertical velocity based on said unconstrained horizontal velocity.

Например, на основании первого исходного значения предсказания и второго исходного значения предсказания могут определяться коэффициент S1 автокорреляции суммы горизонтального градиента, коэффициент S2 взаимной корреляции между суммой горизонтального градиента и суммой вертикального градиента, коэффициент S3 взаимной корреляции между разностью значений предсказания во временной области и суммой горизонтального градиента, коэффициент S5 автокорреляции суммы вертикального градиента, коэффициент S6 взаимной корреляции между разностью значений предсказания во временной области и суммой вертикального градиента. Затем на основании коэффициента S1 автокорреляции, коэффициента S3 взаимной корреляции, первого коэффициента увеличения и второго коэффициента увеличения может определяться неограниченная горизонтальная скорость, и на основании коэффициента S2 взаимной корреляции, коэффициента S5 автокорреляции, коэффициента S6 взаимной корреляции, порогового значения скорости, неограниченной горизонтальной скорости, первого коэффициента увеличения и второго коэффициента увеличения может определяться вертикальная скорость.For example, based on the first prediction original value and the second prediction original value, the autocorrelation coefficient S1 of the horizontal gradient sum, the cross-correlation coefficient S2 between the horizontal gradient sum and the vertical gradient sum, the cross-correlation coefficient S3 between the difference of the time domain prediction values and the horizontal gradient sum can be determined. , autocorrelation coefficient S5 of the vertical gradient sum, cross-correlation coefficient S6 between the difference of the time domain prediction values and the vertical gradient sum. Then, based on the autocorrelation coefficient S1, the cross-correlation coefficient S3, the first magnification coefficient and the second magnification coefficient, the unlimited horizontal speed can be determined, and based on the cross-correlation coefficient S2, the autocorrelation coefficient S5, the cross-correlation coefficient S6, the speed threshold value, the unlimited horizontal speed, the first magnification factor and the second magnification factor can determine the vertical speed.

Вариант 3: если выполнено третье заранее заданное условие, определение коэффициента S5 автокорреляции суммы вертикального градиента, коэффициента S6 взаимной корреляции между разностью значений предсказания во временной области и суммой вертикального градиента на основании первого исходного значения предсказания и второго исходного значения предсказания, и затем определение вертикальной скорости на основании коэффициента S5 автокорреляции, коэффициента S6 взаимной корреляции, порогового значения скорости, первого коэффициента увеличения и второго коэффициента увеличения; если же третье заранее заданное условие не выполнено, определение коэффициента S2 взаимной корреляции между суммой горизонтального градиента и суммой вертикального градиента, коэффициента S5 автокорреляции суммы вертикального градиента, коэффициента S6 взаимной корреляции между разностью значений предсказания во временной области и суммой вертикального градиента на основании первого исходного значения предсказания и второго исходного значения предсказания, и затем определение вертикальной скорости на основании коэффициента S2 взаимной корреляции, коэффициента S5 автокорреляции, коэффициента S6 взаимной корреляции, порогового значения скорости, горизонтальной скорости, первого коэффициента увеличения и второго коэффициента увеличения.Option 3: If the third predetermined condition is satisfied, determining the autocorrelation coefficient S5 of the vertical gradient sum, the cross-correlation coefficient S6 between the difference of the time domain prediction values and the vertical gradient sum based on the first original prediction value and the second initial prediction value, and then determining the vertical speed based on the autocorrelation coefficient S5, the cross-correlation coefficient S6, the speed threshold, the first magnification factor and the second magnification factor; if the third predetermined condition is not satisfied, determining the cross-correlation coefficient S2 between the horizontal gradient sum and the vertical gradient sum, the autocorrelation coefficient S5 of the vertical gradient sum, the cross-correlation coefficient S6 between the difference of the time domain prediction values and the vertical gradient sum based on the first initial value prediction and the second prediction original value, and then determining the vertical speed based on the cross-correlation coefficient S2, the auto-correlation coefficient S5, the cross-correlation coefficient S6, the speed threshold value, the horizontal speed, the first magnification factor and the second magnification factor.

Указанное третье заранее заданное условие может определяться, например, на основании горизонтальной скорости.Said third predetermined condition may be determined based on the horizontal speed, for example.

Сумма горизонтального градиента, сумма вертикального градиента и разность значений предсказания во временной области на этапе 202 и этапе 203 могут определяться на основании первого исходного значения предсказания, второго исходного значения предсказания, первого коэффициента увеличения и второго коэффициента увеличения. Коэффициент S1 автокорреляции суммы горизонтального градиента, коэффициент S2 взаимной корреляции между суммой горизонтального градиента и суммой вертикального градиента, коэффициент S3 взаимной корреляции между разностью значений предсказания во временной области и суммой горизонтального градиента, коэффициент S5 автокорреляции суммы вертикального градиента, коэффициент S6 взаимной корреляции между разностью значений предсказания во временной области и суммой вертикального градиента могут определяться на основании суммы горизонтального градиента, суммы вертикального градиента и разности значений предсказания во временной области.The horizontal gradient sum, the vertical gradient sum, and the difference of the time domain prediction values in step 202 and step 203 may be determined based on the first prediction original value, the second prediction original value, the first magnification factor, and the second magnification factor. Autocorrelation coefficient S1 of the horizontal gradient sum, cross-correlation coefficient S2 between the horizontal gradient sum and the vertical gradient sum, cross-correlation coefficient S3 between the difference of the time domain prediction values and the horizontal gradient sum, autocorrelation coefficient S5 of the vertical gradient sum, cross-correlation coefficient S6 between the difference of the values the time domain predictions and the vertical gradient sum may be determined based on the horizontal gradient sum, the vertical gradient sum, and the difference of the time domain prediction values.

Например, значение коэффициента S2 взаимной корреляции может лежать между первым пороговым значением коэффициента взаимной корреляции и вторым пороговым значением коэффициента взаимной корреляции, а значение коэффициента S6 взаимной корреляции может лежать между третьим пороговым значением коэффициента взаимной корреляции и четвертым пороговым значением коэффициента взаимной корреляции.For example, the value of the cross-correlation coefficient S2 may lie between the first threshold cross-correlation coefficient value and the second threshold value of the cross-correlation coefficient, and the value of the cross-correlation coefficient S6 may lie between the third threshold value of the cross-correlation coefficient and the fourth threshold value of the cross-correlation coefficient.

Например, если коэффициент S2 взаимной корреляции, полученный на основании первого исходного значения предсказания, второго исходного значения предсказания, первого коэффициента увеличения и второго коэффициента увеличения меньше первого порогового значения коэффициента взаимной корреляции, то коэффициент S2 взаимной корреляции делают равным первому пороговому значению коэффициента взаимной корреляции. Если коэффициент S2 взаимной корреляции, полученный на основании первого исходного значения предсказания, второго исходного значения предсказания, первого коэффициента увеличения и второго коэффициента увеличения больше второго порогового значения коэффициента взаимной корреляции, то коэффициент S2 взаимной корреляции делают равным второму пороговому значению коэффициента взаимной корреляции. Если коэффициент S2 взаимной корреляции, полученный на основании первого исходного значения предсказания, второго исходного значения предсказания, первого коэффициента увеличения и второго коэффициента увеличения больше или равен первому пороговому значению коэффициента взаимной корреляции и меньше или равен второму пороговому значению коэффициента взаимной корреляции, то коэффициент S2 взаимной корреляции оставляют неизменным.For example, if the cross-correlation coefficient S2 obtained based on the first prediction original value, the second prediction original value, the first magnification factor and the second magnification factor is less than the first cross-correlation coefficient threshold value, then the cross-correlation coefficient S2 is made equal to the first cross-correlation coefficient threshold value. If the cross-correlation coefficient S2 obtained based on the first prediction original value, the second prediction original value, the first magnification factor and the second magnification factor is greater than the second cross-correlation coefficient threshold value, then the cross-correlation coefficient S2 is made equal to the second cross-correlation coefficient threshold value. If the cross-correlation coefficient S2 obtained based on the first prediction original value, the second prediction original value, the first magnification factor and the second magnification factor is greater than or equal to the first cross-correlation coefficient threshold value and less than or equal to the second cross-correlation coefficient threshold value, then the cross-correlation coefficient S2 correlations are left unchanged.

Если коэффициент S6 взаимной корреляции, полученный на основании первого исходного значения предсказания, второго исходного значения предсказания, первого коэффициента увеличения и второго коэффициента увеличения, меньше третьего порогового значения коэффициента взаимной корреляции, то коэффициент S6 взаимной корреляции делают равным третьему пороговому значению коэффициента взаимной корреляции. Если коэффициент S6 взаимной корреляции, полученный на основании первого исходного значения предсказания, второго исходного значения предсказания, первого коэффициента увеличения и второго коэффициента увеличения больше четвертого порогового значения коэффициента взаимной корреляции, то коэффициент S6 взаимной корреляции делают равным четвертому пороговому значению коэффициента взаимной корреляции. Если коэффициент S6 взаимной корреляции, полученный на основании первого исходного значения предсказания, второго исходного значения предсказания, первого коэффициента увеличения и второго коэффициента увеличения больше или равен третьему пороговому значению коэффициента взаимной корреляции и меньше или равен четвертому пороговому значению коэффициента взаимной корреляции, то коэффициент S6 взаимной корреляции оставляют неизменным.If the cross-correlation coefficient S6 obtained based on the first prediction original value, the second prediction original value, the first magnification factor and the second magnification factor is less than the third cross-correlation coefficient threshold value, then the cross-correlation coefficient S6 is made equal to the third cross-correlation coefficient threshold value. If the cross-correlation coefficient S6 obtained based on the first prediction original value, the second prediction original value, the first magnification coefficient and the second magnification coefficient is greater than the fourth cross-correlation coefficient threshold value, then the cross-correlation coefficient S6 is made equal to the fourth cross-correlation coefficient threshold value. If the cross-correlation coefficient S6 obtained based on the first prediction original value, the second prediction original value, the first magnification factor and the second magnification factor is greater than or equal to the third cross-correlation coefficient threshold value and less than or equal to the fourth cross-correlation coefficient threshold value, then the cross-correlation coefficient S6 correlations are left unchanged.

Например, первый коэффициент увеличения может быть равным меньшему из 5 и (BD-7) или большему из 1 и (BD-11). Разумеется, выше приведен лишь пример первого коэффициента увеличения, которым настоящее изобретение не ограничивается и который может задаваться в соответствии с опытом.For example, the first magnification factor may be the lesser of 5 and (BD-7) or the greater of 1 and (BD-11). Of course, the above is only an example of the first magnification factor, to which the present invention is not limited and which can be set in accordance with experience.

Например, второй коэффициент увеличения может быть равным меньшему из 8 и (BD-4) или большему из 4 и (BD-8). Разумеется, выше приведен лишь пример второго коэффициента увеличения, которым настоящее изобретение не ограничивается и который может задаваться в соответствии с опытом.For example, the second magnification factor may be equal to the lesser of 8 and (BD-4) or the greater of 4 and (BD-8). Of course, the above is only an example of the second magnification factor, to which the present invention is not limited and which can be set in accordance with experience.

Например, пороговое значение скорости может быть равным 2 в степени М, где М представляет собой разность между 13 и BD, или может быть равным большему из 5 и (BD-7). Разумеется, выше приведен лишь пример порогового значения скорости, которым настоящее изобретение не ограничивается и который может задаваться в соответствии с опытом.For example, the speed threshold may be equal to 2 to the power of M, where M is the difference between 13 and BD, or may be equal to the greater of 5 and (BD-7). Of course, the above is just an example of the speed threshold to which the present invention is not limited and which can be set in accordance with experience.

Битовая глубина (англ. Bit Depth, BD) представляет собой битовую ширину, необходимую для представления каждого из значений цветности или яркости пиксела.Bit Depth (BD) is the bit width required to represent each chrominance or luminance value of a pixel.

На этапе 204 на основании горизонтальной скорости и вертикальной скорости получают значение компенсации предсказания.At step 204, based on the horizontal speed and vertical speed, a prediction compensation value is obtained.

Получение значения компенсации предсказания на основании горизонтальной скорости и вертикальной скорости может, без ограничения, содержать, например, определение горизонтального градиента и вертикального градиента на основании первого исходного значения предсказания, второго исходного значения предсказания и количества битов сдвига градиента вправо и получение значения компенсации предсказания на основании горизонтальной скорости, вертикальной скорости, горизонтального градиента и вертикального градиента.Obtaining the prediction compensation value based on the horizontal velocity and the vertical velocity may, without limitation, comprise, for example, determining the horizontal gradient and the vertical gradient based on the first prediction original value, the second prediction original value, and the number of gradient right shift bits, and obtaining the prediction compensation value based on horizontal speed, vertical speed, horizontal gradient and vertical gradient.

Например, количество битов сдвига градиента вправо может быть равным большему из 2 и (14-BD) или большему из 6 и (BD-6). Разумеется, выше приведен лишь пример количества битов сдвига градиента вправо, которым настоящее изобретение не ограничивается и который может задаваться в соответствии с опытом.For example, the number of gradient right shift bits may be the greater of 2 and (14-BD) or the greater of 6 and (BD-6). Of course, the above is only an example of the number of right gradient shift bits, to which the present invention is not limited and which can be set in accordance with experience.

На этапе 205 на основании первого исходного значения предсказания, второго исходного значения предсказания и значения компенсации предсказания получают искомое значение предсказания.At step 205, based on the first prediction original value, the second prediction original value, and the prediction compensation value, the desired prediction value is obtained.

Например, когда вышеописанный способ используется для получения искомого значения предсказания текущего блока, если характеристическая информация текущего блока удовлетворяет конкретному условию, на основании первой информации об однонаправленном перемещении текущего блока определяют первое исходное значение предсказания для текущего блока и на основании второй информации об однонаправленном перемещении текущего блока определяют второе исходное значение предсказания для текущего блока. На основании первого исходного значения предсказания и второго исходного значения предсказания определяют горизонтальную скорость для текущего блока и на основании первого исходного значения предсказания и второго исходного значения предсказания определяют вертикальную скорость для текущего блока. Затем на основании горизонтальной скорости и вертикальной скорости получают значение компенсации предсказания для текущего блока и на основании первого исходного значения предсказания, второго исходного значения предсказания и значения компенсации предсказания получают искомое значение предсказания для текущего блока. К этому моменту искомое значение предсказания для текущего блока успешно получено.For example, when the above-described method is used to obtain a target prediction value of the current block, if the characteristic information of the current block satisfies a specific condition, based on the first unidirectional movement information of the current block, a first prediction initial value for the current block is determined, and based on the second unidirectional movement information of the current block determining a second initial prediction value for the current block. Based on the first prediction original value and the second prediction original value, the horizontal speed for the current block is determined, and based on the first prediction original value and the second prediction original value, the vertical speed for the current block is determined. Then, based on the horizontal speed and vertical speed, a prediction compensation value for the current block is obtained, and based on the first prediction original value, the second prediction original value, and the prediction compensation value, a target prediction value for the current block is obtained. At this point, the desired prediction value for the current block has been successfully obtained.

Когда текущий блок разделен на по меньшей мере один субблок и для получения искомого значения предсказания каждого субблока текущего блока используется, например, вышеописанный способ, если характеристическая информация текущего блока удовлетворяет конкретному условию, то для каждого субблока текущего блока на основании первой информации об однонаправленном перемещении указанного субблока (которая та же, что и первая информация об однонаправленном перемещении текущего блока) определяют первое исходное значение предсказания для субблока и на основании второй информации об однонаправленном перемещении указанного субблока (которая та же, что и вторая информация об однонаправленном перемещении текущего блока) определяют второе исходное значение предсказания для субблока, на основании первого исходного значения предсказания и второго исходного значения предсказания определяют горизонтальную скорость для указанного субблока и на основании первого исходного значения предсказания и второго исходного значения предсказания определяют вертикальную скорость для указанного субблока. Затем на основании горизонтальной скорости и вертикальной скорости получают значение компенсации предсказания для указанного субблока и на основании первого исходного значения предсказания, второго исходного значения предсказания и значения компенсации предсказания получают искомое значение предсказания для указанного субблока.When the current block is divided into at least one sub-block and, for example, the above-described method is used to obtain the desired prediction value of each sub-block of the current block, if the characteristic information of the current block satisfies a specific condition, then for each sub-block of the current block based on the first unidirectional movement information of the specified sub-block (which is the same as the first unidirectional movement information of the current block), determine a first initial prediction value for the sub-block, and based on the second unidirectional movement information of the specified sub-block (which is the same as the second unidirectional movement information of the current block) determine a second an initial prediction value for a sub-block, based on the first initial prediction value and a second initial prediction value, a horizontal speed for the specified sub-block is determined, and based on the first initial prediction value and a second initial prediction value, a vertical speed is determined for the specified sub-block. Then, based on the horizontal speed and vertical speed, a prediction compensation value for the specified subblock is obtained, and based on the first prediction original value, the second prediction original value, and the prediction compensation value, a desired prediction value for the specified subblock is obtained.

К этому моменту искомое значение предсказания для субблока успешно получено. По сути, искомое значение предсказания текущего блока получают после получения искомого значения предсказания каждого субблока текущего блока.At this point, the desired prediction value for the subblock has been successfully obtained. Essentially, the desired prediction value of the current block is obtained after obtaining the desired prediction value of each sub-block of the current block.

Как можно видеть в вышеприведенных технических решениях, в вариантах реализации настоящего изобретения на основании первой информации об однонаправленном перемещении текущего блока можно определить первое исходное значение предсказания, на основании второй информации об однонаправленном перемещении текущего блока можно определить второе исходное значение предсказания, на основании первого исходного значения предсказания и второго исходного значения предсказания можно определить горизонтальную скорость и вертикальную скорость, на основании горизонтальной скорости и вертикальной скорости можно получить значение компенсации предсказания, и на основании значения компенсации предсказания можно получить искомое значение предсказания. Используя вышеописанный способ, текущий блок или искомое значение предсказания субблока текущего блока можно получать на основе способа визуально плавного перемещения, что делает более удобной аппаратную реализацию и улучшает производительность кодирования.As can be seen in the above technical solutions, in embodiments of the present invention, based on the first unidirectional movement information of the current block, a first prediction initial value can be determined, based on the second unidirectional movement information of the current block, a second prediction initial value can be determined, based on the first initial value prediction value and the second prediction initial value, the horizontal speed and vertical speed can be determined, based on the horizontal speed and vertical speed, the prediction compensation value can be obtained, and based on the prediction compensation value, the desired prediction value can be obtained. Using the above method, the current block or the sub-block prediction search value of the current block can be obtained based on the visual smooth movement method, which makes hardware implementation more convenient and improves encoding performance.

Вариант реализации 2. В варианте реализации настоящего изобретения предлагается способ кодирования и декодирования, который может использоваться декодирующей стороной или кодирующей стороной. На фиг. 3 представлена блок-схема этого способа кодирования и декодирования. Например, если характеристическая информация текущего блока удовлетворяет конкретному условию, то для получения искомого значения предсказания каждого субблока текущего блока для каждого субблока текущего блока могут выполняться следующие этапы.Embodiment 2 An embodiment of the present invention provides an encoding and decoding method that can be used by a decoding side or an encoding side. In fig. 3 is a block diagram of this encoding and decoding method. For example, if the characteristic information of the current block satisfies a particular condition, the following steps may be performed to obtain the desired prediction value of each sub-block of the current block for each sub-block of the current block.

На этапе 301, если характеристическая информация текущего блока удовлетворяет конкретному условию, на основании первой информации об однонаправленном перемещении текущего блока (т.е., первой информации об однонаправленном перемещении субблока текущего блока) определяют первое исходное значение предсказания указанного субблока и на основании второй информации об однонаправленном перемещении текущего блока (т.е., второй информации об однонаправленном перемещении субблока текущего блока) определяют второе исходное значение предсказания указанного субблока.At step 301, if the characteristic information of the current block satisfies a specific condition, based on the first unidirectional movement information of the current block (i.e., the first unidirectional movement information of a sub-block of the current block), a first prediction initial value of the specified sub-block is determined, and based on the second information about the unidirectional movement of the current block (ie, the second unidirectional movement information of a subblock of the current block) determines a second initial prediction value of the specified subblock.

Например, если текущий блок является двунаправленным блоком (т.е., текущий блок представляет собой блок, использующий двунаправленное предсказание), может быть получена информация о двунаправленном перемещении текущего блока, без ограничений на способ получения. Эта информация о двунаправленном перемещении содержит информацию о перемещении в двух различных направлениях. Две информации о перемещении в двух различных направлениях называются первой информацией об однонаправленном перемещении (например, первый вектор перемещения и первый индекс опорного кадра) и второй информацией об однонаправленном перемещении (например, второй вектор перемещения и второй индекс опорного кадра). Первый опорный кадр (например, опорный кадр 0) может определяться на основании первой информации об однонаправленном перемещении и находиться перед текущим сегментом, в котором находится текущий блок. Второй опорный кадр (например, опорный кадр 1) может определяться на основании второй информации об однонаправленном перемещении и находиться за текущим сегментом, в котором находится текущий блок.For example, if the current block is a bidirectional block (ie, the current block is a block using bidirectional prediction), information about the bidirectional movement of the current block can be obtained, without restrictions on the acquisition method. This bidirectional movement information contains information about movement in two different directions. The two movement information in two different directions are called first unidirectional movement information (eg, a first movement vector and a first reference frame index) and second unidirectional movement information (eg, a second movement vector and a second reference frame index). The first reference frame (eg, reference frame 0) may be determined based on the first unidirectional movement information and be before the current segment in which the current block is located. A second reference frame (eg, reference frame 1) may be determined based on the second unidirectional movement information and be located behind the current segment in which the current block is located.

Например, для каждого субблока текущего блока первая информация об однонаправленном перемещении указанного субблока та же, что и первая информация об однонаправленном перемещении текущего блока, а вторая информация об однонаправленном перемещении указанного субблока та же, что и вторая информация об однонаправленном перемещении текущего блока.For example, for each sub-block of the current block, the first unidirectional movement information of the specified sub-block is the same as the first unidirectional movement information of the current block, and the second unidirectional movement information of the specified sub-block is the same as the second unidirectional movement information of the current block.

Указанная характеристическая информация может содержать, например, одно или более из атрибута информации о перемещении, атрибута режима предсказания, информации о размере и информации управления переключением на уровне последовательности. Информация о конкретном условии, которому должна удовлетворять характеристическая информация, приведена при описании этапа 201 и здесь не повторяется.Said characteristic information may comprise, for example, one or more of a moving information attribute, a prediction mode attribute, size information, and sequence-level switching control information. Information about the specific condition that the characteristic information must satisfy is given in the description of step 201 and is not repeated here.

Определение первого исходного значения предсказания указанного субблока на основании первой информации об однонаправленном перемещении текущего блока и определение второго исходного значения предсказания субблока на основании второй информации об однонаправленном перемещении текущего блока может, например, содержать: определение первого опорного блока, соответствующего субблоку текущего блока, по первому опорному кадру на основании первой информации об однонаправленном перемещении текущего блока, и определение первого исходного значения I(0)(x,y) предсказания первого опорного блока; определение второго опорного блока, соответствующего субблоку текущего блока, по второму опорному кадру на основании второй информации об однонаправленном перемещении текущего блока, и определение второго исходного значения I(1)(х,у) предсказания второго опорного блока. Информация о способе определения первого исходного значения предсказания и второго исходного значения предсказания приведена при описании этапа 201 и здесь не повторяется.Determining a first initial prediction value of said sub-block based on the first unidirectional movement information of the current block and determining a second initial prediction value of the sub-block based on the second unidirectional movement information of the current block may, for example, comprise: determining a first reference block corresponding to a sub-block of the current block from the first a reference frame based on the first unidirectional movement information of the current block, and determining a first initial prediction value I (0) (x,y) of the first reference block; determining a second reference block corresponding to a sub-block of the current block from the second reference frame based on the second unidirectional movement information of the current block, and determining a second initial prediction value I (1) (x,y) of the second reference block. Information about the method for determining the first prediction seed value and the second prediction seed value is provided in the description of step 201 and is not repeated here.

На этапе 302 на основании первого исходного значения предсказания и второго исходного значения предсказания указанного субблока определяют сумму горизонтального градиента, сумму вертикального градиента и разность значений предсказания во временной области. Например, сумма горизонтального градиента, сумма вертикального градиента и разность значений предсказания во временной области определяется на основании первого исходного значения предсказания субблока, второго исходного значения предсказания субблока, первого коэффициента увеличения и второго коэффициента увеличения.At step 302, based on the first prediction original value and the second prediction original value of the specified subblock, the horizontal gradient sum, the vertical gradient sum, and the time domain prediction value difference are determined. For example, the horizontal gradient sum, the vertical gradient sum, and the time domain prediction value difference are determined based on the first sub-block prediction original value, the second sub-block prediction original value, the first magnification factor, and the second magnification factor.

На этапе 303 на основании суммы горизонтального градиента, суммы вертикального градиента и разности значений предсказания во временной области определяют коэффициент S1 автокорреляции суммы горизонтального градиента (далее называемый коэффициентом S1 автокорреляции), коэффициент S2 взаимной корреляции между суммой горизонтального градиента и суммой вертикального градиента (далее называемый коэффициентом S2 взаимной корреляции), коэффициент S3 взаимной корреляции между разностью значений предсказания во временной области и суммой горизонтального градиента (далее называемый коэффициентом S3 взаимной корреляции), коэффициент S5 автокорреляции суммы вертикального градиента (далее называемый коэффициентом S5 автокорреляции) и коэффициент S6 взаимной корреляции между разностью значений предсказания во временной области и суммой вертикального градиента (далее называемый коэффициентом S6 взаимной корреляции).In step 303, based on the horizontal gradient sum, the vertical gradient sum, and the difference of the time domain prediction values, the autocorrelation coefficient S1 of the horizontal gradient sum (hereinafter referred to as the autocorrelation coefficient S1), the cross-correlation coefficient S2 between the horizontal gradient sum and the vertical gradient sum (hereinafter referred to as the coefficient cross-correlation coefficient S2), cross-correlation coefficient S3 between the difference of the time domain prediction values and the horizontal gradient sum (hereinafter referred to as cross-correlation coefficient S3), autocorrelation coefficient of the vertical gradient sum (hereinafter referred to as autocorrelation coefficient S5), and cross-correlation coefficient S6 between the value difference time domain prediction and vertical gradient sum (hereinafter referred to as cross-correlation coefficient S6).

На этапе 304 на основании одного или более из коэффициента S1 автокорреляции, коэффициента S2 взаимной корреляции, коэффициента S3 взаимной корреляции, коэффициента S5 автокорреляции и коэффициента S6 взаимной корреляции определяют горизонтальную скорость субблока, соответствующего субблоку текущего блока в опорном кадре.At step 304, based on one or more of the autocorrelation coefficient S1, the cross-correlation coefficient S2, the cross-correlation coefficient S3, the autocorrelation coefficient S5 and the cross-correlation coefficient S6, the horizontal speed of a sub-block corresponding to a sub-block of the current block in the reference frame is determined.

На этапе 305 на основании одного или более из коэффициента S1 автокорреляции, коэффициента S2 взаимной корреляции, коэффициента S3 взаимной корреляции, коэффициента S5 автокорреляции и коэффициента S6 взаимной корреляции определяют вертикальную скорость субблока, соответствующего субблоку текущего блока в опорном кадре.At step 305, based on one or more of the autocorrelation coefficient S1, the cross-correlation coefficient S2, the cross-correlation coefficient S3, the autocorrelation coefficient S5 and the cross-correlation coefficient S6, the vertical speed of a sub-block corresponding to a sub-block of the current block in the reference frame is determined.

На этапе 306 на основании горизонтальной скорости и вертикальной скорости получают значение компенсации предсказания субблока текущего блока.At step 306, based on the horizontal speed and vertical speed, a subblock prediction compensation value of the current block is obtained.

На этапе 307 на основании первого исходного значения предсказания субблока текущего блока, второго исходного значения предсказания субблока текущего блока и значения компенсации предсказания субблока текущего блока получают искомое значение предсказания субблока текущего блока.In step 307, based on the first subblock prediction initial value of the current block, the second subblock prediction initial value of the current block, and the subblock prediction compensation value of the current block, the desired subblock prediction value of the current block is obtained.

Информация о этапах 301-307 приведена при описании варианта реализации 1 и здесь не повторяется.Information about steps 301-307 is provided in the description of embodiment 1 and is not repeated here.

Вариант реализации 3. Кодирующая/декодирующая сторона должна проверять, удовлетворяет ли характеристическая информация текущего блока конкретному условию. Если характеристическая информация текущего блока конкретному условию удовлетворяет, то для получения искомого значения предсказания текущего блока или субблока текущего блока используется техническое решение, приведенное в варианте реализации настоящего изобретения. Это техническое решение также может называться способом двунаправленного визуально плавного перемещения. Если характеристическая информация текущего блока конкретному условию не удовлетворяет, то способ получения искомого значения предсказания, предлагаемый в настоящем изобретении, использоваться не должен.Implementation 3: The encoding/decoding side must check whether the characteristic information of the current block satisfies a specific condition. If the characteristic information of the current block satisfies a specific condition, then the technical solution provided in the embodiment of the present invention is used to obtain the desired prediction value of the current block or sub-block of the current block. This technical solution can also be called a bidirectional visually smooth movement method. If the characteristic information of the current block does not satisfy a specific condition, then the method for obtaining the desired prediction value proposed in the present invention should not be used.

Характеристическую информацию текущего блока считают удовлетворяющей конкретному условию, если указанная характеристическая информация одновременно удовлетворяет по меньшей мере следующим условиям:The characteristic information of the current block is considered to satisfy a particular condition if the specified characteristic information simultaneously satisfies at least the following conditions:

для текущего блока используется двунаправленное предсказание, и два опорных кадра, соответствующих текущему блоку, получены с различных направлений, т.е., один опорный кадр, соответствующий текущему блоку, находится перед текущим сегментом, а другой опорный кадр, соответствующий текущему блоку, находится за текущим сегментом;for the current block, bidirectional prediction is used, and two reference frames corresponding to the current block are received from different directions, i.e., one reference frame corresponding to the current block is in front of the current segment, and the other reference frame corresponding to the current block is behind current segment;

информация о размере (например значение ширины, значение высоты, значение площади и т.д.) текущего блока лежит в ограниченном диапазоне.Size information (for example, width value, height value, area value, etc.) of the current block lies in a limited range.

Вариант реализации 4. Характеристическую информацию текущего блока считают удовлетворяющей конкретному условию, если указанная характеристическая информация одновременно удовлетворяет по меньшей мере следующим условиям:Embodiment 4: The characteristic information of the current block is considered to satisfy a specific condition if the specified characteristic information simultaneously satisfies at least the following conditions:

для текущего блока используется двунаправленное предсказание, и два опорных кадра, соответствующих текущему блоку, получены с различных направлений, т.е., один опорный кадр, соответствующий текущему блоку, находится перед текущим сегментом, а другой опорный кадр, соответствующий текущему блоку, находится за текущим сегментом.for the current block, bidirectional prediction is used, and two reference frames corresponding to the current block are received from different directions, i.e., one reference frame corresponding to the current block is in front of the current segment, and the other reference frame corresponding to the current block is behind current segment.

информация о размере (например, значение ширины, значение высоты, значение площади) текущего блока лежит в ограниченном диапазоне;size information (for example, width value, height value, area value) of the current block lies in a limited range;

текущий блок содержит множество субблоков, и у всех субблоков этого множества информация о перемещении одинаковая, т.е., информация о перемещении каждого субблока текущего блока может быть точно одинаковой, т.е., режим информации о перемещении субблока не используется для текущего блока.the current block contains a plurality of sub-blocks, and all sub-blocks of this plurality have the same movement information, that is, the movement information of each sub-block of the current block may be exactly the same, that is, the sub-block movement information mode is not used for the current block.

Неиспользование режима информации о перемещении субблока для текущего блока может содержать, например, неиспользование для текущего блока аффинного режима и режима SBTMVP. Аффинный режим представляет собой режим с использованием модели аффинного перемещения, а режим SBTMVP (англ. Sub-Block-Based Temporal Motion Vector Prediction, временное предсказание вектора перемещения на основе субблока) представляет собой режим с получением информации о перемещении всего блока во временной области. Если для текущего блока используется аффинный режим или режим SBTMVP, то информация о перемещении каждого субблока в текущем блоке, будет, скорее всего, разной. Поэтому аффинный режим или режим SBTMVP не могут использоваться для текущего блока.Not using the subblock movement information mode for the current block may include, for example, not using the affine mode and the SBTMVP mode for the current block. The affine mode is a mode using an affine motion model, and the SBTMVP (Sub-Block-Based Temporal Motion Vector Prediction) mode is a mode that obtains the movement information of the entire block in the time domain. If affine mode or SBTMVP mode is used for the current block, then the movement information of each subblock in the current block will most likely be different. Therefore, affine mode or SBTMVP mode cannot be used for the current block.

Вариант реализации 5. Характеристическую информацию текущего блока считают удовлетворяющей конкретному условию, если указанная характеристическая информация одновременно удовлетворяет по меньшей мере следующим условиям:Embodiment 5: The characteristic information of the current block is considered to satisfy a specific condition if the specified characteristic information simultaneously satisfies at least the following conditions:

для текущего блока используется двунаправленное предсказание, и два опорных кадра, соответствующих текущему блоку, получены с различных направлений, т.е., один опорный кадр, соответствующий текущему блоку, находится перед текущим сегментом, а другой опорный кадр, соответствующий текущему блоку, находится за текущим сегментом;for the current block, bidirectional prediction is used, and two reference frames corresponding to the current block are received from different directions, i.e., one reference frame corresponding to the current block is in front of the current segment, and the other reference frame corresponding to the current block is behind current segment;

информация о размере (например, значение ширины, значение высоты, значение площади) текущего блока лежит в ограниченном диапазоне;size information (for example, width value, height value, area value) of the current block lies in a limited range;

текущий блок содержит множество субблоков, и информация о перемещении субблоков во всем этом множестве субблоков одинакова, т.е., информация о перемещении каждого субблока текущего блока может быть точно одинаковой, т.е., режим информации о перемещении субблока не используется для текущего блока;the current block contains a plurality of sub-blocks, and the movement information of sub-blocks in all this plurality of sub-blocks is the same, that is, the movement information of each sub-block of the current block may be exactly the same, that is, the sub-block movement information mode is not used for the current block ;

для текущего блока используется двунаправленное предсказание, и два опорных кадра, соответствующих текущему блоку, имеют одинаковый вес.bidirectional prediction is used for the current block, and the two reference frames corresponding to the current block have the same weight.

Вариант реализации 6. Характеристическую информацию текущего блока считают удовлетворяющей конкретному условию, если указанная характеристическая информация одновременно удовлетворяет по меньшей мере следующим условиям:Embodiment 6: The characteristic information of the current block is considered to satisfy a specific condition if the specified characteristic information simultaneously satisfies at least the following conditions:

для текущего блока используется двунаправленное предсказание, и два опорных кадра, соответствующих текущему блоку, получены с различных направлений, т.е., один опорный кадр, соответствующий текущему блоку, находится перед текущим сегментом, а другой опорный кадр, соответствующий текущему блоку, находится за текущим сегментом;for the current block, bidirectional prediction is used, and two reference frames corresponding to the current block are received from different directions, i.e., one reference frame corresponding to the current block is in front of the current segment, and the other reference frame corresponding to the current block is behind current segment;

информация о размере (например, значение ширины, значение высоты, значение площади) текущего блока лежит в ограниченном диапазоне;size information (for example, width value, height value, area value) of the current block lies in a limited range;

текущий блок содержит множество субблоков, и информация о перемещении субблоков во всем этом множестве субблоков одинакова, т.е., информация о перемещении каждого субблока текущего блока может быть точно одинаковой, т.е., режим информации о перемещении субблока не используется для текущего блока;the current block contains a plurality of sub-blocks, and the movement information of sub-blocks in all this plurality of sub-blocks is the same, that is, the movement information of each sub-block of the current block may be exactly the same, that is, the sub-block movement information mode is not used for the current block ;

для текущего блока используется двунаправленное предсказание, и два опорных кадра, соответствующих текущему блоку, имеют одинаковый вес;the current block uses bidirectional prediction, and the two reference frames corresponding to the current block have the same weight;

для текущего блока не используется режим CIIP (англ. Combined Inter-Picture Merge and Intra-picture prediction, комбинированное слияние между разными изображениями и предсказание внутри одного изображения).For the current block, the CIIP mode (Combined Inter-Picture Merge and Intra-picture prediction, combined merging between different images and prediction within one image) is not used.

Вариант реализации 7. Характеристическую информацию текущего блока считают удовлетворяющей конкретному условию, если указанная характеристическая информация одновременно удовлетворяет по меньшей мере следующим условиям:Embodiment 7: The characteristic information of the current block is considered to satisfy a specific condition if the specified characteristic information simultaneously satisfies at least the following conditions:

для текущего блока используется двунаправленное предсказание, и два опорных кадра, соответствующих текущему блоку, получены с различных направлений, т.е., один опорный кадр, соответствующий текущему блоку, находится перед текущим сегментом, а другой опорный кадр, соответствующий текущему блоку, находится за текущим сегментом;for the current block, bidirectional prediction is used, and two reference frames corresponding to the current block are received from different directions, i.e., one reference frame corresponding to the current block is in front of the current segment, and the other reference frame corresponding to the current block is behind current segment;

информация о размере (например, значение ширины, значение высоты, значение площади) текущего блока лежит в ограниченном диапазоне;size information (for example, width value, height value, area value) of the current block lies in a limited range;

текущий блок содержит множество субблоков, и информация о перемещении субблоков во всем этом множестве субблоков одинакова, т.е., информация о перемещении каждого субблока текущего блока может быть точно одинаковой, т.е., режим информации о перемещении субблока не используется для текущего блока;the current block contains a plurality of sub-blocks, and the movement information of sub-blocks in all this plurality of sub-blocks is the same, that is, the movement information of each sub-block of the current block may be exactly the same, that is, the sub-block movement information mode is not used for the current block ;

для текущего блока используется двунаправленное предсказание, и два опорных кадра, соответствующих текущему блоку, имеют одинаковый вес;the current block uses bidirectional prediction, and the two reference frames corresponding to the current block have the same weight;

для текущего блока не используется режим SMVD (англ. Symmetric Motion Vector Difference, симметричная разность векторов перемещения). В информации о двунаправленном перемещении в режиме SMVD указанные две разности MVD симметричны, т.е., кодировать необходимо только одну разность MVD векторов перемещения, а другая разность равна -MVD.SMVD (Symmetric Motion Vector Difference) mode is not used for the current block. In the bidirectional movement information in the SMVD mode, these two MVD differences are symmetrical, that is, only one MVD difference of the movement vectors needs to be encoded, and the other difference is -MVD.

Вариант реализации 8. Характеристическую информацию текущего блока считают удовлетворяющей конкретному условию, если указанная характеристическая информация одновременно удовлетворяет по меньшей мере следующим условиям:Embodiment 8: The characteristic information of the current block is considered to satisfy a specific condition if the specified characteristic information simultaneously satisfies at least the following conditions:

информация управления переключением на уровне последовательности указывает, что для текущего блока разрешено использовать способ двунаправленного визуально плавного перемещения, иными словами, управление на уровне последовательности разрешает использование способа двунаправленного визуально плавного перемещения, т.е., переключатель управления на уровне последовательности включен, что означает, что для текущего блока разрешено использовать способ двунаправленного визуально плавного перемещения;The sequence level switching control information indicates that the current block is enabled to use the bidirectional visual smooth movement method, in other words, the sequence level control enables the use of the bidirectional visual smooth movement method, that is, the sequence level control switch is turned on, which means that the current block is allowed to use a bidirectional visually smooth movement method;

для текущего блока используется двунаправленное предсказание, и два опорных кадра, соответствующих текущему блоку, получены с различных направлений, т.е., один опорный кадр, соответствующий текущему блоку, находится перед текущим сегментом, а другой опорный кадр, соответствующий текущему блоку, находится за текущим сегментом;for the current block, bidirectional prediction is used, and two reference frames corresponding to the current block are received from different directions, i.e., one reference frame corresponding to the current block is in front of the current segment, and the other reference frame corresponding to the current block is behind current segment;

информация о размере текущего блока (например значение ширины, значение высоты, значение площади) лежит в ограниченном диапазоне;information about the size of the current block (for example, width value, height value, area value) lies in a limited range;

текущий блок содержит множество субблоков, и информация о перемещении субблоков во всем этом множестве субблоков одинакова, т.е., информация о перемещении каждого субблока текущего блока может быть точно одинаковой, т.е., режим информации о перемещении субблока не используется для текущего блока;the current block contains a plurality of sub-blocks, and the movement information of sub-blocks in all this plurality of sub-blocks is the same, that is, the movement information of each sub-block of the current block may be exactly the same, that is, the sub-block movement information mode is not used for the current block ;

для текущего блока используется двунаправленное предсказание, и два опорных кадра, соответствующих текущему блоку, имеют одинаковый вес.bidirectional prediction is used for the current block, and the two reference frames corresponding to the current block have the same weight.

Вариант реализации 9. Условие «для текущего блока используется двунаправленное предсказание, и указанные два опорных кадра, соответствующих текущему блоку, получены с различных направлений» в любой из вышеприведенных вариантов реализации 3-8 модифицировано следующим образом: «для текущего блока используется двунаправленное предсказание, и указанные два опорных кадра, соответствующих текущему блоку, получены с различных направлений, и указанные два опорных кадра, соответствующих текущему блоку, находятся на одинаковом расстоянии от текущего сегмента».Embodiment 9: The condition “bidirectional prediction is used for the current block, and the two reference frames corresponding to the current block are received from different directions” in any of the above embodiments 3 to 8 is modified as follows: “bidirectional prediction is used for the current block, and "said two reference frames corresponding to the current block are received from different directions, and said two reference frames corresponding to the current block are at the same distance from the current segment."

Например, если номер текущего сегмента в последовательности отображения равен РОС, а номера двух опорных кадров, соответствующих текущему блоку, в последовательности отображения равны, соответственно, РОС0 и РОС1, то условие того, что два опорных кадра получены с различных направлений, эквивалентно выражению (РОС-РОС0)*(РОС-РОС1)<0, а условие того, что расстояния между двумя опорными кадрами и текущим сегментом одинаковы, эквивалентно тому, что значение (РОС-РОС0) равно значению (РОС1-РОС).For example, if the number of the current segment in the display sequence is POC, and the numbers of the two reference frames corresponding to the current block in the display sequence are POC0 and POC1, respectively, then the condition that the two reference frames are received from different directions is equivalent to the expression (POC -POC0)*(POC-POC1)<0, and the condition that the distances between the two reference frames and the current segment are the same is equivalent to the value of (POC-POC0) being equal to the value of (POC1-POC).

Вариант реализации 10. Характеристическую информацию текущего блока считают удовлетворяющей конкретному условию, если указанная характеристическая информация удовлетворяет по меньшей мере следующим условиям:Embodiment 10: The characteristic information of the current block is considered to satisfy a specific condition if the specified characteristic information satisfies at least the following conditions:

информация управления переключением на уровне последовательности указывает, что для текущего блока разрешено использовать способ двунаправленного визуально плавного перемещения, иными словами, управление на уровне последовательности разрешает использование способа двунаправленного визуально плавного перемещения, т.е., переключатель управления на уровне последовательности включен, что означает, что для текущего блока разрешено использовать способ двунаправленного визуально плавного перемещения.The sequence level switching control information indicates that the current block is enabled to use the bidirectional visual smooth movement method, in other words, the sequence level control enables the use of the bidirectional visual smooth movement method, that is, the sequence level control switch is turned on, which means that the current block is allowed to use the bidirectional visually smooth movement method.

Вариант реализации 11. Характеристическую информацию текущего блока считают удовлетворяющей конкретному условию, если указанная характеристическая информация удовлетворяет по меньшей мере следующим условиям.Embodiment 11: The characteristic information of the current block is considered to satisfy a specific condition if the specified characteristic information satisfies at least the following conditions.

Для текущего блока используется двунаправленное предсказание, и разность между значениями предсказания двух опорных кадров, соответствующих текущему блоку, может быть меньше заранее заданного порогового значения TH_SAD. Для получения разности между значениями предсказания двух опорных кадров, соответствующих текущему блоку, может использоваться, например, следующий способ.Bidirectional prediction is used for the current block, and the difference between the prediction values of two reference frames corresponding to the current block may be less than a predetermined threshold value TH_SAD. To obtain the difference between the prediction values of two reference frames corresponding to the current block, for example, the following method can be used.

Вариант 1. Первый блок предсказания, соответствующий субблоку текущего блока из первого опорного кадра, получают на основании первой информации об однонаправленном перемещении текущего блока, второй блок предсказания, соответствующий субблоку текущего блока из второго опорного кадра, получают на основании второй информации об однонаправленном перемещении текущего блока, и разность между значениями предсказания первого опорного кадра и второго опорного кадра получают на основании суммы абсолютных значений разностей (англ. Sum of Absolute Difference, SAD) значения предсказания первого блока предсказания и значения предсказания второго блока предсказания.Option 1: A first prediction block corresponding to a sub-block of the current block from the first reference frame is obtained based on the first unidirectional movement information of the current block, a second prediction block corresponding to a sub-block of the current block from the second reference frame is obtained based on the second unidirectional movement information of the current block , and the difference between the prediction values of the first reference frame and the second reference frame is obtained based on the Sum of Absolute Difference (SAD) of the prediction value of the first prediction block and the prediction value of the second prediction block.

В варианте 1 разность между значениями предсказания равна SAD значения предсказания (далее pred0) первого блока предсказания и значения предсказания (далее pred1) второго блока предсказания, т.е., SAD значений pred0 и pred1 для всех пикселов. Разность между значениями предсказания первого опорного кадра и второго опорного кадра может определяться, например, по следующей формуле:In option 1, the difference between the prediction values is equal to the SAD of the prediction value (hereinafter pred0) of the first prediction block and the prediction value (hereinafter pred1) of the second prediction block, i.e., the SAD of the values pred0 and pred1 for all pixels. The difference between the prediction values of the first reference frame and the second reference frame may be determined, for example, by the following formula:

В этой формуле pred0(i,j) представляет собой значение в i-м столбце и j-й строке pred0, pred1(i,j) представляет собой значение в i-м столбце и j-й строке pred1, n представляет собой полное количество пикселов, abs(x) обозначает абсолютное значение х, Н представляет собой значение высоты и W представляет собой значение ширины.In this formula, pred 0 (i,j) represents the value in the i-th column and j-th row of pred0, pred 1 (i,j) represents the value in the i-th column and j-th row of pred1, n represents total number of pixels, abs(x) denotes the absolute value of x, H represents the height value, and W represents the width value.

Вариант 2. Первый блок предсказания, соответствующий субблоку текущего блока из первого опорного кадра, получают на основании первой информации об однонаправленном перемещении текущего блока, а второй блок предсказания, соответствующий субблоку текущего блока из второго опорного кадра, получают на основании второй информации об однонаправленном перемещении текущего блока. Разность между значениями предсказания первого опорного кадра и второго опорного кадра получают на основании SAD для огрубленного значения предсказания первого блока предсказания (т.е., значения предсказания, полученного огрублением значения предсказания первого блока предсказания) и огрубленного значения предсказания второго блока предсказания (т.е., значения предсказания, полученного огрублением значения предсказания второго блока предсказания).Option 2: A first prediction block corresponding to a sub-block of the current block from the first reference frame is obtained based on the first unidirectional movement information of the current block, and a second prediction block corresponding to a sub-block of the current block from the second reference frame is obtained based on the second unidirectional movement information of the current block. The difference between the prediction values of the first reference frame and the second reference frame is obtained based on the SAD for the coarse prediction value of the first prediction block (i.e., the prediction value obtained by coarsening the prediction value of the first prediction block) and the coarse prediction value of the second prediction block (i.e. ., prediction value obtained by coarsening the prediction value of the second prediction block).

В варианте 2 разность между значениями предсказания равна SAD для значения предсказания (далее pred0) первого блока предсказания после N-кратного огрубления и значения предсказания (далее pred1) второго блока предсказания после N-кратного огрубления. Например, разность между значениями предсказания первого опорного кадра и второго опорного кадра может определяться по следующей формуле:In option 2, the difference between the prediction values is equal to SAD for the prediction value (hereinafter pred0) of the first prediction block after N-fold coarsening and the prediction value (hereinafter pred1) of the second prediction block after N-fold coarsening. For example, the difference between the prediction values of the first reference frame and the second reference frame may be determined by the following formula:

В этой формуле pred0(i,j) представляет собой значение в i-м столбце и j-й строке pred0, pred1(i,j) представляет собой значение в i-м столбце и j-й строке pred1, n представляет собой полное количество пикселов, abs(x) обозначает абсолютное значение х, Н представляет собой значение высоты и W представляет собой значение ширины, N представляет собой положительное целое число, предпочтительно 2.In this formula, pred 0 (i,j) represents the value in the i-th column and j-th row of pred0, pred 1 (i,j) represents the value in the i-th column and j-th row of pred1, n represents total number of pixels, abs(x) denotes the absolute value of x, H represents the height value and W represents the width value, N represents a positive integer, preferably 2.

Вариант реализации 12. В вышеприведенном варианте реализации информация о размере текущего блока лежит в ограниченном диапазоне, что может быть представлено одним из следующих случаев.Embodiment 12 In the above embodiment, the size information of the current block lies in a limited range, which can be represented by one of the following cases.

Случай 1: значение ширины текущего блока лежит внутри первого интервала [Wmin, Wmax]; значение высоты текущего блока лежит внутри второго интервала [Hmin, Hmax]; каждое из значений Wmin, Wmax, Hmin, Hmax представляет собой число 2 в целой положительной степени, например, Wmin равно 8, Wmax равно 128, Hmin равно 8, Hmax равно 128.Case 1: the current block width value lies inside the first interval [Wmin, Wmax]; the height value of the current block lies inside the second interval [Hmin, Hmax]; each of the values Wmin, Wmax, Hmin, Hmax represents the number 2 to the positive integer power, for example, Wmin is 8, Wmax is 128, Hmin is 8, Hmax is 128.

Значение площади текущего блока лежит внутри третьего интервала [Smin, Smax]; каждое из значений Smin и Smax представляет собой число 2 в целой положительной степени, например, Smin равно 64 и Smax равно 128*128=16384.The area value of the current block lies inside the third interval [Smin, Smax]; each of the values Smin and Smax is the number 2 to the positive integer power, for example, Smin is 64 and Smax is 128*128=16384.

Здесь [а, b] обозначает интервал значений, больших или равных а и меньш их или равных b.Here [a, b] denotes the interval of values greater than or equal to a and less than or equal to b.

Случай 2: значение ширины текущего блока лежит внутри первого интервала [Wmin, Wmax]; каждое из значений Wmin и Wmax представляет собой число 2 в целой положительной степени, например, Wmin равно 8, Wmax равно 128.Case 2: the current block width value lies inside the first interval [Wmin, Wmax]; each of the values of Wmin and Wmax is the number 2 to the positive integer power, for example, Wmin is 8, Wmax is 128.

Случай 3: значение высоты текущего блока лежит внутри второго интервала [Hmin, Hmax]; каждое из значений Hmin и Hmax представляет собой число 2 в целой положительной степени, например, Hmin равно 8, Hmax равно 128.Case 3: the height value of the current block lies inside the second interval [Hmin, Hmax]; each of the values of Hmin and Hmax is the number 2 to the positive integer power, for example, Hmin is 8, Hmax is 128.

Веса двух опорных кадров, соответствующих текущему блоку, одинаковы, если выполнено, например, любое из следующих условий.The weights of two reference frames corresponding to the current block are the same if, for example, any of the following conditions are met.

Условие 1: для текущего блока не используется способ, допускающий различные веса.Condition 1: The current block does not use a method that allows different weights.

Условие 2: для текущего блока разрешен способ с различными весами, что, например, делает возможным использование способа взвешенного предсказания на уровне блока (англ. Bi-prediction with CU based weighting, BCW), но два веса текущего блока точно равны.Condition 2: a method with different weights is allowed for the current block, which, for example, makes it possible to use a weighted prediction method at the block level (English Bi-prediction with CU based weighting, BCW), but the two weights of the current block are exactly equal.

Условие 3: для текущего сегмента, в котором находится текущий блок, не используется способ с различными весами.Condition 3: For the current segment in which the current block is located, the method with different weights is not used.

Условие 4: для текущего сегмента, в котором находится текущий блок, разрешен способ с различными весами, что, например, делает возможным использование способа взвешенного предсказания на уровне кадра, но два веса текущего сегмента точно равны.Condition 4: For the current segment in which the current block is located, a method with different weights is allowed, which, for example, makes it possible to use a weighted frame-level prediction method, but the two weights of the current segment are exactly equal.

Вариант реализации 13. Кодирующая/декодирующая сторона должна на основании первой информации об однонаправленном перемещении текущего блока определять первое исходное значение предсказания субблока, а на основании второй информации об однонаправленном перемещении текущего блока определять второе исходное значение предсказания субблока. Например, на основании первой информации об однонаправленном перемещении текущего блока по первому опорному кадру определяют первый опорный блок, соответствующий субблоку текущего блока, и определяют первое исходное значение предсказания I(0)(х,у) первого опорного блока. На основании второй информации об однонаправленном перемещении текущего блока по второму опорному кадру определяют второй опорный блок, соответствующий субблоку текущего блока, и определяют второе исходное значение предсказания I(1)(х,у) второго опорного блока.Embodiment 13: The encoding/decoding side shall, based on the first unidirectional movement information of the current block, determine a first sub-block prediction initial value, and based on the second unidirectional movement information of the current block, determine a second sub-block prediction initial value. For example, based on the first information about the unidirectional movement of the current block on the first reference frame, a first reference block corresponding to a sub-block of the current block is determined, and a first initial prediction value I (0) (x,y) of the first reference block is determined. Based on the second information about the unidirectional movement of the current block along the second reference frame, a second reference block corresponding to a subblock of the current block is determined, and a second initial prediction value I (1) (x,y) of the second reference block is determined.

Например, на основании первой информации об однонаправленном перемещении текущего блока по первому опорному кадру определяют первый опорный блок, и определяют первое исходное значение предсказания I(0)(х,у) первого опорного блока. Первое исходное значение предсказания I(0)(х,у) центральной области первого опорного блока получают путем интерполирования значения пиксела в первом опорном кадре. Первое исходное значение предсказания I(0)(х,у) краевой области первого опорного блока получают путем копирования значения пиксела в первом опорном кадре. На основании второй информации об однонаправленном перемещении текущего блока по второму опорному кадру определяют второй опорный блок, и определяют второе исходное значение предсказания I(1)(х,у) второго опорного блока. Второе исходное значение предсказания I(1)(х,у) центральной области второго опорного блока получают путем интерполирования значения пиксела во втором опорном кадре. Второе исходное значение предсказания I(1)(х,у) краевой области второго опорного блока получают путем копирования значения пиксела во втором опорном кадре.For example, based on the first information about the unidirectional movement of the current block along the first reference frame, a first reference block is determined, and a first initial prediction value I (0) (x,y) of the first reference block is determined. The first initial prediction value I (0) (x,y) of the central region of the first reference block is obtained by interpolating the value of a pixel in the first reference frame. The first initial prediction value I (0) (x,y) of the edge region of the first reference block is obtained by copying the pixel value in the first reference frame. Based on the second information about the unidirectional movement of the current block along the second reference frame, a second reference block is determined, and a second initial prediction value I (1) (x,y) of the second reference block is determined. The second initial prediction value I (1) (x,y) of the central region of the second reference block is obtained by interpolating the pixel value in the second reference frame. The second initial prediction value I (1) (x,y) of the edge region of the second reference block is obtained by copying the pixel value in the second reference frame.

Если, обратившись к фиг. 4, предположить, что размер субблока равен 4*4, а размер первого опорного блока равен 6*6, то центральной областью первого опорного блока является область размера 4*4 с центром в центральной точке первого опорного блока, и первое исходное значение предсказания центральной области первого опорного блока получают путем интерполирования значения пиксела в первом опорном кадре, что здесь не повторяется. Краевой областью первого опорного блока является область в первом опорном блоке, отличная от центральной области (т.е., область, образованная одной строкой и одним столбцом, соответственно, в верхней, нижней, левой и правой частях этого блока, не включающая в себя центральную область). Первое исходное значение предсказания краевой области первого опорного блока получают путем копирования значения пиксела в первом опорном кадре. Как показано на фиг. 4, в краевую область первого опорного блока копируют значения пикселов в первом опорном кадре. Должно быть понятно, что фиг. 4 представляет собой лишь пример, и для копирования также могут использоваться значения других пикселов.If, referring to FIG. 4, assume that the size of the sub-block is 4*4 and the size of the first reference block is 6*6, then the central region of the first reference block is a region of size 4*4 centered at the center point of the first reference block, and the first initial value of the prediction of the central region the first reference block is obtained by interpolating the pixel value in the first reference frame, which is not repeated here. The edge region of the first reference block is the region in the first reference block other than the central region (i.e., the region formed by one row and one column, respectively, in the top, bottom, left and right parts of this block, not including the central region). The first initial edge region prediction value of the first reference block is obtained by copying the value of a pixel in the first reference frame. As shown in FIG. 4, the pixel values in the first reference frame are copied into the edge region of the first reference block. It should be clear that FIG. 4 is just an example, and other pixel values can also be used for copying.

Должно быть понятно, что в вышеописанном способе для краевой области первого опорного блока значение может быть получено путем копирования значения ближайшего в пиксельной сетке с целочисленным базисом пиксела в первом опорном кадре, что позволяет избежать дополнительной операции интерполяции и опосредованно избежать обращения к дополнительным опорным пикселам.It should be understood that in the above method, for the edge region of the first reference block, the value can be obtained by copying the value of the nearest one in the pixel grid with an integer pixel basis in the first reference frame, thereby avoiding the additional interpolation operation and indirectly avoiding access to additional reference pixels.

В качестве операции получения второго исходного значения предсказания для второго исходного значения предсказания центральной области второго опорного блока и второго исходного значения предсказания краевой области второго опорного блока можно использовать операцию получения первого исходного значения предсказания, которая здесь не повторяется.As the operation of obtaining a second prediction original value for the second prediction initial value of the center region of the second reference block and the second prediction original value of the edge region of the second reference block, the operation of obtaining the first prediction original value, which is not repeated here, can be used.

Например, на основании первой информации об однонаправленном перемещении текущего блока по первому опорному кадру определяют первый опорный блок, и определяют первое исходное значение предсказания первого опорного блока. Первое исходное значение предсказания первого опорного блока полностью получают путем интерполирования значения пиксела в первом опорном кадре. На основании второй информации об однонаправленном перемещении текущего блока по второму опорному кадру определяют второй опорный блок, и определяют второе исходное значение предсказания второго опорного блока. Второе исходное значение предсказания второго опорного блока получают путем интерполирования значения пиксела во втором опорном кадре. Например, можно предположить, что размер субблока равен 4*4, размер первого опорного блока равен 4*4 и размер второго опорного блока равен 4*4. Первое исходное значение предсказания всех областей первого опорного блока получают путем интерполирования значения пиксела в первом опорном кадре. Первое исходное значение предсказания всех областей второго опорного блока получают путем интерполирования значения пиксела в первом опорном кадре.For example, based on the first information about the unidirectional movement of the current block on the first reference frame, a first reference block is determined, and a first initial prediction value of the first reference block is determined. The first initial prediction value of the first reference block is obtained entirely by interpolating the value of a pixel in the first reference frame. Based on the second information about the unidirectional movement of the current block on the second reference frame, a second reference block is determined, and a second initial prediction value of the second reference block is determined. The second initial prediction value of the second reference block is obtained by interpolating the value of a pixel in the second reference frame. For example, one may assume that the subblock size is 4*4, the first reference block size is 4*4, and the second reference block size is 4*4. The first initial prediction value of all regions of the first reference block is obtained by interpolating the value of a pixel in the first reference frame. The first initial prediction value of all regions of the second reference block is obtained by interpolating the value of a pixel in the first reference frame.

Вариант реализации 14. После получения первого исходного значения предсказания субблока и второго исходного значения предсказания субблока кодирующая/декодирующая сторона на основании первого исходного значения предсказания и второго исходного значения предсказания указанного субблока определяет сумму горизонтального градиента, сумму вертикального градиента и разность значений предсказания во временной области. Сумма горизонтального градиента, сумма вертикального градиента и разность значений предсказания во временной области определяются, например, на основании первого исходного значения предсказания субблока, второго исходного значения предсказания субблока, первого коэффициента увеличения и второго коэффициента увеличения. Например, сумма горизонтального градиента определяется по формуле (1), сумма вертикального градиента определяется по формуле (2), а разность значения предсказания во временной области определяется по формуле (3).Embodiment 14: After obtaining the first sub-block prediction original value and the second sub-block prediction original value, the encoding/decoding side, based on the first prediction original value and the second prediction original value of the sub-block, determines the horizontal gradient sum, the vertical gradient sum and the time domain prediction value difference. The horizontal gradient sum, the vertical gradient sum, and the time domain prediction value difference are determined, for example, based on the first sub-block prediction original value, the second sub-block prediction original value, the first magnification factor, and the second magnification factor. For example, the horizontal gradient sum is determined by Formula (1), the vertical gradient sum is determined by Formula (2), and the time domain prediction value difference is determined by Formula (3).

В этих формулах представляет собой горизонтальный градиент, представляет собой вертикальный градиент. Параметры в формулах (1)-(3) могут определяться по формулам (4) и (5):In these formulas represents a horizontal gradient, represents a vertical gradient. Options in formulas (1)-(3) can be determined by formulas (4) and (5):

ψx(i,j) представляет собой сумму горизонтального градиента, ψy(i,j) представляет собой сумму вертикального градиента, a θ(i,j) представляет собой разность значений предсказания во временной области.ψ x (i,j) is the sum of the horizontal gradient, ψ y (i,j) is the sum of the vertical gradient, and θ(i,j) is the difference of the time domain prediction values.

I(0)(х,у) представляет собой первое исходное значение предсказания субблока, а I(1)(х,у) представляет собой второе исходное значение предсказания указанного субблока. Если предположить, что размер субблока равен 4*4 (см. вариант реализации 13), то I(0)(х,у) представляет собой первое исходное значение предсказания первого опорного блока с размером 4*4 или первое исходное значение предсказания первого опорного блока с размером 6*6; I(1)(х,у) представляет собой второе исходное значение предсказания второго опорного блока с размером 4*4 или второе исходное значение предсказания второго опорного блока с размером 6*6. Например, I(0)(х,у) представляет собой первое исходное значение предсказания первого опорного блока с размером 4*4, I(1)(х,у) представляет собой второе исходное значение предсказания второго опорного блока с размером 4*4. I(k)(i,j) представляет собой значение пиксела с координатами (i,j). Например, I(0)(i,j) представляет собой значение пиксела с координатами (i,j) в первом опорном блоке, которое соответствует первому исходному значению предсказания субблока; I(1)(i,j) представляет собой значение пиксела с координатами (i,j) во втором опорном блоке, которое соответствует второму исходному значению предсказания субблока.I (0) (x,y) represents a first prediction seed value of a subblock, and I (1) (x,y) represents a second prediction seed value of said subblock. Assuming that the subblock size is 4*4 (see Embodiment 13), then I (0) (x,y) represents the first prediction seed value of the first reference block with size 4*4 or the first prediction seed value of the first reference block with size 6*6; I (1) (x,y) represents the second prediction source value of the second reference block with size 4*4 or the second prediction source value of the second reference block with size 6*6. For example, I (0) (x,y) is the first prediction seed value of the first reference block with size 4*4, I (1) (x,y) is the second prediction seed value of the second reference block with size 4*4. I (k) (i,j) represents the value of the pixel with coordinates (i,j). For example, I (0) (i,j) is a pixel value with coordinates (i,j) in the first reference block that corresponds to the first sub-block prediction source value; I (1) (i,j) represents a pixel value with coordinates (i,j) in the second reference block, which corresponds to the second sub-block prediction source value.

n a представляет собой первый коэф фициент увеличения, который может быть равным меньшему из 5 и (BD-7) или большему из 1 и (BD-11). nb представляет собой второй коэффициент увеличения, который может быть равным меньшему из 8 и (BD-4) или большему из 4 и (BD-8). shiƒt1 представляет собой количество битов сдвига градиента вправо, которое может быть равным большему из 2 и (14-BD) или большему из 6 и (BD-6).n a represents the first magnification factor, which can be the lesser of 5 and (BD-7) or the greater of 1 and (BD-11). n b represents the second magnification factor, which may be the lesser of 8 and (BD-4) or the greater of 4 and (BD-8). shiƒt1 represents the number of gradient right shift bits, which can be the greater of 2 and (14-BD) or the greater of 6 and (BD-6).

Символом >> обозначен сдвиг вправо. Например, >>n a обозначает сдвиг вправо n a раз, т.е., деление на 2 в степени n a . >>nb обозначает сдвиг вправо на nb, т.е., деление на 2 в степени nb.>> shiƒt1 обозначает сдвиг вправо на shiƒt1, т.е., деление на 2 в степени shiƒt1.The >> symbol indicates a shift to the right. For example, >>n a means shift to the right n a times, i.e., division by 2 to the power of n a . >>n b denotes a shift to the right by n b , i.e., division by 2 to the power of n b . >> shiƒt1 denotes a shift to the right by shiƒt1, i.e., division by 2 to the power of shiƒt1.

BD может представлять собой битовую глубину, т.е., количество битов, необходимую для представления каждого из значений цветности или яркости пиксела. Например, BD может быть равна 10 или 8. Обычно значение BD известно.BD may represent a bit depth, i.e., the number of bits required to represent each of the chrominance or luminance values of a pixel. For example, BD can be 10 or 8. Usually the value of BD is known.

Вариант реализации 15. После получения суммы горизонтального градиента, суммы вертикального градиента и разности значений предсказания во временной области кодирующая/декодирующая сторона также может на основании суммы горизонтального градиента, суммы вертикального градиента и разности значений предсказания во временной области определять коэффициент S1 автокорреляции суммы горизонтального градиента (далее называемый коэффициентом S1 автокорреляции), коэффициент S2 взаимной корреляции между суммой горизонтального градиента и суммой вертикального градиента (далее называемый коэффициентом S2 взаимной корреляции), коэффициент S3 взаимной корреляции между разностью значений предсказания во временной области и суммой горизонтального градиента (далее называемый коэффициентом S3 взаимной корреляции), коэффициент S5 автокорреляции суммы вертикального градиента (далее называемый коэффициентом S5 автокорреляции) и коэффициент S6 взаимной корреляции между разностью значений предсказания во временной области и суммой вертикального градиента (далее называемый коэффициентом S6 взаимной корреляции). Коэффициент S1 автокорреляции, коэффициент S2 взаимной корреляции, коэффициент S3 взаимной корреляции, коэффициент S5 автокорреляции и коэффициент S6 взаимной корреляции могут определяться, например, по следующим формулам:Embodiment 15: After obtaining the horizontal gradient sum, the vertical gradient sum, and the time domain prediction value difference, the encoding/decoding side can also determine the horizontal gradient sum autocorrelation coefficient S1 based on the horizontal gradient sum, the vertical gradient sum, and the time domain prediction value difference ( hereinafter referred to as the autocorrelation coefficient S1), the cross-correlation coefficient S2 between the horizontal gradient sum and the vertical gradient sum (hereinafter referred to as the cross-correlation coefficient S2), the cross-correlation coefficient S3 between the difference of the time domain prediction values and the horizontal gradient sum (hereinafter referred to as the cross-correlation coefficient S3 ), the autocorrelation coefficient S5 of the vertical gradient sum (hereinafter referred to as the autocorrelation coefficient S5), and the cross-correlation coefficient S6 between the difference of the time domain prediction values and the vertical gradient sum (hereinafter referred to as the cross-correlation coefficient S6). The autocorrelation coefficient S1, the cross-correlation coefficient S2, the cross-correlation coefficient S3, the autocorrelation coefficient S5 and the cross-correlation coefficient S6 can be determined, for example, by the following formulas:

ψx(i,j) представляет собой сумму горизонтального градиента, ψy(i,j) представляет собой сумму вертикального градиента, a θ(i,j) представляет собой разность значений предсказания во временной области.ψ x (i,j) is the sum of the horizontal gradient, ψ y (i,j) is the sum of the vertical gradient, and θ(i,j) is the difference of the time domain prediction values.

Если предположить, что размер субблока равен 4*4, то Ω представляет собой окно, соответствующее субблоку 4*4, или окно 6*6 вокруг субблока 4*4. Для каждой точки с координатами (i,j) в Ω можно вначале по вышеприведенным формулам определять ψx(i,j), ψy(i,j) и θ(i,j), а затем на основании ψx(i,j), ψy(i,j) и θ(i,j) могут определяться коэффициенты S1, S2, S3, S5, S6.If we assume that the subblock size is 4*4, then Ω represents the window corresponding to the 4*4 subblock, or the 6*6 window around the 4*4 subblock. For each point with coordinates (i,j) in Ω, you can first determine ψ x (i,j), ψ y (i,j) and θ(i,j) using the above formulas, and then based on ψ x (i, j), ψ y (i,j) and θ(i,j) coefficients S1, S2, S3, S5, S6 can be determined.

Вариант реализации 16. Получив коэффициент S2 взаимной корреляции и коэффициент S6 взаимной корреляции, можно ограничивать коэффициент S2 взаимной корреляции между первым пороговым значением коэффициента взаимной корреляции и вторым пороговым значением коэффициента взаимной корреляции. Например, коэффициент S2 взаимной корреляции, если он меньше первого порогового значения коэффициента взаимной корреляции, могут делать равным первому пороговому значению коэффициента взаимной корреляции. Коэффициент S2 взаимной корреляции, если он больше второго порогового значения коэффициента взаимной корреляции, могут делать равным второму пороговому значению коэффициента взаимной корреляции. Коэффициент S6 взаимной корреляции могут ограничивать между третьим пороговым значением коэффициента взаимной корреляции и четвертым пороговым значением коэффициента взаимной корреляции. Например, коэффициент S6 взаимной корреляции, если он меньше третьего порогового значения коэффициента взаимной корреляции, могут делать равным третьему пороговому значению коэффициента взаимной корреляции. Коэффициент S6 взаимной корреляции, если он больше четвертого порогового значения коэффициента взаимной корреляции, могут делать равным четвертому пороговому значению коэффициента взаимной корреляции. Первое пороговое значение коэффициента взаимной корреляции может быть меньше второго порогового значения коэффициента взаимной корреляции, а третье пороговое значение коэффициента взаимной корреляции может быть меньше четвертого порогового значения коэффициента взаимной корреляции.Embodiment 16: After obtaining the cross-correlation coefficient S2 and the cross-correlation coefficient S6, it is possible to limit the cross-correlation coefficient S2 between the first cross-correlation coefficient threshold value and the second cross-correlation coefficient threshold value. For example, the cross-correlation coefficient S2, if less than the first cross-correlation coefficient threshold value, may be made equal to the first cross-correlation coefficient threshold value. The cross-correlation coefficient S2, if greater than the second cross-correlation coefficient threshold value, may be made equal to the second cross-correlation coefficient threshold value. The cross-correlation coefficient S6 may be limited between a third cross-correlation coefficient threshold value and a fourth cross-correlation coefficient threshold value. For example, the cross-correlation coefficient S6, if it is smaller than the third cross-correlation coefficient threshold value, may be made equal to the third cross-correlation coefficient threshold value. The cross-correlation coefficient S6, if greater than the fourth cross-correlation coefficient threshold value, may be made equal to the fourth cross-correlation coefficient threshold value. The first cross-correlation coefficient threshold value may be less than the second cross-correlation coefficient threshold value, and the third cross-correlation coefficient threshold value may be less than the fourth cross-correlation coefficient threshold value.

Например, чтобы избежать переполнения при получении промежуточных результатов, т.е., для того, чтобы битовая ширина не превосходила определенный диапазон, коэффициент S2 взаимной корреляции и коэффициент S6 взаимной корреляции могут подвергаться размерным ограничениям в соответствии с нижеприведенными формулами. В них -(1<<THS2) представляет собой первое пороговое значение коэффициента взаимной корреляции, 1<<THS2 представляет собой второе пороговое значение коэффициента взаимной корреляции, -(1<<THS6) представляет собой третье пороговое значение коэффициента взаимной корреляции и 1<<THS6 представляет собой четвертое пороговое значение коэффициента взаимной корреляции. Например, чтобы количество битов не превосходило 32, THS2 может быть задано равным 25, а THS6 равным 27. Разумеется, вышеуказанные значения представляют собой лишь несколько примеров, которыми настоящее изобретение не ограничивается.For example, to avoid overflow when obtaining intermediate results, ie, to ensure that the bit width does not exceed a certain range, the cross-correlation coefficient S2 and the cross-correlation coefficient S6 may be subject to size restrictions in accordance with the following formulas. In these, -(1<<THS2) represents the first threshold value of the cross-correlation coefficient, 1<<THS2 represents the second threshold value of the cross-correlation coefficient, -(1<<THS6) represents the third threshold value of the cross-correlation coefficient, and 1<< THS6 represents the fourth cross-correlation coefficient threshold value. For example, to keep the number of bits within 32, THS2 can be set to 25 and THS6 to 27. Of course, the above values are just a few examples to which the present invention is not limited.

В этих формулах при х меньше a Clip3(a, b, х)=а; при х больше b Clip3(a, b, x)=b; при x большем или равном а и меньшем или равном b Clip3(a, b, х)=х. Таким образом, формула (11) означает, что если S2 меньше -(1<<THS2), то для S2 задают значение -(1<<THS2); если S2 больше (1<<THS2), то для S2 задают значение (1<<THS2), а в остальных случаях S2 оставляют неизменным. Аналогично, формула (12) означает, что если S6 меньше (1<<THS6), то для S6 задают значение -(1<<THS6); если S6 больше (1<<THS6), то для S6 задают значение (1<<THS6), а в остальных случаях S6 оставляют неизменным. Символ << обозначает сдвиг влево.In these formulas, for x less than a Clip3(a, b, x) = a; when x is greater than b Clip3(a, b, x)=b; for x greater than or equal to a and less than or equal to b Clip3(a, b, x)=x. Thus, formula (11) means that if S 2 is less than -(1<<THS2), then the value for S 2 is set to -(1<<THS2); if S 2 is greater than (1<<THS2), then the value for S 2 is set to (1<<THS2), and in other cases S 2 is left unchanged. Similarly, formula (12) means that if S 6 is less than (1<<THS6), then the value for S 6 is set to -(1<<THS6); if S 6 is greater than (1<<THS6), then the value for S 6 is set to (1<<THS6), and in other cases S 6 is left unchanged. The << symbol indicates shift left.

Вариант реализации 17. После получения коэффициента S1 автокорреляции, коэффициента S2 взаимной корреляции, коэффициента S3 взаимной корреляции, коэффициента S5 автокорреляции и коэффициента S6 взаимной корреляции можно на основании одного или более из этих коэффициента S1 автокорреляции, коэффициента S2 взаимной корреляции, коэффициента S3 взаимной корреляции, коэффициента S5 автокорреляции и коэффициента S6 взаимной корреляции определить горизонтальную скорость субблока текущего блока в опорном кадре. Вертикальную скорость субблока, соответствующего субблоку текущего блока в опорном кадре, можно определять на основании одного или более из этих коэффициента S1 автокорреляции, коэффициента S2 взаимной корреляции, коэффициента S3 взаимной корреляции, коэффициента S5 автокорреляции и коэффициента S6 взаимной корреляции.Embodiment 17: After obtaining the autocorrelation coefficient S1, the cross-correlation coefficient S2, the cross-correlation coefficient S3, the autocorrelation coefficient S5 and the cross-correlation coefficient S6, it is possible, based on one or more of the autocorrelation coefficient S1, the cross-correlation coefficient S2, the cross-correlation coefficient S3, autocorrelation coefficient S5 and cross-correlation coefficient S6 determine the horizontal speed of the sub-block of the current block in the reference frame. The vertical speed of a sub-block corresponding to a sub-block of the current block in the reference frame can be determined based on one or more of the auto-correlation coefficient S1, the cross-correlation coefficient S2, the cross-correlation coefficient S3, the auto-correlation coefficient S5 and the cross-correlation coefficient S6.

Например, горизонтальная скорость может определяться на основании коэффициента S1 автокорреляции, порогового значения скорости, коэффициента S3 взаимной корреляции, первого коэффициента увеличения и второго коэффициента увеличения. Пример определения горизонтальной скорости на основании вышеприведенных параметров представляет следующая формула:For example, the horizontal speed may be determined based on the autocorrelation coefficient S1, the speed threshold, the cross-correlation coefficient S3, the first magnification factor, and the second magnification factor. An example of determining horizontal speed based on the above parameters is the following formula:

Согласно этой формуле, если S1>0, то в противном случае vx=0. vx представляет собой горизонтальную скорость, представляет собой пороговое значение скорости, задаваемое для ограничения горизонтальной скорости vx между т.е., горизонтальная скорость vx больше или равна и меньше или равна Пороговое значение скорости может быть равным 2 в степени М, где М представляет собой разность между 13 и BD, или может быть равным большему из 5 и (BD-7), например, или где BD представляет собой битовую глубину.According to this formula, if S1>0, then otherwise vx=0. vx represents the horizontal speed, represents the speed threshold set to limit the horizontal speed vx between i.e., horizontal speed vx greater than or equal to and less than or equal to Threshold value speed may be equal to 2 to the power of M, where M is the difference between 13 and BD, or may be equal to the greater of 5 and (BD-7), e.g. or where BD represents the bit depth.

n a представляет собой первый коэффициент увеличения, который может быть равным меньшему из 5 и (BD-7) или большему из 1 и (BD-11). nb представляет собой второй коэффициент увеличения, который может быть равным меньшему из 8 и (BD-4) или большему из 4 и (BD-8). Символ >> обозначает сдвиг вправо, обозначает округление вниз.n a represents the first magnification factor, which may be the lesser of 5 and (BD-7) or the greater of 1 and (BD-11). n b represents the second magnification factor, which may be the lesser of 8 and (BD-4) or the greater of 4 and (BD-8). The symbol >> denotes a shift to the right, denotes rounding down.

Как первый коэффициент n a увеличения, так и второй коэффициент nb увеличения могут задаваться в соответствии с опытом, и второй коэффициент nb увеличения может быть больше первого коэффициента n a увеличения. Первый коэффициент n a увеличения и второй коэффициент nb увеличения задаются с целью увеличения интервала значений горизонтальной скорости vx. Например, если nb-n a равно 3, то равно 8 и интервал значений горизонтальной скорости vs может быть увеличен в 8 раз; а если nb-n a равно 4, то равно 16 и интервал значений горизонтальной скорости vx может быть увеличен в 16 раз, и т.п.Both the first magnification factor n a and the second magnification factor n b may be set in accordance with experience, and the second magnification factor n b may be larger than the first magnification factor n a . The first magnification factor n a and the second magnification factor n b are set to increase the range of values of the horizontal velocity v x . For example, if n b -n a is 3, then is equal to 8 and the range of values of the horizontal speed v s can be increased by 8 times; and if n b -n a is equal to 4, then is equal to 16 and the range of values of the horizontal velocity v x can be increased by 16 times, etc.

В формуле (13) при х меньше a Clip3(a, b, х)=а; при х больше b Clip3(a, b, x)=b; при x большем или равном а и меньшем или равном b Clip3(a, b, х)=х. в вышеприведенной формуле представляет собой a, представляет собой b, представляет собой х. Таким образом, если больше и меньше то горизонтальная скорость vx равна In formula (13) for x less than a Clip3(a, b, x)=a; when x is greater than b Clip3(a, b, x)=b; for x greater than or equal to a and less than or equal to b Clip3(a, b, x)=x. in the above formula represents a, represents b, represents x. Thus, if more and less then the horizontal speed v x is equal to

Например, вертикальная скорость может определяться на основании коэффициента S2 взаимной корреляции, коэффициента S5 автокорреляции, коэффициента S6 взаимной корреляции, порогового значения скорости, горизонтальной скорости, первого коэффициента увеличения и второго коэффициента увеличения по следующей формуле:For example, the vertical speed may be determined based on the cross-correlation coefficient S2, the auto-correlation coefficient S5, the cross-correlation coefficient S6, the speed threshold value, the horizontal speed, the first magnification factor and the second magnification factor according to the following formula:

Из вышеприведенной формулы можно видеть, что если S5>0, то в противном случае vy=0.From the above formula you can see that if S 5 >0, then otherwise v y =0.

vy представляет собой вертикальную скорость, vx представляет собой горизонтальную скорость, представляет собой пороговое значение скорости, задаваемое для ограничения вертикальной скорости между и т.е., вертикальная скорость больше или равна и меньше или равна Пороговое значение скорости может быть равным 2 в степени М, где М представляет собой разность между 13 и BD, или может быть равным большему из 5 и (BD-7), Например, где BD представляет собой битовую глубину.v y represents the vertical speed, v x represents the horizontal speed, is the speed threshold set to limit the vertical speed between And i.e., the vertical speed is greater than or equal to and less than or equal to Threshold value speed may be equal to 2 to the power of M, where M is the difference between 13 and BD, or may be equal to the greater of 5 and (BD-7), For example, where BD represents the bit depth.

n a представляет собой первый коэффициент увеличения, который может быть равным меньшему из 5 и (BD-7) или большему из 1 и (BD-11). nb представляет собой второй коэффициент увеличения, который может быть равным меньшему из 8 и (BD-4) или большему из 4 и (BD-8). Символ >> обозначает сдвиг вправо, обозначает округление вниз.n a represents the first magnification factor, which may be the lesser of 5 and (BD-7) or the greater of 1 and (BD-11). n b represents the second magnification factor, which may be the lesser of 8 and (BD-4) or the greater of 4 and (BD-8). The symbol >> denotes a shift to the right, denotes rounding down.

Как первый коэффициент n a увеличения, так и второй коэффициент nb увеличения могут задаваться в соответствии с опытом, и второй коэффициент nb увеличения может быть больше первого коэффициента n a увеличения. Первый коэффициент n a увеличения и второй коэффициент nb увеличения задаются с целью увеличения интервала значений вертикальной скорости vy. Например, если nb-n a равно 3, то равно 8 и интервал значений вертикальной скорости vy может быть увеличен в 8 раз; а если nb-n a равно 4, то равно 16 и интервал значений вертикальной скорости % может быть увеличен в 16 раз, и т.п.Both the first magnification factor n a and the second magnification factor n b may be set in accordance with experience, and the second magnification factor n b may be larger than the first magnification factor n a . The first magnification factor n a and the second magnification factor n b are set in order to increase the range of values of the vertical velocity v y . For example, if n b -n a is 3, then is equal to 8 and the interval of values of vertical velocity v y can be increased by 8 times; and if n b -n a is equal to 4, then is equal to 16 and the range of vertical speed values % can be increased by 16 times, etc.

В формуле (14) при х меньше a Clip3(a, b, х)=а; при х больше b Clip3(a, b, x)=b; при x большем или равном а и меньшем или равном b Clip3(a, b, х)=х. в вышеприведенной формуле представляет собой а, представляет собой b, представляет собой х. Таким образом, если больше и меньше то вертикальная скорость vy равна In formula (14) for x less than a Clip3(a, b, x)=a; when x is greater than b Clip3(a, b, x)=b; for x greater than or equal to a and less than or equal to b Clip3(a, b, x)=x. in the above formula represents a, represents b, represents x. Thus, if more and less then the vertical speed v y is equal to

Например, в вышеприведенной формуле For example, in the above formula

Вариант реализации 18. После получения коэффициента S1 автокорреляции, коэффициента S2 взаимной корреляции, коэффициента S3 взаимной корреляции, коэффициента S5 автокорреляции и коэффициента S6 взаимной корреляции можно на основании одного или более из этих коэффициента S1 автокорреляции, коэффициента S2 взаимной корреляции, коэффициента S3 взаимной корреляции, коэффициента S5 автокорреляции и коэффициента S6 взаимной корреляции определить горизонтальную скорость субблока, соответствующего субблоку текущего блока в опорном кадре. Вертикальную скорость субблока, соответствующего субблоку текущего блока в опорном кадре, можно определять на основании одного или более из этих коэффициента S1 автокорреляции, коэффициента S2 взаимной корреляции, коэффициента S3 взаимной корреляции, коэффициента S5 автокорреляции и коэффициента S6 взаимной корреляции.Embodiment 18: After obtaining the autocorrelation coefficient S1, cross-correlation coefficient S2, cross-correlation coefficient S3, autocorrelation coefficient S5 and cross-correlation coefficient S6, it is possible, based on one or more of these autocorrelation coefficient S1, cross-correlation coefficient S2, cross-correlation coefficient S3, autocorrelation coefficient S5 and cross-correlation coefficient S6 determine the horizontal speed of the sub-block corresponding to the sub-block of the current block in the reference frame. The vertical speed of a sub-block corresponding to a sub-block of the current block in the reference frame can be determined based on one or more of the auto-correlation coefficient S1, the cross-correlation coefficient S2, the cross-correlation coefficient S3, the auto-correlation coefficient S5 and the cross-correlation coefficient S6.

Например, горизонтальная скорость может определяться на основании коэффициента S1 автокорреляции, порогового значения скорости, коэффициента S3 взаимной корреляции, первого коэффициента увеличения и второго коэффициента увеличения. Пример определения горизонтальной скорости на основании вышеприведенных параметров представляет следующая формула:For example, the horizontal speed may be determined based on the autocorrelation coefficient S1, the speed threshold, the cross-correlation coefficient S3, the first magnification factor, and the second magnification factor. An example of determining horizontal speed based on the above parameters is the following formula:

По сравнению с формулой (13), в формуле (15) убран минус перед а остальное ее содержание и смысл каждого параметра такие же, как в формуле (13), и их описание здесь не повторяется.Compared to formula (13), in formula (15) the minus in front of and the rest of its content and the meaning of each parameter are the same as in formula (13), and their description is not repeated here.

Например, вертикальная скорость может определяться на основании коэффициента S2 взаимной корреляции, коэффициента S5 автокорреляции, коэффициента S6 взаимной корреляции, порогового значения скорости, горизонтальной скорости, первого коэффициента увеличения и второго коэффициента увеличения по следующей формуле:For example, the vertical speed may be determined based on the cross-correlation coefficient S2, the auto-correlation coefficient S5, the cross-correlation coefficient S6, the speed threshold value, the horizontal speed, the first magnification factor and the second magnification factor according to the following formula:

По сравнению с формулой (14), в формуле (16) убран минус перед а остальное ее содержание и смысл каждого параметра такие же, как в формуле (14), и их описание здесь не повторяется.Compared to formula (14), in formula (16) the minus in front of and the rest of its content and the meaning of each parameter are the same as in formula (14), and their description is not repeated here.

Вариант реализации 19. После получения коэффициента S1 автокорреляции, коэффициента S2 взаимной корреляции, коэффициента S3 взаимной корреляции, коэффициента S5 автокорреляции и коэффициента S6 взаимной корреляции можно на основании одного или более из этих коэффициента S1 автокорреляции, коэффициента S2 взаимной корреляции, коэффициента S3 взаимной корреляции, коэффициента S5 автокорреляции и коэффициента S6 взаимной корреляции определить горизонтальную скорость субблока, соответствующего субблоку текущего блока в опорном кадре.Embodiment 19: After obtaining the autocorrelation coefficient S1, the cross-correlation coefficient S2, the cross-correlation coefficient S3, the autocorrelation coefficient S5 and the cross-correlation coefficient S6, it is possible, based on one or more of the autocorrelation coefficient S1, the cross-correlation coefficient S2, the cross-correlation coefficient S3, autocorrelation coefficient S5 and cross-correlation coefficient S6 determine the horizontal speed of the sub-block corresponding to the sub-block of the current block in the reference frame.

Например, если первое заранее заданное условие выполнено, то горизонтальная скорость может определяться на основании коэффициента S2 взаимной корреляции, порогового значения скорости, коэффициента S6 взаимной корреляции, первого коэффициента увеличения и второго коэффициента увеличения. Если же первое заранее заданное условие не выполнено, то горизонтальная скорость может определяться на основании коэффициента S1 автокорреляции, порогового значения скорости, коэффициента S3 взаимной корреляции, первого коэффициента увеличения и второго коэффициента увеличения. Первое заранее заданное условие определяют на основании коэффициента S2 взаимной корреляции и коэффициента S5 автокорреляции, как показано в нижеприведенной формуле.For example, if the first predetermined condition is satisfied, the horizontal speed may be determined based on the cross-correlation coefficient S2, the speed threshold value, the cross-correlation coefficient S6, the first magnification factor, and the second magnification factor. If the first predetermined condition is not satisfied, the horizontal speed may be determined based on the autocorrelation coefficient S1, the speed threshold value, the cross-correlation coefficient S3, the first magnification factor and the second magnification factor. The first predetermined condition is determined based on the cross-correlation coefficient S2 and the auto-correlation coefficient S5, as shown in the following formula.

Если первое заранее заданное условие выполнено, тоIf the first predetermined condition is met, then

если же первое заранее заданное условие не выполнено, тоif the first predetermined condition is not met, then

Вышеупомянутое первое заранее заданное условие может содержать условие |S2|>k|S5|, где обозначает абсолютное значение, k представляет собой пороговое значение, которое может задаваться произвольно, например, равным 8. S2==0? в формуле (17) означает проверку равенства S2 нулю.The above first predetermined condition may include the condition |S 2 |>k|S 5 |, where denotes the absolute value, k represents the threshold value, which can be set arbitrarily, for example, equal to 8. S 2 ==0? in formula (17) means checking that S 2 is equal to zero.

Когда выполнено первое заранее заданное условие, если S2==0, то если же S2==0 ложно, то vx=0. vx представляет собой горизонтальную скорость, представляет собой пороговое значение скорости, n a представляет собой первый коэффициент увеличения, nb представляет собой второй коэффициент увеличения, >> обозначает сдвиг вправо, обозначает округление вниз.When the first predetermined condition is met, if S 2 ==0, then if S 2 ==0 is false, then v x =0. v x represents the horizontal speed, represents the speed threshold, n a represents the first magnification factor, n b represents the second magnification factor, >> denotes the right shift, denotes rounding down.

В этих формулах при х меньше a Clip3(a, b, х)=а; при х больше b Clip3(a, b, x)=b; при x большем или равном а и меньшем или равном b Clip3(a, b, х)=х. в вышеприведенной формуле представляет собой а, представляет собой b, представляет собой х. Таким образом, если больше и меньше то горизонтальная скорость vx равна In these formulas, for x less than a Clip3(a, b, x) = a; when x is greater than b Clip3(a, b, x)=b; for x greater than or equal to a and less than or equal to b Clip3(a, b, x)=x. in the above formula represents a, represents b, represents x. Thus, if more and less then the horizontal speed v x is equal to

Если первое заранее заданное условие не выполнено, то формула (18) совпадает с формулой (13) и описание здесь не повторяется.If the first predetermined condition is not met, then formula (18) coincides with formula (13) and the description is not repeated here.

Вариант реализации 20. После получения коэффициента S1 автокорреляции, коэффициента S2 взаимной корреляции, коэффициента S3 взаимной корреляции, коэффициента S5 автокорреляции и коэффициента S6 взаимной корреляции можно на основании одного или более из этих коэффициента S1 автокорреляции, коэффициента S2 взаимной корреляции, коэффициента S3 взаимной корреляции, коэффициента S5 автокорреляции и коэффициента S6 взаимной корреляции определить горизонтальную скорость субблока, соответствующего субблоку текущего блока в опорном кадре.Embodiment 20: After obtaining the autocorrelation coefficient S1, the cross-correlation coefficient S2, the cross-correlation coefficient S3, the autocorrelation coefficient S5 and the cross-correlation coefficient S6, it is possible, based on one or more of the autocorrelation coefficient S1, the cross-correlation coefficient S2, the cross-correlation coefficient S3, autocorrelation coefficient S5 and cross-correlation coefficient S6 determine the horizontal speed of the sub-block corresponding to the sub-block of the current block in the reference frame.

Например, если второе заранее заданное условие выполнено, то горизонтальная скорость может определяться на основании коэффициента S1 автокорреляции, коэффициента S2 взаимной корреляции, коэффициента S3 взаимной корреляции, коэффициента S5 автокорреляции, коэффициента S6 взаимной корреляции, порогового значения скорости, первого коэффициента увеличения и второго коэффициента увеличения. Если же второе заранее заданное условие не выполнено, то горизонтальная скорость может определяться на основании коэффициента S1 автокорреляции, порогового значения скорости, коэффициента S3 взаимной корреляции, первого коэффициента увеличения и второго коэффициента увеличения. Второе заранее заданное условие определяется на основании коэффициента S2 взаимной корреляции и коэффициента S5 автокорреляции, как показано в нижеприведенной формуле: если второе заранее заданное условие выполнено, то Stmp=S1⋅S5-S2⋅S2,For example, if the second predetermined condition is satisfied, the horizontal speed may be determined based on the autocorrelation coefficient S1, the cross-correlation coefficient S2, the cross-correlation coefficient S3, the autocorrelation coefficient S5, the cross-correlation coefficient S6, the speed threshold value, the first magnification factor, and the second magnification factor. . If the second predetermined condition is not satisfied, the horizontal speed may be determined based on the autocorrelation coefficient S1, the speed threshold value, the cross-correlation coefficient S3, the first magnification factor and the second magnification factor. The second predetermined condition is determined based on the cross-correlation coefficient S2 and the autocorrelation coefficient S5, as shown in the formula below: If the second predetermined condition is satisfied, then S tmp =S 1 ⋅S 5 -S 2 ⋅S 2 ,

Если же второе заранее заданное условие не выполнено, тоIf the second predetermined condition is not met, then

Если второе заранее заданное условие выполнено, то сначала на основании S1, S2 и S5 определяют Stmp. Конкретный способ определения представлен в вышеприведенной формуле. Затем, если выполнено Stmp==0, то если же Stmp==0 ложно, то vx=0. vx представляет собой горизонтальную скорость, представляет собой пороговое значение скорости, n a представляет собой первый коэффициент увеличения, nb представляет собой второй коэффициент увеличения, >> обозначает сдвиг вправо, обозначает округление вниз.If the second predetermined condition is satisfied, then S tmp is first determined based on S 1 , S 2 and S 5 . The specific determination method is presented in the above formula. Then, if S tmp ==0, then if S tmp ==0 is false, then v x =0. v x represents the horizontal speed, represents the speed threshold, n a represents the first magnification factor, n b represents the second magnification factor, >> denotes the right shift, denotes rounding down.

В вышеприведенной формуле при х меньше a Clip3(a, b, х)=а; при х больше b Clip3(a, b, x)=b; при x большем или равном а и меньшем или равном b Clip3(a, b, х)=х. в вышеприведенной формуле представляет собой а, представляет собой b, представляет собой х. Таким образом, если больше и меньше то горизонтальная скорость vx может быть равна In the above formula, when x is less than a Clip3(a, b, x) = a; when x is greater than b Clip3(a, b, x)=b; for x greater than or equal to a and less than or equal to b Clip3(a, b, x)=x. in the above formula represents a, represents b, represents x. Thus, if more and less then the horizontal speed v x can be equal to

Если второе заранее заданное условие не выполнено, то формула (20) совпадает с формулой (13) и здесь не повторяется.If the second predetermined condition is not met, then formula (20) coincides with formula (13) and is not repeated here.

Вышеупомянутое второе заранее заданное условие может содержать следующее условие, но не ограничивается им: |S2|>k|S5|, где обозначает абсолютное значение, k представляет собой пороговое значение, которое может задаваться произвольно, например, равным 8. Должно быть понятно, что это второе заранее заданное условие представляет собой лишь пример, которым настоящее изобретение не ограничивается.The above second predetermined condition may include, but is not limited to, the following condition: |S 2 |>k|S 5 |, where denotes an absolute value, k represents a threshold value, which can be set arbitrarily, for example, equal to 8. It should be understood that this second predetermined condition is only an example to which the present invention is not limited.

Вариант реализации 21. Если первое заранее заданное условие не выполнено, то в варианте реализации 19 формула для определения горизонтальной скорости меняется на формулу (15); если второе заранее заданное условие не выполнено, то в варианте реализации 20 формула для определения горизонтальной скорости меняется на формулу (15).Embodiment 21 If the first predetermined condition is not met, then in Embodiment 19, the formula for determining the horizontal speed is changed to formula (15); if the second predetermined condition is not met, then in embodiment 20, the formula for determining the horizontal speed changes to formula (15).

Вариант реализации 22. После получения коэффициента S1 автокорреляции, коэффициента S2 взаимной корреляции, коэффициента S3 взаимной корреляции, коэффициента S5 автокорреляции и коэффициента S6 взаимной корреляции можно на основании одного или более из этих коэффициента S1 автокорреляции, коэффициента S2 взаимной корреляции, коэффициента S3 взаимной корреляции, коэффициента S5 автокорреляции и коэффициента S6 взаимной корреляции определить вертикальную скорость субблока, соответствующего субблоку текущего блока в опорном кадре.Embodiment 22: After obtaining the autocorrelation coefficient S1, the cross-correlation coefficient S2, the cross-correlation coefficient S3, the autocorrelation coefficient S5 and the cross-correlation coefficient S6, it is possible, based on one or more of the autocorrelation coefficient S1, the cross-correlation coefficient S2, the cross-correlation coefficient S3, autocorrelation coefficient S5 and cross-correlation coefficient S6 determine the vertical speed of the sub-block corresponding to the sub-block of the current block in the reference frame.

Неограниченная горизонтальная скорость может определяться, например, на основании коэффициента S1 автокорреляции, коэффициента S3 взаимной корреляции, первого коэффициента увеличения и второго коэффициента увеличения, а вертикальная скорость может определяться на основании коэффициента S2 взаимной корреляции, коэффициента S5 автокорреляции, коэффициента S6 взаимной корреляции, порогового значения скорости, неограниченной горизонтальной скорости, первого коэффициента увеличения и второго коэффициента увеличения.The unlimited horizontal speed may be determined, for example, based on the autocorrelation coefficient S1, the cross-correlation coefficient S3, the first magnification coefficient and the second magnification coefficient, and the vertical speed may be determined based on the cross-correlation coefficient S2, the autocorrelation coefficient S5, the cross-correlation coefficient S6, the threshold value speed, unlimited horizontal speed, first magnification factor and second magnification factor.

См. следующую формулу:See the following formula:

Из вышеприведенной формулы можно видеть, что если S1>0, то в противном случае По сравнению с определением vx в вышеприведенном варианте реализации, в этом варианте реализации не используется ограничение горизонтальной скорости между и с использованием порогового значения скорости Поэтому ограничение не выполняется и называется неограниченной горизонтальной скоростью. Иными словами, неограниченная горизонтальная скорость не ограничена между From the above formula you can see that if S 1 >0, then otherwise Compared with the definition of v x in the above embodiment, this embodiment does not use the horizontal speed limitation between And using speed threshold Therefore, the restriction is not satisfied and called unlimited horizontal speed. In other words, unlimited horizontal speed not limited between

Из вышеприведенной формулы можно видеть, что если S1>0, то ; From the above formula you can see that if S 1 >0, then ;

в противном случае vy=0.otherwise v y =0.

vy представляет собой вертикальную скорость, представляет собой неограниченную горизонтальную скорость, представляет собой пороговое значение скорости, n a представляет собой первый коэффициент увеличения, nb представляет собой второй коэффициент увеличения, >> обозначает сдвиг вправо, а обозначает округление вниз. При х меньше a Clip3(a, b, х)=а; при х больше b Clip3(a, b, x)=b; при x большем или равном а и меньшем или равном b Clip3(a, b, х)=х. в вышеприведенной формуле представляет собой а, представляет собой b, представляет собой х. v y represents the vertical speed, represents unlimited horizontal speed, represents the speed threshold, n a represents the first magnification factor, n b represents the second magnification factor, >> denotes the right shift, and denotes rounding down. When x is less than a Clip3(a, b, x) = a; when x is greater than b Clip3(a, b, x)=b; for x greater than or equal to a and less than or equal to b Clip3(a, b, x)=x. in the above formula represents a, represents b, represents x.

Таким образом, если больше и меньше то вертикальная скорость vy равна Thus, if more and less then the vertical speed v y is equal to

Например, в вышеприведенной формуле For example, in the above formula

Вариант реализации 23. После получения коэффициента S1 автокорреляции, коэффициента S2 взаимной корреляции, коэффициента S3 взаимной корреляции, коэффициента S5 автокорреляции и коэффициента S6 взаимной корреляции можно на основании одного или более из этих коэффициента S1 автокорреляции, коэффициента S2 взаимной корреляции, коэффициента S3 взаимной корреляции, коэффициента S5 автокорреляции и коэффициента S6 взаимной корреляции определить вертикальную скорость субблока, соответствующего субблоку текущего блока в опорном кадре.Embodiment 23: After obtaining the autocorrelation coefficient S1, the cross-correlation coefficient S2, the cross-correlation coefficient S3, the autocorrelation coefficient S5 and the cross-correlation coefficient S6, it is possible, based on one or more of the autocorrelation coefficient S1, the cross-correlation coefficient S2, the cross-correlation coefficient S3, autocorrelation coefficient S5 and cross-correlation coefficient S6 determine the vertical speed of the sub-block corresponding to the sub-block of the current block in the reference frame.

Например, если третье заранее заданное условие выполнено, то вертикальную скорость определяют на основании коэффициента S5 автокорреляции, коэффициента S6 взаимной корреляции, порогового значения скорости, первого коэффициента увеличения и второго коэффициента увеличения. Если же третье заранее заданное условие не выполнено, то вертикальную скорость определяют на основании коэффициента S2 взаимной корреляции, коэффициента S5 автокорреляции, коэффициента S6 взаимной корреляции, порогового значения скорости, горизонтальной скорости, первого коэффициента увеличения и второго коэффициента увеличения. Третье заранее заданное условие может определяться, например, на основании горизонтальной скорости.For example, if the third predetermined condition is satisfied, the vertical speed is determined based on the autocorrelation coefficient S5, the cross-correlation coefficient S6, the speed threshold value, the first magnification factor and the second magnification factor. If the third predetermined condition is not satisfied, the vertical speed is determined based on the cross-correlation coefficient S2, the auto-correlation coefficient S5, the cross-correlation coefficient S6, the speed threshold value, the horizontal speed, the first magnification factor and the second magnification factor. The third predetermined condition may be determined based on the horizontal speed, for example.

См. следующую формулу: если третье заранее заданное условие выполнено, то:See the following formula: if the third predetermined condition is met, then:

Если же третье заранее заданное условие не выполнено, тоIf the third predetermined condition is not met, then

Третьим заранее заданным условием может быть, например, следующее условие: vx равно или т.е., vx имеет наименьшее или наибольшее значение.The third predetermined condition could be, for example, the following condition: v x equals or i.e., v x has the smallest or largest value.

Когда выполнено третье заранее заданное условие, если S5>0, то в противном случае vy=0. Например, vy представляет собой вертикальную скорость, представляет собой пороговое значение скорости, n a представляет собой первый коэффициент увеличения, nb представляет собой второй коэффициент увеличения, >> обозначает сдвиг вправо, а обозначает округление вниз. При х меньше а Clip3(a, b, х)=а; при х больше b Clip3(a, b, x)=b; при x большем или равном а и меньшем или равном b Clip3(a, b, х)=х. в вышеприведенной формуле представляет собой а, представляет собой b, представляет собой х. Таким образом, если больше и меньше то вертикальная скорость vy равна When the third predetermined condition is satisfied, if S 5 >0, then otherwise v y =0. For example, v y represents the vertical velocity, represents the speed threshold, n a represents the first magnification factor, n b represents the second magnification factor, >> denotes the right shift, and denotes rounding down. When x is less than a Clip3(a, b, x) = a; when x is greater than b Clip3(a, b, x)=b; for x greater than or equal to a and less than or equal to b Clip3(a, b, x)=x. in the above formula represents a, represents b, represents x. Thus, if more and less then the vertical speed v y is equal to

Если третье заранее заданное условие не выполнено, то формула (24) совпадает с формулой (14) и здесь не повторяется.If the third predetermined condition is not met, then formula (24) coincides with formula (14) and is not repeated here.

Вариант реализации 24. В варианте реализации 23 формула для определения вертикальной скорости при невыполнении третьего заранее заданного условия меняется на формулу (16).Implementation option 24. In implementation option 23, the formula for determining the vertical speed when the third predetermined condition is not met is changed to formula (16).

Вариант реализации 25. В вышеприведенном варианте реализации первый коэффициент n a увеличения может быть равным меньшему из 5 и (BD-7), т.е., n a =min(5, BD-7), либо большему из 1 и (BD-11), т.е., n a =Max(1, BD-11). Разумеется, выше приведен лишь пример первого коэффициента увеличения, которым настоящее изобретение не ограничивается и который может задаваться в соответствии с опытом. Второй коэффициент nb увеличения может быть равным меньшему из 8 и (BD-4), т.е., nb=min(8, BD-4), либо большему из 4 и (BD-8), т.е., nb=Max(4, BD-8). Разумеется, выше приведен лишь пример второго коэффициента увеличения, которым настоящее изобретение не ограничивается и который может задаваться в соответствии с опытом. Пороговое значение скорости может быть равным 2 в степени М, где М представляет собой разность между 13 и BD, или может быть равным большему из 5 и (BD-7). Например, или Разумеется, выше приведен лишь пример порогового значения скорости, которым настоящее изобретение не ограничивается и которое может задаваться в соответствии с опытом.Embodiment 25 In the above embodiment, the first magnification factor n a may be equal to the lesser of 5 and (BD-7), i.e., n a =min(5, BD-7), or the greater of 1 and (BD -11), i.e., n a =Max(1, BD-11). Of course, the above is only an example of the first magnification factor, to which the present invention is not limited and which can be set in accordance with experience. The second magnification factor n b can be equal to the lesser of 8 and (BD-4), i.e., n b =min(8, BD-4), or the greater of 4 and (BD-8), i.e. , n b =Max(4, BD-8). Of course, the above is only an example of the second magnification factor, to which the present invention is not limited and which can be set in accordance with experience. Threshold value speed may be equal to 2 to the power of M, where M is the difference between 13 and BD, or may be equal to the greater of 5 and (BD-7). For example, or Of course, the above is only an example of the speed threshold to which the present invention is not limited and which can be set in accordance with experience.

Количество битов сдвига вправо коэффициента автокорреляции и коэффициента взаимной корреляции градиента может быть снижено, и требуемая битовая ширина (сохраняемая точность) коэффициента автокорреляции и коэффициента взаимной корреляции может быть увеличена путем задания первого коэффициента n a увеличения равным большему из 1 и (BD-11). Количество битов сдвига вправо коэффициента автокорреляции и коэффициента взаимной корреляции градиента может быть снижено, и требуемая битовая ширина (сохраняемая точность) коэффициента автокорреляции и коэффициента взаимной корреляции может быть увеличена путем задания второго коэффициента nb увеличения равным большему из 4 и (BD-8). Требуемая битовая ширина (сохраняемая точность) горизонтальной скорости vx и вертикальной скорости vy может быть увеличена путем задания порогового значения скорости равным The number of right shift bits of the autocorrelation coefficient and the gradient cross-correlation coefficient can be reduced, and the required bit width (preserved precision) of the auto-correlation coefficient and the cross-correlation coefficient can be increased by setting the first gain factor n a to the greater of 1 and (BD-11). The number of right-shift bits of the autocorrelation coefficient and the gradient cross-correlation coefficient can be reduced, and the required bit width (preserved precision) of the autocorrelation coefficient and the cross-correlation coefficient can be increased by setting the second gain factor n b to the greater of 4 and (BD-8). The required bit width (preserved precision) of the horizontal speed v x and vertical speed v y can be increased by setting a speed threshold equal

Вариант реализации 26. После получения горизонтальной скорости vx и вертикальной скорости vy кодирующая/декодирующая сторона может на основании горизонтальной скорости vx и вертикальной скорости vy получать значение компенсации предсказания субблока текущего блока. Например, на основании первого исходного значения предсказания субблока, второго исходного значения предсказания субблока и количества битов сдвига градиента вправо определяют горизонтальный градиент и вертикальный градиент. На основании горизонтальной скорости vx, вертикальной скорости vy, горизонтального градиента и вертикального градиента получают значение компенсации предсказания.Embodiment 26: After obtaining the horizontal speed v x and the vertical speed v y, the encoding/decoding side can, based on the horizontal speed v x and the vertical speed v y, obtain the sub-block prediction compensation value of the current block. For example, based on the first sub-block prediction original value, the second sub-block prediction original value, and the number of gradient right shift bits, a horizontal gradient and a vertical gradient are determined. Based on the horizontal speed v x , vertical speed v y , the horizontal gradient and the vertical gradient, the prediction compensation value is obtained.

Например, кодирующая/декодирующая сторона может получать значение b(х,у) компенсации предсказания субблока текущего блока по следующей формуле.For example, the encoding/decoding side may obtain the subblock prediction compensation value b(x,y) of the current block by the following formula.

В этой формуле представляет собой горизонтальный градиент, представляет собой вертикальный градиент. Параметры в вышеприведенной формуле могут определяться по следующим формулам.In this formula represents a horizontal gradient, represents a vertical gradient. Options in the above formula can be determined by the following formulas.

I(k)(i,j) представляет собой значение пиксела с координатами (i,j). Например, I(0)(i,j) представляет собой значение пиксела с координатами (i,j) в первом опорном блоке, который соответствует первому исходному значению предсказания указанного субблока; I(1)(i,j) представляет собой значение пиксела с координатой (i,j) во втором опорном блоке, которое соответствует второму исходному значению предсказания указанного субблока. Например, I(0)(х,у) представляет собой первое исходное значение предсказания субблока, а I(1)(х,у) представляет собой второе исходное значение предсказания указанного субблока. Если предположить, что размер субблока равен 4*4, то I(0)(х,у) представляет собой первое исходное значение предсказания первого опорного блока с размером 4*4 или первое исходное значение предсказания первого опорного блока с размером 6*6; I(1)(х,у) представляет собой второе исходное значение предсказания второго опорного блока с размером 4*4 или второе исходное значение предсказания второго опорного блока с размером 6*6. Например, I(0)(х,у) представляет собой первое исходное значение предсказания первого опорного блока с размером 4*4, a I(1)(х,у) представляет собой второе исходное значение предсказания второго опорного блока с размером 4*4.I (k) (i,j) represents the value of the pixel with coordinates (i,j). For example, I (0) (i,j) represents a pixel value with coordinates (i,j) in the first reference block that corresponds to the first original prediction value of the specified subblock; I (1) (i,j) represents the pixel value at coordinate (i,j) in the second reference block, which corresponds to the second original prediction value of the specified sub-block. For example, I (0) (x,y) represents a first prediction seed value of a subblock, and I (1) (x,y) represents a second prediction seed value of said subblock. Assuming that the sub-block size is 4*4, then I (0) (x,y) represents the first prediction source value of the first reference block with size 4*4 or the first prediction source value of the first reference block with size 6*6; I (1) (x,y) represents the second prediction source value of the second reference block with size 4*4 or the second prediction source value of the second reference block with size 6*6. For example, I (0) (x,y) is the first prediction seed value of the first reference block with size 4*4, and I (1) (x,y) is the second prediction seed value of the second reference block with size 4*4 .

vx представляет собой горизонтальную скорость, vy представляет собой вертикальную скорость, >> обозначает сдвиг вправо, rnd обозначает операцию округления, shiƒt1 представляет количество битов сдвига градиента вправо, >>shiƒt1 представляет сдвиг вправо на shiƒt1. Количество shiƒt1 битов сдвига градиента вправо может быть равным большему из 2 и (14-BD), т.е., shiƒt1=max(2, 14-BD), или shiƒt1 может быть равным большему из 6 и (BD-6), т.е., shiƒt1=max(6, BD-6). Разумеется, выше приведен лишь пример количества битов сдвига градиента вправо, которым настоящее изобретение не ограничивается и который может задаваться в соответствии с опытом. Количество битов сдвига градиента вправо может быть увеличено, т.е., битовая ширина (сохраняемая точность), требуемая для градиента, может быть снижена путем задания shiƒt1 равным большему из 6 и (BD-6). BD представляет собой битовую глубину, т.е., битовую ширину, необходимую для значения яркости, которая обычно равна 10 или 8.v x represents the horizontal velocity, v y represents the vertical velocity, >> denotes the right shift, rnd denotes the rounding operation, shiƒt1 represents the number of gradient shift bits to the right, >>shiƒt1 represents the right shift by shiƒt1. The number shiƒt1 of the gradient right shift bits can be equal to the greater of 2 and (14-BD), i.e., shiƒt1=max(2, 14-BD), or shiƒt1 can be equal to the greater of 6 and (BD-6), i.e., shiƒt1=max(6, BD-6). Of course, the above is only an example of the number of right gradient shift bits, to which the present invention is not limited and which can be set in accordance with experience. The number of gradient right shift bits can be increased, i.e., the bit width (maintained precision) required for the gradient can be reduced by setting shiƒt1 to the greater of 6 and (BD-6). BD represents the bit depth, i.e., the bit width required for the brightness value, which is usually 10 or 8.

Вариант реализации 27. Кодирующая/декодирующая сторона может получать искомое значение предсказания субблока текущего блока на основании первого исходного значения предсказания субблока текущего блока, второго исходного значения предсказания субблока текущего блока и значения компенсации предсказания субблока текущего блока. Например, кодирующая/декодирующая сторона может получать искомое значение предсказания predBDOF(x,y) субблока текущего блока по следующей формуле.Embodiment 27: The encoding/decoding side can obtain a target subblock prediction value of the current block based on the first subblock prediction original value of the current block, the second subblock prediction original value of the current block, and the subblock prediction compensation value of the current block. For example, the encoding/decoding side can obtain the desired prediction value pred BDOF (x,y) of a subblock of the current block by the following formula.

В вышеприведенной формуле I(0)(х,у) представляет собой первое исходное значение предсказания субблока, а I(1)(х,у) представляет собой второе исходное значение предсказания указанного субблока, b(х,у) представляет собой значение компенсации предсказания субблока, >> обозначает сдвиг вправо, a >>shift обозначает сдвиг вправо на shift.In the above formula, I (0) (x,y) represents the first prediction original value of a sub-block, and I (1) (x,y) represents the second prediction original value of the specified sub-block, b(x,y) represents the prediction compensation value subblock, >> denotes a right shift, and >>shift denotes a right shift by shift.

Например, BD представляет собой битовую глубину.For example, BD represents the bit depth.

Разумеется, вышеописанный способ представляет собой лишь пример получения искомого значения предсказания субблока, которым настоящее изобретение не ограничивается.Of course, the above method is only an example of obtaining the desired sub-block prediction value, to which the present invention is not limited.

Вариант реализации 28. Если текущий блок разделен на множество субблоков, то вышеупомянутая вариант реализации может использоваться для определения искомого значения предсказания каждого субблока, т.е., сигнал предсказания корректируют для каждого субблока текущего блока (например, субблока с размером 4*4), чтобы таким образом получить искомое значение предсказания каждого субблока. В этом варианте реализации, если целевое условие выполнено, операцию коррекции сигнала определенного субблока можно останавливать раньше, т.е., прекращать использование способа из вышеописанного варианта реализации для определения искомого значения предсказания субблока.Embodiment 28: If the current block is divided into a plurality of sub-blocks, the above embodiment can be used to determine the desired prediction value of each sub-block, i.e., the prediction signal is adjusted for each sub-block of the current block (for example, a sub-block with size 4*4), to thus obtain the desired prediction value of each sub-block. In this embodiment, if the target condition is satisfied, the signal correction operation of a certain sub-block can be stopped early, that is, the method of the above-described embodiment for determining the desired sub-block prediction value can be stopped.

Пусть, например, текущий блок разделен на субблок 1, субблок 2, субблок 3 и субблок 4. Кодирующая/декодирующая сторона вначале с использованием вышеописанного варианта реализации определяет искомое значение предсказания субблока 1, а затем с использованием вышеописанного варианта реализации определяет искомое значение предсказания субблока 2. Когда целевое условие выполнено, кодирующая/декодирующая сторона прекращает определение искомого значения предсказания субблока 3 и искомого значения предсказания субблока 4 с использованием вышеописанного варианта реализации, т.е., операция коррекции сигнала субблока 3 и субблока 4 не выполняется.For example, let the current block be divided into sub-block 1, sub-block 2, sub-block 3 and sub-block 4. The encoding/decoding side first determines the desired prediction value of sub-block 1 using the above-described embodiment, and then determines the desired prediction value of sub-block 2 using the above-described embodiment. When the target condition is satisfied, the encoding/decoding side stops determining the prediction target value of sub-block 3 and the prediction target value of sub-block 4 using the above-described embodiment, that is, the signal correction operation of sub-block 3 and sub-block 4 is not performed.

Целевое условие может считаться выполненным и операция коррекции сигнала для остальных: субблоков может прекращаться раньше, если, например, разность между значениями предсказания указанных двух субблоков текущего блока меньше определенного порогового значения TH_SUB_SAD. Например, определяют, что целевое условие выполнено, и операция коррекции сигнала для остальных субблоков (т.е., субблока 3 и субблока 4) не выполняется, если разность между значениями предсказания субблока 1 меньше порогового значения TH_SUB_SAD и разность между значениями предсказания субблока 2 меньше порогового значения TH_SUB_SAD.The target condition may be considered satisfied and the signal correction operation for the remaining subblocks may be terminated early if, for example, the difference between the prediction values of the specified two subblocks of the current block is less than a certain threshold value TH_SUB_SAD. For example, it is determined that the target condition is satisfied and the signal correction operation for the remaining subblocks (i.e., subblock 3 and subblock 4) is not performed if the difference between the prediction values of subblock 1 is less than the threshold value TH_SUB_SAD and the difference between the prediction values of subblock 2 is less threshold value TH_SUB_SAD.

Пусть, в качестве еще одного примера, текущий блок разделен на множество субблоков и для каждого субблока кодирующая/декодирующая сторона перед определением искомого значения предсказания субблока с использованием вышеописанного варианта реализации проверяет, выполнено ли целевое условие. Если целевое условие выполнено, то использование способа из вышеописанного варианта реализации для определения искомого значения предсказания субблока прекращается раньше, т.е., операция коррекции сигнала для субблока останавливается. Если целевое условие не выполнено, то для определения искомого значения предсказания субблока может использоваться способ из вышеописанного варианта реализации.As another example, let the current block be divided into a plurality of sub-blocks, and for each sub-block, the encoding/decoding side checks whether the target condition is satisfied before determining the target prediction value of the sub-block using the above-described embodiment. If the target condition is satisfied, then using the method of the above-described embodiment to determine the target prediction value of the sub-block is stopped early, that is, the signal correction operation for the sub-block is stopped. If the target condition is not satisfied, then the method from the above-described embodiment may be used to determine the target sub-block prediction value.

Например, если разность между значениями предсказания субблока меньше определенного порогового значения TH_SUB_SAD, то может считаться, что целевое условие выполнено и операция коррекции сигнала для субблока может прекращаться раньше. Например, если разность между значениями предсказания субблока 1 меньше порогового значения TH_SUB_SAD, то может считаться, что целевое условие выполнено и операция коррекции сигнала для субблока 1 может прекращаться раньше.For example, if the difference between the subblock prediction values is less than a certain threshold value TH_SUB_SAD, then the target condition may be considered to be met and the signal correction operation for the subblock may be terminated early. For example, if the difference between the prediction values of subblock 1 is less than the threshold value TH_SUB_SAD, then the target condition may be considered to be satisfied and the signal correction operation for subblock 1 may be terminated early.

Для определения разности между значениями предсказания субблока может использоваться, например, следующий способ.To determine the difference between the sub-block prediction values, for example, the following method can be used.

Вариант 1. Разность между значениями предсказания может вычисляться как SAD значения предсказания (далее pred0) первого блока предсказания (т.е., первого блока предсказания, соответствующего субблоку, полученному по первому опорному кадру на основании первой информации об однонаправленном перемещении текущего блока) и значения предсказания (далее pred1) второго блока предсказания (т.е., второго блока предсказания, соответствующего субблоку, полученному по второму опорному кадру на основании второй информации об однонаправленном перемещении текущего блока), т.е., SAD значений pred0 и pred1 для всех пикселов. Разность между значениями предсказания первого опорного кадра и второго опорного кадра может определяться, например, по следующей формуле:Option 1. The difference between the prediction values can be calculated as the SAD of the prediction value (hereinafter pred0) of the first prediction block (i.e., the first prediction block corresponding to the subblock obtained from the first reference frame based on the first unidirectional movement information of the current block) and the value prediction (hereinafter pred1) of the second prediction block (i.e., the second prediction block corresponding to the subblock obtained from the second reference frame based on the second unidirectional movement information of the current block), i.e., the SAD of the values pred0 and pred1 for all pixels . The difference between the prediction values of the first reference frame and the second reference frame may be determined, for example, by the following formula:

В этой формуле pred0(i,j) представляет собой значение в i-м столбце и j-й строке pred0, pred1(i,j) представляет собой значение в i-м столбце и j-й строке pred1, n представляет собой полное количество пикселов, abs(x) обозначает абсолютное значение х, Н представляет собой значение высоты и W представляет собой значение ширины.In this formula, pred 0 (i,j) represents the value in the i-th column and j-th row of pred0, pred 1 (i,j) represents the value in the i-th column and j-th row of pred1, n represents total number of pixels, abs(x) denotes the absolute value of x, H represents the height value, and W represents the width value.

Вариант 2. Разность между значениями предсказания также может вычисляться как SAD N-кратно огрубленного значения предсказания первого блока предсказания (обозначаемого как pred0 и представляющего собой значение предсказания, полученное огрублением значения предсказания первого блока предсказания) и N-кратно огрубленного значения предсказания второго блока предсказания (обозначаемого как pred1 и представляющего собой значение предсказания, полученное огрублением значения предсказания второго блока предсказания). Например, разность между значениями предсказания первого опорного кадра и второго опорного кадра может определяться по следующей формуле:Option 2: The difference between the prediction values can also be calculated as the SAD of the N-fold coarsened prediction value of the first prediction block (denoted as pred0 and being the prediction value obtained by coarsening the prediction value of the first prediction block) and the N-fold coarsened prediction value of the second prediction block ( denoted as pred1 and representing the prediction value obtained by coarsening the prediction value of the second prediction block). For example, the difference between the prediction values of the first reference frame and the second reference frame may be determined by the following formula:

В этой формуле pred0(i,j) представляет собой значение в i-м столбце и j-й строке pred0, pred1(i,j) представляет собой значение в i-м столбце и j-й строке pred1, n представляет собой полное количество пикселов, abs(x) обозначает абсолютное значение х, Н представляет собой значение высоты и W представляет собой значение ширины, N представляет собой положительное целое число, предпочтительно 2.In this formula, pred 0 (i,j) represents the value in the i-th column and j-th row of pred0, pred 1 (i,j) represents the value in the i-th column and j-th row of pred1, n represents total number of pixels, abs(x) denotes the absolute value of x, H represents the height value and W represents the width value, N represents a positive integer, preferably 2.

Вариант реализации 29Implementation option 29

На основе той же идеи, которая в настоящем изобретении использована в вышеописанном способе, посредством варианта реализации настоящего изобретения также предлагается кодирующий и декодирующий аппарат для использования на кодирующей стороне или на декодирующей стороне. Этот аппарат выполнен с возможностью получения искомого значения предсказания текущего блока или субблока текущего блока в случае, когда характеристическая информация текущего блока удовлетворяет конкретному условию. На фиг. 5 представлена структурная схема указанного аппарата, содержащая:Based on the same idea as used in the above-described method in the present invention, an encoding and decoding apparatus for use on an encoding side or a decoding side is also provided by an embodiment of the present invention. This apparatus is configured to obtain the desired prediction value of the current block or sub-block of the current block in the case where the characteristic information of the current block satisfies a specific condition. In fig. Figure 5 shows a block diagram of the specified apparatus, containing:

первый модуль 51 определения, выполненный с возможностью определения первого исходного значения предсказания на основании первой информации об однонаправленном перемещении текущего блока и определения второго исходного значения предсказания на основании второй информации об однонаправленном перемещении текущего блока, если характеристическая информация текущего блока удовлетворяет конкретному условию;a first determining unit 51 configured to determine a first prediction initial value based on the first unidirectional movement information of the current block and determine a second initial prediction value based on the second unidirectional movement information of the current block if the characteristic information of the current block satisfies a specific condition;

второй модуль 52 определения, выполненный с возможностью определения горизонтальной скорости на основании первого исходного значения предсказания и второго исходного значения предсказания и с возможностью определения вертикальной скорости на основании указанных первого исходного значения предсказания и второго исходного значения предсказания;a second determining unit 52, configured to determine a horizontal speed based on the first prediction original value and a second prediction original value, and capable of determining a vertical speed based on the first prediction original value and the second prediction original value;

первый модуль 53 получения, выполненный с возможностью получения значения компенсации предсказания на основании указанных горизонтальной скорости и вертикальной скорости;a first acquisition unit 53, configured to obtain a prediction compensation value based on said horizontal speed and vertical speed;

второй модуль 54 получения, выполненный с возможностью получения искомого значения предсказания на основании указанных первого исходного значения предсказания, второго исходного значения предсказания и значения компенсации предсказания.a second acquisition unit 54 configured to obtain a desired prediction value based on the first prediction original value, the second prediction original value, and the prediction compensation value.

Указанная характеристическая информация может, например, но без ограничения, содержать одно или более из атрибута информации о перемещении, атрибута режима предсказания, информации о размере и информации управления переключением на уровне последовательности.Said characteristic information may, for example, but without limitation, comprise one or more of a movement information attribute, a prediction mode attribute, size information, and sequence-level switching control information.

Первый модуль 51 определения также выполнен с возможностью, когда характеристическая информация содержит атрибут информации о перемещении, удовлетворяющий по меньшей мере одному из нижеперечисленных условий, проверки выполнения конкретного условия для указанного атрибута информации о перемещении:The first determining unit 51 is also configured, when the characteristic information contains a movement information attribute satisfying at least one of the following conditions, to check whether a specific condition is satisfied for the specified movement information attribute:

для текущего блока используется двунаправленное предсказание, и два опорных кадра, соответствующих текущему блоку, получены с различных направлений;bidirectional prediction is used for the current block, and two reference frames corresponding to the current block are received from different directions;

текущий блок содержит множество субблоков, и у всех субблоков этого множества информация о перемещении одинаковая;the current block contains many subblocks, and all subblocks of this set have the same movement information;

для текущего блока используется двунаправленное предсказание, и два опорных кадра, соответствующих текущему блоку, имеют одинаковый вес;the current block uses bidirectional prediction, and the two reference frames corresponding to the current block have the same weight;

для текущего блока используется двунаправленное предсказание, и два опорных кадра, соответствующих текущему блоку, находятся на одинаковом расстоянии от текущего сегмента;the current block uses bidirectional prediction, and two reference frames corresponding to the current block are at the same distance from the current segment;

для текущего блока используется двунаправленное предсказание, и разность между значениями предсказания указанных двух опорных кадров, соответствующих текущему блоку, меньше заранее заданного порогового значения.bidirectional prediction is used for the current block, and the difference between the prediction values of the two reference frames corresponding to the current block is less than a predetermined threshold value.

Первый модуль 51 определения также выполнен с возможностью получения первого блока предсказания по первому опорному кадру на основании первой информации об однонаправленном перемещении текущего блока и получения второго блока предсказания по второму опорному кадру на основании второй информации об однонаправленном перемещении текущего блока;The first determining unit 51 is also configured to obtain a first prediction block from the first reference frame based on the first unidirectional movement information of the current block, and obtain a second prediction block from the second reference frame based on the second unidirectional movement information of the current block;

получения разности между значениями предсказания первого опорного кадра и второго опорного кадра на основании SAD огрубленного значения предсказания первого блока предсказания и огрубленного значения предсказания второго блока предсказания.obtaining a difference between the prediction values of the first reference frame and the second reference frame based on the SAD of the coarse prediction value of the first prediction block and the coarse prediction value of the second prediction block.

Первый модуль 51 определения также выполнен с возможностью, если характеристическая информация содержит атрибут режима предсказания, указывающий, что режим слияния на основании комбинированного межкадрового и внутрикадрового предсказания не используется и/или режим симметричной разности векторов перемещения не используется, проверки выполнения для указанного атрибута режима предсказания конкретного условия.The first determining unit 51 is also configured, if the characteristic information contains a prediction mode attribute indicating that a fusion mode based on combined inter-frame and intra-frame prediction is not used and/or a symmetrical motion vector difference mode is not used, checking whether the specified prediction mode attribute of a specific conditions.

Первый модуль 51 определения также выполнен с возможностью, если характеристическая информация содержит информацию управления переключением на уровне последовательности, указывающую, что для текущего блока разрешено использовать способ двунаправленного визуально плавного перемещения, проверки выполнения для указанной информации управления переключением на уровне последовательности конкретного условия.The first determining unit 51 is also configured to, if the characteristic information contains sequence-level switching control information indicating that the current block is allowed to use a bidirectional visual smooth movement method, check the execution of said sequence-level switching control information of a particular condition.

Первый модуль 51 определения также выполнен с возможностью, если характеристическая информация содержит информацию о размере, удовлетворяющую по меньшей мере одному из нижеперечисленных условий, проверки выполнения для указанной информации о размере конкретного условия: значение ширины текущего блока больше или равно первому пороговому значению и меньше или равно второму пороговому значению; значение высоты текущего блока больше или равно третьему пороговому значению и меньше или равно четвертому пороговому значению; значение площади текущего блока больше или равно пятому пороговому значению и меньше или равно шестому пороговому значению.The first determination unit 51 is also configured, if the characteristic information contains size information satisfying at least one of the following conditions, to check that the specified size information meets a specific condition: the width value of the current block is greater than or equal to the first threshold value and less than or equal to second threshold value; the height value of the current block is greater than or equal to the third threshold value and less than or equal to the fourth threshold value; the area value of the current block is greater than or equal to the fifth threshold value and less than or equal to the sixth threshold value.

Первый модуль 51 определения выполнен с возможностью при определении первого исходного значения предсказания на основании первой информации об однонаправленном перемещении текущего блока и второго исходного значения предсказания на основании второй информации об однонаправленном перемещении текущего блока:The first determination unit 51 is configured to determine the first prediction initial value based on the first unidirectional movement information of the current block and the second prediction initial value based on the second unidirectional movement information of the current block:

определять первый опорный блок по первому опорному кадру на основании первой информации об однонаправленном перемещении текущего блока, и определять первое исходное значение предсказания первого опорного блока, при этом первое исходное значение предсказания центральной области первого опорного блока получается путем интерполирования значение пиксела в первом опорном кадре, а первое исходное значение предсказания краевой области первого опорного блока получается путем копирования значение пиксела в первом опорном кадре; определять второй опорный блок по второму опорному кадру на основании второй информации об однонаправленном перемещении текущего блока, и определять второе исходного значения предсказания второго опорного блока; при этом второе исходное значение предсказания центральной области второго опорного блока получается путем интерполирования значения пиксела во втором опорном кадре, а второе исходное значение предсказания краевой области второго опорного блока получается путем копирования значения пиксела во втором опорном кадре.determine a first reference block from the first reference frame based on the first unidirectional movement information of the current block, and determine a first initial prediction value of the first reference block, wherein the first initial prediction value of a central region of the first reference block is obtained by interpolating a pixel value in the first reference frame, and a first edge region prediction source value of the first reference block is obtained by copying a pixel value in the first reference frame; determine a second reference block from the second reference frame based on the second unidirectional movement information of the current block, and determine a second initial prediction value of the second reference block; wherein a second center region prediction source value of the second reference block is obtained by interpolating a pixel value in the second reference frame, and a second edge region prediction source value of the second reference block is obtained by copying a pixel value in the second reference frame.

Второй модуль 52 определения выполнен с возможностью при определении горизонтальной скорости на основании первого исходного значения предсказания и второго исходного значения предсказания, если выполнено первое заранее заданное условие, определять коэффициент S2 взаимной корреляции между суммой горизонтального градиента и суммой вертикального градиента, коэффициент S6 взаимной корреляции между разностью значений предсказания во временной области и суммой вертикального градиента на основании первого исходного значения предсказания и второго исходного значения предсказания; определять горизонтальную скорость на основании коэффициента S2 взаимной корреляции, порогового значения скорости, коэффициента S6 взаимной корреляции, первого коэффициента увеличения и второго коэффициента увеличения; при этом первое заранее заданное условие определяется на основании коэффициента S2 взаимной корреляции и коэффициента S5 автокорреляции суммы вертикального градиента.The second determination unit 52 is configured to, when determining the horizontal speed based on the first prediction initial value and the second prediction initial value, if the first predetermined condition is satisfied, determine a cross-correlation coefficient S2 between the horizontal gradient sum and the vertical gradient sum, a cross-correlation coefficient S6 between the difference time domain prediction values and a vertical gradient sum based on the first prediction original value and the second prediction original value; determine the horizontal speed based on the cross-correlation coefficient S2, the speed threshold value, the cross-correlation coefficient S6, the first magnification factor and the second magnification factor; wherein the first predetermined condition is determined based on the cross-correlation coefficient S2 and the autocorrelation coefficient S5 of the vertical gradient sum.

Второй модуль 52 определения выполнен с возможностью при определении горизонтальной скорости на основании первого исходного значения предсказания и второго исходного значения предсказания, если выполнено второе заранее заданное условие, определять коэффициент S1 автокорреляции суммы горизонтального градиента, коэффициент S2 взаимной корреляции между суммой горизонтального градиента и суммой вертикального градиента, коэффициент S3 взаимной корреляции между разностью значений предсказания во временной области и суммой горизонтального градиента, коэффициент S5 автокорреляции суммы вертикального градиента, коэффициент S6 взаимной корреляции между разностью значений предсказания во временной области и суммой вертикального градиента на основании первого исходного значения предсказания и второго исходного значения предсказания; определять горизонтальную скорость на основании коэффициента S1 автокорреляции, коэффициента S2 взаимной корреляции, коэффициента S3 взаимной корреляции, коэффициента S5 автокорреляции, коэффициента S6 взаимной корреляции, порогового значения скорости, первого коэффициента увеличения и второго коэффициента увеличения, причем второе заранее заданное условие определяется на основании коэффициента S2 взаимной корреляции и коэффициента S5 автокорреляции.The second determination unit 52 is configured to determine, when determining the horizontal speed based on the first initial prediction value and the second initial prediction value, if the second predetermined condition is satisfied, an autocorrelation coefficient S1 of the horizontal gradient sum, a cross-correlation coefficient S2 between the horizontal gradient sum and the vertical gradient sum , cross-correlation coefficient S3 between the difference of the time domain prediction values and the horizontal gradient sum, autocorrelation coefficient S5 of the vertical gradient sum, cross-correlation coefficient S6 between the difference of the time-domain prediction values and the vertical gradient sum based on the first original prediction value and the second original prediction value ; determine the horizontal speed based on the autocorrelation coefficient S1, the cross-correlation coefficient S2, the cross-correlation coefficient S3, the autocorrelation coefficient S5, the cross-correlation coefficient S6, the speed threshold value, the first magnification factor and the second magnification factor, wherein the second predetermined condition is determined based on the coefficient S2 cross-correlation and autocorrelation coefficient S5.

Второй модуль 52 определения выполнен с возможностью при определении вертикальной скорости на основании первого исходного значения предсказания и второго исходного значения предсказания получать, без выполнения ограничивающей обработки, неограниченную горизонтальную скорость на основании первого исходного значения предсказания и второго исходного значения предсказания и определять вертикальную скорость на основании указанной неограниченной горизонтальной скорости.The second determination unit 52 is configured to, when determining the vertical speed based on the first prediction initial value and the second prediction initial value, obtain, without performing limiting processing, an unlimited horizontal speed based on the first prediction initial value and the second prediction initial value, and determine the vertical speed based on the specified unlimited horizontal speed.

Второй модуль 52 определения выполнен с возможностью при определении вертикальной скорости на основании первого исходного значения предсказания и второго исходного значения предсказания, если выполнено третье заранее заданное условие, определять коэффициент S5 автокорреляции суммы вертикального градиента, коэффициент S6 взаимной корреляции между разностью значений предсказания во временной области и суммой вертикального градиента на основании первого исходного значения предсказания и второго исходного значения предсказания; определять вертикальную скорость на основании коэффициента S5 автокорреляции, коэффициента S6 взаимной корреляции, порогового значения скорости, первого коэффициента увеличения и второго коэффициента увеличения, причем третье заранее заданное условие определяется на основании горизонтальной скорости.The second determining unit 52 is configured to, when determining the vertical speed based on the first original prediction value and the second initial prediction value, if the third predetermined condition is satisfied, determine the autocorrelation coefficient S5 of the vertical gradient sum, the cross-correlation coefficient S6 between the difference of the prediction values in the time domain and a sum of the vertical gradient based on the first prediction original value and the second prediction original value; determine the vertical speed based on the autocorrelation coefficient S5, the cross-correlation coefficient S6, the speed threshold, the first magnification factor and the second magnification factor, and the third predetermined condition is determined based on the horizontal speed.

Значение коэффициента S2 взаимной корреляции лежит между первым пороговым значением коэффициента взаимной корреляции и вторым пороговым значением коэффициента взаимной корреляции.The cross-correlation coefficient value S2 lies between the first cross-correlation coefficient threshold value and the second cross-correlation coefficient threshold value.

Значение коэффициента S6 взаимной корреляции лежит между третьим пороговым значением коэффициента взаимной корреляции и четвертым пороговым значением коэффициента взаимной корреляции.The cross-correlation coefficient value S6 lies between the third cross-correlation coefficient threshold value and the fourth cross-correlation coefficient threshold value.

Первый коэффициент увеличения равен меньшему из 5 и (BD-7) или большему из 1 и (BD-11); второй коэффициент увеличения равен меньшему из 8 и (BD-4) или большему из 4 и (BD-8); пороговое значение скорости равно 2 в степени М, где М равно разности между 13 и BD или большему из 5 и (BD-7); BD представляет собой битовую глубину.The first magnification factor is equal to the lesser of 5 and (BD-7) or the greater of 1 and (BD-11); the second magnification factor is equal to the lesser of 8 and (BD-4) or the greater of 4 and (BD-8); the speed threshold is 2 to the power of M, where M is equal to the difference between 13 and BD or the greater of 5 and (BD-7); BD represents the bit depth.

Первый модуль 53 выполнен с возможностью при получении значения компенсации предсказания на основании горизонтальной скорости и вертикальной скорости определять горизонтальный градиент и вертикальный градиент на основании первого исходного значения предсказания, второго исходного значения предсказания и количества битов сдвига градиента вправо, и получать значение компенсации предсказания на основании горизонтальной скорости, вертикальной скорости, горизонтального градиента и вертикального градиента, при этом количество битов сдвига градиента вправо равно большему из 2 и (14-BD) или большему из 6 и (BD-6), a BD представляет собой битовую глубину.The first module 53 is configured to, upon obtaining the prediction compensation value based on the horizontal velocity and the vertical velocity, determine the horizontal gradient and the vertical gradient based on the first prediction original value, the second prediction original value and the number of gradient right shift bits, and obtain the prediction compensation value based on the horizontal speed, vertical speed, horizontal gradient, and vertical gradient, wherein the number of gradient right shift bits is the greater of 2 and (14-BD) or the greater of 6 and (BD-6), and BD is the bit depth.

С точки зрения воплощения в аппаратуре, архитектура декодирующего устройства, предусматриваемого вариантом реализации настоящего изобретения, может быть такой, как показано на фиг. 6. Декодирующее устройство содержит процессор 61 и машиночитаемый носитель информации 62, выполненный с возможностью хранения машиноисполняемых инструкций, которые могут быть исполнены процессором 61. Процессор 61 выполнен с возможностью исполнения машиноисполняемых инструкций для реализации способа, раскрытого в вышеприведенных примерах настоящего изобретения. Например, указанный процессор выполнен с возможностью исполнения машиноисполняемых инструкций дляFrom a hardware implementation point of view, the architecture of a decoding device provided by an embodiment of the present invention may be as shown in FIG. 6. The decoding device includes a processor 61 and a computer-readable storage medium 62 configured to store computer-executable instructions that can be executed by the processor 61. The processor 61 is configured to execute computer-executable instructions to implement the method disclosed in the above examples of the present invention. For example, said processor is configured to execute computer-executable instructions for

выполнения для получения искомого значения предсказания текущего блока или субблока указанного текущего блока, если характеристическая информация указанного текущего блока удовлетворяет конкретному условию, следующих этапов: определение первого исходного значения предсказания на основании первой информации об однонаправленном перемещении текущего блока, и определение второго исходного значения предсказания на основании второй информации об однонаправленном перемещении текущего блока; определение горизонтальной скорости на основании указанных первого исходного значения предсказания и второго исходного значения предсказания; определение вертикальной скорости на основании указанных первого исходного значения предсказания и второго исходного значения предсказания; получение значения компенсации предсказания на основании указанных горизонтальной скорости и вертикальной скорости; получение искомого значения предсказания на основании указанных первого исходного значения предсказания, второго исходного значения предсказания и значения компенсации предсказания.performing the following steps to obtain a desired prediction value of a current block or a sub-block of said current block if the characteristic information of said current block satisfies a specific condition: determining a first initial prediction value based on the first unidirectional movement information of the current block, and determining a second initial prediction value based on second information about the unidirectional movement of the current block; determining a horizontal speed based on said first initial prediction value and second initial prediction value; determining a vertical speed based on said first initial prediction value and second initial prediction value; obtaining a prediction compensation value based on the specified horizontal speed and vertical speed; obtaining a desired prediction value based on said first prediction original value, second prediction original value, and prediction compensation value.

С точки зрения воплощения в аппаратуре, архитектура кодирующего устройства, предусматриваемого вариантам реализациии настоящего изобретения, может быть такой, как показано на фиг. 7. Декодирующее устройство содержит процессор 71 и машиночитаемый носитель информации 72, выполненный с возможностью хранения машиноисполняемых инструкций, которые могут быть исполнены процессором 71. Процессор 71 выполнен с возможностью исполнения машиноисполняемых инструкций для реализации способа, раскрытого в вышеприведенных примерах настоящего изобретения. Например, указанный процессор выполнен с возможностью исполнения машиноисполняемых инструкций дляFrom a hardware implementation point of view, the architecture of an encoder provided by embodiments of the present invention may be as shown in FIG. 7. The decoding device includes a processor 71 and a computer-readable storage medium 72 configured to store computer-executable instructions that can be executed by the processor 71. The processor 71 is configured to execute computer-executable instructions to implement the method disclosed in the above examples of the present invention. For example, said processor is configured to execute computer-executable instructions for

получения искомого значения предсказания текущего блока или субблока текущего блока, если характеристическая информация указанного текущего блока удовлетворяет конкретному условию, посредством выполнения следующих этапов: определение первого исходного значения предсказания на основании первой информации об однонаправленном перемещении текущего блока и определение второго исходного значения предсказания на основании второй информации об однонаправленном перемещении текущего блока; определение горизонтальной скорости на основании указанных первого исходного значения предсказания и второго исходного значения предсказания; определение вертикальной скорости на основании указанных первого исходного значения предсказания и второго исходного значения предсказания; получение значения компенсации предсказания на основании указанных горизонтальной скорости и вертикальной скорости; получение искомого значения предсказания на основании указанных первого исходного значения предсказания, второго исходного значения предсказания и значения компенсации предсказания.obtaining a desired prediction value of a current block or a sub-block of a current block if the characteristic information of said current block satisfies a specific condition, by performing the following steps: determining a first initial prediction value based on the first unidirectional movement information of the current block, and determining a second initial prediction value based on the second information about unidirectional movement of the current block; determining a horizontal speed based on said first initial prediction value and second initial prediction value; determining a vertical speed based on said first initial prediction value and second initial prediction value; obtaining a prediction compensation value based on the specified horizontal speed and vertical speed; obtaining a desired prediction value based on said first prediction original value, second prediction original value, and prediction compensation value.

На основе той же идеи, которая в настоящем изобретении использована в вышеописанном способе, посредством варианта реализации настоящего изобретения также предлагается машиночитаемый носитель информации, содержащий множество компьютерных инструкций, которые при исполнении процессором могут вызывать выполнение указанным процессором способов кодирования и декодирования, раскрытых в вышеприведенных примерах настоящего изобретения. Указанным машиночитаемым носителем информации может быть произвольное электронное, магнитное, оптическое или иное физическое запоминающее устройство, выполненное с возможностью содержания или сохранения информации, например, исполнимых инструкций, данных и т.п. Указанным машиночитаемым носителем информации может быть, например, память с произвольным доступом (англ. Random Access Memory, RAM), недолговременная память, долговременная память, флэш-память, дисковый накопитель (к примеру, жесткий диск), твердотельный накопитель, дисковое хранилище произвольного типа (к примеру, компакт-диск, диск DVD и т.д.) или аналогичный носитель информации или их комбинация.Based on the same idea that the present invention employs in the above-described method, an embodiment of the present invention also provides a computer-readable storage medium containing a plurality of computer instructions that, when executed by a processor, can cause the processor to execute the encoding and decoding methods disclosed in the above examples of the present invention. inventions. Said computer-readable storage medium may be any electronic, magnetic, optical, or other physical storage device capable of containing or storing information, such as executable instructions, data, and the like. The specified machine-readable storage medium can be, for example, random access memory (RAM), non-transitory memory, long-term memory, flash memory, disk storage (for example, hard drive), solid-state drive, random disk storage (eg CD, DVD, etc.) or similar storage medium, or a combination thereof.

Системы, аппараты, модули или элементы, описанные в вышеприведенных вариантах реализации, могут быть осуществлены посредством компьютерной интегральной схемы или структуры, или посредством изделия с определенными функциями. Обычно эти системы и др. осуществляют в виде компьютера, который может быть в форме персонального компьютера, портативного компьютера, сотового телефона, камерофона, смартфона, персонального цифрового помощника, медиаплейера, навигационного устройства, устройства для обмена сообщениями электронной почты, планшетного компьютера, надеваемого устройства или комбинации любых из этих устройств.The systems, apparatus, modules or elements described in the above embodiments may be implemented by a computer integrated circuit or structure, or by a product having certain functions. Typically, these systems etc. are implemented in the form of a computer, which may be in the form of a personal computer, laptop computer, cell phone, camera phone, smartphone, personal digital assistant, media player, navigation device, email messaging device, tablet computer, wearable device or a combination of any of these devices.

Для упрощения описания вышеназванные устройства представлены в виде отдельных элементов, выделенных на основании их функций. Разумеется, при осуществлении настоящего изобретения функции каждого элемента могут быть реализованы в одном или более программных и/или аппаратных средств.To simplify the description, the above-mentioned devices are presented as separate elements, distinguished on the basis of their functions. Of course, in practicing the present invention, the functions of each element may be implemented in one or more software and/or hardware.

Специалистам должно быть понятно, что варианты реализации настоящего изобретения могут быть раскрыты посредством способов, систем или компьютерных программных продуктов. Настоящее изобретение может иметь форму полностью аппаратной реализации, полностью программной реализации или реализации, в которой совместно используются программные и аппаратные аспекты. Кроме того, варианты реализации настоящего изобретения могут иметь форму компьютерного программного продукта, воплощенного на одном или более носителей информации с возможностью использования компьютером (например, без ограничения, на дисковом носителе, компакт-диске CD-ROM, оптическом носителе и т.п.), содержащих программный код, который может быть использован компьютером.Those skilled in the art will appreciate that embodiments of the present invention may be disclosed through methods, systems, or computer program products. The present invention may take the form of an all-hardware implementation, an all-software implementation, or an implementation that combines software and hardware aspects. In addition, embodiments of the present invention may take the form of a computer program product embodied on one or more computer-readable storage media (e.g., but not limited to, disk media, CD-ROM, optical media, and the like). containing program code that can be used by a computer.

Настоящее изобретение описано со ссылкой на блок-схемы и/или функциональные схемы способов, устройств (системы) и компьютерных программных продуктов согласно вариантам реализации настоящего изобретения. Должно быть понятно, что каждая последовательность действий и/или блок в блок-схемах и/или функциональных схемах, и комбинации последовательностей действий и/или блоков, представленные на блок-схемах и/или функциональных схемах, могут быть реализованы посредством компьютерных программных инструкций. Эти компьютерные программные инструкции могут передаваться в процессор компьютера общего назначения, специализированного компьютера, во встроенный процессор или в другое программируемое устройство для обработки данных с целью реализации устройства, в котором указанные инструкции при их исполнении процессором компьютера или другого программируемого устройства для обработки данных реализуют функции, показанные последовательностью или последовательностями действий на блок-схеме и/или блоком или блоками на функциональной схеме. Кроме того, эти компьютерные программные инструкции также могут сохраняться в машиночитаемой памяти, которая может управлять компьютером или другим программируемым устройством для обработки данных так, чтобы он функционировал определенным образом; таким образом, посредством инструкций, сохраненных в машиночитаемой памяти, реализуется изделие, содержащее программируемый аппарат, который выполняет функции, показанные последовательностью или последовательностями действий на блок-схеме и/или блоком или блоками на функциональной схеме.The present invention is described with reference to block diagrams and/or functional diagrams of methods, devices (systems), and computer program products according to embodiments of the present invention. It should be understood that each sequence of actions and/or block in the flowcharts and/or function diagrams, and combinations of sequences of actions and/or blocks represented in the flowcharts and/or function diagrams, can be implemented by computer program instructions. These computer program instructions may be transmitted to a processor of a general purpose computer, a special purpose computer, an embedded processor, or other programmable data processing device to implement an apparatus in which the instructions, when executed by the processor of the computer or other programmable data processing device, implement the functions shown by a sequence or sequences of actions in a flowchart and/or a block or blocks in a functional diagram. In addition, these computer program instructions may also be stored in computer readable memory, which may control the computer or other programmable data processing device to operate in a particular manner; thus, by means of instructions stored in a machine-readable memory, an article of article is implemented comprising a programmable apparatus that performs the functions shown by the sequence or sequences of actions in the block diagram and/or the block or blocks in the functional diagram.

Эти компьютерные программные инструкции также могут загружаться в компьютер или в другое программируемое устройство для обработки данных с целью вызвать выполнение указанным компьютером или программируемым устройством ряда функциональных этапов для выполнения реализуемой компьютером операции так, что инструкции, которые исполняются на указанном компьютере или программируемом устройстве, соотносятся с этапами для реализации функций, указанных в одной или более последовательностях действий на блок-схеме и/или одним или более блоками на функциональной схеме. Вышеприведенное описание представляет собой лишь один из вариантов реализации настоящего изобретения и не имеет целью ограничение настоящего изобретения. Специалист в области техники, к которой относится настоящее изобретение, может найти разнообразные модификации и изменения. Любая модификация, эквивалентная замена, усовершенствование или т.п., выполненные в соответствии с идеей и принципами настоящего изобретения, входят в объем формулы настоящего изобретения.These computer program instructions may also be loaded into a computer or other programmable data processing device for the purpose of causing said computer or programmable device to execute a number of functional steps to perform a computer-implemented operation such that the instructions that are executed on the computer or programmable device correspond to steps to implement the functions specified in one or more sequences of actions in a flowchart and/or one or more blocks in a functional diagram. The above description represents only one embodiment of the present invention and is not intended to limit the present invention. Various modifications and variations will be apparent to those skilled in the art to which the present invention relates. Any modification, equivalent substitution, improvement, or the like made in accordance with the idea and principles of the present invention is included within the scope of the claims of the present invention.

Claims (21)

1. Способ получения искомого значения предсказания субблока, который используется при дальнейшем декодировании видеоданных, содержащий:1. A method for obtaining the desired subblock prediction value, which is used in further decoding of video data, containing: когда определяют использование режима двунаправленного визуально плавного перемещения для текущего блока, выполняют компенсацию перемещения на основании режима двунаправленного визуально плавного перемещения в отношении текущего блока, причем при использовании режима двунаправленного визуально плавного перемещения для текущего блока условия, которым одновременно удовлетворяет текущий блок, включают в себя по меньшей мере следующее: информация управления переключением указывает на то, что разрешено использование режима двунаправленного визуально плавного перемещения для текущего блока; режим информации о перемещении субблока не используется для текущего блока, режим комбинированного слияния между разными изображениями и предсказания внутри одного изображения (CIIP) не используется для текущего блока, и режим симметричной разности векторов перемещения (SMVD) не используется для текущего блока; двунаправленное предсказание используется для текущего блока, и два опорных кадра, соответствующих текущему блоку, получены с разных направлений, и два опорных кадра, соответствующих текущему блоку, находятся на одинаковом расстоянии от текущего сегмента; двунаправленное предсказание используется для текущего блока, и два опорных кадра, соответствующих текущему блоку, имеют одинаковый вес; значение ширины, значение высоты и значение площади текущего блока лежат в ограниченном диапазоне;when it is determined that the bidirectional visual smooth movement mode is used for the current block, motion compensation is performed based on the bidirectional visual smooth movement mode with respect to the current block, wherein when using the bidirectional visual smooth movement mode for the current block, the conditions simultaneously satisfied by the current block include at least the following: the switching control information indicates that bidirectional visual smooth movement mode is enabled for the current block; the sub-block motion information mode is not used for the current block, the combined inter-image fusion and intra-image prediction (CIIP) mode is not used for the current block, and the symmetric motion vector difference (SMVD) mode is not used for the current block; bidirectional prediction is used for the current block, and two reference frames corresponding to the current block are received from different directions, and two reference frames corresponding to the current block are at the same distance from the current segment; bidirectional prediction is used for the current block, and two reference frames corresponding to the current block have the same weight; The width value, height value and area value of the current block are in a limited range; причем текущий блок содержит один или более субблоков, выполнение компенсации перемещения на основании режима двунаправленного визуально плавного перемещения в отношении текущего блока содержит:wherein the current block contains one or more sub-blocks, performing motion compensation based on the bidirectional visually smooth motion mode with respect to the current block comprises: для каждого субблока из одного или более субблоков, включенных в текущий блок, определяют искомое значение предсказания субблока; и определяют значение предсказания текущего блока на основании искомых значений предсказания всех субблоков, включенных в текущий блок;for each subblock of one or more subblocks included in the current block, determining the desired subblock prediction value; and determining a prediction value of the current block based on the desired prediction values of all sub-blocks included in the current block; причем способ дополнительно содержит:wherein the method additionally contains: для каждого субблока из одного или более субблоков, включенных в текущий блок, определение того, удовлетворяет ли текущий субблок конкретному условию, причем, если текущий субблок удовлетворяет конкретному условию, выходят из процесса выполнения компенсации предсказания для субблока на основании двунаправленного визуально плавного перемещения, причем процесс выполнения компенсации предсказания для субблока на основании двунаправленного визуально плавного перемещения содержит:for each sub-block of one or more sub-blocks included in the current block, determining whether the current sub-block satisfies the particular condition, wherein, if the current sub-block satisfies the particular condition, exiting the process of performing prediction compensation for the sub-block based on the bi-directional visual smooth movement, wherein the process performing prediction compensation for a subblock based on bidirectional visually smooth movement comprises: для указанного субблока определение первого исходного значения предсказания и второго исходного значения предсказания субблока; определение искомого значения предсказания каждого блока 4×4 в субблоке на основании первого исходного значения предсказания и второго исходного значения предсказания субблока, определение искомого значения предсказания субблока на основании искомого значения предсказания каждого блока 4×4 в субблоке.for the specified sub-block, determining a first prediction initial value and a second prediction original value of the sub-block; determining a prediction search value of each 4×4 block in the sub-block based on the first prediction original value and the second sub-block prediction initial value, determining a sub-block prediction search value based on the prediction search value of each 4×4 block in the sub-block. 2. Способ по п. 1, в котором определение искомого значения предсказания субблока содержит: определение первого исходного значения предсказания и второго исходного значения предсказания субблока; определение горизонтальной скорости субблока на основании первого исходного значения предсказания и второго исходного значения предсказания; определение вертикальной скорости субблока на основании первого исходного значения предсказания и второго исходного значения предсказания; получение значения компенсации предсказания субблока на основании горизонтальной скорости и вертикальной скорости; получение искомого значения предсказания субблока на основании первого исходного значения предсказания, второго исходного значения предсказания и значения компенсации предсказания.2. The method according to claim 1, wherein determining the desired sub-block prediction value comprises: determining a first prediction initial value and a second sub-block prediction initial value; determining the horizontal speed of the sub-block based on the first prediction original value and the second prediction original value; determining the vertical speed of the sub-block based on the first prediction original value and the second prediction original value; obtaining a sub-block prediction compensation value based on the horizontal speed and vertical speed; obtaining a desired sub-block prediction value based on the first prediction original value, the second prediction original value, and the prediction compensation value. 3. Способ по п. 1, в котором определение того, следует ли выйти из процесса выполнения компенсации предсказания для субблока на основании двунаправленного визуально плавного перемещения согласно взаимосвязи между значением SAD субблока и пороговым значением субблока; причем значение SAD субблока представляет собой сумму абсолютных значений разностей двукратно огрубленного по вертикали значения предсказания первого блока предсказания и двукратно огрубленного по вертикали значения предсказания второго блока предсказания; причем первый блок предсказания представляет собой блок предсказания, соответствующий субблоку, полученному по первому опорному кадру согласно первому вектору перемещения текущего блока, а второй блок предсказания представляет собой блок предсказания, соответствующий субблоку, полученному по второму опорному кадру согласно второму вектору перемещения текущего блока.3. The method of claim 1, wherein determining whether to exit the process of performing prediction compensation for the subblock based on the bidirectional visual smooth movement according to the relationship between the SAD value of the subblock and the subblock threshold value; wherein the SAD value of the subblock is the sum of the absolute values of the differences between the vertically scaled prediction value of the first prediction block and the vertically scaled prediction value of the second prediction block; wherein the first prediction block is a prediction block corresponding to a subblock obtained from the first reference frame according to the first motion vector of the current block, and the second prediction block is a prediction block corresponding to the subblock obtained from the second reference frame according to the second motion vector of the current block. 4. Способ по п. 1, в котором4. The method according to claim 1, in which для условий, состоящих в том, что для текущего блока используют двунаправленное предсказание, два опорных кадра, соответствующих текущему блоку, получены с разных направлений, и два опорных кадра, соответствующих текущему блоку, находятся на одинаковом расстоянии от текущего сегмента, если номер текущего сегмента в последовательности отображения равен РОС, а номера двух опорных кадров, соответствующих текущему блоку, в последовательности отображения равны, соответственно, РОС0 и РОС1, то, когда (РОС-РОС0)×(РОС-РОС1)<0, считают, что два опорных кадра получены с разных направлений, и, когда значение (РОС-РОС0) равно значению (РОС1-РОС), считают, что расстояния между двумя опорными кадрами и текущим сегментом равны;for the conditions that bidirectional prediction is used for the current block, two reference frames corresponding to the current block are received from different directions, and two reference frames corresponding to the current block are at the same distance from the current segment if the current segment number in display sequence is equal to POC, and the numbers of two reference frames corresponding to the current block in the display sequence are equal to POC0 and POC1, respectively, then when (POC-POC0)×(POC-POC1)<0, two reference frames are considered to have been received from different directions, and when the value of (POC-POC0) is equal to the value of (POC1-POC), the distances between the two reference frames and the current segment are considered to be equal; причем, если два опорных кадра, соответствующих текущему блоку, имеют одинаковый вес, то разрешено использование способа взвешенного предсказания на уровне кадра для текущего сегмента, а два веса текущего сегмента точно равны; и разрешено использование способа взвешенного предсказания на уровне блока, Bi-предсказания со взвешиванием на основе CU (block-level weighted prediction method Bi-prediction with CU based weighting), для текущего блока, а два веса текущего блока точно равны;moreover, if two reference frames corresponding to the current block have the same weight, then the frame-level weighted prediction method is enabled for the current segment, and the two weights of the current segment are exactly equal; and block-level weighted prediction method Bi-prediction with CU based weighting is allowed to be used for the current block, and the two weights of the current block are exactly equal; причем, если режим информации о перемещении субблока не используется для текущего блока, то аффинный режим не используется для текущего блока, и режим временного предсказания вектора перемещения на основе субблока не используется для текущего блока; причем аффинный режим представляет собой режим с использованием модели аффинного перемещения, а режим временного предсказания вектора перемещения на основе субблока представляет собой режим с получением информации о перемещении всего блока во временной области;wherein, if the sub-block motion information mode is not used for the current block, then the affine mode is not used for the current block, and the sub-block-based temporary motion vector prediction mode is not used for the current block; wherein the affine mode is a mode using an affine movement model, and the sub-block-based movement vector temporal prediction mode is a mode with obtaining movement information of the entire block in the time domain; причем, если значение ширины, значение высоты и значение площади текущего блока лежат в ограниченном диапазоне, то значение ширины текущего блока больше или равно 8, значение высоты текущего блока больше или равно 8, и произведение значения ширины и значения высоты текущего блока больше или равно 128.Moreover, if the width value, height value and area value of the current block are in a limited range, then the width value of the current block is greater than or equal to 8, the height value of the current block is greater than or equal to 8, and the product of the width value and the height value of the current block is greater than or equal to 128 . 5. Декодирующий аппарат, выполненный с возможностью реализации способа по любому из пп. 1-4.5. A decoding apparatus configured to implement the method according to any one of claims. 1-4. 6. Устройство декодирования видеоданных, содержащее процессор и машиночитаемый носитель информации, причем машиночитаемый носитель информации выполнен с возможностью хранения машиноисполняемых инструкций, которые могут быть исполнены процессором;6. A video data decoding device, comprising a processor and a computer-readable storage medium, wherein the computer-readable storage medium is configured to store computer-executable instructions that can be executed by the processor; процессор выполнен с возможностью исполнения машиноисполняемых инструкций для реализации способа по любому из пп. 1-4.the processor is configured to execute computer-executable instructions for implementing the method according to any one of claims. 1-4. 7. Электронное устройство для получения искомого значения предсказания субблока, который используется при дальнейшем декодировании видеоданных, содержащее процессор; и7. An electronic device for obtaining the desired subblock prediction value, which is used in further decoding of video data, containing a processor; And память для хранения инструкций, которые могут быть исполнены процессором;memory for storing instructions that can be executed by the processor; причем процессор выполнен с возможностью реализации способа по любому из пп. 1-4.wherein the processor is configured to implement the method according to any one of claims. 1-4. 8. Долговременный носитель информации, выполненный с возможностью хранения инструкций, которые, при исполнении их процессором, обеспечивают реализацию процессором способа по любому из пп. 1-4.8. A long-term storage medium configured to store instructions that, when executed by a processor, ensure that the processor implements the method according to any one of claims. 1-4.
RU2023110956A 2019-06-21 2020-06-17 Method for obtaining required sub-block prediction value, decoding device, video data decoding device, electronic device and long-term information carrier RU2809504C1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910544562.5 2019-06-21

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
RU2021137358A Division RU2795888C1 (en) 2019-06-21 2020-06-17 Method, apparatus and device for coding and decoding

Publications (1)

Publication Number Publication Date
RU2809504C1 true RU2809504C1 (en) 2023-12-12

Family

ID=

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8045616B2 (en) * 2002-07-15 2011-10-25 Mitsubishi Denki Kabushiki Kaisha Image coding device, image coding method, image decoding device, image decoding method and communication apparatus
US9078007B2 (en) * 2008-10-03 2015-07-07 Qualcomm Incorporated Digital video coding with interpolation filters and offsets
KR20150120667A (en) * 2014-04-18 2015-10-28 주식회사 씬멀티미디어 Method and device for video encoding
US9584823B2 (en) * 2011-04-20 2017-02-28 Qualcomm Incorporated Determining motion vectors for motion vector prediction based on motion vector type in video coding
RU2624560C2 (en) * 2012-03-16 2017-07-04 Квэлкомм Инкорпорейтед Motion vector coding and bi-prediction in hevc and its extensions
JP6273828B2 (en) * 2013-12-24 2018-02-07 富士通株式会社 Image coding apparatus, image coding method, image decoding apparatus, and image decoding method
KR20190046704A (en) * 2017-10-26 2019-05-07 한국전자통신연구원 Method and apparatus for asymmetric sub-block based video encoding/decoding

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8045616B2 (en) * 2002-07-15 2011-10-25 Mitsubishi Denki Kabushiki Kaisha Image coding device, image coding method, image decoding device, image decoding method and communication apparatus
US9078007B2 (en) * 2008-10-03 2015-07-07 Qualcomm Incorporated Digital video coding with interpolation filters and offsets
US9584823B2 (en) * 2011-04-20 2017-02-28 Qualcomm Incorporated Determining motion vectors for motion vector prediction based on motion vector type in video coding
RU2624560C2 (en) * 2012-03-16 2017-07-04 Квэлкомм Инкорпорейтед Motion vector coding and bi-prediction in hevc and its extensions
JP6273828B2 (en) * 2013-12-24 2018-02-07 富士通株式会社 Image coding apparatus, image coding method, image decoding apparatus, and image decoding method
KR20150120667A (en) * 2014-04-18 2015-10-28 주식회사 씬멀티미디어 Method and device for video encoding
KR20190046704A (en) * 2017-10-26 2019-05-07 한국전자통신연구원 Method and apparatus for asymmetric sub-block based video encoding/decoding

Similar Documents

Publication Publication Date Title
JP7506234B2 (en) Decoding method, decoding device, video decoding device, electronic device, and computer-readable storage medium
RU2809504C1 (en) Method for obtaining required sub-block prediction value, decoding device, video data decoding device, electronic device and long-term information carrier
RU2795888C1 (en) Method, apparatus and device for coding and decoding