RU2819065C2 - Video encoder, video decoder and corresponding method - Google Patents

Video encoder, video decoder and corresponding method Download PDF

Info

Publication number
RU2819065C2
RU2819065C2 RU2022101324A RU2022101324A RU2819065C2 RU 2819065 C2 RU2819065 C2 RU 2819065C2 RU 2022101324 A RU2022101324 A RU 2022101324A RU 2022101324 A RU2022101324 A RU 2022101324A RU 2819065 C2 RU2819065 C2 RU 2819065C2
Authority
RU
Russia
Prior art keywords
image block
current image
list
prediction
motion vector
Prior art date
Application number
RU2022101324A
Other languages
Russian (ru)
Other versions
RU2022101324A (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 RU2022101324A publication Critical patent/RU2022101324A/en
Application granted granted Critical
Publication of RU2819065C2 publication Critical patent/RU2819065C2/en

Links

Images

Abstract

FIELD: physics.
SUBSTANCE: invention relates to video encoding means. When a plurality of given conditions are met for the current image block, processing based on a bidirectional optical flow of the current image block to obtain a predicted sample value of the current image block. Plurality of predetermined conditions comprises that: information predFlagL0 for indicating the prediction direction corresponding to the first list (List1) is equal to 1, and information predFlagL1 for indicating the direction of prediction corresponding to the second list (list0) is equal to 1, wherein predFlagL0 and predFlagL1, each equal to 1, indicates that bidirectional prediction is applied to the current image block; MotionModelIdc is equal to 0, where MotionModelIdc equal to 0 indicates that the motion model for compensating for the movement of the current image block is translational motion; merge_subblock_flag included in the syntax element is equal to 0, where merge_subblock_flag equal to 0 indicates that the subblock merging mode is not used for the current image block.
EFFECT: high efficiency of video encoding.
23 cl, 15 dwg

Description

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

Данная заявка относится, в общем, к области технологий кодирования видео и, в частности, к видеокодеру, видеодекодеру и соответствующему способу.This application relates generally to the field of video encoding technologies and, in particular, to a video encoder, video decoder and related method.

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

Возможности цифрового видео могут быть включены в устройства самых разных типов, включая цифровые телевизоры, системы цифрового прямого вещания, системы беспроводного вещания, карманные персональные компьютеры (PDA), портативные или настольные компьютеры, планшетные компьютеры, устройства для чтения электронных книг, цифровые камеры, цифровые записывающие устройства, цифровые медиаплееры, устройства для видеоигр, игровые видеоприставки, сотовые или спутниковые радиотелефоны (так называемые "смартфоны"), устройства для видеоконференцсвязи, устройства для потоковой передачи видео и т.п. Цифровые видеоустройства реализуют технологии сжатия видео, например, технологии сжатия видео, описанные в стандартах, определенных в стандартах MPEG-2, MPEG-4, ITU-T H.263 и ITU-T H.264/MPEG-4, часть 10: усовершенствованное кодирование видео (AVC), стандарт кодирования видео H.265/стандарт высокоэффективного кодирования видео (HEVC) и расширения таких стандартов. Видеоустройства могут передавать, принимать, кодировать, декодировать и/или хранить цифровую видеоинформацию более эффективно за счет реализации таких технологий сжатия видео.Digital video capabilities can be included in a wide variety of device types, including digital televisions, digital direct broadcast systems, wireless broadcast systems, personal digital assistants (PDAs), laptop or desktop computers, tablet computers, e-book readers, digital cameras, digital recording devices, digital media players, video game devices, video game consoles, cellular or satellite radio telephones (called "smartphones"), video conferencing devices, video streaming devices, etc. Digital video devices implement video compression technologies, such as the video compression technologies described in the standards defined in MPEG-2, MPEG-4, ITU-T H.263, and ITU-T H.264/MPEG-4 Part 10: Enhanced video coding (AVC), H.265 video coding standard/High Efficiency Video Coding (HEVC) standard, and extensions of such standards. Video devices can transmit, receive, encode, decode and/or store digital video information more efficiently by implementing such video compression technologies.

Технологии сжатия видео используются для выполнения пространственного (внутрикадрового) предсказания и/или временного (межкадрового) предсказания для уменьшения или устранения избыточности, присущей видеопоследовательности. При блочном кодировании видеослайс видео (то есть видеокадр или часть видеокадра) может быть разделен на блоки изображения, и блок изображения также может называться блоком дерева, единицей кодирования (CU) и/или узлом кодирования. Блок изображения в подлежащем внутрикадровому кодированию (I) слайсе изображения кодируется посредством пространственного предсказания на основе опорной выборки в соседнем блоке на одном и том же изображении. Для блока изображения в подлежащем межкадровому кодированию (P или B) слайсе изображения можно использовать пространственное предсказание на основе опорной выборки в соседнем блоке на одном и том же изображении или временное предсказание на основе опорной выборки на другом опорном изображении. Изображение может называться кадром, и опорное изображение может называться опорным кадром.Video compression technologies are used to perform spatial (intra-frame) prediction and/or temporal (inter-frame) prediction to reduce or eliminate the redundancy inherent in a video sequence. In block coding, a video slice (ie, a video frame or part of a video frame) can be divided into image blocks, and the image block can also be called a tree block, a coding unit (CU), and/or an encoding node. An image block in an image slice to be intra-coded (I) is encoded by spatial prediction based on a reference sample in an adjacent block in the same image. For a block of an image in a to-be-intercoded (P or B) image slice, spatial prediction based on a reference sample in an adjacent block in the same image or temporal prediction based on a reference sample in a different reference picture may be used. The image may be called a frame, and the reference image may be called a reference frame.

Различные стандарты кодирования видео, включая стандарт высокоэффективного кодирования видео (HEVC), предусматривают режим кодирования с предсказанием, используемый для блока изображения. В частности, текущий блок, подлежащий кодированию, предсказывается на основе кодированного блока видеоданных. В режиме внутрикадрового предсказания текущий блок предсказывается на основе одного или нескольких ранее декодированных соседних блоков на том же изображении, что и текущий блок. В режиме межкадрового предсказания текущий блок предсказывается на основе декодированного блока на другом изображении.Various video coding standards, including the High Efficiency Video Coding (HEVC) standard, provide a predictive coding mode used for a picture block. Specifically, the current block to be encoded is predicted based on the encoded block of video data. In intra-frame prediction mode, the current block is predicted based on one or more previously decoded neighboring blocks in the same image as the current block. In inter-frame prediction mode, the current block is predicted based on a decoded block in another picture.

Предсказание включает в себя прямое предсказание, обратное предсказание, двунаправленное предсказание и т.п. Для двунаправленного предсказания необходимо, соответственно, получить блок прямого предсказания (например, соответствующий предсказанному значению выборки в первом списке) и блок обратного предсказания (например, соответствующий предсказанному значению выборки во втором списке) на основе информации движения в процессе компенсации движения при прямом предсказании и в процессе компенсации движения при обратном предсказании, и затем определяется блок предсказания текущего блока на основе блока прямого предсказания и блока обратного предсказания. То, как уменьшить сложность кодирования при одновременном повышении точности предсказания блока предсказания текущего блока, является технической задачей, изучаемой специалистами в данной области техники.Prediction includes forward prediction, backward prediction, bidirectional prediction and the like. For bidirectional prediction, it is necessary to respectively obtain a forward prediction block (eg, corresponding to the predicted sample value in the first list) and a backward prediction block (eg, corresponding to the predicted sample value in the second list) based on the motion information in the forward prediction motion compensation process and in a backward prediction motion compensation process, and then a prediction block of the current block is determined based on the forward prediction block and the backward prediction block. How to reduce coding complexity while increasing the prediction accuracy of a current block prediction block is a technical problem being studied by those skilled in the art.

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

Варианты осуществления настоящего изобретения раскрывают видеокодер, видеодекодер и соответствующий способ, чтобы сбалансировать до некоторой степени сложность кодирования/декодирования и точность предсказания.Embodiments of the present invention disclose a video encoder, a video decoder, and a corresponding method to balance, to some extent, encoding/decoding complexity and prediction accuracy.

Согласно первому аспекту вариант осуществления настоящей заявки обеспечивает способ кодирования видео, и этот способ включает в себя:According to a first aspect, an embodiment of the present application provides a video encoding method, and the method includes:

если выполнено множество заданных условий, выполнение обработки на основе двунаправленного оптического потока (Bi-directional optical flow, BIO или BDOF для краткости) над текущим блоком изображения для получения предсказанного значения выборки текущего блока изображения, где множество заданных условий включает в себя по меньшей мере условие относительно того, что размер текущего блока изображения удовлетворяет первому заданному размеру.if a plurality of specified conditions are met, performing Bi-directional optical flow (BIO or BDOF for short) processing on the current image block to obtain a predicted sample value of the current image block, where the plurality of specified conditions includes at least the condition that the size of the current image block satisfies the first specified size.

Размер текущего блока изображения обычно представлен шириной и высотой (которые обозначены W×H), и ширина и высота измеряются выборкой (выборкой или пикселем). Например, если размер текущего блока изображения составляет 8×8, первое число 8 указывает то, что ширина текущего блока изображения составляет 8 выборок, и второе число 8 указывает то, что высота текущего блока изображения составляет 8 выборок. В качестве другого примера, если размер текущего блока изображения составляет 8×16, число 8 указывает то, что ширина текущего блока изображения составляет 8 выборок, и число 16 указывает то, что высота текущего блока изображения составляет 16 выборок.The size of the current image block is usually represented by the width and height (which are denoted by W×H), and the width and height are measured by a sample (sample or pixel). For example, if the size of the current image block is 8×8, the first number 8 indicates that the width of the current image block is 8 samples, and the second number 8 indicates that the height of the current image block is 8 samples. As another example, if the size of the current image block is 8×16, the number 8 indicates that the width of the current image block is 8 samples, and the number 16 indicates that the height of the current image block is 16 samples.

То, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или составляет): высоту H текущего блока изображения, большую или равную 8, и, когда произведение ширины W на высоту H текущего блока изображения равно 64, ширину W, не равную высоте H.That the size of the current image block satisfies the first specified size includes (or is): the height H of the current image block greater than or equal to 8, and, when the product of the width W and the height H of the current image block is 64, the width W is not equal to height H.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или составляет): высоту H текущего блока изображения, большую или равную 8, и ширину W текущего блока изображения, большую или равную 8.Alternatively, that the size of the current image block satisfies the first specified size includes (or is): a height H of the current image block greater than or equal to 8, and a width W of the current image block greater than or equal to 8.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или составляет): высоту H текущего блока изображения, большую или равную 8, ширину W текущего блока изображения, большую или равную 8, и произведение ширины W текущего блока изображения на высоту H текущего блока изображения, большее 64.Alternatively, the size of the current image block satisfying the first specified size includes (or is): the height H of the current image block greater than or equal to 8, the width W of the current image block greater than or equal to 8, and the product of the width W of the current image block to the height H of the current image block, greater than 64.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или составляет): высоту H текущего блока изображения, большую или равную 8, ширину W текущего блока изображения, большую или равную 8, и произведение ширины W текущего блока изображения на высоту H текущего блока изображения, большее 128.Alternatively, the size of the current image block satisfying the first specified size includes (or is): the height H of the current image block greater than or equal to 8, the width W of the current image block greater than or equal to 8, and the product of the width W of the current image block to the height H of the current image block, greater than 128.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя: высоту H текущего блока изображения, большую 8.Alternatively, the size of the current image block satisfies the first specified size includes: the height H of the current image block greater than 8.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя: высоту H текущего блока изображения, большую 8, и ширину W текущего блока изображения, большую или равную 8.Alternatively, the size of the current image block satisfies the first specified size includes: a height H of the current image block greater than 8, and a width W of the current image block greater than or equal to 8.

Способ дополнительно включает в себя: восстановление текущего блока изображения на основе по меньшей мере предсказанного значения выборки текущего блока изображения; иThe method further includes: restoring the current image block based on at least a predicted sample value of the current image block; And

кодирование синтаксического элемента в подлежащем передаче битовом потоке, где синтаксический элемент по меньшей мере используется для указания того, что применяется двунаправленное предсказание.encoding a syntax element in the bit stream to be transmitted, where the syntax element is at least used to indicate that bidirectional prediction is applied.

Следует понимать, что в процессе выполнения BDOF над текущим блоком изображения предсказание выполняется с помощью подблока. Более конкретно, выполнение обработки на основе двунаправленного оптического потока (BDOF) над текущим блоком изображения может представлять собой, в частности: выполнение обработки на основе двунаправленного оптического потока (BDOF) над текущим подблоком текущего блока изображения для получения предсказанного значения выборки текущего подблока текущего блока изображения. Предсказанное значение выборки текущего блока изображения включает в себя предсказанные значения выборки одного или нескольких подблоков, и один или более подблоков включают в себя текущий подблок. Если текущий блок изображения включает в себя только один подблок, размер подблока может быть равен размеру текущего блока изображения.It should be understood that during the process of performing BDOF on the current image block, prediction is performed using a sub-block. More specifically, performing bidirectional optical flow (BDOF) processing on a current image block may include, but is not limited to: performing bidirectional optical flow (BDOF) processing on a current subblock of the current image block to obtain a predicted sample value of the current subblock of the current image block . The predicted sample value of the current image block includes the predicted sample values of one or more sub-blocks, and the one or more sub-blocks includes the current sub-block. If the current image block includes only one subblock, the size of the subblock may be equal to the size of the current image block.

Следует отметить, что прежде, чем определить (или получить путем предсказания) предсказанное значение выборки текущего блока изображения в соответствии с технологией BDOF, может существовать другое исходное условие в дополнение к размеру текущего блока изображения. Другое исходное условие в данном документе не ограничивается. Для простоты понимания ниже используются примеры для описания.It should be noted that before determining (or obtaining by prediction) the predicted sample value of the current image block in accordance with the BDOF technology, there may be another initial condition in addition to the size of the current image block. The other reference condition herein is not limited. For ease of understanding, examples are used below for description.

Условие A: Существует высокоуровневый идентификатор синтаксиса sps_bdof_enabled_flag, указывающий, что технологию BDOF разрешено использовать для текущей видеопоследовательности.Condition A: There is a high-level syntax identifier sps_bdof_enabled_flag indicating that BDOF technology is enabled for the current video sequence.

Условие B: Информация predFlagL0 указания направления предсказания, соответствующая первому списку (List1), равна 1, и информация указания направления предсказания predFlagL1, соответствующая второму списку (list0), равна 1.Condition B: The prediction direction indication information predFlagL0 corresponding to the first list (List1) is 1, and the prediction direction indication information predFlagL1 corresponding to the second list (list0) is 1.

Условие C: Значение POC_L0 счетчика очередности изображения опорного кадра, соответствующее первому списку (list0), значение POC_L1 счетчика очередности изображения опорного кадра, соответствующее второму списку (list1), и значения POC_Cur счетчика очередности изображения, на котором расположен текущий блок изображения, удовлетворяют следующему соотношению: (POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0. Другими словами, изображение, включающее в себя текущий блок изображения, находится между двумя опорными изображениями.Condition C: The POC_L0 value of the reference frame image queue counter corresponding to the first list (list0), the POC_L1 value of the reference frame image queue counter corresponding to the second list (list1), and the POC_Cur value of the image queue counter on which the current image block is located satisfy the following relationship : (POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0. In other words, an image including the current image block is located between two reference images.

Условие D: MotionModelIdc[xCb][yCb] равно 0. MotionModelIdc представляет собой индекс модели движения для компенсации движения. MotionModelIdc[xCb][yCb], равное 0, указывает то, что моделью движения для компенсации движения текущего блока является поступательное движение (Translational motion).Condition D: MotionModelIdc[xCb][yCb] is 0. MotionModelIdc is the motion model index for motion compensation. MotionModelIdc[xCb][yCb] equal to 0 indicates that the motion model to compensate for the current block's motion is Translational motion.

Условие E: merge_subblock_flag[x0][y0] равно 0, где merge_subblock_flag[x0][y0], равное 0, указывает то, что режим слияния подблоков не применяется для текущего блока изображения.Condition E: merge_subblock_flag[x0][y0] is equal to 0, where merge_subblock_flag[x0][y0] equal to 0 indicates that the subblock merging mode is not applied to the current image block.

Условие F: sym_mvd_flag[x0][y0] равно 0. sym_mvd_flag[x0][y0], равное 0, указывает то, что синтаксическая структура mvd_coding(x0, y0, refList, cpIdx) присутствует для текущего блока.Condition F: sym_mvd_flag[x0][y0] is equal to 0. sym_mvd_flag[x0][y0] equal to 0 indicates that the syntax structure mvd_coding(x0, y0, refList, cpIdx) is present for the current block.

Условие G: bcwIdx[xCb][yCb] равно 0. bcwIdx указывает весовой индекс двунаправленного предсказания для текущего блока изображения.Condition G: bcwIdx[xCb][yCb] is equal to 0. bcwIdx indicates the bidirectional prediction weight index for the current image block.

Условие H: cIdx равно 0. cIdx представляет собой индекс цветового компонента текущего блока изображения.Condition H: cIdx is 0. cIdx is the index of the color component of the current image block.

Условие I: Размер текущего блока изображения является первым заданным размером.Condition I: The size of the current image block is the first specified size.

Условие J: Как luma_weight_l0_flag[refIdxL0], так и luma_weight_l1_flag[refIdxL1] равны 0, где luma_weight_l0_flag, равное 0, указывает то, что отсутствуют весовые коэффициенты для компонента яркости предсказания list0, и luma_weight_l1_flag, равное 0, указывает то, что отсутствуют весовые коэффициенты для компонента яркости предсказания list1.Condition J: Both luma_weight_l0_flag[refIdxL0] and luma_weight_l1_flag[refIdxL1] are equal to 0, where luma_weight_l0_flag equal to 0 indicates that there are no weights for the luma component of the list0 prediction, and luma_weight_l1_flag equal to 0 indicates that there are no weights for the brightness component of the prediction list1.

Например, если выполнены все условия A-J, определяется, что технология BDOF может использоваться для предсказания предсказанного значения выборки текущего блока изображения. Например, bdofFlag устанавливается на значение "истина" (true). Следует отметить, что вышеуказанные условия являются просто примерами, и может быть дополнительно добавлено другое условие, или могут быть заменены одно или более из вышеуказанных условий, или могут быть удалены одно или более из вышеуказанных условий.For example, if all conditions A-J are satisfied, it is determined that BDOF technology can be used to predict the predicted sample value of the current image block. For example, bdofFlag is set to true. It should be noted that the above conditions are merely examples, and another condition may be further added, or one or more of the above conditions may be replaced, or one or more of the above conditions may be deleted.

Следует понимать, что текущий блок изображения (который также упоминается как текущий блок) в данном документе может рассматриваться как блок изображения, подлежащий обработке. Например, в процессе кодирования текущий блок изображения является блоком изображения, подлежащим кодированию (блоком кодирования).It should be understood that the current image block (which is also referred to as the current block) may be considered herein as an image block to be processed. For example, in the encoding process, the current image block is an image block to be encoded (encoding block).

В данном варианте осуществления настоящей заявки может быть дополнительно включено действие по определению условий. Например, определяется то, выполнено ли множество заданных условий.In this embodiment of the present application, an action for determining conditions may be further included. For example, it is determined whether a set of specified conditions are met.

Вполне понятно, что другой случай может быть дополнительно получен со ссылкой на вышеизложенные случаи, и другой случай также подпадает под объем защиты настоящей заявки.It is clear that another case may be further obtained with reference to the above cases, and the other case also falls within the scope of protection of the present application.

Следует понимать, что способ в данном варианте осуществления настоящей заявки может выполняться видеокодером или электронным устройством, имеющим функцию кодирования видео.It should be understood that the method in this embodiment of the present application may be performed by a video encoder or an electronic device having a video encoding function.

Более конкретно, условие для включения или использования технологии BDOF в этом решении отличается от условия для включения или использования технологии BDOF в предшествующем уровне техники, и, в частности, отличаются требования к размеру текущего блока изображения. Технология BDOF используется для текущего блока изображения, имеющего первый заданный размер, поэтому можно получить предсказанное значение выборки, более близкое к исходному значению выборки, и можно надлежащим образом управлять сложностью кодирования. Это до некоторой степени уравновешивает сложность кодирования/декодирования и точность предсказания, тем самым повышая эффективность кодирования.More specifically, the condition for enabling or using BDOF technology in this solution is different from the condition for enabling or using BDOF technology in the prior art, and in particular, the size requirements of the current image block are different. BDOF technology is used for the current image block having the first specified size, so that a predicted sample value closer to the original sample value can be obtained, and the encoding complexity can be properly controlled. This balances encoding/decoding complexity and prediction accuracy to some extent, thereby improving encoding efficiency.

В дополнительном решении синтаксический элемент включает в себя индекс (например, merge_idx[xCb][yCb]) информации движения целевого кандидата, причем информация движения целевого кандидата включает в себя целевые векторы движения-кандидаты, индексы опорных кадров и информацию указания направления предсказания (например, predFlagL0=1 и predFlagL1=1), информация указания направления предсказания используется для указания того, что применяется двунаправленное предсказание, целевые векторы движения-кандидаты включают в себя первый вектор движения, соответствующий первому списку (то есть list0), и второй вектор движения, соответствующий второму списку (то есть list1), и индексы опорных кадров включают в себя индекс (например, refIdxL0) первого опорного кадра, соответствующего первому списку, и индекс (например, refIdxL1) второго опорного кадра, соответствующего второму списку.In a further solution, the syntax element includes an index (e.g., merge_idx[xCb][yCb]) of target candidate motion information, wherein the target candidate motion information includes candidate target motion vectors, reference frame indices, and prediction direction indication information (e.g., predFlagL0=1 and predFlagL1=1), prediction direction indication information is used to indicate that bidirectional prediction is applied, the target motion vectors include a first motion vector corresponding to the first list (i.e., list0) and a second motion vector corresponding to a second list (ie, list1), and the reference frame indices include an index (eg, refIdxL0) of a first reference frame corresponding to the first list, and an index (eg, refIdxL1) of a second reference frame corresponding to the second list.

В данном варианте осуществления настоящей заявки индекс опорного кадра используется для идентификации опорного изображения, соответствующего используемому вектору движения (например, первому вектору движения или второму вектору движения) в заданном списке опорных изображений (первый список list0 или второй список list1). Изображение может называться кадром, и опорное изображение может называться опорным кадром.In this embodiment of the present application, the reference frame index is used to identify a reference picture corresponding to a motion vector being used (eg, a first motion vector or a second motion vector) in a given reference picture list (first list list0 or second list list1). The image may be called a frame, and the reference image may be called a reference frame.

В поле кодирования видео режимы межкадрового предсказания включают в себя прямое предсказание, обратное предсказание и двунаправленное предсказание (включающее в себя прямое предсказание и обратное предсказание), и конкретный режим предсказания, используемый на стороне кодера, обычно указывается в информации указания направления предсказания. Например, информация указания направления предсказания может включать в себя синтаксические элементы predFlagL0 и predFlagL1. Когда predFlagL0=1 и predFlagL1=1, информация указания направления предсказания указывает то, что применяется двунаправленное предсказание. Когда predFlagL0=1 и predFlagL1=0, информация указания направления предсказания указывает то, что используется прямое предсказание. Когда predFlagL0=0 и predFlagL1=1, информация указания направления предсказания указывает то, что используется обратное предсказание. Вполне понятно, что "прямое направление" и "обратное направление", соответственно, соответствуют списку 0 опорных изображений (list0, а именно, предыдущему первому списку) и списку 1 опорных изображений (list1, а именно, предыдущему второму списку) текущего изображения.In the video coding field, inter-frame prediction modes include forward prediction, reverse prediction, and bidirectional prediction (including forward prediction and reverse prediction), and the specific prediction mode used at the encoder side is generally indicated in the prediction direction indication information. For example, the prediction direction indicating information may include syntax elements predFlagL0 and predFlagL1. When predFlagL0=1 and predFlagL1=1, the prediction direction indicating information indicates that bidirectional prediction is applied. When predFlagL0=1 and predFlagL1=0, the prediction direction indication information indicates that forward prediction is used. When predFlagL0=0 and predFlagL1=1, the prediction direction indication information indicates that reverse prediction is used. It is clear that the "forward direction" and the "reverse direction" respectively correspond to reference picture list 0 (list0, namely the previous first list) and reference picture list 1 (list1, namely the previous second list) of the current picture.

В дополнительном решении синтаксический элемент включает в себя первые индексы, вторые индексы, информацию указания направления предсказания и разность векторов движения (MVD), первые индексы (например, mvp_lX_flag[xCb][yCb]) используются для указания предиктора целевого вектора движения-кандидата, предикторы целевых векторов движения-кандидатов включают в себя первый предиктор вектора движения, соответствующий первому списку (например, list0), и второй предиктор вектора движения, соответствующий второму списку (например, list1), и разность векторов движения (MVD) включает в себя первую MVD, соответствующую первому списку, и/или вторую MVD, соответствующую второму списку (при необходимости, когда используется технология MMVD, может быть передана только одна MVD, и MVD, которая находится в другом направлении и которая должна использоваться на стороне декодера может быть получен на основе переданной MVD). Вторые индексы (которые также называются индексами опорных кадров) используются для указания опорных кадров текущего блока изображения, и опорные кадры включают в себя первый опорный кадр, соответствующий первому списку, и второй опорный кадр, соответствующий второму списку. Например, вторыми индексами являются refIdxL0 и refIdxL1, refIdxL0 представляет собой индекс первого опорного кадра, соответствующего первому списку, и refIdxL1 представляет собой индекс второго опорного кадра, соответствующего второму списку. Информация указания направления предсказания (например, predFlagL0=1 и predFlagL1=1) используется для указания того, что применяется двунаправленное предсказание.In a further solution, the syntax element includes first indices, second indices, prediction direction indicating information, and a motion vector difference (MVD), the first indices (e.g., mvp_lX_flag[xCb][yCb]) are used to indicate a candidate target motion vector predictor, predictors the candidate target motion vectors include a first motion vector predictor corresponding to the first list (e.g., list0), and a second motion vector predictor corresponding to the second list (e.g., list1), and the motion vector difference (MVD) includes the first MVD, corresponding to the first list, and/or a second MVD corresponding to the second list (if necessary, when MMVD technology is used, only one MVD can be transmitted, and the MVD that is in the other direction and which should be used on the decoder side can be obtained based on the transmitted MVD). The second indices (which are also called reference frame indices) are used to indicate reference frames of the current image block, and the reference frames include a first reference frame corresponding to the first list and a second reference frame corresponding to the second list. For example, the second indices are refIdxL0 and refIdxL1, refIdxL0 is the index of the first reference frame corresponding to the first list, and refIdxL1 is the index of the second reference frame corresponding to the second list. Prediction direction indication information (eg, predFlagL0=1 and predFlagL1=1) is used to indicate that bidirectional prediction is applied.

Первый вектор движения (например, Mv0_L0), соответствующий первому списку, получается на основе первого предиктора вектора движения (например, Mvp0_L0), соответствующего первому списку, и первой MVD (например, MVD0), соответствующей первому списку. Например, Mv0_L0=Mvp0_L0+MVD0.A first motion vector (eg, Mv0_L0) corresponding to the first list is obtained based on a first motion vector predictor (eg, Mvp0_L0) corresponding to the first list and a first MVD (eg, MVD0) corresponding to the first list. For example, Mv0_L0=Mvp0_L0+MVD0.

Второй вектор движения (например, Mv1_L1), соответствующий второму списку, получается на основе второго предиктора вектора движения (например, Mvp1_L1), соответствующего второму списку, и второй MVD (например, MVD1), соответствующей второму списку. Например, Mv1_L1=Mvp1_L1+MVD1.A second motion vector (eg, Mv1_L1) corresponding to the second list is obtained based on a second motion vector predictor (eg, Mvp1_L1) corresponding to the second list and a second MVD (eg, MVD1) corresponding to the second list. For example, Mv1_L1=Mvp1_L1+MVD1.

В поле кодирования видео режимы межкадрового предсказания включают в себя прямое предсказание, обратное предсказание и двунаправленное предсказание (включающее в себя прямое предсказание и обратное предсказание), и конкретный режим предсказания, используемый на стороне кодера, обычно указывается в информации указания направления предсказания. Например, информация указания направления предсказания может включать в себя синтаксические элементы predFlagL0 и predFlagL1. Когда predFlagL0=1 и predFlagL1=1, информация указания направления предсказания указывает то, что применяется двунаправленное предсказание. Когда predFlagL0=1 и predFlagL1=0, информация указания направления предсказания указывает то, что используется прямое предсказание. Когда predFlagL0=0 и predFlagL1=1, информация указания направления предсказания указывает то, что используется обратное предсказание. Вполне понятно, что "прямое направление" и "обратное направление", соответственно, соответствуют списку 0 опорных изображений (list0, а именно, предыдущему первому списку) и списку 1 опорных изображений (list1, а именно, предыдущему второму списку) текущего изображения.In the video coding field, inter-frame prediction modes include forward prediction, reverse prediction, and bidirectional prediction (including forward prediction and reverse prediction), and the specific prediction mode used at the encoder side is generally indicated in the prediction direction indication information. For example, the prediction direction indicating information may include syntax elements predFlagL0 and predFlagL1. When predFlagL0=1 and predFlagL1=1, the prediction direction indicating information indicates that bidirectional prediction is applied. When predFlagL0=1 and predFlagL1=0, the prediction direction indication information indicates that forward prediction is used. When predFlagL0=0 and predFlagL1=1, the prediction direction indication information indicates that reverse prediction is used. It is clear that the "forward direction" and the "reverse direction" respectively correspond to reference picture list 0 (list0, namely the previous first list) and reference picture list 1 (list1, namely the previous second list) of the current picture.

В дополнительном решении способ дополнительно включает в себя: определение остатка выборки на основе значения выборки текущего блока изображения и предсказанного значения выборки текущего блока изображения; и кодирование синтаксического элемента в подлежащем передаче битовом потоке включает в себя: кодирование синтаксического элемента и остатка выборки в подлежащем передаче битовом потоке. Другими словами, в дополнение к синтаксическому элементу остаток выборки может быть дополнительно кодирован в подлежащем передаче битовом потоке (остаток выборки может быть получен путем вычисления с использованием блока вычисления остатка, и, например, остаток выборки равен 0 или не равен 0). Это решение можно применить к режиму AMVP и режиму слияния. Кроме того, также имеет место случай, когда не требуется кодировать остаток выборки в подлежащем передаче битовом потоке. Например, в режиме пропуска не требуется кодирования остатка выборки в подлежащем передаче битовом потоке.In a further solution, the method further includes: determining a sample remainder based on a sample value of the current image block and a predicted sample value of the current image block; and encoding the syntax element in the to-be-transmitted bit stream includes: encoding the syntax element and the remainder of the sample in the to-be-transmitted bit stream. In other words, in addition to the syntax element, the remainder of the sample may be further encoded in the bitstream to be transmitted (the remainder of the sample may be obtained by calculation using a remainder calculation unit, and, for example, the remainder of the sample is 0 or not 0). This solution can be applied to AMVP mode and merge mode. In addition, there is also a case where it is not necessary to encode the remainder of the sample in the bit stream to be transmitted. For example, skip mode does not require encoding of the remainder of the sample into the bit stream to be transmitted.

Согласно второму аспекту вариант осуществления настоящей заявки обеспечивает способ кодирования, который включает в себя:According to a second aspect, an embodiment of the present application provides an encoding method that includes:

когда размер текущего блока изображения является вторым заданным размером, определение (или получение путем предсказания) предсказанного значения выборки текущего блока изображения (например, предсказанных выборок текущего блока кодирования) первым способом обработки на основе значения опорной выборки, соответствующего первому списку (то есть list0), и значения опорной выборки, соответствующего второму списку (то есть list1), где первый способ обработки не является BDOF (или называется двунаправленным оптическим потоком (Bi-directional optical flow, BIO). Другими словами, когда размер текущего блока изображения является вторым заданным размером, BDOF не может использоваться для определения предсказанного значения выборки текущего блока изображения на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку. Размер текущего блока изображения обычно представлен шириной и высотой (которые обозначены W×H), и ширина и высота измеряются выборкой (выборкой или пикселем). Второй заданный размер составляет 8×8 (первое число 8 указывает то, что ширина текущего блока изображения составляет 8 выборок, и второе число 8 указывает то, что высота текущего блока изображения составляет 8 выборок), 4×N (4 указывает то, что ширина текущего блока изображения составляет 4 выборки, N указывает то, что высота текущего блока изображения составляет N выборок, и другие размеры выводятся по аналогии), 8×16 или 16×8. N равно степени 2 и больше или равно 8. Например, значение N может быть равным 16, 32, 64 или т.п.when the size of the current image block is a second predetermined size, determining (or obtaining by prediction) a predicted sample value of the current image block (e.g., predicted samples of the current encoding block) by the first processing method based on the reference sample value corresponding to the first list (i.e., list0), and a reference sample value corresponding to the second list (that is, list1), where the first processing method is not BDOF (or called Bi-directional optical flow (BIO). In other words, when the size of the current image block is the second specified size, BDOF cannot be used to determine the predicted sample value of the current image block based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list. The size of the current image block is usually represented by width and height (which are denoted by W×H), and width. and height are measured by sample (sample or pixel). The second specified size is 8×8 (the first number 8 indicates that the width of the current image block is 8 samples, and the second number 8 indicates that the height of the current image block is 8 samples), 4×N (4 indicates that the width the current image block is 4 samples, N indicates that the height of the current image block is N samples, and other sizes are derived similarly), 8x16 or 16x8. N is a power of 2 and greater than or equal to 8. For example, the value of N could be 16, 32, 64, or the like.

В данном варианте осуществления настоящей заявки значение опорной выборки, соответствующее первому списку, и значение опорной выборки, соответствующее второму списку, соответственно, получают путем предсказания на основе первого вектора движения (например, Mv0_L0), соответствующего первому списку (то есть list0), и второго вектора движения (например, Mv1_L1), соответствующего второму списку (то есть list1). Например, значение опорной выборки, соответствующее первому списку (то есть list0), может быть определено на основе первого вектора движения (например, Mv0_L0), соответствующего первому списку (то есть list0), и значение опорной выборки, соответствующее второму списку (то есть list1), может быть определено на основе второго вектора движения (например, Mv1_L1), соответствующего второму списку (то есть list1).In this embodiment of the present application, a reference sample value corresponding to the first list and a reference sample value corresponding to the second list are respectively obtained by prediction based on the first motion vector (eg, Mv0_L0) corresponding to the first list (ie, list0) and the second motion vector (eg Mv1_L1) corresponding to the second list (ie list1). For example, a reference sample value corresponding to the first list (i.e., list0) may be determined based on a first motion vector (i.e., Mv0_L0) corresponding to the first list (i.e., list0), and a reference sample value corresponding to the second list (i.e., list1 ) may be determined based on the second motion vector (eg, Mv1_L1) corresponding to the second list (ie, list1).

Затем способ включает в себя: восстановление текущего блока изображения на основе по меньшей мере предсказанного значения выборки текущего блока изображения. Термин "по меньшей мере" в данном документе указывает то, что предсказанное значение выборки текущего блока изображения необходимо использовать для восстановления текущего блока изображения, и может также использоваться другая информация.The method then includes: reconstructing the current image block based on at least the predicted sample value of the current image block. The term "at least" herein indicates that the predicted sample value of the current image block must be used to reconstruct the current image block, and other information may also be used.

Далее, способ включает в себя: кодирование синтаксического элемента в подлежащем передаче битовом потоке, где синтаксический элемент используется по меньшей мере для указания того, что применяется двунаправленное предсказание.Further, the method includes: encoding a syntax element in a bit stream to be transmitted, where the syntax element is used to at least indicate that bidirectional prediction is applied.

Следует понимать, что текущий блок изображения (который также упоминается как текущий блок) в данном документе может рассматриваться как блок изображения, подлежащий обработке. Например, в процессе кодирования текущий блок изображения является блоком изображения, подлежащим кодированию (блоком кодирования).It should be understood that the current image block (which is also referred to as the current block) may be considered herein as an image block to be processed. For example, in the encoding process, the current image block is an image block to be encoded (encoding block).

Кроме того, вышеописанный случай, когда второй заданный размер составляет 8×8, 4×N, 8×16 или 16×8, также может быть ограничен вторым заданным размером, равным 8×8, 4×N, 8×16 или 16×8. Другими словами, BDOF запрещено использовать для одного из размеров 8×8, 4×N, 8×16 и 16×8, перечисленных выше, или BDOF запрещено использовать для множества их размеров. Далее для описания используются примеры.In addition, the above-described case where the second predetermined size is 8×8, 4×N, 8×16 or 16×8 can also be limited to the second predetermined size being 8×8, 4×N, 8×16 or 16× 8. In other words, BDOF is prohibited from being used for one of the 8x8, 4xN, 8x16, and 16x8 sizes listed above, or BDOF is prohibited from being used in multiple sizes of them. The following examples are used for description.

Пример 1: Второй заданный размер включает в себя (или составляет) 8×8. Другими словами, в данном варианте осуществления настоящей заявки BDOF запрещается использовать для размера 8×8. В этом случае получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, когда размер текущего блока изображения является вторым заданным размером, может быть, в частности, выражено как: когда размер текущего блока изображения равен 8×8, получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку.Example 1: The second given size includes (or is) 8x8. In other words, in this embodiment of the present application, BDOF is prohibited from being used for the size 8x8. In this case, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list when the size of the current image block is the second predetermined size may be particularly expressed as: when the size of the current image block is 8×8, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list.

Пример 2: Второй заданный размер включает в себя (или составляет) 4×N. Другими словами, в данном варианте осуществления настоящей заявки BDOF запрещается использовать для размера 4×N. В этом случае получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, когда размер текущего блока изображения является вторым заданным размером, может быть, в частности, выражено как: когда размер текущего блока изображения составляет 4×N, получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, где N больше или равно 8.Example 2: The second specified size includes (or is) 4×N. In other words, in this embodiment of the present application, BDOF is prohibited from being used for size 4×N. In this case, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list when the size of the current image block is the second predetermined size may be particularly expressed as: when the size of the current image block is 4×N, obtaining a predicted sample value of the current image block by prediction by the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list, where N is greater than or equal to 8 .

Пример 3: Второй заданный размер включает в себя (или составляет) 8×8 или 4×N. Другими словами, в данном варианте осуществления настоящей заявки BDOF запрещается использовать для размеров 8×8 и 4×N. В этом случае получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, когда размер текущего блока изображения является вторым заданным размером, может быть, в частности, выражено как: когда размер текущего блока изображения составляет 8×8 или 4×N, получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, где N больше или равно 8.Example 3: The second specified size includes (or is) 8x8 or 4xN. In other words, in this embodiment of the present application, BDOF is prohibited from being used for sizes 8x8 and 4xN. In this case, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list when the size of the current image block is the second predetermined size may be particularly expressed as: when the size of the current image block is 8×8 or 4×N, obtaining a predicted sample value of the current image block by prediction by the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list, where N greater than or equal to 8.

Пример 4: Второй заданный размер включает в себя (или составляет) 8×8, 4×N, 8×16 или 16×8, где N больше или равно 8. Другими словами, в данном варианте осуществления настоящей заявки BDOF запрещено использовать для размеров 8×8, 4×N, 8×16 и 16×8. В этом случае получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, когда размер текущего блока изображения является вторым заданным размером, может быть, в частности, выражено как: когда размер текущего блока изображения является любым из 8×8, 4×N, 8×16 и 16×8, получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку.Example 4: The second specified size includes (or is) 8x8, 4xN, 8x16, or 16x8, where N is greater than or equal to 8. In other words, in this embodiment of the present application, BDOF is prohibited from being used for sizes 8x8, 4xN, 8x16 and 16x8. In this case, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list when the size of the current image block is the second predetermined size may be particularly expressed as: when the size of the current image block is any of 8×8, 4×N, 8×16 and 16×8, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list, and values of the reference sample corresponding to the second list.

Пример 5: Второй заданный размер включает в себя (или составляет) N×8, где N больше или равно 4. Другими словами, в данном варианте осуществления настоящей заявки BDOF запрещается использовать для размера N×8. В этом случае получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, когда размер текущего блок изображения является вторым заданным размером, может быть, в частности, выражено как: когда размер текущего блока изображения равен N×8, получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку.Example 5: The second specified size includes (or is) N×8, where N is greater than or equal to 4. In other words, in this embodiment of the present application, BDOF is prohibited from being used for the size N×8. In this case, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list when the size of the current image block is the second predetermined size may be particularly expressed as: when the size of the current image block is N×8, obtaining a predicted sample value of the current image block by prediction by the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list.

Пример 6: Второй заданный размер включает в себя (или составляет) N×8 или 4×N, где N больше или равно 4. Другими словами, в данном варианте осуществления настоящей заявки BDOF запрещается использовать для размера N×8 или 4×N. В этом случае получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, когда размер текущего блока изображения является вторым заданным размером, может быть, в частности, выражено как: когда размер текущего блока изображения равен N×8 или 4×N, получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку. Кроме того, так как BDOF также запрещено использовать для размера M×4 в некоторых сценариях, в настоящей заявке, когда BDOF запрещено использовать для второго заданного размера, BDOF дополнительно запрещено использовать для размера M×4, где M - целое число, большее или равное 4.Example 6: The second specified size includes (or is) N×8 or 4×N, where N is greater than or equal to 4. In other words, in this embodiment of the present application, BDOF is prohibited from being used for the size N×8 or 4×N. In this case, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list when the size of the current image block is the second predetermined size may be particularly expressed as: when the size of the current image block is N×8 or 4×N, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list. In addition, since BDOF is also prohibited from being used for size M×4 in some scenarios, in this application, when BDOF is prohibited from being used for a second specified size, BDOF is additionally prohibited from being used for size M×4, where M is an integer greater than or equal to 4.

Вполне понятно, что другой случай может быть дополнительно получен со ссылкой на вышеизложенные случаи, и другой случай также подпадает под объем защиты настоящей заявки.It is clear that another case may be further obtained with reference to the above cases, and the other case also falls within the scope of protection of the present application.

Следует понимать, что способ в данном варианте осуществления настоящей заявки может выполняться видеокодером или электронным устройством, имеющим функцию кодирования видео.It should be understood that the method in this embodiment of the present application may be performed by a video encoder or an electronic device having a video encoding function.

Согласно вышеизложенному способу, при использовании технологии BDOF полностью учитываются особенности текущих блоков изображения различных размеров. Когда размер текущего блока изображения является вторым заданным размером, предсказанное значение выборки текущего блока изображения определяется в соответствии с технологией, отличной от технологии BDOF. Это значительно снижает сложность кодирования и повышает эффективность кодирования.According to the above method, when using BDOF technology, the features of current image blocks of various sizes are fully taken into account. When the size of the current image block is the second specified size, the predicted sample value of the current image block is determined in accordance with a technology other than BDOF technology. This greatly reduces coding complexity and improves coding efficiency.

В дополнительном решении определение предсказанного значения выборки текущего блока изображения первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, включает в себя:In a further solution, determining a predicted sample value of the current image block by the first processing method based on a reference sample value corresponding to the first list and a reference sample value corresponding to the second list includes:

выполнение взвешенного вычисления для значений выборок, имеющих одно и то же местоположение в значении опорной выборки, соответствующем первому списку, и в значении опорной выборки, соответствующем второму списку, для получения предсказанного значения выборки текущего блока изображения; илиperforming a weighted calculation on sample values having the same location in a reference sample value corresponding to the first list and a reference sample value corresponding to the second list to obtain a predicted sample value of the current image block; or

получение предсказанного значения выборки текущего блока изображения путем предсказания на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, согласно технологии разности векторов движения в режиме слияния (MMVD); илиobtaining a predicted sample value of the current image block by predicting based on a reference sample value corresponding to the first list and a reference sample value corresponding to the second list according to a merging mode motion vector difference (MMVD) technology; or

получение предсказанного значения выборки текущего блока изображения путем предсказания на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, согласно технологии объединенного межкадрового/внутрикадрового предсказания (CIIP).obtaining a predicted sample value of the current image block by predicting based on a reference sample value corresponding to the first list and a reference sample value corresponding to the second list according to a combined inter-frame/intra-frame prediction (CIIP) technology.

В данном варианте осуществления настоящей заявки то, используется ли способ взвешенного вычисления, технология MMVD, технология CIIP или другая технология предсказания, может быть определено с использованием соответствующего условия или может быть указано с использованием соответствующей информации указания.In this embodiment of the present application, whether a weighted calculation method, MMVD technology, CIIP technology or other prediction technology is used can be determined using a corresponding condition or can be indicated using corresponding indication information.

Следует отметить, что технология BDOF эквивалентна технологии оптимизации исправлений для традиционной технологии предсказания предсказанного значения выборки текущего блока изображения. Во многих сценариях предсказанное значение выборки, более близкое к реальному значению выборки текущего блока изображения, может быть получено в соответствии с технологией BDOF. Таким образом, остаток выборки, полученный на основе предсказанного значения выборки, может быть меньше, поэтому можно повысить эффективность кодирования. Вышеупомянутый способ взвешенного вычисления можно рассматривать как традиционную технологию для получения предсказанного значения выборки текущего блока изображения, и каждую из вышеизложенных технологий MMVD и CIIP можно рассматривать как технологию оптимизации исправлений для традиционной технологии. В данном варианте осуществления настоящей заявки, когда размер текущего блока изображения является вторым заданным размером, предсказанное значение выборки текущего блока изображения определяется в соответствии с традиционной технологией (например, способом взвешенного вычисления) или другой технологией оптимизации исправлений (например, MMVD или CIIP), а не технологией BDOF. Это позволяет значительно снизить сложность кодирования и повысить эффективность кодирования.It should be noted that the BDOF technology is equivalent to the patch optimization technology of the traditional technology of predicting the predicted sample value of the current image block. In many scenarios, a predicted sample value closer to the actual sample value of the current image block can be obtained according to BDOF technology. In this way, the sample residual obtained based on the predicted sample value can be smaller, so the encoding efficiency can be improved. The above weighted calculation method can be considered as a traditional technology for obtaining the predicted sample value of the current image block, and each of the above MMVD and CIIP technologies can be considered as a patch optimization technology for the traditional technology. In this embodiment of the present application, when the size of the current image block is the second predetermined size, the predicted sample value of the current image block is determined in accordance with a conventional technology (for example, a weighted calculation method) or another patch optimization technology (for example, MMVD or CIIP), and not BDOF technology. This can greatly reduce coding complexity and improve coding efficiency.

В дополнительном решении этот способ также включает в себя:In an additional solution, this method also includes:

если выполнено множество заданных условий, выполнение обработки на основе двунаправленного оптического потока (BDOF) над текущим блоком изображения для получения предсказанного значения выборки текущего блока изображения, где множество заданных условий включает в себя по меньшей мере условие относительно того, что размер текущего блока изображения соответствует первому заданному размеру.if a plurality of predetermined conditions are met, performing bidirectional optical flow (BDOF) processing on the current image block to obtain a predicted sample value of the current image block, where the plurality of predetermined conditions includes at least a condition that the size of the current image block matches the first given size.

То, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя: высоту H текущего блока изображения, большую или равную 8, и, когда произведение ширины W на высоту H текущего блока изображения равно 64, ширину W, не равную высоте H.That the size of the current image block satisfies the first specified size includes: the height H of the current image block greater than or equal to 8, and, when the product of the width W and the height H of the current image block is 64, the width W not equal to the height H.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или составляет): высоту H текущего блока изображения, большую или равную 8, и ширину W текущего блока изображения, большую или равную 8.Alternatively, that the size of the current image block satisfies the first specified size includes (or is): a height H of the current image block greater than or equal to 8, and a width W of the current image block greater than or equal to 8.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или составляет): высоту H текущего блока изображения, большую или равную 8, ширину W текущего блока изображения, большую или равную 8, и произведение ширины W текущего блока изображения на высоту H текущего блока изображения, большее 64.Alternatively, the size of the current image block satisfying the first specified size includes (or is): the height H of the current image block greater than or equal to 8, the width W of the current image block greater than or equal to 8, and the product of the width W of the current image block to the height H of the current image block, greater than 64.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или составляет): высоту H текущего блока изображения, большую или равную 8, ширину W текущего блока изображения, большую или равную 8, и произведение ширины W текущего блока изображения на высоту H текущего блока изображения, большее 128.Alternatively, the size of the current image block satisfying the first specified size includes (or is): the height H of the current image block greater than or equal to 8, the width W of the current image block greater than or equal to 8, and the product of the width W of the current image block to the height H of the current image block, greater than 128.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя: высоту H текущего блока изображения, большую 8.Alternatively, the size of the current image block satisfies the first specified size includes: the height H of the current image block greater than 8.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя: высоту H текущего блока изображения, большую 8, и ширину W текущего блока изображения, большую или равную 8.Alternatively, the size of the current image block satisfies the first specified size includes: a height H of the current image block greater than 8, and a width W of the current image block greater than or equal to 8.

Способ дополнительно включает в себя: восстановление текущего блока изображения на основе по меньшей мере предсказанного значения выборки текущего блока изображения.The method further includes: reconstructing the current image block based on at least a predicted sample value of the current image block.

Более конкретно, условие для включения или использования технологии BDOF в этом решении отличается от условия для включения или использования технологии BDOF в предшествующем уровне техники, и, в частности, отличаются требования к размеру текущего блока изображения. Технология BDOF используется для текущего блока изображения, имеющего первый заданный размер, поэтому можно получить предсказанное значение выборки, более близкое к исходному значению выборки, и можно надлежащим образом управлять сложностью кодирования. Это до некоторой степени уравновешивает сложность кодирования/декодирования и точность предсказания, тем самым повышая эффективность кодирования.More specifically, the condition for enabling or using BDOF technology in this solution is different from the condition for enabling or using BDOF technology in the prior art, and in particular, the size requirements of the current image block are different. BDOF technology is used for the current image block having the first specified size, so that a predicted sample value closer to the original sample value can be obtained, and the encoding complexity can be properly controlled. This balances encoding/decoding complexity and prediction accuracy to some extent, thereby improving encoding efficiency.

Следует отметить, что прежде, чем определить (или получить путем предсказания) предсказанное значение выборки текущего блока изображения на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, согласно технологии BDOF, может существовать другое исходное условие в дополнение к размеру текущего блока изображения. Другое исходное условие в данном документе не ограничивается. Для простоты понимания ниже используются примеры для описания.It should be noted that before determining (or obtaining by prediction) the predicted sample value of the current image block based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list, according to BDOF technology, there may be another precondition in addition to to the size of the current image block. The other reference condition herein is not limited. For ease of understanding, examples are used below for description.

Условие A: Существует высокоуровневый идентификатор синтаксиса sps_bdof_enabled_flag, указывающий, что технологию BDOF разрешено использовать для текущей видеопоследовательности.Condition A: There is a high-level syntax identifier sps_bdof_enabled_flag indicating that BDOF technology is enabled for the current video sequence.

Условие B: Информация predFlagL0 указания направления предсказания, соответствующая первому списку (List1), равна 1, и информация указания направления предсказания predFlagL1, соответствующая второму списку (list0), равна 1.Condition B: The prediction direction indication information predFlagL0 corresponding to the first list (List1) is 1, and the prediction direction indication information predFlagL1 corresponding to the second list (list0) is 1.

Условие C: Значение POC_L0 счетчика очередности изображения опорного кадра, соответствующее первому списку (list0), значение POC_L1 счетчика очередности изображения опорного кадра, соответствующее второму списку (list1), и значения POC_Cur счетчика очередности изображения, на котором расположен текущий блок изображения, удовлетворяют следующему соотношению: (POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0. Другими словами, изображение, включающее в себя текущий блок изображения, находится между двумя опорными изображениями.Condition C: The POC_L0 value of the reference frame image queue counter corresponding to the first list (list0), the POC_L1 value of the reference frame image queue counter corresponding to the second list (list1), and the POC_Cur value of the image queue counter on which the current image block is located satisfy the following relationship : (POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0. In other words, an image including the current image block is located between two reference images.

Условие D: MotionModelIdc[xCb][yCb] равно 0. MotionModelIdc представляет собой индекс модели движения для компенсации движения. MotionModelIdc[xCb][yCb], равное 0, указывает то, что моделью движения для компенсации движения текущего блока является поступательное движение (Translational motion).Condition D: MotionModelIdc[xCb][yCb] is 0. MotionModelIdc is the motion model index for motion compensation. MotionModelIdc[xCb][yCb] equal to 0 indicates that the motion model to compensate for the current block's motion is Translational motion.

Условие E: merge_subblock_flag[x0][y0] равно 0, где merge_subblock_flag[x0][y0], равное 0, указывает то, что режим слияния подблоков не применяется для текущего блока изображения.Condition E: merge_subblock_flag[x0][y0] is equal to 0, where merge_subblock_flag[x0][y0] equal to 0 indicates that the subblock merging mode is not applied to the current image block.

Условие F: sym_mvd_flag[x0][y0] равно 0. sym_mvd_flag[x0][y0], равное 0, указывает то, что синтаксическая структура mvd_coding(x0, y0, refList, cpIdx) присутствует для текущего блока.Condition F: sym_mvd_flag[x0][y0] is equal to 0. sym_mvd_flag[x0][y0] equal to 0 indicates that the syntax structure mvd_coding(x0, y0, refList, cpIdx) is present for the current block.

Условие G: bcwIdx[xCb][yCb] равно 0. bcwIdx указывает весовой индекс двунаправленного предсказания для текущего блока изображения.Condition G: bcwIdx[xCb][yCb] is equal to 0. bcwIdx indicates the bidirectional prediction weight index for the current image block.

Условие H: cIdx равно 0. cIdx представляет собой индекс цветового компонента текущего блока изображения.Condition H: cIdx is 0. cIdx is the index of the color component of the current image block.

Условие I: Размер текущего блока изображения является первым заданным размером.Condition I: The size of the current image block is the first specified size.

Условие J: Как luma_weight_l0_flag[refIdxL0], так и luma_weight_l1_flag[refIdxL1] равны 0, где luma_weight_l0_flag, равное 0, указывает то, что отсутствуют весовые коэффициенты для компонента яркости предсказания list0, и luma_weight_l1_flag, равное 0, указывает то, что отсутствуют весовые коэффициенты для компонента яркости предсказания list1.Condition J: Both luma_weight_l0_flag[refIdxL0] and luma_weight_l1_flag[refIdxL1] are equal to 0, where luma_weight_l0_flag equal to 0 indicates that there are no weights for the luma component of the list0 prediction, and luma_weight_l1_flag equal to 0 indicates that there are no weights for the brightness component of the prediction list1.

Например, если выполнены все условия A-J, определяется, что технология BDOF может использоваться для предсказания предсказанного значения выборки текущего блока изображения. Например, bdofFlag устанавливается на значение "истина". Следует отметить, что вышеуказанные условия являются просто примерами, и может быть дополнительно добавлено другое условие, или могут быть заменены одно или более из вышеуказанных условий, или могут быть удалены одно или более из вышеуказанных условий.For example, if all conditions A-J are satisfied, it is determined that BDOF technology can be used to predict the predicted sample value of the current image block. For example, bdofFlag is set to true. It should be noted that the above conditions are merely examples, and another condition may be further added, or one or more of the above conditions may be replaced, or one or more of the above conditions may be deleted.

В дополнительном решении синтаксический элемент включает в себя индекс (например, merge_idx[xCb][yCb]) информации движения целевого кандидата, при этом информация движения целевого кандидата включает в себя целевые векторы движения-кандидаты, индексы опорных кадров и информацию указания направления предсказания (например, predFlagL0=1 и predFlagL1=1), информация указания направления предсказания используется для указания того, что применяется двунаправленное предсказание, целевые векторы движения-кандидаты включают в себя первый вектор движения, соответствующий первому списку (то есть list0), и второй вектор движения, соответствующий второму списку (то есть list1), и индексы опорных кадров включают в себя индекс (например, refIdxL0) первого опорного кадра, соответствующего первому списку, и индекс (например, refIdxL1) второго опорного кадра, соответствующего второму списку.In a further solution, the syntax element includes an index (e.g., merge_idx[xCb][yCb]) of target candidate motion information, wherein the target candidate motion information includes target candidate motion vectors, reference frame indices, and prediction direction indication information (e.g. , predFlagL0=1 and predFlagL1=1), prediction direction indication information is used to indicate that bidirectional prediction is applied, the candidate target motion vectors include a first motion vector corresponding to the first list (i.e., list0) and a second motion vector, corresponding to the second list (ie list1), and the reference frame indices include an index (eg refIdxL0) of a first reference frame corresponding to the first list and an index (eg refIdxL1) of a second reference frame corresponding to the second list.

В данном варианте осуществления настоящей заявки индекс опорного кадра используется для идентификации опорного изображения, соответствующего используемому вектору движения (например, первому вектору движения или второму вектору движения) в заданном списке опорных изображений (первый список list0 или второй список list1). Изображение может называться кадром, и опорное изображение может называться опорным кадром.In this embodiment of the present application, the reference frame index is used to identify a reference picture corresponding to a motion vector being used (eg, a first motion vector or a second motion vector) in a given reference picture list (first list list0 or second list list1). The image may be called a frame, and the reference image may be called a reference frame.

В поле кодирования видео режимы межкадрового предсказания включают в себя прямое предсказание, обратное предсказание и двунаправленное предсказание (включающее в себя прямое предсказание и обратное предсказание), и конкретный режим предсказания, используемый на стороне кодера, обычно указывается в информации указания направления предсказания. Например, информация указания направления предсказания может включать в себя синтаксические элементы predFlagL0 и predFlagL1. Когда predFlagL0=1 и predFlagL1=1, информация указания направления предсказания указывает то, что применяется двунаправленное предсказание. Когда predFlagL0=1 и predFlagL1=0, информация указания направления предсказания указывает то, что используется прямое предсказание. Когда predFlagL0=0 и predFlagL1=1, информация указания направления предсказания указывает то, что используется обратное предсказание. Вполне понятно, что "прямое направление" и "обратное направление", соответственно, соответствуют списку 0 опорных изображений (list0, а именно, предыдущему первому списку) и списку 1 опорных изображений (list1, а именно, предыдущему второму списку) текущего изображения.In the video coding field, inter-frame prediction modes include forward prediction, reverse prediction, and bidirectional prediction (including forward prediction and reverse prediction), and the specific prediction mode used at the encoder side is generally indicated in the prediction direction indication information. For example, the prediction direction indicating information may include syntax elements predFlagL0 and predFlagL1. When predFlagL0=1 and predFlagL1=1, the prediction direction indicating information indicates that bidirectional prediction is applied. When predFlagL0=1 and predFlagL1=0, the prediction direction indication information indicates that forward prediction is used. When predFlagL0=0 and predFlagL1=1, the prediction direction indication information indicates that reverse prediction is used. It is clear that the "forward direction" and the "reverse direction" respectively correspond to reference picture list 0 (list0, namely the previous first list) and reference picture list 1 (list1, namely the previous second list) of the current picture.

В дополнительном решении синтаксический элемент включает в себя первые индексы, вторые индексы, информацию указания направления предсказания и разность векторов движения (MVD), первые индексы (например, mvp_lX_flag[xCb][yCb]) используются для указания предиктора целевого вектора движения-кандидата, предикторы целевых векторов движения-кандидатов включают в себя первый предиктор вектора движения, соответствующий первому списку (например, list0), и второй предиктор вектора движения, соответствующий второму списку (например, list1), и разность векторов движения (MVD) включает в себя первую MVD, соответствующую первому списку, и/или вторую MVD, соответствующую второму списку (при необходимости, когда используется технология MMVD, может быть передана только одна MVD, и MVD, которая находится в другом направлении и которая должна использоваться на стороне декодера может быть получен на основе переданной MVD). Вторые индексы (которые также называются индексами опорных кадров) используются для указания опорных кадров текущего блока изображения, и опорные кадры включают в себя первый опорный кадр, соответствующий первому списку, и второй опорный кадр, соответствующий второму списку. Например, вторыми индексами являются refIdxL0 и refIdxL1, refIdxL0 представляет собой индекс первого опорного кадра, соответствующего первому списку, и refIdxL1 представляет собой индекс второго опорного кадра, соответствующего второму списку. Информация указания направления предсказания (например, predFlagL0=1 и predFlagL1=1) используется для указания того, что применяется двунаправленное предсказание.In a further solution, the syntax element includes first indices, second indices, prediction direction indicating information, and a motion vector difference (MVD), the first indices (e.g., mvp_lX_flag[xCb][yCb]) are used to indicate a candidate target motion vector predictor, predictors the candidate target motion vectors include a first motion vector predictor corresponding to the first list (e.g., list0), and a second motion vector predictor corresponding to the second list (e.g., list1), and the motion vector difference (MVD) includes the first MVD, corresponding to the first list, and/or a second MVD corresponding to the second list (if necessary, when MMVD technology is used, only one MVD can be transmitted, and the MVD that is in the other direction and which should be used on the decoder side can be obtained based on the transmitted MVD). The second indices (which are also called reference frame indices) are used to indicate reference frames of the current image block, and the reference frames include a first reference frame corresponding to the first list and a second reference frame corresponding to the second list. For example, the second indices are refIdxL0 and refIdxL1, refIdxL0 is the index of the first reference frame corresponding to the first list, and refIdxL1 is the index of the second reference frame corresponding to the second list. Prediction direction indication information (eg, predFlagL0=1 and predFlagL1=1) is used to indicate that bidirectional prediction is applied.

Первый вектор движения (например, Mv0_L0), соответствующий первому списку, получается на основе первого предиктора вектора движения (например, Mvp0_L0), соответствующего первому списку, и первой MVD (например, MVD0), соответствующей первому списку. Например, Mv0_L0=Mvp0_L0+MVD0.A first motion vector (eg, Mv0_L0) corresponding to the first list is obtained based on a first motion vector predictor (eg, Mvp0_L0) corresponding to the first list and a first MVD (eg, MVD0) corresponding to the first list. For example, Mv0_L0=Mvp0_L0+MVD0.

Второй вектор движения (например, Mv1_L1), соответствующий второму списку, получается на основе второго предиктора вектора движения (например, Mvp1_L1), соответствующего второму списку, и второй MVD (например, MVD1), соответствующей второму списку. Например, Mv1_L1=Mvp1_L1+MVD1.A second motion vector (eg, Mv1_L1) corresponding to the second list is obtained based on a second motion vector predictor (eg, Mvp1_L1) corresponding to the second list and a second MVD (eg, MVD1) corresponding to the second list. For example, Mv1_L1=Mvp1_L1+MVD1.

В поле кодирования видео режимы межкадрового предсказания включают в себя прямое предсказание, обратное предсказание и двунаправленное предсказание (включающее в себя прямое предсказание и обратное предсказание), и конкретный режим предсказания, используемый на стороне кодера, обычно указывается в информации указания направления предсказания. Например, информация указания направления предсказания может включать в себя синтаксические элементы predFlagL0 и predFlagL1. Когда predFlagL0=1 и predFlagL1=1, информация указания направления предсказания указывает то, что применяется двунаправленное предсказание. Когда predFlagL0=1 и predFlagL1=0, информация указания направления предсказания указывает то, что используется прямое предсказание. Когда predFlagL0=0 и predFlagL1=1, информация указания направления предсказания указывает то, что используется обратное предсказание. Вполне понятно, что "прямое направление" и "обратное направление", соответственно, соответствуют списку 0 опорных изображений (list0, а именно, предыдущему первому списку) и списку 1 опорных изображений (list1, а именно, предыдущему второму списку) текущего изображения.In the video coding field, inter-frame prediction modes include forward prediction, reverse prediction, and bidirectional prediction (including forward prediction and reverse prediction), and the specific prediction mode used at the encoder side is generally indicated in the prediction direction indication information. For example, the prediction direction indicating information may include syntax elements predFlagL0 and predFlagL1. When predFlagL0=1 and predFlagL1=1, the prediction direction indicating information indicates that bidirectional prediction is applied. When predFlagL0=1 and predFlagL1=0, the prediction direction indication information indicates that forward prediction is used. When predFlagL0=0 and predFlagL1=1, the prediction direction indication information indicates that reverse prediction is used. It is clear that the "forward direction" and the "reverse direction" respectively correspond to reference picture list 0 (list0, namely the previous first list) and reference picture list 1 (list1, namely the previous second list) of the current picture.

В дополнительном решении способ может дополнительно включать в себя: определение остатка выборки на основе значения выборки текущего блока изображения и предсказанного значения выборки текущего блока изображения; и кодирование синтаксического элемента в подлежащем передаче битовом потоке включает в себя: кодирование синтаксического элемента и остатка выборки в подлежащем передаче битовом потоке.In a further solution, the method may further include: determining a sample remainder based on a sample value of the current image block and a predicted sample value of the current image block; and encoding the syntax element in the to-be-transmitted bit stream includes: encoding the syntax element and the remainder of the sample in the to-be-transmitted bit stream.

Согласно третьему аспекту вариант осуществления настоящей заявки обеспечивает способ декодирования, который включает в себя:According to a third aspect, an embodiment of the present application provides a decoding method that includes:

синтаксический анализ битового потока для получения синтаксического элемента, где этот синтаксический элемент по меньшей мере используется для указания того, что применяется двунаправленное предсказание; иparsing the bit stream to obtain a syntax element, where the syntax element is at least used to indicate that bidirectional prediction is applied; And

если выполнено множество заданных условий, выполнение обработки двунаправленного оптического потока BDOF (Bi-directional optical flow или BDOF для краткости, или называемого двунаправленным оптическим потоком (Bi-directional optical flow, BIO) над текущим блоком изображения для получения предсказанного значения выборки текущего блока изображения, где множество заданных условий включает в себя по меньшей мере условие относительно того, что размер текущего изображения блок удовлетворяет первому заданному размеру. Размер текущего блока изображения обычно представлен шириной и высотой (которые обозначены W×H), и ширина и высота измеряются выборкой (выборкой или пикселем). Например, если размер текущего блока изображения составляет 8×8, первое число 8 указывает то, что ширина текущего блока изображения составляет 8 выборок, и второе число 8 указывает то, что высота текущего блока изображения составляет 8 выборок. В качестве другого примера, если размер текущего блока изображения составляет 8×16, число 8 указывает то, что ширина текущего блока изображения составляет 8 выборок, и число 16 указывает то, что высота текущего блока изображения составляет 16 выборок.if a plurality of specified conditions are met, performing BDOF (Bi-directional optical flow or BDOF for short, or called Bi-directional optical flow (BIO) processing on the current image block to obtain a predicted sample value of the current image block, where the plurality of specified conditions includes at least a condition that the size of the current image block satisfies the first specified size. The size of the current image block is typically represented by a width and a height (which are denoted by W×H), and the width and height are measured by a sample (sample or sample). pixel). For example, if the size of the current image block is 8x8, the first number 8 indicates that the width of the current image block is 8 samples, and the second number 8 indicates that the height of the current image block is 8 samples. , if the size of the current image block is 8×16, the number 8 indicates that the width of the current image block is 8 samples, and the number 16 indicates that the height of the current image block is 16 samples.

То, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или составляет): высоту H текущего блока изображения, большую или равную 8, и, когда произведение ширины W на высоту H текущего блока изображения равно 64, ширину W, не равную высоте H.That the size of the current image block satisfies the first specified size includes (or is): the height H of the current image block greater than or equal to 8, and, when the product of the width W and the height H of the current image block is 64, the width W is not equal to height H.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или составляет): высоту H текущего блока изображения, большую или равную 8, и ширину W текущего блока изображения, большую или равную 8.Alternatively, that the size of the current image block satisfies the first specified size includes (or is): a height H of the current image block greater than or equal to 8, and a width W of the current image block greater than or equal to 8.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или составляет): высоту H текущего блока изображения, большую или равную 8, ширину W текущего блока изображения, большую или равную 8, и произведение ширины W текущего блока изображения на высоту H текущего блока изображения, большее 64.Alternatively, the size of the current image block satisfying the first specified size includes (or is): the height H of the current image block greater than or equal to 8, the width W of the current image block greater than or equal to 8, and the product of the width W of the current image block to the height H of the current image block, greater than 64.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или составляет): высоту H текущего блока изображения, большую или равную 8, ширину W текущего блока изображения, большую или равную 8, и произведение ширины W текущего блока изображения на высоту H текущего блока изображения, большее 128.Alternatively, the size of the current image block satisfying the first specified size includes (or is): the height H of the current image block greater than or equal to 8, the width W of the current image block greater than or equal to 8, and the product of the width W of the current image block to the height H of the current image block, greater than 128.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя: высоту H текущего блока изображения, большую 8.Alternatively, the size of the current image block satisfies the first specified size includes: the height H of the current image block greater than 8.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя: высоту H текущего блока изображения, большую 8, и ширину W текущего блока изображения, большую или равную 8.Alternatively, the size of the current image block satisfies the first specified size includes: a height H of the current image block greater than 8, and a width W of the current image block greater than or equal to 8.

Способ дополнительно включает в себя: определение значения выборки текущего блока изображения на основе по меньшей мере предсказанного значения выборки текущего блока изображения, где предсказанное значение выборки текущего блока изображения включает в себя предсказанные значения выборки одного или нескольких подблоков.The method further includes: determining a sample value of the current image block based on at least a predicted sample value of the current image block, where the predicted sample value of the current image block includes predicted sample values of one or more sub-blocks.

Следует отметить, что прежде, чем определить (или получить путем предсказания) предсказанное значение выборки текущего блока изображения на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, согласно технологии BDOF, может существовать другое исходное условие в дополнение к размеру текущего блока изображения. Другое исходное условие в данном документе не ограничивается. Для простоты понимания ниже используются примеры для описания.It should be noted that before determining (or obtaining by prediction) the predicted sample value of the current image block based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list, according to BDOF technology, there may be another precondition in addition to to the size of the current image block. The other reference condition herein is not limited. For ease of understanding, examples are used below for description.

Условие A: Существует высокоуровневый идентификатор синтаксиса sps_bdof_enabled_flag, указывающий, что технологию BDOF разрешено использовать для текущей видеопоследовательности.Condition A: There is a high-level syntax identifier sps_bdof_enabled_flag indicating that BDOF technology is enabled for the current video sequence.

Условие B: Информация predFlagL0 указания направления предсказания, соответствующая первому списку (List1), равна 1, и информация указания направления предсказания predFlagL1, соответствующая второму списку (list0), равна 1.Condition B: The prediction direction indication information predFlagL0 corresponding to the first list (List1) is 1, and the prediction direction indication information predFlagL1 corresponding to the second list (list0) is 1.

Условие C: Значение POC_L0 счетчика очередности изображения опорного кадра, соответствующее первому списку (list0), значение POC_L1 счетчика очередности изображения опорного кадра, соответствующее второму списку (list1), и значения POC_Cur счетчика очередности изображения, на котором расположен текущий блок изображения, удовлетворяют следующему соотношению: (POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0. Другими словами, изображение, включающее в себя текущий блок изображения, находится между двумя опорными изображениями.Condition C: The POC_L0 value of the reference frame image queue counter corresponding to the first list (list0), the POC_L1 value of the reference frame image queue counter corresponding to the second list (list1), and the POC_Cur value of the image queue counter on which the current image block is located satisfy the following relationship : (POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0. In other words, an image including the current image block is located between two reference images.

Условие D: MotionModelIdc[xCb][yCb] равно 0. MotionModelIdc представляет собой индекс модели движения для компенсации движения. MotionModelIdc[xCb][yCb], равное 0, указывает то, что моделью движения для компенсации движения текущего блока является поступательное движение (Translational motion).Condition D: MotionModelIdc[xCb][yCb] is 0. MotionModelIdc is the motion model index for motion compensation. MotionModelIdc[xCb][yCb] equal to 0 indicates that the motion model to compensate for the current block's motion is Translational motion.

Условие E: merge_subblock_flag[x0][y0] равно 0, где merge_subblock_flag[x0][y0], равное 0, указывает то, что режим слияния подблоков не применяется для текущего блока изображения.Condition E: merge_subblock_flag[x0][y0] is equal to 0, where merge_subblock_flag[x0][y0] equal to 0 indicates that the subblock merging mode is not applied to the current image block.

Условие F: sym_mvd_flag[x0][y0] равно 0. sym_mvd_flag[x0][y0], равное 0, указывает то, что синтаксическая структура mvd_coding(x0, y0, refList, cpIdx) присутствует для текущего блока.Condition F: sym_mvd_flag[x0][y0] is equal to 0. sym_mvd_flag[x0][y0] equal to 0 indicates that the syntax structure mvd_coding(x0, y0, refList, cpIdx) is present for the current block.

Условие G: bcwIdx[xCb][yCb] равно 0. bcwIdx указывает весовой индекс двунаправленного предсказания для текущего блока изображения.Condition G: bcwIdx[xCb][yCb] is equal to 0. bcwIdx indicates the bidirectional prediction weight index for the current image block.

Условие H: cIdx равно 0. cIdx представляет собой индекс цветового компонента текущего блока изображения.Condition H: cIdx is 0. cIdx is the index of the color component of the current image block.

Условие I: Размер текущего блока изображения является первым заданным размером.Condition I: The size of the current image block is the first specified size.

Условие J: Как luma_weight_l0_flag[refIdxL0], так и luma_weight_l1_flag[refIdxL1] равны 0, где luma_weight_l0_flag, равное 0, указывает то, что отсутствуют весовые коэффициенты для компонента яркости предсказания list0, и luma_weight_l1_flag, равное 0, указывает то, что отсутствуют весовые коэффициенты для компонента яркости предсказания list1.Condition J: Both luma_weight_l0_flag[refIdxL0] and luma_weight_l1_flag[refIdxL1] are equal to 0, where luma_weight_l0_flag equal to 0 indicates that there are no weights for the luma component of the list0 prediction, and luma_weight_l1_flag equal to 0 indicates that there are no weights for the brightness component of the prediction list1.

Например, если выполнены все условия A-J, определяется, что технология BDOF может использоваться для предсказания предсказанного значения выборки текущего блока изображения. Например, bdofFlag устанавливается на значение "истина". Следует отметить, что вышеуказанные условия являются просто примерами, и может быть дополнительно добавлено другое условие, или могут быть заменены одно или более из вышеуказанных условий, или могут быть удалены одно или более из вышеуказанных условий.For example, if all conditions A-J are satisfied, it is determined that BDOF technology can be used to predict the predicted sample value of the current image block. For example, bdofFlag is set to true. It should be noted that the above conditions are merely examples, and another condition may be further added, or one or more of the above conditions may be replaced, or one or more of the above conditions may be deleted.

Следует понимать, что текущий блок изображения (который также упоминается как текущий блок) в данном документе может рассматриваться как блок изображения, подлежащий обработке. Например, в процессе декодирования текущий блок изображения представляет собой блок изображения, подлежащий декодированию (блок декодирования).It should be understood that the current image block (which is also referred to as the current block) may be considered herein as an image block to be processed. For example, in the decoding process, the current image block is an image block to be decoded (decoding block).

В данном варианте осуществления настоящей заявки может быть дополнительно включено действие по определению условия. Например, определяется то, выполнено ли множество заданных условий.In this embodiment of the present application, an action for determining a condition may be further included. For example, it is determined whether a set of specified conditions are met.

Вполне понятно, что другой случай может быть дополнительно получен со ссылкой на вышеизложенные случаи, и другой случай также подпадает под объем защиты настоящей заявки.It is clear that another case may be further obtained with reference to the above cases, and the other case also falls within the scope of protection of the present application.

Следует понимать, что способ в данном варианте осуществления настоящей заявки может выполняться видеодекодером или электронным устройством, имеющим функцию декодирования видео.It should be understood that the method in this embodiment of the present application may be performed by a video decoder or an electronic device having a video decoding function.

Более конкретно, условие для включения или использования технологии BDOF в этом решении отличается от условия для включения или использования технологии BDOF в предшествующем уровне техники, и, в частности, отличаются требования к размеру текущего блока изображения. Технология BDOF используется для текущего блока изображения, имеющего первый заданный размер, поэтому можно получить предсказанное значение выборки, более близкое к исходному значению выборки, и можно надлежащим образом управлять сложностью кодирования. Это до некоторой степени уравновешивает сложность кодирования/декодирования и точность предсказания, тем самым повышая эффективность кодирования.More specifically, the condition for enabling or using BDOF technology in this solution is different from the condition for enabling or using BDOF technology in the prior art, and in particular, the size requirements of the current image block are different. BDOF technology is used for the current image block having the first specified size, so that a predicted sample value closer to the original sample value can be obtained, and the encoding complexity can be properly controlled. This balances encoding/decoding complexity and prediction accuracy to some extent, thereby improving encoding efficiency.

В дополнительном решении синтаксический элемент включает в себя индекс (например, merge_idx[xCb][yCb]) информации движения целевого кандидата, информация движения целевого кандидата включает в себя целевые векторы движения-кандидаты, индексы опорных кадров и информацию указания направления предсказания (например, predFlagL0=1 и predFlagL1=1), информация указания направления предсказания используется для указания того, что применяется двунаправленное предсказание, целевые векторы движения-кандидаты включают в себя первый вектор движения, соответствующий первому списку (то есть list0), и второй вектор движения, соответствующий второму списку (то есть list1), и индексы опорных кадров включают в себя индекс (например, refIdxL0) первого опорного кадра, соответствующего первому списку, и индекс (например, refIdxL1) второго опорного кадра, соответствующего второму списку.In a further solution, the syntax element includes an index (for example, merge_idx[xCb][yCb]) of target candidate motion information, the target candidate motion information includes candidate target motion vectors, reference frame indices, and prediction direction indication information (for example, predFlagL0 =1 and predFlagL1=1), prediction direction indication information is used to indicate that bidirectional prediction is applied, the candidate target motion vectors include a first motion vector corresponding to the first list (i.e., list0) and a second motion vector corresponding to the second list (ie, list1), and the reference frame indices include an index (eg, refIdxL0) of a first reference frame corresponding to the first list, and an index (eg, refIdxL1) of a second reference frame corresponding to the second list.

В данном варианте осуществления настоящей заявки индекс опорного кадра используется для идентификации опорного изображения, соответствующего используемому вектору движения (например, первому вектору движения или второму вектору движения) в заданном списке опорных изображений (первый список list0 или второй список list1). Изображение может называться кадром, и опорное изображение может называться опорным кадром.In this embodiment of the present application, the reference frame index is used to identify a reference picture corresponding to a motion vector being used (eg, a first motion vector or a second motion vector) in a given reference picture list (first list list0 or second list list1). The image may be called a frame, and the reference image may be called a reference frame.

В поле кодирования видео режимы межкадрового предсказания включают в себя прямое предсказание, обратное предсказание и двунаправленное предсказание (включающее в себя прямое предсказание и обратное предсказание), и конкретный режим предсказания, используемый на стороне кодера, обычно указывается в информации указания направления предсказания. Например, информация указания направления предсказания может включать в себя синтаксические элементы predFlagL0 и predFlagL1. Когда predFlagL0=1 и predFlagL1=1, информация указания направления предсказания указывает то, что применяется двунаправленное предсказание. Когда predFlagL0=1 и predFlagL1=0, информация указания направления предсказания указывает то, что используется прямое предсказание. Когда predFlagL0=0 и predFlagL1=1, информация указания направления предсказания указывает то, что используется обратное предсказание. Вполне понятно, что "прямое направление" и "обратное направление", соответственно, соответствуют списку 0 опорных изображений (list0, а именно, предыдущему первому списку) и списку 1 опорных изображений (list1, а именно, предыдущему второму списку) текущего изображения.In the video coding field, inter-frame prediction modes include forward prediction, reverse prediction, and bidirectional prediction (including forward prediction and reverse prediction), and the specific prediction mode used at the encoder side is generally indicated in the prediction direction indication information. For example, the prediction direction indicating information may include syntax elements predFlagL0 and predFlagL1. When predFlagL0=1 and predFlagL1=1, the prediction direction indicating information indicates that bidirectional prediction is applied. When predFlagL0=1 and predFlagL1=0, the prediction direction indication information indicates that forward prediction is used. When predFlagL0=0 and predFlagL1=1, the prediction direction indication information indicates that reverse prediction is used. It is clear that the "forward direction" and the "reverse direction" respectively correspond to reference picture list 0 (list0, namely the previous first list) and reference picture list 1 (list1, namely the previous second list) of the current picture.

В дополнительном решении синтаксический элемент включает в себя первые индексы, вторые индексы, информацию указания направления предсказания и разность векторов движения (MVD), первые индексы (например, mvp_lX_flag[xCb][yCb]) используются для указания предиктора целевого вектора движения-кандидата, предикторы целевых векторов движения-кандидатов включают в себя первый предиктор вектора движения, соответствующий первому списку (например, list0), и второй предиктор вектора движения, соответствующий второму списку (например, list1), и разность векторов движения (MVD) включает в себя первую MVD, соответствующую первому списку, и/или вторую MVD, соответствующую второму списку (например, когда включена только одна MVD, MVD, которая не передается, может быть получена на основе переданной MVD). Вторые индексы (которые также называются индексами опорных кадров) используются для указания опорных кадров текущего блока изображения, и опорные кадры включают в себя первый опорный кадр, соответствующий первому списку, и второй опорный кадр, соответствующий второму списку. Например, вторыми индексами являются refIdxL0 и refIdxL1, refIdxL0 представляет собой индекс первого опорного кадра, соответствующего первому списку, и refIdxL1 представляет собой индекс второго опорного кадра, соответствующего второму списку. Информация указания направления предсказания (например, predFlagL0=1 и predFlagL1=1) используется для указания того, что применяется двунаправленное предсказание.In a further solution, the syntax element includes first indices, second indices, prediction direction indicating information, and a motion vector difference (MVD), the first indices (e.g., mvp_lX_flag[xCb][yCb]) are used to indicate a candidate target motion vector predictor, predictors the candidate target motion vectors include a first motion vector predictor corresponding to the first list (e.g., list0), and a second motion vector predictor corresponding to the second list (e.g., list1), and the motion vector difference (MVD) includes the first MVD, corresponding to the first list, and/or a second MVD corresponding to the second list (eg, when only one MVD is included, the MVD that is not transmitted can be obtained based on the transmitted MVD). The second indices (which are also called reference frame indices) are used to indicate reference frames of the current image block, and the reference frames include a first reference frame corresponding to the first list and a second reference frame corresponding to the second list. For example, the second indices are refIdxL0 and refIdxL1, refIdxL0 is the index of the first reference frame corresponding to the first list, and refIdxL1 is the index of the second reference frame corresponding to the second list. Prediction direction indication information (eg, predFlagL0=1 and predFlagL1=1) is used to indicate that bidirectional prediction is applied.

Первый вектор движения (например, Mv0_L0), соответствующий первому списку, получается на основе первого предиктора вектора движения (например, Mvp0_L0), соответствующего первому списку, и первой MVD (например, MVD0), соответствующей первому списку. Например, Mv0_L0=Mvp0_L0+MVD0.A first motion vector (eg, Mv0_L0) corresponding to the first list is obtained based on a first motion vector predictor (eg, Mvp0_L0) corresponding to the first list and a first MVD (eg, MVD0) corresponding to the first list. For example, Mv0_L0=Mvp0_L0+MVD0.

Второй вектор движения (например, Mv1_L1), соответствующий второму списку, получается на основе второго предиктора вектора движения (например, Mvp1_L1), соответствующего второму списку, и второй MVD (например, MVD1), соответствующей второму списку. Например, Mv1_L1=Mvp1_L1+MVD1.A second motion vector (eg, Mv1_L1) corresponding to the second list is obtained based on a second motion vector predictor (eg, Mvp1_L1) corresponding to the second list and a second MVD (eg, MVD1) corresponding to the second list. For example, Mv1_L1=Mvp1_L1+MVD1.

В поле кодирования видео режимы межкадрового предсказания включают в себя прямое предсказание, обратное предсказание и двунаправленное предсказание (включающее в себя прямое предсказание и обратное предсказание), и конкретный режим предсказания, используемый на стороне кодера, обычно указывается в информации указания направления предсказания. Например, информация указания направления предсказания может включать в себя синтаксические элементы predFlagL0 и predFlagL1. Когда predFlagL0=1 и predFlagL1=1, информация указания направления предсказания указывает то, что применяется двунаправленное предсказание. Когда predFlagL0=1 и predFlagL1=0, информация указания направления предсказания указывает то, что используется прямое предсказание. Когда predFlagL0=0 и predFlagL1=1, информация указания направления предсказания указывает то, что используется обратное предсказание. Вполне понятно, что "прямое направление" и "обратное направление", соответственно, соответствуют списку 0 опорных изображений (list0, а именно, предыдущему первому списку) и списку 1 опорных изображений (list1, а именно, предыдущему второму списку) текущего изображения.In the video coding field, inter-frame prediction modes include forward prediction, reverse prediction, and bidirectional prediction (including forward prediction and reverse prediction), and the specific prediction mode used at the encoder side is generally indicated in the prediction direction indication information. For example, the prediction direction indicating information may include syntax elements predFlagL0 and predFlagL1. When predFlagL0=1 and predFlagL1=1, the prediction direction indicating information indicates that bidirectional prediction is applied. When predFlagL0=1 and predFlagL1=0, the prediction direction indication information indicates that forward prediction is used. When predFlagL0=0 and predFlagL1=1, the prediction direction indication information indicates that reverse prediction is used. It is clear that the "forward direction" and the "reverse direction" respectively correspond to reference picture list 0 (list0, namely the previous first list) and reference picture list 1 (list1, namely the previous second list) of the current picture.

В дополнительном решении синтаксический анализ битового потока для получения синтаксического элемента включает в себя: синтаксический анализ битового потока для получения остатка выборки и синтаксического элемента; и определение значения выборки текущего блока изображения на основе по меньшей мере предсказанного значения выборки текущего блока изображения включает в себя: определение значения выборки текущего блока изображения на основе остатка выборки и предсказанного значения выборки текущего блока изображения.In an additional solution, parsing the bitstream to obtain a syntax element includes: parsing the bitstream to obtain the remainder of the sample and the syntax element; and determining a sample value of the current image block based on at least the predicted sample value of the current image block includes: determining a sample value of the current image block based on the sample remainder and the predicted sample value of the current image block.

Согласно четвертому аспекту вариант осуществления настоящей заявки обеспечивает способ декодирования, который включает в себя:According to a fourth aspect, an embodiment of the present application provides a decoding method that includes:

синтаксический анализ битового потока для получения синтаксического элемента, где этот синтаксический элемент по меньшей мере используется для указания того, что применяется двунаправленное предсказание; иparsing the bit stream to obtain a syntax element, where the syntax element is at least used to indicate that bidirectional prediction is applied; And

когда размер текущего блока изображения является вторым заданным размером, определение (или получение путем предсказания) предсказанного значения выборки текущего блока изображения (например, предсказанных выборок текущего блока кодирования) первым способом обработки на основе значения опорной выборки, соответствующего первому списку (то есть list0), и значения опорной выборки, соответствующего второму списку (то есть list1), где первый способ обработки не является BDOF (или называется двунаправленным оптическим потоком (Bi-directional optical flow, BIO). Другими словами, когда размер текущего блока изображения является вторым заданным размером, BDOF не может использоваться для определения предсказанного значения выборки текущего блока изображения на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку. Размер текущего блока изображения обычно представлен шириной и высотой (которые обозначены W×H), и ширина и высота измеряются выборкой (выборкой или пикселем). Второй заданный размер включает в себя 8×8 (первое число 8 указывает то, что ширина текущего блока изображения составляет 8 выборок, и второе число 8 указывает то, что высота текущего блока изображения составляет 8 выборок), 4×N (4 указывает то, что ширина текущего блока изображения составляет 4 выборки, N указывает то, что высота текущего блока изображения составляет N выборок, и другие размеры выводятся по аналогии), 8×16 или 16×8. N равно степени 2 и больше или равно 8. Например, значение N может быть равным 16, 32, 64 или т.п.when the size of the current image block is a second predetermined size, determining (or obtaining by prediction) a predicted sample value of the current image block (e.g., predicted samples of the current encoding block) by the first processing method based on the reference sample value corresponding to the first list (i.e., list0), and a reference sample value corresponding to the second list (that is, list1), where the first processing method is not BDOF (or called Bi-directional optical flow (BIO). In other words, when the size of the current image block is the second specified size, BDOF cannot be used to determine the predicted sample value of the current image block based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list. The size of the current image block is usually represented by width and height (which are denoted by W×H), and width. and height are measured by sample (sample or pixel). The second specified size includes 8×8 (the first number 8 indicates that the width of the current image block is 8 samples, and the second number 8 indicates that the height of the current image block is 8 samples), 4×N (4 indicates that that the width of the current image block is 4 samples, N indicates that the height of the current image block is N samples, and other sizes are derived similarly), 8x16 or 16x8. N is a power of 2 and greater than or equal to 8. For example, the value of N could be 16, 32, 64, or the like.

В данном варианте осуществления настоящей заявки значение опорной выборки, соответствующее первому списку, и значение опорной выборки, соответствующее второму списку, соответственно, получают путем предсказания на основе первого вектора движения (например, Mv0_L0), соответствующего первому списку (то есть list0), и второго вектора движения (например, Mv1_L1), соответствующего второму списку (то есть list1). Например, значение опорной выборки, соответствующее первому списку (то есть list0), может быть определено на основе первого вектора движения (например, Mv0_L0), соответствующего первому списку (то есть list0), и значение опорной выборки, соответствующее второму списку (то есть list1), может быть определено на основе второго вектора движения (например, Mv1_L1), соответствующего второму списку (то есть list1).In this embodiment of the present application, a reference sample value corresponding to the first list and a reference sample value corresponding to the second list are respectively obtained by prediction based on the first motion vector (eg, Mv0_L0) corresponding to the first list (ie, list0) and the second motion vector (eg Mv1_L1) corresponding to the second list (ie list1). For example, a reference sample value corresponding to the first list (i.e., list0) may be determined based on a first motion vector (i.e., Mv0_L0) corresponding to the first list (i.e., list0), and a reference sample value corresponding to the second list (i.e., list1 ) may be determined based on the second motion vector (eg, Mv1_L1) corresponding to the second list (ie, list1).

Способ дополнительно включает в себя: определение значения выборки текущего блока изображения на основе по меньшей мере предсказанного значения выборки текущего блока изображения.The method further includes: determining a sample value of the current image block based on at least a predicted sample value of the current image block.

Следует понимать, что текущий блок изображения (который также упоминается как текущий блок) в данном документе может рассматриваться как блок изображения, подлежащий обработке. Например, в процессе декодирования текущий блок изображения представляет собой блок изображения, подлежащий декодированию (блок декодирования).It should be understood that the current image block (which is also referred to as the current block) may be considered herein as an image block to be processed. For example, in the decoding process, the current image block is an image block to be decoded (decoding block).

Кроме того, вышеописанный случай, когда второй заданный размер включает в себя 8×8, 4×N, 8×16 или 16×8, также может быть ограничен вторым заданным размером, равным 8×8, 4×N, 8×16 или 16×8. Другими словами, BDOF запрещено использовать для одного из размеров 8×8, 4×N, 8×16 и 16×8, перечисленных выше, или BDOF запрещено использовать для множества их размеров. Далее для описания используются примеры.In addition, the above-described case where the second predetermined size includes 8×8, 4×N, 8×16 or 16×8 may also be limited to the second predetermined size being 8×8, 4×N, 8×16 or 16x8. In other words, BDOF is prohibited from being used for one of the 8x8, 4xN, 8x16, and 16x8 sizes listed above, or BDOF is prohibited from being used in multiple sizes of them. Examples are used for description below.

Пример 1: Второй заданный размер включает в себя (или составляет) 8×8. Другими словами, в данном варианте осуществления настоящей заявки BDOF запрещается использовать для размера 8×8. В этом случае получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, когда размер текущего блока изображения является вторым заданным размером, может быть, в частности, выражено как: когда размер текущего блока изображения равен 8×8, получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку.Example 1: The second given size includes (or is) 8x8. In other words, in this embodiment of the present application, BDOF is prohibited from being used for the size 8x8. In this case, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list when the size of the current image block is the second predetermined size may be particularly expressed as: when the size of the current image block is 8×8, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list.

Пример 2: Второй заданный размер включает в себя (или составляет) 4×N. Другими словами, в данном варианте осуществления настоящей заявки BDOF запрещается использовать для размера 4×N. В этом случае получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, когда размер текущего блока изображения является вторым заданным размером, может быть, в частности, выражено как: когда размер текущего блока изображения составляет 4×N, получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, где N больше или равно 8.Example 2: The second specified size includes (or is) 4×N. In other words, in this embodiment of the present application, BDOF is prohibited from being used for size 4×N. In this case, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list when the size of the current image block is the second predetermined size may be particularly expressed as: when the size of the current image block is 4×N, obtaining a predicted sample value of the current image block by prediction by the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list, where N is greater than or equal to 8 .

Пример 3: Второй заданный размер включает в себя (или составляет) 8×8 или 4×N. Другими словами, в данном варианте осуществления настоящей заявки BDOF запрещается использовать для размеров 8×8 и 4×N. В этом случае получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, когда размер текущего блока изображения является вторым заданным размером, может быть, в частности, выражено как: когда размер текущего блока изображения составляет 8×8 или 4×N, получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, где N больше или равно 8.Example 3: The second specified size includes (or is) 8x8 or 4xN. In other words, in this embodiment of the present application, BDOF is prohibited from being used for sizes 8x8 and 4xN. In this case, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list when the size of the current image block is the second predetermined size may be particularly expressed as: when the size of the current image block is 8×8 or 4×N, obtaining a predicted sample value of the current image block by prediction by the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list, where N greater than or equal to 8.

Пример 4: Второй заданный размер включает в себя (или составляет) 8×8, 4×N, 8×16 или 16×8, где N больше или равно 8. Другими словами, в данном варианте осуществления настоящей заявки BDOF запрещено использовать для размеров 8×8, 4×N, 8×16 и 16×8. В этом случае получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, когда размер текущего блока изображения является вторым заданным размером, может быть, в частности, выражено как: когда размер текущего блока изображения является любым из 8×8, 4×N, 8×16 и 16×8, получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, где N больше или равно 8.Example 4: The second specified size includes (or is) 8x8, 4xN, 8x16, or 16x8, where N is greater than or equal to 8. In other words, in this embodiment of the present application, BDOF is prohibited from being used for sizes 8x8, 4xN, 8x16 and 16x8. In this case, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list when the size of the current image block is the second predetermined size may be particularly expressed as: when the size of the current image block is any of 8×8, 4×N, 8×16 and 16×8, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list, and the reference sample value corresponding to the second list where N is greater than or equal to 8.

Пример 5: Второй заданный размер включает в себя (или составляет) N×8, где N больше или равно 4. Другими словами, в данном варианте осуществления настоящей заявки BDOF запрещается использовать для размера N×8. В этом случае получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, когда размер текущего блок изображения является вторым заданным размером, может быть, в частности, выражено как: когда размер текущего блока изображения равен N×8, получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку.Example 5: The second specified size includes (or is) N×8, where N is greater than or equal to 4. In other words, in this embodiment of the present application, BDOF is prohibited from being used for the size N×8. In this case, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list when the size of the current image block is the second predetermined size may be particularly expressed as: when the size of the current image block is N×8, obtaining a predicted sample value of the current image block by prediction by the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list.

Пример 6: Второй заданный размер включает в себя (или составляет) N×8 или 4×N, где N больше или равно 4. Другими словами, в данном варианте осуществления настоящей заявки BDOF запрещается использовать для размера N×8 или 4×N. В этом случае получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, когда размер текущего блока изображения является вторым заданным размером, может быть, в частности, выражено как: когда размер текущего блока изображения равен N×8 или 4×N, получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку.Example 6: The second specified size includes (or is) N×8 or 4×N, where N is greater than or equal to 4. In other words, in this embodiment of the present application, BDOF is prohibited from being used for the size N×8 or 4×N. In this case, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list when the size of the current image block is the second predetermined size may be particularly expressed as: when the size of the current image block is N×8 or 4×N, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list.

Кроме того, так как BDOF также запрещено использовать для размера M×4 в некоторых сценариях, в настоящей заявке, когда BDOF запрещено использовать для второго заданного размера, BDOF дополнительно запрещено использовать для размера M×4, где M - целое число, большее или равное 4.In addition, since BDOF is also prohibited from being used for size M×4 in some scenarios, in this application, when BDOF is prohibited from being used for a second specified size, BDOF is additionally prohibited from being used for size M×4, where M is an integer greater than or equal to 4.

Вполне понятно, что другой случай может быть дополнительно получен со ссылкой на вышеизложенные случаи, и другой случай также подпадает под объем защиты настоящей заявки.It is clear that another case may be further obtained with reference to the above cases, and the other case also falls within the scope of protection of the present application.

Следует понимать, что способ в данном варианте осуществления настоящей заявки может выполняться видеодекодером или электронным устройством, имеющим функцию декодирования видео.It should be understood that the method in this embodiment of the present application may be performed by a video decoder or an electronic device having a video decoding function.

Согласно вышеизложенному способу при использовании технологии BDOF полностью учитываются особенности текущих блоков изображения различных размеров. Когда размер текущего блока изображения является вторым заданным размером, предсказанное значение выборки текущего блока изображения определяется в соответствии с технологией, отличной от технологии BDOF. Это значительно снижает сложность кодирования и повышает эффективность кодирования.According to the above method, when using BDOF technology, the features of current image blocks of various sizes are fully taken into account. When the size of the current image block is the second specified size, the predicted sample value of the current image block is determined in accordance with a technology other than BDOF technology. This greatly reduces coding complexity and improves coding efficiency.

В дополнительном решении получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, включает в себя:In a further solution, obtaining a predicted sample value of a current image block by prediction by the first processing method based on a reference sample value corresponding to the first list and a reference sample value corresponding to the second list includes:

выполнение взвешенного вычисления для значений выборок, имеющих одно и то же местоположение в значении опорной выборки, соответствующем первому списку, и в значении опорной выборки, соответствующем второму списку, для получения предсказанного значения выборки текущего блока изображения; илиperforming a weighted calculation on sample values having the same location in a reference sample value corresponding to the first list and a reference sample value corresponding to the second list to obtain a predicted sample value of the current image block; or

получение предсказанного значения выборки текущего блока изображения путем предсказания на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, согласно технологии разности векторов движения в режиме слияния (MMVD); илиobtaining a predicted sample value of the current image block by predicting based on a reference sample value corresponding to the first list and a reference sample value corresponding to the second list according to a merging mode motion vector difference (MMVD) technology; or

получение предсказанного значения выборки текущего блока изображения путем предсказания на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, согласно технологии объединенного межкадрового/внутрикадрового предсказания (CIIP); илиobtaining a predicted sample value of the current image block by predicting based on a reference sample value corresponding to the first list and a reference sample value corresponding to the second list according to a combined inter/intra prediction (CIIP) technology; or

получение предсказанного значения выборки текущего блока изображения путем предсказания на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, согласно технологии уточнения вектора движения на стороне декодера (DMVR).obtaining a predicted sample value of the current image block by predicting based on a reference sample value corresponding to the first list and a reference sample value corresponding to the second list according to a decoder-side motion vector refinement (DMVR) technology.

В данном варианте осуществления настоящей заявки то, используется ли способ взвешенного вычисления, технология MMVD или технология CIIP, может быть определено с использованием соответствующего условия или может быть указано с использованием соответствующей информации указания.In this embodiment of the present application, whether the weighted calculation method, MMVD technology or CIIP technology is used can be determined using a corresponding condition or can be indicated using corresponding indication information.

Следует отметить, что технология BDOF эквивалентна технологии оптимизации исправлений для традиционной технологии предсказания предсказанного значения выборки текущего блока изображения. Во многих сценариях предсказанное значение выборки, более близкое к реальному значению выборки текущего блока изображения, может быть получено в соответствии с технологией BDOF. Поэтому остаток выборки, полученный на основе предсказанного значения выборки, может быть меньше, поэтому можно повысить эффективность кодирования. Таким образом, на стороне кодера обычно используется технология BDOF. Для более точного восстановления предсказанного значения выборки технология BDOF используется также, соответственно, на стороне декодера. Вышеупомянутый способ взвешенного вычисления можно рассматривать как традиционную технологию для получения предсказанного значения выборки текущего блока изображения, и каждую из вышеизложенных технологий MMVD, CIIP и DMVR можно рассматривать как технология оптимизации исправлений для традиционной технологии. В данном варианте осуществления настоящей заявки, когда размер текущего блока изображения является вторым заданным размером, предсказанное значение выборки текущего блока изображения определяется в соответствии с традиционной технологией (например, способом взвешенного вычисления) или другой технологией оптимизации исправлений (например, MMVD, CIIP или DMVR), а не технологией BDOF. Это позволяет значительно снизить сложность декодирования и повысить эффективность декодирования.It should be noted that the BDOF technology is equivalent to the patch optimization technology of the traditional technology of predicting the predicted sample value of the current image block. In many scenarios, a predicted sample value closer to the actual sample value of the current image block can be obtained according to BDOF technology. Therefore, the sample residual obtained based on the predicted sample value can be smaller, so the encoding efficiency can be improved. Thus, BDOF technology is usually used on the encoder side. To more accurately restore the predicted sample value, BDOF technology is also used on the decoder side. The above weighted calculation method can be considered as a traditional technology for obtaining the predicted sample value of the current image block, and each of the above MMVD, CIIP and DMVR technologies can be considered as a patch optimization technology for the traditional technology. In this embodiment of the present application, when the size of the current image block is the second predetermined size, the predicted sample value of the current image block is determined in accordance with a conventional technology (for example, a weighted calculation method) or another patch optimization technology (for example, MMVD, CIIP or DMVR) , not BDOF technology. This can greatly reduce decoding complexity and improve decoding efficiency.

В дополнительном решении способ дополнительно включает в себя: если выполнено множество заданных условий, выполнение обработки на основе двунаправленного оптического потока (BDOF) над текущим блоком изображения для получения предсказанного значения выборки текущего блока изображения, где множество заданных условий включает в себя по меньшей мере условие относительно того, что размер текущего блока изображения удовлетворяет первому заданному размеру.In a further solution, the method further includes: if the plurality of predetermined conditions are met, performing bidirectional optical flow (BDOF) processing on the current image block to obtain a predicted sample value of the current image block, where the plurality of predetermined conditions includes at least a condition regarding that the size of the current image block satisfies the first specified size.

То, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или составляет): высоту H текущего блока изображения, большую или равную 8, и, когда произведение ширины W на высоту H текущего блока изображения равно 64, ширину W, не равную высоте H.That the size of the current image block satisfies the first specified size includes (or is): the height H of the current image block greater than or equal to 8, and, when the product of the width W and the height H of the current image block is 64, the width W is not equal to height H.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или составляет): высоту H текущего блока изображения, большую или равную 8, и ширину W текущего блока изображения, большую или равную 8.Alternatively, that the size of the current image block satisfies the first specified size includes (or is): a height H of the current image block greater than or equal to 8, and a width W of the current image block greater than or equal to 8.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или составляет): высоту H текущего блока изображения, большую или равную 8, ширину W текущего блока изображения, большую или равную 8, и произведение ширины W текущего блока изображения на высоту H текущего блока изображения, большее 64.Alternatively, the size of the current image block satisfying the first specified size includes (or is): the height H of the current image block greater than or equal to 8, the width W of the current image block greater than or equal to 8, and the product of the width W of the current image block to the height H of the current image block, greater than 64.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или составляет): высоту H текущего блока изображения, большую или равную 8, ширину W текущего блока изображения, большую или равную 8, и произведение ширины W текущего блока изображения на высоту H текущего блока изображения, большее 128.Alternatively, the size of the current image block satisfying the first specified size includes (or is): the height H of the current image block greater than or equal to 8, the width W of the current image block greater than or equal to 8, and the product of the width W of the current image block to the height H of the current image block, greater than 128.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя: высоту H текущего блока изображения, большую 8.Alternatively, the size of the current image block satisfies the first specified size includes: the height H of the current image block greater than 8.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя: высоту H текущего блока изображения, большую 8, и ширину W текущего блока изображения, большую или равную 8.Alternatively, the size of the current image block satisfies the first specified size includes: a height H of the current image block greater than 8, and a width W of the current image block greater than or equal to 8.

Способ дополнительно включает в себя: восстановление текущего блока изображения на основе по меньшей мере предсказанного значения выборки текущего блока изображения.The method further includes: reconstructing the current image block based on at least a predicted sample value of the current image block.

Более конкретно, условие для включения или использования технологии BDOF в этом решении отличается от условия для включения или использования технологии BDOF в предшествующем уровне техники, и, в частности, отличаются требования к размеру текущего блока изображения. Технология BDOF используется для текущего блока изображения, имеющего первый заданный размер, поэтому можно получить предсказанное значение выборки, более близкое к исходному значению выборки, и можно надлежащим образом управлять сложностью кодирования. Это до некоторой степени уравновешивает сложность кодирования/декодирования и точность предсказания, тем самым повышая эффективность кодирования.More specifically, the condition for enabling or using BDOF technology in this solution is different from the condition for enabling or using BDOF technology in the prior art, and in particular, the size requirements of the current image block are different. BDOF technology is used for the current image block having the first specified size, so that a predicted sample value closer to the original sample value can be obtained, and the encoding complexity can be properly controlled. This balances encoding/decoding complexity and prediction accuracy to some extent, thereby improving encoding efficiency.

Следует отметить, что прежде, чем определить (или получить путем предсказания) предсказанное значение выборки текущего блока изображения на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, согласно технологии BDOF, может существовать другое исходное условие в дополнение к размеру текущего блока изображения. Другое исходное условие в данном документе не ограничивается. Для простоты понимания ниже используются примеры для описания.It should be noted that before determining (or obtaining by prediction) the predicted sample value of the current image block based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list, according to BDOF technology, there may be another precondition in addition to to the size of the current image block. The other reference condition herein is not limited. For ease of understanding, examples are used below for description.

Условие A: Существует высокоуровневый идентификатор синтаксиса sps_bdof_enabled_flag, указывающий, что технологию BDOF разрешено использовать для текущей видеопоследовательности.Condition A: There is a high-level syntax identifier sps_bdof_enabled_flag indicating that BDOF technology is enabled for the current video sequence.

Условие B: Информация predFlagL0 указания направления предсказания, соответствующая первому списку (List1), равна 1, и информация указания направления предсказания predFlagL1, соответствующая второму списку (list0), равна 1.Condition B: The prediction direction indication information predFlagL0 corresponding to the first list (List1) is 1, and the prediction direction indication information predFlagL1 corresponding to the second list (list0) is 1.

Условие C: Значение POC_L0 счетчика очередности изображения опорного кадра, соответствующее первому списку (list0), значение POC_L1 счетчика очередности изображения опорного кадра, соответствующее второму списку (list1), и значения POC_Cur счетчика очередности изображения, на котором расположен текущий блок изображения, удовлетворяют следующему соотношению: (POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0. Другими словами, изображение, включающее в себя текущий блок изображения, находится между двумя опорными изображениями.Condition C: The POC_L0 value of the reference frame image queue counter corresponding to the first list (list0), the POC_L1 value of the reference frame image queue counter corresponding to the second list (list1), and the POC_Cur value of the image queue counter on which the current image block is located satisfy the following relationship : (POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0. In other words, an image including the current image block is located between two reference images.

Условие D: MotionModelIdc[xCb][yCb] равно 0. MotionModelIdc представляет собой индекс модели движения для компенсации движения. MotionModelIdc[xCb][yCb], равное 0, указывает то, что моделью движения для компенсации движения текущего блока является поступательное движение (Translational motion).Condition D: MotionModelIdc[xCb][yCb] is 0. MotionModelIdc is the motion model index for motion compensation. MotionModelIdc[xCb][yCb] equal to 0 indicates that the motion model to compensate for the current block's motion is Translational motion.

Условие E: merge_subblock_flag[x0][y0] равно 0, где merge_subblock_flag[x0][y0], равное 0, указывает то, что режим слияния подблоков не применяется для текущего блока изображения.Condition E: merge_subblock_flag[x0][y0] is equal to 0, where merge_subblock_flag[x0][y0] equal to 0 indicates that the subblock merging mode is not applied to the current image block.

Условие F: sym_mvd_flag[x0][y0] равно 0. sym_mvd_flag[x0][y0], равное 0, указывает то, что синтаксическая структура mvd_coding(x0, y0, refList, cpIdx) присутствует для текущего блока.Condition F: sym_mvd_flag[x0][y0] is equal to 0. sym_mvd_flag[x0][y0] equal to 0 indicates that the syntax structure mvd_coding(x0, y0, refList, cpIdx) is present for the current block.

Условие G: bcwIdx[xCb][yCb] равно 0. bcwIdx указывает весовой индекс двунаправленного предсказания для текущего блока изображения.Condition G: bcwIdx[xCb][yCb] is equal to 0. bcwIdx indicates the bidirectional prediction weight index for the current image block.

Условие H: cIdx равно 0. cIdx представляет собой индекс цветового компонента текущего блока изображения.Condition H: cIdx is 0. cIdx is the index of the color component of the current image block.

Условие I: Размер текущего блока изображения является первым заданным размером.Condition I: The size of the current image block is the first specified size.

Условие J: Как luma_weight_l0_flag[refIdxL0], так и luma_weight_l1_flag[refIdxL1] равны 0, где luma_weight_l0_flag, равное 0, указывает то, что отсутствуют весовые коэффициенты для компонента яркости предсказания list0, и luma_weight_l1_flag, равное 0, указывает то, что отсутствуют весовые коэффициенты для компонента яркости предсказания list1.Condition J: Both luma_weight_l0_flag[refIdxL0] and luma_weight_l1_flag[refIdxL1] are equal to 0, where luma_weight_l0_flag equal to 0 indicates that there are no weights for the luma component of the list0 prediction, and luma_weight_l1_flag equal to 0 indicates that there are no weights for the brightness component of the prediction list1.

Например, если выполнены все условия A-J, определяется, что технология BDOF может использоваться для предсказания предсказанного значения выборки текущего блока изображения. Например, bdofFlag устанавливается на значение "истина". Следует отметить, что вышеуказанные условия являются просто примерами, и может быть дополнительно добавлено другое условие, или могут быть заменены одно или более из вышеуказанных условий, или могут быть удалены одно или более из вышеуказанных условий.For example, if all conditions A-J are satisfied, it is determined that BDOF technology can be used to predict the predicted sample value of the current image block. For example, bdofFlag is set to true. It should be noted that the above conditions are merely examples, and another condition may be further added, or one or more of the above conditions may be replaced, or one or more of the above conditions may be deleted.

В дополнительном решении синтаксический элемент включает в себя индекс (например, merge_idx[xCb][yCb]) информации движения целевого кандидата, информация движения целевого кандидата включает в себя целевые векторы движения-кандидаты, индексы опорных кадров и информацию указания направления предсказания (например, predFlagL0=1 и predFlagL1=1), информация указания направления предсказания используется для указания того, что применяется двунаправленное предсказание, целевые векторы движения-кандидаты включают в себя первый вектор движения, соответствующий первому списку (то есть list0), и второй вектор движения, соответствующий второму списку (то есть list1), и индексы опорных кадров включают в себя индекс (например, refIdxL0) первого опорного кадра, соответствующего первому списку, и индекс (например, refIdxL1) второго опорного кадра, соответствующего второму списку.In a further solution, the syntax element includes an index (for example, merge_idx[xCb][yCb]) of target candidate motion information, the target candidate motion information includes candidate target motion vectors, reference frame indices, and prediction direction indication information (for example, predFlagL0 =1 and predFlagL1=1), prediction direction indication information is used to indicate that bidirectional prediction is applied, the candidate target motion vectors include a first motion vector corresponding to the first list (i.e., list0) and a second motion vector corresponding to the second list (ie, list1), and the reference frame indices include an index (eg, refIdxL0) of a first reference frame corresponding to the first list, and an index (eg, refIdxL1) of a second reference frame corresponding to the second list.

В данном варианте осуществления настоящей заявки индекс опорного кадра используется для идентификации опорного изображения, соответствующего используемому вектору движения (например, первому вектору движения или второму вектору движения) в заданном списке опорных изображений (первый список list0 или второй список list1). Изображение может называться кадром, и опорное изображение может называться опорным кадром.In this embodiment of the present application, the reference frame index is used to identify a reference picture corresponding to a motion vector being used (eg, a first motion vector or a second motion vector) in a given reference picture list (first list list0 or second list list1). The image may be called a frame, and the reference image may be called a reference frame.

В поле кодирования видео режимы межкадрового предсказания включают в себя прямое предсказание, обратное предсказание и двунаправленное предсказание (включающее в себя прямое предсказание и обратное предсказание), и конкретный режим предсказания, используемый на стороне кодера, обычно указывается в информации указания направления предсказания. Например, информация указания направления предсказания может включать в себя синтаксические элементы predFlagL0 и predFlagL1. Когда predFlagL0=1 и predFlagL1=1, информация указания направления предсказания указывает то, что применяется двунаправленное предсказание. Когда predFlagL0=1 и predFlagL1=0, информация указания направления предсказания указывает то, что используется прямое предсказание. Когда predFlagL0=0 и predFlagL1=1, информация указания направления предсказания указывает то, что используется обратное предсказание. Вполне понятно, что "прямое направление" и "обратное направление", соответственно, соответствуют списку 0 опорных изображений (list0, а именно, предыдущему первому списку) и списку 1 опорных изображений (list1, а именно, предыдущему второму списку) текущего изображения.In the video coding field, inter-frame prediction modes include forward prediction, reverse prediction, and bidirectional prediction (including forward prediction and reverse prediction), and the specific prediction mode used at the encoder side is generally indicated in the prediction direction indication information. For example, the prediction direction indicating information may include syntax elements predFlagL0 and predFlagL1. When predFlagL0=1 and predFlagL1=1, the prediction direction indicating information indicates that bidirectional prediction is applied. When predFlagL0=1 and predFlagL1=0, the prediction direction indication information indicates that forward prediction is used. When predFlagL0=0 and predFlagL1=1, the prediction direction indication information indicates that reverse prediction is used. It is clear that the "forward direction" and the "reverse direction" respectively correspond to reference picture list 0 (list0, namely the previous first list) and reference picture list 1 (list1, namely the previous second list) of the current picture.

В дополнительном решении синтаксический элемент включает в себя первые индексы, вторые индексы, информацию указания направления предсказания и разность векторов движения (MVD), первые индексы (например, mvp_lX_flag[xCb][yCb]) используются для указания предиктора целевого вектора движения-кандидата, предикторы целевых векторов движения-кандидатов включают в себя первый предиктор вектора движения, соответствующий первому списку (например, list0), и второй предиктор вектора движения, соответствующий второму списку (например, list1), и разность векторов движения (MVD) включает в себя первую MVD, соответствующую первому списку, и/или вторую MVD, соответствующую второму списку (при необходимости, когда используется технология MMVD, может быть передана только одна MVD, и MVD, которая находится в другом направлении и которая должна использоваться на стороне декодера может быть получен на основе переданной MVD). Вторые индексы (которые также называются индексами опорных кадров) используются для указания опорных кадров текущего блока изображения, и опорные кадры включают в себя первый опорный кадр, соответствующий первому списку, и второй опорный кадр, соответствующий второму списку. Например, вторыми индексами являются refIdxL0 и refIdxL1, refIdxL0 представляет собой индекс первого опорного кадра, соответствующего первому списку, и refIdxL1 представляет собой индекс второго опорного кадра, соответствующего второму списку. Информация указания направления предсказания (например, predFlagL0=1 и predFlagL1=1) используется для указания того, что применяется двунаправленное предсказание.In a further solution, the syntax element includes first indices, second indices, prediction direction indicating information, and a motion vector difference (MVD), the first indices (e.g., mvp_lX_flag[xCb][yCb]) are used to indicate a candidate target motion vector predictor, predictors the candidate target motion vectors include a first motion vector predictor corresponding to the first list (e.g., list0), and a second motion vector predictor corresponding to the second list (e.g., list1), and the motion vector difference (MVD) includes the first MVD, corresponding to the first list, and/or a second MVD corresponding to the second list (if necessary, when MMVD technology is used, only one MVD can be transmitted, and the MVD that is in the other direction and which should be used on the decoder side can be obtained based on the transmitted MVD). The second indices (which are also called reference frame indices) are used to indicate reference frames of the current image block, and the reference frames include a first reference frame corresponding to the first list and a second reference frame corresponding to the second list. For example, the second indices are refIdxL0 and refIdxL1, refIdxL0 is the index of the first reference frame corresponding to the first list, and refIdxL1 is the index of the second reference frame corresponding to the second list. Prediction direction indication information (eg, predFlagL0=1 and predFlagL1=1) is used to indicate that bidirectional prediction is applied.

Первый вектор движения (например, Mv0_L0), соответствующий первому списку, получается на основе первого предиктора вектора движения (например, Mvp0_L0), соответствующего первому списку, и первой MVD (например, MVD0), соответствующей первому списку. Например, Mv0_L0=Mvp0_L0+MVD0.A first motion vector (eg, Mv0_L0) corresponding to the first list is obtained based on a first motion vector predictor (eg, Mvp0_L0) corresponding to the first list and a first MVD (eg, MVD0) corresponding to the first list. For example, Mv0_L0=Mvp0_L0+MVD0.

Второй вектор движения (например, Mv1_L1), соответствующий второму списку, получается на основе второго предиктора вектора движения (например, Mvp1_L1), соответствующего второму списку, и второй MVD (например, MVD1), соответствующей второму списку. Например, Mv1_L1=Mvp1_L1+MVD1.A second motion vector (eg, Mv1_L1) corresponding to the second list is obtained based on a second motion vector predictor (eg, Mvp1_L1) corresponding to the second list and a second MVD (eg, MVD1) corresponding to the second list. For example, Mv1_L1=Mvp1_L1+MVD1.

В поле кодирования видео режимы межкадрового предсказания включают в себя прямое предсказание, обратное предсказание и двунаправленное предсказание (включающее в себя прямое предсказание и обратное предсказание), и конкретный режим предсказания, используемый на стороне кодера, обычно указывается в информации указания направления предсказания. Например, информация указания направления предсказания может включать в себя синтаксические элементы predFlagL0 и predFlagL1. Когда predFlagL0=1 и predFlagL1=1, информация указания направления предсказания указывает то, что применяется двунаправленное предсказание. Когда predFlagL0=1 и predFlagL1=0, информация указания направления предсказания указывает то, что используется прямое предсказание. Когда predFlagL0=0 и predFlagL1=1, информация указания направления предсказания указывает то, что используется обратное предсказание. Вполне понятно, что "прямое направление" и "обратное направление", соответственно, соответствуют списку 0 опорных изображений (list0, а именно, предыдущему первому списку) и списку 1 опорных изображений (list1, а именно, предыдущему второму списку) текущего изображения.In the video coding field, inter-frame prediction modes include forward prediction, reverse prediction, and bidirectional prediction (including forward prediction and reverse prediction), and the specific prediction mode used at the encoder side is generally indicated in the prediction direction indication information. For example, the prediction direction indicating information may include syntax elements predFlagL0 and predFlagL1. When predFlagL0=1 and predFlagL1=1, the prediction direction indicating information indicates that bidirectional prediction is applied. When predFlagL0=1 and predFlagL1=0, the prediction direction indication information indicates that forward prediction is used. When predFlagL0=0 and predFlagL1=1, the prediction direction indication information indicates that reverse prediction is used. It is clear that the "forward direction" and the "reverse direction" respectively correspond to reference picture list 0 (list0, namely the previous first list) and reference picture list 1 (list1, namely the previous second list) of the current picture.

В дополнительном решении синтаксический анализ битового потока для получения синтаксического элемента включает в себя: синтаксический анализ битового потока для получения остатка выборки и синтаксического элемента; и определение значения выборки текущего блока изображения на основе по меньшей мере предсказанного значения выборки текущего блока изображения включает в себя: определение значения выборки текущего блока изображения на основе остатка выборки и предсказанного значения выборки текущего блока изображения.In an additional solution, parsing the bitstream to obtain a syntax element includes: parsing the bitstream to obtain the remainder of the sample and the syntax element; and determining a sample value of the current image block based on at least the predicted sample value of the current image block includes: determining a sample value of the current image block based on the sample remainder and the predicted sample value of the current image block.

Согласно пятому аспекту вариант осуществления настоящей заявки обеспечивает способ межкадрового предсказания, который включает в себя:According to a fifth aspect, an embodiment of the present application provides an inter-frame prediction method that includes:

определение того, удовлетворяет ли текущий блок изображения множеству заданных условий; иdetermining whether the current image block satisfies a plurality of predetermined conditions; And

если выполнено множество заданных условий, выполнение обработки на основе двунаправленного оптического потока (Bi-directional optical flow, BIO или BDOF для краткости) над текущим блоком изображения для получения предсказанного значения выборки текущего блока изображения, где множество заданных условий включает в себя по меньшей мере условие относительно того, что размер текущего блока изображения удовлетворяет первому заданному размеру. Размер текущего блока изображения обычно представлен шириной и высотой (которые обозначены W×H), и ширина и высота измеряются выборкой (выборкой или пикселем). Например, если размер текущего блока изображения составляет 8×8, первое число 8 указывает то, что ширина текущего блока изображения составляет 8 выборок, и второе число 8 указывает то, что высота текущего блока изображения составляет 8 выборок. В качестве другого примера, если размер текущего блока изображения составляет 8×16, число 8 указывает то, что ширина текущего блока изображения составляет 8 выборок, и число 16 указывает то, что высота текущего блока изображения составляет 16 выборок.if a plurality of specified conditions are met, performing Bi-directional optical flow (BIO or BDOF for short) processing on the current image block to obtain a predicted sample value of the current image block, where the plurality of specified conditions includes at least the condition that the size of the current image block satisfies the first specified size. The size of the current image block is usually represented by the width and height (which are denoted by W×H), and the width and height are measured by a sample (sample or pixel). For example, if the size of the current image block is 8×8, the first number 8 indicates that the width of the current image block is 8 samples, and the second number 8 indicates that the height of the current image block is 8 samples. As another example, if the size of the current image block is 8×16, the number 8 indicates that the width of the current image block is 8 samples, and the number 16 indicates that the height of the current image block is 16 samples.

То, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или составляет): высоту H текущего блока изображения, большую или равную 8, и, когда произведение ширины W на высоту H текущего блока изображения равно 64, ширину W, не равную высоте H.That the size of the current image block satisfies the first specified size includes (or is): the height H of the current image block greater than or equal to 8, and, when the product of the width W and the height H of the current image block is 64, the width W is not equal to height H.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или составляет): высоту H текущего блока изображения, большую или равную 8, и ширину W текущего блока изображения, большую или равную 8.Alternatively, that the size of the current image block satisfies the first specified size includes (or is): a height H of the current image block greater than or equal to 8, and a width W of the current image block greater than or equal to 8.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или составляет): высоту H текущего блока изображения, большую или равную 8, ширину W текущего блока изображения, большую или равную 8, и произведение ширины W текущего блока изображения на высоту H текущего блока изображения, большее 64.Alternatively, the size of the current image block satisfying the first specified size includes (or is): the height H of the current image block greater than or equal to 8, the width W of the current image block greater than or equal to 8, and the product of the width W of the current image block by the height H of the current image block, greater than 64.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или составляет): высоту H текущего блока изображения, большую или равную 8, ширину W текущего блока изображения, большую или равную 8, и произведение ширины W текущего блока изображения на высоту H текущего блока изображения, большее 128.Alternatively, the size of the current image block satisfying the first specified size includes (or is): the height H of the current image block greater than or equal to 8, the width W of the current image block greater than or equal to 8, and the product of the width W of the current image block to the height H of the current image block, greater than 128.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя: высоту H текущего блока изображения, большую 8.Alternatively, the size of the current image block satisfies the first specified size includes: the height H of the current image block greater than 8.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя: высоту H текущего блока изображения, большую 8, и ширину W текущего блока изображения, большую или равную 8.Alternatively, the size of the current image block satisfies the first specified size includes: a height H of the current image block greater than 8, and a width W of the current image block greater than or equal to 8.

Следует отметить, что прежде, чем определить (или получить путем предсказания) предсказанное значение выборки текущего блока изображения на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, согласно технологии BDOF, может существовать другое исходное условие в дополнение к размеру текущего блока изображения. Другое исходное условие в данном документе не ограничивается. Для простоты понимания ниже используются примеры для описания.It should be noted that before determining (or obtaining by prediction) the predicted sample value of the current image block based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list, according to BDOF technology, there may be another precondition in addition to to the size of the current image block. The other reference condition herein is not limited. For ease of understanding, examples are used below for description.

Условие A: Существует высокоуровневый идентификатор синтаксиса sps_bdof_enabled_flag, указывающий, что технологию BDOF разрешено использовать для текущей видеопоследовательности.Condition A: There is a high-level syntax identifier sps_bdof_enabled_flag indicating that BDOF technology is enabled for the current video sequence.

Условие B: Информация predFlagL0 указания направления предсказания, соответствующая первому списку (List1), равна 1, и информация указания направления предсказания predFlagL1, соответствующая второму списку (list0), равна 1.Condition B: The prediction direction indication information predFlagL0 corresponding to the first list (List1) is 1, and the prediction direction indication information predFlagL1 corresponding to the second list (list0) is 1.

Условие C: Значение POC_L0 счетчика очередности изображения опорного кадра, соответствующее первому списку (list0), значение POC_L1 счетчика очередности изображения опорного кадра, соответствующее второму списку (list1), и значения POC_Cur счетчика очередности изображения, на котором расположен текущий блок изображения, удовлетворяют следующему соотношению: (POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0. Другими словами, изображение, включающее в себя текущий блок изображения, находится между двумя опорными изображениями.Condition C: The POC_L0 value of the reference frame image queue counter corresponding to the first list (list0), the POC_L1 value of the reference frame image queue counter corresponding to the second list (list1), and the POC_Cur value of the image queue counter on which the current image block is located satisfy the following relationship : (POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0. In other words, an image including the current image block is located between two reference images.

Условие D: MotionModelIdc[xCb][yCb] равно 0. MotionModelIdc представляет собой индекс модели движения для компенсации движения. MotionModelIdc[xCb][yCb], равное 0, указывает то, что моделью движения для компенсации движения текущего блока является поступательное движение (Translational motion).Condition D: MotionModelIdc[xCb][yCb] is 0. MotionModelIdc is the motion model index for motion compensation. MotionModelIdc[xCb][yCb] equal to 0 indicates that the motion model to compensate for the current block's motion is Translational motion.

Условие E: merge_subblock_flag[x0][y0] равно 0, где merge_subblock_flag[x0][y0], равное 0, указывает то, что режим слияния подблоков не применяется для текущего блока изображения.Condition E: merge_subblock_flag[x0][y0] is equal to 0, where merge_subblock_flag[x0][y0] equal to 0 indicates that the subblock merging mode is not applied to the current image block.

Условие F: sym_mvd_flag[x0][y0] равно 0. sym_mvd_flag[x0][y0], равное 0, указывает то, что синтаксическая структура mvd_coding(x0, y0, refList, cpIdx) присутствует для текущего блока.Condition F: sym_mvd_flag[x0][y0] is equal to 0. sym_mvd_flag[x0][y0] equal to 0 indicates that the syntax structure mvd_coding(x0, y0, refList, cpIdx) is present for the current block.

Условие G: bcwIdx[xCb][yCb] равно 0. bcwIdx указывает весовой индекс двунаправленного предсказания для текущего блока изображения.Condition G: bcwIdx[xCb][yCb] is equal to 0. bcwIdx indicates the bidirectional prediction weight index for the current image block.

Условие H: cIdx равно 0. cIdx представляет собой индекс цветового компонента текущего блока изображения.Condition H: cIdx is 0. cIdx is the index of the color component of the current image block.

Условие I: Размер текущего блока изображения является первым заданным размером.Condition I: The size of the current image block is the first specified size.

Условие J: Как luma_weight_l0_flag[refIdxL0], так и luma_weight_l1_flag[refIdxL1] равны 0, где luma_weight_l0_flag, равное 0, указывает то, что отсутствуют весовые коэффициенты для компонента яркости предсказания list0, и luma_weight_l1_flag, равное 0, указывает то, что отсутствуют весовые коэффициенты для компонента яркости предсказания list1.Condition J: Both luma_weight_l0_flag[refIdxL0] and luma_weight_l1_flag[refIdxL1] are equal to 0, where luma_weight_l0_flag equal to 0 indicates that there are no weights for the luma component of the list0 prediction, and luma_weight_l1_flag equal to 0 indicates that there are no weights for the brightness component of the prediction list1.

Например, если выполнены все условия A-J, определяется, что технология BDOF может использоваться для предсказания предсказанного значения выборки текущего блока изображения. Например, bdofFlag устанавливается на значение "истина". Следует отметить, что вышеуказанные условия являются просто примерами, и может быть дополнительно добавлено другое условие, или могут быть заменены одно или более из вышеуказанных условий, или могут быть удалены одно или более из вышеуказанных условий.For example, if all conditions A-J are satisfied, it is determined that BDOF technology can be used to predict the predicted sample value of the current image block. For example, bdofFlag is set to true. It should be noted that the above conditions are merely examples, and another condition may be further added, or one or more of the above conditions may be replaced, or one or more of the above conditions may be deleted.

Следует понимать, что текущий блок изображения (который также упоминается как текущий блок) в данном документе может рассматриваться как блок изображения, подлежащий обработке. Например, в процессе кодирования текущий блок изображения является блоком изображения, подлежащим кодированию (блоком кодирования). Конечно, текущий блок изображения в данном документе альтернативно может рассматриваться как блок изображения, подлежащий обработке. Например, в процессе декодирования текущий блок изображения представляет собой блок изображения, подлежащий декодированию (блок декодирования).It should be understood that the current image block (which is also referred to as the current block) may be considered herein as an image block to be processed. For example, in the encoding process, the current image block is an image block to be encoded (encoding block). Of course, the current image block herein may alternatively be considered as an image block to be processed. For example, in the decoding process, the current image block is an image block to be decoded (decoding block).

В дополнительном решении способ дополнительно включает в себя: если не выполнено по меньшей мере одно из множества заданных условий, пропуск выполнения обработки двунаправленного оптического потока BDOF (Bi-directional optical flow, BIO или BDOF для краткости) обработки текущего блока изображения. Более конкретно, предсказанное значение выборки текущего блока изображения может быть получено путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку. Первым способом обработки не является BDOF. Для получения подробной информации следует обратиться к соответствующим частям этой спецификации. Подробности здесь снова не описываются.In a further solution, the method further includes: if at least one of a plurality of predetermined conditions is not met, skipping the execution of Bi-directional optical flow (BIO or BDOF for short) processing of the current image block. More specifically, the predicted sample value of the current image block can be obtained by prediction by the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list. The first processing method is not BDOF. Refer to the relevant parts of this specification for details. The details are again not described here.

Вполне понятно, что другой случай может быть дополнительно получен со ссылкой на вышеизложенные случаи, и другой случай также подпадает под объем защиты настоящей заявки.It is clear that another case may be further obtained with reference to the above cases, and the other case also falls within the scope of protection of the present application.

Следует понимать, что способ в данном варианте осуществления настоящей заявки может выполняться видеокодером или электронным устройством, имеющим функцию кодирования видео, или может выполняться видеодекодером или электронным устройством, имеющим функцию декодирования видео. Например, способ может быть специально реализован блоком межкадрового предсказания, находящимся в этих устройствах.It should be understood that the method in this embodiment of the present application may be performed by a video encoder or an electronic device having a video encoding function, or may be performed by a video decoder or an electronic device having a video decoding function. For example, the method may be specifically implemented by an interframe prediction unit located in these devices.

Более конкретно, условие для включения или использования технологии BDOF в этом решении отличается от условия для включения или использования технологии BDOF в предшествующем уровне техники, и, в частности, отличаются требования к размеру текущего блока изображения. Технология BDOF используется для текущего блока изображения, имеющего первый заданный размер, поэтому можно получить предсказанное значение выборки, более близкое к исходному значению выборки, и можно надлежащим образом управлять сложностью кодирования. Это до некоторой степени уравновешивает сложность кодирования/декодирования и точность предсказания, тем самым повышая эффективность кодирования.More specifically, the condition for enabling or using BDOF technology in this solution is different from the condition for enabling or using BDOF technology in the prior art, and in particular, the size requirements of the current image block are different. BDOF technology is used for the current image block having the first specified size, so that a predicted sample value closer to the original sample value can be obtained, and the encoding complexity can be properly controlled. This balances encoding/decoding complexity and prediction accuracy to some extent, thereby improving encoding efficiency.

Согласно шестому аспекту вариант осуществления настоящей заявки обеспечивает устройство для кодирования видео, и устройство кодирования включает в себя блок межкадрового предсказания, блок восстановления и блок энтропийного кодирования.According to a sixth aspect, an embodiment of the present application provides a video encoding apparatus, and the encoding apparatus includes an inter-frame prediction unit, a reconstruction unit, and an entropy encoding unit.

Блок межкадрового предсказания выполнен с возможностью: если выполнено множество заданных условий, выполнения обработки на основе двунаправленного оптического потока (BDOF) (Bi-directional optical flow, BIO или BDOF для краткости) над текущими блоком изображения для получения предсказанного значения выборки текущего блока изображения, где множество заданных условий включает в себя по меньшей мере условие относительно того, что размер текущего блока изображения удовлетворяет первому заданному размеру. Размер текущего блока изображения обычно представлен шириной и высотой (которые обозначены W×H), и ширина и высота измеряются выборкой (выборкой или пикселем). Например, если размер текущего блока изображения составляет 8×8, первое число 8 указывает то, что ширина текущего блока изображения составляет 8 выборок, и второе число 8 указывает то, что высота текущего блока изображения составляет 8 выборок. В качестве другого примера, если размер текущего блока изображения составляет 8×16, число 8 указывает то, что ширина текущего блока изображения составляет 8 выборок, и число 16 указывает то, что высота текущего блока изображения составляет 16 выборок.The interframe prediction unit is configured to: if a plurality of specified conditions are met, perform Bi-directional optical flow (BIO or BDOF for short) processing on the current image blocks to obtain a predicted sample value of the current image block, where the plurality of predetermined conditions includes at least a condition that the size of the current image block satisfies the first predetermined size. The size of the current image block is usually represented by the width and height (which are denoted by W×H), and the width and height are measured by a sample (sample or pixel). For example, if the size of the current image block is 8×8, the first number 8 indicates that the width of the current image block is 8 samples, and the second number 8 indicates that the height of the current image block is 8 samples. As another example, if the size of the current image block is 8×16, the number 8 indicates that the width of the current image block is 8 samples, and the number 16 indicates that the height of the current image block is 16 samples.

То, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или составляет): высоту H текущего блока изображения, большую или равную 8, и, когда произведение ширины W на высоту H текущего блока изображения равно 64, ширину W, не равную высоте H.That the size of the current image block satisfies the first specified size includes (or is): the height H of the current image block greater than or equal to 8, and, when the product of the width W and the height H of the current image block is 64, the width W is not equal to height H.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или составляет): высоту H текущего блока изображения, большую или равную 8, и ширину W текущего блока изображения, большую или равную 8.Alternatively, that the size of the current image block satisfies the first specified size includes (or is): a height H of the current image block greater than or equal to 8, and a width W of the current image block greater than or equal to 8.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или составляет): высоту H текущего блока изображения, большую или равную 8, ширину W текущего блока изображения, большую или равную 8, и произведение ширины W текущего блока изображения на высоту H текущего блока изображения, большее 64.Alternatively, the size of the current image block satisfying the first specified size includes (or is): the height H of the current image block greater than or equal to 8, the width W of the current image block greater than or equal to 8, and the product of the width W of the current image block by the height H of the current image block, greater than 64.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или составляет): высоту H текущего блока изображения, большую или равную 8, ширину W текущего блока изображения, большую или равную 8, и произведение ширины W текущего блока изображения на высоту H текущего блока изображения, большее 128.Alternatively, the size of the current image block satisfying the first specified size includes (or is): the height H of the current image block greater than or equal to 8, the width W of the current image block greater than or equal to 8, and the product of the width W of the current image block to the height H of the current image block, greater than 128.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя: высоту H текущего блока изображения, большую 8.Alternatively, the size of the current image block satisfies the first specified size includes: the height H of the current image block greater than 8.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя: высоту H текущего блока изображения, большую 8, и ширину W текущего блока изображения, большую или равную 8.Alternatively, the size of the current image block satisfies the first specified size includes: a height H of the current image block greater than 8, and a width W of the current image block greater than or equal to 8.

Блок восстановления выполнен с возможностью восстановления текущего блока изображения на основе по меньшей мере предсказанного значения выборки текущего блока изображения.The recovery unit is configured to recover the current image block based on at least a predicted sample value of the current image block.

Блок энтропийного кодирования выполнен с возможностью кодирования синтаксического элемента в подлежащем передаче битовом потоке, где синтаксический элемент по меньшей мере используется для указания того, что применяется двунаправленное предсказание.The entropy encoding unit is configured to encode a syntax element in the bit stream to be transmitted, where the syntax element is at least used to indicate that bidirectional prediction is applied.

Следует отметить, что прежде, чем определить (или получить путем предсказания) предсказанное значение выборки текущего блока изображения на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, согласно технологии BDOF, может существовать другое исходное условие в дополнение к размеру текущего блока изображения. Другое исходное условие в данном документе не ограничивается. Для простоты понимания ниже используются примеры для описания.It should be noted that before determining (or obtaining by prediction) the predicted sample value of the current image block based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list, according to BDOF technology, there may be another precondition in addition to to the size of the current image block. The other reference condition herein is not limited. For ease of understanding, examples are used below for description.

Условие A: Существует высокоуровневый идентификатор синтаксиса sps_bdof_enabled_flag, указывающий, что технологию BDOF разрешено использовать для текущей видеопоследовательности.Condition A: There is a high-level syntax identifier sps_bdof_enabled_flag indicating that BDOF technology is enabled for the current video sequence.

Условие B: Информация predFlagL0 указания направления предсказания, соответствующая первому списку (List1), равна 1, и информация указания направления предсказания predFlagL1, соответствующая второму списку (list0), равна 1.Condition B: The prediction direction indication information predFlagL0 corresponding to the first list (List1) is 1, and the prediction direction indication information predFlagL1 corresponding to the second list (list0) is 1.

Условие C: Значение POC_L0 счетчика очередности изображения опорного кадра, соответствующее первому списку (list0), значение POC_L1 счетчика очередности изображения опорного кадра, соответствующее второму списку (list1), и значения POC_Cur счетчика очередности изображения, на котором расположен текущий блок изображения, удовлетворяют следующему соотношению: (POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0. Другими словами, изображение, включающее в себя текущий блок изображения, находится между двумя опорными изображениями.Condition C: The POC_L0 value of the reference frame image queue counter corresponding to the first list (list0), the POC_L1 value of the reference frame image queue counter corresponding to the second list (list1), and the POC_Cur value of the image queue counter on which the current image block is located satisfy the following relationship : (POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0. In other words, an image including the current image block is located between two reference images.

Условие D: MotionModelIdc[xCb][yCb] равно 0. MotionModelIdc представляет собой индекс модели движения для компенсации движения. MotionModelIdc[xCb][yCb], равное 0, указывает то, что моделью движения для компенсации движения текущего блока является поступательное движение (Translational motion).Condition D: MotionModelIdc[xCb][yCb] is 0. MotionModelIdc is the motion model index for motion compensation. MotionModelIdc[xCb][yCb] equal to 0 indicates that the motion model to compensate for the current block's motion is Translational motion.

Условие E: merge_subblock_flag[x0][y0] равно 0, где merge_subblock_flag[x0][y0], равное 0, указывает то, что режим слияния подблоков не применяется для текущего блока изображения.Condition E: merge_subblock_flag[x0][y0] is equal to 0, where merge_subblock_flag[x0][y0] equal to 0 indicates that the subblock merging mode is not applied to the current image block.

Условие F: sym_mvd_flag[x0][y0] равно 0. sym_mvd_flag[x0][y0], равное 0, указывает то, что синтаксическая структура mvd_coding(x0, y0, refList, cpIdx) присутствует для текущего блока.Condition F: sym_mvd_flag[x0][y0] is equal to 0. sym_mvd_flag[x0][y0] equal to 0 indicates that the syntax structure mvd_coding(x0, y0, refList, cpIdx) is present for the current block.

Условие G: bcwIdx[xCb][yCb] равно 0. bcwIdx указывает весовой индекс двунаправленного предсказания для текущего блока изображения.Condition G: bcwIdx[xCb][yCb] is equal to 0. bcwIdx indicates the bidirectional prediction weight index for the current image block.

Условие H: cIdx равно 0. cIdx представляет собой индекс цветового компонента текущего блока изображения.Condition H: cIdx is 0. cIdx is the index of the color component of the current image block.

Условие I: Размер текущего блока изображения является первым заданным размером.Condition I: The size of the current image block is the first specified size.

Условие J: Как luma_weight_l0_flag[refIdxL0], так и luma_weight_l1_flag[refIdxL1] равны 0, где luma_weight_l0_flag, равное 0, указывает то, что отсутствуют весовые коэффициенты для компонента яркости предсказания list0, и luma_weight_l1_flag, равное 0, указывает то, что отсутствуют весовые коэффициенты для компонента яркости предсказания list1.Condition J: Both luma_weight_l0_flag[refIdxL0] and luma_weight_l1_flag[refIdxL1] are equal to 0, where luma_weight_l0_flag equal to 0 indicates that there are no weights for the luma component of the list0 prediction, and luma_weight_l1_flag equal to 0 indicates that there are no weights for the brightness component of the prediction list1.

Например, если выполнены все условия A-J, определяется, что технология BDOF может использоваться для предсказания предсказанного значения выборки текущего блока изображения. Например, bdofFlag устанавливается на значение "истина". Следует отметить, что вышеуказанные условия являются просто примерами, и может быть дополнительно добавлено другое условие, или могут быть заменены одно или более из вышеуказанных условий, или могут быть удалены одно или более из вышеуказанных условий.For example, if all conditions A-J are satisfied, it is determined that BDOF technology can be used to predict the predicted sample value of the current image block. For example, bdofFlag is set to true. It should be noted that the above conditions are merely examples, and another condition may be further added, or one or more of the above conditions may be replaced, or one or more of the above conditions may be deleted.

Следует понимать, что текущий блок изображения (который также упоминается как текущий блок) в данном документе может рассматриваться как блок изображения, подлежащий обработке. Например, в процессе кодирования текущий блок изображения является блоком изображения, подлежащим кодированию (блоком кодирования).It should be understood that the current image block (which is also referred to as the current block) may be considered herein as an image block to be processed. For example, in the encoding process, the current image block is an image block to be encoded (encoding block).

В данном варианте осуществления настоящей заявки может быть дополнительно включено действие по определению условий. Например, блок межкадрового предсказания дополнительно выполнен с возможностью определения того, выполнено ли множество заданных условий.In this embodiment of the present application, an action for determining conditions may be further included. For example, the inter-frame prediction unit is further configured to determine whether a plurality of predetermined conditions are met.

Вполне понятно, что другой случай может быть дополнительно получен со ссылкой на вышеизложенные случаи, и другой случай также подпадает под объем защиты настоящей заявки.It is clear that another case may be further obtained with reference to the above cases, and the other case also falls within the scope of protection of the present application.

Более конкретно, условие для включения или использования технологии BDOF в этом решении отличается от условия для включения или использования технологии BDOF в предшествующем уровне техники, и, в частности, отличаются требования к размеру текущего блока изображения. Технология BDOF используется для текущего блока изображения, имеющего первый заданный размер, поэтому можно получить предсказанное значение выборки, более близкое к исходному значению выборки, и можно надлежащим образом управлять сложностью кодирования. Это до некоторой степени уравновешивает сложность кодирования/декодирования и точность предсказания, тем самым повышая эффективность кодирования.More specifically, the condition for enabling or using BDOF technology in this solution is different from the condition for enabling or using BDOF technology in the prior art, and in particular, the size requirements of the current image block are different. BDOF technology is used for the current image block having the first specified size, so that a predicted sample value closer to the original sample value can be obtained, and the encoding complexity can be properly controlled. This balances encoding/decoding complexity and prediction accuracy to some extent, thereby improving encoding efficiency.

В дополнительном решении синтаксический элемент включает в себя индекс (например, merge_idx[xCb][yCb]) информации движения целевого кандидата, информация движения целевого кандидата включает в себя целевые векторы движения-кандидаты, индексы опорных кадров и информацию указания направления предсказания (например, predFlagL0=1 и predFlagL1=1), информация указания направления предсказания используется для указания того, что применяется двунаправленное предсказание, целевые векторы движения-кандидаты включают в себя первый вектор движения, соответствующий первому списку (то есть list0), и второй вектор движения, соответствующий второму списку (то есть list1), и индексы опорных кадров включают в себя индекс (например, refIdxL0) первого опорного кадра, соответствующего первому списку, и индекс (например, refIdxL1) второго опорного кадра, соответствующего второму списку.In a further solution, the syntax element includes an index (for example, merge_idx[xCb][yCb]) of target candidate motion information, the target candidate motion information includes candidate target motion vectors, reference frame indices, and prediction direction indication information (for example, predFlagL0 =1 and predFlagL1=1), prediction direction indication information is used to indicate that bidirectional prediction is applied, the candidate target motion vectors include a first motion vector corresponding to the first list (i.e., list0) and a second motion vector corresponding to the second list (ie, list1), and the reference frame indices include an index (eg, refIdxL0) of a first reference frame corresponding to the first list, and an index (eg, refIdxL1) of a second reference frame corresponding to the second list.

В данном варианте осуществления настоящей заявки индекс опорного кадра используется для идентификации опорного изображения, соответствующего используемому вектору движения (например, первому вектору движения или второму вектору движения) в заданном списке опорных изображений (первый список list0 или второй список list1). Изображение может называться кадром, и опорное изображение может называться опорным кадром.In this embodiment of the present application, the reference frame index is used to identify a reference picture corresponding to a motion vector being used (eg, a first motion vector or a second motion vector) in a given reference picture list (first list list0 or second list list1). The image may be called a frame, and the reference image may be called a reference frame.

В поле кодирования видео режимы межкадрового предсказания включают в себя прямое предсказание, обратное предсказание и двунаправленное предсказание (включающее в себя прямое предсказание и обратное предсказание), и конкретный режим предсказания, используемый на стороне кодера, обычно указывается в информации указания направления предсказания. Например, информация указания направления предсказания может включать в себя синтаксические элементы predFlagL0 и predFlagL1. Когда predFlagL0=1 и predFlagL1=1, информация указания направления предсказания указывает то, что применяется двунаправленное предсказание. Когда predFlagL0=1 и predFlagL1=0, информация указания направления предсказания указывает то, что используется прямое предсказание. Когда predFlagL0=0 и predFlagL1=1, информация указания направления предсказания указывает то, что используется обратное предсказание. Вполне понятно, что "прямое направление" и "обратное направление", соответственно, соответствуют списку 0 опорных изображений (list0, а именно, предыдущему первому списку) и списку 1 опорных изображений (list1, а именно, предыдущему второму списку) текущего изображения.In the video coding field, inter-frame prediction modes include forward prediction, reverse prediction, and bidirectional prediction (including forward prediction and reverse prediction), and the specific prediction mode used at the encoder side is generally indicated in the prediction direction indication information. For example, the prediction direction indicating information may include syntax elements predFlagL0 and predFlagL1. When predFlagL0=1 and predFlagL1=1, the prediction direction indicating information indicates that bidirectional prediction is applied. When predFlagL0=1 and predFlagL1=0, the prediction direction indication information indicates that forward prediction is used. When predFlagL0=0 and predFlagL1=1, the prediction direction indication information indicates that reverse prediction is used. It is clear that the "forward direction" and the "reverse direction" respectively correspond to reference picture list 0 (list0, namely the previous first list) and reference picture list 1 (list1, namely the previous second list) of the current picture.

В дополнительном решении синтаксический элемент включает в себя первые индексы, вторые индексы, информацию указания направления предсказания и разность векторов движения (MVD), первые индексы (например, mvp_lX_flag[xCb][yCb]) используются для указания предиктора целевого вектора движения-кандидата, предикторы целевых векторов движения-кандидатов включают в себя первый предиктор вектора движения, соответствующий первому списку (например, list0), и второй предиктор вектора движения, соответствующий второму списку (например, list1), и разность векторов движения (MVD) включает в себя первую MVD, соответствующую первому списку, и/или вторую MVD, соответствующую второму списку (при необходимости, когда используется технология MMVD, может быть передана только одна MVD, и MVD, которая находится в другом направлении и которая должна использоваться на стороне декодера может быть получен на основе переданной MVD). Вторые индексы (которые также называются индексами опорных кадров) используются для указания опорных кадров текущего блока изображения, и опорные кадры включают в себя первый опорный кадр, соответствующий первому списку, и второй опорный кадр, соответствующий второму списку. Например, вторыми индексами являются refIdxL0 и refIdxL1, refIdxL0 представляет собой индекс первого опорного кадра, соответствующего первому списку, и refIdxL1 представляет собой индекс второго опорного кадра, соответствующего второму списку. Информация указания направления предсказания (например, predFlagL0=1 и predFlagL1=1) используется для указания того, что применяется двунаправленное предсказание.In a further solution, the syntax element includes first indices, second indices, prediction direction indicating information, and a motion vector difference (MVD), the first indices (e.g., mvp_lX_flag[xCb][yCb]) are used to indicate a candidate target motion vector predictor, predictors the candidate target motion vectors include a first motion vector predictor corresponding to the first list (e.g., list0), and a second motion vector predictor corresponding to the second list (e.g., list1), and the motion vector difference (MVD) includes the first MVD, corresponding to the first list, and/or a second MVD corresponding to the second list (if necessary, when MMVD technology is used, only one MVD can be transmitted, and the MVD that is in the other direction and which should be used on the decoder side can be obtained based on the transmitted MVD). The second indices (which are also called reference frame indices) are used to indicate reference frames of the current image block, and the reference frames include a first reference frame corresponding to the first list and a second reference frame corresponding to the second list. For example, the second indices are refIdxL0 and refIdxL1, refIdxL0 is the index of the first reference frame corresponding to the first list, and refIdxL1 is the index of the second reference frame corresponding to the second list. Prediction direction indication information (eg, predFlagL0=1 and predFlagL1=1) is used to indicate that bidirectional prediction is applied.

Первый вектор движения (например, Mv0_L0), соответствующий первому списку, получается на основе первого предиктора вектора движения (например, Mvp0_L0), соответствующего первому списку, и первой MVD (например, MVD0), соответствующей первому списку. Например, Mv0_L0=Mvp0_L0+MVD0.A first motion vector (eg, Mv0_L0) corresponding to the first list is obtained based on a first motion vector predictor (eg, Mvp0_L0) corresponding to the first list and a first MVD (eg, MVD0) corresponding to the first list. For example, Mv0_L0=Mvp0_L0+MVD0.

Второй вектор движения (например, Mv1_L1), соответствующий второму списку, получается на основе второго предиктора вектора движения (например, Mvp1_L1), соответствующего второму списку, и второй MVD (например, MVD1), соответствующей второму списку. Например, Mv1_L1=Mvp1_L1+MVD1.A second motion vector (eg, Mv1_L1) corresponding to the second list is obtained based on a second motion vector predictor (eg, Mvp1_L1) corresponding to the second list and a second MVD (eg, MVD1) corresponding to the second list. For example, Mv1_L1=Mvp1_L1+MVD1.

В поле кодирования видео режимы межкадрового предсказания включают в себя прямое предсказание, обратное предсказание и двунаправленное предсказание (включающее в себя прямое предсказание и обратное предсказание), и конкретный режим предсказания, используемый на стороне кодера, обычно указывается в информации указания направления предсказания. Например, информация указания направления предсказания может включать в себя синтаксические элементы predFlagL0 и predFlagL1. Когда predFlagL0=1 и predFlagL1=1, информация указания направления предсказания указывает то, что применяется двунаправленное предсказание. Когда predFlagL0=1 и predFlagL1=0, информация указания направления предсказания указывает то, что используется прямое предсказание. Когда predFlagL0=0 и predFlagL1=1, информация указания направления предсказания указывает то, что используется обратное предсказание. Вполне понятно, что "прямое направление" и "обратное направление", соответственно, соответствуют списку 0 опорных изображений (list0, а именно, предыдущему первому списку) и списку 1 опорных изображений (list1, а именно, предыдущему второму списку) текущего изображения.In the video coding field, inter-frame prediction modes include forward prediction, reverse prediction, and bidirectional prediction (including forward prediction and reverse prediction), and the specific prediction mode used at the encoder side is generally indicated in the prediction direction indication information. For example, the prediction direction indicating information may include syntax elements predFlagL0 and predFlagL1. When predFlagL0=1 and predFlagL1=1, the prediction direction indicating information indicates that bidirectional prediction is applied. When predFlagL0=1 and predFlagL1=0, the prediction direction indication information indicates that forward prediction is used. When predFlagL0=0 and predFlagL1=1, the prediction direction indication information indicates that reverse prediction is used. It is clear that the "forward direction" and the "reverse direction" respectively correspond to reference picture list 0 (list0, namely the previous first list) and reference picture list 1 (list1, namely the previous second list) of the current picture.

В дополнительном решении устройство для кодирования видео дополнительно включает в себя блок вычисления остатка, выполненный с возможностью определения остатка выборки на основе значения выборки текущего блока изображения и предсказанного значения выборки текущего блока изображения; и блок энтропийного кодирования специально выполнен с возможностью кодирования синтаксического элемента и остатка выборки в подлежащем передаче битовом потоке. Другими словами, в дополнение к синтаксическому элементу остаток выборки может быть дополнительно кодирован в подлежащем передаче битовом потоке (остаток выборки может быть получен путем вычисления с использованием блока вычисления остатка). Это решение можно применить к режиму AMVP и режиму слияния. Кроме того, также имеет место случай, когда не требуется кодировать остаток выборки в подлежащем передаче битовом потоке. Например, в режиме пропуска не требуется кодирования остатка выборки в подлежащем передаче битовом потоке.In a further solution, the video encoding apparatus further includes a residual calculation unit configured to determine a sample residual based on a sample value of the current image block and a predicted sample value of the current image block; and the entropy encoding unit is specifically configured to encode the syntax element and the remainder of the sample in the bit stream to be transmitted. In other words, in addition to the syntax element, the remainder of the sample may be further encoded in the bitstream to be transmitted (the remainder of the sample may be obtained by calculation using a remainder calculation block). This solution can be applied to AMVP mode and merge mode. In addition, there is also a case where it is not necessary to encode the remainder of the sample in the bit stream to be transmitted. For example, skip mode does not require encoding of the remainder of the sample into the bit stream to be transmitted.

Согласно седьмому аспекту вариант осуществления настоящей заявки обеспечивает устройство для кодирования видео, и устройство для кодирования видео включает в себя блок межкадрового предсказания, блок восстановления и блок энтропийного кодирования.According to a seventh aspect, an embodiment of the present application provides a video encoding apparatus, and the video encoding apparatus includes an inter-frame prediction unit, a reconstruction unit, and an entropy encoding unit.

Блок межкадрового предсказания выполнен с возможностью: когда размер текущего блока изображения является вторым заданным размером, определения (или получения путем предсказания) предсказанного значения выборки текущего блока изображения (например, выборки предсказания текущего блока кодирования) первым способом обработки на основе значения опорной выборки, соответствующего первому списку (то есть list0), и значения опорной выборки, соответствующего второму списку (то есть list1), где первым способом обработки не является BDOF (называемый двунаправленным оптическим потоком (Bi-directional optical flow, BIO)). Другими словами, когда размер текущего блока изображения является вторым заданным размером, BDOF не может использоваться для определения предсказанного значения выборки текущего блока изображения на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку. Размер текущего блока изображения обычно представлен шириной и высотой (которые обозначены W×H), и ширина и высота измеряются выборкой (выборкой или пикселем). Второй заданный размер включает в себя 8×8 (первое число 8 указывает то, что ширина текущего блока изображения составляет 8 выборок, и второе число 8 указывает то, что высота текущего блока изображения составляет 8 выборок), 4×N (4 указывает то, что ширина текущего блока изображения составляет 4 выборки, N указывает то, что высота текущего блока изображения составляет N выборок, и другие размеры выводятся по аналогии), 8×16 или 16×8. N равно степени 2 и больше или равно 8. Например, значение N может быть равным 16, 32, 64 или т.п.The inter-frame prediction unit is configured to: when the size of the current image block is a second predetermined size, determine (or predictively obtain) a predicted sample value of the current image block (for example, a prediction sample of the current encoding block) by a first processing method based on a reference sample value corresponding to the first list (ie list0), and a reference sample value corresponding to the second list (ie list1), where the first processing method is not BDOF (called Bi-directional optical flow (BIO)). In other words, when the size of the current image block is the second specified size, BDOF cannot be used to determine the predicted sample value of the current image block based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list. The size of the current image block is usually represented by the width and height (which are denoted by W×H), and the width and height are measured by a sample (sample or pixel). The second specified size includes 8×8 (the first number 8 indicates that the width of the current image block is 8 samples, and the second number 8 indicates that the height of the current image block is 8 samples), 4×N (4 indicates that that the width of the current image block is 4 samples, N indicates that the height of the current image block is N samples, and other sizes are derived similarly), 8x16 or 16x8. N is a power of 2 and greater than or equal to 8. For example, the value of N could be 16, 32, 64, or the like.

В данном варианте осуществления настоящей заявки значение опорной выборки, соответствующее первому списку, и значение опорной выборки, соответствующее второму списку, соответственно, получают путем предсказания на основе первого вектора движения (например, Mv0_L0), соответствующего первому списку (то есть list0), и второго вектора движения (например, Mv1_L1), соответствующего второму списку (то есть list1). Например, значение опорной выборки, соответствующее первому списку (то есть list0), может быть определено на основе первого вектора движения (например, Mv0_L0), соответствующего первому списку (то есть list0), и значение опорной выборки, соответствующее второму списку (то есть list1), может быть определено на основе второго вектора движения (например, Mv1_L1), соответствующего второму списку (то есть list1).In this embodiment of the present application, a reference sample value corresponding to the first list and a reference sample value corresponding to the second list are respectively obtained by prediction based on the first motion vector (eg, Mv0_L0) corresponding to the first list (ie, list0) and the second motion vector (eg Mv1_L1) corresponding to the second list (ie list1). For example, a reference sample value corresponding to the first list (i.e., list0) may be determined based on a first motion vector (i.e., Mv0_L0) corresponding to the first list (i.e., list0), and a reference sample value corresponding to the second list (i.e., list1 ) may be determined based on the second motion vector (eg, Mv1_L1) corresponding to the second list (ie, list1).

Блок восстановления выполнен с возможностью восстановления текущего блока изображения на основе по меньшей мере предсказанного значения выборки текущего блока изображения. Термин "по меньшей мере" в данном документе указывает то, что предсказанное значение выборки текущего блока изображения необходимо использовать для восстановления текущего блока изображения, и может также использоваться другая информация.The recovery unit is configured to recover the current image block based on at least a predicted sample value of the current image block. The term "at least" herein indicates that the predicted sample value of the current image block must be used to reconstruct the current image block, and other information may also be used.

Блок энтропийного кодирования выполнен с возможностью кодирования синтаксического элемента в подлежащем передаче битовом потоке, где синтаксический элемент по меньшей мере используется для указания того, что применяется двунаправленное предсказание.The entropy encoding unit is configured to encode a syntax element in the bit stream to be transmitted, where the syntax element is at least used to indicate that bidirectional prediction is applied.

Следует понимать, что текущий блок изображения (который также упоминается как текущий блок) в данном документе может рассматриваться как блок изображения, подлежащий обработке. Например, в процессе кодирования текущий блок изображения является блоком изображения, подлежащим кодированию (блоком кодирования).It should be understood that the current image block (which is also referred to as the current block) may be considered herein as an image block to be processed. For example, in the encoding process, the current image block is an image block to be encoded (encoding block).

Кроме того, вышеописанный случай, когда второй заданный размер включает в себя 8×8, 4×N, 8×16 или 16×8, также может быть ограничен вторым заданным размером, равным 8×8, 4×N, 8×16 или 16×8. Другими словами, BDOF запрещено использовать для одного из размеров 8×8, 4×N, 8×16 и 16×8, перечисленных выше, или BDOF запрещено использовать для множества их размеров. Далее для описания используются примеры.In addition, the above-described case where the second predetermined size includes 8×8, 4×N, 8×16 or 16×8 may also be limited to the second predetermined size being 8×8, 4×N, 8×16 or 16x8. In other words, BDOF is prohibited from being used for one of the 8x8, 4xN, 8x16, and 16x8 sizes listed above, or BDOF is prohibited from being used in multiple sizes of them. The following examples are used for description.

Пример 1: Второй заданный размер включает в себя (или составляет) 8×8. Другими словами, в данном варианте осуществления настоящей заявки BDOF запрещается использовать для размера 8×8. В этом случае получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, когда размер текущего блока изображения является вторым заданным размером, может быть, в частности, выражено как: когда размер текущего блока изображения равен 8×8, получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку.Example 1: The second given size includes (or is) 8x8. In other words, in this embodiment of the present application, BDOF is prohibited from being used for the size 8x8. In this case, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list when the size of the current image block is the second predetermined size may be particularly expressed as: when the size of the current image block is 8×8, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list.

Пример 2: Второй заданный размер включает в себя (или составляет) 4×N. Другими словами, в данном варианте осуществления настоящей заявки BDOF запрещается использовать для размера 4×N. В этом случае получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, когда размер текущего блока изображения является вторым заданным размером, может быть, в частности, выражено как: когда размер текущего блока изображения составляет 4×N, получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, где N больше или равно 8.Example 2: The second specified size includes (or is) 4×N. In other words, in this embodiment of the present application, BDOF is prohibited from being used for size 4×N. In this case, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list when the size of the current image block is the second predetermined size may be particularly expressed as: when the size of the current image block is 4×N, obtaining a predicted sample value of the current image block by prediction by the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list, where N is greater than or equal to 8 .

Пример 3: Второй заданный размер включает в себя (или составляет) 8×8 или 4×N. Другими словами, в данном варианте осуществления настоящей заявки BDOF запрещается использовать для размеров 8×8 и 4×N. В этом случае получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, когда размер текущего блока изображения является вторым заданным размером, может быть, в частности, выражено как: когда размер текущего блока изображения составляет 8×8 или 4×N, получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, где N больше или равно 8.Example 3: The second specified size includes (or is) 8x8 or 4xN. In other words, in this embodiment of the present application, BDOF is prohibited from being used for sizes 8x8 and 4xN. In this case, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list when the size of the current image block is the second predetermined size may be particularly expressed as: when the size of the current image block is 8×8 or 4×N, obtaining a predicted sample value of the current image block by prediction by the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list, where N greater than or equal to 8.

Пример 4: Второй заданный размер включает в себя (или составляет) 8×8, 4×N, 8×16 или 16×8, где N больше или равно 8. Другими словами, в данном варианте осуществления настоящей заявки BDOF запрещено использовать для размеров 8×8, 4×N, 8×16 и 16×8. В этом случае получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, когда размер текущего блока изображения является вторым заданным размером, может быть, в частности, выражено как: когда размер текущего блока изображения является любым из 8×8, 4×N, 8×16 и 16×8, получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, где N больше или равно 8.Example 4: The second specified size includes (or is) 8x8, 4xN, 8x16, or 16x8, where N is greater than or equal to 8. In other words, in this embodiment of the present application, BDOF is prohibited from being used for sizes 8x8, 4xN, 8x16 and 16x8. In this case, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list when the size of the current image block is the second predetermined size may be particularly expressed as: when the size of the current image block is any of 8×8, 4×N, 8×16 and 16×8, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list, and the reference sample value corresponding to the second list, where N is greater than or equal to 8.

Пример 5: Второй заданный размер включает в себя (или составляет) N×8, где N больше или равно 4. Другими словами, в данном варианте осуществления настоящей заявки BDOF запрещается использовать для размера N×8. В этом случае получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, когда размер текущего блок изображения является вторым заданным размером, может быть, в частности, выражено как: когда размер текущего блока изображения равен N×8, получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку.Example 5: The second specified size includes (or is) N×8, where N is greater than or equal to 4. In other words, in this embodiment of the present application, BDOF is prohibited from being used for the size N×8. In this case, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list when the size of the current image block is the second predetermined size may be particularly expressed as: when the size of the current image block is N×8, obtaining a predicted sample value of the current image block by prediction by the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list.

Пример 6: Второй заданный размер включает в себя (или составляет) N×8 или 4×N, где N больше или равно 4. Другими словами, в данном варианте осуществления настоящей заявки BDOF запрещается использовать для размера N×8 или 4×N. В этом случае получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, когда размер текущего блока изображения является вторым заданным размером, может быть, в частности, выражено как: когда размер текущего блока изображения равен N×8 или 4×N, получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку.Example 6: The second specified size includes (or is) N×8 or 4×N, where N is greater than or equal to 4. In other words, in this embodiment of the present application, BDOF is prohibited from being used for the size N×8 or 4×N. In this case, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list when the size of the current image block is the second predetermined size may be particularly expressed as: when the size of the current image block is N×8 or 4×N, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list.

Кроме того, так как BDOF также запрещено использовать для размера M×4 в некоторых сценариях, в настоящей заявке, когда BDOF запрещено использовать для второго заданного размера, BDOF дополнительно запрещено использовать для размера M×4, где M - целое число, большее или равное 4.In addition, since BDOF is also prohibited from being used for size M×4 in some scenarios, in this application, when BDOF is prohibited from being used for a second specified size, BDOF is additionally prohibited from being used for size M×4, where M is an integer greater than or equal to 4.

Вполне понятно, что другой случай может быть дополнительно получен со ссылкой на вышеизложенные случаи, и другой случай также подпадает под объем защиты настоящей заявки.It is clear that another case may be further obtained with reference to the above cases, and the other case also falls within the scope of protection of the present application.

Согласно вышеизложенному способу, при использовании технологии BDOF полностью учитываются особенности текущих блоков изображения различных размеров. Когда размер текущего блока изображения является вторым заданным размером, предсказанное значение выборки текущего блока изображения определяется в соответствии с технологией, отличной от технологии BDOF. Это значительно снижает сложность кодирования и повышает эффективность кодирования.According to the above method, when using BDOF technology, the features of current image blocks of various sizes are fully taken into account. When the size of the current image block is the second specified size, the predicted sample value of the current image block is determined in accordance with a technology other than BDOF technology. This greatly reduces coding complexity and improves coding efficiency.

В дополнительном решении, в процессе определения предсказанного значения выборки текущего блока изображения первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, блок межкадрового предсказания специально выполнен с возможностью:In a further solution, in the process of determining the predicted sample value of the current image block by the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list, the inter-frame prediction unit is specifically configured to:

выполнения взвешенного вычисления над значениями выборок, имеющими одно и то же местоположение в значении опорной выборки, соответствующем первому списку, и в значении опорной выборки, соответствующем второму списку, для получения предсказанного значения выборки текущего блока изображения; илиperforming a weighted calculation on sample values having the same location in a reference sample value corresponding to the first list and a reference sample value corresponding to the second list to obtain a predicted sample value of the current image block; or

получения предсказанного значения выборки текущего блока изображения путем предсказания на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, согласно технологии разности векторов движения в режиме слияния (MMVD); илиobtaining a predicted sample value of the current image block by predicting based on a reference sample value corresponding to the first list and a reference sample value corresponding to the second list according to a merging mode motion vector difference (MMVD) technology; or

получения предсказанного значения выборки текущего блока изображения путем предсказания на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, согласно технологии объединенного межкадрового/внутрикадрового предсказания (CIIP).obtaining a predicted sample value of the current image block by predicting based on a reference sample value corresponding to the first list and a reference sample value corresponding to the second list, according to a combined inter-frame/intra-frame prediction (CIIP) technology.

В данном варианте осуществления настоящей заявки то, используется ли способ взвешенного вычисления, технология MMVD или технология CIIP, может быть определено с использованием соответствующего условия или может быть указано с использованием соответствующей информации указания.In this embodiment of the present application, whether the weighted calculation method, MMVD technology or CIIP technology is used can be determined using a corresponding condition or can be indicated using corresponding indication information.

Следует отметить, что технология BDOF эквивалентна технологии оптимизации исправлений для традиционной технологии предсказания предсказанного значения выборки текущего блока изображения. Во многих сценариях предсказанное значение выборки, более близкое к реальному значению выборки текущего блока изображения, может быть получено в соответствии с технологией BDOF. Таким образом, остаток выборки, полученный на основе предсказанного значения выборки, может быть меньше, поэтому можно повысить эффективность кодирования. Вышеупомянутый способ взвешенного вычисления можно рассматривать как традиционную технологию для получения предсказанного значения выборки текущего блока изображения, и каждую из вышеизложенных технологий MMVD и CIIP можно рассматривать как технологию оптимизации исправлений для традиционной технологии. В данном варианте осуществления настоящей заявки, когда размер текущего блока изображения является вторым заданным размером, предсказанное значение выборки текущего блока изображения определяется в соответствии с традиционной технологией (например, способом взвешенного вычисления) или другой технологией оптимизации исправлений (например, MMVD или CIIP), а не технологией BDOF. Это позволяет значительно снизить сложность кодирования и повысить эффективность кодирования.It should be noted that the BDOF technology is equivalent to the patch optimization technology of the traditional technology of predicting the predicted sample value of the current image block. In many scenarios, a predicted sample value closer to the actual sample value of the current image block can be obtained according to BDOF technology. In this way, the sample residual obtained based on the predicted sample value can be smaller, so the encoding efficiency can be improved. The above-mentioned weighted calculation method can be considered as a traditional technology for obtaining the predicted sample value of the current image block, and each of the above MMVD and CIIP technologies can be considered as a patch optimization technology for the traditional technology. In this embodiment of the present application, when the size of the current image block is the second predetermined size, the predicted sample value of the current image block is determined in accordance with a conventional technology (for example, a weighted calculation method) or another patch optimization technology (for example, MMVD or CIIP), and not BDOF technology. This can greatly reduce coding complexity and improve coding efficiency.

В дополнительном решении блок межкадрового предсказания дополнительно выполнен с возможностью: если выполнено множество заданных условий, выполнения обработки на основе двунаправленного оптического потока (BDOF) над текущим блоком изображения для получения предсказанного значения выборки текущего блока изображения, где множество заданных условий включает в себя по меньшей мере условие относительно того, что размер текущего блока изображения удовлетворяет первому заданному размеру.In a further solution, the inter-frame prediction unit is further configured to: if a plurality of predetermined conditions are met, perform bidirectional optical flow (BDOF) processing on the current image block to obtain a predicted sample value of the current image block, where the plurality of predetermined conditions includes at least a condition that the size of the current image block satisfies the first specified size.

То, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя: высоту H текущего блока изображения, большую или равную 8, и, когда произведение ширины W на высоту H текущего блока изображения равно 64, ширину W, не равную высоте H.That the size of the current image block satisfies the first specified size includes: the height H of the current image block greater than or equal to 8, and, when the product of the width W and the height H of the current image block is 64, the width W not equal to the height H.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или составляет): высоту H текущего блока изображения, большую или равную 8, и ширину W текущего блока изображения, большую или равную 8.Alternatively, that the size of the current image block satisfies the first specified size includes (or is): a height H of the current image block greater than or equal to 8, and a width W of the current image block greater than or equal to 8.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или составляет): высоту H текущего блока изображения, большую или равную 8, ширину W текущего блока изображения, большую или равную 8, и произведение ширины W текущего блока изображения на высоту H текущего блока изображения, большее 64.Alternatively, the size of the current image block satisfying the first specified size includes (or is): the height H of the current image block greater than or equal to 8, the width W of the current image block greater than or equal to 8, and the product of the width W of the current image block to the height H of the current image block, greater than 64.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или составляет): высоту H текущего блока изображения, большую или равную 8, ширину W текущего блока изображения, большую или равную 8, и произведение ширины W текущего блока изображения на высоту H текущего блока изображения, большее 128.Alternatively, the size of the current image block satisfying the first specified size includes (or is): the height H of the current image block greater than or equal to 8, the width W of the current image block greater than or equal to 8, and the product of the width W of the current image block to the height H of the current image block, greater than 128.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя: высоту H текущего блока изображения, большую 8.Alternatively, the size of the current image block satisfies the first specified size includes: the height H of the current image block greater than 8.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя: высоту H текущего блока изображения, большую 8, и ширину W текущего блока изображения, большую или равную 8.Alternatively, the size of the current image block satisfies the first specified size includes: a height H of the current image block greater than 8, and a width W of the current image block greater than or equal to 8.

Блок восстановления дополнительно выполнен с возможностью восстановления текущего блока изображения на основе по меньшей мере предсказанного значения выборки текущего блока изображения.The recovery unit is further configured to recover the current image block based on at least a predicted sample value of the current image block.

Более конкретно, условие для включения или использования технологии BDOF в этом решении отличается от условия для включения или использования технологии BDOF в предшествующем уровне техники, и, в частности, отличаются требования к размеру текущего блока изображения. Технология BDOF используется для текущего блока изображения, имеющего первый заданный размер, поэтому можно получить предсказанное значение выборки, более близкое к исходному значению выборки, и можно надлежащим образом управлять сложностью кодирования. Это до некоторой степени уравновешивает сложность кодирования/декодирования и точность предсказания, тем самым повышая эффективность кодирования.More specifically, the condition for enabling or using BDOF technology in this solution is different from the condition for enabling or using BDOF technology in the prior art, and in particular, the size requirements of the current image block are different. BDOF technology is used for the current image block having the first specified size, so that a predicted sample value closer to the original sample value can be obtained, and the encoding complexity can be properly controlled. This balances encoding/decoding complexity and prediction accuracy to some extent, thereby improving encoding efficiency.

Следует отметить, что прежде, чем определить (или получить путем предсказания) предсказанное значение выборки текущего блока изображения на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, согласно технологии BDOF, может существовать другое исходное условие в дополнение к размеру текущего блока изображения. Другое исходное условие в данном документе не ограничивается. Для простоты понимания ниже используются примеры для описания.It should be noted that before determining (or obtaining by prediction) the predicted sample value of the current image block based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list, according to BDOF technology, there may be another precondition in addition to to the size of the current image block. The other reference condition herein is not limited. For ease of understanding, examples are used below for description.

Условие A: Существует высокоуровневый идентификатор синтаксиса sps_bdof_enabled_flag, указывающий, что технологию BDOF разрешено использовать для текущей видеопоследовательности.Condition A: There is a high-level syntax identifier sps_bdof_enabled_flag indicating that BDOF technology is enabled for the current video sequence.

Условие B: Информация predFlagL0 указания направления предсказания, соответствующая первому списку (List1), равна 1, и информация указания направления предсказания predFlagL1, соответствующая второму списку (list0), равна 1.Condition B: The prediction direction indication information predFlagL0 corresponding to the first list (List1) is 1, and the prediction direction indication information predFlagL1 corresponding to the second list (list0) is 1.

Условие C: Значение POC_L0 счетчика очередности изображения опорного кадра, соответствующее первому списку (list0), значение POC_L1 счетчика очередности изображения опорного кадра, соответствующее второму списку (list1), и значения POC_Cur счетчика очередности изображения, на котором расположен текущий блок изображения, удовлетворяют следующему соотношению: (POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0. Другими словами, изображение, включающее в себя текущий блок изображения, находится между двумя опорными изображениями.Condition C: The POC_L0 value of the reference frame image queue counter corresponding to the first list (list0), the POC_L1 value of the reference frame image queue counter corresponding to the second list (list1), and the POC_Cur value of the image queue counter on which the current image block is located satisfy the following relationship : (POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0. In other words, an image including the current image block is located between two reference images.

Условие D: MotionModelIdc[xCb][yCb] равно 0. MotionModelIdc представляет собой индекс модели движения для компенсации движения. MotionModelIdc[xCb][yCb], равное 0, указывает то, что моделью движения для компенсации движения текущего блока является поступательное движение (Translational motion).Condition D: MotionModelIdc[xCb][yCb] is 0. MotionModelIdc is the motion model index for motion compensation. MotionModelIdc[xCb][yCb] equal to 0 indicates that the motion model to compensate for the current block's motion is Translational motion.

Условие E: merge_subblock_flag[x0][y0] равно 0, где merge_subblock_flag[x0][y0], равное 0, указывает то, что режим слияния подблоков не применяется для текущего блока изображения.Condition E: merge_subblock_flag[x0][y0] is equal to 0, where merge_subblock_flag[x0][y0] equal to 0 indicates that the subblock merging mode is not applied to the current image block.

Условие F: sym_mvd_flag[x0][y0] равно 0. sym_mvd_flag[x0][y0], равное 0, указывает то, что синтаксическая структура mvd_coding(x0, y0, refList, cpIdx) присутствует для текущего блока.Condition F: sym_mvd_flag[x0][y0] is equal to 0. sym_mvd_flag[x0][y0] equal to 0 indicates that the syntax structure mvd_coding(x0, y0, refList, cpIdx) is present for the current block.

Условие G: bcwIdx[xCb][yCb] равно 0. bcwIdx указывает весовой индекс двунаправленного предсказания для текущего блока изображения.Condition G: bcwIdx[xCb][yCb] is equal to 0. bcwIdx indicates the bidirectional prediction weight index for the current image block.

Условие H: cIdx равно 0. cIdx представляет собой индекс цветового компонента текущего блока изображения.Condition H: cIdx is 0. cIdx is the index of the color component of the current image block.

Условие I: Размер текущего блока изображения является первым заданным размером.Condition I: The size of the current image block is the first specified size.

Условие J: Как luma_weight_l0_flag[refIdxL0], так и luma_weight_l1_flag[refIdxL1] равны 0, где luma_weight_l0_flag, равное 0, указывает то, что отсутствуют весовые коэффициенты для компонента яркости предсказания list0, и luma_weight_l1_flag, равное 0, указывает то, что отсутствуют весовые коэффициенты для компонента яркости предсказания list1.Condition J: Both luma_weight_l0_flag[refIdxL0] and luma_weight_l1_flag[refIdxL1] are equal to 0, where luma_weight_l0_flag equal to 0 indicates that there are no weights for the luma component of the list0 prediction, and luma_weight_l1_flag equal to 0 indicates that there are no weights for the brightness component of the prediction list1.

Например, если выполнены все условия A-J, определяется, что технология BDOF может использоваться для предсказания предсказанного значения выборки текущего блока изображения. Например, bdofFlag устанавливается на значение "истина". Следует отметить, что вышеуказанные условия являются просто примерами, и может быть дополнительно добавлено другое условие, или могут быть заменены одно или более из вышеуказанных условий, или могут быть удалены одно или более из вышеуказанных условий.For example, if all conditions A-J are satisfied, it is determined that BDOF technology can be used to predict the predicted sample value of the current image block. For example, bdofFlag is set to true. It should be noted that the above conditions are merely examples, and another condition may be further added, or one or more of the above conditions may be replaced, or one or more of the above conditions may be deleted.

В дополнительном решении синтаксический элемент включает в себя индекс (например, merge_idx[xCb][yCb]) информации движения целевого кандидата, информация движения целевого кандидата включает в себя целевые векторы движения-кандидаты, индексы опорных кадров и информацию указания направления предсказания (например, predFlagL0=1 и predFlagL1=1), информация указания направления предсказания используется для указания того, что применяется двунаправленное предсказание, целевые векторы движения-кандидаты включают в себя первый вектор движения, соответствующий первому списку (то есть list0), и второй вектор движения, соответствующий второму списку (то есть list1), и индексы опорных кадров включают в себя индекс (например, refIdxL0) первого опорного кадра, соответствующего первому списку, и индекс (например, refIdxL1) второго опорного кадра, соответствующего второму списку.In a further solution, the syntax element includes an index (for example, merge_idx[xCb][yCb]) of target candidate motion information, the target candidate motion information includes candidate target motion vectors, reference frame indices, and prediction direction indication information (for example, predFlagL0 =1 and predFlagL1=1), prediction direction indication information is used to indicate that bidirectional prediction is applied, the candidate target motion vectors include a first motion vector corresponding to the first list (i.e., list0) and a second motion vector corresponding to the second list (ie, list1), and the reference frame indices include an index (eg, refIdxL0) of a first reference frame corresponding to the first list, and an index (eg, refIdxL1) of a second reference frame corresponding to the second list.

В данном варианте осуществления настоящей заявки индекс опорного кадра используется для идентификации опорного изображения, соответствующего используемому вектору движения (например, первому вектору движения или второму вектору движения) в заданном списке опорных изображений (первый список list0 или второй список list1). Изображение может называться кадром, и опорное изображение может называться опорным кадром.In this embodiment of the present application, the reference frame index is used to identify a reference picture corresponding to a motion vector being used (eg, a first motion vector or a second motion vector) in a given reference picture list (first list list0 or second list list1). The image may be called a frame, and the reference image may be called a reference frame.

В поле кодирования видео режимы межкадрового предсказания включают в себя прямое предсказание, обратное предсказание и двунаправленное предсказание (включающее в себя прямое предсказание и обратное предсказание), и конкретный режим предсказания, используемый на стороне кодера, обычно указывается в информации указания направления предсказания. Например, информация указания направления предсказания может включать в себя синтаксические элементы predFlagL0 и predFlagL1. Когда predFlagL0=1 и predFlagL1=1, информация указания направления предсказания указывает то, что применяется двунаправленное предсказание. Когда predFlagL0=1 и predFlagL1=0, информация указания направления предсказания указывает то, что используется прямое предсказание. Когда predFlagL0=0 и predFlagL1=1, информация указания направления предсказания указывает то, что используется обратное предсказание. Вполне понятно, что "прямое направление" и "обратное направление", соответственно, соответствуют списку 0 опорных изображений (list0, а именно, предыдущему первому списку) и списку 1 опорных изображений (list1, а именно, предыдущему второму списку) текущего изображения.In the video coding field, inter-frame prediction modes include forward prediction, reverse prediction, and bidirectional prediction (including forward prediction and reverse prediction), and the specific prediction mode used at the encoder side is generally indicated in the prediction direction indication information. For example, the prediction direction indicating information may include syntax elements predFlagL0 and predFlagL1. When predFlagL0=1 and predFlagL1=1, the prediction direction indicating information indicates that bidirectional prediction is applied. When predFlagL0=1 and predFlagL1=0, the prediction direction indication information indicates that forward prediction is used. When predFlagL0=0 and predFlagL1=1, the prediction direction indication information indicates that reverse prediction is used. It is clear that the "forward direction" and the "reverse direction" respectively correspond to reference picture list 0 (list0, namely the previous first list) and reference picture list 1 (list1, namely the previous second list) of the current picture.

В дополнительном решении синтаксический элемент включает в себя первые индексы, вторые индексы, информацию указания направления предсказания и разность векторов движения (MVD), первые индексы (например, mvp_lX_flag[xCb][yCb]) используются для указания предиктора целевого вектора движения-кандидата, предикторы целевых векторов движения-кандидатов включают в себя первый предиктор вектора движения, соответствующий первому списку (например, list0), и второй предиктор вектора движения, соответствующий второму списку (например, list1), и разность векторов движения (MVD) включает в себя первую MVD, соответствующую первому списку, и/или вторую MVD, соответствующую второму списку (при необходимости, когда используется технология MMVD, может быть передана только одна MVD, и MVD, которая находится в другом направлении и которая должна использоваться на стороне декодера может быть получен на основе переданной MVD). Вторые индексы (которые также называются индексами опорных кадров) используются для указания опорных кадров текущего блока изображения, и опорные кадры включают в себя первый опорный кадр, соответствующий первому списку, и второй опорный кадр, соответствующий второму списку. Например, вторыми индексами являются refIdxL0 и refIdxL1, refIdxL0 представляет собой индекс первого опорного кадра, соответствующего первому списку, и refIdxL1 представляет собой индекс второго опорного кадра, соответствующего второму списку. Информация указания направления предсказания (например, predFlagL0=1 и predFlagL1=1) используется для указания того, что применяется двунаправленное предсказание.In a further solution, the syntax element includes first indices, second indices, prediction direction indicating information, and a motion vector difference (MVD), the first indices (e.g., mvp_lX_flag[xCb][yCb]) are used to indicate a candidate target motion vector predictor, predictors the candidate target motion vectors include a first motion vector predictor corresponding to the first list (e.g., list0), and a second motion vector predictor corresponding to the second list (e.g., list1), and the motion vector difference (MVD) includes the first MVD, corresponding to the first list, and/or a second MVD corresponding to the second list (if necessary, when MMVD technology is used, only one MVD can be transmitted, and the MVD that is in the other direction and which should be used on the decoder side can be obtained based on the transmitted MVD). The second indices (which are also called reference frame indices) are used to indicate reference frames of the current image block, and the reference frames include a first reference frame corresponding to the first list and a second reference frame corresponding to the second list. For example, the second indices are refIdxL0 and refIdxL1, refIdxL0 is the index of the first reference frame corresponding to the first list, and refIdxL1 is the index of the second reference frame corresponding to the second list. Prediction direction indication information (eg, predFlagL0=1 and predFlagL1=1) is used to indicate that bidirectional prediction is applied.

Первый вектор движения (например, Mv0_L0), соответствующий первому списку, получается на основе первого предиктора вектора движения (например, Mvp0_L0), соответствующего первому списку, и первой MVD (например, MVD0), соответствующей первому списку. Например, Mv0_L0=Mvp0_L0+MVD0.A first motion vector (eg, Mv0_L0) corresponding to the first list is obtained based on a first motion vector predictor (eg, Mvp0_L0) corresponding to the first list and a first MVD (eg, MVD0) corresponding to the first list. For example, Mv0_L0=Mvp0_L0+MVD0.

Второй вектор движения (например, Mv1_L1), соответствующий второму списку, получается на основе второго предиктора вектора движения (например, Mvp1_L1), соответствующего второму списку, и второй MVD (например, MVD1), соответствующей второму списку. Например, Mv1_L1=Mvp1_L1+MVD1.A second motion vector (eg, Mv1_L1) corresponding to the second list is obtained based on a second motion vector predictor (eg, Mvp1_L1) corresponding to the second list and a second MVD (eg, MVD1) corresponding to the second list. For example, Mv1_L1=Mvp1_L1+MVD1.

В поле кодирования видео режимы межкадрового предсказания включают в себя прямое предсказание, обратное предсказание и двунаправленное предсказание (включающее в себя прямое предсказание и обратное предсказание), и конкретный режим предсказания, используемый на стороне кодера, обычно указывается в информации указания направления предсказания. Например, информация указания направления предсказания может включать в себя синтаксические элементы predFlagL0 и predFlagL1. Когда predFlagL0=1 и predFlagL1=1, информация указания направления предсказания указывает то, что применяется двунаправленное предсказание. Когда predFlagL0=1 и predFlagL1=0, информация указания направления предсказания указывает то, что используется прямое предсказание. Когда predFlagL0=0 и predFlagL1=1, информация указания направления предсказания указывает то, что используется обратное предсказание. Вполне понятно, что "прямое направление" и "обратное направление", соответственно, соответствуют списку 0 опорных изображений (list0, а именно, предыдущему первому списку) и списку 1 опорных изображений (list1, а именно, предыдущему второму списку) текущего изображения.In the video coding field, inter-frame prediction modes include forward prediction, reverse prediction, and bidirectional prediction (including forward prediction and reverse prediction), and the specific prediction mode used at the encoder side is generally indicated in the prediction direction indication information. For example, the prediction direction indicating information may include syntax elements predFlagL0 and predFlagL1. When predFlagL0=1 and predFlagL1=1, the prediction direction indicating information indicates that bidirectional prediction is applied. When predFlagL0=1 and predFlagL1=0, the prediction direction indication information indicates that forward prediction is used. When predFlagL0=0 and predFlagL1=1, the prediction direction indication information indicates that reverse prediction is used. It is clear that the "forward direction" and the "reverse direction" respectively correspond to reference picture list 0 (list0, namely the previous first list) and reference picture list 1 (list1, namely the previous second list) of the current picture.

В дополнительном решении устройство для кодирования видео дополнительно включает в себя блок вычисления остатка, выполненный с возможностью определения остатка выборки на основе значения выборки текущего блока изображения и предсказанного значения выборки текущего блока изображения; и блок энтропийного кодирования специально выполнен с возможностью кодирования синтаксического элемента и остатка выборки в подлежащем передаче битовом потоке.In a further solution, the video encoding apparatus further includes a residual calculation unit configured to determine a sample residual based on a sample value of the current image block and a predicted sample value of the current image block; and the entropy encoding unit is specifically configured to encode the syntax element and the remainder of the sample in the bit stream to be transmitted.

Согласно восьмому аспекту вариант осуществления настоящей заявки обеспечивает устройство для декодирования видео, и устройство для декодирования видео включает в себя блок энтропийного декодирования, блок межкадрового предсказания и блок восстановления.According to an eighth aspect, an embodiment of the present application provides a video decoding apparatus, and the video decoding apparatus includes an entropy decoding unit, an inter-frame prediction unit, and a reconstruction unit.

Блок энтропийного декодирования выполнен с возможностью синтаксического анализа битового потока для получения синтаксического элемента, причем этот синтаксический элемент по меньшей мере используется для указания того, что применяется двунаправленное предсказание.The entropy decoding unit is configured to parse the bitstream to obtain a syntax element, wherein the syntax element is at least used to indicate that bidirectional prediction is applied.

Блок межкадрового предсказания выполнен с возможностью: если выполнено множество заданных условий, выполнения обработки двунаправленного оптического потока (BDOF) (Bi-directional optical flow, BIO или BDOF для краткости) над текущим блоком изображения для получения предсказанного значения выборки текущего блока изображения, где множество заданных условий включает в себя по меньшей мере условие относительно того, что размер текущего блока изображения удовлетворяет первому заданному размеру. Размер текущего блока изображения обычно представлен шириной и высотой (которые обозначены W×H), и ширина и высота измеряются выборкой (выборкой или пикселем). Например, если размер текущего блока изображения составляет 8×8, первое число 8 указывает то, что ширина текущего блока изображения составляет 8 выборок, и второе число 8 указывает то, что высота текущего блока изображения составляет 8 выборок. В качестве другого примера, если размер текущего блока изображения составляет 8×16, число 8 указывает то, что ширина текущего блока изображения составляет 8 выборок, и число 16 указывает то, что высота текущего блока изображения составляет 16 выборок.The interframe prediction unit is configured to: if a plurality of specified conditions are met, perform Bi-directional optical flow (BIO or BDOF for short) processing on the current image block to obtain a predicted sample value of the current image block, where the plurality of specified The conditions include at least a condition that the size of the current image block satisfies the first specified size. The size of the current image block is usually represented by the width and height (which are denoted by W×H), and the width and height are measured by a sample (sample or pixel). For example, if the size of the current image block is 8×8, the first number 8 indicates that the width of the current image block is 8 samples, and the second number 8 indicates that the height of the current image block is 8 samples. As another example, if the size of the current image block is 8×16, the number 8 indicates that the width of the current image block is 8 samples, and the number 16 indicates that the height of the current image block is 16 samples.

То, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или составляет): высоту H текущего блока изображения, большую или равную 8, и, когда произведение ширины W на высоту H текущего блока изображения равно 64, ширину W, не равную высоте H.That the size of the current image block satisfies the first specified size includes (or is): the height H of the current image block greater than or equal to 8, and, when the product of the width W and the height H of the current image block is 64, the width W is not equal to height H.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или составляет): высоту H текущего блока изображения, большую или равную 8, и ширину W текущего блока изображения, большую или равную 8.Alternatively, that the size of the current image block satisfies the first specified size includes (or is): a height H of the current image block greater than or equal to 8, and a width W of the current image block greater than or equal to 8.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или составляет): высоту H текущего блока изображения, большую или равную 8, ширину W текущего блока изображения, большую или равную 8, и произведение ширины W текущего блока изображения на высоту H текущего блока изображения, большее 64.Alternatively, the size of the current image block satisfying the first specified size includes (or is): the height H of the current image block greater than or equal to 8, the width W of the current image block greater than or equal to 8, and the product of the width W of the current image block by the height H of the current image block, greater than 64.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или составляет): высоту H текущего блока изображения, большую или равную 8, ширину W текущего блока изображения, большую или равную 8, и произведение ширины W текущего блока изображения на высоту H текущего блока изображения, большее 128.Alternatively, the size of the current image block satisfying the first specified size includes (or is): the height H of the current image block greater than or equal to 8, the width W of the current image block greater than or equal to 8, and the product of the width W of the current image block to the height H of the current image block, greater than 128.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя: высоту H текущего блока изображения, большую 8.Alternatively, the size of the current image block satisfies the first specified size includes: the height H of the current image block greater than 8.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя: высоту H текущего блока изображения, большую 8, и ширину W текущего блока изображения, большую или равную 8.Alternatively, the size of the current image block satisfies the first specified size includes: a height H of the current image block greater than 8, and a width W of the current image block greater than or equal to 8.

Блок восстановления выполнен с возможностью определения значения выборки текущего блока изображения на основе по меньшей мере предсказанного значения выборки текущего блока изображения.The recovery unit is configured to determine a sample value of the current image block based on at least a predicted sample value of the current image block.

Следует отметить, что прежде, чем определить (или получить путем предсказания) предсказанное значение выборки текущего блока изображения на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, согласно технологии BDOF, может существовать другое исходное условие в дополнение к размеру текущего блока изображения. Другое исходное условие в данном документе не ограничивается. Для простоты понимания ниже используются примеры для описания.It should be noted that before determining (or obtaining by prediction) the predicted sample value of the current image block based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list, according to BDOF technology, there may be another precondition in addition to to the size of the current image block. The other reference condition herein is not limited. For ease of understanding, examples are used below for description.

Условие A: Существует высокоуровневый идентификатор синтаксиса sps_bdof_enabled_flag, указывающий, что технологию BDOF разрешено использовать для текущей видеопоследовательности.Condition A: There is a high-level syntax identifier sps_bdof_enabled_flag indicating that BDOF technology is enabled for the current video sequence.

Условие B: Информация predFlagL0 указания направления предсказания, соответствующая первому списку (List1), равна 1, и информация указания направления предсказания predFlagL1, соответствующая второму списку (list0), равна 1.Condition B: The prediction direction indication information predFlagL0 corresponding to the first list (List1) is 1, and the prediction direction indication information predFlagL1 corresponding to the second list (list0) is 1.

Условие C: Значение POC_L0 счетчика очередности изображения опорного кадра, соответствующее первому списку (list0), значение POC_L1 счетчика очередности изображения опорного кадра, соответствующее второму списку (list1), и значения POC_Cur счетчика очередности изображения, на котором расположен текущий блок изображения, удовлетворяют следующему соотношению: (POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0. Другими словами, изображение, включающее в себя текущий блок изображения, находится между двумя опорными изображениями.Condition C: The POC_L0 value of the reference frame image queue counter corresponding to the first list (list0), the POC_L1 value of the reference frame image queue counter corresponding to the second list (list1), and the POC_Cur value of the image queue counter on which the current image block is located satisfy the following relationship : (POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0. In other words, an image including the current image block is located between two reference images.

Условие D: MotionModelIdc[xCb][yCb] равно 0. MotionModelIdc представляет собой индекс модели движения для компенсации движения. MotionModelIdc[xCb][yCb], равное 0, указывает то, что моделью движения для компенсации движения текущего блока является поступательное движение (Translational motion).Condition D: MotionModelIdc[xCb][yCb] is 0. MotionModelIdc is the motion model index for motion compensation. MotionModelIdc[xCb][yCb] equal to 0 indicates that the motion model to compensate for the current block's motion is Translational motion.

Условие E: merge_subblock_flag[x0][y0] равно 0, где merge_subblock_flag[x0][y0], равное 0, указывает то, что режим слияния подблоков не применяется для текущего блока изображения.Condition E: merge_subblock_flag[x0][y0] is equal to 0, where merge_subblock_flag[x0][y0] equal to 0 indicates that the subblock merging mode is not applied to the current image block.

Условие F: sym_mvd_flag[x0][y0] равно 0. sym_mvd_flag[x0][y0], равное 0, указывает то, что синтаксическая структура mvd_coding(x0, y0, refList, cpIdx) присутствует для текущего блока.Condition F: sym_mvd_flag[x0][y0] is equal to 0. sym_mvd_flag[x0][y0] equal to 0 indicates that the syntax structure mvd_coding(x0, y0, refList, cpIdx) is present for the current block.

Условие G: bcwIdx[xCb][yCb] равно 0. bcwIdx указывает весовой индекс двунаправленного предсказания для текущего блока изображения.Condition G: bcwIdx[xCb][yCb] is equal to 0. bcwIdx indicates the bidirectional prediction weight index for the current image block.

Условие H: cIdx равно 0. cIdx представляет собой индекс цветового компонента текущего блока изображения.Condition H: cIdx is 0. cIdx is the index of the color component of the current image block.

Условие I: Размер текущего блока изображения является первым заданным размером.Condition I: The size of the current image block is the first specified size.

Условие J: Как luma_weight_l0_flag[refIdxL0], так и luma_weight_l1_flag[refIdxL1] равны 0, где luma_weight_l0_flag, равное 0, указывает то, что отсутствуют весовые коэффициенты для компонента яркости предсказания list0, и luma_weight_l1_flag, равное 0, указывает то, что отсутствуют весовые коэффициенты для компонента яркости предсказания list1.Condition J: Both luma_weight_l0_flag[refIdxL0] and luma_weight_l1_flag[refIdxL1] are equal to 0, where luma_weight_l0_flag equal to 0 indicates that there are no weights for the luma component of the list0 prediction, and luma_weight_l1_flag equal to 0 indicates that there are no weights for the brightness component of the prediction list1.

Например, если выполнены все условия A-J, определяется, что технология BDOF может использоваться для предсказания предсказанного значения выборки текущего блока изображения. Например, bdofFlag устанавливается на значение "истина". Следует отметить, что вышеуказанные условия являются просто примерами, и может быть дополнительно добавлено другое условие, или могут быть заменены одно или более из вышеуказанных условий, или могут быть удалены одно или более из вышеуказанных условий.For example, if all conditions A-J are satisfied, it is determined that BDOF technology can be used to predict the predicted sample value of the current image block. For example, bdofFlag is set to true. It should be noted that the above conditions are merely examples, and another condition may be further added, or one or more of the above conditions may be replaced, or one or more of the above conditions may be deleted.

Следует понимать, что текущий блок изображения (который также упоминается как текущий блок) в данном документе может рассматриваться как блок изображения, подлежащий обработке. Например, в процессе декодирования текущий блок изображения представляет собой блок изображения, подлежащий декодированию (блок декодирования).It should be understood that the current image block (which is also referred to as the current block) may be considered herein as an image block to be processed. For example, in the decoding process, the current image block is an image block to be decoded (decoding block).

В данном варианте осуществления настоящей заявки может быть дополнительно включено действие по определению условий. Например, блок межкадрового предсказания дополнительно выполнен с возможностью определения того, выполнено ли множество заданных условий.In this embodiment of the present application, an action for determining conditions may be further included. For example, the inter-frame prediction unit is further configured to determine whether a plurality of predetermined conditions are met.

Вполне понятно, что другой случай может быть дополнительно получен со ссылкой на вышеизложенные случаи, и другой случай также подпадает под объем защиты настоящей заявки.It is clear that another case may be further obtained with reference to the above cases, and the other case also falls within the scope of protection of the present application.

Более конкретно, условие для включения или использования технологии BDOF в этом решении отличается от условия для включения или использования технологии BDOF в предшествующем уровне техники, и, в частности, отличаются требования к размеру текущего блока изображения. Технология BDOF используется для текущего блока изображения, имеющего первый заданный размер, поэтому можно получить предсказанное значение выборки, более близкое к исходному значению выборки, и можно надлежащим образом управлять сложностью кодирования. Это до некоторой степени уравновешивает сложность кодирования/декодирования и точность предсказания, тем самым повышая эффективность кодирования.More specifically, the condition for enabling or using BDOF technology in this solution is different from the condition for enabling or using BDOF technology in the prior art, and in particular, the size requirements of the current image block are different. BDOF technology is used for the current image block having the first specified size, so that a predicted sample value closer to the original sample value can be obtained, and the encoding complexity can be properly controlled. This balances encoding/decoding complexity and prediction accuracy to some extent, thereby improving encoding efficiency.

В дополнительном решении синтаксический элемент включает в себя индекс (например, merge_idx[xCb][yCb]) информации движения целевого кандидата, информация движения целевого кандидата включает в себя целевые векторы движения-кандидаты, индексы опорных кадров и информацию указания направления предсказания (например, predFlagL0=1 и predFlagL1=1), информация указания направления предсказания используется для указания того, что применяется двунаправленное предсказание, целевые векторы движения-кандидаты включают в себя первый вектор движения, соответствующий первому списку (то есть list0), и второй вектор движения, соответствующий второму списку (то есть list1), и индексы опорных кадров включают в себя индекс (например, refIdxL0) первого опорного кадра, соответствующего первому списку, и индекс (например, refIdxL1) второго опорного кадра, соответствующего второму списку.In a further solution, the syntax element includes an index (for example, merge_idx[xCb][yCb]) of target candidate motion information, the target candidate motion information includes candidate target motion vectors, reference frame indices, and prediction direction indication information (for example, predFlagL0 =1 and predFlagL1=1), prediction direction indication information is used to indicate that bidirectional prediction is applied, the candidate target motion vectors include a first motion vector corresponding to the first list (i.e., list0) and a second motion vector corresponding to the second list (ie, list1), and the reference frame indices include an index (eg, refIdxL0) of a first reference frame corresponding to the first list, and an index (eg, refIdxL1) of a second reference frame corresponding to the second list.

В данном варианте осуществления настоящей заявки индекс опорного кадра используется для идентификации опорного изображения, соответствующего используемому вектору движения (например, первому вектору движения или второму вектору движения) в заданном списке опорных изображений (первый список list0 или второй список list1). Изображение может называться кадром, и опорное изображение может называться опорным кадром.In this embodiment of the present application, the reference frame index is used to identify a reference picture corresponding to a motion vector being used (eg, a first motion vector or a second motion vector) in a given reference picture list (first list list0 or second list list1). The image may be called a frame, and the reference image may be called a reference frame.

В поле кодирования видео режимы межкадрового предсказания включают в себя прямое предсказание, обратное предсказание и двунаправленное предсказание (включающее в себя прямое предсказание и обратное предсказание), и конкретный режим предсказания, используемый на стороне кодера, обычно указывается в информации указания направления предсказания. Например, информация указания направления предсказания может включать в себя синтаксические элементы predFlagL0 и predFlagL1. Когда predFlagL0=1 и predFlagL1=1, информация указания направления предсказания указывает то, что применяется двунаправленное предсказание. Когда predFlagL0=1 и predFlagL1=0, информация указания направления предсказания указывает то, что используется прямое предсказание. Когда predFlagL0=0 и predFlagL1=1, информация указания направления предсказания указывает то, что используется обратное предсказание. Вполне понятно, что "прямое направление" и "обратное направление", соответственно, соответствуют списку 0 опорных изображений (list0, а именно, предыдущему первому списку) и списку 1 опорных изображений (list1, а именно, предыдущему второму списку) текущего изображения.In the video coding field, inter-frame prediction modes include forward prediction, reverse prediction, and bidirectional prediction (including forward prediction and reverse prediction), and the specific prediction mode used at the encoder side is generally indicated in the prediction direction indication information. For example, the prediction direction indicating information may include syntax elements predFlagL0 and predFlagL1. When predFlagL0=1 and predFlagL1=1, the prediction direction indicating information indicates that bidirectional prediction is applied. When predFlagL0=1 and predFlagL1=0, the prediction direction indication information indicates that forward prediction is used. When predFlagL0=0 and predFlagL1=1, the prediction direction indication information indicates that reverse prediction is used. It is clear that the "forward direction" and the "reverse direction" respectively correspond to reference picture list 0 (list0, namely the previous first list) and reference picture list 1 (list1, namely the previous second list) of the current picture.

В дополнительном решении синтаксический элемент включает в себя первые индексы, вторые индексы, информацию указания направления предсказания и разность векторов движения (MVD), первые индексы (например, mvp_lX_flag[xCb][yCb]) используются для указания предиктора целевого вектора движения-кандидата, предикторы целевых векторов движения-кандидатов включают в себя первый предиктор вектора движения, соответствующий первому списку (например, list0), и второй предиктор вектора движения, соответствующий второму списку (например, list1), и разность векторов движения (MVD) включает в себя первую MVD, соответствующую первому списку, и/или вторую MVD, соответствующую второму списку (например, когда включена только одна MVD, MVD, которая не передается, может быть получена на основе переданной MVD). Вторые индексы (которые также называются индексами опорных кадров) используются для указания опорных кадров текущего блока изображения, и опорные кадры включают в себя первый опорный кадр, соответствующий первому списку, и второй опорный кадр, соответствующий второму списку. Например, вторыми индексами являются refIdxL0 и refIdxL1, refIdxL0 представляет собой индекс первого опорного кадра, соответствующего первому списку, и refIdxL1 представляет собой индекс второго опорного кадра, соответствующего второму списку. Информация указания направления предсказания (например, predFlagL0=1 и predFlagL1=1) используется для указания того, что применяется двунаправленное предсказание.In a further solution, the syntax element includes first indices, second indices, prediction direction indicating information, and a motion vector difference (MVD), the first indices (e.g., mvp_lX_flag[xCb][yCb]) are used to indicate a candidate target motion vector predictor, predictors the candidate target motion vectors include a first motion vector predictor corresponding to the first list (e.g., list0), and a second motion vector predictor corresponding to the second list (e.g., list1), and the motion vector difference (MVD) includes the first MVD, corresponding to the first list, and/or a second MVD corresponding to the second list (eg, when only one MVD is included, the MVD that is not transmitted can be obtained based on the transmitted MVD). The second indices (which are also called reference frame indices) are used to indicate reference frames of the current image block, and the reference frames include a first reference frame corresponding to the first list and a second reference frame corresponding to the second list. For example, the second indices are refIdxL0 and refIdxL1, refIdxL0 is the index of the first reference frame corresponding to the first list, and refIdxL1 is the index of the second reference frame corresponding to the second list. Prediction direction indication information (eg, predFlagL0=1 and predFlagL1=1) is used to indicate that bidirectional prediction is applied.

Первый вектор движения (например, Mv0_L0), соответствующий первому списку, получается на основе первого предиктора вектора движения (например, Mvp0_L0), соответствующего первому списку, и первой MVD (например, MVD0), соответствующей первому списку. Например, Mv0_L0=Mvp0_L0+MVD0.A first motion vector (eg, Mv0_L0) corresponding to the first list is obtained based on a first motion vector predictor (eg, Mvp0_L0) corresponding to the first list and a first MVD (eg, MVD0) corresponding to the first list. For example, Mv0_L0=Mvp0_L0+MVD0.

Второй вектор движения (например, Mv1_L1), соответствующий второму списку, получается на основе второго предиктора вектора движения (например, Mvp1_L1), соответствующего второму списку, и второй MVD (например, MVD1), соответствующей второму списку. Например, Mv1_L1=Mvp1_L1+MVD1.A second motion vector (eg, Mv1_L1) corresponding to the second list is obtained based on a second motion vector predictor (eg, Mvp1_L1) corresponding to the second list and a second MVD (eg, MVD1) corresponding to the second list. For example, Mv1_L1=Mvp1_L1+MVD1.

[00306] В поле кодирования видео режимы межкадрового предсказания включают в себя прямое предсказание, обратное предсказание и двунаправленное предсказание (включающее в себя прямое предсказание и обратное предсказание), и конкретный режим предсказания, используемый на стороне кодера, обычно указывается в информации указания направления предсказания. Например, информация указания направления предсказания может включать в себя синтаксические элементы predFlagL0 и predFlagL1. Когда predFlagL0=1 и predFlagL1=1, информация указания направления предсказания указывает то, что применяется двунаправленное предсказание. Когда predFlagL0=1 и predFlagL1=0, информация указания направления предсказания указывает то, что используется прямое предсказание. Когда predFlagL0=0 и predFlagL1=1, информация указания направления предсказания указывает то, что используется обратное предсказание. Вполне понятно, что "прямое направление" и "обратное направление", соответственно, соответствуют списку 0 опорных изображений (list0, а именно, предыдущему первому списку) и списку 1 опорных изображений (list1, а именно, предыдущему второму списку) текущего изображения.[00306] In the video encoding field, inter-frame prediction modes include forward prediction, backward prediction, and bidirectional prediction (including forward prediction and backward prediction), and the specific prediction mode used at the encoder side is generally indicated in the prediction direction indication information. For example, the prediction direction indicating information may include syntax elements predFlagL0 and predFlagL1. When predFlagL0=1 and predFlagL1=1, the prediction direction indicating information indicates that bidirectional prediction is applied. When predFlagL0=1 and predFlagL1=0, the prediction direction indication information indicates that forward prediction is used. When predFlagL0=0 and predFlagL1=1, the prediction direction indication information indicates that reverse prediction is used. It is clear that the "forward direction" and the "reverse direction" respectively correspond to reference picture list 0 (list0, namely the previous first list) and reference picture list 1 (list1, namely the previous second list) of the current picture.

В дополнительном решении блок энтропийного декодирования специально выполнен с возможностью синтаксического анализа битового потока для получения остатка выборки и синтаксического элемента; и блок восстановления специально выполнен с возможностью определения значения выборки текущего блока изображения на основе остатка выборки и предсказанного значения выборки текущего блока изображения.In an additional solution, the entropy decoding unit is specifically configured to parse the bitstream to obtain the remainder of the sample and the syntax element; and the recovery unit is specifically configured to determine a sample value of the current image block based on the sample remainder and the predicted sample value of the current image block.

Согласно девятому аспекту вариант осуществления настоящей заявки обеспечивает устройство для декодирования видео, и устройство для декодирования видео включает в себя блок энтропийного декодирования, блок межкадрового предсказания и блок восстановления.According to a ninth aspect, an embodiment of the present application provides a video decoding apparatus, and the video decoding apparatus includes an entropy decoding unit, an inter-frame prediction unit, and a reconstruction unit.

Блок энтропийного декодирования выполнен с возможностью синтаксического анализа битового потока для получения синтаксического элемента, причем этот синтаксический элемент по меньшей мере используется для указания того, что применяется двунаправленное предсказание.The entropy decoding unit is configured to parse the bitstream to obtain a syntax element, wherein the syntax element is at least used to indicate that bidirectional prediction is applied.

Блок межкадрового предсказания выполнен с возможностью: когда размер текущего блока изображения является вторым заданным размером, определения (или получения путем предсказания) предсказанного значения выборки текущего блока изображения (например, выборки предсказания текущего блока кодирования) первым способом обработки на основе значения опорной выборки, соответствующего первому списку (то есть list0), и значения опорной выборки, соответствующего второму списку (то есть list1), где первым способом обработки не является BDOF (называемый двунаправленным оптическим потоком (Bi-directional optical flow, BIO)). Другими словами, когда размер текущего блока изображения является вторым заданным размером, BDOF не может использоваться для определения предсказанного значения выборки текущего блока изображения на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку. Размер текущего блока изображения обычно представлен шириной и высотой (которые обозначены W×H), и ширина и высота измеряются выборкой (выборкой или пикселем). Второй заданный размер включает в себя 8×8 (первое число 8 указывает то, что ширина текущего блока изображения составляет 8 выборок, и второе число 8 указывает то, что высота текущего блока изображения составляет 8 выборок), 4×N (4 указывает то, что ширина текущего блока изображения составляет 4 выборки, N указывает то, что высота текущего блока изображения составляет N выборок, и другие размеры выводятся по аналогии), 8×16 или 16×8. N равно степени 2 и больше или равно 8. Например, значение N может быть равным 16, 32, 64 или т.п.The inter-frame prediction unit is configured to: when the size of the current image block is a second predetermined size, determine (or predictively obtain) a predicted sample value of the current image block (for example, a prediction sample of the current encoding block) by a first processing method based on a reference sample value corresponding to the first list (ie list0), and a reference sample value corresponding to the second list (ie list1), where the first processing method is not BDOF (called Bi-directional optical flow (BIO)). In other words, when the size of the current image block is the second specified size, BDOF cannot be used to determine the predicted sample value of the current image block based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list. The size of the current image block is usually represented by the width and height (which are denoted by W×H), and the width and height are measured by a sample (sample or pixel). The second specified size includes 8×8 (the first number 8 indicates that the width of the current image block is 8 samples, and the second number 8 indicates that the height of the current image block is 8 samples), 4×N (4 indicates that that the width of the current image block is 4 samples, N indicates that the height of the current image block is N samples, and other sizes are derived similarly), 8x16 or 16x8. N is a power of 2 and greater than or equal to 8. For example, the value of N could be 16, 32, 64, or the like.

В данном варианте осуществления настоящей заявки значение опорной выборки, соответствующее первому списку, и значение опорной выборки, соответствующее второму списку, соответственно, получают путем предсказания на основе первого вектора движения (например, Mv0_L0), соответствующего первому списку (то есть list0), и второго вектора движения (например, Mv1_L1), соответствующего второму списку (то есть list1). Например, значение опорной выборки, соответствующее первому списку (то есть list0), может быть определено на основе первого вектора движения (например, Mv0_L0), соответствующего первому списку (то есть list0), и значение опорной выборки, соответствующее второму списку (то есть list1), может быть определено на основе второго вектора движения (например, Mv1_L1), соответствующего второму списку (то есть list1).In this embodiment of the present application, a reference sample value corresponding to the first list and a reference sample value corresponding to the second list are respectively obtained by prediction based on the first motion vector (eg, Mv0_L0) corresponding to the first list (ie, list0) and the second motion vector (eg Mv1_L1) corresponding to the second list (ie list1). For example, a reference sample value corresponding to the first list (i.e., list0) may be determined based on a first motion vector (i.e., Mv0_L0) corresponding to the first list (i.e., list0), and a reference sample value corresponding to the second list (i.e., list1 ) may be determined based on the second motion vector (eg, Mv1_L1) corresponding to the second list (ie, list1).

Блок восстановления выполнен с возможностью определения значения выборки текущего блока изображения на основе по меньшей мере предсказанного значения выборки текущего блока изображения.The recovery unit is configured to determine a sample value of the current image block based on at least a predicted sample value of the current image block.

Следует понимать, что текущий блок изображения (который также упоминается как текущий блок) в данном документе может рассматриваться как блок изображения, подлежащий обработке. Например, в процессе декодирования текущий блок изображения представляет собой блок изображения, подлежащий декодированию (блок декодирования).It should be understood that the current image block (which is also referred to as the current block) may be considered herein as an image block to be processed. For example, in the decoding process, the current image block is an image block to be decoded (decoding block).

Кроме того, вышеописанный случай, когда второй заданный размер включает в себя 8×8, 4×N, 8×16 или 16×8, также может быть ограничен вторым заданным размером, равным 8×8, 4×N, 8×16 или 16×8. Другими словами, BDOF запрещено использовать для одного из размеров 8×8, 4×N, 8×16 и 16×8, перечисленных выше, или BDOF запрещено использовать для множества их размеров. Далее для описания используются примеры.In addition, the above-described case where the second predetermined size includes 8×8, 4×N, 8×16 or 16×8 may also be limited to the second predetermined size being 8×8, 4×N, 8×16 or 16x8. In other words, BDOF is prohibited from being used for one of the 8x8, 4xN, 8x16, and 16x8 sizes listed above, or BDOF is prohibited from being used in multiple sizes of them. The following examples are used for description.

Пример 1: Второй заданный размер включает в себя (или составляет) 8×8. Другими словами, в данном варианте осуществления настоящей заявки BDOF запрещается использовать для размера 8×8. В этом случае получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, когда размер текущего блока изображения является вторым заданным размером, может быть, в частности, выражено как: когда размер текущего блока изображения равен 8×8, получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку.Example 1: The second given size includes (or is) 8x8. In other words, in this embodiment of the present application, BDOF is prohibited from being used for the size 8x8. In this case, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list when the size of the current image block is the second predetermined size may be particularly expressed as: when the size of the current image block is 8×8, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list.

Пример 2: Второй заданный размер включает в себя (или составляет) 4×N. Другими словами, в данном варианте осуществления настоящей заявки BDOF запрещается использовать для размера 4×N. В этом случае получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, когда размер текущего блока изображения является вторым заданным размером, может быть, в частности, выражено как: когда размер текущего блока изображения составляет 4×N, получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, где N больше или равно 8.Example 2: The second specified size includes (or is) 4×N. In other words, in this embodiment of the present application, BDOF is prohibited from being used for size 4×N. In this case, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list when the size of the current image block is the second predetermined size may be particularly expressed as: when the size of the current image block is 4×N, obtaining a predicted sample value of the current image block by prediction by the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list, where N is greater than or equal to 8 .

Пример 3: Второй заданный размер включает в себя (или составляет) 8×8 или 4×N. Другими словами, в данном варианте осуществления настоящей заявки BDOF запрещается использовать для размеров 8×8 и 4×N. В этом случае получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, когда размер текущего блока изображения является вторым заданным размером, может быть, в частности, выражено как: когда размер текущего блока изображения составляет 8×8 или 4×N, получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, где N больше или равно 8.Example 3: The second specified size includes (or is) 8x8 or 4xN. In other words, in this embodiment of the present application, BDOF is prohibited from being used for sizes 8x8 and 4xN. In this case, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list when the size of the current image block is the second predetermined size may be particularly expressed as: when the size of the current image block is 8×8 or 4×N, obtaining a predicted sample value of the current image block by prediction by the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list, where N greater than or equal to 8.

Пример 4: Второй заданный размер включает в себя (или составляет) 8×8, 4×N, 8×16 или 16×8, где N больше или равно 8. Другими словами, в данном варианте осуществления настоящей заявки BDOF запрещено использовать для размеров 8×8, 4×N, 8×16 и 16×8. В этом случае получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, когда размер текущего блока изображения является вторым заданным размером, может быть, в частности, выражено как: когда размер текущего блока изображения является любым из 8×8, 4×N, 8×16 и 16×8, получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку.Example 4: The second specified size includes (or is) 8x8, 4xN, 8x16, or 16x8, where N is greater than or equal to 8. In other words, in this embodiment of the present application, BDOF is prohibited from being used for sizes 8x8, 4xN, 8x16 and 16x8. In this case, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list when the size of the current image block is the second predetermined size may be particularly expressed as: when the size of the current image block is any of 8×8, 4×N, 8×16 and 16×8, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list, and values of the reference sample corresponding to the second list.

Пример 5: Второй заданный размер включает в себя (или составляет) N×8, где N больше или равно 4. Другими словами, в данном варианте осуществления настоящей заявки BDOF запрещается использовать для размера N×8. В этом случае получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, когда размер текущего блок изображения является вторым заданным размером, может быть, в частности, выражено как: когда размер текущего блока изображения равен N×8, получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку.Example 5: The second specified size includes (or is) N×8, where N is greater than or equal to 4. In other words, in this embodiment of the present application, BDOF is prohibited from being used for the size N×8. In this case, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list when the size of the current image block is the second predetermined size may be particularly expressed as: when the size of the current image block is N×8, obtaining a predicted sample value of the current image block by prediction by the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list.

Пример 6: Второй заданный размер включает в себя (или составляет) N×8 или 4×N, где N больше или равно 4. Другими словами, в данном варианте осуществления настоящей заявки BDOF запрещается использовать для размера N×8 или 4×N. В этом случае получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, когда размер текущего блока изображения является вторым заданным размером, может быть, в частности, выражено как: когда размер текущего блока изображения равен N×8 или 4×N, получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку.Example 6: The second specified size includes (or is) N×8 or 4×N, where N is greater than or equal to 4. In other words, in this embodiment of the present application, BDOF is prohibited from being used for the size N×8 or 4×N. In this case, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list when the size of the current image block is the second predetermined size may be particularly expressed as: when the size of the current image block is N×8 or 4×N, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list.

Кроме того, так как BDOF также запрещено использовать для размера M×4 в некоторых сценариях, в настоящей заявке, когда BDOF запрещено использовать для второго заданного размера, BDOF дополнительно запрещено использовать для размера M×4, где M - целое число, большее или равное 4.In addition, since BDOF is also prohibited from being used for size M×4 in some scenarios, in this application, when BDOF is prohibited from being used for a second specified size, BDOF is additionally prohibited from being used for size M×4, where M is an integer greater than or equal to 4.

Вполне понятно, что другой случай может быть дополнительно получен со ссылкой на вышеизложенные случаи, и другой случай также подпадает под объем защиты настоящей заявки.It is clear that another case may be further obtained with reference to the above cases, and the other case also falls within the scope of protection of the present application.

Согласно вышеизложенному способу, при использовании технологии BDOF полностью учитываются особенности текущих блоков изображения различных размеров. Когда размер текущего блока изображения является вторым заданным размером, предсказанное значение выборки текущего блока изображения определяется в соответствии с технологией, отличной от технологии BDOF. Это значительно снижает сложность кодирования и повышает эффективность кодирования.According to the above method, when using BDOF technology, the features of current image blocks of various sizes are fully taken into account. When the size of the current image block is the second specified size, the predicted sample value of the current image block is determined in accordance with a technology other than BDOF technology. This greatly reduces coding complexity and improves coding efficiency.

В дополнительном решении в процессе получения предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, блок межкадрового предсказания специально выполнен с возможностью:In a further solution, in the process of obtaining a predicted sample value of a current image block by prediction by the first processing method based on a reference sample value corresponding to the first list and a reference sample value corresponding to the second list, the inter-frame prediction unit is specifically configured to:

выполнения взвешенного вычисления над значениями выборок, имеющими одно и то же местоположение в значении опорной выборки, соответствующем первому списку, и в значении опорной выборки, соответствующем второму списку, для получения предсказанного значения выборки текущего блока изображения; илиperforming a weighted calculation on sample values having the same location in a reference sample value corresponding to the first list and a reference sample value corresponding to the second list to obtain a predicted sample value of the current image block; or

получения предсказанного значения выборки текущего блока изображения путем предсказания на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, согласно технологии разности векторов движения в режиме слияния (MMVD); илиobtaining a predicted sample value of the current image block by predicting based on a reference sample value corresponding to the first list and a reference sample value corresponding to the second list according to a merging mode motion vector difference (MMVD) technology; or

получения предсказанного значения выборки текущего блока изображения путем предсказания на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, согласно технологии объединенного межкадрового/внутрикадрового предсказания (CIIP); илиobtaining a predicted sample value of the current image block by predicting based on a reference sample value corresponding to the first list and a reference sample value corresponding to the second list according to a combined inter-/intra-frame prediction (CIIP) technology; or

получения предсказанного значения выборки текущего блока изображения путем предсказания на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, согласно технологии уточнения вектора движения на стороне декодера (DMVR).obtaining a predicted sample value of the current image block by predicting based on a reference sample value corresponding to the first list and a reference sample value corresponding to the second list, according to a decoder-side motion vector refinement (DMVR) technology.

В данном варианте осуществления настоящей заявки то, используется ли способ взвешенного вычисления, технология MMVD или технология CIIP, может быть определено с использованием соответствующего условия или может быть указано с использованием соответствующей информации указания.In this embodiment of the present application, whether the weighted calculation method, MMVD technology or CIIP technology is used can be determined using a corresponding condition or can be indicated using corresponding indication information.

Следует отметить, что технология BDOF эквивалентна технологии оптимизации исправлений для традиционной технологии предсказания предсказанного значения выборки текущего блока изображения. Во многих сценариях предсказанное значение выборки, более близкое к реальному значению выборки текущего блока изображения, может быть получено в соответствии с технологией BDOF. Поэтому остаток выборки, полученный на основе предсказанного значения выборки, может быть меньше, поэтому можно повысить эффективность кодирования. Таким образом, на стороне кодера обычно используется технология BDOF. Для более точного восстановления предсказанного значения выборки технология BDOF используется также, соответственно, на стороне декодера. Вышеупомянутый способ взвешенного вычисления можно рассматривать как традиционную технологию для получения предсказанного значения выборки текущего блока изображения, и каждую из вышеизложенных технологий MMVD, CIIP и DMVR можно рассматривать как технология оптимизации исправлений для традиционной технологии. В данном варианте осуществления настоящей заявки, когда размер текущего блока изображения является вторым заданным размером, предсказанное значение выборки текущего блока изображения определяется в соответствии с традиционной технологией (например, способом взвешенного вычисления) или другой технологией оптимизации исправлений (например, MMVD, CIIP или DMVR), а не технологией BDOF. Это позволяет значительно снизить сложность декодирования и повысить эффективность декодирования.It should be noted that the BDOF technology is equivalent to the patch optimization technology of the traditional technology of predicting the predicted sample value of the current image block. In many scenarios, a predicted sample value closer to the actual sample value of the current image block can be obtained according to BDOF technology. Therefore, the sample residual obtained based on the predicted sample value can be smaller, so the encoding efficiency can be improved. Thus, BDOF technology is usually used on the encoder side. To more accurately restore the predicted sample value, BDOF technology is also used on the decoder side. The above weighted calculation method can be considered as a traditional technology for obtaining the predicted sample value of the current image block, and each of the above MMVD, CIIP and DMVR technologies can be considered as a patch optimization technology for the traditional technology. In this embodiment of the present application, when the size of the current image block is the second predetermined size, the predicted sample value of the current image block is determined in accordance with a conventional technology (for example, a weighted calculation method) or another patch optimization technology (for example, MMVD, CIIP or DMVR) , not BDOF technology. This can greatly reduce decoding complexity and improve decoding efficiency.

В дополнительном решении блок межкадрового предсказания дополнительно выполнен с возможностью: если выполнено множество заданных условий, выполнения обработки на основе двунаправленного оптического потока (BDOF) над текущим блоком изображения для получения предсказанного значения выборки текущего блока изображения, где множество заданных условий включает в себя по меньшей мере условие относительно того, что размер текущего блока изображения удовлетворяет первому заданному размеру.In a further solution, the inter-frame prediction unit is further configured to: if a plurality of predetermined conditions are met, perform bidirectional optical flow (BDOF) processing on the current image block to obtain a predicted sample value of the current image block, where the plurality of predetermined conditions includes at least a condition that the size of the current image block satisfies the first specified size.

То, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или составляет): высоту H текущего блока изображения, большую или равную 8, и, когда произведение ширины W на высоту H текущего блока изображения равно 64, ширину W, не равную высоте H.That the size of the current image block satisfies the first specified size includes (or is): the height H of the current image block greater than or equal to 8, and, when the product of the width W and the height H of the current image block is 64, the width W is not equal to height H.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или составляет): высоту H текущего блока изображения, большую или равную 8, и ширину W текущего блока изображения, большую или равную 8.Alternatively, that the size of the current image block satisfies the first specified size includes (or is): a height H of the current image block greater than or equal to 8, and a width W of the current image block greater than or equal to 8.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или составляет): высоту H текущего блока изображения, большую или равную 8, ширину W текущего блока изображения, большую или равную 8, и произведение ширины W текущего блока изображения на высоту H текущего блока изображения, большее 64.Alternatively, the size of the current image block satisfying the first specified size includes (or is): the height H of the current image block greater than or equal to 8, the width W of the current image block greater than or equal to 8, and the product of the width W of the current image block by the height H of the current image block, greater than 64.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или составляет): высоту H текущего блока изображения, большую или равную 8, ширину W текущего блока изображения, большую или равную 8, и произведение ширины W текущего блока изображения на высоту H текущего блока изображения, большее 128.Alternatively, the size of the current image block satisfying the first specified size includes (or is): the height H of the current image block greater than or equal to 8, the width W of the current image block greater than or equal to 8, and the product of the width W of the current image block to the height H of the current image block, greater than 128.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или составляет): высоту H текущего блока изображения, большую 8.Alternatively, the size of the current image block satisfying the first specified size includes (or is): a height H of the current image block greater than 8.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или составляет): высоту H текущего блока изображения, большую 8, и ширину W текущего блока изображения, большую или равную 8.Alternatively, the size of the current image block satisfies the first specified size includes (or is): a height H of the current image block greater than 8, and a width W of the current image block greater than or equal to 8.

Блок восстановления дополнительно выполнен с возможностью восстановления текущего блока изображения на основе по меньшей мере предсказанного значения выборки текущего блока изображения.The recovery unit is further configured to recover the current image block based on at least a predicted sample value of the current image block.

Более конкретно, условие для включения или использования технологии BDOF в этом решении отличается от условия для включения или использования технологии BDOF в предшествующем уровне техники, и, в частности, отличаются требования к размеру текущего блока изображения. Технология BDOF используется для текущего блока изображения, имеющего первый заданный размер, поэтому можно получить предсказанное значение выборки, более близкое к исходному значению выборки, и можно надлежащим образом управлять сложностью кодирования. Это до некоторой степени уравновешивает сложность кодирования/декодирования и точность предсказания, тем самым повышая эффективность кодирования.More specifically, the condition for enabling or using BDOF technology in this solution is different from the condition for enabling or using BDOF technology in the prior art, and in particular, the size requirements of the current image block are different. BDOF technology is used for the current image block having the first specified size, so that a predicted sample value closer to the original sample value can be obtained, and the encoding complexity can be properly controlled. This balances encoding/decoding complexity and prediction accuracy to some extent, thereby improving encoding efficiency.

Следует отметить, что прежде, чем определить (или получить путем предсказания) предсказанное значение выборки текущего блока изображения на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, согласно технологии BDOF, может существовать другое исходное условие в дополнение к размеру текущего блока изображения. Другое исходное условие в данном документе не ограничивается. Для простоты понимания ниже используются примеры для описания.It should be noted that before determining (or obtaining by prediction) the predicted sample value of the current image block based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list, according to BDOF technology, there may be another precondition in addition to to the size of the current image block. The other reference condition herein is not limited. For ease of understanding, examples are used below for description.

Условие A: Существует высокоуровневый идентификатор синтаксиса sps_bdof_enabled_flag, указывающий, что технологию BDOF разрешено использовать для текущей видеопоследовательности.Condition A: There is a high-level syntax identifier sps_bdof_enabled_flag indicating that BDOF technology is enabled for the current video sequence.

Условие B: Информация predFlagL0 указания направления предсказания, соответствующая первому списку (List1), равна 1, и информация указания направления предсказания predFlagL1, соответствующая второму списку (list0), равна 1.Condition B: The prediction direction indication information predFlagL0 corresponding to the first list (List1) is 1, and the prediction direction indication information predFlagL1 corresponding to the second list (list0) is 1.

Условие C: Значение POC_L0 счетчика очередности изображения опорного кадра, соответствующее первому списку (list0), значение POC_L1 счетчика очередности изображения опорного кадра, соответствующее второму списку (list1), и значения POC_Cur счетчика очередности изображения, на котором расположен текущий блок изображения, удовлетворяют следующему соотношению: (POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0. Другими словами, изображение, включающее в себя текущий блок изображения, находится между двумя опорными изображениями.Condition C: The POC_L0 value of the reference frame image queue counter corresponding to the first list (list0), the POC_L1 value of the reference frame image queue counter corresponding to the second list (list1), and the POC_Cur value of the image queue counter on which the current image block is located satisfy the following relationship : (POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0. In other words, an image including the current image block is located between two reference images.

Условие D: MotionModelIdc[xCb][yCb] равно 0. MotionModelIdc представляет собой индекс модели движения для компенсации движения. MotionModelIdc[xCb][yCb], равное 0, указывает то, что моделью движения для компенсации движения текущего блока является поступательное движение (Translational motion).Condition D: MotionModelIdc[xCb][yCb] is 0. MotionModelIdc is the motion model index for motion compensation. MotionModelIdc[xCb][yCb] equal to 0 indicates that the motion model to compensate for the current block's motion is Translational motion.

Условие E: merge_subblock_flag[x0][y0] равно 0, где merge_subblock_flag[x0][y0], равное 0, указывает то, что режим слияния подблоков не применяется для текущего блока изображения.Condition E: merge_subblock_flag[x0][y0] is equal to 0, where merge_subblock_flag[x0][y0] equal to 0 indicates that the subblock merging mode is not applied to the current image block.

Условие F: sym_mvd_flag[x0][y0] равно 0. sym_mvd_flag[x0][y0], равное 0, указывает то, что синтаксическая структура mvd_coding(x0, y0, refList, cpIdx) присутствует для текущего блока.Condition F: sym_mvd_flag[x0][y0] is equal to 0. sym_mvd_flag[x0][y0] equal to 0 indicates that the syntax structure mvd_coding(x0, y0, refList, cpIdx) is present for the current block.

Условие G: bcwIdx[xCb][yCb] равно 0. bcwIdx указывает весовой индекс двунаправленного предсказания для текущего блока изображения.Condition G: bcwIdx[xCb][yCb] is equal to 0. bcwIdx indicates the bidirectional prediction weight index for the current image block.

Условие H: cIdx равно 0. cIdx представляет собой индекс цветового компонента текущего блока изображения.Condition H: cIdx is 0. cIdx is the index of the color component of the current image block.

Условие I: Размер текущего блока изображения является первым заданным размером.Condition I: The size of the current image block is the first specified size.

Условие J: Как luma_weight_l0_flag[refIdxL0], так и luma_weight_l1_flag[refIdxL1] равны 0, где luma_weight_l0_flag, равное 0, указывает то, что отсутствуют весовые коэффициенты для компонента яркости предсказания list0, и luma_weight_l1_flag, равное 0, указывает то, что отсутствуют весовые коэффициенты для компонента яркости предсказания list1.Condition J: Both luma_weight_l0_flag[refIdxL0] and luma_weight_l1_flag[refIdxL1] are equal to 0, where luma_weight_l0_flag equal to 0 indicates that there are no weights for the luma component of the list0 prediction, and luma_weight_l1_flag equal to 0 indicates that there are no weights for the brightness component of the prediction list1.

Например, если выполнены все условия A-J, определяется, что технология BDOF может использоваться для предсказания предсказанного значения выборки текущего блока изображения. Например, bdofFlag устанавливается на значение "истина". Следует отметить, что вышеуказанные условия являются просто примерами, и может быть дополнительно добавлено другое условие, или могут быть заменены одно или более из вышеуказанных условий, или могут быть удалены одно или более из вышеуказанных условий.For example, if all conditions A-J are satisfied, it is determined that BDOF technology can be used to predict the predicted sample value of the current image block. For example, bdofFlag is set to true. It should be noted that the above conditions are merely examples, and another condition may be further added, or one or more of the above conditions may be replaced, or one or more of the above conditions may be deleted.

В дополнительном решении синтаксический элемент включает в себя индекс (например, merge_idx[xCb][yCb]) информации движения целевого кандидата, информация движения целевого кандидата включает в себя целевые векторы движения-кандидаты, индексы опорных кадров и информацию указания направления предсказания (например, predFlagL0=1 и predFlagL1=1), информация указания направления предсказания используется для указания того, что применяется двунаправленное предсказание, целевые векторы движения-кандидаты включают в себя первый вектор движения, соответствующий первому списку (то есть list0), и второй вектор движения, соответствующий второму списку (то есть list1), и индексы опорных кадров включают в себя индекс (например, refIdxL0) первого опорного кадра, соответствующего первому списку, и индекс (например, refIdxL1) второго опорного кадра, соответствующего второму списку.In a further solution, the syntax element includes an index (for example, merge_idx[xCb][yCb]) of target candidate motion information, the target candidate motion information includes candidate target motion vectors, reference frame indices, and prediction direction indication information (for example, predFlagL0 =1 and predFlagL1=1), prediction direction indication information is used to indicate that bidirectional prediction is applied, the candidate target motion vectors include a first motion vector corresponding to the first list (i.e., list0) and a second motion vector corresponding to the second list (ie, list1), and the reference frame indices include an index (eg, refIdxL0) of a first reference frame corresponding to the first list, and an index (eg, refIdxL1) of a second reference frame corresponding to the second list.

В данном варианте осуществления настоящей заявки индекс опорного кадра используется для идентификации опорного изображения, соответствующего используемому вектору движения (например, первому вектору движения или второму вектору движения) в заданном списке опорных изображений (первый список list0 или второй список list1). Изображение может называться кадром, и опорное изображение может называться опорным кадром.In this embodiment of the present application, the reference frame index is used to identify a reference picture corresponding to a motion vector being used (eg, a first motion vector or a second motion vector) in a given reference picture list (first list list0 or second list list1). The image may be called a frame, and the reference image may be called a reference frame.

В поле кодирования видео режимы межкадрового предсказания включают в себя прямое предсказание, обратное предсказание и двунаправленное предсказание (включающее в себя прямое предсказание и обратное предсказание), и конкретный режим предсказания, используемый на стороне кодера, обычно указывается в информации указания направления предсказания. Например, информация указания направления предсказания может включать в себя синтаксические элементы predFlagL0 и predFlagL1. Когда predFlagL0=1 и predFlagL1=1, информация указания направления предсказания указывает то, что применяется двунаправленное предсказание. Когда predFlagL0=1 и predFlagL1=0, информация указания направления предсказания указывает то, что используется прямое предсказание. Когда predFlagL0=0 и predFlagL1=1, информация указания направления предсказания указывает то, что используется обратное предсказание. Вполне понятно, что "прямое направление" и "обратное направление", соответственно, соответствуют списку 0 опорных изображений (list0, а именно, предыдущему первому списку) и списку 1 опорных изображений (list1, а именно, предыдущему второму списку) текущего изображения.In the video coding field, inter-frame prediction modes include forward prediction, reverse prediction, and bidirectional prediction (including forward prediction and reverse prediction), and the specific prediction mode used at the encoder side is generally indicated in the prediction direction indication information. For example, the prediction direction indicating information may include syntax elements predFlagL0 and predFlagL1. When predFlagL0=1 and predFlagL1=1, the prediction direction indicating information indicates that bidirectional prediction is applied. When predFlagL0=1 and predFlagL1=0, the prediction direction indication information indicates that forward prediction is used. When predFlagL0=0 and predFlagL1=1, the prediction direction indication information indicates that reverse prediction is used. It is clear that the "forward direction" and the "reverse direction" respectively correspond to reference picture list 0 (list0, namely the previous first list) and reference picture list 1 (list1, namely the previous second list) of the current picture.

В дополнительном решении синтаксический элемент включает в себя первые индексы, вторые индексы, информацию указания направления предсказания и разность векторов движения (MVD), первые индексы (например, mvp_lX_flag[xCb][yCb]) используются для указания предиктора целевого вектора движения-кандидата, предикторы целевых векторов движения-кандидатов включают в себя первый предиктор вектора движения, соответствующий первому списку (например, list0), и второй предиктор вектора движения, соответствующий второму списку (например, list1), и разность векторов движения (MVD) включает в себя первую MVD, соответствующую первому списку, и/или вторую MVD, соответствующую второму списку (при необходимости, когда используется технология MMVD, может быть передана только одна MVD, и MVD, которая находится в другом направлении и которая должна использоваться на стороне декодера может быть получен на основе переданной MVD). Вторые индексы (которые также называются индексами опорных кадров) используются для указания опорных кадров текущего блока изображения, и опорные кадры включают в себя первый опорный кадр, соответствующий первому списку, и второй опорный кадр, соответствующий второму списку. Например, вторыми индексами являются refIdxL0 и refIdxL1, refIdxL0 представляет собой индекс первого опорного кадра, соответствующего первому списку, и refIdxL1 представляет собой индекс второго опорного кадра, соответствующего второму списку. Информация указания направления предсказания (например, predFlagL0=1 и predFlagL1=1) используется для указания того, что применяется двунаправленное предсказание.In a further solution, the syntax element includes first indices, second indices, prediction direction indicating information, and a motion vector difference (MVD), the first indices (e.g., mvp_lX_flag[xCb][yCb]) are used to indicate a candidate target motion vector predictor, predictors the candidate target motion vectors include a first motion vector predictor corresponding to the first list (e.g., list0), and a second motion vector predictor corresponding to the second list (e.g., list1), and the motion vector difference (MVD) includes the first MVD, corresponding to the first list, and/or a second MVD corresponding to the second list (if necessary, when MMVD technology is used, only one MVD can be transmitted, and the MVD that is in the other direction and which should be used on the decoder side can be obtained based on the transmitted MVD). The second indices (which are also called reference frame indices) are used to indicate reference frames of the current image block, and the reference frames include a first reference frame corresponding to the first list and a second reference frame corresponding to the second list. For example, the second indices are refIdxL0 and refIdxL1, refIdxL0 is the index of the first reference frame corresponding to the first list, and refIdxL1 is the index of the second reference frame corresponding to the second list. Prediction direction indication information (eg, predFlagL0=1 and predFlagL1=1) is used to indicate that bidirectional prediction is applied.

Первый вектор движения (например, Mv0_L0), соответствующий первому списку, получается на основе первого предиктора вектора движения (например, Mvp0_L0), соответствующего первому списку, и первой MVD (например, MVD0), соответствующей первому списку. Например, Mv0_L0=Mvp0_L0+MVD0.A first motion vector (eg, Mv0_L0) corresponding to the first list is obtained based on a first motion vector predictor (eg, Mvp0_L0) corresponding to the first list and a first MVD (eg, MVD0) corresponding to the first list. For example, Mv0_L0=Mvp0_L0+MVD0.

Второй вектор движения (например, Mv1_L1), соответствующий второму списку, получается на основе второго предиктора вектора движения (например, Mvp1_L1), соответствующего второму списку, и второй MVD (например, MVD1), соответствующей второму списку. Например, Mv1_L1=Mvp1_L1+MVD1.A second motion vector (eg, Mv1_L1) corresponding to the second list is obtained based on a second motion vector predictor (eg, Mvp1_L1) corresponding to the second list and a second MVD (eg, MVD1) corresponding to the second list. For example, Mv1_L1=Mvp1_L1+MVD1.

В поле кодирования видео режимы межкадрового предсказания включают в себя прямое предсказание, обратное предсказание и двунаправленное предсказание (включающее в себя прямое предсказание и обратное предсказание), и конкретный режим предсказания, используемый на стороне кодера, обычно указывается в информации указания направления предсказания. Например, информация указания направления предсказания может включать в себя синтаксические элементы predFlagL0 и predFlagL1. Когда predFlagL0=1 и predFlagL1=1, информация указания направления предсказания указывает то, что применяется двунаправленное предсказание. Когда predFlagL0=1 и predFlagL1=0, информация указания направления предсказания указывает то, что используется прямое предсказание. Когда predFlagL0=0 и predFlagL1=1, информация указания направления предсказания указывает то, что используется обратное предсказание. Вполне понятно, что "прямое направление" и "обратное направление", соответственно, соответствуют списку 0 опорных изображений (list0, а именно, предыдущему первому списку) и списку 1 опорных изображений (list1, а именно, предыдущему второму списку) текущего изображения.In the video coding field, inter-frame prediction modes include forward prediction, reverse prediction, and bidirectional prediction (including forward prediction and reverse prediction), and the specific prediction mode used at the encoder side is generally indicated in the prediction direction indication information. For example, the prediction direction indicating information may include syntax elements predFlagL0 and predFlagL1. When predFlagL0=1 and predFlagL1=1, the prediction direction indicating information indicates that bidirectional prediction is applied. When predFlagL0=1 and predFlagL1=0, the prediction direction indication information indicates that forward prediction is used. When predFlagL0=0 and predFlagL1=1, the prediction direction indication information indicates that reverse prediction is used. It is clear that the "forward direction" and the "reverse direction" respectively correspond to reference picture list 0 (list0, namely the previous first list) and reference picture list 1 (list1, namely the previous second list) of the current picture.

В дополнительном решении блок энтропийного декодирования специально выполнен с возможностью синтаксического анализа битового потока для получения остатка выборки и синтаксического элемента; и блок восстановления специально выполнен с возможностью определения значения выборки текущего блока изображения на основе остатка выборки и предсказанного значения выборки текущего блока изображения.In an additional solution, the entropy decoding unit is specifically configured to parse the bitstream to obtain the remainder of the sample and the syntax element; and the recovery unit is specifically configured to determine a sample value of the current image block based on the sample remainder and the predicted sample value of the current image block.

Согласно десятому аспекту вариант осуществления настоящей заявки обеспечивает устройство для межкадрового предсказания (например, блок межкадрового предсказания), и устройство для межкадрового предсказания включает в себя:According to a tenth aspect, an embodiment of the present application provides an inter-frame prediction device (for example, an inter-frame prediction unit), and the inter-frame prediction device includes:

блок определения, выполненный с возможностью определения того, удовлетворяет ли текущий блок изображения множеству заданных условий; иa determination unit configured to determine whether the current image block satisfies a plurality of predetermined conditions; And

блок обработки межкадрового предсказания, выполненный с возможностью: если выполнено множество заданных условий, выполнения двунаправленный оптический поток BDOF (Bi-directional optical flow, BIO или BDOF для краткости) обработки над текущим блоком изображения, чтобы получить предсказанный образец значение текущего блока изображения, где множество заданных условий включает в себя по меньшей мере условие относительно того, что размер текущего блока изображения удовлетворяет первому заданному размеру. Размер текущего блока изображения обычно представлен шириной и высотой (которые обозначены W×H), и ширина и высота измеряются выборкой (выборкой или пикселем). Например, если размер текущего блока изображения составляет 8×8, первое число 8 указывает то, что ширина текущего блока изображения составляет 8 выборок, и второе число 8 указывает то, что высота текущего блока изображения составляет 8 выборок. В качестве другого примера, если размер текущего блока изображения составляет 8×16, число 8 указывает то, что ширина текущего блока изображения составляет 8 выборок, и число 16 указывает то, что высота текущего блока изображения составляет 16 выборок.an inter-frame prediction processing unit configured to: if a plurality of specified conditions are met, perform bi-directional optical flow (BIO or BDOF for short) processing on the current image block to obtain a predicted sample value of the current image block, where the set the specified conditions includes at least a condition that the size of the current image block satisfies the first specified size. The size of the current image block is usually represented by the width and height (which are denoted by W×H), and the width and height are measured by a sample (sample or pixel). For example, if the size of the current image block is 8×8, the first number 8 indicates that the width of the current image block is 8 samples, and the second number 8 indicates that the height of the current image block is 8 samples. As another example, if the size of the current image block is 8×16, the number 8 indicates that the width of the current image block is 8 samples, and the number 16 indicates that the height of the current image block is 16 samples.

То, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или составляет): высоту H текущего блока изображения, большую или равную 8, и, когда произведение ширины W на высоту H текущего блока изображения равно 64, ширину W, не равную высоте H.That the size of the current image block satisfies the first specified size includes (or is): the height H of the current image block greater than or equal to 8, and, when the product of the width W and the height H of the current image block is 64, the width W is not equal to height H.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или составляет): высоту H текущего блока изображения, большую или равную 8, и ширину W текущего блока изображения, большую или равную 8.Alternatively, that the size of the current image block satisfies the first specified size includes (or is): a height H of the current image block greater than or equal to 8, and a width W of the current image block greater than or equal to 8.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или составляет): высоту H текущего блока изображения, большую или равную 8, ширину W текущего блока изображения, большую или равную 8, и произведение ширины W текущего блока изображения на высоту H текущего блока изображения, большее 64.Alternatively, the size of the current image block satisfying the first specified size includes (or is): the height H of the current image block greater than or equal to 8, the width W of the current image block greater than or equal to 8, and the product of the width W of the current image block by the height H of the current image block, greater than 64.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или составляет): высоту H текущего блока изображения, большую или равную 8, ширину W текущего блока изображения, большую или равную 8, и произведение ширины W текущего блока изображения на высоту H текущего блока изображения, большее 128.Alternatively, the size of the current image block satisfying the first specified size includes (or is): the height H of the current image block greater than or equal to 8, the width W of the current image block greater than or equal to 8, and the product of the width W of the current image block to the height H of the current image block, greater than 128.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя: высоту H текущего блока изображения, большую 8.Alternatively, the size of the current image block satisfies the first specified size includes: the height H of the current image block greater than 8.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя: высоту H текущего блока изображения, большую 8, и ширину W текущего блока изображения, большую или равную 8.Alternatively, the size of the current image block satisfies the first specified size includes: a height H of the current image block greater than 8, and a width W of the current image block greater than or equal to 8.

Следует отметить, что прежде, чем определить (или получить путем предсказания) предсказанное значение выборки текущего блока изображения на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, согласно технологии BDOF, может существовать другое исходное условие в дополнение к размеру текущего блока изображения. Другое исходное условие в данном документе не ограничивается. Для простоты понимания ниже используются примеры для описания.It should be noted that before determining (or obtaining by prediction) the predicted sample value of the current image block based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list, according to BDOF technology, there may be another precondition in addition to to the size of the current image block. The other reference condition herein is not limited. For ease of understanding, examples are used below for description.

Условие A: Существует высокоуровневый идентификатор синтаксиса sps_bdof_enabled_flag, указывающий, что технологию BDOF разрешено использовать для текущей видеопоследовательности.Condition A: There is a high-level syntax identifier sps_bdof_enabled_flag indicating that BDOF technology is enabled for the current video sequence.

Условие B: Информация predFlagL0 указания направления предсказания, соответствующая первому списку (List1), равна 1, и информация указания направления предсказания predFlagL1, соответствующая второму списку (list0), равна 1.Condition B: The prediction direction indication information predFlagL0 corresponding to the first list (List1) is 1, and the prediction direction indication information predFlagL1 corresponding to the second list (list0) is 1.

Условие C: Значение POC_L0 счетчика очередности изображения опорного кадра, соответствующее первому списку (list0), значение POC_L1 счетчика очередности изображения опорного кадра, соответствующее второму списку (list1), и значения POC_Cur счетчика очередности изображения, на котором расположен текущий блок изображения, удовлетворяют следующему соотношению: (POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0. Другими словами, изображение, включающее в себя текущий блок изображения, находится между двумя опорными изображениями.Condition C: The POC_L0 value of the reference frame image queue counter corresponding to the first list (list0), the POC_L1 value of the reference frame image queue counter corresponding to the second list (list1), and the POC_Cur value of the image queue counter on which the current image block is located satisfy the following relationship : (POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0. In other words, an image including the current image block is located between two reference images.

Условие D: MotionModelIdc[xCb][yCb] равно 0. MotionModelIdc представляет собой индекс модели движения для компенсации движения. MotionModelIdc[xCb][yCb], равное 0, указывает то, что моделью движения для компенсации движения текущего блока является поступательное движение (Translational motion).Condition D: MotionModelIdc[xCb][yCb] is 0. MotionModelIdc is the motion model index for motion compensation. MotionModelIdc[xCb][yCb] equal to 0 indicates that the motion model to compensate for the current block's motion is Translational motion.

Условие E: merge_subblock_flag[x0][y0] равно 0, где merge_subblock_flag[x0][y0], равное 0, указывает то, что режим слияния подблоков не применяется для текущего блока изображения.Condition E: merge_subblock_flag[x0][y0] is equal to 0, where merge_subblock_flag[x0][y0] equal to 0 indicates that the subblock merging mode is not applied to the current image block.

Условие F: sym_mvd_flag[x0][y0] равно 0. sym_mvd_flag[x0][y0], равное 0, указывает то, что синтаксическая структура mvd_coding(x0, y0, refList, cpIdx) присутствует для текущего блока.Condition F: sym_mvd_flag[x0][y0] is equal to 0. sym_mvd_flag[x0][y0] equal to 0 indicates that the syntax structure mvd_coding(x0, y0, refList, cpIdx) is present for the current block.

Условие G: bcwIdx[xCb][yCb] равно 0. bcwIdx указывает весовой индекс двунаправленного предсказания для текущего блока изображения.Condition G: bcwIdx[xCb][yCb] is equal to 0. bcwIdx indicates the bidirectional prediction weight index for the current image block.

Условие H: cIdx равно 0. cIdx представляет собой индекс цветового компонента текущего блока изображения.Condition H: cIdx is 0. cIdx is the index of the color component of the current image block.

Условие I: Размер текущего блока изображения является первым заданным размером.Condition I: The size of the current image block is the first specified size.

Условие J: Как luma_weight_l0_flag[refIdxL0], так и luma_weight_l1_flag[refIdxL1] равны 0, где luma_weight_l0_flag, равное 0, указывает то, что отсутствуют весовые коэффициенты для компонента яркости предсказания list0, и luma_weight_l1_flag, равное 0, указывает то, что отсутствуют весовые коэффициенты для компонента яркости предсказания list1.Condition J: Both luma_weight_l0_flag[refIdxL0] and luma_weight_l1_flag[refIdxL1] are equal to 0, where luma_weight_l0_flag equal to 0 indicates that there are no weights for the luma component of the list0 prediction, and luma_weight_l1_flag equal to 0 indicates that there are no weights for the brightness component of the prediction list1.

Например, если выполнены все условия A-J, определяется, что технология BDOF может использоваться для предсказания предсказанного значения выборки текущего блока изображения. Например, bdofFlag устанавливается на значение "истина". Следует отметить, что вышеуказанные условия являются просто примерами, и может быть дополнительно добавлено другое условие, или могут быть заменены одно или более из вышеуказанных условий, или могут быть удалены одно или более из вышеуказанных условий.For example, if all conditions A-J are satisfied, it is determined that BDOF technology can be used to predict the predicted sample value of the current image block. For example, bdofFlag is set to true. It should be noted that the above conditions are merely examples, and another condition may be further added, or one or more of the above conditions may be replaced, or one or more of the above conditions may be deleted.

Следует понимать, что текущий блок изображения (который также упоминается как текущий блок) в данном документе может рассматриваться как блок изображения, подлежащий обработке. Например, в процессе кодирования текущий блок изображения является блоком изображения, подлежащим кодированию (блоком кодирования). Конечно, текущий блок изображения в данном документе альтернативно может рассматриваться как блок изображения, подлежащий обработке. Например, в процессе декодирования текущий блок изображения представляет собой блок изображения, подлежащий декодированию (блок декодирования).It should be understood that the current image block (which is also referred to as the current block) may be considered herein as an image block to be processed. For example, in the encoding process, the current image block is an image block to be encoded (encoding block). Of course, the current image block herein may alternatively be considered as an image block to be processed. For example, in the decoding process, the current image block is an image block to be decoded (decoding block).

В дополнительном решении блок обработки межкадрового предсказания дополнительно выполнен с возможностью: когда не выполнено по меньшей мере одно из множества заданных условий, пропуска выполнения обработки двунаправленного оптического потока BDOF (Bi-directional optical flow, BIO или BDOF для краткости) текущего блока изображения.In a further solution, the interframe prediction processing unit is further configured to: when at least one of a plurality of predetermined conditions is not met, skip performing Bi-directional optical flow (BIO or BDOF for short) processing of the current image block.

Вполне понятно, что другой случай может быть дополнительно получен со ссылкой на вышеизложенные случаи, и другой случай также подпадает под объем защиты настоящей заявки.It is clear that another case may be further obtained with reference to the above cases, and the other case also falls within the scope of protection of the present application.

Следует понимать, что способ в данном варианте осуществления настоящей заявки может выполняться видеокодером или электронным устройством, имеющим функцию кодирования видео, или может выполняться видеодекодером или электронным устройством, имеющим функцию декодирования видео. Например, способ может быть специально реализован блоком межкадрового предсказания, находящимся в этих устройствах.It should be understood that the method in this embodiment of the present application may be performed by a video encoder or an electronic device having a video encoding function, or may be performed by a video decoder or an electronic device having a video decoding function. For example, the method may be specifically implemented by an interframe prediction unit located in these devices.

Более конкретно, условие для включения или использования технологии BDOF в этом решении отличается от условия для включения или использования технологии BDOF в предшествующем уровне техники, и, в частности, отличаются требования к размеру текущего блока изображения. Технология BDOF используется для текущего блока изображения, имеющего первый заданный размер, поэтому можно получить предсказанное значение выборки, более близкое к исходному значению выборки, и можно надлежащим образом управлять сложностью кодирования. Это до некоторой степени уравновешивает сложность кодирования/декодирования и точность предсказания, тем самым повышая эффективность кодирования.More specifically, the condition for enabling or using BDOF technology in this solution is different from the condition for enabling or using BDOF technology in the prior art, and in particular, the size requirements of the current image block are different. BDOF technology is used for the current image block having the first specified size, so that a predicted sample value closer to the original sample value can be obtained, and the encoding complexity can be properly controlled. This balances encoding/decoding complexity and prediction accuracy to some extent, thereby improving encoding efficiency.

Согласно одиннадцатому аспекту вариант осуществления настоящей заявки обеспечивает устройство для декодирования видеоданных, и устройство включает в себя:According to an eleventh aspect, an embodiment of the present application provides an apparatus for decoding video data, and the apparatus includes:

память, выполненную с возможностью хранения видеоданных в виде битового потока; иa memory configured to store video data in the form of a bit stream; And

видеодекодер, выполненный с возможностью: декодирования битового потока для получения синтаксического элемента, где этот синтаксический элемент по меньшей мере используется для указания того, что применяется двунаправленное предсказание; и если выполнено множество заданных условий, выполнения обработки на основе двунаправленного оптического потока (BDOF) над текущим блоком изображения для получения предсказанного значения выборки текущего блока изображения, где множество заданных условий включает в себя по меньшей мере условие относительно того, что размер текущего блока изображения удовлетворяет первому заданному размеру.a video decoder configured to: decode the bit stream to obtain a syntax element, where the syntax element is at least used to indicate that bidirectional prediction is applied; and if a plurality of predetermined conditions are met, performing bidirectional optical flow (BDOF) processing on the current image block to obtain a predicted sample value of the current image block, where the plurality of predetermined conditions includes at least a condition that the size of the current image block satisfies the first given size.

То, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя: высоту H текущего блока изображения, большую или равную 8, и, когда произведение ширины W на высоту H текущего блока изображения равно 64, ширину W, не равную высоте H.That the size of the current image block satisfies the first specified size includes: the height H of the current image block greater than or equal to 8, and, when the product of the width W and the height H of the current image block is 64, the width W not equal to the height H.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя: высоту H текущего блока изображения, большую или равную 8, и ширину W текущего блока изображения, большую или равную 8.Alternatively, the size of the current image block satisfies the first specified size includes: a height H of the current image block greater than or equal to 8, and a width W of the current image block greater than or equal to 8.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя: высоту H текущего блока изображения, большую или равную 8, ширину W текущего блока изображения, большую или равную 8, и произведение ширины W текущего блока изображения на высоту H текущего блока изображения, большее 64.Alternatively, the size of the current image block satisfying the first specified size includes: a height H of the current image block greater than or equal to 8, a width W of the current image block greater than or equal to 8, and the product of the width W of the current image block times height H of the current image block greater than 64.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя: высоту H текущего блока изображения, большую или равную 8, ширину W текущего блока изображения, большую или равную 8, и произведение ширины W текущего блока изображения на высоту H текущего блока изображения, большее 128.Alternatively, the size of the current image block satisfying the first specified size includes: a height H of the current image block greater than or equal to 8, a width W of the current image block greater than or equal to 8, and the product of the width W of the current image block times height H of the current image block greater than 128.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя: высоту H текущего блока изображения, большую 8.Alternatively, the size of the current image block satisfies the first specified size includes: the height H of the current image block greater than 8.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя: высоту H текущего блока изображения, большую 8, и ширину W текущего блока изображения, большую или равную 8.Alternatively, the size of the current image block satisfies the first specified size includes: a height H of the current image block greater than 8, and a width W of the current image block greater than or equal to 8.

Согласно двенадцатому аспекту вариант осуществления настоящей заявки обеспечивает устройство для кодирования видеоданных, и устройство включает в себя:According to a twelfth aspect, an embodiment of the present application provides an apparatus for encoding video data, and the apparatus includes:

память, выполненную с возможностью хранения видеоданных, где видеоданные включают в себя один или более блоков изображения; иa memory configured to store video data, where the video data includes one or more image blocks; And

видеокодер, выполненный с возможностью: если выполнено множество заданных условий, выполнения обработки на основе двунаправленного оптического потока (BDOF) над текущим блоком изображения для получения предсказанного значения выборки текущего блока изображения, где множество заданных условий включает в себя: по меньшей мере условие относительно того, что размер текущего блока изображения удовлетворяет первому заданному размеру.a video encoder configured to: if a plurality of predetermined conditions are met, perform bidirectional optical flow (BDOF) processing on a current image block to obtain a predicted sample value of the current image block, where the plurality of predetermined conditions includes: at least a condition regarding whether that the size of the current image block satisfies the first specified size.

То, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя: высоту H текущего блока изображения, большую или равную 8, и, когда произведение ширины W на высоту H текущего блока изображения равно 64, ширину W, не равную высоте H.That the size of the current image block satisfies the first specified size includes: the height H of the current image block greater than or equal to 8, and, when the product of the width W and the height H of the current image block is 64, the width W not equal to the height H.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя: высоту H текущего блока изображения, большую или равную 8, и ширину W текущего блока изображения, большую или равную 8.Alternatively, the size of the current image block satisfies the first specified size includes: a height H of the current image block greater than or equal to 8, and a width W of the current image block greater than or equal to 8.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя: высоту H текущего блока изображения, большую или равную 8, ширину W текущего блока изображения, большую или равную 8, и произведение ширины W текущего блока изображения на высоту H текущего блока изображения, большее 64.Alternatively, the size of the current image block satisfying the first specified size includes: a height H of the current image block greater than or equal to 8, a width W of the current image block greater than or equal to 8, and the product of the width W of the current image block times height H of the current image block greater than 64.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя: высоту H текущего блока изображения, большую или равную 8, ширину W текущего блока изображения, большую или равную 8, и произведение ширины W текущего блока изображения на высоту H текущего блока изображения, большее 128.Alternatively, the size of the current image block satisfying the first specified size includes: a height H of the current image block greater than or equal to 8, a width W of the current image block greater than or equal to 8, and the product of the width W of the current image block times height H of the current image block greater than 128.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя: высоту H текущего блока изображения, большую 8.Alternatively, the size of the current image block satisfies the first specified size includes: the height H of the current image block greater than 8.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя: высоту H текущего блока изображения, большую 8, и ширину W текущего блока изображения, большую или равную 8.Alternatively, the size of the current image block satisfies the first specified size includes: a height H of the current image block greater than 8, and a width W of the current image block greater than or equal to 8.

Видеокодер дополнительно выполнен с возможностью кодирования синтаксического элемента в подлежащем передаче битовом потоке, где синтаксический элемент используется по меньшей мере для указания того, что применяется двунаправленное предсказание.The video encoder is further configured to encode a syntax element in the bitstream to be transmitted, where the syntax element is used to at least indicate that bidirectional prediction is applied.

Согласно тринадцатому аспекту вариант осуществления настоящей заявки обеспечивает устройство кодирования, включающее в себя энергонезависимую память и процессор, которые электрически соединены друг с другом. Процессор вызывает программный код, хранящийся в памяти, для выполнения некоторых или всех этапов любого способа в первом аспекте.According to a thirteenth aspect, an embodiment of the present application provides an encoding device including a non-volatile memory and a processor that are electrically connected to each other. The processor calls program code stored in memory to perform some or all of the steps of any method in the first aspect.

Согласно четырнадцатому аспекту вариант осуществления настоящей заявки обеспечивает устройство декодирования, включающее в себя энергонезависимую память и процессор, которые электрически соединены друг с другом. Процессор вызывает программный код, хранящийся в памяти, для выполнения некоторых или всех этапов любого способа в третьем аспекте.According to a fourteenth aspect, an embodiment of the present application provides a decoding apparatus including a non-volatile memory and a processor that are electrically connected to each other. The processor calls program code stored in memory to perform some or all of the steps of any method in the third aspect.

Согласно пятнадцатому аспекту вариант осуществления настоящей заявки обеспечивает машиночитаемый носитель информации. Машиночитаемый носитель информации хранит программный код, и программный код включает в себя инструкцию, используемую для выполнения некоторых или всех этапов любого способа в первом аспекте.According to a fifteenth aspect, an embodiment of the present application provides a computer-readable storage medium. The computer-readable storage medium stores program code, and the program code includes instructions used to perform some or all of the steps of any method in the first aspect.

Согласно шестнадцатому аспекту вариант осуществления настоящей заявки обеспечивает компьютерный программный продукт. Когда компьютерный программный продукт запускается на компьютере, компьютер может выполнять некоторые или все этапы любого способа в первом аспекте.According to a sixteenth aspect, an embodiment of the present application provides a computer program product. When the computer program product is run on a computer, the computer may perform some or all of the steps of any method in the first aspect.

Следует понимать, что технические решения во втором - шестнадцатом аспектах настоящей заявки согласуются с техническими решениями в первом аспекте настоящей заявки, и положительные эффекты, достигаемые аспектами и соответствующими возможными реализациями, являются аналогичными. Подробности повторно не описываются.It should be understood that the technical solutions in the second through sixteenth aspects of this application are consistent with the technical solutions in the first aspect of this application, and the beneficial effects achieved by the aspects and the corresponding possible implementations are similar. The details are not re-described.

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

Для более четкого описания технических решений вариантов осуществления настоящей заявки или предшествующего уровня техники ниже приведено описание сопроводительных чертежей, которые используются для описания вариантов осуществления настоящей заявки или предшествующего уровня техники.To more clearly describe the technical solutions of the embodiments of the present application or the prior art, the following is a description of the accompanying drawings, which are used to describe the embodiments of the present application or the prior art.

фиг. 1A - блок-схема примера системы 10 кодирования и декодирования видео для реализации варианта осуществления настоящей заявки;fig. 1A is a block diagram of an example video encoding and decoding system 10 for implementing an embodiment of the present application;

фиг. 1B - блок-схема примера системы 40 кодирования видео для реализации варианта осуществления настоящей заявки;fig. 1B is a block diagram of an example video encoding system 40 for implementing an embodiment of the present application;

фиг. 2 - блок-схема примерной структуры кодера 20 для реализации варианта осуществления настоящей заявки;fig. 2 is a block diagram of an exemplary structure of an encoder 20 for implementing an embodiment of the present application;

фиг. 3 - блок-схема примерной структуры декодера 30 для реализации варианта осуществления настоящей заявки;fig. 3 is a block diagram of an exemplary structure of a decoder 30 for implementing an embodiment of the present application;

фиг. 4 - блок-схема примера устройства 400 для кодирования видео для реализации варианта осуществления настоящей заявки;fig. 4 is a block diagram of an example video encoding apparatus 400 for implementing an embodiment of the present application;

фиг. 5 - блок-схема другого примера устройства кодирования или устройства декодирования для реализации варианта осуществления настоящей заявки;fig. 5 is a block diagram of another example of an encoding device or a decoding device for implementing an embodiment of the present application;

фиг. 5A - схематичное представление информации движения текущего блока изображения и опорного блока согласно варианту осуществления настоящей заявки;fig. 5A is a schematic representation of motion information of a current image block and a reference block according to an embodiment of the present application;

фиг. 5B - схематичное представление сценария межкадрового предсказания согласно варианту осуществления настоящей заявки;fig. 5B is a schematic diagram of an inter-frame prediction scenario according to an embodiment of the present application;

фиг. 5C - схематичное представление сценария межкадровых соседних блоков согласно варианту осуществления настоящей заявки;fig. 5C is a schematic diagram of an interframe adjacent block scenario according to an embodiment of the present application;

фиг. 6A - схематичная блок-схема способа кодирования согласно варианту осуществления настоящей заявки;fig. 6A is a schematic flowchart of an encoding method according to an embodiment of the present application;

фиг. 6B - схематичное представление прямого опорного изображения и обратного опорного изображения для реализации варианта осуществления настоящей заявки;fig. 6B is a schematic diagram of a forward reference image and a reverse reference image for implementing an embodiment of the present application;

фиг. 6С - схематичное представление процесса уточнения вектора движения для реализации варианта осуществления настоящей заявки;fig. 6C is a schematic diagram of a motion vector refinement process for implementing an embodiment of the present application;

фиг. 6D - схематичное представление сценария способа расширения на основе заполнения согласно варианту осуществления настоящей заявки;fig. 6D is a schematic diagram of a scenario of a padding-based expansion method according to an embodiment of the present application;

фиг. 7 - схематичная блок-схема способа декодирования согласно варианту осуществления настоящей заявки; иfig. 7 is a schematic flowchart of a decoding method according to an embodiment of the present application; And

фиг. 8 - схематичная структурная схема устройства межкадрового предсказания согласно варианту осуществления настоящей заявки.fig. 8 is a schematic block diagram of an interframe prediction apparatus according to an embodiment of the present application.

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

Ниже описаны варианты осуществления настоящей заявки со ссылкой на сопроводительные чертежи в вариантах осуществления настоящей заявки. В последующем описании сделана ссылка на сопроводительные чертежи, которые составляют часть настоящего раскрытия и показывают в качестве иллюстрации конкретные аспекты вариантов осуществления настоящей заявки или конкретные аспекты, в которых могут использоваться варианты осуществления настоящей заявки. Следует понимать, что варианты осуществления настоящей заявки могут использоваться в других аспектах и могут включать в себя структурные или логические изменения, не показанные на сопроводительных чертежах. Таким образом, последующее подробное описание не следует истолковывать в ограничивающем смысле, и объем настоящей заявки ограничен прилагаемой формулой изобретения. Например, следует понимать, что раскрытое содержание в сочетании с описанным способом также может быть верным для соответствующего устройства или системы, выполненной с возможностью выполнения способа, и наоборот. Например, при описании одного или нескольких конкретных этапов способа соответствующее устройство может включать в себя один или более блоков, таких как функциональные блоки, для выполнения описанных одного или нескольких этапов способа (например, один блок, выполняющий один или более этапов; или множество блоков, каждый из которых выполняет один или более из множества этапов), даже если такой один или более блоков явно не описаны или не проиллюстрированы на сопроводительных чертежах. В дополнение к этому, например, если конкретное устройство описывается на основе одного или нескольких блоков, таких как функциональные блоки, соответствующий способ может включать в себя один этап, используемый для выполнения функций одного или нескольких блоков (например, один этап, используемый для выполнения функций одного или нескольких блоков, или множество этапов, каждый из которых используется для выполнения функций одного или нескольких из множества блоков), даже если такой один или более этапов явно не описаны или не проиллюстрированы на сопроводительных чертежах. Кроме того, следует понимать, что особенности различных примерных вариантов осуществления и/или аспектов, описанных в настоящем описании, могут быть объединены друг с другом, если особым образом не указано иное.Embodiments of the present application will be described below with reference to the accompanying drawings in the embodiments of the present application. In the following description, reference is made to the accompanying drawings, which form a part of the present disclosure and show by way of illustration specific aspects of embodiments of the present application or specific aspects in which embodiments of the present application may be used. It should be understood that embodiments of the present application may be used in other aspects and may include structural or logical changes not shown in the accompanying drawings. Accordingly, the following detailed description is not to be construed in a limiting sense, and the scope of the present application is limited by the appended claims. For example, it should be understood that the disclosed content in combination with the described method may also be true for a corresponding device or system configured to perform the method, and vice versa. For example, when one or more specific method steps are described, the corresponding apparatus may include one or more blocks, such as functional blocks, for performing the one or more method steps described (e.g., one block performing one or more steps; or a plurality of blocks, each of which performs one or more of a plurality of steps), even if such one or more blocks are not expressly described or illustrated in the accompanying drawings. In addition, for example, if a particular device is described in terms of one or more blocks, such as function blocks, the corresponding method may include one step used to perform the functions of one or more blocks (for example, one step used to perform the functions one or more blocks, or a plurality of steps, each of which is used to perform the functions of one or more of the plurality of blocks), even if such one or more steps are not expressly described or illustrated in the accompanying drawings. Additionally, it should be understood that features of various exemplary embodiments and/or aspects described herein may be combined with each other unless specifically stated otherwise.

Технические решения, представленные в вариантах осуществления настоящей заявки, могут не только применяться к существующим стандартам кодирования видео (например, таким стандартам, как H.264 и HEVC), но также могут применяться к будущим стандартам кодирования видео (например, стандарт H.266). Термины, используемые в реализациях настоящей заявки, предназначены только для объяснения конкретных вариантов реализации настоящей заявки и не предназначены для ограничения настоящей заявки. Ниже сначала кратко описаны концепции, которые относятся к вариантам осуществления настоящей заявки.The technical solutions presented in the embodiments of this application can not only be applied to existing video encoding standards (for example, standards such as H.264 and HEVC), but also can be applied to future video encoding standards (for example, the H.266 standard) . The terms used in the implementations of this application are intended only to explain specific embodiments of this application and are not intended to limit this application. Below, concepts that relate to embodiments of the present application are first briefly described.

Кодирование видео обычно относится к обработке последовательности изображений, которые образуют видео или видеопоследовательность. В области кодирования видео термины "картинка (picture)", "кадр (frame)" и "изображение (image)" могут использоваться как синонимы. Кодирование видео, используемое в данной спецификации, включает в себя кодирование видео и декодирование видео. Кодирование видео выполняется на стороне-адресате и обычно включает в себя обработку (например, путем сжатия) исходного видеоизображения для того, чтобы уменьшить количество данных для представления видеоизображения с целью более эффективного хранения и/или передачи. Декодирование видео выполняется на стороне-адресате и обычно включает в себя обратную обработку по отношению к кодеру для восстановления видеоизображения. "Кодирование" видеоизображения в вариантах осуществления следует понимать как "кодирование" или "декодирование" видеопоследовательности. Комбинация части кодирования и части декодирования также называется кодированием (кодированием и декодированием).Video encoding generally refers to the processing of the sequence of images that form a video or video sequence. In the field of video encoding, the terms "picture", "frame" and "image" can be used interchangeably. Video encoding used in this specification includes video encoding and video decoding. Video encoding is performed at the destination side and typically involves processing (eg, by compressing) the original video image in order to reduce the amount of data required to represent the video image for more efficient storage and/or transmission. Video decoding is performed on the destination side and typically involves processing back to the encoder to reconstruct the video image. "Encoding" of a video image in embodiments should be understood as "encoding" or "decoding" a video sequence. The combination of an encoding part and a decoding part is also called encoding (encoding and decoding).

Видеопоследовательность включает в себя ряд изображений (picture), изображение дополнительно разбивается на слайсы (slice), и слайс дополнительно разбивается на блоки (block). Кодирование видео выполняется поблочно. В некоторых новых стандартах кодирования видео концепция "блок" дополнительно расширена. Например, в стандарт H.264 введен макроблок (macroblock, MB). Макроблок дополнительно может быть разделен на множество блоков предсказания, которые могут использоваться для кодирования с предсказанием (разделением). В стандарте высокоэффективного кодирования видео (high efficiency video coding, HEVC) используются основные концепции, такие как "единица кодирования" (coding unit, CU), "единица предсказания" (prediction unit, PU) и "единица преобразования" (transform unit, TU). Множество блочных единиц получается посредством разделения функций и описывается с использованием новой древовидной структуры. Например, CU может быть разделена на меньшие CU на основе квадродерева, и меньшая CU может быть дополнительно разделена, чтобы выработать структуру квадродерева. CU представляет собой базовую единицу для разделения и кодирования кодированного изображения. PU и TU также имеют аналогичные древовидные структуры. PU может соответствовать блоку предсказания и является базовой единицей для предсказанного кодирования. CU дополнительно разбивается на множество PU в режиме разделения. TU может соответствовать блоку преобразования и является базовой единицей, используемой для преобразования остатка предсказания. Однако по существу все CU, PU и TU концептуально являются блоками (или блоками изображения).A video sequence includes a number of images (pictures), the image is further divided into slices (slice), and the slice is further divided into blocks (block). Video encoding is done block by block. Some new video coding standards have further expanded the "block" concept. For example, the H.264 standard introduced a macroblock (MB). The macroblock may further be divided into a plurality of prediction blocks, which may be used for predictive coding (division). The high efficiency video coding (HEVC) standard uses core concepts such as coding unit (CU), prediction unit (PU), and transform unit (TU). ). A set of block units is obtained by separating functions and is described using a new tree structure. For example, a CU may be partitioned into smaller CUs based on a quadtree, and the smaller CU may be further partitioned to generate a quadtree structure. CU is the basic unit for dividing and encoding a coded image. PU and TU also have similar tree structures. The PU may correspond to a prediction unit and is the basic unit for prediction encoding. The CU is further divided into multiple PUs in partitioning mode. The TU may correspond to a transform block and is the basic unit used to transform the prediction remainder. However, essentially all CUs, PUs and TUs are conceptually blocks (or image units).

Например, в HEVC CTU разбивается на множество CU с использованием структуры квадродерева, представленной как дерево кодирования. Решение о кодировании зоны изображения с помощью межкадрового (временного) или внутрикадрового (пространственного) предсказания принимается на уровне CU. Каждая CU может быть дополнительно разделена на одну, две или четыре PU на основе типа разделения PU. В одной PU применяется один и тот же процесс предсказания, и соответствующая информация передается в декодер на основе PU. После получения остаточного блока путем применения процесса предсказания на основе типа разделения PU, CU может быть разделена на блоки преобразования (transform unit, TU) на основе другой структуры квадродерева, аналогичной дереву кодирования, используемому для CU. В последних разработках технологий сжатия видео для разделения блока кодирования используется кадр разделения "квадродерево плюс двоичное дерево" (quadtree plus binary tree, QTBT). В блочной структуре QTBT CU может иметь форму квадрата или прямоугольника.For example, in HEVC, a CTU is partitioned into multiple CUs using a quadtree structure, represented as an encoding tree. The decision to encode an image area using inter-frame (temporal) or intra-frame (spatial) prediction is made at the CU level. Each CU can be further divided into one, two, or four PUs based on the PU partitioning type. The same prediction process is applied in one PU, and the corresponding information is passed to the PU-based decoder. After obtaining the residual block by applying a prediction process based on the partition type of the PU, the CU can be divided into transform units (TUs) based on a different quadtree structure similar to the encoding tree used for the CU. Recent developments in video compression technologies use a quadtree plus binary tree (QTBT) partition frame to partition the encoding block. In a block structure, a QTBT CU can be shaped like a square or a rectangle.

В данном описании для простоты описания и понимания блок изображения, который должен быть обработан в текущем изображении, может упоминаться как текущий блок или блок изображения, подлежащий обработке. Например, при кодировании блок изображения представляет собой блок, который кодируется, и при декодировании блок изображения представляет собой блок, который декодируется. Блок декодированных изображений в опорном изображении, используемый для предсказания текущего блока, называется опорным блоком. Более конкретно, опорный блок представляет собой блок, который предоставляет опорный сигнал для текущего блока, и опорный сигнал представляет собой значение выборки в блоке изображения. Блок, который предоставляет сигнал предсказания для текущего блока в опорном изображении, может называться блоком предсказания. Сигнал предсказания представляет значение пикселя, значение выборки или дискретизированный сигнал в блоке предсказания. Например, после прохождения множества опорных блоков находится оптимальный опорный блок. Оптимальный опорный блок обеспечивает предсказание для текущего блока, и этот блок называется блоком предсказания.In this description, for ease of description and understanding, an image block to be processed in the current image may be referred to as a current block or an image block to be processed. For example, in encoding, an image block is a block that is encoded, and in decoding, an image block is a block that is decoded. The block of decoded pictures in the reference picture used to predict the current block is called a reference block. More specifically, a reference block is a block that provides a reference signal for a current block, and the reference signal is a sample value in an image block. A block that provides a prediction signal for a current block in a reference picture may be called a prediction block. The prediction signal represents a pixel value, a sample value, or a sampled signal in a prediction block. For example, after passing through many support blocks, the optimal support block is found. The optimal reference block provides a prediction for the current block, and this block is called a prediction block.

В случае кодирования видео без потерь могут быть восстановлены исходные видеоизображения. Более конкретно, восстановленные видеоизображения имеют то же качество, что и исходные видеоизображения (при условии, что во время хранения или передачи не происходит потерь данных при передаче или других потерь данных). В случае кодирования видео с потерями выполняется дополнительное сжатие, например, путем квантования, чтобы уменьшить количество данных, требуемых для представления видеоизображений, и видеоизображения не могут быть полностью восстановлены на стороне декодера. Более конкретно, качество восстановленных видеоизображений ниже или хуже, чем у исходных видеоизображений.In case of lossless video encoding, the original video images can be restored. More specifically, the restored video images have the same quality as the original video images (provided that no transmission loss or other data loss occurs during storage or transmission). In the case of lossy video encoding, additional compression is performed, such as by quantization, to reduce the amount of data required to represent video images, and the video images cannot be fully reconstructed at the decoder end. More specifically, the quality of the reconstructed video images is lower or worse than that of the original video images.

Некоторые стандарты H.261 кодирования видео предназначены для "гибридного кодирования видео с потерями" (более конкретно, пространственное и временное предсказание в области выборки объединяется с кодированием с двумерным преобразованием для применения квантования в области преобразования). Каждое изображение видеопоследовательности обычно разбивается на набор неперекрывающихся блоков, и кодирование обычно выполняется на уровне блоков. Более конкретно, на стороне кодера видео обычно обрабатывается, то есть кодируется на уровне блока (видеоблока). Например, блок предсказания вырабатывается посредством пространственного (внутрикадрового) предсказания и временного (межкадрового) предсказания, блок предсказания вычитается из текущего блока (блока, который обрабатывается или должен быть обработан) для получения остаточного блока, и блок остатка преобразуется в области преобразования и квантуется для уменьшения количества данных, которые должны быть переданы (сжаты). На стороне декодера часть обратной обработки по отношению к кодеру применяется к кодированному блоку или сжатому блоку, чтобы восстановить текущий блок для представления. Кроме того, кодер дублирует цикл обработки декодера, так что кодер и декодер вырабатывают одинаковое предсказание (например, внутрикадровое предсказание и межкадровое предсказание) и/или восстановление для обработки, то есть для кодирования, последующих блоков.Some H.261 video coding standards are designed for "hybrid lossy video coding" (more specifically, sample-domain spatial and temporal prediction is combined with 2D transform coding to apply transform-domain quantization). Each image of a video sequence is usually divided into a set of non-overlapping blocks, and coding is usually performed at the block level. More specifically, on the encoder side, video is usually processed, that is, encoded at the block (video block) level. For example, a prediction block is generated by spatial (intra-frame) prediction and temporal (inter-frame) prediction, the prediction block is subtracted from the current block (the block that is being processed or to be processed) to obtain a residual block, and the residual block is transformed into transform domains and quantized to reduce the amount of data to be transferred (compressed). On the decoder side, some of the reverse processing to the encoder is applied to the encoded block or compressed block to recover the current block for presentation. In addition, the encoder duplicates the decoder processing loop so that the encoder and decoder produce the same prediction (eg, intra-frame prediction and inter-frame prediction) and/or reconstruction for processing, ie, encoding, subsequent blocks.

Ниже описывается архитектура системы, к которой применимы варианты осуществления настоящей заявки. На фиг. 1A показана схематичная блок-схема примера системы 10 кодирования и декодирования видео, к которой применимы варианты осуществления настоящей заявки. Как показано на фиг. 1A, система 10 кодирования и декодирования видео может включать в себя устройство-источник 12 и устройство-адресат 14. Устройство-источник 12 вырабатывает кодированные видеоданные, и поэтому устройство-источник 12 может называться устройством для кодирования видео. Устройство-адресат 14 может декодировать кодированные видеоданные, выработанные устройством-источником 12, и поэтому устройство-адресат 14 может называться устройством для декодирования видео. В различных решениях реализации устройство-источник 12, устройство-адресат 14 или как устройство-источник 12, так и устройство-адресат 14 могут включать в себя один или более процессоров и память, подключенную к одному или нескольким процессорам. Память может включать в себя, но без ограничений, RAM, ROM, EEPROM, флэш-память или любой другой носитель информации, который может использоваться для хранения желаемого программного кода в виде инструкции или структуры данных, доступной для компьютера, как описано в данной спецификации. Устройство-источник 12 и устройство-адресат 14 могут включать в себя различные устройства, включая настольный компьютер, мобильное вычислительное устройство, портативный компьютер (например, портативный компьютер), планшетный компьютер, телевизионную приставку, телефонную гарнитуру, например, так называемый "умный" телефон, телевизор, камеру, устройство отображения, цифровой медиаплеер, игровую приставку, бортовой компьютер, устройство беспроводной связи и т.п.The following describes the system architecture to which embodiments of the present application are applicable. In fig. 1A shows a schematic block diagram of an example video encoding and decoding system 10 to which embodiments of the present application are applicable. As shown in FIG. 1A, the video encoding and decoding system 10 may include a source device 12 and a destination device 14. The source device 12 produces encoded video data, and therefore the source device 12 may be referred to as a video encoding device. The destination device 14 can decode encoded video data generated by the source device 12, and therefore the destination device 14 may be referred to as a video decoding device. In various implementations, source device 12, destination device 14, or both source device 12 and destination device 14 may include one or more processors and memory coupled to the one or more processors. Memory may include, but is not limited to, RAM, ROM, EEPROM, flash memory, or any other storage medium that can be used to store desired program code in the form of an instruction or data structure accessible to a computer as described in this specification. Source device 12 and destination device 14 may include a variety of devices, including a desktop computer, a mobile computing device, a portable computer (e.g., a notebook computer), a tablet computer, a set-top box, a telephone headset, such as a so-called smart phone. , TV, camera, display device, digital media player, game console, on-board computer, wireless communication device, etc.

Хотя на фиг. 1A устройство-источник 12 и устройство-адресат 14 показаны как отдельные устройства, вариант осуществления устройства может альтернативно включать в себя как устройство-источник 12, так и устройство-адресат 14, или функции как устройства-источника 12, так и устройства-адресата 14, то есть устройство-источник 12 или соответствующую функцию и устройство-адресат 14 или соответствующую функцию. В данном варианте осуществления устройство-источник 12 или соответствующая функция и устройство-адресат 14 или соответствующая функция могут быть реализованы с использованием одних и тех же аппаратных средств и/или программного обеспечения, отдельных аппаратных средств и/или программного обеспечения или любой их комбинации.Although in FIG. 1A, source device 12 and destination device 14 are shown as separate devices, an embodiment of the device may alternatively include both source device 12 and destination device 14, or functionality of both source device 12 and destination device 14 , that is, the source device 12 or the corresponding function and the destination device 14 or the corresponding function. In this embodiment, source device 12 or corresponding function and destination device 14 or corresponding function may be implemented using the same hardware and/or software, separate hardware and/or software, or any combination thereof.

Соединение связи между устройством-источником 12 и устройством-адресатов 14 может быть реализовано через линию 13 связи. Устройство-адресат 14 может принимать кодированные видеоданные из устройства-источника 12 по линии 13 связи. Линия 13 связи может включать в себя один или более носителей информации или одно или более устройств, способных перемещать кодированные видеоданные из устройства-источника 12 в устройство-адресат 14. В примере линия 13 связи может включать в себя одну или более средств связи, которые позволяют устройству-источнику 12 напрямую передавать кодированные видеоданные в устройство-адресат 14 в реальном времени. В этом примере устройство-источник 12 может модулировать кодированные видеоданные в соответствии со стандартом связи (например, протоколом беспроводной связи) и может передавать модулированные видеоданные в устройство-адресат 14. Одно или более средств связи могут включать в себя средство беспроводной связи и/или средство проводной связи, например, радиочастотный (RF) спектр или один или более физических кабелей передачи. Одно или более средств связи могут быть частью пакетной сети, и пакетная сеть представляет собой, например, локальную сеть, глобальную сеть или глобальную сеть (например, интернет). Одно или более средств связи могут включать в себя маршрутизатор, коммутатор, базовую станцию или другое устройство, которое обеспечивает связь от устройства-источника 12 до устройства-адресата 14.The communication connection between the source device 12 and the destination device 14 may be realized through a communication line 13. Destination device 14 may receive encoded video data from source device 12 via communication line 13. Communication link 13 may include one or more storage media or one or more devices capable of moving encoded video data from source device 12 to destination device 14. In an example, communications link 13 may include one or more communication media that enable source device 12 directly transmits encoded video data to destination device 14 in real time. In this example, source device 12 may modulate encoded video data in accordance with a communication standard (eg, a wireless communication protocol) and may transmit the modulated video data to destination device 14. One or more communication means may include wireless means and/or means wired communications, such as radio frequency (RF) spectrum or one or more physical transmission cables. One or more communications media may be part of a packet network, and the packet network is, for example, a local area network, a wide area network, or a wide area network (eg, the Internet). The one or more communications means may include a router, switch, base station, or other device that provides communication from the source device 12 to the destination device 14.

Устройство-источник 12 включает в себя кодер 20. При необходимости устройство-источник 12 может дополнительно включать в себя источник 16 изображения, препроцессор 18 изображения и интерфейс 22 связи. В конкретной форме реализации кодер 20, источник 16 изображения, препроцессор 18 изображения и интерфейс 22 связи могут быть аппаратными компонентами в устройстве-источнике 12 или могут быть программами программного обеспечения в устройстве-источнике 12. Ниже приводится по отдельности их описание.Source device 12 includes an encoder 20. Optionally, source device 12 may further include an image source 16, an image preprocessor 18, and a communications interface 22. In a particular implementation, encoder 20, image source 16, image preprocessor 18, and communication interface 22 may be hardware components in source device 12 or may be software programs in source device 12. They are described separately below.

Источник 16 изображения может включать в себя или может быть устройством захвата изображения любого типа, выполненным, например, с возможностью захвата реального изображения; и/или устройством любого типа для выработки изображения или комментария (для кодирования содержания экрана некоторый текст на экране также рассматривается как часть картинки или изображения, подлежащего кодированию), например, процессором компьютерной графики, выполненным с возможностью создания компьютерной анимационной картинки; или устройством любого типа, выполненным с возможностью получения и/или предоставления реального изображения или компьютерного анимационного изображения (например, содержания экрана или изображения виртуальной реальности (virtual reality, VR)), и/или любой их комбинацией (например, изображения дополненной реальности (augmented reality, AR)). Источник 16 изображения может быть камерой, выполненной с возможностью захвата изображения, или памятью, выполненной с возможностью хранения изображения. Источник 16 изображения может дополнительно включать в себя интерфейс любого типа (внутренний или внешний), через который сохраняется ранее захваченное или выработанное изображение и/или получается или принимается изображение. Когда источником 16 изображения является камера, источником 16 изображения может быть, например, локальная камера или интегрированная камера, встроенная в устройство-источник. Когда источником 16 изображения является память, источником 16 изображения может быть локальная памятью или, например, интегрированная память, встроенная в устройство -источник. Когда источник 16 изображения включает в себя интерфейс, интерфейс может быть, например, внешним интерфейсом для приема изображения из внешнего источника видео. Внешний источник видео представляет собой, например, внешнее устройство захвата изображения, такое как камера, внешняя память или внешнее устройство выработки изображения. Внешнее устройство выработки изображения представляет собой, например, внешний компьютерный графический процессор, компьютер или сервер. Интерфейс может быть интерфейсом любого типа, например, проводным или беспроводным интерфейсом или оптическим интерфейсом, в соответствии с любым частным или стандартизированным интерфейсным протоколом.The image source 16 may include or may be any type of image capturing device, configured, for example, to capture a real image; and/or any type of device for generating an image or commentary (for encoding the content of the screen, some text on the screen is also considered as part of the picture or image to be encoded), for example, a computer graphics processor configured to create a computer animated image; or a device of any type configured to receive and/or provide a real image or a computer animated image (for example, screen content or a virtual reality (VR) image), and/or any combination thereof (for example, augmented reality images reality, AR)). The image source 16 may be a camera configured to capture an image, or a memory configured to store an image. The image source 16 may further include any type of interface (internal or external) through which a previously captured or generated image is stored and/or an image is acquired or received. When the image source 16 is a camera, the image source 16 may be, for example, a local camera or an integrated camera built into the source device. When the image source 16 is a memory, the image source 16 may be a local memory or, for example, an integrated memory built into the source device. When the image source 16 includes an interface, the interface may be, for example, an external interface for receiving an image from an external video source. The external video source is, for example, an external image capturing device such as a camera, an external memory, or an external image generating device. The external imaging device is, for example, an external computer graphics processor, a computer, or a server. The interface may be any type of interface, such as a wired or wireless interface or an optical interface, in accordance with any proprietary or standardized interface protocol.

Изображение можно рассматривать как двумерный массив или матрицу элементов изображения (picture element). Элемент изображения в массиве может также называться выборкой. Количество выборок в горизонтальном и вертикальном направлениях (или по горизонтальной и вертикальной осям) массива или изображения определяет размер и/или разрешение изображения. Для представления цвета обычно используются три цветовых компонента, в частности, изображение может быть представлено в виде трех массивов выборок или может включать в себя их. Например, в формате RBG или цветовом пространстве изображение включает в себя соответствующие массивы выборок красного, зеленого и синего цветов. Однако при кодировании видео каждая выборка обычно представлена в формате яркости/цветности или цветовом пространстве. Например, изображение в формате YUV включает в себя компонент яркости, обозначенный Y (иногда обозначаемый альтернативно L), и два компонента цветности, обозначенные U и V. Компонент яркости (luma) Y представляет яркость или уровни интенсивности серого цвета (например, на изображении с оттенками серого они представляют собой одно и то же), и два компонента цветности (chroma) U и V представляют собой компоненты цветности или информации о цвете. Соответственно, изображение в формате YUV включает в себя массив выборок яркости со значениями выборок яркости (Y) и два массива выборок цветности со значениями цветности (U и V). Изображения в формате RGB можно трансформировать или преобразовать в формат YUV и наоборот. Этот процесс также называется преобразованием или трансформацией цвета. Если изображение является монохромным, оно может включать в себя только массив выборок яркости. В данном варианте осуществления настоящей заявки изображение, переданное источником 16 изображения в процессор изображения, может также называться необработанными данными 17 изображения.An image can be thought of as a two-dimensional array or matrix of picture elements. An image element in an array may also be called a selection. The number of samples in the horizontal and vertical directions (or along the horizontal and vertical axes) of an array or image determines the size and/or resolution of the image. Three color components are typically used to represent color; in particular, an image may be represented as or include three arrays of samples. For example, in RBG or color space, an image includes corresponding arrays of samples of red, green, and blue. However, when encoding video, each sample is typically represented in a luma/chrominance format or color space. For example, a YUV image includes a luma component, denoted Y (sometimes denoted alternatively L), and two chrominance components, denoted U and V. The luma component Y represents the brightness or intensity levels of gray (for example, in an image with shades of gray they represent the same thing), and the two chroma components U and V represent chroma components or color information. Accordingly, a YUV image includes an array of luma samples with luma sample values (Y) and two arrays of chroma samples with chroma values (U and V). RGB images can be transformed or converted to YUV format and vice versa. This process is also called color conversion or color transformation. If the image is monochrome, it may only include an array of luminance samples. In this embodiment of the present application, the image transmitted by the image source 16 to the image processor may also be referred to as raw image data 17.

Препроцессор 18 изображения выполнен с возможностью приема необработанных данных 17 изображения и выполнения предварительной обработки необработанных данных 17 изображения для получения предварительно обработанного изображения 19 или предварительно обработанных данных 19 изображения. Например, предварительная обработка, выполняемая препроцессором 18 изображения, может включать в себя обрезку, преобразование цветового формата (например, из формата RGB в формат YUV), коррекцию цвета или шумоподавление.The image preprocessor 18 is configured to receive raw image data 17 and perform preprocessing on the raw image data 17 to obtain a preprocessed image 19 or preprocessed image data 19 . For example, pre-processing performed by image preprocessor 18 may include cropping, color format conversion (eg, from RGB to YUV format), color correction, or noise reduction.

Кодер 20 (также называемый видеокодером 20) выполнен с возможностью приема предварительно обработанных данных 19 изображения и обработки предварительно обработанных данных 19 изображения в соответствующем режиме предсказания (таком как режим предсказания в вариантах осуществления данной спецификации), чтобы предоставить данные 21 кодированного изображения (структурные подробности кодера 20 дополнительно описаны ниже на основе фиг. 2, фиг. 4 или фиг. 5). В некоторых вариантах осуществления кодер 20 может быть выполнен с возможностью выполнения различных вариантов осуществления, описанных ниже, для реализации на стороне кодера способа предсказания блока цветности, описанного в настоящей заявке.The encoder 20 (also called video encoder 20) is configured to receive preprocessed image data 19 and process the preprocessed image data 19 in an appropriate prediction mode (such as the prediction mode in embodiments of this specification) to provide encoded image data 21 (structural details of the encoder 20 are further described below based on Fig. 2, Fig. 4 or Fig. 5). In some embodiments, encoder 20 may be configured to perform various embodiments described below to implement, on the encoder side, the chroma block prediction method described herein.

Интерфейс 22 связи может быть выполнен с возможностью приема кодированных данных 21 изображения и передачи кодированных данных 21 изображения в устройство-адресат 14 или любое другое устройство (например, в память) через линию 13 связи для хранения или прямого восстановления. Другое устройство может быть любым устройством, используемым для декодирования или хранения. Интерфейс 22 связи может быть, например, выполнен с возможностью инкапсуляции кодированных данных 21 изображения в соответствующий формат, например, пакет данных, для передачи по линии 13 связи.The communication interface 22 may be configured to receive the encoded image data 21 and transmit the encoded image data 21 to the destination device 14 or any other device (eg, memory) via the communication line 13 for storage or direct recovery. The other device can be any device used for decoding or storage. The communication interface 22 may, for example, be configured to encapsulate the encoded image data 21 into an appropriate format, such as a data packet, for transmission over the communication line 13.

Устройство-адресат 14 включает в себя декодер 30. При необходимости устройство-адресат 14 может дополнительно включать в себя интерфейс 28 связи, постпроцессор 32 изображения и устройство 34 отображения. Ниже приводится по отдельности их описание.Destination device 14 includes a decoder 30. Optionally, destination device 14 may further include a communication interface 28, an image post processor 32, and a display device 34. Below are their individual descriptions.

Интерфейс 28 связи может быть выполнен с возможностью приема кодированных данных 21 изображения из устройства-источника 12 или любого другого источника. Любой другой источник представляет собой, например, запоминающее устройство. Запоминающее устройство представляет собой, например, устройство для хранения данных кодированного изображения. Интерфейс 28 связи может быть выполнен с возможностью передачи или приема кодированных данных 21 изображения через линию 13 связи между устройством-источником 12 и устройством-адресатов 14 или через сеть любого типа. Линия 13 связи представляет собой, например, прямое проводное или беспроводное соединение. Сеть любого типа представляет собой, например, проводную или беспроводную сеть или любую их комбинацию, или частную или общедоступную сеть любого типа или любую их комбинацию. Интерфейс 28 связи может быть выполнен, например, с возможностью декапсуляции пакета данных, переданного через интерфейс 22 связи, для получения кодированных данных 21 изображения.Communication interface 28 may be configured to receive encoded image data 21 from source device 12 or any other source. Any other source is, for example, a storage device. The storage device is, for example, a device for storing encoded image data. Communication interface 28 may be configured to transmit or receive encoded image data 21 via communication line 13 between source device 12 and destination device 14 or through any type of network. The communication line 13 is, for example, a direct wired or wireless connection. Any type of network is, for example, a wired or wireless network or any combination thereof, or a private or public network of any type or any combination thereof. The communication interface 28 may be configured, for example, to decapsulate a data packet transmitted through the communication interface 22 to obtain encoded image data 21 .

Как интерфейс 28 связи, так и интерфейс 22 связи могут быть сконфигурированы как однонаправленные интерфейсы связи или как двунаправленные интерфейсы связи, и могут быть сконфигурированы, например, для отправки и приема сообщений для установления соединения, а также для подтверждения и обмена любой другой информацией, которая относится к линии связи, и/или передаче данных, такой как передача данных кодированного изображения.Both communication interface 28 and communication interface 22 may be configured as unidirectional communication interfaces or as bidirectional communication interfaces, and may be configured, for example, to send and receive messages to establish a connection, and to confirm and exchange any other information that refers to a communication link and/or data transmission, such as coded image data transmission.

Декодер 30 выполнен с возможностью приема кодированных данных 21 изображения и предоставления данных 31 декодированного изображения или декодированного изображения 31 (структурные подробности декодера 30 дополнительно описаны ниже со ссылкой на фиг. 3, фиг. 4 или 5). В некоторых вариантах осуществления декодер 30 может быть выполнен с возможностью выполнения различных вариантов осуществления, описанных ниже, для реализации на стороне декодера способа предсказания блока цветности, описанного в настоящей заявке.The decoder 30 is configured to receive encoded image data 21 and provide decoded image data 31 or decoded image 31 (structural details of the decoder 30 are further described below with reference to FIG. 3, FIG. 4 or 5). In some embodiments, the decoder 30 may be configured to implement various embodiments described below to implement, on the decoder side, the chroma block prediction method described herein.

Постпроцессор 32 изображения выполнен с возможностью постобработки данных 31 декодированного изображения (также называемых данными восстановленного изображения) для получения постобработанных данных 33 изображения. Постобработка, выполняемая постпроцессором 32 изображения, может включать в себя преобразование цветового формата (например, из формата YUV в формат RGB), коррекцию цвета, обрезку, повторную дискретизацию или любую другую обработку. Постпроцессор 32 изображения может быть дополнительно выполнен с возможностью передачи постобработанных данных 33 изображения в устройство 34 отображения.The image post-processor 32 is configured to post-process the decoded image data 31 (also called reconstructed image data) to obtain post-processed image data 33 . Post-processing performed by image post-processor 32 may include color format conversion (eg, from YUV to RGB), color correction, cropping, resampling, or any other processing. The image post-processor 32 may be further configured to transmit the post-processed image data 33 to the display device 34.

Устройство 34 отображения выполнено с возможностью приема данных 33 изображения с постобработкой, чтобы отображать изображение, например, пользователю или зрителю. Устройство 34 отображения может быть или может включать в себя дисплей любого типа для представления восстановленного изображения, например, интегрированный или внешний дисплей или монитор. Например, дисплей может включать в себя жидкокристаллический дисплей (liquid crystal display, LCD), дисплей на органических светодиодах (organic light-emitting diode, OLED), плазменный дисплей, проектор, микросветодиодный дисплей, жидкие кристаллы на кремнии (liquid crystal on silicon, LCoS), цифровой световой процессор (digital light processor, DLP) или любой другой дисплей.The display device 34 is configured to receive post-processed image data 33 to display the image, for example, to a user or viewer. The display device 34 may be or may include any type of display for presenting the reconstructed image, such as an integrated or external display or monitor. For example, the display may include a liquid crystal display (LCD), an organic light-emitting diode (OLED), a plasma display, a projector, a micro-LED display, or liquid crystal on silicon (LCoS). ), digital light processor (DLP) or any other display.

Хотя на фиг. 1A показано устройство-источник 12 и устройство-адресат 14 как отдельные устройства, вариант осуществления устройства может альтернативно включать в себя как устройство-источник 12, так и устройство-адресат 14, или функции как устройства-источника 12, так и устройства-адресата 14, то есть как устройство-источник 12 или соответствующую функцию, так и устройство-адресат 14 или соответствующую функцию. В таком варианте осуществления устройство-источник 12 или соответствующая функция и устройство-адресат 14 или соответствующая функция могут быть реализованы с использованием одних и тех же аппаратных средств и/или программного обеспечения, отдельных аппаратных средств и/или программного обеспечения или любой их комбинации.Although in FIG. 1A shows source device 12 and destination device 14 as separate devices, an embodiment of the device may alternatively include both source device 12 and destination device 14, or functionality of both source device 12 and destination device 14 , that is, both the source device 12 or the corresponding function and the destination device 14 or the corresponding function. In such an embodiment, source device 12 or corresponding function and destination device 14 or corresponding function may be implemented using the same hardware and/or software, separate hardware and/or software, or any combination thereof.

Основываясь на описании, специалистам в данной области техники будет очевидно, что наличие и (точное) разделение функций различных блоков или функций устройства-источника 12 и/или устройства-адресата 14, показанных на фиг. 1A, может отличаться в зависимости от реального устройства и приложения. Устройство-источник 12 и устройство-адресат 14 могут включать в себя любое из широкого разнообразия устройств, включая портативное или стационарное устройство любого типа, например, ноутбук или портативный компьютер, мобильный телефон, смартфон, планшет или планшетный компьютер, видеокамеру, настольный компьютер, телевизионную приставку, телевизор, камеру, устройство, установленное на транспортном средстве, устройство отображения, цифровой медиаплеер, игровую консоль, устройство потоковой передачи видео (например, сервер услуг по передаче содержания или сервер доставки содержания), широковещательное приемное устройство или широковещательное передающее устройство, и могут использовать или не использовать операционную систему любого типа.Based on the description, it will be apparent to those skilled in the art that the presence and (precise) separation of functions of the various blocks or functions of source device 12 and/or destination device 14 shown in FIG. 1A may vary depending on the actual device and application. Source device 12 and destination device 14 may include any of a wide variety of devices, including any type of portable or desktop device, such as a laptop or notebook computer, mobile phone, smartphone, tablet or tablet computer, video camera, desktop computer, television set-top box, television, camera, vehicle-mounted device, display device, digital media player, game console, video streaming device (such as a content service server or content delivery server), a broadcast receiving device, or a broadcast transmitting device, and may to use or not to use any type of operating system.

Каждый из кодера 20 и декодера 30 может быть реализован как любая из различных подходящих схем, например, один или более микропроцессоров, процессоры цифровых сигналов (процессор цифровых сигналов, DSP), специализированные интегральные схемы (application-specific integrated circuit, ASIC), программируемые пользователем вентильные матрицы (field-programmable gate array, FPGA), дискретная логика, аппаратные средства или любая их комбинация. Если технологии реализованы частично с использованием программного обеспечения, устройство может хранить инструкцию программного обеспечения на подходящем энергонезависимом машиночитаемом носителе информации и может исполнять инструкцию с использованием аппаратных средств, таких как один или более процессоров, для реализации технологий настоящего раскрытия. Любое из вышеуказанного содержания (включая аппаратные средства, программное обеспечение, комбинацию аппаратных средств и программного обеспечения и т.п.) может рассматриваться как один или более процессоров.Each of encoder 20 and decoder 30 may be implemented as any of various suitable circuits, for example, one or more microprocessors, digital signal processors (DSP), application-specific integrated circuit (ASIC), user programmable field-programmable gate arrays (FPGAs), discrete logic, hardware, or any combination thereof. If the technologies are implemented in part using software, the apparatus may store the software instruction on a suitable non-transitory computer-readable storage medium and may execute the instruction using hardware, such as one or more processors, to implement the technologies of the present disclosure. Any of the foregoing contents (including hardware, software, combinations of hardware and software, and the like) may be considered one or more processors.

В некоторых случаях система 10 кодирования и декодирования видео, показанная на фиг. 1A является просто примером, и способы настоящей заявки могут применяться к настройкам кодирования видео (например, к кодированию видео или декодированию видео), которые не обязательно включают в себя какой-либо обмен данными между устройством кодирования и устройством декодирования. В другом примере данные могут быть извлечены из локальной памяти, переданы в потоковом режиме по сети и т.п. Устройство для кодирования видео может кодировать данные и сохранять данные в памяти, и/или устройство для декодирования видео может извлекать данные из памяти и декодировать данные. В некоторых примерах устройства, которые только кодируют данные и хранят данные в памяти и/или извлекают данные из памяти и декодируют данные, и которые не обмениваются данными друг с другом, выполняют кодирование и декодирование.In some cases, the video encoding and decoding system 10 shown in FIG. 1A is merely an example, and the methods of the present application may be applied to video encoding settings (eg, video encoding or video decoding) that do not necessarily involve any communication between the encoding device and the decoding device. In another example, data may be retrieved from local memory, streamed over a network, or the like. The video encoding apparatus may encode data and store the data in memory, and/or the video decoding apparatus may retrieve data from memory and decode the data. In some examples, devices that only encode data and store data in memory and/or retrieve data from memory and decode data, and that do not communicate with each other, perform encoding and decoding.

На фиг. 1B показана иллюстративная схема примера системы 40 кодирования видео, включающей в себя кодер 20 (фиг. 2) и/или декодер 30 (фиг. 3) согласно примерному варианту осуществления. Система 40 кодирования видео может реализовывать комбинацию различных технологий в вариантах осуществления настоящей заявки. В проиллюстрированной реализации система 40 кодирования видео может включать в себя устройство 41 формирования изображения, кодер 20, декодер 30 (и/или видеокодер/декодер, реализованный с помощью логической схемы 47 схемы 46 обработки), антенну 42, один или более процессоров 43, одно или более запоминающих устройств 44 и/или устройство 45 отображения.In fig. 1B shows an illustrative diagram of an example video encoding system 40 including an encoder 20 (FIG. 2) and/or a decoder 30 (FIG. 3) according to an exemplary embodiment. The video encoding system 40 may implement a combination of various technologies in the embodiments of the present application. In the illustrated implementation, the video encoding system 40 may include an imager 41, an encoder 20, a decoder 30 (and/or a video encoder/decoder implemented by logic 47 of the processing circuit 46), an antenna 42, one or more processors 43, one or more storage devices 44 and/or display device 45.

Как показано на фиг. 1B, устройство 41 формирования изображения, антенна 42, схема 46 обработки, логическая схема 47, кодер 20, декодер 30, процессор 43, память 44 и/или устройство 45 отображения могут обмениваться данными друг с другом. Как описано, хотя система 40 кодирования видео проиллюстрирована с помощью кодера 20 и декодера 30, в различных примерах система 40 кодирования видео может включать в себя только кодер 20 или только декодер 30.As shown in FIG. 1B, imaging apparatus 41, antenna 42, processing circuit 46, logic circuit 47, encoder 20, decoder 30, processor 43, memory 44, and/or display 45 may communicate with each other. As described, although the video encoding system 40 is illustrated with an encoder 20 and a decoder 30, in various examples, the video encoding system 40 may include only the encoder 20 or only the decoder 30.

В некоторых примерах антенна 42 может быть выполнена с возможностью передачи или приема кодированного битового потока видеоданных. Кроме того, в некоторых примерах устройство 45 отображения может быть выполнено с возможностью представления видеоданных. В некоторых примерах логическая схема 47 может быть реализована с помощью схемы 46 обработки. Схема 46 обработки может включать в себя логическую схему на основе специализированной интегральной схемы (application-specific integrated circuit, ASIC), графический процессор, процессор общего назначения или т.п. Система 40 кодирования видео также может включать в себя дополнительный процессор 43. Дополнительный процессор 43 может аналогичным образом включать в себя логику на основе специализированной интегральной схемы (application-specific integrated circuit, ASIC), графический процессор, универсальный процессор и т.п. В некоторых примерах логическая схема 47 может быть реализована с помощью аппаратных средств, например, с помощью выделенных аппаратных средств для кодирования видео. Процессор 43 может быть реализован с помощью программного обеспечения общего назначения, операционной системы и т.п. В дополнение к этому, память 44 может быть памятью любого типа, например, энергозависимой памятью (например, статической памятью с произвольным доступом (Static Random Access Memory, SRAM) или динамической памятью с произвольным доступом (Dynamic Random Access Memory, DRAM) или энергонезависимой памятью (например, флэш-памятью). В неограничивающем примере память 44 может быть реализована с помощью кэш-памяти. В некоторых примерах логическая схема 47 может обращаться к памяти 44 (например, для реализации буфера изображений). В других примерах логическая схема 47 и/или схема 46 обработки могут включать в себя память (например, кэш) для реализации буфера изображений.In some examples, antenna 42 may be configured to transmit or receive an encoded video bitstream. Additionally, in some examples, display device 45 may be configured to present video data. In some examples, logic circuit 47 may be implemented by processing circuit 46. The processing circuit 46 may include an application-specific integrated circuit (ASIC), a graphics processor, a general purpose processor, or the like. The video encoding system 40 may also include an additional processor 43. The additional processor 43 may likewise include an application-specific integrated circuit (ASIC) logic, a graphics processor, a general purpose processor, or the like. In some examples, logic 47 may be implemented in hardware, such as dedicated video encoding hardware. The processor 43 may be implemented by general purpose software, an operating system, or the like. In addition, memory 44 may be any type of memory, such as volatile memory (e.g., Static Random Access Memory (SRAM) or Dynamic Random Access Memory (DRAM) or non-volatile memory (eg, flash memory.) In a non-limiting example, the memory 44 may be implemented using a cache memory. In some examples, the logic circuit 47 may access the memory 44 (for example, to implement an image buffer). or processing circuit 46 may include memory (eg, a cache) for implementing an image buffer.

В некоторых примерах видеокодер 20, реализованный с использованием логической схемы, может включать в себя буфер изображений (который реализован, например, с использованием схемы 46 обработки или памяти 44) и блок обработки графики (который реализован, например, с использованием схемы 46 обработки). Графический процессор может быть коммуникативно связан с буфером изображения. Блок обработки графики может включать в себя кодер 20, реализованный с использованием логической схемы 47, для реализации различных блоков, которые описаны со ссылкой на фиг. 2, и/или любую другую систему или подсистему кодера, описанную в данной спецификации. Логическая схема может быть выполнена с возможностью выполнения различных операций, описанных в данной спецификации.In some examples, video encoder 20, implemented using logic circuitry, may include an image buffer (which is implemented, for example, using processing circuitry 46 or memory 44) and a graphics processing unit (which is implemented, for example, using processing circuitry 46). The GPU may be in communicative communication with an image buffer. The graphics processing block may include an encoder 20 implemented using logic circuit 47 to implement various blocks that are described with reference to FIG. 2, and/or any other encoder system or subsystem described in this specification. The logic circuit may be configured to perform various operations described in this specification.

В некоторых примерах декодер 30 может быть реализован логической схемой 47 аналогичным образом для реализации различных блоков, которые описаны со ссылкой на декодер 30, показанный на фиг. 3, и/или любую другую систему или подсистему декодера, описанную в данной спецификации. В некоторых примерах декодер 30, реализованный с использованием логической схемы, может включать в себя буфер изображений (который реализуется схемой 46 обработки или памятью 44) и блок обработки графики (который реализован, например, схемой 46 обработки.). Графический процессор может быть коммуникативно связан с буфером изображения. Блок обработки графики может включать в себя декодер 30, реализованный логической схемой 47, для реализации различных блоков, которые описаны со ссылкой на фиг. 3 и/или любую другую систему или подсистему декодера, описанную в данной спецификации.In some examples, decoder 30 may be implemented by logic 47 in a similar manner to implement various blocks that are described with reference to decoder 30 shown in FIG. 3, and/or any other decoder system or subsystem described in this specification. In some examples, the decoder 30, implemented using logic circuitry, may include an image buffer (which is implemented by processing circuit 46 or memory 44) and a graphics processing unit (which is implemented, for example, by processing circuit 46). The GPU may be in communicative communication with an image buffer. The graphics processing unit may include a decoder 30, implemented by logic 47, for implementing various blocks that are described with reference to FIG. 3 and/or any other decoder system or subsystem described in this specification.

В некоторых примерах антенна 42 может быть выполнена с возможностью приема кодированного битового потока видеоданных. Как описано, кодированный битовый поток может включать в себя данные, указатель, значение индекса, данные выбора режима и т.п., которые относятся к кодированию видеокадров и которые описаны в данной спецификации, например, данные, которые относятся к разделению кодирования (например, коэффициент преобразования или квантованный коэффициент преобразования, дополнительный указатель (как описано) и/или данные, определяющие разделение кодирования). Система 40 кодирования видео может дополнительно включать в себя декодер 30, который подключен к антенне 42 и выполнен с возможностью декодирования кодированного битового потока. Устройство 45 отображения выполнено с возможностью представления видеокадра.In some examples, antenna 42 may be configured to receive an encoded video bitstream. As described, the encoded bitstream may include data, an indicator, an index value, mode selection data, and the like that relate to coding of video frames and that are described in this specification, for example, data that relate to coding division (e.g. transform coefficient or quantized transform coefficient, additional indicator (as described) and/or data defining the encoding division). The video encoding system 40 may further include a decoder 30 that is coupled to antenna 42 and configured to decode the encoded bit stream. The display device 45 is configured to display a video frame.

Следует понимать, что в данном варианте осуществления настоящей заявки для примера, описанного со ссылкой на кодер 20, декодер 30 может быть выполнен с возможностью выполнения обратного процесса. Что касается сигнализации синтаксического элемента, декодер 30 может быть выполнен с возможностью приема и синтаксического анализа такого синтаксического элемента и, соответственно, декодирования связанных с ним видеоданных. В некоторых примерах кодер 20 может энтропийно кодировать синтаксический элемент в кодированный битовый поток видео. В таких примерах декодер 30 может синтаксически проанализировать синтаксический элемент и, соответственно, декодировать связанные с ним видеоданные.It should be understood that in this embodiment of the present application, for the example described with reference to the encoder 20, the decoder 30 may be configured to perform the reverse process. With respect to syntax element signaling, decoder 30 may be configured to receive and parse such syntax element and, accordingly, decode video data associated therewith. In some examples, encoder 20 may entropy encode a syntax element into an encoded video bitstream. In such examples, decoder 30 may parse the syntax element and accordingly decode the associated video data.

Следует отметить, что способ кодирования видеоизображений, описанный в вариантах осуществления настоящей заявки, выполняется в кодере 20, и способ декодирования видеоизображений, описанный в вариантах осуществления настоящей заявки, выполняется в декодере 30. Кодер 20 и декодер 30 в вариантах осуществления настоящей заявки может быть, например, кодером/декодером, соответствующим протоколу стандарта видео, например, H.263, H.264, HEVC, MPEG-2, MPEG-4, VP8 или VP9, или стандартный протокол видео следующего поколения (например, H.266).It should be noted that the video encoding method described in the embodiments of the present application is performed in the encoder 20, and the video decoding method described in the embodiments of the present application is performed in the decoder 30. The encoder 20 and the decoder 30 in the embodiments of the present application may be, for example, an encoder/decoder conforming to a video standard protocol such as H.263, H.264, HEVC, MPEG-2, MPEG-4, VP8 or VP9, or a next generation video standard protocol (eg H.266).

На фиг. 2 показана схематичная/концептуальная блок-схема примера кодера 20, выполненного с возможностью реализации варианта осуществления настоящей заявки. В примере, показанном на фиг. 2, кодер 20 включает в себя блок 204 вычисления остатка, блок 206 обработки преобразования, блок 208 квантования, блок 210 обратного квантования, блок 212 обработки обратного преобразования, блок 214 восстановления, буфер 216, контурный фильтр 220, буфер 230 декодированных изображений (decoded picture buffer, DPB), блок 260 обработки предсказания и блок 270 энтропийного кодирования. Блок 260 обработки предсказания может включать в себя блок 244 межкадрового предсказания, блок 254 внутрикадрового предсказания и блок 262 выбора режима. Блок 244 межкадрового предсказания может включать в себя блок оценки движения и блок компенсации движения (на чертеже не показаны). Кодер 20, показанный на фиг. 2, также может называться гибридным видеокодером или видеокодером на основе гибридного видеокодека.In fig. 2 shows a schematic/conceptual block diagram of an example encoder 20 configured to implement an embodiment of the present application. In the example shown in FIG. 2, the encoder 20 includes a remainder calculation unit 204, a transform processing unit 206, a quantization unit 208, an inverse quantization unit 210, an inverse transform processing unit 212, a restoration unit 214, a buffer 216, a loop filter 220, a decoded picture buffer 230 buffer, DPB), prediction processing unit 260 and entropy encoding unit 270. The prediction processing unit 260 may include an inter-frame prediction unit 244, an intra-frame prediction unit 254, and a mode selection unit 262. The interframe prediction unit 244 may include a motion estimation unit and a motion compensation unit (not shown). The encoder 20 shown in FIG. 2 may also be called a hybrid video encoder or a hybrid video codec-based video encoder.

Например, блок 204 вычисления остатка, блок 206 обработки преобразования, блок 208 квантования, блок 260 обработки предсказания и блок 270 энтропийного кодирования образуют прямой путь прохождения сигнала кодера 20, тогда как, например, блок 210 обратного квантования, блок 212 обработки обратного преобразования, блок 214 восстановления, буфер 216, контурный фильтр 220, буфер 230 декодированных изображений (decoded picture buffer, DPB) и блок 260 обработки предсказания образуют обратный путь прохождения сигнала кодера. Обратный путь прохождения сигнала кодера соответствует пути прохождения сигнала декодера (смотри декодер 30, показанный на фиг. 3).For example, the residual calculation block 204, the transform processing block 206, the quantization block 208, the prediction processing block 260 and the entropy encoding block 270 form the forward signal path of the encoder 20, while, for example, the inverse quantization block 210, the inverse transform processing block 212, block Recovery 214, buffer 216, loop filter 220, decoded picture buffer (DPB) 230, and prediction processing unit 260 form the return path of the encoder signal. The return signal path of the encoder corresponds to the signal path of the decoder (see decoder 30 shown in FIG. 3).

Кодер 20 принимает, например, через вход 202, изображение 201 или блок 203 изображения для изображения 201, например, изображение в виде последовательности изображений, образующих видео или видеопоследовательность. Блок 203 изображения также может упоминаться как текущий блок изображения или блок изображения, который должен быть кодирован, и изображение 201 может упоминаться как текущее изображение или изображение, которое должно быть кодировано (в частности, при кодировании видео, чтобы отличить текущее изображение от других изображений, например, ранее кодированных и/или декодированных изображений в одной и той же видеопоследовательности, а именно видеопоследовательности, которая также включает в себя текущее изображение).The encoder 20 receives, for example, through an input 202, an image 201 or an image block 203 for an image 201, for example, an image in the form of a sequence of images forming a video or video sequence. The image block 203 may also be referred to as the current image block or the image block to be encoded, and the image 201 may be referred to as the current image or the image to be encoded (particularly when encoding video, to distinguish the current image from other images, for example, previously encoded and/or decoded images in the same video sequence, namely a video sequence that also includes the current image).

Вариант осуществления кодера 20 может включать в себя блок разделения (не показан на фиг. 2), выполненный с возможностью разделения изображения 201 на множество блоков, таких как блок 203 изображения. Изображение 201 обычно разбивается на множество не перекрывающихся блоков. Блок разделения может быть выполнен с возможностью использования одного и того же размера блока для всех изображений в видеопоследовательности и соответствующей сетки, определяющей размер блока, или изменения размера блока между изображениями, или подмножествами, или группами изображений, и разделения каждого изображения на соответствующие блоки.An embodiment of encoder 20 may include a splitter (not shown in FIG. 2) configured to divide image 201 into a plurality of blocks, such as image block 203. The image 201 is typically divided into a plurality of non-overlapping blocks. The splitter may be configured to use the same block size for all images in a video sequence and a corresponding grid defining the block size, or to vary the block size between images, or subsets or groups of images, and divide each image into appropriate blocks.

В одном примере блок 260 обработки предсказания кодера 20 может быть выполнен с возможностью выполнения любой комбинации технологий разделения, описанных выше.In one example, the prediction processing unit 260 of the encoder 20 may be configured to perform any combination of the division techniques described above.

Как и изображение 201, блок 203 изображения также представляет собой или может рассматриваться как двумерный массив или матрица выборок со значениями выборок, хотя размер блока 203 изображения меньше, чем размер изображения 201. Другими словами, блок 203 изображения может включать в себя, например, один массив выборок (например, массив яркости в случае монохромного изображения 201), три массива выборок (например, один массив яркости и два массива цветности в случае цветного изображения) или любое другое количество и/или тип массивов в зависимости от применяемого цветового формата. Количество выборок в горизонтальном и вертикальном направлениях (или по горизонтальной и вертикальной осям) блока 203 изображения определяет размер блока 203 изображения.Like image 201, image block 203 is also, or may be viewed as, a two-dimensional array or matrix of samples with sample values, although the size of image block 203 is smaller than the size of image 201. In other words, image block 203 may include, for example, one an array of samples (eg, a luma array in the case of a monochrome image 201), three arrays of samples (eg, one luma array and two chrominance arrays in the case of a color image), or any other number and/or type of arrays depending on the color format being used. The number of samples in the horizontal and vertical directions (or along the horizontal and vertical axes) of the image block 203 determines the size of the image block 203.

Кодер 20, показанный на фиг. 2 выполнен с возможностью поблочного кодирования изображения 201, например, для выполнения кодирования и предсказания для каждого блока 203 изображения.The encoder 20 shown in FIG. 2 is configured to block-by-block encode the image 201, for example, to perform encoding and prediction for each block 203 of the image.

Блок 204 вычисления остатка выполнен с возможностью вычисления остаточного блока 205 на основе блока 203 изображения и блока 265 предсказания (дополнительные подробности о блоке 265 предсказания будут представлены ниже), например, путем вычитания значений выборок блока 265 предсказания из значения выборки блока 203 изображения выборка за выборкой (пиксель за пикселем) с тем, чтобы получить остаточный блок 205 в области выборки.The residual calculation block 204 is configured to calculate the residual block 205 based on the image block 203 and the prediction block 265 (more details about the prediction block 265 will be presented below), for example, by subtracting the sample values of the prediction block 265 from the sample value of the image block 203 sample by sample. (pixel by pixel) so as to obtain a residual block 205 in the sample area.

Блок 206 обработки преобразования выполнен с возможностью применения преобразования, например, дискретного косинусного преобразования (discrete cosine transform, DCT) или дискретного синусоидального преобразования (discrete sine transform, DST), к значениям выборки остаточного блока 205 для получения коэффициентов 207 преобразования в области преобразования. Коэффициент 207 преобразования также может называться остаточным коэффициентом преобразования и представляет остаточный блок 205 в области преобразования.The transform processing unit 206 is configured to apply a transform, such as a discrete cosine transform (DCT) or a discrete sine transform (DST), to the sample values of the residual block 205 to obtain transform coefficients 207 in the transform domain. The transform coefficient 207 may also be referred to as a residual transform coefficient and represents the residual block 205 in the transform domain.

Блок 206 обработки преобразования может быть выполнен с возможностью применения целочисленных аппроксимаций DCT/DST, таких как преобразования, указанные в HEVC/H.265. По сравнению с ортогональным преобразованием DCT, такие целочисленные аппроксимации обычно масштабируются на основе коэффициента. Чтобы сохранить норму остаточного блока, который обрабатывается с использованием прямого и обратного преобразований, дополнительный коэффициент масштабирования применяется как часть процесса преобразования. Коэффициент масштабирования обычно выбирается на основе некоторых ограничений, например, коэффициент масштабирования является степенью два для операции сдвига, битовой глубиной коэффициента преобразования и компромиссом между точностью и затратами на реализацию. Например, конкретный коэффициент масштабирования задается для обратного преобразования, например, блоком 212 обработки обратного преобразования на стороне декодера 30 (и для соответствующего обратного преобразования, например, блоком 212 обработки обратного преобразования на стороне кодера 20), и, соответственно, соответствующий коэффициент масштабирования может быть задан для прямого преобразования блоком 206 обработки преобразования на стороне кодера 20.Transform processing unit 206 may be configured to apply DCT/DST integer approximations such as those specified in HEVC/H.265. Compared to the orthogonal DCT transform, such integer approximations are typically scaled based on a factor. To preserve the norm of the residual block that is processed using forward and inverse transforms, an additional scaling factor is applied as part of the transform process. The scaling factor is usually chosen based on some constraints, for example, the scaling factor is a power of two for the shift operation, the bit depth of the transform factor, and the tradeoff between accuracy and implementation cost. For example, a particular scaling factor is set for the inverse transform, for example, by the inverse transform processing unit 212 on the decoder 30 side (and for the corresponding inverse transform, for example, by the inverse transform processing unit 212 on the encoder 20 side), and accordingly, the corresponding scaling factor may be specified for direct conversion by the conversion processing unit 206 on the side of the encoder 20.

Блок 208 квантования выполнен с возможностью квантования коэффициентов 207 преобразования для получения квантованных коэффициентов 209 преобразования, например, путем применения скалярного квантования или векторного квантования. Квантованный коэффициент 209 преобразования может также называться квантованным коэффициентом 209 остатка. Процесс квантования позволяет уменьшить битовую глубину, относящуюся к некоторым или всем коэффициентам 207 преобразования. Например, n-битовый коэффициент преобразования может быть округлен до m-битового коэффициента преобразования во время квантования, где n больше m. Степень квантования может быть изменена путем регулировки параметра квантования (quantization parameter, QP). Например, для скалярного квантования могут применяться разные масштабы для достижения более тонкого или более грубого квантования. Меньший размер шага квантования соответствует более тонкому квантованию, и больший размер шага квантования соответствует более грубому квантованию. Соответствующий размер шага квантования может быть указан параметром квантования (quantization parameter, QP). Например, параметр квантования может быть индексом для заданного набора подходящих размеров шага квантования. Например, меньший параметр квантования может соответствовать более тонкому квантованию (меньшему размеру шага квантования), и больший параметр квантования может соответствовать более грубому квантованию (большему размеру шага квантования) и наоборот. Квантование может включать в себя деление на размер шага квантования и соответствующее квантование или обратное квантование, например, выполняемое блоком 210 обратного квантования, или может включать в себя умножение на размер шага квантования. В вариантах осуществления согласно некоторым стандартам, таким как HEVC, параметр квантования может использоваться для определения размера шага квантования. Как правило, размер шага квантования может быть вычислен на основе параметра квантования с использованием аппроксимации с фиксированной точкой уравнения, включая деление. Дополнительные коэффициенты масштабирования могут быть введены для квантования и деквантования, чтобы восстановить норму остаточного блока, где норма остаточного блока может быть изменена из-за масштаба, используемого в приближении фиксированной точки уравнения для размера шага квантования и параметра квантования. В примерной реализации масштаб обратного преобразования может быть объединен с масштабом деквантования. В качестве альтернативы, может использоваться сконфигурированная таблица квантования и передаваться сигнал от кодера к декодеру, например, в битовом потоке. Квантование представляет собой операцию с потерями, где больший шаг квантования указывает на большие потери.The quantization unit 208 is configured to quantize the transformation coefficients 207 to obtain quantized transformation coefficients 209, for example, by applying scalar quantization or vector quantization. The quantized transformation coefficient 209 may also be referred to as the quantized remainder coefficient 209. The quantization process allows the bit depth associated with some or all of the transform coefficients 207 to be reduced. For example, an n-bit transform factor may be rounded to an m-bit transform factor during quantization, where n is greater than m. The degree of quantization can be changed by adjusting the quantization parameter (QP). For example, for scalar quantization, different scales can be used to achieve finer or coarser quantization. A smaller quantization step size corresponds to finer quantization, and a larger quantization step size corresponds to coarser quantization. The appropriate quantization step size can be specified by the quantization parameter (QP). For example, the quantization parameter may be an index for a given set of suitable quantization step sizes. For example, a smaller quantization parameter may correspond to a finer quantization (smaller quantization step size) and a larger quantization parameter may correspond to a coarser quantization (larger quantization step size) and vice versa. Quantization may include dividing by a quantization step size and corresponding quantization or inverse quantization, such as performed by inverse quantization unit 210, or may include multiplying by a quantization step size. In embodiments according to some standards, such as HEVC, a quantization parameter may be used to determine the quantization step size. Typically, the quantization step size can be calculated from the quantization parameter using a fixed-point approximation to the equation, including division. Additional scaling factors can be introduced for quantization and dequantization to recover the residual block norm, where the residual block norm can be changed due to the scale used in the fixed-point approximation of the equation for the quantization step size and the quantization parameter. In an exemplary implementation, the inverse transform scale may be combined with the dequantization scale. Alternatively, a configured quantization table may be used and the signal transmitted from the encoder to the decoder, for example, in a bit stream. Quantization is a lossy operation, where a larger quantization step indicates larger losses.

Блок 210 обратного квантования выполнен с возможностью применения обратного квантования блока 208 квантования к квантованному коэффициенту для получения деквантованного коэффициента 211, например, применения, на основе или с использованием того же размера шага квантования, что и блок 208 квантования, обратной схемы квантования, применяемой блоком 208 квантования. Деквантованный коэффициент 211 также может упоминаться как деквантованный коэффициент 211 остатка и соответствовать коэффициенту 207 преобразования, хотя деквантованный коэффициент 211 обычно отличается от коэффициента преобразования из-за потерь, вызванных квантованием.The inverse quantization block 210 is configured to apply the inverse quantization of the quantization block 208 to the quantized coefficient to obtain the dequantized coefficient 211, for example, applying, based on or using the same quantization step size as the quantization block 208, an inverse quantization scheme applied by the block 208 quantization. The dequantized coefficient 211 may also be referred to as the dequantized residue coefficient 211 and corresponds to the transformation coefficient 207, although the dequantized coefficient 211 is typically different from the transformation coefficient due to losses caused by quantization.

Блок 212 обработки обратного преобразования выполнен с возможностью применения обратного преобразования по отношению к преобразованию, применяемому блоком 206 обработки преобразования, например, обратного дискретного косинусного преобразования (discrete cosine transform, DCT) или обратного дискретного синусоидального преобразования (discrete sine transform, DST), чтобы получить блок 213 обратного преобразования в области выборки. Блок 213 обратного преобразования также может называться деквантованным блоком 213 обратного преобразования или остаточным блоком 213 обратного преобразования.The inverse transform processing unit 212 is configured to apply an inverse transform to the transform applied by the transform processing unit 206, such as an inverse discrete cosine transform (DCT) or an inverse discrete sine transform (DST) to obtain block 213 of inverse transformation in the sampling area. The inverse transform block 213 may also be referred to as the dequantized inverse transform block 213 or the residual inverse transform block 213 .

Блок 214 восстановления (например, сумматор 214) выполнен с возможностью добавления блока 213 обратного преобразования (то есть восстановленного остаточного блока 213) к блоку 265 предсказания, например, путем сложения значений выборок восстановленного остаточного блока 213 и значений выборок блока 265 предсказания, чтобы получить восстановленный блок 215 в области выборки.The reconstruction block 214 (e.g., the adder 214) is configured to add an inverse transform block 213 (that is, the reconstructed residual block 213) to the prediction block 265, for example, by adding the sample values of the reconstructed residual block 213 and the sample values of the prediction block 265 to obtain the reconstructed block 215 in the sampling area.

При необходимости буферный блок 216 ("буфер" 216 для краткости), например, строковый буфер 216, выполнен с возможностью буферизации или хранения восстановленного блока 215 и соответствующего значения выборки, например, для внутрикадрового предсказания. В других вариантах осуществления кодер может быть выполнен с возможностью использования нефильтрованных восстановленных блоков и/или соответствующих значений выборок, хранящихся в блоке 216 буфера, для любого типа оценки и/или предсказания, например, внутрикадрового предсказания.Optionally, a buffer block 216 ("buffer" 216 for short), such as a line buffer 216, is configured to buffer or store the reconstructed block 215 and the corresponding sample value, for example, for intra-frame prediction. In other embodiments, the encoder may be configured to use the unfiltered reconstructed blocks and/or corresponding sample values stored in buffer block 216 for any type of estimation and/or prediction, such as intra-frame prediction.

Например, в варианте осуществления кодер 20 может быть сконфигурирован таким образом, чтобы буферный блок 216 был выполнен с возможностью хранения восстановленного блока 215, не только используемого для блока 254 внутрикадрового предсказания, но также и используемого для блока (не показанного на фиг. 2) в контурном фильтре 220, и/или таким образом, чтобы, например, блок 216 буфера и буфер 230 декодированных изображений образовывали один буфер. В другом варианте осуществления фильтрованный блок 221 и/или блок или выборка (не показаны на фиг. 2) из буфера 230 декодированных изображений используются в качестве входных данных или исходных данных для блока 254 внутрикадрового предсказания.For example, in an embodiment, encoder 20 may be configured such that buffer block 216 is configured to store reconstructed block 215 not only used for intra-frame prediction block 254, but also used for a block (not shown in FIG. 2) in loop filter 220, and/or so that, for example, the buffer block 216 and the decoded image buffer 230 form one buffer. In another embodiment, filtered block 221 and/or a block or sample (not shown in FIG. 2) from decoded image buffer 230 is used as input or source data to intra-frame prediction block 254.

Блок 220 контурного фильтра ("контурный фильтр" 220 для краткости) выполнен с возможностью фильтрации восстановленного блока 215, чтобы получить фильтрованный блок 221, сглаживания перехода между выборками или повышения качества видео. Блок 220 контурного фильтра предназначен для представления одного или нескольких контурных фильтров, таких как фильтр удаления блочности, фильтр адаптивного смещения выборок (sample-adaptive offset, SAO) или другой фильтр, например, двусторонний фильтр, адаптивный контурный фильтр (adaptive loop filter, ALF), фильтр повышения резкости или сглаживания или объединенный фильтр. Хотя на фиг. 2 показан блок 220 контурного фильтра, в другой реализации блок 220 контурного фильтра может быть реализован как постконтурный фильтр. Фильтрованный блок 221 также может упоминаться как фильтрованный восстановленный блок 221. Буфер 230 декодированных изображений может хранить восстановленный кодированный блок после того, как блок 220 контурного фильтра выполнит операцию фильтрации над восстановленным кодированным блоком.A loop filter block 220 ("loop filter" 220 for short) is configured to filter the reconstructed block 215 to produce a filtered block 221, smoothing the transition between samples, or enhancing video quality. Loop filter block 220 is configured to represent one or more loop filters, such as a deblocking filter, a sample-adaptive offset (SAO) filter, or another filter, such as a two-way filter, an adaptive loop filter (ALF). , a sharpening or smoothing filter, or a combined filter. Although in FIG. 2 shows a loop filter block 220; in another implementation, the loop filter block 220 may be implemented as a post-loop filter. The filtered block 221 may also be referred to as the filtered reconstructed block 221. The decoded image buffer 230 may store the reconstructed coded block after the loop filter block 220 performs a filtering operation on the reconstructed coded block.

В варианте осуществления кодер 20 (соответственно, блок 220 контурного фильтра) может быть выполнен с возможностью вывода параметра контурного фильтра (например, информации адаптивного смещения выборки), например, непосредственно или после энтропийного кодирования, выполняемого блоком 270 энтропийного кодирования или любым другим блоком энтропийного кодирования, поэтому декодер 30 может принимать и применять один и тот же параметр контурного фильтра для декодирования.In an embodiment, encoder 20 (respectively, loop filter block 220) may be configured to output a loop filter parameter (e.g., adaptive sample offset information), for example, directly or after entropy encoding performed by entropy encoding block 270 or any other entropy encoding block , so the decoder 30 can receive and apply the same loop filter parameter for decoding.

Буфер 230 декодированных изображений (decoded picture buffer, DPB) может быть памятью опорных изображений, в которой хранятся данные опорных изображений для использования при кодировании видеоданных кодером 20. DPB 230 может включать в себя любое из множества запоминающих устройств, таких как динамическая память с произвольным доступом (dynamic random access memory, DRAM) (включая синхронную DRAM (synchronous DRAM, SDRAM), магниторезистивную RAM (magnetoresistive RAM, MRAM) или резистивную RAM (resistive RAM, RRAM)) или запоминающие устройства других типов. DPB 230 и буфер 216 могут быть предоставлены одним и тем же запоминающим устройством или отдельными запоминающими устройствами. В примере буфер 230 декодированных изображений (decoded picture buffer, DPB) выполнен с возможностью хранения фильтрованного блока 221. Буфер 230 декодированных изображений может дополнительно быть выполнен с возможностью хранения других ранее фильтрованных блоков, например, ранее восстановленных и фильтрованных блоков 221, одного и того же текущего изображения или разных изображений, например, ранее восстановленных изображений, и может предоставлять полностью ранее восстановленные изображения, то есть декодированные изображения (и соответствующие опорные блоки и выборки) и/или частично восстановленное текущее изображение (и соответствующие опорные блоки и выборки), например, для межкадрового предсказания. В одном примере, если восстановленный блок 215 восстанавливается без внутриконтурной фильтрации, буфер 230 декодированных изображений (decoded picture buffer, DPB) конфигурируется для хранения восстановленного блока 215.The decoded picture buffer (DPB) 230 may be a reference picture memory that stores reference picture data for use when encoding video data by encoder 20. DPB 230 may include any of a variety of storage devices, such as dynamic random access memory dynamic random access memory (DRAM) (including synchronous DRAM (SDRAM), magnetoresistive RAM (MRAM), or resistive RAM (RRAM)) or other types of memory devices. DPB 230 and buffer 216 may be provided by the same storage device or by separate storage devices. In the example, the decoded picture buffer (DPB) 230 is configured to store a filtered block 221. The decoded picture buffer 230 may further be configured to store other previously filtered blocks, such as previously reconstructed and filtered blocks 221, of the same the current image or different images, e.g., previously reconstructed images, and may provide fully previously reconstructed images, i.e., decoded images (and corresponding reference blocks and samples) and/or a partially reconstructed current image (and corresponding reference blocks and samples), e.g. for interframe prediction. In one example, if reconstructed block 215 is reconstructed without in-loop filtering, decoded picture buffer (DPB) 230 is configured to store reconstructed block 215.

Блок 260 обработки предсказания, также называемый блоком 260 обработки предсказания блока, выполнен с возможностью приема или получения блока 203 изображения (текущего блока 203 изображения текущего изображения 201) и данных восстановленного изображения, например, опорных выборок одного и того же (текущего) изображения из буфера 216 и/или данных 231 опорного изображения одного или нескольких ранее декодированных изображений из буфера 230 декодированных изображений, и обработки таких данных для предсказания, а именно, чтобы предоставить блок 265 предсказания, который может быть блоком 245 межкадрового предсказания или блоком 255 внутрикадрового предсказания.The prediction processing unit 260, also called the block prediction processing unit 260, is configured to receive or obtain an image block 203 (the current image block 203 of the current image 201) and reconstructed image data, such as reference samples of the same (current) image from a buffer. 216 and/or reference picture data 231 of one or more previously decoded pictures from the decoded picture buffer 230, and processing such data for prediction, namely, to provide a prediction block 265, which may be an inter-frame prediction block 245 or an intra-frame prediction block 255.

Блок 262 выбора режима может быть выполнен с возможностью выбора режима предсказания (например, режима внутрикадрового или межкадрового предсказания) и/или соответствующего блока 245 или 255 предсказания, который будет использоваться в качестве блока 265 предсказания для вычисления остаточного блока 205 и для восстановления восстановленного блока 215.The mode selection block 262 may be configured to select a prediction mode (eg, an intra- or inter-frame prediction mode) and/or a corresponding prediction block 245 or 255 to be used as a prediction block 265 for calculating the residual block 205 and for reconstructing the reconstructed block 215 .

В варианте осуществления блок 262 выбора режима может быть выполнен с возможностью выбора режима предсказания (например, из режимов предсказания, поддерживаемых блоком 260 обработки предсказания), где режим предсказания обеспечивает наилучшее совпадение или, другими словами, минимальный остаток (минимальный остаток означает лучшее сжатие для передачи или хранения), или обеспечивает минимальные служебные данные сигнализации (минимальные служебные данные сигнализации означают лучшее сжатие для передачи или хранения), или учитывает или уравновешивает и то, и другое. Блок 262 выбора режима может быть выполнен с возможностью определения режима предсказания на основе оптимизации искажения скорости (rate distortion optimization, RDO), а именно, выбора режима предсказания, который обеспечивает оптимизацию минимального искажения скорости, или выбора режима предсказания, для которого искажение скорости по меньшей мере удовлетворяет критерию выбора режима предсказания.In an embodiment, the mode selector 262 may be configured to select a prediction mode (eg, from among the prediction modes supported by the prediction processing unit 260) where the prediction mode provides the best match, or in other words, the minimum remainder (the minimum remainder means the best compression for transmission or storage), or provides minimum signaling overhead (minimum signaling overhead means better compression for transmission or storage), or accounts for or balances both. Mode selector 262 may be configured to determine a prediction mode based on rate distortion optimization (RDO), namely, selecting a prediction mode that optimizes the minimum rate distortion, or selecting a prediction mode that has a lower rate distortion. least satisfies the criterion for choosing a prediction mode.

Ниже подробно описан процесс предсказания (например, выполняемый блоком 260 обработки предсказания) и выбор режима (например, выполняемый блоком 262 выбора режима), выполняемые, например, кодером 20.The prediction process (e.g., performed by the prediction processing unit 260) and mode selection (e.g., performed by the mode selection unit 262) performed, for example, by the encoder 20 are described below in detail.

Как описано выше, кодер 20 выполнен с возможностью определения или выбора оптимального или наиболее эффективного режима предсказания из набора (заданных) режимов предсказания. Набор режимов предсказания может включать в себя, например, режим внутрикадрового предсказания и/или режим межкадрового предсказания.As described above, the encoder 20 is configured to determine or select the optimal or most effective prediction mode from a set of (predetermined) prediction modes. The set of prediction modes may include, for example, an intra-prediction mode and/or an inter-frame prediction mode.

Набор режимов внутрикадрового предсказания может включать в себя 35 различных режимов внутрикадрового предсказания, например, ненаправленные режимы, такие как режим постоянного тока (или средний) и планарный режим, или направленные режимы, такие как определенные в H.265, или могут включать 67 различных режимов внутрикадрового предсказания, например, ненаправленные режимы, такие как режим постоянного тока (или средний) и планарный режим, или направленные режимы, такие как определенные в H.266, находящемся в стадии разработки.The set of intra-prediction modes may include 35 different intra-prediction modes, for example, omnidirectional modes such as constant current (or average) mode and planar mode, or directional modes such as those defined in H.265, or may include 67 different modes intra-frame prediction, for example, non-directional modes such as constant current (or medium) mode and planar mode, or directional modes such as those defined in H.266, which is under development.

В возможной реализации набор режимов межкадрового предсказания зависит от доступных опорных изображений (то есть, например, по меньшей мере от некоторых декодированных изображений, хранящихся в DBP 230, как описано выше) и других параметров межкадрового предсказания, например, зависит от того, будет ли использоваться все опорное изображение или только часть опорного изображения, например, зона окна поиска вокруг зоны текущего блока, для поиска оптимального совпадающего опорного блока и/или, например, зависит от того, будет ли применяться интерполяция выборки, такая как интерполяция половины выборки и/или четверть выборки. Набор режимов межкадрового предсказания может включать в себя, например, режим пропуска (skip) и режим слияния (merge). В вариантах осуществления настоящей заявки в конкретной реализации набор режимов межкадрового предсказания может включать в себя режим слияния на основе пропусков с разностью векторов движения (merge with motion vector difference, MMVD) или режим MMVD на основе слияния. В примере блок 254 внутрикадрового предсказания может быть выполнен с возможностью выполнения любой комбинации технологий межкадрового предсказания, описанных ниже.In an exemplary implementation, the set of inter-prediction modes depends on available reference pictures (i.e., for example, at least some of the decoded pictures stored in DBP 230 as described above) and other inter-prediction parameters, for example, depends on whether the entire reference image or just a portion of the reference image, such as a search window area around the current block area, to find the optimal matching reference block and/or, for example, depends on whether sample interpolation is applied, such as half sample and/or quarter interpolation samples. The set of interframe prediction modes may include, for example, a skip mode and a merge mode. In embodiments of the present application, a specific implementation set of inter-frame prediction modes may include a merge with motion vector difference (MMVD) mode or a merge-based MMVD mode. In an example, intra-frame prediction unit 254 may be configured to perform any combination of inter-frame prediction technologies described below.

В дополнение к вышеупомянутым режимам предсказания в вариантах осуществления настоящей заявки также могут применяться режим пропуска и/или прямой режим.In addition to the above prediction modes, embodiments of the present application may also employ a skip mode and/or a direct mode.

Блок 260 обработки предсказания может быть дополнительно выполнен с возможностью разделения блока 203 изображения на более мелкие части или подблоки, например, путем итеративного использования разделения квадродерева (quad-tree, QT), разделения двоичного дерева (binary-tree, BT), разделения троичного дерево (ternary-tree, TT) на разделы или любую их комбинацию, и выполнения, например, предсказания над каждым из разделов блока или подблоков. Выбор режима включает в себя выбор древовидной структуры разделенного блока 203 изображения и выбор режима предсказания, используемого для каждого из разделов или подблоков блока.The prediction processing unit 260 may be further configured to partition the image block 203 into smaller parts or sub-units, for example, by iteratively using a quad-tree (QT) partition, a binary-tree (BT) partition, a ternary tree partition (ternary-tree, TT) into partitions or any combination thereof, and perform, for example, predictions on each of the partitions of the block or sub-blocks. Mode selection includes selecting a tree structure of the divided image block 203 and selecting a prediction mode used for each of the sections or subblocks of the block.

Блок 244 межкадрового предсказания может включать в себя блок оценки движения (motion estimation, ME) (не показан на фиг. 2) и блок компенсации движения (motion compensation, MC) (не показан на фиг. 2). Блок оценки движения выполнен с возможностью приема или получения блока 203 изображения (текущего блока 203 изображения текущего изображения 201) и декодированного изображения 231 или по меньшей мере одного или нескольких ранее восстановленных блоков, например, одного или нескольких восстановленных блоков других/различных ранее декодированных изображений 231, для оценки движения. Например, видеопоследовательность может включать в себя текущее изображение и ранее декодированные изображения 231, или, другими словами, текущее изображение и ранее декодированные изображения 231 могут быть частью или могут формировать последовательность изображений, образующих видеопоследовательность.The interframe prediction block 244 may include a motion estimation (ME) block (not shown in FIG. 2) and a motion compensation (MC) block (not shown in FIG. 2). The motion estimator is configured to receive or obtain an image block 203 (the current image block 203 of the current image 201) and a decoded image 231 or at least one or more previously reconstructed blocks, for example, one or more reconstructed blocks of other/different previously decoded images 231 ,to estimate motion. For example, the video sequence may include the current image and previously decoded images 231, or, in other words, the current image and previously decoded images 231 may be part of or may form a sequence of images forming the video sequence.

Например, кодер 20 может быть выполнен с возможностью выбора опорного блока из множества опорных блоков одного и того же изображения или разных изображений из множества других изображений и передачи, в блок оценки движения (не показан на фиг. 2), опорного изображения и/или обеспечения смещения (пространственного смещения) между позицией (координатамихи Y) опорного блока и позицией текущего блока в качестве параметра межкадрового предсказания. Смещение также называется вектором движения (motion vector, MV).For example, encoder 20 may be configured to select a reference block from a plurality of reference blocks of the same image or different images from a plurality of other images and transmit, to a motion estimator (not shown in FIG. 2), the reference image and/or provision offset (spatial offset) between the position (Y coordinates) of the reference block and the position of the current block as an inter-frame prediction parameter. Displacement is also called motion vector (MV).

Блок компенсации движения выполнен с возможностью получения параметра межкадрового предсказания и выполнения межкадрового предсказания на основе или с использованием параметра межкадрового предсказания, чтобы получить блок 245 межкадрового предсказания. Компенсация движения, выполняемая блоком компенсации движения (не показан на фиг. 2)), может включать в себя выборку или выработку блока предсказания на основе вектора движения/блока, определенного путем оценки движения (возможно, выполнение интерполяция с точностью до подпикселя). Межкадровая фильтрация поляризации позволяет выработать дополнительные выборки пикселей из известных выборок пикселей, тем самым потенциально увеличивая количество блоков предсказания-кандидатов, которые могут использоваться для кодирования блока изображения. После приема вектора движения для PU текущего блока изображения блок 246 компенсации движения может найти блок предсказания, на который указывает вектор движения, в одном из списков опорных изображений. Блок 246 компенсации движения также может выработать синтаксический элемент, связанный с блоком и слайсом видео, так что декодер 30 использует синтаксический элемент для декодирования блока изображения в видеослайсе.The motion compensation unit is configured to obtain an inter-prediction parameter and perform inter-prediction based on or using the inter-prediction parameter to obtain an inter-prediction unit 245. The motion compensation performed by the motion compensation block (not shown in FIG. 2) may include sampling or generating a prediction block based on the motion vector/block determined by motion estimation (possibly performing sub-pixel-accurate interpolation). Inter-frame polarization filtering allows additional pixel samples to be generated from known pixel samples, thereby potentially increasing the number of candidate prediction blocks that can be used to encode an image block. After receiving the motion vector for the PU of the current image block, the motion compensation unit 246 can find the prediction block pointed to by the motion vector in one of the reference image lists. Motion compensation block 246 may also generate a syntax element associated with the block and video slice, such that decoder 30 uses the syntax element to decode the image block in the video slice.

В частности, блок 244 межкадрового предсказания может передавать синтаксические элементы в блок 270 энтропийного кодирования, и синтаксические элементы включают в себя параметр межкадрового предсказания (например, информацию указания выбора режима межкадрового предсказания, используемого для предсказания текущего блока после прохождения множества режимов межкадрового предсказания). В возможном сценарии применения, если существует только один режим межкадрового предсказания, то параметр межкадрового предсказания альтернативно не может переноситься в синтаксическом элементе. В этом случае сторона 30 декодера может напрямую выполнять декодирование с использованием режима предсказания по умолчанию. Вполне понятно, что блок 244 межкадрового предсказания может быть выполнен с возможностью выполнения любой комбинации технологий межкадрового предсказания.Specifically, the inter-frame prediction unit 244 may transmit syntax elements to the entropy encoding unit 270, and the syntax elements include an inter-frame prediction parameter (eg, information indicating selection of an inter-frame prediction mode used to predict the current block after going through a plurality of inter-frame prediction modes). In a possible application scenario, if there is only one inter-prediction mode, then the inter-prediction parameter alternatively cannot be carried in the syntax element. In this case, the decoder side 30 may directly perform decoding using the default prediction mode. It will be understood that the inter-frame prediction unit 244 may be configured to perform any combination of inter-frame prediction technologies.

Блок 254 внутрикадрового предсказания выполнен с возможностью получения, например, приема, блока 203 изображения (текущего блока изображения) и одного или нескольких ранее восстановленных блоков, например, восстановленных соседних блоков, из одного и того же изображения для внутрикадровой оценки. Например, кодер 20 может быть выполнен с возможностью выбора режима внутрикадрового предсказания из множества (заданных) режимов внутрикадрового предсказания.The intra-frame prediction unit 254 is configured to obtain, for example, an image block 203 (the current image block) and one or more previously reconstructed blocks, for example, reconstructed neighboring blocks, from the same image for intra-frame estimation. For example, encoder 20 may be configured to select an intra-prediction mode from a plurality of (predetermined) intra-prediction modes.

В варианте осуществления кодер 20, выполненный с возможностью выбора режима внутрикадрового предсказания согласно критерию оптимизации, например, на основе минимального остатка (например, режима внутрикадрового предсказания, предоставляющего блок 255 предсказания, который наиболее похож на текущий блок 203 изображения) или минимальная скорость искажения.In an embodiment, an encoder 20 is configured to select an intra-prediction mode according to an optimization criterion, for example, based on a minimum residual (eg, an intra-prediction mode providing a prediction block 255 that is most similar to the current image block 203) or a minimum distortion rate.

Блок 254 внутрикадрового предсказания дополнительно выполнен с возможностью определения блока 255 внутрикадрового предсказания на основе, например, параметра внутрикадрового предсказания в выбранном режиме внутрикадрового предсказания. В любом случае, после выбора режима внутрикадрового предсказания для блока, блок 254 внутрикадрового предсказания дополнительно выполнен с возможностью передачи параметра внутрикадрового предсказания, а именно информации, указывающей выбранный режим внутрикадрового предсказания для блока, в блок 270 энтропийного кодирования. Например, блок 254 внутрикадрового предсказания может быть выполнен с возможностью выполнения любой комбинации технологий внутрикадрового предсказания.The intra prediction unit 254 is further configured to determine the intra prediction unit 255 based on, for example, an intra prediction parameter in the selected intra prediction mode. In any case, after selecting an intra prediction mode for a block, the intra prediction block 254 is further configured to transmit an intra prediction parameter, namely, information indicating the selected intra prediction mode for the block, to the entropy encoding block 270. For example, intra-frame prediction unit 254 may be configured to perform any combination of intra-frame prediction technologies.

В частности, блок 254 внутрикадрового предсказания может передавать синтаксические элементы в блок 270 энтропийного кодирования, и синтаксические элементы включают в себя параметр внутрикадрового предсказания (например, информацию указания выбора режима внутрикадрового предсказания, используемого для предсказания текущего блока после прохождения множества режимов внутрикадрового предсказания). В возможном сценарии применения, если существует только один режим внутрикадрового предсказания, то параметр внутрикадрового предсказания альтернативно не может переноситься в синтаксическом элементе. В этом случае сторона 30 декодера может напрямую выполнять декодирование в режиме предсказания по умолчанию.Specifically, the intra prediction unit 254 may supply syntax elements to the entropy encoding unit 270, and the syntax elements include an intra prediction parameter (eg, information indicating selection of an intra prediction mode used to predict the current block after going through a plurality of intra prediction modes). In a possible application scenario, if there is only one intra-prediction mode, then the intra-prediction parameter alternatively cannot be carried in the syntax element. In this case, the decoder side 30 may directly perform decoding in the default prediction mode.

Блок 270 энтропийного кодирования выполнен с возможностью применения (или неприменения) алгоритма или схемы энтропийного кодирования (например, схемы кодирования переменной длины (variable length coding, VLC), схемы контекстно-адаптивного VLC (context adaptive VLC, CAVLC), схемы арифметического кодирования, контекстно-адаптивного двоичного арифметического кодирования (context adaptive binary arithmetic coding, CABAC), основанного на синтаксисе контекстно-адаптивного двоичного арифметического кодирования (syntax-based context-adaptive binary arithmetic coding, SBAC), энтропийного кодирования с разделением интервала вероятности (probability interval partitioning entropy, PIPE) или другой методологии или технологии энтропийного кодирования) к одному или всем коэффициентам 209 квантованного остатка, параметру межкадрового предсказания, параметру внутрикадрового предсказания и/или параметру контурного фильтра для получения кодированных данных 21 изображения, которые могут выводиться через выход 272, например, в виде кодированного битового потока 21. Кодированный битовый поток может быть передан в видеодекодер 30, или заархивирован для более поздней передачи или извлечен видеодекодером 30. Блок 270 энтропийного кодирования может быть дополнительно выполнен с возможностью энтропийного кодирования другого синтаксического элемента для текущего кодируемого видеослайса.Entropy coding block 270 is configured to use (or not use) an entropy coding algorithm or scheme (e.g., variable length coding (VLC), context adaptive VLC (CAVLC), arithmetic coding scheme, context - adaptive binary arithmetic coding (CABAC), based on the syntax of context-adaptive binary arithmetic coding (SBAC), entropy coding with probability interval partitioning entropy, PIPE) or other entropy encoding methodology or technology) to one or all of the quantized residual coefficients 209, the inter-prediction parameter, the intra-prediction parameter, and/or the edge filter parameter to obtain encoded image data 21, which can be output via output 272, for example, as encoded bitstream 21. The encoded bitstream may be sent to video decoder 30, or archived for later transmission, or retrieved by video decoder 30. Entropy encoding block 270 may be further configured to entropy encode another syntax element for the current video slice being encoded.

Другой структурный вариант видеокодера 20 может использоваться для кодирования видеопотока. Например, кодер 20, не основанный на преобразовании, может напрямую квантовать сигнал остатка без блока 206 обработки преобразования для некоторых блоков или кадров. В другой реализации кодер 20 может иметь блок 208 квантования и блок 210 обратного квантования, объединенные в единый блок.Another design of video encoder 20 may be used to encode a video stream. For example, the non-transform-based encoder 20 may directly quantize the remainder signal without transform processing block 206 for some blocks or frames. In another implementation, encoder 20 may have a quantization unit 208 and an inverse quantization unit 210 combined into a single unit.

В частности, в вариантах осуществления настоящей заявки кодер 20 может быть выполнен с возможностью реализации способа кодирования видеоизображения, описанного в последующих вариантах осуществления.In particular, in embodiments of the present application, the encoder 20 may be configured to implement the video encoding method described in the following embodiments.

Следует понимать, что другой структурный вариант видеокодера 20 может использоваться для кодирования видеопотока. Например, для некоторых блоков изображения или кадров изображения видеокодер 20 может непосредственно квантовать сигнал остатка, при этом не требуется обработка блоком 206 обработки преобразования, и, соответственно, также не требуется обработка блоком 212 обработки обратного преобразования. В качестве альтернативы, для некоторых блоков изображения или кадров изображения видеокодер 20 не вырабатывает остаточные данные, и, соответственно, не требуется выполнять обработку блоком 206 обработки преобразования, блоком 208 квантования, блоком 210 обратного квантования и блоком 212 обработки обратного преобразования. В качестве альтернативы, видеокодер 20 может напрямую сохранять восстановленный блок изображения в качестве опорного блока, и обработка фильтром 220 не требуется. В качестве альтернативы, блок 208 квантования и блок 210 обратного квантования могут быть объединены в видеокодере 20. Контурный фильтр 220 не является обязательным. В дополнение к этому, в случае кодирования со сжатием без потерь блок 206 обработки преобразования, блок 208 квантования, блок 210 обратного квантования и блок 212 обработки обратного преобразования являются необязательными. Следует понимать, что в различных сценариях применения могут выборочно использоваться блок 244 межкадрового предсказания и блок 254 внутрикадрового предсказания.It should be understood that another design of video encoder 20 may be used to encode the video stream. For example, for some image blocks or image frames, the video encoder 20 may directly quantize the residual signal without requiring processing by the transform processing unit 206, and accordingly, also not requiring processing by the inverse transform processing unit 212. Alternatively, for some image blocks or image frames, the video encoder 20 does not produce residual data, and accordingly, processing by the transform processing unit 206, the quantization unit 208, the inverse quantization unit 210, and the inverse transform processing unit 212 are not required to be performed. Alternatively, video encoder 20 may directly store the reconstructed image block as a reference block, and processing by filter 220 is not required. Alternatively, quantizer 208 and inverse quantizer 210 may be combined in video encoder 20. Loop filter 220 is optional. In addition, in the case of lossless compression encoding, the transform processing unit 206, the quantization unit 208, the inverse quantization unit 210, and the inverse transform processing unit 212 are optional. It should be understood that inter-frame prediction unit 244 and intra-frame prediction unit 254 may be selectively used in various application scenarios.

На фиг. 3 показана схематичная/концептуальная блок-схема примера декодера 30, выполненного с возможностью реализации варианта осуществления настоящей заявки. Видеодекодер 30 выполнен с возможностью приема кодированных данных изображения (например, кодированного битового потока) 21, кодированных, например, кодером 20, для получения декодированного изображения 231. В процессе декодирования видеодекодер 30 принимает видеоданные из видеокодера 20, например, кодированный битовый поток видео, который представляет блок изображения кодированного видеослайса и связанный с ним синтаксический элемент.In fig. 3 shows a schematic/conceptual block diagram of an example decoder 30 configured to implement an embodiment of the present application. Video decoder 30 is configured to receive encoded image data (e.g., encoded bitstream) 21 encoded, e.g., by encoder 20, to obtain decoded image 231. During the decoding process, video decoder 30 receives video data from video encoder 20, e.g., encoded video bitstream, which represents an encoded video slice image block and its associated syntax element.

В примере, показанном на фиг. 3, декодер 30 включает в себя блок 304 энтропийного декодирования, блок 310 обратного квантования, блок 312 обработки обратного преобразования, блок 314 восстановления (например, сумматор 314), буфер 316, контурный фильтр 320, Буфер 330 декодированных изображений и блок 360 обработки предсказания. Блок 360 обработки предсказания может включать в себя блок 344 межкадрового предсказания, блок 354 внутрикадрового предсказания и блок 362 выбора режима. В некоторых примерах видеодекодер 30 может выполнять процесс декодирования, который является приблизительно обратным процессу кодирования, описанному по отношению к видеокодеру 20, показанному на фиг. 2.In the example shown in FIG. 3, the decoder 30 includes an entropy decoding unit 304, an inverse quantization unit 310, an inverse transform processing unit 312, a reconstruction unit 314 (eg, an adder 314), a buffer 316, a loop filter 320, a decoded image buffer 330, and a prediction processing unit 360. The prediction processing unit 360 may include an inter-frame prediction unit 344, an intra-frame prediction unit 354, and a mode selection unit 362. In some examples, video decoder 30 may perform a decoding process that is approximately the reverse of the encoding process described with respect to video encoder 20 shown in FIG. 2.

Блок 304 энтропийного декодирования выполнен с возможностью выполнения энтропийного декодирования кодированных данных 21 изображения для получения, например, квантованного коэффициента 309 и/или декодированного параметра кодирования (не показан на фиг. 3), например, любого одного или всех из: параметра межкадрового предсказания, параметра внутрикадрового предсказания, параметра контурного фильтра и/или другого синтаксического элемента (которые декодируются). Блок 304 энтропийного декодирования дополнительно выполнен с возможностью пересылки параметра межкадрового предсказания, параметра внутрикадрового предсказания и/или другого синтаксического элемента в блок 360 обработки предсказания. Видеодекодер 30 может принимать синтаксические элементы на уровне видеослайса и/или уровне видеоблока.The entropy decoding unit 304 is configured to perform entropy decoding of the encoded image data 21 to obtain, for example, a quantized coefficient 309 and/or a decoded encoding parameter (not shown in FIG. 3), for example, any one or all of: an inter-frame prediction parameter, a parameter intra-frame prediction, edge filter parameter and/or other syntactic element (which are decoded). The entropy decoding block 304 is further configured to forward an inter-frame prediction parameter, an intra-frame prediction parameter and/or other syntactic element to the prediction processing block 360. Video decoder 30 may receive syntax elements at the video slice level and/or video block level.

Блок 310 обратного квантования может иметь ту же функцию, что и блок 210 обратного квантования. Блок 312 обработки обратного преобразования может иметь ту же функцию, что и блок 212 обработки обратного преобразования. Блок 314 восстановления может иметь ту же функцию, что и блок 214 восстановления. Буфер 316 может иметь ту же функцию, что и буфер 216. Контурный фильтр 320 может иметь ту же функцию, что и контурный фильтр 220. Буфер 330 декодированных изображений может иметь ту же функцию, что и буфер 230 декодированных изображений.The inverse quantization unit 310 may have the same function as the inverse quantization unit 210 . The inverse transform processing unit 312 may have the same function as the inverse transform processing unit 212. The recovery block 314 may have the same function as the recovery block 214. Buffer 316 may have the same function as buffer 216. Loop filter 320 may have the same function as loop filter 220. Decoded image buffer 330 may have the same function as decoded image buffer 230.

Блок 360 обработки предсказания может включать в себя блок 344 межкадрового предсказания и блок 354 внутрикадрового предсказания. Блок 344 межкадрового предсказания может быть аналогичным по своим функциям блоку 244 межкадрового предсказания, и блок 354 внутрикадрового предсказания может быть аналогичным по своим функциям блоку 254 внутрикадрового предсказания. Блок 360 обработки предсказания обычно выполнен с возможностью выполнения предсказания блока и/или получения блока 365 предсказания из кодированных данных 21, а также приема или получения (явно или неявно) связанного с предсказанием параметра и/или информации о выбранном режиме предсказания, например, из блока 304 энтропийного декодирования.The prediction processing unit 360 may include an inter-frame prediction unit 344 and an intra-frame prediction unit 354. The inter-frame prediction unit 344 may be similar in function to the inter-frame prediction unit 244, and the intra-frame prediction unit 354 may be similar in function to the intra-frame prediction unit 254. Prediction processing unit 360 is typically configured to perform block prediction and/or obtain prediction block 365 from encoded data 21, and receive or obtain (explicitly or implicitly) a prediction-related parameter and/or information about a selected prediction mode, for example, from the block 304 entropy decoding.

Когда видеослайс кодируется во внутрикадрово-кодированный слайс (I), блок 354 внутрикадрового предсказания блока 360 обработки предсказания конфигурируется таким образом, чтобы выработать блок 365 предсказания для блока изображения текущего видеослайса на основе просигнализированного режима внутрикадрового предсказания и данных ранее декодированного блока текущего кадра или изображения. Когда видеокадр кодируется в межкадрово-кодированный (а именно, B или P) слайс, блок 344 межкадрового предсказания (например, блок компенсации движения) в блоке 360 обработки предсказания конфигурируется таким образом, чтобы выработать блок 365 предсказания видеоблока в текущем видеослайсе на основе вектора движения и другого синтаксического элемента, который принимается из блока 304 энтропийного декодирования. Для межкадрового предсказания блок предсказания может быть выработан из одного из опорных изображений в одном списке опорных изображений. Видеодекодер 30 может составлять списки опорных кадров, список 0 и список 1, используя технологию составления по умолчанию и на основе опорных изображений, хранящихся в DPB 330.When a video slice is encoded into an intra-encoded slice (I), the intra-frame prediction block 354 of the prediction processing block 360 is configured to generate a prediction block 365 for the image block of the current video slice based on the signaled intra-prediction mode and the previously decoded block data of the current frame or image. When a video frame is encoded into an interframe-coded (namely, B or P) slice, an interframe prediction unit 344 (e.g., a motion compensation unit) in the prediction processing unit 360 is configured to generate a video block prediction unit 365 in the current video slice based on the motion vector and another syntactic element that is received from entropy decoding block 304. For inter-picture prediction, a prediction block may be generated from one of the reference pictures in one reference picture list. Video decoder 30 may compile reference frame lists, list 0 and list 1, using default composition technology and based on reference pictures stored in DPB 330.

Блок 360 обработки предсказания выполнен с возможностью определения информации предсказания для видеоблока текущего видеослайса путем синтаксического анализа вектора движения и других синтаксических элементов и использования информации предсказания для выработки блока предсказания для текущего декодируемого видеоблока. В примере настоящей заявки блок 360 обработки предсказания определяет, используя некоторые принятые синтаксические элементы, режим предсказания (например, внутрикадрового или межкадрового предсказания) для кодирования видеоблока в видеослайсе, тип слайса межкадрового предсказания (например, B-слайс, P-слайс или GPB-слайс), информацию о составлении одного или нескольких списков опорных изображений для слайса, вектор движения каждого межкадрово-кодированного видеоблока для слайса, статус межкадрового предсказания каждого межкадрово-кодированного видеоблока в слайсе и другую информацию, чтобы декодировать видеоблок в текущем видеослайсе. В другом примере настоящего раскрытия синтаксические элементы, принятые видеодекодером 30 из битового потока, включают в себя синтаксические элементы в одном или нескольких из: адаптивного набора параметров (adaptive parameter set, APS), набора параметров последовательности (sequence parameter set, SPS), набора параметров изображения (picture parameter set, PPS) или заголовка слайса.The prediction processing unit 360 is configured to determine prediction information for a video block of the current video slice by parsing the motion vector and other syntax elements and using the prediction information to generate a prediction block for the current video block being decoded. In an example of the present application, prediction processing unit 360 determines, using certain received syntax elements, a prediction mode (eg, intra-frame or inter-frame prediction) for encoding a video block in a video slice, the type of inter-frame prediction slice (eg, B-slice, P-slice, or GPB-slice) ), information about constructing one or more reference picture lists for the slice, the motion vector of each interframe video block for the slice, the interframe prediction status of each interframe video block in the slice, and other information to decode the video block in the current video slice. In another example of the present disclosure, syntax elements received by video decoder 30 from the bitstream include syntax elements in one or more of: an adaptive parameter set (APS), a sequence parameter set (SPS), a parameter set image (picture parameter set, PPS) or slice title.

Блок 310 обратного квантования может быть выполнен с возможностью выполнения обратного квантования (а именно, деквантования) над квантованным коэффициентом преобразования, предоставленным в битовом потоке, и декодирован блоком 304 энтропийного декодирования. Процесс деквантования может включать в себя: использование параметра квантования, вычисленного по видеокодер 20 для каждого видеоблока в видеослайсе, чтобы определить степень квантования, которая должна быть применена, и степень деквантования, которая должна быть применена.The inverse quantization block 310 may be configured to perform inverse quantization (namely, dequantization) on the quantized transform coefficient provided in the bit stream and decoded by the entropy decoding block 304. The dequantization process may include: using a quantization parameter calculated from video encoder 20 for each video block in the video slice to determine the degree of quantization to be applied and the degree of dequantization to be applied.

Блок 312 обработки обратного преобразования выполнен с возможностью применения обратного преобразования (например, обратного DCT, обратного целочисленного преобразования или концептуально аналогичного процесса обратного преобразования) к коэффициенту преобразования, чтобы выработать блок остатка в области выборки.The inverse transform processing unit 312 is configured to apply an inverse transform (eg, an inverse DCT, an inverse integer transform, or a conceptually similar inverse transform process) to the transform coefficient to produce a residual block in the sample region.

Блок 314 восстановления (например, сумматор 314) выполнен с возможностью добавления блока 313 обратного преобразования (а именно, восстановленного блока 313 остатка) к блоку 365 предсказания, например, путем сложения значений выборок восстановленного блока 313 остатка и значений выборок блока 365 предсказания, чтобы получить восстановленный блок 315 в области выборки.The reconstruction block 314 (e.g., the adder 314) is configured to add an inverse transform block 313 (namely, the reconstructed remainder block 313) to the prediction block 365, for example, by adding the sample values of the reconstructed remainder block 313 and the sample values of the prediction block 365 to obtain reconstructed block 315 in the sample area.

Блок 320 контурного фильтра (в контуре кодирования или после контура кодирования) выполнен с возможностью фильтрации восстановленного блока 315 для получения фильтрованного блока 321, сглаживания перехода между выборками или повышения качества видео. В примере блок 320 контурного фильтра может быть выполнен с возможностью выполнения любой комбинации технологий фильтрации, описанных ниже. Блок 320 контурного фильтра предназначен для представления одного или нескольких контурных фильтров, таких как фильтр удаления блочности, фильтр адаптивного смещения выборки (sample-adaptive offset, SAO) или другой фильтр, например, двусторонний фильтр, адаптивный контурный фильтр (adaptive loop filter, ALF), фильтр повышения резкости или сглаживания или объединенный фильтр. Хотя блок 320 контурного фильтра показан на фиг. 3, в другой реализации блок 320 контурного фильтра может быть реализован как постконтурный фильтр.A loop filter block 320 (either in the encoding loop or after the encoding loop) is configured to filter the reconstructed block 315 to produce a filtered block 321, smooth the transition between samples, or improve video quality. In an example, loop filter block 320 may be configured to perform any combination of filtering technologies described below. Loop filter block 320 is configured to represent one or more loop filters, such as a deblocking filter, a sample-adaptive offset (SAO) filter, or another filter, such as a two-way filter, an adaptive loop filter (ALF). , a sharpening or smoothing filter, or a combined filter. Although loop filter block 320 is shown in FIG. 3, in another implementation, loop filter block 320 may be implemented as a post-loop filter.

Затем декодированный видеоблок 321 в данном кадре или изображении сохраняется в буфере 330 декодированных изображений, который хранит опорное изображение, используемое для последующей компенсации движения.The decoded video block 321 in a given frame or image is then stored in a decoded image buffer 330, which stores a reference image used for subsequent motion compensation.

Декодер 30 выполнен, например, с возможностью вывода декодированного изображения 331 через выход 332 для представления или просмотра пользователю.The decoder 30 is configured, for example, to output the decoded image 331 through an output 332 for presentation or viewing to a user.

Для декодирования сжатого битового потока может использоваться другой вариант видеодекодера 30. Например, декодер 30 может выработать выходной видеопоток без блока 320 контурного фильтра. Например, декодер 30 без преобразования может выполнять обратное квантование сигнала остатка напрямую без блока 312 обработки обратного преобразования для некоторых блоков или кадров. В другой реализации видеодекодер 30 может иметь блок 310 деквантования и блок 312 обработки обратного преобразования, которые объединены в один блок.Another embodiment of video decoder 30 may be used to decode the compressed bit stream. For example, decoder 30 may produce an output video stream without loop filter block 320. For example, the no-transform decoder 30 may perform inverse quantization of the residual signal directly without the inverse transform processing unit 312 for some blocks or frames. In another implementation, video decoder 30 may have a dequantization block 310 and an inverse transform processing block 312, which are combined into one block.

В частности, в вариантах осуществления настоящей заявки декодер 30 выполнен с возможностью реализации способа декодирования видеоизображения, описанного в последующих вариантах осуществления.Specifically, in the embodiments of the present application, the decoder 30 is configured to implement the video decoding method described in the following embodiments.

Следует понимать, что другой структурный вариант видеодекодера 30 может использоваться для декодирования кодированного битового потока видеоданных. Например, видеодекодер 30 может выработать выходной видеопоток без обработки фильтром 320. В качестве альтернативы, для некоторых блоков изображения или кадров изображения блок 304 энтропийного декодирования видеодекодера 30 не получает квантованные коэффициенты путем декодирования и, соответственно, нет необходимости в блоке 310 деквантования и блоке 312 обработки обратного преобразования для выполнения обработки. Контурный фильтр 320 не является обязательным. В дополнение к этому, в случае сжатия без потерь блок 310 деквантования и блок 312 обработки обратного преобразования также являются необязательными. Следует понимать, что в различных сценариях применения блок межкадрового предсказания и блок внутрикадрового предсказания могут использоваться выборочно.It should be understood that another design of video decoder 30 may be used to decode the encoded video bitstream. For example, video decoder 30 may produce an output video stream without processing by filter 320. Alternatively, for some image blocks or image frames, entropy decoding block 304 of video decoder 30 does not obtain quantized coefficients by decoding and, accordingly, there is no need for dequantization block 310 and processing block 312 inverse transformation to perform processing. The 320 loop filter is optional. In addition to this, in the case of lossless compression, the dequantization unit 310 and the inverse transform processing unit 312 are also optional. It should be understood that in various application scenarios, the inter-frame prediction unit and the intra-frame prediction unit may be used selectively.

Следует понимать, что в настоящей заявке в кодере 20 и декодере 30 результат обработки для процедуры может быть выведен в следующую процедуру после дальнейшей обработки. Например, после такой процедуры, как интерполяционная фильтрация, получение вектора движения или контурная фильтрация, операция, такая как отсечение или сдвиг, над результатом обработки соответствующей процедуры, дополнительно выполняется.It should be understood that in the present application, in the encoder 20 and decoder 30, the processing result for a procedure may be output to the next procedure after further processing. For example, after a procedure such as interpolation filtering, motion vector derivation, or contour filtering, an operation such as clipping or shifting is further performed on the result of the corresponding procedure.

Например, можно дополнительно обработать вектор движения контрольной точки текущего блока изображения или вектор движения подблока текущего блока изображения, полученный из вектора движения соседнего аффинного блока кодирования. Настоящая заявка не ограничивается этим случаем. Например, значение вектора движения ограничено определенным диапазоном битовой ширины. Предполагая, что допустимая разрядность вектора движения равна bitDepth, значение вектора движения находится в диапазоне от -2^(bitDepth-1) до 2^(bitDepth-1)-1, где символ "^" обозначает возведение в степень. Если bitDepth равно 16, значение находится в диапазоне от -32768 до 32767. Если bitDepth равно 18, значение находится в диапазоне от -131072 до 131071. В другом примере значение вектора движения (например, векторы движения MV четырех подблоков размером 4×4 в пределах одного блока изображения размером 8×8) ограничивается таким образом, чтобы максимальная разница между целыми частями MV четырех подблоков 4×4 не превышала N выборок, например, не превышала 1 выборку.For example, the motion vector of a reference point of the current image block or the motion vector of a subblock of the current image block obtained from the motion vector of an adjacent affine encoding block can be further processed. The present application is not limited to this case. For example, the value of a motion vector is limited to a certain bit width range. Assuming the motion vector's allowed bit depth is bitDepth, the value of the motion vector is in the range -2^(bitDepth-1) to 2^(bitDepth-1)-1, where the symbol "^" denotes exponentiation. If bitDepth is 16, the value is in the range -32768 to 32767. If bitDepth is 18, the value is in the range -131072 to 131071. In another example, the motion vector value (for example, the MV motion vectors of four 4x4 subblocks within one 8x8 image block) is limited such that the maximum difference between the whole MV parts of four 4x4 subblocks does not exceed N samples, for example, does not exceed 1 sample.

На фиг. 4 показана схематичная структурная схема устройства 400 для кодирования видео (например, устройства 400 для кодирования видео или устройства 400 для декодирования видео) согласно варианту осуществления настоящей заявки. Устройство 400 для кодирования видео подходит для реализации вариантов осуществления, описанных в данной спецификации. В варианте осуществления устройство 400 для кодирования видео может быть видеодекодером (например, декодером 30 на фиг. 1A) или видеокодером (например, кодером 20 на фиг. 1A). В другом варианте осуществления устройство 400 для кодирования видео может быть одним или более компонентами декодера 30 (фиг. 1A) или кодера 20 (фиг. 1А).In fig. 4 is a schematic block diagram of a video encoding apparatus 400 (eg, a video encoding apparatus 400 or a video decoding apparatus 400) according to an embodiment of the present application. The video encoding apparatus 400 is suitable for implementing the embodiments described in this specification. In an embodiment, the video encoding device 400 may be a video decoder (eg, decoder 30 in FIG. 1A) or a video encoder (eg, encoder 20 in FIG. 1A). In another embodiment, video encoding device 400 may be one or more components of decoder 30 (FIG. 1A) or encoder 20 (FIG. 1A).

Устройство 400 для кодирования видео включает в себя: входной порт 410 и блок 420 приемника (Rx) для приема данных; процессор, логический блок или центральный процессор (CPU) 430 для обработки данных; блок 440 передатчика (Tx) (или кратко называемый передатчиком 440) и выходной порт 450 для передачи данных; и память 460 (например, память 460), выполненная с возможностью хранения данных. Устройство 400 для кодирования видео может дополнительно включать в себя компонент электро-оптического преобразования и электро-оптический (EO) компонент, подключенный к входному порту 410, блок 420 приемника (или кратко называемый приемником 420), блок 440 передатчика и выходной порт 450 для вывода или ввода оптических или электрических сигналов.The video encoding device 400 includes: an input port 410 and a receiver (Rx) unit 420 for receiving data; a processor, logical unit, or central processing unit (CPU) 430 for processing data; a transmitter (Tx) unit 440 (or briefly called transmitter 440) and a data output port 450; and a memory 460 (eg, memory 460) configured to store data. The video encoding apparatus 400 may further include an electro-optical conversion component and an electro-optical (EO) component connected to an input port 410, a receiver unit 420 (or briefly referred to as a receiver 420), a transmitter unit 440, and an output port 450 for outputting or input of optical or electrical signals.

Процессор 430 реализован с помощью аппаратных средств и программного обеспечения. Процессор 430 может быть реализован как одна или более микросхем CPU, ядер (например, многоядерный процессор), FPGA, ASIC и DSP. Процессор 430 обменивается данными с входными портами 410, блоком 420 приемника, блоком 440 передатчика, выходными портами 450 и памятью 460. Процессор 430 включает в себя блок 470 кодирования (например, блок 470 кодирования или блок 470 декодирования). Блок 470 кодирования/декодирования реализует варианты осуществления, раскрытые в настоящем описании, для реализации способа предсказания блока цветности, предусмотренного в вариантах осуществления настоящей заявки. Например, блок 470 кодирования/декодирования выполняет, обрабатывает или предоставляет различные операции кодирования. Таким образом, блок 470 кодирования/декодирования существенно улучшает функции устройства 400 кодирования видео и влияет на преобразование устройства 400 кодирования видео в другое состояние. В качестве альтернативы, блок 470 кодирования/декодирования реализован как инструкция, хранящаяся в памяти 460 и выполняемая процессором 430.The processor 430 is implemented in hardware and software. Processor 430 may be implemented as one or more CPU chips, cores (eg, a multi-core processor), FPGA, ASIC, and DSP. Processor 430 communicates with input ports 410, receiver block 420, transmitter block 440, output ports 450, and memory 460. Processor 430 includes an encoding block 470 (eg, encoding block 470 or decoding block 470). The encoding/decoding block 470 implements the embodiments disclosed in the present description to implement the chrominance block prediction method provided in the embodiments of the present application. For example, encoding/decoding unit 470 performs, processes, or provides various encoding operations. Thus, the encoding/decoding unit 470 significantly improves the functions of the video encoding device 400 and affects the conversion of the video encoding device 400 to another state. Alternatively, encoding/decoding block 470 is implemented as an instruction stored in memory 460 and executed by processor 430.

Память 460 включает в себя один или более дисков, ленточных накопителей и твердотельных накопителей и может использоваться в качестве устройства для хранения данных переполнения, для хранения программ, когда такие программы выбираются для выполнения, и для хранения инструкций и данных, которые считываются во время выполнения программы. Память 460 может быть энергозависимой и/или энергонезависимой и может быть постоянным запоминающим устройством (ROM), оперативным запоминающим устройством (RAM), троичной памятью с адресацией по содержанию (ternary content-addressable memory, TCAM) и/или статической оперативной памятью (SRAM).Memory 460 includes one or more disks, tape drives, and solid state drives and may be used as a device for storing overflow data, for storing programs when such programs are selected for execution, and for storing instructions and data that are read during program execution. . Memory 460 may be volatile and/or nonvolatile and may be read only memory (ROM), random access memory (RAM), ternary content-addressable memory (TCAM), and/or static random access memory (SRAM). .

На фиг. 5 показана упрощенная блок-схема устройства 500, которое может использоваться как одно или два из устройства-источника 12 и устройства-адресата 14 (фиг. 1A) согласно примерному варианту осуществления. Устройство 500 может реализовывать технологии настоящей заявки. Другими словами, на фиг. 5 показана схематичная блок-схема реализации устройства кодирования или устройства декодирования (устройства 500 кодирования для краткости) согласно варианту осуществления настоящей заявки. Устройство 500 кодирования может включать в себя процессор 510, память 530 и шинную систему 550. Процессор и память связаны через шинную систему. Память выполнена с возможностью хранения инструкции. Процессор выполнен с возможностью исполнения инструкции, хранящейся в памяти. Память устройства кодирования хранит программный код, и процессор могут вызывать программный код, хранящийся в памяти, чтобы выполнять различные способы кодирования или декодирования видеоизображения, описанные в настоящей заявке, особенно способы кодирование или декодирования видео в различных режимах межкадрового предсказания или режимах внутрикадрового предсказания. Во избежание повторения, подробности в данном документе повторно не описываются.In fig. 5 shows a simplified block diagram of a device 500 that can be used as one or two of a source device 12 and a destination device 14 (FIG. 1A) according to an exemplary embodiment. The device 500 may implement the technologies of the present application. In other words, in FIG. 5 is a schematic block diagram of an implementation of an encoding apparatus or a decoding apparatus (encoding apparatus 500 for short) according to an embodiment of the present application. The encoding device 500 may include a processor 510, a memory 530, and a bus system 550. The processor and memory are coupled through the bus system. The memory is configured to store instructions. The processor is configured to execute instructions stored in memory. The memory of the encoding apparatus stores the program code, and the processor may call the program code stored in the memory to perform various video encoding or decoding methods described herein, especially methods for encoding or decoding video in various inter-frame prediction modes or intra-frame prediction modes. To avoid repetition, the details are not repeated in this document.

В данном варианте осуществления настоящей заявки процессор 510 может быть центральным процессором (Central Processing Unit, сокращенно "CPU"). В качестве альтернативы, процессор 510 может быть другим процессором общего назначения, процессором цифровых сигналов (DSP), специализированной интегральной схемой (ASIC), программируемой пользователем вентильной матрицей (FPGA) или другим программируемым логическим устройством, дискретным вентилем или транзисторным логическим устройством, дискретным аппаратным компонентом и т.п. Процессор общего назначения может быть микропроцессором, или процессор может быть любым обычным процессором и т.п.In this embodiment of the present application, the processor 510 may be a central processing unit (Central Processing Unit, abbreviated as "CPU"). Alternatively, processor 510 may be another general purpose processor, digital signal processor (DSP), application specific integrated circuit (ASIC), field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic device, discrete hardware component and so on. The general purpose processor may be a microprocessor, or the processor may be any general processor, or the like.

Память 530 может включать в себя постоянное запоминающее устройство (ROM) или оперативное запоминающее устройство (RAM). Альтернативно в качестве памяти 530 может использоваться запоминающее устройство любого другого подходящего типа. Память 530 может включать в себя код и данные 531, к которым имеет доступ процессор 510 через шину 550. Память 530 может дополнительно включать в себя операционную систему 533 и прикладную программу 535. Прикладная программа 535 включает в себя по меньшей мере одну программу, которая позволяет процессору 510 выполнять способ кодирования или декодирования видео, описанный в настоящей заявке (в частности, способ предсказания видеоизображения или способ межкадрового предсказания, описанный в настоящей заявке). Например, прикладная программа 535 может включать в себя приложения 1-N и дополнительно включать в себя приложение для кодирования или декодирования видео (называемое для краткости приложением для кодирования видео), которое выполняет способ кодирования или декодирования видео, описанный в настоящей заявке.Memory 530 may include read-only memory (ROM) or random access memory (RAM). Alternatively, memory 530 may be any other suitable type of memory device. Memory 530 may include code and data 531 that is accessed by processor 510 via bus 550. Memory 530 may further include an operating system 533 and an application program 535. Application program 535 includes at least one program that allows processor 510 to perform a video encoding or decoding method described in this application (specifically, a video image prediction method or an inter-frame prediction method described in this application). For example, application program 535 may include applications 1-N and further include a video encoding or decoding application (referred to as a video encoding application for short) that performs the video encoding or decoding method described herein.

В дополнение к шине данных шинная система 550 может дополнительно включать в себя шину питания, шину управления, шину сигнала состояния и т.п. Однако для наглядного описания шины различных типов, показанные на чертеже, обозначены как шинная система 550.In addition to the data bus, bus system 550 may further include a power bus, a control bus, a status signal bus, and the like. However, for purposes of clarity, the various types of buses shown in the drawing are designated as 550 bus system.

При необходимости устройство 500 кодирования может дополнительно включать в себя одно или более устройств вывода, например, дисплей 570. В примере дисплей 570 может быть сенсорным дисплеем, который объединяет дисплей и сенсорный блок, который оперативно воспринимает сенсорный ввод. Дисплей 570 может быть подключен к процессору 510 через шину 550.Optionally, encoder 500 may further include one or more output devices, such as a display 570. In an example, display 570 may be a touch display that combines a display and a touch unit that operatively senses touch input. Display 570 may be connected to processor 510 via bus 550.

Межкадровое предсказание является важным этапом в вариантах осуществления настоящей заявки. С точки зрения кодера, межкадровое предсказание представляет собой поиск в восстановленном изображении сопоставимого опорного блока для текущего блока кодирования в текущем изображении. Как показано на фиг. 5A, значение выборки в опорном блоке (например, в опорном блоке Fr1 или опорном блоке Fr2, где значение выборки в опорном блоке может рассматриваться в настоящей заявке как значение опорной выборки) используется в качестве предсказанной информации или предсказанного значения (далее "информация" и "значение" не различаются) выборки в текущем блоке Fc кодирования (то есть в текущем блоке изображения). Этот процесс называется оценкой движения (motion estimation, ME). В дополнение к этому, передается информация движения текущего блока кодирования. С точки зрения декодера, информация движения должна быть получена путем синтаксического анализа во время межкадрового предсказания, опорный блок определяется в восстановленном изображении на основе полученной информации движения, и значение выборки (то есть значение опорной выборки) в опорном блоке используется в качестве предсказанной информации. Этот процесс называется компенсацией движения (motion compensation, MC). Восстановленная информация может быть получена путем объединения предсказанной информации и информации об остатке и выполнения операции фильтрации над объединенной информацией. Идея настоящей заявки может быть использована в HEVC или может быть использована в другом стандарте кодирования видео. Ниже описывается возможный случай режима межкадрового предсказания на стороне кодера с использованием примера, в котором эта идея используется в HEVC. Возможный случай режима межкадрового предсказания на стороне декодера является аналогичным, поэтому его дополнительное описание не приводится.Inter-frame prediction is an important step in embodiments of the present application. From the encoder's point of view, inter-frame prediction is a search in the reconstructed image for a comparable reference block for the current encoding block in the current image. As shown in FIG. 5A, a sample value in a reference block (for example, a reference block Fr1 or a reference block Fr2, where the sample value in a reference block may be considered in this application as a reference sample value) is used as predicted information or predicted value (hereinafter referred to as "information" and " value" do not differ) samples in the current coding block Fc (that is, in the current image block). This process is called motion estimation (ME). In addition to this, motion information of the current encoding block is transmitted. From the decoder's point of view, motion information must be obtained by parsing during inter-frame prediction, a reference block is determined in the reconstructed image based on the acquired motion information, and a sample value (that is, a reference sample value) in the reference block is used as predicted information. This process is called motion compensation (MC). The reconstructed information can be obtained by combining the predicted information and the residual information and performing a filtering operation on the combined information. The idea of the present application may be used in HEVC or may be used in another video encoding standard. A possible case of encoder-side inter-prediction mode is described below using an example that uses this idea in HEVC. The possible case of inter-frame prediction mode on the decoder side is similar, so no further description is provided.

В HEVC имеются два режима: режим улучшенного предсказания векторов движения (Advanced Motion Vector Prediction, AMVP) и режим слияния (Merge). Ниже эти два режима описаны по отдельности.HEVC has two modes: Advanced Motion Vector Prediction (AMVP) mode and Merge mode. These two modes are described separately below.

В режиме AMVP сначала составляется список аффинных векторов движения-кандидатов с использованием информации движения кодированного блока, который пространственно или временно соседствует с текущим блоком кодирования, и затем определяется оптимальный вектор движения из списка аффинных векторов движения-кандидатов как предиктор вектора движения (Motion vector predictor, MVP) текущего блока кодирования. Стоимость скорости передачи и искажения (RD) рассчитывается по формуле (0-1), где J - стоимость скорости передачи и искажения (RD), SAD - сумма абсолютных разностей (Sum of Absolute Differences, SAD) между предсказанными значениями выборки и исходными значениями выборки, которая получается путем оценки движения, выполняемой с использованием предиктора вектора движения-кандидата, R - битовая скорость, и λ - множитель Лагранжа. Сторона кодера передает значение индекса выбранного предиктора вектора движения в списке аффинных векторов движения-кандидатов и значение индекса опорного кадра на сторону декодера. Кроме того, поиск движения выполняется в соседнем домене с центром в MVP, чтобы получить фактический вектор движения текущего блока кодирования. Сторона кодера передает разность (разность векторов движения) между MVP и фактическим вектором движения на сторону декодера.In AMVP mode, a list of candidate affine motion vectors is first constructed using the motion information of a coded block that is spatially or temporally adjacent to the current encoding block, and then the optimal motion vector is determined from the list of candidate affine motion vectors as a Motion vector predictor. MVP) of the current encoding block. The cost of bit rate and distortion (RD) is calculated using the formula (0-1), where J is the cost of bit rate and distortion (RD), SAD is the Sum of Absolute Differences (SAD) between the predicted sample values and the original sample values , which is obtained by motion estimation performed using a candidate motion vector predictor, R is the bit rate, and λ is the Lagrange multiplier. The encoder side transmits the index value of the selected motion vector predictor in the candidate affine motion vector list and the reference frame index value to the decoder side. In addition, motion search is performed in the neighboring domain centered at the MVP to obtain the actual motion vector of the current encoding block. The encoder side transmits the difference (motion vector difference) between the MVP and the actual motion vector to the decoder side.

J=SAD+λR (0-1)J=SAD+λR (0-1)

В режиме слияния список информации движения кандидатов сначала составляется с использованием информации движения кодированного блока, который пространственно или временно соседствует с текущим блоком кодирования, затем оптимальная информация движения определяется из списка информации движения кандидатов на основе стоимости "скорость передачи - искажение" и используется в качестве информации движения текущего блока кодирования, и значение индекса (обозначенное как индекс слияния, и то же самое название используется ниже) местоположения оптимальной информации движения в списке информации движения кандидатов передается на сторону декодера. Информация о пространственном и временном движении кандидата текущего блока кодирования показана на фиг. 5B. Информация движения пространственного кандидата поступает из пяти пространственных соседних блоков (A0, A1, B0, B1 и B2). Если соседний блок недоступен или находится в режиме внутрикадрового кодирования, соседний блок не добавляется в список информации движения кандидатов. Информация движения временного кандидата текущего блока кодирования получается после того, как MV совмещенного блока в опорном кадре масштабируется на основе значений счетчика очередности изображения (Picture Order Count, POC) опорного кадра и текущего кадра. Сначала определяется то, доступен ли блок в местоположении T в опорном кадре. Если блок недоступен, выбирается блок в местоположении C.In merging mode, a candidate motion information list is first compiled using the motion information of a coded block that is spatially or temporally adjacent to the current encoding block, then the optimal motion information is determined from the candidate motion information list based on the rate-distortion cost and used as information motion of the current encoding block, and an index value (denoted as merging index, and the same name is used below) of the location of the optimal motion information in the candidate motion information list is transmitted to the decoder side. The spatial and temporal motion information of the current encoding block candidate is shown in FIG. 5B. The motion information of the spatial candidate comes from five spatial neighboring blocks (A0, A1, B0, B1 and B2). If an adjacent block is unavailable or is in intra-frame coding mode, the adjacent block is not added to the candidate motion information list. The temporary candidate motion information of the current encoding block is obtained after the MV of the combined block in the reference frame is scaled based on the Picture Order Count (POC) values of the reference frame and the current frame. First, it is determined whether a block is available at location T in the reference frame. If a block is not available, the block at location C is selected.

При межкадровом предсказании в HEVC все выборки в текущем блоке кодирования используют одну и ту же информацию движения, и затем компенсация движения выполняется на основе информации движения, чтобы получить предсказанные значения выборок текущего блока кодирования. Информация движения в основном включает в себя: (1) направление предсказания блока кодирования, в том числе прямое предсказание, обратное предсказание и двунаправленное предсказание, где прямое предсказание указывает то, что блок кодирования получается путем предсказания на основе предыдущего кодированного кадра, обратное предсказание указывает то, что блок кодирования получается путем предсказания на основе последующего кодированного кадра, и двунаправленное предсказание указывает то, что блок кодирования получается путем предсказания со ссылкой на предыдущий кодированный кадр и последующий кодированный кадр; (2) индекс опорного кадра блока кодирования, указывающий кадр, в котором расположен опорный блок текущего блока кодирования; и (3) вектор движения MV блока кодирования, указывающий смещение движения блока кодирования относительно опорного блока, где MV включает в себя горизонтальный компонент (обозначенный как ) и вертикальный компонент (обозначенный как ), которые соответственно, представляют смещение движения блока кодирования относительно опорного блока в горизонтальном направлении и смещение движения блока кодирования относительно опорного блока в вертикальном направлении. Когда для блока кодирования выполняется прямое или обратное предсказание, имеется только один MV. Когда для блока кодирования выполняется двунаправленное (то есть прямое и обратное) предсказание, имеются два MV. На фиг. 5C представлена вышеизложенная информация движения. На фиг. 5C и в последующем описании информации движения и предсказанной информации, 0 представляет прямое предсказание, и 1 представляет обратное предсказание. Например, Ref0 представляет собой прямой опорный кадр, Ref1 представляет собой обратный опорный кадр, MV0 представляет вектор движения в прямом направлении, и MV1 представляет обратный вектор движения. A, B и C представляют, соответственно, прямой опорный блок, текущий блок кодирования и обратный опорный блок. Cur представляет текущий кадр кодирования, и пунктирная линия представляет движущийся трек B.In inter-frame prediction in HEVC, all samples in the current encoding block use the same motion information, and then motion compensation is performed based on the motion information to obtain the predicted values of the samples of the current encoding block. The motion information mainly includes: (1) the prediction direction of a coding block, including forward prediction, backward prediction and bidirectional prediction, where forward prediction indicates that a coding block is obtained by prediction based on the previous encoded frame, backward prediction indicates that that a coding block is obtained by prediction based on a subsequent coded frame, and bidirectional prediction indicates that a coding block is obtained by prediction with reference to a previous coded frame and a subsequent coded frame; (2) an encoding block reference frame index indicating the frame in which the reference block of the current encoding block is located; and (3) an encoding block motion vector MV indicating a motion offset of the encoding block relative to the reference block, where the MV includes a horizontal component (denoted as ) and the vertical component (denoted as ), which respectively represent the displacement of the encoding block's movement relative to the reference block in the horizontal direction and the displacement of the encoding block's movement relative to the reference block in the vertical direction. When forward or backward prediction is performed on a coding block, there is only one MV. When bidirectional (i.e., forward and backward) prediction is performed on a coding block, there are two MVs. In fig. 5C shows the above motion information. In fig. 5C and in the following description of motion information and predicted information, 0 represents forward prediction, and 1 represents reverse prediction. For example, Ref0 represents a forward reference frame, Ref1 represents a reverse reference frame, MV0 represents a forward motion vector, and MV1 represents a reverse motion vector. A, B and C represent, respectively, the forward reference block, the current encoding block and the reverse reference block. Cur represents the current encoding frame, and the dotted line represents the moving track B.

Базовый процесс компенсации движения прямого предсказания выглядит следующим образом: как показано на фиг. 5C текущим блоком кодирования на чертеже является блок B, и высота и ширина B равны, соответственно, H и W. В этом случае на основе информации движения выясняется, что прямой опорный кадр текущего блока B кодирования представляет собой кадр Ref0, и прямой вектор MV0 движения текущего блока B кодирования представляет собой (, ). При кодировании блока B кодирования в кадре Cur, сначала находится точка с такими же координатами в кадре Ref0 на основе координат (i, j) точки, находящейся в верхнем левом углу B в кадре Cur, блок B' в Ref0 может быть получен на основе длины и ширины блока B, и затем B' перемещается в блок A на основе MV0 блока B'. Наконец, над блоком A выполняется интерполяция для получения блока предсказания текущего блока B кодирования. Значение выборки каждой выборки в блоке предсказания текущего блока B кодирования упоминается как предсказанное значение соответствующей выборки в блоке B. Процесс компенсации движения при обратном предсказании является таким же, как и при прямом предсказании, но опорные направления отличаются. Следует отметить, что блоки предсказания, полученные путем компенсации движения при обратном предсказании и прямом предсказании, соответственно, называются блоком прямого предсказания и блоком обратного предсказания. Когда для блока кодирования двунаправленное предсказание не выполняется, полученный блок прямого предсказания и блок обратного предсказания представляют собой блоки предсказания текущего блока кодирования.The basic process of forward prediction motion compensation is as follows: As shown in FIG. 5C, the current encoding block in the drawing is a block B, and the height and width of B are equal to H and W, respectively. In this case, based on the motion information, it is determined that the forward reference frame of the current encoding block B is a frame Ref0, and the forward motion vector MV0 current encoding block B is ( , ). When encoding an encoding block B in frame Cur, first a point with the same coordinates in frame Ref0 is found based on the coordinates (i, j) of the point located in the upper left corner of B in frame Cur, block B' in Ref0 can be obtained based on the length and the width of block B, and then B' is moved to block A based on the MV0 of block B'. Finally, interpolation is performed on block A to obtain the prediction block of the current encoding block B. The sample value of each sample in the prediction block of the current encoding block B is referred to as the predicted value of the corresponding sample in block B. The motion compensation process of backward prediction is the same as that of forward prediction, but the reference directions are different. It should be noted that the prediction blocks obtained by motion compensation in backward prediction and forward prediction are called forward prediction block and backward prediction block, respectively. When bidirectional prediction is not performed on an encoding block, the resulting forward prediction block and reverse prediction block are prediction blocks of the current encoding block.

Для двунаправленного предсказания сначала получают блок прямого предсказания и блок обратного предсказания на основе информации движения в процессе компенсации движения при прямом предсказании и в процессе компенсации движения при обратном предсказании, и затем выполняется взвешенное предсказание или BDOF (которое также упоминается как двунаправленный оптический поток (Bi-directional optical flow, BIO)) над значениями выборок в одном и том же местоположении в блоке прямого предсказания и блоке обратного предсказания, чтобы получить блок предсказания блока B кодирования.For bidirectional prediction, first a forward prediction block and a backward prediction block are obtained based on the motion information in the forward prediction motion compensation process and the backward prediction motion compensation process, and then perform weighted prediction or BDOF (which is also referred to as bidirectional optical flow (Bi- directional optical flow, BIO)) over the sample values at the same location in the forward prediction block and the backward prediction block to obtain the prediction block of encoding block B.

В технологии BDOF после того, как компенсация движения двунаправленного предсказания выполняется в текущем блоке кодирования, получают блок прямого предсказания и блок обратного предсказания, и затем модифицированный вектор движения каждого подблока 4×4 в текущем блоке кодирования получается на основе значений выборки блока прямого предсказания и блока обратного предсказания. Наконец, снова выполняется компенсация для каждой выборки в текущем блоке кодирования на основе модифицированного вектора движения для получения окончательного блока предсказания текущего блока кодирования для того, чтобы получить предсказанное значение текущего блока кодирования. Варианты осуществления настоящей заявки сосредоточены на конкретном условии, при котором BDOF используется для выполнения компенсации движения, чтобы уменьшить сложность кодирования и повысить производительность кодирования.In BDOF technology, after bidirectional prediction motion compensation is performed in the current coding block, a forward prediction block and a backward prediction block are obtained, and then the modified motion vector of each 4x4 sub-block in the current coding block is obtained based on the sample values of the forward prediction block and the block reverse prediction. Finally, compensation is again performed for each sample in the current encoding block based on the modified motion vector to obtain a final prediction block of the current encoding block in order to obtain the predicted value of the current encoding block. Embodiments of the present application focus on the specific condition in which BDOF is used to perform motion compensation to reduce coding complexity and improve coding performance.

На фиг. 6A показана схематичная блок-схема способа кодирования согласно варианту осуществления настоящего изобретения. Эта процедура кодирования может выполняться устройством для кодирования видео. Устройство для кодирования видео может быть вышеупомянутым видеокодером 20 или устройством, включающим в себя видеокодер 20. В частности, процедура может выполняться блоком 244 межкадрового предсказания (также называемым межкадровым предиктором), блоком 270 энтропийного кодирования (также называемым энтропийным кодером) и т.п. в видеокодере 20. Вышеупомянутая процедура описана как последовательность этапов или операций. Следует понимать, что этапы процедуры могут выполняться в различном порядке и/или одновременно и не ограничиваются порядком выполнения, показанным на фиг. 6А. Описание, которое относится к процедуре, соответствующей фиг. 6А, представлено следующим образом:In fig. 6A is a schematic flowchart of an encoding method according to an embodiment of the present invention. This encoding procedure may be performed by a video encoding device. The video encoding device may be the above-mentioned video encoder 20 or a device including the video encoder 20. Specifically, the procedure may be performed by an inter-frame prediction unit 244 (also called an inter-frame predictor), an entropy encoding unit 270 (also called an entropy encoder), and the like. in the video encoder 20. The above procedure is described as a series of steps or operations. It should be understood that the steps of the procedure may be performed in different orders and/or simultaneously and are not limited to the order of execution shown in FIG. 6A. Description that relates to the procedure corresponding to FIG. 6A is presented as follows:

Устройство кодирования сначала определяет, выполнено ли множество заданных условий, и, если множество заданных условий выполнено, выполняется этап S600, или, если множество заданных условий не выполнено, выполняется этап S601. Для случая, если множество заданных условий не выполнено, только случай на этапе S601 используется как характерный для подробного описания в данном документе. Другие случаи, которые являются такими же, как и в предшествующем уровне техники, не описаны в настоящей заявке.The encoding device first determines whether a plurality of predetermined conditions are satisfied, and if the plurality of predetermined conditions is satisfied, step S600 is executed, or if the plurality of predetermined conditions is not satisfied, step S601 is executed. In the case where a plurality of predetermined conditions are not satisfied, only the case in step S601 is taken as representative for the detailed description herein. Other cases, which are the same as in the prior art, are not described in the present application.

Этап S600: Если выполнено множество заданных условий, устройство кодирования выполняет обработку на основе двунаправленного оптического потока (BDOF) над текущим блоком изображения для получения предсказанного значения выборки текущего блока изображения.Step S600: If a plurality of predetermined conditions are met, the encoding device performs bidirectional optical flow (BDOF) processing on the current image block to obtain a predicted sample value of the current image block.

Двунаправленный оптический поток (Bi-directional optical flow, BDOF) может для краткости называться BIO или BDOF.Bi-directional optical flow (BDOF) can be called BIO or BDOF for short.

Множество заданных условий включает в себя по меньшей мере условие относительно того, что размер текущего блока изображения удовлетворяет первому заданному размеру. Размер текущего блока изображения обычно представлен шириной и высотой (которые обозначены W×H), и ширина и высота измеряются выборкой (выборкой или пикселем). Например, если размер текущего блока изображения составляет 8×8, первое число 8 указывает то, что ширина текущего блока изображения составляет 8 выборок, и второе число 8 указывает то, что высота текущего блока изображения составляет 8 выборок. В качестве другого примера, если размер текущего блока изображения составляет 8×16, число 8 указывает то, что ширина текущего блока изображения составляет 8 выборок, и число 16 указывает то, что высота текущего блока изображения составляет 16 выборок.The plurality of predetermined conditions includes at least a condition that the size of the current image block satisfies the first predetermined size. The size of the current image block is usually represented by the width and height (which are denoted by W×H), and the width and height are measured by a sample (sample or pixel). For example, if the size of the current image block is 8×8, the first number 8 indicates that the width of the current image block is 8 samples, and the second number 8 indicates that the height of the current image block is 8 samples. As another example, if the size of the current image block is 8×16, the number 8 indicates that the width of the current image block is 8 samples, and the number 16 indicates that the height of the current image block is 16 samples.

То, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или составляет): высоту H текущего блока изображения, большую или равную 8, и, когда произведение ширины W на высоту H текущего блока изображения равно 64, ширину W, не равную высоте H.That the size of the current image block satisfies the first specified size includes (or is): the height H of the current image block greater than or equal to 8, and, when the product of the width W and the height H of the current image block is 64, the width W is not equal to height H.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или составляет): высоту H текущего блока изображения, большую или равную 8, и ширину W текущего блока изображения, большую или равную 8.Alternatively, the size of the current image block satisfies the first specified size includes (or is): a height H of the current image block greater than or equal to 8, and a width W of the current image block greater than or equal to 8.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или составляет): высоту H текущего блока изображения, большую или равную 8, ширину W текущего блока изображения, большую или равную 8, и произведение ширины W текущего блока изображения на высоту H текущего блока изображения, большее 64.Alternatively, the size of the current image block satisfying the first specified size includes (or is): the height H of the current image block greater than or equal to 8, the width W of the current image block greater than or equal to 8, and the product of the width W of the current image block to the height H of the current image block, greater than 64.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или составляет): высоту H текущего блока изображения, большую или равную 8, ширину W текущего блока изображения, большую или равную 8, и произведение ширины W текущего блока изображения на высоту H текущего блока изображения, большее 128.Alternatively, the size of the current image block satisfying the first specified size includes (or is): the height H of the current image block greater than or equal to 8, the width W of the current image block greater than or equal to 8, and the product of the width W of the current image block to the height H of the current image block, greater than 128.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя: высоту H текущего блока изображения, большую 8.Alternatively, the size of the current image block satisfies the first specified size includes: the height H of the current image block greater than 8.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя: высоту H текущего блока изображения, большую 8, и ширину W текущего блока изображения, большую или равную 8.Alternatively, the size of the current image block satisfies the first specified size includes: a height H of the current image block greater than 8, and a width W of the current image block greater than or equal to 8.

Следует отметить, что прежде, чем определить (или получить путем предсказания) предсказанное значение выборки текущего блока изображения на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, согласно технологии BDOF, может существовать другое исходное условие в дополнение к размеру текущего блока изображения. Другое исходное условие в данном документе не ограничивается. Для простоты понимания ниже используются примеры для описания.It should be noted that before determining (or obtaining by prediction) the predicted sample value of the current image block based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list, according to BDOF technology, there may be another precondition in addition to to the size of the current image block. The other reference condition herein is not limited. For ease of understanding, examples are used below for description.

Условие A: Существует высокоуровневый идентификатор синтаксиса sps_bdof_enabled_flag, указывающий, что технологию BDOF разрешено использовать для текущей видеопоследовательности.Condition A: There is a high-level syntax identifier sps_bdof_enabled_flag indicating that BDOF technology is enabled for the current video sequence.

Условие B: Информация predFlagL0 указания направления предсказания, соответствующая первому списку (List1), равна 1, и информация указания направления предсказания predFlagL1, соответствующая второму списку (list0), равна 1.Condition B: The prediction direction indication information predFlagL0 corresponding to the first list (List1) is 1, and the prediction direction indication information predFlagL1 corresponding to the second list (list0) is 1.

Условие C: Значение POC_L0 счетчика очередности изображения опорного кадра, соответствующее первому списку (list0), значение POC_L1 счетчика очередности изображения опорного кадра, соответствующее второму списку (list1), и значения POC_Cur счетчика очередности изображения, на котором расположен текущий блок изображения, удовлетворяют следующему соотношению: (POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0. Другими словами, изображение, включающее в себя текущий блок изображения, находится между двумя опорными изображениями.Condition C: The POC_L0 value of the reference frame image queue counter corresponding to the first list (list0), the POC_L1 value of the reference frame image queue counter corresponding to the second list (list1), and the POC_Cur value of the image queue counter on which the current image block is located satisfy the following relationship : (POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0. In other words, an image including the current image block is located between two reference images.

Условие D: MotionModelIdc[xCb][yCb] равно 0. MotionModelIdc представляет собой индекс модели движения для компенсации движения. MotionModelIdc[xCb][yCb], равное 0, указывает то, что моделью движения для компенсации движения текущего блока является поступательное движение (Translational motion).Condition D: MotionModelIdc[xCb][yCb] is 0. MotionModelIdc is the motion model index for motion compensation. MotionModelIdc[xCb][yCb] equal to 0 indicates that the motion model to compensate for the current block's motion is Translational motion.

Условие E: merge_subblock_flag[x0][y0] равно 0, где merge_subblock_flag[x0][y0], равное 0, указывает то, что режим слияния подблоков не применяется для текущего блока изображения.Condition E: merge_subblock_flag[x0][y0] is equal to 0, where merge_subblock_flag[x0][y0] equal to 0 indicates that the subblock merging mode is not applied to the current image block.

Условие F: sym_mvd_flag[x0][y0] равно 0. sym_mvd_flag[x0][y0], равное 0, указывает то, что синтаксическая структура mvd_coding(x0, y0, refList, cpIdx) присутствует для текущего блока.Condition F: sym_mvd_flag[x0][y0] is equal to 0. sym_mvd_flag[x0][y0] equal to 0 indicates that the syntax structure mvd_coding(x0, y0, refList, cpIdx) is present for the current block.

Условие G: bcwIdx[xCb][yCb] равно 0. bcwIdx указывает весовой индекс двунаправленного предсказания для текущего блока изображения.Condition G: bcwIdx[xCb][yCb] is equal to 0. bcwIdx indicates the bidirectional prediction weight index for the current image block.

Условие H: cIdx равно 0. cIdx представляет собой индекс цветового компонента текущего блока изображения.Condition H: cIdx is 0. cIdx is the index of the color component of the current image block.

Условие I: Размер текущего блока изображения является первым заданным размером.Condition I: The size of the current image block is the first specified size.

Условие J: Как luma_weight_l0_flag[refIdxL0], так и luma_weight_l1_flag[refIdxL1] равны 0, где luma_weight_l0_flag, равное 0, указывает то, что отсутствуют весовые коэффициенты для компонента яркости предсказания list0, и luma_weight_l1_flag, равное 0, указывает то, что отсутствуют весовые коэффициенты для компонента яркости предсказания list1.Condition J: Both luma_weight_l0_flag[refIdxL0] and luma_weight_l1_flag[refIdxL1] are equal to 0, where luma_weight_l0_flag equal to 0 indicates that there are no weights for the luma component of the list0 prediction, and luma_weight_l1_flag equal to 0 indicates that there are no weights for the brightness component of the prediction list1.

Например, если выполнены все условия A-J, определяется, что технология BDOF может использоваться для предсказания предсказанного значения выборки текущего блока изображения. Например, bdofFlag устанавливается на значение "истина". Следует отметить, что вышеуказанные условия являются просто примерами, и может быть дополнительно добавлено другое условие, или могут быть заменены одно или более из вышеуказанных условий, или могут быть удалены одно или более из вышеуказанных условий.For example, if all conditions A-J are satisfied, it is determined that BDOF technology can be used to predict the predicted sample value of the current image block. For example, bdofFlag is set to true. It should be noted that the above conditions are merely examples, and another condition may be further added, or one or more of the above conditions may be replaced, or one or more of the above conditions may be deleted.

Следует понимать, что текущий блок изображения (который также упоминается как текущий блок) в данном документе может рассматриваться как блок изображения, подлежащий обработке. Например, в процессе кодирования текущий блок изображения является блоком изображения, подлежащим кодированию (блоком кодирования).It should be understood that the current image block (which is also referred to as the current block) may be considered herein as an image block to be processed. For example, in the encoding process, the current image block is an image block to be encoded (encoding block).

Вполне понятно, что другой случай может быть дополнительно получен со ссылкой на вышеизложенные случаи, и другой случай также подпадает под объем защиты настоящей заявки.It is clear that another case may be further obtained with reference to the above cases, and the other case also falls within the scope of protection of the present application.

Следует понимать, что способ в данном варианте осуществления настоящей заявки может выполняться устройством предсказания изображения, таким как видеокодер или электронное устройство, имеющее функцию кодирования видео, и может, в частности, выполняться блоком межкадрового предсказания в видеокодере.It should be understood that the method in this embodiment of the present application may be performed by an image prediction device such as a video encoder or an electronic device having a video encoding function, and may in particular be performed by an inter-frame prediction unit in the video encoder.

Более конкретно, условие использования технологии BDOF в этом решении отличается от условия использования технологии BDOF в предшествующем уровне техники, и, в частности, отличаются требования к размеру текущего блока изображения. Технология BDOF используется для текущего блока изображения, имеющего первый заданный размер, поэтому можно получить предсказанное значение выборки, более близкое к реальному значению выборки, можно контролировать должным образом сложность кодирования, и можно повысить эффективность кодирования.More specifically, the condition for using BDOF technology in this solution is different from the condition for using BDOF technology in the prior art, and in particular, the size requirements for the current image block are different. BDOF technology is used for the current image block having the first specified size, so that a predicted sample value closer to the actual sample value can be obtained, encoding complexity can be properly controlled, and encoding efficiency can be improved.

В данном варианте осуществления настоящей заявки устройство кодирования выполняет обработку на основе двунаправленного оптического потока (BDOF) над текущим блоком изображения, если выполнено множество заданных условий, в частности: если выполнено множество заданных условий, устройство кодирования выполняет обработку двунаправленного оптического потока (BDOF) над текущим блоком изображения на основе значения опорной выборки, соответствующей первому списку, и опорной выборки, соответствующей второму списку.In this embodiment of the present application, the encoding device performs bidirectional optical flow (BDOF) processing on the current image block if a plurality of predetermined conditions are met, in particular: if a plurality of predetermined conditions are satisfied, the encoding device performs bidirectional optical flow (BDOF) processing on the current an image block based on the value of a reference sample corresponding to the first list and a reference sample corresponding to the second list.

В данном варианте осуществления настоящей заявки значение опорной выборки, соответствующее первому списку, и значение опорной выборки, соответствующее второму списку, соответственно, получают путем предсказания на основе первого вектора движения (например, Mv0_L0), соответствующего первому списку (то есть list0), и второго вектора движения (например, Mv1_L1), соответствующего второму списку (то есть list1). Например, значение опорной выборки, соответствующее первому списку (то есть list0), может быть определено на основе первого вектора движения (например, Mv0_L0), соответствующего первому списку (то есть list0), и значение опорной выборки, соответствующее второму списку (то есть list1), может быть определено на основе второго вектора движения (например, Mv1_L1), соответствующего второму списку (то есть list1).In this embodiment of the present application, a reference sample value corresponding to the first list and a reference sample value corresponding to the second list are respectively obtained by prediction based on the first motion vector (eg, Mv0_L0) corresponding to the first list (ie, list0) and the second motion vector (eg Mv1_L1) corresponding to the second list (ie list1). For example, a reference sample value corresponding to the first list (i.e., list0) may be determined based on a first motion vector (i.e., Mv0_L0) corresponding to the first list (i.e., list0), and a reference sample value corresponding to the second list (i.e., list1 ) may be determined based on the second motion vector (eg, Mv1_L1) corresponding to the second list (ie, list1).

Вполне понятно, что первый вектор движения (например, Mv0_L0), соответствующий первому списку (то есть list0), и второй вектор движения (например, Mv1_L1), соответствующий второму списку (то есть list1), получены по-разному в разных режимах межкадрового предсказания. Конкретный используемый режим межкадрового предсказания может быть выбран с помощью блока выбора режима. Ниже отдельно описано то, как определить первый вектор движения и второй вектор движения в режиме AMVP, режиме слияния и режиме пропуска.It is clear that the first motion vector (eg Mv0_L0) corresponding to the first list (ie list0) and the second motion vector (eg Mv1_L1) corresponding to the second list (ie list1) are obtained differently in different inter-frame prediction modes . The specific inter-prediction mode to be used can be selected using a mode selector. The following describes separately how to determine the first motion vector and the second motion vector in the AMVP mode, merge mode and skip mode.

Возможный случай 1: Режим межкадрового предсказания представляет собой режим AMVP.Possible case 1: The inter-frame prediction mode is AMVP mode.

Устройство кодирования сначала составляет список предикторов векторов движения (MVP)-кандидатов.The encoder first compiles a list of motion vector predictor (MVP) candidates.

В частности, устройство для кодирования видео составляет список предикторов векторов движения (MVP)-кандидатов (также называемый списком векторов движения-кандидатов) с использованием блока межкадрового предсказания (также называемого блоком межкадрового предсказания). Составленный список предикторов векторов движения (MVP)-кандидатов может быть списком предикторов одномерных векторов движения (MVP)-кандидатов или списком предикторов двухмерных векторов движения (MVP)-кандидатов. В данном варианте осуществления настоящей заявки устройство для кодирования видео выполняет межкадровое предсказание в режиме двунаправленного предсказания.Specifically, a video encoding apparatus constructs a candidate motion vector predictor (MVP) list (also called a candidate motion vector list) using an inter-frame prediction unit (also called an inter-frame prediction unit). The compiled list of motion vector predictor (MVP) candidates may be a list of one-dimensional motion vector predictor (MVP) candidates or a list of two-dimensional motion vector predictor (MVP) candidates. In this embodiment of the present application, the video encoding apparatus performs inter-frame prediction in a bidirectional prediction mode.

Затем устройство для кодирования видео определяет информацию движения целевого кандидата в списке MVP в соответствии с критерием стоимости "скорость передачи - искажение".The video encoding apparatus then determines the motion information of the target candidate in the MVP list according to the rate-distortion cost criterion.

В частности, информация движения целевого кандидата также может называться оптимальным вектором движения-кандидатом или может иметь другое название. В заключение, информация движения целевого кандидата является оптимальным кандидатом, определенным в списке MVP в соответствии с критерием стоимости "скорость передачи - искажение" (например, минимизируются затраты на использование). Информация движения целевого кандидата соответствует уникальному номеру индекса в списке предикторов векторов движения (MVP)-кандидатов.In particular, the motion information of the target candidate may also be called an optimal candidate motion vector or may have another name. Finally, the motion information of the target candidate is the optimal candidate determined in the MVP list according to the rate-distortion cost criterion (eg, usage cost is minimized). The motion information of the target candidate corresponds to a unique index number in the list of motion vector predictor (MVP) candidates.

Далее, первый вектор движения и второй вектор движения определяются на основе информации движения целевого кандидата. Информация движения целевого кандидата включает в себя первый предиктор вектора движения (например, Mvp0_L0), соответствующий первому списку (то есть list0), и второй предиктор вектора движения (например, Mvp1_L1), соответствующий второму списку (то есть list1). Например, первый вектор движения Mv0_L0 (прямое направление), соответствующий первому списку (list0), может быть получен на основе суммы первого предиктора вектора движения Mvp0_L0 и разности MVD0 векторов движения. Аналогичным образом, второй вектор движения Mv1_L1 может быть получен на основе суммы предиктора второго вектора движения Mvp1_L1 и разности MVD1 векторов движения. При необходимости первый вектор движения (например, Mv0_L0), соответствующий первому списку (то есть list0) в данном документе, также может быть выражен как первый вектор движения, соответствующий первому направлению (например, прямому направлению), и второй вектор движения (например, Mv1_L1), соответствующий второму списку (то есть list1), также может быть выражен как второй вектор движения, соответствующий второму направлению (например, обратному направлению).Next, the first motion vector and the second motion vector are determined based on the motion information of the target candidate. The target candidate motion information includes a first motion vector predictor (eg, Mvp0_L0) corresponding to the first list (ie, list0), and a second motion vector predictor (eg, Mvp1_L1) corresponding to the second list (ie, list1). For example, the first motion vector Mv0_L0 (forward direction) corresponding to the first list (list0) may be obtained based on the sum of the first motion vector predictor Mvp0_L0 and the motion vector difference MVD0. Likewise, the second motion vector Mv1_L1 can be obtained based on the sum of the second motion vector predictor Mvp1_L1 and the motion vector difference MVD1. Optionally, the first motion vector (e.g., Mv0_L0) corresponding to the first list (e.g., list0) herein may also be expressed as a first motion vector corresponding to the first direction (e.g., forward direction) and a second motion vector (e.g., Mv1_L1 ), corresponding to the second list (i.e. list1), can also be expressed as a second motion vector corresponding to the second direction (i.e., the reverse direction).

Возможный случай 2: Режимом межкадрового предсказания является режим слияния.Possible case 2: The inter-prediction mode is merging mode.

Устройство кодирования сначала составляет список информации движения кандидатов.The encoding device first compiles a list of candidate motion information.

В частности, устройство для кодирования видео составляет список информации движения кандидатов (также называемый списком векторов движения-кандидатов) с использованием блока межкадрового предсказания (также называемого блоком межкадрового предсказания).Specifically, the video encoding apparatus constructs a candidate motion information list (also called a candidate motion vector list) using an inter-frame prediction block (also called an inter-frame prediction block).

Затем устройство для кодирования видео определяет информацию движения целевого кандидата в списке информации движения кандидатов в соответствии с критерием стоимости "скорость передачи - искажение".Then, the video encoding apparatus determines the motion information of the target candidate in the candidate motion information list in accordance with the rate-distortion cost criterion.

В частности, информация движения целевого кандидата включает в себя целевые векторы движения-кандидаты, индексы опорных кадров и информацию указания направления предсказания, информация указания направления предсказания используется для указания того, что применяется двунаправленное предсказание, целевые векторы движения-кандидаты включают в себя первый вектор движения, соответствующий первому списку, и второй вектор движения, соответствующий второму списку, и индексы опорных кадров включают в себя индекс первого опорного кадра, соответствующего первому списку, и индекс второго опорного кадра, соответствующего второму списку.Specifically, the target candidate motion information includes target candidate motion vectors, reference frame indices, and prediction direction indication information, the prediction direction indication information is used to indicate that bidirectional prediction is applied, the target candidate motion vectors include a first motion vector , corresponding to the first list, and a second motion vector, corresponding to the second list, and the reference frame indices include an index of the first reference frame, corresponding to the first list, and an index of the second reference frame, corresponding to the second list.

Информация движения целевого кандидата также может называться информацией оптимального движения кандидата или может иметь другое название. В заключение, информация движения целевого кандидата является оптимальным кандидатом, определенным в списке информации движения кандидатов в соответствии с критерием стоимости "скорость передачи - искажение" (например, минимизированы затраты на использование).The target candidate motion information may also be called optimal candidate motion information or may have another name. Finally, the target candidate traffic information is the optimal candidate determined from the candidate traffic information list according to the rate-distortion cost criterion (eg, usage cost is minimized).

Возможный случай 3. Режим межкадрового предсказания представляет собой режим пропуска. Для связанного с ним описания следует обратиться к описанию режима слияния в предыдущем случае 2. Отличие от режима слияния состоит в том, что в режиме пропуска не требуется передавать остаток выборки.Possible case 3: The inter-frame prediction mode is a skip mode. For a related description, please refer to the description of merge mode in previous case 2. The difference from merge mode is that skip mode does not need to transmit the remainder of the sample.

Обращаясь к фиг. 6B, в данном варианте осуществления настоящей заявки текущее изображение, к которому принадлежит текущий блок изображения, имеет два опорных изображения: предыдущее опорное изображение и следующее опорное изображение, которые, соответственно, являются первым опорным изображением (например, прямым опорным изображением или прямым опорным кадром, где термин "прямой" в данном документе также может упоминаться как первое направление) и вторым опорным изображением (например, обратным опорным изображением или обратным опорным кадром, где термин "обратный" в данном документе может также упоминаться как второе направление). Опорная выборка, соответствующая первому списку, является опорной выборкой на первом опорном изображении, и опорная выборка, соответствующая второму списку, является опорной выборкой на втором опорном изображении.Referring to FIG. 6B, in this embodiment of the present application, the current image to which the current image block belongs has two reference images: a previous reference image and a next reference image, which are respectively the first reference image (for example, a forward reference image or a forward reference frame, wherein the term "forward" may also be referred to herein as the first direction) and a second reference image (eg, an inverse reference image or an inverse reference frame, wherein the term "reverse" may also be referred to as the second direction herein). The reference sample corresponding to the first list is the reference sample on the first reference image, and the reference sample corresponding to the second list is the reference sample on the second reference image.

При необходимости получение предсказанного значения выборки текущего блока путем предсказания на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, согласно технологии BDOF, может включать в себя: получение модифицированного вектора движения каждого подблока текущего блока на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, согласно технологии BDOF, и затем выполнение компенсации движения над каждым подблоком на основе модифицированного вектора движения для получения предсказанного значение выборки каждого подблока для получения предсказанного значения выборки текущего блока. Для простоты понимания ниже приводится описание примера.Optionally, obtaining the predicted sample value of the current block by predicting based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list, according to BDOF technology, may include: obtaining a modified motion vector of each sub-block of the current block based on the reference value sample corresponding to the first list and a reference sample value corresponding to the second list according to BDOF technology, and then performing motion compensation on each sub-block based on the modified motion vector to obtain a predicted sample value of each sub-block to obtain a predicted sample value of the current block. For ease of understanding, an example is described below.

Значение выборки в значении опорной выборки, соответствующем первому списку (list0), может быть выражена как , и значение выборки в значении опорной выборки, соответствующем второму списку (list1), может быть выражено как . Эти два значения вместе могут называться предсказанными в прямом и обратном направлениях значениями , где i=0..cuW-1, j=0..cuH-1, и k может быть равно 0 и 1. Здесь может быть получено с использованием 8-отводного интерполяционного фильтра, и значение выборки в другом местоположении (выполняется расширение по одной строке и одному столбцу) получают с использованием билинейного интерполяционного фильтра путем интерполяции. Следует отметить, что значение выборки расширенной области может быть альтернативно получено с использованием другого способа, например, может быть получено с использованием 8-отводного интерполяционного фильтра, или может быть непосредственно значением опорной выборки в целочисленном местоположении выборки. В данном документе это не ограничивается. Здесь cuW и cuH представляют собой, соответственно, ширину и высоту текущего блока изображения. Получение предсказанного значения выборки текущего блока изображения путем предсказания на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, согласно технологии BDOF, может, в частности, включать в себя следующие этапы.The sample value in the reference sample value corresponding to the first list (list0) can be expressed as , and the sample value in the reference sample value corresponding to the second list (list1) can be expressed as . These two values together can be called forward and backward predicted values , where i=0..cuW-1, j=0..cuH-1, and k can be equal to 0 and 1. Here can be obtained using an 8-tap interpolation filter, and the sample value at another location (one row and one column expansion is performed) is obtained using a bilinear interpolation filter by interpolation. It should be noted that the extended region sample value may alternatively be obtained using another method, for example, may be obtained using an 8-tap interpolation filter, or may be directly the reference sample value at an integer sample location. This document is not limited to this. Here, cuW and cuH represent the width and height of the current image block, respectively. Obtaining a predicted sample value of the current image block by predicting based on a reference sample value corresponding to the first list and a reference sample value corresponding to the second list according to BDOF technology may particularly include the following steps.

Этап 1: Вычислить сумму абсолютных разностей SAD между значениями выборки в значениях опорной выборки, соответствующими первому списку, и значениями выборки в значениях опорной выборки, соответствующими второму списку, определить, меньше ли SAD порогового значения TH_CU, и, если SAD меньше порогового значения TH_CU, пропустить выполнение BDOF, или, если SAD не меньше порогового значения TH_CU, выполнить BDOF. Этот этап не является обязательным.Step 1: Compute the sum of the absolute differences SAD between the sample values in the reference sample values corresponding to the first list and the sample values in the reference sample values corresponding to the second list, determine whether the SAD is less than the threshold TH_CU, and if the SAD is less than the threshold TH_CU, skip performing BDOF, or, if SAD is not less than the TH_CU threshold, perform BDOF. This step is optional.

Формула расчета SAD выглядит следующим образом:The formula for calculating SAD is as follows:

Пороговое значение TH_CU может быть установлено на (1<<(BD-8+сдвиг))xcuWxcuH, и сдвиг равен Max (2, 14-BD).The TH_CU threshold can be set to (1<<(BD-8+offset))xcuWxcuH, and the offset is Max(2, 14-BD).

В качестве альтернативы, TH_CU может быть установлено на 1<<(BD-3+сдвиг).Alternatively, TH_CU can be set to 1<<(BD-3+offset).

При необходимости то, выполнять ли BDOF, можно альтернативно определить другими способами, и другие способы не перечисляются в данном документе один за другим.If necessary, whether to perform BDOF can alternatively be determined by other methods, and other methods are not listed herein one by one.

Когда определено выполнение BDOF, продолжает выполняться этап 4.When BDOF execution is determined, step 4 continues.

Этап 2: Вычислить значение горизонтального градиента и значение вертикального градиента для предсказанных в прямом и обратном направлениях значений текущей CU.Step 2: Compute the horizontal gradient value and the vertical gradient value for the forward and backward predicted values of the current CU.

Значение горизонтального градиента и значение вертикального градиента для предсказанных в прямом и обратном направлениях значений текущей CU включают в себя значение горизонтального градиента и значение вертикального градиента в местоположении выборки в значениях опорной выборки, соответствующих первому списку, и значение горизонтального градиента и значение вертикального градиента в местоположении выборки в значениях опорных выборок, соответствующих второму списку, где k последовательно устанавливается равным 0 и 1. Значение горизонтального градиента и значение вертикального градиента могут быть получены с использованием следующих формул:Meaning horizontal gradient and value vertical gradient for the forward and backward predicted values of the current CU include the value horizontal gradient and value vertical gradient at location samples in the reference sample values corresponding to the first list, and the value horizontal gradient and value vertical gradient at location samples in the values of the reference samples corresponding to the second list, where k is successively set to 0 and 1. Value horizontal gradient and value vertical gradient can be obtained using the following formulas:

Здесь i=0..cuW-1, j=0..cuH-1.Here i=0..cuW-1, j=0..cuH-1.

На этом этапе может быть получена матрица предсказания cuWxcuH для текущего блока изображения.At this stage, the prediction matrix cuWxcuH for the current image block can be obtained.

Этап 4: Выполнить расширение для предсказанных в прямом и обратном направлениях значений текущей CU, значения горизонтального градиента и значения вертикального градиента путем заполнения.Step 4: Perform expansion on the forward and backward predicted values of the current CU, the horizontal gradient value and the vertical gradient value by padding.

Для вычисления модифицированного вектора движения подблока 4×4 требуются предсказанные в прямом и обратном направлениях значения зоны 6×6, в которой расположен подблок 4×4, значение горизонтального градиента и значение вертикального градиента из предсказанных в прямом и обратном направлениях значений. Для вычисления значения градиента зоны 6×6 требуются предсказанные в прямом и обратном направлениях значения для зоны 8×8. Таким образом, когда предсказанные в прямом и обратном направлениях значения должны быть получены с использованием интерполяционного фильтра, необходимо выполнить расширение на две строки и два столбца для получения блока выборки предсказания, размер которого составляет (W+4)×(H+4), чтобы вычислить значение градиента (W+2)×(H+2), где W - ширина текущей CU, и H - высота текущей CU. Чтобы уменьшить сложность BDOF, на границе CU может выполняться специальная обработка. Подробности представлены следующим образом:Forward and backward predicted values are required to calculate the modified motion vector of a 4x4 subblock 6x6 zone in which the 4x4 subblock is located, value horizontal gradient and value vertical gradient from the forward and backward predicted values. To calculate the gradient value of a 6x6 zone, the forward and backward predicted values for an 8x8 zone are required. Thus, when the forward and backward predicted values are to be obtained using an interpolation filter, it is necessary to perform an expansion of two rows and two columns to obtain a prediction sample block whose size is (W+4)×(H+4) so that calculate the gradient value (W+2)×(H+2), where W is the width of the current CU, and H is the height of the current CU. To reduce the complexity of BDOF, special processing can be performed at the CU boundary. The details are presented as follows:

Предсказанное значение зоны W×H сначала получается с использованием 8-отводного фильтра, зона расширяется только на одну строку и один столбец, и предсказанное значение расширенной зоны получается с использованием билинейного фильтра для того, чтобы получить предсказанное значение зоны (W+2)×(H+2).The predicted value of the W×H zone is first obtained using an 8-tap filter, the zone is expanded by only one row and one column, and the predicted value of the expanded zone is obtained using a bilinear filter to obtain the predicted value of the zone (W+2)×( H+2).

Затем значение градиента зоны W×H может быть получено путем вычисления на основе предсказанного значения зоны (W+2)×(H+2) согласно формуле (5).Then, the zone gradient value W×H can be obtained by calculating based on the predicted zone value (W+2)×(H+2) according to formula (5).

Наконец, согласно способу заполнения, значение градиента зоны W×H увеличивается для получения значения горизонтального градиента и значение вертикального градиента зоны (W+2)×(H+2). Предсказанное значение зоны W×H увеличивается для получения предсказанного значения зоны (W+2)×(H+2).Finally, according to the filling method, the zone gradient value W×H is increased to obtain a horizontal gradient value and a vertical zone gradient value (W+2)×(H+2). The predicted zone value W×H is increased to obtain the predicted zone value (W+2)×(H+2).

Заполнение показано на фиг. 6D. Заполнение выполняется в соответствии со способом, показанным на фиг. 6D, чтобы получить , , и , где i=-1..cuW, и j=-1..cuH. Более конкретно, получают матрицу предсказания (cuW+2)×(cuH+2), матрицу горизонтального градиента и матрицу вертикального градиента.The filling is shown in Fig. 6D. Filling is carried out in accordance with the method shown in Fig. 6D to get , , And , where i=-1..cuW, and j=-1..cuH. More specifically, a prediction matrix (cuW+2)×(cuH+2), a horizontal gradient matrix, and a vertical gradient matrix are obtained.

Этап 5: Получить модифицированный вектор движения для каждого подблока 4×4, и затем выполнить взвешивание.Step 5: Obtain the modified motion vector for each 4x4 sub-block, and then perform the weighting.

Для каждого подблока 4×4 модифицированный вектор движения получается согласно формулам (2-3). В частности, модифицированный вектор движения каждого подблока 4×4 получается путем применения BDOF к окну 6×6 вокруг подблока, чтобы минимизировать предсказанные значения L0 и L1. В частности, выводится по следующим формулам:For each 4x4 subblock modified vector movement is obtained according to formulas (2-3). In particular, the modified vector the motion of each 4x4 subblock is obtained by applying BDOF to the window 6x6 around the sub-block to minimize the predicted values of L0 and L1. In particular, is derived using the following formulas:

Здесь - функция floor (где floor(A) представляет максимальное целое число, не превышающее A). и является порогом для предотвращения передачи ошибок, вызванной чрезмерно большим модифицированным вектором движения. , и . BD - битовая ширина текущей выборки.Here - floor function (where floor(A) represents the maximum integer not exceeding A). and is a threshold to prevent error transmission caused by an excessively large modified motion vector. , And . BD - bit width of the current sample.

, , , и вычисляются по следующим формулам: , , , And are calculated using the following formulas:

ЗдесьHere

В данном случае - предсказанное в прямом направлении значение местоположения выборки в текущей CU, то есть значение выборки местоположения выборки в значениях опорной выборки, которые относятся к текущей CU и соответствуют первому списку, и - предсказанное в обратном направлении значение местоположения выборки в текущей CU, то есть значение выборки местоположения выборки в значениях опорной выборки, которые относятся к текущей CU и соответствуют второму списку.In this case - forward predicted position value samples in the current CU, that is, the location sample value samples in the reference sample values that are related to the current CU and match the first list, and is the backward predicted sample location value in the current CU, i.e. the sample location value samples in the reference sample values that belong to the current CU and correspond to the second list.

После того, как модифицированный вектор движения получен согласно формулам (2-3), окончательное предсказанное значение каждой выборки в текущем блоке изображения, то есть значение выборки в блоке предсказания текущего блока изображения, может быть определено по следующим формулам:After the modified motion vector is obtained according to formulas (2-3), the final predicted value of each sample in the current image block, that is, the sample value in the prediction block of the current image block, can be determined by the following formulas:

Здесь и представляют собой , и . - функция округления (rounding off). - предсказанное значение выборки местоположения выборки текущего блока изображения.Here And represent , And . - rounding off function. - predicted location sample value samples of the current image block.

Этап S601: Когда размер текущего блока изображения является вторым заданным размером, устройство кодирования определяет предсказанное значение выборки текущего блока изображения первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку.Step S601: When the size of the current image block is the second predetermined size, the encoding device determines the predicted sample value of the current image block by the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list.

В частности, первым способом обработки не является BDOF (называемый двунаправленным оптическим потоком (Bi-directional optical flow, BIO)). Другими словами, когда размер текущего блока изображения является вторым заданным размером, BDOF не может использоваться для определения предсказанного значения выборки текущего блока изображения на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку. Размер текущего блока изображения обычно представлен шириной и высотой (которые обозначены W×H), и ширина и высота измеряются выборкой (выборкой или пикселем). Второй заданный размер включает в себя 8×8 (первое число 8 указывает то, что ширина текущего блока изображения составляет 8 выборок, и второе число 8 указывает то, что высота текущего блока изображения составляет 8 выборок), 4×N (4 указывает то, что ширина текущего блока изображения составляет 4 выборки, N указывает то, что высота текущего блока изображения составляет N выборок, и другие размеры выводятся по аналогии), 8×16 или 16×8. N равно степени 2 и больше или равно 8. Например, значение N может быть равным 16, 32, 64 или т.п.In particular, the first processing method is not BDOF (called Bi-directional optical flow (BIO)). In other words, when the size of the current image block is the second specified size, BDOF cannot be used to determine the predicted sample value of the current image block based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list. The size of the current image block is usually represented by the width and height (which are denoted by W×H), and the width and height are measured by a sample (sample or pixel). The second specified size includes 8×8 (the first number 8 indicates that the width of the current image block is 8 samples, and the second number 8 indicates that the height of the current image block is 8 samples), 4×N (4 indicates that that the width of the current image block is 4 samples, N indicates that the height of the current image block is N samples, and other sizes are derived similarly), 8x16 or 16x8. N is a power of 2 and greater than or equal to 8. For example, the value of N could be 16, 32, 64, or the like.

В данном варианте осуществления настоящей заявки значение опорной выборки, соответствующее первому списку, и значение опорной выборки, соответствующее второму списку, соответственно, получают путем предсказания на основе первого вектора движения (например, Mv0_L0), соответствующего первому списку (то есть list0), и второго вектора движения (например, Mv1_L1), соответствующего второму списку (то есть list1). Например, значение опорной выборки, соответствующее первому списку (то есть list0), может быть определено на основе первого вектора движения (например, Mv0_L0), соответствующего первому списку (то есть list0), и значение опорной выборки, соответствующее второму списку (то есть list1), может быть определено на основе второго вектора движения (например, Mv1_L1), соответствующего второму списку (то есть list1).In this embodiment of the present application, a reference sample value corresponding to the first list and a reference sample value corresponding to the second list are respectively obtained by prediction based on the first motion vector (eg, Mv0_L0) corresponding to the first list (ie, list0) and the second motion vector (eg Mv1_L1) corresponding to the second list (ie list1). For example, a reference sample value corresponding to the first list (i.e., list0) may be determined based on a first motion vector (i.e., Mv0_L0) corresponding to the first list (i.e., list0), and a reference sample value corresponding to the second list (i.e., list1 ) may be determined based on the second motion vector (eg, Mv1_L1) corresponding to the second list (ie, list1).

Следует отметить, что первый вектор движения и второй вектор движения определяются по-разному в разных режимах межкадрового предсказания. Для получения подробной информации о том, как определять первый вектор движения и второй вектор движения в режиме AMVP, режиме слияния и режиме пропуска, следует обратиться к описанию этапа S600. Подробности здесь снова не описываются.It should be noted that the first motion vector and the second motion vector are determined differently in different inter-frame prediction modes. For details of how to determine the first motion vector and the second motion vector in the AMVP mode, merge mode and skip mode, refer to the description of step S600. The details are again not described here.

Следует понимать, что текущий блок изображения (который также упоминается как текущий блок) в данном документе может рассматриваться как блок изображения, подлежащий обработке. Например, в процессе кодирования текущий блок изображения является блоком изображения, подлежащим кодированию (блоком кодирования).It should be understood that the current image block (which is also referred to as the current block) may be considered herein as an image block to be processed. For example, in the encoding process, the current image block is an image block to be encoded (encoding block).

Кроме того, вышеописанный случай, когда второй заданный размер включает в себя 8×8, 4×N, 8×16 или 16×8, также может быть ограничен вторым заданным размером, равным 8×8, 4×N, 8×16 или 16×8. Другими словами, BDOF запрещено использовать для одного из размеров 8×8, 4×N, 8×16 и 16×8, перечисленных выше, или BDOF запрещено использовать для множества их размеров. Далее для описания используются примеры.In addition, the above-described case where the second predetermined size includes 8×8, 4×N, 8×16 or 16×8 may also be limited to the second predetermined size being 8×8, 4×N, 8×16 or 16x8. In other words, BDOF is prohibited from being used for one of the 8x8, 4xN, 8x16, and 16x8 sizes listed above, or BDOF is prohibited from being used in multiple sizes of them. The following examples are used for description.

Пример 1: Второй заданный размер включает в себя (или составляет) 8×8. Другими словами, в данном варианте осуществления настоящей заявки BDOF запрещается использовать для размера 8×8. В этом случае получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, когда размер текущего блока изображения является вторым заданным размером, может быть, в частности, выражено как: когда размер текущего блока изображения равен 8×8, получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку.Example 1: The second given size includes (or is) 8x8. In other words, in this embodiment of the present application, BDOF is prohibited from being used for the size 8x8. In this case, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list when the size of the current image block is the second predetermined size may be particularly expressed as: when the size of the current image block is 8×8, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list.

Пример 2: Второй заданный размер включает в себя (или составляет) 4×N. Другими словами, в данном варианте осуществления настоящей заявки BDOF запрещается использовать для размера 4×N. В этом случае получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, когда размер текущего блока изображения является вторым заданным размером, может быть, в частности, выражено как: когда размер текущего блока изображения составляет 4×N, получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, где N больше или равно 8.Example 2: The second specified size includes (or is) 4×N. In other words, in this embodiment of the present application, BDOF is prohibited from being used for size 4×N. In this case, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list when the size of the current image block is the second predetermined size may be particularly expressed as: when the size of the current image block is 4×N, obtaining a predicted sample value of the current image block by prediction by the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list, where N is greater than or equal to 8 .

Пример 3: Второй заданный размер включает в себя (или составляет) 8×8 или 4×N. Другими словами, в данном варианте осуществления настоящей заявки BDOF запрещается использовать для размеров 8×8 и 4×N. В этом случае получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, когда размер текущего блока изображения является вторым заданным размером, может быть, в частности, выражено как: когда размер текущего блока изображения составляет 8×8 или 4×N, получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, где N больше или равно 8.Example 3: The second specified size includes (or is) 8x8 or 4xN. In other words, in this embodiment of the present application, BDOF is prohibited from being used for sizes 8x8 and 4xN. In this case, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list when the size of the current image block is the second predetermined size may be particularly expressed as: when the size of the current image block is 8×8 or 4×N, obtaining a predicted sample value of the current image block by prediction by the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list, where N greater than or equal to 8.

Пример 4: Второй заданный размер включает в себя (или составляет) 8×8, 4×N, 8×16 или 16×8, где N больше или равно 8. Другими словами, в данном варианте осуществления настоящей заявки BDOF запрещено использовать для размеров 8×8, 4×N, 8×16 и 16×8. В этом случае получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, когда размер текущего блока изображения является вторым заданным размером, может быть, в частности, выражено как: когда размер текущего блока изображения является любым из 8×8, 4×N, 8×16 и 16×8, получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку.Example 4: The second specified size includes (or is) 8x8, 4xN, 8x16, or 16x8, where N is greater than or equal to 8. In other words, in this embodiment of the present application, BDOF is prohibited from being used for sizes 8x8, 4xN, 8x16 and 16x8. In this case, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list when the size of the current image block is the second predetermined size may be particularly expressed as: when the size of the current image block is any of 8×8, 4×N, 8×16 and 16×8, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list, and values of the reference sample corresponding to the second list.

Пример 5: Второй заданный размер включает в себя (или составляет) N×8, где N больше или равно 4. Другими словами, в данном варианте осуществления настоящей заявки BDOF запрещается использовать для размера N×8. В этом случае получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, когда размер текущего блок изображения является вторым заданным размером, может быть, в частности, выражено как: когда размер текущего блока изображения равен N×8, получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку.Example 5: The second specified size includes (or is) N×8, where N is greater than or equal to 4. In other words, in this embodiment of the present application, BDOF is prohibited from being used for the size N×8. In this case, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list when the size of the current image block is the second predetermined size may be particularly expressed as: when the size of the current image block is N×8, obtaining a predicted sample value of the current image block by prediction by the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list.

Пример 6: Второй заданный размер включает в себя (или составляет) N×8 или 4×N, где N больше или равно 4. Другими словами, в данном варианте осуществления настоящей заявки BDOF запрещается использовать для размера N×8 или 4×N. В этом случае получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, когда размер текущего блока изображения является вторым заданным размером, может быть, в частности, выражено как: когда размер текущего блока изображения равен N×8 или 4×N, получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку.Example 6: The second specified size includes (or is) N×8 or 4×N, where N is greater than or equal to 4. In other words, in this embodiment of the present application, BDOF is prohibited from being used for the size N×8 or 4×N. In this case, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list when the size of the current image block is the second predetermined size may be particularly expressed as: when the size of the current image block is N×8 or 4×N, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list.

В дополнение к этому, так как BDOF также запрещено использовать для размера M×4 в некоторых сценариях, в настоящей заявке, когда BDOF запрещено использовать для второго заданного размера, BDOF дополнительно запрещено использовать для размера M×4, где M - целое число, большее или равное 4.In addition, since BDOF is also prohibited from being used for size M×4 in some scenarios, in the present application, when BDOF is prohibited from being used for a second specified size, BDOF is further prohibited from being used for size M×4, where M is an integer greater than or equal to 4.

Вполне понятно, что другой случай может быть дополнительно получен со ссылкой на вышеизложенные случаи, и другой случай также подпадает под объем защиты настоящей заявки. Следует понимать, что способ в данном варианте осуществления настоящей заявки может выполняться устройством предсказания изображения, таким как видеокодер или электронное устройство, имеющее функцию кодирования видео, и может, в частности, выполняться блоком межкадрового предсказания в видеокодере.It is clear that another case may be further obtained with reference to the above cases, and the other case also falls within the scope of protection of the present application. It should be understood that the method in this embodiment of the present application may be performed by an image prediction device such as a video encoder or an electronic device having a video encoding function, and may in particular be performed by an inter-frame prediction unit in the video encoder.

В дополнительном решении определение предсказанного значения выборки текущего блока изображения первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, включает в себя:In a further solution, determining a predicted sample value of the current image block by the first processing method based on a reference sample value corresponding to the first list and a reference sample value corresponding to the second list includes:

выполнение взвешенного вычисления для значений выборок, имеющих одно и то же местоположение в значении опорной выборки, соответствующем первому списку, и в значении опорной выборки, соответствующем второму списку, для получения предсказанного значения выборки текущего блока изображения; илиperforming a weighted calculation on sample values having the same location in a reference sample value corresponding to the first list and a reference sample value corresponding to the second list to obtain a predicted sample value of the current image block; or

получение предсказанного значения выборки текущего блока изображения путем предсказания на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, согласно технологии разности векторов движения в режиме слияния (MMVD); илиobtaining a predicted sample value of the current image block by predicting based on a reference sample value corresponding to the first list and a reference sample value corresponding to the second list according to a merging mode motion vector difference (MMVD) technology; or

получение предсказанного значения выборки текущего блока изображения путем предсказания на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, согласно технологии объединенного межкадрового/внутрикадрового предсказания (CIIP).obtaining a predicted sample value of the current image block by predicting based on a reference sample value corresponding to the first list and a reference sample value corresponding to the second list according to a combined inter-frame/intra-frame prediction (CIIP) technology.

В данном варианте осуществления настоящей заявки то, используется ли способ взвешенного вычисления, технология MMVD или технология CIIP, может быть определено с использованием соответствующего условия или может быть указано с использованием соответствующей информации указания. При необходимости информация, в дальнейшем кодированная в битовом потоке, может дополнительно включать в себя целевой идентификатор, и целевой идентификатор используется для указания способа, используемого для предсказания предсказанного значения выборки текущего блока. Например, целевым идентификатором является mmvd_flag[x0][y0]. Когда mmvd_flag[x0][y0] является заданным значением (например, значением 1), это указывает то, что способ MMVD используется для текущего блока изображения.In this embodiment of the present application, whether the weighted calculation method, MMVD technology or CIIP technology is used can be determined using a corresponding condition or can be indicated using corresponding indication information. If necessary, information further encoded in the bitstream may further include a target identifier, and the target identifier is used to indicate a method used to predict the predicted sample value of the current block. For example, the target identifier is mmvd_flag[x0][y0]. When mmvd_flag[x0][y0] is a specified value (eg, a value of 1), it indicates that the MMVD method is used for the current image block.

Реализация MMVD дополнительно представлена ниже. На фиг. 6C показано как получается предсказанная информация движения текущего блока изображения. Предполагается, что предиктор прямого вектора движения и предиктор обратного вектора движения (то есть предыдущий предиктор вектора движения, соответствующий первому списку, и предыдущий предиктор вектора движения, соответствующий второму списку) текущего блока изображения, соответственно, являются MV0 (-22, 18) и MV1 (2, 12), и разность прямых векторов движения и разность обратных векторов движения представляют собой, соответственно, MVD0 (1, 0) и MVD1 (-1, 0).The implementation of MMVD is further presented below. In fig. 6C shows how predicted motion information of the current image block is obtained. It is assumed that the forward motion vector predictor and the backward motion vector predictor (that is, the previous motion vector predictor corresponding to the first list and the previous motion vector predictor corresponding to the second list) of the current image block are, respectively, MV0 (-22, 18) and MV1 (2, 12), and the difference of forward motion vectors and the difference of reverse motion vectors are MVD0 (1, 0) and MVD1 (-1, 0), respectively.

Прямое предсказание и обратное предсказание выполняются отдельно для текущего блока изображения, чтобы получить блок прямого предсказания и блок обратного предсказания текущего блока изображения.Forward prediction and backward prediction are performed separately on the current image block to obtain a forward prediction block and a backward prediction block of the current image block.

MV0 (-22, 18) и MV1 (2, 12) используются в качестве опорных входных данных для предиктора прямого вектора движения и предиктора обратного вектора движения, и поиск движения с первой точностью выполняется для опорного блока q0 предсказания в прямом направлении и опорного блока h0 предсказания в обратном направлении. Например, первая точность равна 1-ой выборке.MV0 (-22, 18) and MV1 (2, 12) are used as reference input data for the forward motion vector predictor and the backward motion vector predictor, and first precision motion search is performed for the forward prediction reference block q0 and the reference block h0 predictions in the opposite direction. For example, the first precision is equal to the 1st sample.

Каждый из опорного блока q0 предсказания в прямом направлении и опорного блока h0 предсказания в обратном направлении используется в качестве начальной точки поиска для выполнения поиска движения с первой точностью, и определяется разница между новым опорным блоком предсказания в прямом направлении и новым опорным блоком предсказания в обратном направлении, которые обнаруживаются каждый раз. Например, определяются разности между восемью парами опорных блоков предсказания в прямом направлении и опорных блоков предсказания в обратном направлении вокруг опорного блока предсказания в прямом направлении и опорного блока предсказания в обратном направлении, и определяется разница между опорным блоком q0 предсказания в прямом направлении и опорным блоком h0 предсказания в обратном направлении. Предполагается, что предикторами вектора движения для опорного блока предсказания в прямом направлении и опорного блока предсказания в обратном направлении, которые имеют наименьшее различие, являются, соответственно, (-21, 18) и (1, 12). Точки поиска обновляются до (-21, 18) и (1, 12), которые, соответственно, соответствуют блоку опорному блоку q1 предсказания в прямом направлении и опорному блоку h1 предсказания в обратном направлении, и продолжает выполняться поиск движения с первой точностью. Опорный блок q1 предсказания в прямом направлении и опорный блок h1 предсказания в обратном направлении каждый используются в качестве начальной точки поиска для выполнения поиска движения с первой точностью, и определяется разница между опорным блоком предсказания в прямом направлении и опорным блоком предсказания в обратном направлении, которые обнаруживаются каждый раз. Например, определяются разности между восемью парами опорных блоков предсказания в прямом направлении и опорных блоков предсказания в обратном направлении вокруг опорного блока q1 предсказания в прямом направлении и опорного блока h1 предсказания в обратном направлении, и определяется разность между опорным блоком q1 предсказания в прямом направлении и опорным блоком h1 предсказания в обратном направлении. Предполагается, что предикторами вектора движения для опорного блока предсказания в прямом направлении и опорного блока предсказания в обратном направлении, которые имеют наименьшее различие, являются, соответственно, (-21, 18) и (0, 12). (-21, 18) и (0, 12), соответственно, соответствуют опорному блоку q2 предсказания в прямом направлении и опорному блоку h2 предсказания в обратном направлении.Each of the forward prediction reference block q0 and the backward prediction reference block h0 is used as a search starting point to perform motion search with a first precision, and the difference between the new forward prediction reference block and the new backward prediction reference block is determined , which are detected every time. For example, the differences between eight pairs of forward prediction reference blocks and backward prediction reference blocks are determined around the forward prediction reference block and the backward prediction reference block, and the difference between the forward prediction reference block q0 and the reference block h0 is determined predictions in the opposite direction. It is assumed that the motion vector predictors for the forward prediction reference block and the backward prediction reference block that have the smallest difference are (-21, 18) and (1, 12), respectively. The search points are updated to (-21, 18) and (1, 12), which respectively correspond to the forward prediction reference block q1 and the backward prediction reference block h1, and the first precision motion search continues to be performed. The forward prediction reference block q1 and the backward prediction reference block h1 are each used as a search starting point to perform motion search with a first precision, and the difference between the forward prediction reference block and the backward prediction reference block that are detected is determined every time. For example, the differences between eight pairs of forward prediction reference blocks and backward prediction reference blocks are determined around the forward prediction reference block q1 and the backward prediction reference block h1, and the difference between the forward prediction reference block q1 and the reference block h1 is determined. block h1 of prediction in the opposite direction. It is assumed that the motion vector predictors for the forward prediction reference block and the backward prediction reference block that have the smallest difference are (-21, 18) and (0, 12), respectively. (-21, 18) and (0, 12), respectively, correspond to the forward prediction reference block q2 and the backward direction prediction reference block h2.

В данном варианте осуществления настоящей заявки количество раз поиска движения с первой точностью может быть установлено, например, на один или два. В качестве альтернативы, определяется диапазон поиска движения. Поиск останавливается за пределами диапазона.In this embodiment of the present application, the number of times of first precision motion search can be set to one or two, for example. Alternatively, the motion search range is determined. The search stops outside the range.

Используя в качестве примера значение два, предиктор вектора движения (-20, 18) опорного блока q2 предсказания в прямом направлении и MVD0 (1, 0) суммируются для получения (-19, 18), и предиктор вектора движения (0, 12) опорного блока h2 предсказания в обратном направлении и MVD1 суммируются для получения (1, 12). Таким образом, текущий блок изображения предсказывается на основе предиктора (-19, 18) прямого вектора движения и предиктора (1, 12) обратного вектора движения. На фиг. 6С показан только один процесс поиска движения.Using the value two as an example, the motion vector predictor (-20, 18) of the forward prediction reference block q2 and MVD0 (1, 0) are summed to obtain (-19, 18), and the motion vector predictor (0, 12) of the reference the backward prediction block h2 and MVD1 are summed to obtain (1, 12). Thus, the current image block is predicted based on the forward motion vector predictor (-19, 18) and the backward motion vector predictor (1, 12). In fig. 6C shows only one motion search process.

Следует отметить, что технология BDOF эквивалентна технологии оптимизации исправлений для традиционной технологии предсказания предсказанного значения выборки текущего блока изображения. Во многих сценариях предсказанное значение выборки, более близкое к реальному значению выборки текущего блока изображения, может быть получено в соответствии с технологией BDOF. Таким образом, остаток выборки, полученный на основе предсказанного значения выборки, может быть меньше, поэтому можно повысить эффективность кодирования. Вышеупомянутый способ взвешенного вычисления можно рассматривать как традиционную технологию для получения предсказанного значения выборки текущего блока изображения, и каждую из вышеизложенных технологий MMVD и CIIP можно рассматривать как технологию оптимизации исправлений для традиционной технологии. В данном варианте осуществления настоящей заявки, когда размер текущего блока изображения является вторым заданным размером, предсказанное значение выборки текущего блока изображения определяется в соответствии с традиционной технологией (например, способом взвешенного вычисления) или другой технологией оптимизации исправлений (например, MMVD или CIIP), а не технологией BDOF. Это позволяет значительно снизить сложность кодирования и повысить эффективность кодирования.It should be noted that the BDOF technology is equivalent to the patch optimization technology of the traditional technology of predicting the predicted sample value of the current image block. In many scenarios, a predicted sample value closer to the actual sample value of the current image block can be obtained according to BDOF technology. In this way, the sample residual obtained based on the predicted sample value can be smaller, so the encoding efficiency can be improved. The above-mentioned weighted calculation method can be considered as a traditional technology for obtaining the predicted sample value of the current image block, and each of the above MMVD and CIIP technologies can be considered as a patch optimization technology for the traditional technology. In this embodiment of the present application, when the size of the current image block is the second predetermined size, the predicted sample value of the current image block is determined in accordance with a conventional technology (for example, a weighted calculation method) or another patch optimization technology (for example, MMVD or CIIP), and not BDOF technology. This can greatly reduce coding complexity and improve coding efficiency.

Этап S602: Устройство кодирования восстанавливает текущий блок изображения на основе по меньшей мере предсказанного значения выборки текущего блока изображения.Step S602: The encoding device reconstructs the current image block based on at least the predicted sample value of the current image block.

Вполне понятно, что предсказанное значение выборки текущего блока изображения может быть получено на вышеупомянутом этапе S600. Предсказанное значение выборки текущего блока, полученное на этом этапе, включает в себя предсказанные значения выборки одного или нескольких подблоков, и один или более подблоков включают в себя текущий подблок текущего блока изображения. Размер подблока может быть равен размеру текущего блока. Если текущий блок включает только один подблок, это эквивалентно тому, что размер подблока может быть равен размеру текущего блока. Предсказанное значение выборки текущего блока изображения может быть альтернативно получено на вышеупомянутом этапе S601.It is understood that the predicted sample value of the current image block can be obtained in the above-mentioned step S600. The predicted sample value of the current block obtained in this step includes the predicted sample values of one or more sub-blocks, and the one or more sub-blocks includes the current sub-block of the current image block. The size of a subblock can be equal to the size of the current block. If the current block contains only one subblock, this is equivalent to the size of the subblock being equal to the size of the current block. The predicted sample value of the current image block may alternatively be obtained in the above-mentioned step S601.

Следует отметить, что в данном варианте осуществления настоящей заявки может быть дополнительно получен остаток выборки текущего блока изображения, и остаток выборки текущего блока изображения может быть равен 0. Например, остаток выборки должен быть получен в каждом из режима слияния и режима AMVP. Остаток выборки не нужно учитывать в режиме пропуска, и, следовательно, остаток выборки не нужно передавать на сторону декодера.It should be noted that in this embodiment of the present application, the sample remainder of the current image block may be further obtained, and the sample remainder of the current image block may be 0. For example, the sample remainder must be obtained in each of the merge mode and the AMVP mode. The remainder of the sample does not need to be considered in skip mode, and therefore the remainder of the sample does not need to be transmitted to the decoder side.

Этап S603: Устройство кодирования кодирует синтаксический элемент в подлежащем передаче битовом потоке, где синтаксический элемент используется по меньшей мере для указания того, что применяется двунаправленное предсказание.Step S603: The encoding device encodes a syntax element in the bit stream to be transmitted, where the syntax element is used to at least indicate that bidirectional prediction is applied.

В частности, в разных режимах межкадрового предсказания разные синтаксические элементы кодируются в подлежащий передаче битовый поток. Ниже представлены следующие примеры.In particular, in different inter-frame prediction modes, different syntax elements are encoded into the bit stream to be transmitted. Below are the following examples.

Когда режимом межкадрового предсказания является режим AMVP, синтаксический элемент включает в себя первые индексы, вторые индексы, информацию указания направления предсказания и разность векторов движения (MVD), причем первые индексы (например, mvp_lX_flag[xCb][yCb]) используются для указания предикторов целевого вектора движения-кандидата, при этом предикторы целевого вектора движения-кандидата включают в себя первый предиктор вектора движения, соответствующий первому списку (например, list0), и второй предиктор вектора движения, соответствующий второму списку (например, list1), и разность векторов движения (MVD) включает в себя первую MVD, соответствующую первому списку, и/или вторую MVD, соответствующую второму списку. Вторые индексы (которые также называются индексами опорных кадров) используются для указания опорных кадров текущего блока изображения, и опорные кадры включают в себя первый опорный кадр, соответствующий первому списку, и второй опорный кадр, соответствующий второму списку. Например, вторые индексы представляют собой refIdxL0 и refIdxL1, refIdxL0 представляет собой индекс первого опорного кадра, соответствующего первому списку, и refIdxL1 представляет собой индекс второго опорного кадра, соответствующего второму списку. Информация указания направления предсказания (например, predFlagL0=1 и predFlagL1=1) используется для указания того, что применяется двунаправленное предсказание.When the inter-prediction mode is the AMVP mode, the syntax element includes first indices, second indices, prediction direction indicating information, and motion vector difference (MVD), wherein the first indices (for example, mvp_lX_flag[xCb][yCb]) are used to indicate predictors of the target candidate motion vector, wherein the target candidate motion vector predictors include a first motion vector predictor corresponding to the first list (e.g., list0), and a second motion vector predictor corresponding to the second list (e.g., list1), and a motion vector difference ( MVD) includes a first MVD corresponding to the first list and/or a second MVD corresponding to the second list. The second indices (which are also called reference frame indices) are used to indicate reference frames of the current image block, and the reference frames include a first reference frame corresponding to the first list and a second reference frame corresponding to the second list. For example, the second indices are refIdxL0 and refIdxL1, refIdxL0 is the index of the first reference frame corresponding to the first list, and refIdxL1 is the index of the second reference frame corresponding to the second list. Prediction direction indication information (eg, predFlagL0=1 and predFlagL1=1) is used to indicate that bidirectional prediction is applied.

Первый вектор движения (например, Mv0_L0), соответствующий первому списку, получается на основе первого предиктора вектора движения (например, Mvp0_L0), соответствующего первому списку, и первой MVD (например, MVD0), соответствующей первому списку. Например, Mv0_L0=Mvp0_L0+MVD0.A first motion vector (eg, Mv0_L0) corresponding to the first list is obtained based on a first motion vector predictor (eg, Mvp0_L0) corresponding to the first list and a first MVD (eg, MVD0) corresponding to the first list. For example, Mv0_L0=Mvp0_L0+MVD0.

Второй вектор движения (например, Mv1_L1), соответствующий второму списку, получается на основе второго предиктора вектора движения (например, Mvp1_L1), соответствующего второму списку, и второй MVD (например, MVD1), соответствующей второму списку. Например, Mv1_L1=Mvp1_L1+MVD1.A second motion vector (eg, Mv1_L1) corresponding to the second list is obtained based on a second motion vector predictor (eg, Mvp1_L1) corresponding to the second list and a second MVD (eg, MVD1) corresponding to the second list. For example, Mv1_L1=Mvp1_L1+MVD1.

В поле кодирования видео режимы межкадрового предсказания включают в себя прямое предсказание, обратное предсказание и двунаправленное предсказание (включающее в себя прямое предсказание и обратное предсказание), и конкретный режим предсказания, используемый на стороне кодера, обычно указывается в информации указания направления предсказания. Например, информация указания направления предсказания может включать в себя синтаксические элементы predFlagL0 и predFlagL1. Когда predFlagL0=1 и predFlagL1=1, информация указания направления предсказания указывает то, что применяется двунаправленное предсказание. Когда predFlagL0=1 и predFlagL1=0, информация указания направления предсказания указывает то, что используется прямое предсказание. Когда predFlagL0=0 и predFlagL1=1, информация указания направления предсказания указывает то, что используется обратное предсказание. Вполне понятно, что "прямое направление" и "обратное направление", соответственно, соответствуют списку 0 опорных изображений (list0, а именно, предыдущему первому списку) и списку 1 опорных изображений (list1, а именно, предыдущему второму списку) текущего изображения. При необходимости, когда используется технология MMVD, может быть передана только одна MVD, и MVD, которая находится в другом направлении и которая должна использоваться на стороне декодера, может быть получена на основе переданной MVD.In the video coding field, inter-frame prediction modes include forward prediction, reverse prediction, and bidirectional prediction (including forward prediction and reverse prediction), and the specific prediction mode used at the encoder side is generally indicated in the prediction direction indication information. For example, the prediction direction indicating information may include syntax elements predFlagL0 and predFlagL1. When predFlagL0=1 and predFlagL1=1, the prediction direction indicating information indicates that bidirectional prediction is applied. When predFlagL0=1 and predFlagL1=0, the prediction direction indication information indicates that forward prediction is used. When predFlagL0=0 and predFlagL1=1, the prediction direction indication information indicates that reverse prediction is used. It is clear that the "forward direction" and the "reverse direction" respectively correspond to reference picture list 0 (list0, namely the previous first list) and reference picture list 1 (list1, namely the previous second list) of the current picture. If necessary, when MMVD technology is used, only one MVD can be transmitted, and the MVD that is in the other direction and which should be used at the decoder side can be obtained based on the transmitted MVD.

Когда режим межкадрового предсказания является режимом слияния, синтаксический элемент включает в себя индекс (например, merge_idx[xCb][yCb]) информации движения целевого кандидата, информация движения целевого кандидата включает в себя целевые векторы движения-кандидаты, индексы опорных кадров и информация указания направления предсказания (например, predFlagL0=1 и predFlagL1=1), информация указания направления предсказания используется для указания того, что применяется двунаправленное предсказание, целевые векторы движения-кандидаты включают в себя первый вектор движения, соответствующий первому списку (то есть list0), и второй вектор движения, соответствующий второму списку (то есть list1), и индексы опорных кадров включают в себя индекс (например, refIdxL0) первого опорного кадра, соответствующего первому списку, и индекс (например, refIdxL1) второго опорного кадра, соответствующего второму списку.When the inter-frame prediction mode is a merging mode, the syntax element includes an index (for example, merge_idx[xCb][yCb]) of target candidate motion information, the target candidate motion information includes candidate target motion vectors, reference frame indices, and direction indication information predictions (eg, predFlagL0=1 and predFlagL1=1), the prediction direction indication information is used to indicate that bidirectional prediction is applied, the target motion vectors include a first motion vector corresponding to the first list (ie, list0) and a second a motion vector corresponding to the second list (ie, list1), and the reference frame indices include an index (eg, refIdxL0) of a first reference frame corresponding to the first list, and an index (eg, refIdxL1) of a second reference frame, corresponding to the second list.

В данном варианте осуществления настоящей заявки индекс опорного кадра используется для идентификации опорного изображения, соответствующего используемому вектору движения (например, первому вектору движения или второму вектору движения) в заданном списке опорных изображений (первый список list0 или второй список list1). Изображение может называться кадром, и опорное изображение может называться опорным кадром.In this embodiment of the present application, the reference frame index is used to identify a reference picture corresponding to a motion vector being used (eg, a first motion vector or a second motion vector) in a given reference picture list (first list list0 or second list list1). The image may be called a frame, and the reference image may be called a reference frame.

В поле кодирования видео режимы межкадрового предсказания включают в себя прямое предсказание, обратное предсказание и двунаправленное предсказание (включающее в себя прямое предсказание и обратное предсказание), и конкретный режим предсказания, используемый на стороне кодера, обычно указывается в информации указания направления предсказания. Например, информация указания направления предсказания может включать в себя синтаксические элементы predFlagL0 и predFlagL1. Когда predFlagL0=1 и predFlagL1=1, информация указания направления предсказания указывает то, что применяется двунаправленное предсказание. Когда predFlagL0=1 и predFlagL1=0, информация указания направления предсказания указывает то, что используется прямое предсказание. Когда predFlagL0=0 и predFlagL1=1, информация указания направления предсказания указывает то, что используется обратное предсказание. Вполне понятно, что "прямое направление" и "обратное направление", соответственно, соответствуют списку 0 опорных изображений (list0, а именно, предыдущему первому списку) и списку 1 опорных изображений (list1, а именно, предыдущему второму списку) текущего изображения.In the video coding field, inter-frame prediction modes include forward prediction, reverse prediction, and bidirectional prediction (including forward prediction and reverse prediction), and the specific prediction mode used at the encoder side is generally indicated in the prediction direction indication information. For example, the prediction direction indicating information may include syntax elements predFlagL0 and predFlagL1. When predFlagL0=1 and predFlagL1=1, the prediction direction indicating information indicates that bidirectional prediction is applied. When predFlagL0=1 and predFlagL1=0, the prediction direction indication information indicates that forward prediction is used. When predFlagL0=0 and predFlagL1=1, the prediction direction indication information indicates that reverse prediction is used. It is clear that the "forward direction" and the "reverse direction" respectively correspond to reference picture list 0 (list0, namely the previous first list) and reference picture list 1 (list1, namely the previous second list) of the current picture.

В данном варианте осуществления настоящей заявки способ дополнительно включает в себя: определение остатка выборки на основе значения выборки текущего блока изображения и предсказанного значения выборки текущего блока изображения; и кодирование синтаксического элемента в подлежащем передаче битовом потоке включает в себя: кодирование синтаксического элемента и остатка выборки в подлежащем передаче битовом потоке. Другими словами, в дополнение к синтаксическому элементу остаток выборки может быть дополнительно кодирован в подлежащем передаче битовом потоке (остаток выборки может быть получен путем вычисления с использованием блока вычисления остатка). Это решение можно применить к режиму AMVP и режиму слияния. В дополнение к этому, также имеет место случай, когда не требуется кодировать остаток выборки в подлежащем передаче битовом потоке. Например, в режиме пропуска не требуется кодировать остаток выборки в подлежащем передаче битовом потоке.In this embodiment of the present application, the method further includes: determining a sample remainder based on a sample value of the current image block and a predicted sample value of the current image block; and encoding the syntax element in the to-be-transmitted bit stream includes: encoding the syntax element and the remainder of the sample in the to-be-transmitted bit stream. In other words, in addition to the syntax element, the remainder of the sample may be further encoded in the bitstream to be transmitted (the remainder of the sample may be obtained by calculation using a remainder calculation block). This solution can be applied to AMVP mode and merge mode. In addition to this, it is also the case that the remainder of the sample does not need to be encoded in the bitstream to be transmitted. For example, in skip mode there is no need to encode the remainder of the sample into the bit stream to be transmitted.

На фиг. 7 показана блок-схема способа декодирования согласно варианту осуществления настоящей заявки. Эта процедура может выполняться устройством для декодирования видео. Устройство для декодирования видео может быть вышеупомянутым видеодекодером 30 или может быть устройством, включающим в себя видеодекодер 30. В частности, процедура может выполняться блоком 344 межкадрового предсказания (также называемым межкадровым предиктором), блоком 304 энтропийного декодирования (также называемым энтропийным декодером) и т.п. видеодекодера 30. Процедура описывается как последовательность этапов или операций. Этапы или операции процедуры могут выполняться в различных последовательностях и/или одновременно и не ограничиваются последовательностью выполнения, показанной на фиг. 7. Описание, которое относится к процедуре, показанной на фиг. 7, представлено ниже.In fig. 7 is a flowchart of a decoding method according to an embodiment of the present application. This procedure can be performed by a video decoding device. The video decoding device may be the above-mentioned video decoder 30 or may be a device including a video decoder 30. Specifically, the procedure may be performed by an inter-frame prediction unit 344 (also called an inter-frame predictor), an entropy decoding unit 304 (also called an entropy decoder), etc. P. video decoder 30. A procedure is described as a sequence of steps or operations. The steps or operations of the procedure may be performed in different sequences and/or simultaneously and are not limited to the execution sequence shown in FIG. 7. Description which relates to the procedure shown in FIG. 7 is shown below.

Этап S700: Устройство декодирования синтаксически анализирует битовый поток, чтобы получить синтаксический элемент, где этот синтаксический элемент по меньшей мере используется для указания того, что применяется двунаправленное предсказание.Step S700: The decoding apparatus parses the bit stream to obtain a syntax element, where the syntax element is at least used to indicate that bidirectional prediction is applied.

В частности, если сторона кодера использует разные режимы межкадрового предсказания в процессе кодирования, устройство декодирования может получить разные синтаксические элементы путем анализа битового потока. Ниже приводится подробное описание со ссылкой на режим AMVP, режим слияния и режим пропуска.In particular, if the encoder side uses different inter-prediction modes in the encoding process, the decoding apparatus can obtain different syntax elements by analyzing the bit stream. Below is a detailed description with reference to AMVP mode, merge mode and skip mode.

В режиме AMVP синтаксический элемент включает в себя первые индексы, вторые индексы, информацию указания направления предсказания и разность векторов движения (MVD), первые индексы (например, mvp_lX_flag[xCb][yCb]) используются для указания предиктора целевого вектора движения-кандидата, предикторы целевых векторов движения-кандидатов включают в себя первый предиктор вектора движения, соответствующий первому списку (например, list0), и второй предиктор вектора движения, соответствующий второму списку (например, list1), и разность векторов движения (MVD) включает в себя первую MVD, соответствующую первому списку, и/или вторую MVD, соответствующую второму списку (например, когда включена только одна MVD, MVD, которая не передается, может быть получена на основе переданной MVD). Вторые индексы (которые также называются индексами опорных кадров) используются для указания опорных кадров текущего блока изображения, и опорные кадры включают в себя первый опорный кадр, соответствующий первому списку, и второй опорный кадр, соответствующий второму списку. Например, вторые индексы представляют собой refIdxL0 и refIdxL1, refIdxL0 представляет собой индекс первого опорного кадра, соответствующего первому списку, и refIdxL1 представляет собой индекс второго опорного кадра, соответствующего второму списку. Информация указания направления предсказания (например, predFlagL0=1 и predFlagL1=1) используется для указания того, что применяется двунаправленное предсказание.In AMVP mode, the syntax element includes first indices, second indices, prediction direction indication information, and motion vector difference (MVD), the first indices (for example, mvp_lX_flag[xCb][yCb]) are used to indicate the candidate target motion vector predictor, predictors the candidate target motion vectors include a first motion vector predictor corresponding to the first list (e.g., list0), and a second motion vector predictor corresponding to the second list (e.g., list1), and the motion vector difference (MVD) includes the first MVD, corresponding to the first list, and/or a second MVD corresponding to the second list (eg, when only one MVD is included, the MVD that is not transmitted can be obtained based on the transmitted MVD). The second indices (which are also called reference frame indices) are used to indicate reference frames of the current image block, and the reference frames include a first reference frame corresponding to the first list and a second reference frame corresponding to the second list. For example, the second indices are refIdxL0 and refIdxL1, refIdxL0 is the index of the first reference frame corresponding to the first list, and refIdxL1 is the index of the second reference frame corresponding to the second list. Prediction direction indication information (eg, predFlagL0=1 and predFlagL1=1) is used to indicate that bidirectional prediction is applied.

Первый вектор движения (например, Mv0_L0), соответствующий первому списку, получается на основе первого предиктора вектора движения (например, Mvp0_L0), соответствующего первому списку, и первой MVD (например, MVD0), соответствующей первому списку. Например, Mv0_L0=Mvp0_L0+MVD0.A first motion vector (eg, Mv0_L0) corresponding to the first list is obtained based on a first motion vector predictor (eg, Mvp0_L0) corresponding to the first list and a first MVD (eg, MVD0) corresponding to the first list. For example, Mv0_L0=Mvp0_L0+MVD0.

Второй вектор движения (например, Mv1_L1), соответствующий второму списку, получается на основе второго предиктора вектора движения (например, Mvp1_L1), соответствующего второму списку, и второй MVD (например, MVD1), соответствующей второму списку. Например, Mv1_L1=Mvp1_L1+MVD1.A second motion vector (eg, Mv1_L1) corresponding to the second list is obtained based on a second motion vector predictor (eg, Mvp1_L1) corresponding to the second list and a second MVD (eg, MVD1) corresponding to the second list. For example, Mv1_L1=Mvp1_L1+MVD1.

В поле кодирования видео режимы межкадрового предсказания включают в себя прямое предсказание, обратное предсказание и двунаправленное предсказание (включающее в себя прямое предсказание и обратное предсказание), и конкретный режим предсказания, используемый на стороне кодера, обычно указывается в информации указания направления предсказания. Например, информация указания направления предсказания может включать в себя синтаксические элементы predFlagL0 и predFlagL1. Когда predFlagL0=1 и predFlagL1=1, информация указания направления предсказания указывает то, что применяется двунаправленное предсказание. Когда predFlagL0=1 и predFlagL1=0, информация указания направления предсказания указывает то, что используется прямое предсказание. Когда predFlagL0=0 и predFlagL1=1, информация указания направления предсказания указывает то, что используется обратное предсказание. Вполне понятно, что "прямое направление" и "обратное направление", соответственно, соответствуют списку 0 опорных изображений (list0, а именно, предыдущему первому списку) и списку 1 опорных изображений (list1, а именно, предыдущему второму списку) текущего изображения.In the video coding field, inter-frame prediction modes include forward prediction, reverse prediction, and bidirectional prediction (including forward prediction and reverse prediction), and the specific prediction mode used at the encoder side is generally indicated in the prediction direction indication information. For example, the prediction direction indicating information may include syntax elements predFlagL0 and predFlagL1. When predFlagL0=1 and predFlagL1=1, the prediction direction indicating information indicates that bidirectional prediction is applied. When predFlagL0=1 and predFlagL1=0, the prediction direction indication information indicates that forward prediction is used. When predFlagL0=0 and predFlagL1=1, the prediction direction indication information indicates that reverse prediction is used. It is clear that the "forward direction" and the "reverse direction" respectively correspond to reference picture list 0 (list0, namely the previous first list) and reference picture list 1 (list1, namely the previous second list) of the current picture.

В режиме слияния синтаксический элемент включает в себя индекс (например, merge_idx[xCb][yCb]) информации движения целевого кандидата, информация движения целевого кандидата включает в себя целевые векторы движения-кандидаты, индексы опорных кадров и информацию указания направления предсказания (например, predFlagL0=1 и predFlagL1=1), информация указания направления предсказания используется для указания того, что применяется двунаправленное предсказание, целевые векторы движения-кандидаты включают в себя первый вектор движения, соответствующий первому списку (то есть list0), и второй вектор движения, соответствующий второму списку (то есть list1), и индексы опорных кадров включают в себя индекс (например, refIdxL0) первого опорного кадра, соответствующего первому списку, и индекс (например, refIdxL1) второго опорного кадра, соответствующего второму списку.In the merge mode, the syntax element includes an index (for example, merge_idx[xCb][yCb]) of target candidate motion information, the target candidate motion information includes candidate target motion vectors, reference frame indices, and prediction direction indication information (for example, predFlagL0 =1 and predFlagL1=1), prediction direction indication information is used to indicate that bidirectional prediction is applied, the candidate target motion vectors include a first motion vector corresponding to the first list (i.e., list0) and a second motion vector corresponding to the second list (ie, list1), and the reference frame indices include an index (eg, refIdxL0) of a first reference frame corresponding to the first list, and an index (eg, refIdxL1) of a second reference frame corresponding to the second list.

В данном варианте осуществления настоящей заявки индекс опорного кадра используется для идентификации опорного изображения, соответствующего используемому вектору движения (например, первому вектору движения или второму вектору движения) в заданном списке опорных изображений (первый список list0 или второй список list1). Изображение может называться кадром, и опорное изображение может называться опорным кадром.In this embodiment of the present application, the reference frame index is used to identify a reference picture corresponding to a motion vector being used (eg, a first motion vector or a second motion vector) in a given reference picture list (first list list0 or second list list1). The image may be called a frame, and the reference image may be called a reference frame.

В поле кодирования видео режимы межкадрового предсказания включают в себя прямое предсказание, обратное предсказание и двунаправленное предсказание (включающее в себя прямое предсказание и обратное предсказание), и конкретный режим предсказания, используемый на стороне кодера, обычно указывается в информации указания направления предсказания. Например, информация указания направления предсказания может включать в себя синтаксические элементы predFlagL0 и predFlagL1. Когда predFlagL0=1 и predFlagL1=1, информация указания направления предсказания указывает то, что применяется двунаправленное предсказание. Когда predFlagL0=1 и predFlagL1=0, информация указания направления предсказания указывает то, что используется прямое предсказание. Когда predFlagL0=0 и predFlagL1=1, информация указания направления предсказания указывает то, что используется обратное предсказание. Вполне понятно, что "прямое направление" и "обратное направление", соответственно, соответствуют списку 0 опорных изображений (list0, а именно, предыдущему первому списку) и списку 1 опорных изображений (list1, а именно, предыдущему второму списку) текущего изображения.In the video coding field, inter-frame prediction modes include forward prediction, reverse prediction, and bidirectional prediction (including forward prediction and reverse prediction), and the specific prediction mode used at the encoder side is generally indicated in the prediction direction indication information. For example, the prediction direction indicating information may include syntax elements predFlagL0 and predFlagL1. When predFlagL0=1 and predFlagL1=1, the prediction direction indicating information indicates that bidirectional prediction is applied. When predFlagL0=1 and predFlagL1=0, the prediction direction indication information indicates that forward prediction is used. When predFlagL0=0 and predFlagL1=1, the prediction direction indication information indicates that reverse prediction is used. It is clear that the "forward direction" and the "reverse direction" respectively correspond to reference picture list 0 (list0, namely the previous first list) and reference picture list 1 (list1, namely the previous second list) of the current picture.

В режиме пропуска содержание, включенное в синтаксический элемент, такое же, как и содержание, включенное в синтаксический элемент в режиме слияния, и разность заключается в том, что в режиме пропуска не требуется передавать остаток выборки.In skip mode, the content included in the syntax element is the same as the content included in the syntax element in merge mode, and the difference is that in skip mode, the remainder of the sample is not required to be transmitted.

В данном варианте осуществления настоящей заявки в одном случае, например, в режиме AMVP и режиме слияния, синтаксический элемент и остаток выборки получается путем синтаксического анализа битового потока. В другом случае, например, в режиме пропуска, синтаксический элемент получается путем синтаксического анализа битового потока, но остаток выборки не получается путем синтаксического анализа.In this embodiment of the present application, in one case, for example, in the AMVP mode and the merge mode, the syntax element and the remainder of the sample are obtained by parsing the bit stream. In another case, such as skip mode, the syntax element is obtained by parsing the bitstream, but the remainder of the sample is not obtained by parsing.

После синтаксического анализа битового потока сначала определяется то, выполнено ли множество заданных условий, и, если выполнены множество заданных условий или все заданные условия, выполняется этап S701, или, если множество заданных условий не выполнено, выполняется этап S702. Для случая, если множество заданных условий не выполнено, только случай на этапе S702 используется как характерный для подробного описания в данном документе. Другие случаи, которые являются такими же, как и в предшествующем уровне техники, не описаны в настоящей заявке.After parsing the bit stream, it is first determined whether a plurality of predetermined conditions are satisfied, and if the plurality of predetermined conditions or all of the predetermined conditions are satisfied, step S701 is executed, or if the plurality of predetermined conditions is not satisfied, step S702 is executed. In the case where a plurality of predetermined conditions are not met, only the case in step S702 is taken as representative of the detailed description herein. Other cases, which are the same as in the prior art, are not described in the present application.

Этап S701: Если выполнено множество заданных условий, устройство декодирования выполняет обработку на основе двунаправленного оптического потока (BDOF) над текущим блоком изображения для получения предсказанного значения выборки текущего блока изображения.Step S701: If a plurality of predetermined conditions are met, the decoding apparatus performs bidirectional optical flow (BDOF) processing on the current image block to obtain a predicted sample value of the current image block.

Двунаправленный оптический поток (Bi-directional optical flow, BDOF) может для краткости называться BIO или BDOF.Bi-directional optical flow (BDOF) can be called BIO or BDOF for short.

Множество заданных условий включает в себя по меньшей мере условие относительно того, что размер текущего блока изображения удовлетворяет первому заданному размеру. Размер текущего блока изображения обычно представлен шириной и высотой (которые обозначены W×H), и ширина и высота измеряются выборкой (выборкой или пикселем). Например, если размер текущего блока изображения составляет 8×8, первое число 8 указывает то, что ширина текущего блока изображения составляет 8 выборок, и второе число 8 указывает то, что высота текущего блока изображения составляет 8 выборок. В качестве другого примера, если размер текущего блока изображения составляет 8×16, число 8 указывает то, что ширина текущего блока изображения составляет 8 выборок, и число 16 указывает то, что высота текущего блока изображения составляет 16 выборок.The plurality of predetermined conditions includes at least a condition that the size of the current image block satisfies the first predetermined size. The size of the current image block is usually represented by the width and height (which are denoted by W×H), and the width and height are measured by a sample (sample or pixel). For example, if the size of the current image block is 8×8, the first number 8 indicates that the width of the current image block is 8 samples, and the second number 8 indicates that the height of the current image block is 8 samples. As another example, if the size of the current image block is 8×16, the number 8 indicates that the width of the current image block is 8 samples, and the number 16 indicates that the height of the current image block is 16 samples.

То, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или представляет собой): высоту H текущего блока изображения, большую или равную 8, и, когда произведение ширины W на высоту H текущего блока изображения равно 64, ширину W, не равную высоте H.That the size of the current image block satisfies the first specified size includes (or is): the height H of the current image block greater than or equal to 8, and, when the product of the width W and the height H of the current image block is 64, the width W not equal to height H.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или представляет собой): высоту H текущего блока изображения, большую или равную 8, и ширину W текущего блока изображения, большую или равную 8.Alternatively, that the size of the current image block satisfies the first specified size includes (or is): a height H of the current image block greater than or equal to 8, and a width W of the current image block greater than or equal to 8.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или представляет собой): высоту H текущего блока изображения, большую или равную 8, ширину W текущего блока изображения, большую или равную 8, и произведение ширины W текущего блока изображения на высоту H текущего блока изображения, большее 64.Alternatively, that the size of the current image block satisfies the first specified size includes (or is): the height H of the current image block greater than or equal to 8, the width W of the current image block greater than or equal to 8, and the product of the width W of the current image block by the height H of the current image block greater than 64.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или представляет собой): высоту H текущего блока изображения, большую или равную 8, ширину W текущего блока изображения, большую или равную 8, и произведение ширины W текущего блока изображения на высоту H текущего блока изображения, большее 128.Alternatively, that the size of the current image block satisfies the first specified size includes (or is): the height H of the current image block greater than or equal to 8, the width W of the current image block greater than or equal to 8, and the product of the width W of the current image block by the height H of the current image block greater than 128.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или представляет собой): высоту H текущего блока изображения, большую 8.Alternatively, that the size of the current image block satisfies the first specified size includes (or is): a height H of the current image block greater than 8.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или представляет собой): высоту H текущего блока изображения, большую 8, и ширину W текущего блока изображения, большую или равную 8.Alternatively, that the size of the current image block satisfies the first specified size includes (or is): a height H of the current image block greater than 8, and a width W of the current image block greater than or equal to 8.

Следует отметить, что прежде, чем определить (или получить путем предсказания) предсказанное значение выборки текущего блока изображения на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, согласно технологии BDOF, может существовать другое исходное условие в дополнение к размеру текущего блока изображения. Другое исходное условие в данном документе не ограничивается. Для простоты понимания ниже используются примеры для описания.It should be noted that before determining (or obtaining by prediction) the predicted sample value of the current image block based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list, according to BDOF technology, there may be another precondition in addition to to the size of the current image block. The other reference condition herein is not limited. For ease of understanding, examples are used below for description.

Условие A: Существует высокоуровневый идентификатор синтаксиса sps_bdof_enabled_flag, указывающий, что технологию BDOF разрешено использовать для текущей видеопоследовательности.Condition A: There is a high-level syntax identifier sps_bdof_enabled_flag indicating that BDOF technology is enabled for the current video sequence.

Условие B: Информация predFlagL0 указания направления предсказания, соответствующая первому списку (List1), равна 1, и информация указания направления предсказания predFlagL1, соответствующая второму списку (list0), равна 1.Condition B: The prediction direction indication information predFlagL0 corresponding to the first list (List1) is 1, and the prediction direction indication information predFlagL1 corresponding to the second list (list0) is 1.

Условие C: Значение POC_L0 счетчика очередности изображения опорного кадра, соответствующее первому списку (list0), значение POC_L1 счетчика очередности изображения опорного кадра, соответствующее второму списку (list1), и значения POC_Cur счетчика очередности изображения, на котором расположен текущий блок изображения, удовлетворяют следующему соотношению: (POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0. Другими словами, изображение, включающее в себя текущий блок изображения, находится между двумя опорными изображениями.Condition C: The POC_L0 value of the reference frame image queue counter corresponding to the first list (list0), the POC_L1 value of the reference frame image queue counter corresponding to the second list (list1), and the POC_Cur value of the image queue counter on which the current image block is located satisfy the following relationship : (POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0. In other words, an image including the current image block is located between two reference images.

Условие D: MotionModelIdc[xCb][yCb] равно 0. MotionModelIdc представляет собой индекс модели движения для компенсации движения. MotionModelIdc[xCb][yCb], равное 0, указывает то, что моделью движения для компенсации движения текущего блока является поступательное движение (Translational motion).Condition D: MotionModelIdc[xCb][yCb] is 0. MotionModelIdc is the motion model index for motion compensation. MotionModelIdc[xCb][yCb] equal to 0 indicates that the motion model to compensate for the current block's motion is Translational motion.

Условие E: merge_subblock_flag[x0][y0] равно 0, где merge_subblock_flag[x0][y0], равное 0, указывает то, что режим слияния подблоков не применяется для текущего блока изображения.Condition E: merge_subblock_flag[x0][y0] is equal to 0, where merge_subblock_flag[x0][y0] equal to 0 indicates that the subblock merging mode is not applied to the current image block.

Условие F: sym_mvd_flag[x0][y0] равно 0. sym_mvd_flag[x0][y0], равное 0, указывает то, что синтаксическая структура mvd_coding(x0, y0, refList, cpIdx) присутствует для текущего блока.Condition F: sym_mvd_flag[x0][y0] is equal to 0. sym_mvd_flag[x0][y0] equal to 0 indicates that the syntax structure mvd_coding(x0, y0, refList, cpIdx) is present for the current block.

Условие G: bcwIdx[xCb][yCb] равно 0. bcwIdx указывает весовой индекс двунаправленного предсказания для текущего блока изображения.Condition G: bcwIdx[xCb][yCb] is equal to 0. bcwIdx indicates the bidirectional prediction weight index for the current image block.

Условие H: cIdx равно 0. cIdx представляет собой индекс цветового компонента текущего блока изображения.Condition H: cIdx is 0. cIdx is the index of the color component of the current image block.

Условие I: Размер текущего блока изображения является первым заданным размером.Condition I: The size of the current image block is the first specified size.

Условие J: Как luma_weight_l0_flag[refIdxL0], так и luma_weight_l1_flag[refIdxL1] равны 0, где luma_weight_l0_flag, равное 0, указывает то, что отсутствуют весовые коэффициенты для компонента яркости предсказания list0, и luma_weight_l1_flag, равное 0, указывает то, что отсутствуют весовые коэффициенты для компонента яркости предсказания list1.Condition J: Both luma_weight_l0_flag[refIdxL0] and luma_weight_l1_flag[refIdxL1] are equal to 0, where luma_weight_l0_flag equal to 0 indicates that there are no weights for the luma component of the list0 prediction, and luma_weight_l1_flag equal to 0 indicates that there are no weights for the brightness component of the prediction list1.

Например, если выполнены все условия A-J, определяется, что технология BDOF может использоваться для предсказания предсказанного значения выборки текущего блока изображения. Например, bdofFlag устанавливается на значение "истина". Следует отметить, что вышеуказанные условия являются просто примерами, и может быть дополнительно добавлено другое условие, или могут быть заменены одно или более из вышеуказанных условий, или могут быть удалены одно или более из вышеуказанных условий.For example, if all conditions A-J are satisfied, it is determined that BDOF technology can be used to predict the predicted sample value of the current image block. For example, bdofFlag is set to true. It should be noted that the above conditions are merely examples, and another condition may be further added, or one or more of the above conditions may be replaced, or one or more of the above conditions may be deleted.

Следует понимать, что текущий блок изображения (который также упоминается как текущий блок) в данном документе может рассматриваться как блок изображения, подлежащий обработке. Например, в процессе декодирования текущий блок изображения представляет собой блок изображения, подлежащий декодированию (блок декодирования).It should be understood that the current image block (which is also referred to as the current block) may be considered herein as an image block to be processed. For example, in the decoding process, the current image block is an image block to be decoded (decoding block).

Вполне понятно, что другой случай может быть дополнительно получен со ссылкой на вышеизложенные случаи, и другой случай также подпадает под объем защиты настоящей заявки.It is clear that another case may be further obtained with reference to the above cases, and the other case also falls within the scope of protection of the present application.

Следует понимать, что способ в данном варианте осуществления настоящей заявки может выполняться устройством предсказания изображения, таким как видеодекодер или электронное устройство, имеющее функцию декодирования видео, и может, в частности, выполняться блоком компенсации движения в видеодекодере.It should be understood that the method in this embodiment of the present application may be performed by an image prediction device such as a video decoder or an electronic device having a video decoding function, and may in particular be performed by a motion compensation unit in the video decoder.

Более конкретно, условие использования технологии BDOF в этом решении отличается от условия использования технологии BDOF в предшествующем уровне техники, и, в частности, отличаются требования к размеру текущего блока изображения. Технология BDOF используется для текущего блока изображения, имеющего первый заданный размер, поэтому можно получить предсказанное значение выборки, более близкое к реальному значению выборки, можно управлять должным образом сложностью кодирования, и можно повысить эффективность кодирования.More specifically, the condition for using BDOF technology in this solution is different from the condition for using BDOF technology in the prior art, and in particular, the size requirements for the current image block are different. BDOF technology is used for the current image block having the first specified size, so that a predicted sample value closer to the actual sample value can be obtained, encoding complexity can be controlled properly, and encoding efficiency can be improved.

В данном варианте осуществления настоящей заявки устройство декодирования выполняет обработку двунаправленного оптического потока (BDOF) над текущим блоком изображения, если выполнено множество заданных условий, в частности: если выполнено множество заданных условий, устройство декодирования выполняет обработку двунаправленного оптического потока (BDOF) над текущим блоком изображения на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку.In this embodiment of the present application, the decoding apparatus performs bidirectional optical flow (BDOF) processing on the current image block if a plurality of predetermined conditions are met, in particular: if a plurality of predetermined conditions are satisfied, the decoding apparatus performs bidirectional optical flow (BDOF) processing on the current image block based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list.

В данном варианте осуществления настоящей заявки значение опорной выборки, соответствующее первому списку, и значение опорной выборки, соответствующее второму списку, соответственно, получают путем предсказания на основе первого вектора движения (например, Mv0_L0), соответствующего первому списку (то есть list0), и второго вектора движения (например, Mv1_L1), соответствующего второму списку (то есть list1). Например, значение опорной выборки, соответствующее первому списку (то есть list0), может быть определено на основе первого вектора движения (например, Mv0_L0), соответствующего первому списку (то есть list0), и значение опорной выборки, соответствующее второму списку (то есть list1), может быть определено на основе второго вектора движения (например, Mv1_L1), соответствующего второму списку (то есть list1).In this embodiment of the present application, a reference sample value corresponding to the first list and a reference sample value corresponding to the second list are respectively obtained by prediction based on the first motion vector (eg, Mv0_L0) corresponding to the first list (ie, list0) and the second motion vector (eg Mv1_L1) corresponding to the second list (ie list1). For example, a reference sample value corresponding to the first list (i.e., list0) may be determined based on a first motion vector (i.e., Mv0_L0) corresponding to the first list (i.e., list0), and a reference sample value corresponding to the second list (i.e., list1 ) may be determined based on the second motion vector (eg, Mv1_L1) corresponding to the second list (ie, list1).

Вполне понятно, что первый вектор движения (например, Mv0_L0), соответствующий первому списку (то есть list0), и второй вектор движения (например, Mv1_L1), соответствующий второму списку (то есть list1), получены по-разному в разных режимах межкадрового предсказания. Конкретный используемый режим межкадрового предсказания может быть выбран с помощью блока выбора режима. Ниже отдельно описано то, как определить первый вектор движения и второй вектор движения в режиме AMVP, режиме слияния и режиме пропуска.It is clear that the first motion vector (eg Mv0_L0) corresponding to the first list (ie list0) and the second motion vector (eg Mv1_L1) corresponding to the second list (ie list1) are obtained differently in different inter-frame prediction modes . The specific inter-prediction mode to be used can be selected using a mode selector. The following describes separately how to determine the first motion vector and the second motion vector in the AMVP mode, merge mode and skip mode.

Возможный случай 1: Режим межкадрового предсказания представляет собой режим AMVP.Possible case 1: The inter-frame prediction mode is AMVP mode.

Устройство сначала составляет список предикторов векторов движения (MVP)-кандидатов.The device first generates a list of motion vector predictor (MVP) candidates.

В частности, устройство декодирования составляет список предикторов векторов движения (MVP)-кандидатов (также называемый списком векторов движения-кандидатов) с использованием блока межкадрового предсказания (также называемого блоком межкадрового предсказания). Составленный список предикторов векторов движения (MVP)-кандидатов может быть списком предикторов одномерных векторов движения (MVP)-кандидатов или списком предикторов двухмерных векторов движения (MVP)-кандидатов. В данном варианте осуществления настоящей заявки устройство декодирования выполняет межкадровое предсказание в режиме двунаправленного предсказания.Specifically, the decoding apparatus constructs a motion vector predictor (MVP) candidate list (also called a motion vector candidate list) using an inter-frame prediction block (also called an inter-frame prediction block). The compiled list of motion vector predictor (MVP) candidates may be a list of one-dimensional motion vector predictor (MVP) candidates or a list of two-dimensional motion vector predictor (MVP) candidates. In this embodiment of the present application, the decoding device performs inter-frame prediction in a bidirectional prediction mode.

Затем устройство декодирования определяет информацию движения целевого кандидата в списке MVP на основе индекса, соответствующего информации движения целевого кандидата.The decoding apparatus then determines the motion information of the target candidate in the MVP list based on the index corresponding to the motion information of the target candidate.

В частности, информация движения целевого кандидата также может называться оптимальным вектором движения кандидата или может иметь другое название.In particular, the motion information of the target candidate may also be called the candidate's optimal motion vector or may have another name.

Далее, первый вектор движения и второй вектор движения определяются на основе информации движения целевого кандидата. Информация движения целевого кандидата включает в себя первый предиктор вектора движения (например, Mvp0_L0), соответствующий первому списку (то есть list0), и предиктор (например, Mvp1_L1), соответствующий второму списку (то есть list1). Например, первый вектор движения Mv0_L0 (прямое направление), соответствующий первому списку (list0), может быть получен на основе суммы первого предиктора вектора движения Mvp0_L0 и разности MVD0 векторов движения. Аналогично, второй вектор движения Mv1_L1 может быть получен на основе суммы предиктора второго вектора движения Mvp1_L1 и разности MVD1 векторов движения. При необходимости первый вектор движения (например, Mv0_L0), соответствующий первому списку (то есть list0) в данном документе, также может быть выражен как первый вектор движения, соответствующий первому направлению (например, прямому направлению), и второй вектор движения (например, Mvp_L1), соответствующий второму списку (то есть list1), также может быть выражен как второй вектор движения, соответствующий второму направлению (например, обратному направлению).Next, the first motion vector and the second motion vector are determined based on the motion information of the target candidate. The target candidate motion information includes a first motion vector predictor (eg, Mvp0_L0) corresponding to a first list (eg, list0) and a predictor (eg, Mvp1_L1) corresponding to a second list (eg, list1). For example, the first motion vector Mv0_L0 (forward direction) corresponding to the first list (list0) may be obtained based on the sum of the first motion vector predictor Mvp0_L0 and the motion vector difference MVD0. Likewise, the second motion vector Mv1_L1 can be obtained based on the sum of the second motion vector predictor Mvp1_L1 and the motion vector difference MVD1. Optionally, the first motion vector (e.g., Mv0_L0) corresponding to the first list (e.g., list0) herein may also be expressed as a first motion vector corresponding to the first direction (e.g., forward direction) and a second motion vector (e.g., Mvp_L1 ), corresponding to the second list (i.e. list1), can also be expressed as a second motion vector corresponding to the second direction (i.e., the reverse direction).

Возможный случай 2: Режимом межкадрового предсказания является режим слияния.Possible case 2: The inter-prediction mode is merging mode.

Устройство декодирования сначала составляет список информации движения кандидатов.The decoding apparatus first compiles a list of candidate motion information.

В частности, устройство декодирования составляет список информации движения кандидатов (также называемый списком векторов движения-кандидатов) с использованием блока межкадрового предсказания (также называемого модулем межкадрового предсказания).Specifically, the decoding apparatus constructs a candidate motion information list (also called a candidate motion vector list) using an inter-frame prediction unit (also called an inter-frame prediction unit).

Затем устройство декодирования определяет информацию движения целевого кандидата в списке информации движения кандидатов на основе индекса, соответствующего информации движения целевого кандидата.Then, the decoding device determines the motion information of the target candidate in the candidate motion information list based on the index corresponding to the motion information of the target candidate.

В частности, информация движения целевого кандидата включает в себя целевые векторы движения-кандидаты, индексы опорных кадров и информацию указания направления предсказания, информация указания направления предсказания используется для указания того, что применяется двунаправленное предсказание, целевые векторы движения-кандидаты включают в себя первый вектор движения, соответствующий первому списку, и второй вектор движения, соответствующий второму списку, и индексы опорных кадров включают в себя индекс первого опорного кадра, соответствующего первому списку, и индекс второго опорного кадра, соответствующего второму списку.Specifically, the target candidate motion information includes target candidate motion vectors, reference frame indices, and prediction direction indication information, the prediction direction indication information is used to indicate that bidirectional prediction is applied, the target candidate motion vectors include a first motion vector , corresponding to the first list, and a second motion vector, corresponding to the second list, and the reference frame indices include an index of the first reference frame, corresponding to the first list, and an index of the second reference frame, corresponding to the second list.

Информация движения целевого кандидата также может называться информацией оптимального движения кандидата или может иметь другое название.The target candidate motion information may also be called optimal candidate motion information or may have another name.

Возможный случай 3. Режим межкадрового предсказания представляет собой режим пропуска. Для связанного с ним описания следует обратиться к описанию режима слияния в предыдущем случае 2. Отличие от режима слияния состоит в том, что в режиме пропуска не требуется передавать остаток выборки.Possible case 3: The inter-frame prediction mode is a skip mode. For a related description, please refer to the description of merge mode in previous case 2. The difference from merge mode is that skip mode does not need to transmit the remainder of the sample.

Обращаясь к фиг. 6B, в данном варианте осуществления настоящей заявки текущее изображение, к которому принадлежит текущий блок изображения, имеет два опорных изображения: предыдущее опорное изображение и следующее опорное изображение, которые, соответственно, являются первым опорным изображением (например, прямым опорным изображением или прямым опорным кадром, где термин "прямой" в данном документе также может упоминаться как первое направление) и вторым опорным изображением (например, обратным опорным изображением или обратным опорным кадром, где термин "обратный" в данном документе может также упоминаться как второе направление). Значение опорной выборки, соответствующее первому списку, является значением опорной выборки на первом опорном изображении, и значение опорной выборки, соответствующее второму списку, является значением опорной выборки на втором опорном изображении.Referring to FIG. 6B, in this embodiment of the present application, the current image to which the current image block belongs has two reference images: a previous reference image and a next reference image, which are respectively the first reference image (for example, a forward reference image or a forward reference frame, wherein the term "forward" may also be referred to herein as the first direction) and a second reference image (eg, an inverse reference image or an inverse reference frame, wherein the term "reverse" may also be referred to as the second direction herein). The reference sample value corresponding to the first list is the reference sample value on the first reference image, and the reference sample value corresponding to the second list is the reference sample value on the second reference image.

При необходимости получение предсказанного значения выборки текущего блока путем предсказания на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, согласно технологии BDOF, может включать в себя: получение модифицированного вектора движения каждого подблока текущего блока на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, согласно технологии BDOF, и затем выполнение компенсации движения над каждым подблоком на основе модифицированного вектора движения для получения предсказанного значение выборки каждого подблока для получения предсказанного значения выборки текущего блока. Для простоты понимания ниже приводится описание примера.Optionally, obtaining the predicted sample value of the current block by predicting based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list, according to BDOF technology, may include: obtaining a modified motion vector of each sub-block of the current block based on the reference value sample corresponding to the first list and a reference sample value corresponding to the second list according to BDOF technology, and then performing motion compensation on each sub-block based on the modified motion vector to obtain a predicted sample value of each sub-block to obtain a predicted sample value of the current block. For ease of understanding, an example is described below.

Значение выборки в значении опорной выборки, соответствующем первому списку (list0), может быть выражена как , и значение выборки в значении опорной выборки, соответствующем второму списку (list1), может быть выражено как . Эти два значения вместе могут называться предсказанными в прямом и обратном направлениях значениями , где i=0..cuW-1, j=0..cuH-1, и k может быть равно 0 и 1. Здесь может быть получено с использованием 8-отводного интерполяционного фильтра, и значение выборки в другом местоположении (выполняется расширение по одной строке и одному столбцу) получают с использованием билинейного интерполяционного фильтра путем интерполяции. Следует отметить, что значение выборки расширенной области может быть альтернативно получено с использованием другого способа, например, может быть получено с использованием 8-отводного интерполяционного фильтра, или может быть непосредственно значением опорной выборки в целочисленном местоположении выборки. В данном документе это не ограничивается. Здесь cuW и cuH представляют собой, соответственно, ширину и высоту текущего блока изображения. Получение предсказанного значения выборки текущего блока изображения путем предсказания на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, согласно технологии BDOF, может, в частности, включать в себя следующие этапы.The sample value in the reference sample value corresponding to the first list (list0) can be expressed as , and the sample value in the reference sample value corresponding to the second list (list1) can be expressed as . These two values together can be called forward and backward predicted values , where i=0..cuW-1, j=0..cuH-1, and k can be equal to 0 and 1. Here can be obtained using an 8-tap interpolation filter, and the sample value at another location (one row and one column expansion is performed) is obtained using a bilinear interpolation filter by interpolation. It should be noted that the extended region sample value may alternatively be obtained using another method, for example, may be obtained using an 8-tap interpolation filter, or may be directly the reference sample value at an integer sample location. This document is not limited to this. Here, cuW and cuH represent the width and height of the current image block, respectively. Obtaining a predicted sample value of the current image block by predicting based on a reference sample value corresponding to the first list and a reference sample value corresponding to the second list according to BDOF technology may particularly include the following steps.

Этап 1. Вычислить сумму абсолютных разностей SAD между значениями выборки в значениях опорной выборки, соответствующих первому списку, и значениями выборки в значениях опорной выборки, соответствующих второму списку, определить, меньше ли SAD порогового значения TH_CU, и, если SAD меньше порогового значения TH_CU, пропустить выполнение BDOF, или, если SAD не меньше порогового значения TH_CU, выполнить BDOF. Этот этап не является обязательным.Step 1. Calculate the sum of the absolute differences SAD between the sample values in the reference sample values corresponding to the first list and the sample values in the reference sample values corresponding to the second list, determine whether the SAD is less than the threshold TH_CU, and, if the SAD is less than the threshold TH_CU, skip performing BDOF, or, if SAD is not less than the TH_CU threshold, perform BDOF. This step is optional.

Формула вычисления SAD выглядит следующим образом:The formula for calculating SAD is as follows:

Пороговое значение TH_CU может быть установлено на (1<<(BD-8+сдвиг))xcuWxcuH, и сдвиг равен Max (2, 14-BD).The TH_CU threshold can be set to (1<<(BD-8+offset))xcuWxcuH, and the offset is Max(2, 14-BD).

В качестве альтернативы, TH_CU может быть установлено на 1<<(BD-3+сдвиг).Alternatively, TH_CU can be set to 1<<(BD-3+offset).

При необходимости выполнение BDOF может быть альтернативно определено другими способами, и другие способы не перечисляются в данном документе один за другим.If necessary, the execution of BDOF may be alternatively defined by other methods, and other methods are not listed one by one in this document.

Когда определено выполнение BDOF, продолжает выполняться этап 4.When BDOF is determined to be executed, step 4 continues.

Этап 2: Рассчитать значение горизонтального градиента и значение вертикального градиента для предсказанных в прямом и обратном направлениях значений текущей CU.Step 2: Calculate the horizontal gradient value and the vertical gradient value for the forward and backward predicted values of the current CU.

Значение горизонтального градиента и значение вертикального градиента для предсказанных в прямом и обратном направлениях значений текущей CU включают в себя значение горизонтального градиента и значение вертикального градиента в местоположении выборки в значениях опорной выборки, соответствующих первому списку, и значение горизонтального градиента и значение вертикального градиента в местоположении выборки в значениях опорных выборок, соответствующих второму списку, где k последовательно устанавливается равным 0 и 1. Значение горизонтального градиента и значение вертикального градиента могут быть получены с использованием следующих формул:Meaning horizontal gradient and value vertical gradient for the forward and backward predicted values of the current CU include the value horizontal gradient and value vertical gradient at location samples in the reference sample values corresponding to the first list, and the value horizontal gradient and value vertical gradient at location samples in the values of the reference samples corresponding to the second list, where k is successively set to 0 and 1. Value horizontal gradient and value vertical gradient can be obtained using the following formulas:

Здесь i=0..cuW-1, j=0..cuH-1.Here i=0..cuW-1, j=0..cuH-1.

На этом этапе может быть получена матрица предсказания cuWxcuH для текущего блока изображения.At this stage, the prediction matrix cuWxcuH for the current image block can be obtained.

Этап 4: Выполнить расширение для предсказанных в прямом и обратном направлениях значений текущей CU, значения горизонтального градиента и значения вертикального градиента путем заполнения.Step 4: Extend the forward and backward predicted values of the current CU, the horizontal gradient value, and the vertical gradient value by padding.

Для вычисления модифицированного вектора движения подблока 4×4 требуются предсказанные в прямом и обратном направлениях значения зоны 6×6, в которой расположен подблок 4×4, значение горизонтального градиента из предсказанных в прямом и обратном направлениях значений и значение вертикального градиента из предсказанных в прямом и обратном направлениях значений. Для вычисления значения градиента зоны 6×6 требуются предсказанные в прямом и обратном направлениях значения для зоны 8×8. Таким образом, когда предсказанные в прямом и обратном направлениях значения должны быть получены с использованием интерполяционного фильтра, необходимо выполнить расширение на две строки и два столбца для получения блока выборки предсказания, размер которого составляет (W+4)×(H+4), чтобы вычислить значение градиента (W+2)×(H+2), где W - ширина текущей CU, и H - высота текущей CU. Чтобы уменьшить сложность BDOF, на границе CU может выполняться специальная обработка. Подробности представлены следующим образом:Forward and backward predicted values are required to calculate the modified motion vector of a 4x4 subblock 6x6 zone in which the 4x4 subblock is located, value horizontal gradient of forward and backward predicted values and the value vertical gradient from the forward and backward predicted values. To calculate the gradient value of a 6x6 zone, the forward and backward predicted values for an 8x8 zone are required. Thus, when the forward and backward predicted values are to be obtained using an interpolation filter, it is necessary to perform an expansion of two rows and two columns to obtain a prediction sample block whose size is (W+4)×(H+4) so that calculate the gradient value (W+2)×(H+2), where W is the width of the current CU, and H is the height of the current CU. To reduce the complexity of BDOF, special processing can be performed at the CU boundary. The details are presented as follows:

Предсказанное значение зоны W×H сначала получается с использованием 8-отводного фильтра, зона расширяется только на одну строку и один столбец, и предсказанное значение расширенной зоны получается с использованием билинейного фильтра для того, чтобы получить предсказанное значение зоны (W+2)×(H+2).The predicted value of the W×H zone is first obtained using an 8-tap filter, the zone is expanded by only one row and one column, and the predicted value of the expanded zone is obtained using a bilinear filter to obtain the predicted value of the zone (W+2)×( H+2).

Затем значение градиента зоны W×H может быть получено путем вычисления на основе предсказанного значения зоны (W+2)×(H+2) согласно формуле.Then, the zone gradient value W×H can be obtained by calculating based on the predicted zone value (W+2)×(H+2) according to the formula.

Наконец, согласно способу заполнения значение градиента зоны W×H увеличивается для получения значения горизонтального градиента и значение вертикального градиента зоны (W+2)×(H+2). Предсказанное значение зоны W×H увеличивается для получения предсказанного значения зоны (W+2)×(H+2).Finally, according to the filling method, the zone gradient value W×H is increased to obtain a horizontal gradient value and a vertical zone gradient value (W+2)×(H+2). The predicted zone value W×H is increased to obtain the predicted zone value (W+2)×(H+2).

Заполнение показано на фиг. 6D. Заполнение выполняется в соответствии со способом, показанным на фиг. 6D, чтобы получить , и , где i=-1..cuW, и j=-1..cuH. Более конкретно, получают матрицу предсказания (cuW+2)×(cuH+2), матрицу горизонтального градиента и матрицу вертикального градиента.The filling is shown in Fig. 6D. Filling is carried out in accordance with the method shown in Fig. 6D to get , And , where i=-1..cuW, and j=-1..cuH. More specifically, a prediction matrix (cuW+2)×(cuH+2), a horizontal gradient matrix, and a vertical gradient matrix are obtained.

Этап 5: Получить модифицированный вектор движения для каждого подблока 4×4, и затем выполнить взвешивание.Step 5: Obtain the modified motion vector for each 4x4 sub-block, and then perform the weighting.

Для каждого подблока 4×4 модифицированный вектор движения получается согласно формулам (2-3). В частности, модифицированный вектор движения каждого подблока 4×4 получается путем применения BDOF к окну 6×6 вокруг подблока, чтобы минимизировать предсказанные значения L0 и L1. В частности, выводится по следующим формулам:For each 4x4 subblock modified vector movement is obtained according to formulas (2-3). In particular, the modified vector the motion of each 4x4 subblock is obtained by applying BDOF to the window 6x6 around the sub-block to minimize the predicted values of L0 and L1. In particular, is derived using the following formulas:

Здесь - функция floor (где floor(A) представляет максимальное целое число, не превышающее A). и является порогом для предотвращения передачи ошибок, вызванной чрезмерно большим модифицированным вектором движения. , и . BD - битовая ширина текущей выборки.Here - floor function (where floor(A) represents the maximum integer not exceeding A). and is a threshold to prevent error transmission caused by an excessively large modified motion vector. , And . BD - bit width of the current sample.

, , , и вычисляются по следующим формулам: , , , And are calculated using the following formulas:

ЗдесьHere

В данном случае - предсказанное в прямом направлении значение местоположения выборки в текущей CU, то есть значение выборки местоположения выборки в значениях опорной выборки, которые относятся к текущей CU и соответствуют первому списку, и - предсказанное в обратном направлении значение местоположения выборки в текущей CU, то есть значение выборки местоположения выборки в значениях опорной выборки, которые относятся к текущей CU и соответствуют второму списку.In this case - forward predicted position value samples in the current CU, that is, the location sample value samples in the reference sample values that are related to the current CU and match the first list, and - backward predicted location value samples in the current CU, that is, the location sample value samples in the reference sample values that belong to the current CU and correspond to the second list.

После того, как модифицированный вектор движения получен согласно формулам (2-3), окончательное предсказанное значение каждой выборки в текущем блоке изображения, то есть значение выборки в блоке предсказания текущего блока изображения, может быть определено по следующим формулам:After the modified motion vector is obtained according to formulas (2-3), the final predicted value of each sample in the current image block, that is, the sample value in the prediction block of the current image block, can be determined by the following formulas:

Здесь и равны , и . - функция округления (rounding off). представляет собой примерное значение местоположения выборки в блоке предсказания.Here And equal , And . - rounding off function. represents the approximate location value samples in the prediction block.

Этап S702: Когда размер текущего блока изображения является вторым заданным размером, устройство декодирования определяет предсказанное значение выборки текущего блока изображения первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку.Step S702: When the size of the current image block is the second predetermined size, the decoding apparatus determines the predicted sample value of the current image block by the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list.

В частности, первым способом обработки не является BDOF (называемый двунаправленным оптическим потоком (Bi-directional optical flow, BIO)). Другими словами, когда размер текущего блока изображения является вторым заданным размером, BDOF не может использоваться для определения предсказанного значения выборки текущего блока изображения на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку. Размер текущего блока изображения обычно представлен шириной и высотой (которые обозначены W×H), и ширина и высота измеряются выборкой (выборкой или пикселем). Второй заданный размер включает в себя 8×8 (первое число 8 указывает то, что ширина текущего блока изображения составляет 8 выборок, и второе число 8 указывает то, что высота текущего блока изображения составляет 8 выборок), 4×N (4 указывает то, что ширина текущего блока изображения составляет 4 выборки, N указывает то, что высота текущего блока изображения составляет N выборок, и другие размеры выводятся по аналогии), 8×16 или 16×8. N равно степени 2 и больше или равно 8. Например, значение N может быть равным 16, 32, 64 или т.п.In particular, the first processing method is not BDOF (called Bi-directional optical flow (BIO)). In other words, when the size of the current image block is the second specified size, BDOF cannot be used to determine the predicted sample value of the current image block based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list. The size of the current image block is usually represented by the width and height (which are denoted by W×H), and the width and height are measured by a sample (sample or pixel). The second specified size includes 8×8 (the first number 8 indicates that the width of the current image block is 8 samples, and the second number 8 indicates that the height of the current image block is 8 samples), 4×N (4 indicates that that the width of the current image block is 4 samples, N indicates that the height of the current image block is N samples, and other sizes are derived similarly), 8x16 or 16x8. N is a power of 2 and greater than or equal to 8. For example, the value of N could be 16, 32, 64, or the like.

В данном варианте осуществления настоящей заявки значение опорной выборки, соответствующее первому списку, и значение опорной выборки, соответствующее второму списку, соответственно, получают путем предсказания на основе первого вектора движения (например, Mv0_L0), соответствующего первому списку (то есть list0), и второго вектора движения (например, Mv1_L1), соответствующего второму списку (то есть list1). Например, значение опорной выборки, соответствующее первому списку (то есть list0), может быть определено на основе первого вектора движения (например, Mv0_L0), соответствующего первому списку (то есть list0), и значение опорной выборки, соответствующее второму списку (то есть list1), может быть определено на основе второго вектора движения (например, Mv1_L1), соответствующего второму списку (то есть list1).In this embodiment of the present application, a reference sample value corresponding to the first list and a reference sample value corresponding to the second list are respectively obtained by prediction based on the first motion vector (eg, Mv0_L0) corresponding to the first list (ie, list0) and the second motion vector (eg Mv1_L1) corresponding to the second list (ie list1). For example, a reference sample value corresponding to the first list (i.e., list0) may be determined based on a first motion vector (i.e., Mv0_L0) corresponding to the first list (i.e., list0), and a reference sample value corresponding to the second list (i.e., list1 ) may be determined based on the second motion vector (eg, Mv1_L1) corresponding to the second list (ie, list1).

Следует отметить, что первый вектор движения и второй вектор движения определяются по-разному в разных режимах межкадрового предсказания. Для получения подробной информации о том, как определять первый вектор движения и второй вектор движения в режиме AMVP, режиме слияния и режиме пропуска, следует обратиться к описанию этапа S701. Подробности здесь снова не описываются.It should be noted that the first motion vector and the second motion vector are determined differently in different inter-frame prediction modes. For details of how to determine the first motion vector and the second motion vector in the AMVP mode, merge mode and skip mode, refer to the description of step S701. The details are again not described here.

Следует понимать, что текущий блок изображения (который также упоминается как текущий блок) в данном документе может рассматриваться как блок изображения, подлежащий обработке. Например, в процессе кодирования текущий блок изображения является блоком изображения, подлежащим кодированию (блоком кодирования).It should be understood that the current image block (which is also referred to as the current block) may be considered herein as an image block to be processed. For example, in the encoding process, the current image block is an image block to be encoded (encoding block).

Кроме того, вышеописанный случай, когда второй заданный размер включает в себя 8×8, 4×N, 8×16 или 16×8, также может быть ограничен вторым заданным размером, равным 8×8, 4×N, 8×16 или 16×8. Другими словами, BDOF запрещено использовать для одного из размеров 8×8, 4×N, 8×16 и 16×8, перечисленных выше, или BDOF запрещено использовать для множества их размеров. Далее для описания используются примеры.In addition, the above-described case where the second predetermined size includes 8×8, 4×N, 8×16 or 16×8 may also be limited to the second predetermined size being 8×8, 4×N, 8×16 or 16x8. In other words, BDOF is prohibited from being used for one of the 8x8, 4xN, 8x16, and 16x8 sizes listed above, or BDOF is prohibited from being used in multiple sizes of them. The following examples are used for description.

Пример 1: Второй заданный размер включает в себя (или составляет) 8×8. Другими словами, в данном варианте осуществления настоящей заявки BDOF запрещается использовать для размера 8×8. В этом случае получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, когда размер текущего блока изображения является вторым заданным размером, может быть, в частности, выражено как: когда размер текущего блока изображения равен 8×8, получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку.Example 1: The second given size includes (or is) 8x8. In other words, in this embodiment of the present application, BDOF is prohibited from being used for the size 8x8. In this case, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list when the size of the current image block is the second predetermined size may be particularly expressed as: when the size of the current image block is 8×8, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list.

Пример 2: Второй заданный размер включает в себя (или составляет) 4×N. Другими словами, в данном варианте осуществления настоящей заявки BDOF запрещается использовать для размера 4×N. В этом случае получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, когда размер текущего блока изображения является вторым заданным размером, может быть, в частности, выражено как: когда размер текущего блока изображения составляет 4×N, получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, где N больше или равно 8.Example 2: The second specified size includes (or is) 4×N. In other words, in this embodiment of the present application, BDOF is prohibited from being used for size 4×N. In this case, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list when the size of the current image block is the second predetermined size may be particularly expressed as: when the size of the current image block is 4×N, obtaining a predicted sample value of the current image block by prediction by the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list, where N is greater than or equal to 8 .

Пример 3: Второй заданный размер включает в себя (или составляет) 8×8 или 4×N. Другими словами, в данном варианте осуществления настоящей заявки BDOF запрещается использовать для размеров 8×8 и 4×N. В этом случае получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, когда размер текущего блока изображения является вторым заданным размером, может быть, в частности, выражено как: когда размер текущего блока изображения составляет 8×8 или 4×N, получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, где N больше или равно 8.Example 3: The second specified size includes (or is) 8x8 or 4xN. In other words, in this embodiment of the present application, BDOF is prohibited from being used for sizes 8x8 and 4xN. In this case, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list when the size of the current image block is the second predetermined size may be particularly expressed as: when the size of the current image block is 8×8 or 4×N, obtaining a predicted sample value of the current image block by prediction by the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list, where N greater than or equal to 8.

Пример 4: Второй заданный размер включает в себя (или составляет) 8×8, 4×N, 8×16 или 16×8, где N больше или равно 8. Другими словами, в данном варианте осуществления настоящей заявки BDOF запрещено использовать для размеров 8×8, 4×N, 8×16 и 16×8. В этом случае получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, когда размер текущего блока изображения является вторым заданным размером, может быть, в частности, выражено как: когда размер текущего блока изображения является любым из 8×8, 4×N, 8×16 и 16×8, получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку.Example 4: The second specified size includes (or is) 8x8, 4xN, 8x16, or 16x8, where N is greater than or equal to 8. In other words, in this embodiment of the present application, BDOF is prohibited from being used for sizes 8x8, 4xN, 8x16 and 16x8. In this case, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list when the size of the current image block is the second predetermined size may be particularly expressed as: when the size of the current image block is any of 8×8, 4×N, 8×16 and 16×8, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list, and values of the reference sample corresponding to the second list.

Пример 5: Второй заданный размер включает в себя (или составляет) N×8, где N больше или равно 4. Другими словами, в данном варианте осуществления настоящей заявки BDOF запрещается использовать для размера N×8. В этом случае получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, когда размер текущего блок изображения является вторым заданным размером, может быть, в частности, выражено как: когда размер текущего блока изображения равен N×8, получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку.Example 5: The second specified size includes (or is) N×8, where N is greater than or equal to 4. In other words, in this embodiment of the present application, BDOF is prohibited from being used for the size N×8. In this case, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list when the size of the current image block is the second predetermined size may be particularly expressed as: when the size of the current image block is N×8, obtaining a predicted sample value of the current image block by prediction by the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list.

Пример 6: Второй заданный размер включает в себя (или составляет) N×8 или 4×N, где N больше или равно 4. Другими словами, в данном варианте осуществления настоящей заявки BDOF запрещается использовать для размера N×8 или 4×N. В этом случае получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, когда размер текущего блока изображения является вторым заданным размером, может быть, в частности, выражено как: когда размер текущего блока изображения равен N×8 или 4×N, получение предсказанного значения выборки текущего блока изображения путем предсказания первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку.Example 6: The second specified size includes (or is) N×8 or 4×N, where N is greater than or equal to 4. In other words, in this embodiment of the present application, BDOF is prohibited from being used for the size N×8 or 4×N. In this case, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list when the size of the current image block is the second predetermined size may be particularly expressed as: when the size of the current image block is N×8 or 4×N, obtaining a predicted sample value of the current image block by predicting the first processing method based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list.

В дополнение к этому, так как BDOF также запрещено использовать для размера M×4 в некоторых сценариях, в настоящей заявке, когда BDOF запрещено использовать для второго заданного размера, BDOF дополнительно запрещено использовать для размера M×4, где M - целое число, большее или равное 4.In addition, since BDOF is also prohibited from being used for size M×4 in some scenarios, in the present application, when BDOF is prohibited from being used for a second specified size, BDOF is further prohibited from being used for size M×4, where M is an integer greater than or equal to 4.

Вполне понятно, что другой случай может быть дополнительно получен со ссылкой на вышеизложенные случаи, и другой случай также подпадает под объем защиты настоящей заявки. Следует понимать, что способ в данном варианте осуществления настоящей заявки может выполняться устройством предсказания изображения, таким как видеодекодер или электронное устройство, имеющее функцию декодирования видео, и может, в частности, выполняться блоком межкадрового предсказания в видеодекодере.It is clear that another case may be further obtained with reference to the above cases, and the other case also falls within the scope of protection of the present application. It should be understood that the method in this embodiment of the present application may be performed by an image prediction device such as a video decoder or an electronic device having a video decoding function, and may particularly be performed by an inter-frame prediction unit in the video decoder.

В дополнительном решении определение предсказанного значения выборки текущего блока изображения первым способом обработки на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, включает в себя:In a further solution, determining a predicted sample value of the current image block by the first processing method based on a reference sample value corresponding to the first list and a reference sample value corresponding to the second list includes:

выполнение взвешенного вычисления для значений выборок, имеющих одно и то же местоположение в значении опорной выборки, соответствующем первому списку, и в значении опорной выборки, соответствующем второму списку, для получения предсказанного значения выборки текущего блока изображения; илиperforming a weighted calculation on sample values having the same location in a reference sample value corresponding to the first list and a reference sample value corresponding to the second list to obtain a predicted sample value of the current image block; or

получение предсказанного значения выборки текущего блока изображения путем предсказания на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, согласно технологии разности векторов движения в режиме слияния (MMVD); илиobtaining a predicted sample value of the current image block by predicting based on a reference sample value corresponding to the first list and a reference sample value corresponding to the second list according to a merging mode motion vector difference (MMVD) technology; or

получение предсказанного значения выборки текущего блока изображения путем предсказания на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, согласно технологии объединенного межкадрового/внутрикадрового предсказания (CIIP); илиobtaining a predicted sample value of the current image block by predicting based on a reference sample value corresponding to the first list and a reference sample value corresponding to the second list according to a combined inter-/intra-frame prediction (CIIP) technology; or

получение предсказанного значения выборки текущего блока изображения путем предсказания на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, согласно технологии уточнения вектора движения на стороне декодера (DMVR).obtaining a predicted sample value of the current image block by predicting based on a reference sample value corresponding to the first list and a reference sample value corresponding to the second list according to a decoder-side motion vector refinement (DMVR) technology.

В данном варианте осуществления настоящей заявки то, используется ли способ взвешенного вычисления, технология MMVD, технология CIIP или технология DMVR, может быть определено с использованием соответствующего условия или может быть указано с использованием соответствующей информации указания.In this embodiment of the present application, whether the weighted calculation method, MMVD technology, CIIP technology or DMVR technology is used can be determined using a corresponding condition or can be indicated using corresponding indication information.

В данном варианте осуществления настоящей заявки то, используется ли способ взвешенного вычисления, технология MMVD или технология CIIP, может быть определено с использованием соответствующего условия или может быть указано с использованием соответствующей информации указания. При необходимости информация, в дальнейшем кодированная в битовом потоке, может дополнительно включать в себя целевой идентификатор, и целевой идентификатор используется для указания способа, используемого для предсказания предсказанного значения выборки текущего блока. Например, целевым идентификатором является mmvd_flag[x0][y0]. Когда mmvd_flag[x0][y0] является заданным значением (например, значением 1), это указывает то, что способ MMVD используется для текущего блока изображения.In this embodiment of the present application, whether the weighted calculation method, MMVD technology or CIIP technology is used can be determined using a corresponding condition or can be indicated using corresponding indication information. If necessary, the information further encoded in the bitstream may further include a target identifier, and the target identifier is used to indicate a method used to predict the predicted sample value of the current block. For example, the target identifier is mmvd_flag[x0][y0]. When mmvd_flag[x0][y0] is a specified value (eg, a value of 1), it indicates that the MMVD method is used for the current image block.

Реализация MMVD дополнительно представлена ниже. На фиг. 6C показано как получается предсказанная информация движения текущего блока изображения. Предполагается, что предиктор прямого вектора движения и предиктор обратного вектора движения (то есть предыдущий предиктор вектора движения, соответствующий первому списку, и предыдущий предиктор вектора движения, соответствующий второму списку) текущего блока изображения, соответственно, являются MV0 (-22, 18) и MV1 (2, 12), и разность прямых векторов движения и разность обратных векторов движения представляют собой, соответственно, MVD0 (1, 0) и MVD1 (-1, 0).The implementation of MMVD is further presented below. In fig. 6C shows how predicted motion information of the current image block is obtained. It is assumed that the forward motion vector predictor and the backward motion vector predictor (that is, the previous motion vector predictor corresponding to the first list and the previous motion vector predictor corresponding to the second list) of the current image block are, respectively, MV0 (-22, 18) and MV1 (2, 12), and the forward motion vector difference and the reverse motion vector difference are MVD0 (1, 0) and MVD1 (-1, 0), respectively.

Прямое предсказание и обратное предсказание выполняются отдельно для текущего блока изображения, чтобы получить блок прямого предсказания и блок обратного предсказания текущего блока изображения.Forward prediction and backward prediction are performed separately on the current image block to obtain a forward prediction block and a backward prediction block of the current image block.

MV0 (-22, 18) и MV1 (2, 12) используются в качестве опорных входных данных для предиктора прямого вектора движения и предиктора обратного вектора движения, и поиск движения с первой точностью выполняется для опорного блока q0 предсказания в прямом направлении и опорного блока h0 предсказания в обратном направлении. Например, первая точность равна 1-ой выборке.MV0 (-22, 18) and MV1 (2, 12) are used as reference input data for the forward motion vector predictor and the backward motion vector predictor, and first precision motion search is performed for the forward prediction reference block q0 and the reference block h0 predictions in the opposite direction. For example, the first precision is equal to the 1st sample.

Каждый из опорного блока q0 предсказания в прямом направлении и опорного блока h0 предсказания в прямом направлении используется в качестве начальной точки поиска для выполнения поиска движения с первой точностью, и определяется разность между новым опорным блоком предсказания в прямом направлении и новым опорным блоком предсказания в обратном направлении, которые обнаруживаются каждый раз. Например, определяются разности между восемью парами опорных блоков предсказания в прямом направлении и опорных блоков предсказания в обратном направлении вокруг опорного блока предсказания в прямом направлении и опорного блока предсказания в обратном направлении, и определяется разность между опорным блоком q0 предсказания в прямом направлении и опорным блоком h0 предсказания в обратном направлении. Предполагается, что предикторами вектора движения для опорного блока предсказания в прямом направлении и опорного блока предсказания в обратном направлении, которые имеют наименьшее различие, являются, соответственно, (-21, 18) и (1, 12). Точки поиска обновляются до (-21, 18) и (1, 12), которые, соответственно, соответствуют блоку опорному блоку q1 предсказания в прямом направлении и опорному блоку h1 предсказания в обратном направлении, и продолжает выполняться поиск движения с первой точностью. Каждый из опорного блока q1 предсказания в прямом направлении и опорного блока h1 предсказания в обратном направлении используется в качестве начальной точки поиска для выполнения поиска движения с первой точностью, и определяется разность между опорным блоком предсказания в прямом направлении и опорным блоком предсказания в обратном направлении, которые обнаруживаются каждый раз. Например, определяются разности между восемью парами опорных блоков предсказания в прямом направлении и опорных блоков предсказания в обратном направлении вокруг опорного блока q1 предсказания в прямом направлении и опорного блока h1 предсказания в обратном направлении, и определяется разность между опорным блоком q1 предсказания в прямом направлении и опорным блоком h1 предсказания в обратном направлении. Предполагается, что предикторами вектора движения для опорного блока предсказания в прямом направлении и опорного блока предсказания в обратном направлении, которые имеют наименьшее различие, являются, соответственно, (-21, 18) и (1, 12). (-21, 18) и (1, 12), соответственно, соответствуют опорному блоку q2 предсказания в прямом направлении и опорному блоку h2 предсказания в обратном направлении.Each of the forward prediction reference block q0 and the forward prediction reference block h0 is used as a search starting point to perform motion search with a first precision, and the difference between the new forward prediction reference block and the new backward prediction reference block is determined , which are detected every time. For example, the differences between eight pairs of forward prediction reference blocks and backward prediction reference blocks are determined around the forward prediction reference block and the backward prediction reference block, and the difference between the forward prediction reference block q0 and the reference block h0 is determined predictions in the opposite direction. It is assumed that the motion vector predictors for the forward prediction reference block and the backward prediction reference block that have the smallest difference are (-21, 18) and (1, 12), respectively. The search points are updated to (-21, 18) and (1, 12), which respectively correspond to the forward prediction reference block q1 and the backward prediction reference block h1, and the first precision motion search continues to be performed. Each of the forward prediction reference block q1 and the backward prediction reference block h1 is used as a search starting point to perform motion search with a first precision, and the difference between the forward prediction reference block and the backward prediction reference block, which are detected every time. For example, the differences between eight pairs of forward prediction reference blocks and backward prediction reference blocks are determined around the forward prediction reference block q1 and the backward prediction reference block h1, and the difference between the forward prediction reference block q1 and the reference block h1 is determined. block h1 of prediction in the opposite direction. It is assumed that the motion vector predictors for the forward prediction reference block and the backward prediction reference block that have the smallest difference are (-21, 18) and (1, 12), respectively. (-21, 18) and (1, 12), respectively, correspond to the forward prediction reference block q2 and the backward direction prediction reference block h2.

В данном варианте осуществления настоящей заявки количество раз поиска движения с первой точностью может быть установлено, например, на один или два. В качестве альтернативы, определяется диапазон поиска движения. Поиск останавливается за пределами диапазона.In this embodiment of the present application, the number of times of first precision motion search can be set to one or two, for example. Alternatively, the motion search range is determined. The search stops outside the range.

Используя в качестве примера значение два, предиктор вектора движения (-20, 18) опорного блока q2 предсказания в прямом направлении и MVD0 (1, 0) суммируются для получения (-19, 18), и предиктор вектора движения (0, 12) опорного блока h2 предсказания в обратном направлении и MVD1 суммируются для получения (1, 12). Таким образом, текущий блок изображения предсказывается на основе предиктора (-19, 18) прямого вектора движения и предиктора (1, 12) обратного вектора движения. На фиг. 6С показан только один процесс поиска движения.Using the value two as an example, the motion vector predictor (-20, 18) of the forward prediction reference block q2 and MVD0 (1, 0) are summed to obtain (-19, 18), and the motion vector predictor (0, 12) of the reference the backward prediction block h2 and MVD1 are summed to obtain (1, 12). Thus, the current image block is predicted based on the forward motion vector predictor (-19, 18) and the backward motion vector predictor (1, 12). In fig. 6C shows only one motion search process.

Следует отметить, что технология BDOF эквивалентна технологии оптимизации исправлений для традиционной технологии предсказания предсказанного значения выборки текущего блока изображения. Во многих сценариях предсказанное значение выборки, более близкое к реальному значению выборки текущего блока изображения, может быть получено в соответствии с технологией BDOF. Таким образом, остаток выборки, полученный на основе предсказанного значения выборки, может быть меньше, поэтому можно повысить эффективность кодирования. Вышеупомянутый способ взвешенного вычисления можно рассматривать как традиционную технологию для получения предсказанного значения выборки текущего блока изображения, и каждую из вышеизложенных технологий MMVD и CIIP можно рассматривать как технологию оптимизации исправлений для традиционной технологии. В данном варианте осуществления настоящей заявки, когда размер текущего блока изображения является вторым заданным размером, предсказанное значение выборки текущего блока изображения определяется в соответствии с традиционной технологией (например, способом взвешенного вычисления) или другой технологией оптимизации исправлений (например, MMVD или CIIP), а не технологией BDOF. Это позволяет значительно снизить сложность кодирования и повысить эффективность кодирования.It should be noted that the BDOF technology is equivalent to the patch optimization technology of the traditional technology of predicting the predicted sample value of the current image block. In many scenarios, a predicted sample value closer to the actual sample value of the current image block can be obtained according to BDOF technology. In this way, the sample residual obtained based on the predicted sample value can be smaller, so the encoding efficiency can be improved. The above-mentioned weighted calculation method can be considered as a traditional technology for obtaining the predicted sample value of the current image block, and each of the above MMVD and CIIP technologies can be considered as a patch optimization technology for the traditional technology. In this embodiment of the present application, when the size of the current image block is the second predetermined size, the predicted sample value of the current image block is determined in accordance with a conventional technology (for example, a weighted calculation method) or another patch optimization technology (for example, MMVD or CIIP), and not BDOF technology. This can greatly reduce coding complexity and improve coding efficiency.

Этап S703: Устройство декодирования определяет значение выборки текущего блока изображения на основе по меньшей мере предсказанного значения выборки текущего блока изображения.Step S703: The decoding apparatus determines the sample value of the current image block based on at least the predicted sample value of the current image block.

Например, в режиме AMVP и режиме слияния остаток выборки добавляется к предсказанному значению выборки текущего блока, чтобы получить значение выборки текущего блока. В режиме пропуска не требуется остатка выборки тогда, когда определяется значение выборки текущего блока.For example, in AMVP mode and merge mode, the remainder of the sample is added to the predicted sample value of the current block to obtain the sample value of the current block. In skip mode, no remainder of the sample is required when the sample value of the current block is determined.

На фиг. 8 показана схематичная блок-схема устройства 80 межкадрового предсказания согласно варианту осуществления настоящей заявки. Следует отметить, что устройство 80 межкадрового предсказания не только применимо к межкадровому предсказанию для декодирования видеоизображения, но также применимо к межкадровому предсказанию для кодирования видеоизображения. Следует понимать, что устройство 80 межкадрового предсказания в данном документе может соответствовать блоку 244 межкадрового предсказания, показанному на фиг. 2, или может соответствовать блоку 344 межкадрового предсказания, показанному на фиг. 3. Устройство 80 межкадрового предсказания может включать в себя блок 801 определения и блок 802 обработки межкадрового предсказания.In fig. 8 is a schematic block diagram of an interframe prediction apparatus 80 according to an embodiment of the present application. It should be noted that the inter-frame prediction apparatus 80 is not only applicable to inter-frame prediction for video decoding, but also applicable to inter-frame prediction for video encoding. It should be understood that the inter-frame prediction apparatus 80 herein may correspond to the inter-frame prediction unit 244 shown in FIG. 2, or may correspond to the inter-frame prediction block 344 shown in FIG. 3. The inter-frame prediction device 80 may include a determination unit 801 and an inter-frame prediction processing unit 802.

Блок 801 определения выполнен с возможностью определения того, удовлетворяет ли текущий блок изображения множеству заданных условий.The determination unit 801 is configured to determine whether the current image block satisfies a plurality of predetermined conditions.

Межкадровый блок 802 обработки предсказания выполнен с возможностью: если выполнено множество заданных условий, выполнения обработки на основе двунаправленного оптического потока BDOF (Bi-directional optical flow, BIO или BDOF для краткости) над текущим блоком для получения предсказанного значения выборки текущего блока изображения, где множество заданных условий включает в себя по меньшей мере условие, согласно которому размер текущего блока изображения удовлетворяет первому заданному размеру. Размер текущего блока изображения обычно представлен шириной и высотой (которые обозначены W×H), и ширина и высота измеряются выборкой (выборкой или пикселем). Например, если размер текущего блока изображения составляет 8×8, первое число 8 указывает то, что ширина текущего блока изображения составляет 8 выборок, и второе число 8 указывает то, что высота текущего блока изображения составляет 8 выборок. В качестве другого примера, если размер текущего блока изображения составляет 8×16, число 8 указывает то, что ширина текущего блока изображения составляет 8 выборок, и число 16 указывает то, что высота текущего блока изображения составляет 16 выборок.The interframe prediction processing unit 802 is configured to: if a plurality of predetermined conditions are met, perform BDOF (Bi-directional optical flow, BIO, or BDOF for short) processing on the current block to obtain a predicted sample value of the current image block, where the plurality of the specified conditions includes at least a condition that the size of the current image block satisfies the first specified size. The size of the current image block is usually represented by the width and height (which are denoted by W×H), and the width and height are measured by a sample (sample or pixel). For example, if the size of the current image block is 8×8, the first number 8 indicates that the width of the current image block is 8 samples, and the second number 8 indicates that the height of the current image block is 8 samples. As another example, if the size of the current image block is 8×16, the number 8 indicates that the width of the current image block is 8 samples, and the number 16 indicates that the height of the current image block is 16 samples.

То, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или составляет): высоту H текущего блока изображения, большую или равную 8, и, когда произведение ширины W на высоту H текущего блока изображения равно 64, ширину W, не равную высоте H.That the size of the current image block satisfies the first specified size includes (or is): the height H of the current image block greater than or equal to 8, and, when the product of the width W and the height H of the current image block is 64, the width W is not equal to height H.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или составляет): высоту H текущего блока изображения, большую или равную 8, и ширину W текущего блока изображения, большую или равную 8.Alternatively, that the size of the current image block satisfies the first specified size includes (or is): a height H of the current image block greater than or equal to 8, and a width W of the current image block greater than or equal to 8.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или составляет): высоту H текущего блока изображения, большую или равную 8, ширину W текущего блока изображения, большую или равную 8, и произведение ширины W текущего блока изображения на высоту H текущего блока изображения, большее 64.Alternatively, the size of the current image block satisfying the first specified size includes (or is): the height H of the current image block greater than or equal to 8, the width W of the current image block greater than or equal to 8, and the product of the width W of the current image block by the height H of the current image block, greater than 64.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или составляет): высоту H текущего блока изображения, большую или равную 8, ширину W текущего блока изображения, большую или равную 8, и произведение ширины W текущего блока изображения на высоту H текущего блока изображения, большее 128.Alternatively, the size of the current image block satisfying the first specified size includes (or is): the height H of the current image block greater than or equal to 8, the width W of the current image block greater than or equal to 8, and the product of the width W of the current image block to the height H of the current image block, greater than 128.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя: высоту H текущего блока изображения, большую 8.Alternatively, the size of the current image block satisfies the first specified size includes: the height H of the current image block greater than 8.

В качестве альтернативы, то, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя: высоту H текущего блока изображения, большую 8, и ширину W текущего блока изображения, большую или равную 8.Alternatively, the size of the current image block satisfies the first specified size includes: a height H of the current image block greater than 8, and a width W of the current image block greater than or equal to 8.

Следует отметить, что прежде, чем определить (или получить путем предсказания) предсказанное значение выборки текущего блока изображения на основе значения опорной выборки, соответствующего первому списку, и значения опорной выборки, соответствующего второму списку, согласно технологии BDOF, может существовать другое исходное условие в дополнение к размеру текущего блока изображения. Другое исходное условие в данном документе не ограничивается. Для простоты понимания ниже используются примеры для описания.It should be noted that before determining (or obtaining by prediction) the predicted sample value of the current image block based on the reference sample value corresponding to the first list and the reference sample value corresponding to the second list, according to BDOF technology, there may be another precondition in addition to to the size of the current image block. The other reference condition herein is not limited. For ease of understanding, examples are used below for description.

Условие A: Существует высокоуровневый идентификатор синтаксиса sps_bdof_enabled_flag, указывающий, что технологию BDOF разрешено использовать для текущей видеопоследовательности.Condition A: There is a high-level syntax identifier sps_bdof_enabled_flag indicating that BDOF technology is enabled for the current video sequence.

Условие B: Информация predFlagL0 указания направления предсказания, соответствующая первому списку (List1), равна 1, и информация указания направления предсказания predFlagL1, соответствующая второму списку (list0), равна 1.Condition B: The prediction direction indication information predFlagL0 corresponding to the first list (List1) is 1, and the prediction direction indication information predFlagL1 corresponding to the second list (list0) is 1.

Условие C: Значение POC_L0 счетчика очередности изображения опорного кадра, соответствующее первому списку (list0), значение POC_L1 счетчика очередности изображения опорного кадра, соответствующее второму списку (list1), и значения POC_Cur счетчика очередности изображения, на котором расположен текущий блок изображения, удовлетворяют следующему соотношению: (POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0. Другими словами, изображение, включающее в себя текущий блок изображения, находится между двумя опорными изображениями.Condition C: The POC_L0 value of the reference frame image queue counter corresponding to the first list (list0), the POC_L1 value of the reference frame image queue counter corresponding to the second list (list1), and the POC_Cur value of the image queue counter on which the current image block is located satisfy the following relationship : (POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0. In other words, an image including the current image block is located between two reference images.

Условие D: MotionModelIdc[xCb][yCb] равно 0. MotionModelIdc представляет собой индекс модели движения для компенсации движения. MotionModelIdc[xCb][yCb], равное 0, указывает то, что моделью движения для компенсации движения текущего блока является поступательное движение (Translational motion).Condition D: MotionModelIdc[xCb][yCb] is 0. MotionModelIdc is the motion model index for motion compensation. MotionModelIdc[xCb][yCb] equal to 0 indicates that the motion model to compensate for the current block's motion is Translational motion.

Условие E: merge_subblock_flag[x0][y0] равно 0, где merge_subblock_flag[x0][y0], равное 0, указывает то, что режим слияния подблоков не применяется для текущего блока изображения.Condition E: merge_subblock_flag[x0][y0] is equal to 0, where merge_subblock_flag[x0][y0] equal to 0 indicates that the subblock merging mode is not applied to the current image block.

Условие F: sym_mvd_flag[x0][y0] равно 0. sym_mvd_flag[x0][y0], равное 0, указывает то, что синтаксическая структура mvd_coding(x0, y0, refList, cpIdx) присутствует для текущего блока.Condition F: sym_mvd_flag[x0][y0] is equal to 0. sym_mvd_flag[x0][y0] equal to 0 indicates that the syntax structure mvd_coding(x0, y0, refList, cpIdx) is present for the current block.

Условие G: bcwIdx[xCb][yCb] равно 0. bcwIdx указывает весовой индекс двунаправленного предсказания для текущего блока изображения.Condition G: bcwIdx[xCb][yCb] is equal to 0. bcwIdx indicates the bidirectional prediction weight index for the current image block.

Условие H: cIdx равно 0. cIdx представляет собой индекс цветового компонента текущего блока изображения.Condition H: cIdx is 0. cIdx is the index of the color component of the current image block.

Условие I: Размер текущего блока изображения является первым заданным размером.Condition I: The size of the current image block is the first specified size.

Условие J: Как luma_weight_l0_flag[refIdxL0], так и luma_weight_l1_flag[refIdxL1] равны 0, где luma_weight_l0_flag, равное 0, указывает то, что отсутствуют весовые коэффициенты для компонента яркости предсказания list0, и luma_weight_l1_flag, равное 0, указывает то, что отсутствуют весовые коэффициенты для компонента яркости предсказания list1.Condition J: Both luma_weight_l0_flag[refIdxL0] and luma_weight_l1_flag[refIdxL1] are equal to 0, where luma_weight_l0_flag equal to 0 indicates that there are no weights for the luma component of the list0 prediction, and luma_weight_l1_flag equal to 0 indicates that there are no weights for the brightness component of the prediction list1.

Например, если выполнены все условия A-J, определяется, что технология BDOF может использоваться для предсказания предсказанного значения выборки текущего блока изображения. Например, bdofFlag устанавливается на значение "истина". Следует отметить, что вышеуказанные условия являются просто примерами, и может быть дополнительно добавлено другое условие, или могут быть заменены одно или более из вышеуказанных условий, или могут быть удалены одно или более из вышеуказанных условий.For example, if all conditions A-J are satisfied, it is determined that BDOF technology can be used to predict the predicted sample value of the current image block. For example, bdofFlag is set to true. It should be noted that the above conditions are merely examples, and another condition may be further added, or one or more of the above conditions may be replaced, or one or more of the above conditions may be deleted.

Следует понимать, что текущий блок изображения (который также упоминается как текущий блок) в данном документе может рассматриваться как блок изображения, подлежащий обработке. Например, в процессе кодирования текущий блок изображения является блоком изображения, подлежащим кодированию (блоком кодирования). Конечно, текущий блок изображения в данном документе альтернативно может рассматриваться как блок изображения, подлежащий обработке. Например, в процессе декодирования текущий блок изображения представляет собой блок изображения, подлежащий декодированию (блок декодирования).It should be understood that the current image block (which is also referred to as the current block) may be considered herein as an image block to be processed. For example, in the encoding process, the current image block is an image block to be encoded (encoding block). Of course, the current image block herein may alternatively be considered as an image block to be processed. For example, in the decoding process, the current image block is an image block to be decoded (decoding block).

Вполне понятно, что другой случай может быть дополнительно получен со ссылкой на вышеизложенные случаи, и другой случай также подпадает под объем защиты настоящей заявки.It is clear that another case may be further obtained with reference to the above cases, and the other case also falls within the scope of protection of the present application.

Следует понимать, что способ в вариантах осуществления настоящей заявки может выполняться видеокодером или электронным устройством, имеющим функцию кодирования видео, или может выполняться видеокодером или электронным устройством, имеющим функцию кодирования видео. Например, способ может быть специально реализован блоком межкадрового предсказания, находящимся в этих устройствах.It should be understood that the method in embodiments of the present application may be performed by a video encoder or electronic device having a video encoding function, or may be performed by a video encoder or electronic device having a video encoding function. For example, the method may be specifically implemented by an interframe prediction unit located in these devices.

Следует отметить, что для конкретных реализаций блока 801 определения и блока 802 обработки предсказания в вышеупомянутом устройстве 80 межкадрового предсказания следует обратиться к соответствующему описанию вариантов осуществления способа, показанных на фиг. 6A и фиг. 7.It should be noted that for specific implementations of the determining unit 801 and the prediction processing unit 802 in the above-mentioned inter-frame prediction apparatus 80, reference should be made to the corresponding description of the method embodiments shown in FIG. 6A and FIG. 7.

На этапах вышеупомянутой процедуры способа порядок описания этапов не представляет собой порядок выполнения этапов. Этапы могут выполняться или не выполняться в соответствии с вышеуказанным порядком описания.In the steps of the above method procedure, the order in which the steps are described does not represent the order in which the steps are performed. The steps may or may not be performed in accordance with the above order of description.

Специалист в данной области техники может понять, что функции, описанные со ссылкой на различные иллюстративные логические блоки, модули и этапы алгоритма, раскрытые и описанные в настоящем описании, могут быть реализованы с помощью аппаратных средств, программного обеспечения, программно-аппаратных средств или любого их сочетания. В случае, если функции реализованы с помощью программного обеспечения, то функции, описанные со ссылкой на иллюстративные логические блоки, модули и этапы, могут храниться или передаваться на машиночитаемом носителе информации в виде одной или нескольких инструкций или кода и исполняться аппаратным блоком обработки. Машиночитаемый носитель информации может включать в себя машиночитаемый носитель информации, который соответствует материальному носителю информации, например, носителю для хранения данных, или может включать в себя любую среду связи, которая облегчает передачу компьютерной программы из одного места в другое (например, согласно протоколу связи). Таким образом, машиночитаемый носитель информации может в целом соответствовать: (1) энергонезависимому материальному машиночитаемому носителю информации или (2) среде связи, такой как сигнал или носитель информации. Носитель информации может быть любым используемым носителем информации, к которому может получить доступ один или более компьютеров или один или более процессоров для извлечения инструкций, кода и/или структур данных для реализации технологий, описанных в настоящей заявке. Компьютерный программный продукт может включать в себя машиночитаемый носитель информации.One skilled in the art will appreciate that the functions described with reference to the various illustrative logical blocks, modules, and algorithm steps disclosed and described herein may be implemented by hardware, software, firmware, or any of them. combinations. When the functions are implemented in software, the functions described with reference to the illustrative logical blocks, modules, and steps may be stored or transmitted on a computer-readable storage medium in the form of one or more instructions or code and executed by a hardware processing unit. A computer-readable storage medium may include a computer-readable storage medium that corresponds to a tangible storage medium, such as a storage medium, or may include any communication medium that facilitates the transfer of a computer program from one place to another (for example, according to a communications protocol) . Thus, a computer-readable storage medium may generally correspond to: (1) a non-transitory tangible computer-readable storage medium or (2) a communication medium, such as a signal or storage medium. A storage medium can be any usable storage medium that can be accessed by one or more computers or one or more processors to retrieve instructions, code and/or data structures to implement the technologies described herein. The computer program product may include a computer readable storage medium.

В качестве примера, но не ограничения, такие машиночитаемые носители информации могут включать в себя RAM, ROM, EEPROM, CD-ROM или другое запоминающее устройство на компакт-дисках, запоминающее устройство на магнитных дисках или другое магнитное запоминающее устройство, флэш-память или любой другой носитель информации, который можно использовать для хранения желаемого программного кода в виде инструкции или структуры данных и к которому может получить доступ компьютер. В дополнение к этому, любое соединение называется должным образом машиночитаемым носителем информации. Например, если инструкция передается с веб-сайта, сервера или из другого удаленного источника с использованием коаксиального кабеля, оптоволокна, витой пары, цифровой абонентской линии (DSL) или беспроводной технологии, такой как инфракрасная, радио или микроволновая связь, то коаксиальный кабель, оптическое волокно, витая пара, DSL или беспроводная технология, такая как инфракрасная, радио или микроволновая связь, включены в определение среды. Однако следует понимать, что машиночитаемый носитель информации и носитель информации не включают в себя соединения, носители информации, сигналы или другие временные носители информации, но фактически означают невременные материальные носители информации. Магнитные диски и оптические диски, используемые в данной спецификации, включают в себя компакт-диск (CD), лазерный диск, оптический диск, универсальный цифровой диск (DVD) и диск Blu-ray. Магнитные диски обычно воспроизводят данные магнитным способом, тогда как оптические диски воспроизводят данные оптическим способом с помощью лазеров. Комбинации вышеупомянутых элементов также должны быть включены в объем машиночитаемых носителей информации.By way of example, and not limitation, such computer-readable storage media may include RAM, ROM, EEPROM, CD-ROM or other compact disc storage device, magnetic disk storage device or other magnetic storage device, flash memory or any another storage medium that can be used to store desired program code in the form of an instruction or data structure and that can be accessed by a computer. In addition to this, any connection is properly referred to as a computer-readable storage medium. For example, if an instruction is transmitted from a website, server, or other remote source using coaxial cable, fiber optic, twisted pair, digital subscriber line (DSL), or wireless technology such as infrared, radio, or microwave, then coaxial cable, optical fiber, twisted pair, DSL, or wireless technology such as infrared, radio, or microwave are included in the definition of media. However, it should be understood that computer-readable media and storage media do not include connections, storage media, signals or other temporary storage media, but actually mean non-transitory tangible storage media. Magnetic discs and optical discs used in this specification include compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), and Blu-ray disc. Magnetic disks typically reproduce data magnetically, while optical disks reproduce data optically using lasers. Combinations of the above elements should also be included within the scope of computer-readable storage media.

Инструкции могут исполняться одним или более процессорами, такими как один или более процессоров цифровых сигналов (DSP), микропроцессоры общего назначения, специализированные интегральные схемы (ASIC), программируемые пользователем вентильные матрицы (FPGA) или другие эквивалентные интегральные или дискретные логические схемы. Таким образом, используемый в настоящем описании термин "процессор" может быть любой из вышеупомянутых структур или любой другой структурой, подходящей для реализации технологий, описанных в настоящем описании. В дополнение к этому, в некоторых аспектах функции, описанные со ссылкой на иллюстративные логические блоки, модули и этапы, описанные в данной спецификации, могут быть предоставлены в рамках специализированных аппаратных и/или программных блоков, выполненных с возможностью кодирования и декодирования, или могут быть включены в объединенный кодек. В дополнение к этому, технологии могут быть полностью реализованы в одной или нескольких схемах или в одном или нескольких логических элементах.The instructions may be executed by one or more processors, such as one or more digital signal processors (DSPs), general purpose microprocessors, application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), or other equivalent integrated or discrete logic circuits. Thus, as used herein, the term "processor" may be any of the above structures or any other structure suitable for implementing the technologies described herein. In addition, in some aspects, the functions described with reference to the illustrative logical blocks, modules, and steps described in this specification may be provided within specialized hardware and/or software units configured to encode and decode, or may be included in the unified codec. In addition, technologies may be fully implemented in one or more circuits or one or more logic elements.

Технологии, рассматриваемые в настоящей заявке, могут быть реализованы в различных устройствах или устройствах, включающих в себя беспроводной телефон, интегральную схему (IC) или набор IC (например, набор микросхем). В настоящей заявке различные компоненты, модули или блоки описаны для того, чтобы подчеркнуть функциональные аспекты устройств, выполненных с возможностью выполнения раскрытых технологий, но не обязательно реализованных с помощью различных аппаратных блоков. Фактически, как описано выше, различные блоки могут быть объединены в аппаратный блок кодека в сочетании с соответствующим программным обеспечением и/или программно-аппаратными средствами, или могут быть обеспечены взаимодействующими аппаратными блоками (включая один или более процессоров, описанных выше).The technologies discussed herein may be implemented in various devices or devices, including a wireless telephone, an integrated circuit (IC), or a set of ICs (eg, a chipset). Various components, modules, or blocks are described herein to highlight the functional aspects of devices configured to perform the disclosed technologies, but not necessarily implemented by various hardware blocks. In fact, as described above, the various blocks may be combined into a codec hardware block in combination with associated software and/or firmware, or may be provided by cooperating hardware blocks (including one or more processors described above).

В приведенном выше описании описаны только примеры конкретных реализаций настоящей заявки, которые не предназначены для ограничения объема защиты настоящей заявки. Любые изменения или замены, которые могут легко выявить специалисты в данной области техники в пределах технического объема, раскрытого в настоящей заявке, должны подпадать под объем защиты настоящей заявки. Таким образом, объем защиты настоящей заявки должен быть подчинен объему защиты формулы изобретения.The foregoing description describes only examples of specific implementations of the present application and is not intended to limit the scope of the present application. Any changes or substitutions that may be readily apparent to those skilled in the art within the technical scope disclosed in this application shall fall within the scope of protection of this application. Thus, the scope of protection of the present application must be subordinated to the scope of protection of the claims.

Claims (109)

1. Способ кодирования, содержащий этапы, на которых:1. An encoding method containing the steps of: определяют, выполняется ли, для текущего блока изображения, множество заданных условий;determine whether, for the current image block, a plurality of specified conditions are satisfied; выполняют, при выполнении множества заданных условий, обработку на основе двунаправленного оптического потока (BDOF) текущего блока изображения для получения предсказанного значения выборки текущего блока изображения, причем множество заданных условий содержит то, что:performing, when a plurality of predetermined conditions are met, bidirectional optical flow (BDOF) processing on the current image block to obtain a predicted sample value of the current image block, the plurality of predetermined conditions comprising: информация predFlagL0 указания направления предсказания, соответствующая первому списку (List1), равна 1, и информация predFlagL1 указания направления предсказания, соответствующая второму списку (list0), равна 1, причем predFlagL0 и predFlagL1, каждый из которых равен 1, указывает то, что двунаправленное предсказание применяется к текущему блоку изображения;the prediction direction indicating information predFlagL0 corresponding to the first list (List1) is 1, and the prediction direction indicating information predFlagL1 corresponding to the second list (list0) is 1, where predFlagL0 and predFlagL1 are each 1 indicating that bidirectional prediction applies to the current image block; MotionModelIdc равен 0, где MotionModelIdc, равный 0, указывает то, что модель движения для компенсации движения текущего блока изображения представляет собой поступательное движение;MotionModelIdc equal to 0, where MotionModelIdc equal to 0 indicates that the motion model for motion compensation of the current image block is translational motion; merge_subblock_flag, включенный в синтаксический элемент, равен 0, где merge_subblock_flag, равный 0, указывает то, что режим слияния подблоков не применяется для текущего блока изображения;merge_subblock_flag included in the syntax element is 0, where merge_subblock_flag equal to 0 indicates that the subblock merge mode is not applied to the current image block; sym_mvd_flag, включенный в синтаксический элемент, равен 0, где sym_mvd_flag, равный 0, указывает то, что синтаксическая структура mvd_coding присутствует для текущего блока изображения;sym_mvd_flag included in the syntax element is equal to 0, where sym_mvd_flag equal to 0 indicates that the mvd_coding syntax structure is present for the current image block; bcwIdx, включенный в синтаксический элемент, равен 0, где bcwIdx указывает весовой индекс двунаправленного предсказания для текущего блока изображения;bcwIdx included in the syntax element is 0, where bcwIdx indicates the bidirectional prediction weight index for the current image block; cIdx равно 0, где cIdx представляет собой индекс цветового компонента текущего блока изображения;cIdx is equal to 0, where cIdx is the color component index of the current image block; высота H текущего блока изображения, больше или равна 8,height H of the current image block, greater than or equal to 8, ширина W текущего блока изображения, больше или равна 8,width W of the current image block, greater than or equal to 8, произведение ширины W текущего блока изображения на высоту H текущего блока изображения, больше 128; иproduct of the width W of the current image block and the height H of the current image block, greater than 128; And каждый из luma_weight_l0_flag[refIdxL0] и luma_weight_l1_flag[refIdxL1], включенный в синтаксический элемент, равен 0, где luma_weight_l0_flag, равный 0, указывает то, что отсутствуют весовые коэффициенты для компонента яркости предсказания list0, и luma_weight_l1_flag, равный 0, указывает то, что отсутствует компонент яркости предсказания list1; причемeach of luma_weight_l0_flag[refIdxL0] and luma_weight_l1_flag[refIdxL1] included in the syntax element is 0, where luma_weight_l0_flag equal to 0 indicates that there are no weights for the list0 prediction luma component, and luma_weight_l1_flag equal to 0 indicates that there is no luma prediction component list1; and пропускают, при невыполнении указанного множества заданных условий, выполнение обработки на основе двунаправленного оптического потока (BDOF) текущего блока изображения, и получают предсказанное значение выборки текущего блока изображения посредством предсказания на основе значения опорной выборки, соответствующей первому списку, и значения опорной выборки, соответствующей второму списку, согласно технологии уточнения вектора движения на стороне декодера (DMVR);skipping, if the plurality of predetermined conditions are not met, performing bidirectional optical flow (BDOF) processing of the current image block, and obtaining a predicted sample value of the current image block by predicting based on the value of the reference sample corresponding to the first list and the value of the reference sample corresponding to the second list, according to decoder-side motion vector refinement (DMVR) technology; получают восстановленное значение выборки текущего блока изображения на основе по меньшей мере предсказанного значения выборки текущего блока изображения; иobtaining a reconstructed sample value of the current image block based on at least the predicted sample value of the current image block; And кодируют синтаксический элемент, ассоциированный с текущим блоком изображения, в подлежащем передаче битовом потоке, причем синтаксический элемент используется по меньшей мере для указания того, что применяется двунаправленное предсказание, гдеencoding a syntax element associated with the current image block in a bitstream to be transmitted, wherein the syntax element is used to at least indicate that bidirectional prediction is applied, where каждая из W и H равна 2n, и n - целое число.W and H are each equal to 2n , and n is an integer. 2. Способ по п. 1, в котором синтаксический элемент содержит индекс информации движения целевого кандидата, информация движения целевого кандидата содержит целевые векторы движения-кандидаты, индексы опорных кадров и информацию указания направления предсказания, информация указания направления предсказания используется для указания того, что двунаправленное предсказание применяется для текущего блока изображения, целевые векторы движения-кандидаты содержат первый вектор движения, соответствующий первому списку, и второй вектор движения, соответствующий второму списку, и индексы опорных кадров содержат первый индекс опорного кадра, соответствующий первому списку и второй индекс опорного кадра, соответствующий второму списку.2. The method of claim 1, wherein the syntax element contains an index of target candidate motion information, the target candidate motion information contains target candidate motion vectors, reference frame indices, and prediction direction indication information, the prediction direction indication information is used to indicate that bidirectional prediction is applied to the current image block, the target candidate motion vectors include a first motion vector corresponding to the first list and a second motion vector corresponding to the second list, and the reference frame indices contain a first reference frame index corresponding to the first list and a second reference frame index corresponding to second list. 3. Способ по п. 1, в котором синтаксический элемент содержит первые индексы, вторые индексы, информацию указания направления предсказания и разность векторов движения (MVD), первые индексы используются для указания предикторов целевых векторов движения-кандидатов, предикторы целевых векторов движения-кандидатов содержат первый предиктор вектора движения, соответствующий первому списку, и второй предиктор вектора движения, соответствующий второму списку, а разность векторов движения (MVD) содержит первую MVD, соответствующую первому списку, и/или вторую MVD, соответствующую второму списку;3. The method of claim 1, wherein the syntax element comprises first indices, second indices, prediction direction indicating information and a motion vector difference (MVD), the first indices are used to indicate candidate target motion vector predictors, the candidate target motion vector predictors comprise a first motion vector predictor corresponding to the first list and a second motion vector predictor corresponding to the second list, and a motion vector difference (MVD) comprises a first MVD corresponding to the first list and/or a second MVD corresponding to the second list; вторые индексы используются для указания опорных кадров текущего блока изображения, опорные кадры содержат первый опорный кадр, соответствующий первому списку, и второй опорный кадр, соответствующий второму списку, а информация указания направления предсказания используется для указания того, что применяется двунаправленное предсказание для текущего блока изображения;second indices are used to indicate reference frames of the current image block, the reference frames include a first reference frame corresponding to the first list and a second reference frame corresponding to the second list, and prediction direction indicating information is used to indicate that bidirectional prediction is applied to the current image block; первый вектор движения, соответствующий первому списку, получен на основе первого предиктора вектора движения, соответствующего первому списку, и первой MVD, соответствующей первому списку; иa first motion vector corresponding to the first list is obtained based on a first motion vector predictor corresponding to the first list and a first MVD corresponding to the first list; And второй вектор движения, соответствующий второму списку, получен на основе второго предиктора вектора движения, соответствующего второму списку, и второй MVD, соответствующей второму списку.a second motion vector corresponding to the second list is obtained based on a second motion vector predictor corresponding to the second list and a second MVD corresponding to the second list. 4. Способ по любому из пп. 1-3, дополнительно содержащий этапы, на которых:4. Method according to any one of paragraphs. 1-3, further comprising the steps of: определяют остаток выборки на основе значения выборки текущего блока изображения и предсказанного значения выборки текущего блока изображения; иdetermining a sample remainder based on the sample value of the current image block and the predicted sample value of the current image block; And кодируют остаток выборки в подлежащем передаче битовом потоке.encode the remainder of the sample in the bit stream to be transmitted. 5. Способ по любому из пп. 1-3, в котором этап пропуска, при невыполнении указанного множества заданных условий, выполнение обработки на основе двунаправленного оптического потока (BDOF) текущего блока изображения, и получения предсказанного значения выборки текущего блока изображения посредством предсказания на основе значения опорной выборки, соответствующей первому списку, и значения опорной выборки, соответствующей второму списку, согласно технологии уточнения вектора движения на стороне декодера (DMVR) содержит то, что:5. Method according to any one of paragraphs. 1-3, wherein the step of skipping, when the plurality of predetermined conditions are not met, performing processing based on bidirectional optical flow (BDOF) of the current image block, and obtaining a predicted sample value of the current image block by predicting based on the value of the reference sample corresponding to the first list, and the reference sample value corresponding to the second list according to the decoder-side motion vector refinement (DMVR) technology contains that: получают, когда размер текущего блока изображения представляет собой второй заданный размер, значение предсказания выборки текущего блока изображения, посредством предсказания на основе значения опорной выборки, соответствующей первому списку, и значения опорной выборки, соответствующей второму списку согласно технологии уточнения вектора движения на стороне декодера (DMVR), причем второй заданный размер представляет собой 8×8, 4×N, 8×16 или 16×8, при этом 8×8 указывает, что ширина текущего блока изображения представляет собой 8 выборок и высота текущего блока изображения представляет собой 8 выборок, 4×N указывает, что ширина текущего блока изображения представляет собой 4 выборки, а высота текущего блока изображения представляет собой N выборок, 8×16 указывает, что ширина текущего блока изображения представляет собой 8 выборок, а высота текущего блока изображения представляет собой 16 выборок, а 16×8 указывает, что ширина текущего блока изображения представляет собой 16 выборок и высота текущего блока изображения представляет собой 8 выборок, где N представляет собой степень 2 и более или равно 8.is obtained, when the size of the current image block is a second predetermined size, a sample prediction value of the current image block by predicting based on the value of the reference sample corresponding to the first list and the value of the reference sample corresponding to the second list according to the decoder-side motion vector refinement (DMVR) technology ), wherein the second specified size is 8x8, 4xN, 8x16, or 16x8, wherein 8x8 indicates that the width of the current image block is 8 samples and the height of the current image block is 8 samples, 4xN indicates that the width of the current image block is 4 samples and the height of the current image block is N samples, 8x16 indicates that the width of the current image block is 8 samples and the height of the current image block is 16 samples. and 16x8 indicates that the width of the current image block is 16 samples and the height of the current image block is 8 samples, where N represents a power of 2 and greater than or equal to 8. 6. Способ декодирования, содержащий этапы, на которых:6. A decoding method comprising the steps of: выполняют синтаксический анализ битового потока для получения синтаксического элемента, причем указанный синтаксический элемент используется по меньшей мере для указания того, что двунаправленное предсказание применяется для текущего блока изображения;parsing the bit stream to obtain a syntax element, wherein said syntax element is used to at least indicate that bidirectional prediction is applied to the current image block; определяют, выполняется ли, для текущего блока изображения, множество заданных условий;determine whether, for the current image block, a plurality of specified conditions are satisfied; выполняют, при выполнении множества заданных условий, обработку, на основе двунаправленного оптического потока (BDOF), текущего блока изображения для получения предсказанного значения выборки текущего блока изображения, причем множество заданных условий содержит то, что:performing, when a plurality of predetermined conditions are met, processing, based on bidirectional optical flow (BDOF), of the current image block to obtain a predicted sample value of the current image block, the plurality of predetermined conditions comprising: информация predFlagL0 указания направления предсказания, соответствующая первому списку (List1), равна 1, и информация predFlagL1 указания направления предсказания, соответствующая второму списку (list0), равна 1, причем predFlagL0 и predFlagL1, каждый из которых равен 1, указывает то, что двунаправленное предсказание применяется к текущему блоку изображения;the prediction direction indicating information predFlagL0 corresponding to the first list (List1) is 1, and the prediction direction indicating information predFlagL1 corresponding to the second list (list0) is 1, where predFlagL0 and predFlagL1 are each 1 indicating that bidirectional prediction applies to the current image block; MotionModelIdc равен 0, где MotionModelIdc, равный 0, указывает то, что модель движения для компенсации движения текущего блока изображения представляет собой поступательное движение;MotionModelIdc equal to 0, where MotionModelIdc equal to 0 indicates that the motion model for motion compensation of the current image block is translational motion; merge_subblock_flag, включенный в синтаксический элемент, равен 0, где merge_subblock_flag, равный 0, указывает то, что режим слияния подблоков не применяется для текущего блока изображения;merge_subblock_flag included in the syntax element is 0, where merge_subblock_flag equal to 0 indicates that the subblock merge mode is not applied to the current image block; sym_mvd_flag, включенный в синтаксический элемент, равен 0, где sym_mvd_flag, равный 0, указывает то, что синтаксическая структура mvd_coding присутствует для текущего блока изображения;sym_mvd_flag included in the syntax element is equal to 0, where sym_mvd_flag equal to 0 indicates that the mvd_coding syntax structure is present for the current image block; bcwIdx, включенный в синтаксический элемент, равен 0, где bcwIdx указывает весовой индекс двунаправленного предсказания для текущего блока изображения;bcwIdx included in the syntax element is 0, where bcwIdx indicates the bidirectional prediction weight index for the current image block; cIdx равно 0, где cIdx представляет собой индекс цветового компонента текущего блока изображения;cIdx is equal to 0, where cIdx is the color component index of the current image block; высота H текущего блока изображения больше или равна 8,height H of the current image block is greater than or equal to 8, ширина W текущего блока изображения больше или равна 8,the width W of the current image block is greater than or equal to 8, произведение ширины W текущего блока изображения на высоту H текущего блока изображения больше 128; иthe product of the width W of the current image block and the height H of the current image block is greater than 128; And каждый из luma_weight_l0_flag[refIdxL0] и luma_weight_l1_flag[refIdxL1], включенный в синтаксический элемент, равен 0, где luma_weight_l0_flag, равный 0, указывает то, что отсутствуют весовые коэффициенты для компонента яркости предсказания list0, и luma_weight_l1_flag, равный 0, указывает то, что отсутствует компонент яркости предсказания list1; причемeach of luma_weight_l0_flag[refIdxL0] and luma_weight_l1_flag[refIdxL1] included in the syntax element is 0, where luma_weight_l0_flag equal to 0 indicates that there are no weights for the list0 prediction luma component, and luma_weight_l1_flag equal to 0 indicates that there is no luma prediction component list1; and пропускают, при невыполнении указанного множества заданных условий, выполнение обработки на основе двунаправленного оптического потока (BDOF) текущего блока изображения, и получают предсказанное значение выборки текущего блока изображения посредством предсказания на основе значения опорной выборки, соответствующей первому списку, и значения опорной выборки, соответствующей второму списку, согласно технологии уточнения вектора движения на стороне декодера (DMVR);skipping, if the plurality of predetermined conditions are not met, performing bidirectional optical flow (BDOF) processing of the current image block, and obtaining a predicted sample value of the current image block by predicting based on the value of the reference sample corresponding to the first list and the value of the reference sample corresponding to the second list, according to decoder-side motion vector refinement (DMVR) technology; получают восстановленное значение выборки текущего блока изображения на основе по меньшей мере предсказанного значения выборки текущего блока изображения, гдеobtain a reconstructed sample value of the current image block based on at least a predicted sample value of the current image block, where каждая из W и H равна 2n, и n - целое число.W and H are each equal to 2n , and n is an integer. 7. Способ по п. 6, в котором синтаксический элемент содержит индекс информации движения целевого кандидата, информация движения целевого кандидата содержит целевые векторы движения-кандидаты, индексы опорных кадров и информацию указания направления предсказания, информация указания направления предсказания используется для указания того, что двунаправленное предсказание применяется для текущего блока изображения, целевые векторы движения-кандидаты содержат первый вектор движения, соответствующий первому списку, и второй вектор движения, соответствующий второму списку, и индексы опорных кадров содержат первый индекс опорного кадра, соответствующий первому списку, и второй индекс опорного кадра, соответствующий второму списку.7. The method of claim 6, wherein the syntax element contains an index of target candidate motion information, the target candidate motion information contains target candidate motion vectors, reference frame indices, and prediction direction indication information, the prediction direction indication information is used to indicate that bidirectional prediction is applied to the current image block, the target candidate motion vectors include a first motion vector corresponding to the first list and a second motion vector corresponding to the second list, and the reference frame indices contain a first reference frame index corresponding to the first list and a second reference frame index, corresponding to the second list. 8. Способ по п. 6, в котором синтаксический элемент содержит первые индексы, вторые индексы, информацию указания направления предсказания и разность векторов движения (MVD), первые индексы используются для указания предикторов целевых векторов движения-кандидатов, предикторы целевых векторов движения-кандидатов содержат первый предиктор вектора движения, соответствующий первому списку, и второй предиктор вектора движения, соответствующий второму списку, и разность векторов движения (MVD) содержит первую MVD, соответствующую первому списку, и/или вторую MVD, соответствующую второму списку;8. The method of claim 6, wherein the syntax element comprises first indices, second indices, prediction direction indicating information and a motion vector difference (MVD), the first indices are used to indicate candidate target motion vector predictors, the candidate target motion vector predictors comprise a first motion vector predictor corresponding to the first list and a second motion vector predictor corresponding to the second list, and the motion vector difference (MVD) comprises a first MVD corresponding to the first list and/or a second MVD corresponding to the second list; вторые индексы используются для указания опорных кадров текущего блока изображения, опорные кадры содержат первый опорный кадр, соответствующий первому списку, и второй опорный кадр, соответствующий второму списку, и информация указания направления предсказания используется для указания того, что двунаправленное предсказание применяется для текущего блока изображения;second indices are used to indicate reference frames of the current image block, the reference frames include a first reference frame corresponding to the first list and a second reference frame corresponding to the second list, and prediction direction indicating information is used to indicate that bidirectional prediction is applied to the current image block; первый вектор движения, соответствующий первому списку, получен на основе первого предиктора вектора движения, соответствующего первому списку и первой MVD, соответствующей первому списку; иa first motion vector corresponding to the first list is obtained based on a first motion vector predictor corresponding to the first list and a first MVD corresponding to the first list; And второй вектор движения, соответствующий второму списку, получен на основе второго предиктора вектора движения, соответствующего второму списку, и второй MVD, соответствующей второму списку.a second motion vector corresponding to the second list is obtained based on a second motion vector predictor corresponding to the second list and a second MVD corresponding to the second list. 9. Способ по любому из пп. 6-8, в котором синтаксический анализ битового потока для получения синтаксического элемента содержит: анализ битового потока для получения остатка выборки и синтаксического элемента; а9. Method according to any one of paragraphs. 6-8, in which parsing the bitstream to obtain a syntax element comprises: parsing the bitstream to obtain a remainder of the sample and the syntax element; A определение восстановленного значения выборки текущего блока изображения на основе по меньшей мере предсказанного значения выборки текущего блока изображения, содержит: определение восстановленного значения выборки текущего блока изображения на основе остатка выборки и предсказанного значения выборки текущего блока изображения.determining a reconstructed sample value of the current image block based on at least a predicted sample value of the current image block, comprises: determining a reconstructed sample value of the current image block based on the sample remainder and the predicted sample value of the current image block. 10. Способ по любому из пп. 6-8, в котором этап пропуска, при невыполнении указанного множества заданных условий, выполнение обработки на основе двунаправленного оптического потока (BDOF) текущего блока изображения, и получения предсказанного значения выборки текущего блока изображения посредством предсказания на основе значения опорной выборки, соответствующей первому списку, и значения опорной выборки, соответствующей второму списку, согласно технологии уточнения вектора движения на стороне декодера (DMVR) содержит то, что:10. Method according to any one of paragraphs. 6-8, wherein the step of skipping, if the plurality of predetermined conditions is not met, performing processing based on bidirectional optical flow (BDOF) of the current image block, and obtaining a predicted sample value of the current image block by predicting based on the value of the reference sample corresponding to the first list, and the reference sample value corresponding to the second list according to the decoder-side motion vector refinement (DMVR) technology contains that: получают, когда размер текущего блока изображения представляет собой второй заданный размер, значение предсказания выборки текущего блока изображения, посредством предсказания на основе значения опорной выборки, соответствующей первому списку, и значения опорной выборки, соответствующей второму списку согласно технологии уточнения вектора движения на стороне декодера (DMVR), причем второй заданный размер представляет собой 8×8, 4×N, 8×16 или 16×8, при этом 8×8 указывает, что ширина текущего блока изображения представляет собой 8 выборок и высота текущего блока изображения представляет собой 8 выборок, 4×N указывает, что ширина текущего блока изображения представляет собой 4 выборки, а высота текущего блока изображения представляет собой N выборок, 8×16 указывает, что ширина текущего блока изображения представляет собой 8 выборок, а высота текущего блока изображения представляет собой 16 выборок, а 16×8 указывает, что ширина текущего блока изображения представляет собой 16 выборок и высота текущего блока изображения представляет собой 8 выборок, где N представляет собой степень 2 и более или равно 8.is obtained, when the size of the current image block is a second predetermined size, a sample prediction value of the current image block by predicting based on the value of the reference sample corresponding to the first list and the value of the reference sample corresponding to the second list according to the decoder-side motion vector refinement (DMVR) technology ), wherein the second specified size is 8x8, 4xN, 8x16, or 16x8, wherein 8x8 indicates that the width of the current image block is 8 samples and the height of the current image block is 8 samples, 4xN indicates that the width of the current image block is 4 samples and the height of the current image block is N samples, 8x16 indicates that the width of the current image block is 8 samples and the height of the current image block is 16 samples. and 16x8 indicates that the width of the current image block is 16 samples and the height of the current image block is 8 samples, where N represents a power of 2 and greater than or equal to 8. 11. Устройство кодирования, содержащее:11. Encoding device containing: блок межкадрового предсказания, выполненный с возможностью определения, выполняется ли, для текущего блока изображения, множество заданных условий; и реализации, когда выполнено множество заданных условий, обработки на основе двунаправленного оптического потока (BDOF) над текущим блоком изображения для получения предсказанного значения выборки текущего блока изображения, причем множество заданных условий содержит то, чтоan inter-frame prediction unit configured to determine whether, for the current image block, a plurality of predetermined conditions are satisfied; and implementing, when the plurality of predetermined conditions are satisfied, bidirectional optical flow (BDOF) processing on the current image block to obtain a predicted sample value of the current image block, the plurality of predetermined conditions comprising: информация predFlagL0 указания направления предсказания, соответствующая первому списку (List1), равна 1, и информация predFlagL1 указания направления предсказания, соответствующая второму списку (list0), равна 1, причем predFlagL0 и predFlagL1, каждый из которых равен 1, указывает то, что двунаправленное предсказание применяется к текущему блоку изображения;the prediction direction indicating information predFlagL0 corresponding to the first list (List1) is 1, and the prediction direction indicating information predFlagL1 corresponding to the second list (list0) is 1, where predFlagL0 and predFlagL1 are each 1 indicating that bidirectional prediction applies to the current image block; MotionModelIdc равен 0, где MotionModelIdc, равный 0, указывает то, что модель движения для компенсации движения текущего блока изображения представляет собой поступательное движение;MotionModelIdc equal to 0, where MotionModelIdc equal to 0 indicates that the motion model for motion compensation of the current image block is translational motion; merge_subblock_flag, включенный в синтаксический элемент, равен 0, где merge_subblock_flag, равный 0, указывает то, что режим слияния подблоков не применяется для текущего блока изображения;merge_subblock_flag included in the syntax element is 0, where merge_subblock_flag equal to 0 indicates that the subblock merge mode is not applied to the current image block; sym_mvd_flag, включенный в синтаксический элемент, равен 0, где sym_mvd_flag, равный 0, указывает то, что синтаксическая структура mvd_coding присутствует для текущего блока изображения;sym_mvd_flag included in the syntax element is equal to 0, where sym_mvd_flag equal to 0 indicates that the mvd_coding syntax structure is present for the current image block; bcwIdx, включенный в синтаксический элемент, равен 0, где bcwIdx указывает весовой индекс двунаправленного предсказания для текущего блока изображения;bcwIdx included in the syntax element is 0, where bcwIdx indicates the bidirectional prediction weight index for the current image block; cIdx равно 0, где cIdx представляет собой индекс цветового компонента текущего блока изображения;cIdx is equal to 0, where cIdx is the color component index of the current image block; высота H текущего блока изображения больше или равна 8,height H of the current image block is greater than or equal to 8, ширина W текущего блока изображения больше или равна 8,the width W of the current image block is greater than or equal to 8, произведение ширины W текущего блока изображения на высоту H текущего блока изображения больше 128; иthe product of the width W of the current image block and the height H of the current image block is greater than 128; And каждый из luma_weight_l0_flag[refIdxL0] и luma_weight_l1_flag[refIdxL1], включенный в синтаксический элемент, равен 0, где luma_weight_l0_flag, равный 0, указывает то, что отсутствуют весовые коэффициенты для компонента яркости предсказания list0, и luma_weight_l1_flag, равный 0, указывает то, что отсутствует компонент яркости предсказания list1; причемeach of luma_weight_l0_flag[refIdxL0] and luma_weight_l1_flag[refIdxL1] included in the syntax element is 0, where luma_weight_l0_flag equal to 0 indicates that there are no weights for the list0 prediction luma component, and luma_weight_l1_flag equal to 0 indicates that there is no luma prediction component list1; and блок межкадрового предсказания выполнен с возможностью пропуска, при невыполнении указанного множества заданных условий, выполнения обработки на основе двунаправленного оптического потока (BDOF) текущего блока изображения, и получения предсказанного значения выборки текущего блока изображения посредством предсказания на основе значения опорной выборки, соответствующей первому списку, и значения опорной выборки, соответствующей второму списку, согласно технологии уточнения вектора движения на стороне декодера (DMVR); при этомthe interframe prediction unit is configured to skip, if the plurality of predetermined conditions are not met, perform processing based on bidirectional optical flow (BDOF) of the current image block, and obtain a predicted sample value of the current image block by predicting based on the value of the reference sample corresponding to the first list, and values of the reference sample corresponding to the second list according to the decoder-side motion vector refinement (DMVR) technology; wherein устройство кодирования также содержит:the encoding device also contains: блок восстановления, выполненный с возможностью получения восстановленного значения выборки текущего блока изображения на основе по меньшей мере предсказанного значения выборки текущего блока изображения; иa recovery unit configured to obtain a reconstructed sample value of the current image block based on at least a predicted sample value of the current image block; And блок энтропийного кодирования, выполненный с возможностью кодирования синтаксического элемента в подлежащем передаче битовом потоке, причем синтаксический элемент используется по меньшей мере для указания того, что двунаправленное предсказание применяется для текущего блока изображения, гдеan entropy encoding unit configured to encode a syntax element in a bit stream to be transmitted, wherein the syntax element is used to at least indicate that bidirectional prediction is applied to the current block of the image, where каждая из W и H равна 2n, и n - целое число.W and H are each equal to 2n , and n is an integer. 12. Устройство кодирования по п. 11, в котором синтаксический элемент содержит индекс информации движения целевого кандидата, информация движения целевого кандидата содержит целевые векторы движения-кандидаты, индексы опорных кадров и информацию указания направления предсказания, информация указания направления предсказания используется для указания того, что двунаправленное предсказание применяется для текущего блока изображения, целевые векторы движения-кандидаты содержат первый вектор движения, соответствующий первому списку, и второй вектор движения, соответствующий второму списку, и индексы опорных кадров содержат первый индекс опорного кадра, соответствующий первому списку, и второй индекс опорного кадра, соответствующий второму списку.12. The encoding device according to claim 11, wherein the syntax element contains an index of target candidate motion information, the target candidate motion information contains target candidate motion vectors, reference frame indices and prediction direction indication information, the prediction direction indication information is used to indicate that bidirectional prediction is applied to the current image block, the candidate target motion vectors comprise a first motion vector corresponding to the first list and a second motion vector corresponding to the second list, and the reference frame indices contain a first reference frame index corresponding to the first list and a second reference frame index , corresponding to the second list. 13. Устройство кодирования по п. 11, в котором синтаксический элемент содержит первые индексы, вторые индексы, информацию указания направления предсказания и разность векторов движения (MVD), первые индексы используются для указания предикторов целевых векторов движения-кандидатов, предикторы целевых векторов движения-кандидатов содержат первый предиктор вектора движения, соответствующий первому списку, и второй предиктор вектора движения, соответствующий второму списку, и разность векторов движения (MVD) содержит первую MVD, соответствующую первому списку, и/или вторую MVD, соответствующую второму списку;13. The encoding device as set forth in claim 11, wherein the syntax element comprises first indices, second indices, prediction direction indicating information, and a motion vector difference (MVD), the first indices are used to indicate candidate target motion vector predictors, candidate target motion vector predictors contain a first motion vector predictor corresponding to the first list and a second motion vector predictor corresponding to the second list, and a motion vector difference (MVD) contains a first MVD corresponding to the first list and/or a second MVD corresponding to the second list; вторые индексы используются для указания опорных кадров текущего блока изображения, опорные кадры содержат первый опорный кадр, соответствующий первому списку, и второй опорный кадр, соответствующий второму списку, и информация указания направления предсказания используется для указания того, что двунаправленное предсказание применяется для текущего блока изображения;second indices are used to indicate reference frames of the current image block, the reference frames include a first reference frame corresponding to the first list and a second reference frame corresponding to the second list, and prediction direction indicating information is used to indicate that bidirectional prediction is applied to the current image block; первый вектор движения, соответствующий первому списку, получается на основе первого предиктора вектора движения, соответствующего первому списку, и первой MVD, соответствующей первому списку; иa first motion vector corresponding to the first list is obtained based on a first motion vector predictor corresponding to the first list and a first MVD corresponding to the first list; And второй вектор движения, соответствующий второму списку, получается на основе второго предиктора вектора движения, соответствующего второму списку, и второй MVD, соответствующей второму списку.a second motion vector corresponding to the second list is obtained based on a second motion vector predictor corresponding to the second list and a second MVD corresponding to the second list. 14. Устройство кодирования по любому из пп. 11-13, дополнительно содержащее:14. Encoding device according to any one of paragraphs. 11-13, additionally containing: блок вычисления остатка, выполненный с возможностью определения остатка выборки на основе значения выборки текущего блока изображения и предсказанного значения выборки текущего блока изображения; аa remainder calculation unit configured to determine a sample remainder based on a sample value of the current image block and a predicted sample value of the current image block; A блок энтропийного кодирования выполнен с возможностью кодирования синтаксического элемента и остатка выборки в передаваемом битовом потоке.the entropy encoding unit is configured to encode the syntax element and the remainder of the sample in the transmitted bit stream. 15. Устройство кодирования по любому из пп. 11-13, в котором блок межкадрового предсказания выполнен с возможностью:15. Encoding device according to any one of paragraphs. 11-13, in which the interframe prediction block is configured to: получения, когда размер текущего блока изображения представляет собой второй заданный размер, значения предсказания выборки текущего блока изображения, посредством предсказания на основе значения опорной выборки, соответствующей первому списку, и значения опорной выборки, соответствующей второму списку согласно технологии уточнения вектора движения на стороне декодера (DMVR), причем второй заданный размер представляет собой 8×8, 4×N, 8×16 или 16×8, при этом 8×8 указывает, что ширина текущего блока изображения представляет собой 8 выборок и высота текущего блока изображения представляет собой 8 выборок, 4×N указывает, что ширина текущего блока изображения представляет собой 4 выборки, а высота текущего блока изображения представляет собой N выборок, 8×16 указывает, что ширина текущего блока изображения представляет собой 8 выборок, а высота текущего блока изображения представляет собой 16 выборок, а 16×8 указывает, что ширина текущего блока изображения представляет собой 16 выборок и высота текущего блока изображения представляет собой 8 выборок, где N представляет собой степень 2 и более или равно 8.obtaining, when the size of the current image block is a second predetermined size, a sample prediction value of the current image block by predicting based on the value of the reference sample corresponding to the first list and the value of the reference sample corresponding to the second list according to the decoder-side motion vector refinement (DMVR) technology ), wherein the second specified size is 8x8, 4xN, 8x16, or 16x8, wherein 8x8 indicates that the width of the current image block is 8 samples and the height of the current image block is 8 samples, 4xN indicates that the width of the current image block is 4 samples and the height of the current image block is N samples, 8x16 indicates that the width of the current image block is 8 samples and the height of the current image block is 16 samples. and 16x8 indicates that the width of the current image block is 16 samples and the height of the current image block is 8 samples, where N represents a power of 2 and greater than or equal to 8. 16. Устройство декодирования, содержащее:16. A decoding device comprising: блок энтропийного декодирования, выполненный с возможностью синтаксического анализа битового потока для получения синтаксического элемента, причем синтаксический элемент по меньшей мере используется для указания того, что двунаправленное предсказание применяется для текущего блока изображения;an entropy decoding unit configured to parse the bitstream to obtain a syntax element, wherein the syntax element is at least used to indicate that bidirectional prediction is applied to the current image block; блок межкадрового предсказания, выполненный с возможностью определения, выполняется ли, для текущего блока изображения, множество заданных условий; и реализации, когда выполнено множество заданных условий, обработки, на основе двунаправленного оптического потока (BDOF), текущего блока изображения для получения предсказанного значения выборки текущего блока изображения, причем множество заданных условий содержит то, что:an inter-frame prediction unit configured to determine whether, for the current image block, a plurality of predetermined conditions are satisfied; and implementing, when the plurality of predetermined conditions are satisfied, processing, based on bidirectional optical flow (BDOF), the current image block to obtain a predicted sample value of the current image block, the plurality of predetermined conditions comprising: информация predFlagL0 указания направления предсказания, соответствующая первому списку (List1), равна 1, и информация predFlagL1 указания направления предсказания, соответствующая второму списку (list0), равна 1, причем predFlagL0 и predFlagL1, каждый из которых равен 1, указывает то, что двунаправленное предсказание применяется к текущему блоку изображения;the prediction direction indicating information predFlagL0 corresponding to the first list (List1) is 1, and the prediction direction indicating information predFlagL1 corresponding to the second list (list0) is 1, where predFlagL0 and predFlagL1 are each 1 indicating that bidirectional prediction applies to the current image block; MotionModelIdc равен 0, где MotionModelIdc, равный 0, указывает то, что модель движения для компенсации движения текущего блока изображения представляет собой поступательное движение;MotionModelIdc equal to 0, where MotionModelIdc equal to 0 indicates that the motion model for motion compensation of the current image block is translational motion; merge_subblock_flag, включенный в синтаксический элемент, равен 0, где merge_subblock_flag, равный 0, указывает то, что режим слияния подблоков не применяется для текущего блока изображения;merge_subblock_flag included in the syntax element is 0, where merge_subblock_flag equal to 0 indicates that the subblock merge mode is not applied to the current image block; sym_mvd_flag, включенный в синтаксический элемент, равен 0, где sym_mvd_flag, равный 0, указывает то, что синтаксическая структура mvd_coding присутствует для текущего блока изображения;sym_mvd_flag included in the syntax element is equal to 0, where sym_mvd_flag equal to 0 indicates that the mvd_coding syntax structure is present for the current image block; bcwIdx, включенный в синтаксический элемент, равен 0, где bcwIdx указывает весовой индекс двунаправленного предсказания для текущего блока изображения;bcwIdx included in the syntax element is 0, where bcwIdx indicates the bidirectional prediction weight index for the current image block; cIdx равно 0, где cIdx представляет собой индекс цветового компонента текущего блока изображения;cIdx is equal to 0, where cIdx is the color component index of the current image block; высота H текущего блока изображения больше или равна 8,height H of the current image block is greater than or equal to 8, ширина W текущего блока изображения больше или равна 8,the width W of the current image block is greater than or equal to 8, произведение ширины W текущего блока изображения на высоту H текущего блока изображения больше 128; иthe product of the width W of the current image block and the height H of the current image block is greater than 128; And каждый из luma_weight_l0_flag[refIdxL0] и luma_weight_l1_flag[refIdxL1], включенный в синтаксический элемент, равен 0, где luma_weight_l0_flag, равный 0, указывает то, что отсутствуют весовые коэффициенты для компонента яркости предсказания list0, и luma_weight_l1_flag, равный 0, указывает то, что отсутствует компонент яркости предсказания list1; причемeach of luma_weight_l0_flag[refIdxL0] and luma_weight_l1_flag[refIdxL1] included in the syntax element is 0, where luma_weight_l0_flag equal to 0 indicates that there are no weights for the list0 prediction luma component, and luma_weight_l1_flag equal to 0 indicates that there is no luma prediction component list1; and блок межкадрового предсказания выполнен с возможностью пропуска, при невыполнении указанного множества заданных условий, выполнения обработки на основе двунаправленного оптического потока (BDOF) текущего блока изображения, и получения предсказанного значения выборки текущего блока изображения посредством предсказания на основе значения опорной выборки, соответствующей первому списку, и значения опорной выборки, соответствующей второму списку, согласно технологии уточнения вектора движения на стороне декодера (DMVR); при этомthe interframe prediction unit is configured to skip, if the plurality of predetermined conditions are not met, perform processing based on bidirectional optical flow (BDOF) of the current image block, and obtain a predicted sample value of the current image block by predicting based on the value of the reference sample corresponding to the first list, and values of the reference sample corresponding to the second list according to the decoder-side motion vector refinement (DMVR) technology; wherein устройство кодирования также содержит:the encoding device also contains: блок восстановления, выполненный с возможностью определения восстановленного значения выборки текущего блока изображения на основе по меньшей мере предсказанного значения выборки текущего блока изображения, гдеa recovery unit configured to determine a reconstructed sample value of the current image block based on at least a predicted sample value of the current image block, where каждая из W и H равна 2n, и n - целое число.W and H are each equal to 2n , and n is an integer. 17. Устройство декодирования по п. 16, в котором синтаксический элемент содержит индекс информации движения целевого кандидата, информация движения целевого кандидата содержит целевые векторы движения-кандидаты, индексы опорных кадров и информацию указания направления предсказания, информация указания направления предсказания используется для указания того, что двунаправленное предсказание применяется для текущего блока изображения, целевые векторы движения-кандидаты содержат первый вектор движения, соответствующий первому списку, и второй вектор движения, соответствующий второму списку, и индексы опорного кадра содержат индекс первого опорного кадра, соответствующего первому списку, и индекс второго опорного кадра, соответствующего второму списку.17. The decoding apparatus according to claim 16, wherein the syntax element contains an index of target candidate motion information, the target candidate motion information contains target candidate motion vectors, reference frame indices and prediction direction indication information, the prediction direction indication information is used to indicate that bidirectional prediction is applied to the current image block, the candidate target motion vectors include a first motion vector corresponding to the first list and a second motion vector corresponding to the second list, and the reference frame indices contain the index of the first reference frame corresponding to the first list and the index of the second reference frame , corresponding to the second list. 18. Устройство декодирования по п. 16, в котором синтаксический элемент содержит первые индексы, вторые индексы, информацию указания направления предсказания и разность векторов движения (MVD), первые индексы используются для указания предикторов целевых векторов движения-кандидатов, предикторы целевых векторов движения-кандидатов содержат первый предиктор вектора движения, соответствующий первому списку, и второй предиктор вектора движения, соответствующий второму списку, и разность векторов движения (MVD) содержит первую MVD, соответствующую первому списку, и/или вторую MVD, соответствующую второму списку;18. The decoding device as set forth in claim 16, wherein the syntax element comprises first indices, second indices, prediction direction indicating information, and a motion vector difference (MVD), the first indices are used to indicate candidate target motion vector predictors, candidate target motion vector predictors contain a first motion vector predictor corresponding to the first list and a second motion vector predictor corresponding to the second list, and a motion vector difference (MVD) contains a first MVD corresponding to the first list and/or a second MVD corresponding to the second list; вторые индексы используются для указания опорных кадров текущего блока изображения, опорные кадры содержат первый опорный кадр, соответствующий первому списку, и второй опорный кадр, соответствующий второму списку, и информация указания направления предсказания используется для указания того, что двунаправленное предсказание применяется для текущего блока изображения;second indices are used to indicate reference frames of the current image block, the reference frames include a first reference frame corresponding to the first list and a second reference frame corresponding to the second list, and prediction direction indicating information is used to indicate that bidirectional prediction is applied to the current image block; первый вектор движения, соответствующий первому списку, получается на основе первого предиктора вектора движения, соответствующего первому списку, и первой MVD, соответствующей первому списку; иa first motion vector corresponding to the first list is obtained based on a first motion vector predictor corresponding to the first list and a first MVD corresponding to the first list; And второй вектор движения, соответствующий второму списку, получается на основе второго предиктора вектора движения, соответствующего второму списку, и второй MVD, соответствующей второму списку.a second motion vector corresponding to the second list is obtained based on a second motion vector predictor corresponding to the second list and a second MVD corresponding to the second list. 19. Устройство декодирования по любому из пп. 16-18, в котором блок энтропийного декодирования дополнительно выполнен с возможностью анализа битового потока для получения остатка выборки и синтаксического элемента; и19. Decoding device according to any one of paragraphs. 16-18, in which the entropy decoding unit is further configured to analyze the bit stream to obtain a sample remainder and a syntax element; And блок восстановления дополнительно выполнен с возможностью определения восстановленного значения выборки текущего блока изображения на основе остатка выборки и предсказанного значения выборки текущего блока изображения.the recovery unit is further configured to determine a reconstructed sample value of the current image block based on the sample remainder and the predicted sample value of the current image block. 20. Устройство декодирования по любому из пп. 16-18, в котором блок межкадрового предсказания выполнен с возможностью:20. Decoding device according to any one of paragraphs. 16-18, in which the interframe prediction block is configured to: получения, когда размер текущего блока изображения представляет собой второй заданный размер, значения предсказания выборки текущего блока изображения, посредством предсказания на основе значения опорной выборки, соответствующей первому списку, и значения опорной выборки, соответствующей второму списку согласно технологии уточнения вектора движения на стороне декодера (DMVR), причем второй заданный размер представляет собой 8×8, 4×N, 8×16 или 16×8, при этом 8×8 указывает, что ширина текущего блока изображения представляет собой 8 выборок и высота текущего блока изображения представляет собой 8 выборок, 4×N указывает, что ширина текущего блока изображения представляет собой 4 выборки, а высота текущего блока изображения представляет собой N выборок, 8×16 указывает, что ширина текущего блока изображения представляет собой 8 выборок, а высота текущего блока изображения представляет собой 16 выборок, а 16×8 указывает, что ширина текущего блока изображения представляет собой 16 выборок и высота текущего блока изображения представляет собой 8 выборок, где N представляет собой степень 2 и более или равно 8.obtaining, when the size of the current image block is a second predetermined size, a sample prediction value of the current image block by predicting based on the value of the reference sample corresponding to the first list and the value of the reference sample corresponding to the second list according to the decoder-side motion vector refinement (DMVR) technology ), wherein the second specified size is 8x8, 4xN, 8x16, or 16x8, wherein 8x8 indicates that the width of the current image block is 8 samples and the height of the current image block is 8 samples, 4xN indicates that the width of the current image block is 4 samples and the height of the current image block is N samples, 8x16 indicates that the width of the current image block is 8 samples and the height of the current image block is 16 samples. and 16x8 indicates that the width of the current image block is 16 samples and the height of the current image block is 8 samples, where N represents a power of 2 and greater than or equal to 8. 21. Машиночитаемый носитель информации, хранящий компьютерную программу, вызывающую, при исполнении компьютерной программы процессором, выполнение способа по любому из пп. 1-10.21. A machine-readable storage medium storing a computer program that causes, when the computer program is executed by a processor, to execute the method according to any one of claims. 1-10. 22. Кодер, содержащий схему обработки для выполнения способа по любому из пп. 1-5.22. An encoder containing a processing circuit for performing the method according to any one of claims. 1-5. 23. Декодер, содержащий схему обработки для выполнения способа по любому из пп. 6-10.23. A decoder comprising a processing circuit for performing the method according to any one of claims. 6-10.
RU2022101324A 2019-06-24 2020-06-24 Video encoder, video decoder and corresponding method RU2819065C2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910559986.9 2019-06-24
CN201910584158.0 2019-06-29

Publications (2)

Publication Number Publication Date
RU2022101324A RU2022101324A (en) 2023-07-24
RU2819065C2 true RU2819065C2 (en) 2024-05-13

Family

ID=

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2620723C2 (en) * 2012-02-08 2017-05-29 Квэлкомм Инкорпорейтед Limitation with unidirectional inter-prediction for prediction blocks in b-slices
US20170332099A1 (en) * 2016-05-13 2017-11-16 Qualcomm Incorporated Merge candidates for motion vector prediction for video coding
US20180309990A1 (en) * 2015-10-13 2018-10-25 Samsung Electronics Co., Ltd. Method and device for encoding or decoding image
WO2019010156A1 (en) * 2017-07-03 2019-01-10 Vid Scale, Inc. Motion-compensation prediction based on bi-directional optical flow
WO2019045427A1 (en) * 2017-08-29 2019-03-07 에스케이텔레콤 주식회사 Motion compensation method and device using bi-directional optical flow
EP3471417A1 (en) * 2016-07-14 2019-04-17 Samsung Electronics Co., Ltd. Video decoding method and device therefor, and video encoding method and device therefor

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2620723C2 (en) * 2012-02-08 2017-05-29 Квэлкомм Инкорпорейтед Limitation with unidirectional inter-prediction for prediction blocks in b-slices
US20180309990A1 (en) * 2015-10-13 2018-10-25 Samsung Electronics Co., Ltd. Method and device for encoding or decoding image
US20170332099A1 (en) * 2016-05-13 2017-11-16 Qualcomm Incorporated Merge candidates for motion vector prediction for video coding
EP3471417A1 (en) * 2016-07-14 2019-04-17 Samsung Electronics Co., Ltd. Video decoding method and device therefor, and video encoding method and device therefor
WO2019010156A1 (en) * 2017-07-03 2019-01-10 Vid Scale, Inc. Motion-compensation prediction based on bi-directional optical flow
WO2019045427A1 (en) * 2017-08-29 2019-03-07 에스케이텔레콤 주식회사 Motion compensation method and device using bi-directional optical flow

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BROSS B. et al., "Versatile Video Coding (Draft 5)", JVET-N1001-v8, 126. MPEG MEETING, Geneva, Mar. 2019. *

Similar Documents

Publication Publication Date Title
KR20210072064A (en) Inter prediction method and apparatus
KR102621958B1 (en) Candidate motion vector list acquisition method, device, encoder and decoder
KR20220003037A (en) Inter prediction method and apparatus
JP2024037999A (en) Video encoder, video decoder, and corresponding method
JP2024014927A (en) Inter prediction method and device
JP2023179684A (en) Picture prediction method and device, and computer readable storage medium
JP2022515555A (en) Inter-prediction methods and equipment, as well as corresponding encoders and decoders
CN112135137A (en) Video encoder, video decoder and corresponding methods
CN111405277B (en) Inter-frame prediction method and device and corresponding encoder and decoder
RU2819065C2 (en) Video encoder, video decoder and corresponding method
US12028527B2 (en) Video encoder, video decoder, and corresponding method
RU2798316C2 (en) Method and equipment for external prediction
WO2020073928A1 (en) Inter prediction method and apparatus