RU2819065C2 - Video encoder, video decoder and corresponding method - Google Patents
Video encoder, video decoder and corresponding method Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 162
- 230000033001 locomotion Effects 0.000 claims abstract description 633
- 230000002457 bidirectional effect Effects 0.000 claims abstract description 144
- 238000012545 processing Methods 0.000 claims abstract description 122
- 230000003287 optical effect Effects 0.000 claims abstract description 50
- 239000000523 sample Substances 0.000 claims description 481
- 239000013598 vector Substances 0.000 claims description 425
- 239000013074 reference sample Substances 0.000 claims description 343
- 238000005516 engineering process Methods 0.000 claims description 236
- 238000004364 calculation method Methods 0.000 claims description 37
- 241000023320 Luma <angiosperm> Species 0.000 claims description 28
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 claims description 28
- 238000011084 recovery Methods 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 6
- 230000000694 effects Effects 0.000 abstract 1
- 239000000126 substance Substances 0.000 abstract 1
- 230000002441 reversible effect Effects 0.000 description 94
- 238000003672 processing method Methods 0.000 description 92
- 238000013139 quantization Methods 0.000 description 67
- 230000008569 process Effects 0.000 description 47
- 230000006870 function Effects 0.000 description 46
- 230000006854 communication Effects 0.000 description 37
- 238000004891 communication Methods 0.000 description 37
- 101100025317 Candida albicans (strain SC5314 / ATCC MYA-2876) MVD gene Proteins 0.000 description 26
- 101150079299 MVD1 gene Proteins 0.000 description 26
- 238000010586 diagram Methods 0.000 description 20
- 238000005457 optimization Methods 0.000 description 20
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 14
- 230000005540 biological transmission Effects 0.000 description 12
- 230000006835 compression Effects 0.000 description 10
- 238000007906 compression Methods 0.000 description 10
- 239000011159 matrix material Substances 0.000 description 10
- 238000005192 partition Methods 0.000 description 9
- 238000003491 array Methods 0.000 description 8
- 230000009466 transformation Effects 0.000 description 8
- 238000006243 chemical reaction Methods 0.000 description 7
- 238000001914 filtration Methods 0.000 description 7
- 230000003044 adaptive effect Effects 0.000 description 6
- 230000001965 increasing effect Effects 0.000 description 6
- 230000002123 temporal effect Effects 0.000 description 6
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 4
- 230000009471 action Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000006073 displacement reaction Methods 0.000 description 3
- 238000009499 grossing Methods 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 230000011664 signaling Effects 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000003384 imaging method Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 101100537098 Mus musculus Alyref gene Proteins 0.000 description 1
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 238000012952 Resampling Methods 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 101150095908 apex1 gene Proteins 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000010287 polarization Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Abstract
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
Пример 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
Пример 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
Пример 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
Пример 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
фиг. 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
фиг. 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
Хотя на фиг. 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
Устройство-источник 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
Источник 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
Препроцессор 18 изображения выполнен с возможностью приема необработанных данных 17 изображения и выполнения предварительной обработки необработанных данных 17 изображения для получения предварительно обработанного изображения 19 или предварительно обработанных данных 19 изображения. Например, предварительная обработка, выполняемая препроцессором 18 изображения, может включать в себя обрезку, преобразование цветового формата (например, из формата RGB в формат YUV), коррекцию цвета или шумоподавление.The
Кодер 20 (также называемый видеокодером 20) выполнен с возможностью приема предварительно обработанных данных 19 изображения и обработки предварительно обработанных данных 19 изображения в соответствующем режиме предсказания (таком как режим предсказания в вариантах осуществления данной спецификации), чтобы предоставить данные 21 кодированного изображения (структурные подробности кодера 20 дополнительно описаны ниже на основе фиг. 2, фиг. 4 или фиг. 5). В некоторых вариантах осуществления кодер 20 может быть выполнен с возможностью выполнения различных вариантов осуществления, описанных ниже, для реализации на стороне кодера способа предсказания блока цветности, описанного в настоящей заявке.The encoder 20 (also called video encoder 20) is configured to receive preprocessed
Интерфейс 22 связи может быть выполнен с возможностью приема кодированных данных 21 изображения и передачи кодированных данных 21 изображения в устройство-адресат 14 или любое другое устройство (например, в память) через линию 13 связи для хранения или прямого восстановления. Другое устройство может быть любым устройством, используемым для декодирования или хранения. Интерфейс 22 связи может быть, например, выполнен с возможностью инкапсуляции кодированных данных 21 изображения в соответствующий формат, например, пакет данных, для передачи по линии 13 связи.The
Устройство-адресат 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
Интерфейс 28 связи может быть выполнен с возможностью приема кодированных данных 21 изображения из устройства-источника 12 или любого другого источника. Любой другой источник представляет собой, например, запоминающее устройство. Запоминающее устройство представляет собой, например, устройство для хранения данных кодированного изображения. Интерфейс 28 связи может быть выполнен с возможностью передачи или приема кодированных данных 21 изображения через линию 13 связи между устройством-источником 12 и устройством-адресатов 14 или через сеть любого типа. Линия 13 связи представляет собой, например, прямое проводное или беспроводное соединение. Сеть любого типа представляет собой, например, проводную или беспроводную сеть или любую их комбинацию, или частную или общедоступную сеть любого типа или любую их комбинацию. Интерфейс 28 связи может быть выполнен, например, с возможностью декапсуляции пакета данных, переданного через интерфейс 22 связи, для получения кодированных данных 21 изображения.Communication interface 28 may be configured to receive encoded
Как интерфейс 28 связи, так и интерфейс 22 связи могут быть сконфигурированы как однонаправленные интерфейсы связи или как двунаправленные интерфейсы связи, и могут быть сконфигурированы, например, для отправки и приема сообщений для установления соединения, а также для подтверждения и обмена любой другой информацией, которая относится к линии связи, и/или передаче данных, такой как передача данных кодированного изображения.Both communication interface 28 and
Декодер 30 выполнен с возможностью приема кодированных данных 21 изображения и предоставления данных 31 декодированного изображения или декодированного изображения 31 (структурные подробности декодера 30 дополнительно описаны ниже со ссылкой на фиг. 3, фиг. 4 или 5). В некоторых вариантах осуществления декодер 30 может быть выполнен с возможностью выполнения различных вариантов осуществления, описанных ниже, для реализации на стороне декодера способа предсказания блока цветности, описанного в настоящей заявке.The decoder 30 is configured to receive encoded
Постпроцессор 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
Устройство 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
Хотя на фиг. 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
На фиг. 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
Например, блок 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
Кодер 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
Как и изображение 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
Блок 206 обработки преобразования выполнен с возможностью применения преобразования, например, дискретного косинусного преобразования (discrete cosine transform, DCT) или дискретного синусоидального преобразования (discrete sine transform, DST), к значениям выборки остаточного блока 205 для получения коэффициентов 207 преобразования в области преобразования. Коэффициент 207 преобразования также может называться остаточным коэффициентом преобразования и представляет остаточный блок 205 в области преобразования.The
Блок 206 обработки преобразования может быть выполнен с возможностью применения целочисленных аппроксимаций DCT/DST, таких как преобразования, указанные в HEVC/H.265. По сравнению с ортогональным преобразованием DCT, такие целочисленные аппроксимации обычно масштабируются на основе коэффициента. Чтобы сохранить норму остаточного блока, который обрабатывается с использованием прямого и обратного преобразований, дополнительный коэффициент масштабирования применяется как часть процесса преобразования. Коэффициент масштабирования обычно выбирается на основе некоторых ограничений, например, коэффициент масштабирования является степенью два для операции сдвига, битовой глубиной коэффициента преобразования и компромиссом между точностью и затратами на реализацию. Например, конкретный коэффициент масштабирования задается для обратного преобразования, например, блоком 212 обработки обратного преобразования на стороне декодера 30 (и для соответствующего обратного преобразования, например, блоком 212 обработки обратного преобразования на стороне кодера 20), и, соответственно, соответствующий коэффициент масштабирования может быть задан для прямого преобразования блоком 206 обработки преобразования на стороне кодера 20.Transform processing
Блок 208 квантования выполнен с возможностью квантования коэффициентов 207 преобразования для получения квантованных коэффициентов 209 преобразования, например, путем применения скалярного квантования или векторного квантования. Квантованный коэффициент 209 преобразования может также называться квантованным коэффициентом 209 остатка. Процесс квантования позволяет уменьшить битовую глубину, относящуюся к некоторым или всем коэффициентам 207 преобразования. Например, n-битовый коэффициент преобразования может быть округлен до m-битового коэффициента преобразования во время квантования, где n больше m. Степень квантования может быть изменена путем регулировки параметра квантования (quantization parameter, QP). Например, для скалярного квантования могут применяться разные масштабы для достижения более тонкого или более грубого квантования. Меньший размер шага квантования соответствует более тонкому квантованию, и больший размер шага квантования соответствует более грубому квантованию. Соответствующий размер шага квантования может быть указан параметром квантования (quantization parameter, QP). Например, параметр квантования может быть индексом для заданного набора подходящих размеров шага квантования. Например, меньший параметр квантования может соответствовать более тонкому квантованию (меньшему размеру шага квантования), и больший параметр квантования может соответствовать более грубому квантованию (большему размеру шага квантования) и наоборот. Квантование может включать в себя деление на размер шага квантования и соответствующее квантование или обратное квантование, например, выполняемое блоком 210 обратного квантования, или может включать в себя умножение на размер шага квантования. В вариантах осуществления согласно некоторым стандартам, таким как HEVC, параметр квантования может использоваться для определения размера шага квантования. Как правило, размер шага квантования может быть вычислен на основе параметра квантования с использованием аппроксимации с фиксированной точкой уравнения, включая деление. Дополнительные коэффициенты масштабирования могут быть введены для квантования и деквантования, чтобы восстановить норму остаточного блока, где норма остаточного блока может быть изменена из-за масштаба, используемого в приближении фиксированной точки уравнения для размера шага квантования и параметра квантования. В примерной реализации масштаб обратного преобразования может быть объединен с масштабом деквантования. В качестве альтернативы, может использоваться сконфигурированная таблица квантования и передаваться сигнал от кодера к декодеру, например, в битовом потоке. Квантование представляет собой операцию с потерями, где больший шаг квантования указывает на большие потери.The
Блок 210 обратного квантования выполнен с возможностью применения обратного квантования блока 208 квантования к квантованному коэффициенту для получения деквантованного коэффициента 211, например, применения, на основе или с использованием того же размера шага квантования, что и блок 208 квантования, обратной схемы квантования, применяемой блоком 208 квантования. Деквантованный коэффициент 211 также может упоминаться как деквантованный коэффициент 211 остатка и соответствовать коэффициенту 207 преобразования, хотя деквантованный коэффициент 211 обычно отличается от коэффициента преобразования из-за потерь, вызванных квантованием.The
Блок 212 обработки обратного преобразования выполнен с возможностью применения обратного преобразования по отношению к преобразованию, применяемому блоком 206 обработки преобразования, например, обратного дискретного косинусного преобразования (discrete cosine transform, DCT) или обратного дискретного синусоидального преобразования (discrete sine transform, DST), чтобы получить блок 213 обратного преобразования в области выборки. Блок 213 обратного преобразования также может называться деквантованным блоком 213 обратного преобразования или остаточным блоком 213 обратного преобразования.The inverse
Блок 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
При необходимости буферный блок 216 ("буфер" 216 для краткости), например, строковый буфер 216, выполнен с возможностью буферизации или хранения восстановленного блока 215 и соответствующего значения выборки, например, для внутрикадрового предсказания. В других вариантах осуществления кодер может быть выполнен с возможностью использования нефильтрованных восстановленных блоков и/или соответствующих значений выборок, хранящихся в блоке 216 буфера, для любого типа оценки и/или предсказания, например, внутрикадрового предсказания.Optionally, a buffer block 216 ("buffer" 216 for short), such as a
Например, в варианте осуществления кодер 20 может быть сконфигурирован таким образом, чтобы буферный блок 216 был выполнен с возможностью хранения восстановленного блока 215, не только используемого для блока 254 внутрикадрового предсказания, но также и используемого для блока (не показанного на фиг. 2) в контурном фильтре 220, и/или таким образом, чтобы, например, блок 216 буфера и буфер 230 декодированных изображений образовывали один буфер. В другом варианте осуществления фильтрованный блок 221 и/или блок или выборка (не показаны на фиг. 2) из буфера 230 декодированных изображений используются в качестве входных данных или исходных данных для блока 254 внутрикадрового предсказания.For example, in an embodiment, encoder 20 may be configured such that
Блок 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
В варианте осуществления кодер 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
Буфер 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.
Блок 260 обработки предсказания, также называемый блоком 260 обработки предсказания блока, выполнен с возможностью приема или получения блока 203 изображения (текущего блока 203 изображения текущего изображения 201) и данных восстановленного изображения, например, опорных выборок одного и того же (текущего) изображения из буфера 216 и/или данных 231 опорного изображения одного или нескольких ранее декодированных изображений из буфера 230 декодированных изображений, и обработки таких данных для предсказания, а именно, чтобы предоставить блок 265 предсказания, который может быть блоком 245 межкадрового предсказания или блоком 255 внутрикадрового предсказания.The
Блок 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
В варианте осуществления блок 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
В дополнение к вышеупомянутым режимам предсказания в вариантах осуществления настоящей заявки также могут применяться режим пропуска и/или прямой режим.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
Блок 244 межкадрового предсказания может включать в себя блок оценки движения (motion estimation, ME) (не показан на фиг. 2) и блок компенсации движения (motion compensation, MC) (не показан на фиг. 2). Блок оценки движения выполнен с возможностью приема или получения блока 203 изображения (текущего блока 203 изображения текущего изображения 201) и декодированного изображения 231 или по меньшей мере одного или нескольких ранее восстановленных блоков, например, одного или нескольких восстановленных блоков других/различных ранее декодированных изображений 231, для оценки движения. Например, видеопоследовательность может включать в себя текущее изображение и ранее декодированные изображения 231, или, другими словами, текущее изображение и ранее декодированные изображения 231 могут быть частью или могут формировать последовательность изображений, образующих видеопоследовательность.The
Например, кодер 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
В частности, блок 244 межкадрового предсказания может передавать синтаксические элементы в блок 270 энтропийного кодирования, и синтаксические элементы включают в себя параметр межкадрового предсказания (например, информацию указания выбора режима межкадрового предсказания, используемого для предсказания текущего блока после прохождения множества режимов межкадрового предсказания). В возможном сценарии применения, если существует только один режим межкадрового предсказания, то параметр межкадрового предсказания альтернативно не может переноситься в синтаксическом элементе. В этом случае сторона 30 декодера может напрямую выполнять декодирование с использованием режима предсказания по умолчанию. Вполне понятно, что блок 244 межкадрового предсказания может быть выполнен с возможностью выполнения любой комбинации технологий межкадрового предсказания.Specifically, the
Блок 254 внутрикадрового предсказания выполнен с возможностью получения, например, приема, блока 203 изображения (текущего блока изображения) и одного или нескольких ранее восстановленных блоков, например, восстановленных соседних блоков, из одного и того же изображения для внутрикадровой оценки. Например, кодер 20 может быть выполнен с возможностью выбора режима внутрикадрового предсказания из множества (заданных) режимов внутрикадрового предсказания.The
В варианте осуществления кодер 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
Блок 254 внутрикадрового предсказания дополнительно выполнен с возможностью определения блока 255 внутрикадрового предсказания на основе, например, параметра внутрикадрового предсказания в выбранном режиме внутрикадрового предсказания. В любом случае, после выбора режима внутрикадрового предсказания для блока, блок 254 внутрикадрового предсказания дополнительно выполнен с возможностью передачи параметра внутрикадрового предсказания, а именно информации, указывающей выбранный режим внутрикадрового предсказания для блока, в блок 270 энтропийного кодирования. Например, блок 254 внутрикадрового предсказания может быть выполнен с возможностью выполнения любой комбинации технологий внутрикадрового предсказания.The
В частности, блок 254 внутрикадрового предсказания может передавать синтаксические элементы в блок 270 энтропийного кодирования, и синтаксические элементы включают в себя параметр внутрикадрового предсказания (например, информацию указания выбора режима внутрикадрового предсказания, используемого для предсказания текущего блока после прохождения множества режимов внутрикадрового предсказания). В возможном сценарии применения, если существует только один режим внутрикадрового предсказания, то параметр внутрикадрового предсказания альтернативно не может переноситься в синтаксическом элементе. В этом случае сторона 30 декодера может напрямую выполнять декодирование в режиме предсказания по умолчанию.Specifically, the
Блок 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 энтропийного кодирования может быть дополнительно выполнен с возможностью энтропийного кодирования другого синтаксического элемента для текущего кодируемого видеослайса.
Другой структурный вариант видеокодера 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
В частности, в вариантах осуществления настоящей заявки кодер 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
На фиг. 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
В примере, показанном на фиг. 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
Блок 304 энтропийного декодирования выполнен с возможностью выполнения энтропийного декодирования кодированных данных 21 изображения для получения, например, квантованного коэффициента 309 и/или декодированного параметра кодирования (не показан на фиг. 3), например, любого одного или всех из: параметра межкадрового предсказания, параметра внутрикадрового предсказания, параметра контурного фильтра и/или другого синтаксического элемента (которые декодируются). Блок 304 энтропийного декодирования дополнительно выполнен с возможностью пересылки параметра межкадрового предсказания, параметра внутрикадрового предсказания и/или другого синтаксического элемента в блок 360 обработки предсказания. Видеодекодер 30 может принимать синтаксические элементы на уровне видеослайса и/или уровне видеоблока.The
Блок 310 обратного квантования может иметь ту же функцию, что и блок 210 обратного квантования. Блок 312 обработки обратного преобразования может иметь ту же функцию, что и блок 212 обработки обратного преобразования. Блок 314 восстановления может иметь ту же функцию, что и блок 214 восстановления. Буфер 316 может иметь ту же функцию, что и буфер 216. Контурный фильтр 320 может иметь ту же функцию, что и контурный фильтр 220. Буфер 330 декодированных изображений может иметь ту же функцию, что и буфер 230 декодированных изображений.The
Блок 360 обработки предсказания может включать в себя блок 344 межкадрового предсказания и блок 354 внутрикадрового предсказания. Блок 344 межкадрового предсказания может быть аналогичным по своим функциям блоку 244 межкадрового предсказания, и блок 354 внутрикадрового предсказания может быть аналогичным по своим функциям блоку 254 внутрикадрового предсказания. Блок 360 обработки предсказания обычно выполнен с возможностью выполнения предсказания блока и/или получения блока 365 предсказания из кодированных данных 21, а также приема или получения (явно или неявно) связанного с предсказанием параметра и/или информации о выбранном режиме предсказания, например, из блока 304 энтропийного декодирования.The
Когда видеослайс кодируется во внутрикадрово-кодированный слайс (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
Блок 360 обработки предсказания выполнен с возможностью определения информации предсказания для видеоблока текущего видеослайса путем синтаксического анализа вектора движения и других синтаксических элементов и использования информации предсказания для выработки блока предсказания для текущего декодируемого видеоблока. В примере настоящей заявки блок 360 обработки предсказания определяет, используя некоторые принятые синтаксические элементы, режим предсказания (например, внутрикадрового или межкадрового предсказания) для кодирования видеоблока в видеослайсе, тип слайса межкадрового предсказания (например, B-слайс, P-слайс или GPB-слайс), информацию о составлении одного или нескольких списков опорных изображений для слайса, вектор движения каждого межкадрово-кодированного видеоблока для слайса, статус межкадрового предсказания каждого межкадрово-кодированного видеоблока в слайсе и другую информацию, чтобы декодировать видеоблок в текущем видеослайсе. В другом примере настоящего раскрытия синтаксические элементы, принятые видеодекодером 30 из битового потока, включают в себя синтаксические элементы в одном или нескольких из: адаптивного набора параметров (adaptive parameter set, APS), набора параметров последовательности (sequence parameter set, SPS), набора параметров изображения (picture parameter set, PPS) или заголовка слайса.The
Блок 310 обратного квантования может быть выполнен с возможностью выполнения обратного квантования (а именно, деквантования) над квантованным коэффициентом преобразования, предоставленным в битовом потоке, и декодирован блоком 304 энтропийного декодирования. Процесс деквантования может включать в себя: использование параметра квантования, вычисленного по видеокодер 20 для каждого видеоблока в видеослайсе, чтобы определить степень квантования, которая должна быть применена, и степень деквантования, которая должна быть применена.The
Блок 312 обработки обратного преобразования выполнен с возможностью применения обратного преобразования (например, обратного DCT, обратного целочисленного преобразования или концептуально аналогичного процесса обратного преобразования) к коэффициенту преобразования, чтобы выработать блок остатка в области выборки.The inverse
Блок 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,
Затем декодированный видеоблок 321 в данном кадре или изображении сохраняется в буфере 330 декодированных изображений, который хранит опорное изображение, используемое для последующей компенсации движения.The decoded video block 321 in a given frame or image is then stored in a decoded
Декодер 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
В частности, в вариантах осуществления настоящей заявки декодер 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
Следует понимать, что в настоящей заявке в кодере 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
Устройство 400 для кодирования видео включает в себя: входной порт 410 и блок 420 приемника (Rx) для приема данных; процессор, логический блок или центральный процессор (CPU) 430 для обработки данных; блок 440 передатчика (Tx) (или кратко называемый передатчиком 440) и выходной порт 450 для передачи данных; и память 460 (например, память 460), выполненная с возможностью хранения данных. Устройство 400 для кодирования видео может дополнительно включать в себя компонент электро-оптического преобразования и электро-оптический (EO) компонент, подключенный к входному порту 410, блок 420 приемника (или кратко называемый приемником 420), блок 440 передатчика и выходной порт 450 для вывода или ввода оптических или электрических сигналов.The
Процессор 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
Память 460 включает в себя один или более дисков, ленточных накопителей и твердотельных накопителей и может использоваться в качестве устройства для хранения данных переполнения, для хранения программ, когда такие программы выбираются для выполнения, и для хранения инструкций и данных, которые считываются во время выполнения программы. Память 460 может быть энергозависимой и/или энергонезависимой и может быть постоянным запоминающим устройством (ROM), оперативным запоминающим устройством (RAM), троичной памятью с адресацией по содержанию (ternary content-addressable memory, TCAM) и/или статической оперативной памятью (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
В данном варианте осуществления настоящей заявки процессор 510 может быть центральным процессором (Central Processing Unit, сокращенно "CPU"). В качестве альтернативы, процессор 510 может быть другим процессором общего назначения, процессором цифровых сигналов (DSP), специализированной интегральной схемой (ASIC), программируемой пользователем вентильной матрицей (FPGA) или другим программируемым логическим устройством, дискретным вентилем или транзисторным логическим устройством, дискретным аппаратным компонентом и т.п. Процессор общего назначения может быть микропроцессором, или процессор может быть любым обычным процессором и т.п.In this embodiment of the present application, the
Память 530 может включать в себя постоянное запоминающее устройство (ROM) или оперативное запоминающее устройство (RAM). Альтернативно в качестве памяти 530 может использоваться запоминающее устройство любого другого подходящего типа. Память 530 может включать в себя код и данные 531, к которым имеет доступ процессор 510 через шину 550. Память 530 может дополнительно включать в себя операционную систему 533 и прикладную программу 535. Прикладная программа 535 включает в себя по меньшей мере одну программу, которая позволяет процессору 510 выполнять способ кодирования или декодирования видео, описанный в настоящей заявке (в частности, способ предсказания видеоизображения или способ межкадрового предсказания, описанный в настоящей заявке). Например, прикладная программа 535 может включать в себя приложения 1-N и дополнительно включать в себя приложение для кодирования или декодирования видео (называемое для краткости приложением для кодирования видео), которое выполняет способ кодирования или декодирования видео, описанный в настоящей заявке.
В дополнение к шине данных шинная система 550 может дополнительно включать в себя шину питания, шину управления, шину сигнала состояния и т.п. Однако для наглядного описания шины различных типов, показанные на чертеже, обозначены как шинная система 550.In addition to the data bus,
При необходимости устройство 500 кодирования может дополнительно включать в себя одно или более устройств вывода, например, дисплей 570. В примере дисплей 570 может быть сенсорным дисплеем, который объединяет дисплей и сенсорный блок, который оперативно воспринимает сенсорный ввод. Дисплей 570 может быть подключен к процессору 510 через шину 550.Optionally, encoder 500 may further include one or more output devices, such as a
Межкадровое предсказание является важным этапом в вариантах осуществления настоящей заявки. С точки зрения кодера, межкадровое предсказание представляет собой поиск в восстановленном изображении сопоставимого опорного блока для текущего блока кодирования в текущем изображении. Как показано на фиг. 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,
Этап 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
Пример 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. Этот этап не является обязательным.
Формула вычисления 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,
Этап 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
Пример 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
Блок 801 определения выполнен с возможностью определения того, удовлетворяет ли текущий блок изображения множеству заданных условий.The
Межкадровый блок 802 обработки предсказания выполнен с возможностью: если выполнено множество заданных условий, выполнения обработки на основе двунаправленного оптического потока BDOF (Bi-directional optical flow, BIO или BDOF для краткости) над текущим блоком для получения предсказанного значения выборки текущего блока изображения, где множество заданных условий включает в себя по меньшей мере условие, согласно которому размер текущего блока изображения удовлетворяет первому заданному размеру. Размер текущего блока изображения обычно представлен шириной и высотой (которые обозначены W×H), и ширина и высота измеряются выборкой (выборкой или пикселем). Например, если размер текущего блока изображения составляет 8×8, первое число 8 указывает то, что ширина текущего блока изображения составляет 8 выборок, и второе число 8 указывает то, что высота текущего блока изображения составляет 8 выборок. В качестве другого примера, если размер текущего блока изображения составляет 8×16, число 8 указывает то, что ширина текущего блока изображения составляет 8 выборок, и число 16 указывает то, что высота текущего блока изображения составляет 16 выборок.The interframe
То, что размер текущего блока изображения удовлетворяет первому заданному размеру, включает в себя (или составляет): высоту 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
На этапах вышеупомянутой процедуры способа порядок описания этапов не представляет собой порядок выполнения этапов. Этапы могут выполняться или не выполняться в соответствии с вышеуказанным порядком описания.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)
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)
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)
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)
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 | |
US12010293B2 (en) | Picture prediction method and apparatus, and computer-readable storage medium | |
KR20220003037A (en) | Inter prediction method and apparatus | |
JP2024037999A (en) | Video encoder, video decoder, and corresponding method | |
JP2022515555A (en) | Inter-prediction methods and equipment, as well as corresponding encoders and decoders | |
JP2024014927A (en) | Inter prediction method and device | |
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 | |
RU2822447C2 (en) | Method and equipment for mutual prediction | |
RU2798316C2 (en) | Method and equipment for external prediction | |
WO2020073928A1 (en) | Inter prediction method and apparatus |