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 PDF

Info

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
Application number
RU2021134215A
Other languages
Russian (ru)
Other versions
RU2021134215A (en
Inventor
Сюй ЧЭНЬ
Хуаньбан ЧЭНЬ
Хайтао ЯН
Лянь Чжан
Original Assignee
Хуавэй Текнолоджиз Ко., Лтд.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Хуавэй Текнолоджиз Ко., Лтд. filed Critical Хуавэй Текнолоджиз Ко., Лтд.
Publication of RU2021134215A publication Critical patent/RU2021134215A/en
Application granted granted Critical
Publication of RU2810126C2 publication Critical patent/RU2810126C2/en

Links

Images

Abstract

FIELD: video encoding technologies.
SUBSTANCE: invention relates to a method and device for image prediction. The technical result is to increase the efficiency of video coding by reducing redundancy in the image prediction process. The result is achieved in that the image prediction 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 for the current image block; if the first 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, directly defining the second merge mode as the target merge mode applicable to the current image block, wherein both the first merge mode and the second merge mode belong to the level-2 merge mode; and predicting the current image block based on the target fusion mode.
EFFECT: increased efficiency of video coding by reducing redundancy in the image prediction process.
24 cl, 18 dwg, 7 tbl

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 condition 1 to condition 5 is not satisfied, setting a value of available status information that indicates the available status of the mode CIIP for the first value, wherein when the available status information value that indicates the available status of the CIIP mode is the first value, the CIIP mode is used to perform image prediction to the current image block.

[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 condition 1 to condition 5 are satisfied, determining the target merge mode based on a high-level syntax element corresponding CIIP mode, and/or available status information that indicates the available status of the CIIP mode, wherein the available status information that 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.

[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 (condition 1 to condition 5), the CIIP mode available status information is obtained by analyzing the bitstream, and the target merge mode is determined based on the CIIP mode available status information:

[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 decoding system 10 applicable to embodiments of the present application. As shown in FIG. 1, the video encoding and decoding system 10 may include a source device 12 and a target device 14. The source device 12 generates encoded video data, and therefore the source device 12 may be referred to as a video encoding device. The target device 14 can decode encoded video data generated by the source device 12, and therefore the target device 14 may be referred to as a video decoding device. In various embodiments, source device 12, target device 14, or both source device 12 and target device 14 may include one or more processors and memory associated with the one or more processors. Memory may include, but is not limited to, read-only memory (ROM), random access memory (RAM), erasable programmable read-only memory (EPROM), flash memory, or any another medium that can be configured to store the necessary program code in the form of an instruction or data structure and that can be accessed from a computer as described herein. Source device 12 and target device 14 may include a variety of devices, including a desktop computer, a mobile computing device, a portable computer (e.g., a laptop), a tablet computer, a set-top box, a handset such as a so-called smart phone, a television, a camera, a display device, a digital media player, a game console, a vehicle-mounted computer, a wireless communication device, or the like.

[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 communication channel 13. Target device 14 may receive encoded video data from source device 12 via communication channel 13. Communication channel 13 may include one or more media or devices capable of moving encoded video data from source device 12 to target device 14. In an example, communication channel 13 may include one or more communication media that enable source device 12 directly transmit the encoded video data to the target device 14 in real time. In this example, source device 12 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 14. One or more communication media may include a wireless communication medium and/or a wired medium communications, such as radio frequency (RF) spectrum or one or more physical transmission cables. One or more communication media may be part of a packet-based network, and the packet-based network is, for example, 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 provides communication from source device 12 to target device 14.

[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 image source 16, an image preprocessor 18, and a communications interface 22. In a particular implementation, encoder 20, image source 16, image preprocessor 18, and communication interface 22 may be hardware components in source device 12 or may be software programs in source device 12. Descriptions are provided separately as follows:

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

[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 image source 16 to the image processor may also be referred to as raw image data 17.

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

[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 image data 19 and process preprocessed image data 19 using an appropriate prediction mode (such as the prediction mode in each embodiment of this specification) to provide encoded data 21 images (structural details of the encoder 20 are further described below based on FIG. 2, FIG. 4, or FIG. 5). In some embodiments, the encoder 20 may be configured to implement each embodiment described below to implement, on the encoder side, the image prediction method described herein.

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

[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 display device 34. Descriptions are provided separately as follows:

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

[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 image data 21 and provide decoded image data 31 or decoded image 31 (structural details of the decoder 30 are further described below based on FIG. 3, FIG. 4, or FIG. 5) . In some embodiments, the decoder 30 may be configured to implement each embodiment described below to implement, on the decoder side, the image prediction method described herein.

[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 post-processed image data 33 . Post-processing performed by image post-processor 32 may include color format conversion (eg, from YUV format to RGB format), color correction, cropping, resampling, or any other processing. The image post-processor 32 may further be configured to transmit post-processed image data 33 to the display device 34.

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

[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 decoding system 10 shown in FIG. 1 is merely an example, and the technologies of the present application may be applicable to video encoding settings (eg, video encoding or video decoding) that do not necessarily involve any communication between the encoding device and the decoding device. In another example, data may be retrieved from local memory, streamed over a network, or the like. A video encoding apparatus may encode data and store the data in memory, and/or a video decoding apparatus may retrieve data from memory and decode the data. In some examples, encoding and decoding are performed by devices that do not communicate with each other, but simply encode data into memory and/or retrieve data from memory and decode the data.

[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 transform processing unit 206, a quantization unit 208, an inverse quantization unit 210, an inverse transform processing unit 212, a restoration unit 214, a buffer 216, a loop filter 220, a decoded picture buffer 230 , DPB), prediction processing unit 260 and entropy encoding unit 270. The prediction processing unit 260 may include an inter-frame prediction unit 244, an intra-frame prediction unit 254, and a mode selection unit 262. The inter-frame prediction unit 244 may include a motion estimation unit and a motion compensation unit (not shown in the figure). The encoder 20 shown in FIG. 2 may also be called a hybrid video encoder or a hybrid video codec-based video encoder.

[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 transform processing block 206, the quantization block 208, the prediction processing block 260, and the entropy encoding block 270 form the forward signal path of the encoder 20, while, for example, the inverse quantization block 210, the inverse transform processing block 212 , recovery unit 214, buffer 216, loop filter 220, decoded picture buffer (DPB) 230, and prediction processing unit 260 form the reverse encoder signal path. The return signal path of the encoder corresponds to the signal path of the decoder (see decoder 30 in FIG. 3).

[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 prediction processing unit 260 of the encoder 20 may be configured to implement any combination of the separation techniques described above.

[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 transform processing unit 206 is configured to apply a transform, such as a discrete cosine transform (DCT) or a discrete sine transform (DST), to the sample values of the residual block 205 to obtain transform coefficients 207 in the transform domain. . Transformation coefficient 207 may also be referred to as a residual transform coefficient and represents a residual block 205 in the transform domain.

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

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

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

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

[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 intra-frame prediction 254, but also used for loop filter block 220 (not shown in FIG. 2), and/or so that, for example, the buffer block 216 and the decoded image buffer 230 form one buffer. In another embodiment, filtered block 221 and/or a block or sample (not shown in FIG. 2) from decoded image buffer 230 is/are used as input or basis for intra-prediction 254.

[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. Loop filter block 220 is configured to represent one or more loop filters, such as a deblocking filter, a sample-adaptive offset (SAO) filter, or another filter, such as a two-way filter, an adaptive loop filter. (adaptive loop filter, ALF), sharpening or smoothing filter, or joint filter. Although loop filter block 220 is shown as an input loop filter in FIG. 2, in another implementation, loop filter block 220 may be implemented as a post-loop filter. The filtered block 221 may also be referred to as the filtered reconstructed block 221. The decoded image buffer 230 may store the reconstructed coded block after the loop filter block 220 performs a filtering operation on the reconstructed coded block.

[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 entropy encoding block 270 or any other entropy encoding block so that the decoder 30 can receive and apply the same loop filter parameter for decoding.

[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 DPB 230 may be formed by any of a variety of memory devices, such as dynamic random access memory (DRAM). dynamic random access memory (DRAM) (including synchronous DRAM (synchronous DRAM (SDRAM), magnetoresistive RAM (MRAM), resistive random access memory (RRAM)) or other type of storage device. DPB 230 and buffer 216 may be provided by the same storage device or by separate storage devices. In the example, the decoded picture buffer (DPB) 230 is configured to store a filtered block 221. The decoded picture buffer 230 may further be configured to store other previously filtered blocks, such as previously reconstructed and filtered blocks 221, of the same current image or different images, such as previously reconstructed images, and may provide fully previously reconstructed, i.e., decoded images (and corresponding reference blocks and samples) and/or partially reconstructed current image (and corresponding reference blocks and samples), for example, for interframe prediction. In one example, if reconstructed block 215 is reconstructed without in-loop filtering, decoded picture buffer (DPB) 230 is configured to store reconstructed block 215.

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

[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 corresponding prediction block 245 or 255 to be used as the prediction block 265, to calculate the residual block 205, and to recovery of the restored block 215.

[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 DBP 230, as described above) and other inter-prediction parameters, for example, depends on whether the entire reference image or just part of the reference image, e.g. the search box area around the current image block area, is used to find the best matching reference block and/or, for example, depends on whether pixel interpolation is performed, e.g. half-pixel interpolation is applied and/ or a quarter pixel. A set of interframe prediction modes may include, for example, an Advanced Motion Vector Prediction (AMVP) mode and a merge mode. In a specific implementation, a set of inter-frame prediction modes may include an enhanced checkpoint-based AMVP mode and an enhanced checkpoint-based merge mode in embodiments of the present application. In an example, intra-frame prediction block 254 may be configured to perform any combination of inter-frame prediction technologies described below.

[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 prediction processing unit 260 may further be configured to divide the image block 203 into smaller parts or sub-units, for example, by iteratively using quad-tree (QT) partitioning, binary-tree (BT) partitioning. , splitting a ternary tree (triple-tree, TT) or any combination thereof and performing, for example, prediction for each of the sections of the block or subblocks. Mode selection includes selecting a tree structure of the divided image block 203 and selecting a prediction mode to be applied to each of the block sections or subblocks.

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

[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, interframe prediction block 244 may provide a syntax element to entropy encoding block 270. The syntax element includes an inter-prediction parameter (eg, information indicating the selection of an inter-prediction mode used to predict the current image block after traversing a plurality of inter-prediction modes). In a possible application scenario, if there is only one inter-prediction mode, the inter-prediction parameter may alternatively not be carried in the syntax element. In this case, the decoder side 30 may directly perform decoding using the default prediction mode. It can be understood that the inter-frame prediction unit 244 may be configured to implement any combination of inter-frame prediction technologies.

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

[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 prediction block 255 that is most similar to the current image block 203) or a minimum rate distortions.

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

[00216] В частности, блок 254 внутрикадрового прогнозирования может передавать элемент синтаксиса в блок 270 энтропийного кодирования. Элемент синтаксиса включает в себя параметр внутрикадрового прогнозирования (например, информацию индикации выбора режима внутрикадрового прогнозирования, используемого для прогнозирования текущего блока изображения после обхода(перехода) множества режимов внутрикадрового прогнозирования). В возможном сценарии применения, если существует только один режим внутрикадрового прогнозирования, параметр внутрикадрового прогнозирования может альтернативно не переноситься в элементе синтаксиса. В этом случае сторона 30 декодера может непосредственно выполнять декодирование с использованием режима прогнозирования по умолчанию.[00216] In particular, intra-frame prediction block 254 may provide a syntax element to entropy encoding block 270. The syntax element includes an intra-prediction parameter (eg, intra-prediction mode selection indication information used to predict the current image block after traversing a plurality of intra-prediction modes). In a possible application scenario, if there is only one intra-prediction mode, the intra-prediction parameter may alternatively not be carried in the syntax element. In this case, the decoder side 30 may directly perform decoding using the default prediction mode.

[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] Entropy encoding block 270 is configured to use (or not use) an entropy encoding algorithm or scheme (e.g., variable length coding (VLC) scheme, context adaptive VLC (CAVLC) scheme, arithmetic coding, context-adaptive binary arithmetic coding (CABAC), syntax-based context-adaptive binary arithmetic coding (SBAC), probability interval division entropy coding (probability interval partitioning entropy (PIPE) or other entropy encoding methodology or technology) to one or all of the quantized residual coefficient 209, the inter-prediction parameter, the intra-prediction parameter, and/or the edge filter parameter to obtain encoded image data 21 that can be output 272, for example, in the form of an encoded bitstream 21. The encoded bitstream may be transmitted to video decoder 30 or archived for later transmission or retrieval by video decoder 30. Entropy encoding block 270 may further be configured to entropy encode another syntax element for the current portion of video being encoded. .

[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 transform processing block 206 for some blocks or frames. In another implementation, encoder 20 may have a quantization unit 208 and an inverse quantization unit 210 combined into a single unit.

[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 transform processing unit 206 is not required, and accordingly, processing by the inverse transform processing unit 212 is also not required. Alternatively, for some image blocks or image frames, video encoder 20 does not generate residual data, and accordingly, processing by transform processing unit 206, quantization unit 208, inverse quantization unit 210, and inverse transform processing unit 212 is not required. Alternatively, video encoder 20 may directly store the reconstructed image block as a reference block, and processing by filter 220 is not required. Alternatively, quantization unit 208 and inverse quantization unit 210 in video encoder 20 may be combined. The 220 loop filter is optional. Moreover, in the case of lossless compression encoding, the transform processing unit 206, the quantization unit 208, the inverse quantization unit 210, and the inverse transform processing unit 212 are optional. It should be understood that in various application scenarios, inter-frame prediction unit 244 and intra-frame prediction unit 254 may be used selectively.

[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 entropy decoding unit 304, an inverse quantization unit 310, an inverse transform processing unit 312, a restoration unit 314 (eg, an adder 314), a buffer 316, a loop filter 320, a decoded image buffer 330, and a prediction processing unit 360. The prediction processing unit 360 may include an inter-frame prediction unit 344, an intra-frame prediction unit 354, and a mode selection unit 362. In some examples, video decoder 30 may perform a decoding step that is generally the reverse of the encoding step described with reference to video encoder 20 in FIG. 2.

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

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

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

[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 prediction processing block 360 is configured to generate a prediction block 365 for an image block of the current video fragment based on the signaled intra-frame prediction mode and data from a previously decoded block of the current frame or image . When a video frame is encoded into an inter-coded (namely, B or P) fragment, an inter-frame prediction block 344 (e.g., a motion compensation block) in the prediction processing block 360 is configured to generate a video block prediction block 365 in the current video fragment based on the motion vector and other element syntax that is received from entropy decoding block 304. For inter-picture prediction, a prediction block may be formed from one of the reference pictures in one reference picture list. Video decoder 30 may create reference frame lists, list 0 and list 1, using a default construction technology and based on reference pictures stored in DPB 330.

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

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

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

[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, loop filter block 320 may be configured to perform any combination of filtering technologies described below. Loop filter block 320 is configured to represent one or more loop filters, such as a deblocking filter, a sample-adaptive offset (SAO) filter, or another filter, such as a two-way filter, an adaptive loop filter (ALF). ), a sharpening or smoothing filter, or a joint filter. Although loop filter block 320 is shown as an input loop filter in FIG. 3, in another implementation, loop filter block 320 may be implemented as a post-loop filter.

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

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

[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 loop filter block 320. For example, the non-transform decoder 30 may directly perform inverse quantization of the residual signal without the inversion processing block 312 for some blocks or frames. In another implementation, video decoder 30 may have an inverse quantization block 310 and an inverse transform processing block 312 combined into one block.

[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 filter 320. Alternatively, for some image blocks or image frames, entropy decoding block 304 of video decoder 30 does not obtain quantized coefficients through decoding, and accordingly there is no need for inverse quantization block 310 and block 312 inverse conversion processing to perform processing. The 320 loop filter is optional. Moreover, in the case of lossless compression, the inverse quantization unit 310 and the inverse transform processing unit 312 are also optional. It should be understood that in various application scenarios, the inter-frame prediction unit and the intra-frame prediction unit may be used selectively.

[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 ports 410 and a receiving unit (Rx) 420, which are configured to receive data; a processor, logical unit, or central processing unit (CPU) 430 that is configured to process data; a transmitter (Tx) unit 440 and output ports 450 that are configured to transmit data; and a memory 460 configured to store data. The video encoding device 400 may further include an optical-electrical component and an electrical-optical (EO) component connected to input ports 410, a receiver unit 420, a transmitter unit 440, and output ports 450 for outputting or inputting an optical or electrical signal.

[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 processor 430 is implemented in hardware and software. Processor 430 may be implemented as one or more CPU chips, cores (eg, a multi-core processor), FPGA, ASIC, and DSP. Processor 430 communicates with input ports 410, receiver unit 420, transmitter unit 440, output ports 450, and memory 460. Processor 430 includes an encoding module 470 (eg, encoding module 470 or decoding module 470). The encoding/decoding module 470 implements the embodiments disclosed in this description to implement the image prediction method provided in the embodiments of the present invention. For example, encoding/decoding module 470 performs, processes, or provides various encoding operations. Therefore, the encoding/decoding unit 470 significantly improves the functions of the video encoding device 400 and affects the conversion of the video encoding device 400 to another status. Alternatively, encoding/decoding module 470 is implemented as an instruction stored in memory 460 and executed by processor 430.

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

[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 processor 510, a memory 530, and a bus system 550. The processor and memory are coupled through the bus system. The memory is configured to store instructions. The processor is configured to execute an instruction stored in memory. The program code is stored in the memory of the encoder. The processor may call program code stored in memory to implement various video encoding or decoding methods described herein, in particular, various new methods for dividing image blocks. To avoid repetition, details are again omitted here.

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

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

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

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

[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

Базовый возможный индексBase Possible Index 00 11 22 33 N-й MVP Nth MVP 1-й MVP 1st MVP 2-й MVP 2nd MVP 3-й MVP 3rd MVP 4-й MVP 4th MVP

[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

Индекс расстоянияDistance index 00 11 22 33 44 55 66 77 Расстояние в пикселяхDistance in pixels 1/4-пэл1/4-pal 1/2-пэл1/2-pal 1-пэл1-pal 2-пэл2-pal 4-пэл4-pal 8-пэл8-pal 16-пэл16-pal 32-пэл32-pal

[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

Индекс направленияDirection index 0000 0101 1010 11eleven Ось XX axis ++ -- N/AN/A N/AN/A Ось YY axis N/AN/A N/AN/A ++ --

[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 является 2 8 × P 1 + 6 8 × P 2 . P 1 представляет предиктор пикселя в верхней правой области на фиг. 11, и представляет собой предиктор пикселя в нижней левой области на фиг. 11.[00296] For example, in the image on the left in FIG. 11, the predictor of the pixel at location 2 is 2 8 × P 1 + 6 8 × P 2 . P 1 represents the pixel predictor in the upper right area in FIG. 11, and is a pixel predictor in the lower left region of FIG. eleven.

[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 target device 7000. Typically, display device 703 displays decoded video data. The display device 703 may include many types of display devices, such as a liquid crystal display, plasma display, organic light-emitting diode display, or other type of display device.

[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 cases 1 to 3:

[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

merge_data( x0, y0, cbWidth, cbHeight )merge_data( x0, y0, cbWidth, cbHeight ) {if ( CuPredMode[ x0 ][ y0 ] = = MODE_IBC ){if ( CuPredMode[ x0 ][ y0 ] = = MODE_IBC ) {if( MaxNumMergeCand > 1 ){if( MaxNumMergeCand > 1 ) merge_idx[ x0 ][ y0 ]merge_idx[ x0 ][ y0 ] } else} else {…{… } else} else {…{… } else} else {if( MaxNumSubblockMergeCand > 0 && cbWidth >= 8 && cbHeight >= 8 ){if( MaxNumSubblockMergeCand > 0 && cbWidth >= 8 && cbHeight >= 8 ) merge_subblock_flag[ x0 ][ y0 ]merge_subblock_flag[ x0 ][ y0 ] if( merge_subblock_flag[ x0 ][ y0 ] = = 1 )if( merge_subblock_flag[ x0 ][ y0 ] == 1 ) {if( MaxNumSubblockMergeCand > 1 ){if( MaxNumSubblockMergeCand > 1 ) merge_subblock_idx[ x0 ][ y0 ]merge_subblock_idx[ x0 ][ y0 ] } else} else { if(sps_ciip_enabled_flag && sps_triangle_enabled_flag &&
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 )
{ ciip_flag[ x0 ][ y0 ]{ ciip_flag[ x0 ][ y0 ] if( ciip_flag[ x0 ][ y0 ] && MaxNumMergeCand > 1 )if( ciip_flag[ x0 ][ y0 ] && MaxNumMergeCand > 1 ) merge_idx[ x0 ][ y0 ]merge_idx[ x0 ][ y0 ] }} if( MergeTriangleFlag[ x0 ][ y0 ] )if( MergeTriangleFlag[ x0 ][ y0 ] ) {merge_triangle_split_dir[ x0 ][ y0 ]{merge_triangle_split_dir[ x0 ][ y0 ] merge_triangle_idx0[ x0 ][ y0 ]merge_triangle_idx0[ x0 ][ y0 ] merge_triangle_idx1[ x0 ][ y0 ]merge_triangle_idx1[ x0 ][ y0 ] }} }} }} }}

[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

merge_data( x0, y0, cbWidth, cbHeight )merge_data( x0, y0, cbWidth, cbHeight ) {if ( CuPredMode[ x0 ][ y0 ] = = MODE_IBC ){if ( CuPredMode[ x0 ][ y0 ] = = MODE_IBC ) {if( MaxNumMergeCand > 1 ){if( MaxNumMergeCand > 1 ) merge_idx[ x0 ][ y0 ]merge_idx[ x0 ][ y0 ] } else} else {…{… } else} else {…{… } else} else {if( MaxNumSubblockMergeCand > 0 && cbWidth >= 8 && cbHeight >= 8 ){if( MaxNumSubblockMergeCand > 0 && cbWidth >= 8 && cbHeight >= 8 ) merge_subblock_flag[ x0 ][ y0 ]merge_subblock_flag[ x0 ][ y0 ] if( merge_subblock_flag[ x0 ][ y0 ] = = 1 )if( merge_subblock_flag[ x0 ][ y0 ] == 1 ) {if( MaxNumSubblockMergeCand > 1 ){if( MaxNumSubblockMergeCand > 1 ) merge_subblock_idx[ x0 ][ y0 ]merge_subblock_idx[ x0 ][ y0 ] } else} else { if(sps_triangle_enabled_flag &&sps_ciip_enabled_flag &&
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 )
{ ciip_flag[ x0 ][ y0 ]{ ciip_flag[ x0 ][ y0 ] if( ciip_flag[ x0 ][ y0 ] && MaxNumMergeCand > 1 )if( ciip_flag[ x0 ][ y0 ] && MaxNumMergeCand > 1 ) merge_idx[ x0 ][ y0 ]merge_idx[ x0 ][ y0 ] }} if( MergeTriangleFlag[ x0 ][ y0 ] )if( MergeTriangleFlag[ x0 ][ y0 ] ) {merge_triangle_split_dir[ x0 ][ y0 ]{merge_triangle_split_dir[ x0 ][ y0 ] merge_triangle_idx0[ x0 ][ y0 ]merge_triangle_idx0[ x0 ][ y0 ] merge_triangle_idx1[ x0 ][ y0 ]merge_triangle_idx1[ x0 ][ y0 ] }} }} }} }}

[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

merge_data( x0, y0, cbWidth, cbHeight )merge_data( x0, y0, cbWidth, cbHeight ) {if ( CuPredMode[ x0 ][ y0 ] = = MODE_IBC ){if ( CuPredMode[ x0 ][ y0 ] = = MODE_IBC ) {if( MaxNumMergeCand > 1 ){if( MaxNumMergeCand > 1 ) merge_idx[ x0 ][ y0 ]merge_idx[ x0 ][ y0 ] } else} else {…{… } else} else {…{… } else} else {if( MaxNumSubblockMergeCand > 0 && cbWidth >= 8 && cbHeight >= 8 ){if( MaxNumSubblockMergeCand > 0 && cbWidth >= 8 && cbHeight >= 8 ) merge_subblock_flag[ x0 ][ y0 ]merge_subblock_flag[ x0 ][ y0 ] if( merge_subblock_flag[ x0 ][ y0 ] = = 1 )if( merge_subblock_flag[ x0 ][ y0 ] == 1 ) {if( MaxNumSubblockMergeCand > 1 ){if( MaxNumSubblockMergeCand > 1 ) merge_subblock_idx[ x0 ][ y0 ]merge_subblock_idx[ x0 ][ y0 ] } else} else { 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)
{ 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)
{ ciip_flag[ x0 ][ y0 ]{ ciip_flag[ x0 ][ y0 ] if( ciip_flag[ x0 ][ y0 ] && MaxNumMergeCand > 1 )if( ciip_flag[ x0 ][ y0 ] && MaxNumMergeCand > 1 ) merge_idx[ x0 ][ y0 ]merge_idx[ x0 ][ y0 ] }} if( MergeTriangleFlag[ x0 ][ y0 ] )if( MergeTriangleFlag[ x0 ][ y0 ] ) {merge_triangle_split_dir[ x0 ][ y0 ]{merge_triangle_split_dir[ x0 ][ y0 ] merge_triangle_idx0[ x0 ][ y0 ]merge_triangle_idx0[ x0 ][ y0 ] merge_triangle_idx1[ x0 ][ y0 ]merge_triangle_idx1[ x0 ][ y0 ] }} }} }} }}

[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

merge_data( x0, y0, cbWidth, cbHeight )merge_data( x0, y0, cbWidth, cbHeight ) {if ( CuPredMode[ x0 ][ y0 ] = = MODE_IBC ){if ( CuPredMode[ x0 ][ y0 ] = = MODE_IBC ) {if( MaxNumMergeCand > 1 ){if( MaxNumMergeCand > 1 ) merge_idx[ x0 ][ y0 ]merge_idx[ x0 ][ y0 ] } else} else {…{… } else} else {…{… } else} else {if( MaxNumSubblockMergeCand > 0 && cbWidth >= 8 && cbHeight >= 8 ){if( MaxNumSubblockMergeCand > 0 && cbWidth >= 8 && cbHeight >= 8 ) merge_subblock_flag[ x0 ][ y0 ]merge_subblock_flag[ x0 ][ y0 ] if( merge_subblock_flag[ x0 ][ y0 ] = = 1 )if( merge_subblock_flag[ x0 ][ y0 ] == 1 ) {if( MaxNumSubblockMergeCand > 1 ){if( MaxNumSubblockMergeCand > 1 ) merge_subblock_idx[ x0 ][ y0 ]merge_subblock_idx[ x0 ][ y0 ] } else} else if(sps_triangle_enabled_flag && sps_ciip_enabled_flag &&if(sps_triangle_enabled_flag && sps_ciip_enabled_flag &&
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)
{ ciip_flag[ x0 ][ y0 ]{ ciip_flag[ x0 ][ y0 ] if( ciip_flag[ x0 ][ y0 ] && MaxNumMergeCand > 1 )if( ciip_flag[ x0 ][ y0 ] && MaxNumMergeCand > 1 ) merge_idx[ x0 ][ y0 ]merge_idx[ x0 ][ y0 ] }} if( MergeTriangleFlag[ x0 ][ y0 ] )if( MergeTriangleFlag[ x0 ][ y0 ] ) {merge_triangle_split_dir[ x0 ][ y0 ]{merge_triangle_split_dir[ x0 ][ y0 ] merge_triangle_idx0[ x0 ][ y0 ]merge_triangle_idx0[ x0 ][ y0 ] merge_triangle_idx1[ x0 ][ y0 ]merge_triangle_idx1[ x0 ][ y0 ] }} }} }} }}

[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 conditions 1 to 5 are met.

[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] Condition 1 may be specifically represented by sps_triangle_enabled_flag=1, condition 2 may be specifically represented by slice_type == B, and condition 3 may be specifically represented by MaxNumTriangleMergeCand ≥ 2. MaxNumTriangleMergeCand indicates the maximum number of possible TPM modes supported by a fragment or group of fragments, in which the current image block is located.

[00453] Когда на этапе 4004 определяется, что любое из условия 1 - условия 5 не выполняется, режим CIIP может быть непосредственно определен как целевой режим слияния. Другими словами, осуществляется этап 4005. Когда на этапе 4004 определяется, что пять условий, а именно условие 1 - условие 5, удовлетворяются, целевой режим слияния дополнительно должен быть определен на основе соответствующей информации о режиме CIIP. Другими словами, осуществляется этап 4006.[00453] When it is determined at step 4004 that any of condition 1 to condition 5 is not satisfied, the CIIP mode can be directly determined as the target merge mode. In other words, step 4005 is carried out. When it is determined in step 4004 that the five conditions, namely condition 1 to condition 5, are satisfied, the target merge mode must be further determined based on the corresponding CIIP mode information. In other words, step 4006 is carried out.

[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 condition 1 to condition 5 is not satisfied, the CIIP mode is determined as the target merge mode.

[00456] Необязательно, когда любое из условия 1 - условия 5 не выполняется, значение информации о доступном статусе, которая указывает доступный статус режима CIIP, устанавливается на первое значение. Когда значение информации о доступном статусе, которая указывает доступный статус режима CIIP, является первым значением, режим CIIP используется для выполнения прогнозирования изображения для текущего блока изображения.[00456] Optionally, when any of condition 1 to condition 5 is not satisfied, the value of the available status information, which indicates the available status of the CIIP mode, is set to the first value. When the value of the available status information, which indicates the available status of the CIIP mode, is the first value, the CIIP mode is used to perform image prediction for the current image block.

[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 condition 1 to condition 5 are satisfied, the target merge mode must further be determined based on a high-level syntax element corresponding to the CIIP mode and/or available status information indicating the available status CIIP mode.

[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 cases 1 and 3:

[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 image prediction device 5000 shown in FIG. 16 includes a determination block 5001 and a prediction block 5002.

[00486] Устройство 5000 прогнозирования изображения, показанное на фиг. 16, выполнено с возможностью осуществления способа прогнозирования изображения в вариантах осуществления настоящей заявки. В частности, блок 5001 определения в устройстве 5000 прогнозирования изображения может быть выполнен с возможностью осуществления процесса определения целевого режима слияния в способе прогнозирования изображения, показанном на фиг. 13 - фиг. 15. Блок 5002 прогнозирования в устройстве 5000 прогнозирования изображения выполнен с возможностью осуществления процесса осуществления прогнозирования изображения для текущего блока изображения на основе целевого режима слияния в способе прогнозирования изображения, показанном на фиг. 13 - фиг. 15.[00486] The image prediction device 5000 shown in FIG. 16 is configured to implement the image prediction method in embodiments of the present application. Specifically, the determination unit 5001 in the image prediction device 5000 may be configured to carry out a target fusion mode determination process in the image prediction method shown in FIG. 13 - fig. 15. The prediction unit 5002 in the image prediction device 5000 is configured to carry out a process of performing image prediction for the current image block based on the target fusion mode in the image prediction method shown in FIG. 13 - fig. 15.

[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 image prediction device 5000 are equivalent to the processor 6002 in the image prediction device 6000.

[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/decoding apparatus 7000 shown in FIG. 18 (device 7000 may in particular be a computer device) includes memory 7001, processor 7002, communications interface 7003, and bus 7004. Communication connections between memory 7001, processor 7002, and communications interface 7003 are implemented via bus 7004.

[00496] Вышеупомянутые ограничения и пояснения модулей в устройстве 6000 прогнозирования изображения также применимы к устройству 7000 кодирования/декодирования изображения, и подробности здесь снова не описываются.[00496] The above limitations and explanations of the modules in the image prediction device 6000 also apply to the image encoding/decoding device 7000, and the details are again not described here.

[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/decoding apparatus 7000 may receive a video image through a communication interface, and then encode the received video image to obtain encoded video data. The encoded video data may be transmitted to the video decoding device via communication interface 7003.

[00499] При декодировании видеоизображения устройство 7000 кодирования/декодирования изображений может получить видеоизображение через интерфейс связи, а затем декодировать полученное видеоизображение, чтобы получить видеоизображение, которое должно быть отображено.[00499] When decoding a video image, the image encoding/decoding apparatus 7000 can obtain a video image through a communication interface, and then decode the received video image to obtain a video image to be displayed.

[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)

1. Способ прогнозирования изображения, содержащий: 1. A method for predicting an image, comprising: определение того, используется ли режим слияния для текущего блока изображения;determining whether a merge mode is used for the current image block; когда режим слияния используется для текущего блока изображения, определение того, доступен ли режим слияния уровня-1;when the merge mode is used for the current image block, determining whether the level-1 merge mode is available; когда режим слияния уровня-1 недоступен, и элемент синтаксиса высокого уровня, соответствующий первому режиму слияния в режиме слияния уровня-2, указывает, что первый режим слияния запрещено использовать, определение второго режима слияния в режиме слияния уровня-2 в качестве целевого режима слияния, применимого к текущему блоку изображения, при этом режим слияния уровня-2 содержит первый режим слияния и второй режим слияния, при этом первый режим слияния представляет собой режим TPM треугольного разделения, а второй режим слияния представляет собой комбинированный режим CIIP с внутрикадровым и межкадровым прогнозированием; и when the level-1 merge mode is not available, and the high-level syntax element corresponding to the first merge mode in the level-2 merge mode indicates that the first merge mode is prohibited from being used, defining the second merge mode in the level-2 merge mode as the target merge mode, applicable to the current image block, wherein the layer-2 fusion mode comprises a first fusion mode and a second fusion mode, wherein 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; And прогнозирование текущего блока изображения на основе целевого режима слияния. Predicting the current image block based on the target fusion mode. 2. Способ по п. 1, дополнительно содержащий: 2. The method according to claim 1, additionally containing: когда режим слияния уровня-1 недоступен, и элемент синтаксиса высокого уровня, соответствующий первому режиму слияния в режиме слияния уровня-2, указывает, что первый режим слияния разрешен для использования, определение целевого режима слияния на основе элемента синтаксиса высокого уровня, соответствующего второму режиму слияния в режиме слияния уровня-2, и/или информации о доступном статусе второго режима слияния, при этом информация о доступном статусе второго режима слияния используется для указания того, используется ли второй режим слияния, когда прогнозируется текущий блок изображения.when the level-1 merge mode is not available and the high-level syntax element corresponding to the first merge mode in the level-2 merge mode indicates that the first merge mode is enabled for use, determining the target merge mode based on the high-level syntax element corresponding to the second merge mode in a layer-2 merge mode, and/or information about the available status of the second merge mode, wherein the 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. 3. Способ по п. 2, в котором определение целевого режима слияния на основе элемента синтаксиса высокого уровня, соответствующего второму режиму слияния, и/или информации о доступном статусе второго режима слияния, содержит: 3. The method of claim 2, wherein determining 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 comprises: когда элемент синтаксиса высокого уровня, соответствующий второму режиму слияния, и/или информация о доступном статусе второго режима слияния указывает/указывают, что второй режим слияния запрещено использовать, определение первого режима слияния как целевого режима слияния.when a high-level syntax element 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, determining the first merge mode as the target merge mode. 4. Способ по п. 2 или 3, в котором перед определением целевого режима слияния на основе элемента синтаксиса высокого уровня, соответствующего второму режиму слияния, и/или информации о доступном статусе второго режима слияния, способ дополнительно содержит: 4. The method of claim 2 or 3, wherein before determining 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, the method further comprises: определение того, что текущий блок изображения удовлетворяет хотя бы одному из следующих условий: determining that the current image block satisfies at least one of the following conditions: размер текущего блока изображения соответствует заданному условию;the size of the current image block meets the specified condition; режим пропуска не используется для прогнозирования текущего блока изображения.Skip mode is not used to predict the current image block. 5. Способ по п. 4, в котором размер текущего блока изображения соответствует заданному условию, содержит: 5. The method according to claim 4, in which the size of the current image block meets a given condition, contains: текущий блок изображения удовлетворяет следующим трем условиям:The current image block satisfies the following three conditions: (cdWidth * cbHeight) ≥ 64; (cdWidth * cbHeight) ≥ 64; cbWidth < 128; иcbWidth < 128; And cbHeight < 128, при этомcbHeight < 128, while cdWidth - ширина текущего блока изображения, а cbHeight - высота текущего блока изображения.cdWidth is the width of the current image block, and cbHeight is the height of the current image block. 6. Способ по любому из пп. 1-5, в котором элемент синтаксиса высокого уровня является элементом синтаксиса по меньшей мере на одном из уровня последовательности, уровня изображения, уровня фрагмента и уровня группы фрагментов. 6. Method according to any one of paragraphs. 1-5, wherein the 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. 7. Способ по любому из пп. 1-6, в котором режим слияния уровня-1 содержит обычный режим слияния, слияние с режимом MMVD разности векторов движения и режим слияния подблоков.7. Method according to any one of paragraphs. 1-6, in which the layer-1 fusion mode contains a normal fusion mode, a motion vector difference MMVD fusion mode, and a sub-block fusion mode. 8. Способ по п. 1, дополнительно содержащий: 8. The method according to claim 1, additionally containing: когда режим слияния уровня-1 недоступен, определение целевого режима слияния из режима слияния уровня-2, при этом режим слияния уровня-2 содержит режим TPM и режим CIIP; иwhen the layer-1 merge mode is not available, determining the target merge mode from the layer-2 merge mode, wherein the layer-2 merge mode contains a TPM mode and a CIIP mode; And когда разрешено использование режима CIIP и не выполняется одно из следующих условий, определение режима CIIP как целевого режима слияния:When CIIP mode is enabled and one of the following conditions is not met, specify CIIP mode as the target merge mode: условие D: разрешено использование режима TPM;Condition D: TPM mode enabled; условие E: режим пропуска не используется для прогнозирования текущего блока изображения;condition E: skip mode is not used to predict the current image block; условие F: (cbWidth * cbHeight) ≥ 64; condition F: (cbWidth * cbHeight) ≥ 64; условие G: cbWidth < 128; иcondition G: cbWidth < 128; And условие H: cbHeight < 128, при этомcondition H: cbHeight < 128, while cbWidth текущего блока изображения - ширина текущего блока изображения, а cbHeight - высота текущего блока изображения.cbWidth of the current image block is the width of the current image block, and cbHeight is the height of the current image block. 9. Способ по любому из пп. 1-8, в котором способ прогнозирования применяется к стороне кодера для кодирования текущего блока изображения. 9. Method according to any one of paragraphs. 1-8, in which the prediction method is applied to the encoder side to encode the current image block. 10. Способ по любому из пп. 1-8, в котором способ прогнозирования применяется к стороне декодера для декодирования текущего блока изображения. 10. Method according to any one of paragraphs. 1-8, in which the prediction method is applied to the decoder side to decode the current image block. 11. Способ прогнозирования изображения, содержащий: 11. A method for predicting an image, comprising: определение того, используется ли режим слияния для текущего блока изображения;determining whether a merge mode is used for the current image block; когда режим слияния используется для текущего блока изображения, определение того, доступен ли режим слияния уровня-1;when the merge mode is used for the current image block, determining whether the layer-1 merge mode is available; когда режим слияния уровня-1 недоступен, определение целевого режима слияния из режима слияния уровня-2, при этом режим слияния уровня-2 содержит режим TPM и режим CIIP; иwhen the layer-1 merge mode is not available, determining the target merge mode from the layer-2 merge mode, wherein the layer-2 merge mode contains a TPM mode and a CIIP mode; And определение режима CIIP как целевого режима слияния, когда разрешено использование режима CIIP и не выполняется одно из следующих условий:defining CIIP mode as the target merge mode when CIIP mode is enabled and one of the following conditions is not true: условие 1: разрешено использование режима TPM;condition 1: TPM mode is allowed; условие 2: тип фрагмента или группы фрагментов, в которых расположен текущий блок изображения, является B;condition 2: the type of the fragment or group of fragments in which the current image block is located is B; условие 4: размер текущего блока изображения соответствует заданному условию; иcondition 4: the size of the current image block meets the specified condition; And условие 5: режим пропуска не используется для прогнозирования текущего блока изображения.Condition 5: Skip mode is not used to predict the current image block. 12. Способ по п. 11, в котором определение целевого режима слияния из режима слияния уровня-2 содержит: 12. The method of claim 11, wherein determining the target merge mode from the layer-2 merge mode comprises: когда любое из условия 1, условия 2, условия 4 и условия 5 не выполняется, установку значения информации о доступном статусе, которое указывает доступный статус режима CIIP, на первое значение, при этом, когда значение информации о доступном статусе, которое указывает доступный статус режима CIIP является первым значением, режим CIIP используется для выполнения прогнозирования изображения для текущего блока изображения.when any of condition 1, condition 2, condition 4 and condition 5 is not satisfied, setting the available status information value that indicates the available status of the CIIP mode to the first value, wherein when the available status information value that indicates the available status of the mode CIIP is the first value, CIIP mode is used to perform image prediction for the current image block. 13. Способ по п. 11, в котором определение целевого режима слияния из режима слияния уровня-2 содержит: 13. The method of claim 11, wherein determining the target merge mode from the layer-2 merge mode comprises: когда все условия из условия 1, условия 2, условия 4 и условия 5 выполнены, определение целевого режима слияния на основе элемента синтаксиса высокого уровня, соответствующего режиму CIIP, и/или информации о доступном статусе, которая указывает доступный статус режима CIIP, при этом информация о доступном статусе, которая указывает доступный статус режима CIIP, используется, чтобы указать, используется ли режим CIIP, когда прогнозируется текущий блок изображения.when all the conditions from condition 1, condition 2, condition 4 and condition 5 are satisfied, 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, wherein the information available status, 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. 14. Способ по п. 13, в котором определение целевого режима слияния на основе элемента синтаксиса высокого уровня, соответствующего режиму CIIP, и/или информации о доступном статусе, которая указывает доступный статус режима CIIP, содержит: 14. The method of claim 13, wherein 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, comprises: когда элемент синтаксиса высокого уровня, соответствующий режиму CIIP, и/или информация о доступном статусе, которая указывает доступный статус режима CIIP, указывает/указывают, что режим CIIP запрещено использовать, определение режима TPM как целевого режима слияния.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 the TPM mode as the target merge mode. 15. Способ по п. 14, в котором, когда элемент синтаксиса высокого уровня, соответствующий режиму CIIP, и/или информация о доступном статусе, которая указывает доступный статус режима CIIP, указывает/указывают, что режим CIIP запрещено использовать, определение режима TPM в качестве целевого режима слияния содержит: 15. The method of claim 14, wherein 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, determining the TPM mode in contains as a merge target mode: когда элемент синтаксиса высокого уровня, соответствующий режиму CIIP, и/или информация о доступном статусе, которая указывает доступный статус режима CIIP, указывает/указывают, что режим CIIP запрещено использовать, установку значения информации о доступном статусе, которое указывает доступный статус режима TPM на первое значение, при этом, когда значение информации о доступном статусе, которое указывает доступный статус режима TPM, является первым значением, режим TPM используется для выполнения прогнозирования изображения для текущего блока изображения.when a 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, setting the available status information value that indicates the available status of the TPM mode to the first value, wherein when the available status information value 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. 16. Способ по любому из пп. 11-15, в котором способ прогнозирования применяется к стороне кодера для кодирования текущего блока изображения.16. Method according to any one of paragraphs. 11-15, in which the prediction method is applied to the encoder side to encode the current image block. 17. Способ по любому из пп. 11-15, в котором способ прогнозирования применяется к стороне декодера для декодирования текущего блока изображения.17. Method according to any one of paragraphs. 11-15, in which the prediction method is applied to the decoder side to decode the current image block. 18. Устройство прогнозирования изображения, при этом устройство прогнозирования изображения содержит модуль, выполненный с возможностью осуществления способа по любому из пп. 1-10 или пп. 11-17.18. An image prediction device, wherein the image prediction device comprises a module configured to implement the method according to any one of claims. 1-10 or pp. 11-17. 19. Устройство прогнозирования изображения, содержащее: 19. An image prediction device comprising: память, выполненную с возможностью хранения программы; иa memory configured to store a program; And процессор, выполненный с возможностью выполнения программы, хранящейся в памяти, при этом, когда программа, хранящаяся в памяти, выполняется процессором, процессор осуществляет способ по любому из пп. 1-10 или пп. 11-17.a processor configured to execute a program stored in the memory, wherein when the program stored in the memory is executed by the processor, the processor implements the method according to any one of claims. 1-10 or pp. 11-17. 20. Устройство кодирования, содержащее устройство прогнозирования изображения по п. 18 или 19.20. An encoding device comprising an image prediction device according to claim 18 or 19. 21. Устройство декодирования, содержащее устройство прогнозирования изображения по п. 18 или 19.21. A decoding device comprising an image prediction device according to claim 18 or 19. 22. Система кодирования видео, при этом электронное устройство содержит устройство кодирования по п. 20 и/или устройство декодирования по п. 21.22. A video encoding system, wherein the electronic device contains an encoding device according to claim 20 and/or a decoding device according to claim 21. 23. Считываемый компьютером носитель данных, при этом считываемый компьютером носитель данных хранит компьютерную программу, которая может выполняться процессором, и когда компьютерная программа выполняется процессором, процессор осуществляет способ по любому из пп. 1-10 или пп. 11-17.23. A computer-readable storage medium, wherein the computer-readable storage medium stores a computer program that can be executed by the processor, and when the computer program is executed by the processor, the processor implements the method of any one of claims. 1-10 or pp. 11-17. 24. Кодер, содержащий схему обработки для выполнения способа по любому из пп. 1-10 или пп. 11-17.24. An encoder containing a processing circuit for performing the method according to any one of claims. 1-10 or pp. 11-17.
RU2021134215A 2019-04-25 2020-04-23 Method and device for image prediction and computer readable data medium RU2810126C2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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