RU2810126C2 - Method and device for image prediction and computer readable data medium - Google Patents
Method and device for image prediction and computer readable data medium Download PDFInfo
- Publication number
- RU2810126C2 RU2810126C2 RU2021134215A RU2021134215A RU2810126C2 RU 2810126 C2 RU2810126 C2 RU 2810126C2 RU 2021134215 A RU2021134215 A RU 2021134215A RU 2021134215 A RU2021134215 A RU 2021134215A RU 2810126 C2 RU2810126 C2 RU 2810126C2
- Authority
- RU
- Russia
- Prior art keywords
- mode
- merge mode
- merge
- ciip
- current image
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 192
- 230000004927 fusion Effects 0.000 claims abstract description 59
- 230000033001 locomotion Effects 0.000 claims description 126
- 238000012545 processing Methods 0.000 claims description 79
- 239000013598 vector Substances 0.000 claims description 66
- 239000012634 fragment Substances 0.000 claims description 45
- 238000003860 storage Methods 0.000 claims description 34
- 238000004590 computer program Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 abstract description 53
- 238000005516 engineering process Methods 0.000 abstract description 19
- 230000000694 effects Effects 0.000 abstract description 2
- 239000000126 substance Substances 0.000 abstract 1
- 238000013139 quantization Methods 0.000 description 77
- 230000006854 communication Effects 0.000 description 62
- 238000004891 communication Methods 0.000 description 62
- 238000010586 diagram Methods 0.000 description 33
- 239000000523 sample Substances 0.000 description 23
- 230000006870 function Effects 0.000 description 21
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 16
- 230000005540 biological transmission Effects 0.000 description 13
- 230000003044 adaptive effect Effects 0.000 description 10
- 230000006835 compression Effects 0.000 description 10
- 238000007906 compression Methods 0.000 description 10
- 238000006243 chemical reaction Methods 0.000 description 9
- 241000023320 Luma <angiosperm> Species 0.000 description 7
- 238000003491 array Methods 0.000 description 7
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 7
- 238000000638 solvent extraction Methods 0.000 description 7
- 230000002123 temporal effect Effects 0.000 description 7
- 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 6
- 238000001914 filtration Methods 0.000 description 6
- 238000011084 recovery Methods 0.000 description 5
- 230000002441 reversible effect Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 238000009499 grossing Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000003384 imaging method Methods 0.000 description 3
- 239000004973 liquid crystal related substance Substances 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 239000013074 reference sample Substances 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 230000011664 signaling Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000010276 construction 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
- 238000006073 displacement reaction Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000012432 intermediate storage Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 238000001228 spectrum Methods 0.000 description 2
- 238000009987 spinning Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 238000012952 Resampling Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 238000012163 sequencing technique 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
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Images
Abstract
Description
[0001] Настоящая заявка испрашивает приоритет на основании патентной заявки Китая № 201910341218.6, поданной в Национальное управление интеллектуальной собственности Китая 25 апреля 2019 г. и озаглавленной «СПОСОБ И УСТРОЙСТВО КОДИРОВАНИЯ/ДЕКОДИРОВАНИЯ ВИДЕО ИЗОБРАЖЕНИЙ», которая полностью включена в настоящий документ посредством ссылки. [0001] This application claims priority to Chinese Patent Application No. 201910341218.6, filed with the National Intellectual Property Office of China on April 25, 2019, entitled “METHOD AND DEVICE FOR ENCODING/DECODING VIDEO IMAGES,” which is incorporated herein by reference in its entirety.
[0002] Настоящая заявка испрашивает приоритет на основании патентной заявки Китая № 201910474007.X, поданной в Национальное управление интеллектуальной собственности Китая 2 июня 2019 г. и озаглавленной « СПОСОБ И УСТРОЙСТВО ПРОГНОЗИРОВАНИЯ ИЗОБРАЖЕНИЙ, СЧИТЫВАЕМЫЙ КОМПЬЮТЕРОМ НОСИТЕЛЬ ДАННЫХ», которая полностью включена в настоящий документ посредством ссылки. [0002] This application claims priority to Chinese Patent Application No. 201910474007.X, filed with the National Intellectual Property Office of China on June 2, 2019, entitled "METHOD AND APPARATUS FOR IMAGE PREDICTION, COMPUTER READABLE DATA MEDIUM", which is incorporated herein in its entirety via link.
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕFIELD OF TECHNOLOGY TO WHICH THE INVENTION RELATES
[0003] Настоящая заявка относится к области технологий кодирования видео, а более конкретно, к способу и устройству прогнозирования изображения, а также к считываемому компьютером носителю данных.[0003] The present application relates to the field of video encoding technology, and more particularly to an image prediction method and apparatus, as well as to a computer readable storage medium.
УРОВЕНЬ ТЕХНИКИBACKGROUND OF THE ART
[0004] Возможности цифрового видео могут быть включены в самые разные устройства, включая цифровое телевидение, систему цифрового прямого вещания, систему беспроводного вещания, карманный персональный компьютер (PDA, personal digital assistant , КПК), портативный или настольный компьютер, планшет, устройство для чтения электронных книг, цифровую камеру, цифровое записывающее устройство, цифровой медиаплеер, устройство для видеоигр, игровую консоль, сотовый или спутниковый радиотелефон (а именно «смартфон»), устройство для видеоконференцсвязи, устройство потоковой передачи видео и т.п. Цифровое видеоустройство реализует технологии сжатия видео, такие как технологии сжатия видео, описанные в стандартах, определенных в MPEG-2, MPEG-4, ITU-T H. 263 и ITU-T H.264/MPEG-4, часть 10, усовершенствованное кодирование видео (AVC, advanced video coding), стандарт кодирования видео H.265/стандарт высокоэффективного кодирования видео (high efficiency video coding, HEVC) и расширения таких стандартов. Видеоустройство может более эффективно передавать, принимать, кодировать, декодировать и/или хранить цифровую видеоинформацию за счет реализации таких технологий сжатия видео.[0004] Digital video capabilities can be included in a variety of devices, including digital television, digital direct broadcast system, wireless broadcast system, personal digital assistant (PDA), laptop or desktop computer, tablet, reader e-readers, digital camera, digital recorder, digital media player, video game device, game console, cellular or satellite radio telephone (namely, “smartphone”), video conferencing device, video streaming device, etc. The digital video device implements 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 Advanced Coding video (AVC, advanced video coding), H.265 video coding standard/high efficiency video coding (HEVC) standard and extensions of such standards. A video device can more efficiently transmit, receive, encode, decode and/or store digital video information by implementing such video compression technologies.
[0005] Технологии сжатия видео используются для выполнения пространственного (внутри изображения) прогнозирования и/или временного (между изображениями) прогнозирования, чтобы уменьшить или удалить присущую избыточность в видеопоследовательностях. При блочном кодировании видео фрагмент видео (а именно, видеокадр или часть видеокадра) может быть разделен на блоки изображения, и блок изображения также может называться древовидным блоком, блоком кодирования (CU, coding unit) и/или узлом кодирования. Блок изображения в подлежащем внутрикадровому кодированию (I) фрагменте изображения кодируется посредством пространственного прогнозирования на основе опорной выборки в соседнем блоке в том же самом изображении. Для блока изображения в фрагменте изображения, подлежащего внутрикадровому кодированию (P или B), пространственное прогнозирование на основе опорной выборки в соседнем блоке в том же изображении или временное прогнозирование на основе опорной выборки в другом опорном изображении может быть использовано. Изображение может называться кадром, а опорное изображение может называться опорным кадром.[0005] Video compression technologies are used to perform spatial (within-image) prediction and/or temporal (between-image) prediction to reduce or remove inherent redundancy in video sequences. In block video encoding, a video fragment (namely, 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, coding unit) and/or a coding unit. A block of an image in a sub-image 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 picture block in a sub-picture to be intra-frame encoded (P or B), spatial prediction based on a reference sample in an adjacent block in the same picture or temporal prediction based on a reference sample in another reference picture may be used. The image may be called a frame, and the reference image may be called a reference frame.
[0006] Когда для прогнозирования блока изображения используется режим слияния, обычно существует множество опциональных режимов слияния. В традиционном решении режим слияния, применимый к текущему блоку изображения, обычно определяется из множества возможных режимов слияния один за другим. Когда режим слияния недоступен, продолжает определяться, доступен ли следующий режим слияния. В традиционном решении существует избыточность, когда режим слияния, применимый к текущему блоку, определяется из двух последних оставшихся режимов слияния. [0006] When a fusion mode is used to predict an image block, there are generally many optional fusion modes. In the traditional solution, the merge mode applicable to the current image block is usually determined from a plurality of possible merge modes one after another. When a merge mode is not available, it continues to determine whether the next merge mode is available. In the traditional solution, there is redundancy where the merge mode applicable to the current block is determined from the last two remaining merge modes.
СУЩНОСТЬ ИЗОБРЕТЕНИЯSUMMARY OF THE INVENTION
[0007] Настоящая заявка обеспечивает способ и устройство прогнозирования изображения, а также считываемый компьютером носитель данных, чтобы уменьшить избыточность в процессе прогнозирования изображения, насколько это возможно.[0007] The present application provides an image prediction method and apparatus, as well as a computer readable storage medium, to reduce redundancy in the image prediction process as much as possible.
[0008] Согласно первому аспекту обеспечивается способ прогнозирования изображения. Способ включает в себя: определение того, используется ли режим слияния для текущего блока изображения; когда режим слияния используется для текущего блока изображения, продолжение определения того, доступен ли режим слияния уровня-1; когда режим слияния уровня-1 недоступен, и элемент синтаксиса высокого уровня, соответствующий первому режиму слияния, указывает, что первый режим слияния запрещено использовать, определение второго режима слияния как целевого режима слияния, применимого к текущему блоку изображения; и прогнозирование текущего блока изображения на основе целевого режима слияния.[0008] According to a first aspect, an image prediction method is provided. The method includes: determining whether a merge mode is used for the current image block; when the merge mode is used for the current image block, continuing to determine whether the layer-1 merge mode is available; when the level-1 merge mode is not available and the high-level syntax element corresponding to the first merge mode indicates that the first merge mode is prohibited from being used, defining the second merge mode as the target merge mode applicable to the current image block; and predicting the current image block based on the target fusion mode.
[0009] И первый режим слияния, и второй режим слияния принадлежат режиму слияния уровня-2, и режим слияния уровня-2 включает в себя первый режим слияния и второй режим слияния. Кроме того, для текущего блока изображения режим слияния уровня-1 и режим слияния уровня-2 уже включают в себя все опциональных режимы слияния текущего блока изображения, и для текущего блока изображения необходимо определить окончательный целевой режим слияния из режима слияния уровня-1 и режима слияния уровня-2.[0009] Both the first merging mode and the second merging mode belong to the layer-2 merging mode, and the layer-2 merging mode includes the first merging mode and the second merging mode. In addition, for the current image block, the level-1 fusion mode and level-2 fusion mode already include all the optional fusion modes of the current image block, and for the current image block, it is necessary to determine the final target fusion mode from the level-1 fusion mode and the fusion mode level-2.
[0010] Необязательно, приоритет режима слияния уровня-1 выше, чем приоритет режима слияния уровня-2.[0010] Optionally, the priority of the layer-1 merge mode is higher than the priority of the layer-2 merge mode.
[0011] То, что приоритет режима слияния уровня-1 выше, чем приоритет режима слияния уровня-2, означает, что в процессе определения целевого режима слияния текущего блока изображения целевой режим слияния предпочтительно определяется из режим слияния уровня-1. Если нет доступного режима слияния в режиме слияния уровня-1, целевой режим слияния затем определяется из режима слияния уровня-2.[0011] That the priority of the layer-1 merge mode is higher than the priority of the layer-2 merge mode means that in the process of determining the target merge mode of the current image block, the target merge mode is preferably determined from the layer-1 merge mode. If there is no merge mode available in the level-1 merge mode, the target merge mode is then determined from the level-2 merge mode.
[0012] Необязательно, определение того, используется ли режим слияния для текущего блока изображения, включает в себя: когда merge_flag, соответствующий текущему блоку изображения, равен 1, определение, что режим слияния используется для текущего блока изображения; и когда merge_flag, соответствующий текущему блоку изображения, равен 0, определение, что режим слияния не используется для текущего блока изображения.[0012] Optionally, determining whether a merge mode is used for the current image block includes: when a merge_flag corresponding to the current image block is 1, determining that the merge mode is used for the current image block; and when the merge_flag corresponding to the current image block is 0, determining that the merge mode is not used for the current image block.
[0013] Следует понимать, что когда определено, что режим слияния не используется для текущего блока изображения, для прогнозирования текущего блока изображения может использоваться другой режим, отличный от режима слияния. Например, когда определено, что режим слияния не используется для текущего блока изображения, режим AMVP с расширенным вектором движения может использоваться для прогнозирования текущего блока изображения.[0013] It should be understood that when it is determined that the merge mode is not used for the current image block, a mode other than the merge mode may be used to predict the current image block. For example, when it is determined that the fusion mode is not used for the current image block, the extended motion vector AMVP mode may be used to predict the current image block.
[0014] В настоящей заявке, когда элемент синтаксиса высокого уровня первого режима слияния указывает, что использование первого режима слияния запрещено, нет необходимости анализировать информацию о доступном статусе оставшегося второго режима слияния, и второй режим слияния может напрямую определяться как окончательный целевой режим слияния. Это может уменьшить, насколько это возможно, избыточность, создаваемую из-за определения целевого режима слияния в процессе прогнозирования изображения.[0014] In the present application, when the high-level syntax element of the first merge mode indicates that the use of the first merge mode is prohibited, there is no need to analyze the available status information of the remaining second merge mode, and the second merge mode can be directly determined as the final target merge mode. This can reduce, as much as possible, the redundancy generated due to determining the target fusion mode in the image prediction process.
[0015] Необязательно, способ дополнительно включает в себя: определение, доступен ли режим слияния уровня-1.[0015] Optionally, the method further includes: determining whether the layer-1 merge mode is available.
[0016] В частности, то, доступен ли режим слияния уровня-1, определяется на основе элемента синтаксиса высокого уровня, соответствующего режиму слияния уровня-1, и/или информации о доступном статусе, соответствующей режиму слияния уровня-1.[0016] Specifically, whether the layer-1 merge mode is available is determined based on a high-level syntax element corresponding to the layer-1 merge mode and/or available status information corresponding to the layer-1 merge mode.
[0017] Что касается первого аспекта, в некоторых реализациях первого аспекта, когда режим слияния уровня-1 недоступен, и элемент синтаксиса высокого уровня, соответствующий первому режиму слияния, указывает, что разрешено использовать первый режим слияния, целевой режим слияния определяется на основе элемента синтаксиса высокого уровня, соответствующего второму режиму слияния, и/или информации о доступном статусе второго режима слияния.[0017] With respect to the first aspect, in some implementations of the first aspect, when the layer-1 merge mode is not available and the high-level syntax element corresponding to the first merge mode indicates that the first merge mode is enabled, the target merge mode is determined based on the syntax element a high level corresponding to the second merge mode, and/or information about the available status of the second merge mode.
[0018] Информация о доступном статусе второго режима слияния используется, чтобы указать, используется ли второй режим слияния, когда прогнозируется текущий блок изображения.[0018] Information about the available status of the second merge mode is used to indicate whether the second merge mode is used when the current image block is predicted.
[0019] Например, второй режим слияния - это режим CIIP, а информация о доступном статусе второго режима слияния - это значение ciip_flag. Когда ciip_flag равно 0, режим CIIP недоступен для текущего блока изображения. Когда ciip_flag равно 1, режим CIIP доступен для текущего блока изображения.[0019] For example, the second merge mode is the CIIP mode, and the available status information of the second merge mode is the ciip_flag value. When ciip_flag is 0, CIIP mode is not available for the current image block. When ciip_flag is 1, CIIP mode is enabled for the current image block.
[0020] Следует понимать, что для режима CIIP, если режим CIIP должен быть выбран в качестве целевого режима слияния, элемент синтаксиса высокого уровня, соответствующий CIIP, должен указывать, что режим CIIP разрешен для использования и информация о доступном статусе, указывающая на доступный статус режима CIIP, должна указывать, что CIIP доступен.[0020] It should be understood that for the CIIP mode, if the CIIP mode is to be selected as the target merge mode, the high-level syntax element corresponding to CIIP must indicate that the CIIP mode is enabled for use and available status information indicating the available status CIIP mode must indicate that CIIP is available.
[0021] Например, когда sps_ciip_enabled_flag=1 и ciip_flag=1, режим CIIP может быть определен как целевой режим слияния текущего блока изображения.[0021] For example, when sps_ciip_enabled_flag=1 and ciip_flag=1, the CIIP mode may be determined as the merge target mode of the current image block.
[0022] Что касается первого аспекта, в некоторых реализациях первого аспекта то, что целевой режим слияния определяется на основе элемента синтаксиса высокого уровня, соответствующего второму режиму слияния, и/или информации о доступном статусе второго режима слияния, включает в себя: когда элемент синтаксиса высокого уровня, соответствующий второму режиму слияния, и/или информация о доступном статусе второго режима слияния указывает/указывают, что второй режим слияния запрещено использовать, первый режим слияния определяется как целевой режим слияния.[0022] With respect to the first aspect, in some implementations of the first aspect, that the target merge mode is determined based on a high-level syntax element corresponding to the second merge mode and/or information about the available status of the second merge mode includes: when the syntax element high level corresponding to the second merge mode, and/or information about the available status of the second merge mode indicates that the second merge mode is prohibited from being used, the first merge mode is determined to be the target merge mode.
[0023] То, что элемент синтаксиса высокого уровня, соответствующий второму режиму слияния, и/или информация о доступном статусе второго режима слияния указывает/указывают, что использование второго режима слияния запрещено, включает в себя:[0023] That the high-level syntax element corresponding to the second merge mode and/or the second merge mode available status information indicates that use of the second merge mode is prohibited includes:
[0024] Элемент синтаксиса высокого уровня, соответствующий второму режиму слияния, указывает, что второй режим слияния запрещено использовать, и информация о доступном статусе второго режима слияния указывает, что второй режим слияния не может быть использован; и элемент синтаксиса высокого уровня, соответствующий второму режиму слияния, указывает, что второй режим слияния разрешено использовать, и информация о доступном статусе второго режима слияния указывает, что второй режим слияния не может быть использован. [0024] The high-level syntax element corresponding to the second merge mode indicates that the second merge mode is prohibited from being used, and information about the available status of the second merge mode indicates that the second merge mode cannot be used; and a high-level syntax element corresponding to the second merge mode indicates that the second merge mode is allowed to be used, and information about the available status of the second merge mode indicates that the second merge mode cannot be used.
[0025] Необязательно, что целевой режим слияния определяется на основе элемента синтаксиса высокого уровня, соответствующего второму режиму слияния, и/или информации о доступном статусе второго режима слияния, дополнительно включает в себя: когда элемент синтаксиса высокого уровня, соответствующий второму режиму слияния, указывает, что второй режим слияния разрешен для использования, и информация о доступном статусе второго режима слияния указывает, что доступен второй режим слияния, второй режим слияния определяется как целевой режим слияния.[0025] Optionally, the target merge mode is determined based on the high-level syntax element corresponding to the second merge mode and/or information about the available status of the second merge mode, further including: when the high-level syntax element corresponding to the second merge mode indicates that the second merge mode is enabled for use, and the available status information of the second merge mode indicates that the second merge mode is available, the second merge mode is determined to be the target merge mode.
[0026] Что касается первого аспекта, в некоторых реализациях первого аспекта перед тем, как целевой режим слияния будет определен на основе элемента синтаксиса высокого уровня, соответствующего второму режиму слияния, и/или информации о доступном статусе второго режима слияния, способ дополнительно включает в себя: определение того, что выполняется по меньшей мере одно из следующих условий: размер текущего блока изображения соответствует заданному условию; и режим пропуска не используется для прогнозирования текущего блока изображения.[0026] With respect to the first aspect, in some implementations of the first aspect, before the target merge mode is determined based on a high-level syntax element corresponding to the second merge mode and/or information about the available status of the second merge mode, the method further includes : determining that at least one of the following conditions is true: the size of the current image block meets a specified condition; and skip mode is not used to predict the current image block.
[0027] Другими словами, перед определением целевого режима слияния необходимо дополнительно гарантировать, что размер текущего блока изображения соответствует условию, и режим пропуска не используется для текущего блока изображения. В противном случае для прогнозирования текущего блока изображения может использоваться другой режим, отличный от режима слияния. [0027] In other words, before determining the target merge mode, it is necessary to further ensure that the size of the current image block meets the condition, and the skip mode is not used for the current image block. Otherwise, a mode other than the merge mode may be used to predict the current image block.
[0028] Что касается первого аспекта, в некоторых реализациях первого аспекта то, что размер текущего блока изображения соответствует заданному условию, включает в себя: текущий блок изображения удовлетворяет следующим трем условиям: [0028] With respect to the first aspect, in some implementations of the first aspect, the size of the current image block meets a given condition includes: the current image block satisfies the following three conditions:
(cdWidth * cbHeight) ≥ 64; (cdWidth * cbHeight) ≥ 64;
cbWidth < 128; иcbWidth < 128; And
cbHeight < 128. cbHeight < 128.
[0029] cdWidth - ширина текущего блока изображения, а cbHeight - высота текущего блока изображения. [0029] cdWidth is the width of the current image block, and cbHeight is the height of the current image block.
[0030] Что касается первого аспекта, в некоторых реализациях первого аспекта первый режим слияния включает в себя режим TPM треугольного разделения, а второй режим слияния включает в себя комбинированный режим CIIP с внутрикадровым и межкадровым прогнозированием.[0030] With respect to the first aspect, in some implementations of the first aspect, the first fusion mode includes a triangular division TPM mode, and the second fusion mode includes a combined intra- and inter-frame prediction CIIP mode.
[0031] Необязательно, когда элемент синтаксиса высокого уровня, соответствующий режиму TPM, указывает, что режим TPM запрещено использовать, режим CIIP определяется как целевой режим слияния. [0031] Optionally, when a high-level syntax element corresponding to a TPM mode indicates that the TPM mode is prohibited from being used, the CIIP mode is defined as the target merge mode.
[0032] В настоящей заявке, когда элемент синтаксиса высокого уровня, соответствующий режиму TPM, указывает, что режим TPM запрещено использовать, нет необходимости определять, анализируя синтаксис высокого уровня, соответствующий режиму CIIP, и/или информацию о доступном статусе, которая указывает доступный статус режима CIIP, доступен ли режим CIIP. Вместо этого режим CIIP может быть напрямую определен как целевой режим слияния. Это может уменьшить избыточность в процессе определения целевого режима слияния.[0032] In the present application, when a high-level syntax element corresponding to a TPM mode indicates that the TPM mode is prohibited from being used, it is not necessary to determine by analyzing the high-level syntax corresponding to the CIIP mode and/or the available status information that indicates the available status CIIP mode, whether CIIP mode is available. Instead, the CIIP mode can be directly defined as the target merge mode. This can reduce redundancy in the process of determining the target merge mode.
[0033] Необязательно, когда элемент синтаксиса высокого уровня, соответствующий режиму TPM, указывает, что режим TPM разрешен для использования, целевой режим слияния определяется на основе элемента синтаксиса высокого уровня, соответствующего режиму CIIP, и/или информации о доступном статусе, указывающей на доступный статус режима CIIP.[0033] Optionally, when the high-level syntax element corresponding to the TPM mode indicates that the TPM mode is enabled for use, the target merge mode is determined based on the high-level syntax element corresponding to the CIIP mode and/or available status information indicating available CIIP mode status.
[0034] Необязательно, когда элемент синтаксиса высокого уровня, соответствующий режиму CIIP и/или информация о доступном статусе, которая указывает доступный статус режима CIIP, указывает/указывают, что режим CIIP запрещено использовать, режим TPM определяется как целевой режим слияния.[0034] Optionally, when the high-level syntax element corresponding to the CIIP mode and/or the available status information that indicates the available status of the CIIP mode indicates that the CIIP mode is prohibited from being used, the TPM mode is determined to be the target merge mode.
[0035] Необязательно, когда элемент синтаксиса высокого уровня, соответствующий режиму CIIP, указывает, что режим CIIP разрешен для использования, и информация о доступном статусе, которая указывает доступный статус режима CIIP, указывает, что режим CIIP доступен, режим CIIP определяется как целевой режим слияния.[0035] Optionally, when a high-level syntax element corresponding to a CIIP mode indicates that the CIIP mode is enabled for use, and the available status information that indicates the available status of the CIIP mode indicates that the CIIP mode is available, the CIIP mode is determined to be the target mode mergers.
[0036] Что касается первого аспекта, в некоторых реализациях первого аспекта, прежде чем целевой режим слияния будет определен на основе элемента синтаксиса высокого уровня, соответствующего второму режиму слияния, и/или информации о доступном статусе второго режима слияния, способ дополнительно включает в себя: определение того, что тип фрагмента или группы фрагментов, в которых расположен текущий блок изображения, является B; и определение того, что максимальное количество возможных режимов TPM, поддерживаемое фрагментом или группой фрагментов, в которых расположен текущий блок изображения, больше или равно 2.[0036] With respect to the first aspect, in some implementations of the first aspect, before the target merge mode is determined based on a high-level syntax element corresponding to the second merge mode and/or information about the available status of the second merge mode, the method further includes: determining that the type of the tile or group of tiles in which the current image block is located is B; and determining that the maximum number of possible TPM modes supported by the tile or group of tiles in which the current image block is located is greater than or equal to 2.
[0037] Необязательно, прежде чем целевой режим слияния будет определен на основе элемента синтаксиса высокого уровня, соответствующего режиму CIIP и/или информации о доступном статусе, которая указывает доступный статус режима CIIP, способ дополнительно включает в себя: определение того, что тип фрагмент или группа фрагментов, в которых расположен текущий блок изображения, является B; и определение того, что максимальное количество возможных режимов TPM, поддерживаемое фрагментом или группой фрагментов, в которых расположен текущий блок изображения, больше или равно 2.[0037] Optionally, before the target merge mode is determined based on a high-level syntax element corresponding to the CIIP mode and/or available status information that indicates the available status of the CIIP mode, the method further includes: determining that the type is fragment or the group of fragments in which the current image block is located is B; and determining that the maximum number of possible TPM modes supported by the tile or group of tiles in which the current image block is located is greater than or equal to 2.
[0038] Что касается первого аспекта, в некоторых реализациях первого аспекта первый режим слияния представляет собой режим TPM треугольного разделения, а второй режим слияния представляет собой комбинированный режим CIIP с внутрикадровым и межкадровым прогнозированием. Способ дополнительно включает в себя: когда режим слияния уровня-1 недоступен, и элемент синтаксиса высокого уровня, соответствующий режиму TPM, указывает, что режим TPM разрешен для использования, но текущий блок изображения не соответствует по меньшей мере одному из условия A и условия B, определяющие режим CIIP как целевой режим слияния.[0038] With respect to the first aspect, in some implementations of the first aspect, the first fusion mode is a triangular division TPM mode, and the second fusion mode is a combined intra- and inter-frame prediction CIIP mode. The method further includes: when the layer-1 merge mode is not available, and the high-level syntax element corresponding to the TPM mode indicates that the TPM mode is enabled for use, but the current image block does not meet at least one of condition A and condition B, defining CIIP mode as the target merge mode.
[0039] Условие A и условие B следующие:[0039] Condition A and condition B are as follows:
[0040] Условие A: тип фрагмента, в котором расположен текущий блок изображения, является B.[0040] Condition A: The fragment type in which the current image block is located is B.
[0041] Условие B: максимальное количество возможных режимов TPM, поддерживаемое фрагментом или группой фрагментов, в которых расположен текущий блок изображения, больше или равно 2.[0041] Condition B: The maximum number of possible TPM modes supported by the tile or group of tiles in which the current image block is located is greater than or equal to 2.
[0042] Режим TPM может быть выбран в качестве целевого режима слияния, окончательно используемого для прогнозирования текущего блока изображения, только когда выполняются как условие A, так и условие B.[0042] The TPM mode may be selected as the target fusion mode finally used to predict the current image block only when both condition A and condition B are satisfied.
[0043] С одной стороны, если условие A или условие B не выполняется, режим CIIP определяется как целевой режим слияния.[0043] On the one hand, if condition A or condition B is not satisfied, the CIIP mode is determined as the target merge mode.
[0044] С другой стороны, когда элемент синтаксиса высокого уровня, соответствующий режиму TPM, указывает, что режим TPM запрещено использовать, если условие A или условие B не выполняется, режим CIIP определяется как целевой режим слияния.[0044] On the other hand, when a high-level syntax element corresponding to a TPM mode specifies that the TPM mode is prohibited from being used if condition A or condition B is not satisfied, the CIIP mode is determined to be the target merge mode.
[0045] С другой стороны, когда элемент синтаксиса высокого уровня, соответствующий режиму TPM, указывает, что режим TPM разрешен для использования, если условие A или условие B не выполняется, режим CIIP определяется как целевой режим слияния.[0045] On the other hand, when a high-level syntax element corresponding to a TPM mode indicates that the TPM mode is enabled for use if condition A or condition B is not satisfied, the CIIP mode is determined to be the target merge mode.
[0046] Другими словами, режим CIIP может быть определен как целевой режим слияния при условии, что одно из sps_trangle_enabled_flag=1, условие A и условие B не выполняется.[0046] In other words, the CIIP mode can be defined as the target merge mode under the condition that one of sps_trangle_enabled_flag=1, condition A and condition B is not satisfied.
[0047] С другой стороны, если sps_trangle_enabled_flag=1, условие A и условие B все удовлетворены, целевой режим слияния должен быть определен на основе ciip_flag согласно нескольким условиям в предшествующем уровне техники.[0047] On the other hand, if sps_trangle_enabled_flag=1, condition A and condition B are all satisfied, the target merge mode must be determined based on the ciip_flag according to several conditions in the prior art.
[0048] Что касается первого аспекта, в некоторых реализациях первого аспекта элемент синтаксиса высокого уровня является элементом синтаксиса по меньшей мере на одном из уровня последовательности, уровня изображения, уровня фрагмента и уровня группы фрагментов.[0048] With respect to the first aspect, in some implementations of the first aspect, the high-level syntax element is a syntax element at at least one of the sequence level, the image level, the fragment level, and the fragment group level.
[0049] Что касается первого аспекта, в некоторых реализациях первого аспекта режим слияния уровня-1 включает в себя обычный режим слияния, слияние с режимом MMVD разности векторов движения и режим слияния подблоков. [0049] With respect to the first aspect, in some implementations of the first aspect, the layer-1 merging mode includes a conventional merging mode, a motion vector difference MMVD merging mode, and a sub-block merging mode.
[0050] Когда определяется, доступен ли режим слияния уровня-1, то, доступны ли эти режимы, можно последовательно определять в последовательности из обычного режима слияния, режима MMVD и режима слияния подблоков.[0050] When it is determined whether the layer-1 merging mode is available, whether these modes are available can be sequentially determined in a sequence of the normal merging mode, the MMVD mode, and the sub-block merging mode.
[0051] Например, сначала может быть определено, доступен ли обычный режим слияния. Когда обычный режим слияния недоступен (если доступен обычный режим слияния, обычный режим слияния может непосредственно использоваться в качестве конечного целевого режима слияния), продолжает определяться, доступен ли режим MMVD. Когда режим MMVD недоступен, продолжает определяться, доступен ли режим слияния подблоков.[0051] For example, it may first be determined whether the normal merge mode is available. When normal merge mode is not available (if normal merge mode is available, normal merge mode can directly be used as the final target merge mode), it continues to determine whether MMVD mode is available. When MMVD mode is not available, it continues to determine whether subblock merging mode is available.
[0052] Что касается первого аспекта, в некоторых реализациях первого аспекта способ дополнительно включает в себя: когда режим слияния уровня-1 недоступен, определение целевого режима слияния из режима слияния уровня-2, при этом режим слияния уровня-2 включает режим TPM и режим CIIP; и когда разрешено использование режима CIIP и не выполняется одно из следующих условий, определение режима CIIP как целевого режима слияния:[0052] With respect to the first aspect, in some implementations of the first aspect, the method further includes: when a layer-1 merge mode is not available, determining a target merge mode from a layer-2 merge mode, wherein the layer-2 merge mode includes a TPM mode and a CIIP; and when CIIP mode is enabled and one of the following conditions is not met, specifying CIIP mode as the target merge mode:
[0053] Условие D: разрешено использование режима TPM.[0053] Condition D: TPM mode is enabled.
[0054] Условие E: режим пропуска не используется для прогнозирования текущего блока изображения.[0054] Condition E: Skip mode is not used to predict the current image block.
[0055] Условие F: (cbWidth * cbHeight) ≥ 64.[0055] Condition F: (cbWidth * cbHeight) ≥ 64.
[0056] Условие G: cbWidth < 128.[0056] Condition G: cbWidth < 128.
[0057] Условие H: cbHeight < 128.[0057] Condition H: cbHeight < 128.
[0058] cbWidth - ширина текущего блока изображения, а cbHeight - высота текущего блока изображения.[0058] cbWidth is the width of the current image block, and cbHeight is the height of the current image block.
[0059] Что касается первого аспекта, в некоторых реализациях первого аспекта способ прогнозирования применяется к стороне кодера для кодирования текущего блока изображения.[0059] With respect to the first aspect, in some implementations of the first aspect, a prediction method is applied to the encoder side to encode the current image block.
[0060] Что касается первого аспекта, в некоторых реализациях первого аспекта способ прогнозирования применяется к стороне декодера для декодирования текущего блока изображения.[0060] Regarding the first aspect, in some implementations of the first aspect, a prediction method is applied to the decoder side to decode the current image block.
[0061] Согласно второму аспекту обеспечивается способ прогнозирования изображения. Способ включает в себя: определение того, используется ли режим слияния для текущего блока изображения; когда режим слияния используется для текущего блока изображения, определение того, доступен ли режим слияния уровня-1; когда режим слияния уровня-1 недоступен, определение целевого режима слияния из режима слияния уровня-2, где режим слияния уровня-2 включает в себя режим TPM и режим CIIP; когда разрешено использование режима CIIP и не выполняется одно из следующих условий (условие 1 - условие 5), определение режима CIIP как целевой режим слияния:[0061] According to a second aspect, an image prediction method is provided. The method includes: determining whether a merge mode is used for the current image block; when the merge mode is used for the current image block, determining whether the level-1 merge mode is available; when the layer-1 merge mode is not available, determining the target merge mode from the layer-2 merge mode, where the layer-2 merge mode includes a TPM mode and a CIIP mode; When CIIP mode is enabled and one of the following conditions is not met (condition 1 - condition 5), specify CIIP mode as the target merge mode:
[0062] Условие 1: допускается использование режима TPM.[0062] Condition 1: TPM mode is allowed.
[0063] Условие 2: тип фрагмента или группы фрагментов, в которых расположен текущий блок изображения, - B.[0063] Condition 2: The type of fragment or group of fragments in which the current image block is located is B.
[0064] Условие 3: Максимальное количество возможных режимов TPM, поддерживаемое фрагментом или группой фрагментов, в которых расположен текущий блок изображения, определяется как большее или равное 2. [0064] Condition 3: The maximum number of possible TPM modes supported by the tile or group of tiles in which the current image block is located is determined to be greater than or equal to 2.
[0065] Условие 4: Размер текущего блока изображения соответствует заданному условию. [0065] Condition 4: The size of the current image block meets the specified condition.
[0066] Условие 5: Режим пропуска не используется для прогнозирования текущего блока изображения. [0066] Condition 5: Skip mode is not used to predict the current image block.
[0067] Первое условие может быть конкретно представлено sps_triangle_enabled_flag=1, второе условие может быть конкретно представлено slice_type == B, а третье условие может быть конкретно представлено MaxNumTriangleMergeCand ≥ 2. MaxNumTriangleMergeCand указывает максимальное количество возможных режимов TPM, поддерживаемое фрагментом или группой фрагментов, в которых расположен текущий блок изображения.[0067] The first condition may be specifically represented by sps_triangle_enabled_flag=1, the second condition may be specifically represented by slice_type == B, and the third condition may be specifically represented by MaxNumTriangleMergeCand ≥ 2. MaxNumTriangleMergeCand indicates the maximum number of possible TPM modes supported by the fragment or group of fragments, in which the current image block is located.
[0068] Кроме того, для текущего блока изображения режим слияния уровня-1 и режим слияния уровня-2 могут включать в себя все опциональные режимы слияния текущего блока изображения, а для текущего блока изображения необходимо определить окончательный целевой режим слияния из режима слияния уровня-1 и режима слияния уровня-2.[0068] In addition, for the current image block, the level-1 fusion mode and the level-2 fusion mode may include all optional fusion modes of the current image block, and for the current image block, it is necessary to determine the final target fusion mode from the level-1 fusion mode and level-2 fusion mode.
[0069] Необязательно, приоритет режима слияния уровня-1 выше, чем приоритет режима слияния уровня-2.[0069] Optionally, the priority of the layer-1 merge mode is higher than the priority of the layer-2 merge mode.
[0070] То, что приоритет режима слияния уровня-1 выше, чем приоритет режима слияния уровня-2, означает, что в процессе определения целевого режима слияния текущего блока изображения целевой режим слияния предпочтительно определяется из режим слияния уровня-1. Если нет доступного режима слияния в режиме слияния уровня-1, целевой режим слияния затем определяется из режима слияния уровня-2.[0070] That the priority of the layer-1 merge mode is higher than the priority of the layer-2 merge mode means that in the process of determining the target merge mode of the current image block, the target merge mode is preferably determined from the layer-1 merge mode. If there is no merge mode available in the level-1 merge mode, the target merge mode is then determined from the level-2 merge mode.
[0071] Необязательно, что размер текущего блока изображения соответствует заданному условию, включает в себя: текущий блок изображения соответствует следующим трем условиям:[0071] Optionally, the size of the current image block meets a predetermined condition includes: the current image block meets the following three conditions:
(cdWidth * cbHeight) ≥ 64; (cdWidth * cbHeight) ≥ 64;
cbWidth < 128; иcbWidth < 128; And
cbHeight < 128. cbHeight < 128.
[0072] Необязательно, определение того, используется ли режим слияния для текущего блока изображения, включает в себя: когда merge_flag, соответствующий текущему блоку изображения, равен 1, определение того, что режим слияния используется для текущего блока изображения; и когда merge_flag, соответствующий текущему блоку изображения, равен 0, определение того, что режим слияния не используется для текущего блока изображения.[0072] Optionally, determining whether a merge mode is used for the current image block includes: when a merge_flag corresponding to the current image block is 1, determining that the merge mode is used for the current image block; and when the merge_flag corresponding to the current image block is 0, determining that the merge mode is not used for the current image block.
[0073] Следует понимать, что когда определено, что режим слияния не используется для текущего блока изображения, для прогнозирования текущего блока изображения может использоваться другой режим, отличный от режима слияния. Например, когда определено, что режим слияния не используется для текущего блока изображения, режим AMVP с расширенным вектором движения может использоваться для прогнозирования текущего блока изображения.[0073] It should be understood that when it is determined that the merge mode is not used for the current image block, a mode other than the merge mode may be used to predict the current image block. For example, when it is determined that the fusion mode is not used for the current image block, the extended motion vector AMVP mode may be used to predict the current image block.
[0074] Необязательно, режим слияния уровня-1 включает в себя обычный режим слияния, режим MMVD и режим слияния подблоков.[0074] Optionally, the layer-1 merging mode includes a normal merging mode, an MMVD mode, and a sub-block merging mode.
[0075] Когда определяется, доступен ли режим слияния уровня-1, то, доступны ли эти режимы, можно последовательно определять в последовательности из обычного режима слияния, режима MMVD и режима слияния подблоков. Когда все режимы недоступны, определяется, что режим слияния уровня-1 недоступен.[0075] When it is determined whether the layer-1 merging mode is available, whether these modes are available can be sequentially determined in a sequence of the normal merging mode, the MMVD mode, and the sub-block merging mode. When all modes are unavailable, it is determined that layer-1 merge mode is unavailable.
[0076] В настоящей заявке, когда режим слияния уровня-1 недоступен, на основе некоторых заданных условий может быть определено, следует ли выбирать режим CIIP в качестве окончательного режима слияния, и режим CIIP может быть напрямую определен как целевой режим слияния при условии, что ни одно из заданных условий не выполняется. Это снижает избыточность, возникающую в процессе определения целевого слияния.[0076] In the present application, when the layer-1 merge mode is not available, based on some specified conditions, it can be determined whether the CIIP mode should be selected as the final merge mode, and the CIIP mode can be directly determined as the target merge mode under the condition that none of the specified conditions are met. This reduces the redundancy that occurs in the merge target determination process.
[0077] Что касается второго аспекта, в некоторых реализациях второго аспекта определение целевого режима слияния из режима слияния уровня-2 включает в себя: когда любое из условия 1 - условия 5 не выполняется, установку значения информации о доступном статусе, которая указывает доступный статус режима CIIP для первого значения, при этом когда значение информации о доступном статусе, которое указывает доступный статус режима CIIP, является первым значением, режим CIIP используется для осуществления прогнозирования изображения на текущий блок изображения.[0077] With respect to the second aspect, in some implementations of the second aspect, determining a target merge mode from a layer-2 merge mode includes: when any of
[0078] Следует понимать, что установка значения информации о доступном статусе, которая указывает доступный статус режима CIIP для первого значения в данном документе, эквивалентна определению CIIP в качестве целевого режима слияния.[0078] It should be understood that setting the value of the available status information, which indicates the available status of the CIIP mode for the first value herein, is equivalent to specifying CIIP as the target merge mode.
[0079] Необязательно, информацией о доступном статусе, указывающей доступный статус режима CIIP, является ciip_flag.[0079] Optionally, the available status information indicating the available status of the CIIP mode is ciip_flag.
[0080] Установка значения информации о доступном статусе, которая указывает доступный статус режима CIIP на первое значение, может, в частности, устанавливать ciip_flag на 1.[0080] Setting the value of the available status information that indicates the available status of the CIIP mode to a first value may, in particular, set ciip_flag to 1.
[0081] Кроме того, когда значение информации о доступном статусе, которая указывает доступный статус режима CIIP, устанавливается на второе значение, это может означать, что режим CIIP не используется для осуществления прогнозирования изображения для текущего блока изображения. Например, когда информацией о доступном статусе, которая указывает доступный статус режима CIIP, является ciip_flag, а ciip_flag=0, режим CIIP не используется для осуществления прогнозирования изображения для текущего блока изображения.[0081] In addition, when the value of the available status information that indicates the available status of the CIIP mode is set to the second value, it may indicate that the CIIP mode is not used to perform image prediction for the current image block. For example, when the available status information that indicates the available status of the CIIP mode is ciip_flag and ciip_flag=0, the CIIP mode is not used to perform image prediction for the current image block.
[0082] Что касается второго аспекта, в некоторых реализациях второго аспекта определение целевого режима слияния из режима слияния уровня-2 включает в себя: когда все условия от условия 1 до условия 5 выполнены, определение целевого режима слияния на основе элемента синтаксиса высокого уровня, соответствующего режиму CIIP, и/или информации о доступном статусе, которая указывает доступный статус режима CIIP, при этом информация о доступном статусе, которая указывает доступный статус режима CIIP, используется для указания того, используется ли режим CIIP, когда прогнозируется текущий блок изображения.[0082] With respect to the second aspect, in some implementations of the second aspect, determining a target merge mode from a layer-2 merge mode includes: when all conditions from
[0083] Например, информация о доступном статусе, которая указывает доступный статус режима CIIP, представляет собой значение ciip_flag. Когда ciip_flag равен 0, режим CIIP недоступен для текущего блока изображения. Когда ciip_flag равен 1, режим CIIP доступен для текущего блока изображения.[0083] For example, available status information that indicates the available status of the CIIP mode is a ciip_flag value. When ciip_flag is 0, CIIP mode is not available for the current image block. When ciip_flag is 1, CIIP mode is enabled for the current image block.
[0084] В настоящей заявке целевой режим слияния может быть определен на основе элемента синтаксиса высокого уровня режима CIIP и/или информации о доступном статусе, которая указывает доступный статус режима CIIP, только когда выполняются пять заданных условий. По сравнению с обычным решением, необходимо выполнить больше условий, прежде чем целевой режим слияния будет дополнительно определен на основе элемента синтаксиса высокого уровня и информации о доступном статусе режима CIIP. В противном случае режим CIIP может быть напрямую определен как целевой режим слияния. Это может уменьшить количество избыточных процессов в процессе определения целевого режима слияния.[0084] In the present application, the target merge mode may be determined based on a high-level syntax element of the CIIP mode and/or available status information that indicates the available status of the CIIP mode only when five specified conditions are met. Compared to the conventional solution, more conditions must be satisfied before the target merge mode is further determined based on the high-level syntax element and information about the available CIIP mode status. Otherwise, CIIP mode can be directly defined as the target merge mode. This can reduce the number of redundant processes in the process of determining the target merge mode.
[0085] Что касается второго аспекта, в некоторых реализациях второго аспекта определение целевого режима слияния на основе элемента синтаксиса высокого уровня, соответствующего режиму CIIP, и/или информации о доступном статусе, которая указывает доступный статус режима CIIP, включает в себя: когда элемент синтаксиса высокого уровня, соответствующий режиму CIIP, и/или информация о доступном статусе, которая указывает доступный статус режима CIIP, указывает/указывают, что режим CIIP запрещено использовать, определение режима TPM в качестве целевого режима слияния.[0085] With respect to the second aspect, in some implementations of the second aspect, determining the target merge mode based on a high-level syntax element corresponding to the CIIP mode and/or available status information that indicates the available status of the CIIP mode includes: when the syntax element high level corresponding to the CIIP mode, and/or available status information that indicates the available status of the CIIP mode, indicates that the CIIP mode is prohibited from being used, defining the TPM mode as the target merge mode.
[0086] Что касается второго аспекта, в некоторых реализациях второго аспекта, когда элемент синтаксиса высокого уровня, соответствующий режиму CIIP, и/или информация о доступном статусе, которая указывает доступный статус режима CIIP, указывает/указывают, что режим CIIP запрещено использовать, определение режима TPM в качестве целевого режима слияния включает в себя:[0086] With respect to the second aspect, in some implementations of the second aspect, when a high-level syntax element corresponding to the CIIP mode and/or available status information that indicates the available status of the CIIP mode indicates that the CIIP mode is prohibited from being used, determining TPM mode as the target merge mode includes:
когда элемент синтаксиса высокого уровня, соответствующий режиму CIIP, и/или информация о доступном статусе, которая указывает доступный статус режима CIIP, указывает/указывают, что режим CIIP запрещено использовать, установка значения информации о доступном статусе, которая указывает доступный статус режима TPM, до первого значения, при этом когда значение информации о доступном статусе, которая указывает доступный статус режима TPM, является первым значением, режим TPM используется для выполнения прогнозирования изображения для текущего блока изображения.when the high-level syntax element corresponding to the CIIP mode and/or the available status information that indicates the available status of the CIIP mode indicates/indicates that the CIIP mode is prohibited from being used, setting the value of the available status information that indicates the available status of the TPM mode to the first value, wherein when the value of the available status information that indicates the available status of the TPM mode is the first value, the TPM mode is used to perform image prediction for the current image block.
[0087] Следует понимать, что установка значения информации о доступном статусе, которая указывает доступный статус режима TPM, до первого значения в данном документе, эквивалентна определению TPM в качестве целевого режима слияния.[0087] It should be understood that setting the value of the available status information, which indicates the available status of the TPM mode, to the first value herein is equivalent to specifying the TPM as the target merge mode.
[0088] Необязательно, информация о доступном статусе, указывающая доступный статус режима TPM, - это MergeTriangleFlag.[0088] Optionally, the available status information indicating the available status of the TPM mode is MergeTriangleFlag.
[0089] Установка значения информации о доступном статусе, которая указывает доступный статус режима TPM, до первого значения, может, в частности, устанавливать для MergeTriangleFlag значение 1.[0089] Setting the value of the available status information, which indicates the available status of the TPM mode, to the first value, may, in particular, set the MergeTriangleFlag to 1.
[0090] Что касается второго аспекта, в некоторых реализациях второго аспекта перед определением целевого режима слияния на основе элемента синтаксиса высокого уровня, соответствующего режиму CIIP, и/или информации о доступном статусе, которая указывает доступный статус режим CIIP, способ дополнительно включает в себя:[0090] With respect to the second aspect, in some implementations of the second aspect, before determining the target merge mode based on a high-level syntax element corresponding to the CIIP mode and/or available status information that indicates the available status of the CIIP mode, the method further includes:
определение того, что выполняется хотя бы одно из следующих условий: determining that at least one of the following conditions is met:
[0091] Размер текущего блока изображения соответствует заданному условию; и[0091] The size of the current image block meets the specified condition; And
режим пропуска не используется для прогнозирования текущего блока изображения.Skip mode is not used to predict the current image block.
[0092] cdWidth - это ширина текущего блока изображения, и cbHeight - высота текущего блока изображения.[0092] cdWidth is the width of the current image block, and cbHeight is the height of the current image block.
[0093] Согласно третьему аспекту обеспечивается способ прогнозирования изображения. Способ включает в себя: определение того, используется ли режим слияния для текущего блока изображения; когда режим слияния используется для текущего блока изображения, определение, доступен ли режим слияния уровня-1; и когда режим слияния уровня-1 недоступен, определение целевого режима слияния из режима слияния уровня-2. Режим слияния уровня-2 включает в себя режим TPM и режим CIIP. Когда разрешено использование режима CIIP и выполняются все следующие условия (условие 1 - условие 3), информация о доступном статусе режима CIIP получается путем анализа потока битов, а целевой режим слияния определяется на основе информация о доступном статусе режима CIIP:[0093] According to a third aspect, an image prediction method is provided. The method includes: determining whether a merge mode is used for the current image block; when the merge mode is used for the current image block, determining whether the level-1 merge mode is available; and when the layer-1 merge mode is not available, determining the target merge mode from the layer-2 merge mode. Layer-2 merge mode includes TPM mode and CIIP mode. When CIIP mode is enabled and all of the following conditions are met (condition 1 - condition 3), the CIIP mode available status information is obtained by analyzing the bit stream, and the target merge mode is determined based on the CIIP mode available status information:
[0094] Условие 1: допускается использование режима TPM.[0094] Condition 1: TPM mode is allowed.
[0095] Условие 2: размер текущего блока изображения соответствует заданному условию.[0095] Condition 2: The size of the current image block meets the specified condition.
[0096] Условие 3: режим пропуска не используется для прогнозирования текущего блока изображения.[0096] Condition 3: Skip mode is not used to predict the current image block.
[0097] В возможной форме реализации согласно третьему аспекту, если информация о доступном статусе режима CIIP, полученная путем анализа потока битов, указывает, что режим CIIP недоступен, TPM используется в качестве целевого режима слияния.[0097] In a possible implementation form according to the third aspect, if the CIIP mode available status information obtained by analyzing the bit stream indicates that the CIIP mode is not available, the TPM is used as the target merge mode.
[0098] В настоящей заявке, когда режим слияния уровня-1 недоступен, на основе некоторых заданных условий может быть определено, следует ли выбирать режим CIIP в качестве окончательного режима слияния, и режим CIIP может быть напрямую определен как целевой режим слияния при условии, что ни одно из заданных условий не выполняется. Это уменьшает избыточность, возникающую в процессе определения целевого слияния.[0098] In the present application, when the layer-1 merge mode is not available, based on some specified conditions, it can be determined whether the CIIP mode should be selected as the final merge mode, and the CIIP mode can be directly determined as the target merge mode under the condition that none of the specified conditions are met. This reduces the redundancy that occurs in the process of determining the merge target.
[0099] Согласно четвертому аспекту обеспечивается способ прогнозирования изображения. Способ включает в себя: определение того, используется ли режим слияния для текущего блока изображения; когда режим слияния используется для текущего блока изображения, определение, доступен ли режим слияния уровня-1; и когда режим слияния уровня-1 недоступен, определение целевого режима слияния из режима слияния уровня-2. Режим слияния уровня-2 включает в себя режим TPM и режим CIIP. Когда разрешено использование режима CIIP и выполняются все следующие условия (условие 1 - условие 5), информация о доступном статусе режима CIIP получается путем анализа потока битов, а целевой режим слияния определяется на основе информация о доступном статусе режима CIIP:[0099] According to a fourth aspect, an image prediction method is provided. The method includes: determining whether a merge mode is used for the current image block; when the merge mode is used for the current image block, determining whether the level-1 merge mode is available; and when the layer-1 merge mode is not available, determining the target merge mode from the layer-2 merge mode. Layer-2 merge mode includes TPM mode and CIIP mode. When CIIP mode is enabled and all of the following conditions are met (
[00100] Условие 1: допускается использование режима TPM.[00100] Condition 1: TPM mode is allowed.
[00101] Условие 2: тип фрагмента или группы фрагментов, в которых расположен текущий блок изображения, - B.[00101] Condition 2: The type of fragment or group of fragments in which the current image block is located is B.
[00102] Условие 3: максимальное количество возможных режимов TPM, поддерживаемое фрагментом или группой фрагментов, в которых расположен текущий блок изображения, определяется как большее или равное 2.[00102] Condition 3: The maximum number of possible TPM modes supported by the tile or group of tiles in which the current image block is located is determined to be greater than or equal to 2.
[00103] Условие 4: размер текущего блока изображения соответствует заданному условию.[00103] Condition 4: The size of the current image block meets the specified condition.
[00104] Условие 5: режим пропуска не используется для прогнозирования текущего блока изображения.[00104] Condition 5: Skip mode is not used to predict the current image block.
[00105] В возможной форме реализации согласно четвертому аспекту, если информация о доступном статусе режима CIIP, полученная путем анализа потока битов, указывает, что режим CIIP недоступен, TPM используется в качестве целевого режима слияния.[00105] In a possible implementation form according to the fourth aspect, if the CIIP mode available status information obtained by analyzing the bit stream indicates that the CIIP mode is not available, the TPM is used as the target merge mode.
[00106] В настоящей заявке, когда режим слияния уровня-1 недоступен, на основе некоторых заданных условий может быть определено, следует ли выбирать режим CIIP в качестве окончательного режима слияния, и режим CIIP может быть напрямую определен как целевой режим слияния при условии, что ни одно из заданных условий не выполняется. Это уменьшает избыточность, возникающую в процессе определения целевого слияния.[00106] In the present application, when the layer-1 merge mode is not available, based on some specified conditions, it can be determined whether the CIIP mode should be selected as the final merge mode, and the CIIP mode can be directly determined as the target merge mode under the condition that none of the specified conditions are met. This reduces the redundancy that occurs in the process of determining the merge target.
[00107] Согласно пятому аспекту обеспечивается способ прогнозирования изображения. Способ включает в себя: определение того, используется ли режим слияния для текущего блока изображения; когда режим слияния используется для текущего блока изображения, продолжение определения, доступен ли режим слияния уровня-1; когда режим слияния уровня-1 недоступен, а элемент синтаксиса высокого уровня, соответствующий первому набору режима слияния, указывает, что режим слияния в первом наборе режимов слияния запрещено использовать, определение целевого режима слияния, применимого к текущему блок изображения из второго набора режимов слияния; и прогнозирование текущего блока изображения с использованием целевого режима слияния.[00107] According to a fifth aspect, an image prediction method is provided. The method includes: determining whether a merge mode is used for the current image block; when the merge mode is used for the current image block, continuing to determine whether the layer-1 merge mode is available; when the level-1 merge mode is not available and the high-level syntax element corresponding to the first merge mode set indicates that the merge mode in the first merge mode set is prohibited from being used, determining a target merge mode applicable to the current image block from the second merge mode set; and predicting the current image block using the target fusion mode.
[00108] И первый набор режимов слияния, и второй набор режимов слияния принадлежат режиму слияния уровня-2. Другими словами, режим слияния уровня-2 включает в себя первый набор режимов слияния и второй набор режимов слияния. Кроме того, для текущего блока изображения режим слияния уровня-1 и режим слияния уровня-2 уже включают все опциональные режимы слияния текущего блока изображения, а для текущего блока изображения необходимо определить окончательный целевой режим слияния из режима слияния уровня-1 и режима слияния уровня-2.[00108] Both the first set of merge modes and the second set of merge modes belong to the layer-2 merge mode. In other words, the layer-2 merge mode includes a first set of merge modes and a second set of merge modes. In addition, for the current image block, the level-1 fusion mode and level-2 fusion mode already include all the optional fusion modes of the current image block, and for the current image block, the final target fusion mode needs to be determined from the level-1 fusion mode and the level-fusion mode. 2.
[00109] Необязательно, первый набор режимов слияния включает в себя по меньшей мере один режим слияния, а второй набор режимов слияния включает в себя по меньшей мере один режим слияния.[00109] Optionally, the first set of merge modes includes at least one merge mode, and the second set of merge modes includes at least one merge mode.
[00110] Следует понимать, что первый набор режимов слияния и второй набор режимов слияния - это просто концепции, введенные для простоты описания, и в основном используются, чтобы различать разные режимы слияния. В фактическом процессе определения окончательного целевого режима слияния первый набор режимов слияния и второй набор режимов слияния могут не существовать.[00110] It should be understood that the first set of merge modes and the second set of merge modes are merely concepts introduced for ease of description and are primarily used to distinguish between different merge modes. In the actual process of determining the final target merge mode, the first set of merge modes and the second set of merge modes may not exist.
[00111] В настоящей заявке, когда элементы синтаксиса высокого уровня некоторых режимов слияния указывают, что эти режимы слияния запрещено использовать, нет необходимости анализировать информацию о доступном статусе этих режимов слияния. Вместо этого окончательный целевой режим слияния может быть напрямую определен из оставшихся опциональных режимов слияния. Это может уменьшить, насколько это возможно, избыточность, формируемую из-за определения целевого режима слияния в процессе прогнозирования изображения.[00111] In the present application, when the high-level syntax elements of some merge modes indicate that these merge modes are prohibited from being used, there is no need to analyze information about the available status of these merge modes. Instead, the final target merge mode can be directly determined from the remaining optional merge modes. This can reduce, as much as possible, the redundancy generated due to determining the target fusion mode in the image prediction process.
[00112] Что касается пятого аспекта, в некоторых реализациях пятого аспекта, когда режим слияния уровня-1 недоступен, и элемент синтаксиса высокого уровня, соответствующий первому набору режимов слияния, указывает, что режим слияния в первом наборе режимов слияния разрешено использовать, целевой режим слияния определяется на основе элемента синтаксиса высокого уровня, соответствующего второму набору режимов слияния и/или информации о доступном статусе второго набора режимов слияния.[00112] With respect to the fifth aspect, in some implementations of the fifth aspect, when the level-1 merge mode is not available and the high-level syntax element corresponding to the first merge mode set indicates that the merge mode in the first merge mode set is allowed to be used, the target merge mode determined based on a high-level syntax element corresponding to the second set of merge modes and/or information about the available status of the second set of merge modes.
[00113] Информация о доступном статусе второго набора режимов слияния используется, чтобы указать, используется ли режим слияния во втором наборе режимов слияния, когда прогнозируется текущий блок изображения.[00113] The available status information of the second set of merge modes is used to indicate whether a merge mode is used in the second set of merge modes when the current image block is predicted.
[00114] Например, если второй набор режимов слияния включает в себя режим CIIP, информация о доступном статусе второго набора режимов слияния может быть значением ciip_flag. Когда ciip_flag равен 0, режим CIIP недоступен для текущего блока изображения. Когда ciip_flag равен 1, режим CIIP доступен для текущего блока изображения.[00114] For example, if the second merge mode set includes a CIIP mode, the available status information of the second merge mode set may be a ciip_flag value. When ciip_flag is 0, CIIP mode is not available for the current image block. When ciip_flag is 1, CIIP mode is enabled for the current image block.
[00115] Что касается пятого аспекта, в некоторых реализациях пятого аспекта первый набор режимов слияния включает в себя режима TPM треугольного разделения, а второй набор режимов слияния включает в себя комбинированный режим CIIP с внутрикадровым и межкадровым прогнозированием.[00115] With respect to the fifth aspect, in some implementations of the fifth aspect, the first set of fusion modes includes triangular division TPM modes, and the second set of fusion modes includes a combined intra- and inter-frame prediction CIIP mode.
[00116] Необязательно, первый набор режимов слияния состоит из режима TPM, а второй набор режимов состоит из режима CIIP.[00116] Optionally, the first set of merge modes consists of the TPM mode, and the second set of modes consists of the CIIP mode.
[00117] Когда первый набор режимов слияния и второй режим слияния включают каждый только один режим слияния, если режим слияния в первом наборе режимов слияния запрещено использовать, режим слияния во втором наборе режимов слияния может быть определен как целевой режим слияния; и если режим слияния во втором наборе режимов слияния запрещено использовать, слияние в первом наборе режимов слияния может быть определено как целевой режим слияния.[00117] When the first merge mode set and the second merge mode each include only one merge mode, if the merge mode in the first merge mode set is prohibited from being used, the merge mode in the second merge mode set can be determined as the target merge mode; and if the merge mode in the second merge mode set is prohibited from being used, the merge mode in the first merge mode set may be defined as the target merge mode.
[00118] Когда первый набор режимов слияния и второй набор режимов слияния включают в себя каждый только один режим слияния, до тех пор, пока режим слияния в одном из наборов режимов слияния запрещено использовать, режим слияния в другом наборе режимов слияния может быть непосредственно определяется как последний целевой режим слияния.[00118] When the first merge mode set and the second merge mode set each include only one merge mode, as long as the merge mode in one of the merge mode sets is prohibited from being used, the merge mode in the other merge mode set can be directly determined as last target merge mode.
[00119] Что касается пятого аспекта, в некоторых реализациях пятого аспекта, когда режим слияния уровня-1 недоступен, и элемент синтаксиса высокого уровня, соответствующий первому набору режимов слияния, указывает, что режим слияния в первом наборе режимов слияния запрещено использовать, определение целевого режима слияния, применимого к текущему блоку изображения из второго набора режимов слияния, включает в себя: когда режим слияния уровня-1 недоступен, и элемент синтаксиса высокого уровня, соответствующий режиму TPM, указывает, что режим TPM запрещено использовать, определение режима CIIP как целевого режима слияния. [00119] With respect to the fifth aspect, in some implementations of the fifth aspect, when the level-1 merge mode is not available and the high-level syntax element corresponding to the first merge mode set indicates that the merge mode in the first merge mode set is prohibited from being used, determining the target mode the merge applied to the current image block from the second set of merge modes includes: when the layer-1 merge mode is not available and the high-level syntax element corresponding to the TPM mode indicates that the TPM mode is prohibited from being used, specifying the CIIP mode as the target merge mode .
[00120] Согласно шестому аспекту обеспечивается устройство прогнозирования изображения. Устройство включает в себя модуль, соответствующий способу согласно любому из аспектов от первого до пятого, и соответствующий модуль может реализовывать этапы способа согласно любому одному из аспектов от первого до пятого.[00120] According to a sixth aspect, an image prediction device is provided. The apparatus includes a module corresponding to a method according to any one of the first to fifth aspects, and the corresponding module may implement the steps of the method according to any one of the first to fifth aspects.
[00121] Устройство прогнозирования изображения в шестом аспекте может включать в себя один или более модулей, и любой из одного или более модулей может включать в себя любое из схемы, программируемой пользователем вентильной матрицы FPGA, специализированной интегральной схемы ASIC и универсального процессора.[00121] The image prediction apparatus in the sixth aspect may include one or more modules, and any of the one or more modules may include any of a circuit, a field programmable gate array FPGA, an application specific integrated circuit ASIC, and a general purpose processor.
[00122] Устройство прогнозирования изображения в шестом аспекте может быть расположено в устройстве кодирования или устройстве декодирования.[00122] The image predictor in the sixth aspect may be located in the encoding device or decoding device.
[00123] Согласно седьмому аспекту обеспечивается устройство прогнозирования изображения, включающее в себя память и процессор. Процессор вызывает программный код, хранящийся в памяти, для осуществления способа в соответствии с любым из первого, второго и третьего аспектов.[00123] According to a seventh aspect, an image prediction apparatus is provided including a memory and a processor. The processor calls program code stored in memory to implement a method in accordance with any of the first, second and third aspects.
[00124] Устройство прогнозирования изображения в седьмом аспекте может быть расположено в устройстве кодирования изображения или устройстве декодирования изображения.[00124] The image prediction device in the seventh aspect may be located in the image encoding device or the image decoding device.
[00125] Согласно восьмому аспекту обеспечивается устройство кодирования/декодирования изображений. Устройство включает в себя модуль, соответствующий способу согласно любому из аспектов от первого до пятого, и соответствующий модуль может реализовывать этапы способа согласно любому одному из аспектов от первого до пятого.[00125] According to an eighth aspect, an image encoding/decoding apparatus is provided. The apparatus includes a module corresponding to a method according to any one of the first to fifth aspects, and the corresponding module may implement the steps of the method according to any one of the first to fifth aspects.
[00126] Согласно девятому аспекту обеспечивается устройство кодирования/декодирования изображений, включающее в себя память и процессор. Процессор вызывает программный код, хранящийся в памяти, для осуществления способа в соответствии с любым из аспектов с первого по пятый. [00126] According to a ninth aspect, an image encoding/decoding apparatus including a memory and a processor is provided. The processor calls program code stored in memory to implement the method in accordance with any of the first to fifth aspects.
[00127] Необязательно, память является энергонезависимой.[00127] Optionally, the memory is non-volatile.
[00128] Необязательно, память и процессор связаны друг с другом.[00128] Optionally, the memory and processor are coupled to each other.
[00129] Согласно десятому аспекту вариант осуществления настоящей заявки обеспечивает считываемый компьютером носитель данных. Считываемый компьютером носитель данных хранит инструкцию, и инструкция позволяет одному или более процессорам осуществлять способ согласно любому из аспектов от первого до пятого.[00129] According to a tenth aspect, an embodiment of the present application provides a computer-readable storage medium. The computer-readable storage medium stores the instruction, and the instruction enables one or more processors to implement the method according to any of the first to fifth aspects.
[00130] Любой из одного или более процессоров может включать в себя любое из схемы, программируемой пользователем вентильной матрицы FPGA, специализированной интегральной схемы ASIC и универсального процессора.[00130] Any one or more processors may include any of a circuitry, a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), and a general purpose processor.
[00131] Согласно одиннадцатому аспекту вариант осуществления настоящей заявки обеспечивает компьютерный программный продукт. Когда компьютерный программный продукт выполняется на компьютере, компьютер обеспечен возможностью осуществлять некоторые или все этапы способа в соответствии с любым из аспектов от первого до пятого. [00131] According to an eleventh aspect, an embodiment of the present application provides a computer program product. When the computer program product is executed on a computer, the computer is configured to carry out some or all of the steps of the method in accordance with any of the first to fifth aspects.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ BRIEF DESCRIPTION OF THE DRAWINGS
[00132] Фиг. 1 - схематическая блок-схема примера системы кодирования видео для реализации варианта осуществления настоящей заявки; [00132] FIG. 1 is a schematic block diagram of an example of a video encoding system for implementing an embodiment of the present application;
[00133] Фиг. 2 - схематическая структурная блок-схема примера видеокодера для реализации варианта осуществления настоящей заявки; [00133] FIG. 2 is a schematic block diagram of an example video encoder for implementing an embodiment of the present application;
[00134] Фиг. 3 - схематическая структурная блок-схема примера видеодекодера для реализации варианта осуществления настоящей заявки;[00134] FIG. 3 is a schematic block diagram of an example video decoder for implementing an embodiment of the present application;
[00135] Фиг. 4 - схематическая структурная блок-схема примера системы кодирования видео для реализации варианта осуществления настоящей заявки;[00135] FIG. 4 is a schematic block diagram of an example of a video encoding system for implementing an embodiment of the present application;
[00136] Фиг. 5 - схематическая структурная блок-схема примера устройства кодирования видео для реализации варианта осуществления настоящей заявки;[00136] FIG. 5 is a schematic block diagram of an example of a video encoding apparatus for implementing an embodiment of the present application;
[00137] Фиг. 6 - схематическая блок-схема примера устройства кодирования или устройства декодирования для реализации варианта осуществления настоящей заявки;[00137] FIG. 6 is a schematic block diagram of an example of an encoding device or a decoding device for implementing an embodiment of the present application;
[00138] Фиг. 7 - схематическая диаграмма пространственной и временной информации о движении возможной текущей единицы кодирования;[00138] FIG. 7 is a schematic diagram of spatial and temporal motion information of a possible current coding unit;
[00139] Фиг. 8 - схематическая диаграмма точки поиска MMVD, используемой для реализации варианта осуществления настоящей заявки;[00139] FIG. 8 is a schematic diagram of an MMVD search point used to implement an embodiment of the present application;
[00140] Фиг. 9 - еще одна схематическая диаграмма точки поиска MMVD, используемой для реализации варианта осуществления настоящей заявки; [00140] FIG. 9 is another schematic diagram of an MMVD search point used to implement an embodiment of the present application;
[00141] Фиг. 10 - схематическая диаграмма треугольного разделения;[00141] FIG. 10 is a schematic diagram of a triangular division;
[00142] Фиг. 11 - схематическая диаграмма способа прогнозирования в виде треугольного разделения;[00142] FIG. 11 is a schematic diagram of a triangular division prediction method;
[00143] Фиг. 12 - схематическая блок-схема системы видеосвязи согласно варианту осуществления настоящей заявки; и[00143] FIG. 12 is a schematic block diagram of a video communication system according to an embodiment of the present application; And
[00144] Фиг. 13 - схематическая блок-схема способа прогнозирования изображения согласно варианту осуществления настоящей заявки;[00144] FIG. 13 is a schematic flow diagram of an image prediction method according to an embodiment of the present application;
[00145] Фиг. 14 - схематическая блок-схема способа прогнозирования изображения согласно варианту осуществления настоящей заявки;[00145] FIG. 14 is a schematic flow diagram of an image prediction method according to an embodiment of the present application;
[00146] Фиг. 15 - схематическая блок-схема способа прогнозирования изображения согласно варианту осуществления настоящей заявки;[00146] FIG. 15 is a schematic flow diagram of an image prediction method according to an embodiment of the present application;
[00147] Фиг. 16 - схематическая блок-схема устройства прогнозирования изображения согласно варианту осуществления настоящей заявки;[00147] FIG. 16 is a schematic block diagram of an image prediction apparatus according to an embodiment of the present application;
[00148] Фиг. 17 - схематическая блок-схема устройства прогнозирования изображения согласно варианту осуществления настоящей заявки; а также[00148] FIG. 17 is a schematic block diagram of an image prediction apparatus according to an embodiment of the present application; and
[00149] Фиг. 18 - схематическая блок-схема устройства кодирования/декодирования изображений согласно варианту осуществления настоящей заявки. [00149] FIG. 18 is a schematic block diagram of an image encoding/decoding apparatus according to an embodiment of the present application.
ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯDESCRIPTION OF IMPLEMENTATION OPTIONS
[00150] Далее описаны технические решения настоящей заявки со ссылкой на сопроводительные чертежи.[00150] The technical solutions of the present application are described below with reference to the accompanying drawings.
[00151] В нижеследующем описании сделана ссылка на сопроводительные чертежи, которые составляют часть настоящей заявки и показывают в качестве иллюстрации конкретные аспекты вариантов осуществления настоящей заявки или конкретные аспекты, в которых могут использоваться варианты осуществления настоящей заявки. Следует понимать, что варианты осуществления настоящей заявки могут дополнительно использоваться в другом аспекте и могут включать в себя структурные или логические изменения, не изображенные на прилагаемых чертежах. Следовательно, нижеследующее подробное описание не следует рассматривать в ограничивающем смысле, и объем этой заявки должен определяться прилагаемой формулой изобретения.[00151] In the following description, reference is made to the accompanying drawings, which form a part of the present application 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 further used in another aspect and may include structural or logical changes not depicted in the accompanying drawings. Accordingly, the following detailed description is not to be construed in a limiting sense, and the scope of this application is to be determined by the appended claims.
[00152] Например, следует понимать, что раскрытие в связи с описанным способом также может быть верным для соответствующего устройства или системы, выполненной с возможностью осуществления способа, и наоборот.[00152] For example, it should be understood that the disclosure in connection with a described method may also be true of a corresponding device or system configured to implement the method, and vice versa.
[00153] В качестве другого примера, если описан один или болееболее конкретных этапов способа, соответствующее устройство может включать в себя один или более блоков, таких как функциональные блоки, для осуществления описанных одного или более этапов способа (например, один блок, осуществляющий один или более этапов; или множество блоков, каждый из которых выполняет один или более из множества этапов), даже если такой один или более блоков явно не описаны или не проиллюстрированы на сопроводительных чертежах.[00153] As another example, if one or more specific method steps are described, the corresponding apparatus may include one or more blocks, such as functional blocks, for carrying out the one or more method steps described (e.g., one block performing one or more 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.
[00154] Кроме того, если конкретное устройство описывается на основе одного или более блоков, таких как функциональные блоки, соответствующий способ может включать в себя один этап, используемый для осуществления функции одного или более блоков (например, один этап, используемый для выполнения функции один или более блоков или множество этапов, каждый из которых используется для выполнения функции одного или более из множества блоков), даже если такой один или более этапов явно не описаны или не проиллюстрированы на сопроводительных чертежах. Кроме того, следует понимать, что особенности различных примерных вариантов осуществления и/или аспектов, описанных в этом описании, могут быть объединены друг с другом, если специально не указано иное.[00154] Additionally, if a particular device is described in terms of one or more blocks, such as functional blocks, the corresponding method may include one step used to perform a function of one or more blocks (e.g., one step used to perform function one or more blocks or a plurality of steps, each of which is used to perform the function 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. In addition, it should be understood that features of various exemplary embodiments and/or aspects described in this specification may be combined with each other unless specifically stated otherwise.
[00155] Технические решения в вариантах осуществления настоящей заявки могут быть применены к стандарту H.266 и будущему стандарту кодирования видео. Термины, используемые в реализациях настоящей заявки, предназначены только для объяснения конкретных вариантов осуществления настоящей заявки и не предназначены для ограничения настоящей заявки. Нижеследующее сначала кратко описывает связанные концепции в вариантах осуществления настоящей заявки.[00155] The technical solutions in embodiments of the present application can be applied to the H.266 standard and a future video encoding 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. The following first briefly describes related concepts in embodiments of the present application.
[00156] Кодирование видео обычно относится к обработке последовательности изображений, составляющих видео или видеопоследовательность. В области кодирования видео термины «изображение (image)», «кадр (frame)» и «изображение (image)» могут использоваться как синонимы. Кодирование видео, используемое в этой спецификации, включает кодирование видео и декодирование видео. Кодирование видео выполняется на стороне источника и обычно включает в себя обработку (например, путем сжатия) исходного видеоизображения для уменьшения объема данных для представления видеоизображения для более эффективного хранения и/или передачи. Декодирование видео выполняется на стороне назначения и обычно включает в себя обратную обработку относительно кодера для восстановления видеоизображения. «Кодирование» видеоизображения в вариантах осуществления следует понимать как «кодирование» или «декодирование» видеопоследовательности. Комбинация части кодирования и части декодирования также называется CODEC (кодирование и декодирование).[00156] Video encoding generally refers to the processing of a sequence of images making up a video or video sequence. In the field of video encoding, the terms "image", "frame" and "image" can be used interchangeably. Video coding used in this specification includes video encoding and video decoding. Video encoding is performed at the source side and typically involves processing (eg, by compressing) the source video image to reduce the amount of data to represent the video image for more efficient storage and/or transmission. Video decoding is performed on the destination side and typically involves reverse processing 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 CODEC (encoding and decoding).
[00157] Видеопоследовательность включает в себя серию изображений (image), изображение дополнительно разбивается на фрагменты (slice), а фрагмент дополнительно разбивается на блоки (block). Кодирование видео выполняется блочно. В некоторых новых стандартах кодирования видео понятие «блок» дополнительно расширено. Например, макроблок (macroblock, MB) введен в стандарт H.264. Макроблок дополнительно может быть разделен на множество блоков прогнозирования (раздел), которые могут использоваться для кодирования с прогнозированием. В стандарте высокоэффективного кодирования видео (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 концептуально являются блоками (или блоками изображения).[00157] A video sequence includes a series of images (image), the image is further divided into fragments (slice), and the fragment is further divided into blocks (block). Video encoding is done in blocks. Some new video encoding standards have further expanded the concept of "block". For example, macroblock (MB) is included in the H.264 standard. The macroblock may further be divided into a plurality of prediction blocks (partition), which may be used for predictive coding. The high efficiency video coding (HEVC) standard has core concepts such as the coding unit (CU), prediction unit (PU), and transform unit (TU). . A set of block units is obtained through functional partitioning and 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 form a quadtree structure. CU is the basic unit for dividing and encoding the encoded image. PU and TU also have similar tree structures. The PU may correspond to a prediction block and is a basic block for prediction coding. The CU is further divided into multiple PUs based on the partitioning pattern. The TU may correspond to a transformation block and is the basic block for transforming the prediction residual. However, in essence, CUs, PUs and TUs are all conceptually blocks (or image units).
[00158] Например, в HEVC CTU разделяется на множество CU с использованием структуры квадродерева, представленной как дерево кодирования. Решение о том, кодировать ли область изображения посредством межкадрового (временного) или внутрикадрового (пространственного) прогнозирования, принимается на уровне CU. Каждый CU может быть дополнительно разделен на один, два или четыре PU на основе шаблона разделения PU. Внутри одного PU применяется один и тот же процесс прогнозирования, и соответствующая информация передается в декодер на основе PU. После получения остаточного блока путем применения процесса прогнозирования на основе шаблона разделения PU, CU может быть разделен на единицы преобразования (transform unit, TU) на основе другой структуры квадродерева, аналогичной дереву кодирования, используемому для CU. В недавних разработках технологий сжатия видео для разделения блока кодирования используется кадр разделения дерева квадрантов и двоичного дерева (quad-tree and binary tree, QTBT). В блочной структуре QTBT CU может быть квадратным или прямоугольным.[00158] For example, in HEVC, a CTU is divided into multiple CUs using a quadtree structure, represented as an encoding tree. The decision of whether to encode an image region 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 pattern. Within a single PU, the same prediction process is applied and the corresponding information is passed to the PU-based decoder. After obtaining the residual block by applying a prediction process based on the PU partitioning pattern, 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 quad-tree and binary tree (QTBT) split frame to split the encoding block. In a block structure, the QTBT CU can be square or rectangular.
[00159] В этой спецификации для простоты описания и понимания блок изображения, который должен быть закодирован в текущем кодированном изображении, может называться текущим блоком изображения. Например, при кодировании текущий блок изображения является блоком, кодируемым в данный момент, а при декодировании текущий блок изображения является блоком, декодируемым в данный момент. Блок декодированного изображения в опорном изображении, используемый для прогнозирования текущего блока изображения, называется опорным блоком. Другими словами, опорный блок - это блок, который обеспечивает опорный сигнал для текущего блока изображения, а опорный сигнал представляет значение пикселя в блоке изображения. Блок, который обеспечивает сигнал прогнозирования для текущего блока изображения в опорном изображении, может называться блоком прогнозирования, и сигнал прогнозирования представляет значение пикселя, значение выборки или сигнал выборки в блоке прогнозирования. Например, после прохождения множества опорных блоков находится оптимальный опорный блок, и оптимальный опорный блок обеспечивает прогнозирование для текущего блока изображения, и этот блок упоминается как блок прогнозирования.[00159] In this specification, for ease of description and understanding, the image block to be encoded in the current encoded image may be referred to as the current image block. For example, in encoding, the current image block is the block currently being encoded, and in decoding, the current image block is the block currently being decoded. The decoded image block in the reference picture used to predict the current image block is called a reference block. In other words, a reference block is a block that provides a reference signal for the current image block, and the reference signal represents the pixel value in the image block. A block that provides a prediction signal for a current image block in a reference picture may be called a prediction block, and the prediction signal represents a pixel value, a sample value, or a sample signal in the prediction block. For example, after passing through a plurality of reference blocks, an optimal reference block is found, and the optimal reference block provides prediction for the current image block, and this block is referred to as a prediction block.
[00160] В случае кодирования видео без потерь исходные видеоизображения могут быть восстановлены, что означает, что восстановленные видеоизображения имеют то же качество, что и исходные видеоизображения (при условии, что во время хранения или передачи не происходит потери передачи или других потерь данных). В случае кодирования видео с потерями выполняется дальнейшее сжатие, например, посредством квантования, чтобы уменьшить объем данных, необходимых для представления видеоизображений, и видеоизображения не могут быть полностью восстановлены на стороне декодера, что означает качество восстановленных видеоизображений ниже или хуже, чем у исходных видеоизображений.[00160] In the case of lossless video encoding, the original video images can be restored, which means that the reconstructed video images are of 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, further compression is performed, such as through quantization, to reduce the amount of data required to represent the video images, and the video images cannot be fully reconstructed at the decoder side, which means the quality of the reconstructed video images is lower or worse than that of the original video images.
[00161] Несколько стандартов кодирования видео H.261 предназначены для «гибридных видеокодеков с потерями» (в частности, пространственное и временное прогнозирование в области выборки объединяется с кодированием с двумерным преобразованием для применения квантования в области преобразования). Каждое изображение видеопоследовательности обычно разделяется на набор неперекрывающихся блоков, и кодирование обычно выполняется на уровне блоков. Другими словами, на стороне кодера видео обычно обрабатывается, то есть кодируется на уровне блока (видеоблока). Например, блок прогнозирования формируется посредством пространственного (внутрикадрового) прогнозирования и временного (межкадрового) прогнозирования, блок прогнозирования вычитается из текущего блока изображения (блок, который в настоящее время обрабатывается или должен быть обработан), чтобы получить остаточный блок, а остаточный блок преобразуется в области преобразования и квантуется, чтобы уменьшить количество данных, которые должны быть переданы (сжаты). На стороне декодера часть обратной обработки относительно кодера применяется к кодированному или сжатому блоку, чтобы восстановить текущий блок изображения для представления. Кроме того, кодер дублирует цикл обработки декодера, так что кодер и декодер формируют одинаковое прогнозирование (например, внутрикадровое прогнозирование и межкадровое прогнозирование) и/или реконструкцию для обработки, то есть для кодирования последующих блоков.[00161] Several H.261 video coding standards are designed for "hybrid lossy video codecs" (specifically, spatial and temporal sampling domain 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. In other words, on the encoder side, the video is usually processed, that is, encoded at the block (video block) level. For example, a prediction block is formed by spatial (intra-frame) prediction and temporal (inter-frame) prediction, the prediction block is subtracted from the current image block (the block that is currently being processed or about to be processed) to obtain a residual block, and the residual block is converted into regions transforms and is quantized to reduce the amount of data that must be transferred (compressed). On the decoder side, some reverse processing relative to the encoder is applied to the encoded or compressed block to recover the current image block for presentation. In addition, the encoder duplicates the decoder's processing loop so that the encoder and decoder generate the same prediction (eg, intra-frame prediction and inter-frame prediction) and/or reconstruction for processing, ie, encoding subsequent blocks.
[00162] Ниже описывается архитектура системы, применимая к вариантам осуществления настоящего изобретения. Фиг. 1 является схематической блок-схемой примера системы 10 кодирования и декодирования видео, применимой к вариантам осуществления настоящей заявки. Как показано на фиг. 1, система 10 кодирования и декодирования видео может включать в себя устройство-источник 12 и целевое устройство 14. Устройство-источник 12 формирует кодированные видеоданные, и поэтому устройство-источник 12 может называться устройством кодирования видео. Целевое устройство 14 может декодировать кодированные видеоданные, сформированные устройством-источником 12, и поэтому целевое устройство 14 может называться устройством декодирования видео. В различных вариантах реализации устройство-источник 12, целевое устройство 14 или как устройство-источник 12, так и целевое устройство 14 могут включать в себя один или более процессоров и память, связанную с одним или более процессорами. Память может включать, помимо прочего, постоянное запоминающее устройство (read-only memory, ROM), оперативная память (random access memory, RAM), стираемое программируемое постоянное запоминающее устройство (erasable programmable read-only memory, EPROM), флэш-память или любой другой носитель, который может быть выполнен с возможностью хранения необходимого программного кода в форме инструкции или структуры данных и к которому может быть осуществлен доступ с компьютера, как описано в данном описании. Устройство-источник 12 и целевое устройство 14 могут включать в себя различные устройства, включая настольный компьютер, мобильное вычислительное устройство, портативный компьютер (например, ноутбук), планшетный компьютер, телеприставку, телефонную трубку, такую как так называемый «смарт» телефон, телевизор, камеру, устройство отображения, цифровой медиаплеер, игровую приставку, установленный на транспортном средстве компьютер, устройство беспроводной связи и т.п.[00162] The following describes the system architecture applicable to embodiments of the present invention. Fig. 1 is a schematic block diagram of an example video encoding and
[00163] Хотя фиг. 1 изображает устройство-источник 12 и целевое устройство 14 как отдельные устройства, вариант осуществления устройства может альтернативно включать в себя как устройство-источник 12, так и целевое устройство 14 или функции как устройства-источника 12, так и целевого устройства 14, то есть устройство-источник 12 или соответствующая функция и целевое устройство 14 или соответствующая функция. В таком варианте осуществления устройство-источник 12 или соответствующие функциональные возможности и целевое устройство 14 или соответствующие функциональные возможности могут быть реализованы с использованием одного и того же аппаратного и/или программного обеспечения, отдельного аппаратного и/или программного обеспечения или любой их комбинации. [00163] Although FIG. 1 depicts the source device 12 and the target device 14 as separate devices, an embodiment of the device may alternatively include both the source device 12 and the target device 14, or the functionality of both the source device 12 and the target device 14, that is, the device - source 12 or corresponding function and target device 14 or corresponding function. In such an embodiment, source device 12 or related functionality and target device 14 or related functionality may be implemented using the same hardware and/or software, separate hardware and/or software, or any combination thereof.
[00164] Коммуникационное соединение между устройством-источником 12 и целевым устройством 14 может быть реализовано через канал 13 связи. Целевое устройство 14 может принимать закодированные видеоданные от устройства-источника 12 через канал 13 связи. Канал 13 связи может включать в себя один или более носителей или устройств, способных перемещать закодированные видеоданные от устройства-источника 12 к целевому устройству 14. В примере канал 13 связи может включать в себя одну или более сред передачи данных, которые позволяют устройству-источнику 12 напрямую передавать закодированные видеоданные на целевое устройство 14 в реальном времени. В этом примере устройство-источник 12 может модулировать кодированные видеоданные в соответствии со стандартом связи (например, протоколом беспроводной связи) и может передавать модулированные видеоданные на целевое устройство 14. Одна или более сред связи могут включать в себя среду беспроводной связи и/или проводную среду связи, например, радиочастотный (radio frequency, RF) спектр или один или более физических кабелей передачи. Одна или более коммуникационных сред могут быть частью сети на основе пакетов, а сеть на основе пакетов представляет собой, например, локальную сеть, глобальную сеть или глобальную сеть (например, Интернет). Одна или более коммуникационных сред могут включать в себя маршрутизатор, коммутатор, базовую станцию или другое устройство, которое обеспечивает связь от устройства-источника 12 к целевому устройству 14.[00164] The communication connection between the source device 12 and the target device 14 may be implemented through a
[00165] Устройство-источник 12 включает в себя кодер 20. Необязательно, устройство-источник 12 может дополнительно включать в себя источник 16 изображения, препроцессор 18 изображения и интерфейс 22 связи. В конкретной форме реализации кодер 20, источник 16 изображения, препроцессор 18 изображения и интерфейс 22 связи могут быть аппаратными компонентами в устройстве-источнике 12 или могут быть программами программного обеспечения в устройстве-источнике 12. Описания обеспечиваются отдельно следующим образом: [00165] Source device 12 includes an encoder 20. Optionally, source device 12 may further include an
[00166] Источник 16 изображения может включать в себя или быть устройством захвата изображения любого типа, выполненным, например, с возможностью захвата реального изображения; и/или устройство любого типа для создания изображения или комментария (для кодирования содержимого экрана, некоторый текст на экране также рассматривается как часть изображения или изображения, подлежащего кодированию), например, компьютерный графический процессор, выполненный с возможностью создания компьютерной анимационной картинки; или устройство любого типа, выполненное с возможностью получения и/или обеспечения реального изображения или компьютерного анимационного изображения (например, содержимого экрана или изображения виртуальной реальности (virtual reality , VR); и/или любое их сочетание (например, изображение дополненной реальности (augmented reality, AR)). Источник 16 изображения может быть камерой, выполненной с возможностью захвата изображения, или памятью, выполненной с возможностью хранения изображения. Источник 16 изображения может дополнительно включать в себя интерфейс любого типа (внутренний или внешний), через который ранее захваченное или сформированное изображение сохраняется и/или изображение получается или принимается. Когда источником 16 изображения является камера, источником 16 изображения может быть, например, локальная камера или интегрированная камера, встроенная в устройство- источник. Когда источник 16 изображения является памятью, источник 16 изображения может быть локальной памятью или, например, интегрированной памятью, интегрированной в устройство-источник. Когда источник 16 изображения включает в себя интерфейс, этот интерфейс может быть, например, внешним интерфейсом для приема изображения от внешнего видеоисточника. Внешний видеоисточник представляет собой, например, внешнее устройство захвата изображения, такое как камера, внешняя память или внешнее устройство создания изображения. Внешнее устройство создания изображения представляет собой, например, внешний компьютерный графический процессор, компьютер или сервер. Интерфейс может быть интерфейсом любого типа, например проводным или беспроводным интерфейсом или оптическим интерфейсом, в соответствии с любым частным или стандартизованным протоколом интерфейса.[00166] The
[00167] Изображение можно рассматривать как двумерный массив или матрицу элементов пикселей (picture element, pixel). Элемент пикселя в массиве также может называться выборкой. Количество выборок в горизонтальном и вертикальном направлениях (или осях) массива или изображения определяет размер и/или разрешение изображения. Для представления цвета обычно используются три цветовых компонента. Более конкретнно, изображение может быть представлено в виде трех массивов выборок или может включать их. Например, в формате RBG или цветовом пространстве изображение включает в себя соответствующие массивы выборок красного, зеленого и синего цветов. Однако при кодировании видео каждый пиксель обычно представлен в формате яркость/цветность или цветовом пространстве. Например, изображение в формате YUV включает в себя компонент яркости, обозначенный Y (иногда обозначаемый альтернативно L), и два компонента цветности, обозначенные U и V. Компонент Y яркости (яркость, luma) представляет яркость или интенсивность уровня серого (например, оба одинаковы в изображении с оттенками серого), и два компонента цветности (цветность, chroma) U и V представляют собой компоненты цветности или информации о цвете. Соответственно, изображение в формате YUV включает в себя массив выборок яркости значений выборок яркости (Y) и два массива выборок цветности значений цветности (U и V). Изображение в формате RGB может быть преобразовано или конвертировано в формат YUV и наоборот. Этот процесс также называется преобразованием цвета или конвертацией. Если изображение является монохромным, оно может включать в себя только массив выборок яркости. В этом варианте осуществления настоящей заявки изображение, переданное источником 16 изображения в процессор изображения, также может называться данными 17 необработанного изображения. [00167] An image can be thought of as a two-dimensional array or matrix of pixel elements (picture element, pixel). A pixel element in an array can also be called a sample. The number of samples in the horizontal and vertical directions (or axes) of an array or image determines the size and/or resolution of the image. Three color components are commonly used to represent color. More specifically, the 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 pixel is typically represented in a luminance/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. A luma Y component represents the brightness or intensity of the gray level (e.g., both are the same in a grayscale image), and the two chroma components U and V represent the chroma components or color information. Accordingly, a YUV image includes an array of luminance samples of luminance (Y) sample values and two chroma sample arrays of chroma (U and V) values. An RGB image can be converted or converted to YUV format and vice versa. This process is also called color conversion or conversion. 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
[00168] Препроцессор 18 изображения выполнен с возможностью приема данных 17 необработанного изображения и осуществления предварительной обработки данных 17 необработанного изображения для получения предварительно обработанного изображения 19 или данных 19 предварительно обработанного изображения. Например, предварительная обработка, осуществяемая препроцессором 18 изображения, может включать в себя обрезку, конвертирование цветового формата (например, из формата RGB в формат YUV), цветокоррекцию или шумоподавление.[00168] The image preprocessor 18 is configured to receive
[00169] Кодер 20 (также называемый видеокодером 20) выполнен с возможностью приема данных 19 предварительно обработанного изображения и обработки данных 19 предварительно обработанного изображения с использованием соответствующего режима прогнозирования (такого как режим прогнозирования в каждом варианте осуществления данной спецификации), для обеспечения данных 21 закодированного изображения (структурные детали кодера 20 дополнительно описаны ниже на основе фиг. 2, фиг. 4 или фиг. 5). В некоторых вариантах осуществления кодер 20 может быть выполнен с возможностью осуществления каждого варианта осуществления, описанного ниже, для реализации на стороне кодера способа прогнозирования изображения, описанного в настоящей заявке.[00169] Encoder 20 (also referred to as video encoder 20) is configured to receive preprocessed
[00170] Интерфейс 22 связи может быть выполнен с возможностью приема данных 21 закодированного изображения и передачи данных 21 закодированного изображения на целевое устройство 14 или любое другое устройство (например, память) через канал 13 связи для хранения или прямого восстановления. Другое устройство может быть любым устройством, используемым для декодирования или хранения. Интерфейс 22 связи может быть, например, выполнен с возможностью инкапсуляции данных 21 закодированного изображения в соответствующий формат, например, пакет данных для передачи по каналу 13 связи.[00170] Communication interface 22 may be configured to receive encoded
[00171] Целевое устройство 14 включает в себя декодер 30. Необязательно, целевое устройство 14 может дополнительно включать в себя интерфейс 28 связи, постпроцессор 32 изображения и устройство 34 отображения. Описания обеспечиваются отдельно следующим образом:[00171] Target device 14 includes a decoder 30. Optionally, target device 14 may further include a communications interface 28, an image post processor 32, and a
[00172] Интерфейс 28 связи может быть выполнен с возможностью приема данных 21 закодированного изображения от устройства-источника 12 или любого другого источника. Любой другой источник - это, например, запоминающее устройство. Запоминающее устройство представляет собой, например, устройство хранения данных закодированного изображения. Интерфейс 28 связи может быть выполнен с возможностью передачи или приема данных 21 закодированного изображения через канал 13 связи между устройством-источником 12 и целевым устройством 14 или через сеть любого типа. Канал 13 связи представляет собой, например, прямое проводное или беспроводное соединение. Любой тип сети представляет собой, например, проводную или беспроводную сеть или любую их комбинацию, или любой тип частной или общедоступной сети, или любую их комбинацию. Интерфейс 28 связи может быть, например, выполнен с возможностью декапсуляции пакета данных, переданного через интерфейс 22 связи, для получения данных 21 закодированного изображения.[00172] Communication interface 28 may be configured to receive encoded
[00173] И интерфейс 28 связи, и интерфейс 22 связи могут быть выполнены как интерфейсы однонаправленной связи или интерфейсы двунаправленной связи, и могут быть выполнены с возможностью, например, отправки и приема сообщений для установления соединения, а также подтверждения и обмена любой другой информацией, относящейся к канал связи и/или передача данных, такая как передача данных закодированного изображения.[00173] Both communication interface 28 and communication interface 22 may be configured as unidirectional communication interfaces or bidirectional communication interfaces, and may be configured to, for example, send and receive messages to establish a connection, as well as confirm and exchange any other information, relating to a communication channel and/or data transmission, such as the transmission of encoded image data.
[00174] Декодер 30 (также называемый декодером 30) выполнен с возможностью приема данных 21 закодированного изображения и обеспечения данных 31 декодированного изображения или декодированного изображения 31 (структурные детали декодера 30 дополнительно описаны ниже на основе фиг. 3, фиг. 4 или фиг 5). В некоторых вариантах осуществления декодер 30 может быть выполнен с возможностью осуществления каждого варианта осуществления, описанного ниже, для реализации на стороне декодера способа прогнозирования изображения, описанного в настоящей заявке.[00174] The decoder 30 (also called decoder 30) is configured to receive encoded
[00175] Постпроцессор 32 изображения выполнен с возможностью постобработки данных 31 декодированного изображения (также называемых данными восстановленного изображения) для получения данных 33 постобработанного изображения. Постобработка, выполняемая постпроцессором 32 изображения, может включать в себя преобразование формата цвета (например, из формата YUV в формат RGB), цветокоррекцию, обрезку, повторную выборку или любую другую обработку. Постпроцессор 32 изображения может дополнительно быть выполнен с возможностью передачи данных 33 постобработанного изображения на устройство 34 отображения.[00175] The image post-processor 32 is configured to post-process the decoded image data 31 (also referred to as reconstructed image data) to obtain
[00176] Устройство 34 отображения выполнено с возможностью приема данных 33 постобработанного изображения, чтобы отображать изображение, например, пользователю или зрителю. Устройство 34 отображения может быть или включать в себя любой тип дисплея для представления восстановленного изображения, например, интегрированный или внешний дисплей или монитор. Например, дисплей может включать в себя жидкокристаллический дисплей (жидкокристаллический дисплей, ЖК- дисплей), дисплей с органическим светоизлучающим диодом (органический светоизлучающий диод, OLED), плазменный дисплей, проектор, микро-светодиодный дисплей, жидкокристаллический дисплей на кремний (liquid crystal on silicon, LCoS), цифровой световой процессор (digital light processor, DLP) или любой другой дисплей. [00176] The
[00177] Хотя фиг. 1 изображает устройство-источник 12 и целевое устройство 14 как отдельные устройства, вариант осуществления устройства может альтернативно включать в себя как устройство-источник 12, так и целевое устройство 14 или функциональные возможности как устройства-источника 12, так и целевого устройства 14, то есть устройство-источник 12 или соответствующие функциональные возможности и целевое устройство 14 или соответствующие функциональные возможности. В таком варианте осуществления устройство-источник 12 или соответствующие функциональные возможности и целевое устройство 14 или соответствующие функциональные возможности могут быть реализованы с использованием одного и того же аппаратного и/или программного обеспечения, отдельного аппаратного и/или программного обеспечения или любой их комбинации. [00177] Although FIG. 1 depicts source device 12 and target device 14 as separate devices, an embodiment of the device may alternatively include both source device 12 and target device 14, or the functionality of both source device 12 and target device 14, i.e. a source device 12 or related functionality and a target device 14 or related functionality. In such an embodiment, source device 12 or related functionality and target device 14 or related functionality may be implemented using the same hardware and/or software, separate hardware and/or software, or any combination thereof.
[00178] Как будет очевидно для специалиста в данной области на основании описаний, существования и (точного) разделения функциональных возможностей различных блоков или функций устройства-источника 12 и/или целевого устройства 14, показанных на фиг. 1 может отличаться в зависимости от реального устройства и приложения. Устройство-источник 12 и целевое устройство 14 могут включать в себя любое из широкого диапазона устройств, включая любой тип портативного или стационарного устройства, например, ноутбук или портативный компьютер, мобильный телефон, смартфон, планшет или планшетный компьютер, видеокамера, настольный компьютер, телевизионная приставка, телевизор, камера, устройство, установленное на транспортном средстве, устройство отображения, цифровой медиаплеер, игровая консоль, устройство потоковой передачи видео (например, служба контента сервер или сервер доставки контента), устройство приемника вещания или устройство передатчика вещания и может использовать или не использовать операционную систему любого типа.[00178] As will be apparent to one skilled in the art based on the descriptions, the existence and (precise) separation of functionality of the various blocks or functions of source device 12 and/or target device 14 shown in FIG. 1 may vary depending on actual device and application. Source device 12 and target device 14 may include any of a wide range 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, 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), broadcast receiver device, or broadcast transmitter device and may or may not use any type of operating system.
[00179] Кодер 20 и декодер 30 каждый может быть реализован в виде любой из различных подходящих схем, например, одного или более микропроцессоров, процессоров цифровых сигналов (digital signal processor, DSP), специализированных интегральных схем (application-specific integrated circuit, ASIC), программируемые пользователем вентильные матрицы (field-programmable gate array, FPGA), дискретная логика, оборудование или любые их комбинации. Если технологии реализованы частично с использованием программного обеспечения, устройство может хранить программную инструкцию на подходящем энергонезависимом считываемом компьютером носителе данных и может осуществлять инструкцию, используя оборудование, такое как один или более процессоров, для выполнения технологий данной спецификации. Любой из вышеуказанного контента (включая оборудование, программное обеспечение, комбинацию аппаратного и программного обеспечения и т.п.) может рассматриваться как один или более процессоров.[00179] Encoder 20 and decoder 30 may each be implemented as any of various suitable circuits, such as one or more microprocessors, digital signal processors (DSPs), application-specific integrated circuits (ASICs). , field-programmable gate arrays (FPGAs), discrete logic, hardware, or any combination thereof. If the technologies are implemented in part using software, the device may store the software instruction on a suitable non-volatile computer-readable storage medium and may implement the instruction using hardware, such as one or more processors, to implement the technologies of this specification. Any of the foregoing content (including hardware, software, combinations of hardware and software, etc.) may be considered one or more processors.
[00180] В некоторых случаях система 10 кодирования и декодирования видео, показанная на фиг. 1 является просто примером, и технологии настоящей заявки могут быть применимы к настройкам кодирования видео (например, кодирование видео или декодирование видео), которые не обязательно включают в себя какой-либо обмен данными между устройством кодирования и устройством декодирования. В другом примере данные могут быть извлечены из локальной памяти, переданы в потоковом режиме по сети и т.п. Устройство кодирования видео может кодировать данные и сохранять данные в памяти, и/или устройство декодирования видео может извлекать данные из памяти и декодировать данные. В некоторых примерах кодирование и декодирование выполняется устройствами, которые не обмениваются данными друг с другом, а просто кодируют данные в память и/или извлекают данные из памяти и декодируют данные.[00180] In some cases, the video encoding and
[00181] Фиг. 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 также может называться гибридным видеокодером или видеокодером на основе гибридного видеокодека.[00181] FIG. 2 is a schematic/conceptual block diagram of an example encoder 20 configured to implement an embodiment of the present invention. In the example in FIG. 2, the encoder 20 includes a remainder calculation unit 204, a
[00182] Например, блок 204 вычисления остатка, блок 206 обработки преобразования, блок 208 квантования, блок 260 обработки прогнозирования и блок 270 энтропийного кодирования образуют прямой путь сигнала кодера 20, тогда как, например, блок 210 обратного квантования, блок 212 обработки обратного преобразования, блок 214 восстановления, буфер 216, контурный фильтр 220, буфер 230 декодированного изображения (decoded picture buffer, DPB) и блок 260 обработки прогнозирования образуют обратный путь прохождения сигнала кодера. Обратный путь сигнала кодера соответствует пути сигнала декодера (см. декодер 30 на фиг. 3).[00182] For example, the residual calculation block 204, the
[00183] Кодер 20 принимает, например, через вход 202 изображение 201 или блок 203 изображения для изображения 201, например, изображение в последовательности изображений, образующих видео или видеопоследовательность. Блок 203 изображения может также называться текущим блоком изображения или блоком изображения, который должен быть закодирован, а изображение 201 может упоминаться как текущее изображение или изображение, которое должно быть кодировано (в частности, при кодировании видео, отличать текущее изображение от других изображений, например, ранее кодированных и/или декодированных изображений в одной и той же видеопоследовательности, а именно видеопоследовательности, которая также включает в себя текущее изображение).[00183] 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 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 in video encoding, distinguishing the current image from other images, e.g. previously encoded and/or decoded images in the same video sequence, namely a video sequence that also includes the current image).
[00184] Вариант осуществления кодера 20 может включать в себя блок разделения (не показан на фиг. 2), выполненный с возможностью разделения изображения 201 на множество блоков, таких как блок 203 изображения. Изображение 201 обычно разделяется на множество неперекрывающихся блоков. Блок разделения может быть выполнен с возможностью использования одного и того же размера блока для всех изображений в видеопоследовательности и соответствующей сетки, определяющей размер блока, или изменения размера блока между изображениями, или подмножествами, или группами изображений, и разделения каждого изображения на соответствующие блоки.[00184] An embodiment of encoder 20 may include a divider (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.
[00185] В одном примере блок 260 обработки прогнозирования кодера 20 может быть выполнен с возможностью осуществления любой комбинации технологий разделения, описанных выше.[00185] In one example, the
[00186] Подобно изображению 201, блок 203 изображения также может рассматриваться как двумерный массив или матрица выборок со значениями выборок, хотя размер блока 203 изображения меньше, чем размер изображения 201. Другими словами, блок 203 изображения может включать в себя, например, один массив выборок (например, массив яркости в случае монохромного изображения 201), три массива выборок (например, один массив яркости и два массива цветности в случай цветного изображения) или любое другое количество и/или тип массивов в зависимости от применяемого цветового формата. Количество выборок в горизонтальном и вертикальном направлениях (или осях) блока 203 изображения определяет размер блока 203 изображения.[00186] Like image 201, image block 203 can also be thought of 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 can include, for example, one array 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 axes) of the image block 203 determines the size of the image block 203.
[00187] Кодер 20, показанный на фиг. 2, выполнен с возможностью кодирования изображения 201 блок за блоком, например, для осуществления кодирования и прогнозирования для каждого блока 203 изображения.[00187] The encoder 20 shown in FIG. 2 is configured to encode the image 201 block by block, for example, to perform encoding and prediction for each image block 203.
[00188] Блок 204 вычисления остатка выполнен с возможностью вычисления остаточного блока 205 на основе блока 203 изображения и блока 265 прогнозирования (детали о блоке 265 прогнозирования дополнительно обеспечены ниже), например, путем вычитания значений выборки блока 265 прогнозирования из значений выборки блока 203 изображения выборка за выборкой (пиксель за пикселем), чтобы получить остаточного блок 205 в области выборки.[00188] The residual calculation block 204 is configured to calculate the residual block 205 based on the image block 203 and the prediction block 265 (details about the prediction block 265 are further provided below), for example, by subtracting the sample values of the prediction block 265 from the sample values of the image sample block 203 by sample (pixel by pixel) to obtain a residual block 205 in the sample area.
[00189] Блок 206 обработки преобразования выполнен с возможностью применения преобразования, например дискретного косинусного преобразования (discrete cosine transform, DCT) или дискретного синусоидального преобразования (discrete sine transform, DST), к значениям выборки остаточного блока 205 для получения коэффициентов 207 преобразования в области преобразования. Коэффициент 207 преобразования также может называться остаточным коэффициентом преобразования и представляет остаточного блок 205 в области преобразования.[00189] The
[00190] Блок 206 обработки преобразования может быть выполнен с возможностью применения целочисленных аппроксимаций DCT/DST, таких как преобразования, указанные в HEVC/H.265. По сравнению с ортогональным преобразованием DCT, такие целочисленные аппроксимации обычно масштабируются в несколько раз. Чтобы сохранить норму остаточного блока, который обрабатывается с использованием прямого и обратного преобразований, дополнительный масштабный коэффициент применяется как часть процесса преобразования. Масштабный коэффициент обычно выбирается на основе некоторых ограничений, например, масштабный коэффициент является степенью двойки для операции сдвига, битовой глубиной коэффициента преобразования и оптимальное соотношение между точностью и затратами на реализацию. Например, конкретный масштабный коэффициент задается для обратного преобразования, например, блоком 212 обработки обратного преобразования на стороне декодера 30 (и соответствующее обратное преобразование, например, блоком 212 обработки обратного преобразования на стороне кодера 20), и, соответственно, соответствующий масштабный коэффициент может быть указан для прямого преобразования блоком 206 обработки преобразования на стороне кодера 20.[00190]
[00191] Блок 208 квантования выполнен с возможностью квантования коэффициентов 207 преобразования для получения квантованных коэффициентов 209 преобразования, например, путем применения скалярного квантования или векторного квантования. Квантованный коэффициент 209 преобразования также может упоминаться как квантованный остаточный коэффициент 209. Процесс квантования может уменьшить битовую глубину, относящуюся к некоторым или всем коэффициентам 207 преобразования. Например, n- битный коэффициент преобразования может быть округлен до m- битного коэффициента преобразования во время квантования, где n больше m. Степень квантования может быть модифицирована посредством регулирования параметра квантования (quantization parameter, QP). Например, для скалярного квантования могут применяться разные масштабы для достижения более тонкого или более грубого квантования. Меньший шаг квантования соответствует более тонкому квантованию, а больший шаг квантования соответствует более грубому квантованию. Соответствующий шаг квантования может быть указан параметром квантования (quantization parameter, QP). Например, параметр квантования может быть индексом для заданного набора подходящих шагов квантования. Например, меньший параметр квантования может соответствовать более тонкому квантованию (меньшему шагу квантования), а больший параметр квантования может соответствовать более грубому квантованию (большему шагу квантования), или наоборот. Квантование может включать в себя деление на этап квантования и соответствующее квантование или обратное квантование, например, выполняемое блоком 210 обратного квантования, или может включать в себя умножение на этап квантования. Варианты осуществления согласно некоторым стандартам, таким как HEVC, могут использовать параметр квантования для определения шага квантования. Обычно этап квантования может быть вычислен на основе параметра квантования с использованием аппроксимации с фиксированной точкой уравнения, включающего деление. Дополнительные масштабные коэффициенты могут быть введены для квантования и деквантования, чтобы восстановить норму остаточного блока, где норма остаточного блока может быть изменена из-за масштаба, используемого в приближении фиксированной точки уравнения для шага квантования и параметра квантования. В примерной реализации масштаб обратного преобразования может быть объединен с масштабом деквантования. В качестве альтернативы может использоваться настроенная таблица квантования и передаваться сигнал от кодера к декодеру, например, в потоке битов. Квантование - это операция с потерями, где больший шаг квантования указывает на большие потери.[00191] The
[00192] Блок 210 обратного квантования выполнен с возможностью применения обратного квантования блока 208 квантования к квантованному коэффициенту, чтобы получить деквантованный коэффициент 211, например, применять на основе или с использованием того же шага квантования, что и блок 208 квантования, обратный схемы квантования, применяемой блоком 208 квантования. Деквантованный коэффициент 211 также может называться деквантованным остаточным коэффициентом 211 и соответствовать коэффициенту 207 преобразования, хотя обычно он отличается от коэффициента преобразования из-за потерь, вызванных квантованием.[00192] The
[00193] Блок 212 обработки обратного преобразования выполнен с возможностью применения обратного преобразования преобразования, применяемого блоком 206 обработки преобразования, например, обратного дискретного косинусного преобразования (discrete cosine transform , DCT) или обратного дискретного синусоидального преобразования (discrete sine transform , DST), чтобы получить блок 213 обратного преобразования в области выборки. Блок 213 обратного преобразования также может называться блоком 213 деквантования обратного преобразования или остаточным блоком 213 обратного преобразования.[00193] The inverse
[00194] Блок 214 восстановления (например, сумматор 214) выполнен с возможностью добавления блока 213 обратного преобразования (а именно, восстановленного остаточного блока 213) к блоку 265 прогнозирования, например, путем добавления значений выборки восстановленного остаточного блока 213 и значения выборки блока 265 прогнозирования, чтобы получить восстановленный блок 215 в области выборки.[00194] The reconstruction block 214 (e.g., adder 214) is configured to add an inverse transform block 213 (namely, the reconstructed residual block 213) to the prediction block 265, for example, by adding the sample values of the reconstructed residual block 213 and the sample values of the prediction block 265 to obtain the reconstructed block 215 in the sample region.
[00195] Необязательно, блок 216 буфера («буфер» 216 для краткости), например, строковый буфер 216, выполнен с возможностью буферизации или хранения восстановленного блока 215 и соответствующего значения выборки, например, для внутрикадрового прогнозирования. В другом варианте осуществления кодер может быть выполнен с возможностью использования нефильтрованного восстановленного блока и/или соответствующего значения выборки, который/которые хранится/хранятся в блоке 216 буфера, для осуществления любого типа оценки и/или прогнозирования, например, внутрикадрового прогнозирования.[00195] Optionally, a buffer block 216 ("buffer" 216 for short), e.g., line buffer 216, is configured to buffer or store the reconstructed block 215 and the corresponding sample value, for example, for intra-frame prediction. In another embodiment, the encoder may be configured to use the unfiltered reconstructed block and/or the corresponding sample value that is/are stored in buffer block 216 to perform any type of estimation and/or prediction, such as intra-frame prediction.
[00196] Например, в варианте осуществления кодер 20 может быть выполнен так, чтобы блок 216 буфера был выполнен с возможностью хранения восстановленного блока 215, который не только использовался для внутрикадрового прогнозирования 254, но также использовался для блока 220 контурного фильтра (не показан на фиг. 2), и/или так, что, например, блок 216 буфера и буфер 230 декодированного изображения образуют один буфер. В другом варианте осуществления фильтрованный блок 221 и/или блок или выборка (не показаны на фиг. 2) из буфера 230 декодированных изображений используется/используются в качестве входа или основы для внутрикадрового прогнозирования 254.[00196] For example, in an embodiment, encoder 20 may be configured such that buffer block 216 is configured to store reconstructed block 215 that is not only used for
[00197] Блок 220 контурного фильтра («контурный фильтр» 220 для краткости) выполнен с возможностью фильтрации восстановленного блока 215 для получения отфильтрованного блока 221, сглаживания перехода пикселей или улучшения качества видео. Блок 220 контурного фильтра предназначен для представления одного или более контурных фильтров, таких как фильтр удаления блочности, фильтр с адаптивным смещением к выборке (sample-adaptive offset, SAO) или другой фильтр, например, двусторонний фильтр, адаптивный контурный фильтр. (adaptive loop filter, ALF), фильтр повышения резкости или сглаживания или совместный фильтр. Хотя блок 220 контурного фильтра показан как входной контурный фильтр на фиг. 2, в другой реализации блок 220 контурного фильтра может быть реализован как пост-контурный фильтр. Отфильтрованный блок 221 также может называться отфильтрованным восстановленным блоком 221. Буфер 230 декодированных изображений может хранить восстановленный кодированный блок после того, как блок 220 контурного фильтра осуществит операцию фильтрации на восстановленном кодированном блоке.[00197] A contour filter block 220 (“contour filter” 220 for short) is configured to filter the reconstructed block 215 to produce a filtered block 221, smoothing pixel transitions, or improving video quality.
[00198] В варианте осуществления кодер 20 (соответственно, блок 220 контурного фильтра) может быть выполнен с возможностью вывода параметра контурного фильтра (например, выборочной информации адаптивного смещения), например, непосредственно или после энтропийного кодирования, выполняемого блоком 270 энтропийного кодирования или любым другим блоком энтропийного кодирования, так что декодер 30 может принимать и применять один и тот же параметр контурного фильтра для декодирования.[00198] In an embodiment, encoder 20 (respectively, loop filter block 220) may be configured to output a loop filter parameter (e.g., adaptive offset sample information), for example, directly or after entropy encoding performed by
[00199] Буфер 230 декодированных изображений (decoded picture buffer, DPB) может быть памятью опорных изображений, в которой хранятся данные опорных изображений для использования при кодировании видеоданных кодером 20. DPB 230 может быть сформирован любым из множества устройств памяти, таких как динамическая оперативная память (dynamic random access memory, DRAM) (включая синхронную DRAM (синхронную DRAM, SDRAM), магниторезистивную RAM (magnetoresistive RAM, MRAM), резистивное оперативное запоминающее устройство (resistive RAM, RRAM)) или другой тип запоминающего устройства. DPB 230 и буфер 216 могут быть обеспечены одним и тем же запоминающим устройством или отдельными запоминающими устройствами. В примере буфер 230 декодированного изображения (decoded picture buffer, DPB) выполнен с возможностью хранения отфильтрованного блока 221. Буфер 230 декодированного изображения может дополнительно быть выполнен с возможностью хранения других ранее отфильтрованных блоков, например, ранее восстановленных и отфильтрованных блоков 221, одного и того же текущего изображения или разных изображений, например, ранее восстановленных изображений, и может обеспечивать полностью ранее восстановленные, то есть декодированные изображения (и соответствующие опорные блоки и выборки) и/или частично восстановленное текущее изображение (и соответствующие опорные блоки и выборки), например, для межкадрового прогнозирования. В одном примере, если восстановленный блок 215 восстанавливается без внутриконтурной фильтрации, буфер 230 декодированного изображения (decoded picture buffer, DPB) выполнен с возможностью хранения восстановленного блока 215. [00199] The decoded picture buffer (DPB) 230 may be a reference picture memory that stores reference picture data for use when encoding video data by the encoder 20. The
[00200] Блок 260 обработки прогнозирования, также называемый блоком 260 обработки прогнозирования блока, выполнен с возможностью приема или получения блока 203 изображения (текущего блока 203 изображения текущего изображения 201) и данных восстановленного изображения, например, опорных выборок одного и того же (текущего) изображения из буфера 216 и/или данных 231 опорного изображения одного или более ранее декодированных изображений из буфера 230 декодированных изображений, и обработки таких данных для прогнозирования, а именно, чтобы обеспечить блок 265 прогнозирования, который может быть блоком 245 межкадрового прогнозирования или блоком 255 внутрикадрового прогнозирования. [00200] The
[00201] Блок 262 выбора режима может быть выполнен с возможностью выбора режима прогнозирования (например, режима внутрикадрового или межкадрового прогнозирования) и/ или соответствующего блока 245 или 255 прогнозирования, который будет использоваться в качестве блока 265 прогнозирования, для вычисления остаточного блока 205 и для восстановления восстановленного блока 215. [00201] The mode selection block 262 may be configured to select a prediction mode (eg, intra- or inter-frame prediction mode) and/or a
[00202] В варианте осуществления блок 262 выбора режима может быть выполнен с возможностью выбора режима прогнозирования (например, из режимов прогнозирования, поддерживаемых блоком 260 обработки прогнозирования), при этом режим прогнозирования обеспечивает наилучшее совпадение или, другими словами, минимальный остаток (минимальный остаток означает лучшее сжатие для передачи или хранения), или обеспечивает минимальные накладные расходы на сигнализацию (минимальные накладные расходы на сигнализацию означают лучшее сжатие для передачи или хранения), или учитывает или уравновешивает и то, и другое. Блок 262 выбора режима может быть выполнен с возможностью определения режима прогнозирования на основе оптимизации искажения скорости (rate distortion optimization, RDO), а именно, выбора режима прогнозирования, который обеспечивает оптимизацию минимального искажения скорости, или выбора режима прогнозирования, для которого искажение скорости по меньшей мере удовлетворяет критерию выбора режима прогнозирования.[00202] In an embodiment, the mode selection block 262 may be configured to select a prediction mode (eg, from among the prediction modes supported by the prediction processing block 260), wherein the prediction mode provides the best match, or in other words, the minimum remainder (minimum remainder means better compression for transmission or storage), or provides minimal 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 less rate distortion. least satisfies the criterion for choosing a forecasting mode.
[00203] Нижеследующее подробно описывает обработку прогнозирования, выполняемую (например, блоком 260 обработки прогнозирования), и выбор режима, выполняемый (например, блоком 262 выбора режима), на примере кодера 20.[00203] The following describes in detail the prediction processing performed (for example, by the prediction processing unit 260) and the mode selection performed (for example, by the mode selection unit 262), using the encoder 20 as an example.
[00204] Как описано выше, кодер 20 выполнен с возможностью определения или выбора оптимального или наиболее эффективного режима прогнозирования из набора (заданных) режимов прогнозирования. Набор режимов прогнозирования может включать в себя, например, режим внутрикадрового прогнозирования и/или режим межкадрового прогнозирования.[00204] As described above, encoder 20 is configured to determine or select an 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.
[00205] Набор режимов внутрикадрового прогнозирования может включать в себя 35 различных режимов внутрикадрового прогнозирования, например, ненаправленные режимы, такие как режим постоянного (или среднего) и планарный режим, или направленные режимы, такие как определенные в H.265, или может включать 67 различных режимов внутрикадрового прогнозирования, например, ненаправленные режимы, такие как режим постоянного тока (или усредненный) и планарный режим, или направленные режимы, такие как те, которые определены в H.266, находящемся в стадии разработки.[00205] The set of intra-prediction modes may include 35 different intra-prediction modes, for example, omnidirectional modes such as constant (or average) mode and planar mode, or directed modes such as those defined in H.265, or may include 67 various intra-prediction modes, for example, omnidirectional modes such as constant current (or average) mode and planar mode, or directed modes such as those defined in H.266, which is under development.
[00206] В возможной реализации набор режимов межкадрового прогнозирования зависит от доступных опорных изображений (а именно, например, по меньшей мере частично декодированных изображений, хранящихся в DBP 230, как описано выше), и других параметров межкадрового прогнозирования, например, зависит от того, все ли опорное изображение или только часть опорного изображения, например, область окна поиска вокруг области текущего блока изображения, используется для поиска наиболее подходящего опорного блока и/или, например, зависит от того, выполняется ли интерполяция пикселей например, применяется интерполяция в полупикселе и/или в четверть пикселя. Набор режимов межкадрового прогнозирования может включать в себя, например, режим расширенного вектора движения (Advanced Motion Vector Prediction, AMVP) и режим слияния (merge). В конкретной реализации набор режимов межкадрового прогнозирования может включать в себя улучшенный режим AMVP на основе контрольных точек и улучшенный режим слияния на основе контрольных точек в вариантах осуществления настоящей заявки. В примере блок 254 внутрикадрового прогнозирования может быть выполнен с возможностью выполнения любой комбинации технологий межкадрового прогнозирования, описанных ниже.[00206] In an exemplary implementation, the set of inter-prediction modes depends on available reference pictures (namely, for example, at least partially decoded pictures stored in
[00207] В дополнение к вышеупомянутым режимам прогнозирования в вариантах осуществления настоящей заявки также могут применяться режим пропуска и/ или прямой режим.[00207] In addition to the above prediction modes, embodiments of the present application may also employ a skip mode and/or a direct mode.
[00208] Блок 260 обработки прогнозирования может дополнительно быть выполнен с возможностью разделения блока 203 изображения на более мелкие части или подблоки, например, посредством итеративного использования разделения дерева квадрантов (quad-tree, QT), разделение двоичного дерева (binary-tree, BT), разделение троичного дерева (triple-tree, TT) или любую их комбинацию и осуществление, например, прогнозирования для каждого из разделов блока или подблоков. Выбор режима включает в себя выбор древовидной структуры разделенного блока 203 изображения и выбор режима прогнозирования, применяемого к каждому из разделов блока или подблоков. [00208] The
[00209] Блок 244 межкадрового прогнозирования может включать в себя блок оценки движения (motion estimation, ME) (не показан на фиг. 2) и блок компенсации движения (motion compensation, MC) (не показан на фиг. 2). Блок оценки движения выполнен с возможностью приема или получения блока 203 изображения изображения (блок 203 текущего изображения текущего изображения 201) и декодированного изображения 231, или по меньшей мере одного или более ранее восстановленных блоков, например, одного или более восстановленных блоков других/различных ранее декодированных изображений 231 для оценки движения. Например, видеопоследовательность может включать в себя текущее изображение и ранее декодированные изображения 231, или, другими словами, текущее изображение и ранее декодированные изображения 231 могут быть частью или формировать последовательность изображений, образующих видеопоследовательность.[00209]
[00210] Например, кодер 20 может быть выполнен с возможностью выбора опорного блока из множества опорных блоков одного и того же изображения или разных изображений из множества других изображений и обеспечения опорного изображения и/или смещения (пространственного смещения) между местоположением (координаты X, Y) опорного блока и местоположением текущего блока изображения в качестве параметров межкадрового прогнозирования для блока оценки движения (не показано на фиг. 2). Смещение также называется вектором движения (motion vector, MV). [00210] 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 provide a reference image and/or offset (spatial offset) between locations (X, Y coordinates ) of the reference block and the location of the current image block as inter-frame prediction parameters for the motion estimation block (not shown in FIG. 2). Displacement is also called motion vector (MV).
[00211] Блок компенсации движения выполнен с возможностью получения параметра межкадрового прогнозирования и выполнения межкадрового прогнозирования на основе или с использованием параметра межкадрового прогнозирования, чтобы получить блок 245 межкадрового прогнозирования. Компенсация движения, осуществляемая блоком компенсации движения (не показанным на фиг. 2), может включать в себя выборку или формирование блока прогнозирования на основе вектора движения/блока, определенного посредством оценки движения (возможно, выполнение интерполяции с точностью до субпикселя). Интерполяционная фильтрация может формировать дополнительные выборки пикселей из известных выборок пикселей, тем самым потенциально увеличивая количество возможных блоков прогнозирования-, которые могут использоваться для кодирования блока изображения. После приема вектора движения для PU текущего блока изображения блок 246 компенсации движения может найти блок прогнозирования, на который указывает вектор движения, в одном из списков опорных изображений. Блок 246 компенсации движения также может формировать элемент синтаксиса, связанный с блоком и фрагментом видео, так что декодер 30 использует элемент синтаксиса для декодирования блока изображения в фрагменте видео.[00211] The motion compensation unit is configured to obtain an inter-prediction parameter and perform inter-prediction based on or using the inter-prediction parameter to obtain an inter-prediction unit 245 . The motion compensation performed by the motion compensation block (not shown in FIG. 2) may include sampling or generating a prediction block based on the motion vector/block determined by motion estimation (possibly performing sub-pixel-accurate interpolation). Interpolation filtering can generate additional pixel samples from known pixel samples, thereby potentially increasing the number of possible prediction blocks that can be used to encode an image block. After receiving the motion vector for the PU of the current image block, the motion compensation block 246 can find the prediction block pointed to by the motion vector in one of the reference image lists. Motion compensation block 246 may also generate a syntax element associated with a block and a video fragment, such that the decoder 30 uses the syntax element to decode a block of image in a video fragment.
[00212] В частности, блок 244 межкадрового прогнозирования может передавать элемент синтаксиса в блок 270 энтропийного кодирования. Элемент синтаксиса включает в себя параметр межкадрового прогнозирования (например, информацию индикации выбора режима межкадрового прогнозирования, используемого для прогнозирования текущего блока изображения после обхода множества режимов межкадрового прогнозирования). В возможном сценарии применения, если существует только один режим межкадрового прогнозирования, параметр межкадрового прогнозирования может альтернативно не переноситься в элементе синтаксиса. В этом случае сторона 30 декодера может непосредственно выполнять декодирование с использованием режима прогнозирования по умолчанию. Можно понять, что блок 244 межкадрового прогнозирования может быть выполнен с возможностью осуществления любой комбинации технологий межкадрового прогнозирования.[00212] In particular,
[00213] Блок 254 внутрикадрового прогнозирования выполнен с возможностью получения, например, приема, блока 203 изображения (текущего блока изображения) и одного или более ранее восстановленных блоков, например, восстановленных соседних блоков, одного и того же изображения для внутрикадровой оценки. Кодер 20 может быть, например, выполнен с возможностью выбора режима внутрикадрового прогнозирования из множества (заданных) режимов внутрикадрового прогнозирования.[00213] The
[00214] В варианте осуществления кодер 20, выполненный с возможностью выбора режима внутрикадрового прогнозирования согласно критерию оптимизации, например, на основе минимального остатка (например, режим внутрикадрового прогнозирования, обеспечивающий блок 255 прогнозирования, который наиболее похож на текущий блок 203 изображения) или минимальная скорость искажения.[00214] In an embodiment, an encoder 20 configured to select an intra-prediction mode according to an optimization criterion, for example, based on a minimum residual (e.g., an intra-prediction mode providing a
[00215] Блок 254 внутрикадрового прогнозирования дополнительно выполнен с возможностью определения блока 255 внутрикадрового прогнозирования на основе, например, параметра внутрикадрового прогнозирования в выбранном режиме внутрикадрового прогнозирования. В любом случае, после выбора режима внутрикадрового прогнозирования для блока, блок 254 внутрикадрового прогнозирования дополнительно выполнен с возможностью обеспечения параметра внутрикадрового прогнозирования, а именно информации, указывающей выбранный режим внутрикадрового прогнозирования для блока, в блок 270 энтропийного кодирования. В примере блок 254 внутрикадрового прогнозирования может быть выполнен с возможностью выполнения любой комбинации технологий внутрикадрового прогнозирования. [00215] The
[00216] В частности, блок 254 внутрикадрового прогнозирования может передавать элемент синтаксиса в блок 270 энтропийного кодирования. Элемент синтаксиса включает в себя параметр внутрикадрового прогнозирования (например, информацию индикации выбора режима внутрикадрового прогнозирования, используемого для прогнозирования текущего блока изображения после обхода(перехода) множества режимов внутрикадрового прогнозирования). В возможном сценарии применения, если существует только один режим внутрикадрового прогнозирования, параметр внутрикадрового прогнозирования может альтернативно не переноситься в элементе синтаксиса. В этом случае сторона 30 декодера может непосредственно выполнять декодирование с использованием режима прогнозирования по умолчанию.[00216] In particular,
[00217] Блок 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 энтропийного кодирования может дополнительно быть выполнен с возможностью энтропийного кодирования другого элемента синтаксиса для текущего кодируемого фрагмента видео.[00217]
[00218] Другой структурный вариант видеокодера 20 может использоваться для кодирования видеопотока. Например, кодер 20, не основанный на преобразовании, может напрямую квантовать остаточный сигнал без блока 206 обработки преобразования для некоторых блоков или кадров. В другой реализации кодер 20 может иметь блок 208 квантования и блок 210 обратного квантования, объединенные в единый блок.[00218] Another design of video encoder 20 may be used to encode a video stream. For example, non-transform encoder 20 may directly quantize the residual signal without
[00219] В частности, в этом варианте осуществления настоящей заявки кодер 20 может быть выполнен с возможностью реализации процесса кодирования видео, описанного в следующих вариантах осуществления.[00219] In particular, in this embodiment of the present application, the encoder 20 may be configured to implement the video encoding process described in the following embodiments.
[00220] Следует понимать, что видеокодер в настоящей заявке может включать в себя только некоторые модули в видеокодере 20. Например, видеокодер в настоящей заявке может включать в себя блок декодирования изображения и блок разделения. Блок декодирования изображения может включать в себя один или более из блока энтропийного декодирования, блока прогнозирования, блока обратного преобразования и блока обратного квантования.[00220] It should be understood that the video encoder in the present application may include only some modules in the video encoder 20. For example, the video encoder in the present application may include an image decoding unit and a division unit. The image decoding unit may include one or more of an entropy decoding unit, a prediction unit, an inverse transform unit, and an inverse quantization unit.
[00221] Кроме того, другой структурный вариант видеокодера 20 может использоваться для кодирования видеопотока. Например, для некоторых блоков изображения или кадров изображения видеокодер 20 может непосредственно квантовать остаточный сигнал, обработка блоком 206 обработки преобразования не требуется, и, соответственно, обработка блоком 212 обработки обратного преобразования также не требуется. В качестве альтернативы, для некоторых блоков изображения или кадров изображения видеокодер 20 не формирует остаточные данные, и, соответственно, обработка блоком 206 обработки преобразования, блоком 208 квантования, блоком 210 обратного квантования и блоком 212 обработки обратного преобразования не требуется. В качестве альтернативы видеокодер 20 может напрямую сохранять восстановленный блок изображения в качестве опорного блока, и обработка фильтром 220 не требуется. В качестве альтернативы, блок 208 квантования и блок 210 обратного квантования в видеокодере 20 могут быть объединены. Контурный фильтр 220 не является обязательным. Кроме того, в случае кодирования со сжатием без потерь блок 206 обработки преобразования, блок 208 квантования, блок 210 обратного квантования и блок 212 обработки обратного преобразования являются необязательными. Следует понимать, что в различных сценариях приложений блок 244 межкадрового прогнозирования и блок 254 внутрикадрового прогнозирования могут использоваться выборочно.[00221] Additionally, 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, processing by the
[00222] Фиг. 3 - схематическая/концептуальная блок-схема примера декодера 30, выполненного с возможностью реализации варианта осуществления настоящего изобретения. Видеодекодер 30 выполнен с возможностью приема кодированных данных 21 изображения (например, кодированного потока битов), закодированных, например, кодером 20, для получения декодированного изображения 231. В процессе декодирования видеодекодер 30 принимает видеоданные от видеокодера 20, например, кодированный битовый поток видеоданных, который представляет блок изображения кодированного фрагмента видео и связанный с ним элемент синтаксиса. [00222] FIG. 3 is a schematic/conceptual block diagram of an example decoder 30 configured to implement an embodiment of the present invention. Video decoder 30 is configured to receive encoded image data 21 (e.g., a coded bitstream) encoded, for example, by encoder 20 to obtain a decoded image 231. During the decoding process, video decoder 30 receives video data from video encoder 20, for example, an encoded video bitstream that represents an image block of an encoded video fragment and its associated syntax element.
[00223] В примере на фиг. 3, декодер 30 включает в себя блок 304 энтропийного декодирования, блок 310 обратного квантования, блок 312 обработки обратного преобразования, блок 314 восстановления (например, сумматор 314), буфер 316, контурный фильтр 320, буфер 330 декодированного изображения и блок 360 обработки прогнозирования. Блок 360 обработки прогнозирования может включать в себя блок 344 межкадрового прогнозирования, блок 354 внутрикадрового прогнозирования и блок 362 выбора режима. В некоторых примерах видеодекодер 30 может выполнять этап декодирования, в целом обратный этапу кодирования, описанному со ссылкой на видеокодер 20 на фиг. 2.[00223] In the example of FIG. 3, the decoder 30 includes an
[00224] Блок 304 энтропийного декодирования выполнен с возможностью осуществления энтропийного декодирования кодированных данных 21 изображения, чтобы получить, например, квантованный коэффициент 309 и/или декодированный параметр кодирования (не показан на фиг. 3), например, любой один или все из параметра межкадрового прогнозирования, параметра внутрикадрового прогнозирования, параметра контурного фильтра и/или другого элемента синтаксиса (которые декодируются). Блок 304 энтропийного декодирования дополнительно выполнен с возможностью пересылки параметра межкадрового прогнозирования, параметра внутрикадрового прогнозирования и/или другого элемента синтаксиса в блок 360 обработки прогнозирования. Видеодекодер 30 может принимать элементы синтаксиса на уровне фрагмента видео и/или уровне видеоблока.[00224] The
[00225] Блок 310 обратного квантования может иметь ту же функцию, что и блок 110 обратного квантования. Блок 312 обработки обратного преобразования может иметь ту же функцию, что и блок 212 обработки обратного преобразования. Блок 314 восстановления может иметь ту же функцию, что и блок 214 восстановления. Буфер 316 может иметь ту же функцию, что и буфер 216. Контурный фильтр 320 может иметь ту же функцию, что и контурный фильтр 220. Буфер 330 декодированных изображений может иметь ту же функцию, что и буфер 230 декодированных изображений. [00225] The
[00226] Блок 360 обработки прогнозирования может включать в себя блок 344 межкадрового прогнозирования и блок 354 внутрикадрового прогнозирования. Блок 344 межкадрового прогнозирования может напоминать блок 244 межкадрового прогнозирования по функциям, а блок 354 внутрикадрового прогнозирования может напоминать блок 254 внутрикадрового прогнозирования по функциям. Блок 360 обработки внутрикадрового прогнозирования обычно выполнен с возможностью осуществления прогнозирования блока и/ или получения блока 365 прогнозирования из закодированных данных 21, а также приема или получения (явно или неявно) параметра, относящегося к прогнозированию, и/ или информации о выбранном режиме прогнозирования, например, от блока 304 энтропийного декодирования.[00226] The
[00227] Когда фрагмент видео кодируется в внутрикодированный (I) фрагмент, блок 354 внутрикадрового прогнозирования блока 360 обработки прогнозирования выполнен с возможностью формирования блока 365 прогнозирования для блока изображения текущего фрагмента видео на основе сигнализированного режима внутрикадрового прогнозирования и данных ранее декодированного блока текущего кадра или изображения. Когда видеокадр кодируется в межкодированный (а именно, B или P) фрагмент, блок 344 межкадрового прогнозирования (например, блок компенсации движения) в блоке обработки прогнозирования 360 выполнен с возможностью формирования блока 365 прогнозирования видеоблока в текущем фрагменте видео на основе вектора движения и другого элемента синтаксиса, который принят из блока 304 энтропийного декодирования. Для межкадрового прогнозирования блок прогнозирования может быть сформирован из одного из опорных изображений в одном списке опорных изображений. Видеодекодер 30 может создавать списки опорных кадров, список 0 и список 1, используя технологию построения по умолчанию и на основе опорных изображений, хранящихся в DPB 330.[00227] When a video fragment is encoded into an intra-coded (I) fragment, an intra-frame prediction block 354 of a
[00228] Блок 360 обработки прогнозирования выполнен с возможностью определения информации прогнозирования для видеоблока текущего фрагмента видео путем анализа вектора движения и других элементов синтаксиса и использования информации прогнозирования для формирования блока прогнозирования для текущего декодируемого видеоблока. В примере настоящей заявки блок 360 обработки прогнозирования определяет, используя некоторые принятые элементы синтаксиса, режим прогнозирования (например, внутрикадровое или межкадровое прогнозирование) для кодирования видеоблока в видеофрагменте, тип фрагмента межкадрового прогнозирования (например, B- фрагмент, P- фрагмент или GPB- фрагмент), информация о построении одного или более списков опорных изображений для фрагмента, вектор движения каждого межкодированного видеоблока для фрагмента, статус межкадрового прогнозирования каждого межкадрового кодированного видеоблока в фрагменте и другую информацию для декодирования видеоблока в текущем фрагменте. В другом примере настоящей заявки элемент синтаксиса, принятый видеодекодером 30 из потока битов, включает в себя элемент синтаксиса в одном или более наборах адаптивных параметров (adaptive parameter set, APS), набор параметров последовательности (sequence parameter set, SPS), набор параметров изображения (picture parameter set, PPS) или заголовок фрагмента.[00228] The
[00229] Блок 310 обратного квантования может быть выполнен с возможностью осуществления обратного квантования (а именно, деквантования) квантованного коэффициента преобразования, обеспеченного в потоке битов и декодированного блоком 304 энтропийного декодирования. Процесс обратного квантования может включать в себя: использование параметра квантования, вычисленного видеокодером 20 для каждого видеоблока в фрагменте видео, для определения степени квантования, которая должна применяться, и, аналогично, степени обратного квантования, которая должна применяться.[00229] The
[00230] Блок 312 обработки обратного преобразования выполнен с возможностью применения обратного преобразования (например, обратного DCT, обратного целочисленного преобразования или концептуально аналогичного процесса обратного преобразования) к коэффициенту преобразования, чтобы сформировать остаточный блок в области пикселей.[00230] The inverse
[00231] Блок 314 восстановления (например, сумматор 314) выполнен с возможностью добавления блока 313 обратного преобразования (а именно, восстановленного остаточного блока 313) к блоку 365 прогнозирования, например, путем добавления значений выборок восстановленного остаточного блока 313 и значения выборки блока 365 прогнозирования, чтобы получить восстановленный блок 315 в области выборки.[00231] The reconstruction block 314 (e.g., adder 314) is configured to add an inverse transform block 313 (namely, the reconstructed residual block 313) to the prediction block 365, for example, by adding the sample values of the reconstructed residual block 313 and the sample values of the prediction block 365 to obtain the reconstructed block 315 in the sample region.
[00232] Блок 320 контурного фильтра (в контуре кодирования или после контура кодирования) выполнен с возможностью фильтрации восстановленного блока 315 для получения отфильтрованного блока 321, сглаживания переходов пикселей или улучшения качества видео. В одном примере блок 320 контурного фильтра может быть выполнен с возможностью выполнения любой комбинации технологий фильтрации, описанных ниже. Блок 320 контурного фильтра предназначен для представления одного или более контурных фильтров, таких как фильтр удаления блочности, фильтр с адаптивным смещением к выборке (sample-adaptive offset, SAO) или другой фильтр, например двусторонний фильтр, адаптивный контурный фильтр (adaptive loop filter, ALF), фильтр повышения резкости или сглаживания или совместный фильтр. Хотя блок 320 контурного фильтра показан как входной контурный фильтр на фиг. 3, в другой реализации блок 320 контурного фильтра может быть реализован как пост-контурный фильтр.[00232] A loop filter block 320 (in the encoding loop or after the encoding loop) is configured to filter the reconstructed block 315 to produce a filtered block 321, smoothing pixel transitions, or improving video quality. In one example,
[00233] Затем декодированный блок 321 видео, в данном кадре или изображении сохраняется в буфере 330 декодированного изображения, который хранит опорное изображение, используемое для последующей компенсации движения.[00233] The decoded video block 321 of a given frame or image is then stored in a decoded
[00234] Декодер 30 выполнен с возможностью, например, вывода декодированного изображения 31 через выход 332 для представления или просмотра пользователю.[00234] The decoder 30 is configured to, for example, output the decoded
[00235] Другой вариант видеодекодера 30 может использоваться для декодирования сжатого битового потока. Например, декодер 30 может формировать выходной видеопоток без блока 320 контурного фильтра. Например, декодер 30, не основанный на преобразовании, может напрямую выполнить обратное квантование остаточного сигнала без блока 312 обработки обратного преобразования для некоторых блоков или кадров. В другой реализации видеодекодер 30 может иметь блок 310 обратного квантования и блок 312 обработки обратного преобразования, объединенные в один блок.[00235] Another embodiment of video decoder 30 may be used to decode the compressed bit stream. For example, decoder 30 may generate an output video stream without
[00236] В частности, в этом варианте осуществления настоящей заявки декодер 30 выполнен с возможностью реализации способа декодирования видео, описанного в следующих вариантах осуществления.[00236] Specifically, in this embodiment of the present application, the decoder 30 is configured to implement the video decoding method described in the following embodiments.
[00237] Следует понимать, что видеокодер в настоящей заявке может включать в себя только некоторые модули в видеокодере 30. Например, видеокодер в настоящей заявке может включать в себя блок разделения и блок кодирования изображения. Блок кодирования изображения может включать в себя один или более из блока прогнозирования, блока преобразования, блока квантования и блока энтропийного кодирования.[00237] It should be understood that the video encoder in the present application may include only some modules in the video encoder 30. For example, the video encoder in the present application may include a division block and an image encoding block. The image encoding unit may include one or more of a prediction unit, a transform unit, a quantization unit, and an entropy encoding unit.
[00238] Кроме того, другой структурный вариант видеодекодера 30 может использоваться для декодирования кодированного битового потока видеоданных. Например, видеодекодер 30 может формировать выходной видеопоток без обработки фильтром 320. В качестве альтернативы, для некоторых блоков изображения или кадров изображения блок 304 энтропийного декодирования видеодекодера 30 не получает квантованные коэффициенты посредством декодирования, и, соответственно, нет необходимости в блоке 310 обратного квантования и блоке 312 обработки обратного преобразования для выполнения обработка. Контурный фильтр 320 не является обязательным. Кроме того, в случае сжатия без потерь блок 310 обратного квантования и блок 312 обработки обратного преобразования также являются необязательными. Следует понимать, что в различных сценариях приложений блок межкадрового прогнозирования и блок внутрикадрового прогнозирования могут использоваться выборочно.[00238] Additionally, another design of video decoder 30 may be used to decode the encoded video bitstream. For example, video decoder 30 may generate an output video stream without processing by
[00239] Следует понимать, что в кодере 20 и декодере 30 в настоящей заявке результат обработки для процедуры может быть выведен в следующую процедуру после дальнейшей обработки. Например, после такой процедуры, как интерполяционная фильтрация, вывод вектора движения или контурная фильтрация, операция, такая как (clip) обрезка или сдвиг (shift), дополнительно выполняется над результатом обработки соответствующей процедуры.[00239] It should be understood that in the encoder 20 and decoder 30 in the present application, 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 inference, or contour filtering, an operation such as clip or shift is additionally performed on the result of the corresponding procedure.
[00240] Например, вектор движения, который является контрольной точкой текущего блока изображения и который выводится на основе вектора движения соседнего блока аффинного кодирования (блок кодирования, который прогнозируется с использованием модели аффинного движения, может называться блок аффинного кодирования) или вектор движения, который является подблоком текущего блока изображения и который выводится на основе вектора движения соседнего блока аффинного кодирования, может дополнительно обрабатываться. В настоящей заявке это однозначно не ограничено. Например, значение вектора движения ограничено определенным диапазоном битовой ширины. Предполагается, что допустимая разрядность вектора движения равна bitDepth, значение вектора движения находится в диапазоне от -2 ^ (bitDepth - 1) до 2 ^ (bitDepth - 1) - 1, где символ «^» представляет возведение в степень. Если bitDepth равен 16, значение находится в диапазоне от -32768 до 32767. Если bitDepth равно 18, значение находится в диапазоне от -131072 до 131071.[00240] For example, a motion vector that is a reference point of the current image block and which is derived based on the motion vector of an adjacent affine coding block (a coding block that is predicted using an affine motion model may be called an affine coding block) or a motion vector that is a subblock of the current image block and which is inferred based on the motion vector of the adjacent affine encoding block can be further processed. This is not expressly limited in this application. For example, the value of a motion vector is limited to a certain bit width range. It is assumed that the allowed bit depth of the motion vector is bitDepth, the value of the motion vector is in the range -2^(bitDepth - 1) to 2^(bitDepth - 1) - 1, where the symbol "^" represents 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.
[00241] В другом примере значение вектора движения (например, векторы движения MV четырех подблоков 4x4 в одном блоке изображения 8x8) может быть дополнительно ограничено, так что максимальная разница между целыми частями MV четырех подблоков 4x4 не будет превышает N (например, N может быть установлено равным 1) пикселей.[00241] In another example, the value of a motion vector (e.g., the MV motion vectors of four 4x4 subblocks in one 8x8 image block) may be further limited such that the maximum difference between the entire MV portions of four 4x4 subblocks will not exceed N (e.g., N may be set to 1) pixels.
[00242] Фиг. 4 является иллюстративной схемой примера системы 40 кодирования видео, включающей в себя кодер 20 на фиг. 2 и/или декодер 30 на фиг. 3 согласно примерному варианту осуществления. Система 40 кодирования видео может реализовывать комбинацию различных технологий в вариантах осуществления настоящей заявки. В проиллюстрированной реализации система 40 кодирования видео может включать в себя устройство 41 формирования изображения, кодер 20, декодер 30 (и/или видеокодер/декодер, реализованный логической схемой 47 блока 46 обработки), антенну 42, один или более процессоров 43, одно или более запоминающих устройств 44 и/или устройство 45 отображения.[00242] FIG. 4 is an illustrative diagram of an example video encoding system 40 including the encoder 20 of FIG. 2 and/or decoder 30 in 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 unit 46), an antenna 42, one or more processors 43, one or more storage devices 44 and/or display device 45.
[00243] Как показано на фиг. 4, устройство 41 формирования изображения, антенна 42, блок 46 обработки, логическая схема 47, кодер 20, декодер 30, процессор 43, память 44 и/или устройство 45 отображения могут обмениваться данными друг с другом. Как описано, хотя система 40 кодирования видео проиллюстрирована кодером 20 и декодером 30, система 40 кодирования видео может включать в себя только кодер 20 или только декодер 30 в различных примерах.[00243] As shown in FIG. 4, the imaging apparatus 41, antenna 42, processing unit 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, the video encoding system 40 may include only the encoder 20 or only the decoder 30 in various examples.
[00244] В некоторых примерах антенна 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 обработки могут включать в себя память (например, кэш) для реализации буфера изображений и т.п.[00244] In some examples, antenna 42 may be configured to transmit or receive an encoded video data bit stream. 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 unit 46. Processing unit 46 may include application-specific integrated circuit (ASIC) logic, a graphics processor, a general-purpose processor, or the like. Video encoding system 40 may also include an optional processor 43. The optional processor 43 may likewise include application-specific integrated circuit (ASIC) logic, a graphics processor, a general purpose processor, or the like. In some examples, logic circuit 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 (eg, static random access memory (SRAM) or dynamic random access memory (DRAM)) or non-volatile memory (eg, flash). memory). In a non-limiting example, memory 44 may be implemented as a cache memory. In some examples, logic circuit 47 may access memory 44 (eg, to implement an image buffer). In another example, logic circuit 47 and/or processing unit 46 may include memory (eg, cache) for implementing an image buffer or the like.
[00245] В некоторых примерах кодер 20, реализованный логической схемой, может включать в себя буфер изображения (например, реализованный блоком 46 обработки или памятью 44) и графический процессор (например, реализованный блоком 46 обработки). Графический процессор может быть коммуникативно связан с буфером изображения. Графический процессор может включать в себя кодер 20, реализованный логической схемой 47, для реализации различных модулей, которые описаны со ссылкой на фиг. 2 и/или любую другую систему или подсистему кодера, описанную в этой спецификации. Логическая схема может быть выполнена с возможностью осуществления различных операций, описанных в этой спецификации.[00245] In some examples, encoder 20 implemented by logic may include an image buffer (eg, implemented by processing unit 46 or memory 44) and a graphics processor (eg, implemented by processing unit 46). The GPU may be in communicative communication with an image buffer. The graphics processor may include an encoder 20 implemented by logic 47 for implementing various modules, which 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 the various operations described in this specification.
[00246] В некоторых примерах декодер 30 может быть реализован логической схемой 47 аналогичным образом для реализации различных модулей, которые описаны со ссылкой на декодер 30 на фиг. 3 и/или любую другую систему или подсистему декодера, описанную в этой спецификации. В некоторых примерах декодер 30, реализованный логической схемой, может включать в себя буфер изображения (например, реализованный блоком 2820 обработки или памятью 44) и графический процессор (например, реализованный блоком 46 обработки). Графический процессор может быть коммуникативно связан с буфером изображения. Графический процессор может включать в себя декодер 30, реализованный логической схемой 47, для реализации различных модулей, которые описаны со ссылкой на фиг. 3 и/или любую другую систему или подсистему декодера, описанную в этой спецификации.[00246] In some examples, decoder 30 may be implemented by logic 47 in a similar manner to implement various modules that are described with reference to decoder 30 in FIG. 3 and/or any other decoder system or subsystem described in this specification. In some examples, the decoder 30 implemented by logic may include an image buffer (eg, implemented by processing unit 2820 or memory 44) and a graphics processor (eg, implemented by processing unit 46). The GPU may be in communicative communication with an image buffer. The graphics processor may include a decoder 30, implemented by logic 47, for implementing various modules, which are described with reference to FIG. 3 and/or any other decoder system or subsystem described in this specification.
[00247] В некоторых примерах антенна 42 может быть выполнена с возможностью приема закодированного потока битов видеоданных. Как описано, закодированный поток битов может включать в себя данные, индикатор, значение индекса, данные выбора режима и т.п., которые относятся к кодированию видеокадров и которые описаны в этой спецификации, например, данные, относящиеся к разделению кодирования (например, коэффициент преобразования или квантованный коэффициент преобразования, необязательный индикатор (как описано) и/или данные, определяющие разделение кодирования). Система 40 кодирования видео может дополнительно включать в себя декодер 30, который подключен к антенне 42 и выполнен с возможностью декодирования закодированного потока битов. Устройство 45 отображения приспособлено для представления видеокадра.[00247] In some examples, antenna 42 may be configured to receive an encoded video data 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 related to coding division (for example, a coefficient transform or quantized transform coefficient, optional 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 adapted to present a video frame.
[00248] Следует понимать, что в этом варианте осуществления настоящей заявки для примера, описанного со ссылкой на кодер 20, декодер 30 может быть выполнен с возможностью осуществления обратного процесса. Что касается сигнализации элемента синтаксиса, декодер 30 может быть выполнен с возможностью приема и анализа такого элемента синтаксиса и, соответственно, декодирования связанных видеоданных. В некоторых примерах кодер 20 может энтропийно кодировать элемент синтаксиса в кодированный битовый поток видео. В таких примерах декодер 30 может анализировать элемент синтаксиса и, соответственно, декодировать соответствующие видеоданные.[00248] 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 associated video data. 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 corresponding video data.
[00249] Фиг. 5 является схематической структурной схемой устройства 400 кодирования видео (например, устройства 400 кодирования видео или устройства 400 декодирования видео) согласно варианту осуществления настоящего изобретения. Устройство 400 кодирования видео подходит для реализации вариантов осуществления, описанных в этой спецификации. В варианте осуществления устройство 400 кодирования видео может быть видеодекодером (например, декодером 30 на фиг. 3) или видеокодером (например, кодером 20 на фиг. 2). В другом варианте осуществления устройство 400 кодирования видео может быть одним или более компонентами декодера 30 на фиг. 3 или кодер 20 на фиг. 2.[00249] FIG. 5 is a schematic block diagram of a video encoding apparatus 400 (eg, a video encoding apparatus 400 or a video decoding apparatus 400) according to an embodiment of the present invention. Video encoding apparatus 400 is suitable for implementing the embodiments described in this specification. In an embodiment, video encoding device 400 may be a video decoder (eg, decoder 30 in FIG. 3) or a video encoder (eg, encoder 20 in FIG. 2). In another embodiment, video encoding device 400 may be one or more components of decoder 30 in FIG. 3 or encoder 20 in FIG. 2.
[00250] Устройство 400 кодирования видео включает в себя: входные порты 410 и приемный блок (Rx) 420, которые выполнены с возможностью приема данных; процессор, логический блок или центральный процессор 430 (CPU), который выполнен с возможностью обработки данных; блок 440 передатчика (Tx) и выходные порты 450, которые выполнены с возможностью передачи данных; и память 460, выполненная с возможностью хранения данных. Устройство 400 кодирования видео может дополнительно включать в себя оптико-электрический компонент и электрически-оптический компонент (EO), подключенные к входным портам 410, блоку 420 приемника, блоку 440 передатчика и выходным портам 450 для выхода или входа оптического или электрического сигнала.[00250] The video encoding device 400 includes: input
[00251] Процессор 430 реализуется аппаратным обеспечением и программным обеспечением. Процессор 430 может быть реализован как одна или более микросхем CPU, ядер (например, многоядерный процессор), FPGA, ASIC и DSP. Процессор 430 обменивается данными с входными портами 410, блоком 420 приемника, блоком 440 передатчика, выходными портами 450 и памятью 460. Процессор 430 включает в себя модуль 470 кодирования (например, модуль 470 кодирования или модуль 470 декодирования). Модуль 470 кодирования/декодирования реализует варианты осуществления, раскрытые в этом описании, для реализации способа прогнозирования изображения, обеспеченного в вариантах осуществления настоящего изобретения. Например, модуль 470 кодирования/декодирования осуществляет, обрабатывает или обеспечивает различные операции кодирования. Следовательно, модуль 470 кодирования/декодирования существенно улучшает функции устройства 400 кодирования видео и влияет на преобразование устройства 400 кодирования видео в другое статус. В качестве альтернативы модуль 470 кодирования/декодирования реализован в виде инструкции, хранящейся в памяти 460 и выполняемой процессором 430. [00251] The
[00252] Память 460 включает в себя один или более дисков, ленточных накопителей и твердотельных накопителей и может использоваться в качестве устройства хранения данных переполнения, для хранения программ, когда такие программы выбираются для выполнения, и для хранения инструкций и данных, которые считываются во время выполнение программы. Память 460 может быть энергозависимой и/или энергонезависимой и может быть постоянным запоминающим устройством (ROM), оперативной памятью (RAM), оперативной памятью (троичной памятью с адресацией по содержимому, ternary content-addressable memory TCAM) и/или статической оперативной памятью (SRAM).[00252]
[00253] Фиг. 6 - упрощенная блок-схема устройства 500, которое может использоваться как одно или два из устройства-источника 12 и целевого устройства 14 на фиг. 1 согласно примерному варианту осуществления. Устройство 500 может реализовать способ прогнозирования изображения в вариантах осуществления настоящей заявки. Другими словами, фиг. 6 является схематической блок-схемой реализации устройства кодирования или устройства декодирования (называемого для краткости устройством 500 кодирования) согласно варианту осуществления настоящей заявки. Устройство 500 кодирования может включать в себя процессор 510, память 530 и шинную систему 550. Процессор и память связаны через шинную систему. Память выполнена с возможностью хранения инструкции. Процессор выполнен с возможностью выполнения инструкции, хранящейся в памяти. В памяти кодирующего устройства хранится программный код. Процессор может вызывать программный код, хранящийся в памяти, для осуществления различных способов кодирования или декодирования видео, описанных в настоящей заявке, в частности, различных новых способов разделения блоков изображения. Чтобы избежать повторов, подробности здесь снова не приводятся.[00253] FIG. 6 is a simplified block diagram of a device 500 that can be used as one or two of the source device 12 and the target device 14 in FIG. 1 according to an exemplary embodiment. The device 500 may implement the image prediction method in embodiments of the present application. In other words, FIG. 6 is a schematic block diagram of an implementation of an encoding device or a decoding device (referred to as encoding device 500 for short) according to an embodiment of the present application. The encoding device 500 may include a
[00254] В этом варианте осуществления настоящей заявки процессор 510 может быть центральным процессором (central processing unit, CPU). В качестве альтернативы, процессор 510 может быть другим процессором общего назначения, процессором цифровых сигналов (DSP), специализированной интегральной схемой (ASIC), программируемой пользователем вентильной матрицей (FPGA) или другим программируемым логическим устройством, дискретным вентилем или транзисторным логическим устройством, дискретным аппаратным компонентом и т.п. Процессор общего назначения может быть микропроцессором, или процессор может быть любым традиционным процессором или подобным.[00254] In this embodiment of the present application, the
[00255] Память 530 может включать в себя постоянное запоминающее устройство (ROM) или устройство оперативной памяти (RAM). В качестве альтернативы 530 может использоваться любой другой подходящий тип запоминающего устройства. Память 530 может включать в себя код и данные 531, к которым имеет доступ процессор 510 через шину 550. Память 530 может дополнительно включать в себя операционную систему 533 и прикладную программу 535. Прикладная программа 535 включает в себя по меньшей мере одну программу, которая позволяет процессору 510 осуществлять способ кодирования или декодирования видео, описанный в настоящей заявке. Например, прикладная программа 535 может включать в себя приложения с 1 по N и дополнительно включать в себя приложение для кодирования или декодирования видео (называемое для краткости приложением для кодирования видео), которое осуществляет способ кодирования или декодирования видео, описанный в настоящей заявке.[00255]
[00256] В дополнение к шине данных шинная система 550 может дополнительно включать в себя шину питания, шину управления, шину сигнала состояния и т.п. Однако для ясного описания различные типы шин на чертеже обозначены как шинная система 550.[00256] In addition to the data bus,
[00257] Необязательно, устройство 500 кодирования может дополнительно включать в себя одно или более устройств вывода, например, дисплей 570. В примере дисплей 570 может быть сенсорным дисплеем, который объединяет дисплей и сенсорный блок, который оперативно распознает сенсорный ввод. Дисплей 570 может быть подключен к процессору 510 через шину 550.[00257] Optionally, encoder 500 may further include one or more output devices, such as a
[00258] Чтобы лучше понять способ прогнозирования изображения в вариантах осуществления настоящей заявки, нижеследующее сначала подробно описывает некоторые связанные концепции и основное содержание межкадрового прогнозирования. [00258] To better understand the image prediction method in embodiments of the present application, the following first describes in detail some related concepts and the main content of inter-frame prediction.
[00259] Межкадровое прогнозирование означает поиск в восстановленном изображении согласованного опорного блока для текущего блока изображения в текущем изображении и использование значения пикселя элемента пикселя в опорном блоке в качестве предиктора значения пикселя элемента пикселя в текущем блоке изображения (Этот процесс называется оценкой движения (Motion estimation, ME)).[00259] Inter-frame prediction means searching the reconstructed image for a consistent reference block for the current image block in the current image and using the pixel value of a pixel element in the reference block as a predictor of the pixel value of a pixel element in the current image block (This process is called Motion estimation, ME)).
[00260] Оценка движения состоит в том, чтобы попробовать множество опорных блоков в опорном изображении для текущего блока изображения, а затем, наконец, определить один или два опорных блока (два опорных блока требуются для двойного прогнозирования) из множества опорных блоков с использованием скорости оптимизация искажений (rate-distortion optimization, RDO) или другой способ. Опорный блок используется для выполнения межкадрового прогнозирования текущего блока изображения.[00260] Motion estimation is to try many reference blocks in a reference image for the current image block, and then finally determine one or two reference blocks (two reference blocks are required for dual prediction) from the set of reference blocks using speed optimization distortion (rate-distortion optimization, RDO) or another method. The reference block is used to perform inter-frame prediction of the current image block.
[00261] Информация о движении текущего блока изображения включает в себя информацию индикации направления прогнозирования (которое обычно является прямым прогнозированием, обратным прогнозированием или двунаправленным прогнозированием), один или два вектора движения (motion vector, MV), указывающих на опорный блок, информацию индикации изображения, в котором расположен опорный блок (который обычно представлен посредством опорного индекса (reference index)). [00261] The motion information of the current image block includes prediction direction indication information (which is usually forward prediction, backward prediction, or bidirectional prediction), one or two motion vectors (MVs) pointing to the reference block, image indication information , in which the reference block (which is usually represented by a reference index) is located.
[00262] Прямое прогнозирование означает выбор опорного изображения из набора прямых опорных изображений, чтобы получить опорный блок для текущего блока изображения. Обратное прогнозирование означает выбор опорного изображения из набора обратных опорных изображений, чтобы получить опорный блок для текущего блока изображения. Двойное прогнозирование означает выбор опорного изображения из набора прямых опорных изображений и опорного изображения из набора обратных опорных изображений для получения опорного блока. Когда используется способ двойного прогнозирования, в текущем блоке кодирования есть два опорных блока. Каждый опорный блок необходимо указывать посредством вектора движения и опорного индекса. Затем определяется предиктор значения пикселя элемента пикселя в текущем блоке изображения на основе значений пикселей элементов пикселя в двух опорных блоках.[00262] Forward prediction means selecting a reference image from a set of forward reference images to obtain a reference block for the current image block. Inverse prediction means selecting a reference image from a set of inverse reference images to obtain a reference block for the current image block. Dual prediction means selecting a reference picture from a set of forward reference pictures and a reference picture from a set of inverse reference pictures to obtain a reference block. When the double prediction method is used, there are two reference blocks in the current encoding block. Each reference block must be specified by a motion vector and a reference index. A pixel value predictor of the pixel element in the current image block is then determined based on the pixel values of the pixel elements in the two reference blocks.
[00263] В HEVC есть два режима межкадрового прогнозирования: режим AMVP и режим слияния.[00263] HEVC has two inter-frame prediction modes: AMVP mode and merge mode.
[00264] В режиме AMVP сначала просматриваются пространственно или временно соседние кодированные блоки (обозначенные как соседние блоки) текущего блока кодирования. Список возможных векторов движения- строится на основе информации о движении соседних блоков. Затем оптимальный вектор движения определяется из списка информации о возможном движении на основе затрат на искажения скорости, и информация о возможном движении с минимальными затратами на искажение скорости используется в качестве предиктора вектора движения (motion vector predictor, MVP) текущего блок кодирования.[00264] In AMVP mode, spatially or temporally adjacent coded blocks (denoted as adjacent blocks) of the current coding block are first scanned. The list of possible motion vectors is constructed based on information about the motion of neighboring blocks. The optimal motion vector is then determined from the list of candidate motion information based on the speed distortion cost, and the candidate motion information with minimal velocity distortion cost is used as a motion vector predictor (MVP) of the current encoding block.
[00265] Расположение и порядок обхода соседних блоков заданы. Затраты на искажения скорости может быть получена путем вычисления с использованием формулы (1), где J - затраты на искажения скорости (rate-distortion cost ), SAD - это сумма абсолютных разностей (sum of absolute differences, SAD) между исходным значением пикселя и прогнозируемым значением пикселя, которая получена посредством оценки движения, осуществляемой с использованием предиктора возможного вектора движения кандидата, R - скорость передачи в битах, а λ - множитель Лагранжа. Сторона кодера передает стороне декодера значение индекса и значение опорного индекса выбранного предиктора вектора движения в списке возможных векторов движения. Кроме того, сторона кодера может выполнять поиск движения в окрестности с центром в MVP, чтобы получить фактический вектор движения текущего блока кодирования, а затем передавать разницу (разность векторов движения) между MVP и фактическим вектором движения на сторону декодера.[00265] The location and order of traversal of adjacent blocks is specified. The rate-distortion cost can be obtained by calculating using formula (1), where J is the rate-distortion cost, SAD is the sum of absolute differences (SAD) between the original pixel value and the predicted one pixel value, 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 to the decoder side the index value and the reference index value of the selected motion vector predictor in the list of possible motion vectors. In addition, the encoder side can perform a motion search in the neighborhood centered on the MVP to obtain the actual motion vector of the current encoding block, and then transmit the difference (motion vector difference) between the MVP and the actual motion vector to the decoder side.
J=SAD+λR (1) J=SAD+λR (1)
[00266] Кроме того, с точки зрения различных моделей движения, режим AMVP можно разделить на режим AMVP на основе трансляционной модели и режим AMVP на основе непереводной модели.[00266] In addition, from the point of view of different motion models, the AMVP mode can be divided into an AMVP mode based on a translational model and an AMVP mode based on a non-translational model.
[00267] В режиме слияния список информации о возможном движении сначала создается на основе информации о движении пространственно или временно кодированной единицы текущей единицы кодирования. Затем информация об оптимальном движении определяется из списка информации о возможном движении как информация о движении для текущей единицы кодирования на основе затрат на искажения скорости. Наконец, значение индекса (обозначаемое в дальнейшем как индекс слияния) местоположения оптимальной информации о движении в списке информации о возможном движении передается на сторону декодера.[00267] In the merging mode, a list of possible motion information is first created based on the motion information of a spatially or temporally encoded unit of the current encoding unit. Then, the optimal motion information is determined from the list of possible motion information as the motion information for the current encoding unit based on the speed distortion cost. Finally, an index value (hereinafter referred to as a fusion index) of the location of the optimal motion information in the possible motion information list is transmitted to the decoder side.
[00268] В режиме слияния пространственная и временная информация о возможном движении текущей единицы кодирования может быть показана на фиг. 7. Информация о возможном кандидата в пространстве поступает из пяти пространственно соседних блоков (A0, A1, B0, B1 и B2). Если соседние блоки недоступны или режимом прогнозирования является внутрикадровое прогнозирование, соседние блоки не добавляются в список информации о возможном движении.[00268] In the fusion mode, spatial and temporal information about possible movement of the current coding unit can be shown in FIG. 7. Information about a possible candidate in space comes from five spatially adjacent blocks (A0, A1, B0, B1 and B2). If neighboring blocks are not available or the prediction mode is intra-frame prediction, neighboring blocks are not added to the possible motion information list.
[00269] Информация о временном возможном движении для текущей единицы кодирования может быть получена путем масштабирования MV блока в соответствующем местоположении в опорном кадре на основе отсчетов порядка изображений (picture order count, POC) опорного кадра и текущего кадра. Когда получен блок в соответствующем местоположении в опорном кадре, сначала может быть определено, доступен ли блок в местоположении T в опорном кадре. Если блок в местоположении T недоступен, выбирается блок в местоположении C.[00269] Temporary possible motion information for the current coding unit can be obtained by scaling the MV block at an appropriate location in the reference frame based on the picture order count (POC) counts of the reference frame and the current frame. When a block at a corresponding location in the reference frame is received, it may first be determined whether the block at location T in the reference frame is available. If the block at location T is not available, the block at location C is selected.
[00270] Когда поступательная модель используется для прогнозирования, одна и та же информация о движении используется для всех пикселей в блоке кодирования, а затем выполняется компенсация движения на основе информации о движении, чтобы получить предиктор пикселя в блоке кодирования. Однако в реальном мире существует множество движений. Многие объекты, например, вращающийся объект, американские горки, вращающиеся в разных направлениях, фейерверки и некоторые трюки в фильмах, не находятся в поступательном движении. Если эти движущиеся объекты, особенно те, которые находятся в сценарии контента, созданного пользователем (user generated content, UGC), кодируются с использованием технологии компенсации движения блока, основанной на модели поступательного движения в текущем стандарте кодирования, это сильно влияет на эффективность кодирования. Следовательно, для улучшения эффекта кодирования обеспечивается прогнозирование на основе модели непоступательного движения.[00270] When a translational model is used for prediction, the same motion information is used for all pixels in the encoding block, and then motion compensation is performed based on the motion information to obtain a predictor of the pixel in the encoding block. However, in the real world there are many movements. Many objects, such as a spinning object, roller coasters spinning in different directions, fireworks, and some movie stunts, are not in forward motion. If these moving objects, especially those in user generated content (UGC) scripts, are encoded using block motion compensation technology based on the translational motion model of the current encoding standard, it greatly impacts encoding efficiency. Therefore, prediction based on the non-translational motion model is provided to improve the encoding effect.
[00271] При прогнозировании на основе модели непоступательного движения одна и та же модель движения используется на стороне кодера и стороне декодера для получения информации о движении каждого вспомогательного блока компенсации движения в текущем блоке кодирования, а затем компенсация движения осуществляется на основе информацию о движении вспомогательного блока компенсации движения, чтобы получить подблок прогнозирования каждого подблока, чтобы повысить эффективность прогнозирования. Часто используемые модели непоступательного движения включают 4-параметрическую модель аффинного движения и 6-параметрическую модель аффинного движения.[00271] In non-translational motion model-based prediction, the same motion model is used on the encoder side and the decoder side to obtain the motion information of each auxiliary motion compensation block in the current encoding block, and then motion compensation is performed based on the motion information of the auxiliary block motion compensation to obtain a prediction sub-block of each sub-block to improve the prediction efficiency. Frequently used non-translational motion models include the 4-parameter affine motion model and the 6-parameter affine motion model.
[00272] Кроме того, режим пропуска (skip) - это особый режим режима слияния. Разница заключается в том, что во время передачи в режиме пропуска (skip) нет остатка, и передается только возможный индекс слияния (merge index). Индекс слияния используется для указания информации о наилучшем или целевом возможном движении в списке информации о возможном движении на слияние.[00272] In addition, skip mode is a special mode of the merge mode. The difference is that during skip mode transmission there is no remainder and only the possible merge index is transmitted. The merge index is used to indicate information about the best or target possible move in the list of possible merge move information.
[00273] При прогнозировании изображения могут использоваться разные режимы. Ниже подробно описаны эти общие режимы.[00273] When predicting an image, different modes can be used. These common modes are described in detail below.
[00274] Слияние с режимом разности векторов движения:[00274] Merging with motion vector difference mode:
[00275] В режиме слияния с разностью векторов движения (merge with motion vector difference, MMVD) один или более возможных векторов движения выбираются из списка возможных векторов движения на слияние, а затем осуществляется выражение расширения вектора движения (MV) на основе движения возможного вектора. Выражение расширения MV включает в себя начальную точку MV, шаг движения и направление движения.[00275] In merge with motion vector difference (MMVD) mode, one or more candidate motion vectors are selected from a list of candidate motion vectors to merge, and then a motion vector expansion (MV) expression is performed based on the movement of the candidate vector. The MV expansion expression includes the MV starting point, the motion step, and the motion direction.
[00276] Обычно тип возможного вектора движения, выбранного в режиме MMVD, является типом слияния по умолчанию (например, MRG_TYPE_DEFAULT_N). Выбранный возможный вектор движения является начальной точкой MV. Другими словами, выбранный возможный вектор движения используется для определения начального местоположения MV.[00276] Typically, the type of possible motion vector selected in MMVD mode is the default merge type (eg, MRG_TYPE_DEFAULT_N). The selected possible motion vector is the starting point of the MV. In other words, the selected candidate motion vector is used to determine the initial location of the MV.
[00277] Как показано в таблице 1, базовый возможный индекс (Base candidate IDX) указывает, какой возможный вектор движения выбран из списка возможных векторов движения в качестве оптимального возможного вектора движения. Если список возможных векторов движения на слияние включает в себя один возможный вектор движения для выбора, базовый возможный IDX может не определяться. [00277] As shown in Table 1, the Base candidate IDX indicates which candidate motion vector is selected from the list of candidate motion vectors as the optimal candidate motion vector. If the list of possible fusion motion vectors includes one possible motion vector to select, the underlying candidate IDX may not be determined.
Таблица 1Table 1
[00278] Например, если базовый индекс кандидата равен 1, выбранный возможный вектор движения является вторым вектором движения в списке возможных векторов движения на слияние.[00278] For example, if the candidate base index is 1, the selected candidate motion vector is the second motion vector in the list of candidate motion vectors for merging.
[00279] Индекс расстояния (Distance IDX) представляет информацию о расстоянии смещения вектора движения. Значение индекса расстояния представляет собой смещение (например, предварительно заданное расстояние) от исходного местоположения. Расстояние здесь представлено пиксельным расстоянием (Pixel Distance). Расстояние между пикселями может быть кратко обозначено как pel. Соответствие между индексом расстояния и расстоянием между пикселями может быть показано в таблице 2. [00279] The distance index (Distance IDX) represents the displacement distance information of the motion vector. The distance index value represents the offset (eg, a predefined distance) from the original location. The distance here is represented by Pixel Distance. The distance between pixels can be briefly referred to as pel. The correspondence between the distance index and the distance between pixels can be shown in Table 2.
Таблица 2table 2
[00280] Индекс направления (Direction IDX) используется для представления направления разности векторов движения (MVD) на основе исходного местоположения. Всего в указатель направления может входить четыре случая. Конкретное определение может быть показано в таблице 3. [00280] The Direction IDX is used to represent the motion vector difference (MVD) direction based on the origin location. A total of four cases can be included in the direction indicator. The specific definition can be shown in Table 3.
Таблица 3Table 3
[00281] Процесс определения прогнозируемого значения пикселя текущего блока изображения на основе способа MMVD включает в себя следующие этапы: [00281] The process of determining the predicted pixel value of the current image block based on the MMVD method includes the following steps:
[00282] Этап 1: Определение начальной точки MV на основе базового возможного IDX.[00282] Step 1: Determine the starting point of the MV based on the base candidate IDX.
[00283] Фиг. 8 - схематическая диаграмма точки поиска MMVD согласно варианту осуществления настоящей заявки, а фиг. 9 - схематическая диаграмма процесса поиска MMVD согласно этому варианту осуществления настоящей заявки.[00283] FIG. 8 is a schematic diagram of an MMVD search point according to an embodiment of the present application, and FIG. 9 is a schematic diagram of an MMVD search process according to this embodiment of the present application.
[00284] Например, начальная точка MV - полая точка в центре на фиг. 8, или место, соответствующее сплошной линии на фиг. 9.[00284] For example, the starting point MV is the hollow point at the center in FIG. 8, or the location corresponding to the solid line in FIG. 9.
[00285] Этап 2: Определение на основе направления IDX направление смещения ab на основе начальной точки MV.[00285] Step 2: Determine, based on the IDX direction, the offset direction ab based on the starting point MV.
[00286] Этап 3: Определение на основе расстояния IDX количество элементов пикселей, которые смещены в направлении, указанном направлением IDX.[00286] Step 3: Determine, based on the IDX distance, the number of pixel elements that are offset in the direction indicated by the IDX direction.
[00287] Например, направление IDX == 00 и расстояние IDX=2 указывают, что вектор движения, который смещен на один элемент пикселя в положительном направлении X, используется в качестве вектора движения текущего блока изображения, чтобы спрогнозировать или получить прогнозируемое значение пикселя текущего блока изображения. Комбинированный внутрикадровый и межкадровый режимы:[00287] For example, direction IDX==00 and distance IDX=2 indicate that a motion vector that is shifted by one pixel element in the positive X direction is used as the motion vector of the current image block to predict or obtain the predicted pixel value of the current block Images. Combined intra-frame and inter-frame modes:
[00288] В блоке кодирования/CU, закодированном в режиме слияния (merge), может быть передан индикатор (например, ciip_flag), чтобы указать, используется ли режим комбинированного внутрикадрового и межкадрового прогнозирования (combined inter and intra prediction, CIIP) для текущего блока изображения. Когда используется режим CIIP, блок внутрикадрового прогнозирования может быть сформирован на основе режима внутрикадрового прогнозирования, выбранного из списка возможных режимов с внутрикадровым кодированием (intra candidate list) согласно соответствующему элементу синтаксиса, и блок межкадрового прогнозирования формируется с использованием обычного способа межкадрового прогнозирования. Наконец, способ адаптивного взвешивания используется для объединения блока прогнозирования с внутрикадровым кодированием и блока прогнозирования с межкадровым кодированием для формирования окончательного блока прогнозирования.[00288] In a merge-mode encoded encoding block/CU, an indicator (eg, ciip_flag) may be transmitted to indicate whether combined inter and intra prediction (CIIP) mode is being used for the current block Images. When the CIIP mode is used, the intra prediction block may be generated based on the intra prediction mode selected from the intra candidate list according to the corresponding syntax element, and the inter prediction block is generated using a conventional inter prediction method. Finally, an adaptive weighting method is used to combine an intra prediction block and an inter prediction block to form a final prediction block.
[00289] Для блока яркости список возможных режимов с внутрикадровым кодированием может быть выбран из четырех режимов: режима постоянного тока, плоского режима, горизонтального (горизонтального) режима и вертикального (вертикального) режима. Размер списка возможных режимов с внутрикадровым кодированием выбирается на основе формы текущего блока кодирования, и в списке возможных режимов с внутрикадровым кодированием может быть три или четыре режима. Когда ширина текущего блока кодирования/CU превышает высоту более чем в два раза, список внутрикадровых возможных режимов не включает горизонтальный режим. Когда высота текущего блока кодирования/CU превышает ширину более чем в два раза, список возможных режимов с внутрикадровым кодированием не включает вертикальный режим.[00289] For the luma block, the list of possible intra-frame encoded modes can be selected from four modes: constant current mode, flat mode, horizontal (horizontal) mode, and vertical (vertical) mode. The size of the list of possible intra-frame modes is selected based on the shape of the current coding block, and there may be three or four modes in the list of possible intra-frame modes. When the width of the current encoding block/CU is more than twice the height, the list of intra-frame possible modes does not include the horizontal mode. When the height of the current encoding block/CU is more than twice the width, the list of possible intra-frame modes does not include vertical mode.
[00290] В способе взвешивания, который объединяет внутрикадровое кодирование и межкадровое кодирование, разные весовые коэффициенты используются для разных режимов внутрикадрового прогнозирования. В частности, когда DC или планарный режим используется для внутрикадрового кодирования или когда длина или ширина текущего блока кодирования меньше или равна 4, то же значение веса/весовой коэффициент используется для предиктора, полученного посредством внутрикадрового прогнозирования и предиктор, полученный посредством межкадрового прогнозирования. В противном случае весовое значение/весовой коэффициент может быть определено на основе режима внутрикадрового прогнозирования, используемого текущим блоком, и/или местоположения выборки прогнозирования в текущем блоке. Например, переменный весовой коэффициент используется, когда горизонтальный и вертикальный режимы используются для внутрикадрового кодирования.[00290] In a weighting method that combines intra-frame coding and inter-frame coding, different weighting coefficients are used for different intra-frame prediction modes. In particular, when DC or planar mode is used for intra-frame encoding or when the length or width of the current encoding block is less than or equal to 4, the same weight value/weighting factor is used for the predictor obtained by intra-prediction and the predictor obtained by inter-prediction. Otherwise, the weight value/weighting factor may be determined based on the intra prediction mode used by the current block and/or the location of the prediction sample in the current block. For example, variable weighting is used when horizontal and vertical modes are used for intra-frame coding.
[00291] Режим блока прогнозирования треугольника:[00291] Triangle prediction block mode:
[00292] Режим блока прогнозирования треугольника (triangle prediction unit mode, triangle PU) может также называться режимом разделения треугольника (triangle partition mode, TPM) или режимом треугольника слияния. Для простоты описания в настоящей заявке режим блока прогнозирования треугольника или режим разделения треугольника кратко упоминается как TPM, что также применимо в дальнейшем.[00292] Triangle prediction unit mode (triangle PU) may also be referred to as triangle partition mode (TPM) or triangle merging mode. For ease of description, in the present application, the triangle prediction block mode or the triangle division mode is briefly referred to as TPM, which is also applicable hereinafter.
[00293] Как показано на фиг. 11, текущий блок изображения разделяется на два блока прогнозирования треугольника, и вектор движения и опорный индекс выбираются из списка возможного единое прогнозирование для каждого блока прогнозирования треугольника. Затем для каждого из двух блоков прогнозирования треугольника получается предиктор, и предиктор получается путем выполнения адаптивного взвешивания пикселя, включенного в каждую область гипотенузы. Затем процессы преобразования и квантования осуществляются для всего текущего блока изображения. Следует отметить, что способ блока прогнозирования треугольника обычно применяется только в режиме пропуска или в режиме слияния. Левая сторона фиг. 10 показывает режим разделения от верхнего левого угла к нижнему правому (другими словами, разделение от сверху слева вниз направо), а правая сторона фиг. 10 показывает режим разделения от верхнего правого к нижнему левому (другими словами, разделение сверху- справа вниз- налево). [00293] As shown in FIG. 11, the current image block is divided into two triangle prediction blocks, and a motion vector and a reference index are selected from a single prediction candidate list for each triangle prediction block. A predictor is then obtained for each of the two triangle prediction blocks, and the predictor is obtained by performing adaptive weighting on the pixel included in each hypotenuse region. The conversion and quantization processes are then carried out for the entire current image block. It should be noted that the triangle prediction block method is generally applied only in the skip mode or merge mode. Left side of fig. 10 shows the top left to bottom right division mode (in other words, top left to bottom right division), and the right side of FIG. 10 shows the top-right to bottom-left division mode (in other words, top-right-bottom-left division).
[00294] Список возможного единого прогнозирование в режиме блока прогнозирования треугольника обычно может включать в себя пять прогнозируемых возможных векторов движения. Эти прогнозируемые возможные векторы движения получаются, например, с использованием семи периферийных соседних блоков (пяти пространственных соседних блоков и двух совместно расположенных во времени блоков) на фиг. 5. Ищется информация о движении семи соседних блоков, и семь соседних блоков помещаются в список возможного единого прогнозирования в последовательности. Например, последовательность может быть вектором движения с двойным прогнозированием в L0, вектором движения с двойным прогнозированием в L1 и средним значением векторов движения в L0 и L1. Если имеется менее пяти возможных, нулевой вектор движения 0 добавляется в список возможного единого прогнозирования. Во время кодирования список возможного единого прогнозирования получается вышеизложенным способом. Например, в списке возможного единого прогнозирования информация движения с прямым прогнозированием используется для прогнозирования пиксельного предиктора одного треугольника PU, а информация движения с обратным прогнозированием используется для прогнозирования пиксельного предиктора другого треугольника PU. Сторона кодера выбирает оптимальный вектор движения путем обхода. Например, можно использовать следующий способ {m, i, j}:[00294] The possible single prediction list in the triangle prediction block mode may typically include five predicted possible motion vectors. These predicted possible motion vectors are obtained, for example, using seven peripheral neighboring blocks (five spatial neighboring blocks and two temporally co-located blocks) in FIG. 5. Information about the movement of seven neighboring blocks is sought, and the seven neighboring blocks are placed in a list of possible single predictions in the sequence. For example, the sequence may be a dual-prediction motion vector in L0, a dual-prediction motion vector in L1, and the average of the motion vectors in L0 and L1. If there are fewer than five possible ones, the null motion vector 0 is added to the list of possible single predictions. During encoding, a list of possible single predictions is obtained in the above manner. For example, in the candidate single prediction list, forward prediction motion information is used to predict a pixel predictor of one triangle PU, and backward motion information is used to predict a pixel predictor of another triangle PU. The encoder side selects the optimal motion vector by traversal. For example, you can use the following {m, i, j} method:
{ 0, 1, 0 }, { 1, 0, 1 }, { 1, 0, 2 }, { 0, 0, 1 }, { 0, 2, 0 }{ 0, 1, 0 }, { 1, 0, 1 }, { 1, 0, 2 }, { 0, 0, 1 }, { 0, 2, 0 }
{ 1, 0, 3 }, { 1, 0, 4 }, { 1, 1, 0 }, { 0, 3, 0 }, { 0, 4, 0 }{ 1, 0, 3 }, { 1, 0, 4 }, { 1, 1, 0 }, { 0, 3, 0 }, { 0, 4, 0 }
{ 0, 0, 2 }, { 0, 1, 2 }, { 1, 1, 2 }, { 0, 0, 4 }, { 0, 0, 3 }{ 0, 0, 2 }, { 0, 1, 2 }, { 1, 1, 2 }, { 0, 0, 4 }, { 0, 0, 3 }
{ 0, 1, 3 }, { 0, 1, 4 }, { 1, 1, 4 }, { 1, 1, 3 }, { 1, 2, 1 }{ 0, 1, 3 }, { 0, 1, 4 }, { 1, 1, 4 }, { 1, 1, 3 }, { 1, 2, 1 }
{ 1, 2, 0 }, { 0, 2, 1 }, { 0, 4, 3 }, { 1, 3, 0 }, { 1, 3, 2 }{ 1, 2, 0 }, { 0, 2, 1 }, { 0, 4, 3 }, { 1, 3, 0 }, { 1, 3, 2 }
{ 1, 3, 4 }, { 1, 4, 0 }, { 1, 3, 1 }, { 1, 2, 3 }, { 1, 4, 1 }{ 1, 3, 4 }, { 1, 4, 0 }, { 1, 3, 1 }, { 1, 2, 3 }, { 1, 4, 1 }
{ 0, 4, 1 }, { 0, 2, 3 }, { 1, 4, 2 }, { 0, 3, 2 }, { 1, 4, 3 }{ 0, 4, 1 }, { 0, 2, 3 }, { 1, 4, 2 }, { 0, 3, 2 }, { 1, 4, 3 }
{ 0, 3, 1 }, { 0, 2, 4 }, { 1, 2, 4 }, { 0, 4, 2 }, { 0, 3, 4 }{ 0, 3, 1 }, { 0, 2, 4 }, { 1, 2, 4 }, { 0, 4, 2 }, { 0, 3, 4 }
где в { m, i, j}, m в первом положении представляет режим разделения сверху слева - вниз направа или режим разделения сверху справа - вниз налево, второе местоположение представляет информацию о поступательном движении i-го прогнозируемого возможного вектора движения, используемого для первого треугольника PU, а третье местоположение представляет информацию о движении назад j-го прогнозируемого возможного вектора движения, используемого для второго треугольника PU.where in { m, i, j}, m in the first position represents the top-left-down-right split mode or the top-right-down-left split mode, the second location represents the forward motion information of the ith predicted possible motion vector used for the first triangle PU, and the third location represents backward motion information of the jth predicted possible motion vector used for the second triangle PU.
[00295] Для процесса адаптивного взвешивания, осуществляемого на основе предиктора пикселя, включенного в область гипотенузы, см. фиг. 11. После того, как прогнозирование для блоков P1 и P2 прогнозирования треугольника завершено, процесс адаптивного взвешивания осуществляется для пикселя, включенного в область гипотенузы, чтобы получить окончательный предиктор текущего блока изображения.[00295] For an adaptive weighting process performed based on a pixel predictor included in the hypotenuse region, see FIG. 11. After the prediction for triangle prediction blocks P1 and P2 is completed, the adaptive weighting process is carried out for pixel included in the hypotenuse region to obtain the final predictor of the current image block.
[00296] Например, на изображении слева на фиг. 11, предиктором пикселя в местоположении 2 является
[00297] Два набора взвешенных параметров:[00297] Two sets of weighted parameters:
[00298] Первый набор взвешенных параметров, {7/8, 6/8, 4/8, 2/8, 1/8} и {7/8, 4/8, 1/8}, используется для точек яркости и цветности, соответственно.[00298] The first set of weighted parameters, {7/8, 6/8, 4/8, 2/8, 1/8} and {7/8, 4/8, 1/8}, are used for the luma and chrominance points , respectively.
[00299] Второй набор взвешенных параметров, {7/8, 6/8, 5/8, 4/8, 3/8, 2/8, 1/8} и {6/8, 4/8, 2/8}, используются для точек яркости и цветности соответственно.[00299] Second set of weighted parameters, {7/8, 6/8, 5/8, 4/8, 3/8, 2/8, 1/8} and {6/8, 4/8, 2/8 } are used for luma and chrominance points, respectively.
[00300] Один набор взвешенных параметров используется для кодирования и декодирования текущего блока изображения. Когда опорные изображения двух блоков прогнозирования различны или разность векторов движения между двумя блоками прогнозирования превышает 16 пикселей, выбирается второй набор взвешенных параметров; в противном случае используется первый набор взвешенных параметров.[00300] One set of weighted parameters is used to encode and decode the current image block. When the reference images of two prediction blocks are different or the difference of motion vectors between two prediction blocks exceeds 16 pixels, a second set of weighted parameters is selected; otherwise, the first set of weighted parameters is used.
[00301] Фиг. 12 - схематическая блок-схема системы видеосвязи согласно варианту осуществления настоящей заявки.[00301] FIG. 12 is a schematic block diagram of a video communication system according to an embodiment of the present application.
[00302] Система 500 видеосвязи, показанная на фиг. 12 включает в себя устройство-источник 600 и целевое устройство 700. Устройство-источник 600 может кодировать полученное видео и передавать кодированный видеопоток битов на устройство 700 приема. Целевое устройство 700 может анализировать принятый видеопоток битов, чтобы получить видеоизображение, и отображать видео посредством устройства отображения.[00302] The video communication system 500 shown in FIG. 12 includes a source device 600 and a target device 700. The source device 600 may encode the received video and transmit the encoded video bit stream to the receiving device 700. The target device 700 may analyze the received video bit stream to obtain a video image and display the video by a display device.
[00303] Способ прогнозирования изображения в вариантах осуществления настоящей заявки может выполняться устройством-источником 600 или целевым устройством 700. В частности, способ прогнозирования изображения в вариантах осуществления настоящей заявки может выполняться видеокодером 603 или видеодекодером 702.[00303] The image prediction method in embodiments of the present application may be performed by a source device 600 or a target device 700. Specifically, the image prediction method in embodiments of the present application may be performed by a video encoder 603 or a video decoder 702.
[00304] Система 500 видеосвязи также может называться системой кодирования видео. Устройство-источник 600 также может называться аппаратом кодирования видео или устройством кодирования видео. Целевое устройство 700 также может называться аппаратом декодирования видео или устройством декодирования видео.[00304] The video communication system 500 may also be referred to as a video encoding system. The source device 600 may also be referred to as a video encoding apparatus or video encoding apparatus. The target device 700 may also be referred to as a video decoding apparatus or a video decoding apparatus.
[00305] На фиг. 12, устройство-источник 600 включает в себя устройство 601 захвата видео, видеопамять 602, видеокодер 603 и передатчик 604. Видеопамять 602 может хранить видео, полученное устройством 601 захвата видео. Видеокодер 603 может кодировать видеоданные из видеопамяти 602 и устройства 601 захвата видео. В некоторых примерах устройство-источник 600 напрямую передает закодированные видеоданные в целевое устройство 700 через передатчик 604. Кодированные видеоданные могут дополнительно храниться на носителе данных или на файловом сервере, так что целевое устройство 700 извлекает закодированные видеоданные позже для декодирования и/или воспроизведения.[00305] In FIG. 12, the source device 600 includes a video capture device 601, a video memory 602, a video encoder 603, and a transmitter 604. The video memory 602 may store video acquired by the video capture device 601. Video encoder 603 may encode video data from video memory 602 and video capture device 601. In some examples, source device 600 directly transmits encoded video data to target device 700 via transmitter 604. The encoded video data may further be stored on a storage medium or file server such that target device 700 retrieves the encoded video data later for decoding and/or playback.
[00306] На фиг. 12, целевое устройство 700 включает в себя приемник 701, видеодекодер 702 и устройство 703 отображения. В некоторых примерах приемник 701 может принимать закодированные видеоданные через канал 800. Устройство 703 отображения может быть интегрировано с целевым устройством 700 или может находиться вне целевого устройства 7000. Обычно устройство 703 отображения отображает декодированные видеоданные. Устройство 703 отображения может включать в себя множество типов устройств отображения, таких как жидкокристаллический дисплей, плазменный дисплей, дисплей на органических светодиодах или другой тип устройства отображения.[00306] In FIG. 12, target device 700 includes a receiver 701, a video decoder 702, and a display device 703. In some examples, receiver 701 may receive encoded video data via channel 800. Display device 703 may be integrated with target device 700 or may be located outside of
[00307] Конкретные реализации устройства-источника 600 и целевого устройства 700 могут быть любым из следующих устройств: настольный компьютер, мобильное вычислительное устройство, ноутбук (например, портативный компьютер), планшетный компьютер, телеприставка, смартфон, телефонная трубка, телевизор, фотоаппарат, устройство отображения, цифровой медиаплеер, игровая консоль, установленный на транспортном средстве компьютер или другое подобное устройство.[00307] Specific implementations of source device 600 and target device 700 may be any of the following devices: desktop computer, mobile computing device, laptop (e.g., laptop), tablet computer, set-top box, smartphone, handset, television, camera, device display, digital media player, game console, vehicle-mounted computer or other similar device.
[00308] Целевое устройство 700 может принимать кодированные видеоданные от устройства-источника 600 по каналу 800. Канал 800 может включать в себя один или более носителей и/или устройств, которые могут перемещать кодированные видеоданные от устройства-источника 600 к целевому устройству 700. В одном примере канал 800 может включать в себя одну или более сред передачи данных, которые могут позволить устройству-источнику 600 напрямую передавать закодированные видеоданные в целевое устройство 700 в реальном времени. В этом примере устройство-источник 600 может модулировать кодированные видеоданные в соответствии со стандартом связи (например, протоколом беспроводной связи) и может передавать модулированные видеоданные на целевое устройство 700. Одна или более сред связи могут включать в себя беспроводные и/или проводные среды связи, например, радиочастотный (radio frequency, RF) спектр или одну или более физических линий передачи. Одна или более коммуникационных сред могут образовывать часть сети на основе пакетов (например, локальную сеть, глобальную сеть или глобальную сеть (например, Интернет)). Одна или более сред связи могут включать в себя маршрутизатор, коммутатор, базовую станцию или другое устройство, реализующее связь между устройством-источником 600 и целевым устройством 700.[00308] A target device 700 may receive encoded video data from a source device 600 on a channel 800. The channel 800 may include one or more media and/or devices that can move encoded video data from a source device 600 to a target device 700. In one example, channel 800 may include one or more transmission media that may allow source device 600 to directly transmit encoded video data to target device 700 in real time. In this example, source device 600 may modulate encoded video data in accordance with a communication standard (e.g., a wireless communication protocol) and may transmit the modulated video data to target device 700. One or more communication media may include wireless and/or wired communication media, for example, radio frequency (RF) spectrum or one or more physical transmission lines. One or more communication media may form part of a packet-based network (eg, a local area network, a wide area network, or a wide area network (eg, the Internet)). The one or more communication media may include a router, switch, base station, or other device that implements communication between source device 600 and target device 700.
[00309] В другом примере канал 800 может включать в себя носитель данных, на котором хранятся кодированные видеоданные, сформированные устройством-источником 600. В этом примере целевое устройство 700 может получить доступ к носителю данных через доступ к диску или доступ к карте. Носитель данных может включать в себя множество локально доступных носителей данных, таких как Blu-ray, цифровой видеодиск высокой плотности (digital video disc, DVD), постоянное запоминающее устройство для компакт- диска (compact disc read-only memory, CD- ROM), флэш-память или другой подходящий цифровой носитель данных, выполненный с возможностью хранения кодированных видеоданных.[00309] In another example, channel 800 may include a storage medium on which encoded video data generated by source device 600 is stored. In this example, target device 700 may access the storage medium via disk access or card access. The storage medium may include a variety of locally available storage media, such as Blu-ray, digital video disc (DVD), compact disc read-only memory (CD-ROM), flash memory or other suitable digital storage medium configured to store encoded video data.
[00310] В другом примере канал 800 может включать в себя файловый сервер или другое промежуточное запоминающее устройство, в котором хранятся кодированные видеоданные, сформированные устройством-источником 600. В этом примере целевое устройство 700 может осуществлять доступ посредством потоковой передачи или загрузки к кодированным видеоданным, хранящимся на файловом сервере или другом промежуточном устройстве хранения. Файловый сервер может относиться к типу сервера, который может хранить кодированные видеоданные и передавать закодированные видеоданные на целевое устройство 700. Например, файловый сервер может включать в себя сервер глобальной сети связи (World Wide Web, Web) (например, используемый для веб-сайта), сервер протокола передачи файлов (file transfer protocol, FTP), сетевое хранилище (network attached storage, NAS) и локальный диск.[00310] In another example, channel 800 may include a file server or other intermediate storage device that stores encoded video data generated by source device 600. In this example, target device 700 may access, by streaming or downloading, the encoded video data stored on a file server or other intermediate storage device. A file server may be a type of server that can store encoded video data and transmit the encoded video data to a target device 700. For example, the file server may include a World Wide Web (Web) server (for example, used for a website) , file transfer protocol (FTP) server, network attached storage (NAS) and local disk.
[00311] Целевое устройство 700 может получить доступ к кодированным видеоданным через стандартное соединение для передачи данных (например, Интернет-соединение). Примерный тип соединения для передачи данных включает в себя беспроводной канал, проводное соединение (например, кабельный модем) или их комбинацию, которая подходит для доступа к кодированным видеоданным, хранящимся на файловом сервере. Передача закодированных видеоданных с файлового сервера может быть потоковой передачей, загрузкой или их комбинацией.[00311] Target device 700 can access encoded video data over a standard data connection (eg, an Internet connection). An exemplary data connection type includes a wireless link, a wired connection (eg, a cable modem), or a combination thereof that is suitable for accessing encoded video data stored on a file server. The transfer of encoded video data from a file server can be streaming, downloading, or a combination of both.
[00312] Далее подробно описывается способ прогнозирования изображения в вариантах осуществления настоящей заявки со ссылкой на конкретные сопроводительные чертежи.[00312] The image prediction method in embodiments of the present application is described in detail below with reference to specific accompanying drawings.
[00313] Фиг. 13 - схематическая блок-схема способа прогнозирования изображения согласно варианту осуществления настоящей заявки. Способ прогнозирования изображения, показанный на фиг. 13, может выполняться устройством прогнозирования изображения (устройство прогнозирования изображения может быть расположено в устройстве (системе) кодирования изображения или устройстве (системе) декодирования изображения). В частности, способ, показанный на фиг. 13, может выполняться устройством кодирования изображения или устройством декодирования изображения. Способ, показанный на фиг. 13 может выполняться на стороне кодера или может выполняться на стороне декодера. Способ, показанный на фиг. 13 включает в себя этапы 1001-1008. Ниже приводится подробное описание этих этапов. [00313] FIG. 13 is a schematic flow diagram of an image prediction method according to an embodiment of the present application. The image prediction method shown in FIG. 13 may be performed by an image prediction device (the image prediction device may be located in an image encoding device (system) or an image decoding device (system). In particular, the method shown in FIG. 13 may be performed by an image encoding device or an image decoding device. The method shown in FIG. 13 may be performed on the encoder side or may be performed on the decoder side. The method shown in FIG. 13 includes steps 1001-1008. Below is a detailed description of these steps.
[00314] 1001: Начало.[00314] 1001: Start.
[00315] Этап 1001 указывает, что прогнозирование изображения начинается.[00315] Step 1001 indicates that image prediction begins.
[00316] 1002: Определение того, используется ли режим слияния для текущего блока изображения.[00316] 1002: Determines whether merge mode is used for the current image block.
[00317] Необязательно, способ, показанный на фиг. 13 дополнительно включает в себя: получение текущего блока изображения перед этапом 1002.[00317] Optionally, the method shown in FIG. 13 further includes: obtaining the current image block before step 1002.
[00318] Текущий блок изображения может быть блоком изображения в текущем кодируемом или декодируемом изображении.[00318] The current image block may be an image block in the current image being encoded or decoded.
[00319] Следует понимать, что в настоящей заявке текущий блок изображения может быть получен в процессе определения целевого режима слияния текущего блока изображения или после определения целевого режима слияния текущего блока изображения.[00319] It should be understood that in the present application, the current image block may be obtained during the process of determining the merge target mode of the current image block or after determining the merge target mode of the current image block.
[00320] Для стороны декодера на этапе 1002 может быть определено, используется ли режим слияния для текущего блока изображения, на основе элемента синтаксиса уровня CU merge_flag [ x0] [ y0].[00320] For the decoder side, at step 1002, it can be determined whether the merge mode is being used for the current image block based on the CU level syntax element merge_flag[x0][y0].
[00321] Если merge_flag[x0][y0]=1, определяется, что режим слияния используется для прогнозирования текущего блока изображения. Если merge_flag[x0][y0]=1, определяется, что режим слияния не используется для прогнозирования текущего блока изображения. x0 и y0 представляют собой координаты местоположения элемента пикселя яркости в верхнем левом углу текущего блока изображения относительно элемента пикселя яркости в верхнем левом углу текущего изображения.[00321] If merge_flag[x0][y0]=1, it is determined that the merge mode is used to predict the current image block. If merge_flag[x0][y0]=1, it is determined that the merge mode is not used to predict the current image block. x0 and y0 represent the coordinates of the location of the luminance pixel element in the upper left corner of the current image block relative to the luminance pixel element in the upper left corner of the current image.
[00322] После определения, на основе элемента синтаксиса уровня CU merge_flag[x0][y0], что режим слияния используется для текущего блока изображения, целевой режим слияния, который в конечном итоге используется, может быть определен путем анализа конкретной информации в элемент синтаксиса уровня CU merge_flag[x0][y0].[00322] After determining, based on the CU level syntax element merge_flag[x0][y0], that the merge mode is being used for the current image block, the target merge mode that is ultimately used can be determined by parsing specific information into the level syntax element CU merge_flag[x0][y0].
[00323] Когда на этапе 1002 определяется, что режим слияния не используется для текущего блока изображения, для прогнозирования текущего блока изображения может использоваться другой режим, отличный от режима слияния. Например, когда определено, что режим слияния не используется для текущего блока изображения, режим AMVP может использоваться для прогнозирования текущего блока изображения.[00323] When it is determined at step 1002 that the merge mode is not used for the current image block, a mode other than the merge mode may be used to predict the current image block. For example, when it is determined that the merge mode is not used for the current image block, the AMVP mode may be used to predict the current image block.
[00324] После того, как на этапе 1002 определено, что режим слияния используется для текущего блока изображения, этап 1003 продолжает осуществляться для определения целевого режима слияния, применимого к текущему блоку изображения.[00324] After it is determined at step 1002 that the merge mode is used for the current image block, step 1003 continues to determine the target merge mode applicable to the current image block.
[00325] 1003: Определение того, следует ли использовать режим слияния уровня-1.[00325] 1003: Determine whether to use layer-1 merge mode.
[00326] В частности, то, доступен ли режим слияния уровня-1 может быть определено на основе элемента синтаксиса высокого уровня, соответствующего режиму слияния уровня-1, и/или информации о доступном статусе, соответствующей режиму слияния уровня-1.[00326] Specifically, whether the layer-1 merge mode is available can be determined based on a high-level syntax element corresponding to the layer-1 merge mode and/or available status information corresponding to the layer-1 merge mode.
[00327] В возможной реализации настоящего изобретения предполагается, что режим слияния уровня-1 включает в себя всего два режима слияния: режим слияния A и режим слияния B. В этом случае, есть ли доступный режим слияния уровня-1 режим слияния определяется по одному. Если есть доступный режим слияния, осуществляется этап 1005. Если режим слияния недоступен в режиме слияния уровня-1, определяется, что режим слияния уровня-1 недоступен. В этом случае целевой режим слияния должен быть определен из режима слияния уровня-2. Другими словами, осуществляется этап 1004.[00327] In an exemplary implementation of the present invention, it is assumed that the layer-1 merge mode includes only two merge modes: merge mode A and merge mode B. In this case, whether there is a layer-1 merge mode available is determined by the merge mode one by one. If there is a merge mode available, step 1005 occurs. If the merge mode is not available in the layer-1 merge mode, it is determined that the layer-1 merge mode is not available. In this case, the target merge mode must be determined from the layer-2 merge mode. In other words, step 1004 occurs.
[00328] 1004: Определение того, указывает ли элемент синтаксиса высокого уровня, соответствующий первому режиму слияния, на то, что использование первого режима слияния запрещено.[00328] 1004: Determine whether the high-level syntax element corresponding to the first merge mode indicates that use of the first merge mode is prohibited.
[00329] Первый режим слияния принадлежит режиму слияния уровня-2, а режим слияния уровня-2 дополнительно включает в себя второй режим слияния.[00329] The first merging mode belongs to the layer-2 merging mode, and the layer-2 merging mode further includes a second merging mode.
[00330] Когда на этапе 1004 определяется, что элемент синтаксиса высокого уровня, соответствующий первому режиму слияния, указывает, что использование первого режима слияния запрещено, выполняется этап 1006 для определения второго режима слияния как целевого режима слияния.[00330] When it is determined at step 1004 that the high-level syntax element corresponding to the first merge mode indicates that use of the first merge mode is prohibited, step 1006 is executed to determine the second merge mode as the target merge mode.
[00331] В настоящей заявке, когда элемент синтаксиса высокого уровня первого режима слияния указывает, что использование первого режима слияния запрещено, нет необходимости анализировать информацию о доступном статусе оставшегося второго режима слияния, и второй режим слияния может напрямую определяться как окончательный целевой режим слияния. Это может уменьшить, насколько это возможно, избыточность, вызванную определением целевого режима слияния в процессе прогнозирования изображения. [00331] In the present application, when the high-level syntax element of the first merge mode indicates that the use of the first merge mode is prohibited, there is no need to analyze the available status information of the remaining second merge mode, and the second merge mode can be directly determined as the final target merge mode. This can reduce as much as possible the redundancy caused by determining the target fusion mode in the image prediction process.
[00332] Когда на этапе 1004 определяется, что элемент синтаксиса высокого уровня, соответствующий первому режиму слияния, указывает, что разрешено использовать первый режим слияния, выполняется этап 1007, чтобы дополнительно определить целевой режим слияния.[00332] When it is determined at step 1004 that the high-level syntax element corresponding to the first merge mode indicates that the first merge mode is enabled, step 1007 is executed to further determine the target merge mode.
[00333] 1005: Прогнозирование текущего блока изображения на основе режима слияния уровня-1.[00333] 1005: Predict the current image block based on the layer-1 merge mode.
[00334] Следует понимать, что на этапе 1005, если доступен режим слияния A в режиме слияния уровня-1, текущий блок изображения прогнозируется на основе режима слияния A.[00334] It should be understood that at step 1005, if merge mode A is available in layer-1 merge mode, the current image block is predicted based on merge mode A.
[00335] 1006: Определение второго режима слияния как целевого режима слияния, применимого к текущему блоку изображения.[00335] 1006: Determine the second merge mode as the target merge mode applicable to the current image block.
[00336] Когда элемент синтаксиса высокого уровня, соответствующий первому режиму слияния, указывает, что первый режим слияния запрещено использовать, нет необходимости анализировать элемент синтаксиса высокого уровня и/или информацию о доступном статусе, соответствующую второму режиму слияния, и второй режим слияния может быть напрямую определен как целевой режим слияния.[00336] When the high-level syntax element corresponding to the first merge mode indicates that the first merge mode is prohibited from being used, there is no need to parse the high-level syntax element and/or available status information corresponding to the second merge mode, and the second merge mode can be directly defined as the target merge mode.
[00337] 1007: Определение целевого режима слияния на основе элемента синтаксиса высокого уровня, соответствующего второму режиму слияния, и/или информации о доступном статусе второго режима слияния.[00337] 1007: Determine the target merge mode based on a high-level syntax element corresponding to the second merge mode and/or information about the available status of the second merge mode.
[00338] Информация о доступном статусе второго режима слияния используется, чтобы указать, используется ли второй режим слияния, когда прогнозируется текущий блок изображения.[00338] Information about the available status of the second merge mode is used to indicate whether the second merge mode is used when the current image block is predicted.
[00339] Например, второй режим слияния - это режим CIIP, а информация о доступном статусе второго режима слияния - это значение ciip_flag. Когда ciip_flag равен 0, режим CIIP не используется для текущего блока изображения. Когда ciip_flag равен 1, режим CIIP используется для прогнозирования текущего блока изображения.[00339] For example, the second merge mode is the CIIP mode, and the available status information of the second merge mode is the ciip_flag value. When ciip_flag is 0, CIIP mode is not used for the current image block. When ciip_flag is 1, CIIP mode is used to predict the current image block.
[00340] Следует понимать, что для режима CIIP, если режим CIIP должен быть выбран в качестве целевого режима слияния, элемент синтаксиса высокого уровня, соответствующий CIIP, должен указывать, что режим CIIP разрешен для использования и информация о доступном статусе, указывающая на доступный статус режима CIIP, должна указывать, что CIIP доступен.[00340] It should be understood that for the CIIP mode, if the CIIP mode is to be selected as the target merge mode, the high-level syntax element corresponding to CIIP must indicate that the CIIP mode is enabled for use and available status information indicating the available status CIIP mode must indicate that CIIP is available.
[00341] Например, когда sps_ciip_enabled_flag=1 и ciip_flag=1, режим CIIP может быть определен как целевой режим слияния текущего блока изображения.[00341] For example, when sps_ciip_enabled_flag=1 and ciip_flag=1, the CIIP mode can be determined as the merge target mode of the current image block.
[00342] На этапе 1007, поскольку разрешено использовать первый режим слияния, как первый режим слияния, так и второй режим слияния могут использоваться в качестве целевого режима слияния текущего блока изображения. Следовательно, целевой режим слияния может быть определен из режима слияния уровня-2 на основе синтаксиса высокого уровня и информации о доступном статусе, которые соответствуют одному из режимов слияния.[00342] At step 1007, since the first merge mode is enabled, both the first merge mode and the second merge mode can be used as the merge target mode of the current image block. Therefore, the target merge mode can be determined from the layer-2 merge mode based on the high-level syntax and available status information that corresponds to one of the merge modes.
[00343] Необязательно, первый режим слияния - это режим TPM, а второй режим слияния - это режим CIIP.[00343] Optionally, the first merge mode is the TPM mode and the second merge mode is the CIIP mode.
[00344] Ниже подробно описано, как определить целевой режим слияния, когда первый режим слияния является режимом TPM, а второй режим слияния - режимом CIIP.[00344] The following describes in detail how to determine the target merge mode when the first merge mode is a TPM mode and the second merge mode is a CIIP mode.
[00345] Необязательно, когда элемент синтаксиса высокого уровня, соответствующий режиму TPM, указывает, что режим TPM запрещено использовать, режим CIIP определяется как целевой режим слияния.[00345] Optionally, when a high-level syntax element corresponding to a TPM mode indicates that the TPM mode is prohibited from being used, the CIIP mode is defined as the target merge mode.
[00346] Например, когда sps_triangle_enabled_flag, соответствующий режиму TPM, равен 0, использование режима TPM запрещено. В этом случае нет необходимости анализировать конкретное значение ciip_flag. Вместо этого режим CIIP может быть напрямую определен как целевой режим слияния. Таким образом можно сократить ненужный процесс синтаксического анализа и уменьшить избыточность решения.[00346] For example, when the sps_triangle_enabled_flag corresponding to the TPM mode is 0, use of the TPM mode is disabled. In this case, there is no need to analyze the specific ciip_flag value. Instead, the CIIP mode can be directly defined as the target merge mode. This way, you can reduce unnecessary parsing process and reduce solution redundancy.
[00347] В настоящей заявке, когда элемент синтаксиса высокого уровня, соответствующий режиму TPM, указывает, что режим TPM запрещено использовать, нет необходимости определять, анализируя синтаксис высокого уровня, соответствующий режиму CIIP, и/или информацию о доступном статусе, указывающую на доступный статус режима CIIP, а также на то, доступен ли режим CIIP. Вместо этого режим CIIP может быть напрямую определен как целевой режим слияния. Это может уменьшить избыточность в процессе определения целевого режима слияния. [00347] In the present application, when a high-level syntax element corresponding to a TPM mode indicates that the TPM mode is prohibited from being used, it is not necessary to determine by analyzing the high-level syntax corresponding to the CIIP mode and/or the available status information indicating the available status CIIP mode and whether CIIP mode is available. Instead, the CIIP mode can be directly defined as the target merge mode. This can reduce redundancy in the process of determining the target merge mode.
[00348] Необязательно, когда элемент синтаксиса высокого уровня, соответствующий режиму TPM, указывает, что режим TPM разрешен для использования, целевой режим слияния определяется на основе элемента синтаксиса высокого уровня, соответствующего режиму CIIP, и/или информации о доступном статусе, указывающей на доступный статус режима CIIP.[00348] Optionally, when the high-level syntax element corresponding to the TPM mode indicates that the TPM mode is enabled for use, the target merge mode is determined based on the high-level syntax element corresponding to the CIIP mode and/or available status information indicating available CIIP mode status.
[00349] Например, когда sps_triangle_enabled_flag, соответствующий режиму TPM, равен 1, режим TPM может использоваться. В этом случае как режим TPM, так и режим CIIP могут использоваться в качестве целевого режима слияния. Следовательно, необходимо дополнительно определить, следует ли выбрать режим TPM или режим CIIP в качестве целевого режима слияния.[00349] For example, when the sps_triangle_enabled_flag corresponding to the TPM mode is 1, the TPM mode can be used. In this case, both TPM mode and CIIP mode can be used as the target merge mode. Therefore, it is necessary to further determine whether to select TPM mode or CIIP mode as the target merge mode.
[00350] Необязательно, когда элемент синтаксиса высокого уровня, соответствующий режиму CIIP и/или информация о доступном статусе, которая указывает доступный статус режима CIIP, указывает/указывают, что режим CIIP запрещено использовать, режим TPM определяется как целевой режим слияния.[00350] Optionally, when the high-level syntax element corresponding to the CIIP mode and/or the available status information that indicates the available status of the CIIP mode indicates/indicates that the CIIP mode is prohibited from being used, the TPM mode is determined to be the target merge mode.
[00351] То, что элемент синтаксиса высокого уровня, соответствующий режиму CIIP, и/или информация о доступном статусе, которая указывает доступный статус режима CIIP, указывает/указывают, что режим CIIP запрещено использовать, включает в себя случаи с 1 по 3:[00351] That the high-level syntax element corresponding to the CIIP mode and/or the available status information that indicates the available status of the CIIP mode indicates that the CIIP mode is prohibited from being used includes
[00352] Случай 1: Элемент синтаксиса высокого уровня, соответствующий режиму CIIP, указывает, что режим CIIP запрещено использовать, а информация о доступном статусе, которая указывает доступный статус режима CIIP, указывает, что режим CIIP недоступен.[00352] Case 1: The high-level syntax element corresponding to the CIIP mode indicates that the CIIP mode is prohibited from being used, and the available status information, which indicates the available status of the CIIP mode, indicates that the CIIP mode is not available.
[00353] Случай 2: Элемент синтаксиса высокого уровня, соответствующий режиму CIIP, указывает, что режим CIIP разрешен для использования, а информация о доступном статусе, которая указывает доступный статус режима CIIP, указывает, что режим CIIP недоступен.[00353] Case 2: The high-level syntax element corresponding to the CIIP mode indicates that the CIIP mode is enabled for use, and the available status information, which indicates the available status of the CIIP mode, indicates that the CIIP mode is not available.
[00354] Случай 3: Информация о доступном статусе, которая указывает доступный статус режима CIIP, указывает, что режим CIIP недоступен.[00354] Case 3: The available status information, which indicates the available status of the CIIP mode, indicates that the CIIP mode is not available.
[00355] Необязательно, когда элемент синтаксиса высокого уровня, соответствующий режиму CIIP, указывает, что режим CIIP разрешен для использования, а информация о доступном статусе, которая указывает доступный статус режима CIIP, указывает, что режим CIIP доступен, режим CIIP определяется как целевой режим слияния.[00355] Optionally, when a high-level syntax element corresponding to a CIIP mode indicates that the CIIP mode is enabled for use, and the available status information that indicates the available status of the CIIP mode indicates that the CIIP mode is available, the CIIP mode is determined to be the target mode mergers.
[00356] 1008: Прогнозирование текущего блока изображения на основе целевого режима слияния.[00356] 1008: Predict the current image block based on the target merge mode.
[00357] В способе, показанном на фиг. 13, перед выполнением этапа 1007 способ, показанный на фиг. 13 дополнительно включает в себя: определение того, что типом фрагмента или группы фрагментов, в которых расположен текущий блок изображения, является B; и определение того, что максимальное количество возможных режимов TPM, поддерживаемое фрагментом или группой фрагментов, в которых расположен текущий блок изображения, больше или равно 2.[00357] In the method shown in FIG. 13, before performing step 1007, the method shown in FIG. 13 further includes: determining that the type of the tile or group of tiles in which the current image block is located is B; and determining that the maximum number of possible TPM modes supported by the tile or group of tiles in which the current image block is located is greater than or equal to 2.
[00358] Необязательно, прежде чем целевой режим слияния будет определен на основе элемента синтаксиса высокого уровня, соответствующего режиму CIIP, и/или информации о доступном статусе, которая указывает доступный статус режима CIIP, способ дополнительно включает в себя: определение того, что тип фрагмента или группа фрагментов, в которых расположен текущий блок изображения, - это B; и определение того, что максимальное количество возможных режимов TPM, поддерживаемое фрагментом или группой фрагментов, в которых расположен текущий блок изображения, больше или равно 2.[00358] Optionally, before the target merge mode is determined based on a high-level syntax element corresponding to the CIIP mode and/or available status information that indicates the available status of the CIIP mode, the method further includes: determining that the fragment type or the group of fragments in which the current image block is located is B; and determining that the maximum number of possible TPM modes supported by the tile or group of tiles in which the current image block is located is greater than or equal to 2.
[00359] Необязательно, в варианте осуществления способ, показанный на фиг. 13 дополнительно включает в себя: когда режим слияния уровня-1 недоступен, и элемент синтаксиса высокого уровня, соответствующий режиму TPM, указывает, что режим TPM разрешено использовать, но текущий блок изображения не соответствует по меньшей мере одному из условия A и условия B, режим CIIP определяется как целевой режим слияния.[00359] Optionally, in an embodiment, the method shown in FIG. 13 further includes: when the layer-1 merge mode is not available and the high-level syntax element corresponding to the TPM mode indicates that the TPM mode is allowed to be used, but the current image block does not meet at least one of condition A and condition B, the mode CIIP is defined as the target fusion mode.
[00360] Условие A и условие B следующие:[00360] Condition A and condition B are as follows:
[00361] Условие A: Тип фрагмента, в котором расположен текущий блок изображения, - B.[00361] Condition A: The fragment type in which the current image block is located is B.
[00362] Условие B: максимальное количество возможных режимов TPM, поддерживаемое фрагментом или группой фрагментов, в которых расположен текущий блок изображения, больше или равно 2.[00362] Condition B: The maximum number of possible TPM modes supported by the tile or group of tiles in which the current image block is located is greater than or equal to 2.
[00363] Статус A и условие B могут быть представлены некоторыми конкретными способами. Например, условие A может быть конкретно представлено параметром slice_type == B, а условие B может быть конкретно представлено параметром MaxNumTriangleMergeCand ≥ 2. MaxNumTriangleMergeCand указывает максимальное количество возможных режимов TPM, поддерживаемое фрагментом или группой фрагментов, в которых расположен текущий блок изображения.[00363] Condition A and condition B may be represented in certain specific ways. For example, condition A may be specifically represented by the parameter slice_type == B, and condition B may be specifically represented by parameter MaxNumTriangleMergeCand ≥ 2. MaxNumTriangleMergeCand specifies the maximum number of possible TPM modes supported by the slice or group of slices in which the current image block is located.
[00364] Режим TPM может быть выбран в качестве целевого режима слияния, окончательно используемого для прогнозирования текущего блока изображения, только когда выполняются как условие A, так и условие B.[00364] The TPM mode may be selected as the target fusion mode finally used to predict the current image block only when both condition A and condition B are satisfied.
[00365] Если условие A или условие B не выполняется, режим CIIP определяется как целевой режим слияния.[00365] If condition A or condition B is not satisfied, the CIIP mode is determined as the target merge mode.
[00366] Когда элемент синтаксиса высокого уровня, соответствующий режиму TPM, указывает, что режим TPM запрещено использовать, если условие A или условие B не выполняется, режим CIIP определяется как целевой режим слияния.[00366] When a high-level syntax element corresponding to a TPM mode specifies that the TPM mode is prohibited from being used unless condition A or condition B is satisfied, the CIIP mode is defined as the target merge mode.
[00367] Когда элемент синтаксиса высокого уровня, соответствующий режиму TPM, указывает, что режим TPM разрешен для использования, если условие A или условие B не выполняется, режим CIIP определяется как целевой режим слияния.[00367] When a high-level syntax element corresponding to a TPM mode indicates that the TPM mode is allowed to be used if condition A or condition B is not satisfied, the CIIP mode is determined to be the target merge mode.
[00368] Другими словами, режим CIIP может быть определен как целевой режим слияния при условии, что одно из sps_trangle_enabled_flag=1, условие A и условие B не выполняется.[00368] In other words, the CIIP mode can be defined as the target merge mode provided that one of sps_trangle_enabled_flag=1, condition A and condition B is not satisfied.
[00369] Наоборот, если sps_trangle_enabled_flag=1, условие A и условие B все выполнены, целевой режим слияния должен быть определен на основе ciip_flag согласно нескольким условиям в предшествующем уровне техники.[00369] Conversely, if sps_trangle_enabled_flag=1, condition A and condition B are all satisfied, the target merge mode must be determined based on the ciip_flag according to several conditions in the prior art.
[00370] Необязательно, элемент синтаксиса высокого уровня представляет собой элемент синтаксиса по меньшей мере на одном из уровня последовательности, уровня изображения, уровня фрагмента и уровня группы фрагментов.[00370] Optionally, a high-level syntax element is a syntax element at at least one of a sequence level, an image level, a fragment level, and a fragment group level.
[00371] Необязательно, режим слияния уровня-1 включает в себя обычный режим слияния, режим MMVD и режим слияния подблоков.[00371] Optionally, the layer-1 merge mode includes a normal merge mode, an MMVD mode, and a subblock merge mode.
[00372] Когда определяется, доступен ли режим слияния уровня-1, то, доступны ли эти режимы, можно последовательно определять в последовательности из обычного режима слияния, режима MMVD и режима слияния подблоков.[00372] When it is determined whether the layer-1 merge mode is available, whether these modes are available can be sequentially determined in a sequence of the normal merge mode, the MMVD mode, and the subblock merge mode.
[00373] Например, сначала может быть определено, доступен ли обычный режим слияния. Когда обычный режим слияния недоступен (если доступен обычный режим слияния, обычный режим слияния может непосредственно использоваться в качестве конечного целевого режима слияния), продолжает определяться, доступен ли режим MMVD. Когда режим MMVD недоступен, продолжает определяться, доступен ли режим слияния подблоков.[00373] For example, it may first be determined whether normal merge mode is available. When normal merge mode is not available (if normal merge mode is available, normal merge mode can directly be used as the final target merge mode), it continues to determine whether MMVD mode is available. When MMVD mode is not available, it continues to determine whether subblock merging mode is available.
[00374] Необязательно, способ, показанный на фиг. 13 может применяться к стороне кодера для кодирования текущего блока изображения.[00374] Optionally, the method shown in FIG. 13 can be applied to the encoder side to encode the current image block.
[00375] Необязательно, способ, показанный на фиг. 13 может применяться к стороне декодера для декодирования текущего блока изображения.[00375] Optionally, the method shown in FIG. 13 can be applied to the decoder side to decode the current picture block.
[00376] Чтобы лучше понять конкретный процесс способа прогнозирования изображения в вариантах осуществления настоящей заявки, ниже подробно описывается со ссылкой на конкретный пример процесс определения режима слияния изображений в способе прогнозирования изображения в вариантах осуществления настоящей заявки.[00376] In order to better understand the specific process of the image prediction method in the embodiments of the present application, the process of determining the image fusion mode in the image prediction method in the embodiments of the present application is described below in detail with reference to a specific example.
[00377] Нижеследующее подробно описывает способ прогнозирования изображения в вариантах осуществления настоящей заявки со ссылкой на фиг. 14 и таблицу 4.[00377] The following describes in detail the image prediction method in embodiments of the present application with reference to FIGS. 14 and table 4.
[00378] Фиг. 14 показывает процесс определения режима слияния согласно варианту осуществления настоящей заявки. Процесс, показанный на фиг. 14 включает в себя этапы с 3001 по 3007. Ниже приводится подробное описание этих шагов.[00378] FIG. 14 shows a merge mode determination process according to an embodiment of the present application. The process shown in FIG. 14 includes steps 3001 through 3007. The following is a detailed description of these steps.
[00379] 3001: Начало.[00379] 3001: Start.
[00380] Этап 3001 указывает, что прогнозирование изображения начинается.[00380] Step 3001 indicates that image prediction begins.
[00381] 3002: Определение того, используется ли режим слияния для текущего блока изображения.[00381] 3002: Determines whether merge mode is used for the current image block.
[00382] В частности, когда этап 3002 выполняется стороной декодера, на этапе 3002, то, используется ли режим слияния для текущего блока изображения, может быть определено на основе значения элемента синтаксиса уровня CU merge_flag[x0] [y0], соответствующего текущему блоку изображения.[00382] Specifically, when step 3002 is performed by the decoder side, in step 3002, whether the merge mode is used for the current image block can be determined based on the value of the CU level syntax element merge_flag[x0] [y0] corresponding to the current image block .
[00383] Например, как показано в таблице 4, когда merge_flag[x0][y0] = 0, режим слияния не используется для текущего блока изображения. В этом случае текущий блок изображения может быть спрогнозирован другим способом. Например, текущий блок изображения может быть спрогнозирован в режиме AMVP.[00383] For example, as shown in Table 4, when merge_flag[x0][y0] = 0, the merge mode is not used for the current image block. In this case, the current image block can be predicted in a different way. For example, the current image block can be predicted in AMVP mode.
[00384] Когда merge_flag[x0][y0] = 1, режим слияния используется для текущего блока изображения. Затем может дополнительно определяться, какой режим слияния используется для прогнозирования текущего блока изображения.[00384] When merge_flag[x0][y0] = 1, merge mode is used for the current image block. It may then be further determined which fusion mode is used to predict the current image block.
[00385] Следует понимать, что, когда в потоке битов нет merge_flag[x0][y0], merge_flag[x0][y0] по умолчанию равен 0.[00385] It should be understood that when there is no merge_flag[x0][y0] in the bitstream, merge_flag[x0][y0] defaults to 0.
[00386] (x0, y0) представляет координаты местоположения элемента пикселя яркости в верхнем левом углу текущего блока изображения относительно элемента пикселя яркости в верхнем левом углу текущего изображения. Значение (x0, y0) в следующих элементах синтаксиса такое же, как это, и подробности здесь не описываются. [00386](x0, y0) represents the coordinates of the location of the luminance pixel element in the upper left corner of the current image block relative to the luminance pixel element in the upper left corner of the current image. The meaning of (x0, y0) in the following syntax elements is the same as this, and the details are not described here.
[00387] Необязательно, способ, показанный на фиг. 14 дополнительно включает в себя: получение текущего блока изображения перед этапом 3002.[00387] Optionally, the method shown in FIG. 14 further includes: obtaining the current image block before step 3002.
[00388] Текущий блок изображения может быть блоком изображения в текущем кодируемом или декодируемом изображении.[00388] The current image block may be an image block in the current image being encoded or decoded.
[00389] Следует понимать, что в настоящей заявке текущий блок изображения может быть получен в процессе определения целевого режима слияния текущего блока изображения или после определения целевого режима слияния текущего блока изображения.[00389] It should be understood that in the present application, the current image block may be obtained during the process of determining the merge target mode of the current image block or after determining the merge target mode of the current image block.
[00390] 3003: Определение того, используется ли обычный режим слияния для текущего блока изображения.[00390] 3003: Determine whether normal merge mode is used for the current image block.
[00391] В частности, на этапе 3003, используется ли обычный режим слияния для текущего блока изображения, может быть определено путем анализа значения элемента синтаксиса regular_merge_flag[x0][y0].[00391] Specifically, at step 3003, whether the regular merge mode is used for the current image block can be determined by analyzing the value of the regular_merge_flag[x0][y0] syntax element.
[00392] Когда regular_merge_flag[x0][y0] = 1, определяется, что для текущего блока изображения используется обычный режим слияния. В этом случае может быть выполнен этап 3007. Чтобы быть конкретным, текущий блок изображения прогнозируется на основе обычного режима слияния.[00392] When regular_merge_flag[x0][y0] = 1, it is determined that the current image block is in normal merge mode. In this case, step 3007 may be performed. To be specific, the current image block is predicted based on the normal merge mode.
[00393] Когда regular_merge_flag[x0][y0]=0, определяется, что обычный режим слияния не используется для текущего блока изображения. В этом случае необходимо продолжить выполнение этапа 3004, чтобы дополнительно определить режим слияния, используемый для текущего блока изображения.[00393] When regular_merge_flag[x0][y0]=0, it is determined that the regular merge mode is not used for the current image block. In this case, it is necessary to continue with step 3004 to further determine the merge mode used for the current image block.
[00394] Следует понимать, что, когда в потоке битов нет regular_merge_flag[x0][y0], regular_merge_flag[x0][y0] по умолчанию равен 0.[00394] It should be understood that when there is no regular_merge_flag[x0][y0] in the bitstream, regular_merge_flag[x0][y0] defaults to 0.
[00395] 3004: Определите, используется ли режим MMVD для текущего блока изображения.[00395] 3004: Determine whether MMVD mode is used for the current image block.
[00396] В частности, на этапе 3004, когда элемент синтаксиса высокого уровня, соответствующий режиму MMVD, указывает, что MMVD может быть разрешено использовать, и область текущего блока изображения не равна 32, используется ли MMVD для текущий блок изображения может быть определен путем анализа значения элемента синтаксиса mmvd_flag[x0][y0].[00396] Specifically, at step 3004, when the high-level syntax element corresponding to the MMVD mode indicates that MMVD may be allowed to be used, and the area of the current image block is not 32, whether MMVD is used for the current image block can be determined by analysis syntax element values mmvd_flag[x0][y0].
[00397] Когда mmvd_flag[x0][y0]=1, определяется, что режим MMVD используется для текущего блока изображения. В этом случае может быть выполнен этап 3007. Чтобы быть конкретным, текущий блок изображения прогнозируется на основе режима MMVD.[00397] When mmvd_flag[x0][y0]=1, it is determined that the MMVD mode is used for the current image block. In this case, step 3007 may be performed. To be specific, the current image block is predicted based on the MMVD mode.
[00398] Когда mmvd_flag[x0][y0]=0, определяется, что режим MMVD не используется для текущего блока изображения. В этом случае необходимо продолжить выполнение этапа 3005, чтобы дополнительно определить режим слияния, используемый для текущего блока изображения.[00398] When mmvd_flag[x0][y0]=0, it is determined that the MMVD mode is not used for the current image block. In this case, it is necessary to continue with step 3005 to further determine the merge mode used for the current image block.
[00399] Следует понимать, что, когда в потоке битов нет mmvd_flag[x0][y0], mmvd_flag[x0][y0] по умолчанию равен 0.[00399] It should be understood that when there is no mmvd_flag[x0][y0] in the bitstream, mmvd_flag[x0][y0] defaults to 0.
[00400] 3005: Определите, используется ли режим слияния подблоков для текущего блока изображения.[00400] 3005: Determine whether sub-block merging mode is used for the current image block.
[00401] На этапе 3004, используется ли режим слияния подблоков для текущего блока изображения, может быть определено на основе значения элемента синтаксиса merge_subblock_flag[x0][y0], которое получается путем анализа потока битов.[00401] At step 3004, whether the subblock merging mode is used for the current image block can be determined based on the value of the merge_subblock_flag[x0][y0] syntax element, which is obtained by analyzing the bitstream.
[00402] Когда merge_subblock_flag[x0][y0] = 1, определяется, что режим слияния подблоков используется для текущего блока изображения. В этом случае может быть выполнен этап 3007. В частности, текущий блок изображения прогнозируется на основе режима слияния подблоков.[00402] When merge_subblock_flag[x0][y0] = 1, it is determined that the subblock merge mode is used for the current image block. In this case, step 3007 may be performed. Specifically, the current image block is predicted based on the subblock merging mode.
[00403] Когда merge_subblock_flag[x0][y0] = 0, определяется, что режим слияния подблоков не используется для текущего блока изображения. В этом случае необходимо продолжить выполнение этапа 3006, чтобы дополнительно определить режим слияния, используемый для текущего блока изображения.[00403] When merge_subblock_flag[x0][y0] = 0, it is determined that the subblock merge mode is not used for the current image block. In this case, it is necessary to continue with step 3006 to further determine the merge mode used for the current image block.
[00404] Следует понимать, что, когда в потоке битов нет merge_subblock_flag[x0][y0], merge_subblock_flag[x0][y0] по умолчанию равен 0.[00404] It should be understood that when there is no merge_subblock_flag[x0][y0] in the bitstream, merge_subblock_flag[x0][y0] defaults to 0.
[00405] Кроме того, на этапе 3004 значение элемента синтаксиса merge_subblock_flag[x0][y0] может быть проанализировано только тогда, когда максимальная длина списка на слияние возможных подблоков больше 0, а ширина и высота текущего блока изображения равны больше или равно 8, и этап 3007 продолжает выполняться, когда полученное значение merge_subblock_flag[x0][y0] равно 0.[00405] Additionally, at step 3004, the value of the merge_subblock_flag[x0][y0] syntax element can be parsed only when the maximum length of the candidate subblock merge list is greater than 0, and the width and height of the current image block are greater than or equal to 8, and step 3007 continues to execute when the resulting merge_subblock_flag[x0][y0] value is 0.
[00406] 3006: Определение режим слияния, используемого для текущего блока изображения, из режима CIIP и режима TPM.[00406] 3006: Determine the merge mode used for the current image block from the CIIP mode and the TPM mode.
[00407] В частности, на этапе 3006, если все шесть условий в следующих условиях (1) - (6) выполнены, ciip_flag[x0][y0] анализируется из потока битов, режим слияния, используемый для текущего блока изображения, определяется на основе на значении ciip_flag[x0][y0]. Когда ciip_flag[x0][y0] = 1, режим CIIP используется для прогнозирования текущего блока изображения.[00407] Specifically, at step 3006, if all six conditions in the following conditions (1) - (6) are satisfied, ciip_flag[x0][y0] is parsed from the bit stream, the merge mode used for the current image block is determined based on on the value ciip_flag[x0][y0]. When ciip_flag[x0][y0] = 1, CIIP mode is used to predict the current image block.
[00408] Кроме того, когда выполняется следующее условие (1), если любое из следующих условий (2) - (6) не выполняется, режим CIIP используется для прогнозирования текущего блока изображения.[00408] In addition, when the following condition (1) is satisfied, if any of the following conditions (2) - (6) is not satisfied, the CIIP mode is used to predict the current image block.
(1) sps_ciip_enabled_flag = 1; (1) sps_ciip_enabled_flag = 1;
(2) sps_triangle_enabled_flag = 1; (2) sps_triangle_enabled_flag = 1;
(3) cu_skip_flag [x0] [y0] == 0; (3) cu_skip_flag [x0] [y0] == 0;
(4) (cbWidth * cbHeight) ≥ 64; (4) (cbWidth * cbHeight) ≥ 64;
(5) cbWidth < 128; и(5) cbWidth < 128; And
(6) cbHeight < 128. (6) cbHeight < 128.
[00409] cbWidth и cbHeight - соответственно ширина и высота текущего блока изображения. [00409] cbWidth and cbHeight are the width and height of the current image block, respectively.
[00410] Необязательно, дополнительные условия определения могут быть дополнительно добавлены, когда режим слияния, используемый для текущего блока, определяется на этапе 3006.[00410] Optionally, additional determination conditions may be further added when the merge mode used for the current block is determined at step 3006.
[00411] На основании вышеизложенных условий (1) - (6) могут быть дополнительно добавлены условия (7) и (8): [00411] Based on the above conditions (1) - (6), conditions (7) and (8) can be additionally added:
(7) slice_type == B; и(7) slice_type == B; And
(8) MaxNumTriangleMergeCand ≥ 2. (8) MaxNumTriangleMergeCand ≥ 2.
[00412] Необязательно, на этапе 3006, если все восемь условий в вышеупомянутых условиях (1) - (8) выполняются, ciip_flag[x0][y0] анализируется из потока битов, режим слияния, используемый для текущего блока изображения, определяется на основе от значения ciip_flag[x0][y0]. Когда ciip_flag[x0][y0] = 1, режим CIIP используется для прогнозирования текущего блока изображения.[00412] Optionally, at step 3006, if all eight conditions in the above conditions (1) - (8) are satisfied, ciip_flag[x0][y0] is parsed from the bit stream, the merge mode used for the current image block is determined based on values ciip_flag[x0][y0]. When ciip_flag[x0][y0] = 1, CIIP mode is used to predict the current image block.
[00413] Кроме того, когда вышеупомянутое условие (1) выполняется, если любое из следующих условий (2) - (8) не выполняется, режим CIIP используется для прогнозирования текущего блока изображения.[00413] In addition, when the above condition (1) is satisfied, if any of the following conditions (2) to (8) are not satisfied, the CIIP mode is used to predict the current image block.
[00414] 3007: Прогнозирование текущего блока изображения на основе режима слияния, используемого для текущего блока изображения.[00414] 3007: Predict the current image block based on the merge mode used for the current image block.
[00415] Когда на этапе 3003 определяется, что для текущего блока изображения используется обычный режим слияния, на этапе 3007 текущий блок изображения прогнозируется на основе обычного режима слияния. Когда на этапе 3004 определяется, что режим MMVD используется для текущего блока изображения, на этапе 3007 текущий блок изображения прогнозируется на основе режима MMVD. Когда на этапе 3005 определяется, что режим слияния подблоков используется для текущего блока изображения, на этапе 3007 текущий блок изображения прогнозируется на основе режима слияния подблоков. [00415] When it is determined at step 3003 that the current image block is using the normal merge mode, at step 3007 the current image block is predicted based on the normal merge mode. When it is determined at step 3004 that the MMVD mode is used for the current image block, at step 3007 the current image block is predicted based on the MMVD mode. When it is determined at step 3005 that the sub-block merging mode is used for the current image block, at step 3007 the current image block is predicted based on the sub-block merging mode.
[00416] В таблице 4 показано, как определить на основе соответствующего элемента синтаксиса режим слияния, используемый для текущего блока изображения, когда используется режим слияния. Ниже подробно описано определение режима слияния текущего блока изображения со ссылкой на таблицу 4. [00416] Table 4 shows how to determine, based on the corresponding syntax element, the merge mode used for the current image block when the merge mode is used. The definition of the merge mode of the current image block is described in detail below with reference to Table 4.
Таблица 4Table 4
cu_skip_flag[ x0 ][ y0 ] = = 0 && ( cbWidth * cbHeight ) ≥ 64 && cbWidth < 128 && cbHeight < 128 ) { if(sps_ciip_enabled_flag && sps_triangle_enabled_flag &&
cu_skip_flag[ x0 ][ y0 ] = = 0 && ( cbWidth * cbHeight ) ≥ 64 && cbWidth < 128 && cbHeight < 128 )
[00417] Когда regular_merge_flag[x0][y0], показанный в таблице 4, равен 1, определяется, что для текущего блока изображения используется обычный режим слияния. В этом случае параметр обычного режима слияния может быть получен путем анализа элемента синтаксиса merge_idx[x0][y0]. Когда regular_merge_flag[x0][y0], показанный в таблице 4, равен 0, определяется, что обычный режим слияния не используется для текущего блока изображения, и дополнительно необходимо определить режим слияния, используемый для текущего блока изображения.[00417] When regular_merge_flag[x0][y0] shown in Table 4 is 1, it is determined that the normal merge mode is used for the current image block. In this case, the normal merge mode parameter can be obtained by parsing the merge_idx[x0][y0] syntax element. When regular_merge_flag[x0][y0] shown in Table 4 is 0, it is determined that the regular merge mode is not used for the current image block, and it is further necessary to determine the merge mode used for the current image block.
[00418] Когда sps_mmvd_enabled_flag и cbWidth * cbHeight ! в таблице 4 показаны соответственно 1 и 32, это указывает на то, что режим MMVD может использоваться для текущего блока изображения. В этом случае режим слияния текущего блока изображения может быть определен на основе значения mmvd_flag[x0][y0]. Если mmvd_flag[x0][y0] = 1, определяется, что режим MMVD используется для текущего блока изображения, и параметр режима MMVD может быть определен путем синтаксического анализа элементов mmvd_merge_flag[x0][y0], mmvd_distance_idx[x0][y0] и mmvd_direction_idx[x0][y0]. Если mmvd_flag[x0][y0]=0, дополнительно необходимо определить режим слияния, используемый для текущего блока изображения.[00418] When sps_mmvd_enabled_flag and cbWidth * cbHeight ! Table 4 shows 1 and 32 respectively, indicating that MMVD mode can be used for the current image block. In this case, the merge mode of the current image block can be determined based on the value of mmvd_flag[x0][y0]. If mmvd_flag[x0][y0] = 1, it is determined that the MMVD mode is used for the current image block, and the MMVD mode parameter can be determined by parsing the elements mmvd_merge_flag[x0][y0], mmvd_distance_idx[x0][y0], and mmvd_direction_idx [x0][y0]. If mmvd_flag[x0][y0]=0, it is additionally necessary to determine the merge mode used for the current image block.
[00419] Когда merge_subblock_flag[x0][y0], показанный в таблице 4, равен 1, определяется, что режим слияния подблоков используется для текущего блока изображения. Когда merge_subblock_flag[x0][y0], показанный в таблице 4, равен 0, определяется, что режим слияния подблоков не используется для текущего блока изображения, и дополнительно необходимо определить режим слияния, используемый для текущего блока изображения.[00419] When merge_subblock_flag[x0][y0] shown in Table 4 is 1, it is determined that the subblock merge mode is used for the current image block. When merge_subblock_flag[x0][y0] shown in Table 4 is 0, it is determined that the subblock merging mode is not used for the current image block, and it is further necessary to determine the merge mode used for the current image block.
[00420] Когда sps_ciip_enabled_flag, показанный в таблице 4, равен 0, можно напрямую определить, что режим TPM используется для текущего блока изображения. Однако, когда sps_ciip_enabled_flag и sps_ciip_enabled_flag, показанные в таблице 4, равны соответственно 1 и 0, можно напрямую определить, что режим CIIP используется для текущего блока изображения.[00420] When sps_ciip_enabled_flag shown in Table 4 is 0, it can be directly determined that the TPM mode is used for the current image block. However, when sps_ciip_enabled_flag and sps_ciip_enabled_flag shown in Table 4 are 1 and 0, respectively, it can be directly determined that the CIIP mode is used for the current image block.
[00421] Как показано в таблице 4, когда все шесть условий в следующих условиях (1) - (6) выполняются, должна быть указана информация о доступном статусе режима CIIP, а именно значение ciip_flag[x0][y0] должно быть полученным из битового потока. Если ciip_flag[x0][y0] = 1, определяется, что режим CIIP используется для текущего блока изображения. Если ciip_flag[x0][y0]=0, определяется, что режим TPM используется для текущего блока изображения. [00421] As shown in Table 4, when all six conditions in the following conditions (1) - (6) are satisfied, information about the available status of the CIIP mode must be indicated, namely, the value ciip_flag[x0][y0] must be obtained from the bit flow. If ciip_flag[x0][y0] = 1, it is determined that CIIP mode is used for the current image block. If ciip_flag[x0][y0]=0, it is determined that the TPM mode is used for the current image block.
(1) sps_ciip_enabled_flag = 1; (1) sps_ciip_enabled_flag = 1;
(2) sps_triangle_enabled_flag = 1; (2) sps_triangle_enabled_flag = 1;
(3) cu_skip_flag[x0][y0] == 0; (3) cu_skip_flag[x0][y0] == 0;
(4) (cbWidth * cbHeight) ≥ 64; (4) (cbWidth * cbHeight) ≥ 64;
(5) cbWidth < 128; (5) cbWidth < 128;
(6) cbHeight < 128. (6) cbHeight < 128.
[00422] Необязательно, if(sps_ciip_enabled_flag && sps_triangle_enabled_flag &&cu_skip_flag[x0][y0] == 0 && (cbWidth * cbHeight) ≥ 64&&cbWidth < 128 && cbHeight < 128) в таблице 4 может быть заменено if(sps_triangle_enabled_flag && sps_ciip_enabled_flag && cu_skip_flag[x0][y0] = = 0 && (cbWidth * cbHeight) ≥ 64 && cbWidth < 128 && cbHeight < 128). Другими словами, можно настроить последовательность sps_ciip_enabled_flag и sps_triangle_enabled_flag. Конкретный результат может быть показан в таблице 5. [00422] Optional, if(sps_ciip_enabled_flag && sps_triangle_enabled_flag &&cu_skip_flag[x0][y0] == 0 && (cbWidth * cbHeight) ≥ 64&&cbWidth < 128 && cbHeight < 128) in table 4 can be replaced by if(sps_triangle_enabled_ flag && sps_ciip_enabled_flag && cu_skip_flag[x0 ][y0] = = 0 && (cbWidth * cbHeight) ≥ 64 && cbWidth < 128 && cbHeight < 128). In other words, the sequence sps_ciip_enabled_flag and sps_triangle_enabled_flag can be configured. The specific result can be shown in Table 5.
Таблица 5Table 5
cu_skip_flag[ x0 ][ y0 ] = = 0 && ( cbWidth * cbHeight ) ≥ 64 && cbWidth < 128 && cbHeight < 128 ) { if(sps_triangle_enabled_flag &&sps_ciip_enabled_flag &&
cu_skip_flag[ x0 ][ y0 ] = = 0 && ( cbWidth * cbHeight ) ≥ 64 && cbWidth < 128 && cbHeight < 128 )
[00423] Следует отметить, что в таблице 4 и таблице 5 временная последовательность определения CIIP предшествует временной последовательности определения TPM. Чтобы быть конкретным, сначала определяется CIIP, а режим прогнозирования, наконец, используемый для текущего блока, определяется на основе состояния CIIP. Если CIIP верен, нет необходимости дополнительно определять информацию о TPM. Если CIIP имеет значение false, это означает, что доступен только TPM. В этом случае последний режим прогнозирования текущего блока может быть установлен в режим TPM. Установка приоритета или логика определения временной последовательности - это просто пример, и в качестве альтернативы их можно отрегулировать по мере необходимости. Например, временная последовательность TPM сделана раньше, чем временная последовательность CIIP. В этом случае условие для определения, применим ли режим TPM, также должно быть скорректировано по мере необходимости. [00423] It should be noted that in Table 4 and Table 5, the CIIP determination time sequence precedes the TPM determination time sequence. To be specific, the CIIP is determined first, and the prediction mode finally used for the current block is determined based on the CIIP state. If CIIP is correct, there is no need to further define TPM information. If CIIP is false, it means that only TPM is available. In this case, the last prediction mode of the current block can be set to TPM mode. The priority setting or time sequencing logic is just an example and can alternatively be adjusted as needed. For example, the TPM time sequence is made earlier than the CIIP time sequence. In this case, the condition for determining whether the TPM mode is applicable should also be adjusted as necessary.
Таблица 6Table 6
slice_type == B && MaxNumTriangleMergeCand ≥ 2 &&
cu_skip_flag[ x0 ][ y0 ] = = 0 && ( cbWidth * cbHeight ) ≥ 64 && cbWidth < 128 && cbHeight < 128) { if(sps_ciip_enabled_flag && sps_triangle_enabled_flag &&
slice_type == B && MaxNumTriangleMergeCand ≥ 2 &&
cu_skip_flag[ x0 ][ y0 ] = = 0 && ( cbWidth * cbHeight ) ≥ 64 && cbWidth < 128 && cbHeight < 128)
[00424] Как показано в таблице 6, когда все восемь условий в следующих условиях (1) - (8) выполняются, индикация информации о доступном статусе режима CIIP, а именно, значение ciip_flag[x0][y0], должно быть полученным из битового потока. Если ciip_flag[x0][y0] = 1, определяется, что режим CIIP используется для текущего блока изображения. Если ciip_flag[x0][y0] = 0, определяется, что режим TPM используется для текущего блока изображения. [00424] As shown in Table 6, when all eight conditions in the following conditions (1) - (8) are satisfied, the indication of CIIP mode available status information, namely, the value of ciip_flag[x0][y0], must be obtained from the bit flow. If ciip_flag[x0][y0] = 1, it is determined that CIIP mode is used for the current image block. If ciip_flag[x0][y0] = 0, it is determined that the TPM mode is used for the current image block.
(1) sps_ciip_enabled_flag = 1; (1) sps_ciip_enabled_flag = 1;
(2) sps_triangle_enabled_flag = 1; (2) sps_triangle_enabled_flag = 1;
(3) cu_skip_flag[x0][y0] == 0; (3) cu_skip_flag[x0][y0] == 0;
(4) (cbWidth * cbHeight) ≥ 64; (4) (cbWidth * cbHeight) ≥ 64;
(5) cbWidth < 128; (5) cbWidth < 128;
(6) cbHeight < 128. (6) cbHeight < 128.
[00425] Необязательно, if(sps_ciip_enabled_flag && sps_triangle_enabled_flag &&slice_type == B && MaxNumTriangleMergeCand ≥ 2 && cu_skip_flag[x0][y0] = =0&& (cbWidth * cbHeight) ≥ 64&&cbWidth < 128 && cbHeight < 128) в таблице 6 может быть альтернативно заменено на if(sps_triangle_enabled_flag && sps_ciip_enabled_flag &&slice_type == B && MaxNumTriangleMergeCand ≥ 2 && cu_skip_flag[x0][y0] = =0&& (cbWidth * cbHeight) ≥ 64&&cbWidth < 128 && cbHeight < 128). Другими словами, последовательность sps_ciip_enabled_flag и sps_triangle_enabled_flag может быть скорректирована. Конкретный результат может быть показан в таблице 7. [00425] Optional, if(sps_ciip_enabled_flag && sps_triangle_enabled_flag &&slice_type == B && MaxNumTriangleMergeCand ≥ 2 && cu_skip_flag[x0][y0] = =0&& (cbWidth * cbHeight) ≥ 64&&cbWidth < 128 && cb Height < 128) in table 6 can alternatively be replaced by if(sps_triangle_enabled_flag && sps_ciip_enabled_flag &&slice_type == B && MaxNumTriangleMergeCand ≥ 2 && cu_skip_flag[x0][y0] = =0&& (cbWidth * cbHeight) ≥ 64&&cbWidth < 128 && cbHeight < 128). In other words, the sequence of sps_ciip_enabled_flag and sps_triangle_enabled_flag can be adjusted. The specific result can be shown in Table 7.
Таблица 7Table 7
slice_type == B && MaxNumTriangleMergeCand ≥ 2 &&slice_type == B && MaxNumTriangleMergeCand ≥ 2 &&
cu_skip_flag[ x0 ][ y0 ] = = 0 && ( cbWidth * cbHeight ) ≥ 64 && cbWidth < 128 && cbHeight < 128)cu_skip_flag[ x0 ][ y0 ] = = 0 && ( cbWidth * cbHeight ) ≥ 64 && cbWidth < 128 && cbHeight < 128)
[00426] Вышеизложенное подробно описывает способ прогнозирования изображения в вариантах осуществления настоящей заявки со ссылкой на фиг. 13 и фиг. 14. Ниже описывается способ прогнозирования изображения в вариантах осуществления настоящей заявки со ссылкой на фиг. 15.[00426] The foregoing describes in detail the image prediction method in embodiments of the present application with reference to FIGS. 13 and fig. 14. The image prediction method in embodiments of the present application will be described below with reference to FIG. 15.
[00427] Фиг. 15 - схематическая блок-схема способа прогнозирования изображения согласно варианту осуществления настоящей заявки. Способ прогнозирования изображения, показанный на фиг. 15 может выполняться устройством прогнозирования изображения (устройство прогнозирования изображения может быть расположено в устройстве (системе) декодирования изображения или устройстве (системе) кодирования изображения). В частности, способ, показанный на фиг. 15 может выполняться устройством кодирования изображения или устройством декодирования изображения. Способ, показанный на фиг. 15 может выполняться на стороне кодера или может выполняться на стороне декодера. Способ, показанный на фиг. 15 включает в себя этапы 4001-4007. Ниже приводится подробное описание этих шагов.[00427] FIG. 15 is a schematic flow diagram of an image prediction method according to an embodiment of the present application. The image prediction method shown in FIG. 15 may be performed by an image prediction device (the image prediction device may be located in an image decoding device (system) or an image encoding device (system). In particular, the method shown in FIG. 15 may be performed by an image encoding device or an image decoding device. The method shown in FIG. 15 may be performed on the encoder side or may be performed on the decoder side. The method shown in FIG. 15 includes steps 4001-4007. Below is a detailed description of these steps.
[00428] 4001: Начало.[00428] 4001: Start.
[00429] Этап 4001 указывает, что прогнозирование изображения начинается.[00429] Step 4001 indicates that image prediction begins.
[00430] 4002: Определение того, используется ли режим слияния для текущего блока изображения. [00430] 4002: Determines whether merge mode is used for the current image block.
[00431] Для стороны декодера на этапе 4002, используется ли режим слияния для текущего блока изображения, может быть определено на основе элемента синтаксиса уровня CU merge_flag[x0][y0]. Для конкретного процесса определения см. соответствующие описания ниже этапа 1003.[00431] For the decoder side, in step 4002, whether the merge mode is used for the current image block can be determined based on the CU level syntax element merge_flag[x0][y0]. For a specific determination process, see the corresponding descriptions below step 1003.
[00432] Когда на этапе 4002 определяется, что режим слияния не используется для текущего блока изображения, для прогнозирования текущего блока изображения может использоваться другой режим, отличный от режима слияния. Например, когда определено, что режим слияния не используется для текущего блока изображения, режим AMVP может использоваться для прогнозирования текущего блока изображения.[00432] When it is determined at step 4002 that the merge mode is not used for the current image block, a mode other than the merge mode may be used to predict the current image block. For example, when it is determined that the merge mode is not used for the current image block, the AMVP mode may be used to predict the current image block.
[00433] После того, как на этапе 4002 определено, что режим слияния используется для текущего блока изображения, этап 4003 продолжает выполняться для определения целевого режима слияния, применимого к текущему блоку изображения.[00433] After it is determined at step 4002 that the merge mode is used for the current image block, step 4003 continues to be executed to determine the target merge mode applicable to the current image block.
[00434] Необязательно, способ, показанный на фиг. 15, дополнительно включает в себя: получение текущего блока изображения перед этапом 4002.[00434] Optionally, the method shown in FIG. 15 further includes: obtaining the current image block before step 4002.
[00435] Текущий блок изображения может быть блоком изображения в текущем кодируемом или декодируемом изображении.[00435] The current image block may be an image block in the current image being encoded or decoded.
[00436] Следует понимать, что в настоящей заявке текущий блок изображения может быть получен в процессе определения целевого режима слияния текущего блока изображения или после определения целевого режима слияния текущего блока изображения.[00436] It should be understood that in the present application, the current image block may be obtained during the process of determining the merge target mode of the current image block or after determining the merge target mode of the current image block.
[00437] 4003: Определение того, следует ли использовать режим слияния уровня-1.[00437] 4003: Determine whether to use layer-1 merge mode.
[00438] В частности, то, доступен ли режим слияния уровня-1 может быть определена на основе элемента синтаксиса высокого уровня, соответствующего режиму слияния уровня-1, и/или информации о доступном статусе, соответствующей режиму слияния уровня-1.[00438] In particular, whether the layer-1 merge mode is available can be determined based on a high-level syntax element corresponding to the layer-1 merge mode and/or available status information corresponding to the layer-1 merge mode.
[00439] Необязательно, режим слияния уровня-1 на этапе 4003 включает в себя обычный режим слияния, режим MMVD и режим слияния подблоков. [00439] Optionally, the layer-1 merge mode at step 4003 includes a normal merge mode, an MMVD mode, and a subblock merge mode.
[00440] Когда определяется, доступен ли режим слияния уровня-1, то, доступны ли эти режимы, можно последовательно определять в последовательности из обычного режима слияния, режима MMVD и режима слияния подблоков. Когда все режимы недоступны, определяется, что режим слияния уровня-1 недоступен. [00440] When it is determined whether the layer-1 merging mode is available, whether these modes are available can be sequentially determined in a sequence of the normal merging mode, the MMVD mode, and the subblock merging mode. When all modes are unavailable, it is determined that layer-1 merge mode is unavailable.
[00441] Когда на этапе 4003 определяется, что режим слияния уровня-1 недоступен, этап 4004 может продолжаться для определения целевого режима слияния из режима слияния уровня-2.[00441] When it is determined at step 4003 that the layer-1 merge mode is not available, step 4004 may continue to determine the target merge mode from the layer-2 merge mode.
[00442] Для способа прогнозирования изображения, показанного на фиг. 15, режим слияния уровня-1 и режим слияния уровня-2 могут включать в себя все опциональные режимы слияния текущего блока изображения, а для текущего блока изображения окончательный целевой режим слияния должен быть определен из режима слияния уровня-1 и режима слияния уровня-2. [00442] For the image prediction method shown in FIG. 15, the level-1 fusion mode and level-2 fusion mode may include all optional fusion modes of the current image block, and for the current image block, the final target fusion mode must be determined from the level-1 fusion mode and the level-2 fusion mode.
[00443] Необязательно, приоритет режима слияния уровня-1 выше, чем приоритет режима слияния уровня-2.[00443] Optionally, the priority of the layer-1 merge mode is higher than the priority of the layer-2 merge mode.
[00444] То, что приоритет режима слияния уровня-1 выше, чем приоритет режима слияния уровня-2, означает, что в процессе определения целевого режима слияния текущего блока изображения целевой режим слияния предпочтительно определяется из режим слияния уровня-1. Если нет доступного режима слияния в режиме слияния уровня-1, целевой режим слияния затем определяется из режима слияния уровня-2.[00444] That the priority of the layer-1 merge mode is higher than the priority of the layer-2 merge mode means that in the process of determining the target merge mode of the current image block, the target merge mode is preferably determined from the layer-1 merge mode. If there is no merge mode available in the level-1 merge mode, the target merge mode is then determined from the level-2 merge mode.
[00445] 4004: Определение того, выполняются ли условия с 1 по 5.[00445] 4004: Determine whether
[00446] Условие 1 - условие 5 следующие:[00446] Condition 1 - Condition 5 are as follows:
[00447] Условие 1: Допускается использование режима TPM.[00447] Condition 1: TPM mode is allowed.
[00448] Условие 2: Тип фрагмента или группы фрагментов, в которых расположен текущий блок изображения, - B.[00448] Condition 2: The type of fragment or group of fragments in which the current image block is located is B.
[00449] Условие 3: Максимальное количество возможных режимов TPM, поддерживаемое фрагментом или группой фрагментов, в которых расположен текущий блок изображения, определяется как большее или равное 2.[00449] Condition 3: The maximum number of possible TPM modes supported by the tile or group of tiles in which the current image block is located is determined to be greater than or equal to 2.
[00450] Условие 4: Размер текущего блока изображения соответствует заданному условию.[00450] Condition 4: The size of the current image block meets the specified condition.
[00451] Условие 5: Режим пропуска не используется для прогнозирования текущего блока изображения.[00451] Condition 5: Skip mode is not used to predict the current image block.
[00452] Условие 1 может быть конкретно представлено sps_triangle_enabled_flag=1, условие 2 может быть конкретно представлено slice_type == B, а условие 3 может быть конкретно представлено MaxNumTriangleMergeCand ≥ 2. MaxNumTriangleMergeCand указывает максимальное количество возможных режимов TPM, поддерживаемое фрагментом или группой фрагментов, в которых расположен текущий блок изображения.[00452]
[00453] Когда на этапе 4004 определяется, что любое из условия 1 - условия 5 не выполняется, режим CIIP может быть непосредственно определен как целевой режим слияния. Другими словами, осуществляется этап 4005. Когда на этапе 4004 определяется, что пять условий, а именно условие 1 - условие 5, удовлетворяются, целевой режим слияния дополнительно должен быть определен на основе соответствующей информации о режиме CIIP. Другими словами, осуществляется этап 4006.[00453] When it is determined at step 4004 that any of
[00454] 4005: Определение режима CIIP как целевого режима слияния, когда разрешено использование режима CIIP.[00454] 4005: Define CIIP mode as the target merge mode when CIIP mode is enabled.
[00455] Другими словами, на этапе 4005, когда разрешено использование режима CIIP, и любое из условия 1 - условия 5 не выполняется, режим CIIP определяется как целевой режим слияния.[00455] In other words, at step 4005, when the CIIP mode is enabled and any of
[00456] Необязательно, когда любое из условия 1 - условия 5 не выполняется, значение информации о доступном статусе, которая указывает доступный статус режима CIIP, устанавливается на первое значение. Когда значение информации о доступном статусе, которая указывает доступный статус режима CIIP, является первым значением, режим CIIP используется для выполнения прогнозирования изображения для текущего блока изображения.[00456] Optionally, when any of
[00457] Следует понимать, что значение информации о доступном статусе, которое указывает доступный статус режима CIIP, установлено на первое значение в данном документе, эквивалентно тому, что CIIP определяется как целевой режим слияния.[00457] It should be understood that the value of the available status information, which indicates the available status of the CIIP mode, is set to the first value herein, is equivalent to CIIP being defined as the target merge mode.
[00458] Необязательно, информацией о доступном статусе, указывающей доступный статус режима CIIP, является ciip_flag.[00458] Optionally, the available status information indicating the available status of the CIIP mode is ciip_flag.
[00459] То, что значение информации о доступном статусе, которое указывает доступный статус режима CIIP, установлено на первое значение, в частности, может быть то, что ciip_flag установлен на 1.[00459] That the available status information value, which indicates the available status of the CIIP mode, is set to the first value, in particular, it may be that ciip_flag is set to 1.
[00460] Кроме того, когда значение информации о доступном статусе, которая указывает доступный статус режима CIIP, устанавливается на второе значение, это может означать, что режим CIIP не используется для выполнения прогнозирования изображения для текущего блока изображения. Например, когда информацией о доступном статусе, которая указывает доступный статус режима CIIP, является ciip_flag, а ciip_flag=0, режим CIIP не используется для осуществления прогнозирования изображения для текущего блока изображения.[00460] In addition, when the value of the available status information that indicates the available status of the CIIP mode is set to the second value, it may indicate that the CIIP mode is not used to perform image prediction for the current image block. For example, when the available status information that indicates the available status of the CIIP mode is ciip_flag and ciip_flag=0, the CIIP mode is not used to perform image prediction for the current image block.
[00461] 4006: Определение целевого режима слияния на основе элемента синтаксиса высокого уровня, соответствующего режиму CIIP, и/или информации о доступном статусе, которая указывает доступный статус режима CIIP.[00461] 4006: Determine the target merge mode based on a high-level syntax element corresponding to the CIIP mode and/or available status information that indicates the available status of the CIIP mode.
[00462] Информация о доступном статусе, которая указывает доступный статус режима CIIP, используется, чтобы указать, используется ли режим CIIP, когда прогнозируется текущий блок изображения.[00462] Available status information, which indicates the available status of the CIIP mode, is used to indicate whether the CIIP mode is used when the current picture block is predicted.
[00463] Другими словами, на этапе 4006, когда все условия от условия 1 до условия 5 выполнены, целевой режим слияния дополнительно должен быть определен на основе элемента синтаксиса высокого уровня, соответствующего режиму CIIP и/или информации о доступном статусе, указывающая на доступный статус режима CIIP.[00463] In other words, at step 4006, when all conditions from
[00464] Информация о доступном статусе, которая указывает доступный статус режима CIIP, может быть значением ciip_flag. Когда ciip_flag равен 0, режим CIIP недоступен для текущего блока изображения. Когда ciip_flag равен 1, режим CIIP доступен для текущего блока изображения.[00464] Available status information that indicates the available status of the CIIP mode may be a ciip_flag value. When ciip_flag is 0, CIIP mode is not available for the current image block. When ciip_flag is 1, CIIP mode is enabled for the current image block.
[00465] Необязательно, что целевой режим слияния определяется на основе элемента синтаксиса высокого уровня, соответствующего режиму CIIP, и/или информации о доступном статусе, которая указывает доступный статус режима CIIP, включает в себя: когда элемент синтаксиса высокого уровня, соответствующий режиму CIIP, и/или информация о доступном статусе, которая указывает доступный статус режима CIIP, указывает/указывают, что режим CIIP запрещено использовать, режим TPM определяется как целевой режим слияния.[00465] Optionally, the target merge mode is determined based on a high-level syntax element corresponding to the CIIP mode and/or available status information that indicates the available status of the CIIP mode includes: when the high-level syntax element corresponding to the CIIP mode and/or available status information that indicates the available status of the CIIP mode, indicates that the CIIP mode is prohibited from being used, the TPM mode is determined to be the target merge mode.
[00466] То, что элемент синтаксиса высокого уровня, соответствующий режиму CIIP, и/или информация о доступном статусе, которая указывает доступный статус режима CIIP, указывает/указывают, что режим CIIP запрещено использовать, включает случаи 1 и 3:[00466] That the high-level syntax element corresponding to the CIIP mode and/or the available status information that indicates the available status of the CIIP mode indicates that the CIIP mode is prohibited from being used includes
[00467] Случай 1: Элемент синтаксиса высокого уровня, соответствующий режиму CIIP, указывает, что режим CIIP запрещено использовать, а информация о доступном статусе, которая указывает доступный статус режима CIIP, указывает, что режим CIIP недоступен.[00467] Case 1: The high-level syntax element corresponding to the CIIP mode indicates that the CIIP mode is prohibited from being used, and the available status information, which indicates the available status of the CIIP mode, indicates that the CIIP mode is not available.
[00468] Случай 2: Элемент синтаксиса высокого уровня, соответствующий режиму CIIP, указывает, что режим CIIP разрешен для использования, а информация о доступном статусе, которая указывает доступный статус режима CIIP, указывает, что режим CIIP недоступен.[00468] Case 2: The high-level syntax element corresponding to the CIIP mode indicates that the CIIP mode is enabled for use, and the available status information, which indicates the available status of the CIIP mode, indicates that the CIIP mode is not available.
[00469] Случай 3: Информация о доступном статусе, которая указывает доступный статус режима CIIP, указывает, что режим CIIP недоступен.[00469] Case 3: The available status information, which indicates the available status of the CIIP mode, indicates that the CIIP mode is not available.
[00470] Следует понимать, что, когда элемент синтаксиса высокого уровня, соответствующий режиму CIIP, указывает, что режим CIIP разрешен для использования, а информация о доступном статусе, которая указывает доступный статус режима CIIP, указывает, что режим CIIP доступен, режим CIIP определяется как целевой режим слияния.[00470] It should be understood that when the high-level syntax element corresponding to the CIIP mode indicates that the CIIP mode is enabled for use, and the available status information, which indicates the available status of the CIIP mode, indicates that the CIIP mode is available, the CIIP mode is determined as the target merge mode.
[00471] Необязательно, когда элемент синтаксиса высокого уровня, соответствующий режиму CIIP, и/или информация о доступном статусе, которая указывает доступный статус режима CIIP, указывает/указывают, что режим CIIP запрещено использовать, что режим TPM определяется как целевой режим слияния включает в себя:[00471] Optionally, when a high-level syntax element corresponding to the CIIP mode and/or available status information that indicates the available status of the CIIP mode indicates that the CIIP mode is prohibited from being used, that the TPM mode is determined to be the target merge mode included in myself:
[00472] Когда элемент синтаксиса высокого уровня, соответствующий режиму CIIP, и/или информация о доступном статусе, которая указывает доступный статус режима CIIP, указывает/указывают, что режим CIIP запрещено использовать, значение информации о доступном статусе, которая указывает доступный статус режима TPM, устанавливается на первое значение, где, когда значение информации о доступном статусе, которая указывает доступный статус режима TPM, является первым значением, режим TPM используется для выполнения прогнозирования изображения для текущего блока изображения.[00472] When the high-level syntax element corresponding to the CIIP mode and/or the available status information that indicates the available status of the CIIP mode indicates that the CIIP mode is prohibited from being used, the value of the available status information that indicates the available status of the TPM mode , is set to the first value, where, when the value of the available status information that indicates the available status of the TPM mode is the first value, the TPM mode is used to perform image prediction for the current image block.
[00473] Следует понимать, что значение информации о доступном статусе, которая указывает доступный статус режима TPM, установлено на первое значение в данном документе, эквивалентно тому, что TPM определяется как целевой режим слияния.[00473] It should be understood that the value of the available status information, which indicates the available status of the TPM mode, is set to the first value herein is equivalent to the TPM being defined as the target merge mode.
[00474] Необязательно, информация о доступном статусе, указывающая доступный статус режима TPM, - это MergeTriangleFlag.[00474] Optionally, the available status information indicating the available status of the TPM mode is MergeTriangleFlag.
[00475] То, что значение информации о доступном статусе, которая указывает доступный статус режима TPM, установлено на первое значение, в частности, может быть то, что MergeTriangleFlag установлен на 1.[00475] That the value of the available status information, which indicates the available status of the TPM mode, is set to the first value, in particular, it may be that the MergeTriangleFlag is set to 1.
[00476] В настоящей заявке целевой режим слияния может быть определен на основе элемента синтаксиса высокого уровня режима CIIP и/или информации о доступном статусе, которая указывает доступный статус режима CIIP, только когда выполняются пять заданных условий. По сравнению с обычным решением, необходимо выполнить больше условий, прежде чем целевой режим слияния будет дополнительно определен на основе элемента синтаксиса высокого уровня и информации о доступном статусе режима CIIP. В противном случае режим CIIP может быть напрямую определен как целевой режим слияния. Это может уменьшить количество избыточных процессов в процессе определения целевого режима слияния.[00476] In the present application, the target merge mode may be determined based on a high-level syntax element of the CIIP mode and/or available status information that indicates the available status of the CIIP mode only when five specified conditions are met. Compared to the conventional solution, more conditions must be satisfied before the target merge mode is further determined based on the high-level syntax element and information about the available CIIP mode status. Otherwise, CIIP mode can be directly defined as the target merge mode. This can reduce the number of redundant processes in the process of determining the target merge mode.
[00477] С другой стороны, когда режим слияния уровня-1 недоступен, на основе некоторых заданных условий может быть определено, следует ли выбирать режим CIIP в качестве окончательного режима слияния, и режим CIIP может быть непосредственно определен как целевой режим слияния при условии, что ни одно из заданных условий не выполняется. Это снижает избыточность, возникающую в процессе определения целевого слияния.[00477] On the other hand, when the layer-1 merge mode is not available, based on some specified conditions, it can be determined whether the CIIP mode should be selected as the final merge mode, and the CIIP mode can be directly determined as the target merge mode under the condition that none of the specified conditions are met. This reduces the redundancy that occurs in the merge target determination process.
[00478] 4007: Прогнозирование текущего блока изображения на основе целевого режима слияния.[00478] 4007: Predict the current image block based on the target merge mode.
[00479] Необязательно, прежде чем целевой режим слияния будет определен на основе элемента синтаксиса высокого уровня, соответствующего режиму CIIP, и/или информации о доступном статусе, которая указывает доступный статус режима CIIP, способ, показанный на фиг. 15, также включает в себя:[00479] Optionally, before the target merge mode is determined based on a high-level syntax element corresponding to the CIIP mode and/or available status information that indicates the available status of the CIIP mode, the method shown in FIG. 15, also includes:
определение того, что выполняется хотя бы одно из следующих условий: determining that at least one of the following conditions is met:
[00480] Размер текущего блока изображения соответствует заданному условию; и[00480] The size of the current image block meets the specified condition; And
Режим пропуска не используется для прогнозирования текущего блока изображения.Skip mode is not used to predict the current image block.
[00481] Необязательно, что размер текущего блока изображения соответствует заданному условию, включает в себя: текущий блок изображения соответствует следующим трем условиям: [00481] Optionally, the size of the current image block meets a given condition includes: the current image block meets the following three conditions:
(cdWidth * cbHeight) ≥ 64;(cdWidth * cbHeight) ≥ 64;
cbWidth < 128; andcbWidth < 128; and
cbHeight < 128.cbHeight < 128.
[00482] cdWidth - ширина текущего блока изображения, а cbHeight - высота текущего блока изображения.[00482] cdWidth is the width of the current image block, and cbHeight is the height of the current image block.
[00483] Вышеизложенное подробно описывает способ прогнозирования изображения в вариантах осуществления настоящей заявки со ссылкой на сопроводительные чертежи. Ниже описывается устройство прогнозирования изображения в варианте осуществления настоящей заявки со ссылкой на фиг. 16. Следует понимать, что устройство прогнозирования изображения, показанное на фиг. 16 может осуществлять этапы способа прогнозирования изображения в вариантах осуществления настоящей заявки. Чтобы избежать ненужного повторения, нижеследующее надлежащим образом опускает повторяющиеся описания при описании устройства прогнозирования изображения в этом варианте осуществления настоящей заявки.[00483] The foregoing describes in detail the image prediction method in embodiments of the present application with reference to the accompanying drawings. Below, an image prediction device in an embodiment of the present application will be described with reference to FIG. 16. It should be understood that the image prediction device shown in FIG. 16 may implement the steps of an image prediction method in embodiments of the present application. To avoid unnecessary repetition, the following will appropriately omit repetitive descriptions when describing the image prediction device in this embodiment of the present application.
[00484] Фиг. 16 - схематическая блок-схема устройства прогнозирования изображения согласно варианту осуществления настоящей заявки.[00484] FIG. 16 is a schematic block diagram of an image prediction apparatus according to an embodiment of the present application.
[00485] Устройство 5000 прогнозирования изображения, показанное на фиг. 16 включает в себя блок 5001 определения и блок 5002 прогнозирования.[00485] The
[00486] Устройство 5000 прогнозирования изображения, показанное на фиг. 16, выполнено с возможностью осуществления способа прогнозирования изображения в вариантах осуществления настоящей заявки. В частности, блок 5001 определения в устройстве 5000 прогнозирования изображения может быть выполнен с возможностью осуществления процесса определения целевого режима слияния в способе прогнозирования изображения, показанном на фиг. 13 - фиг. 15. Блок 5002 прогнозирования в устройстве 5000 прогнозирования изображения выполнен с возможностью осуществления процесса осуществления прогнозирования изображения для текущего блока изображения на основе целевого режима слияния в способе прогнозирования изображения, показанном на фиг. 13 - фиг. 15.[00486] The
[00487] Фиг. 17 - схематическая диаграмма аппаратной структуры устройства прогнозирования изображения согласно варианту осуществления настоящей заявки. Устройство 6000 прогнозирования изображения, показанное на фиг. 17 (устройство 6000, в частности, может быть компьютерным устройством) включает в себя память 6001, процессор 6002, интерфейс 6003 связи и шину 6004. Коммуникационные соединения между памятью 6001, процессором 6002 и интерфейсом 6003 связи реализуются через шину 6004.[00487] FIG. 17 is a schematic diagram of a hardware structure of an image prediction apparatus according to an embodiment of the present application. The image prediction device 6000 shown in FIG. 17 (device 6000 may in particular be a computer device) includes memory 6001, processor 6002, communications interface 6003, and bus 6004. Communication connections between memory 6001, processor 6002, and communications interface 6003 are implemented via bus 6004.
[00488] Память 6001 может быть постоянным запоминающим устройством (read only memory, ROM), статическим запоминающим устройством, динамическим запоминающим устройством или оперативной памятью (random access memory, RAM). Память 6001 может хранить программу. Когда программа, хранящаяся в памяти 6001, выполняется процессором 6002, процессор 6002 выполнен с возможностью осуществления этапов способа прогнозирования изображения в вариантах осуществления настоящей заявки.[00488] Memory 6001 may be read only memory (ROM), static memory, dynamic memory, or random access memory (RAM). The 6001 memory can store a program. When the program stored in the memory 6001 is executed by the processor 6002, the processor 6002 is configured to implement the steps of the image prediction method in the embodiments of the present application.
[00489] Процессор 6002 может использовать центральный процессор общего назначения (central processing unit, CPU), микропроцессор, специализированную интегральную схему (application specific integrated circuit, ASIC), графический процессор (graphics processing unit, GPU), или одной или более интегральных схем, и выполнен с возможностью выполнения связанной программы, чтобы реализовать способ обнаружения изображения в вариантах осуществления способа настоящей заявки.[00489] Processor 6002 may use a central processing unit (CPU), a microprocessor, an application specific integrated circuit (ASIC), a graphics processing unit (GPU), or one or more integrated circuits, and configured to execute an associated program to implement the image detection method in the method embodiments of the present application.
[00490] Процессор 6002 может быть интегральной микросхемой и может обладать возможностью обработки сигналов. В процессе реализации этапы способа прогнозирования изображения в настоящей заявке могут быть выполнены с использованием аппаратной интегральной логической схемы или инструкции в форме программного обеспечения в процессоре 6002.[00490] The processor 6002 may be an integrated circuit and may have signal processing capabilities. In implementation, the steps of the image prediction method of the present application may be performed using a hardware integrated logic circuit or an instruction in the form of software in the processor 6002.
[00491] В качестве альтернативы процессор 6002 может быть процессором общего назначения, процессором цифровых сигналов (digital signal processing, DSP), специализированной интегральной схемой (ASIC), программируемой пользователем вентильной матрицей (FPGA) или другим программируемым логическим устройством, дискретным логическое устройство затвора или транзистора, или дискретный аппаратный компонент. Процессор 602 может реализовывать или выполнять способы, этапы и логические блок-схемы, которые раскрыты в вариантах осуществления настоящей заявки. Процессор общего назначения может быть микропроцессором, или процессор может быть любым традиционным процессором или подобным. Этапы способа, раскрытого со ссылкой на варианты осуществления настоящей заявки, могут быть непосредственно выполнены и завершены процессором аппаратного декодирования или могут выполняться и завершаться комбинацией аппаратных и программных модулей в процессоре декодирования. Программный модуль может быть расположен на носителе данных, хорошо известном в данной области техники, таком как оперативная память, флэш-память, постоянная память, программируемая постоянная память, электрически стираемая программируемая память или регистр. Носитель данных расположен в памяти 6001. Процессор 6002 считывает информацию в памяти 6001 и выполняет, в сочетании с аппаратным обеспечением процессора 6002, функции, которые должны выполняться блоками, включенными в устройство прогнозирования изображения, или выполняет способ прогнозирования изображения в вариантах осуществления способа настоящей заявки.[00491] Alternatively, processor 6002 may be a general purpose processor, digital signal processing (DSP), application specific integrated circuit (ASIC), field programmable gate array (FPGA) or other programmable logic device, discrete gate logic, or transistor, or discrete hardware component. Processor 602 may implement or execute the methods, steps, and logic flowcharts that are disclosed in embodiments of this application. The general purpose processor may be a microprocessor, or the processor may be any conventional processor or the like. The steps of the method disclosed with reference to embodiments of the present application may be directly performed and completed by a hardware decoding processor, or may be performed and completed by a combination of hardware and software modules in a decoding processor. The software module may be located on a storage medium well known in the art, such as random access memory, flash memory, read only memory, programmable read only memory, electrically erasable programmable memory, or a register. The storage medium is located in the memory 6001. The processor 6002 reads the information in the memory 6001 and performs, in combination with the hardware of the processor 6002, functions to be performed by units included in the image prediction apparatus, or performs the image prediction method in the method embodiments of the present application.
[00492] Интерфейс 6003 связи использует устройство приемопередатчика, например, но не ограничиваясь этим, приемопередатчик, для реализации связи между устройством 6000 и другим устройством или сетью связи. Например, информация о нейронной сети, которая должна быть построена, и данные обучения, необходимые в процессе построения нейронной сети, могут быть получены через интерфейс 6003 связи.[00492] Communications interface 6003 uses a transceiver device, such as, but not limited to, a transceiver, to implement communication between device 6000 and another device or communications network. For example, information about the neural network to be built and training data needed in the process of building the neural network can be obtained through the communication interface 6003.
[00493] Шина 6004 может включать в себя путь для передачи информации между компонентами (например, памятью 6001, процессором 6002 и интерфейсом 6003 связи) устройства 6000.[00493] Bus 6004 may include a path for transferring information between components (e.g., memory 6001, processor 6002, and communications interface 6003) of device 6000.
[00494] Блок 5001 определения и блок 5002 прогнозирования в устройстве 5000 прогнозирования изображения эквивалентны процессору 6002 в устройстве 6000 прогнозирования изображения.[00494] The determination unit 5001 and the prediction unit 5002 in the
[00495] Фиг. 18 - схематическая диаграмма аппаратной структуры устройства кодирования/декодирования изображения согласно варианту осуществления настоящей заявки. Устройство 7000 кодирования/декодирования изображений, показанное на фиг. 18 (устройство 7000, в частности, может быть компьютерным устройством) включает в себя память 7001, процессор 7002, интерфейс 7003 связи и шину 7004. Коммуникационные соединения между памятью 7001, процессором 7002 и интерфейсом 7003 связи реализуются через шину 7004.[00495] FIG. 18 is a schematic diagram of a hardware structure of an image encoding/decoding apparatus according to an embodiment of the present application. The image encoding/
[00496] Вышеупомянутые ограничения и пояснения модулей в устройстве 6000 прогнозирования изображения также применимы к устройству 7000 кодирования/декодирования изображения, и подробности здесь снова не описываются.[00496] The above limitations and explanations of the modules in the image prediction device 6000 also apply to the image encoding/
[00497] Память 7001 может быть выполнена с возможностью хранения программы. Процессор 7002 выполнен с возможностью выполнения программы, хранящейся в памяти 7001. Когда программа, хранящаяся в памяти 7001, выполняется, процессор 7002 выполнен с возможностью осуществления этапов способа прогнозирования изображения в вариантах осуществления настоящей заявки.[00497] The memory 7001 may be configured to store a program. The processor 7002 is configured to execute the program stored in the memory 7001. When the program stored in the memory 7001 is executed, the processor 7002 is configured to execute the steps of the image prediction method in the embodiments of the present application.
[00498] Кроме того, при кодировании видеоизображения устройство 7000 кодирования/декодирования изображений может получать видеоизображение через интерфейс связи, а затем кодировать полученное видеоизображение для получения закодированных видеоданных. Закодированные видеоданные могут быть переданы в устройство декодирования видео через интерфейс 7003 связи.[00498] In addition, when encoding a video image, the image encoding/
[00499] При декодировании видеоизображения устройство 7000 кодирования/декодирования изображений может получить видеоизображение через интерфейс связи, а затем декодировать полученное видеоизображение, чтобы получить видеоизображение, которое должно быть отображено.[00499] When decoding a video image, the image encoding/
[00500] Специалист в данной области техники может знать, что в сочетании с примерами, описанными в вариантах осуществления, раскрытых в данном описании, блоки и этапы алгоритма могут быть реализованы посредством электронного аппаратного обеспечения или комбинации компьютерного программного обеспечения и электронного аппаратного обеспечения. Выполняются ли функции аппаратным или программным обеспечением, зависит от конкретного приложения и конструктивных ограничений технических решений. Специалист в данной области может использовать различные способы для реализации описанных функций для каждого конкретного применения, но не следует считать, что такая реализация выходит за рамки объема данной заявки.[00500] One skilled in the art may be aware that, in combination with the examples described in the embodiments disclosed herein, the blocks and steps of the algorithm may be implemented by electronic hardware or a combination of computer software and electronic hardware. Whether functions are performed by hardware or software depends on the specific application and the design constraints of the technical solutions. One skilled in the art may employ various methods to implement the described functions for each particular application, but such implementation should not be considered beyond the scope of this application.
[00501] Специалисту в данной области техники может быть ясно, что для удобного и краткого описания подробный рабочий процесс вышеупомянутой системы, устройства и блоков относится к соответствующему процессу в вышеупомянутых вариантах осуществления способа, а подробности не приводятся здесь снова. [00501] It may be clear to one skilled in the art that, for the purpose of convenient and concise description, the detailed working process of the above-mentioned system, apparatus and blocks refers to the corresponding process in the above-mentioned method embodiments, and the details are not given here again.
[00502] Следует понимать, что в нескольких вариантах осуществления, представленных в настоящей заявке, раскрытые система, устройство и способ могут быть реализованы другим способом. Например, описанный вариант осуществления устройства является просто примером. Например, разделение на блоки - это просто разделение логических функций и может быть другим разделением в фактической реализации. Например, множество блоков или компонентов могут быть объединены или интегрированы в другую систему, или некоторые признаки могут игнорироваться или не выполняться. Кроме того, отображаемые или обсуждаемые взаимные связи или прямые связи или коммуникационные соединения могут быть реализованы через некоторые интерфейсы. Непрямые соединения или коммуникационные соединения между устройствами или блоками могут быть реализованы в электронной форме, механической форме или другой форме.[00502] It should be understood that in several embodiments presented herein, the disclosed system, apparatus, and method may be implemented in another manner. For example, the described embodiment of the device is merely an example. For example, blocking is simply a division of logical functions and may be a different division in the actual implementation. For example, multiple blocks or components may be combined or integrated into another system, or some features may be ignored or not executed. In addition, the mutual connections or direct connections or communication connections displayed or discussed may be implemented through some interfaces. Indirect connections or communication connections between devices or units may be implemented in electronic form, mechanical form, or other form.
[00503] Блоки, описанные как отдельные части, могут быть или не быть физически отдельными, и части, отображаемые как блоки, могут быть или не быть физическими единицами, могут быть расположены в одном месте или могут быть распределены по множеству сетевых блоков. Некоторые или все блоки могут быть выбраны на основе фактического требования для достижения целей решений вариантов осуществления.[00503] Blocks depicted as individual pieces may or may not be physically separate, and pieces depicted as blocks may or may not be physical units, may be located in one location, or may be distributed across multiple network blocks. Some or all of the blocks may be selected based on the actual requirement to achieve the objectives of the solutions of the embodiments.
[00504] Кроме того, функциональные блоки в вариантах осуществления настоящей заявки могут быть интегрированы в один блок обработки, или каждый из блоков может существовать отдельно физически, или два или более блоков интегрируются в один блок.[00504] In addition, the functional blocks in embodiments of the present application may be integrated into a single processing block, or each of the blocks may exist separately physically, or two or more blocks are integrated into a single block.
[00505] Когда функции реализуются в форме программного функционального блока и продаются или используются в виде независимого продукта, функции могут быть сохранены на считываемом компьютером носителе данных. Основываясь на таком понимании, суть технических решений в этой заявке, или определенная часть, вносящая в уровень техники вклад, или некоторые технические решения могут быть реализованы в форме программного продукта. Программный продукт хранится на носителе данных и включает в себя несколько инструкций для указания компьютерному устройству (которое может быть персональным компьютером, сервером или сетевым устройством) выполнять все или некоторые из этапов способов, описанных в вариантах осуществления. настоящей заявки. Вышеуказанный носитель данных включает в себя: любой носитель, который может хранить программный код, такой как флэш-накопитель USB, съемный жесткий диск, постоянное запоминающее устройство (read-only memory, ROM), оперативная память (random access memory, RAM), магнитный диск или оптический диск.[00505] When functions are implemented in the form of a software function block and sold or used as an independent product, the functions may be stored on a computer-readable storage medium. Based on this understanding, the essence of the technical solutions in this application, or a certain part making a contribution to the prior art, or some technical solutions can be implemented in the form of a software product. The software product is stored in a storage medium and includes a number of instructions for directing a computing device (which may be a personal computer, a server, or a network device) to perform all or some of the steps of the methods described in the embodiments. of this application. The above storage medium includes: any medium that can store program code, such as a USB flash drive, removable hard disk, read-only memory (ROM), random access memory (RAM), magnetic disk or optical disc.
[00506] Вышеприведенное описание представляет собой лишь конкретные реализации настоящей заявки, но оно не предназначено для ограничения объема охраны настоящей заявки. Любое изменение или замена, легко обнаруживаемая специалистом в данной области техники в пределах технического объема, раскрытого в настоящей заявке, должно/должна попадать в объем охраны настоящей заявки. Следовательно, объем охраны настоящей заявки должен соответствовать объему охраны формулы изобретения. [00506] The foregoing description represents only specific implementations of the present application, but is not intended to limit the scope of protection of the present application. Any change or substitution readily detectable by one skilled in the art within the technical scope disclosed in this application shall/shall fall within the scope of protection of this application. Therefore, the scope of protection of the present application should correspond to the scope of protection of the claims.
Claims (60)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910341218.6 | 2019-04-25 | ||
CN201910474007.X | 2019-06-02 |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2021134215A RU2021134215A (en) | 2023-05-25 |
RU2810126C2 true RU2810126C2 (en) | 2023-12-22 |
Family
ID=
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012177388A1 (en) * | 2011-06-20 | 2012-12-27 | Qualcomm Incorporated | Unified merge mode and adaptive motion vector prediction mode candidates selection |
RU2547240C1 (en) * | 2011-03-21 | 2015-04-10 | Квэлкомм Инкорпорейтед | Double predicting integration mode based on single predicting neighbours in video encoding |
US9025669B1 (en) * | 2011-08-29 | 2015-05-05 | Ibex Pt Holdings Co., Ltd. | Apparatus for decoding motion information in merge mode |
US9066104B2 (en) * | 2011-01-14 | 2015-06-23 | Google Inc. | Spatial block merge mode |
CN106303534A (en) * | 2015-06-08 | 2017-01-04 | 上海天荷电子信息有限公司 | Multiple index string and pixel string merge method for compressing image and the device of copy mode |
WO2017084512A1 (en) * | 2015-11-20 | 2017-05-26 | Mediatek Inc. | Method and apparatus of motion vector prediction or merge candidate derivation for video coding |
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9066104B2 (en) * | 2011-01-14 | 2015-06-23 | Google Inc. | Spatial block merge mode |
RU2547240C1 (en) * | 2011-03-21 | 2015-04-10 | Квэлкомм Инкорпорейтед | Double predicting integration mode based on single predicting neighbours in video encoding |
WO2012177388A1 (en) * | 2011-06-20 | 2012-12-27 | Qualcomm Incorporated | Unified merge mode and adaptive motion vector prediction mode candidates selection |
US9025669B1 (en) * | 2011-08-29 | 2015-05-05 | Ibex Pt Holdings Co., Ltd. | Apparatus for decoding motion information in merge mode |
CN106303534A (en) * | 2015-06-08 | 2017-01-04 | 上海天荷电子信息有限公司 | Multiple index string and pixel string merge method for compressing image and the device of copy mode |
WO2017084512A1 (en) * | 2015-11-20 | 2017-05-26 | Mediatek Inc. | Method and apparatus of motion vector prediction or merge candidate derivation for video coding |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112005551B (en) | Video image prediction method and device | |
CN111277828B (en) | Video encoding and decoding method, video encoder and video decoder | |
KR102621958B1 (en) | Candidate motion vector list acquisition method, device, encoder and decoder | |
JP7314274B2 (en) | Video picture decoding and encoding method and apparatus | |
AU2020261145B2 (en) | Picture prediction method and apparatus, and computer-readable storage medium | |
WO2020232845A1 (en) | Inter-frame prediction method and device | |
CN112055200A (en) | MPM list construction method, and chroma block intra-frame prediction mode acquisition method and device | |
AU2024201357A1 (en) | Picture prediction method and apparatus, and computer-readable storage medium | |
CN113170176B (en) | Video encoder, video decoder and corresponding methods | |
CN112135137B (en) | Video encoder, video decoder and corresponding methods | |
CN111277840B (en) | Transform method, inverse transform method, video encoder and video decoder | |
RU2810126C2 (en) | Method and device for image prediction and computer readable data medium | |
US12010293B2 (en) | Picture prediction method and apparatus, and computer-readable storage medium | |
CN113615191B (en) | Method and device for determining image display sequence and video encoding and decoding equipment | |
RU2787812C2 (en) | Method and equipment for video image prediction | |
RU2778993C2 (en) | Method and equipment for predicting video images | |
CN112135129B (en) | Inter-frame prediction method and device | |
RU2787885C2 (en) | Method and equipment for mutual prediction, bit stream and non-volatile storage carrier | |
CN112135129A (en) | Inter-frame prediction method and device |