RU2786383C2 - Method for skipping refinement based on similarity of insertion, when refining motion vector on decoder side based on bilinear interpolation - Google Patents

Method for skipping refinement based on similarity of insertion, when refining motion vector on decoder side based on bilinear interpolation Download PDF

Info

Publication number
RU2786383C2
RU2786383C2 RU2021110432A RU2021110432A RU2786383C2 RU 2786383 C2 RU2786383 C2 RU 2786383C2 RU 2021110432 A RU2021110432 A RU 2021110432A RU 2021110432 A RU2021110432 A RU 2021110432A RU 2786383 C2 RU2786383 C2 RU 2786383C2
Authority
RU
Russia
Prior art keywords
motion
compensated
sad
decoder
samples
Prior art date
Application number
RU2021110432A
Other languages
Russian (ru)
Other versions
RU2021110432A (en
Inventor
Срирам СЕТХУРАМАН
Джива Радж А
Original Assignee
Хуавей Текнолоджиз Ко., Лтд.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Хуавей Текнолоджиз Ко., Лтд. filed Critical Хуавей Текнолоджиз Ко., Лтд.
Publication of RU2021110432A publication Critical patent/RU2021110432A/en
Application granted granted Critical
Publication of RU2786383C2 publication Critical patent/RU2786383C2/en

Links

Images

Abstract

FIELD: video encoding.
SUBSTANCE: invention relates to means for motion compensation in encoding. Using a decoder, unrounded vectors of fusion motion are obtained between two reference insertions with motion compensation. Using the decoder, unrounded vectors of fusion motion are rounded to obtain rounded motion vectors. Using the decoder, a sum of absolute differences (hereinafter – SAD) between two reference insertions with motion compensation is calculated by motion compensation, using rounded motion vectors. Using the decoder, it is determined, whether SAD is less than a threshold value depending on a size of a coding unit (hereinafter – CU). When SAD is less than the threshold value depending on CU size, the rest stages of a process of refinement of the motion vector on a decoder side (hereinafter – DMVR) are skipped, and final motion compensation is performed. When SAD is not less than the threshold value depending on CU size, the rest stages of DMVR process are performed using unrounded vectors of fusion motion, and final motion compensation is performed.
EFFECT: increase in the efficiency of video encoding.
30 cl, 8 dwg

Description

Область техники, к которой относится изобретениеThe technical field to which the invention belongs

Настоящее изобретение относится к компенсации движения для видеокодирования с использованием уточнения вектора движения на стороне декодера. В частности, варианты осуществления настоящего изобретения относятся к способам и устройствам для проверки уровня выравнивания между опорными вставками с компенсацией движения и пропуска уточнения, когда разница между двумя опорными вставками с компенсацией движения меньше порогового значения, зависящего от размера блока кодирования.The present invention relates to motion compensation for video coding using motion vector refinement on the decoder side. In particular, embodiments of the present invention relate to methods and apparatus for checking the alignment level between motion-compensated anchor inserts and skipping refinement when the difference between two motion-compensated anchor inserts is less than a threshold value dependent on coding block size.

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

При сжатии видео внешнее предсказание является процессом использования восстановленных выборок ранее декодированных опорных изображений путем указания векторов движения относительно текущего блока. Эти векторы движения могут быть закодированы как остаток предсказания с использованием пространственных или временных предикторов вектора движения. Векторы движения могут иметь суб-пиксельную точность. Для получения значения пикселей с точностью до суб-пикселя в опорных кадрах (изображениях) из восстановленных целочисленных значений позиции, применяется фильтр интерполяции. Двунаправленное предсказание относится к процессу, в котором предсказание для текущего блока выводится как взвешенная комбинация двух блоков предсказания, полученная с использованием двух векторов движения из двух областей опорного изображения. В этом случае, помимо векторов движения, также необходимо кодировать опорные индексы для опорных изображений, из которых получают два блока предсказания. Векторы движения для текущего блока также могут быть получены посредством процесса слияния, в котором векторы движения и опорные индексы пространственного соседа используются без кодирования каких-либо остатков вектора движения. В дополнение к пространственным соседям также сохраняются и используются векторы движения ранее закодированных опорных кадров в качестве временных параметров слияния с соответствующим масштабированием векторов движения, учитывая расстояние до опорных кадров относительно расстояния до опорных кадров для текущего блока.In video compression, inter-prediction is the process of using reconstructed samples of previously decoded reference pictures by specifying motion vectors relative to the current block. These motion vectors may be encoded as a prediction residual using spatial or temporal motion vector predictors. The motion vectors may have sub-pixel precision. An interpolation filter is applied to obtain sub-pixel accurate pixel values in reference frames (images) from the reconstructed integer position values. Bidirectional prediction refers to a process in which a prediction for a current block is output as a weighted combination of two prediction blocks obtained using two motion vectors from two regions of a reference image. In this case, in addition to the motion vectors, it is also necessary to encode the reference indices for the reference pictures from which two prediction blocks are obtained. The motion vectors for the current block may also be obtained through a merge process in which the motion vectors and reference spatial neighbor indices are used without encoding any motion vector residuals. In addition to the spatial neighbors, the motion vectors of the previously encoded reference frames are also stored and used as temporal merge parameters, with the motion vectors scaled accordingly considering the distance to the reference frames relative to the distance to the reference frames for the current block.

Фиг. 1 показывает схему получения вектора движения на стороне декодера на основании сопоставления шаблона, где шаблон текущего блока сопоставляется с опорным шаблоном в опорным изображении. Со ссылкой на фиг. 1, сопоставление с шаблоном используется для получения информации о движении текущего блока кодирования (CU) путем нахождения наиболее близкого совпадения между шаблоном (верхними и/или левыми соседними блоками текущего CU) в текущем изображении (обозначен «Cur Pic») и блоком, имеющий тот же размер, что и шаблон в опорном кадре (обозначен «Ref0»).Fig. 1 shows a motion vector acquisition scheme at the decoder side based on pattern matching, where the pattern of the current block is matched with a reference pattern in the reference picture. With reference to FIG. 1, pattern matching is used to obtain motion information of the current coding unit (CU) by finding the closest match between the pattern (top and/or left adjacent blocks of the current CU) in the current picture (denoted "Cur Pic") and the block having that the same size as the pattern in the reference frame (denoted "Ref0").

Фиг. 2 показывает получение вектора движения на стороне декодера на основании двунаправленного сопоставления, где предсказывается текущий блок с использованием двух опорных блоков по траектории движения. Со ссылкой на фиг. 2 получают информацию о движении текущего блока (обозначенного «Cur block») на основании двух опорных изображений Ref0 и Ref1. Информация о движении текущего блока Cur block получается путем нахождения наилучшего совпадения между двумя блоками, ассоциированными с векторами MV0 и MV1 движения по траектории движения в опорных изображениях Ref0 и Ref1. Когда траектория движения является прямой линией, вектор MV0 движения, ассоциированный с опорным изображением Ref0, и вектор MV1 движения, ассоциированный с опорным изображением Ref1, пропорциональны временным расстояниям TD0 и TD1 между текущим изображением и соответствующими опорными изображениями Ref0 и Ref1.Fig. 2 shows decoder-side motion vector acquisition based on bi-directional matching, where the current block is predicted using two motion path reference blocks. With reference to FIG. 2 obtain motion information of the current block (denoted "Cur block") based on two reference pictures Ref0 and Ref1. The motion information of the current Cur block is obtained by finding the best match between the two blocks associated with motion vectors MV0 and MV1 along the motion path in reference pictures Ref0 and Ref1. When the motion path is a straight line, the motion vector MV0 associated with the reference picture Ref0 and the motion vector MV1 associated with the reference picture Ref1 are proportional to the temporal distances TD0 and TD1 between the current picture and the respective reference pictures Ref0 and Ref1.

Было предложено несколько способов для выполнения уточнения или получения вектора движения на стороне декодера, так что могут быть дополнительно уменьшены биты кодирования остаточного вектора движения. Один класс способов, называемый способами сопоставления с шаблоном (TM), использует L-образную область, примыкающую к текущему блоку (как показано на фиг. 1), который уже был восстановлен, называемый шаблоном, и определяет наилучшее сопоставление L-образной области (с использованием функций стоимости, таких как сумма абсолютных разностей или средне уменьшенная сумма абсолютных разностей) в каждом опорном кадре с использованием множества масштабированных кандидатов пространственных и временных векторов движения. Затем, с центром на наиболее подходящем кандидате выполняется дополнительное уточнение в пределах конкретного расстояния уточнения вокруг этого центра. На стороне кодера рассчитывается оптимизированная стоимость к искажению для принятия решения использовать унифицированное предсказание (т.е. предсказание с использованием ссылки на наилучшее соответствия) и двойным предсказанием (т.е. предсказание, полученное путем усреднения двух самых наилучших сопоставлений).Several methods have been proposed for performing motion vector refinement or derivation at the decoder side, so that residual motion vector coding bits can be further reduced. One class of methods, called template matching (TM) methods, uses an L-shaped region adjacent to the current block (as shown in FIG. 1) that has already been reconstructed, called a template, and determines the best L-shaped region matching (with using cost functions such as sum of absolute differences or mean reduced sum of absolute differences) in each reference frame using a plurality of scaled spatial and temporal motion vector candidates. Then, centered on the most suitable candidate, an additional refinement is performed within a specific refinement distance around that center. At the encoder side, an optimized cost to distortion is calculated to decide whether to use unified prediction (i.e., prediction using the best match reference) and dual prediction (i.e., prediction obtained by averaging the two best matches).

Другой класс способов, называемые способами двунаправленного сопоставления (BM), извлекает информацию о движении текущего блока кодирования (CU) путем нахождения наиболее близкого совпадения между двумя блоками по траектории движения текущего CU в двух разных опорных изображениях. Это показано на фиг. 2. В предположении непрерывной траектории движения векторы MV0 и MV1 движения, указывающие на два опорных блока, должны быть пропорциональны временным расстояниям, то есть, TD0 и TD1, между текущим изображением и двумя опорными изображениями. Когда текущее изображение является временным между двумя опорными изображениями и временное расстояние от текущего изображения до двух опорных изображений одинаково, двунаправленное сопоставление становится зеркальным вектором движения (MV) двунаправленного предсказания.Another class of methods, called bi-directional matching (BM) methods, extracts motion information of the current coding unit (CU) by finding the closest match between two blocks along the current CU's motion path in two different reference pictures. This is shown in FIG. 2. Assuming a continuous motion path, the motion vectors MV0 and MV1 pointing to two reference blocks should be proportional to the time distances, that is, TD0 and TD1, between the current picture and the two reference pictures. When the current picture is temporal between two reference pictures and the temporal distance from the current picture to the two reference pictures is the same, bidirectional matching becomes a mirror motion vector (MV) of bidirectional prediction.

В режиме слияния с двунаправленным сопоставлением всегда применяется двунаправленное предсказание, поскольку получают информацию о движении CU на основании наиболее близкого совпадения между двумя блоками по траектории движения текущего CU в двух разных опорных изображениях.In the bidirectional matching merge mode, bidirectional prediction is always applied because motion information of the CU is obtained based on the closest match between two blocks along the current CU's motion path in two different reference pictures.

Для различия режимов может сигнализироваться явный режим слияния для указания слияния с сопоставлением с шаблоном или слияния с двунаправленным сопоставлением, который не требует получения вектора движения на стороне декодера.For mode difference, an explicit merge mode may be signaled to indicate pattern-matching merge or bi-directional matching merge, which does not require decoder-side motion vector acquisition.

В режиме двунаправленного сопоставления временные расстояния игнорируются, и выполняется двунаправленное сопоставление с равными и противоположными векторами движения в прошлых и будущих опорных кадрах соответственно.In the bi-directional matching mode, temporal distances are ignored and bi-directional matching is performed with equal and opposite motion vectors in past and future reference frames, respectively.

В некоторых случаях индекс слияния не сигнализируется, в то время как в других случаях для упрощения выполнения процесса множественных компенсаций движения декодера сигнализируется явный индекс слияния.In some cases, the merge index is not signaled, while in other cases, an explicit merge index is signaled to facilitate the decoder's multiple motion compensation process.

В варианте режима двунаправленного сопоставления, называемого способом уточнения вектора движения на стороне декодера (DMVR), сначала формируется двунаправленный усредненный шаблон с использованием блоков предсказания в списках L0 и L1 ссылок, полученных из явно сигнализированного индекса слияния, и выполняется двунаправленное сопоставление с шаблоном. При наличии движения обновляется шаблон. Кроме того, в некоторых случаях выполняется уточнение в одной ссылке и вектор движения в другой ссылке получается посредством зеркального отражения этого уточненного вектора движения. Уточнение чередуется между двумя ссылками до тех пор, пока либо на центральной позиции не будет наименьшая ошибка, либо не будет достигнуто максимальное количество итераций.In a variant of the bi-directional matching mode called decoder-side motion vector refinement (DMVR) method, a bi-directional averaged pattern is first generated using prediction blocks in the link lists L0 and L1 obtained from the explicitly signaled merge index, and bi-directional pattern matching is performed. If there is motion, the template is updated. Also, in some cases, a refinement is performed in one link and a motion vector in another link is obtained by mirroring that refined motion vector. The refinement alternates between the two links until either the center position has the smallest error or the maximum number of iterations is reached.

В некоторых процессах уточнения сначала выполняется уточнение CU уровня. Затем выполняется оценка множества кандидатов на суб-CU уровне вместе с уточненными MVs на CU уровне в качестве кандидатов. В других процессах уточнения каждый суб-CU может выполнять свое собственное уточнение относительно наиболее подходящего кандидата.In some refinement processes, the CU level refinement is performed first. Then, a set of candidates at the sub-CU level are evaluated along with the refined MVs at the CU level as candidates. In other refinement processes, each sub-CU may perform its own refinement on the most suitable candidate.

Учитывая неявный процесс уточнения или получения на стороне декодера, кодер должен выполнять эти этапы точно так же, как и декодер, чтобы процесс восстановления на стороне кодера был аналогичен процессу восстановления на стороне декодера.Given the implicit refinement or acquisition process at the decoder side, the encoder must perform these steps in exactly the same way as the decoder, so that the recovery process at the encoder side is similar to the recovery process at the decoder side.

Во время процесса уточнения или получения вектора движения на стороне декодера обычно используются только выборки яркости. Однако цветность также компенсируется движением с использованием окончательных уточняющих векторов движения (подходящим образом масштабированных для учета любой понижающей дискретизации цветности), которые используются для компенсации движения яркости.During the motion vector refinement or derivation process on the decoder side, typically only luma samples are used. However, chroma is also motion-compensated using the final motion refinement vectors (appropriately scaled to account for any chroma downsampling) that are used to compensate for luminance motion.

Поскольку векторы движения слияния являются точными до суб-пикселей, обычно сначала выполняется уточнение на целочисленном расстоянии от соответствующих векторов движения слияния с точностью до суб-пикселей в каждой ссылке. Поскольку нормативная компенсация движения требует больших вычислительных ресурсов, способ билинейной интерполяции обычно используется для формирования интерполированных значений выборки, необходимых для выполнения уточнения целочисленного расстояния. В других способах предшествующего уровня техники предлагалось использовать значения функции стоимости, оцененные на позициях целочисленного расстояния, и значение функции стоимости на позиции с наименьшими затратами, когда уточнение заканчивается, для получения поверхности параметрической ошибки, с использованием которой оцениваются коррекции вектора движения дельты суб-пикселя. После получения коррекций вектора движения в каждой ссылке, на основании окончательного целого расстояния плюс суб-пиксель, выполняется конечная нормативная компенсация движения.Because the fusion motion vectors are sub-pixel accurate, it is common to first refine at an integer distance from the corresponding fusion motion vectors to sub-pixel precision in each link. Because normative motion compensation is computationally intensive, a bilinear interpolation method is typically used to generate the interpolated sample values needed to perform integer distance refinement. Other prior art methods have suggested using the cost function values estimated at integer distance positions and the cost function value at least cost positions when refinement ends to obtain a parametric error surface against which sub-pixel delta motion vector corrections are estimated. After receiving the motion vector corrections in each link, based on the final integer distance plus sub-pixel, the final normative motion compensation is performed.

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

Варианты осуществления настоящего изобретения относятся к способам и устройствам для определения уровня выравнивания между опорными вставками с компенсацией движения с заданным пороговым значением, зависящим от размера блока кодирования. Путем определения уровня выравнивания между опорными вставками с компенсацией движения относительно заданного порогового значения, зависящего от размера блока кодирования, могут быть сохранены вычислительные операции итераций уточнения вектора движения на стороне декодера, тем самым, снижая энергопотребление в видеодекодере.Embodiments of the present invention relate to methods and apparatus for determining an alignment level between motion-compensated support inserts with a predetermined threshold value dependent on the coding block size. By determining the alignment level between motion-compensated reference inserts with respect to a predetermined threshold value dependent on the coding block size, computational operations of motion vector refinement iterations on the decoder side can be saved, thereby reducing power consumption in the video decoder.

Обеспечиваются способы и устройства определения уровня выравнивания между опорными вставками с компенсацией движения для уменьшения этапов уточнения вектора движения. Согласно одному из способов видеодекодер определяет уровень выравнивания путем округления векторов движения слияния, вычисляет сумму абсолютных разностей (SAD) между двумя опорными вставками с компенсацией движения, выполняя простую компенсацию движения с использованием округленных векторов движения, и определяет, является ли SAD меньше порогового значения, зависящего от размера CU. Когда SAD меньше порогового значения, зависящего от размера CU, декодер пропускает оставшиеся этапы обработки вектора движения на стороне декодера и выполняет окончательную компенсацию движения, используя неокругленные векторы движения слияния. В одном варианте осуществления неокругленные векторы движения слияния могут быть округлены до ближайшей позиции целочисленной выборки в горизонтальном направлении и в вертикальном направлении, и окончательная компенсация движения включает в себя выполнение усреднения целочисленных выборок позиции. В другом варианте осуществления неокругленные векторы движения слияния могут быть округлены до ближайшей позиции выборки полупикселя в горизонтальном направлении и в вертикальном направлении для получения позиции выборки полупикселя, и окончательная компенсация движения включает в себя выполнение усреднения позиции выборки полупикселя. Способ имеет преимущество в том, что всякий раз, когда SAD меньше заданного порогового значения, видеодекодер определяет, что уровень выравнивания между опорными вставками с компенсацией движения является приемлемым, и видеодетектор может пропустить процессы уточнения вектора движения, такие как билинейная интерполяция, определение среднего значения, уточнение функций оценки стоимости и другие этапы процесса для экономии временных циклов и снижения энергопотребления. В другом способе видеодекодер вычисляет SAD между двумя опорными вставками с компенсацией движения, используя поднабор выборок из билинейной интерполяции с компенсацией движения с использованием векторов движения слияния с точностью до суб-пикселей. Затем SAD сравнивается с пороговым значением, зависящим от размера блока кодирования (CU). Битовая глубина порогового значения, зависящего от размера блока кодирования, может корректироваться согласно битовой глубине интерполированных выборок. Вычисляя только SAD с использованием подмножества интерполированных выборок, способ преимущественно требует меньшего количества операций (циклов обработки). В еще одном способе декодер вычисляет среднее уменьшенную SAD (MR-SAD) между интерполированными выборками с компенсацией движения в центральных позициях соответствующих опорных вставок с компенсацией движения и определяет, меньше ли MR-SAD порогового значения, зависящего от размера CU. В этом способе вычисляют MR-SAD для центральных позиций двух опорных вставок с компенсацией движения там, где начинается уточнение. Когда MR-SAD для центральных позиций меньше порогового значения, зависящего от размера CU, видеодекодер пропускает оставшуюся часть процесса уточнения вектора движения на стороне декодера. Способ внешнего предсказания содержит: получение первой опорной вставки с компенсацией движения и второй опорной вставки с компенсацией движения, основанный на исходных векторах движения режима слияния; вычисление значения разности вставок между первой опорной вставкой с компенсацией движения и второй опорной вставкой с компенсацией движения; получение значения предсказания текущего блока на основании исходных векторов движения в случае, если значение разности вставок меньше порогового значения, в котором пороговое значение определяется на основании размера текущего блока; и уточнение исходных векторов движения для получения значения предсказания текущего блока в случае, если значение разности вставок больше или равно пороговому значению. В возможной реализации получают исходные векторы движения из векторов движения соседнего блока текущего блока. В возможной реализации исходные векторы движения содержат первый вектор движения и второй вектор движения, в котором получают первая опорная вставка с компенсацией движения согласно первому вектору движения, и вторая опорная вставка с компенсацией движения получается согласно второму вектору движению. В возможной реализации значение разности вставок представляет собой значение SAD или значение среднее уменьшенную SAD. В возможной реализации вычисление значения разности вставки между первой опорной вставкой с компенсацией движения и второй опорной вставкой с компенсацией движения содержит: вычисление значения разности вставки между подмножеством выборок первой опорной вставки с компенсацией движения и соответствующими выборками подмножества второй опорной вставки с компенсацией движения. В возможной реализации после вычисления значения разности вставок между первой опорной вставкой с компенсацией движения и второй опорной вставкой с компенсацией движения, дополнительно содержит: выполнение сравнения на основании значения разности вставок и порогового значения. В возможной реализации перед выполнением сравнения на основании значения разности вставок и порогового значения, дополнительно содержит: корректировку порогового значения после определения порогового значения в соответствии с размером текущего блока. В возможной реализации в случае, если значение разности вставок меньше порогового значения, перед получением значения предсказания текущего блока на основании исходных векторов движения дополнительно содержит: определение пропуска уточнения вектора движения на стороне декодера (DMVR). В возможной реализации в случае, если значение разности вставок меньше порогового значения, получение значения предсказания текущего блока с использованием векторов движения, которые совпадают с исходными векторами движения. Устройство внешнего предсказания, содержащее: постоянную память, в которой хранятся исполняемые процессором инструкции; и процессор, соединенный с памятью, выполненный с возможностью выполнять исполняемые процессором инструкции, для упрощения способа согласно любой из возможных реализаций вышеупомянутого способа внешнего предсказания. Эти новые технологии позволяют сэкономить значительное количество итераций при уточнении вектора движения, тем самым, уменьшая временной цикл и энергопотребление видеодекодера.Methods and apparatuses are provided for determining the level of alignment between motion-compensated support inserts to reduce motion vector refinement steps. In one method, the video decoder determines the level of equalization by rounding the merging motion vectors, calculates the sum of absolute differences (SAD) between two motion-compensated reference inserts by performing simple motion compensation using the rounded motion vectors, and determines whether the SAD is less than a threshold depending on from CU size. When the SAD is less than a CU size dependent threshold, the decoder skips the remaining steps of the decoder side motion vector processing and performs final motion compensation using the unrounded merge motion vectors. In one embodiment, the unrounded merge motion vectors may be rounded to the nearest integer sample position in the horizontal direction and in the vertical direction, and the final motion compensation includes performing an average of the integer position samples. In another embodiment, the unrounded merge motion vectors can be rounded to the nearest half-pixel sample position in the horizontal direction and in the vertical direction to obtain the half-pixel sample position, and the final motion compensation includes averaging the half-pixel sample position. The method has the advantage that whenever SAD is less than a predetermined threshold, the video decoder determines that the level of alignment between motion-compensated reference inserts is acceptable, and the video detector can skip motion vector refinement processes such as bilinear interpolation, averaging, refine cost estimation functions and other process steps to save cycle times and reduce energy consumption. In another method, the video decoder computes the SAD between two motion-compensated reference inserts using a subset of samples from motion-compensated bilinear interpolation using sub-pixel-accurate merge motion vectors. The SAD is then compared to a threshold value dependent on the coding unit (CU) size. The bit depth of the threshold depending on the coding block size may be adjusted according to the bit depth of the interpolated samples. By calculating only the SAD using a subset of the interpolated samples, the method advantageously requires fewer operations (processing cycles). In yet another method, the decoder computes an average reduced SAD (MR-SAD) between the interpolated motion-compensated samples at the centers of the respective motion-compensated reference inserts and determines if the MR-SAD is less than a threshold value dependent on the CU size. In this method, the MR-SAD is calculated for the center positions of the two motion-compensated support inserts where the refinement begins. When the MR-SAD for the center positions is less than a CU size dependent threshold, the video decoder skips the rest of the decoder side motion vector refinement process. The inter prediction method comprises: deriving a first motion-compensated reference insert and a second motion-compensated reference insert based on the original merge mode motion vectors; calculating an insert difference value between the first motion-compensated support insert and the second motion-compensated support insert; obtaining a prediction value of the current block based on the original motion vectors if the insertion difference value is less than a threshold value, in which the threshold value is determined based on the size of the current block; and refining the original motion vectors to obtain a prediction value of the current block if the insertion difference value is greater than or equal to a threshold value. In an exemplary implementation, the original motion vectors are obtained from the motion vectors of a neighboring block of the current block. In an exemplary implementation, the original motion vectors comprise a first motion vector and a second motion vector in which a first motion compensated reference insert is obtained according to the first motion vector, and a second motion compensated reference insert is obtained according to the second motion vector. In an exemplary implementation, the insertion difference value is the SAD value, or the mean value of the reduced SAD. In an exemplary implementation, calculating a kerf difference value between a first motion-compensated reference insert and a second motion-compensated reference insert comprises: calculating a kerf difference value between a subset of samples of the first motion-compensated reference insert and corresponding subset samples of the second motion-compensated reference insert. In a possible implementation, after calculating the value of the insert difference between the first motion-compensated reference insert and the second motion-compensated reference insert, further comprises: performing a comparison based on the insert difference value and the threshold value. In a possible implementation, before performing a comparison based on the value of the difference between the inserts and the threshold, further comprises: adjusting the threshold after determining the threshold in accordance with the size of the current block. In a possible implementation, if the value of the insertion difference is less than the threshold value, before obtaining the prediction value of the current block based on the original motion vectors, it further comprises: determining the decoder-side motion vector refinement (DMVR) skip detection. In a possible implementation, if the insertion difference value is less than a threshold value, obtain the prediction value of the current block using motion vectors that match the original motion vectors. An external prediction device, comprising: a read-only memory that stores instructions executable by the processor; and a processor coupled to the memory, configured to execute instructions executable by the processor, to simplify the method according to any of the possible implementations of the aforementioned inter prediction method. These new technologies save a significant number of iterations in motion vector refinement, thereby reducing the cycle time and power consumption of the video decoder.

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

Фиг. 1 показывает порядок получения вектора движения на стороне декодера на основании сопоставления шаблона, где шаблон текущего блока сопоставляется с опорным шаблоном в опорным изображении.Fig. 1 shows a motion vector acquisition order at the decoder side based on pattern matching, where the pattern of the current block is matched with a reference pattern in the reference picture.

Фиг. 2 показывает порядок получения вектора движения на стороне декодера на основании двунаправленного сопоставления, где текущий блок предсказывается с использованием двух опорных блоков по траектории движения.Fig. 2 shows the motion vector acquisition order at the decoder side based on bi-directional matching, where the current block is predicted using two reference blocks along the motion path.

Фиг. 3 показывает пример двунаправленного сопоставления шаблона на основании уточнения вектора движения на стороне декодера (DMVR), где шаблон генерируется с использованием двунаправленного предсказания из блоков предсказания согласно исходным векторам MV0 и MV1 движения, и двунаправленного сопоставления шаблона для поиска наиболее совпадающих блоков согласно обновленным векторам MV0' и MV1' движения.Fig. 3 shows an example of bi-directional pattern matching based on decoder-side motion vector refinement (DMVR), where the pattern is generated using bi-directional prediction from prediction blocks according to original motion vectors MV0 and MV1, and bi-directional pattern matching to find the best matching blocks according to updated vectors MV0' and MV1' movements.

Фиг. 4 является упрощенной блок-схемой алгоритма, иллюстрирующей способ определения уровня выравнивания между опорными вставками с компенсацией движения согласно варианту осуществления настоящего изобретения, где условный пропуск этапов процесса уточнения основан на функции стоимости на основании позиции цельно численного округления.Fig. 4 is a simplified flowchart illustrating a method for determining an alignment level between motion-compensated support inserts according to an embodiment of the present invention, where conditional skipping of refinement process steps is based on a cost function based on integer rounding position.

Фиг. 5 показывает упрощенную блок-схему алгоритма способа, использующего верификацию на стороне декодера, проверку или определение уровня выравнивания между вставками с компенсацией движения согласно варианту осуществления настоящего изобретения, где условный пропуск этапов процесса уточнения основан на сумме абсолютных разностей между двумя опорными вставками с компенсацией движения с использованием подмножества интерполированных выборок с компенсацией движения.Fig. 5 shows a simplified flowchart of a method using decoder-side verification, checking, or determining an alignment level between motion-compensated inserts according to an embodiment of the present invention, where the conditional skipping of steps in the refinement process is based on the sum of the absolute differences between two motion-compensated reference inserts with using a subset of interpolated samples with motion compensation.

Фиг. 6 показывает упрощенную блок-схему алгоритма способа, использующего верификацию на стороне декодера, проверку или определение уровня выравнивания между вставками с компенсацией движения согласно варианту осуществления настоящего изобретения, где условный пропуск этапов процесса уточнения основан на среднее уменьшенной сумме абсолютных разностей между интерполированными выборками с компенсацией движения на центральных позициях соответствующих опорных вставок с компенсацией движения.Fig. 6 shows a simplified flowchart of a method using decoder-side verification, checking, or determining an alignment level between motion-compensated inserts according to an embodiment of the present invention, where the conditional skipping of steps in the refinement process is based on the average of the reduced sum of absolute differences between motion-compensated interpolated samples. at the center positions of the respective support inserts with motion compensation.

Фиг. 7 является блок-схемой, показывающей примерную структуру системы 3100 поставки контента, которая реализует услугу доставки контента.Fig. 7 is a block diagram showing an exemplary structure of a content delivery system 3100 that implements a content delivery service.

Фиг. 8 является блок-схемой, показывающей структуру примера оконечного устройства.Fig. 8 is a block diagram showing the structure of an example terminal.

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

Настоящее изобретение относится к стандарту универсального кодирования видео, который ранее рассматривался, как совместная исследовательская модель (JEM) в рамках совместной группы исследования видео, которая является совместной работой Q16 VCEG и MPEG (SC29/WG11). Документ JVET-G1001 и другие предшествующие технические решения Huawei, касающиеся уточнения вектора движения на стороне декодера и получения вектора движения на стороне декодера, можно использовать для получения списка дополнительных документов и патентов, относящихся к настоящему изобретению.The present invention relates to a universal video coding standard previously considered as a Joint Research Model (JEM) within the Joint Video Research Group which is a joint work of Q16 VCEG and MPEG (SC29/WG11). Document JVET-G1001 and other Huawei prior art regarding decoder-side motion vector refinement and decoder-side motion vector acquisition can be used to obtain a list of additional documents and patents related to the present invention.

Как объяснялось выше, выполнение процесса двунаправленного сопоставления повышает уровень сопоставления между блоками с компенсацией движения в двух опорных изображениях, задействованных в двунаправленном предсказании. Чтобы избежать кодирования дополнительного флага, предпочтительное решение предусматривает аспект, в котором для всех блоков кодирования в режиме слияния было предусмотрено уточнение вектора движения на стороне декодера. Однако следует отметить, что довольно большое количество блоков кодирования уже имеют очень хорошее выравнивание по векторам движения в режиме слияния и не имеют большого пространства для улучшения посредством уточнения. Поскольку уточнение включает в себя выполнение оценок функции стоимости на множестве позиций в пределах диапазона уточнения, то не выполнение этих операций, в случае возможного улучшения, может привести к значительному снижению средней сложности декодера, что может быть преобразовано в такие атрибуты, как увеличение срока службы батареи или более низкое потребление энергии. В некоторых способах предшествующего уровня техники предлагалось пропустить уточнение, если уровень выравнивания между двумя нормативными вставками с компенсацией движения, полученными из векторов движения слияния в блоках кодирования режима слияния с двунаправленным предсказанием, меньше заданного порогового значения для каждого размера блока кодирования. Однако, учитывая тот факт, что для получения выборок, используемых для выполнения уточнения, обычно используется билинейная интерполяция, в предшествующем уровне техники по-прежнему потребуется нормативная компенсация движения для проверки возможности пропуска уточнения, билинейная интерполяция для выполнения уточнения и окончательная нормативная компенсация движения с векторами движения уточнения с точностью до суб-пикселя. Поскольку нормативные 8-отводные фильтры интерполяции являются довольно дорогостоящими с точки зрения вычислений, выполнение интерполяционной фильтрации дважды увеличивает сложность наихудшего случая, чем без теста на пропуск уточнения. Кроме того, с точки зрения аппаратной синхронизации, сумма оценки абсолютной разности добавляет зависимый этап, который уменьшает тактовые частоты, доступные для уточнения.As explained above, performing the bi-directional matching process increases the level of matching between motion-compensated blocks in the two reference pictures involved in bi-directional prediction. In order to avoid encoding an additional flag, the preferred solution provides for an aspect in which motion vector refinement on the decoder side has been provided for all coding blocks in the merge mode. However, it should be noted that a fairly large number of coding blocks already have very good motion vector alignment in the merge mode and do not have much room for improvement through refinement. Since refinement involves performing cost function estimates on multiple positions within the refinement range, not performing these operations, if improved, could result in a significant reduction in the average complexity of the decoder, which can be translated into attributes such as increased battery life. or lower power consumption. Some prior art methods have suggested skipping refinement if the level of alignment between two normative motion-compensated inserts derived from fusion motion vectors in bidirectional fusion mode coding blocks is less than a predetermined threshold value for each coding block size. However, given the fact that bilinear interpolation is typically used to obtain the samples used to perform the refinement, the prior art would still require normative motion compensation to test for the possibility of missing refinement, bilinear interpolation to perform refinement, and final normative motion compensation with vectors motion refinement with sub-pixel precision. Since normative 8-tap interpolation filters are quite computationally expensive, performing interpolation filtering doubles the worst-case complexity than without the refinement skip test. Also, from a hardware timing point of view, the sum of the absolute difference estimate adds a dependent step that reduces the clock frequencies available for refinement.

Следовательно, необходимо гармонизировать концепцию проверки на возможность пропуска итераций уточнения без увеличения циклов интерполяции (по сравнению с уточнением на основании билинейной интерполяции с окончательной точной компенсацией движения с использованием уточненных векторов движения) и без ухудшения наихудшего случая ограничения синхронизации для аппаратных реализаций.Therefore, it is necessary to harmonize the concept of checking for the possibility of skipping refinement iterations without increasing interpolation cycles (compared to refinement based on bilinear interpolation with final fine motion compensation using refined motion vectors) and without worsening the worst-case timing constraint for hardware implementations.

Уточнение вектора движения (MV) представляет собой поиск MV на основании шаблона с критерием стоимости сопоставления или стоимости сопоставления с шаблоном. В текущей разработке поддерживаются два шаблона поиска - неограниченный ромбовидный поиск с центральным смещением (UCBDS) и адаптивный перекрестный поиск для уточнения MV на CU и суб-CU уровне, соответственно. Для уточнения MV как на CU уровне, так и на суб-CU уровне, осуществляется поиск MV непосредственно с точностью MV четверти выборки яркости, после чего выполняется уточнение MV одной восьмой выборки яркости. Диапазон поиска уточнения MV для CU и суб-CU шага устанавливается равным 8 выборкам яркости.Motion vector (MV) refinement is a search for MV based on a template with a criterion of cost of matching or cost of matching with a template. In current development, two search patterns are supported - unrestricted center-shifted diamond search (UCBDS) and adaptive cross-search for MV refinement at CU and sub-CU level, respectively. For MV refinement at both the CU level and the sub-CU level, the MV is searched directly with the MV accuracy of a quarter luminance sample, after which the MV refinement of one eighth luma sample is performed. The MV refinement search range for CU and sub-CU pitch is set to 8 luma samples.

В операции двунаправленного предсказания для предсказания области одного блока два блока предсказания, сформированные с использованием MV list0 и MV list1, соответственно, объединяются для формирования одного сигнала предсказания. В способе уточнения вектора движения на стороне декодера (DMVR) дополнительно уточняются два вектора движения двунаправленного предсказания посредством процесса двунаправленного сопоставления шаблонов. Для выполнения поиска на основании искажения между двунаправленным шаблоном и выборками восстановления в опорных изображениях в декодере применяется двунаправленное сопоставление шаблонов для получения уточненного MV без передачи дополнительной информации о движении.In the bidirectional prediction operation for predicting a one-block area, two prediction blocks generated using MV list0 and MV list1, respectively, are combined to generate one prediction signal. In a decoder side motion vector refinement (DMVR) method, two bidirectional prediction motion vectors are further refined by a bidirectional pattern matching process. To search based on distortion between the bi-directional pattern and the reconstruction samples in the reference pictures, the decoder uses bi-directional pattern matching to obtain the refined MV without transmitting additional motion information.

Фиг. 3 показан пример уточнения вектора движения на стороне декодера (DMVR) на основании двунаправленного сопоставления шаблона, где шаблон генерируется с использованием двунаправленного предсказания из блоков предсказания, на которые ссылаются исходные MV0 и MV1, и двунаправленного сопоставления шаблона для поиска наиболее совпадающих блоков, указанные обновленными MV0' и MV1'. Во-первых, в режиме слияния для текущего блока устанавливается MV наилучшего совпадения как кандидат MV0 в list0. Точно так же MV наилучшего совпадения устанавливается для текущего блока (в режиме слияния) как MV кандидат в list1. Затем опорные пиксели усредняются для формирования шаблона. Затем, используя шаблон, осуществляется поиск окружающих областей MVs кандидатов первого и второго опорных изображений, и определяется MV с наименьшей стоимостью, как окончательный MV. Стоимость может быть вычислена с использованием суммы разностей между каждым пикселем в шаблоне и каждым пикселем в исследуемых областях. Обращаясь к фиг. 3, на этапе 1 из блоков предсказания генерируется двунаправленный шаблон, на которые ссылаются исходные векторы MV0 и MV1 движения в опорных блоках в списках list0 и list1, соответственно.Fig. 3 shows an example of decoder-side motion vector refinement (DMVR) based on bi-directional pattern matching, where the pattern is generated using bi-directional prediction from prediction blocks referenced by original MV0 and MV1, and bi-directional pattern matching to find the best-matching blocks indicated by updated MV0. ' and MV1'. First, in merge mode, the current block is set to the MV of the best match as candidate MV0 in list0. Similarly, the MV of the best match is set for the current block (in merge mode) as the candidate MV in list1. The reference pixels are then averaged to form a pattern. Then, using the template, the surrounding regions of the MVs of the candidates of the first and second reference pictures are searched, and the MV with the lowest cost is determined as the final MV. The cost can be calculated using the sum of the differences between each pixel in the pattern and each pixel in the regions of interest. Referring to FIG. 3, in step 1, a bidirectional pattern is generated from the prediction blocks referenced by the original motion vectors MV0 and MV1 in the reference blocks in the lists list0 and list1, respectively.

На этапе 2 посредством двунаправленного сопоставления осуществляется поиск наиболее совпадающих блоков, на которые ссылаются обновленные векторы MV0’ и MV1’ движения. Операция сопоставления шаблона включает в себя вычисление меры стоимости между сгенерированным шаблоном и областью выборки (вокруг исходного блока предсказания) в опорном изображении. Для каждого из двух опорных изображений MV, который дает минимальную стоимость шаблона, считается обновленным MV этого списка для замены исходного. В текущей разработке для каждого списка ищется девять кандидатов MV. Девять кандидатов MV включают в себя исходный MV и 8 окружающих MVs с одним смещением выборки яркости относительно исходного MV либо в горизонтальном, либо в вертикальном направлении, либо в обоих направлениях. Наконец, два новых MVs, то есть, MV0' и MV1', используются для генерации окончательных результатов двунаправленного предсказания. В качестве меры стоимости используется сумма абсолютных разностей (SAD). DMVR применяется для режима слияния двунаправленного предсказания с одним MV из опорного изображения в прошлом, а другой из опорного изображения в будущем, без передачи дополнительных элементов синтаксиса.In step 2, the most matching blocks referenced by the updated motion vectors MV0' and MV1' are searched for by bidirectional matching. The template matching operation includes calculating a cost measure between the generated template and a sample area (around the original prediction block) in the reference image. For each of the two reference pictures, the MV that yields the minimum template cost is considered to be the updated MV of this list to replace the original one. In current development, nine MV candidates are sought for each list. The nine candidate MVs include the original MV and 8 surrounding MVs with one luma sample offset from the original MV in either the horizontal or vertical direction or both. Finally, two new MVs, ie, MV0' and MV1', are used to generate the final bidirectional prediction results. The sum of absolute differences (SAD) is used as a measure of cost. DMVR is applied to the bidirectional prediction fusion mode with one MV from a reference picture in the past and another from a reference picture in the future, without passing additional syntax elements.

В различных вариантах осуществления разница между двумя опорными вставками с компенсацией движения сравнивается или измеряется с заданным пороговым значением, зависящим от размера блока кодирования, и пропускается уточнение на основании результата сравнения или измерения. Различие между двумя опорными вставками с компенсацией движения определяется либо с использованием выборок предварительной интерполяции, либо с использованием подмножества билинейных интерполированных выборок. Кроме того, в некоторых вариантах осуществления в качестве показателя ошибки для уточнения может использоваться среднее уменьшенная сумма абсолютных разностей (MR-SAD), в качестве метрики, по которой выполняется пропуск проверки для сохранения среднего вычисления в среднем, а также для удовлетворения требования синхронизации наихудшего случая. Заданное пороговое значение адаптируется к более низким битовым глубинам, которые могут использоваться во время или после интерполяции для уменьшения размера буфера и удовлетворения требований обработки.In various embodiments, the difference between two motion-compensated reference inserts is compared or measured with a predetermined threshold value dependent on the coding block size, and refinement based on the result of the comparison or measurement is skipped. The difference between two motion-compensated reference inserts is determined either using pre-interpolation samples or using a subset of bilinear interpolated samples. In addition, in some embodiments, Mean Reduced Sum of Absolute Differences (MR-SAD) can be used as an error metric for refinement, as a metric on which to skip validation to keep the average calculation averaged, and to meet the worst-case timing requirement. . The specified threshold is adapted to lower bit depths that can be used during or after interpolation to reduce the buffer size and meet processing requirements.

Учитывая, что уточнение/получение вектора движения на стороне декодера является нормативным аспектом системы кодирования, кодер также должен будет использовать тот же способ поверхности ошибок для исключения никакого отклонения между процессом восстановления в кодере и восстановления в декодере. Следовательно, все аспекты всех вариантов осуществления применимы как к системам кодирования, так и к системам декодирования. Представленные ниже варианты осуществления являются лишь некоторыми примерами для понимания настоящего изобретения и, таким образом, не должны пониматься как предназначенные для ограничения.Considering that motion vector refinement/acquisition at the decoder side is a normative aspect of the coding system, the encoder will also need to use the same error surface method to avoid any deviation between the recovery process at the encoder and the recovery at the decoder. Therefore, all aspects of all embodiments are applicable to both encoding systems and decoding systems. The following embodiments are only some examples for understanding the present invention and thus should not be understood as intended to be limiting.

Вариант 1 осуществленияEmbodiment 1

В этом варианте осуществления векторы движения слияния округлены до ближайшего целого числа. Используя эти округленные целочисленные векторы движения в качестве смещения относительно позиции текущего блока кодирования в двух ссылках, используемых для двунаправленного предсказания, вычисляется сумма абсолютных разностей (SAD) между блоками выборок размера блока кодирования. Эта сумма абсолютных разностей сравнивается с пороговым значением, зависящим от размера блока кодирования (CU), и остаток или оставшиеся этапы процесса уточнения вектора движения на стороне декодера нормативно пропускаются, когда сумма абсолютных разностей меньше порогового значения.In this embodiment, the merge motion vectors are rounded to the nearest integer. Using these rounded integer motion vectors as an offset relative to the position of the current coding block in the two references used for bidirectional prediction, the sum of absolute differences (SAD) between blocks of coding block size samples is calculated. This sum of absolute differences is compared with a threshold value depending on the coding unit (CU) size, and the remainder or remaining steps of the motion vector refinement process on the decoder side are normatively skipped when the sum of absolute differences is less than the threshold value.

Определяется соответствующее заданное пороговое значение, зависящее от размера CU, на основании требуемой средней вычислительной экономии или экономии энергии, для принятия компромиссного решения по снижению коэффициента сжатия с высоким пороговым значением.An appropriate CU size dependent predetermined threshold is determined, based on the desired average computational savings or power savings, to make a high threshold compression ratio reduction trade-off.

Фиг. 4 является упрощенной блок-схемой алгоритма способа, использующего верификацию на стороне декодера или определение уровня выравнивания между вставками с компенсацией движения согласно варианту осуществления настоящего изобретения, где условный пропуск остальных этапов процесса уточнения основан на функции стоимости, основанной на округленной целочисленной позиции. Этапы, показанные на блок-схеме алгоритма, могут быть реализованы как программные коды или инструкции, выполняемые на одном или нескольких процессорах на стороне кодера или стороне декодера. Этапы, показанные на блок-схеме алгоритма, могут быть реализованы с использованием электронных компонентов, цифровых и/или аналоговых схем, логических элементов, аппаратного обеспечения, программного обеспечения, встроенного программного обеспечения или их комбинаций. Способ может включать в себя на этапе 401, когда видеодекодер (видеодекодер и декодер используются здесь взаимозаменяемо) получает неокругленные векторы движения слияния между двумя опорными вставками с компенсацией движения. Вставка имеет заранее определенный размер текущего блока из MxN пикселей, каждый из которых M и N являются положительными целыми числами. В некоторых вариантах осуществления M может быть равно N. В других вариантах осуществления M и N могут быть разными. Вставка может быть блоком предсказания или блоком кодирования и называется блоком выборок в изображении (кадре). Неокругленные векторы движения слияния могут быть получены с использованием двунаправленного сопоставления, сопоставления с шаблоном или других способов. Неокругленные векторы движения слияния могут быть векторами движения слияния, имеющими точность до целых пикселей или с точностью до дробных пикселей. На этапе 402 декодер округляет неокругленные векторы движения слияния для получения округленных векторов движения. Операция округления может включать в себя преобразование неокругленного вектора движения в вектор движения с точностью до целого числа пикселей или уменьшение точности вектора движения в пикселях. Например, вектор движения с дробной точностью может быть округлен до вектора движения с целочисленной пиксельной точностью. Операция округления может включать в себя сдвиг значения вектора вправо на один или несколько битов. В одном варианте осуществления видеодекодер может округлять неокругленные векторы движения слияния до ближайших позиций целочисленных выборок. В другом варианте осуществления видеодекодер может округлять неокругленные векторы движения слияния до ближайших позиций выборки полупикселя.Fig. 4 is a simplified flowchart of a method using decoder-side verification or alignment level determination between motion-compensated inserts according to an embodiment of the present invention, where conditionally skipping the remaining steps of the refinement process is based on a cost function based on a rounded integer position. The steps shown in the flowchart may be implemented as program codes or instructions executed on one or more processors on the encoder side or the decoder side. The steps shown in the flowchart may be implemented using electronic components, digital and/or analog circuits, logic elements, hardware, software, firmware, or combinations thereof. The method may include, at 401, when a video decoder (video decoder and decoder are used interchangeably herein) obtains unrounded merge motion vectors between two motion-compensated reference inserts. The insert has a predetermined current block size of MxN pixels, each of which M and N are positive integers. In some embodiments, M may be equal to N. In other embodiments, M and N may be different. An insert can be a prediction block or a coding block and is called a block of samples in a picture (frame). The unrounded merge motion vectors may be obtained using bidirectional matching, pattern matching, or other methods. The unrounded fusion motion vectors may be fusion motion vectors having integer pixel precision or fractional pixel precision. In step 402, the decoder rounds the unrounded merge motion vectors to obtain rounded motion vectors. The rounding operation may include converting the unrounded motion vector to a motion vector with integer pixel precision, or reducing the pixel precision of the motion vector. For example, a fractional precision motion vector may be rounded to an integer pixel precision motion vector. The rounding operation may include shifting the vector value to the right by one or more bits. In one embodiment, the video decoder may round the unrounded merge motion vectors to the nearest integer sample positions. In another embodiment, the video decoder may round the unrounded merge motion vectors to the nearest half-pixel sample positions.

На этапе 403 видеодекодер вычисляет (calculates) сумму абсолютных разностей (SAD) между двумя опорными вставками с компенсацией движения путем выполнения простой компенсации движения с использованием округленных векторов движения. Сумма разностей SAD (первый вставка, второй вставка) в соответствующих опорных изображениях Ref0, Ref1 представляет собой функцию стоимости для определения наилучшего совпадения шаблона в соответствующих пространствах поиска. На этапе 404 декодер сравнивает SAD с пороговым значением, зависящим от размера блока кодирования (CU) для определения, меньше или не меньше SAD (то есть, равно или больше) порогового значения, зависящего от размера CU. Когда определяется, что SAD меньше порогового значения, зависящего от размера CU («да» на этапе 405), декодер пропускает этапы процесса уточнения вектора движения (DMVR) на стороне декодера (этап 406) и выполняет окончательную компенсацию движения с использованием неокругленных векторов движения слияния (этап 408). Когда определяется, что SAD не меньше порогового значения, зависящего от размера CU («нет» на этапе 405), декодер выполняет этапы процесса уточнения вектора движения (DMVR) на стороне декодера (этап 407) и затем выполняет окончательную компенсацию движения (этап 408). Декодер может уточнить кандидаты вектора движения на основании опорного блока в окне поиска, который близко совпадает с текущим блоком, то есть, декодер может определить новый интерполированный вектор движения (например, с помощью билинейной интерполяции) для текущего блока, когда SAD не меньше порогового значения, зависящего от размера CU, после этого декодер выполняет окончательную компенсацию движения для текущего блока. В одном варианте осуществления выполнение окончательной компенсации движения может включать в себя округление неокругленных векторов движения слияния до ближайшей позиции целочисленной выборки в горизонтальном направлении и в вертикальном направлении для получения позиций целочисленных выборок и выполнение операции усреднения над позициями целочисленных выборок. В другом варианте осуществления выполнение окончательной компенсации движения может включать в себя округление неокругленных векторов движения слияния до ближайшей позиции выборки полупикселя в горизонтальном направлении и в вертикальном направлении для получения позиции выборок полупикселя и выполнение операции усреднения на позиции выборки полупикселя.In step 403, the video decoder calculates the sum of absolute differences (SAD) between the two motion compensated reference inserts by performing simple motion compensation using rounded motion vectors. The sum of the differences SAD (first insertion, second insertion) in the respective reference images Ref0, Ref1 is a cost function for determining the best pattern match in the respective search spaces. In step 404, the decoder compares the SAD with a coding unit (CU) size dependent threshold to determine if the SAD is less than or not less than (ie, equal to or greater than) the CU size dependent threshold. When it is determined that the SAD is less than a CU size dependent threshold ("yes" at step 405), the decoder skips the steps of the motion vector refinement (DMVR) process at the decoder side (step 406) and performs final motion compensation using the unrounded merge motion vectors (step 408). When it is determined that the SAD is not less than a CU size dependent threshold ("no" in step 405), the decoder performs the steps of a motion vector refinement (DMVR) process at the decoder side (step 407) and then performs final motion compensation (step 408) . The decoder may refine motion vector candidates based on a reference block in the search window that closely matches the current block, i.e., the decoder may determine a new interpolated motion vector (eg, using bilinear interpolation) for the current block when the SAD is not less than a threshold, depending on the size of the CU, then the decoder performs the final motion compensation for the current block. In one embodiment, performing the final motion compensation may include rounding the unrounded merge motion vectors to the nearest integer sample position in the horizontal direction and in the vertical direction to obtain integer sample positions and performing an averaging operation on the integer sample positions. In another embodiment, performing the final motion compensation may include rounding the unrounded merge motion vectors to the nearest half-pixel sample position in the horizontal direction and in the vertical direction to obtain the position of the half-pixel samples, and performing an averaging operation on the half-pixel sample position.

Этот вариант осуществления имеет преимущество, среди других преимуществ, в том, что всякий раз, когда оцененная метрика меньше порогового значения, все другие аспекты уточнения вектора движения на стороне декодера, такие как билинейная интерполяция, определение среднего значения и оценки функции стоимости уточнения на различных позициях, можно пропустить и выполнить окончательную нормативную компенсацию движения. Следует отметить, что в аппаратных реализациях в некоторых вариантах осуществления возможно теоретически выполнять билинейную интерполяцию параллельно с оценкой метрики для пропуска уточнения для удовлетворения требования синхронизации (т.е. получить больше времени или тактов для выполнения задач уточнения).This embodiment has the advantage, among other advantages, that whenever the estimated metric is less than a threshold, all other aspects of motion vector refinement at the decoder side, such as bilinear interpolation, averaging, and refinement cost function estimates at various positions , you can skip and perform the final normative motion compensation. It should be noted that in hardware implementations, in some embodiments, it is theoretically possible to perform bilinear interpolation in parallel with estimating the metric to skip refinement to satisfy a timing requirement (ie, gain more time or clock cycles to complete refinement tasks).

Вариант 2 осуществленияEmbodiment 2

В этом варианте осуществления декодер вычисляет сумму абсолютных разностей между вставками с компенсацией движения в двух опорных изображениях, участвующих в двунаправленном предсказании, с использованием подмножества выборок из билинейной интерполяции с компенсацией движения, выполняемой с использованием векторов движения слияния с точностью до суб-пикселей. Эта сумма абсолютных разностей затем сравнивается с заданным пороговым значением, зависящим от размера блока кодирования, и остальные этапы уточнения нормативно пропускаются, когда декодер определяет, что сумма абсолютных разностей меньше порогового значения.In this embodiment, the decoder calculates the sum of the absolute differences between the motion-compensated inserts in the two reference pictures involved in bidirectional prediction using a subset of samples from motion-compensated bilinear interpolation performed using sub-pixel-accurate merge motion vectors. This sum of absolute differences is then compared to a predetermined threshold depending on the coding block size, and the rest of the refinement steps are normatively skipped when the decoder determines that the sum of absolute differences is less than the threshold.

В одной примерной реализации билинейная интерполяция с компенсацией движения выполняется параллельно (одновременно) на обоих опорных вставках. В другом варианте осуществления выполняется перемежение интерполированных выборок по двум ссылкам. В обоих этих случаях вычисление суммы абсолютной разности предпочтительно вычисляется как можно раньше, а не дожидаться, пока будут получены все интерполированные выборки. Этот процесс также позволяет избежать повторной загрузки интерполированных выборок. Это снижает аппаратную задержку и сокращает время, доступное для выполнения оставшихся уточняющих вычислений, необходимых для наихудшего пути.In one exemplary implementation, motion-compensated bilinear interpolation is performed in parallel (simultaneously) on both reference inserts. In another embodiment, the interpolated samples are interleaved across two links. In both of these cases, the calculation of the sum of the absolute difference is preferably calculated as early as possible rather than waiting until all interpolated samples have been received. This process also avoids reloading interpolated samples. This reduces hardware latency and reduces the time available to perform the remaining refinement calculations required for the worst path.

В некоторых реализациях для вычисления используется сумма абсолютных разностей блок выборок с размерами (size), равным размерам блока кодирования. В таких вариантах осуществления вычисление интерполированных выборок, требуемых для позиций уточнения, отличных от центральной позиции, может быть пропущено, когда сумма абсолютных разностей определяется как меньше порогового значения. В других вариантах осуществления для вычисления суммы абсолютных разностей используется только подмножество интерполированных выборок. В этих случаях заданное пороговое значение изменяется так, чтобы оно зависело от количества выборок, используемых для суммы абсолютных разностей. Когда декодер определяет, что сумма абсолютных разностей меньше порогового значения, оставшуюся интерполяцию также можно пропустить. В одном варианте осуществления подмножество интерполированных выборок может быть (coding_unit_width - 2) * (coding_unit_height - 2) выборками в одном варианте осуществления. В другом варианте осуществления подмножество интерполированных выборок может быть (coding_unit_width * coding_unit_height - (coding_unit_width - 2) * (coding_unit_height-2)) выборками в другом варианте осуществления, где coding_unit_width является шириной блока кодирования и coding_unit_height является высотой блока кодирования.In some implementations, the sum of the absolute differences of the block of samples with sizes (size) equal to the sizes of the coding block is used for calculation. In such embodiments, the calculation of the interpolated samples required for refinement positions other than the center position may be omitted when the sum of the absolute differences is determined to be less than a threshold. In other embodiments, only a subset of the interpolated samples is used to calculate the sum of absolute differences. In these cases, the specified threshold value is changed so that it depends on the number of samples used for the sum of absolute differences. When the decoder determines that the sum of the absolute differences is less than the threshold value, the remaining interpolation can also be skipped. In one embodiment, the subset of interpolated samples may be (coding_unit_width - 2) * (coding_unit_height - 2) samples in one embodiment. In another embodiment, the subset of interpolated samples may be (coding_unit_width * coding_unit_height - (coding_unit_width - 2) * (coding_unit_height-2)) samples in another embodiment, where coding_unit_width is the coding unit width and coding_unit_height is the coding unit height.

Когда билинейная интерполяция ограничивает битовую глубину интерполированных выборок, заданное пороговое значение также регулируется соответствующим образом путем сдвига вниз порогового значения, полученного при неограниченной битовой глубине интерполированных выборок.When bilinear interpolation limits the bit depth of the interpolated samples, the predetermined threshold value is also adjusted accordingly by shifting down the threshold value obtained with unlimited bit depth of the interpolated samples.

Фиг. 5 показывает упрощенную блок-схему алгоритма способа, использующего верификацию на стороне декодера, проверку или определение уровня выравнивания между вставками с компенсацией движения согласно варианту осуществления настоящего изобретения, где обычный пропуск этапов процесса уточнения вектора движения на стороне декодера основан на подмножестве билинейных интерполированных выборок с компенсацией движения. Показанные на блок-схеме алгоритма этапы могут быть реализованы как программные коды или инструкции, выполняемые на одном или нескольких процессорах на стороне кодера или стороне декодера. Показанные на блок-схеме алгоритма этапы также могут быть реализованы с использованием электронных компонентов, цифровых и/или аналоговых схем, логических элементов, аппаратных средств, программного обеспечения, встроенного программного обеспечения или их комбинаций. Способ может включать в себя, на этапе 501, декодирование видео получает неокругленные векторы движения слияния между двумя опорными вставками с компенсацией движения. Вставка имеет заранее определенный размер текущего блока из MxN пикселей, каждый из которых M и N являются положительными целыми числами. В некоторых вариантах осуществления M и N могут быть одинаковыми. В других вариантах осуществления M и N могут быть разными. Неокругленные векторы движения слияния могут быть получены с использованием двунаправленного сопоставления, сопоставления с шаблоном или других способов. На этапе 502 декодер также получает интерполированные выборки с компенсацией движения на основании векторов движения слияния с точностью до суб-пикселей.Fig. 5 shows a simplified flowchart of a method using decoder-side verification, checking, or determining an alignment level between motion-compensated inserts according to an embodiment of the present invention, where the conventional skipping of steps of the decoder-side motion vector refinement process is based on a subset of bilinear compensated interpolated samples. movement. The steps shown in the flowchart may be implemented as program codes or instructions executing on one or more processors on either the encoder side or the decoder side. The steps shown in the flowchart may also be implemented using electronic components, digital and/or analog circuits, logic elements, hardware, software, firmware, or combinations thereof. The method may include, at 501, decoding the video deriving the unrounded merge motion vectors between two motion-compensated reference inserts. The insert has a predetermined current block size of MxN pixels, each of which M and N are positive integers. In some embodiments, M and N may be the same. In other embodiments, M and N may be different. The unrounded merge motion vectors may be obtained using bidirectional matching, pattern matching, or other methods. At step 502, the decoder also obtains motion-compensated interpolated samples based on sub-pixel-accurate merge motion vectors.

На этапе 503 декодер вычисляет (calculates) сумму абсолютной разности (SAD) между двумя опорными вставками с компенсацией движения, используя подмножество интерполированных выборок с компенсацией движения. В некоторых вариантах осуществления SAD может вычисляться параллельно или одновременно с процессом интерполяции. На этапе 504 декодер сравнивает SAD с пороговым значением, зависящим от размера блока кодирования (CU), чтобы определить, меньше или не меньше SAD порогового значения, зависящего от размера CU. В одном варианте осуществления пороговое значение, зависящее от размера CU, является функцией количества выборок в подмножестве интерполированных выборок. Когда определяется, что SAD меньше порогового значения, зависящего от размера CU («да» на этапе 505), декодер пропускает этапы процесса уточнения вектора движения (DMVR) на стороне декодера (этап 506) и выполняет окончательную компенсацию движения с использованием неокругленных векторов движения слияния (этап 508). Когда определено, что SAD не меньше (т.е. равна или больше) порогового значения, зависящего от размера CU («нет» на этапе 505), декодер выполняет этапы процесса уточнения вектора движения на стороне декодера (DMVR) с использованием неокругленных векторов движения слияния (этап 507) и затем выполняет окончательную компенсацию движения с использованием неокругленных векторов движения слияния (этап 508). Декодер может уточнить кандидаты вектора движения на основании опорного блока в окне поиска, который близко совпадает с текущим блоком, то есть, декодер может определить новый интерполированный вектор движения (например, с помощью билинейной интерполяции) для текущего блока, когда SAD не меньше порогового значения, зависящего от размера CU, после этого декодер выполняет окончательную компенсацию движения для текущего блока, используя неокругленные векторы движения слияния.In step 503, the decoder calculates the sum of the absolute difference (SAD) between the two motion-compensated reference inserts using a subset of the interpolated motion-compensated samples. In some embodiments, the SAD may be computed in parallel or simultaneously with the interpolation process. In step 504, the decoder compares the SAD with a coding unit (CU) size dependent threshold to determine if the SAD is less than or not less than the CU size dependent threshold. In one embodiment, the CU size dependent threshold is a function of the number of samples in the subset of interpolated samples. When it is determined that the SAD is less than a CU size dependent threshold ("yes" in step 505), the decoder skips the steps of the motion vector refinement (DMVR) process at the decoder side (step 506) and performs final motion compensation using the unrounded merge motion vectors (step 508). When it is determined that the SAD is not less than (i.e., equal to or greater than) a CU size dependent threshold ("no" at step 505), the decoder performs the steps of a decoder-side motion vector refinement (DMVR) process using unrounded motion vectors merge (step 507) and then performs final motion compensation using the unrounded merge motion vectors (step 508). The decoder may refine motion vector candidates based on a reference block in the search window that closely matches the current block, i.e., the decoder may determine a new interpolated motion vector (eg, using bilinear interpolation) for the current block when the SAD is not less than a threshold, depending on the size of the CU, then the decoder performs the final motion compensation for the current block using the unrounded merge motion vectors.

Второй вариант осуществления (embodiment 2) допускает меньшее уменьшение выигрыша от кодирования, поскольку консервативное пороговое значение все еще может позволять многим блокам кодирования пропускать оставшиеся этапы процесса уточнения. С точки зрения синхронизации, операции суммы абсолютной разности, требуемых для определения или верификации SAD относительно порогового значения, могут быть, по существу, скрыты от этапа билинейной интерполяции и, таким образом, не будет влиять на ограничение наихудшего случая синхронизации.The second embodiment (embodiment 2) allows less reduction in coding gain because a conservative threshold may still allow many coding units to skip the remaining steps of the refinement process. From a timing point of view, the absolute difference sum operations required to determine or verify the SAD against a threshold can be essentially hidden from the bilinear interpolation step and thus will not affect the worst case timing constraint.

Вариант 3 осуществленияEmbodiment 3

В этом варианте осуществления выполняется проверка (determination) на раннем выходе с использованием средне уменьшенной суммы абсолютных разностей (MR-SAD), вычисленной для центральной позиции, где начинается уточнение. В некоторых вариантах осуществления сначала оценивается и сравнивается MR-SAD центральной позиции с пороговым значением, зависящим от размера блока кодирования. Если MR-SAD для центрального позиции меньше порогового значения, то остальная часть процесса уточнения пропускается нормативно.In this embodiment, early exit determination is performed using a reduced average sum of absolute differences (MR-SAD) computed for the center position where refinement begins. In some embodiments, the MR-SAD of the center position is first estimated and compared with a threshold dependent on the coding block size. If the MR-SAD for the central position is less than the threshold, then the rest of the refinement process is skipped normatively.

В некоторых вариантах осуществления, возможно, что оценки MR-SAD на позициях, отличных от центрального позиции (например, конкретные позиции в пределах точек уточнения первой итерации), могут оцениваться вместе с оценкой MR-SAD центральной позиции. Однако эти оцененные MR-SADs не будут иметь никакого эффекта, если MR-SAD центральной позиции меньше заданного порогового значения.In some embodiments, it is possible that MR-SAD scores at positions other than the center position (eg, specific positions within the first iteration refinement points) may be evaluated along with the MR-SAD score of the center position. However, these estimated MR-SADs will have no effect if the center position MR-SAD is less than a predetermined threshold.

Когда интерполяция ограничивает битовую глубину интерполированных выборок, заданное пороговое значение также корректируется соответствующим образом, сдвигая вниз пороговое значение, полученное при неограниченной битовой глубине интерполированных выборок.When the interpolation limits the bit depth of the interpolated samples, the predetermined threshold value is also adjusted accordingly, shifting down the threshold value obtained with an unlimited bit depth of the interpolated samples.

Фиг. 6 показывает упрощенную блок-схему алгоритма способа, использующего верификацию на стороне декодера, проверку или определение уровня выравнивания между вставками с компенсацией движения согласно варианту осуществления настоящего изобретения, где обычный пропуск этапов процесса уточнения вектора движения на стороне декодера основан на средне уменьшенной сумме абсолютных разностей начальной позиции уточнения. Показанные на блок-схеме алгоритма этапы могут быть реализованы как программные коды или инструкции, выполняемые на одном или нескольких процессорах на стороне кодера или стороне декодера. Показанные на блок-схеме алгоритма этапы также могут быть реализованы с использованием электронных компонентов, цифровых и/или аналоговых схем, логических элементов, аппаратных средств, программного обеспечения, встроенного программного обеспечения или их комбинаций. Способ может начинаться на этапе 602, когда видеодекодер получает интерполированные выборки с компенсацией движения на основании векторов движения слияния с точностью до суб-пикселей между двумя опорными вставками с компенсацией движения. На этапе 603 декодер вычисляет (calculates) среднее значение каждого из вставок для центральной позиции, в которой начинается уточнение. Декодер также вычисляет (на этапе 603) средне уменьшенную сумму абсолютных разностей (MR-SAD) для центральной позиции.Fig. 6 shows a simplified flowchart of a method using decoder-side verification, checking, or determining an alignment level between motion-compensated inserts according to an embodiment of the present invention, where the conventional skipping of steps of the decoder-side motion vector refinement process is based on the average reduced sum of the absolute differences of the initial clarification positions. The steps shown in the flowchart may be implemented as program codes or instructions executing on one or more processors on either the encoder side or the decoder side. The steps shown in the flowchart may also be implemented using electronic components, digital and/or analog circuits, logic elements, hardware, software, firmware, or combinations thereof. The method may begin at 602 when the video decoder obtains interpolated motion-compensated samples based on sub-pixel-accurate merge motion vectors between two motion-compensated reference inserts. At step 603, the decoder calculates (calculates) the average value of each of the inserts for the center position at which refinement begins. The decoder also calculates (at 603) a reduced average sum of absolute differences (MR-SAD) for the center position.

На этапе 604 декодер сравнивает MR-SAD с пороговым значением, зависящим от размера блока кодирования (CU), чтобы определить, является ли MR-SAD меньше или не меньше (равно или больше) порогового значения, зависимого от размера CU. В одном варианте осуществления пороговое значение, зависящее от размера CU, является функцией битовой глубины векторов движения слияния с точностью до суб-пикселей. Когда определяется, что MR-SAD меньше порогового значения, зависящего от размера CU («да» на этапе 605), декодер пропускает этапы процесса уточнения вектора движения (DMVR) на стороне декодера (этап 606) и выполняет окончательную компенсацию движения с использованием векторов движения слияния (этап 608). Когда MR-SAD определяется как не меньше порогового значения, зависящего от размера CU («нет» на этапе 605), декодер выполняет этапы процесса уточнения вектора движения на стороне декодера (DMVR), используя векторы движения слияния (этап 607) и затем выполняет окончательную компенсацию движения с использованием векторов движения слияния (этап 608). Декодер может уточнить кандидаты вектора движения на основании опорного блока в окне поиска, который близко совпадает с текущим блоком, то есть, декодер может определить новый интерполированный вектор движения (например, с помощью билинейной интерполяции) для текущего блока, когда MR-SAD не меньше порогового значения, зависящего от размера CU, после чего декодер выполняет окончательную компенсацию движения для текущего блока, используя векторы движения слияния.In step 604, the decoder compares the MR-SAD with a coding unit (CU) size dependent threshold to determine if the MR-SAD is less than or not less than (equal to or greater than) the CU size dependent threshold. In one embodiment, the CU size dependent threshold is a function of the bit depth of the merging motion vectors to within sub-pixels. When it is determined that the MR-SAD is less than a CU size dependent threshold ("yes" in step 605), the decoder skips the steps of the motion vector refinement (DMVR) process at the decoder side (step 606) and performs final motion compensation using motion vectors merge (step 608). When the MR-SAD is determined to be not less than a CU size dependent threshold ("no" in step 605), the decoder performs the steps of a decoder-side motion vector refinement (DMVR) process using merge motion vectors (step 607) and then performs the final motion compensation using merge motion vectors (block 608). The decoder may refine motion vector candidates based on a reference block in the search window that closely matches the current block, i.e., the decoder may determine a new interpolated motion vector (eg, using bilinear interpolation) for the current block when the MR-SAD is not less than the threshold value depending on the size of the CU, after which the decoder performs the final motion compensation for the current block using the merge motion vectors.

В некоторых вариантах осуществления, вычисление среднего значения вставки может включать в себя усреднение интенсивности яркости всех пикселей в соответствующем опорным вставкам. Средне уменьшенная сумма абсолютных разностей (MR-SAD) может быть вычислена с использованием следующего выражения:In some embodiments, calculating the average embedding value may include averaging the luminance intensity of all pixels in the corresponding reference embeddings. Reduced Average Sum of Absolute Differences (MR-SAD) can be calculated using the following expression:

MR-SAD = SAD (first_sample - mean(first_patch), second_sample – mean(second_patch))MR-SAD = SAD(first_sample - mean(first_patch), second_sample - mean(second_patch))

Где first_sample представляет первую интерполированную выборку с компенсацией движения в центре первой опорной вставки с компенсацией движения, вторую интерполированную выборку с компенсацией движения в центре второй опорной вставки с компенсацией движения, mean (first_block) представляет операцию усреднения значений выборки first_block, mean (second_block) представляют собой операцию усреднения значений выборок для second_block, (первый, второй) вставка может иметь ширину и высоту (первого, второго) блока в терминах выборок, и SAD является операцией суммирования абсолютных разностей значений выборок первого вставки и выборок второго вставки.Where first_sample represents the first motion-compensated interpolated sample at the center of the first motion-compensated datum, the second motion-compensated interpolated sample at the center of the second motion-compensated datum, mean(first_block) represents the operation of averaging the first_block sample values, mean(second_block) represent the operation of averaging the values of the samples for second_block, the (first, second) insert may have the width and height of the (first, second) block in terms of the samples, and SAD is the operation of summing the absolute differences of the values of the first insert samples and the second insert samples.

Этот вариант осуществления может гарантировать отсутствие дополнительных вычислений для выполнения условного пропуска проверки уточнения по сравнению с тем, что требуется, без такой проверки. По статистике, вычисления итераций уточнения сохраняются, что может привести к экономии энергии и сокращению среднего количества циклов в программном обеспечении.This embodiment can ensure that there is no additional computation to conditionally skip the refinement check over what is required without such a check. Statistically, refinement iteration calculations are saved, which can result in energy savings and a reduction in the average number of cycles in the software.

Блок-схемы алгоритма, показанные и описанные выше, предназначены для иллюстрации примерных вариантов осуществления определения, проверки или верификации совмещения между вставками с компенсацией движения согласно настоящему изобретению. Как известно специалисту в данной области техники, для практического применения настоящего изобретения этапы проверки и определения совмещения, описанные в настоящем документе, могут быть переупорядочены, изменены или объединены без выхода за рамки настоящего изобретения.The flowcharts shown and described above are intended to illustrate exemplary embodiments of determining, verifying, or verifying alignment between motion-compensated inserts according to the present invention. As will be known to those skilled in the art, for the practice of the present invention, the verification and alignment determination steps described herein may be rearranged, modified, or combined without departing from the scope of the present invention.

Варианты осуществления в соответствии с настоящим изобретением могут быть реализованы в схемах аппаратного обеспечения, программных кодах программного обеспечения, компьютерных инструкциях, выполняемых одним или несколькими процессорами или CPUs, или их комбинацией. Например, варианты осуществления настоящего изобретения могут представлять собой одну или несколько интегральных схем или устройств, которые выполняют этапы, описанные в данном документе. Программные коды могут выполняться на цифровом сигнальном процессоре (DSP). Варианты осуществления также могут быть реализованы с помощью одного или микропроцессоров, одной или нескольких программируемых пользователем вентильных матриц (FPGA).Embodiments of the present invention may be embodied in hardware circuitry, software code, computer instructions executed by one or more processors or CPUs, or a combination thereof. For example, embodiments of the present invention may be one or more integrated circuits or devices that perform the steps described herein. The software codes may be executed on a digital signal processor (DSP). Embodiments may also be implemented using one or microprocessors, one or more field programmable gate arrays (FPGAs).

Варианты осуществления в соответствии с настоящим изобретением предоставляют устройство для определения уровня согласования между опорными вставками с компенсацией движения (блоками кодирования, blocks) относительно заданного порогового значения, зависящего от размера CU. Устройство может включать в себя схему, выполненную с возможностью получать неокругленные векторы движения слияния между двумя опорными вставками с компенсацией движения; округлять неокругленные векторы движения слияния до ближайшего целочисленной позиции выборки для получения округленных векторов движения; вычислить сумму абсолютных разностей (SAD) между двумя опорными вставками с компенсацией движения, используя округленные векторы движения; и определять, меньше ли SAD порогового значения, зависящего от размера CU. В случае, если SAD меньше зависящего от размера CU порогового значения, схема устройства пропускает оставшиеся этапы процесса уточнения вектора движения на стороне декодера и выполняет окончательную компенсацию движения с использованием неокругленных векторов движения слияния. В случае, если SAD не меньше порогового значения, зависящего от размера CU, схема устройства выполняет оставшиеся этапы процесса уточнения вектора движения на стороне декодера, и затем выполняет окончательную компенсацию движения с использованием неокругленных векторов движения слияния.Embodiments in accordance with the present invention provide a device for determining the level of matching between motion-compensated reference inserts (code blocks) with respect to a predetermined threshold dependent on the size of the CU. The apparatus may include circuitry configured to obtain unrounded merge motion vectors between two motion-compensated reference inserts; round the unrounded merge motion vectors to the nearest integer sample position to obtain rounded motion vectors; calculate the sum of absolute differences (SAD) between two motion-compensated reference inserts using the rounded motion vectors; and determine whether the SAD is less than a threshold value depending on the size of the CU. In case the SAD is less than the CU size dependent threshold, the device circuit skips the remaining steps of the decoder side motion vector refinement process and performs final motion compensation using the unrounded merge motion vectors. In case the SAD is not less than a threshold value depending on the size of the CU, the device circuit performs the remaining steps of the motion vector refinement process on the decoder side, and then performs the final motion compensation using the unrounded merge motion vectors.

В одном варианте осуществления схема устройства выводит SAD с использованием подмножества интерполированных выборок с компенсацией движения вместо использования округленных векторов движения.In one embodiment, the device circuit derives the SAD using a subset of motion-compensated interpolated samples instead of using rounded motion vectors.

В одном варианте осуществления схема устройства вычисляет средне уменьшенную сумму абсолютных разностей (MR-SAD) для поиска вектора движения целого пикселя и сравнивает MR-SAD с пороговым значением, зависящим от размера CU.In one embodiment, the device circuit calculates a reduced average sum of absolute differences (MR-SAD) to find the motion vector of an entire pixel and compares the MR-SAD with a CU size dependent threshold.

В некоторых вариантах осуществления схема устройства может включать в себя интегрированное полупроводниковое устройство или микросхему. В других вариантах осуществления схема может включать в себя аппаратные компоненты или устройство или комбинацию аппаратного и программного обеспечения, например, один или несколько процессоров, программируемых устройств или DSP, работающих с инструкциями или программными кодами.In some embodiments, the device circuitry may include an integrated semiconductor device or chip. In other embodiments, a circuit may include hardware components or a device or combination of hardware and software, such as one or more processors, programmable devices, or DSPs, operating with instructions or program codes.

Ниже приводится объяснение применений способа кодирования и способа декодирования, как показано в вышеупомянутых вариантах осуществления, и системы, использующей их.The following is an explanation of the applications of the encoding method and the decoding method as shown in the above embodiments, and the system using them.

Фиг. 7 является блок-схемой, показывающей систему 3100 поставки контента для реализации услуги распространения контента. Эта система 3100 поставки контента включает в себя устройство 3102 захвата, оконечное устройство 3106 и, возможно, включает в себя дисплей 3126. Устройство 3102 захвата обменивается данными с оконечным устройством 3106 по линии 3104 связи. Линия связи может включать в себя канал 13 связи, описанный выше. Линия 3104 связи включает в себя, помимо прочего, WIFI, Ethernet, кабель, беспроводную связь (3G/4G/5G), USB или любую их комбинацию и т.п.Fig. 7 is a block diagram showing a content supply system 3100 for realizing a content distribution service. This content delivery system 3100 includes a capture device 3102, a terminal device 3106, and optionally includes a display 3126. The capture device 3102 communicates with the terminal device 3106 over a communication line 3104. The communication link may include the communication channel 13 described above. Link 3104 includes, but is not limited to, WIFI, Ethernet, cable, wireless (3G/4G/5G), USB, or any combination thereof, and the like.

Устройство 3102 захвата генерирует данные и может кодировать данные способом кодирования, как показано в приведенных выше вариантах осуществления. В качестве альтернативы устройство 3102 захвата может распределять данные на сервер потоковой передачи (не показан на чертежах), и сервер кодирует данные и передает закодированные данные в оконечное устройство 3106. Устройство 3102 захвата включает в себя, но не ограничивается камерой, смартфон или планшет, компьютер или ноутбук, система видеоконференцсвязи, PDA, устройство, установленное на транспортном средстве, или их комбинация, и т.п. Например, устройство 3102 захвата может включать в себя устройство 12 источник, как описано выше. Когда данные включают в себя видео, видеокодер 20, содержащийся в устройстве 3102 захвата, может фактически выполнять обработку кодирования видео. Когда данные включают в себя звук (то есть, голос), аудиокодер, установленный в устройстве 3102 захвата, может фактически выполнять обработку кодирования звука. Для некоторых практических сценариев устройство 3102 захвата распределяет кодированные видео- и аудиоданные, мультиплексируя их вместе. Для других практических сценариев, например, в системе видеоконференцсвязи, кодированные аудиоданные и кодированные видеоданные не мультиплексируются. Устройство 3102 захвата отдельно распределяет кодированные аудиоданные и кодированные видеоданные на оконечное устройство 3106.The capture device 3102 generates data and may encode the data in an encoding manner as shown in the above embodiments. Alternatively, the capture device 3102 may distribute the data to a streaming server (not shown in the drawings) and the server encodes the data and transmits the encoded data to the target device 3106. The capture device 3102 includes, but is not limited to, a camera, a smartphone or tablet, a computer or a laptop, videoconferencing system, PDA, vehicle-mounted device, or a combination thereof, etc. For example, capture device 3102 may include source device 12 as described above. When the data includes video, the video encoder 20 included in the capture device 3102 may actually perform video encoding processing. When the data includes audio (ie, voice), the audio encoder installed in the capture device 3102 may actually perform audio encoding processing. For some practical scenarios, the capture device 3102 distributes encoded video and audio data by multiplexing them together. For other practical scenarios, such as in a videoconferencing system, encoded audio data and encoded video data are not multiplexed. The capture device 3102 separately distributes the encoded audio data and the encoded video data to the terminal device 3106.

В системе 3100 доставки контента оконечное устройство 310 принимает и воспроизводит закодированные данные. Оконечное устройство 3106 может быть устройством с возможностью приема и восстановления данных, таким как смартфон или планшет 3108, компьютер или ноутбук 3110, сетевой видеорегистратор (NVR)/цифровой видеомагнитофон (DVR) 3112, телевизор 3114, телеприставка (STB) 3116, система 3118 видеоконференцсвязи, система 3120 видеонаблюдения, персональный цифровой помощник (PDA) 3122, устройство 3124, установленное на транспортном средстве, или их комбинация, или тому подобное, выполненное с возможностью декодировать вышеупомянутые кодированные данные. Например, оконечное устройство 3106 может включать в себя устройство 14 назначения, как описано выше. Когда кодированные данные включают в себя видео, видеодекодер 30, содержащийся в оконечном устройстве, имеет приоритет выполнения декодирования видео. Когда кодированные данные включают в себя звук, аудиодекодер, содержащийся в оконечном устройстве, имеет приоритет выполнения обработки декодирования звука.In the content delivery system 3100, the terminal device 310 receives and reproduces the encoded data. Terminal device 3106 may be a device with the ability to receive and retrieve data, such as a smartphone or tablet 3108, a computer or laptop 3110, a network video recorder (NVR) / digital video recorder (DVR) 3112, a television 3114, a set-top box (STB) 3116, a videoconferencing system 3118 , a video surveillance system 3120, a personal digital assistant (PDA) 3122, a vehicle-mounted device 3124, or a combination thereof, or the like, capable of decoding the aforementioned encoded data. For example, terminal 3106 may include destination 14 as described above. When the encoded data includes video, the video decoder 30 contained in the terminal has priority to perform video decoding. When the encoded data includes audio, the audio decoder contained in the terminal has priority to perform audio decoding processing.

Для оконечного устройства с его дисплеем, например, смартфона или Pad 3108, компьютера или ноутбука 3110, сетевого видеорегистратора (NVR)/цифрового видеомагнитофона (DVR) 3112, телевизора 3114, персонального цифрового помощника (PDA) 3122 или смонтированное на транспортном средстве устройство 3124, оконечное устройство может передавать декодированные данные на свой дисплей. Для оконечного устройства, не оснащенного дисплеем, например, STB 3116, системы 3118 видеоконференцсвязи или системы 3120 видеонаблюдения для приема и отображения декодированных данных подключается внешний дисплей 3126.For a terminal device with its display, such as a 3108 smartphone or Pad, a 3110 computer or laptop, a 3112 Network Video Recorder (NVR)/Digital Video Recorder (DVR), a 3114 TV, a 3122 Personal Digital Assistant (PDA), or a 3124 Vehicle Mounted Device, the terminal may transmit the decoded data to its display. For a non-display terminal such as STB 3116, videoconferencing system 3118, or video surveillance system 3120, an external display 3126 is connected to receive and display decoded data.

Когда каждое устройство в этой системе выполняет кодирование или декодирование, может использоваться устройство кодирования изображения или устройство декодирования изображения, как показано в вышеупомянутых вариантах осуществления.When each device in this system performs encoding or decoding, an image encoding device or an image decoding device may be used as shown in the above embodiments.

Фиг. 8 является схемой, показывающей структуру примера оконечного устройства 3106. После того, как оконечное устройство 3106 принимает поток от устройства 3102 захвата, блок 3202 обработки протокола анализирует протокол передачи потока. Протокол включает в себя, помимо прочего, протокол потоковой передачи в реальном времени (RTSP), протокол передачи гипертекста (HTTP), протокол потоковой передачи в реальном времени HTTP (HLS), MPEG-DASH, транспортный протокол в реальном времени (RTP), протокол обмена сообщениями в реальном времени (RTMP) или любую их комбинацию или подобное.Fig. 8 is a diagram showing the structure of an example terminal device 3106. After the terminal device 3106 receives a stream from the capturing device 3102, the protocol processing unit 3202 parses the transmission protocol of the stream. The protocol includes, but is not limited to, Real Time Streaming Protocol (RTSP), Hypertext Transfer Protocol (HTTP), HTTP Real Time Streaming Protocol (HLS), MPEG-DASH, Real Time Transport Protocol (RTP), real-time messaging (RTMP) or any combination thereof or the like.

После того, как блок 3202 обработки протокола обрабатывает поток, генерируется файл потока. Файл выводится в блок 3204 демультиплексирования. Блок 3204 демультиплексирования может разделять мультиплексированные данные на кодированные аудиоданные и кодированные видеоданные. Как описано выше, для некоторых практических сценариев, например, в системе видеоконференцсвязи, кодированные аудиоданные и кодированные видеоданные не мультиплексируются. В этой ситуации закодированные данные передаются в видеодекодер 3206 и аудиодекодер 3208 без использования модуля 3204 демультиплексирования.After the protocol processing unit 3202 processes the stream, a stream file is generated. The file is output to the demultiplexer 3204 . A demultiplexer 3204 may separate the multiplexed data into encoded audio data and encoded video data. As described above, for some practical scenarios, such as in a videoconferencing system, encoded audio data and encoded video data are not multiplexed. In this situation, the encoded data is transmitted to the video decoder 3206 and audio decoder 3208 without using the demultiplexer 3204.

Посредством обработки демультиплексирования генерируются элементарный видеопоток (ES), аудио ES и, возможно, субтитры. Видеодекодер 3206, который включает в себя видеодекодер 30, как объяснено в вышеупомянутых вариантах осуществления, декодирует видео ES с помощью способа декодирования, как показано в вышеупомянутых вариантах осуществления, для генерирования видеокадра и подает эти данные в блок 3212 синхронизации. Аудиодекодер 3208 декодирует аудио ES для генерирования аудиокадра и подает эти данные в блок 3212 синхронизации. В качестве альтернативы видеокадр может сохраняться в буфере (не показан на фиг. Y) перед подачей его в блок 3212 синхронизации. Аналогично, аудиокадр может сохраняться в буфере (не показан на фиг. Y) перед подачей его в блок 3212 синхронизации.Through the demultiplexing processing, a video elementary stream (ES), audio ES, and possibly subtitles are generated. The video decoder 3206, which includes the video decoder 30 as explained in the above embodiments, decodes the ES video with the decoding method as shown in the above embodiments to generate a video frame, and supplies this data to the sync block 3212. An audio decoder 3208 decodes the audio ES to generate an audio frame and provides this data to a sync block 3212. Alternatively, the video frame may be stored in a buffer (not shown in FIG. Y) before being fed into the sync block 3212. Likewise, the audio frame may be stored in a buffer (not shown in FIG. Y) before being fed into the sync block 3212.

Блок 3212 синхронизации синхронизирует видеокадр и звуковой кадр и подает видео/аудио на видео/аудио дисплей 3214. Например, блок 3212 синхронизации синхронизирует представление видео и аудио информации. Информация может закодироваться в синтаксисе с использованием отметок времени, касающихся представления кодированных аудио- и визуальных данных, и отметок времени, касающихся доставки самого потока данных.The sync block 3212 synchronizes the video frame and the audio frame and supplies video/audio to the video/audio display 3214. For example, the sync block 3212 synchronizes the presentation of video and audio information. The information may be encoded in a syntax using timestamps relating to the presentation of the encoded audio and visual data and timestamps relating to the delivery of the data stream itself.

При наличии в потоке субтитров, декодер 3210 субтитров декодирует субтитры и синхронизирует их с видеокадром и звуковым кадром и передает видео/аудио/субтитры в дисплей 3216 видео/аудио/субтитров.If there are subtitles in the stream, the subtitle decoder 3210 decodes the subtitles and synchronizes them with the video frame and the audio frame and passes the video/audio/subtitles to the video/audio/subtitle display 3216.

Настоящее изобретение не ограничивается вышеупомянутой системой, и либо устройство кодирования изображений, либо устройство декодирования изображений в вышеупомянутых вариантах осуществления может быть использовано в другой системе, например, автомобильной системе.The present invention is not limited to the above system, and either the image encoding device or the image decoding device in the above embodiments can be used in another system such as an automobile system.

Claims (78)

1. Способ определения уровня выравнивания между опорными вставками с компенсацией движения, содержащий этапы, на которых:1. A method for determining the level of alignment between support inserts with motion compensation, comprising the steps of: получают, с помощью декодера, неокругленные векторы движения слияния между двумя опорными вставками с компенсацией движения;receive, using the decoder, unrounded merge motion vectors between two reference inserts with motion compensation; округляют, с помощью декодера неокругленные векторы движения слияния для получения округленных векторов движения;rounding, with the decoder, the unrounded merge motion vectors to obtain rounded motion vectors; вычисляют, с помощью декодера, сумму абсолютных разностей (SAD) между двумя опорными вставками с компенсацией движения, посредством выполнения компенсации движения с использованием округленных векторов движения;calculating, by the decoder, a sum of absolute differences (SAD) between two motion-compensated reference inserts by performing motion compensation using rounded motion vectors; определяют, с помощью декодера, меньше ли SAD порогового значения, зависящего от размера блока кодирования (CU);determining, with the help of the decoder, whether the SAD is less than a threshold value depending on the size of the coding unit (CU); когда SAD меньше порогового значения, зависящего от размера CU:when SAD is less than a threshold depending on CU size: пропускают оставшиеся этапы процесса уточнения вектора движения на стороне декодера (DMVR); иskipping the remaining steps of the decoder-side motion vector refinement (DMVR) process; and выполняют окончательную компенсацию движения; иperform final motion compensation; and когда SAD не меньше порогового значения, зависящего от размера CU:when SAD is not less than a threshold value depending on the size of the CU: выполняют оставшиеся этапы процесса DMVR с использованием неокругленных векторов движения слияния; иperforming the remaining steps of the DMVR process using unrounded merge motion vectors; and выполняют окончательную компенсацию движения.perform final motion compensation. 2. Способ по п. 1, в котором этап выполнения окончательной компенсации движения содержит подэтапы, на которых:2. The method of claim 1, wherein the step of performing the final motion compensation comprises sub-steps of: округляют неокругленные векторы движения слияния до ближайшей целочисленной позиции выборки в горизонтальном направлении и вертикальном направлении для получения целочисленной позиции выборок; иrounding the unrounded merge motion vectors to the nearest integer sample position in the horizontal direction and vertical direction to obtain an integer sample position; and усредняют целочисленные позиции выборок.average the integer positions of the samples. 3. Способ по п. 1, в котором этап выполнения окончательной компенсации движения содержит подэтапы, на которых:3. The method of claim 1, wherein the step of performing the final motion compensation comprises sub-steps of: округляют неокругленные векторы движения слияния до ближайшей позиции выборки полупикселя в горизонтальном направлении и вертикальном направлении для получения позиции выборок полупикселя; иrounding the unrounded merge motion vectors to the nearest half-pixel sample position in the horizontal direction and vertical direction to obtain the position of the half-pixel samples; and усредняют позиции выборок полупикселя.half-pixel sample positions are averaged. 4. Способ по п. 1, в котором каждая опорная вставка с компенсацией движения содержит заданный размер M×N пикселей, где M и N являются положительными целыми числами, имеющими одинаковое значение.4. The method of claim. 1, in which each reference insert with motion compensation contains a given size of M×N pixels, where M and N are positive integers having the same value. 5. Способ по п. 1, в котором каждая опорная вставка с компенсацией движения содержит заданный размер M×N пикселей, где M и N являются положительными целыми числами, имеющими разные значения.5. The method of claim 1, wherein each motion-compensated reference insert comprises a predetermined size of M×N pixels, where M and N are positive integers having different values. 6. Способ по п. 1, в котором пороговое значение, зависящее от размера CU, является функцией битовой глубины неокругленных векторов движения слияния.6. The method of claim 1, wherein the CU size dependent threshold is a function of the bit depth of the unrounded merge motion vectors. 7. Способ определения уровня выравнивания между опорными вставками с компенсацией движения, содержащий этапы, на которых:7. A method for determining the alignment level between motion-compensated support inserts, comprising the steps of: получают, с помощью декодера, интерполированные выборки с компенсацией движения на основании векторов движения слияния с точностью до суб-пикселей из билинейной интерполяции с компенсацией движения;obtaining, by the decoder, interpolated motion-compensated samples based on sub-pixel-accurate merge motion vectors from the motion-compensated bilinear interpolation; вычисляют, с помощью декодера, сумму абсолютных разностей (SAD) между двумя опорными вставками с компенсацией движения с использованием подмножества интерполированных выборок с компенсацией движения;calculating, by the decoder, a sum of absolute differences (SAD) between the two motion-compensated reference inserts using a subset of the motion-compensated interpolated samples; определяют, с помощью декодера, меньше ли SAD порогового значения, зависящего от размера блока кодирования (CU);determining, with the help of the decoder, whether the SAD is less than a threshold value depending on the size of the coding unit (CU); когда SAD меньше порогового значения, зависящего от размера CU:when SAD is less than a threshold depending on CU size: пропускают оставшиеся этапы процесса уточнения вектора движения на стороне декодера (DMVR); иskipping the remaining steps of the decoder-side motion vector refinement (DMVR) process; and выполняют окончательную компенсацию движения; иperform final motion compensation; and когда SAD не меньше порогового значения, зависящего от размера CU:when SAD is not less than a threshold value depending on the size of the CU: выполняют оставшиеся этапы DMVR процесса; иperforming the remaining steps of the DMVR process; and выполняют окончательную компенсацию движения.perform final motion compensation. 8. Способ по п. 7, в котором подмножество интерполированных выборок с компенсацией движения является неокругленными векторами движения слияния между двумя опорными вставками с компенсацией движения.8. The method of claim 7, wherein the subset of interpolated motion-compensated samples are unrounded merge motion vectors between two motion-compensated reference inserts. 9. Способ по п. 7, в котором процесс билинейной интерполяции с компенсацией движения выполняется параллельно на опорных вставках с компенсацией движения.9. The method of claim 7, wherein the motion-compensated bilinear interpolation process is performed in parallel on the motion-compensated reference inserts. 10. Способ по п. 7, в котором интерполированные выборки с компенсацией движения получают из двух опорных вставок с компенсацией движения с перемежением.10. The method of claim 7, wherein the interpolated motion compensated samples are obtained from two interleaved motion compensated reference inserts. 11. Способ по п. 7, в котором подмножество интерполированных выборок с компенсацией движения содержит блок выборок, имеющих размерность, равную размеру блока кодирования (CU).11. The method of claim 7, wherein the subset of motion-compensated interpolated samples comprises a block of samples having a dimension equal to a coding unit (CU) size. 12. Способ по п. 11, в котором подмножество интерполированных выборок с компенсацией движения содержит (CU_width - 2) * (CU-height - 2) выборок, где CU_width является шириной блока кодирования, а CU-height является высотой блока кодирования.12. The method of claim 11, wherein the subset of motion-compensated interpolated samples comprises (CU_width - 2) * (CU-height - 2) samples, where CU_width is the coding block width and CU-height is the coding block height. 13. Способ по п. 11, в котором подмножество интерполированных выборок с компенсацией движения содержит (CU_width * CU-height - (CU_width - 2) * (CU-height - 2)) выборок, при этом CU_width представляет собой ширину блока кодирования и CU-height является высотой блока кодирования.13. The method of claim 11, wherein the subset of motion-compensated interpolated samples comprises (CU_width * CU-height - (CU_width - 2) * (CU-height - 2)) samples, where CU_width is the width of the coding block and CU -height is the height of the encoding block. 14. Способ по п. 7, в котором пороговое значение, зависящее от размера CU, является функцией количества выборок в подмножестве интерполированных выборок с компенсацией движения.14. The method of claim 7, wherein the CU size dependent threshold is a function of the number of samples in the subset of motion compensated interpolated samples. 15. Способ по п. 7, в котором билинейная интерполяция с компенсацией движения выполняется параллельно для двух опорных вставок с компенсацией движения.15. The method of claim 7, wherein the motion-compensated bilinear interpolation is performed in parallel on two motion-compensated reference inserts. 16. Способ по п. 7, в котором билинейная интерполяция с компенсацией движения выполняется с перемежением для двух опорных вставок с компенсацией движения.16. The method of claim 7, wherein the motion-compensated bilinear interpolation is performed interleaved for the two motion-compensated reference inserts. 17. Способ определения уровня выравнивания между опорными вставками с компенсацией движения, содержащий этапы, на которых:17. A method for determining the level of alignment between motion-compensated support inserts, comprising the steps of: получают, с помощью декодера, интерполированные выборки с компенсацией движения, на основании векторов движения слияния с точностью суб-пикселя;obtaining, by means of a decoder, motion-compensated interpolated samples based on fusion motion vectors with sub-pixel precision; вычисляют, с помощью декодера, среднюю уменьшенную сумму абсолютных разностей (MR-SAD) между интерполированными выборками с компенсацией движения на центральных позициях, соответствующих первой и второй опорным вставкам с компенсацией движения;calculating, by means of the decoder, an average reduced sum of absolute differences (MR-SAD) between the interpolated motion-compensated samples at the center positions corresponding to the first and second motion-compensated reference inserts; определяют, с помощью декодера, меньше ли MR-SAD порогового значения, зависящего от размера блока кодирования (CU);determining, by means of the decoder, whether the MR-SAD is less than a threshold value depending on the coding unit (CU) size; когда MR-SAD меньше порогового значения, зависящего от размера CU:when MR-SAD is less than a threshold depending on CU size: пропускают оставшиеся этапы процесса уточнения вектора движения на стороне декодера (DMVR); иskipping the remaining steps of the decoder-side motion vector refinement (DMVR) process; and выполняют окончательную компенсацию движения с использованием неокругленных векторов движения слияния; иperforming final motion compensation using unrounded merge motion vectors; and когда MR-SAD не меньше порогового значения, зависящего от размера CU:when MR-SAD is not less than a threshold depending on CU size: выполняют оставшиеся этапы процесса DMVR с использованием неокругленных векторов движения слияния; иperforming the remaining steps of the DMVR process using unrounded merge motion vectors; and выполняют окончательную компенсацию движения с использованием неокругленных векторов движения слияния.perform final motion compensation using unrounded merge motion vectors. 18. Способ по п. 17, в котором этап вычисления MR-SAD содержит подэтапы, на которых:18. The method of claim 17, wherein the step of calculating MR-SAD comprises sub-steps of: вычисляют среднее значение первой опорной вставки с компенсацией движения;calculate the average value of the first reference insert with motion compensation; вычисляют среднее значение второй опорной вставки с компенсацией движения;calculate the average value of the second reference insert with motion compensation; определяют первую интерполированную выборку с компенсацией движения в центре первой опорной вставки с компенсацией движения;determining a first motion-compensated interpolated sample at the center of the first motion-compensated reference insert; определяют вторую интерполированную выборку с компенсацией движения в центре второй опорной вставки с компенсацией движения, причем MR-SAD вычисляется с использованием уравнения:a second motion-compensated interpolated sample is determined at the center of the second motion-compensated support insert, the MR-SAD being calculated using the equation: MR-SAD = SAD (first_sample - mean (first_patch), second_sample - mean (second_patch)), где first_sample представляет первую интерполированную выборку с компенсацией движения в центре первой опорной вставки с компенсацией движения, second_sample представляет собой вторую интерполированную выборку с компенсацией движения в центре второй опорной вставки с компенсацией движения, mean (first_block) представляет операцию усреднения значений выборки first_block, mean (second_block) представляет операцию усреднения значений выборки second_block и SAD представляет собой операцию суммирования абсолютных разностей между (first_sample – mean (first_patch)) и (second_sample - mean (second_patch)).MR-SAD = SAD(first_sample - mean(first_patch), second_sample - mean(second_patch)) where first_sample represents the first motion-compensated interpolated sample at the center of the first motion-compensated datum, second_sample represents the second motion-compensated interpolated sample at the center second reference insert with motion compensation, mean(first_block) represents the operation of averaging the sample values of first_block, mean(second_block) represents the operation of averaging the values of the sample second_block and SAD is the operation of summing the absolute differences between (first_sample - mean (first_patch)) and (second_sample - mean (second_patch)). 19. Способ по п. 17, дополнительно содержащий этап, на котором:19. The method of claim 17, further comprising the step of: корректируют пороговое значение, зависящее от размера CU, в ответ на битовую глубину интерполированных выборок с компенсацией движения.adjusting a CU size dependent threshold in response to the bit depth of the motion compensated interpolated samples. 20. Способ по п. 19, в котором этап корректировки порогового значения, зависящего от размера CU, содержит подэтап, на котором осуществляют побитовое смещение количества битов вправо.20. The method of claim 19, wherein the step of adjusting the CU size dependent threshold comprises a sub-step of bit-shifting the number of bits to the right. 21. Способ внешнего предсказания, содержащий этапы, на которых:21. An external prediction method, comprising the steps of: получают первую опорную вставку с компенсацией движения и вторую опорную вставку с компенсацией движения на основании исходных векторов движения режима слияния;obtaining a first motion-compensated reference insert and a second motion-compensated reference insert based on the original fusion mode motion vectors; вычисляют значение разности вставок между первой опорной вставкой с компенсацией движения и второй опорной вставкой с компенсацией движения;calculating an insert difference value between the first motion-compensated support insert and the second motion-compensated support insert; получают значение предсказания текущего блока на основании исходных векторов движения в случае, если значение разности вставок меньше порогового значения, при этом пороговое значение определяется на основании размера текущего блока; иobtaining a prediction value of the current block based on the original motion vectors if the insertion difference value is less than a threshold value, wherein the threshold value is determined based on the size of the current block; and уточняют исходные вектора движения для получения значения погрешности текущего блока в случае, если значение различия вставок больше или равно пороговому значению.refining the original motion vectors to obtain the error value of the current block if the value of the difference between the inserts is greater than or equal to the threshold value. 22. Способ по п. 21, в котором исходные векторы движения выводятся из векторов движения соседнего блока текущего блока.22. The method of claim 21, wherein the original motion vectors are derived from the motion vectors of a neighboring block of the current block. 23. Способ по п. 21 или 22, в котором исходные векторы движения содержат первый вектор движения и второй вектор движения, причем первая опорная вставка с компенсацией движения получается согласно первому вектору движения, а вторая опорная вставка с компенсацией движения получается согласно второму вектору движения.23. The method of claim 21 or 22, wherein the original motion vectors comprise a first motion vector and a second motion vector, wherein the first motion compensated reference insert is obtained according to the first motion vector and the second motion compensated reference insert is obtained according to the second motion vector. 24. Способ по любому из пп. 21-23, в котором значение разности вставок представляет собой значение SAD или значение средне уменьшенной SAD.24. The method according to any one of paragraphs. 21-23, wherein the insertion difference value is an SAD value or an average reduced SAD value. 25. Способ по любому из пп. 21-24, в котором этап вычисления значения разности вставок между первой опорной вставкой с компенсацией движения и второй опорной вставкой с компенсацией движения содержит подэтап, на котором:25. The method according to any one of paragraphs. 21-24, wherein the step of calculating an insert difference value between the first motion-compensated support insert and the second motion-compensated support insert comprises a sub-step of: вычисляют значение разности вставок между подмножеством выборок первой опорной вставки с компенсацией движения и соответствующим подмножеством выборок второй опорной вставки с компенсацией движения.calculating an insert difference value between a subset of samples of the first motion-compensated support insert and a corresponding subset of samples of the second motion-compensated support insert. 26. Способ по любому из пп. 21-25, дополнительно содержащий, после этапа вычисления значения разности вставок между первой опорной вставкой с компенсацией движения и второй опорной вставкой с компенсацией движения, этап, на котором:26. The method according to any one of paragraphs. 21-25, further comprising, after the step of calculating an insert difference value between the first motion-compensated support insert and the second motion-compensated support insert, a step of: выполняют сравнение на основании значения разности вставок и порогового значения.performing a comparison based on the insertion difference value and the threshold value. 27. Способ по п. 26, дополнительно содержащий, перед этапом выполнения сравнения, на основании значения разности вставок и порогового значения, этап, на котором:27. The method of claim 26, further comprising, before performing the comparison, based on the insertion difference value and the threshold, the step of: осуществляют корректировку порогового значения после определения порогового значения в соответствии с размером текущего блока.adjusting the threshold value after determining the threshold value in accordance with the size of the current block. 28. Способ по любому из пп. 21-27, дополнительно содержащий, когда значение разности вставок меньше порогового значения, перед этапом получения значения предсказания текущего блока, на основании исходных векторов движения, этап, на котором:28. The method according to any one of paragraphs. 21-27, further comprising, when the insertion difference value is less than the threshold value, before the step of obtaining the prediction value of the current block, based on the original motion vectors, the step of: определяют пропуск уточнения вектора движения на стороне декодера (DMVR).decoder-side motion vector refinement skipping (DMVR) is determined. 29. Способ по любому из пп. 21-28, в котором, когда значение разности вставок меньше порогового значения, значение предсказания текущего блока получают с использованием векторов движения, совпадающих с исходными векторами движения.29. The method according to any one of paragraphs. 21-28, wherein when the insertion difference value is less than a threshold value, the prediction value of the current block is obtained using motion vectors matching the original motion vectors. 30. Устройство внешнего предсказания, содержащее:30. An external prediction device, comprising: энергонезависимую память, хранящую исполняемые процессором инструкции; иnon-volatile memory that stores instructions executable by the processor; and процессор, соединенный с памятью, и выполненный с возможностью исполнения исполняемых процессором инструкций, для выполнения способа по любому из пп. 21-29.a processor coupled to the memory, and configured to execute instructions executable by the processor, to perform the method according to any one of paragraphs. 21-29.
RU2021110432A 2018-09-19 2019-09-18 Method for skipping refinement based on similarity of insertion, when refining motion vector on decoder side based on bilinear interpolation RU2786383C2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IN201831035309 2018-09-19

Publications (2)

Publication Number Publication Date
RU2021110432A RU2021110432A (en) 2022-10-14
RU2786383C2 true RU2786383C2 (en) 2022-12-20

Family

ID=

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105530516A (en) * 2010-01-15 2016-04-27 联发科技股份有限公司 Methods for deriving decoder-side motion vector derivation
US20180184117A1 (en) * 2016-12-22 2018-06-28 Mediatek Inc. Method and Apparatus of Adaptive Bi-Prediction for Video Coding
WO2018113658A1 (en) * 2016-12-22 2018-06-28 Mediatek Inc. Method and apparatus of motion refinement for video coding
WO2018121506A1 (en) * 2016-12-27 2018-07-05 Mediatek Inc. Method and apparatus of bilateral template mv refinement for video coding
WO2018130206A1 (en) * 2017-01-12 2018-07-19 Mediatek Inc. Method and apparatus of candidate skipping for predictor refinement in video coding
US20180241993A1 (en) * 2016-05-17 2018-08-23 Arris Enterprises Llc Template matching for jvet intra prediction

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105530516A (en) * 2010-01-15 2016-04-27 联发科技股份有限公司 Methods for deriving decoder-side motion vector derivation
US20180241993A1 (en) * 2016-05-17 2018-08-23 Arris Enterprises Llc Template matching for jvet intra prediction
US20180184117A1 (en) * 2016-12-22 2018-06-28 Mediatek Inc. Method and Apparatus of Adaptive Bi-Prediction for Video Coding
WO2018113658A1 (en) * 2016-12-22 2018-06-28 Mediatek Inc. Method and apparatus of motion refinement for video coding
WO2018121506A1 (en) * 2016-12-27 2018-07-05 Mediatek Inc. Method and apparatus of bilateral template mv refinement for video coding
WO2018130206A1 (en) * 2017-01-12 2018-07-19 Mediatek Inc. Method and apparatus of candidate skipping for predictor refinement in video coding

Similar Documents

Publication Publication Date Title
JP5580453B2 (en) Direct mode encoding and decoding apparatus
US20240007666A1 (en) Decoder-side motion vector refinement (dmvr) process method and apparatus
JP6065088B2 (en) Moving picture coding apparatus, moving picture coding method, moving picture coding program, transmission apparatus, transmission method, and transmission program
US11445212B2 (en) Moving picture decoding device, moving picture decoding method, and moving picture decoding program
RU2786383C2 (en) Method for skipping refinement based on similarity of insertion, when refining motion vector on decoder side based on bilinear interpolation
JP6036972B2 (en) Moving picture decoding apparatus, moving picture decoding method, moving picture decoding program, receiving apparatus, receiving method, and receiving program
JP5846133B2 (en) Moving picture decoding apparatus, moving picture decoding method, moving picture decoding program, receiving apparatus, receiving method, and receiving program
KR20210022756A (en) Image decoding device, image decoding method, image decoding program, image coding device, image coding method, and image coding program
CN117915109A (en) Method for not performing correction according to slice similarity corrected by decoding end motion vector based on bilinear interpolation
US11812052B2 (en) Moving picture decoding device, moving picture decoding method, and moving picture decoding program
JP5842803B2 (en) Moving picture coding apparatus, moving picture coding method, moving picture coding program, transmission apparatus, transmission method, and transmission program
WO2013108631A1 (en) Moving image coding device, moving image coding method, moving image coding program, moving image decoding device, moving image decoding method and moving image decoding program
JP2002330438A (en) Coding system converter